* %GOTO TCCWL1; /* 00060021 MACRO 00070021 IECDTCCW 00100021 TCCW DSECT 00150021 SPACE 1 */ 00200021 *%TCCWL1 : ; 00210021 */********************************************************************/ 00250021 */* */ 00300021 */* THE TCCW BLOCK IS THE TRANSLATION CONTROL BLOCK WHICH */ 00350021 */* CONTAINS ALL INFORMATION REQUIRED TO TRANSLATE CCWS, */ 00400021 */* RE-TRANSLATE ADDRESSES OR UNFIX DATA AREAS. IT IS THE */ 00450021 */* BLOCK THAT IS BASSED BY ROUTINES WHICH CALL THE CCW */ 00500021 */* TRANSLATOR. */ 00550021 */* */ 00600021 */********************************************************************/ 00650021 *%GOTO TCCWL2; /* 00660021 SPACE 1 00700021 TCCWTCB DS A ADDRESS OF TCB FOR THIS REQUEST 00750021 TCCWOPTN DS XL1 OPTION BYTE DESCRIBING WORK 00800021 * TO BE DONE BY CCW TRANSLATOR 00850021 TCCWXLAT EQU 0 TRANSLATE CCWS 01050021 TCCWCSWX EQU 4 TRANSLATE CSW OR PASSES ADDRESS 01100021 TCCWUNFX EQU 8 UNFIX DATA AREA - SET UP FREE LST 01150021 TCCWGTMN EQU 12 RETURN FROM GETMAIN 01250021 TCCWSATR EQU 16 SINGLE ADDRESS TRANSLATION 01252021 TCCWPGER EQU X'80' PAGE FIX ERROR 01260021 TCCWTRER EQU X'90' TRANSLATION ERROR 01270021 TCCWIDAE EQU X'A0' IDA BIT ERROR IN VIRT CP @ZA06069 01275003 TCCWVMER EQU X'D0' VALMAP ERROR 01280021 SPACE 1 01300021 TCCWUCB DS AL3 ADDRESS OF ASSOCIATED UCB 01350021 TCCWBEB DS A ADDRESS OF FIRST BEB 01400002 TCCWFIX DS A ADDRESS OF FIRST FIX LIST 01450021 TCCWFVC DS A ADDRESS OF FIRST VIRTUAL CCW 01500021 TCCWFRC DS A ADDRESS OF FIRST REAL CCW 01550021 TCCWPLKR DS A ADDRESS OF NEXT FIX LIST ENTRY 01600021 TCCWINDA DS A ADDRESS OF FIRST IDAL 01650021 TCCWTICL DS A ADDRESS OF UNRESOLVED TIC LIST 01700021 TCCWINDR DS A ADDRESS OF NEXT IDAL POINTER 01750021 TCCWCCWR DS A ADDRESS OF NEXT VIRTUAL CCW 01800021 SPACE 1 @ZA16169 01820003 TCCWMODB DS XL1 TRANSLATOR FLAG BYTE @ZA16169 01840003 TCCWFCHN EQU X'80' - FREE CHAIN CONSTRUCTED @ZA26555 01860003 TCCWRSV2 EQU X'40' - RESERVED @ZA16169 01880003 TCCWRSV3 EQU X'20' - RESERVED @ZA16169 01900003 TCCWRSV4 EQU X'10' - RESERVED @ZA16169 01920003 TCCWRSV5 EQU X'08' - RESERVED @ZA16169 01940003 TCCWPC10 EQU X'04' - A ZERO IDAL ENTRY REQD @ZA16169 01960003 TCCWPGCK EQU X'02' - PAGE FIX/UNFIXING ACTIVE. @ZA16169 01980003 TCCWECBU EQU X'01' - ECB IN USE. @ZA16169 02000003 EJECT 02044003 TCCWCCWL DS XL1 NUMBER OF CCWS LEFT IN BEB 02100002 TCCWINDL DS XL1 NUMBER OF IDAS LEFT IN IDAL 02150002 TCCWEFOP DS XL1 NUMERIC PORTION OF CURRENT COMMAND 02200021 TCCWCCWA DS A NEXT VIRTUAL CCW 02250021 TCCWTICA DS A TIC-ED TO ADDRESS 02300021 TCCWLOCA DS A LOW COMPARE ADDRESS 02350021 TCCWHICA DS A HIGH COMPARE ADDRESS 02400021 TCCWCBEB DS A CURRENT BEB POINTER 02550002 TCCWOPBT DS X PREVIOUS OP BYTE 02600421 ORG *-1 FULL WORD ALIGNMENT 02600821 TCCWOPTR DS A PREVIOUS CCW ADDRESS 02602021 SPACE 1 @ZA16169 02606003 TCCWSAVE DS 0XL32 160 BYTE BLK REG SAVE AREA @ZA16169 02616003 TCCWSAVD DS A - SAVE AREA FOR REG 13 @ZA16169 02626003 TCCWSAV4 DS A - SAVE AREA FOR REG 4 @ZA16169 02636003 TCCWSAV5 DS A - SAVE AREA FOR REG 5 @ZA16169 02646003 TCCWSAV6 DS A - SAVE AREA FOR REG 6 @ZA16169 02656003 TCCWSAV7 DS A - SAVE AREA FOR REG 7 @ZA16169 02666003 TCCWSAV8 DS A - SAVE AREA FOR REG 8 @ZA16169 02676003 TCCWSAV9 DS A - SAVE AREA FOR REG 9 @ZA16169 02686003 TCCWSAVA DS A - SAVE AREA FOR REG A @ZA16169 02696003 TCCWRGSV DS 0XL56 TRANSLATOR REG SAVE AREA @ZA16169 02706003 TCCWREG1 DS A - SAVE AREA FOR REG 1 02731003 TCCWREG2 DS A - SAVE AREA FOR REG 2 02750003 TCCWREG3 DS A - SAVE AREA FOR REG 3 02800003 TCCWREG4 DS A - SAVE AREA FOR REG 4 02850003 TCCWREG5 DS A - SAVE AREA FOR REG 5 02900003 TCCWREG6 DS A - SAVE AREA FOR REG 6 02950003 TCCWREG7 DS A - SAVE AREA FOR REG 7 03000003 TCCWREG8 DS A - SAVE AREA FOR REG 8 03050003 TCCWREG9 DS A - SAVE AREA FOR REG 9 03100003 TCCWREGA DS A - SAVE AREA FOR REG 10 03150003 TCCWREGB DS A - SAVE AREA FOR REG 11 03200003 TCCWREGC DS A - SAVE AREA FOR REG 12 03250003 TCCWREGD DS A - SAVE AREA FOR REG 13 03300003 TCCWREGE DS A - SAVE AREA FOR REG 14 03350003 SPACE 1 03400003 TCCWBL EQU *-TCCW BLOCK LENGTH OF TCCW 03500021 MEND , */ 03550021 *%TCCWL2: ; 03560021 * DECLARE 1 TCCW BDY(WORD) BASED(TCCWPTR), /* TRANSLATION CONTROL 03570002 * BLOCK */ 03590021 * 2 TCCWTCB PTR(31), /* ADDRESS OF TCB FOR REQUEST */ 03600021 * 2 TCCWOPTN BIT(8), /* COMMUNICATION TO/FROM CALLER */ 03650021 * 2 TCCWUCB PTR(24), /* ADDRESS OF THE UCB */ 03700021 * 2 TCCWBEB PTR(31), /* ADDRESS OF THE BEGIN END BLK */ 03750021 * 2 TCCWFIX PTR(31), /* ADDRESS OF THE FIX LIST */ 03800021 * 2 TCCWFVC PTR(31), /* ADDR OF THE FST VIRTUAL CCW */ 03850021 * 2 TCCWFRC PTR(31), /* ADDRESS OF THE REAL CCW */ 03900021 * 2 TCCWPLKR PTR(31), /* ADDRESS OF CURRENT FIX ENTRY */ 03950021 * 2 TCCWINDA PTR(31), /* ADDRESS OF FIRST IDAL */ 04000021 * 2 TCCWTICL PTR(31), /* UNRESOLVED TIC LIST */ 04050021 * 2 TCCWINDR PTR(31), /* ADDRESS OF CURRENT IDAL ENTY */ 04100021 * 2 TCCWCCWR PTR(31), /* ADDRESS OF SLOT FOR REAL CCW */ 04150021 * 2 TCCWMODB BIT(8), /* FLAG BYTE FOR TRANSLATION */ 04200021 * 3 TCCWRSV1 BIT(1), /* RESERVED @ZA16169*/ 04210003 * 3 TCCWRSV2 BIT(1), /* RESERVED @ZA16169*/ 04220003 * 3 TCCWRSV3 BIT(1), /* RESERVED @ZA16169*/ 04230003 * 3 TCCWRSV4 BIT(1), /* RESERVED @ZA16169*/ 04240003 * 3 TCCWRSV5 BIT(1), /* RESERVED @ZA16169*/ 04250003 * 3 TCCWPC10 BIT(1), /* A ZERO IDAL ENTRY RQD @ZA16169*/ 04260003 * 3 TCCWPGCK BIT(1), /* PAGE FIX/UNFIX ACTIVE @ZA16169*/ 04270003 * 3 TCCWECBU BIT(1), /* ECB IN USE @ZA16169*/ 04280003 * 2 TCCWCCWL CHAR(1), /* NUMBER OF CCWS LEFT IN BEB */ 04350021 * 2 TCCWINDL CHAR(1), /* NUMBER OF IDAL LEFT */ 04400021 * 2 TCCWEFOP CHAR(1), /* NUMERIC PORTION OF OP CODE */ 04450021 * 2 TCCWCCWA PTR(31), /* CURRENT VIRTUAL CCW ADDR */ 04500021 * 2 TCCWTICA PTR(31), /* ADDRESS PORTION OF TIC */ 04550021 * 2 TCCWLOCA PTR(31), /* LOW COMPARE ADDRESS */ 04600021 * 2 TCCWHICA PTR(31), /* HIGH COMPERE ADDRESS */ 04650021 * 2 TCCWCBEB PTR(31), /* CURRENT BEB POINTER */ 04700021 * 2 TCCWOPTR PTR(31), /* PREVIOUS CCW ADDR @ZM30410*/ 04710003 * 3 TCCWOPBT CHAR(1), /* PREVIOUS OP BYTE @ZM30410*/ 04715003 * 3 * CHAR(3), /* ADDRESS PORTION @ZM30410*/ 04720003 * 2 TCCWSAVE CHAR(32), /* INTERNAL WORK AREA */ 04750021 * 3 TCCWSAVD PTR(31), /* SAVE AREA- REG D @ZA16169*/ 04755003 * 3 TCCWSAV4 PTR(31), /* SAVE AREA- REG 4 @ZA16169*/ 04760003 * 3 TCCWSAV5 PTR(31), /* SAVE AREA- REG 5 @ZA16169*/ 04765003 * 3 TCCWSAV6 PTR(31), /* SAVE AREA- REG 6 @ZA16169*/ 04770003 * 3 TCCWSAV7 PTR(31), /* SAVE AREA- REG 7 @ZA16169*/ 04775003 * 3 TCCWSAV8 PTR(31), /* SAVE AREA- REG 8 @ZA16169*/ 04780003 * 3 TCCWSAV9 PTR(31), /* SAVE AREA- REG 9 @ZA16169*/ 04785003 * 3 TCCWSAVA PTR(31), /* SAVE AREA- REG A @ZA16169*/ 04790003 * 2 TCCWRGSV, /* REGISTER SAVE AREA */ 04800021 * 3 TCCWREG1 PTR(31), /* SAVE AREA FOR REGISTER 1 */ 04850021 * 3 TCCWREG2 PTR(31), /* SAVE AREA FOR REGISTER 2 */ 04900021 * 3 TCCWREG3 PTR(31), /* SAVE AREA FOR REGISTER 3 */ 04950021 * 3 TCCWREG4 PTR(31), /* SAVE AREA FOR REGISTER 4 */ 05000021 * 3 TCCWREG5 PTR(31), /* SAVE AREA FOR REGISTER 5 */ 05050021 * 3 TCCWREG6 PTR(31), /* SAVE AREA FOR REGISTER 6 */ 05100021 * 3 TCCWREG7 PTR(31), /* SAVE AREA FOR REGISTER 7 */ 05150021 * 3 TCCWREG8 PTR(31), /* SAVE AREA FOR REGISTER 8 */ 05200021 * 3 TCCWREG9 PTR(31), /* SAVE AREA FOR REGISTER 9 */ 05250021 * 3 TCCWREGA PTR(31), /* SAVE AREA FOR REGISTER 10 */ 05300021 * 3 TCCWREGB PTR(31), /* SAVE AREA FOR REGISTER 11 */ 05350021 * 3 TCCWREGC PTR(31), /* SAVE AREA FOR REGISTER 12 */ 05400021 * 3 TCCWREGD PTR(31), /* SAVE AREA FOR REGISTER 13 */ 05450021 * 3 TCCWREGE PTR(31), /* SAVE AREA FOR REGISTER 14 */ 05500021 * 2 TCCWEND CHAR(0); /* END OF STRUCTURE */ 05550021 *%DCL TCCWBL CHAR; 05600021 *%TCCWBL='ADDR(TCCWEND)-ADDR(TCCWTCB)'; /* LENGTH OF TCCW */ 05650021 * 05654021 */* BITS DEFINED FOR TCCWOPTN */ 05660021 * 05670021 * DCL TCCWXLAT BIT(8) CONSTANT('00'X); /* TRANSLATION REQUEST */ 05700021 * DCL TCCWCSWX BIT(8) CONSTANT('04'X); /* CSW TRANSLATION REQUEST */ 05750021 * DCL TCCWUNFX BIT(8) CONSTANT('08'X); /* UNFIX PAGES REQUEST */ 05800021 * DCL TCCWSATR BIT(8) CONSTANT('10'X); /*SINGLE ADDRESS TRANSLATION*/ 05850021 * DCL TCCWPGER BIT(8) CONSTANT('80'X); /* PAGING ERROR INDICATOR */ 05900021 * DCL TCCWTRER BIT(8) CONSTANT('90'X); /* TRANSLATION ERROR INDICATOR*/ 05950021 * DCL TCCWIDAE BIT(8) CONSTANT('A0'X); /* IDA BIT ERROR @ZA06069*/ 05955003