TITLE '***** RSM V=R REGION ROUTINE IEAVEQR ***** *00001000 ' 00002000 * /* @Z40WPYC*/ 00003000 IEAVEQR CSECT @Z40WPYC 00004000 MODID BR=NO @Z40WPYC 00005000 ENTRY IEAVEQR2 @Z40WPYC 00006000 IEAVEQR2 DS 0H @Z40WPYC 00007000 ENT1 STM @14,@12,12(@13) 00008000 BALR @15,0 ESTABLISH ADDR. 00009000 USING *,@15 00010000 B COMMON COMMON ENTRY CODE 00011000 DC AL2(EP1-ENT1-6) DISPLACEMENT FOR IEAVEQR 00012000 IEAVEQRI STM @00,@15,PVTWSA3(PVTPTR) 00013000 BALR @15,0 ESTABLISH ADDR. 00014000 USING *,@15 00015000 B COMMON COMMON ENTRY CODE 00016000 DC AL2(EP2-IEAVEQRI-6) DISPLACEMENT FOR IEAVEQRI 00017000 ENTRY IEAVEQRI 00018000 IEAVEQRC BALR @15,0 ESTABLISH ADDRR 00019000 USING *,@15 00020000 B COMMON COMMON ENTRY CODE 00021000 DC AL2(EP3-IEAVEQRC-2) DISPLACEMENT FOR IEAVEQRC 00022000 ENTRY IEAVEQRC 00023000 IEAVEQRF STM @14,@12,12(@13) SAVE REGS IS USER SAVE AREA 00024000 BALR @15,0 ESTABLISH ADDR. 00025000 USING *,@15 00026000 B COMMON COMMON ENTRY CODE 00027000 DC AL2(EP4-IEAVEQRF-6) DISPLACEMENT FOR IEAVEQRF 00028000 ENTRY IEAVEQRF 00029000 IEAVEQRP BALR @15,0 ESTABLISH MODULE ADDR. 00030000 USING *,@15 00031000 B COMMON BRANCH TO COMMON CODE 00032000 DC AL2(EP5-IEAVEQRP-2) 00033000 ENTRY IEAVEQRP 00034000 IEAVRMT BALR @15,0 ESTABLISH MODULE ADDR. 00035000 USING *,@15 00036000 B COMMON BRANCH TO COMMON CODE 00037000 DC AL2(EP6-IEAVRMT-2) 00038000 ENTRY IEAVRMT 00039000 DROP @15 00040000 COMMON BALR @12,0 ESTABLISH MODULE ADDR. 00041000 USING *,@12 00042000 COMMON1 EQU * @Z30GNYD 00043000 USING COMMON1+3840,@11 ESTABLISH 2ND BASE REG @Z30GNYD 00044000 LA @11,3840(@12) @Z30GNYD 00045000 AH @15,4(@15) ADD DISPLACEMENT FOR ADDRESS 00046000 BR @15 BRANCH TO CODE SECTION 00047000 EP1 DS 0H 00048000 * INPUTPTR=REG1; /* INPUT PARAMETER LIST PTR */ 00049000 LR INPUTPTR,REG1 0077 00050000 * CALL SETFRR; /* GO SET UP FRR AND PVT PRT 0078 00051000 * @ZA31128*/ 00052000 * 0078 00053000 BAL @14,SETFRR 0078 00054000 * /*****************************************************************/ 00055000 * /* */ 00056000 * /* FRR HAS BEEN SET UP SO CONTINUE WITH PROCESSING */ 00057000 * /* */ 00058000 * /*****************************************************************/ 00059000 * 0079 00060000 * RFY 0079 00061000 * RCA BASED(PVTPRCA); 0079 00062000 * RCAVEQR=ON; /* SET ENTERED BIT ON */ 00063000 L @10,PVTPRCA(,PVTPTR) 0080 00064000 OI RCAVEQR(@10),B'00001000' 0080 00065000 * RSMHDPTR=ASCBRSM; /* RSM HEADER ADDRESS */ 00066000 L @10,ASCBPTR 0081 00067000 L RSMHDPTR,ASCBRSM(,@10) 0081 00068000 * MOTION=OFF; /* INIT SCHEDULE INDICATOR 0082 00069000 * @Z30GNYD*/ 00070000 * 0082 00071000 NI MOTION(REG13),B'01111111' 0082 00072000 * /*****************************************************************/ 00073000 * /* */ 00074000 * /* IF START RBN IS WITHIN V=R BOUNDS THEN CONTINUE PROCESSING */ 00075000 * /* REQUEST. OTHERWISE, SET RETURN CODE AND RETURN TO GETPART. */ 00076000 * /* */ 00077000 * /*****************************************************************/ 00078000 * 0083 00079000 * RESPECIFY 0083 00080000 * RSAVE RSTD; 0083 00081000 * RSAVE=(INPSTART/K4)*SIXTEEN; 0084 00082000 * 0084 00083000 L @00,INPSTART(,INPUTPTR) 0084 00084000 SRDA @00,32 0084 00085000 D @00,@CF00054 0084 00086000 SLA @01,4 0084 00087000 LR RSAVE,@01 0084 00088000 * /*****************************************************************/ 00089000 * /* */ 00090000 * /* IF WITHIN BOUNDS THEN GET PCB WORKAREA. */ 00091000 * /* */ 00092000 * /*****************************************************************/ 00093000 * 0085 00094000 * IF RSAVE>=PVTFVR&RSAVE<=PVTLVR THEN 0085 00095000 SLR @10,@10 0085 00096000 ICM @10,3,PVTFVR(PVTPTR) 0085 00097000 CR RSAVE,@10 0085 00098000 BL @RF00085 0085 00099000 SLR @10,@10 0085 00100000 ICM @10,3,PVTLVR(PVTPTR) 0085 00101000 CR RSAVE,@10 0085 00102000 BH @RF00085 0085 00103000 * DO; /* OBTAIN WORK AREA FROM PCB */ 00104000 * RESPECIFY 0087 00105000 * (REG0, 0087 00106000 * REG1) RSTD; 0087 00107000 * REG0=ONE; /* REQUEST FOR 1 PCB */ 00108000 LA REG0,1 0088 00109000 * REG1=ZERO; /* INPUT 0 */ 00110000 SLR REG1,REG1 0089 00111000 * CALL IEAVPCB; /* CALL PCB MANAGER FOR PCBR */ 00112000 * 0090 00113000 L @15,PVTPCB(,PVTPTR) 0090 00114000 BALR @14,@15 0090 00115000 * /*************************************************************/ 00116000 * /* */ 00117000 * /* IF RETURN CODE NOT ZERO, RC=16 RETURN */ 00118000 * /* */ 00119000 * /*************************************************************/ 00120000 * 0091 00121000 * IF RCODE^=ZERO /* NOT ABLE TO GET PCB */ 00122000 * THEN 0091 00123000 LTR RCODE,RCODE 0091 00124000 BZ @RF00091 0091 00125000 * DO; /* @Z30GNYD*/ 00126000 * S15=SIXTEEN; /* SET RETURN CODE = 16 @Z30GNYD*/ 00127000 MVC S15(4,REG13),@CF00040 0093 00128000 * GOTO EXIT; /* RETURN @Z30GNYD*/ 00129000 B EXIT 0094 00130000 * END; /* @Z30GNYD*/ 00131000 * PCBRPTR=REG1; /* PCBPTR CONTAINS PCBR ADDRESS */ 00132000 @RF00091 LR PCBRPTR,REG1 0096 00133000 * RESPECIFY 0097 00134000 * (REG0, 0097 00135000 * REG1) UNRSTD; 0097 00136000 * STARTRBN=RSAVE; 0098 00137000 ST RSAVE,STARTRBN(,PCBRPTR) 0098 00138000 * PCBRASCB=ASCBPTR; 0099 00139000 MVC PCBRASCB(4,PCBRPTR),ASCBPTR 0099 00140000 * RESPECIFY 0100 00141000 * RSAVE UNRSTD; 0100 00142000 * PCBRTCB=PSATOLD; /* CALLER'S TCB ADDRESS */ 00143000 MVC PCBRTCB(4,PCBRPTR),PSATOLD 0101 00144000 * COMPSRB=ZERO; /* CLEAR SAVE AREA OF SRB ADDR TO 00145000 * BE USED TO SCHED IEAVEQRC 0102 00146000 * @Z30GNYD*/ 00147000 SLR @10,@10 0102 00148000 ST @10,COMPSRB(,PCBRPTR) 0102 00149000 * POUTSRB=ZERO; /* CLEAR SAVE AREA OF SRB ADDR TO 00150000 * BE USED TO SCHED IEAVEQRP 0103 00151000 * @Z30GNYD*/ 00152000 ST @10,POUTSRB(,REG13) 0103 00153000 * LOOPFLAG=OFF; /* SET LOOP PREVENTION FLAG TO 0104 00154000 * ZERO @Z30GNYD*/ 00155000 * 0104 00156000 NI LOOPFLAG(REG13),B'10111111' 0104 00157000 * /*************************************************************/ 00158000 * /* */ 00159000 * /* DO GETCELL FOR SRB TO BE USED TO SCHEDULE IEAVEQRC */ 00160000 * /* @Z30GNYD*/ 00161000 * /* */ 00162000 * /*************************************************************/ 00163000 * 0105 00164000 *GETCMSRB: 0105 00165000 * ; /* @Z30GNYD*/ 00166000 GETCMSRB DS 0H 0106 00167000 * RFY 0106 00168000 * (REG0) RSTD; /* @Z30GNYD*/ 00169000 * REG0=PVTSRBID; /* SRB ID FOR GETCELL @Z30GNYD*/ 00170000 L REG0,PVTSRBID(,PVTPTR) 0107 00171000 * REG2=REG13; /* SAVE 13 ACROSS GETCELL 0108 00172000 * @Z30GNYD*/ 00173000 LR REG2,REG13 0108 00174000 * REG13=ADDR(PVTSAVE); /* SAVEAREA ADDR FOR GETCELL 0109 00175000 * @Z30GNYD*/ 00176000 LA REG13,PVTSAVE(,PVTPTR) 0109 00177000 * GEN(GETCELL CPID=(0),BRANCH=YES,SAVE=YES);/* @Z30GNYD*/ 00178000 GETCELL CPID=(0),BRANCH=YES,SAVE=YES 00179000 * REG13=REG2; /* RESTORE REGISTER 13 @Z30GNYD*/ 00180000 LR REG13,REG2 0111 00181000 * REG2=ASCBRSM; /* RESTORE REGISTER 2 @Z30GNYD*/ 00182000 L @10,ASCBPTR 0112 00183000 L REG2,ASCBRSM(,@10) 0112 00184000 * RFY 0113 00185000 * (REG0) UNRSTD; /* @Z30GNYD*/ 00186000 * IF RCODE^=ZERO&LOOPFLAG=OFF THEN 0114 00187000 LTR RCODE,RCODE 0114 00188000 BZ @RF00114 0114 00189000 TM LOOPFLAG(REG13),B'01000000' 0114 00190000 BNZ @RF00114 0114 00191000 * DO; /* IF GETCELL FAILED, AND 0115 00192000 * IEAVREP2 HAS NOT BEEN CALLED 00193000 * @Z30GNYD*/ 00194000 * LOOPFLAG=ON; /* INDICATE IEAVREP2 HAS BEEN 0116 00195000 * CALLED @Z30GNYD*/ 00196000 OI LOOPFLAG(REG13),B'01000000' 0116 00197000 * PVTPTR=CVTPVTP; /* SET POINTER TO PVT @Z30GNYD*/ 00198000 L @10,CVTPTR 0117 00199000 L PVTPTR,CVTPVTP(,@10) 0117 00200000 * RFY 0118 00201000 * (REG14, 0118 00202000 * REG15) RSTD; /* @Z30GNYD*/ 00203000 * CALL IEAVREP2; /* REPLENISH SRBS @ZA31128*/ 00204000 L @15,PVTREP2(,PVTPTR) 0119 00205000 BALR @14,@15 0119 00206000 * RFY 0120 00207000 * (REG14, 0120 00208000 * REG15) UNRSTD; /* @Z30GNYD*/ 00209000 * IF RCODE^=ZERO THEN /* IF REPLENISH FAILED */ 00210000 LTR RCODE,RCODE 0121 00211000 BZ @RF00121 0121 00212000 * DO; /* @Z30GNYD*/ 00213000 * S15=SIXTEEN; /* SET RC = 16 @Z30GNYD*/ 00214000 MVC S15(4,REG13),@CF00040 0123 00215000 * GOTO EXITCLR; /* FREE PCB AND RETURN @Z30GNYD*/ 00216000 B EXITCLR 0124 00217000 * END; /* @Z30GNYD*/ 00218000 * ELSE 0126 00219000 * GOTO GETCMSRB; /* REPLENISH OK, GO TRY GETCELL 00220000 * AGAIN @Z30GNYD*/ 00221000 * END; /* @Z30GNYD*/ 00222000 * ELSE /* @Z30GNYD*/ 00223000 * DO; 0128 00224000 @RF00114 DS 0H 0129 00225000 * IF RCODE=ZERO THEN /* IF GETCELL SUCCESSFUL @Z30GNYD*/ 00226000 LTR RCODE,RCODE 0129 00227000 BNZ @RF00129 0129 00228000 * DO; 0130 00229000 * COMPSRB=REG1; /* SAVE COMPLETION SRB PTR 0131 00230000 * @Z30GNYD*/ 00231000 ST REG1,COMPSRB(,PCBRPTR) 0131 00232000 * LOOPFLAG=OFF; /* SET LOOP FLAG OFF @Z30GNYD*/ 00233000 NI LOOPFLAG(REG13),B'10111111' 0132 00234000 * END; /* @Z30GNYD*/ 00235000 * ELSE 0134 00236000 * DO; 0134 00237000 B @RC00129 0134 00238000 @RF00129 DS 0H 0135 00239000 * S15=SIXTEEN; /* SET REG 15=16 @Z30GNYD*/ 00240000 MVC S15(4,REG13),@CF00040 0135 00241000 * GOTO EXITCLR; /* GO FREE PCB AND RETURN 0136 00242000 * @Z30GNYD*/ 00243000 B EXITCLR 0136 00244000 * END; /* @Z30GNYD*/ 00245000 * END; /* @Z30GNYD*/ 00246000 * 0138 00247000 @RC00129 DS 0H 0139 00248000 * /*************************************************************/ 00249000 * /* */ 00250000 * /* DO GETCELL FOR SRB TO BE USED TO SCHEDULE IEAVEQRP */ 00251000 * /* */ 00252000 * /*************************************************************/ 00253000 * 0139 00254000 *GETPOSRB: 0139 00255000 * ; /* @Z30GNYD*/ 00256000 GETPOSRB DS 0H 0140 00257000 * RFY 0140 00258000 * (REG0) RSTD; /* @Z30GNYD*/ 00259000 * REG0=PVTSRBID; /* SRB ID FOR GETCELL @Z30GNYD*/ 00260000 L REG0,PVTSRBID(,PVTPTR) 0141 00261000 * REG2=REG13; /* SAVE 13 ACROSS GETCELL 0142 00262000 * @Z30GNYD*/ 00263000 LR REG2,REG13 0142 00264000 * REG13=ADDR(PVTSAVE); /* SAVEAREA ADDR FOR GETCELL 0143 00265000 * @Z30GNYD*/ 00266000 LA REG13,PVTSAVE(,PVTPTR) 0143 00267000 * GEN(GETCELL CPID=(0),BRANCH=YES,SAVE=YES);/* @Z30GNYD*/ 00268000 GETCELL CPID=(0),BRANCH=YES,SAVE=YES 00269000 * REG13=REG2; /* RESTORE REGISTER 13 @Z30GNYD*/ 00270000 LR REG13,REG2 0145 00271000 * REG2=ASCBRSM; /* RESTORE REGISTER 2 @Z30GNYD*/ 00272000 L @10,ASCBPTR 0146 00273000 L REG2,ASCBRSM(,@10) 0146 00274000 * RFY 0147 00275000 * (REG0) UNRSTD; /* @Z30GNYD*/ 00276000 * IF RCODE^=ZERO&LOOPFLAG=OFF THEN 0148 00277000 LTR RCODE,RCODE 0148 00278000 BZ @RF00148 0148 00279000 TM LOOPFLAG(REG13),B'01000000' 0148 00280000 BNZ @RF00148 0148 00281000 * DO; /* IF GETCELL FAILED, AND 0149 00282000 * IEAVREP2 HAS NOT BEEN CALLED 00283000 * @Z30GNYD*/ 00284000 * LOOPFLAG=ON; /* INDICATE IEAVREP2 HAS BEEN 0150 00285000 * CALLED @Z30GNYD*/ 00286000 OI LOOPFLAG(REG13),B'01000000' 0150 00287000 * RFY 0151 00288000 * (REG14, 0151 00289000 * REG15) RSTD; /* @Z30GNYD*/ 00290000 * CALL IEAVREP2; /* REPLENISH SRBS @ZA31128*/ 00291000 L @15,PVTREP2(,PVTPTR) 0152 00292000 BALR @14,@15 0152 00293000 * RFY 0153 00294000 * (REG14, 0153 00295000 * REG15) UNRSTD; /* @Z30GNYD*/ 00296000 * IF RCODE=ZERO THEN /* IF REPLENISH SUCCESSFUL */ 00297000 LTR RCODE,RCODE 0154 00298000 BZ @RT00154 0154 00299000 * GOTO GETPOSRB; /* SAVE PAGE OUT SRB PTR @Z30GNYD*/ 00300000 * ELSE 0156 00301000 * GOTO DETBNDS; /* CONTINUE IF SRB NOT OBTAINED */ 00302000 B DETBNDS 0156 00303000 * END; /* @Z30GNYD*/ 00304000 * ELSE /* @Z30GNYD*/ 00305000 * IF RCODE=ZERO THEN 0158 00306000 @RF00148 LTR RCODE,RCODE 0158 00307000 BNZ @RF00158 0158 00308000 * POUTSRB=REG1; /* IF GETCELL SUCCESSFUL, SAVE 0159 00309000 * SRB PTR @Z30GNYD*/ 00310000 ST REG1,POUTSRB(,REG13) 0159 00311000 * ELSE 0160 00312000 * GOTO DETBNDS; /* CONTINUE, IF UNSUCCESSFUL 0160 00313000 * @Z30GNYD*/ 00314000 */* IF NOT WITHIN BOUNDS, THEN SET RETURN CODE AND RETURN */ 00315000 * 0161 00316000 * END; 0161 00317000 * ELSE 0162 00318000 * DO; 0162 00319000 B @RC00085 0162 00320000 @RF00085 DS 0H 0163 00321000 * S15=SIXTEEN; /* SET RETURN CODE TO 16 @Z30GNYD*/ 00322000 MVC S15(4,REG13),@CF00040 0163 00323000 * GOTO EXIT; /* @Z30GNYD*/ 00324000 B EXIT 0164 00325000 * END; 0165 00326000 * 0165 00327000 * /*****************************************************************/ 00328000 * /* */ 00329000 * /* SET UP BOUNDS FOR V=R REGION, THEN CHECK IF STATED REGION IS */ 00330000 * /* AVAILABLE BY LOOKING AT EACH FRAME PFTE. */ 00331000 * /* */ 00332000 * /*****************************************************************/ 00333000 * 0166 00334000 *DETBNDS: 0166 00335000 * ; /* @Z30GNYD*/ 00336000 @RC00085 DS 0H 0166 00337000 DETBNDS DS 0H 0167 00338000 * DELTA=(INPAGES-ONE)*SIXTEEN; /* PFTE LENGTH OF V=R REGION */ 00339000 LH @10,INPAGES(,INPUTPTR) 0167 00340000 BCTR @10,0 0167 00341000 SLA @10,4 0167 00342000 ST @10,DELTA(,PCBRPTR) 0167 00343000 * PFTEPTR=PVTPFTP+STARTRBN; /* ADDR OF PFTE TABLE+RBN INCRE */ 00344000 * 0168 00345000 L PFTEPTR,PVTPFTP(,PVTPTR) 0168 00346000 AL PFTEPTR,STARTRBN(,PCBRPTR) 0168 00347000 * /*****************************************************************/ 00348000 * /* */ 00349000 * /* IF LAST RBN IS NOT WITHIN V=R BOUNDS THEN SET RETURN CODE AND */ 00350000 * /* RETURN TO CALLER. OTHERWISE, CONTINUE PROCESSING. */ 00351000 * /* */ 00352000 * /*****************************************************************/ 00353000 * 0169 00354000 *RESTART: 0169 00355000 * PCBRCNT=ZERO; /* GOOD FRAME COUNT=0 @ZA31128*/ 00356000 RESTART SLR @10,@10 0169 00357000 STH @10,PCBRCNT(,PCBRPTR) 0169 00358000 * IF STARTRBN+DELTA>PVTLVR THEN 0170 00359000 L @10,STARTRBN(,PCBRPTR) 0170 00360000 AL @10,DELTA(,PCBRPTR) 0170 00361000 SLR @09,@09 0170 00362000 ICM @09,3,PVTLVR(PVTPTR) 0170 00363000 CR @10,@09 0170 00364000 BNH @RF00170 0170 00365000 * DO; /* @Z30GNYD*/ 00366000 * S15=SIXTEEN; /* RETURN CODE = 16 */ 00367000 MVC S15(4,REG13),@CF00040 0172 00368000 * GOTO EXITCLR; /* RETURN @Z30GNYD*/ 00369000 B EXITCLR 0173 00370000 * END; /* @Z30GNYD*/ 00371000 * 0174 00372000 * /*****************************************************************/ 00373000 * /* */ 00374000 * /* SEARCH ALL V=R FRAMES UNTIL THE NUMBER REQUIRED IS FOUND. IF */ 00375000 * /* FRAME IS NOT ON THE AVAILABLE FRAME QUEUE, THEN CHECK FRAME */ 00376000 * /* FOR UNDESIRABLE STATUS. IF THE FRAME HAS ONE OF THE CONDITIONS*/ 00377000 * /* THEN IT CAN NOT BE USED IN V=R REGION. */ 00378000 * /* */ 00379000 * /*****************************************************************/ 00380000 * 0175 00381000 * DO UNTIL PCBRCNT=INPAGES; /* DO TIL ENOUGH GOTTEN @ZA31128*/ 00382000 @RF00170 DS 0H 0175 00383000 @DL00175 DS 0H 0176 00384000 * IF PFTONAVQ=OFF& /* IF NOT ON AVQ, AND @ZA31128*/ 00385000 * (PFTVRALC=ON| /* NOW A V=R FRAME, OR @ZA31128*/ 00386000 * PFTVRINT=ON| /* V=R INTERCEPTED, OR @ZA31128*/ 00387000 * PFTVRPLT=ON| /* POLLUTES V=R AREA, OR @ZA31128*/ 00388000 * PFTOFINT=ON| /* OFFLINE INTRCPTD, OR @ZA31128*/ 00389000 * PFTBADPG=ON| /* A BADPAGE, OR @ZA31128*/ 00390000 * PFTOFFLN=ON| /* OFFLINE, OR @ZA31128*/ 00391000 * PFTQNDX=PFTSRQN) THEN /* ON THE SQA RESERVE QUEUE, THEN 00392000 * DO NOT ACCEPT THE FRAME. 0176 00393000 * @ZA31128*/ 00394000 * 0176 00395000 TM PFTONAVQ(PFTEPTR),B'10000000' 0176 00396000 BNZ @RF00176 0176 00397000 TM PFTVRALC(PFTEPTR),B'01010111' 0176 00398000 BNZ @RT00176 0176 00399000 TM PFTOFFLN(PFTEPTR),B'01000000' 0176 00400000 BO @RT00176 0176 00401000 CLI PFTQNDX(PFTEPTR),X'04' 0176 00402000 BNE @RF00176 0176 00403000 @RT00176 DS 0H 0177 00404000 * /*************************************************************/ 00405000 * /* */ 00406000 * /* IF A SPECIFIC REGION WAS REQUESTED THEN RETURN TO CALLER */ 00407000 * /* WITH RETURN CODE 16 SINCE AN UNAVAILABLE FRAME WAS FOUND */ 00408000 * /* IN REGION. OTHERWISE, JUMP OVER UNAVAILABLE FRAME AND */ 00409000 * /* BEGIN A NEW REGION SEARCH ON NEXT PFTE. */ 00410000 * /* */ 00411000 * /*************************************************************/ 00412000 * 0177 00413000 * DO; /* @ZA31128*/ 00414000 * IF INPSPEC=ON THEN /* IF ON, REQUEST SPECIFIC REGION*/ 00415000 TM INPSPEC(INPUTPTR),B'10000000' 0178 00416000 BNO @RF00178 0178 00417000 * DO; /* @Z30GNYD*/ 00418000 * S15=SIXTEEN; /* SET RETURN = 16 @Z30GNYD*/ 00419000 MVC S15(4,REG13),@CF00040 0180 00420000 * GOTO EXITCLR; /* RETURN @Z30GNYD*/ 00421000 B EXITCLR 0181 00422000 * END; /* @Z30GNYD*/ 00423000 * PFTEPTR=PFTEPTR+LENGTH(PFTE); 0183 00424000 @RF00178 AL PFTEPTR,@CF00040 0183 00425000 * STARTRBN=PFTEPTR-PVTPFTP; /* NEW START RBN VALUE */ 00426000 LR @10,PFTEPTR 0184 00427000 SL @10,PVTPFTP(,PVTPTR) 0184 00428000 ST @10,STARTRBN(,PCBRPTR) 0184 00429000 * GOTO RESTART; /* REPEAT SEARCH PROCESS */ 00430000 B RESTART 0185 00431000 * END; /* @ZA31128*/ 00432000 * 0186 00433000 * /***************************************************************/ 00434000 * /* */ 00435000 * /* FRAME ACCEPTED FOR V=R REGION. INCREMENT COUNT OF FRAMES */ 00436000 * /* OBTAINED, AND POINT TO THE NEXT PFTE. IF FRAME COUNT DOES */ 00437000 * /* NOT EQUAL INPUT FRAME REQUEST THEN SEARCH WILL CONTINUE. */ 00438000 * /* OTHERWISE, SEARCH IS COMPLETE. */ 00439000 * /* */ 00440000 * /***************************************************************/ 00441000 * 0187 00442000 * ELSE /* @ZA31128*/ 00443000 * DO; /* @ZA31128*/ 00444000 @RF00176 DS 0H 0188 00445000 * PCBRCNT=PCBRCNT+ONE; /* INCR FRAME OBTAINED COUNT */ 00446000 LA @10,1 0188 00447000 AH @10,PCBRCNT(,PCBRPTR) 0188 00448000 STH @10,PCBRCNT(,PCBRPTR) 0188 00449000 * PFTEPTR=PFTEPTR+LENGTH(PFTE);/* ADDR NEXT PFTE */ 00450000 AL PFTEPTR,@CF00040 0189 00451000 * END; /* @ZA31128*/ 00452000 * END; /* @ZA31128*/ 00453000 * 0191 00454000 @DE00175 CLC PCBRCNT(2,PCBRPTR),INPAGES(INPUTPTR) 0191 00455000 BNE @DL00175 0191 00456000 * /*****************************************************************/ 00457000 * /* */ 00458000 * /* FRAMES ARE NOW CHECKED FOR V=R REGION. DO GETMAIN FOR PAGE AND*/ 00459000 * /* EXTERNAL PAGE TABLES. IF REGION DOES NOT BEGIN OR END ON */ 00460000 * /* SEGMENT BOUNDARY, THEN SEGMENT MAY HAVE ALREADY BE VALID. IF */ 00461000 * /* THIS IS THE CASE, FREEMAIN DUPLICATE PAGE TABLES. THEN CHECK */ 00462000 * /* THIS VALID SEGMENT TO SEE IF IT HAS ANY GETMAIN ASSIGNED PAGES*/ 00463000 * /* THAT FALL WITHIN THE BOUNDS OF THE V=R REGION. IF ANY EXISTS, */ 00464000 * /* PUT THE VSA OF THE FIRST FOUND IN THE INPUT PARAMETER AREA, */ 00465000 * /* BACKOUT ALL SEGMENTS ACQUIRED AND THEIR PAGE TABLES, AND */ 00466000 * /* RETURN TO GETPART. @ZA31128*/ 00467000 * /* */ 00468000 * /*****************************************************************/ 00469000 * 0192 00470000 * RFY 0192 00471000 * (PFTEPTR) UNRSTD; 0192 00472000 * INPSTART=STARTRBN*N256; /* CONVERT RBN TO VSA */ 00473000 L @10,STARTRBN(,PCBRPTR) 0193 00474000 LR @09,@10 0193 00475000 SLA @09,8 0193 00476000 ST @09,INPSTART(,INPUTPTR) 0193 00477000 * RGNSTART=INPSTART; 0194 00478000 ST @09,RGNSTART(,PCBRPTR) 0194 00479000 * ENDRBN=STARTRBN+DELTA; /* STORE ENDRBN IN PCBR */ 00480000 LR @09,@10 0195 00481000 AL @09,DELTA(,PCBRPTR) 0195 00482000 ST @09,ENDRBN(,PCBRPTR) 0195 00483000 * RGNEND=ENDRBN*N256; /* VSA END ADDRESS FOR V=R */ 00484000 LR @07,@09 0196 00485000 SLA @07,8 0196 00486000 ST @07,RGNEND(,PCBRPTR) 0196 00487000 * STARTSEG=STARTRBN/N256; /* START V=R SEGMENT NUMBER */ 00488000 SRL @10,8 0197 00489000 STH @10,STARTSEG(,PCBRPTR) 0197 00490000 * CURSEG=STARTSEG; 0198 00491000 STH @10,CURSEG(,PCBRPTR) 0198 00492000 * NSEG=((ENDRBN/N256)-STARTSEG)+ONE; 0199 00493000 SRL @09,8 0199 00494000 SLR @09,@10 0199 00495000 AH @09,@CH00044 0199 00496000 STH @09,NSEG(,PCBRPTR) 0199 00497000 * RESPECIFY 0200 00498000 * (REG0, 0200 00499000 * REG1, 0200 00500000 * REG4, 0200 00501000 * REG7, 0200 00502000 * REG5) RSTD; 0200 00503000 * 0200 00504000 * /*****************************************************************/ 00505000 * /* */ 00506000 * /* NOW HAVE NUMBER OF WHOLE AND PARTIAL SEGMENTS. GETMAIN GETMAIN*/ 00507000 * /* SPACE FOR 1 SET OF PAGE TABLES. */ 00508000 * /* */ 00509000 * /*****************************************************************/ 00510000 * 0201 00511000 *REATE: 0201 00512000 * SAVERCA=PVTPRCA; 0201 00513000 REATE MVC SAVERCA(4,PVTPTR),PVTPRCA(PVTPTR) 0201 00514000 * REG5=PVTPTR; 0202 00515000 LR REG5,PVTPTR 0202 00516000 * REG7=PCBRASCB; 0203 00517000 L REG7,PCBRASCB(,PCBRPTR) 0203 00518000 * REG4=PSATOLD; /* INPUT REG TO GETMAIN */ 00519000 L REG4,PSATOLD 0204 00520000 * REG0=(LENGTH(PGTPTE)+LENGTH(XPTE))*SIXTEEN; 0205 00521000 LA REG0,224 0205 00522000 * GENERATE(GETMAIN RU,LV=(0),SP=255,BRANCH=YES) ; 0206 00523000 GETMAIN RU,LV=(0),SP=255,BRANCH=YES 00524000 * PVTPTR=REG5; 0207 00525000 LR PVTPTR,REG5 0207 00526000 * PVTPRCA=SAVERCA; 0208 00527000 MVC PVTPRCA(4,PVTPTR),SAVERCA(PVTPTR) 0208 00528000 * RESPECIFY 0209 00529000 * (REG0, 0209 00530000 * REG7, 0209 00531000 * REG5) UNRSTD; 0209 00532000 * WORK=REG1; /* SAVE GETMAIN AREA ADDRESS */ 00533000 * 0210 00534000 ST REG1,WORK(,PCBRPTR) 0210 00535000 * /*****************************************************************/ 00536000 * /* */ 00537000 * /* SEE IF THE GETMAINED PAGE IS BACKED BY A V=R FRAME THAT HAS */ 00538000 * /* BEEN SELECTED FOR THIS V=R REGION. IF SO, BACKOUT MUST BE */ 00539000 * /* DONE. OTHERWISE THE ALLOCATION WILL HANG. */ 00540000 * /* */ 00541000 * /*****************************************************************/ 00542000 * 0211 00543000 * GENERATE SETS(REG0) REFS(REG1); 0211 00544000 LRA REG0,0(REG1) GET REAL ADDRESS OF LSQA PAGE @ZA10767 00545000 SRL REG0,8 CONVERT TO AN RBN @ZA10767 00546000 * IF REG0ENDRBN THEN/* IN RGN BOUNDS ? @ZA31128*/ 00547000 C REG0,STARTRBN(,PCBRPTR) 0212 00548000 BL @RT00212 0212 00549000 C REG0,ENDRBN(,PCBRPTR) 0212 00550000 BNH @RF00212 0212 00551000 @RT00212 DS 0H 0213 00552000 * DO; /* NO @ZA31128*/ 00553000 * 0213 00554000 * /*************************************************************/ 00555000 * /* */ 00556000 * /* CALL CREATE SEGMENT TO INITIALIZE SEGMENT AND PAGE TABLES */ 00557000 * /* FOR V=R. XPTES ARE CREATED FOR V=R BUT ARE NEVER USED */ 00558000 * /* SINCE THE REGION IS NOT PAGEABLE. IEAVCSGB CAN RETURN 3 */ 00559000 * /* RETURN CODES. 0 MEANS SUCCESSFUL, 4 MEANS UNSUCCESSFUL */ 00560000 * /* (UNPREDICTABLE ERROR), AND 8 MEANS UNSUCCESSFUL (REQUESTED*/ 00561000 * /* SEGMENT ALREADY VALID). */ 00562000 * /* */ 00563000 * /*************************************************************/ 00564000 * 0214 00565000 * CSGBRC=ZERO; /* RETURN CODE WILL BE STORED 0214 00566000 * HERE @Z30GNYD*/ 00567000 SLR @10,@10 0214 00568000 ST @10,CSGBRC(,REG13) 0214 00569000 * REG4=REG13; /* SAVE SAVE AREA ADDRESS */ 00570000 LR REG4,REG13 0215 00571000 * RESPECIFY 0216 00572000 * REG0 RSTD; 0216 00573000 * REG0=N256; /* 1 SEG TO CREATE @ZA31128*/ 00574000 LA REG0,256 0217 00575000 * GENERATE(ICM REG0,1,CURSEG+1(PCBRPTR)) ; 0218 00576000 * 0218 00577000 ICM REG0,1,CURSEG+1(PCBRPTR) 00578000 * /*************************************************************/ 00579000 * /* */ 00580000 * /* 0000NNXX START SEGMENT NUMBER */ 00581000 * /* */ 00582000 * /*************************************************************/ 00583000 * 0219 00584000 * REG13=WSALRSM; /* CREATE SEGMENTS SAVE AREA 0219 00585000 * @ZA30930*/ 00586000 L @10,ASCBPTR 0219 00587000 L @10,ASXBPTR(,@10) 0219 00588000 L @10,ASXBSPSA(,@10) 0219 00589000 L REG13,WSALRSM(,@10) 0219 00590000 * CALL IEAVCSGB; /* CALL CREATE SEGMENT */ 00591000 L @15,PVTPCSGB(,PVTPTR) 0220 00592000 BALR @14,@15 0220 00593000 * RESPECIFY 0221 00594000 * RCODE RSTD; 0221 00595000 * RCACSECT=RCACVR; 0222 00596000 L @14,PVTPRCA(,PVTPTR) 0222 00597000 MVI RCACSECT(@14),X'05' 0222 00598000 * RCAVEQR=ON; 0223 00599000 OI RCAVEQR(@14),B'00001000' 0223 00600000 * REG13=REG4; 0224 00601000 LR REG13,REG4 0224 00602000 * RESPECIFY 0225 00603000 * (REG1, 0225 00604000 * REG4, 0225 00605000 * REG0) UNRSTD; 0225 00606000 * IF RCODE=ZERO THEN /* NEW SEG CREATED ? */ 00607000 LTR RCODE,RCODE 0226 00608000 BNZ @RF00226 0226 00609000 * DO; /* YES, REG0 HAS ADDR FIRST PGTE */ 00610000 * IF CURSEG=ENDRBN/256 THEN/* ALL SEGS CREATED ? */ 00611000 LH @14,CURSEG(,PCBRPTR) 0228 00612000 L @10,ENDRBN(,PCBRPTR) 0228 00613000 SRL @10,8 0228 00614000 CR @14,@10 0228 00615000 BE @RT00228 0228 00616000 * GOTO LOCALQ; /* YES */ 00617000 * ELSE /* MORE SEGS TO CREATE @ZA31128*/ 00618000 * DO; /* @ZA31128*/ 00619000 * CURSEG=CURSEG+1; /* NO, INCRE CURRENT SEGMENT */ 00620000 AH @14,@CH00044 0231 00621000 STH @14,CURSEG(,PCBRPTR) 0231 00622000 * GOTO REATE; /* LOOP AROUND */ 00623000 B REATE 0232 00624000 * END; /* @ZA31128*/ 00625000 * END; 0234 00626000 * 0234 00627000 * /*************************************************************/ 00628000 * /* */ 00629000 * /* CRSEG RC IS EITHER 4 OR 8. IF 8, REG0 CONTAINS SEGMENT */ 00630000 * /* NUMBER OF A SEGMENT THAT IS ALREADY VALID. SAVE IT AND THE*/ 00631000 * /* RETURN CODE. @ZA31128*/ 00632000 * /* */ 00633000 * /*************************************************************/ 00634000 * 0235 00635000 * SEGID=REG0; /* YES, SAVE ALREADY VALID SEG ID*/ 00636000 @RF00226 STH REG0,SEGID(,PCBRPTR) 0235 00637000 * CSGBRC=RCODE; /* SAVE RETURN CODE FROM CRSEG */ 00638000 ST RCODE,CSGBRC(,REG13) 0236 00639000 * END; /* @ZA31128*/ 00640000 * ELSE /* PGT BACKED BY FRAME IN RGN 0238 00641000 * @ZA31128*/ 00642000 * CSGBRC=FOUR; /* BACKOUT ALL SEGMENTS ACQUIRED 00643000 * @ZA31128*/ 00644000 * 0238 00645000 B @RC00212 0238 00646000 @RF00212 MVC CSGBRC(4,REG13),@CF00036 0238 00647000 * /*****************************************************************/ 00648000 * /* */ 00649000 * /* FREEMAIN THE PAGE TABLES THAT WERE GETMAINED FOR THE SEGMENT */ 00650000 * /* WE JUST TRIED TO CREATE. @ZA31128*/ 00651000 * /* */ 00652000 * /*****************************************************************/ 00653000 * 0239 00654000 * RESPECIFY 0239 00655000 * (REG7, 0239 00656000 * REG4, 0239 00657000 * REG1, 0239 00658000 * REG0, 0239 00659000 * REG5) RSTD; 0239 00660000 @RC00212 DS 0H 0240 00661000 * SAVERCA=PVTPRCA; 0240 00662000 MVC SAVERCA(4,PVTPTR),PVTPRCA(PVTPTR) 0240 00663000 * REG5=PVTPTR; 0241 00664000 LR REG5,PVTPTR 0241 00665000 * REG7=PSAAOLD; /* ASCB ADDRESS */ 00666000 L REG7,PSAAOLD 0242 00667000 * REG4=PSATOLD; /* ZERO TCB ADDRESS */ 00668000 L REG4,PSATOLD 0243 00669000 * REG0=16*(LENGTH(PGTPTE)+LENGTH(XPTE)); 0244 00670000 LA REG0,224 0244 00671000 * REG1=WORK; 0245 00672000 L REG1,WORK(,PCBRPTR) 0245 00673000 * GEN(FREEMAIN RC,LV=(0),SP=255,A=(1),BRANCH=YES) ; 0246 00674000 FREEMAIN RC,LV=(0),SP=255,A=(1),BRANCH=YES 00675000 * PVTPTR=REG5; 0247 00676000 LR PVTPTR,REG5 0247 00677000 * PVTPRCA=SAVERCA; 0248 00678000 MVC PVTPRCA(4,PVTPTR),SAVERCA(PVTPTR) 0248 00679000 * IF CSGBRC=FOUR THEN /* CRSEG ERROR OR V=R RGN FRAME 00680000 * BACKING PAGE TABLES ? @ZA31128*/ 00681000 CLC CSGBRC(4,REG13),@CF00036 0249 00682000 BNE @RF00249 0249 00683000 * DO; /* YES @ZA31128*/ 00684000 *RSMERROR: 0251 00685000 * DO WHILE STARTSEG^=CURSEG; /* DESTROY ALL SEGS CREATED 0251 00686000 * @ZA31128*/ 00687000 RSMERROR B @DE00251 0251 00688000 @DL00251 DS 0H 0252 00689000 * REG0=STARTSEG; /* SEG TO DESTROY */ 00690000 LH REG0,STARTSEG(,PCBRPTR) 0252 00691000 * RFY 0253 00692000 * REG1 RSTD; 0253 00693000 * CALL IEAVDSEG; /* CALL DESTROY SEGMENT */ 00694000 L @15,PVTPDSEG(,PVTPTR) 0254 00695000 BALR @14,@15 0254 00696000 * RCACSECT=RCACVR; 0255 00697000 L @14,PVTPRCA(,PVTPTR) 0255 00698000 MVI RCACSECT(@14),X'05' 0255 00699000 * RCAVEQR=ON; 0256 00700000 * 0256 00701000 OI RCAVEQR(@14),B'00001000' 0256 00702000 * /***********************************************************/ 00703000 * /* */ 00704000 * /* IF REG1 = 0 THEN DESTROY COULD NOT DESTROY SEGMENT */ 00705000 * /* */ 00706000 * /***********************************************************/ 00707000 * 0257 00708000 * IF REG1^=0 THEN /* @ZA31128*/ 00709000 LTR REG1,REG1 0257 00710000 BZ @RF00257 0257 00711000 * DO; /* FREEMAN PGT/XPT @ZA31128*/ 00712000 * SAVERCA=PVTPRCA; 0259 00713000 ST @14,SAVERCA(,PVTPTR) 0259 00714000 * REG5=PVTPTR; 0260 00715000 LR REG5,PVTPTR 0260 00716000 * REG7=PSAAOLD; /* ASCB ADDRESS */ 00717000 L REG7,PSAAOLD 0261 00718000 * REG4=PSATOLD; /* ZERO TCB ADDRESS */ 00719000 L REG4,PSATOLD 0262 00720000 * REG0=SIXTEEN*(LENGTH(PGTPTE)+LENGTH(XPTE)); 0263 00721000 LA REG0,224 0263 00722000 * GEN(FREEMAIN RC,LV=(0),SP=255,A=(1),BRANCH=YES) ; 0264 00723000 FREEMAIN RC,LV=(0),SP=255,A=(1),BRANCH=YES 00724000 * RFY 0265 00725000 * REG1 UNRSTD; 0265 00726000 * PVTPTR=REG5; 0266 00727000 LR PVTPTR,REG5 0266 00728000 * PVTPRCA=SAVERCA; 0267 00729000 * 0267 00730000 L @14,SAVERCA(,PVTPTR) 0267 00731000 ST @14,PVTPRCA(,PVTPTR) 0267 00732000 * /*******************************************************/ 00733000 * /* */ 00734000 * /* IF NOT ZERO RETURN CODE, ABEND C0D AND CONTINUE */ 00735000 * /* */ 00736000 * /*******************************************************/ 00737000 * 0268 00738000 * IF RCODE^=0 THEN 0268 00739000 LTR RCODE,RCODE 0268 00740000 BZ @RF00268 0268 00741000 * DO; /* @ZA31128*/ 00742000 * RCARCRD=3; 0270 00743000 MVI RCARCRD(@14),X'03' 0270 00744000 * GEN(ABEND X'C0D',,,SYSTEM) ; 0271 00745000 ABEND X'C0D',,,SYSTEM 00746000 * END; 0272 00747000 * END; /* @ZA31128*/ 00748000 @RF00268 DS 0H 0274 00749000 * STARTSEG=STARTSEG+1; /* NEXT SEGMENT @ZA31128*/ 00750000 @RF00257 LA @14,1 0274 00751000 AH @14,STARTSEG(,PCBRPTR) 0274 00752000 STH @14,STARTSEG(,PCBRPTR) 0274 00753000 * END; 0275 00754000 * 0275 00755000 @DE00251 CLC STARTSEG(2,PCBRPTR),CURSEG(PCBRPTR) 0275 00756000 BNE @DL00251 0275 00757000 * /*************************************************************/ 00758000 * /* */ 00759000 * /* ALL CREATED SEGMENTS HAVE BEEN DESTROYED. */ 00760000 * /* */ 00761000 * /*************************************************************/ 00762000 * 0276 00763000 * IF INPSPEC=ON THEN /* SPECIFIC REQUEST ? @ZA31128*/ 00764000 TM INPSPEC(INPUTPTR),B'10000000' 0276 00765000 BNO @RF00276 0276 00766000 * S15=SIXTEEN; /* YES, RC=16 @ZA31128*/ 00767000 MVC S15(4,REG13),@CF00040 0277 00768000 * ELSE /* NO @ZA31128*/ 00769000 * S15=EIGHT; /* RC=8 @ZA31128*/ 00770000 B @RC00276 0278 00771000 @RF00276 MVC S15(4,REG13),@CF00038 0278 00772000 * GOTO EXITCLR; /* GOTO EXIT AND RETURN @Z30GNYD*/ 00773000 B EXITCLR 0279 00774000 * END; /* @ZA31128*/ 00775000 * 0280 00776000 * /*****************************************************************/ 00777000 * /* */ 00778000 * /* A VALID SEGMENT WAS FOUND WITHIN V=R REGION SEGMENTS (CRSEG */ 00779000 * /* RETURN CODE = 8). IF THE SEGMENT IS THE FIRST OR LAST AND NO */ 00780000 * /* PAGE THAT IS WITHIN THE V=R REGION IS GETMAIN ASSIGNED, THEN */ 00781000 * /* EVERYTHING IS O.K. THE DUPLICATE SET OF PAGE TABLES HAS */ 00782000 * /* ALREADY BEEN FREEMAINED. */ 00783000 * /* */ 00784000 * /*****************************************************************/ 00785000 * 0281 00786000 * ELSE /* CRSEG RC WAS 8 @ZA31128*/ 00787000 * DO; /* @ZA31128*/ 00788000 @RF00249 DS 0H 0282 00789000 * RESPECIFY 0282 00790000 * (REG7, 0282 00791000 * REG4, 0282 00792000 * REG5) UNRSTD; /* @ZA31128*/ 00793000 * REG1=SEGID*K64; /* VSA OF SEGMENT @ZA31128*/ 00794000 LH REG1,SEGID(,PCBRPTR) 0283 00795000 SLA REG1,16 0283 00796000 * RESPECIFY 0284 00797000 * CURVSA RSTD; 0284 00798000 * CURVSA=REG1; /* CURRENT ADDRESS */ 00799000 LR CURVSA,REG1 0285 00800000 * CALL IEAVFP2; /* FIND PGTE FOR SEGMENT */ 00801000 L @15,PVTPFP2(,PVTPTR) 0286 00802000 BALR @14,@15 0286 00803000 * IF RCODE^=ZERO THEN /* FINDPAGE ERROR ? */ 00804000 LTR RCODE,RCODE 0287 00805000 BZ @RF00287 0287 00806000 * DO; /* YES, RECORD IT */ 00807000 * RCARCRD=1; 0289 00808000 L @01,PVTPRCA(,PVTPTR) 0289 00809000 MVI RCARCRD(@01),X'01' 0289 00810000 * GENERATE(ABEND X'C0D',,,SYSTEM) ; 0290 00811000 ABEND X'C0D',,,SYSTEM 00812000 * GOTO RSMERROR; /* FREEMAIN ALL GOTTEN AREA */ 00813000 B RSMERROR 0291 00814000 * END; 0292 00815000 * RESPECIFY 0293 00816000 * PTEPTR RSTD; 0293 00817000 @RF00287 DS 0H 0294 00818000 * PTEPTR=REG0; /* PGTE RELATED TO VSA */ 00819000 * 0294 00820000 LR PTEPTR,REG0 0294 00821000 * /*************************************************************/ 00822000 * /* */ 00823000 * /* CHECK EACH PGTE FOR ASSIGNED BIT. IF ON AND PAGE IS IN V=R*/ 00824000 * /* REGION THEN FREEMAIN DUPLICATE PAGE TABLES. @ZA31128*/ 00825000 * /* */ 00826000 * /*************************************************************/ 00827000 * 0295 00828000 * DO REG0=16 TO 1 BY-1; /* LOOK AT ALL PGTES @ZA31128*/ 00829000 * 0295 00830000 LA REG0,16 0295 00831000 @DL00295 DS 0H 0296 00832000 * /***********************************************************/ 00833000 * /* */ 00834000 * /* SEE IF THE PAGE IS GETMAIN ASSIGNED AND IN THE V=R */ 00835000 * /* REGION. (NOTE: FOR CONVENIENCE, ALL 16 PGTE'S ARE */ 00836000 * /* CHECKED EVEN THOUGH ONCE THE FIRST PGTE FOR A PAGE ABOVE*/ 00837000 * /* THE V=R REGION IS FOUND, IT IS NOT NECESSARY TO CHECK */ 00838000 * /* FURTHER.) @ZA31128*/ 00839000 * /* */ 00840000 * /***********************************************************/ 00841000 * 0296 00842000 * IF PGTPAM=ON& /* IF GETMAIN ASSIGNED, @ZA31128*/ 00843000 * CURVSA>=INPSTART& /* AND WITHIN THE V=R @ZA31128*/ 00844000 * CURVSA<(INPSTART+(INPAGES*K4)) THEN/* RGN THEN @ZA31128*/ 00845000 TM PGTPAM(PTEPTR),B'00000001' 0296 00846000 BNO @RF00296 0296 00847000 L @14,INPSTART(,INPUTPTR) 0296 00848000 CR CURVSA,@14 0296 00849000 BL @RF00296 0296 00850000 LH @10,INPAGES(,INPUTPTR) 0296 00851000 SLA @10,12 0296 00852000 ALR @14,@10 0296 00853000 CR CURVSA,@14 0296 00854000 BNL @RF00296 0296 00855000 * DO; /* MUST BACKOUT CREATED SEGS */ 00856000 * INPSTART=CURVSA; /* RETURN OVERLAP ADDRESS */ 00857000 ST CURVSA,INPSTART(,INPUTPTR) 0298 00858000 * GOTO RSMERROR; 0299 00859000 B RSMERROR 0299 00860000 * END; /* @ZA31128*/ 00861000 * ELSE /* @ZA31128*/ 00862000 * DO; /* @ZA31128*/ 00863000 @RF00296 DS 0H 0302 00864000 * CURVSA=CURVSA+K4; /* INCRE TO NEXT PAGE */ 00865000 AL CURVSA,@CF00054 0302 00866000 * PTEPTR=PTEPTR+LENGTH(PGTPTE); 0303 00867000 AH PTEPTR,@CH00058 0303 00868000 * END; /* @ZA31128*/ 00869000 * END; /* @ZA31128*/ 00870000 * 0305 00871000 BCTR REG0,0 0305 00872000 LTR REG0,REG0 0305 00873000 BP @DL00295 0305 00874000 * /*************************************************************/ 00875000 * /* */ 00876000 * /* ALL PGTES FOR THE SEGMENT HAVE BEEN CHECKED, AND THERE */ 00877000 * /* WERE NO GETMAIN ASSIGNED PAGES IN THE V=R REGION. SEE IF */ 00878000 * /* MORE SEGMENTS ARE REQUIRED. @ZA31128*/ 00879000 * /* */ 00880000 * /*************************************************************/ 00881000 * 0306 00882000 * NSEG=NSEG-1; /* DECR NUMBER OF SEGS REQ'D */ 00883000 * 0306 00884000 LH @14,NSEG(,PCBRPTR) 0306 00885000 BCTR @14,0 0306 00886000 STH @14,NSEG(,PCBRPTR) 0306 00887000 * /*************************************************************/ 00888000 * /* */ 00889000 * /* IF MORE THAN 1 SEGMENT REQUIRED, THEN RESET STARTSEG AND */ 00890000 * /* CURSEG, AND GO GETMAIN PAGE TABLES AND CREATE REMAINING */ 00891000 * /* SEGMENTS. @ZA31128*/ 00892000 * /* */ 00893000 * /*************************************************************/ 00894000 * 0307 00895000 * IF NSEG^=ZERO THEN /* MORE THAN 1 SEG REQ'D ? 0307 00896000 * @ZA31128*/ 00897000 LTR @14,@14 0307 00898000 BZ @RF00307 0307 00899000 * DO; /* YES @ZA31128*/ 00900000 * IF SEGID=STARTSEG THEN /* OVERLAP IN 1ST SEG ? @ZA31128*/ 00901000 LH @14,STARTSEG(,PCBRPTR) 0309 00902000 CH @14,SEGID(,PCBRPTR) 0309 00903000 BNE @RF00309 0309 00904000 * DO; /* YES */ 00905000 * STARTSEG=STARTSEG+1; 0311 00906000 AH @14,@CH00044 0311 00907000 STH @14,STARTSEG(,PCBRPTR) 0311 00908000 * CURSEG=STARTSEG; 0312 00909000 STH @14,CURSEG(,PCBRPTR) 0312 00910000 * GOTO REATE; /* GOTO GETMAIN AND CREATE AGAIN */ 00911000 B REATE 0313 00912000 * END; 0314 00913000 * END; 0315 00914000 @RF00309 DS 0H 0316 00915000 * END; /* END CRSEG RC WAS 8 @ZA31128*/ 00916000 @RF00307 DS 0H 0317 00917000 * RESPECIFY 0317 00918000 * (CURVSA, 0317 00919000 * PTEPTR, 0317 00920000 * REG0, 0317 00921000 * REG1) UNRSTD; 0317 00922000 * 0318 00923000 * /*****************************************************************/ 00924000 * /* */ 00925000 * /* AT THIS POINT IN THE PROGRAM, ALL V=R REGION FRAMES HAVE PAGE */ 00926000 * /* TABLES SET UP FOR THEM. NOW CHECK WHAT QUEUE THE FRAME IS ON. */ 00927000 * /* THE FIRST AND LAST V=R PGTE PAM BIT MUST BE TURNED ON TO */ 00928000 * /* PREVENT SEGMENT INVALIDATION. */ 00929000 * /* */ 00930000 * /*****************************************************************/ 00931000 * 0318 00932000 * RFY 0318 00933000 * (PTEPTR, 0318 00934000 * REG0, 0318 00935000 * REG1, 0318 00936000 * REG5) RSTD; 0318 00937000 *LOCALQ: 0319 00938000 * REG5=STARTRBN; /* DO FIRST RBN */ 00939000 * 0319 00940000 LOCALQ L REG5,STARTRBN(,PCBRPTR) 0319 00941000 * /*****************************************************************/ 00942000 * /* */ 00943000 * /* CALL FINDPAGE FOR PGTE ADDRESS OF FIRST V=R REGION PAGE. */ 00944000 * /* INDICATE THAT IT IS GETMAINED ASSIGNED. THEN REPEAT FOR THE */ 00945000 * /* LAST V=R REGION PAGE. */ 00946000 * /* */ 00947000 * /*****************************************************************/ 00948000 * 0320 00949000 *PAMIT: 0320 00950000 * REG1=REG5*256; /* GET VIRTUAL ADDRESS */ 00951000 PAMIT LR REG1,REG5 0320 00952000 SLA REG1,8 0320 00953000 * CALL IEAVFP2; /* GET PGTE ADDRESS */ 00954000 L @15,PVTPFP2(,PVTPTR) 0321 00955000 BALR @14,@15 0321 00956000 * IF RCODE^=0 THEN 0322 00957000 LTR RCODE,RCODE 0322 00958000 BZ @RF00322 0322 00959000 * DO; /* IF 0 CONTINUE, ELSE CLEAN UP 00960000 * AREA */ 00961000 * RCARCRD=1; /* TURN ON INDICATOR */ 00962000 L @14,PVTPRCA(,PVTPTR) 0324 00963000 MVI RCARCRD(@14),X'01' 0324 00964000 * GEN( ABEND X'C0D',,,SYSTEM) ; 0325 00965000 ABEND X'C0D',,,SYSTEM 00966000 * GOTO RSMERROR; /* GO CLEAN UP REGION */ 00967000 B RSMERROR 0326 00968000 * END; 0327 00969000 * PTEPTR=REG0; /* SET UP PGTE ADDRESS */ 00970000 @RF00322 LR PTEPTR,REG0 0328 00971000 * PGTPAM='1'B; /* TURN ON PAM BIT */ 00972000 * 0329 00973000 OI PGTPAM(PTEPTR),B'00000001' 0329 00974000 * /*****************************************************************/ 00975000 * /* */ 00976000 * /* IF MOTION IS 0 THEN WORKING ON FIRST PGTE. IF NOT THEN ON LAST*/ 00977000 * /* */ 00978000 * /*****************************************************************/ 00979000 * 0330 00980000 * IF MOTION=OFF THEN /* FIRST PASS THROUGH @Z30GNYD*/ 00981000 TM MOTION(REG13),B'10000000' 0330 00982000 BNZ @RF00330 0330 00983000 * DO; 0331 00984000 * MOTION=ON; /* INDICATE SECOND TIME THROUGH 00985000 * @Z30GNYD*/ 00986000 OI MOTION(REG13),B'10000000' 0332 00987000 * REG5=ENDRBN; /* DO LAST RBN */ 00988000 L REG5,ENDRBN(,PCBRPTR) 0333 00989000 * GOTO PAMIT; /* NOW TURN ON LAST PGTE PAM BIT */ 00990000 B PAMIT 0334 00991000 * END; 0335 00992000 * MOTION=OFF; /* RESET MOTION */ 00993000 @RF00330 NI MOTION(REG13),B'01111111' 0336 00994000 * RFY 0337 00995000 * (REG0, 0337 00996000 * REG5, 0337 00997000 * PTEPTR) UNRSTD; 0337 00998000 * PCBRCNT=ZERO; /* INIT COUNTER TO ZERO */ 00999000 SLR @14,@14 0338 01000000 STH @14,PCBRCNT(,PCBRPTR) 0338 01001000 * RFY 0339 01002000 * PFTEPTR RSTD; 0339 01003000 * PFTEPTR=STARTRBN+PVTPFTP; /* FIRST PFTE ADDR IN REGION */ 01004000 * 0340 01005000 L PFTEPTR,STARTRBN(,PCBRPTR) 0340 01006000 AL PFTEPTR,PVTPFTP(,PVTPTR) 0340 01007000 * /*****************************************************************/ 01008000 * /* */ 01009000 * /* TURN ON THE V=R INTERCEPTED FLAG IN ALL PFTE'S OF THE V=R */ 01010000 * /* REGION BEING ALLOCATED. THIS IS DONE TO PREVENT THE ALLOCATION*/ 01011000 * /* FROM HANGING, WHICH CAN OCCUR AS FOLLOWS. DURING A PAGEOUT */ 01012000 * /* FROM V=R MAINLINE, IEAVSQA COULD TAKE A FRAME IN THE POTENTIAL*/ 01013000 * /* V=R REGION IN ORDER TO BACK AN SQA GETMAIN REQUEST THAT */ 01014000 * /* RESULTED FROM EXPANSION OF THE PCB POOL IN ORDER TO GET A PCB */ 01015000 * /* FOR THE PAGEOUT. IEAVSQA WILL RECOGNIZE AN INTERCEPTED FRAME, */ 01016000 * /* AND WILL CALL V=R INTERCEPT WITH THE ROOT FAIL FLAG ON TO FAIL*/ 01017000 * /* THE ALLOCATION. HOWEVER, IF THE FRAME WAS NOT INTERCEPTED, THE*/ 01018000 * /* ALLOCATION WILL HANG SINCE THE FRAME WILL NEVER BE FREED. */ 01019000 * /* */ 01020000 * /*****************************************************************/ 01021000 * 0341 01022000 * RFY 0341 01023000 * COUNT RSTD; /* @ZA10767*/ 01024000 * REG1=PFTEPTR; /* INIT FRAME POINTER @ZA10767*/ 01025000 LR REG1,PFTEPTR 0342 01026000 * DO COUNT=INPAGES TO 1 BY-1; /* @ZA10767*/ 01027000 LH COUNT,INPAGES(,INPUTPTR) 0343 01028000 B @DE00343 0343 01029000 @DL00343 DS 0H 0344 01030000 * REG1->PFTVRINT='1'B; /* INDICATE FRAME INTERCEPTED 0344 01031000 * @ZA10767*/ 01032000 OI PFTVRINT(REG1),B'01000000' 0344 01033000 * REG1=REG1+LENGTH(PFTE); /* POINT TO NEXT PFTE @ZA10767*/ 01034000 AL REG1,@CF00040 0345 01035000 * END; /* @ZA10767*/ 01036000 BCTR COUNT,0 0346 01037000 @DE00343 LTR COUNT,COUNT 0346 01038000 BP @DL00343 0346 01039000 * RFY 0347 01040000 * (COUNT, 0347 01041000 * REG1) UNRSTD; /* @ZA10767*/ 01042000 * 0347 01043000 * /*****************************************************************/ 01044000 * /* */ 01045000 * /* EXAMINE EACH FRAME CHOSEN FOR THE V=R REGION. IF IT IS ON THE */ 01046000 * /* AFQ (IE. IS AVAILABLE NOW), MOVE IT TO THE LOCAL FRAME QUEUE. */ 01047000 * /* @ZA31128*/ 01048000 * /* */ 01049000 * /*****************************************************************/ 01050000 * 0348 01051000 * DO WORK=INPAGES TO 1 BY-1; /* CHECK EACH FRAME @ZA31128*/ 01052000 LH @14,INPAGES(,INPUTPTR) 0348 01053000 ST @14,WORK(,PCBRPTR) 0348 01054000 B @DE00348 0348 01055000 @DL00348 DS 0H 0349 01056000 * IF PFTONAVQ=ON THEN /* IS FRAME ON AFQ ? */ 01057000 TM PFTONAVQ(PFTEPTR),B'10000000' 0349 01058000 BNO @RF00349 0349 01059000 * DO; /* FRAME IS ON AFQ */ 01060000 * RESPECIFY 0351 01061000 * REG1 RSTD; 0351 01062000 * RSMHDPTR=ASCBRSM; /* RESTORE RSMHD POINTER @YA01572*/ 01063000 L @14,ASCBPTR 0352 01064000 L RSMHDPTR,ASCBRSM(,@14) 0352 01065000 * RSMCNTFX=RSMCNTFX+1; /* INCREMENT LOCAL FIX COUNT 0353 01066000 * @YA01572*/ 01067000 LA @14,1 0353 01068000 LH @10,RSMCNTFX(,RSMHDPTR) 0353 01069000 ALR @10,@14 0353 01070000 STH @10,RSMCNTFX(,RSMHDPTR) 0353 01071000 * PVTCNTFX=PVTCNTFX+1; /* INCREMENT SYSTEM COUNT 0354 01072000 * @YA01572*/ 01073000 AH @14,PVTCNTFX(,PVTPTR) 0354 01074000 STH @14,PVTCNTFX(,PVTPTR) 0354 01075000 * IF PVTCNTFX=PVTMAXFX THEN /* HAS THE FIX COUNT THRESHOLD 0355 01076000 * BEEN REACHED */ 01077000 CH @14,PVTMAXFX(,PVTPTR) 0355 01078000 BNE @RF00355 0355 01079000 * DO; /* YES, NOTIFY SRM @YA01572*/ 01080000 * REG1=FOUR; /* GET CODE FOR FIX THRESHOLD 0357 01081000 * REACHED @YA01572*/ 01082000 LA REG1,4 0357 01083000 * REG2=REG13; /* SAVE REGISTER 13 ACROSS 0358 01084000 * SYSEVENT @YA01572*/ 01085000 LR REG2,REG13 0358 01086000 * REG13=ADDR(PVTSAVE); /* GET SRM A SAVE AREA @YA01572*/ 01087000 * 0359 01088000 LA REG13,PVTSAVE(,PVTPTR) 0359 01089000 * /*******************************************************/ 01090000 * /* */ 01091000 * /* NOTIFY SRM THAT THE FIXED THRESHOLD HAS BEEN REACHED*/ 01092000 * /* */ 01093000 * /*******************************************************/ 01094000 * 0360 01095000 * GEN REFS(CVT,CVTPTR,CVTOPTE) SETS(REG0,REG14,REG15) 0360 01096000 * (SYSEVENT AVQLOW,ENTRY=BRANCH); 0360 01097000 SYSEVENT AVQLOW,ENTRY=BRANCH 01098000 * REG13=REG2; /* RESTORE REG13 @YA01572*/ 01099000 LR REG13,REG2 0361 01100000 * RSMHDPTR=ASCBRSM; /* RESTORE RSMHD POINTER @YA01572*/ 01101000 L @14,ASCBPTR 0362 01102000 L RSMHDPTR,ASCBRSM(,@14) 0362 01103000 * END; 0363 01104000 * PFTASID=ASCBASID; /* PUT ASID IN PFTE */ 01105000 @RF00355 L @14,ASCBPTR 0364 01106000 MVC PFTASID(2,PFTEPTR),ASCBASID(@14) 0364 01107000 * PFTVBN=PFTEPTR-PVTPFTP; 0365 01108000 LR @14,PFTEPTR 0365 01109000 SL @14,PVTPFTP(,PVTPTR) 0365 01110000 STH @14,PFTVBN(,PFTEPTR) 0365 01111000 * PFTVRALC=ON; /* TURN ON VRALC BIT */ 01112000 * PFTVRINT='0'B; /* TURN OFF V=R INTCPTD @ZA10767*/ 01113000 OI PFTVRALC(PFTEPTR),B'00000010' 0367 01114000 NI PFTVRINT(PFTEPTR),B'10111111' 0367 01115000 * PFTIRRG='0'B; 0368 01116000 NI PFTIRRG(PFTEPTR),B'11101111' 0368 01117000 * RESPECIFY 0369 01118000 * REG0 RSTD; 0369 01119000 * REG0=PFTLFQN; 0370 01120000 LA REG0,128 0370 01121000 * GENERATE; 0371 01122000 SLL REG0,16 GET NUMBER IN HIGH ORDER BYTES 01123000 ICM REG0,3,PFTVBN(PFTEPTR) INSERT VBN 01124000 * REG1=PCBRASCB; 0372 01125000 L REG1,PCBRASCB(,PCBRPTR) 0372 01126000 * CALL IEAPFTE; /* MOVE PFTE TO LOCAL QUEUE */ 01127000 L @15,PVTPFTE(,PVTPTR) 0373 01128000 BALR @14,@15 0373 01129000 * RESPECIFY 0374 01130000 * (REG0, 0374 01131000 * REG1) UNRSTD; 0374 01132000 * END; 0375 01133000 * ELSE /* FRAME NOT ON AFQ */ 01134000 * DO; 0376 01135000 * 0376 01136000 B @RC00349 0376 01137000 @RF00349 DS 0H 0377 01138000 * /***********************************************************/ 01139000 * /* */ 01140000 * /* PLACE THE ROOT PCB ON THE V=R ROOT QUEUE (IF IT IS NOT */ 01141000 * /* ALREADY THERE) SINCE AT LEAST ONE FRAME IS STILL MARKED */ 01142000 * /* AS INTERCEPTED. */ 01143000 * /* */ 01144000 * /***********************************************************/ 01145000 * 0377 01146000 * IF PVTVROOT^=PCBRPTR THEN /* ROOT ALREADY ON Q ? */ 01147000 L @14,PVTVROOT(,PVTPTR) 0377 01148000 CR @14,PCBRPTR 0377 01149000 BE @RF00377 0377 01150000 * DO; /* NO, ENQUEUE IT */ 01151000 * PCBRECB=INPECBP; 0379 01152000 MVC PCBRECB(4,PCBRPTR),INPECBP(INPUTPTR) 0379 01153000 * NEXTPCB=PVTVROOT; 0380 01154000 ST @14,NEXTPCB(,PCBRPTR) 0380 01155000 * PVTVROOT=PCBRPTR; 0381 01156000 ST PCBRPTR,PVTVROOT(,PVTPTR) 0381 01157000 * PCBRLOAD='1'B; /* INDICATE MAINLINE IS STILL 0382 01158000 * SCANNING */ 01159000 OI PCBRLOAD(PCBRPTR),B'00000100' 0382 01160000 * END; 0383 01161000 * PCBRCNT=PCBRCNT+ONE; /* COUNT UNAVAILABLE FRAMES */ 01162000 * 0384 01163000 @RF00377 LA @14,1 0384 01164000 AH @14,PCBRCNT(,PCBRPTR) 0384 01165000 STH @14,PCBRCNT(,PCBRPTR) 0384 01166000 * /***********************************************************/ 01167000 * /* */ 01168000 * /* IF THE FRAME IS FOR VIO, A PAGEOUT CANNOT BE DONE SINCE */ 01169000 * /* THERE IS NO ASID IN THE PFTE. A PAGEOUT CAN ONLY BE DONE*/ 01170000 * /* FOR A FRAME THAT BELONGS TO THE CURRENT ADDRESS SPACE OR*/ 01171000 * /* THE COMMON AREA, AND DOES NOT HAVE I/O IN PROGRESS FOR */ 01172000 * /* IT. (NOTE: THE TEST FOR A FIXED FRAME IS REMOVED BY APAR*/ 01173000 * /* OZ31128, SINCE ANY FIXES WOULD HAVE HAD PFTVRPLT ON, AND*/ 01174000 * /* THEREFORE WOULD HAVE BEEN SKIPPED.) @ZA31128*/ 01175000 * /* */ 01176000 * /***********************************************************/ 01177000 * 0385 01178000 * RFY 0385 01179000 * REG1 RSTD; 0385 01180000 * IF PFTIRRG=OFF& /* IF FRAME NOT IRREG, AND 0386 01181000 * @ZA31128*/ 01182000 * (PFTASID=ASCBASID|PFTASID=COMASID)&/* COMMON OR 0386 01183000 * CURRENT, AND */ 01184000 * PFTPCBSI=OFF THEN /* NO I/O, THEN PAGE OUT @ZA31128*/ 01185000 TM PFTIRRG(PFTEPTR),B'00010000' 0386 01186000 BNZ @RF00386 0386 01187000 L @14,ASCBPTR 0386 01188000 CLC PFTASID(2,PFTEPTR),ASCBASID(@14) 0386 01189000 BE @GL00010 0386 01190000 CLC PFTASID(2,PFTEPTR),COMASID 0386 01191000 BNE @RF00386 0386 01192000 @GL00010 TM PFTPCBSI(PFTEPTR),B'00001000' 0386 01193000 BNZ @RF00386 0386 01194000 * DO; 0387 01195000 * REG0=0; /* ZERO ECB ADDRESS */ 01196000 SLR REG0,REG0 0388 01197000 * REG1=PFTVBN*256; /* VIRTUAL BEGIN ADDRESS */ 01198000 SLR REG1,REG1 0389 01199000 ICM REG1,3,PFTVBN(PFTEPTR) 0389 01200000 SLA REG1,8 0389 01201000 * REG2=REG1+4096; /* VIRTUAL END ADDRESS */ 01202000 LR REG2,REG1 0390 01203000 AL REG2,@CF00054 0390 01204000 * GEN SETS(REG2) REFS(PGOUT)(ICM REG2,8,PGOUT); 0391 01205000 ICM REG2,8,PGOUT 01206000 * REG4=PSATOLD; /* CURRENT ASCB */ 01207000 L REG4,PSATOLD 0392 01208000 * CALL PSII; /* BRANCH ENTRY TO PSI */ 01209000 L @15,PVTPSINT(,PVTPTR) 0393 01210000 BALR @14,@15 0393 01211000 * REG2=ASCBRSM; /* RESTORE RSMHDR ADDRESS */ 01212000 L @14,ASCBPTR 0394 01213000 L REG2,ASCBRSM(,@14) 0394 01214000 * END; 0395 01215000 * ELSE /* CANNOT DO PAGEOUT */ 01216000 * DO; 0396 01217000 B @RC00386 0396 01218000 @RF00386 DS 0H 0397 01219000 * IF MOTION=OFF THEN /* PGOUT SRB SCHEDULED ? @ZA31128*/ 01220000 TM MOTION(REG13),B'10000000' 0397 01221000 BNZ @RF00397 0397 01222000 * DO; /* NO, SCHEDULE IT @ZA31128*/ 01223000 * IF POUTSRB=ZERO THEN/* ANY SRB PTR ? @ZA31128*/ 01224000 ICM @14,15,POUTSRB(REG13) 0399 01225000 BNZ @RF00399 0399 01226000 * DO; /* NO, ISSUE ABENDC0D */ 01227000 * RCARCRD=2; /* INDICATOR FOR THIS SITUATION */ 01228000 L @14,PVTPRCA(,PVTPTR) 0401 01229000 MVI RCARCRD(@14),X'02' 0401 01230000 * GEN(ABEND X'C0D',,,SYSTEM) ; 0402 01231000 ABEND X'C0D',,,SYSTEM 01232000 * END; 0403 01233000 * ELSE 0404 01234000 * DO; 0404 01235000 B @RC00399 0404 01236000 @RF00399 DS 0H 0405 01237000 * REG1=POUTSRB; /* SRB PTR TO REG1 @Z30GNYD*/ 01238000 L REG1,POUTSRB(,REG13) 0405 01239000 * RFY 0406 01240000 * SRBSECT BASED(REG1);/* @ZA10767*/ 01241000 * PCBRPOF='1'B; 0407 01242000 OI PCBRPOF(PCBRPTR),B'00000001' 0407 01243000 * MOTION=ON; /* INDICATE SRB SCHEDULED 0408 01244000 * @Z30GNYD*/ 01245000 OI MOTION(REG13),B'10000000' 0408 01246000 * POUTSRB=ZERO; /* PAGE OUT SRB HAS BEEN USED. 0409 01247000 * IEAVEQRP WILL FREE IT. 0409 01248000 * @Z30GNYD*/ 01249000 SLR @14,@14 0409 01250000 ST @14,POUTSRB(,REG13) 0409 01251000 * SRBSECT=SRBSECT&&SRBSECT;/* CLEAR SRB AREA 0410 01252000 * @ZA10767*/ 01253000 XC SRBSECT(44,REG1),SRBSECT(REG1) 0410 01254000 * SRBID='SRB '; /* INIT CONTROL BLOCK NAME */ 01255000 MVC SRBID(4,REG1),@CC02307 0411 01256000 * SRBPASID=PSAAOLD->ASCBASID;/* CURRENT ASID 0412 01257000 * @ZA10767*/ 01258000 L @10,PSAAOLD 0412 01259000 MVC SRBPASID(2,REG1),ASCBASID(@10) 0412 01260000 * SRBASCB=ASVTENTY(PFTASID);/* SRBASCB ADDR */ 01261000 SLR @10,@10 0413 01262000 ICM @10,3,PFTASID(PFTEPTR) 0413 01263000 SLA @10,2 0413 01264000 L @09,CVTPTR 0413 01265000 L @09,ASVTPTR(,@09) 0413 01266000 L @10,ASVTENTY-4(@10,@09) 0413 01267000 ST @10,SRBASCB(,REG1) 0413 01268000 * SRBEP=PVTPVRPO;/* ENTRY POINT */ 01269000 MVC SRBEP(4,REG1),PVTPVRPO(PVTPTR) 0414 01270000 * SRBRMTR=ADDR(IEAVRMT); 0415 01271000 L @10,@CV02275 0415 01272000 ST @10,SRBRMTR(,REG1) 0415 01273000 * SRBPTCB=ZERO; /* TCB ADDR @ZA10767*/ 01274000 ST @14,SRBPTCB(,REG1) 0416 01275000 * SRBPARM=PCBRPTR;/* PCBR ADDR */ 01276000 ST PCBRPTR,SRBPARM(,REG1) 0417 01277000 * GEN(SCHEDULE SRB=(1),SCOPE=GLOBAL); 0418 01278000 SCHEDULE SRB=(1),SCOPE=GLOBAL 01279000 * RFY 0419 01280000 * SRBSECT BASED(SRBPTR);/* @ZA10767*/ 01281000 * END; 0420 01282000 * END; 0421 01283000 @RC00399 DS 0H 0422 01284000 * END; /* @ZA31128*/ 01285000 @RF00397 DS 0H 0423 01286000 * RFY 0423 01287000 * REG1 UNRSTD; 0423 01288000 @RC00386 DS 0H 0424 01289000 * END; 0424 01290000 * PFTEPTR=PFTEPTR+LENGTH(PFTE); /* ADDR NEXT FRAME */ 01291000 @RC00349 AL PFTEPTR,@CF00040 0425 01292000 * END; /* @ZA31128*/ 01293000 * 0426 01294000 SLR @14,@14 0426 01295000 BCTR @14,0 0426 01296000 AL @14,WORK(,PCBRPTR) 0426 01297000 ST @14,WORK(,PCBRPTR) 0426 01298000 @DE00348 LTR @14,@14 0426 01299000 BP @DL00348 0426 01300000 * /*****************************************************************/ 01301000 * /* */ 01302000 * /* ALL FRAMES HAVE BEEN CHECKED TO SEE IF THEY COULD BE TAKEN OR */ 01303000 * /* PAGED OUT NOW. IF ALL COULD NOT BE, THE PAGEOUT SRB HAS BEEN */ 01304000 * /* SCHEDULED. IF PCBRCNT=0, THEN ALL FRAMES ARE ON THE ON LOCAL */ 01305000 * /* FRAME QUEUE. A ROOT PCB IS NOT REQUIRED, SO RETURN TO GETPART */ 01306000 * /* WITH RETURN CODE 0 (IE. V=R REGION BUILT). OTHERWISE, PCBRCNT */ 01307000 * /* IS THE NUMBER OF UNAVAILABLE FRAMES THAT WILL BE INTERCEPTED */ 01308000 * /* WHEN GIVEN UP AND SENT TO AFQ. A ROOT PCB MUST BE BUILT TO */ 01309000 * /* HANDLE INTERCEPTED FRAMES. @ZA31128*/ 01310000 * /* */ 01311000 * /*****************************************************************/ 01312000 * 0427 01313000 * RESPECIFY 0427 01314000 * (PFTEPTR) UNRSTD; 0427 01315000 * PCBRLOAD='0'B; /* INDICATE ALL FRAMES CHECKED 0428 01316000 * @ZA31128*/ 01317000 NI PCBRLOAD(PCBRPTR),B'11111011' 0428 01318000 * IF PCBRCNT=ZERO THEN 0429 01319000 ICM @14,3,PCBRCNT(PCBRPTR) 0429 01320000 BNZ @RF00429 0429 01321000 * DO; 0430 01322000 * 0430 01323000 * /*************************************************************/ 01324000 * /* */ 01325000 * /* IF PCBR IS QUEUED, UNQUEUE IT. COUNT HAS GONE TO ZERO SO */ 01326000 * /* WILL FREE PCBR BEFORE EXITING */ 01327000 * /* */ 01328000 * /*************************************************************/ 01329000 * 0431 01330000 * IF PVTVROOT=PCBRPTR THEN 0431 01331000 C PCBRPTR,PVTVROOT(,PVTPTR) 0431 01332000 BNE @RF00431 0431 01333000 * PVTVROOT=NEXTPCB; /* UNCHAIN ROOT PCB, BUT FREE IT 01334000 * AFTER VALIDATE */ 01335000 MVC PVTVROOT(4,PVTPTR),NEXTPCB(PCBRPTR) 0432 01336000 * CALL VALIDATE; /* REGION VALIDATION SUBROUTINE */ 01337000 * 0433 01338000 @RF00431 BAL @14,VALIDATE 0433 01339000 * /*************************************************************/ 01340000 * /* */ 01341000 * /* IF RETURN CODE DOES NOT = ZERO, THEN BACK OUT */ 01342000 * /* */ 01343000 * /*************************************************************/ 01344000 * 0434 01345000 * IF RCODE^=0 THEN 0434 01346000 SLR @14,@14 0434 01347000 CR RCODE,@14 0434 01348000 BE @RF00434 0434 01349000 * DO; 0435 01350000 * RGNSTART=0; /* LOOP INDICATOR */ 01351000 ST @14,RGNSTART(,PCBRPTR) 0436 01352000 * REG1=STARTRBN*256; /* VIRTUAL ADDRESS TO FIND PAGE */ 01353000 * 0437 01354000 L REG1,STARTRBN(,PCBRPTR) 0437 01355000 SLA REG1,8 0437 01356000 * /*********************************************************/ 01357000 * /* */ 01358000 * /* CALL FINDPAGE AND GET PGTE ADDRESS TO TURN OFF PAM BIT*/ 01359000 * /* */ 01360000 * /*********************************************************/ 01361000 * 0438 01362000 *OFFIT: 0438 01363000 * CALL IEAVFP2; /* CALL FINDPAGE */ 01364000 * 0438 01365000 OFFIT L @15,PVTPFP2(,PVTPTR) 0438 01366000 BALR @14,@15 0438 01367000 * /*********************************************************/ 01368000 * /* */ 01369000 * /* IF ERROR, COD AND CONTINUE */ 01370000 * /* */ 01371000 * /*********************************************************/ 01372000 * 0439 01373000 * IF RCODE^=0 THEN /* IF NOT ZERO THEN ERROR */ 01374000 LTR RCODE,RCODE 0439 01375000 BZ @RF00439 0439 01376000 * DO; 0440 01377000 * RCARCRD=1; /* INDICATE TYPE OF ERROR */ 01378000 L @14,PVTPRCA(,PVTPTR) 0441 01379000 MVI RCARCRD(@14),X'01' 0441 01380000 * GEN(ABEND X'C0D',,,SYSTEM) ; 0442 01381000 ABEND X'C0D',,,SYSTEM 01382000 * END; 0443 01383000 * ELSE /* FINDPAGE WENT OK @ZA31128*/ 01384000 * DO; /* @ZA31128*/ 01385000 B @RC00439 0444 01386000 @RF00439 DS 0H 0445 01387000 * PTEPTR=REG0; /* PGTE ADDRESS OF ENTRY */ 01388000 LR PTEPTR,REG0 0445 01389000 * PGTPAM='0'B; /* TURN OFF PAM BIT */ 01390000 NI PGTPAM(PTEPTR),B'11111110' 0446 01391000 * END; /* @ZA31128*/ 01392000 * 0447 01393000 * /*********************************************************/ 01394000 * /* */ 01395000 * /* RGNSTART IS 0 FIRST TIME THROUGH, AND IS 1 SECOND */ 01396000 * /* TIME. */ 01397000 * /* */ 01398000 * /*********************************************************/ 01399000 * 0448 01400000 * IF RGNSTART=0 THEN /* IF 0 THEN FIRST TIME THRU */ 01401000 @RC00439 ICM @14,15,RGNSTART(PCBRPTR) 0448 01402000 BNZ @RF00448 0448 01403000 * DO; 0449 01404000 * RGNSTART=1; /* INDICATE SECOND TIME THROUGH */ 01405000 MVC RGNSTART(4,PCBRPTR),@CF00044 0450 01406000 * REG1=ENDRBN*256; /* NOW DO IT FOR END PAGE */ 01407000 L REG1,ENDRBN(,PCBRPTR) 0451 01408000 SLA REG1,8 0451 01409000 * GOTO OFFIT; /* DO IT AGAIN FOR LAST PAGE */ 01410000 B OFFIT 0452 01411000 * END; 0453 01412000 * CURSEG=STARTSEG; 0454 01413000 @RF00448 MVC CURSEG(2,PCBRPTR),STARTSEG(PCBRPTR) 0454 01414000 * RESPECIFY 0455 01415000 * REG0 RSTD; 0455 01416000 * 0455 01417000 * /*********************************************************/ 01418000 * /* */ 01419000 * /* DESTROY EACH SEGMENT AND FREEMAIN ITS PAGE TABLES */ 01420000 * /* */ 01421000 * /*********************************************************/ 01422000 * 0456 01423000 * DO WHILE NSEG^=0; /* @ZA31128*/ 01424000 B @DE00456 0456 01425000 @DL00456 DS 0H 0457 01426000 * RESPECIFY 0457 01427000 * (REG1, 0457 01428000 * REG4, 0457 01429000 * REG5, 0457 01430000 * REG7) RSTD; 0457 01431000 * REG0=CURSEG; 0458 01432000 LH REG0,CURSEG(,PCBRPTR) 0458 01433000 * CALL IEAVDSEG; /* CALL DESTROY SEGMENT */ 01434000 L @15,PVTPDSEG(,PVTPTR) 0459 01435000 BALR @14,@15 0459 01436000 * SAVERCA=PVTPRCA; 0460 01437000 MVC SAVERCA(4,PVTPTR),PVTPRCA(PVTPTR) 0460 01438000 * REG5=PVTPTR; 0461 01439000 LR REG5,PVTPTR 0461 01440000 * REG4=PSATOLD; 0462 01441000 L REG4,PSATOLD 0462 01442000 * REG7=PSAAOLD; 0463 01443000 L REG7,PSAAOLD 0463 01444000 * REG0=16*(LENGTH(PGTPTE)+LENGTH(XPTE)); 0464 01445000 LA REG0,224 0464 01446000 * GEN(FREEMAIN RC,LV=(0),SP=255,A=(1),BRANCH=YES); 0465 01447000 FREEMAIN RC,LV=(0),SP=255,A=(1),BRANCH=YES 01448000 * PVTPTR=REG5; 0466 01449000 LR PVTPTR,REG5 0466 01450000 * PVTPRCA=SAVERCA; 0467 01451000 MVC PVTPRCA(4,PVTPTR),SAVERCA(PVTPTR) 0467 01452000 * RESPECIFY 0468 01453000 * (REG0, 0468 01454000 * REG1, 0468 01455000 * REG4, 0468 01456000 * REG5, 0468 01457000 * REG7) UNRSTD; 0468 01458000 * CURSEG=CURSEG+1; 0469 01459000 LA @14,1 0469 01460000 AH @14,CURSEG(,PCBRPTR) 0469 01461000 STH @14,CURSEG(,PCBRPTR) 0469 01462000 * NSEG=NSEG-1; 0470 01463000 LH @14,NSEG(,PCBRPTR) 0470 01464000 BCTR @14,0 0470 01465000 STH @14,NSEG(,PCBRPTR) 0470 01466000 * END; /* @ZA31128*/ 01467000 * 0471 01468000 @DE00456 ICM @14,3,NSEG(PCBRPTR) 0471 01469000 BNZ @DL00456 0471 01470000 * /*********************************************************/ 01471000 * /* */ 01472000 * /* DEQUEUE EACH FRAME AND SEND TO AVAILABLE FRAME QUEUE */ 01473000 * /* */ 01474000 * /*********************************************************/ 01475000 * 0472 01476000 * PFTEPTR=STARTRBN+PVTPFTP; 0472 01477000 L @14,STARTRBN(,PCBRPTR) 0472 01478000 LR PFTEPTR,@14 0472 01479000 AL PFTEPTR,PVTPFTP(,PVTPTR) 0472 01480000 * RESPECIFY 0473 01481000 * REG0 RSTD; 0473 01482000 * 0473 01483000 * /*********************************************************/ 01484000 * /* */ 01485000 * /* TURN OFF PFTVRALC BIT AND DEQUEUE ALL PFTES. */ 01486000 * /* */ 01487000 * /*********************************************************/ 01488000 * 0474 01489000 * DO REG0=STARTRBN TO ENDRBN BY 16; 0474 01490000 LR REG0,@14 0474 01491000 B @DE00474 0474 01492000 @DL00474 DS 0H 0475 01493000 * PFTVRALC=OFF; 0475 01494000 * PFTVRINT=OFF; 0476 01495000 NI PFTVRALC(PFTEPTR),B'10111101' 0476 01496000 * RSMCNTFX=RSMCNTFX-1; /* DECREMENT LOCAL FIX COUNT 0477 01497000 * @YA01572*/ 01498000 LH @14,RSMCNTFX(,RSMHDPTR) 0477 01499000 BCTR @14,0 0477 01500000 STH @14,RSMCNTFX(,RSMHDPTR) 0477 01501000 * PVTCNTFX=PVTCNTFX-1; /* DECREMENT SYSTEM COUNT 0478 01502000 * @YA01572*/ 01503000 LH @14,PVTCNTFX(,PVTPTR) 0478 01504000 BCTR @14,0 0478 01505000 STH @14,PVTCNTFX(,PVTPTR) 0478 01506000 * CALL IEAPFTE; /* AFQ Q ID MUST BE X'00' */ 01507000 L @15,PVTPFTE(,PVTPTR) 0479 01508000 BALR @14,@15 0479 01509000 * PFTEPTR=PFTEPTR+LENGTH(PFTE); 0480 01510000 AL PFTEPTR,@CF00040 0480 01511000 * END; 0481 01512000 AL REG0,@CF00040 0481 01513000 @DE00474 C REG0,ENDRBN(,PCBRPTR) 0481 01514000 BNH @DL00474 0481 01515000 * S15=SIXTEEN; /* SET RETURN CODE = 16 @Z30GNYD*/ 01516000 MVC S15(4,REG13),@CF00040 0482 01517000 * GOTO EXITCLR; /* RETURN @Z30GNYD*/ 01518000 B EXITCLR 0483 01519000 * RESPECIFY 0484 01520000 * REG0 UNRSTD; 0484 01521000 * END; 0485 01522000 * ASCBVEQR=ON; /* TURN ON BIT INDICATING THAT 0486 01523000 * THIS ADDRESS SPACE SHOULD NOT 01524000 * BE SWAPPED-OUT UNTIL THIS V=R 01525000 * REGION HAS BEEN FREED VIA 0486 01526000 * FREEPART. @ZA16816*/ 01527000 @RF00434 L @09,ASCBPTR 0486 01528000 L @14,ASCBVEQR(,@09) 0486 01529000 @GL00013 LR @10,@14 0486 01530000 O @10,@CF02389 0486 01531000 CS @14,@10,ASCBVEQR(@09) 0486 01532000 BNE @GL00013 0486 01533000 * S15=ZERO; /* SET RETURN=0, RETURN @Z30GNYD*/ 01534000 SLR @14,@14 0487 01535000 ST @14,S15(,REG13) 0487 01536000 * END; 0488 01537000 * ELSE 0489 01538000 * 0489 01539000 * /***************************************************************/ 01540000 * /* */ 01541000 * /* SINCE PCBRCNT^=0, THEN SOME FRAMES HAVE PFTVRINT BIT SET. */ 01542000 * /* KEEP PCBR INORDER TO COLLECT FRAMES */ 01543000 * /* */ 01544000 * /***************************************************************/ 01545000 * 0489 01546000 * DO; /* @Z30GNYD*/ 01547000 B @RC00429 0489 01548000 @RF00429 DS 0H 0490 01549000 * ASCBVEQR=ON; /* TURN ON BIT INDICATING THAT 0490 01550000 * THIS ADDRESS SPACE SHOULD NOT 01551000 * BE SWAPPED-OUT UNTIL THIS V=R 01552000 * REGION HAS BEEN FREED VIA 0490 01553000 * FREEPART. @ZA16816*/ 01554000 L @09,ASCBPTR 0490 01555000 L @14,ASCBVEQR(,@09) 0490 01556000 @GL00014 LR @10,@14 0490 01557000 O @10,@CF02389 0490 01558000 CS @14,@10,ASCBVEQR(@09) 0490 01559000 BNE @GL00014 0490 01560000 * S15=FOUR; /* SET RETURN=4, AND RETURN 0491 01561000 * @Z30GNYD*/ 01562000 MVC S15(4,REG13),@CF00036 0491 01563000 * GOTO FPOUTSRB; /* FREE SRB AND RETURN @Z30GNYD*/ 01564000 B FPOUTSRB 0492 01565000 * END; /* @Z30GNYD*/ 01566000 * 0493 01567000 * /*****************************************************************/ 01568000 * /* */ 01569000 * /* DEQUEUE WORK PCB */ 01570000 * /* */ 01571000 * /*****************************************************************/ 01572000 * 0494 01573000 *EXITCLR: /* @Z30GNYD*/ 01574000 * RESPECIFY 0494 01575000 * (REG0, 0494 01576000 * REG1) RSTD; 0494 01577000 @RC00429 DS 0H 0494 01578000 EXITCLR DS 0H 0495 01579000 * IF COMPSRB^=ZERO THEN /* IF A SRB WAS GOTTEN FOR 0495 01580000 * COMPLETION THEN FREE THE SRB 01581000 * @Z30GNYD*/ 01582000 L @14,COMPSRB(,PCBRPTR) 0495 01583000 LTR @14,@14 0495 01584000 BZ @RF00495 0495 01585000 * DO; /* @Z30GNYD*/ 01586000 * REG1=COMPSRB; /* ADDR OF COMPLETION SRB 0497 01587000 * @Z30GNYD*/ 01588000 LR REG1,@14 0497 01589000 * REG0=PVTSRBID; /* SRB ID TO FREE @Z30GNYD*/ 01590000 L REG0,PVTSRBID(,PVTPTR) 0498 01591000 * REG2=REG13; /* SAVE SAVE PTR ACROSS FREECELL 01592000 * @Z30GNYD*/ 01593000 LR REG2,REG13 0499 01594000 * REG13=ADDR(PVTSAVE); /* SET SAVE AREA PTR FOR FREECELL 01595000 * @Z30GNYD*/ 01596000 LA REG13,PVTSAVE(,PVTPTR) 0500 01597000 * GEN(FREECELL CPID=(0),CELL=(1),BRANCH=YES,SAVE=YES);/* 0501 01598000 * @Z30GNYD*/ 01599000 FREECELL CPID=(0),CELL=(1),BRANCH=YES,SAVE=YES 01600000 * REG13=REG2; /* RESTORE POINTER TO SAVE AREA 01601000 * @Z30GNYD*/ 01602000 LR REG13,REG2 0502 01603000 * REG2=ASCBRSM; /* RESTORE REGISTER 2 @Z30GNYD*/ 01604000 L @14,ASCBPTR 0503 01605000 L REG2,ASCBRSM(,@14) 0503 01606000 * END; /* @Z30GNYD*/ 01607000 * PCBFQP=FREECB; 0505 01608000 @RF00495 MVC PCBFQP(4,PCBRPTR),FREECB 0505 01609000 * REG0=PCBFREQN; /* TQID OF TO Q, FREE PCB Q */ 01610000 LA REG0,16 0506 01611000 * REG1=PCBRPTR; /* PCBR ADDRESS TO DEQUEUE */ 01612000 LR REG1,PCBRPTR 0507 01613000 * CALL IEAVPCB; /* PCB MANAGER */ 01614000 L @15,PVTPCB(,PVTPTR) 0508 01615000 BALR @14,@15 0508 01616000 *FPOUTSRB: 0509 01617000 * ; 0509 01618000 FPOUTSRB DS 0H 0510 01619000 * IF POUTSRB^=ZERO THEN /* IF A SRB WAS GOTTEN FOR PAGE 01620000 * OUTS THEN FREE THE SRB 0510 01621000 * @Z30GNYD*/ 01622000 L @14,POUTSRB(,REG13) 0510 01623000 LTR @14,@14 0510 01624000 BZ @RF00510 0510 01625000 * DO; /* @Z30GNYD*/ 01626000 * REG1=POUTSRB; /* ADDR OF PAGE OUT SRB @Z30GNYD*/ 01627000 LR REG1,@14 0512 01628000 * REG0=PVTSRBID; /* SRB ID TO FREE @Z30GNYD*/ 01629000 L REG0,PVTSRBID(,PVTPTR) 0513 01630000 * REG2=REG13; /* SAVE SAVE AREA PTR ACROSS 0514 01631000 * FREECELL @Z30GNYD*/ 01632000 LR REG2,REG13 0514 01633000 * REG13=ADDR(PVTSAVE); /* SET SAVE PTR FOR FREECELL 0515 01634000 * @Z30GNYD*/ 01635000 LA REG13,PVTSAVE(,PVTPTR) 0515 01636000 * GEN(FREECELL CPID=(0),CELL=(1),BRANCH=YES,SAVE=YES);/* 0516 01637000 * @Z30GNYD*/ 01638000 FREECELL CPID=(0),CELL=(1),BRANCH=YES,SAVE=YES 01639000 * REG13=REG2; /* RESTORE SAVE AREA PTR @Z30GNYD*/ 01640000 LR REG13,REG2 0517 01641000 * REG2=ASCBRSM; /* RESTORE PTR TO RSM HEADER 0518 01642000 * @Z30GNYD*/ 01643000 L @14,ASCBPTR 0518 01644000 L REG2,ASCBRSM(,@14) 0518 01645000 * END; /* @Z30GNYD*/ 01646000 * RESPECIFY 0520 01647000 * (REG0, 0520 01648000 * REG1) UNRSTD; 0520 01649000 * 0520 01650000 @RF00510 DS 0H 0521 01651000 * /*****************************************************************/ 01652000 * /* */ 01653000 * /* RESTORE REGS AND RETURN */ 01654000 * /* */ 01655000 * /*****************************************************************/ 01656000 * 0521 01657000 *EXIT: 0521 01658000 * ; 0521 01659000 EXIT DS 0H 0522 01660000 * GEN SETS(REG1,REG2)(SETFRR D,WRKREGS=(1,2));/* @ZA31128*/ 01661000 SETFRR D,WRKREGS=(1,2) 01662000 * LM(REG14,REG12,CALLREGS(13:72));/* RESTORE REGS @ZA31128*/ 01663000 LM REG14,REG12,CALLREGS+12(REG13) 0523 01664000 * GOTO REG14; /* RETURN TO GETPART @ZA31128*/ 01665000 BR REG14 0524 01666000 * RESPECIFY 0525 01667000 * (INPUTPTR, 0525 01668000 * PVTPTR, 0525 01669000 * RSMHDPTR, 0525 01670000 * PCBRPTR) UNRSTD; 0525 01671000 *SETFRR: 0526 01672000 * PROC OPTIONS(NOSAVEAREA,DONTSAVE);/* @ZA31128*/ 01673000 * 0526 01674000 SETFRR DS 0H 0527 01675000 * /*****************************************************************/ 01676000 * /* */ 01677000 * /* SETFRR GETS EXECUTED WHEN ANY V=R ROUTINE NEEDS THE SETFRR */ 01678000 * /* FUNCTION. REGISTER 14 CONTAINS THE RETURN ADDRESS. REGS 1,2,10*/ 01679000 * /* GET CLOBBERED. REG3 GETS INITIALIZED TO THE ADDRESS OF THE */ 01680000 * /* PVT. RCACVR BYTE IN RCA IS SET UP PVTPRCA FIELD OF PVT */ 01681000 * /* CONTAINS ADDRESS OF RCA AREA. */ 01682000 * /* */ 01683000 * /*****************************************************************/ 01684000 * 0527 01685000 * RFY 0527 01686000 * (REG1, 0527 01687000 * REG2, 0527 01688000 * REG10, 0527 01689000 * REG11, 0527 01690000 * REG12, 0527 01691000 * REG14) RSTD; /* @YA01572*/ 01692000 * PVTPTR=CVTPVTP; /* PVT PTR IN CVT */ 01693000 L @09,CVTPTR 0528 01694000 L PVTPTR,CVTPVTP(,@09) 0528 01695000 * REG10=PVTPRCV; /* RECOVERY ROUTINE ADDR */ 01696000 L REG10,PVTPRCV(,PVTPTR) 0529 01697000 * GEN(SETFRR A,FRRAD=(REG10),WRKREGS=(1,2),PARMAD=(2));/* @ZA31128*/ 01698000 SETFRR A,FRRAD=(REG10),WRKREGS=(1,2),PARMAD=(2) 01699000 * PVTPRCA=REG2; /* INITIALIZE THE PVTPRCA FIELD */ 01700000 ST REG2,PVTPRCA(,PVTPTR) 0531 01701000 * RCACSECT=RCACVR; /* SET CSECT IN CONTROL BYTE */ 01702000 L @09,PVTPRCA(,PVTPTR) 0532 01703000 MVI RCACSECT(@09),X'05' 0532 01704000 * RFY 0533 01705000 * (REG1, 0533 01706000 * REG2, 0533 01707000 * REG10, 0533 01708000 * REG11, 0533 01709000 * REG12, 0533 01710000 * REG14) UNRSTD; /* @YA01572*/ 01711000 * END SETFRR; /* @ZA31128*/ 01712000 @EL00002 DS 0H 0534 01713000 @EF00002 DS 0H 0534 01714000 @ER00002 BR @14 0534 01715000 *VALIDATE: 0535 01716000 * PROC OPTIONS(NOSAVEAREA,DONTSAVE); 0535 01717000 * 0535 01718000 VALIDATE DS 0H 0536 01719000 */********************************************************************/ 01720000 */*VALIDATE ROUTINE GETS CONTROL FROM ALLOCATION AND COMPLETE ROUTNES*/ 01721000 */*WHEN ALL V=R FRAMES ARE ON EITHER THEIR LOCAL QUEUE(ALLOCATION) */ 01722000 */*OR ARE NOT QUEUED(CALLED FROM COMPLETE). IF THE FRAME IS NOT */ 01723000 */*ALREADY ON LOCAL QUEUE, IT IS MOVED THERE. THE PGTE'S ARE FILLED */ 01724000 */*IN, STORAGE KEYS ARE SET, AND THE REGION IS CLEARED TO 0'S. */ 01725000 */********************************************************************/ 01726000 * 0536 01727000 * RFY 0536 01728000 * (RSMHDPTR, 0536 01729000 * PVTPTR, 0536 01730000 * PTEPTR, 0536 01731000 * PFTEPTR, 0536 01732000 * VRBN, 0536 01733000 * PCBRPTR) RSTD; 0536 01734000 * WORK=REG14; /* SAVE RETURN ADDRESS */ 01735000 ST REG14,WORK(,PCBRPTR) 0537 01736000 * PFTEPTR=STARTRBN+PVTPFTP; 0538 01737000 L PFTEPTR,STARTRBN(,PCBRPTR) 0538 01738000 AL PFTEPTR,PVTPFTP(,PVTPTR) 0538 01739000 * VRBN=RGNSTART; 0539 01740000 L VRBN,RGNSTART(,PCBRPTR) 0539 01741000 * DO UNTIL VRBN>RGNEND; /* PROCESS ALL PAGES @ZA31128*/ 01742000 * 0540 01743000 @DL00540 DS 0H 0541 01744000 * /***************************************************************/ 01745000 * /* */ 01746000 * /* IF IT IS INITIAL PAGE, OR FIRST PAGE OF A NEW SEGMENT, THEN */ 01747000 * /* A FINDPAGE MUST BE DONE. @ZA31128*/ 01748000 * /* */ 01749000 * /***************************************************************/ 01750000 * 0541 01751000 * IF((VRBN&SEGMASK)=0)|(VRBN=RGNSTART) THEN/* FP REQ'D ? @ZA31128*/ 01752000 LR @14,VRBN 0541 01753000 N @14,SEGMASK 0541 01754000 LTR @14,@14 0541 01755000 BZ @RT00541 0541 01756000 C VRBN,RGNSTART(,PCBRPTR) 0541 01757000 BNE @RF00541 0541 01758000 @RT00541 DS 0H 0542 01759000 * DO; /* YES, DO FINDPAGE AGAIN */ 01760000 * RFY 0543 01761000 * (REG0, 0543 01762000 * REG1) RSTD; /* @ZA31128*/ 01763000 * REG1=VRBN; 0544 01764000 LR REG1,VRBN 0544 01765000 * CALL IEAVFP2; /* LOCATE PGTE FOR VSA */ 01766000 L @15,PVTPFP2(,PVTPTR) 0545 01767000 BALR @14,@15 0545 01768000 * IF RCODE^=0 THEN /* FINDPAGE OK ? */ 01769000 LTR RCODE,RCODE 0546 01770000 BNZ @RT00546 0546 01771000 * GOTO ENDVAL; /* NO, RETURN */ 01772000 * PTEPTR=REG0; /* PGTE ADDRESS FOR VSA */ 01773000 LR PTEPTR,REG0 0548 01774000 * RFY 0549 01775000 * (REG0) UNRSTD; /* @ZA31128*/ 01776000 * END; /* @ZA31128*/ 01777000 * PGTRSA=PFTEPTR-PVTPFTP; /* RBN TO PGTE */ 01778000 @RF00541 LR @14,PFTEPTR 0551 01779000 SL @14,PVTPFTP(,PVTPTR) 0551 01780000 STH @14,PGTRSA(,PTEPTR) 0551 01781000 * PGTPAM=ON; /* ASSIGNED =ON , PGTPVM = OFF */ 01782000 * 0552 01783000 OI PGTPAM(PTEPTR),B'00000001' 0552 01784000 * /***************************************************************/ 01785000 * /* */ 01786000 * /* SET STORAGE KEY TO 0 WITH FETCH PROTECT ON EACH FRAME */ 01787000 * /* */ 01788000 * /***************************************************************/ 01789000 * 0553 01790000 * GEN REFS(VRBN) SETS(REG1,REG14); 0553 01791000 LR REG14,VRBN CHANGE REGS 01792000 LA REG1,8 FETCH PROTECT BIT 01793000 SSK REG1,REG14 SET STORAGE KEY 01794000 LA REG14,2048(REG14) ADDR OF NEXT 2K BLOCK 01795000 SSK REG1,REG14 SET STORAGE KEY IN NEXT BLOCK 01796000 * RFY 0554 01797000 * (REG1) UNRSTD; /* @ZA31128*/ 01798000 * 0554 01799000 * /***************************************************************/ 01800000 * /* */ 01801000 * /* IF FRAME IS NOT QUEUED, THEN TURN ON PFTVRALC BIT. THIS CASE*/ 01802000 * /* WOULD ARISE IF FRAMES WERE INTERCEPTED FOR V=R. THEY SHOULD */ 01803000 * /* ALREADY BE QUEUED ON LOCAL QUEUE IF NOT INTERCEPTD ALSO, SET*/ 01804000 * /* PFTVBN TO FRAME RBN SINCE V=R IS MAPPED 1 TO 1. */ 01805000 * /* */ 01806000 * /***************************************************************/ 01807000 * 0555 01808000 * IF PFTQNDX=PFTNQN THEN 0555 01809000 CLI PFTQNDX(PFTEPTR),X'FF' 0555 01810000 BNE @RF00555 0555 01811000 * DO; 0556 01812000 * RSMHDPTR=ASCBRSM; /* RESTORE RSMHD POINTER @YA01572*/ 01813000 L @14,ASCBPTR 0557 01814000 L RSMHDPTR,ASCBRSM(,@14) 0557 01815000 * RSMCNTFX=RSMCNTFX+1; /* INCREMENT LOCAL FIX COUNT 0558 01816000 * @YA01572*/ 01817000 LA @14,1 0558 01818000 LH @10,RSMCNTFX(,RSMHDPTR) 0558 01819000 ALR @10,@14 0558 01820000 STH @10,RSMCNTFX(,RSMHDPTR) 0558 01821000 * PVTCNTFX=PVTCNTFX+1; /* INCREMENT SYSTEM COUNT 0559 01822000 * @YA01572*/ 01823000 AH @14,PVTCNTFX(,PVTPTR) 0559 01824000 STH @14,PVTCNTFX(,PVTPTR) 0559 01825000 * IF PVTCNTFX=PVTMAXFX THEN /* HAS THE FIX COUNT THRESHOLD 0560 01826000 * BEEN REACHED */ 01827000 CH @14,PVTMAXFX(,PVTPTR) 0560 01828000 BNE @RF00560 0560 01829000 * DO; /* YES, NOTIFY SRM @YA01572*/ 01830000 * RFY 0562 01831000 * (REG1) RSTD; /* @ZA31128*/ 01832000 * REG1=FOUR; /* GET CODE FOR FIX THRESHOLD 0563 01833000 * REACHED @YA01572*/ 01834000 LA REG1,4 0563 01835000 * REG2=REG13; /* SAVE REGISTER 13 ACROSS 0564 01836000 * SYSEVENT @YA01572*/ 01837000 LR REG2,REG13 0564 01838000 * REG13=ADDR(PVTSAVE); /* GET SRM A SAVE AREA @YA01572*/ 01839000 * 0565 01840000 LA REG13,PVTSAVE(,PVTPTR) 0565 01841000 * /*******************************************************/ 01842000 * /* */ 01843000 * /* NOTIFY SRM THAT THE FIXED THRESHOLD HAS BEEN REACHED*/ 01844000 * /* */ 01845000 * /*******************************************************/ 01846000 * 0566 01847000 * RFY 0566 01848000 * (REG0) RSTD; /* @ZA31128*/ 01849000 * GEN REFS(CVT,CVTPTR,CVTOPTE) SETS(REG0,REG14,REG15) 0567 01850000 * (SYSEVENT AVQLOW,ENTRY=BRANCH); 0567 01851000 SYSEVENT AVQLOW,ENTRY=BRANCH 01852000 * RFY 0568 01853000 * (REG0, 0568 01854000 * REG1) UNRSTD; /* @ZA31128*/ 01855000 * REG13=REG2; /* RESTORE REGISTER 13 @YA01572*/ 01856000 LR REG13,REG2 0569 01857000 * RSMHDPTR=ASCBRSM; /* RESTORE RSM HEADER POINTER 0570 01858000 * @YA01572*/ 01859000 L @14,ASCBPTR 0570 01860000 L RSMHDPTR,ASCBRSM(,@14) 0570 01861000 * END; 0571 01862000 * 0571 01863000 * /***********************************************************/ 01864000 * /* */ 01865000 * /* TURN OFF ALL BITS EXCEPT PFTBADPG AND PFTOFINT */ 01866000 * /* */ 01867000 * /***********************************************************/ 01868000 * 0572 01869000 * PFTFLAG1=PFTFLAG1&FLAG1; 0572 01870000 @RF00560 NI PFTFLAG1(PFTEPTR),X'07' 0572 01871000 * PFTVRALC=ON; /* TURN ON PFTVRALC BIT */ 01872000 OI PFTVRALC(PFTEPTR),B'00000010' 0573 01873000 * PFTVR=ON; /* TURN ON PFTVR BIT @ZA03537*/ 01874000 OI PFTVR(PFTEPTR),B'00100000' 0574 01875000 * PFTFLAG2=PFTFLAG2&FLAG2; /* TURN OFF ALL BITS EXCEPT PFTVR 01876000 * AND PFTPREF @ZA03537*/ 01877000 NI PFTFLAG2(PFTEPTR),X'24' 0575 01878000 * PFTVBN=PFTEPTR-PVTPFTP; /* 1 TO 1 MAPPING */ 01879000 LR @14,PFTEPTR 0576 01880000 SL @14,PVTPFTP(,PVTPTR) 0576 01881000 STH @14,PFTVBN(,PFTEPTR) 0576 01882000 * PFTASID=PCBRASCB->ASCBASID;/* ASID OF REQUESTED REGION */ 01883000 L @14,PCBRASCB(,PCBRPTR) 0577 01884000 MVC PFTASID(2,PFTEPTR),ASCBASID(@14) 0577 01885000 * RESPECIFY 0578 01886000 * (REG0, 0578 01887000 * REG1) RSTD; 0578 01888000 * 0578 01889000 * /***********************************************************/ 01890000 * /* */ 01891000 * /* MOVE PFTE TO LOCAL FRAME QUEUE */ 01892000 * /* */ 01893000 * /***********************************************************/ 01894000 * 0579 01895000 * REG0=PFTLFQN; 0579 01896000 LA REG0,128 0579 01897000 * GENERATE(SLL REG0,16) ; 0580 01898000 SLL REG0,16 01899000 * GENERATE(ICM REG0,3,PFTVBN(PFTEPTR)) ; 0581 01900000 ICM REG0,3,PFTVBN(PFTEPTR) 01901000 * REG1=PCBRASCB; 0582 01902000 L REG1,PCBRASCB(,PCBRPTR) 0582 01903000 * CALL IEAPFTE; /* MOVE PFTE TO LOCAL FRAME QUEUE*/ 01904000 L @15,PVTPFTE(,PVTPTR) 0583 01905000 BALR @14,@15 0583 01906000 * RESPECIFY 0584 01907000 * (REG0, 0584 01908000 * REG1) UNRSTD; /* @ZA31128*/ 01909000 * END; 0585 01910000 * VRBN=VRBN+K4; /* ADDR TO NEXT PAGE */ 01911000 @RF00555 AL VRBN,@CF00054 0586 01912000 * PFTEPTR=PFTEPTR+LENGTH(PFTE); /* ADDR NEXT FRAME */ 01913000 AL PFTEPTR,@CF00040 0587 01914000 * PTEPTR=PTEPTR+LENGTH(PGTPTE); /* ADDR NEXT PGTE */ 01915000 AH PTEPTR,@CH00058 0588 01916000 * END; /* @ZA31128*/ 01917000 * 0589 01918000 @DE00540 L @14,RGNEND(,PCBRPTR) 0589 01919000 CR VRBN,@14 0589 01920000 BNH @DL00540 0589 01921000 * /*****************************************************************/ 01922000 * /* */ 01923000 * /* ALL PAGES HAVE BEEN PROCESSED. ALL FRAMES ARE NOW ON THE LOCAL*/ 01924000 * /* FRAME QUEUE, AND HAVE BEEN SET TO KEY 0, AND FETCH PROTECTED. */ 01925000 * /* ALL PGTE'S HAVE BEEN FILLED IN. NOW CLEAR THE ENTIRE REGION. */ 01926000 * /* REGISTERS FOR MVCL ARE AS FOLLOWS: REG0 = START ADDRESS OF */ 01927000 * /* AREA TO ZERO OUT, REG1 = NUMBER OF BYTES IN REGION TO ZERO */ 01928000 * /* OUT, REG10 = REGION START ADDRESS, REG11 = PADDING CHARACTER =*/ 01929000 * /* 0. @ZA31128*/ 01930000 * /* */ 01931000 * /*****************************************************************/ 01932000 * 0590 01933000 * RFY 0590 01934000 * (REG0, 0590 01935000 * REG1, 0590 01936000 * REG10) RSTD; /* @ZA31128*/ 01937000 * REG0=RGNSTART; 0591 01938000 L @07,RGNSTART(,PCBRPTR) 0591 01939000 LR REG0,@07 0591 01940000 * REG1=(RGNEND+K4)-RGNSTART; 0592 01941000 AL @14,@CF00054 0592 01942000 SLR @14,@07 0592 01943000 LR REG1,@14 0592 01944000 * REG10=RGNSTART; 0593 01945000 LR REG10,@07 0593 01946000 * REG11=ZERO; /* DESTROYS BASE REG @Z30GNYD*/ 01947000 SLR REG11,REG11 0594 01948000 * GEN REFS(REG0,REG10)(MVCL REG0,REG10); 0595 01949000 MVCL REG0,REG10 01950000 * REG11=REG12+3840; /* RESTORE BASE REG @Z30GNYD*/ 01951000 LA REG11,3840 0596 01952000 ALR REG11,REG12 0596 01953000 * RESPECIFY 0597 01954000 * REG1 UNRSTD; 0597 01955000 * RCODE=ZERO; /* RETURN CODE = 0 @ZA31128*/ 01956000 SLR RCODE,RCODE 0598 01957000 * RFY 0599 01958000 * (REG0, 0599 01959000 * REG1, 0599 01960000 * REG10) UNRSTD; /* @ZA31128*/ 01961000 * 0599 01962000 * /*****************************************************************/ 01963000 * /* */ 01964000 * /* COMMON EXIT ROUTINE */ 01965000 * /* */ 01966000 * /*****************************************************************/ 01967000 * 0600 01968000 *ENDVAL: 0600 01969000 * REG14=WORK; /* RESTORE RETURN ADDRESS */ 01970000 ENDVAL L REG14,WORK(,PCBRPTR) 0600 01971000 * RFY 0601 01972000 * (PVTPTR, 0601 01973000 * PTEPTR, 0601 01974000 * PFTEPTR, 0601 01975000 * PCBRPTR, 0601 01976000 * VRBN, 0601 01977000 * RSMHDPTR) UNRSTD; 0601 01978000 * END VALIDATE; 0602 01979000 @EL00003 DS 0H 0602 01980000 @EF00003 DS 0H 0602 01981000 @ER00003 BR @14 0602 01982000 * 0603 01983000 * /*****************************************************************/ 01984000 * /* */ 01985000 * /* INTERCEPT GETS CONTROL FROM PFTE MANAGER WHEN A V=R */ 01986000 * /* INTERCEPTED FRAME IS SENT TO THE AVAILABLE FRAME QUEUE, OR */ 01987000 * /* FROM SQA ALLOCATION WHEN IT TAKES A V=R INTERCEPTED FRAME FOR */ 01988000 * /* ITS USE. INTERCEPT FIRST TESTS TO SEE IF THE ALLOCATION HAS */ 01989000 * /* BEEN FAILED (PCBRFAIL=1). PCBRFAIL CAN BE TURNED ON BY SQA */ 01990000 * /* ALLOCATION WHEN IT TAKES AN INTERCEPTED FRAME, OR BY INTERCEPT*/ 01991000 * /* WHEN A FRAME SENT TO IT BY PFTE MANAGER IS MARKED AS A BAD */ 01992000 * /* PAGE OR TO GO OFFLINE. IF THE ALLOCATION IS FAILED, V=R */ 01993000 * /* COMPLETE WILL BE SCHEDULED IF IT HAS NOT ALREADY BEEN */ 01994000 * /* SCHEDULED (PCBRINT=1). WHEN COMPLETE RUNS WITH PCBRFAIL=1, IT */ 01995000 * /* WILL POST THE INITIATOR WITH A CODE OF 16 SO THAT A FREEPART */ 01996000 * /* AND NEW GETPART WILL BE PERFORMED. IF THE ALLOCATION IS NOT */ 01997000 * /* FAILED, THE FRAME IS ACCEPTED AND THE ROOT COUNT IN THE V=R */ 01998000 * /* ROOT PCB IS DECREMENTED. IF V=R MAINLINE IS NOT RUNNING */ 01999000 * /* (PCBRLOAD=0) AND THE ROOT COUNT GOES TO ZERO, COMPLETE IS */ 02000000 * /* SCHEDULED. COMPLETE WILL POST THE INITIATOR WITH A CODE OF 0 */ 02001000 * /* INDICATING SUCCESSFUL ALLOCATION. IF THE MAINLINE IS RUNNING, */ 02002000 * /* COMPLETE CANNOT BE SCHEDULED. */ 02003000 * /* */ 02004000 * /*****************************************************************/ 02005000 * 0603 02006000 * RESPECIFY 0603 02007000 * (PVTPTR, 0603 02008000 * PCBRPTR, 0603 02009000 * VRBN, 0603 02010000 * PFTEPTR, 0603 02011000 * REG1) RSTD; /* @ZA10767*/ 02012000 * 0603 02013000 * /*****************************************************************/ 02014000 * /* */ 02015000 * /* REG3 SHOULD ALREADY CONTAIN PVT ADDRESS BY RSM CONVENTIONS */ 02016000 * /* */ 02017000 * /*****************************************************************/ 02018000 * 0604 02019000 *EP2: 0604 02020000 * PFTEPTR=REG6; /* PFTE ADDR PASSED IN REG6 */ 02021000 EP2 LR PFTEPTR,REG6 0604 02022000 * VRBN=REG1; /* REG1 CONTAINS RBN OF 0605 02023000 * INTERCEPTED FRAME. */ 02024000 LR VRBN,REG1 0605 02025000 * RCAVEQRI=ON; 0606 02026000 L @14,PVTPRCA(,PVTPTR) 0606 02027000 OI RCAVEQRI(@14),B'00000010' 0606 02028000 * PCBRPTR=PVTVROOT; /* PICK UP ADDR OF FIRST PCB ON 02029000 * V=R WAIT QUEUE. */ 02030000 * 0607 02031000 L PCBRPTR,PVTVROOT(,PVTPTR) 0607 02032000 * /*****************************************************************/ 02033000 * /* */ 02034000 * /* SEARCH PCBS FOR THE ONE TO INCLUDE FRAME */ 02035000 * /* */ 02036000 * /*****************************************************************/ 02037000 * 0608 02038000 *PCBLOOP: 0608 02039000 * IF PCBRPTR=ZERO THEN /* IF 0, THEN END OF PCBR QUEUE */ 02040000 PCBLOOP LTR PCBRPTR,PCBRPTR 0608 02041000 BNZ @RF00608 0608 02042000 * DO; 0609 02043000 * PFTVRINT=OFF; /* TURN OFF INTERCEPT BIT */ 02044000 NI PFTVRINT(PFTEPTR),B'10111111' 0610 02045000 * RCARCRD=8; 0611 02046000 L @14,PVTPRCA(,PVTPTR) 0611 02047000 MVI RCARCRD(@14),X'08' 0611 02048000 * GEN(ABEND X'C0D',,,SYSTEM); 0612 02049000 ABEND X'C0D',,,SYSTEM 02050000 * GOTO EXITI; /* EXIT INTERCEPT */ 02051000 B EXITI 0613 02052000 * END; 0614 02053000 * 0614 02054000 * /*****************************************************************/ 02055000 * /* */ 02056000 * /* CHECK IF FRAME WITHIN PCB RANGE */ 02057000 * /* */ 02058000 * /*****************************************************************/ 02059000 * 0615 02060000 * IF VRBNENDRBN THEN 0615 02061000 @RF00608 C VRBN,STARTRBN(,PCBRPTR) 0615 02062000 BL @RT00615 0615 02063000 C VRBN,ENDRBN(,PCBRPTR) 0615 02064000 BNH @RF00615 0615 02065000 @RT00615 DS 0H 0616 02066000 * DO; /* OUTSIDE RANGE @ZA31128*/ 02067000 * PCBRPTR=NEXTPCB; /* ADDRESS OF NEXT PCB ON CHAIN */ 02068000 L PCBRPTR,NEXTPCB(,PCBRPTR) 0617 02069000 * GOTO PCBLOOP; /* REPETE SCAN PROCESS */ 02070000 B PCBLOOP 0618 02071000 * END; /* @ZA31128*/ 02072000 * ELSE /* FRAME IN RANGE @ZA31128*/ 02073000 * 0620 02074000 * /***************************************************************/ 02075000 * /* */ 02076000 * /* IF PCBRFAIL IS ON, COMPLETE (IEAVEQRC) SHOULD BE SCHEDULED */ 02077000 * /* IN ORDER TO TERMINATE THE ALLOCATION. IF ALLOCATION HAS NOT */ 02078000 * /* BEEN FAILED, SEE IF IT SHOULD BE. */ 02079000 * /* */ 02080000 * /***************************************************************/ 02081000 * 0620 02082000 * IF PCBRFAIL='0'B THEN /* HAS ROOT BEEN FAILED @ZA10767*/ 02083000 @RF00615 TM PCBRFAIL(PCBRPTR),B'00001000' 0620 02084000 BNZ @RF00620 0620 02085000 * DO; /* ROOT NOT FAILED @ZA10767*/ 02086000 * 0621 02087000 * /***********************************************************/ 02088000 * /* */ 02089000 * /* IF THE FRAME IS INTERCEPTED FOR VARY STORAGE OFFLINE, OR*/ 02090000 * /* THE FRAME IS BAD, DO NOT ACCEPT IT AND FAIL THE */ 02091000 * /* ALLOCATION. OTHERWISE, ACCEPT THE FRAME. */ 02092000 * /* */ 02093000 * /***********************************************************/ 02094000 * 0622 02095000 * IF PFTOFINT=ON|PFTBADPG=ON THEN 0622 02096000 TM PFTOFINT(PFTEPTR),B'00000101' 0622 02097000 BZ @RF00622 0622 02098000 * PCBRFAIL=ON; /* FAIL THE ALLOCATION @ZA10767*/ 02099000 OI PCBRFAIL(PCBRPTR),B'00001000' 0623 02100000 * ELSE /* FRAME O. K. @ZA10767*/ 02101000 * DO; /* @ZA10767*/ 02102000 B @RC00622 0624 02103000 @RF00622 DS 0H 0625 02104000 * VRBN=0; /* ACCEPT THE FRAME @ZA10767*/ 02105000 SLR VRBN,VRBN 0625 02106000 * PCBRCNT=PCBRCNT-ONE; /* DECREMENT ROOT COUNT @ZA10767*/ 02107000 * 0626 02108000 LH @14,PCBRCNT(,PCBRPTR) 0626 02109000 BCTR @14,0 0626 02110000 STH @14,PCBRCNT(,PCBRPTR) 0626 02111000 * /*******************************************************/ 02112000 * /* */ 02113000 * /* IF PCBRLOAD IS ON THEN MAINLINE IS STILL RUNNING, SO*/ 02114000 * /* DO NOT SCHEDULE COMPLETE EVEN IF PCBRCNT GOES TO */ 02115000 * /* ZERO. */ 02116000 * /* */ 02117000 * /*******************************************************/ 02118000 * 0627 02119000 * IF PCBRLOAD='1'B THEN /* IS MAINLINE RUNNING @ZA10767*/ 02120000 TM PCBRLOAD(PCBRPTR),B'00000100' 0627 02121000 BO @RT00627 0627 02122000 * GOTO EXITI; /* YES, RETURN @ZA10767*/ 02123000 * END; /* @ZA10767*/ 02124000 * END; /* @ZA10767*/ 02125000 * 0630 02126000 @RC00622 DS 0H 0631 02127000 * /*****************************************************************/ 02128000 * /* */ 02129000 * /* IF ALLOCATION HAS BEEN FAILED AND COMPLETE HAS NOT ALREADY */ 02130000 * /* BEEN SCHEDULED, OR IF THE ROOT COUNT HAS REACHED ZERO, */ 02131000 * /* SCHEDULE COMPLETE. COMPLETE COULD ONLY HAVE ALREADY BEEN */ 02132000 * /* SCHEDULED IF THE ALLOCATION HAD PREVIOUSLY BEEN FAILED. */ 02133000 * /* */ 02134000 * /*****************************************************************/ 02135000 * 0631 02136000 * IF(PCBRFAIL=ON&PCBRINT^=ON)|PCBRCNT=0 THEN/* @ZA10767*/ 02137000 @RF00620 TM PCBRFAIL(PCBRPTR),B'00001000' 0631 02138000 BNO @GL00017 0631 02139000 TM PCBRINT(PCBRPTR),B'10000000' 0631 02140000 BZ @RT00631 0631 02141000 @GL00017 ICM @14,3,PCBRCNT(PCBRPTR) 0631 02142000 BNZ @RF00631 0631 02143000 @RT00631 DS 0H 0632 02144000 * DO; 0632 02145000 * 0632 02146000 * /*************************************************************/ 02147000 * /* */ 02148000 * /* IF SRB WAS NOT OBTAINED, THEN CANNOT SCHEDULE. THIS */ 02149000 * /* SITUATION SHOULD NEVER OCCUR. @Z30GNYD*/ 02150000 * /* */ 02151000 * /*************************************************************/ 02152000 * 0633 02153000 * IF COMPSRB=0 THEN /* IF POINTER TO COMPLETION SRB=0 02154000 * @Z30GNYD*/ 02155000 ICM @14,15,COMPSRB(PCBRPTR) 0633 02156000 BNZ @RF00633 0633 02157000 * DO; 0634 02158000 * VRBN=REG1; /* DO NOT ACCEPT FRAME @ZA10767*/ 02159000 LR VRBN,REG1 0635 02160000 * REG7=PCBRTCBA; 0636 02161000 SLR REG7,REG7 0636 02162000 ICM REG7,7,PCBRTCBA(PCBRPTR) 0636 02163000 * REG8=PCBRASCB->ASCBASID; 0637 02164000 L @14,PCBRASCB(,PCBRPTR) 0637 02165000 SLR @10,@10 0637 02166000 ICM @10,3,ASCBASID(@14) 0637 02167000 LR REG8,@10 0637 02168000 * GENERATE; 0638 02169000 CALLRTM TYPE=ABTERM,COMPCOD=X'028',TCB=(REG7),ASID=(REG8) 02170000 * GOTO EXITI; /* GOTO INTERCEPT EXIT */ 02171000 B EXITI 0639 02172000 * END; 0640 02173000 * RESPECIFY 0641 02174000 * SRBPTR RSTD; 0641 02175000 @RF00633 DS 0H 0642 02176000 * SRBPTR=COMPSRB; /* REG1 = SRB ADDRESS @Z30GNYD*/ 02177000 * 0642 02178000 L SRBPTR,COMPSRB(,PCBRPTR) 0642 02179000 * /*************************************************************/ 02180000 * /* */ 02181000 * /* BUILD SRB */ 02182000 * /* */ 02183000 * /*************************************************************/ 02184000 * 0643 02185000 * SRBSECT=SRBSECT&&SRBSECT; /* CLEAR SRB AREA @ZA10767*/ 02186000 XC SRBSECT(44,SRBPTR),SRBSECT(SRBPTR) 0643 02187000 * SRBID='SRB '; 0644 02188000 MVC SRBID(4,SRBPTR),@CC02307 0644 02189000 * SRBASCB=PCBRASCB; 0645 02190000 L @14,PCBRASCB(,PCBRPTR) 0645 02191000 ST @14,SRBASCB(,SRBPTR) 0645 02192000 * SRBEP=PVTPVRC; 0646 02193000 MVC SRBEP(4,SRBPTR),PVTPVRC(PVTPTR) 0646 02194000 * SRBRMTR=PVTPSRBP; 0647 02195000 MVC SRBRMTR(4,SRBPTR),PVTPSRBP(PVTPTR) 0647 02196000 * SRBPTCB=PCBRTCBA; 0648 02197000 SLR @10,@10 0648 02198000 ICM @10,7,PCBRTCBA(PCBRPTR) 0648 02199000 ST @10,SRBPTCB(,SRBPTR) 0648 02200000 * SRBPASID=PCBRASCB->ASCBASID; 0649 02201000 MVC SRBPASID(2,SRBPTR),ASCBASID(@14) 0649 02202000 * SRBPARM=PCBRPTR; 0650 02203000 ST PCBRPTR,SRBPARM(,SRBPTR) 0650 02204000 * PCBRINT=ON; /* SET SCHEDULED BIT */ 02205000 OI PCBRINT(PCBRPTR),B'10000000' 0651 02206000 * REG1=SRBPTR; /* REG1 CONTAINS SRB ADDRESS */ 02207000 LR REG1,SRBPTR 0652 02208000 * RESPECIFY 0653 02209000 * SRBPTR UNRSTD; 0653 02210000 * GEN(SCHEDULE SRB=(1)); 0654 02211000 SCHEDULE SRB=(1) 02212000 * END; 0655 02213000 * 0655 02214000 * /*****************************************************************/ 02215000 * /* */ 02216000 * /* COMMON EXIT CODE FOR INTERCEPT */ 02217000 * /* */ 02218000 * /*****************************************************************/ 02219000 * 0656 02220000 *EXITI: 0656 02221000 * REG1=VRBN; /* SET PARM REG FOR CALLER 0656 02222000 * @ZA10767*/ 02223000 @RF00631 DS 0H 0656 02224000 EXITI LR REG1,VRBN 0656 02225000 * RCAVEQRI='0'B; 0657 02226000 L @14,PVTPRCA(,PVTPTR) 0657 02227000 NI RCAVEQRI(@14),B'11111101' 0657 02228000 * REG0=PVTWSA3(1:4); /* RESTOR REG 0 @ZA31128*/ 02229000 L REG0,PVTWSA3(,PVTPTR) 0658 02230000 * LM(REG2,REG15,PVTWSA3(9:64)); /* @ZA31128*/ 02231000 LM REG2,REG15,PVTWSA3+8(PVTPTR) 0659 02232000 * GOTO REG14; /* RETURN @ZA31128*/ 02233000 BR REG14 0660 02234000 * RESPECIFY 0661 02235000 * (REG1, 0661 02236000 * PCBRPTR, 0661 02237000 * VRBN, 0661 02238000 * PFTEPTR, 0661 02239000 * PVTPTR) UNRSTD; 0661 02240000 * 0662 02241000 */********************************************************************/ 02242000 */*COMPLETE ROUTINE IS SCHEDULED WHEN V=R REQUEST CAN BE POSTED */ 02243000 */*COMPLETE WITH POST CODE 0 FOR SUCCESSFUL OR 16 FOR UNSUCCESSFUL. */ 02244000 */*COMPLETE WILL THEN TURN ON PCBRFPCB BIT SO THAT WHEN IEAVEQRF */ 02245000 */*GETS CONTROL IT WILL FREE PCB IN ADDITION TO REGULAR PROCESSING. */ 02246000 */*IT IS POSSIBLE FOR COMPLETE TO GET CONTROL AFTER IEAVEQRF IS RUN. */ 02247000 */*THAT IS, A FREEPART IS ISSUED BEFORE ALLOCATION IS COMPLETE. TO */ 02248000 */*SYNCHRONIZE THIS SITUATION, IEAVEQRF WILL TURN ON PCBRPB BIT. IF */ 02249000 */*COMPLETE FINDS PCBRPB ON, IT WILL NOT TRY TO POST BUT IT WILL */ 02250000 */*DEQUEUE PCB. */ 02251000 */********************************************************************/ 02252000 * 0662 02253000 * RESPECIFY 0662 02254000 * (PCBRPTR, 0662 02255000 * PVTPTR, 0662 02256000 * SRBPTR, 0662 02257000 * REG5) RSTD; 0662 02258000 *EP3: 0663 02259000 * PCBRPTR=REG1; 0663 02260000 EP3 LR PCBRPTR,REG1 0663 02261000 * REG5=REG12; /* SAVE BASE REGISTER @ZA06219*/ 02262000 LR REG5,REG12 0664 02263000 * GENERATE CODE; 0665 02264000 LOCALCO SETLOCK OBTAIN,TYPE=LOCAL,MODE=UNCOND, **02265000 RELATED=(RSM,IEAVEQRC(LOCALCR)) 02266000 EP3SALO SETLOCK OBTAIN,TYPE=SALLOC,MODE=UNCOND, **02267000 RELATED=(RSM,IEAVEQRC(GLOBALCR),IEAVEQRC(GR2)) 02268000 * REG12=REG5; /* RESTORE BASE REG @ZA06219*/ 02269000 LR REG12,REG5 0666 02270000 * REG11=REG12+3840; /* RESTORE 2ND BASE REG @ZA06219*/ 02271000 LA REG11,3840 0667 02272000 ALR REG11,REG12 0667 02273000 * CALL SETFRR; /* GO SET UP FRR AND PVT PTR 0668 02274000 * @ZA31128*/ 02275000 * 0668 02276000 BAL @14,SETFRR 0668 02277000 * /*****************************************************************/ 02278000 * /* */ 02279000 * /* NOW FRR IS SET UP SO CONTINUE */ 02280000 * /* */ 02281000 * /*****************************************************************/ 02282000 * 0669 02283000 * RCASAL=ON; 0669 02284000 * RCALL=ON; 0670 02285000 L @14,PVTPRCA(,PVTPTR) 0670 02286000 OI RCASAL(@14),B'11000000' 0670 02287000 * RCAVEQRC=ON; /* TURN ON ENTERED BIT */ 02288000 OI RCAVEQRC(@14),B'00001000' 0671 02289000 * SRBPTR=REG0; 0672 02290000 LR SRBPTR,REG0 0672 02291000 * REG0=PVTSRBID; /* FREE SRB AREA */ 02292000 L REG0,PVTSRBID(,PVTPTR) 0673 02293000 * REG5=PVTPTR; /* SAVE PVT POINTER ACROSS 0674 02294000 * FREECELL @ZA31128*/ 02295000 LR REG5,PVTPTR 0674 02296000 * GEN(FREECELL CPID=(0),CELL=(SRBPTR),BRANCH=YES,SAVE=NO) ; 0675 02297000 FREECELL CPID=(0),CELL=(SRBPTR),BRANCH=YES,SAVE=NO 02298000 * PVTPTR=REG5; /* RESTORE PVT POINTER @ZA31128*/ 02299000 LR PVTPTR,REG5 0676 02300000 * RESPECIFY 0677 02301000 * (REG5, 0677 02302000 * SRBPTR) UNRSTD; /* @ZA31128*/ 02303000 * 0677 02304000 * /*****************************************************************/ 02305000 * /* */ 02306000 * /* THE COMPLETE SRB HAS BEEN FREED SO ZERO OUT IT'S ADDRESS IN */ 02307000 * /* THE ROOT PCB TO KEEP V=R FREE FROM TRYING TO FREE IT AGAIN. IF*/ 02308000 * /* THE PCBRPB BIT IS ON,THE IEAVEQRF HAS ALREADY RUN FREEING THE */ 02309000 * /* REQUESTED REGION (BY FREEPART). THEREFORE, JUST FREE PCBR AND */ 02310000 * /* RETURN. OTHERWISE, SCHEDULE POST WITH CODE 0 OR 16 DEPENDING */ 02311000 * /* IF THE PCBRFAIL BIT IS ON OR NOT. */ 02312000 * /* */ 02313000 * /*****************************************************************/ 02314000 * 0678 02315000 * COMPSRB=0; /* ZERO OUT COMP SRBPTR IN ROOT 02316000 * PCB @ZA10767*/ 02317000 SLR @14,@14 0678 02318000 ST @14,COMPSRB(,PCBRPTR) 0678 02319000 * IF PCBRPB=ON THEN /* IF ON, THEN FREE HAS ALREADY 02320000 * RUN */ 02321000 TM PCBRPB(PCBRPTR),B'00100000' 0679 02322000 BNO @RF00679 0679 02323000 * DO; 0680 02324000 * RFY 0681 02325000 * (REG6) RSTD; /* @ZA31128*/ 02326000 * 0681 02327000 * /*************************************************************/ 02328000 * /* */ 02329000 * /* MAP PVTVROOT ONTO NEXTPCB FIELD OF ROOT PCB @ZA31128*/ 02330000 * /* */ 02331000 * /*************************************************************/ 02332000 * 0682 02333000 * REG6=ADDR(PVTVROOT)-(ADDR(NEXTPCB)-ADDR(PCBR));/* @ZA31128*/ 02334000 * 0682 02335000 LA REG6,PVTVROOT(,PVTPTR) 0682 02336000 SH REG6,@CH00879 0682 02337000 * /*************************************************************/ 02338000 * /* */ 02339000 * /* SEARCH ROOT QUEUE UNTIL INPUT ROOT PCB FOUND OR END OF */ 02340000 * /* QUEUE IS REACHED. @ZA31128*/ 02341000 * /* */ 02342000 * /*************************************************************/ 02343000 * 0683 02344000 * DO WHILE(PCBRPTR^=REG6->NEXTPCB)&(REG6->NEXTPCB^=0); 0683 02345000 B @DE00683 0683 02346000 @DL00683 DS 0H 0684 02347000 * REG6=REG6->NEXTPCB; /* ADDR NEXT ROOT @ZA31128*/ 02348000 L REG6,NEXTPCB(,REG6) 0684 02349000 * END; /* END SEARCH FOR ROOT @ZA31128*/ 02350000 @DE00683 L @14,NEXTPCB(,REG6) 0685 02351000 CR PCBRPTR,@14 0685 02352000 BE @DC00683 0685 02353000 LTR @14,@14 0685 02354000 BNZ @DL00683 0685 02355000 @DC00683 DS 0H 0686 02356000 * IF REG6->NEXTPCB=0 THEN /* ROOT FOUND ? @ZA31128*/ 02357000 ICM @14,15,NEXTPCB(REG6) 0686 02358000 BNZ @RF00686 0686 02359000 * DO; /* NO, ERROR @ZA31128*/ 02360000 * RCARCRD=8; 0688 02361000 L @14,PVTPRCA(,PVTPTR) 0688 02362000 MVI RCARCRD(@14),X'08' 0688 02363000 * GEN(ABEND X'C0D',,,SYSTEM);/* RECORD ERROR */ 02364000 ABEND X'C0D',,,SYSTEM 02365000 * PCBRPOF='1'B; /* FORCE EXIT @ZA31128*/ 02366000 OI PCBRPOF(PCBRPTR),B'00000001' 0690 02367000 * END; /* @ZA31128*/ 02368000 * ELSE /* ROOT FOUND @ZA31128*/ 02369000 * 0692 02370000 * /***********************************************************/ 02371000 * /* */ 02372000 * /* INPUT ROOT PCB HAS BEEN FOUND ON ROOT QUEUE @ZA31128*/ 02373000 * /* */ 02374000 * /***********************************************************/ 02375000 * 0692 02376000 * REG6->NEXTPCB=NEXTPCB; /* DEQUEUE ROOT @ZA31128*/ 02377000 B @RC00686 0692 02378000 @RF00686 MVC NEXTPCB(4,REG6),NEXTPCB(PCBRPTR) 0692 02379000 * RFY 0693 02380000 * (REG6) UNRSTD; /* @ZA31128*/ 02381000 * 0693 02382000 @RC00686 DS 0H 0694 02383000 * /*************************************************************/ 02384000 * /* */ 02385000 * /* IF MAINLINE NOT RUNNING, SEND ROOT TO PCB FREE Q */ 02386000 * /* */ 02387000 * /*************************************************************/ 02388000 * 0694 02389000 * IF PCBRPOF='1'B THEN /* IF ON, CANNOT GET RID OF PCBR */ 02390000 TM PCBRPOF(PCBRPTR),B'00000001' 0694 02391000 BNO @RF00694 0694 02392000 * DO; 0695 02393000 * PCBRPOF='0'B; /* TURN OF POF SO IEAVEQRP WILL 02394000 * DEQUEUE */ 02395000 NI PCBRPOF(PCBRPTR),B'11111110' 0696 02396000 * REG1=REG12; /* SAVE BASE REGISTER */ 02397000 LR REG1,REG12 0697 02398000 * GENERATE; 0698 02399000 GR2 SETLOCK RELEASE,TYPE=SALLOC,RELATED=(RSM,IEAVEQRC(EP3SALO)) 02400000 * GOTO GOODBY; /* RETURN */ 02401000 B GOODBY 0699 02402000 * END; 0700 02403000 * ELSE /* ROOT TO PCB FREE Q @ZA31128*/ 02404000 * DO; /* @ZA31128*/ 02405000 @RF00694 DS 0H 0702 02406000 * PCBFQP=FREECB; /* PCBFQP = 'FF000000'X */ 02407000 MVC PCBFQP(4,PCBRPTR),FREECB 0702 02408000 * RESPECIFY 0703 02409000 * (REG0, 0703 02410000 * REG1, 0703 02411000 * RSMHDPTR) RSTD; 0703 02412000 * RSMHDPTR=ASCBRSM; 0704 02413000 L @14,ASCBPTR 0704 02414000 L RSMHDPTR,ASCBRSM(,@14) 0704 02415000 * REG0=PCBFREQN; /* INPUT TO PCB MANAGER */ 02416000 LA REG0,16 0705 02417000 * REG1=PCBRPTR; /* PCBR TO DEQUEUE */ 02418000 LR REG1,PCBRPTR 0706 02419000 * CALL IEAVPCB; /* CALL PCB MANAGER */ 02420000 L @15,PVTPCB(,PVTPTR) 0707 02421000 BALR @14,@15 0707 02422000 * RESPECIFY 0708 02423000 * (REG0, 0708 02424000 * REG1, 0708 02425000 * RSMHDPTR) UNRSTD; 0708 02426000 * END; 0709 02427000 * END; /* @ZA31128*/ 02428000 * ELSE 0711 02429000 * DO; 0711 02430000 * 0711 02431000 B @RC00679 0711 02432000 @RF00679 DS 0H 0712 02433000 * /*************************************************************/ 02434000 * /* */ 02435000 * /* IF PCBRFAIL IS ON,THEN V=R REGION COULD NOT BE OBTAINED, */ 02436000 * /* POST WITH POST CODE OF 16. */ 02437000 * /* */ 02438000 * /*************************************************************/ 02439000 * 0712 02440000 * RESPECIFY 0712 02441000 * (REG0, 0712 02442000 * REG1, 0712 02443000 * REG10, 0712 02444000 * REG9) RSTD; 0712 02445000 * REG9=PCBRECB; 0713 02446000 * 0713 02447000 L REG9,PCBRECB(,PCBRPTR) 0713 02448000 * /*************************************************************/ 02449000 * /* */ 02450000 * /* IF FAIL BIT IS ON THEN SET UP POST CODE OF 16 */ 02451000 * /* */ 02452000 * /*************************************************************/ 02453000 * 0714 02454000 * IF PCBRFAIL=ON THEN 0714 02455000 TM PCBRFAIL(PCBRPTR),B'00001000' 0714 02456000 BNO @RF00714 0714 02457000 * DO; 0715 02458000 * PCBRFPCB=ON; /* TURN ON FREEPCB BIT */ 02459000 OI PCBRFPCB(PCBRPTR),B'00010000' 0716 02460000 * REG10=16; /* SET POST CODE OF 16 */ 02461000 LA REG10,16 0717 02462000 * END; 0718 02463000 * ELSE 0719 02464000 * DO; 0719 02465000 B @RC00714 0719 02466000 @RF00714 DS 0H 0720 02467000 * RFY 0720 02468000 * (RSMHDPTR) RSTD; /* @ZA31128*/ 02469000 * RSMHDPTR=ASCBRSM; /* @ZA31128*/ 02470000 L @14,ASCBPTR 0721 02471000 L RSMHDPTR,ASCBRSM(,@14) 0721 02472000 * CALL VALIDATE; /* VALIDATE AND ZERO OUT V=R 0722 02473000 * REGION */ 02474000 BAL @14,VALIDATE 0722 02475000 * RFY 0723 02476000 * (RSMHDPTR) UNRSTD; /* @ZA31128*/ 02477000 * IF RCODE=0 THEN /* VALIDATE SUCCESSFUL ? */ 02478000 LTR RCODE,RCODE 0724 02479000 BNZ @RF00724 0724 02480000 * DO; /* YES, CONTINUE */ 02481000 * 0725 02482000 * /*****************************************************/ 02483000 * /* */ 02484000 * /* MAP PVTVROOT ONTO NEXTPCB FIELD OF ROOT PCB */ 02485000 * /* @ZA31128*/ 02486000 * /* */ 02487000 * /*****************************************************/ 02488000 * 0726 02489000 * REG1=ADDR(PVTVROOT)-(ADDR(NEXTPCB)-ADDR(PCBR));/* 0726 02490000 * @ZA31128*/ 02491000 * 0726 02492000 LA REG1,PVTVROOT(,PVTPTR) 0726 02493000 SH REG1,@CH00879 0726 02494000 * /*****************************************************/ 02495000 * /* */ 02496000 * /* SEARCH ROOT QUEUE UNTIL INPUT ROOT PCB FOUND OR */ 02497000 * /* END OF QUEUE IS REACHED. @ZA31128*/ 02498000 * /* */ 02499000 * /*****************************************************/ 02500000 * 0727 02501000 * DO WHILE(PCBRPTR^=REG1->NEXTPCB)&(REG1->NEXTPCB^=0); 02502000 B @DE00727 0727 02503000 @DL00727 DS 0H 0728 02504000 * REG1=REG1->NEXTPCB;/* ADDR NEXT ROOT @ZA31128*/ 02505000 L REG1,NEXTPCB(,REG1) 0728 02506000 * END; /* END SEARCH FOR ROOT @ZA31128*/ 02507000 @DE00727 L @14,NEXTPCB(,REG1) 0729 02508000 CR PCBRPTR,@14 0729 02509000 BE @DC00727 0729 02510000 LTR @14,@14 0729 02511000 BNZ @DL00727 0729 02512000 @DC00727 DS 0H 0730 02513000 * IF REG1->NEXTPCB=0 THEN/* ROOT FOUND ? @ZA31128*/ 02514000 ICM @14,15,NEXTPCB(REG1) 0730 02515000 BNZ @RF00730 0730 02516000 * DO; /* NO, ERROR @ZA31128*/ 02517000 * RCARCRD=8; 0732 02518000 L @14,PVTPRCA(,PVTPTR) 0732 02519000 MVI RCARCRD(@14),X'08' 0732 02520000 * GEN(ABEND X'C0D',,,SYSTEM);/* RECORD ERROR */ 02521000 ABEND X'C0D',,,SYSTEM 02522000 * END; /* @ZA31128*/ 02523000 * ELSE /* @ZA31128*/ 02524000 * 0735 02525000 * /***************************************************/ 02526000 * /* */ 02527000 * /* INPUT ROOT PCB HAS BEEN FOUND ON ROOT QUEUE */ 02528000 * /* @ZA31128*/ 02529000 * /* */ 02530000 * /***************************************************/ 02531000 * 0735 02532000 * REG1->NEXTPCB=NEXTPCB;/* DEQUEUE ROOT @ZA31128*/ 02533000 * 0735 02534000 B @RC00730 0735 02535000 @RF00730 MVC NEXTPCB(4,REG1),NEXTPCB(PCBRPTR) 0735 02536000 * /*****************************************************/ 02537000 * /* */ 02538000 * /* FREE PCB BEFORE POSTING */ 02539000 * /* */ 02540000 * /*****************************************************/ 02541000 * 0736 02542000 * IF PCBRPOF='1'B THEN 0736 02543000 @RC00730 TM PCBRPOF(PCBRPTR),B'00000001' 0736 02544000 BNO @RF00736 0736 02545000 * DO; 0737 02546000 * REG9=PCBRECB; /* SET UP ECB TO POST */ 02547000 L REG9,PCBRECB(,PCBRPTR) 0738 02548000 * PCBRPOF='0'B; /* TURN OFF POF SO IEAVEQRP WILL 02549000 * DEQUEUE */ 02550000 NI PCBRPOF(PCBRPTR),B'11111110' 0739 02551000 * END; 0740 02552000 * ELSE /* @ZA31128*/ 02553000 * DO; /* @ZA31128*/ 02554000 B @RC00736 0741 02555000 @RF00736 DS 0H 0742 02556000 * RFY 0742 02557000 * (RSMHDPTR) RSTD;/* @ZA31128*/ 02558000 * RSMHDPTR=ASCBRSM; 0743 02559000 L @14,ASCBPTR 0743 02560000 L RSMHDPTR,ASCBRSM(,@14) 0743 02561000 * REG9=PCBRECB; 0744 02562000 L REG9,PCBRECB(,PCBRPTR) 0744 02563000 * PCBFQP=FREECB; /* FREE PCBR */ 02564000 MVC PCBFQP(4,PCBRPTR),FREECB 0745 02565000 * REG0=PCBFREQN; 0746 02566000 LA REG0,16 0746 02567000 * REG1=PCBRPTR; 0747 02568000 LR REG1,PCBRPTR 0747 02569000 * CALL IEAVPCB; 0748 02570000 L @15,PVTPCB(,PVTPTR) 0748 02571000 BALR @14,@15 0748 02572000 * RFY 0749 02573000 * (RSMHDPTR) UNRSTD;/* @ZA31128*/ 02574000 * END; /* @ZA31128*/ 02575000 * REG10=0; /* SET UP POST CODE OF 0 */ 02576000 @RC00736 SLR REG10,REG10 0751 02577000 * END; 0752 02578000 * ELSE 0753 02579000 * DO; 0753 02580000 B @RC00724 0753 02581000 @RF00724 DS 0H 0754 02582000 * PCBRFPCB=ON; 0754 02583000 OI PCBRFPCB(PCBRPTR),B'00010000' 0754 02584000 * REG10=16; /* SET UP POST CODE OF 16 */ 02585000 LA REG10,16 0755 02586000 * END; 0756 02587000 * END; /* SETLOCK CLOBBERS REG11-14 */ 02588000 @RC00724 DS 0H 0758 02589000 * REG1=REG12; 0758 02590000 @RC00714 LR REG1,REG12 0758 02591000 * GENERATE; 0759 02592000 GLOBALCR SETLOCK RELEASE,TYPE=SALLOC, **02593000 RELATED=(RSM,IEAVEQRC(GLOBALCO)) 02594000 * /* REG10 HAS ALREADY BEEN SET UP 02595000 * WITH POST CODE */ 02596000 * REG11=REG9; /* SET UP ECB ADDR IN REG11 */ 02597000 LR REG11,REG9 0760 02598000 * CALL POST; /* POST CLOBBERS REG10-13 */ 02599000 L @02,CVTPTR 0761 02600000 L @15,CVT0PT01(,@02) 0761 02601000 BALR @14,@15 0761 02602000 * RESPECIFY 0762 02603000 * (REG0, 0762 02604000 * REG1, 0762 02605000 * REG10) UNRSTD; 0762 02606000 * END; 0763 02607000 * 0763 02608000 * /*****************************************************************/ 02609000 * /* */ 02610000 * /* RELEASE OBTAINED LOCKS */ 02611000 * /* */ 02612000 * /*****************************************************************/ 02613000 * 0764 02614000 *GOODBY: 0764 02615000 * ; 0764 02616000 @RC00679 DS 0H 0764 02617000 GOODBY DS 0H 0765 02618000 * GENERATE; 0765 02619000 LOCALCR SETLOCK RELEASE,TYPE=LOCAL, **02620000 RELATED=(RSM,IEAVEQRC(LOCALCO)) 02621000 * REG12=REG1; /* RESTORE REG12 */ 02622000 LR REG12,REG1 0766 02623000 * REG11=REG12+3840; /* RESTORE 2ND BASE REG @Z30GNYD*/ 02624000 * 0767 02625000 LA REG11,3840 0767 02626000 ALR REG11,REG12 0767 02627000 * /*****************************************************************/ 02628000 * /* */ 02629000 * /* COMMON EXIT CODE */ 02630000 * /* */ 02631000 * /*****************************************************************/ 02632000 * 0768 02633000 * GEN(SETFRR D,WRKREGS=(1,2)); 0768 02634000 SETFRR D,WRKREGS=(1,2) 02635000 * REG14=CVTSRBRT; /* RETURN SRB ADDRESS */ 02636000 L @10,CVTPTR 0769 02637000 L REG14,CVTSRBRT(,@10) 0769 02638000 * GOTO REG14; 0770 02639000 BR REG14 0770 02640000 * RESPECIFY 0771 02641000 * (REG9, 0771 02642000 * PCBRPTR, 0771 02643000 * PVTPTR) UNRSTD; 0771 02644000 * 0772 02645000 */********************************************************************/ 02646000 */*FREE IS ENTERED WHEN FREEPART IS ISSUED FOR V=R REGION. THE */ 02647000 */*REGION ALLOCATION COULD STILL BE IN PROGRESS OR THE ALLOCATION */ 02648000 */*PROCESS HAS ALREADY COMPLETED. IF THE PCBRINT BIT IS ON, */ 02649000 */*THE COMPLETE ROUTINE WAS SCHEDULED TO POST THE ECB, THEREFORE */ 02650000 */*IT NEEDS THE PCBR. DO NOT DEQUEUE IT YET, BUT SET THE PCBRPB */ 02651000 */*BIT SO THAT WHEN COMPLETE DOES GET CONTROL, IT WILL CHECK THE */ 02652000 */*BIT AND DEQUEUE THE PCBR WITHOUT FURTHER PROCESSING. IF THE */ 02653000 */*PCBRFPCB BIT IS ON, THAT MEANS THAT COMPLETE HAS ALREADY RUN. */ 02654000 */*COMPLETE SET THE BIT TO NOTIFY FREE TO FREE THE PCB IN ADDITION */ 02655000 */*TO FREEING THE REGION FOR V=R. */ 02656000 */********************************************************************/ 02657000 * 0772 02658000 *EP4: 0772 02659000 * ; 0772 02660000 EP4 DS 0H 0773 02661000 * RESPECIFY 0773 02662000 * (INPUTPTR, 0773 02663000 * RSMHDPTR, 0773 02664000 * PVTPTR, 0773 02665000 * PCBRPTR) RSTD; 0773 02666000 * INPUTPTR=REG1; 0774 02667000 LR INPUTPTR,REG1 0774 02668000 * CALL SETFRR; /* GO SET UP FRR AND PVT PTR 0775 02669000 * @ZA31128*/ 02670000 * 0775 02671000 BAL @14,SETFRR 0775 02672000 * /*****************************************************************/ 02673000 * /* */ 02674000 * /* NOW FRR IS SET UP CONTINUE PROCESSING */ 02675000 * /* */ 02676000 * /*****************************************************************/ 02677000 * 0776 02678000 * RCAVEQRF=ON; /* SET UP ENTRY BIT INPUT LIST */ 02679000 L @14,PVTPRCA(,PVTPTR) 0776 02680000 OI RCAVEQRF(@14),B'00000100' 0776 02681000 * RSMHDPTR=ASCBRSM; 0777 02682000 L @14,ASCBPTR 0777 02683000 L RSMHDPTR,ASCBRSM(,@14) 0777 02684000 * PCBRPTR=PVTVROOT; /* PICK UP ADDR OF FIRST PCB ON 02685000 * V=R WAIT QUEUE */ 02686000 L @14,PVTVROOT(,PVTPTR) 0778 02687000 LR PCBRPTR,@14 0778 02688000 * RESPECIFY 0779 02689000 * (REG5, 0779 02690000 * RSAVE) RSTD; 0779 02691000 * REG5=PVTVROOT; /* SAVE BACKWARD PTR */ 02692000 * 0780 02693000 LR REG5,@14 0780 02694000 * /*****************************************************************/ 02695000 * /* */ 02696000 * /* BEGIN PCB FREE SEARCH */ 02697000 * /* */ 02698000 * /*****************************************************************/ 02699000 * 0781 02700000 *FREELOOP: 0781 02701000 * IF PCBRPTR=ZERO THEN /* NO PCBR CREATED FOR REGION */ 02702000 FREELOOP LTR PCBRPTR,PCBRPTR 0781 02703000 BNZ @RF00781 0781 02704000 * DO; /* DO LRA FOR CHECK OF VEQR */ 02705000 * REG1=INPSTART; 0783 02706000 L REG1,INPSTART(,INPUTPTR) 0783 02707000 * GENERATE; 0784 02708000 LRA REG8,0(REG1) 02709000 BC 7,BAD 02710000 * IF REG8=INPSTART THEN /* CONDITION CODE=0, IN CORE */ 02711000 C REG8,INPSTART(,INPUTPTR) 0785 02712000 BE @RT00785 0785 02713000 * GOTO FREERGN; /* VALIDITY CHECK COMPLETE */ 02714000 * 0786 02715000 * /*************************************************************/ 02716000 * /* */ 02717000 * /* IF REGION NOT BACKED BY REAL STORAGE, OR NOT MAPPED 1 TO */ 02718000 * /* 1, RECORD ERROR; THEN SET RC AND RETURN. */ 02719000 * /* */ 02720000 * /*************************************************************/ 02721000 * 0787 02722000 *BAD: 0787 02723000 * RCARCRD=27; /* @ZA03281*/ 02724000 BAD L @14,PVTPRCA(,PVTPTR) 0787 02725000 MVI RCARCRD(@14),X'1B' 0787 02726000 * GEN(ABEND X'C0D',,,SYSTEM); /* @ZA03281*/ 02727000 ABEND X'C0D',,,SYSTEM 02728000 * S15=SIXTEEN; /* INPUT PARAMETER INCORRECT */ 02729000 MVC S15(4,REG13),@CF00040 0789 02730000 * GOTO EXITF; /* RETURN */ 02731000 B EXITF 0790 02732000 * END; 0791 02733000 * IF INPSTART=RGNSTART THEN /* IS PCB REGION START ADDR = TO 02734000 * GIVEN START ADDRESS */ 02735000 @RF00781 CLC INPSTART(4,INPUTPTR),RGNSTART(PCBRPTR) 0792 02736000 BNE @RF00792 0792 02737000 * DO; 0793 02738000 * 0793 02739000 * /*************************************************************/ 02740000 * /* */ 02741000 * /* IF RINT IS OFF OR FPCB IS ON THEN FREE PCB */ 02742000 * /* */ 02743000 * /*************************************************************/ 02744000 * 0794 02745000 * IF PCBRINT=OFF|PCBRFPCB=ON THEN 0794 02746000 TM PCBRFPCB(PCBRPTR),B'00010000' 0794 02747000 BNZ @RT00794 0794 02748000 TM PCBRINT(PCBRPTR),B'10000000' 0794 02749000 BNO @RT00794 0794 02750000 * GOTO FREEPCB; /* GO FREE PCB */ 02751000 * PCBRPB=ON; 0796 02752000 OI PCBRPB(PCBRPTR),B'00100000' 0796 02753000 * GOTO FREERGN; /* TURN ON PCBRPB BIT, SO THAT 0797 02754000 * COMPLETE WILL NOT POST ECB */ 02755000 B FREERGN 0797 02756000 * END; 0798 02757000 * REG5=PCBRPTR; /* SAVE BACKWARD PTR */ 02758000 @RF00792 LR REG5,PCBRPTR 0799 02759000 * PCBRPTR=NEXTPCB; /* GET NEXT PCB ADDRESS */ 02760000 L PCBRPTR,NEXTPCB(,PCBRPTR) 0800 02761000 * GOTO FREELOOP; /* GOTO FREE LOOP AGAIN */ 02762000 * 0801 02763000 B FREELOOP 0801 02764000 * /*****************************************************************/ 02765000 * /* */ 02766000 * /* FREE PCB SET UP */ 02767000 * /* */ 02768000 * /*****************************************************************/ 02769000 * 0802 02770000 *FREEPCB: 0802 02771000 * ; 0802 02772000 FREEPCB DS 0H 0803 02773000 * RESPECIFY 0803 02774000 * REG1 RSTD; 0803 02775000 * REG1=PCBRPTR; 0804 02776000 LR REG1,PCBRPTR 0804 02777000 * IF PVTVROOT=PCBRPTR THEN 0805 02778000 C PCBRPTR,PVTVROOT(,PVTPTR) 0805 02779000 BNE @RF00805 0805 02780000 * PVTVROOT=NEXTPCB; /* ONLY 1 ROOT PCB ON QUEUE */ 02781000 MVC PVTVROOT(4,PVTPTR),NEXTPCB(PCBRPTR) 0806 02782000 * ELSE 0807 02783000 * DO; 0807 02784000 B @RC00805 0807 02785000 @RF00805 DS 0H 0808 02786000 * REG5->NEXTPCB=NEXTPCB; /* COMPLETE CHAIN */ 02787000 MVC NEXTPCB(4,REG5),NEXTPCB(PCBRPTR) 0808 02788000 * END; 0809 02789000 * 0809 02790000 * /*****************************************************************/ 02791000 * /* */ 02792000 * /* IF POF IS ON THEN STILL SCHEDULING SRBS, SO CANNOT DEQUEUE */ 02793000 * /* PCBR. IF POF = OFF, SAFE TO DEQUEUE PCBR. */ 02794000 * /* */ 02795000 * /*****************************************************************/ 02796000 * 0810 02797000 * IF COMPSRB^=ZERO THEN 0810 02798000 @RC00805 L @14,COMPSRB(,PCBRPTR) 0810 02799000 LTR @14,@14 0810 02800000 BZ @RF00810 0810 02801000 * DO; 0811 02802000 * RFY 0812 02803000 * (REG0, 0812 02804000 * REG1, 0812 02805000 * REG2, 0812 02806000 * PVTPTR) RSTD; /* @Z30GNYD*/ 02807000 * REG0=PVTSRBID; /* SRB ID TO FREE @Z30GNYD*/ 02808000 L REG0,PVTSRBID(,PVTPTR) 0813 02809000 * REG1=COMPSRB; /* SET ADDR OF SRB TO FREE 0814 02810000 * @Z30GNYD*/ 02811000 LR REG1,@14 0814 02812000 * PVTPTR=CVTPVTP; /* SET PTR TO PVT @Z30GNYD*/ 02813000 L @14,CVTPTR 0815 02814000 L PVTPTR,CVTPVTP(,@14) 0815 02815000 * REG2=REG13; /* SAVE SAVE AREA PTR ACROSS 0816 02816000 * FREECELL @Z30GNYD*/ 02817000 LR REG2,REG13 0816 02818000 * REG13=ADDR(PVTSAVE); /* SET SAVE AREA PTR FOR FREECELL 02819000 * @Z30GNYD*/ 02820000 LA REG13,PVTSAVE(,PVTPTR) 0817 02821000 * GEN(FREECELL CPID=(0),CELL=(1),BRANCH=YES,SAVE=YES);/* 0818 02822000 * @Z30GNYD*/ 02823000 FREECELL CPID=(0),CELL=(1),BRANCH=YES,SAVE=YES 02824000 * REG13=REG2; /* RESTORE PTR TO SAVE AREA 0819 02825000 * @Z30GNYD*/ 02826000 LR REG13,REG2 0819 02827000 * REG2=ASCBRSM; /* RESTORE RSM HEADER POINTER 0820 02828000 * @Z30GNYD*/ 02829000 L @14,ASCBPTR 0820 02830000 L REG2,ASCBRSM(,@14) 0820 02831000 * RFY 0821 02832000 * (REG0, 0821 02833000 * REG1, 0821 02834000 * PVTPTR) UNRSTD; /* @Z30GNYD*/ 02835000 * END; /* @Z30GNYD*/ 02836000 * IF PCBRPOF='1'B THEN 0823 02837000 @RF00810 TM PCBRPOF(PCBRPTR),B'00000001' 0823 02838000 BNO @RF00823 0823 02839000 * DO; 0824 02840000 * PCBRPOF='0'B; /* TURN OF POF SO IEAVEQRP WILL 02841000 * DEQUEUE */ 02842000 NI PCBRPOF(PCBRPTR),B'11111110' 0825 02843000 * GOTO FREERGN; /* CONTINUE WITHOUT DEQUEUE */ 02844000 B FREERGN 0826 02845000 * END; 0827 02846000 * REG0=PCBFREQN; /* REG0 = '00000010'X */ 02847000 @RF00823 LA REG0,16 0828 02848000 * PCBFQP=FREECB; /* SEND TO DEQUEUE */ 02849000 MVC PCBFQP(4,PCBRPTR),FREECB 0829 02850000 * CALL IEAVPCB; /* SEND PCB TO FREE QUEUE */ 02851000 L @15,PVTPCB(,PVTPTR) 0830 02852000 BALR @14,@15 0830 02853000 * RESPECIFY 0831 02854000 * (PCBRPTR, 0831 02855000 * REG1, 0831 02856000 * RSAVE, 0831 02857000 * REG5) UNRSTD; 0831 02858000 * 0831 02859000 * /*****************************************************************/ 02860000 * /* */ 02861000 * /* SET UP TO FREE V=R REGION */ 02862000 * /* */ 02863000 * /*****************************************************************/ 02864000 * 0832 02865000 * RESPECIFY 0832 02866000 * RVSA RSTD; 0832 02867000 * 0832 02868000 * /*****************************************************************/ 02869000 * /* */ 02870000 * /* SET UP TO FREE REGION BY GETTING START ADDRESS */ 02871000 * /* */ 02872000 * /*****************************************************************/ 02873000 * 0833 02874000 *FREERGN: 0833 02875000 * RVSA=ZERO; 0833 02876000 FREERGN SLR RVSA,RVSA 0833 02877000 * GENERATE( ICM RVSA,12,INPSTART(INPUTPTR)) ; 0834 02878000 * 0834 02879000 ICM RVSA,12,INPSTART(INPUTPTR) 02880000 * /*****************************************************************/ 02881000 * /* */ 02882000 * /* START VEQR REGION ADDR */ 02883000 * /* */ 02884000 * /*****************************************************************/ 02885000 * 0835 02886000 *FREER: 0835 02887000 * ; 0835 02888000 FREER DS 0H 0836 02889000 * RESPECIFY 0836 02890000 * (REG1, 0836 02891000 * RCODE) RSTD; 0836 02892000 * REG1=RVSA; 0837 02893000 LR REG1,RVSA 0837 02894000 * CALL IEAVFP2; /* FIND FIRST PGTE OF SEGMENT */ 02895000 * 0838 02896000 L @15,PVTPFP2(,PVTPTR) 0838 02897000 BALR @14,@15 0838 02898000 * /*****************************************************************/ 02899000 * /* */ 02900000 * /* IF NOT ZERO, THEN SET UP RETURN CODE 16 AND BACKOUT */ 02901000 * /* */ 02902000 * /*****************************************************************/ 02903000 * 0839 02904000 * IF RCODE^=ZERO THEN 0839 02905000 LTR RCODE,RCODE 0839 02906000 BZ @RF00839 0839 02907000 * DO; 0840 02908000 * S15=SIXTEEN; /* RETURN CODE = 16 */ 02909000 MVC S15(4,REG13),@CF00040 0841 02910000 * GOTO UPPFTE2; /* CLEAN UP BEFORE LEAVING */ 02911000 B UPPFTE2 0842 02912000 * END; 0843 02913000 * RESPECIFY 0844 02914000 * RCODE UNRSTD; 0844 02915000 @RF00839 DS 0H 0845 02916000 * RESPECIFY 0845 02917000 * (COUNT, 0845 02918000 * PTEPTR) RSTD; 0845 02919000 * PTEPTR=REG0; /* FIRST PAGE TABLE ENTRY ADDRESS*/ 02920000 * 0846 02921000 LR PTEPTR,REG0 0846 02922000 * /*****************************************************************/ 02923000 * /* */ 02924000 * /* CHECK EACH PAGE OF THE SEGMENT FOR THE ASSIGNED BIT. IF ON, */ 02925000 * /* CHECK IF PAGE IS WITHIN V=R REGION. IF IT IS, INVALIDATE PAGE */ 02926000 * /* TABLE ENTRY AND CONTINUE CHECKING. WHEN ALL PAGES IN A SEGMENT*/ 02927000 * /* HAVE BEEN INVALIDATED, CALL IEAVDSEG TO DESTROY THE SEGMENT. */ 02928000 * /* THEN FREEMAIN THE PAGE TABLES. FOR SEGMENTS PARTIALLY */ 02929000 * /* ALLOCATED TO THE V=R REGION, ONLY THE RELEVANT PAGE TABLE */ 02930000 * /* ENTRIES ARE INVALIDATED. ONCE ALL NECESSARY PAGE TABLE ENTRIES*/ 02931000 * /* HAVE BEEN INVALIDATED AND SEGMENTS DESTROYED, THE FRAMES ARE */ 02932000 * /* SENT TO THE AVAILABLE FRAME QUEUE. */ 02933000 * /* */ 02934000 * /*****************************************************************/ 02935000 * 0847 02936000 * COUNT=0; 0847 02937000 SLR COUNT,COUNT 0847 02938000 * DO REG1=1 TO 16; 0848 02939000 LA REG1,1 0848 02940000 @DL00848 DS 0H 0849 02941000 * IF PGTPAM=OFF THEN /* ASSIGNED BIT */ 02942000 TM PGTPAM(PTEPTR),B'00000001' 0849 02943000 BNZ @RF00849 0849 02944000 * DO; 0850 02945000 * COUNT=COUNT+ONE; /* PAM=OFF COUNTER */ 02946000 AL COUNT,@CF00044 0851 02947000 * GOTO INCRE; 0852 02948000 B INCRE 0852 02949000 * END; 0853 02950000 * 0853 02951000 * /***************************************************************/ 02952000 * /* */ 02953000 * /* IF GREATER THAN V=R START, CHECK IF GREATER THAN END */ 02954000 * /* */ 02955000 * /***************************************************************/ 02956000 * 0854 02957000 * IF RVSA>=INPSTART THEN 0854 02958000 @RF00849 L @10,INPSTART(,INPUTPTR) 0854 02959000 CR RVSA,@10 0854 02960000 BL @RF00854 0854 02961000 * DO; 0855 02962000 * 0855 02963000 * /***********************************************************/ 02964000 * /* */ 02965000 * /* IF ADDR IS GREATER THEN V=R REGION, DO NOT FREE PAGE */ 02966000 * /* SPACE */ 02967000 * /* */ 02968000 * /***********************************************************/ 02969000 * 0856 02970000 * IF RVSA>=INPSTART+(INPAGES*K4) THEN 0856 02971000 LH @07,INPAGES(,INPUTPTR) 0856 02972000 SLA @07,12 0856 02973000 ALR @10,@07 0856 02974000 CR RVSA,@10 0856 02975000 BNL @RT00856 0856 02976000 * GOTO UPPFTE; 0857 02977000 * 0857 02978000 * /***********************************************************/ 02979000 * /* */ 02980000 * /* PAM IS ON IN V=R REGION, SO TURN IT OFF AND CONTINUE */ 02981000 * /* */ 02982000 * /***********************************************************/ 02983000 * 0858 02984000 * PGTRSA=0; /* TO PREVENT RECLAIM */ 02985000 SLR @10,@10 0858 02986000 STH @10,PGTRSA(,PTEPTR) 0858 02987000 * PGTPVM=ON; 0859 02988000 OI PGTPVM(PTEPTR),B'00001000' 0859 02989000 * COUNT=COUNT+1; 0860 02990000 AL COUNT,@CF00044 0860 02991000 * END; 0861 02992000 * 0861 02993000 * /***************************************************************/ 02994000 * /* */ 02995000 * /* INCREMENT TO NEXT PGTE AND CONTINUE */ 02996000 * /* */ 02997000 * /***************************************************************/ 02998000 * 0862 02999000 *INCRE: 0862 03000000 * PTEPTR=PTEPTR+LENGTH(PGTPTE); /* INCRE TO NEXT PAGE TABLE ENTRY*/ 03001000 @RF00854 DS 0H 0862 03002000 INCRE AH PTEPTR,@CH00058 0862 03003000 * RVSA=RVSA+K4; /* INCRE TO NEXT FRAME */ 03004000 AL RVSA,@CF00054 0863 03005000 * END; 0864 03006000 * 0864 03007000 AL REG1,@CF00044 0864 03008000 CH REG1,@CH00040 0864 03009000 BNH @DL00848 0864 03010000 * /*****************************************************************/ 03011000 * /* */ 03012000 * /* IF ALL PAGES IN SEGMENT HAD PAM BIT OFF OR WERE IN V=R REGION */ 03013000 * /* THEN FREE PAGE TABLE SPACE FOR THAT SEGMENT. */ 03014000 * /* */ 03015000 * /*****************************************************************/ 03016000 * 0865 03017000 * IF COUNT=16 THEN /* ALL 16 PAGES CAN BE 0865 03018000 * INVALIDATED */ 03019000 CH COUNT,@CH00040 0865 03020000 BNE @RF00865 0865 03021000 * DO; 0866 03022000 * REG0=RVSA-K4; 0867 03023000 LR REG0,RVSA 0867 03024000 SL REG0,@CF00054 0867 03025000 * GENERATE; 0868 03026000 SRL REG0,16 SET UP REG0 03027000 * CALL IEAVDSEG; /* DESTROY SEGMENT */ 03028000 L @15,PVTPDSEG(,PVTPTR) 0869 03029000 BALR @14,@15 0869 03030000 * RFY 0870 03031000 * REG10 RSTD; 0870 03032000 * REG10=REG1; /* SAVE PGTE AREA ADDRESS */ 03033000 LR REG10,REG1 0871 03034000 * RCACSECT=RCACVR; 0872 03035000 L @07,PVTPRCA(,PVTPTR) 0872 03036000 MVI RCACSECT(@07),X'05' 0872 03037000 * RESPECIFY 0873 03038000 * (REG0, 0873 03039000 * REG4, 0873 03040000 * REG7, 0873 03041000 * RCODE) RSTD; 0873 03042000 * SAVERCA=PVTPRCA; 0874 03043000 L @14,PVTPRCA(,PVTPTR) 0874 03044000 ST @14,SAVERCA(,PVTPTR) 0874 03045000 * REG4=PSATOLD; 0875 03046000 L REG4,PSATOLD 0875 03047000 * REG7=PSAAOLD; 0876 03048000 L REG7,PSAAOLD 0876 03049000 * REG1=REG10; 0877 03050000 LR REG1,REG10 0877 03051000 * REG0=SIXTEEN*(LENGTH(PGTPTE)+LENGTH(XPTE)); 0878 03052000 LA REG0,224 0878 03053000 * GENERATE( FREEMAIN RC,LV=(0),A=(1),SP=255,BRANCH=YES) ; 0879 03054000 FREEMAIN RC,LV=(0),A=(1),SP=255,BRANCH=YES 03055000 * PVTPTR=CVTPVTP; 0880 03056000 L @14,CVTPTR 0880 03057000 L PVTPTR,CVTPVTP(,@14) 0880 03058000 * PVTPRCA=SAVERCA; 0881 03059000 * 0881 03060000 L @14,SAVERCA(,PVTPTR) 0881 03061000 ST @14,PVTPRCA(,PVTPTR) 0881 03062000 * /*************************************************************/ 03063000 * /* */ 03064000 * /* RETURN CODE DOES NOT EQUAL 0 THEN RECORD ERROR */ 03065000 * /* */ 03066000 * /*************************************************************/ 03067000 * 0882 03068000 * IF RCODE^=ZERO THEN 0882 03069000 LTR RCODE,RCODE 0882 03070000 BZ @RF00882 0882 03071000 * DO; 0883 03072000 * RCARCRD=3; 0884 03073000 MVI RCARCRD(@14),X'03' 0884 03074000 * GENERATE CODE; 0885 03075000 ABEND X'C0D',,,SYSTEM 03076000 * END; 0886 03077000 * RESPECIFY 0887 03078000 * (REG0, 0887 03079000 * REG1, 0887 03080000 * REG4, 0887 03081000 * REG7, 0887 03082000 * REG10, 0887 03083000 * RCODE) UNRSTD; 0887 03084000 @RF00882 DS 0H 0888 03085000 * END; 0888 03086000 * 0888 03087000 * /*****************************************************************/ 03088000 * /* */ 03089000 * /* IF THE CURRENT ADDR IS GREATER THAN THE V=R REGION END ADDR, */ 03090000 * /* DO NOT DESTROY THE SEGMENT OR FREEMAIN PAGE TABLES, BUT */ 03091000 * /* REQUEUE THE FRAMES. OTHERWISE, WORK ON THE NEXT SEGMENTS PAGE */ 03092000 * /* TABLES. */ 03093000 * /* */ 03094000 * /*****************************************************************/ 03095000 * 0889 03096000 * IF RVSA>INPSTART+((INPAGES-1)*K4) THEN 0889 03097000 @RF00865 LH @10,INPAGES(,INPUTPTR) 0889 03098000 BCTR @10,0 0889 03099000 SLA @10,12 0889 03100000 AL @10,INPSTART(,INPUTPTR) 0889 03101000 CR RVSA,@10 0889 03102000 BH @RT00889 0889 03103000 * GOTO UPPFTE; /* GO SET RETURN CODE TO ZERO */ 03104000 * GOTO FREER; /* GO AND FREE REGION */ 03105000 B FREER 0891 03106000 * RESPECIFY 0892 03107000 * (PTEPTR, 0892 03108000 * RVSA, 0892 03109000 * REG1, 0892 03110000 * REG7, 0892 03111000 * COUNT) UNRSTD; 0892 03112000 * 0892 03113000 * /*****************************************************************/ 03114000 * /* */ 03115000 * /* SET RETURN CODE TO 0 */ 03116000 * /* */ 03117000 * /*****************************************************************/ 03118000 * 0893 03119000 *UPPFTE: 0893 03120000 * S15=ZERO; 0893 03121000 * 0893 03122000 UPPFTE SLR @10,@10 0893 03123000 ST @10,S15(,REG13) 0893 03124000 */********************************************************************/ 03125000 */*THIS ROUTINE IS ENTERED TO MOVE FRAMES BACK TO THE AFQ FROM THE */ 03126000 */*LOCAL QUEUE OR FROM AN UNQUEUED STATE. */ 03127000 */********************************************************************/ 03128000 * 0894 03129000 *UPPFTE2: 0894 03130000 * ; 0894 03131000 UPPFTE2 DS 0H 0895 03132000 * RESPECIFY 0895 03133000 * PFTEPTR RSTD; 0895 03134000 * PFTEPTR=PVTPFTP+((INPSTART/K4)*SIXTEEN); 0896 03135000 L @00,INPSTART(,INPUTPTR) 0896 03136000 SRDA @00,32 0896 03137000 D @00,@CF00054 0896 03138000 SLA @01,4 0896 03139000 AL @01,PVTPFTP(,PVTPTR) 0896 03140000 LR PFTEPTR,@01 0896 03141000 * RESPECIFY 0897 03142000 * COUNT RSTD; 0897 03143000 * DO COUNT=1 TO INPAGES; 0898 03144000 LA COUNT,1 0898 03145000 B @DE00898 0898 03146000 @DL00898 DS 0H 0899 03147000 * PFTVRALC=OFF; /* TURN OFF V=R ALLOC BIT */ 03148000 NI PFTVRALC(PFTEPTR),B'11111101' 0899 03149000 * IF PFTVRINT=ON THEN /* IF OFF, THEN FRAME ON LOCAL 0900 03150000 * QUEUE */ 03151000 TM PFTVRINT(PFTEPTR),B'01000000' 0900 03152000 BNO @RF00900 0900 03153000 * DO; 0901 03154000 * PFTVRINT=OFF; /* TURN OFF INTERCEPT BIT */ 03155000 NI PFTVRINT(PFTEPTR),B'10111111' 0902 03156000 * IF PFTQNDX^=PFTNQN THEN /* IF FRAME QUEUED, LET ALONE */ 03157000 CLI PFTQNDX(PFTEPTR),X'FF' 0903 03158000 BNE @RT00903 0903 03159000 * GOTO LASTPFTE; 0904 03160000 * 0904 03161000 * /***********************************************************/ 03162000 * /* */ 03163000 * /* FRAME MAY BE DEQUEUED BUT HAVE I/O IN PROGRESS IF */ 03164000 * /* DEQUEUE WAS A RESULT OF GOING THRU MEMORY TERMINATION */ 03165000 * /* FOR THE ADDRESS SPACE THAT OWNED THE FRAME WHEN IT WAS */ 03166000 * /* INTERCEPTED. */ 03167000 * /* */ 03168000 * /***********************************************************/ 03169000 * 0905 03170000 * IF PFTPCBSI='1'B THEN /* IF UNQUEUED BUT I/O IN 0905 03171000 * PROGRESS, LET ALONE @ZA10767*/ 03172000 TM PFTPCBSI(PFTEPTR),B'00001000' 0905 03173000 BO @RT00905 0905 03174000 * GOTO LASTPFTE; /* @ZA10767*/ 03175000 * END; 0907 03176000 * ELSE 0908 03177000 * 0908 03178000 * /*************************************************************/ 03179000 * /* */ 03180000 * /* THE FRAME IS NOT MARKED AS INTERCEPTED. ENSURE THAT IT IS */ 03181000 * /* ON THE LOCAL FRAME QUEUE OF THE CURRENT ADDRESS SPACE, AND*/ 03182000 * /* AND THAT IT'S VBN AND RBN ARE EQUAL BEFORE SENDING THE */ 03183000 * /* FRAME TO THE AVQ. IF ANY OF THESE CHECKS FAILS, THE FRAME */ 03184000 * /* IS LEFT ALONE. THIS PREVENTS FREEING A FRAME THAT IS */ 03185000 * /* ALREADY ON THE AVAILABLE FRAME QUEUE, OR THAT WAS */ 03186000 * /* RE-ALLOCATED AFTER V=R INTERCEPT SENT IT BACK TO PFTE */ 03187000 * /* MANAGER BECAUSE THE ROOT PCB HAD BEEN FAILED. */ 03188000 * /* */ 03189000 * /*************************************************************/ 03190000 * 0908 03191000 * DO; 0908 03192000 B @RC00900 0908 03193000 @RF00900 DS 0H 0909 03194000 * IF(PSAAOLD->ASCBASID^=PFTASID)|((PFTEPTR-PVTPFTP)^=PFTVBN)|( 03195000 * PFTQNDX^=PFTLFQN) THEN/* @ZA10767*/ 03196000 L @10,PSAAOLD 0909 03197000 CLC ASCBASID(2,@10),PFTASID(PFTEPTR) 0909 03198000 BNE @RT00909 0909 03199000 LR @10,PFTEPTR 0909 03200000 SL @10,PVTPFTP(,PVTPTR) 0909 03201000 SLR @07,@07 0909 03202000 ICM @07,3,PFTVBN(PFTEPTR) 0909 03203000 CR @10,@07 0909 03204000 BNE @RT00909 0909 03205000 CLI PFTQNDX(PFTEPTR),X'80' 0909 03206000 BNE @RT00909 0909 03207000 * GOTO LASTPFTE; /* WRONG FRAME, GET NEXT PFTE 0910 03208000 * @ZA10767*/ 03209000 * END; 0911 03210000 * 0911 03211000 * /***************************************************************/ 03212000 * /* */ 03213000 * /* CALL PFTE MANAGER TO MOVE FRAME FROM LOCAL QUEUE OR IN A */ 03214000 * /* DEQUEUED STATE TO THE AVAILABLE FRAME QUEUE. */ 03215000 * /* */ 03216000 * /***************************************************************/ 03217000 * 0912 03218000 * IF PFTQNDX=PFTLFQN THEN /* IS FRAME ON LOCAL QUEUE 0912 03219000 * @YA01572*/ 03220000 @RC00900 CLI PFTQNDX(PFTEPTR),X'80' 0912 03221000 BNE @RF00912 0912 03222000 * DO; /* YES, DECREMENT COUNTERS 0913 03223000 * @YA01572*/ 03224000 * RSMHDPTR=ASCBRSM; /* RESTORE RSMHD POINTER @YA01572*/ 03225000 L @10,ASCBPTR 0914 03226000 L RSMHDPTR,ASCBRSM(,@10) 0914 03227000 * RSMCNTFX=RSMCNTFX-1; /* DECREMENT COUNT FOR THIS 0915 03228000 * ADDRESS SPACE @YA01572*/ 03229000 LH @10,RSMCNTFX(,RSMHDPTR) 0915 03230000 BCTR @10,0 0915 03231000 STH @10,RSMCNTFX(,RSMHDPTR) 0915 03232000 * PVTCNTFX=PVTCNTFX-1; /* DECREMENT SYSTEM COUNT 0916 03233000 * @YA01572*/ 03234000 LH @10,PVTCNTFX(,PVTPTR) 0916 03235000 BCTR @10,0 0916 03236000 STH @10,PVTCNTFX(,PVTPTR) 0916 03237000 * END; 0917 03238000 * REG0=PFTEPTR-PVTPFTP; /* TQID = 00, RBN = SUBTRACTION */ 03239000 @RF00912 LR REG0,PFTEPTR 0918 03240000 SL REG0,PVTPFTP(,PVTPTR) 0918 03241000 * GENERATE(ICM REG0,12,HEADQ) ;/* MOVE PFTE TO HEAD OF AFQ */ 03242000 ICM REG0,12,HEADQ 03243000 * CALL IEAPFTE; 0920 03244000 * 0920 03245000 L @15,PVTPFTE(,PVTPTR) 0920 03246000 BALR @14,@15 0920 03247000 * /***************************************************************/ 03248000 * /* */ 03249000 * /* CHECK EACH PFTE */ 03250000 * /* */ 03251000 * /***************************************************************/ 03252000 * 0921 03253000 *LASTPFTE: 0921 03254000 * PFTEPTR=PFTEPTR+LENGTH(PFTE); 0921 03255000 LASTPFTE AL PFTEPTR,@CF00040 0921 03256000 * END; 0922 03257000 AL COUNT,@CF00044 0922 03258000 @DE00898 CH COUNT,INPAGES(,INPUTPTR) 0922 03259000 BNH @DL00898 0922 03260000 * RESPECIFY 0923 03261000 * COUNT UNRSTD; 0923 03262000 * REG1=0; 0924 03263000 SLR REG1,REG1 0924 03264000 * CALL IEAVINV; /* CALL INVALIDATE FOR PTLBS */ 03265000 L @15,PVTPINV(,PVTPTR) 0925 03266000 BALR @14,@15 0925 03267000 * ASCBVEQR='0'B; /* TURN OFF BIT THAT INDICATES 0926 03268000 * THAT THIS ADDRESS SPACE SHOULD 03269000 * NOT BE SWAPPED-OUT. THE REAL 03270000 * REGION HAS BEEN FREED VIA 0926 03271000 * FREEPART. @ZA16816*/ 03272000 * 0926 03273000 L @04,ASCBPTR 0926 03274000 L @10,ASCBVEQR(,@04) 0926 03275000 @GL00022 LR @07,@10 0926 03276000 N @07,@CF02396 0926 03277000 CS @10,@07,ASCBVEQR(@04) 0926 03278000 BNE @GL00022 0926 03279000 * /*****************************************************************/ 03280000 * /* */ 03281000 * /* COMMON EXIT CODE */ 03282000 * /* */ 03283000 * /*****************************************************************/ 03284000 * 0927 03285000 *EXITF: 0927 03286000 * ; 0927 03287000 EXITF DS 0H 0928 03288000 * GEN SETS(REG1,REG2)(SETFRR D,WRKREGS=(1,2));/* @ZA31128*/ 03289000 SETFRR D,WRKREGS=(1,2) 03290000 * LM(REG14,REG12,CALLREGS(13:72));/* RESTORE REGS @ZA31128*/ 03291000 LM REG14,REG12,CALLREGS+12(REG13) 0929 03292000 * GOTO REG14; /* RETURN @ZA31128*/ 03293000 BR REG14 0930 03294000 * RESPECIFY 0931 03295000 * (COUNT, 0931 03296000 * INPUTPTR, 0931 03297000 * PFTEPTR, 0931 03298000 * PVTPTR) UNRSTD; 0931 03299000 * RFY 0932 03300000 * (PCBRPTR, 0932 03301000 * RCODE, 0932 03302000 * PVTPTR, 0932 03303000 * PFTEPTR, 0932 03304000 * SRBPTR) RSTD; 0932 03305000 * 0932 03306000 * /*****************************************************************/ 03307000 * /* */ 03308000 * /* IEAVEQRP IS SCHEDULED BY IEAVEQR AND IEAVEQRP WHEN A V=R */ 03309000 * /* INTERCEPTED FRAME WAS NOT PAGED OUT. IEAVEQRP WILL REQUEST */ 03310000 * /* THAT THE ADDRESS SPACE BE SWAPPED OUT. A SUCCESSFUL RETURN */ 03311000 * /* CODE FROM THE REQUEST SWAP SYSEVENT WILL ELIMINATE PAGE-OUTS */ 03312000 * /* FOR THE ADDRESS SPACE. IF THE ADDRESS SPACE IS NON-SWAPPABLE, */ 03313000 * /* THE V=R INTERCEPTED FRAMES ARE PAGED OUT. THE SWAP OUT OR PAGE*/ 03314000 * /* OUT WILL FREE THE FRAME THEREBY ALLOWING IEAVEQRI TO OBTAIN IT*/ 03315000 * /* FOR THE V=R REQUEST. */ 03316000 * /* */ 03317000 * /*****************************************************************/ 03318000 * 0933 03319000 *EP5: 0933 03320000 * ; 0933 03321000 EP5 DS 0H 0934 03322000 * RFY 0934 03323000 * (REG0, 0934 03324000 * REG1, 0934 03325000 * REG2, 0934 03326000 * REG5, 0934 03327000 * REG9, 0934 03328000 * REG10) RSTD; /* @ZA10767*/ 03329000 * PVTPTR=CVTPVTP; /* GET ADDRESS OF PVT @ZA10767*/ 03330000 L @14,CVTPTR 0935 03331000 L PVTPTR,CVTPVTP(,@14) 0935 03332000 * REG8=PVTPRCV; /* GET ADDRESS OF RSM RECOVERY 0936 03333000 * RTN @ZA10767*/ 03334000 L REG8,PVTPRCV(,PVTPTR) 0936 03335000 * GEN(SETFRR A,FRRAD=(REG8),WRKREGS=(REG9,REG10),PARMAD=(REG2));/* 03336000 * THE COMMON SETFRR ROUTINE IS 03337000 * NOT USED AT THIS ENTRY POINT 03338000 * SINCE IT STORES THE RCA 0937 03339000 * POINTER IN THE PVT, BUT THE 0937 03340000 * SALLOC LOCK IS NOT HELD HERE. 03341000 * @ZA10767*/ 03342000 SETFRR A,FRRAD=(REG8),WRKREGS=(REG9,REG10),PARMAD=(REG2) 03343000 * RFY 0938 03344000 * RCA BASED(REG2); /* REG2 CONTAINS ADDRESS OF RCA 03345000 * @ZA10767*/ 03346000 * RCACSECT=RCACVR; /* INDICATE V=R CSECT IN RCA 0939 03347000 * @ZA10767*/ 03348000 MVI RCACSECT(REG2),X'05' 0939 03349000 * RCAVEQRP='1'B; /* ENTRY BIT */ 03350000 OI RCAVEQRP(REG2),B'00001000' 0940 03351000 * PCBRPTR=REG1; /* SET UP PCBRPTR */ 03352000 LR PCBRPTR,REG1 0941 03353000 * SRBPTR=REG0; /* INITIALIZE SRBPTR @ZA10767*/ 03354000 LR SRBPTR,REG0 0942 03355000 * REG5=REG12; /* SAVE BASE REG */ 03356000 LR REG5,REG12 0943 03357000 * REG9=ZERO; /* INITIALIZE REG9 TO INDICATE 0944 03358000 * SWAP OUT ALREADY REQUESTED 0944 03359000 * @ZA10767*/ 03360000 * 0944 03361000 SLR REG9,REG9 0944 03362000 * /*****************************************************************/ 03363000 * /* */ 03364000 * /* BE SURE THAT THE ADDRESS SPACE HAS AN SPCT. IF IT DOES NOT, */ 03365000 * /* INDICATE IN REG9 THAT THE ADDRESS SPACE WAS NOT SWAPPED OUT. */ 03366000 * /* */ 03367000 * /*****************************************************************/ 03368000 * 0945 03369000 * IF PSAAOLD->ASCBRSM->RSMSPCT=0 THEN/* ANY SPCT ? @ZA10767*/ 03370000 L @14,PSAAOLD 0945 03371000 L @14,ASCBRSM(,@14) 0945 03372000 ICM @07,15,RSMSPCT(@14) 0945 03373000 BNZ @RF00945 0945 03374000 * REG9=4; /* NO, INDICATE SWAPOUT NOT DONE 03375000 * @ZA10767*/ 03376000 LA REG9,4 0946 03377000 * ELSE /* SPCT EXISTS @ZA10767*/ 03378000 * DO; /* SWAP OUT THE ADDRESS SAPCE 0947 03379000 * @ZA10767*/ 03380000 B @RC00945 0947 03381000 @RF00945 DS 0H 0948 03382000 * GENERATE; 0948 03383000 GLL SETLOCK OBTAIN,TYPE=LOCAL,MODE=UNCOND,RELATED=(RSM,IEAVEQRP(RL)) 03384000 * REG12=REG5; /* RESTORE BASE REG @ZA10767*/ 03385000 LR REG12,REG5 0949 03386000 * REG11=REG12+3840; /* RESTORE SECOND BASE REGISTER 03387000 * @ZA10767*/ 03388000 * 0950 03389000 LA REG11,3840 0950 03390000 ALR REG11,REG12 0950 03391000 * /*************************************************************/ 03392000 * /* */ 03393000 * /* SET UP PARMS FOR REQUEST SWAP */ 03394000 * /* */ 03395000 * /*************************************************************/ 03396000 * 0951 03397000 * REG0=ZERO; /* INDICATE THAT THE CURRENT 0951 03398000 * ADDRESS SPACE IS TO BE SWAPPED 03399000 * OUT @ZA10767*/ 03400000 SLR REG0,REG0 0951 03401000 * REG1=ZERO; /* INDICATE THAT NO ECB 0952 03402000 * DEPENDANCY EXISTS @ZA10767*/ 03403000 SLR REG1,REG1 0952 03404000 * REG13=WSALRSM; /* SET UP SAVE AREA ADDRESS 0953 03405000 * @ZA21128*/ 03406000 L @14,ASCBPTR 0953 03407000 L @14,ASXBPTR(,@14) 0953 03408000 L @14,ASXBSPSA(,@14) 0953 03409000 L REG13,WSALRSM(,@14) 0953 03410000 * GEN(SYSEVENT REQSWAP,ASID=(0),ENTRY=BRANCH);/* ISSUE REQSWAP 03411000 * SYSEVENT @ZA10767*/ 03412000 SYSEVENT REQSWAP,ASID=(0),ENTRY=BRANCH 03413000 * REG9=REG1; /* SAVE RETURN CODE @ZA10767*/ 03414000 LR REG9,REG1 0955 03415000 * IF REG1^=4 THEN /* WAS THIS ADDRESS SPACE BEING 03416000 * SWAPPED OUT ALREADY,(RCODE=8) 03417000 * OR WAS THE REQUEST SWAP 0956 03418000 * HONORED,(RCODE=0) ? @ZA10767*/ 03419000 CH REG1,@CH00036 0956 03420000 BE @RF00956 0956 03421000 * DO; /* YES, THE ADDRESS WILL GET 0957 03422000 * SWAPPED OUT, FREEING ANY V=R 03423000 * INTERCEPTED FRAMES @ZA10767*/ 03424000 * PSAAOLD->ASCBRSM->RSMSPCT->SPCTVROT=ON;/* INDICATE THAT 03425000 * IEAVEQRP HAS REQUESTED THAT 0958 03426000 * THIS ADDRESS SPACE BE SWAPPED 03427000 * OUT @ZA10767*/ 03428000 L @14,PSAAOLD 0958 03429000 L @14,ASCBRSM(,@14) 0958 03430000 L @14,RSMSPCT(,@14) 0958 03431000 OI SPCTVROT(@14),B'00000100' 0958 03432000 * END; 0959 03433000 * GENERATE; 0960 03434000 @RF00956 DS 0H 0960 03435000 RL SETLOCK RELEASE,TYPE=LOCAL,RELATED=(RSM,IEAVEQRP(GLL)) 03436000 * END; 0961 03437000 * GENERATE; 0962 03438000 @RC00945 DS 0H 0962 03439000 GOB SETLOCK OBTAIN,TYPE=SALLOC,MODE=UNCOND,RELATED=(RSM,IEAVEQRP(RG)) 03440000 * REG12=REG5; /* RESTORE BASE REG ADDRESS */ 03441000 LR REG12,REG5 0963 03442000 * REG11=REG12+3840; /* RESTORE 2ND BASE REG @Z30GNYD*/ 03443000 LA REG11,3840 0964 03444000 ALR REG11,REG12 0964 03445000 * PVTPRCA=REG2; /* RCA ADDRESS TO PVT @ZA10767*/ 03446000 ST REG2,PVTPRCA(,PVTPTR) 0965 03447000 * REG10=SRBPTR; /* SAVE SRB ADDRESS @ZA10767*/ 03448000 LR REG10,SRBPTR 0966 03449000 * RFY 0967 03450000 * RCA BASED(PVTPRCA); /* @ZA10767*/ 03451000 * RFY 0968 03452000 * (REG2, 0968 03453000 * REG5) UNRSTD; /* @ZA10767*/ 03454000 * 0968 03455000 * /*****************************************************************/ 03456000 * /* */ 03457000 * /* PCBRPOF BIT IS TURNED ON BY V=R ALLOCATION BEFORE THE FIRST */ 03458000 * /* SCHEDULE OF THIS ROUTINE. IF IEAVEQR OR IEAVEQRF IS GIVEN */ 03459000 * /* CONTROL WITH THE BIT ON, THEY CANNOT FREE THE PCBR SINCE THIS */ 03460000 * /* ROUTINE WILL CHECK THE BIT IN THE PCBR. THEY WILL HAVE TO TURN*/ 03461000 * /* OFF THE POF BIT TO INDICATE TO THIS ROUTINE TO FREE THE PCBR */ 03462000 * /* AND TERMINATE ANY FURTHER PROCESSING. NORMALLY, THIS ROUTINE */ 03463000 * /* WILL GET CONTROL WITH POF ON AND WILL EVENTUALLY TURN IT OFF */ 03464000 * /* AFTER THE LAST ADDRESS SPACE PAGE OUT. HOWVER, IF THE ROUTINE */ 03465000 * /* FINDS THAT THE ALLOCATION HAS BEEN FAILED (PCBRFAIL=1), IT */ 03466000 * /* WILL TURN OFF PCBRPOF, FREE ITS SRB, AND EXIT TO PREVENT */ 03467000 * /* FURTHER SCHEDULING OF THE ROUTINE. IF THE ADDRESS SPACE THAT */ 03468000 * /* THE SRB WAS SCHEDULED IN TERMINATES, THE RMTR WILL GET CONTROL*/ 03469000 * /* AND SCHEDULE THE SRB INTO MASTER'S ADDRESS SPACE SO THAT */ 03470000 * /* PAGEOUTS OF INTERCEPTED FRAMES CAN CONTINUE. */ 03471000 * /* */ 03472000 * /*****************************************************************/ 03473000 * 0969 03474000 * IF PCBRPOF='0'B THEN /* IF OFF, DEQUEUE PCBR AND GET 03475000 * OUT */ 03476000 TM PCBRPOF(PCBRPTR),B'00000001' 0969 03477000 BNZ @RF00969 0969 03478000 * DO; 0970 03479000 * PCBFQP=FREECB; /* SET UP FREE INDICATION */ 03480000 MVC PCBFQP(4,PCBRPTR),FREECB 0971 03481000 * RSMHDPTR=PCBRASCB->ASCBRSM; /* RSMHEAD PTR */ 03482000 L @14,PCBRASCB(,PCBRPTR) 0972 03483000 L RSMHDPTR,ASCBRSM(,@14) 0972 03484000 * REG0=PCBFREQN; /* FREE QUEUE */ 03485000 LA REG0,16 0973 03486000 * REG1=PCBRPTR; /* PCBR ADDRESS TO DEQUEUE */ 03487000 LR REG1,PCBRPTR 0974 03488000 * CALL IEAVPCB; /* CALL PCB MANAGER TO DEQUEUE */ 03489000 L @15,PVTPCB(,PVTPTR) 0975 03490000 BALR @14,@15 0975 03491000 * GOTO ENDIT; /* GO FREE SRB, RELEASE LOCK, AND 03492000 * RETURN */ 03493000 B ENDIT 0976 03494000 * END; 0977 03495000 * IF PCBRFAIL='1'B THEN /* ALLOCATION FAILED ? @ZA10767*/ 03496000 @RF00969 TM PCBRFAIL(PCBRPTR),B'00001000' 0978 03497000 BNO @RF00978 0978 03498000 * DO; /* YES @ZA10767*/ 03499000 * PCBRPOF='0'B; /* STOP PAGEOUT SRB @ZA10767*/ 03500000 NI PCBRPOF(PCBRPTR),B'11111110' 0980 03501000 * GOTO ENDIT; /* FREE PAGEOUT SRB @ZA10767*/ 03502000 B ENDIT 0981 03503000 * END; /* @ZA10767*/ 03504000 * 0982 03505000 * /*****************************************************************/ 03506000 * /* */ 03507000 * /* IF THE ADDRESS SPACE IS NOT BEING SWAPPED, EXAMINE EACH FRAME */ 03508000 * /* IN THE V=R REGION TO SEE IF IT CAN BE PAGED OUT. THE FRAME */ 03509000 * /* MUST HAVE THE FOLLOWING ATTRIBUTES IN ORDER TO BE PAGED OUT: */ 03510000 * /* (1) CURRENT ASID, (2) LOCAL Q, (3) NO I/O IN PROGRESS, (4) NOT*/ 03511000 * /* AN IRREG FRAME, (5) NOT FIXED. @ZA31128*/ 03512000 * /* */ 03513000 * /*****************************************************************/ 03514000 * 0983 03515000 * IF REG9=4 THEN /* ADDR SPACE BEING SWAPPED ? 0983 03516000 * @ZA31128*/ 03517000 @RF00978 CH REG9,@CH00036 0983 03518000 BNE @RF00983 0983 03519000 * DO; /* NO @ZA31128*/ 03520000 * RFY 0985 03521000 * REG9 UNRSTD; 0985 03522000 * PFTEPTR=PVTPFTP+STARTRBN; /* ADDR FIRST FRAME @ZA31128*/ 03523000 L PFTEPTR,PVTPFTP(,PVTPTR) 0986 03524000 AL PFTEPTR,STARTRBN(,PCBRPTR) 0986 03525000 * DO UNTIL PFTEPTR>PVTPFTP+ENDRBN;/* TRY PAGEOUTS @ZA31128*/ 03526000 @DL00987 DS 0H 0988 03527000 * IF PFTASID=PSAAOLD->ASCBASID&/* IF CURRENT ASID, @ZA31128*/ 03528000 * PFTQNDX=PFTLFQN& /* AND ON LOCAL QUEUE, @ZA31128*/ 03529000 * PFTPCBSI='0'B& /* AND NO I/O GOING ON, @ZA31128*/ 03530000 * PFTIRRG='0'B& /* AND NOT IRREG FRAME, @ZA31128*/ 03531000 * PFTFXCT=0 THEN /* AND NOT FIXED, THEN CAN DO 0988 03532000 * PAGEOUT @ZA31128*/ 03533000 * 0988 03534000 L @14,PSAAOLD 0988 03535000 CLC PFTASID(2,PFTEPTR),ASCBASID(@14) 0988 03536000 BNE @RF00988 0988 03537000 CLI PFTQNDX(PFTEPTR),X'80' 0988 03538000 BNE @RF00988 0988 03539000 TM PFTPCBSI(PFTEPTR),B'00001000' 0988 03540000 BNZ @RF00988 0988 03541000 TM PFTIRRG(PFTEPTR),B'00010000' 0988 03542000 BNZ @RF00988 0988 03543000 ICM @14,3,PFTFXCT(PFTEPTR) 0988 03544000 BNZ @RF00988 0988 03545000 * /*********************************************************/ 03546000 * /* */ 03547000 * /* THE FRAME PASSED THE ABOVE CHECKS. SET UP THE */ 03548000 * /* INTERFACE FOR IEVPSII AND DO THE PAGE OUT. */ 03549000 * /* */ 03550000 * /*********************************************************/ 03551000 * 0989 03552000 * DO; 0989 03553000 * REG0=0; /* SET UP TO PAGE OUT */ 03554000 SLR REG0,REG0 0990 03555000 * REG1=PFTVBN*256; /* VIRTUAL ADDR */ 03556000 SLR REG1,REG1 0991 03557000 ICM REG1,3,PFTVBN(PFTEPTR) 0991 03558000 SLA REG1,8 0991 03559000 * REG2=REG1+4096; /* END ADDRESS */ 03560000 LR REG2,REG1 0992 03561000 AL REG2,@CF00054 0992 03562000 * GEN(ICM REG2,8,PGOUT) ;/* GET PAGEOUT INDICATION */ 03563000 ICM REG2,8,PGOUT 03564000 * REG4=PCBRTCB; /* TCB ADDRESS */ 03565000 L REG4,PCBRTCB(,PCBRPTR) 0994 03566000 * CALL PSII; /* CALL PSI TO CALL PAGEOUT */ 03567000 L @15,PVTPSINT(,PVTPTR) 0995 03568000 BALR @14,@15 0995 03569000 * END; 0996 03570000 * PFTEPTR=PFTEPTR+LENGTH(PFTE);/* ADDR NEXT PFTE */ 03571000 @RF00988 AL PFTEPTR,@CF00040 0997 03572000 * END; /* @ZA31128*/ 03573000 @DE00987 L @14,PVTPFTP(,PVTPTR) 0998 03574000 AL @14,ENDRBN(,PCBRPTR) 0998 03575000 CR PFTEPTR,@14 0998 03576000 BNH @DL00987 0998 03577000 * END; /* @ZA31128*/ 03578000 * 0999 03579000 * /*****************************************************************/ 03580000 * /* */ 03581000 * /* ALL PFTES HAVE BEEN CHECKED FOR POSSIBLE PAGEOUT. CHECK FOR */ 03582000 * /* PAGES IN OTHER ADDRESS SPACES THAT NEED TO GO OUT. IF ONE IS */ 03583000 * /* FOUND, REUSE SRB AND SCHEDULE IT TO THAT ADDRESS SPACE. IF ONE*/ 03584000 * /* IS NOT FOUND TURN OF POF BIT AND FREE SRB. */ 03585000 * /* */ 03586000 * /*****************************************************************/ 03587000 * 1000 03588000 * PFTEPTR=PVTPFTP+STARTRBN; /* START AT BEGINNING */ 03589000 @RF00983 L PFTEPTR,PVTPFTP(,PVTPTR) 1000 03590000 AL PFTEPTR,STARTRBN(,PCBRPTR) 1000 03591000 * SRBPTR=REG10; /* REINIT SRBPTR */ 03592000 * 1001 03593000 LR SRBPTR,REG10 1001 03594000 * /*****************************************************************/ 03595000 * /* */ 03596000 * /* EXAMINE EACH FRAME IN THE V=R REGION FOR THE FOLLOWING */ 03597000 * /* CONDITIONS: (1) FRAME IS FOR ASID JUST PROCESSED, (2) FRAME IS*/ 03598000 * /* FOR ASID THAT THIS V=R ALLOCATION IS BEING DONE FOR, (3) FRAME*/ 03599000 * /* IS UNQUEUED, (4) FRAME IS FIXED, (5) FRAME HAS I/O IN */ 03600000 * /* PROGRESS, (6) FRAME IS VIO AND THEREFORE HAS NO ASID. IF ANY */ 03601000 * /* CONDITION IS MET, THE NEXT FRAME IN THE POTENTIAL V=R REGION */ 03602000 * /* IS EXAMINED. IF NO CONDITION IS MET, IEAVEQRP SCHEDULES ITSELF*/ 03603000 * /* INTO THE ADDRESS SPACE WHOSE ASID IS IN THE PFTE FOR THE */ 03604000 * /* FRAME. IF ALL PFTE'S ARE EXAMINED AND ALL MEET AT LEAST ONE */ 03605000 * /* CONDITION, IEAVEQRP WILL INDICATE THAT IT HAS STOPPED RUNNING */ 03606000 * /* AND FREE ITS SRB. */ 03607000 * /* */ 03608000 * /*****************************************************************/ 03609000 * 1002 03610000 * DO UNTIL PFTEPTR>PVTPFTP+ENDRBN;/* CHECK ALL PFTES @ZA31128*/ 03611000 @DL01002 DS 0H 1003 03612000 * IF PFTASID^=PSAAOLD->ASCBASID&/* IF NOT CURRENT ASID, @ZA31128*/ 03613000 * PFTASID^=PCBRASCB->ASCBASID&/* AND NOT RQSTED ASID, 1003 03614000 * @ZA31128*/ 03615000 * PFTQNDX^=PFTNQN& /* AND QUEUED, @ZA31128*/ 03616000 * PFTFXCT=0& /* AND NOT FIXED, @ZA20976*/ 03617000 * PFTPCBSI='0'B& /* AND NO I/O IN PROGRESS, 1003 03618000 * @ZA31128*/ 03619000 * PFTIRRG='0'B THEN /* AND NOT IRREG, THEN MIGHT 1003 03620000 * SCHEDULE PAGEOUT SRB @ZA31128*/ 03621000 * 1003 03622000 L @14,PSAAOLD 1003 03623000 CLC PFTASID(2,PFTEPTR),ASCBASID(@14) 1003 03624000 BE @RF01003 1003 03625000 L @14,PCBRASCB(,PCBRPTR) 1003 03626000 CLC PFTASID(2,PFTEPTR),ASCBASID(@14) 1003 03627000 BE @RF01003 1003 03628000 CLI PFTQNDX(PFTEPTR),X'FF' 1003 03629000 BE @RF01003 1003 03630000 SLR @14,@14 1003 03631000 CH @14,PFTFXCT(,PFTEPTR) 1003 03632000 BNE @RF01003 1003 03633000 TM PFTPCBSI(PFTEPTR),B'00001000' 1003 03634000 BNZ @RF01003 1003 03635000 TM PFTIRRG(PFTEPTR),B'00010000' 1003 03636000 BNZ @RF01003 1003 03637000 * /*************************************************************/ 03638000 * /* */ 03639000 * /* A FRAME HAS BEEN FOUND THAT CONTAINS A PAGEABLE OR LSQA */ 03640000 * /* PRIVATE AREA PAGE, AND WHOSE ADDRESS SPACE IS NEITHER THE */ 03641000 * /* CURRENT NOR THAT OF THE V=R REGION BEING ALLOCATED. (NOTE:*/ 03642000 * /* IF THE FRAME IS LSQA, IT CANNOT BE FOR A LONG-TERM */ 03643000 * /* NON-SWAPPABLE ADDRESS SPACE.) BEFORE SCHEDULING THE */ 03644000 * /* PAGEOUT SRB INTO THAT ADDRESS SPACE, DETERMINE IF A */ 03645000 * /* REQUEST SWAP HAS ALREADY BEEN DONE FOR IT. IF SO, DO NOT */ 03646000 * /* SCHEDULE THE SRB. (NOTE: THIS IS DONE TO PREVENT CONTINUAL*/ 03647000 * /* SCHEDULING AND EXECUTION OF THE PAGEOUT SRB. IF CONTINUAL */ 03648000 * /* SCHEDULING AND EXECUTION OCCURRED, THE XMPOST SRB TO POST */ 03649000 * /* THE RCT TO QUIESCE THE ADDRESS SPACE WOULD NEVER RUN */ 03650000 * /* BECAUSE IT RUNS AT THE LOCAL LEVEL WHILE THE PAGEOUT SRB */ 03651000 * /* RUNS AT THE GLOBAL LEVEL. THUS THE ADDRESS SPACE WOULD */ 03652000 * /* NEVER BE SWAPPPED OUT.) @ZA31128*/ 03653000 * /* */ 03654000 * /*************************************************************/ 03655000 * 1004 03656000 * DO; /* @ZA31128*/ 03657000 * REG10=ASVTENTY(PFTASID); /* ASCB ADDRESS @ZA15747*/ 03658000 SLR @09,@09 1005 03659000 ICM @09,3,PFTASID(PFTEPTR) 1005 03660000 SLA @09,2 1005 03661000 L @07,CVTPTR 1005 03662000 L @07,ASVTPTR(,@07) 1005 03663000 L REG10,ASVTENTY-4(@09,@07) 1005 03664000 * REG1=REG10->ASCBRSM->RSMSPCT;/* SPCT ADDRESS @ZA15747*/ 03665000 L @09,ASCBRSM(,REG10) 1006 03666000 L REG1,RSMSPCT(,@09) 1006 03667000 * IF REG1=0|REG1->SPCTVROT='0'B THEN/* SCHEDULE SRB? @ZA15747*/ 03668000 * 1007 03669000 CR REG1,@14 1007 03670000 BE @RT01007 1007 03671000 TM SPCTVROT(REG1),B'00000100' 1007 03672000 BNZ @RF01007 1007 03673000 @RT01007 DS 0H 1008 03674000 * /*********************************************************/ 03675000 * /* */ 03676000 * /* NO REQUEST SWAP HAS BEEN DONE. IF THE FRAME JUST FOUND*/ 03677000 * /* IS FOR LSQA, INDICATE THAT A REQUEST SWAP HAS BEEN */ 03678000 * /* DONE. (NOTE: THE REQUEST SWAP DONE FLAG (SPCTVROT) IS */ 03679000 * /* SET UNDER THIS CONDITION SO THAT SCHEDULING OF THE */ 03680000 * /* PAGEOUT SRB WILL NOT PING-PONG BETWEEN 2 NON-SWAPPABLE*/ 03681000 * /* ADDRESS SPACES THAT HAVE LSQA INTERCEPTED FOR THIS */ 03682000 * /* ALLOCATION. AT THIS POINT, REG1 WILL CONTAIN AN SPCT */ 03683000 * /* ADDRESS SINCE ONLY PERMANENTLY NON-SWAPPABLE ADDRESS */ 03684000 * /* SPACES HAVE A ZERO SPCT POINTER IN THE RSM HEADER, AND*/ 03685000 * /* LSQA WILL NOT BE INTERCEPTED FOR SUCH ADDRESS SPACES.)*/ 03686000 * /* WHETHER THE FRAME IS LSQA OR NOT, THE PAGEOUT SRB IS */ 03687000 * /* SCHEDULED INTO THE ADDRESS SPACE. @ZA31128*/ 03688000 * /* */ 03689000 * /*********************************************************/ 03690000 * 1008 03691000 * DO; /* YES, NEED REQ SWAP @ZA15747*/ 03692000 * IF PFTQNDX=PFTLSQAN THEN/* IS FRAME LSQA ? @ZA31128*/ 03693000 CLI PFTQNDX(PFTEPTR),X'84' 1009 03694000 BNE @RF01009 1009 03695000 * REG1->SPCTVROT='1'B;/* YES, STOP FURTHER REQ SWAPS 1010 03696000 * FOR THIS ADDR SPACE @ZA31128*/ 03697000 OI SPCTVROT(REG1),B'00000100' 1010 03698000 * SRBASCB=REG10; /* SET UP ADDRESS SPACE */ 03699000 @RF01009 ST REG10,SRBASCB(,SRBPTR) 1011 03700000 * SRBPASID=PFTASID; /* SET UP NEW ASID */ 03701000 MVC SRBPASID(2,SRBPTR),PFTASID(PFTEPTR) 1012 03702000 * REG1=SRBPTR; /* SRB ADDRESS */ 03703000 LR REG1,SRBPTR 1013 03704000 * GEN(SCHEDULE SRB=(1),SCOPE=GLOBAL); 1014 03705000 SCHEDULE SRB=(1),SCOPE=GLOBAL 03706000 * GOTO ENDP; /* CLEAN UP AND RETURN */ 03707000 B ENDP 1015 03708000 * END; /* @ZA15747*/ 03709000 * END; /* @ZA31128*/ 03710000 @RF01007 DS 0H 1018 03711000 * PFTEPTR=PFTEPTR+LENGTH(PFTE); /* ADDR NEXT PFTE */ 03712000 @RF01003 AL PFTEPTR,@CF00040 1018 03713000 * END; /* @ZA31128*/ 03714000 * 1019 03715000 @DE01002 L @14,PVTPFTP(,PVTPTR) 1019 03716000 AL @14,ENDRBN(,PCBRPTR) 1019 03717000 CR PFTEPTR,@14 1019 03718000 BNH @DL01002 1019 03719000 * /*****************************************************************/ 03720000 * /* */ 03721000 * /* THE LAST PFTE HAS BEEN CHECKED AND NO OTHER ADDRESS SPACE */ 03722000 * /* PAGES ARE AVAILABLE TO PAGE OUT. TURN OFF POF, FREE THE */ 03723000 * /* PAGEOUT SRB, AND RETURN. */ 03724000 * /* */ 03725000 * /*****************************************************************/ 03726000 * 1020 03727000 * PCBRPOF='0'B; 1020 03728000 NI PCBRPOF(PCBRPTR),B'11111110' 1020 03729000 *ENDIT: 1021 03730000 * REG0=PVTSRBID; /* SRBID TO FREE */ 03731000 ENDIT L REG0,PVTSRBID(,PVTPTR) 1021 03732000 * REG13=ADDR(PVTSAVE); /* SAVE AREA */ 03733000 LA REG13,PVTSAVE(,PVTPTR) 1022 03734000 * GENERATE(FREECELL CPID=(0),CELL=(SRBPTR),BRANCH=YES) ; 1023 03735000 FREECELL CPID=(0),CELL=(SRBPTR),BRANCH=YES 03736000 *ENDP: 1024 03737000 * REG9=REG12; 1024 03738000 ENDP LR REG9,REG12 1024 03739000 * GENERATE; 1025 03740000 RG SETLOCK RELEASE,TYPE=SALLOC,RELATED=(RSM,IEAVEQRP(GOB)) 03741000 * REG12=REG9; 1026 03742000 LR REG12,REG9 1026 03743000 * REG11=REG12+3840; /* RESTORE 2ND BASE REG @Z30GNYD*/ 03744000 LA REG11,3840 1027 03745000 ALR REG11,REG12 1027 03746000 * GEN(SETFRR D,WRKREGS=(1,2)); /* @ZA31128*/ 03747000 SETFRR D,WRKREGS=(1,2) 03748000 * REG14=CVTSRBRT; /* RETURN ADDRESS */ 03749000 L @09,CVTPTR 1029 03750000 L REG14,CVTSRBRT(,@09) 1029 03751000 * GOTO REG14; /* RETURN TO DISPATCHER @ZA31128*/ 03752000 BR REG14 1030 03753000 * RFY 1031 03754000 * REG10 UNRSTD; /* @Z30GNYD*/ 03755000 * 1032 03756000 */********************************************************************/ 03757000 */*IEAVRMTR GETS CONTROL WHEN IEAVEQRP IS SCHEDULED INTO A TERMINATNG*/ 03758000 */*ADDRESS SPACE. THIS ROUTINE'S ONLY FUNCTION IS TO SCHEDULE THE */ 03759000 */*VEQR PAGE-OUT ROUTINE (IEAVEQRP) INTO MASTER'S MEMORY. THIS */ 03760000 */*INSURES THAT EACH ADDRESS SPACE WITH V=R INTERCEPTED FRAMES WILL */ 03761000 */*HAVE IEAVEQRP SCHEDULED FOR IT. */ 03762000 */* INPUT */ 03763000 */* REG1 = SRB ADDRESS */ 03764000 */* REG2 = SRB PARM ADDRESS (PCBRPTR) */ 03765000 */* REG14= RETURN ADDRESS */ 03766000 */********************************************************************/ 03767000 * 1032 03768000 *EP6: 1032 03769000 * ; 1032 03770000 EP6 DS 0H 1033 03771000 * RFY 1033 03772000 * (REG1, 1033 03773000 * REG9, 1033 03774000 * PVTPTR) RSTD; 1033 03775000 * REG9=REG14; /* SAVE RETURN ADDRESS */ 03776000 LR REG9,REG14 1034 03777000 * REG1->SRBASCB=ADDR(IEAMASCB); /* MASTER'S ASCB ADDRESS @ZA10767*/ 03778000 L @14,@CV02278 1035 03779000 ST @14,SRBASCB(,REG1) 1035 03780000 * REG1->SRBPASID=REG1->SRBASCB->ASCBASID;/* MASTER'S ASID @ZA10767*/ 03781000 MVC SRBPASID(2,REG1),ASCBASID(@14) 1036 03782000 * GEN(SCHEDULE SRB=(1),SCOPE=GLOBAL);/* SCHEDULE SRB INTO MASTER'S 03783000 * MEMORY @ZA10767*/ 03784000 SCHEDULE SRB=(1),SCOPE=GLOBAL 03785000 * REG14=REG9; /* SET UP RETURN ADDRESS */ 03786000 LR REG14,REG9 1038 03787000 * GOTO REG14; /* RETURN */ 03788000 BR REG14 1039 03789000 * END IEAVEQR 1040 03790000 * 1040 03791000 */* THE FOLLOWING INCLUDE STATEMENTS WERE FOUND IN THIS PROGRAM. */ 03792000 */*%INCLUDE SYSLIB (IRAOUCB ) */ 03793000 */*%INCLUDE SYSLIB (IHALCCA ) */ 03794000 */*%INCLUDE SYSLIB (IHAWSAVT) */ 03795000 */*%INCLUDE SYSLIB (IHAASXB ) */ 03796000 */*%INCLUDE SYSLIB (IHASPCT ) */ 03797000 */*%INCLUDE SYSLIB (IHAASCB ) */ 03798000 */*%INCLUDE SYSLIB (IHAASVT ) */ 03799000 */*%INCLUDE SYSLIB (IHAFRRS ) */ 03800000 */*%INCLUDE SYSLIB (IHAPCB ) */ 03801000 */*%INCLUDE SYSLIB (IHAPCBR ) */ 03802000 */*%INCLUDE SYSLIB (IHAPGTE ) */ 03803000 */*%INCLUDE SYSLIB (IHAPSA ) */ 03804000 */*%INCLUDE SYSLIB (IHAPFTE ) */ 03805000 */*%INCLUDE SYSLIB (IHAPVT ) */ 03806000 */*%INCLUDE SYSLIB (IHARCA ) */ 03807000 */*%INCLUDE SYSLIB (IHARSMHD) */ 03808000 */*%INCLUDE SYSLIB (IHASGTE ) */ 03809000 */*%INCLUDE SYSLIB (IHASRB ) */ 03810000 */*%INCLUDE SYSLIB (IHAXPTE ) */ 03811000 */*%INCLUDE SYSLIB (CVT ) */ 03812000 * 1040 03813000 * ; 1040 03814000 @DATA DS 0H 03815000 @CH00058 DC H'2' 03816000 @CH00879 DC H'28' 03817000 @DATD DSECT 03818000 DS 0F 03819000 IEAVEQR CSECT 03820000 DS 0F 03821000 @CF00044 DC F'1' 03822000 @CH00044 EQU @CF00044+2 03823000 @CF00036 DC F'4' 03824000 @CH00036 EQU @CF00036+2 03825000 @CF00038 DC F'8' 03826000 @CF00040 DC F'16' 03827000 @CH00040 EQU @CF00040+2 03828000 @CF00054 DC F'4096' 03829000 @CF02389 DC BL4'00010000000000000000000000000000' 03830000 @CF02396 DC BL4'11101111111111111111111111111111' 03831000 @DATD DSECT 03832000 DS 0D 03833000 ORG *+1-(*-@DATD)/(*-@DATD) INSURE DSECT DATA 03834000 @ENDDATD EQU * 03835000 IEAVEQR CSECT 03836000 DS 0F 03837000 @SIZDATD DC AL1(0) 03838000 DC AL3(@ENDDATD-@DATD) 03839000 @CV02275 DC V(IEAVRMT) 03840000 @CV02278 DC V(IEAMASCB) 03841000 DS 0D 03842000 @CC02307 DC C'SRB ' 03843000 SEGMASK DC X'0000FFFF' 03844000 ORG SEGMASK 03845000 @NM00001 DS CL2 03846000 COMASID DS CL2 03847000 ORG SEGMASK+4 03848000 PGOUT DC X'04' 03849000 FREECB DC X'FF000000' 03850000 HEADQ DC X'8000' 03851000 @00 EQU 00 EQUATES FOR REGISTERS 0-15 03852000 @01 EQU 01 03853000 @02 EQU 02 03854000 @03 EQU 03 03855000 @04 EQU 04 03856000 @05 EQU 05 03857000 @06 EQU 06 03858000 @07 EQU 07 03859000 @08 EQU 08 03860000 @09 EQU 09 03861000 @10 EQU 10 03862000 @11 EQU 11 03863000 @12 EQU 12 03864000 @13 EQU 13 03865000 @14 EQU 14 03866000 @15 EQU 15 03867000 REG0 EQU @00 03868000 REG1 EQU @01 03869000 REG2 EQU @02 03870000 RSMHDPTR EQU @02 03871000 PVTPTR EQU @03 03872000 REG4 EQU @04 03873000 XPTEPTR EQU @04 03874000 COUNT EQU @04 03875000 SRBPTR EQU @04 03876000 RSAVE EQU @04 03877000 PFTEPTR EQU @05 03878000 REG5 EQU @05 03879000 CURVSA EQU @05 03880000 REG6 EQU @06 03881000 INPUTPTR EQU @06 03882000 VRBN EQU @06 03883000 REG7 EQU @07 03884000 REG8 EQU @08 03885000 PCBRPTR EQU @08 03886000 RCAPTR EQU @08 03887000 RVSA EQU @08 03888000 PCBPTR EQU @08 03889000 PTEPTR EQU @09 03890000 REG9 EQU @09 03891000 REG10 EQU @10 03892000 REG11 EQU @11 03893000 REG12 EQU @12 03894000 REG13 EQU @13 03895000 REG14 EQU @14 03896000 REG15 EQU @15 03897000 RCODE EQU @15 03898000 QPTR EQU @07 03899000 REG3 EQU @03 03900000 PSA EQU 0 03901000 FLCRNPSW EQU PSA 03902000 FLCROPSW EQU PSA+8 03903000 FLCICCW2 EQU PSA+16 03904000 FLCCVT EQU FLCICCW2 03905000 PSAEEPSW EQU PSA+132 03906000 PSAESPSW EQU PSA+136 03907000 FLCSVILC EQU PSAESPSW+1 03908000 PSAEPPSW EQU PSA+140 03909000 FLCPIILC EQU PSAEPPSW+1 03910000 FLCPICOD EQU PSAEPPSW+2 03911000 PSAPICOD EQU FLCPICOD+1 03912000 FLCTEA EQU PSAEPPSW+4 03913000 FLCPER EQU PSA+152 03914000 FLCMCLA EQU PSA+168 03915000 FLCIOEL EQU FLCMCLA+4 03916000 FLCIOA EQU FLCMCLA+16 03917000 FLCFSA EQU FLCMCLA+80 03918000 PSATOLD EQU PSA+540 03919000 PSAAOLD EQU PSA+548 03920000 PSASUPER EQU PSA+552 03921000 PSASUP1 EQU PSASUPER 03922000 PSASUP2 EQU PSASUPER+1 03923000 PSASUP3 EQU PSASUPER+2 03924000 PSASUP4 EQU PSASUPER+3 03925000 PSACLHT EQU PSA+640 03926000 PSALKSA EQU PSA+696 03927000 PSAHLHI EQU PSA+760 03928000 PSADSSFL EQU PSA+836 03929000 PSADSSF1 EQU PSADSSFL 03930000 PSADSSF3 EQU PSADSSFL+2 03931000 PSADSSF4 EQU PSADSSFL+3 03932000 PSARSVT EQU PSA+896 03933000 FRREPTR EQU 0 03934000 SEGSPTR EQU 0 03935000 SWAPPTR EQU 0 03936000 LCCAPTR EQU 0 03937000 INPUT EQU 0 03938000 INPSTART EQU INPUT 03939000 INPSPEC EQU INPUT+4 03940000 INPAGES EQU INPUT+6 03941000 INPECBP EQU INPUT+8 03942000 WKPCB EQU 20 03943000 STARTRBN EQU WKPCB 03944000 ENDRBN EQU WKPCB+4 03945000 NEXTPCB EQU WKPCB+8 03946000 DELTA EQU WKPCB+12 03947000 RGNEND EQU DELTA 03948000 COUNTER EQU WKPCB+16 03949000 STARTSEG EQU COUNTER 03950000 CURSEG EQU COUNTER+2 03951000 NSEG EQU WKPCB+20 03952000 SEGID EQU WKPCB+22 03953000 WORK EQU WKPCB+24 03954000 COMPSRB EQU WKPCB+28 03955000 RGNSTART EQU WKPCB+32 03956000 TQIDRBN EQU WKPCB+36 03957000 CALLREGS EQU 0 03958000 @NM00004 EQU CALLREGS 03959000 MOTION EQU @NM00004 03960000 LOOPFLAG EQU @NM00004 03961000 CSGBRC EQU CALLREGS+4 03962000 POUTSRB EQU CALLREGS+8 03963000 S15 EQU CALLREGS+16 03964000 STEPTR EQU 0 03965000 OUCB EQU 0 03966000 OUCBQFL EQU OUCB+16 03967000 OUCBSFL EQU OUCB+17 03968000 OUCBYFL EQU OUCB+18 03969000 OUCBAFL EQU OUCB+19 03970000 OUCBTFL EQU OUCB+20 03971000 OUCBEFL EQU OUCB+21 03972000 OUCBUFL EQU OUCB+23 03973000 OUCBCSW EQU OUCB+84 03974000 OUCBCFL EQU OUCBCSW+2 03975000 OUCBPSS EQU OUCB+112 03976000 LCCA EQU 0 03977000 LCCAIHRC EQU LCCA+520 03978000 LCCAIHR1 EQU LCCAIHRC 03979000 LCCAIHR2 EQU LCCAIHRC+1 03980000 LCCAIHR3 EQU LCCAIHRC+2 03981000 LCCAIHR4 EQU LCCAIHRC+3 03982000 LCCASPIN EQU LCCA+524 03983000 LCCASPN1 EQU LCCASPIN 03984000 LCCASPN2 EQU LCCASPIN+1 03985000 LCCASPN3 EQU LCCASPIN+2 03986000 LCCASPN4 EQU LCCASPIN+3 03987000 LCCACPUS EQU LCCA+536 03988000 LCCADSF1 EQU LCCA+540 03989000 LCCADSF2 EQU LCCA+541 03990000 LCCASPSA EQU LCCA+544 03991000 LCCACRFL EQU LCCA+692 03992000 LCCACREX EQU LCCA+693 03993000 LCCALKFG EQU LCCA+694 03994000 LCCASRBF EQU LCCA+720 03995000 WSAL EQU 0 03996000 WSALRSM EQU WSAL+52 03997000 WSAG EQU 0 03998000 WSAC EQU 0 03999000 ASXB EQU 0 04000000 ASXBSPSA EQU ASXB+112 04001000 ASXBAEQ EQU ASXB+168 04002000 ASXBSECR EQU ASXB+199 04003000 ASCBSFLG EQU ASXBSECR 04004000 ASXBCASW EQU ASXB+216 04005000 ASXBCRB1 EQU ASXBCASW 04006000 SPCT EQU 0 04007000 SPCTFLG1 EQU SPCT+10 04008000 SPCTVROT EQU SPCTFLG1 04009000 SPCTSEGE EQU 0 04010000 SPCTSWPE EQU 0 04011000 SPCTLS EQU SPCTSWPE 04012000 SPCTFLAG EQU SPCTLS 04013000 SPCTEXTM EQU 0 04014000 SPCTENT EQU SPCTEXTM+8 04015000 ASCB EQU 0 04016000 ASCBSUPC EQU ASCB+16 04017000 ASCBASID EQU ASCB+36 04018000 ASCBRSM EQU ASCB+52 04019000 ASCBRSMF EQU ASCBRSM 04020000 ASCBVEQR EQU ASCBRSMF 04021000 ASCBFW1 EQU ASCB+100 04022000 ASCBRCTF EQU ASCBFW1+2 04023000 ASCBFLG1 EQU ASCBFW1+3 04024000 ASCBASXB EQU ASCB+108 04025000 ASCBDSP1 EQU ASCB+114 04026000 ASCBFLG2 EQU ASCB+115 04027000 ASCBLKGP EQU ASCB+128 04028000 ASCBOUCB EQU ASCB+144 04029000 ASCBSRQ EQU ASCB+180 04030000 ASCBSRQ1 EQU ASCBSRQ 04031000 ASCBSRQ2 EQU ASCBSRQ+1 04032000 ASCBSRQ3 EQU ASCBSRQ+2 04033000 ASCBSRQ4 EQU ASCBSRQ+3 04034000 ASVT EQU 0 04035000 ASVTFRST EQU ASVT+524 04036000 ASVTENTY EQU ASVT+528 04037000 FRRS EQU 0 04038000 FRRSHEAD EQU FRRS 04039000 FRRSENTR EQU 0 04040000 FRRSFLGS EQU FRRSENTR+4 04041000 FRRSFLG1 EQU FRRSFLGS 04042000 PCB EQU 0 04043000 PCBFQP EQU PCB 04044000 PCBBQP EQU PCB+4 04045000 PCBRTP EQU PCB+8 04046000 PCBFL1 EQU PCBRTP 04047000 PCBRLP EQU PCB+12 04048000 PCBXPT EQU PCB+16 04049000 PCBFL2 EQU PCBXPT 04050000 PCBPGT EQU PCB+20 04051000 PCBFL3 EQU PCBPGT 04052000 PCBBLOCK EQU PCB+28 04053000 PCBSRB EQU PCBBLOCK 04054000 PCBRB EQU PCBSRB 04055000 PCBR EQU 0 04056000 PCBRTCB EQU PCBR 04057000 PCBRFLAG EQU PCBRTCB 04058000 PCBRINT EQU PCBRFLAG 04059000 PCBRPB EQU PCBRFLAG 04060000 PCBRFPCB EQU PCBRFLAG 04061000 PCBRFAIL EQU PCBRFLAG 04062000 PCBRLOAD EQU PCBRFLAG 04063000 PCBRPOF EQU PCBRFLAG 04064000 PCBRTCBA EQU PCBRTCB+1 04065000 PCBRECB EQU PCBR+8 04066000 PCBRASCB EQU PCBR+12 04067000 PCBRCNT EQU PCBR+16 04068000 PGTPTE EQU 0 04069000 PGTRSA EQU PGTPTE 04070000 PGTBITS EQU PGTRSA+1 04071000 PGTPVM EQU PGTBITS 04072000 PGTPAM EQU PGTBITS 04073000 PFTE EQU 0 04074000 PFTPGID EQU PFTE 04075000 PFTASID EQU PFTPGID 04076000 PFTVBN EQU PFTPGID+2 04077000 PFTQPTRS EQU PFTE+4 04078000 PFTFXCT EQU PFTE+8 04079000 PFTFLAGS EQU PFTE+12 04080000 PFTFLAG1 EQU PFTFLAGS 04081000 PFTONAVQ EQU PFTFLAG1 04082000 PFTVRINT EQU PFTFLAG1 04083000 PFTVRPLT EQU PFTFLAG1 04084000 PFTPCBSI EQU PFTFLAG1 04085000 PFTBADPG EQU PFTFLAG1 04086000 PFTVRALC EQU PFTFLAG1 04087000 PFTOFINT EQU PFTFLAG1 04088000 PFTFLAG2 EQU PFTFLAGS+1 04089000 PFTOFFLN EQU PFTFLAG2 04090000 PFTVR EQU PFTFLAG2 04091000 PFTIRRG EQU PFTFLAG2 04092000 PFTQNDX EQU PFTE+14 04093000 PVT EQU 0 04094000 PVTFLAG1 EQU PVT 04095000 PVTFLAG2 EQU PVT+1 04096000 PVTPFTP EQU PVT+12 04097000 PVTFVR EQU PVT+20 04098000 PVTLVR EQU PVT+22 04099000 PVTVROOT EQU PVT+40 04100000 PVTPRCA EQU PVT+52 04101000 PVTSRBID EQU PVT+68 04102000 PVTPSINT EQU PVT+76 04103000 PVTREP2 EQU PVT+100 04104000 PVTPCB EQU PVT+104 04105000 PVTPFTE EQU PVT+108 04106000 PVTPFP2 EQU PVT+116 04107000 PVTPVRPO EQU PVT+124 04108000 PVTPVRC EQU PVT+144 04109000 PVTPRCV EQU PVT+156 04110000 PVTPINV EQU PVT+172 04111000 PVTPCSGB EQU PVT+180 04112000 PVTPDSEG EQU PVT+184 04113000 PVTPSRBP EQU PVT+188 04114000 PVTQS EQU PVT+304 04115000 PVTWSAX EQU PVT+344 04116000 PVTWSA3 EQU PVTWSAX+144 04117000 PVTSAVE EQU PVTWSAX+1328 04118000 PVTMAXFX EQU PVT+1822 04119000 PVTCNTFX EQU PVT+1830 04120000 PVTPCBQS EQU PVT+1852 04121000 RCA EQU 0 04122000 RCANAME7 EQU RCA+8 04123000 RCACSECT EQU RCA+9 04124000 RCAFLAGS EQU RCA+10 04125000 RCASAL EQU RCAFLAGS 04126000 RCALL EQU RCAFLAGS 04127000 RCARCRD EQU RCA+11 04128000 RCANAMES EQU RCA+12 04129000 RCANAME1 EQU RCANAMES 04130000 RCAVEQR EQU RCANAME1 04131000 RCANAME2 EQU RCANAMES+1 04132000 RCANAME3 EQU RCANAMES+2 04133000 RCANAME4 EQU RCANAMES+3 04134000 RCAVEQRC EQU RCANAME4 04135000 RCAVEQRF EQU RCANAME4 04136000 RCAVEQRI EQU RCANAME4 04137000 RCANAME5 EQU RCANAMES+4 04138000 RCANAME6 EQU RCANAMES+5 04139000 RCAVEQRP EQU RCANAME6 04140000 RSMHD EQU 0 04141000 RSMSPCT EQU RSMHD+4 04142000 RSMFLG1 EQU RSMHD+12 04143000 RSMCNTFX EQU RSMHD+14 04144000 RSMQS EQU RSMHD+20 04145000 RSMLFQ EQU RSMQS 04146000 RSMLSQA EQU RSMQS+4 04147000 RSMLIOQ EQU RSMQS+8 04148000 SGTSTE EQU 0 04149000 SGTLK EQU SGTSTE 04150000 SGTPTO EQU SGTSTE+1 04151000 SGTBYTE EQU SGTPTO+2 04152000 SRBSECT EQU 0 04153000 SRB EQU SRBSECT 04154000 SRBID EQU SRB 04155000 SRBASCB EQU SRB+8 04156000 SRBFLC EQU SRB+12 04157000 SRBPASID EQU SRBFLC+2 04158000 SRBPTCB EQU SRBFLC+4 04159000 SRBEP EQU SRB+20 04160000 SRBRMTR EQU SRB+24 04161000 SRBPARM EQU SRB+28 04162000 XPTE EQU 0 04163000 XPTFLAGS EQU XPTE+2 04164000 XPTFLAG2 EQU XPTE+3 04165000 XPTLPID EQU XPTE+4 04166000 XPTLGN EQU XPTLPID 04167000 XPTLPN EQU XPTLPID+4 04168000 CVTMAP EQU 0 04169000 CVT EQU CVTMAP 04170000 CVTDAR EQU CVTMAP+72 04171000 CVTFLGS1 EQU CVTDAR 04172000 CVTDCB EQU CVTMAP+116 04173000 CVTIOQET EQU CVTMAP+120 04174000 CVTIERLC EQU CVTMAP+144 04175000 CVT0PT01 EQU CVTMAP+152 04176000 CVTHEAD EQU CVTMAP+160 04177000 CVTSV76C EQU CVTHEAD 04178000 CVTOPTA EQU CVTMAP+182 04179000 CVTOPTB EQU CVTMAP+183 04180000 CVTGTF EQU CVTMAP+236 04181000 CVTGTFST EQU CVTGTF 04182000 CVTGTFS EQU CVTGTFST 04183000 CVTSTATE EQU CVTGTFST 04184000 CVTTMODE EQU CVTGTFST 04185000 CVTFORM EQU CVTGTFST 04186000 CVTAQAVT EQU CVTMAP+240 04187000 CVTTCMFG EQU CVTAQAVT 04188000 CVTVOLM2 EQU CVTMAP+244 04189000 CVTTATA EQU CVTVOLM2 04190000 CVTTSKS EQU CVTTATA 04191000 CVTVOLF2 EQU CVTTSKS 04192000 CVTTAT EQU CVTTATA+1 04193000 CVTATER EQU CVTMAP+248 04194000 CVTEXT1 EQU CVTMAP+252 04195000 CVTPURG EQU CVTMAP+260 04196000 CVTQMSG EQU CVTMAP+268 04197000 CVTDMSR EQU CVTMAP+272 04198000 CVTRSV37 EQU CVTDMSR 04199000 CVTDMSRF EQU CVTRSV37 04200000 CVTPTRV EQU CVTMAP+288 04201000 CVTERPV EQU CVTMAP+316 04202000 CVTINTLA EQU CVTMAP+320 04203000 CVTAPF EQU CVTMAP+324 04204000 CVTEXT2 EQU CVTMAP+328 04205000 CVTHJES EQU CVTMAP+332 04206000 CVTPGSIA EQU CVTMAP+348 04207000 CVTA1F1 EQU CVTMAP+356 04208000 CVTSYSK EQU CVTMAP+357 04209000 CVTVOLM1 EQU CVTMAP+380 04210000 CVTVOLF1 EQU CVTVOLM1 04211000 CVTXTNT1 EQU 0 04212000 CVTXTNT2 EQU 0 04213000 CVTDSSV EQU CVTXTNT2 04214000 CVTFLGBT EQU CVTXTNT2+5 04215000 CVTQID EQU CVTXTNT2+24 04216000 CVTRV400 EQU CVTXTNT2+52 04217000 CVTRV409 EQU CVTXTNT2+53 04218000 CVTATCVT EQU CVTXTNT2+64 04219000 CVTRV429 EQU CVTXTNT2+84 04220000 CVTRV438 EQU CVTXTNT2+85 04221000 CVTRV457 EQU CVTXTNT2+112 04222000 CVTRV466 EQU CVTXTNT2+113 04223000 CVTFIX EQU 0 04224000 CVTRELNO EQU CVTFIX+252 04225000 IEAVFP2 EQU 0 04226000 IEAVCSGB EQU 0 04227000 IEAVPCB EQU 0 04228000 IEAPFTE EQU 0 04229000 IEAVDSEG EQU 0 04230000 IEAVINV EQU 0 04231000 IEAVREP2 EQU 0 04232000 POST EQU 0 04233000 PSII EQU 0 04234000 PGTEND EQU 0 04235000 SGTEND EQU 0 04236000 TRV EQU 0 04237000 CVTS01 EQU CVTPGSIA 04238000 CVTPVTP EQU CVTS01+8 04239000 CVTLPDIA EQU CVTS01+12 04240000 CVTDIRST EQU CVTLPDIA 04241000 CVTSLIDA EQU CVTS01+24 04242000 CVTCTLFG EQU CVTS01+50 04243000 CVTSRBRT EQU CVTS01+100 04244000 CVTOPTE EQU CVTS01+188 04245000 CVTASVT EQU CVTS01+208 04246000 CVTSPSA EQU CVTS01+336 04247000 CVTRV210 EQU CVTS01+424 04248000 CVTRV219 EQU CVTS01+425 04249000 CVTRV228 EQU CVTS01+426 04250000 CVTRV237 EQU CVTS01+427 04251000 CVTMFRTR EQU CVTS01+452 04252000 CVTRV262 EQU CVTS01+468 04253000 CVTRV271 EQU CVTS01+469 04254000 CVTRV280 EQU CVTS01+470 04255000 CVTRV289 EQU CVTS01+471 04256000 CVTGSDA EQU CVTS01+600 04257000 ASVTPTR EQU CVTASVT 04258000 PSARSVTE EQU PSARSVT 04259000 PSACSTK EQU PSARSVTE 04260000 FRRSPTR EQU PSACSTK 04261000 CVTPTR EQU FLCCVT 04262000 ASCBPTR EQU PSAAOLD 04263000 OUCBPTR EQU ASCBOUCB 04264000 ASXBPTR EQU ASCBASXB 04265000 SPCTPTR EQU RSMSPCT 04266000 SAVERCA EQU PVTSAVE 04267000 FLC EQU PSA 04268000 * START UNREFERENCED COMPONENTS 04269000 PSARSAV EQU PSARSVTE+60 04270000 PSARSTK EQU PSARSVTE+56 04271000 PSAESAV3 EQU PSARSVTE+52 04272000 PSAESTK3 EQU PSARSVTE+48 04273000 PSAESAV2 EQU PSARSVTE+44 04274000 PSAESTK2 EQU PSARSVTE+40 04275000 PSAESAV1 EQU PSARSVTE+36 04276000 PSAESTK1 EQU PSARSVTE+32 04277000 PSAPSAV EQU PSARSVTE+28 04278000 PSAPSTK EQU PSARSVTE+24 04279000 PSAMSAV EQU PSARSVTE+20 04280000 PSAMSTK EQU PSARSVTE+16 04281000 PSASSAV EQU PSARSVTE+12 04282000 PSASSTK EQU PSARSVTE+8 04283000 PSANSTK EQU PSARSVTE+4 04284000 CVTRV628 EQU CVTS01+728 04285000 CVTRV627 EQU CVTS01+724 04286000 CVTRV626 EQU CVTS01+720 04287000 CVTRV625 EQU CVTS01+716 04288000 CVTRV624 EQU CVTS01+712 04289000 CVTRV623 EQU CVTS01+708 04290000 CVTRV622 EQU CVTS01+704 04291000 CVTRV621 EQU CVTS01+700 04292000 CVTIHASU EQU CVTS01+696 04293000 CVTSUSP EQU CVTS01+692 04294000 CVTT6SVC EQU CVTS01+688 04295000 CVTCDAL EQU CVTS01+684 04296000 CVTTCTL EQU CVTS01+680 04297000 CVTRSUME EQU CVTS01+676 04298000 CVTJTERM EQU CVTS01+672 04299000 CVTASMRM EQU CVTS01+668 04300000 CVTTCASP EQU CVTS01+664 04301000 CVT0PT03 EQU CVTS01+660 04302000 CVT0PT0E EQU CVTS01+656 04303000 CVTRV609 EQU CVTS01+652 04304000 CVTCGK EQU CVTS01+648 04305000 CVTRAC EQU CVTS01+644 04306000 CVTHSM EQU CVTS01+640 04307000 CVTRV605 EQU CVTS01+636 04308000 CVTRV604 EQU CVTS01+632 04309000 CVTEFF02 EQU CVTS01+628 04310000 CVTCBBR EQU CVTS01+624 04311000 CVTSSCR EQU CVTS01+620 04312000 CVTEVENT EQU CVTS01+616 04313000 CVTCRCA EQU CVTS01+612 04314000 CVTTPIO EQU CVTS01+608 04315000 CVTADV EQU CVTS01+604 04316000 CVTGSDAB EQU CVTGSDA 04317000 CVTQV3 EQU CVTS01+596 04318000 CVTQV2 EQU CVTS01+592 04319000 CVTQV1 EQU CVTS01+588 04320000 CVTRPT EQU CVTS01+584 04321000 CVTSSRB EQU CVTS01+580 04322000 CVTCSDRL EQU CVTS01+576 04323000 CVTEXP1 EQU CVTS01+572 04324000 CVTRMPMT EQU CVTS01+568 04325000 CVTRMPTT EQU CVTS01+564 04326000 CVTVPSA EQU CVTS01+560 04327000 CVTVSTOP EQU CVTS01+556 04328000 CVTGTFR8 EQU CVTS01+552 04329000 CVTQUIT EQU CVTS01+548 04330000 CVTVACR EQU CVTS01+544 04331000 CVTWTCB EQU CVTS01+540 04332000 CVTSTPRS EQU CVTS01+536 04333000 CVT0PT02 EQU CVTS01+532 04334000 CVTDARCM EQU CVTS01+528 04335000 CVTIRECM EQU CVTS01+524 04336000 CVTJRECM EQU CVTS01+520 04337000 CVTVEMS0 EQU CVTS01+516 04338000 CVTSPFRR EQU CVTS01+512 04339000 CVTRLSTG EQU CVTS01+508 04340000 CVT0TC0A EQU CVTS01+504 04341000 CVTGMBR EQU CVTS01+500 04342000 CVTLFRM EQU CVTS01+496 04343000 CVTRMBR EQU CVTS01+492 04344000 CVTVIOP EQU CVTS01+488 04345000 CVTRV307 EQU CVTS01+486 04346000 CVTRV306 EQU CVTS01+484 04347000 CVTRV305 EQU CVTS01+482 04348000 CVTRV304 EQU CVTS01+480 04349000 CVTRV303 EQU CVTS01+478 04350000 CVTRV302 EQU CVTS01+476 04351000 CVTTRCA EQU CVTS01+472 04352000 CVTRV297 EQU CVTRV289 04353000 CVTRV296 EQU CVTRV289 04354000 CVTRV295 EQU CVTRV289 04355000 CVTRV294 EQU CVTRV289 04356000 CVTRV293 EQU CVTRV289 04357000 CVTRV292 EQU CVTRV289 04358000 CVTRV291 EQU CVTRV289 04359000 CVTRV290 EQU CVTRV289 04360000 CVTRV288 EQU CVTRV280 04361000 CVTRV287 EQU CVTRV280 04362000 CVTRV286 EQU CVTRV280 04363000 CVTRV285 EQU CVTRV280 04364000 CVTRV284 EQU CVTRV280 04365000 CVTRV283 EQU CVTRV280 04366000 CVTRV282 EQU CVTRV280 04367000 CVTRV281 EQU CVTRV280 04368000 CVTRV279 EQU CVTRV271 04369000 CVTRV278 EQU CVTRV271 04370000 CVTRV277 EQU CVTRV271 04371000 CVTRV276 EQU CVTRV271 04372000 CVTRV275 EQU CVTRV271 04373000 CVTRV274 EQU CVTRV271 04374000 CVTRV273 EQU CVTRV271 04375000 CVTRV272 EQU CVTRV271 04376000 CVTRV270 EQU CVTRV262 04377000 CVTRV269 EQU CVTRV262 04378000 CVTRV268 EQU CVTRV262 04379000 CVTRV267 EQU CVTRV262 04380000 CVTRV266 EQU CVTRV262 04381000 CVTRV265 EQU CVTRV262 04382000 CVTRV264 EQU CVTRV262 04383000 CVTRV263 EQU CVTRV262 04384000 CVTVFP EQU CVTS01+464 04385000 CVTVSI EQU CVTS01+460 04386000 CVTVPSIB EQU CVTS01+456 04387000 CVTMFACT EQU CVTMFRTR 04388000 CVTMFCTL EQU CVTS01+448 04389000 CVTPVBP EQU CVTS01+444 04390000 CVTPWI EQU CVTS01+440 04391000 CVTRV254 EQU CVTS01+438 04392000 CVTRV253 EQU CVTS01+436 04393000 CVTRV252 EQU CVTS01+434 04394000 CVTRV251 EQU CVTS01+433 04395000 CVTRV250 EQU CVTS01+432 04396000 CVTRV249 EQU CVTS01+431 04397000 CVTRV248 EQU CVTS01+430 04398000 CVTRV247 EQU CVTS01+429 04399000 CVTRV246 EQU CVTS01+428 04400000 CVTRV245 EQU CVTRV237 04401000 CVTRV244 EQU CVTRV237 04402000 CVTRV243 EQU CVTRV237 04403000 CVTRV242 EQU CVTRV237 04404000 CVTRV241 EQU CVTRV237 04405000 CVTRV240 EQU CVTRV237 04406000 CVTRV239 EQU CVTRV237 04407000 CVTRV238 EQU CVTRV237 04408000 CVTRV236 EQU CVTRV228 04409000 CVTRV235 EQU CVTRV228 04410000 CVTRV234 EQU CVTRV228 04411000 CVTRV233 EQU CVTRV228 04412000 CVTRV232 EQU CVTRV228 04413000 CVTRV231 EQU CVTRV228 04414000 CVTRV230 EQU CVTRV228 04415000 CVTRV229 EQU CVTRV228 04416000 CVTRV227 EQU CVTRV219 04417000 CVTRV226 EQU CVTRV219 04418000 CVTRV225 EQU CVTRV219 04419000 CVTRV224 EQU CVTRV219 04420000 CVTRV223 EQU CVTRV219 04421000 CVTRV222 EQU CVTRV219 04422000 CVTRV221 EQU CVTRV219 04423000 CVTRV220 EQU CVTRV219 04424000 CVTRV218 EQU CVTRV210 04425000 CVTRV217 EQU CVTRV210 04426000 CVTRV216 EQU CVTRV210 04427000 CVTRV215 EQU CVTRV210 04428000 CVTRV214 EQU CVTRV210 04429000 CVTRV213 EQU CVTRV210 04430000 CVTRV212 EQU CVTRV210 04431000 CVTRV211 EQU CVTRV210 04432000 CVTLCCAT EQU CVTS01+420 04433000 CVTPCCAT EQU CVTS01+416 04434000 CVTIPCRP EQU CVTS01+412 04435000 CVTIPCRI EQU CVTS01+408 04436000 CVTIPCDS EQU CVTS01+404 04437000 CVTAIDVT EQU CVTS01+400 04438000 CVTSSAP EQU CVTS01+396 04439000 CVTEHCIR EQU CVTS01+392 04440000 CVTEHDEF EQU CVTS01+388 04441000 CVTDAIR EQU CVTS01+384 04442000 CVTPERFM EQU CVTS01+380 04443000 CVT044R2 EQU CVTS01+376 04444000 CVTFETCH EQU CVTS01+372 04445000 CVTRSTWD EQU CVTS01+368 04446000 CVTSPOST EQU CVTS01+364 04447000 CVTIOBP EQU CVTS01+360 04448000 CVTASMVT EQU CVTS01+356 04449000 CVTRECRQ EQU CVTS01+352 04450000 CVTWSAC EQU CVTS01+348 04451000 CVTRV149 EQU CVTS01+344 04452000 CVTWSAL EQU CVTS01+340 04453000 CVTGLMN EQU CVTS01+332 04454000 CVTVEAC0 EQU CVTS01+328 04455000 CVT062R1 EQU CVTS01+324 04456000 CVTRPOST EQU CVTS01+320 04457000 CVTDQIQE EQU CVTS01+316 04458000 CVTCSD EQU CVTS01+312 04459000 CVTLKRMA EQU CVTS01+308 04460000 CVTRSPIE EQU CVTS01+304 04461000 CVTRENQ EQU CVTS01+300 04462000 CVTLQCB EQU CVTS01+296 04463000 CVTFQCB EQU CVTS01+292 04464000 CVTQCS01 EQU CVTS01+288 04465000 CVTAPFT EQU CVTS01+284 04466000 CVTPARRL EQU CVTS01+280 04467000 CVTVWAIT EQU CVTS01+276 04468000 CVTGSPL EQU CVTS01+272 04469000 CVTLSMQ EQU CVTS01+268 04470000 CVTGSMQ EQU CVTS01+264 04471000 CVTEXPRO EQU CVTS01+260 04472000 CVTOPCTP EQU CVTS01+256 04473000 CVTSIC EQU CVTS01+252 04474000 CVTTPIOS EQU CVTS01+248 04475000 CVTRTMS EQU CVTS01+244 04476000 CVTSDBF EQU CVTS01+240 04477000 CVTSCBP EQU CVTS01+236 04478000 CVTSDMP EQU CVTS01+232 04479000 CVTSV60 EQU CVTS01+228 04480000 CVTRTMCT EQU CVTS01+224 04481000 CVTASCBL EQU CVTS01+220 04482000 CVTASCBH EQU CVTS01+216 04483000 CVTGDA EQU CVTS01+212 04484000 CVTVVMDI EQU CVTS01+204 04485000 CVTAQTOP EQU CVTS01+200 04486000 CVTIOSCS EQU CVTS01+196 04487000 CVTSDRM EQU CVTS01+192 04488000 CVTSTXU EQU CVTS01+184 04489000 CVTQUIS EQU CVTS01+180 04490000 CVTPARS EQU CVTS01+176 04491000 CVTS1EE EQU CVTS01+172 04492000 CVTFRAS EQU CVTS01+168 04493000 CVTQSAS EQU CVTS01+164 04494000 CVTCRAS EQU CVTS01+160 04495000 CVTCRMN EQU CVTS01+156 04496000 CVTDELCP EQU CVTS01+152 04497000 CVTFRECL EQU CVTS01+148 04498000 CVTGETCL EQU CVTS01+144 04499000 CVTBLDCP EQU CVTS01+140 04500000 CVTAUTHL EQU CVTS01+136 04501000 CVTSCAN EQU CVTS01+132 04502000 CVTRV144 EQU CVTS01+130 04503000 CVTMAXMP EQU CVTS01+128 04504000 CVTSTCK EQU CVTS01+124 04505000 CVTRV139 EQU CVTS01+123 04506000 CVTDSSAC EQU CVTS01+122 04507000 CVTRV513 EQU CVTS01+121 04508000 CVTIOSPL EQU CVTS01+120 04509000 CVTPTGT EQU CVTS01+116 04510000 CVTCSPIE EQU CVTS01+112 04511000 CVTSMFEX EQU CVTS01+108 04512000 CVTOLT0A EQU CVTS01+104 04513000 CVTPUTL EQU CVTS01+96 04514000 CVTASCRL EQU CVTS01+92 04515000 CVTASCRF EQU CVTS01+88 04516000 CVTRV326 EQU CVTS01+84 04517000 CVTRV325 EQU CVTS01+80 04518000 CVTRV324 EQU CVTS01+76 04519000 CVT0VL01 EQU CVTS01+72 04520000 CVTSHRVM EQU CVTS01+68 04521000 CVTRV332 EQU CVTS01+64 04522000 CVTTAS EQU CVTS01+60 04523000 CVTRSCN EQU CVTS01+56 04524000 CVTTRAC2 EQU CVTS01+54 04525000 CVTTRACE EQU CVTS01+52 04526000 CVTAPG EQU CVTS01+51 04527000 CVTSDTRC EQU CVTCTLFG 04528000 CVTGTRCE EQU CVTCTLFG 04529000 CVTNOMP EQU CVTCTLFG 04530000 CVTRSV79 EQU CVTCTLFG 04531000 CVTDSTAT EQU CVTCTLFG 04532000 CVTRSV78 EQU CVTCTLFG 04533000 CVTRV333 EQU CVTCTLFG 04534000 CVTRV323 EQU CVTCTLFG 04535000 CVTSPVLK EQU CVTS01+49 04536000 CVTRSV77 EQU CVTS01+48 04537000 CVTRV331 EQU CVTS01+44 04538000 CVTRV330 EQU CVTS01+40 04539000 CVTRV329 EQU CVTS01+36 04540000 CVTRV328 EQU CVTS01+32 04541000 CVTRV322 EQU CVTS01+28 04542000 CVTSLID EQU CVTSLIDA+1 04543000 CVTSYLK EQU CVTSLIDA 04544000 CVTRV321 EQU CVTS01+20 04545000 CVTRV320 EQU CVTS01+16 04546000 CVTLPDIR EQU CVTLPDIA+1 04547000 CVTRSV69 EQU CVTDIRST 04548000 CVTRSV68 EQU CVTDIRST 04549000 CVTRSV67 EQU CVTDIRST 04550000 CVTRSV66 EQU CVTDIRST 04551000 CVTRSV65 EQU CVTDIRST 04552000 CVTRSV64 EQU CVTDIRST 04553000 CVTRSV63 EQU CVTDIRST 04554000 CVTDICOM EQU CVTDIRST 04555000 CVTLPDSR EQU CVTS01+4 04556000 CVTGETL EQU CVTS01 04557000 CVTLEVL EQU CVTRELNO+2 04558000 CVTNUMB EQU CVTRELNO 04559000 CVTMDL EQU CVTFIX+250 04560000 @NM00064 EQU CVTFIX+248 04561000 @NM00063 EQU CVTFIX 04562000 CVTRV482 EQU CVTXTNT2+128 04563000 CVTRV481 EQU CVTXTNT2+124 04564000 CVTRV480 EQU CVTXTNT2+120 04565000 CVTRV479 EQU CVTXTNT2+118 04566000 CVTRV478 EQU CVTXTNT2+117 04567000 CVTRV477 EQU CVTXTNT2+116 04568000 CVTRV476 EQU CVTXTNT2+115 04569000 CVTRV475 EQU CVTXTNT2+114 04570000 CVTRV474 EQU CVTRV466 04571000 CVTRV473 EQU CVTRV466 04572000 CVTRV472 EQU CVTRV466 04573000 CVTRV471 EQU CVTRV466 04574000 CVTRV470 EQU CVTRV466 04575000 CVTRV469 EQU CVTRV466 04576000 CVTRV468 EQU CVTRV466 04577000 CVTRV467 EQU CVTRV466 04578000 CVTRV465 EQU CVTRV457 04579000 CVTRV464 EQU CVTRV457 04580000 CVTRV463 EQU CVTRV457 04581000 CVTRV462 EQU CVTRV457 04582000 CVTRV461 EQU CVTRV457 04583000 CVTRV460 EQU CVTRV457 04584000 CVTRV459 EQU CVTRV457 04585000 CVTRV458 EQU CVTRV457 04586000 CVTRV456 EQU CVTXTNT2+108 04587000 CVTRV455 EQU CVTXTNT2+104 04588000 CVTRV454 EQU CVTXTNT2+100 04589000 CVTRV453 EQU CVTXTNT2+96 04590000 CVTRV452 EQU CVTXTNT2+94 04591000 CVTRV451 EQU CVTXTNT2+92 04592000 CVTRV450 EQU CVTXTNT2+90 04593000 CVTRV449 EQU CVTXTNT2+88 04594000 CVTRV448 EQU CVTXTNT2+87 04595000 CVTRV447 EQU CVTXTNT2+86 04596000 CVTRV446 EQU CVTRV438 04597000 CVTRV445 EQU CVTRV438 04598000 CVTRV444 EQU CVTRV438 04599000 CVTRV443 EQU CVTRV438 04600000 CVTRV442 EQU CVTRV438 04601000 CVTRV441 EQU CVTRV438 04602000 CVTRV440 EQU CVTRV438 04603000 CVTRV439 EQU CVTRV438 04604000 CVTRV437 EQU CVTRV429 04605000 CVTRV436 EQU CVTRV429 04606000 CVTRV435 EQU CVTRV429 04607000 CVTRV434 EQU CVTRV429 04608000 CVTRV433 EQU CVTRV429 04609000 CVTRV432 EQU CVTRV429 04610000 CVTRV431 EQU CVTRV429 04611000 CVTRV430 EQU CVTRV429 04612000 CVTRV428 EQU CVTXTNT2+80 04613000 CVTRV427 EQU CVTXTNT2+76 04614000 CVTRV426 EQU CVTXTNT2+72 04615000 CVTRV425 EQU CVTXTNT2+68 04616000 CVTATACT EQU CVTATCVT 04617000 CVTRV423 EQU CVTXTNT2+62 04618000 CVTRV422 EQU CVTXTNT2+60 04619000 CVTRV421 EQU CVTXTNT2+58 04620000 CVTRV420 EQU CVTXTNT2+56 04621000 CVTRV419 EQU CVTXTNT2+55 04622000 CVTRV418 EQU CVTXTNT2+54 04623000 CVTRV417 EQU CVTRV409 04624000 CVTRV416 EQU CVTRV409 04625000 CVTRV415 EQU CVTRV409 04626000 CVTRV414 EQU CVTRV409 04627000 CVTRV413 EQU CVTRV409 04628000 CVTRV412 EQU CVTRV409 04629000 CVTRV411 EQU CVTRV409 04630000 CVTRV410 EQU CVTRV409 04631000 CVTRV408 EQU CVTRV400 04632000 CVTRV407 EQU CVTRV400 04633000 CVTRV406 EQU CVTRV400 04634000 CVTRV405 EQU CVTRV400 04635000 CVTRV404 EQU CVTRV400 04636000 CVTRV403 EQU CVTRV400 04637000 CVTRV402 EQU CVTRV400 04638000 CVTRV401 EQU CVTRV400 04639000 CVTICB EQU CVTXTNT2+48 04640000 CVTSKTA EQU CVTXTNT2+44 04641000 CVTCCVT EQU CVTXTNT2+40 04642000 CVTRSV98 EQU CVTXTNT2+36 04643000 CVTRSV97 EQU CVTXTNT2+34 04644000 CVTRSV96 EQU CVTXTNT2+32 04645000 CVTOLTEP EQU CVTXTNT2+28 04646000 CVTQIDA EQU CVTQID+1 04647000 CVTRSV95 EQU CVTQID 04648000 CVTRSV94 EQU CVTXTNT2+20 04649000 CVTRSV93 EQU CVTXTNT2+16 04650000 CVTRSV92 EQU CVTXTNT2+12 04651000 CVTDEBVR EQU CVTXTNT2+8 04652000 CVTRSV91 EQU CVTXTNT2+6 04653000 CVTRSV9H EQU CVTFLGBT 04654000 CVTRSV9G EQU CVTFLGBT 04655000 CVTRSV9F EQU CVTFLGBT 04656000 CVTRSV9E EQU CVTFLGBT 04657000 CVTRSV9D EQU CVTFLGBT 04658000 CVTBAH EQU CVTFLGBT 04659000 CVTVME EQU CVTFLGBT 04660000 CVTNPE EQU CVTFLGBT 04661000 CVTNUCLS EQU CVTXTNT2+4 04662000 CVTDSSVA EQU CVTDSSV+1 04663000 CVTRSV89 EQU CVTDSSV 04664000 CVTRSV88 EQU CVTXTNT1+8 04665000 CVTRSV87 EQU CVTXTNT1+4 04666000 CVTFACHN EQU CVTXTNT1 04667000 CVTRV488 EQU CVTMAP+412 04668000 CVTRV487 EQU CVTMAP+408 04669000 CVTRV486 EQU CVTMAP+404 04670000 CVTRV485 EQU CVTMAP+400 04671000 CVTACTAP EQU CVTMAP+396 04672000 CVTAUTH EQU CVTMAP+392 04673000 CVTRV490 EQU CVTMAP+388 04674000 CVTSU EQU CVTMAP+384 04675000 CVTVOLT1 EQU CVTVOLM1+1 04676000 CVTVOLI1 EQU CVTVOLF1 04677000 CVTSTOA EQU CVTMAP+376 04678000 CVTRSV58 EQU CVTMAP+374 04679000 CVTRSV57 EQU CVTMAP+372 04680000 CVTDDCE EQU CVTMAP+368 04681000 CVTPNWFR EQU CVTMAP+364 04682000 CVTSMF EQU CVTMAP+360 04683000 CVTSULK EQU CVTMAP+358 04684000 CVTSLKO EQU CVTSYSK 04685000 CVTSLKP EQU CVTSYSK 04686000 CVTSLKQ EQU CVTSYSK 04687000 CVTSLKR EQU CVTSYSK 04688000 CVTRSV56 EQU CVTSYSK 04689000 CVTRSV55 EQU CVTSYSK 04690000 CVTRSV54 EQU CVTSYSK 04691000 CVTRSV53 EQU CVTSYSK 04692000 CVTRSV52 EQU CVTA1F1 04693000 CVTRSV51 EQU CVTA1F1 04694000 CVTRSV50 EQU CVTA1F1 04695000 CVTRSV49 EQU CVTA1F1 04696000 CVTRSV48 EQU CVTA1F1 04697000 CVTRSV47 EQU CVTA1F1 04698000 CVTSRSW EQU CVTA1F1 04699000 CVTPFSW EQU CVTA1F1 04700000 CVTPCVT EQU CVTMAP+352 04701000 CVTRSV46 EQU CVTMAP+344 04702000 CVTRSV45 EQU CVTMAP+340 04703000 CVTRSV44 EQU CVTMAP+338 04704000 CVTRSV43 EQU CVTMAP+336 04705000 CVTHJESA EQU CVTHJES+1 04706000 CVTRSV42 EQU CVTHJES 04707000 CVTEXT2A EQU CVTEXT2+1 04708000 CVTRSV41 EQU CVTEXT2 04709000 CVTAPFA EQU CVTAPF+1 04710000 CVTRSV40 EQU CVTAPF 04711000 CVTRV518 EQU CVTINTLA 04712000 CVTRV517 EQU CVTERPV 04713000 CVTEORM EQU CVTMAP+312 04714000 CVTMCHPR EQU CVTMAP+308 04715000 CVTTZ EQU CVTMAP+304 04716000 CVTJEPS EQU CVTMAP+300 04717000 CVTJESCT EQU CVTMAP+296 04718000 CVTMODE EQU CVTMAP+292 04719000 CVTREAL EQU CVTMAP+284 04720000 CVTRSV39 EQU CVTMAP+280 04721000 CVTRSV38 EQU CVTMAP+276 04722000 CVTDMSRA EQU CVTDMSR+1 04723000 CVTRV634 EQU CVTDMSRF 04724000 CVTRV633 EQU CVTDMSRF 04725000 CVTRV632 EQU CVTDMSRF 04726000 CVTRV631 EQU CVTDMSRF 04727000 CVTRV630 EQU CVTDMSRF 04728000 CVTRV629 EQU CVTDMSRF 04729000 CVTUDUMP EQU CVTDMSRF 04730000 CVTSDUMP EQU CVTDMSRF 04731000 CVTQMSGA EQU CVTQMSG+1 04732000 CVTRSV36 EQU CVTQMSG 04733000 CVTAMFF EQU CVTMAP+264 04734000 CVTPURGA EQU CVTPURG+1 04735000 CVTRSV35 EQU CVTPURG 04736000 CVTCBSP EQU CVTMAP+256 04737000 CVTATERA EQU CVTATER+1 04738000 CVTSYST EQU CVTATER 04739000 CVTVOLT2 EQU CVTTAT 04740000 CVTVOLI2 EQU CVTVOLF2 04741000 CVTAQAVB EQU CVTAQAVT+1 04742000 CVTRSV34 EQU CVTTCMFG 04743000 CVTRSV33 EQU CVTTCMFG 04744000 CVTRSV32 EQU CVTTCMFG 04745000 CVTRSV31 EQU CVTTCMFG 04746000 CVTRSV30 EQU CVTTCMFG 04747000 CVTRSV29 EQU CVTTCMFG 04748000 CVTLDEV EQU CVTTCMFG 04749000 CVTTCRDY EQU CVTTCMFG 04750000 CVTGTFA EQU CVTGTF+1 04751000 CVTRSV27 EQU CVTGTFST 04752000 CVTRNIO EQU CVTGTFST 04753000 CVTUSR EQU CVTGTFST 04754000 CVTRV318 EQU CVTFORM 04755000 CVTRV317 EQU CVTTMODE 04756000 CVTRV316 EQU CVTSTATE 04757000 CVTRV315 EQU CVTGTFS 04758000 CVTGTFAV EQU CVTGTFS 04759000 CVT0SCR1 EQU CVTMAP+232 04760000 CVTRV515 EQU CVTMAP+228 04761000 CVTRMS EQU CVTMAP+224 04762000 CVTPATCH EQU CVTMAP+220 04763000 CVTTSCE EQU CVTMAP+216 04764000 CVTLNKSC EQU CVTMAP+214 04765000 CVTQABST EQU CVTMAP+212 04766000 CVTMDLDS EQU CVTMAP+208 04767000 CVTUSER EQU CVTMAP+204 04768000 CVTABEND EQU CVTMAP+200 04769000 CVTSMCA EQU CVTMAP+196 04770000 CVTRSV18 EQU CVTMAP+192 04771000 CVTQLPAQ EQU CVTMAP+188 04772000 CVTQCDSR EQU CVTMAP+184 04773000 CVTVS1B EQU CVTOPTB 04774000 CVTVS1A EQU CVTOPTB 04775000 CVTFP EQU CVTOPTB 04776000 CVTAPTHR EQU CVTOPTB 04777000 CVTNLOG EQU CVTOPTB 04778000 CVTTOD EQU CVTOPTB 04779000 CVTCTIMS EQU CVTOPTB 04780000 CVTPROT EQU CVTOPTB 04781000 CVTXPFP EQU CVTOPTA 04782000 CVTASCII EQU CVTOPTA 04783000 CVTRSV13 EQU CVTOPTA 04784000 CVTRSV12 EQU CVTOPTA 04785000 CVTNIP EQU CVTOPTA 04786000 CVTDDR EQU CVTOPTA 04787000 CVTAPR EQU CVTOPTA 04788000 CVTCCH EQU CVTOPTA 04789000 CVTSNCTR EQU CVTMAP+180 04790000 CVTQMWR EQU CVTMAP+176 04791000 CVTQOCR EQU CVTMAP+172 04792000 CVT1EF00 EQU CVTMAP+168 04793000 CVTMZ00 EQU CVTMAP+164 04794000 CVTSV76Q EQU CVTSV76C 04795000 CVTRSV11 EQU CVTMAP+156 04796000 CVTMSER EQU CVTMAP+148 04797000 CVTRV516 EQU CVTIERLC 04798000 CVTILCH EQU CVTMAP+140 04799000 CVT0DS EQU CVTMAP+136 04800000 CVTFBOSV EQU CVTMAP+132 04801000 CVTNUCB EQU CVTMAP+128 04802000 CVTIXAVL EQU CVTMAP+124 04803000 CVTSV76M EQU CVTIOQET 04804000 CVTDCBA EQU CVTMAP+117 04805000 CVTMVS2 EQU CVTDCB 04806000 CVT6DAT EQU CVTDCB 04807000 CVT4MPS EQU CVTDCB 04808000 CVTRSV09 EQU CVTDCB 04809000 CVT4MS1 EQU CVTDCB 04810000 CVT2SPS EQU CVTDCB 04811000 CVT1SSS EQU CVTDCB 04812000 CVTRSV08 EQU CVTDCB 04813000 CVTSTB EQU CVTMAP+112 04814000 CVTQTD00 EQU CVTMAP+108 04815000 CVTQTE00 EQU CVTMAP+104 04816000 CVTCUCB EQU CVTMAP+100 04817000 CVTSJQ EQU CVTMAP+96 04818000 CVTPBLDL EQU CVTMAP+92 04819000 CVTTPC EQU CVTMAP+88 04820000 CVTSVDCB EQU CVTMAP+84 04821000 CVTBRET EQU CVTMAP+82 04822000 CVTEXIT EQU CVTMAP+80 04823000 CVT0FN00 EQU CVTMAP+76 04824000 CVTDARA EQU CVTDAR+1 04825000 CVTRSV07 EQU CVTFLGS1 04826000 CVTRSV06 EQU CVTFLGS1 04827000 CVTRSV05 EQU CVTFLGS1 04828000 CVTRSV04 EQU CVTFLGS1 04829000 CVTRSV03 EQU CVTFLGS1 04830000 CVTRSV02 EQU CVTFLGS1 04831000 CVTRSV01 EQU CVTFLGS1 04832000 CVTDMPLK EQU CVTFLGS1 04833000 CVTXITP EQU CVTMAP+68 04834000 CVTZDTAB EQU CVTMAP+64 04835000 CVTMSLT EQU CVTMAP+60 04836000 CVTDATE EQU CVTMAP+56 04837000 CVTBTERM EQU CVTMAP+52 04838000 CVTSYSAD EQU CVTMAP+48 04839000 CVTXTLER EQU CVTMAP+44 04840000 CVTILK2 EQU CVTMAP+40 04841000 CVTILK1 EQU CVTMAP+36 04842000 CVTPRLTV EQU CVTMAP+32 04843000 CVTPCNVT EQU CVTMAP+28 04844000 CVT0VL00 EQU CVTMAP+24 04845000 CVTXAPG EQU CVTMAP+20 04846000 CVTBUF EQU CVTMAP+16 04847000 CVTJOB EQU CVTMAP+12 04848000 CVTLINK EQU CVTMAP+8 04849000 CVT0EF00 EQU CVTMAP+4 04850000 CVTTCBP EQU CVTMAP 04851000 XPTLSID2 EQU XPTLPN 04852000 XPTLSID EQU XPTLGN 04853000 @NM00062 EQU XPTFLAG2 04854000 XPTIOERR EQU XPTFLAG2 04855000 XPTPOINP EQU XPTFLAG2 04856000 XPTRES1 EQU XPTFLAG2 04857000 XPTVALID EQU XPTFLAG2 04858000 XPTRSV4 EQU XPTFLAGS 04859000 XPTDEFER EQU XPTFLAGS 04860000 XPTRES2 EQU XPTFLAGS 04861000 XPTVIO EQU XPTFLAGS 04862000 @NM00061 EQU XPTFLAGS 04863000 XPTCKF EQU XPTFLAGS 04864000 XPTXAV EQU XPTFLAGS 04865000 XPTVIOLP EQU XPTFLAGS 04866000 XPTRSV1 EQU XPTE+1 04867000 XPTPROT EQU XPTE 04868000 @NM00060 EQU SRB+40 04869000 @NM00059 EQU SRB+38 04870000 SRBPRIOR EQU SRB+37 04871000 SRBPKF EQU SRB+36 04872000 SRBSAVE EQU SRB+32 04873000 SRBCPAFF EQU SRBFLC 04874000 SRBFLNK EQU SRB+4 04875000 SGTPAM EQU SGTBYTE 04876000 SGTEAC EQU SGTBYTE 04877000 @NM00058 EQU SGTBYTE 04878000 @NM00057 EQU SGTBYTE 04879000 @NM00056 EQU SGTBYTE 04880000 @NM00055 EQU SGTBYTE 04881000 @NM00054 EQU SGTBYTE 04882000 SGTORG EQU SGTPTO 04883000 SGTKEY EQU SGTLK 04884000 SGTPTL EQU SGTLK 04885000 RSMASMHD EQU RSMHD+40 04886000 RSMFOEQ EQU RSMHD+36 04887000 RSMLIOQL EQU RSMLIOQ+4 04888000 RSMLIOQF EQU RSMLIOQ 04889000 RSMLSQAL EQU RSMLSQA+2 04890000 RSMLSQAF EQU RSMLSQA 04891000 RSMLFQL EQU RSMLFQ+2 04892000 RSMLFQF EQU RSMLFQ 04893000 RSMRSV2 EQU RSMHD+16 04894000 RSMRSV1 EQU RSMHD+13 04895000 @NM00053 EQU RSMFLG1 04896000 RSMFAIL EQU RSMFLG1 04897000 RSMGFADD EQU RSMFLG1 04898000 RSMCPNC EQU RSMFLG1 04899000 RSMCPNU EQU RSMFLG1 04900000 RSMGFAD EQU RSMFLG1 04901000 RSMIOCPC EQU RSMFLG1 04902000 RSMIOCPU EQU RSMFLG1 04903000 RSMASCB EQU RSMHD+8 04904000 RSMVSTO EQU RSMHD 04905000 RCARETAD EQU RCA+20 04906000 RCATASID EQU RCA+18 04907000 RCAREP1 EQU RCANAME6 04908000 RCAPSIF EQU RCANAME6 04909000 RCAPSIX EQU RCANAME6 04910000 RCARCFC EQU RCANAME6 04911000 RCACSGB EQU RCANAME6 04912000 RCAFXL EQU RCANAME6 04913000 RCAPS113 EQU RCANAME6 04914000 RCAFREE EQU RCANAME5 04915000 RCARFR2 EQU RCANAME5 04916000 RCACPBR EQU RCANAME5 04917000 RCAOPBR EQU RCANAME5 04918000 RCASORT EQU RCANAME5 04919000 RCASIRT EQU RCANAME5 04920000 RCARELV EQU RCANAME5 04921000 RCARELF EQU RCANAME5 04922000 RCAGFAD EQU RCANAME4 04923000 RCATERM EQU RCANAME4 04924000 RCASQA EQU RCANAME4 04925000 RCASWIN EQU RCANAME4 04926000 RCASOUT EQU RCANAME4 04927000 RCARFR EQU RCANAME3 04928000 RCARELS EQU RCANAME3 04929000 RCARCFI EQU RCANAME3 04930000 RCARCF EQU RCANAME3 04931000 RCAPSII EQU RCANAME3 04932000 RCAPSIB EQU RCANAME3 04933000 RCAPS112 EQU RCANAME3 04934000 RCAPIX EQU RCANAME3 04935000 RCAPIOP EQU RCANAME2 04936000 RCASWPC EQU RCANAME2 04937000 RCASWPP EQU RCANAME2 04938000 RCAPFTE EQU RCANAME2 04939000 RCAPCB EQU RCANAME2 04940000 RCAOUT EQU RCANAME2 04941000 RCAITAS EQU RCANAME2 04942000 RCAIOCP EQU RCANAME2 04943000 RCAINV EQU RCANAME1 04944000 RCAGFA EQU RCANAME1 04945000 RCAFXLD EQU RCANAME1 04946000 RCADSEG EQU RCANAME1 04947000 RCADLAS EQU RCANAME1 04948000 RCACSEG EQU RCANAME1 04949000 RCAVAMSI EQU RCANAME1 04950000 @NM00052 EQU RCAFLAGS 04951000 RCADISP EQU RCAFLAGS 04952000 @NM00051 EQU RCAFLAGS 04953000 RCAQS EQU RCAFLAGS 04954000 RCAPSIER EQU RCAFLAGS 04955000 RCAABEND EQU RCAFLAGS 04956000 @NM00050 EQU RCANAME7 04957000 RCAPRSS EQU RCANAME7 04958000 RCAPRSR EQU RCANAME7 04959000 RCAPRSB EQU RCANAME7 04960000 RCAPSIY EQU RCANAME7 04961000 RCAPIOI EQU RCANAME7 04962000 RCAPARM1 EQU RCA+4 04963000 RCAPARM0 EQU RCA 04964000 PVTEND EQU PVT+1944 04965000 PVTTASID EQU PVT+1942 04966000 PVTXXXXX EQU PVT+1940 04967000 PVTMVCLC EQU PVT+1936 04968000 PVTVCONS EQU PVT+1896 04969000 PVTPRSB EQU PVT+1892 04970000 PVTCIOQL EQU PVTPCBQS+36 04971000 PVTCIOQF EQU PVTPCBQS+32 04972000 PVTGFADL EQU PVTPCBQS+28 04973000 PVTGFADF EQU PVTPCBQS+24 04974000 PVTFPCBL EQU PVTPCBQS+20 04975000 PVTFPCBF EQU PVTPCBQS+16 04976000 PVTPCBQR EQU PVTPCBQS 04977000 PVTLPAFX EQU PVT+1850 04978000 PVTLSQAF EQU PVT+1848 04979000 PVTLPAR EQU PVT+1844 04980000 PVTLPAI EQU PVT+1840 04981000 PVTLPAFC EQU PVT+1838 04982000 PVTCHUIC EQU PVT+1836 04983000 PVTCOMFX EQU PVT+1834 04984000 PVTSQAFX EQU PVT+1832 04985000 PVTDEFFX EQU PVT+1828 04986000 PVTFIXOK EQU PVT+1826 04987000 PVTPEROK EQU PVT+1824 04988000 PVTPERFX EQU PVT+1820 04989000 PVTRSRB EQU PVT+1776 04990000 PVTRESV5 EQU PVT+1773 04991000 PVTSRBS EQU PVT+1772 04992000 PVTSSRB EQU PVT+1768 04993000 PVTACA EQU PVTWSAX+1400 04994000 PVTWSA18 EQU PVTWSAX+1256 04995000 PVTWSA17 EQU PVTWSAX+1184 04996000 PVTWSA16 EQU PVTWSAX+1112 04997000 PVTWSA15 EQU PVTWSAX+1040 04998000 PVTWSA14 EQU PVTWSAX+968 04999000 PVTWSA13 EQU PVTWSAX+896 05000000 PVTWSA12 EQU PVTWSAX+824 05001000 PVTWSA11 EQU PVTWSAX+752 05002000 PVTWSA10 EQU PVTWSAX+672 05003000 PVTWSA9 EQU PVTWSAX+592 05004000 PVTWSA8 EQU PVTWSAX+504 05005000 PVTWSA7 EQU PVTWSAX+432 05006000 PVTWSA6 EQU PVTWSAX+360 05007000 PVTWSA5 EQU PVTWSAX+288 05008000 PVTWSA4 EQU PVTWSAX+216 05009000 PVTWSA2 EQU PVTWSAX+72 05010000 PVTWSA1 EQU PVTWSAX 05011000 PVTPFTQR EQU PVTQS+20 05012000 PVTRSBQL EQU PVTQS+18 05013000 PVTRSBQF EQU PVTQS+16 05014000 PVTSQAQL EQU PVTQS+14 05015000 PVTSQAQF EQU PVTQS+12 05016000 PVTCFQL EQU PVTQS+10 05017000 PVTCFQF EQU PVTQS+8 05018000 PVTRSRVL EQU PVTQS+6 05019000 PVTRSRVF EQU PVTQS+4 05020000 PVTAFQL EQU PVTQS+2 05021000 PVTAFQF EQU PVTQS 05022000 PVTSPFR EQU PVT+302 05023000 PVTCFMCT EQU PVT+300 05024000 PVTSPREC EQU PVT+296 05025000 PVTCAREC EQU PVT+292 05026000 PVTCAOUT EQU PVT+288 05027000 PVTCAIN EQU PVT+284 05028000 PVTNSWPS EQU PVT+280 05029000 PVTNPREC EQU PVT+276 05030000 PVTSPOUT EQU PVT+272 05031000 PVTSPIN EQU PVT+268 05032000 PVTVAMR EQU PVT+264 05033000 PVTVAMO EQU PVT+260 05034000 PVTVAMI EQU PVT+256 05035000 PVTNPOUT EQU PVT+252 05036000 PVTNPIN EQU PVT+248 05037000 PVTPRSET EQU PVT+244 05038000 PVTFRSLT EQU PVT+240 05039000 PVTPAGIO EQU PVT+236 05040000 PVTSWPIO EQU PVT+232 05041000 PVTPSWPP EQU PVT+228 05042000 PVTPPREF EQU PVT+224 05043000 PVTPOPBR EQU PVT+220 05044000 PVTPRELF EQU PVT+216 05045000 PVTPRELV EQU PVT+212 05046000 PVTPFREE EQU PVT+208 05047000 PVTPRELS EQU PVT+204 05048000 PVTPOUT EQU PVT+200 05049000 PVTPFXLD EQU PVT+196 05050000 PVTPITAS EQU PVT+192 05051000 PVTPCSEG EQU PVT+176 05052000 PVTPSWPC EQU PVT+168 05053000 PVTPSOUT EQU PVT+164 05054000 PVTPSWIN EQU PVT+160 05055000 PVTPRCFI EQU PVT+152 05056000 PVTPRCF EQU PVT+148 05057000 PVTPVRIN EQU PVT+140 05058000 PVTPVRLS EQU PVT+136 05059000 PVTPVEQR EQU PVT+132 05060000 PVTPPIOI EQU PVT+128 05061000 PVTPRFR EQU PVT+120 05062000 PVTPFP EQU PVT+112 05063000 PVTPIOCP EQU PVT+96 05064000 PVTPIOP EQU PVT+92 05065000 PVTPGFAD EQU PVT+88 05066000 PVTPGFA EQU PVT+84 05067000 PVTPSQA EQU PVT+80 05068000 PVTPSIB EQU PVT+72 05069000 PVTPCIWA EQU PVT+64 05070000 PVTHQSA EQU PVT+62 05071000 PVTLQSA EQU PVT+60 05072000 PVTOROOT EQU PVT+56 05073000 PVTREUS EQU PVT+48 05074000 PVTSQNPC EQU PVT+47 05075000 PVTSQVRC EQU PVT+46 05076000 PVTRSUS EQU PVT+44 05077000 PVTPCBLO EQU PVT+38 05078000 PVTPCBCT EQU PVT+36 05079000 PVTDFRS EQU PVT+34 05080000 PVTRSQA EQU PVT+32 05081000 PVTPTLB EQU PVT+31 05082000 PVTPCBNO EQU PVT+30 05083000 PVTSRBNO EQU PVT+29 05084000 PVTSQDC EQU PVT+28 05085000 PVTLCSA EQU PVT+26 05086000 PVTLPRIV EQU PVT+24 05087000 PVTLPFN EQU PVT+18 05088000 PVTFPFN EQU PVT+16 05089000 PVTSSPIN EQU PVT+11 05090000 PVTPCBS EQU PVT+10 05091000 PVTPOOL EQU PVT+8 05092000 PVTAFCOK EQU PVT+6 05093000 PVTAFCLO EQU PVT+4 05094000 PVTAFC EQU PVT+2 05095000 @NM00049 EQU PVTFLAG2 05096000 PVTRSMGM EQU PVTFLAG2 05097000 PVTDUMP EQU PVTFLAG1 05098000 PVTSIT EQU PVTFLAG1 05099000 PVTLSI EQU PVTFLAG1 05100000 PVTAPREF EQU PVTFLAG1 05101000 PVTPCBLT EQU PVTFLAG1 05102000 PVTSRBIU EQU PVTFLAG1 05103000 PVTBGMS EQU PVTFLAG1 05104000 PVTPMSG EQU PVTFLAG1 05105000 PFTUIC EQU PFTE+15 05106000 @NM00048 EQU PFTFLAG2 05107000 @NM00047 EQU PFTFLAG2 05108000 PFTPREF EQU PFTFLAG2 05109000 PFTSTEAL EQU PFTFLAG2 05110000 PFTDFRLS EQU PFTFLAG2 05111000 PFTLSQA EQU PFTFLAG1 05112000 PFTRSV1 EQU PFTE+10 05113000 PFTBQPTR EQU PFTQPTRS+2 05114000 PFTFQPTR EQU PFTQPTRS 05115000 @NM00022 EQU PGTBITS 05116000 @NM00021 EQU PGTBITS 05117000 @NM00020 EQU PGTBITS 05118000 @NM00019 EQU PGTBITS 05119000 @NM00018 EQU PGTBITS 05120000 @NM00017 EQU PGTBITS 05121000 PGTREAL EQU PGTRSA 05122000 PCBRWRKB EQU PCBR+60 05123000 PCBRWRKA EQU PCBR+56 05124000 PCBRWRK9 EQU PCBR+52 05125000 PCBRWRK8 EQU PCBR+48 05126000 PCBRWRK7 EQU PCBR+44 05127000 PCBRWRK6 EQU PCBR+40 05128000 PCBRWRK5 EQU PCBR+36 05129000 PCBRWRK4 EQU PCBR+32 05130000 PCBRWRK3 EQU PCBR+28 05131000 PCBRWRK2 EQU PCBR+24 05132000 PCBRWRK1 EQU PCBR+20 05133000 PCBRRSV1 EQU PCBR+18 05134000 PCBRGOTO EQU PCBR+4 05135000 PCBRFECB EQU PCBRFLAG 05136000 PCBRETRY EQU PCBRFLAG 05137000 PCBEND EQU PCB+64 05138000 PCBAIA EQU PCB+36 05139000 PCBASCB EQU PCB+32 05140000 PCBSPCTE EQU PCBRB 05141000 PCBVBN EQU PCB+26 05142000 PCBRBN EQU PCB+24 05143000 PCBPGTA EQU PCBPGT+1 05144000 PCBSWPS2 EQU PCBFL3 05145000 @NM00016 EQU PCBFL3 05146000 PCBNOREC EQU PCBFL3 05147000 PCBDFRLS EQU PCBFL3 05148000 PCBSWPLS EQU PCBFL3 05149000 PCBSWPS1 EQU PCBFL3 05150000 PCBSWPIN EQU PCBFL3 05151000 PCBSWPOT EQU PCBFL3 05152000 PCBXPTA EQU PCBXPT+1 05153000 @NM00015 EQU PCBFL2 05154000 @NM00014 EQU PCBFL2 05155000 PCBVIO EQU PCBFL2 05156000 PCBSUPRS EQU PCBFL2 05157000 PCBRESET EQU PCBFL2 05158000 PCBIOERR EQU PCBFL2 05159000 PCBGFAD EQU PCBFL2 05160000 PCBFREAL EQU PCBFL2 05161000 PCBRLPA EQU PCBRLP+1 05162000 PCBFXC EQU PCBRLP 05163000 PCBRTPA EQU PCBRTP+1 05164000 PCBIOCMP EQU PCBFL1 05165000 PCBIOI EQU PCBFL1 05166000 PCBROOT EQU PCBFL1 05167000 PCBLFR EQU PCBFL1 05168000 PCBLLHLD EQU PCBFL1 05169000 PCBSRBMD EQU PCBFL1 05170000 PCBPEX EQU PCBFL1 05171000 @NM00013 EQU PCBFL1 05172000 PCBBQPA EQU PCBBQP 05173000 PCBFQPA EQU PCBFQP+1 05174000 PCBCQN EQU PCBFQP 05175000 FRRSPARM EQU FRRSENTR+8 05176000 @NM00012 EQU FRRSFLGS+1 05177000 @NM00011 EQU FRRSFLG1 05178000 FRRSNEST EQU FRRSFLG1 05179000 FRRSRCUR EQU FRRSFLG1 05180000 FRRSFRRA EQU FRRSENTR 05181000 FRRSENTS EQU FRRS+84 05182000 FRRSRTMW EQU FRRS+16 05183000 FRRSCURR EQU FRRSHEAD+12 05184000 FRRSELEN EQU FRRSHEAD+8 05185000 FRRSLAST EQU FRRSHEAD+4 05186000 FRRSEMP EQU FRRSHEAD 05187000 ASVTEND EQU ASVT+528 05188000 ASVTAVAL EQU ASVTENTY 05189000 ASVTAVAI EQU ASVTFRST 05190000 ASVTRS00 EQU ASVT+520 05191000 ASVTMAXU EQU ASVT+516 05192000 ASVTASVT EQU ASVT+512 05193000 ASVTBEGN EQU ASVT+512 05194000 @NM00010 EQU ASVT 05195000 ASCBEND EQU ASCB+208 05196000 ASCBSRBT EQU ASCB+200 05197000 ASCBSWTL EQU ASCB+196 05198000 ASCBRS14 EQU ASCB+195 05199000 ASCBSMCT EQU ASCB+194 05200000 ASCBRS12 EQU ASCB+192 05201000 ASCBPCTT EQU ASCB+188 05202000 ASCBVGTT EQU ASCB+184 05203000 ASCBRV43 EQU ASCBSRQ4 05204000 ASCBRV42 EQU ASCBSRQ4 05205000 ASCBRV41 EQU ASCBSRQ4 05206000 ASCBRV40 EQU ASCBSRQ4 05207000 ASCBRV39 EQU ASCBSRQ4 05208000 ASCBRV38 EQU ASCBSRQ4 05209000 ASCBRV37 EQU ASCBSRQ4 05210000 ASCBRV36 EQU ASCBSRQ4 05211000 ASCBRV35 EQU ASCBSRQ3 05212000 ASCBRV34 EQU ASCBSRQ3 05213000 ASCBRV33 EQU ASCBSRQ3 05214000 ASCBRV32 EQU ASCBSRQ3 05215000 ASCBRV31 EQU ASCBSRQ3 05216000 ASCBRV30 EQU ASCBSRQ3 05217000 ASCBRV29 EQU ASCBSRQ3 05218000 ASCBRV28 EQU ASCBSRQ3 05219000 ASCBRV27 EQU ASCBSRQ2 05220000 ASCBRV26 EQU ASCBSRQ2 05221000 ASCBRV25 EQU ASCBSRQ2 05222000 ASCBRV24 EQU ASCBSRQ2 05223000 ASCBRV23 EQU ASCBSRQ2 05224000 ASCBRV22 EQU ASCBSRQ2 05225000 ASCBRV21 EQU ASCBSRQ2 05226000 ASCBRV20 EQU ASCBSRQ2 05227000 ASCBRV19 EQU ASCBSRQ1 05228000 ASCBRV18 EQU ASCBSRQ1 05229000 ASCBRV17 EQU ASCBSRQ1 05230000 ASCBRV16 EQU ASCBSRQ1 05231000 ASCBRV15 EQU ASCBSRQ1 05232000 ASCBRV14 EQU ASCBSRQ1 05233000 ASCBRV13 EQU ASCBSRQ1 05234000 ASCBSTA EQU ASCBSRQ1 05235000 ASCBJBNS EQU ASCB+176 05236000 ASCBJBNI EQU ASCB+172 05237000 ASCBMCC EQU ASCB+168 05238000 ASCBRTWA EQU ASCB+164 05239000 ASCBIQEA EQU ASCB+160 05240000 ASCBXMPQ EQU ASCB+156 05241000 ASCBRS01 EQU ASCB+154 05242000 ASCBFMCT EQU ASCB+152 05243000 ASCBOUXB EQU ASCB+148 05244000 ASCBMECB EQU ASCB+140 05245000 ASCBQECB EQU ASCB+136 05246000 ASCBLSQH EQU ASCBLKGP+4 05247000 ASCBLOCK EQU ASCBLKGP 05248000 ASCBTCBS EQU ASCB+124 05249000 ASCBNVSC EQU ASCB+122 05250000 ASCBVSC EQU ASCB+120 05251000 ASCBSRBS EQU ASCB+118 05252000 ASCBSSRB EQU ASCB+116 05253000 ASCBRV06 EQU ASCBFLG2 05254000 ASCBRV05 EQU ASCBFLG2 05255000 ASCBRV04 EQU ASCBFLG2 05256000 ASCBSNQS EQU ASCBFLG2 05257000 ASCBS2S EQU ASCBFLG2 05258000 ASCBCEXT EQU ASCBFLG2 05259000 ASCBPXMT EQU ASCBFLG2 05260000 ASCBXMPT EQU ASCBFLG2 05261000 ASCBRF07 EQU ASCBDSP1 05262000 ASCBRF06 EQU ASCBDSP1 05263000 ASCBRF05 EQU ASCBDSP1 05264000 ASCBRF04 EQU ASCBDSP1 05265000 ASCBRF03 EQU ASCBDSP1 05266000 ASCBRF02 EQU ASCBDSP1 05267000 ASCBFAIL EQU ASCBDSP1 05268000 ASCBNOQ EQU ASCBDSP1 05269000 ASCBSWCT EQU ASCB+112 05270000 ASCBTMCH EQU ASCB+104 05271000 ASCBNSWP EQU ASCBFLG1 05272000 ASCBTYP1 EQU ASCBFLG1 05273000 ASCBSTND EQU ASCBFLG1 05274000 ASCBABNT EQU ASCBFLG1 05275000 ASCBTERM EQU ASCBFLG1 05276000 ASCBS3S EQU ASCBFLG1 05277000 ASCBCMSH EQU ASCBFLG1 05278000 ASCBTOFF EQU ASCBFLG1 05279000 ASCBRF01 EQU ASCBRCTF 05280000 ASCBTMLW EQU ASCBRCTF 05281000 ASCBOUT EQU ASCBRCTF 05282000 ASCBWAIT EQU ASCBRCTF 05283000 ASCBRV08 EQU ASCBRCTF 05284000 ASCBFQU EQU ASCBRCTF 05285000 ASCBFRS EQU ASCBRCTF 05286000 ASCBTMNO EQU ASCBRCTF 05287000 ASCBAFFN EQU ASCBFW1 05288000 ASCBDUMP EQU ASCB+96 05289000 ASCBRV44 EQU ASCB+92 05290000 ASCBUBET EQU ASCB+88 05291000 ASCBECB EQU ASCB+84 05292000 ASCBJSTL EQU ASCB+80 05293000 ASCBEWST EQU ASCB+72 05294000 ASCBEJST EQU ASCB+64 05295000 ASCBTSB EQU ASCB+60 05296000 ASCBCSCB EQU ASCB+56 05297000 ASCBRSMA EQU ASCBRSM+1 05298000 ASCBRV54 EQU ASCBRSMF 05299000 ASCBRV53 EQU ASCBRSMF 05300000 ASCBRV52 EQU ASCBRSMF 05301000 ASCBRV51 EQU ASCBRSMF 05302000 ASCBN2LP EQU ASCBRSMF 05303000 ASCB1LPU EQU ASCBRSMF 05304000 ASCB2LPU EQU ASCBRSMF 05305000 ASCBLDA EQU ASCB+48 05306000 ASCBSTOR EQU ASCB+44 05307000 ASCBDP EQU ASCB+43 05308000 ASCBRV07 EQU ASCB+42 05309000 ASCBIOSM EQU ASCB+40 05310000 ASCBSEQN EQU ASCB+38 05311000 ASCBCPUS EQU ASCB+32 05312000 ASCBSPL EQU ASCB+28 05313000 ASCBIOSP EQU ASCB+24 05314000 ASCBSYNC EQU ASCBSUPC+4 05315000 ASCBSVRB EQU ASCBSUPC 05316000 ASCBCMSF EQU ASCB+12 05317000 ASCBBWDP EQU ASCB+8 05318000 ASCBFWDP EQU ASCB+4 05319000 ASCBASCB EQU ASCB 05320000 ASCBEGIN EQU ASCB 05321000 SPCTXEND EQU SPCTENT+48 05322000 SPCTENTS EQU SPCTENT 05323000 @NM00009 EQU SPCTEXTM+4 05324000 SPCTEXT EQU SPCTEXTM 05325000 SPCTFIXC EQU SPCTSWPE+6 05326000 SPCTVBN EQU SPCTLS+4 05327000 SPCTSSID EQU SPCTLS+1 05328000 @NM00008 EQU SPCTFLAG 05329000 SPCTDEFR EQU SPCTFLAG 05330000 SPCTCOMM EQU SPCTFLAG 05331000 SPCTLSQ EQU SPCTFLAG 05332000 SPCTLVAL EQU SPCTFLAG 05333000 SPCTBITM EQU SPCTSEGE+4 05334000 SPCTPGT EQU SPCTSEGE+1 05335000 SPCTSEGX EQU SPCTSEGE 05336000 SPCTSEGS EQU SPCT+72 05337000 SPCTSWAP EQU SPCT+16 05338000 SPCTSIZE EQU SPCT+14 05339000 SPCTWSSZ EQU SPCT+12 05340000 SPCTIDEN EQU SPCT+11 05341000 @NM00007 EQU SPCTFLG1 05342000 SPCTPSET EQU SPCTFLG1 05343000 SPCTBIG EQU SPCTFLG1 05344000 SPCTPURG EQU SPCTFLG1 05345000 SPCTOUT EQU SPCTFLG1 05346000 SPCTSWIN EQU SPCTFLG1 05347000 SPCTSSEG EQU SPCT+9 05348000 SPCTNSEG EQU SPCT+8 05349000 SPCTLSQA EQU SPCT+6 05350000 SPCTFIX EQU SPCT+4 05351000 SPCTSWRT EQU SPCT 05352000 ASXBEND EQU ASXB+232 05353000 ASXBRV25 EQU ASXB+228 05354000 ASXBRV24 EQU ASXB+224 05355000 ASXBPT0E EQU ASXB+220 05356000 ASXBCRB4 EQU ASXBCASW+3 05357000 ASXBCRB3 EQU ASXBCASW+2 05358000 ASXBCRB2 EQU ASXBCASW+1 05359000 ASXBCR06 EQU ASXBCRB1 05360000 ASXBCR05 EQU ASXBCRB1 05361000 ASXBCR04 EQU ASXBCRB1 05362000 ASXBCR03 EQU ASXBCRB1 05363000 ASXBCR02 EQU ASXBCRB1 05364000 ASXBCR01 EQU ASXBCRB1 05365000 ASXBTFD EQU ASXBCRB1 05366000 ASXBPIP EQU ASXBCRB1 05367000 ASXBCTDC EQU ASXB+212 05368000 ASXBTDCB EQU ASXB+208 05369000 ASXBRV19 EQU ASXB+204 05370000 ASXBSENV EQU ASXBSECR+1 05371000 ASXBRV34 EQU ASCBSFLG 05372000 ASXBRV33 EQU ASCBSFLG 05373000 ASXBRV32 EQU ASCBSFLG 05374000 ASXBRV31 EQU ASCBSFLG 05375000 ASXBRV30 EQU ASCBSFLG 05376000 ASXBRV29 EQU ASCBSFLG 05377000 ASXBRV28 EQU ASCBSFLG 05378000 ASXBRV27 EQU ASCBSFLG 05379000 ASXBUSER EQU ASXB+192 05380000 ASXBLSRB EQU ASXBAEQ+20 05381000 ASXBFSRB EQU ASXBAEQ+16 05382000 ASXBLRQE EQU ASXBAEQ+12 05383000 ASXBFRQE EQU ASXBAEQ+8 05384000 ASXBLIQE EQU ASXBAEQ+4 05385000 ASXBFIQE EQU ASXBAEQ 05386000 ASXBETSK EQU ASXB+164 05387000 ASXBSIRB EQU ASXB+160 05388000 ASXBPSWD EQU ASXB+152 05389000 ASXBPRG EQU ASXB+136 05390000 ASXBRV26 EQU ASXB+132 05391000 ASXBOUSB EQU ASXB+128 05392000 ASXBDDR EQU ASXB+124 05393000 ASXBRCTD EQU ASXB+120 05394000 ASXBRSMD EQU ASXB+116 05395000 ASXBFRWA EQU ASXB+108 05396000 ASXBFLSA EQU ASXB+36 05397000 ASXBIHSA EQU ASXB+32 05398000 ASXBRV15 EQU ASXB+28 05399000 ASXBRV14 EQU ASXB+24 05400000 ASXBLWA EQU ASXB+20 05401000 ASXBMPST EQU ASXB+16 05402000 ASXBRS00 EQU ASXB+14 05403000 ASXBTCBS EQU ASXB+12 05404000 ASXBLTCB EQU ASXB+8 05405000 ASXBFTCB EQU ASXB+4 05406000 ASXBASXB EQU ASXB 05407000 ASXBEGIN EQU ASXB 05408000 WSACASMS EQU WSAC+60 05409000 WSACASMD EQU WSAC+56 05410000 WSACCCH EQU WSAC+52 05411000 WSACRRSA EQU WSAC+48 05412000 WSACREST EQU WSAC+44 05413000 WSACRSTI EQU WSAC+40 05414000 WSACABTM EQU WSAC+36 05415000 WSACMF1 EQU WSAC+32 05416000 WSACEDS0 EQU WSAC+28 05417000 WSACIOS EQU WSAC+24 05418000 WSACRTMK EQU WSAC+20 05419000 WSACACR EQU WSAC+16 05420000 WSACTIME EQU WSAC+12 05421000 WSACOPTM EQU WSAC+8 05422000 WSACGTF EQU WSAC+4 05423000 WSACCWSA EQU WSAC 05424000 WSAGSCHE EQU WSAG+40 05425000 WSAGREST EQU WSAG+36 05426000 WSAGNQDQ EQU WSAG+32 05427000 WSAGMEMT EQU WSAG+28 05428000 WSAGOPTM EQU WSAG+24 05429000 WSAGSTAT EQU WSAG+20 05430000 WSAGEMS0 EQU WSAG+16 05431000 WSAGSSRS EQU WSAG+12 05432000 WSAGRSM EQU WSAG+8 05433000 WSAGGMFM EQU WSAG+4 05434000 WSAGPGIO EQU WSAG 05435000 WSALACHP EQU WSAL+56 05436000 WSALEVNT EQU WSAL+48 05437000 WSALSTAE EQU WSAL+44 05438000 WSALSTAT EQU WSAL+40 05439000 WSALWAIT EQU WSAL+36 05440000 WSALPOST EQU WSAL+32 05441000 WSALEXIT EQU WSAL+28 05442000 WSALS2EE EQU WSAL+24 05443000 WSALCIRB EQU WSAL+20 05444000 WSALABTM EQU WSAL+16 05445000 WSALSDMP EQU WSAL+12 05446000 WSALRTM2 EQU WSAL+8 05447000 WSALVALC EQU WSAL+4 05448000 WSALCWSA EQU WSAL 05449000 LCCAR125 EQU LCCA+964 05450000 LCCAR124 EQU LCCA+960 05451000 LCCASGPR EQU LCCA+896 05452000 LCCADRT2 EQU LCCA+888 05453000 LCCADRT1 EQU LCCA+880 05454000 LCCAR103 EQU LCCA+876 05455000 LCCAESS2 EQU LCCA+872 05456000 LCCASPLJ EQU LCCA+868 05457000 LCCASMQJ EQU LCCA+864 05458000 LCCAIRT EQU LCCA+736 05459000 LCCAASID EQU LCCA+732 05460000 LCCARV89 EQU LCCA+728 05461000 LCCAPGTA EQU LCCASRBF+2 05462000 LCCASAFN EQU LCCASRBF 05463000 LCCAECSA EQU LCCA+716 05464000 LCCAICR0 EQU LCCA+712 05465000 LCCALWTM EQU LCCA+704 05466000 LCCARV78 EQU LCCA+700 05467000 LCCAPINV EQU LCCA+696 05468000 LCCARV88 EQU LCCA+695 05469000 LCCARV87 EQU LCCALKFG 05470000 LCCARV86 EQU LCCALKFG 05471000 LCCARV85 EQU LCCALKFG 05472000 LCCARV84 EQU LCCALKFG 05473000 LCCALKRD EQU LCCALKFG 05474000 LCCALKAQ EQU LCCALKFG 05475000 LCCALKSA EQU LCCALKFG 05476000 LCCALKDP EQU LCCALKFG 05477000 LCCACRST EQU LCCACREX 05478000 LCCACRDP EQU LCCACREX 05479000 LCCACRLM EQU LCCACREX 05480000 LCCACRIN EQU LCCACREX 05481000 LCCACRRT EQU LCCACREX 05482000 LCCACRLE EQU LCCACREX 05483000 LCCACRRM EQU LCCACREX 05484000 LCCACREF EQU LCCACREX 05485000 LCCAVARY EQU LCCACRFL 05486000 LCCARV73 EQU LCCACRFL 05487000 LCCARV72 EQU LCCACRFL 05488000 LCCARV71 EQU LCCACRFL 05489000 LCCARV70 EQU LCCACRFL 05490000 LCCARV69 EQU LCCACRFL 05491000 LCCACLMS EQU LCCACRFL 05492000 LCCACRTM EQU LCCACRFL 05493000 LCCALCR0 EQU LCCA+688 05494000 LCCACRLC EQU LCCA+684 05495000 LCCARCPU EQU LCCA+680 05496000 LCCADCPU EQU LCCA+676 05497000 LCCASRBJ EQU LCCA+672 05498000 LCCADSSR EQU LCCA+668 05499000 LCCADSSC EQU LCCA+660 05500000 LCCADSS3 EQU LCCA+648 05501000 LCCADSS2 EQU LCCA+636 05502000 LCCADSS1 EQU LCCA+624 05503000 LCCAWTIM EQU LCCA+616 05504000 LCCAITOD EQU LCCA+608 05505000 LCCADTOD EQU LCCA+600 05506000 LCCASTOD EQU LCCA+592 05507000 LCCARIR5 EQU LCCASPSA+44 05508000 LCCARIR4 EQU LCCASPSA+40 05509000 LCCARIR3 EQU LCCASPSA+36 05510000 LCCARIR2 EQU LCCASPSA+32 05511000 LCCARPR5 EQU LCCASPSA+28 05512000 LCCARPR4 EQU LCCASPSA+24 05513000 LCCARPR3 EQU LCCASPSA+20 05514000 LCCARPR2 EQU LCCASPSA+16 05515000 LCCADSR5 EQU LCCASPSA+12 05516000 LCCADSR4 EQU LCCASPSA+8 05517000 LCCADSR3 EQU LCCASPSA+4 05518000 LCCADSR2 EQU LCCASPSA 05519000 LCCARV68 EQU LCCA+543 05520000 LCCAPSMK EQU LCCA+542 05521000 LCCARV67 EQU LCCADSF2 05522000 LCCARV66 EQU LCCADSF2 05523000 LCCARV65 EQU LCCADSF2 05524000 LCCARV64 EQU LCCADSF2 05525000 LCCADSRW EQU LCCADSF2 05526000 LCCADSPL EQU LCCADSF2 05527000 LCCAGSRB EQU LCCADSF2 05528000 LCCASRBM EQU LCCADSF2 05529000 LCCARV61 EQU LCCADSF1 05530000 LCCARV60 EQU LCCADSF1 05531000 LCCARV59 EQU LCCADSF1 05532000 LCCARV58 EQU LCCADSF1 05533000 LCCATIMR EQU LCCADSF1 05534000 LCCADSS EQU LCCADSF1 05535000 LCCAVCPU EQU LCCADSF1 05536000 LCCAACR EQU LCCADSF1 05537000 LCCAASCP EQU LCCA+532 05538000 LCCAESSA EQU LCCA+528 05539000 LCCARV55 EQU LCCASPN4 05540000 LCCARV54 EQU LCCASPN4 05541000 LCCARV53 EQU LCCASPN4 05542000 LCCARV52 EQU LCCASPN4 05543000 LCCARV51 EQU LCCASPN4 05544000 LCCARV50 EQU LCCASPN4 05545000 LCCARV49 EQU LCCASPN4 05546000 LCCARV48 EQU LCCASPN4 05547000 LCCARV47 EQU LCCASPN3 05548000 LCCARV46 EQU LCCASPN3 05549000 LCCARV45 EQU LCCASPN3 05550000 LCCARV44 EQU LCCASPN3 05551000 LCCARV43 EQU LCCASPN3 05552000 LCCARV42 EQU LCCASPN3 05553000 LCCARV41 EQU LCCASPN3 05554000 LCCARV40 EQU LCCASPN3 05555000 LCCARV39 EQU LCCASPN2 05556000 LCCARV38 EQU LCCASPN2 05557000 LCCARV37 EQU LCCASPN2 05558000 LCCARV36 EQU LCCASPN2 05559000 LCCARV35 EQU LCCASPN2 05560000 LCCARV34 EQU LCCASPN2 05561000 LCCARV33 EQU LCCASPN2 05562000 LCCARV32 EQU LCCASPN2 05563000 LCCARV31 EQU LCCASPN1 05564000 LCCARV30 EQU LCCASPN1 05565000 LCCAMFIO EQU LCCASPN1 05566000 LCCARSTR EQU LCCASPN1 05567000 LCCATSPN EQU LCCASPN1 05568000 LCCALOCK EQU LCCASPN1 05569000 LCCASIGP EQU LCCASPN1 05570000 LCCAPTLB EQU LCCASPN1 05571000 LCCARV27 EQU LCCAIHR4 05572000 LCCARV26 EQU LCCAIHR4 05573000 LCCARV25 EQU LCCAIHR4 05574000 LCCARV24 EQU LCCAIHR4 05575000 LCCARV23 EQU LCCAIHR4 05576000 LCCARV22 EQU LCCAIHR4 05577000 LCCARV21 EQU LCCAIHR4 05578000 LCCARV20 EQU LCCAIHR4 05579000 LCCARV19 EQU LCCAIHR3 05580000 LCCARV18 EQU LCCAIHR3 05581000 LCCARV17 EQU LCCAIHR3 05582000 LCCARV16 EQU LCCAIHR3 05583000 LCCARV15 EQU LCCAIHR3 05584000 LCCARV14 EQU LCCAIHR3 05585000 LCCARV13 EQU LCCAIHR3 05586000 LCCARV12 EQU LCCAIHR3 05587000 LCCARV11 EQU LCCAIHR2 05588000 LCCARV10 EQU LCCAIHR2 05589000 LCCARV09 EQU LCCAIHR2 05590000 LCCARV08 EQU LCCAIHR2 05591000 LCCARV07 EQU LCCAIHR2 05592000 LCCARV06 EQU LCCAIHR2 05593000 LCCARV05 EQU LCCAIHR2 05594000 LCCARV04 EQU LCCAIHR2 05595000 LCCARV03 EQU LCCAIHR1 05596000 LCCARV02 EQU LCCAIHR1 05597000 LCCARV01 EQU LCCAIHR1 05598000 LCCAPPIE EQU LCCAIHR1 05599000 LCCAPSG1 EQU LCCAIHR1 05600000 LCCAPDAT EQU LCCAIHR1 05601000 LCCAXRC2 EQU LCCAIHR1 05602000 LCCAXRC1 EQU LCCAIHR1 05603000 LCCAIOPS EQU LCCA+512 05604000 LCCAGPGR EQU LCCA+448 05605000 LCCAR133 EQU LCCA+444 05606000 LCCAR132 EQU LCCA+440 05607000 LCCAR131 EQU LCCA+436 05608000 LCCAR130 EQU LCCA+432 05609000 LCCAR129 EQU LCCA+428 05610000 LCCAR128 EQU LCCA+424 05611000 LCCAR127 EQU LCCA+420 05612000 LCCAR126 EQU LCCA+416 05613000 LCCARSGR EQU LCCA+352 05614000 LCCAXGR3 EQU LCCA+288 05615000 LCCAXGR2 EQU LCCA+224 05616000 LCCAXGR1 EQU LCCA+160 05617000 LCCACR0 EQU LCCA+156 05618000 LCCAMCR1 EQU LCCA+152 05619000 LCCAPVAD EQU LCCA+148 05620000 LCCAPINT EQU LCCA+144 05621000 LCCAPPSW EQU LCCA+136 05622000 LCCAPGR2 EQU LCCA+72 05623000 LCCAPGR1 EQU LCCA+8 05624000 LCCARV77 EQU LCCA+6 05625000 LCCACPUA EQU LCCA+4 05626000 LCCALCCA EQU LCCA 05627000 OUCBEND EQU OUCB+136 05628000 OUCBNTSP EQU OUCB+134 05629000 OUCBNDS EQU OUCB+132 05630000 OUCBTIO EQU OUCB+128 05631000 OUCBTCP EQU OUCB+124 05632000 OUCBPST EQU OUCB+120 05633000 OUCBPS2 EQU OUCBPSS+4 05634000 OUCBPS1 EQU OUCBPSS 05635000 OUCBIOSM EQU OUCB+108 05636000 OUCBTMP EQU OUCB+104 05637000 OUCBR03 EQU OUCB+102 05638000 OUCBIOR EQU OUCB+100 05639000 OUCBCRV EQU OUCB+98 05640000 OUCBIRV EQU OUCB+96 05641000 OUCBWMR EQU OUCB+92 05642000 OUCBCMRV EQU OUCB+88 05643000 OUCBCF2 EQU OUCBCFL 05644000 OUCBRSM EQU OUCBCFL 05645000 OUCBRDY EQU OUCBCFL 05646000 OUCBACN EQU OUCBCSW 05647000 OUCBACT EQU OUCB+80 05648000 OUCBWSS EQU OUCB+78 05649000 OUCBPSO EQU OUCB+76 05650000 OUCBTMO EQU OUCB+72 05651000 OUCBTMS EQU OUCB+68 05652000 OUCBMSO EQU OUCB+64 05653000 OUCBIOC EQU OUCB+60 05654000 OUCBCPU EQU OUCB+56 05655000 OUCBWMS EQU OUCB+52 05656000 OUCBTMW EQU OUCB+48 05657000 OUCBIMCB EQU OUCB+44 05658000 OUCBASCB EQU OUCB+40 05659000 OUCBSWC EQU OUCB+38 05660000 OUCBSRC EQU OUCB+37 05661000 OUCBDMN EQU OUCB+36 05662000 OUCBDMO EQU OUCB+34 05663000 OUCBWMG EQU OUCB+32 05664000 OUCBPGP EQU OUCB+31 05665000 OUCBR40 EQU OUCB+30 05666000 OUCBR30 EQU OUCB+29 05667000 OUCBSPG EQU OUCB+28 05668000 OUCBRDP EQU OUCB+27 05669000 OUCBNDP EQU OUCB+26 05670000 OUCBRPG EQU OUCB+25 05671000 OUCBNPG EQU OUCB+24 05672000 OUCBUF7 EQU OUCBUFL 05673000 OUCBUF6 EQU OUCBUFL 05674000 OUCBUF5 EQU OUCBUFL 05675000 OUCBTSWC EQU OUCBUFL 05676000 OUCBTSWP EQU OUCBUFL 05677000 OUCBRSWP EQU OUCBUFL 05678000 OUCBJSAS EQU OUCBUFL 05679000 OUCBJSFS EQU OUCBUFL 05680000 OUCBNQC EQU OUCB+22 05681000 OUCBMWT EQU OUCBEFL 05682000 OUCBQSC EQU OUCBEFL 05683000 OUCBQSS EQU OUCBEFL 05684000 OUCBNQF EQU OUCBEFL 05685000 OUCBCIM EQU OUCBEFL 05686000 OUCBOWT EQU OUCBEFL 05687000 OUCBTRM EQU OUCBEFL 05688000 OUCBLWT EQU OUCBEFL 05689000 OUCBINC EQU OUCBTFL 05690000 OUCBINP EQU OUCBTFL 05691000 OUCBMAR EQU OUCBTFL 05692000 OUCBPCH EQU OUCBTFL 05693000 OUCBRTR EQU OUCBTFL 05694000 OUCBNTR EQU OUCBTFL 05695000 OUCBSTR EQU OUCBTFL 05696000 OUCBATR EQU OUCBTFL 05697000 OUCBASW EQU OUCBAFL 05698000 OUCBNWT EQU OUCBAFL 05699000 OUCBR02 EQU OUCBAFL 05700000 OUCBJSR EQU OUCBAFL 05701000 OUCBCPL EQU OUCBAFL 05702000 OUCBRMA EQU OUCBAFL 05703000 OUCBAPG EQU OUCBAFL 05704000 OUCBAF0 EQU OUCBAFL 05705000 OUCBFXS EQU OUCBYFL 05706000 OUCBDTA EQU OUCBYFL 05707000 OUCBAXS EQU OUCBYFL 05708000 OUCBPSTR EQU OUCBYFL 05709000 OUCBMNT EQU OUCBYFL 05710000 OUCBLOG EQU OUCBYFL 05711000 OUCBSTT EQU OUCBYFL 05712000 OUCBPSTE EQU OUCBYFL 05713000 OUCBSCN EQU OUCBSFL 05714000 OUCBENQ EQU OUCBSFL 05715000 OUCBPVL EQU OUCBSFL 05716000 OUCBNSWI EQU OUCBSFL 05717000 OUCBINV EQU OUCBSFL 05718000 OUCBBIB EQU OUCBSFL 05719000 OUCBCTI EQU OUCBSFL 05720000 OUCBNSW EQU OUCBSFL 05721000 OUCBQF7 EQU OUCBQFL 05722000 OUCBQF6 EQU OUCBQFL 05723000 OUCBOUT EQU OUCBQFL 05724000 OUCBOFF EQU OUCBQFL 05725000 OUCBQSFL EQU OUCBQFL 05726000 OUCBGOB EQU OUCBQFL 05727000 OUCBGOI EQU OUCBQFL 05728000 OUCBGOO EQU OUCBQFL 05729000 OUCBTMA EQU OUCB+12 05730000 OUCBBCK EQU OUCB+8 05731000 OUCBFWD EQU OUCB+4 05732000 OUCBNAME EQU OUCB 05733000 @NM00006 EQU CALLREGS+20 05734000 S14 EQU CALLREGS+12 05735000 @NM00005 EQU @NM00004 05736000 MOVERBN EQU TQIDRBN+2 05737000 IDOFTQ EQU TQIDRBN+1 05738000 @NM00003 EQU TQIDRBN 05739000 @NM00002 EQU INPUT+4 05740000 @NM00046 EQU PSA+3668 05741000 PSASTAK EQU PSA+3072 05742000 @NM00045 EQU PSA+1048 05743000 PSAUSEND EQU PSA+1048 05744000 PSARV062 EQU PSA+1044 05745000 PSACDAL EQU PSA+1040 05746000 PSAWTCOD EQU PSA+1036 05747000 PSAATCVT EQU PSA+1032 05748000 PSAPCPSW EQU PSA+1024 05749000 PSAPIR2 EQU PSA+1020 05750000 PSARV059 EQU PSA+1018 05751000 PSASVC13 EQU PSA+1016 05752000 PSALSFCC EQU PSA+1012 05753000 PSASFACC EQU PSA+1008 05754000 PSASTOP EQU PSA+992 05755000 PSASTART EQU PSA+976 05756000 PSARSPSW EQU PSA+968 05757000 PSASRPSW EQU PSA+960 05758000 PSARV045 EQU PSA+892 05759000 PSARV044 EQU PSA+888 05760000 PSARV043 EQU PSA+884 05761000 PSARV042 EQU PSA+880 05762000 PSARV041 EQU PSA+876 05763000 PSARV040 EQU PSA+872 05764000 PSARV025 EQU PSA+868 05765000 PSADSSED EQU PSA+868 05766000 PSADSSPR EQU PSA+864 05767000 PSADSSFW EQU PSA+860 05768000 PSADSS14 EQU PSA+856 05769000 PSADSSPP EQU PSA+848 05770000 PSADSSRP EQU PSA+840 05771000 PSADSS05 EQU PSADSSF4 05772000 PSADSS10 EQU PSADSSF4 05773000 PSADSSVE EQU PSADSSF4 05774000 PSADSSDE EQU PSADSSF4 05775000 PSADSSC0 EQU PSADSSF4 05776000 PSADSSIE EQU PSADSSF4 05777000 PSADSS12 EQU PSADSSF4 05778000 PSADSSRC EQU PSADSSF4 05779000 PSARV057 EQU PSADSSF3 05780000 PSARV056 EQU PSADSSF3 05781000 PSARV055 EQU PSADSSF3 05782000 PSADSSMC EQU PSADSSF3 05783000 PSADSSRW EQU PSADSSF3 05784000 PSADSSNM EQU PSADSSF3 05785000 PSADSSES EQU PSADSSF3 05786000 PSADSSGP EQU PSADSSF3 05787000 PSADSSF2 EQU PSADSSFL+1 05788000 PSADSSPI EQU PSADSSF1 05789000 PSADSSOI EQU PSADSSF1 05790000 PSADSSSP EQU PSADSSF1 05791000 PSADSSTP EQU PSADSSF1 05792000 PSADSSDW EQU PSADSSF1 05793000 PSADSSDD EQU PSADSSF1 05794000 PSADSSDM EQU PSADSSF1 05795000 PSADSSMV EQU PSADSSF1 05796000 PSADSSTS EQU PSA+816 05797000 PSADSSWK EQU PSA+812 05798000 PSADSSR3 EQU PSA+808 05799000 PSADSSR2 EQU PSA+804 05800000 PSADSSRS EQU PSA+800 05801000 PSASTOR EQU PSA+796 05802000 PSACPUSA EQU PSA+794 05803000 PSAVSTAP EQU PSA+792 05804000 PSAWKVAP EQU PSA+788 05805000 PSAWKRAP EQU PSA+784 05806000 PSAMCHIC EQU PSA+783 05807000 PSARV061 EQU PSA+782 05808000 PSASYMSK EQU PSA+781 05809000 PSAMCHFL EQU PSA+780 05810000 PSACR0 EQU PSA+776 05811000 PSAPSWSV EQU PSA+768 05812000 PSALITA EQU PSA+764 05813000 PSACLHS EQU PSAHLHI 05814000 PSALKR15 EQU PSALKSA+60 05815000 PSALKR14 EQU PSALKSA+56 05816000 PSALKR13 EQU PSALKSA+52 05817000 PSALKR12 EQU PSALKSA+48 05818000 PSALKR11 EQU PSALKSA+44 05819000 PSALKR10 EQU PSALKSA+40 05820000 PSALKR9 EQU PSALKSA+36 05821000 PSALKR8 EQU PSALKSA+32 05822000 PSALKR7 EQU PSALKSA+28 05823000 PSALKR6 EQU PSALKSA+24 05824000 PSALKR5 EQU PSALKSA+20 05825000 PSALKR4 EQU PSALKSA+16 05826000 PSALKR3 EQU PSALKSA+12 05827000 PSALKR2 EQU PSALKSA+8 05828000 PSALKR1 EQU PSALKSA+4 05829000 PSALKR0 EQU PSALKSA 05830000 PSARV023 EQU PSACLHT+52 05831000 PSALOCAL EQU PSACLHT+48 05832000 PSACMSL EQU PSACLHT+44 05833000 PSAOPTL EQU PSACLHT+40 05834000 PSATPACL EQU PSACLHT+36 05835000 PSATPDNL EQU PSACLHT+32 05836000 PSATPNCL EQU PSACLHT+28 05837000 PSAIOSLL EQU PSACLHT+24 05838000 PSAIOSUL EQU PSACLHT+20 05839000 PSAIOSCL EQU PSACLHT+16 05840000 PSAIOSSL EQU PSACLHT+12 05841000 PSASALCL EQU PSACLHT+8 05842000 PSAASML EQU PSACLHT+4 05843000 PSADISPL EQU PSACLHT 05844000 PSASRSA EQU PSA+636 05845000 PSARV050 EQU PSA+634 05846000 PSADSSGO EQU PSA+633 05847000 PSARECUR EQU PSA+632 05848000 PSAHLHIS EQU PSA+628 05849000 PSAIPCSA EQU PSA+624 05850000 @NM00044 EQU PSA+621 05851000 PSAIPCDM EQU PSA+620 05852000 PSAIPCD EQU PSA+616 05853000 @NM00043 EQU PSA+613 05854000 PSAIPCRM EQU PSA+612 05855000 PSAIPCR EQU PSA+608 05856000 PSAMCHEX EQU PSA+600 05857000 PSAMPSW EQU PSA+592 05858000 PSAEXPS2 EQU PSA+584 05859000 PSAEXPS1 EQU PSA+576 05860000 PSAPIREG EQU PSA+572 05861000 PSARSREG EQU PSA+568 05862000 PSAGPREG EQU PSA+556 05863000 PSARV022 EQU PSASUP4 05864000 PSARV021 EQU PSASUP4 05865000 PSARV020 EQU PSASUP4 05866000 PSARV019 EQU PSASUP4 05867000 PSARV018 EQU PSASUP4 05868000 PSARV017 EQU PSASUP4 05869000 PSARV016 EQU PSASUP4 05870000 PSARV015 EQU PSASUP4 05871000 PSARV014 EQU PSASUP3 05872000 PSAULCMS EQU PSASUP3 05873000 PSARV012 EQU PSASUP3 05874000 PSAESTA EQU PSASUP3 05875000 PSASPR EQU PSASUP3 05876000 PSAPSREG EQU PSASUP3 05877000 PSAPI2 EQU PSASUP3 05878000 PSAIOSUP EQU PSASUP3 05879000 PSALCR EQU PSASUP2 05880000 PSARTM EQU PSASUP2 05881000 PSAACR EQU PSASUP2 05882000 PSAIPCE2 EQU PSASUP2 05883000 PSAIPCES EQU PSASUP2 05884000 PSAIPCEC EQU PSASUP2 05885000 PSAGTF EQU PSASUP2 05886000 PSAIPCRI EQU PSASUP2 05887000 PSATYPE6 EQU PSASUP1 05888000 PSATCTL EQU PSASUP1 05889000 PSADISP EQU PSASUP1 05890000 PSALOCK EQU PSASUP1 05891000 PSAPI EQU PSASUP1 05892000 PSAEXT EQU PSASUP1 05893000 PSASVC EQU PSASUP1 05894000 PSAIO EQU PSASUP1 05895000 PSAANEW EQU PSA+544 05896000 PSATNEW EQU PSA+536 05897000 PSALCCAR EQU PSA+532 05898000 PSALCCAV EQU PSA+528 05899000 PSAPCCAR EQU PSA+524 05900000 PSAPCCAV EQU PSA+520 05901000 PSACPULA EQU PSA+518 05902000 PSACPUPA EQU PSA+516 05903000 PSAPSA EQU PSA+512 05904000 FLCHDEND EQU PSA+512 05905000 FLCCRSAV EQU FLCMCLA+280 05906000 FLCGRSAV EQU FLCMCLA+216 05907000 FLCFPSAV EQU FLCMCLA+184 05908000 FLCFLA EQU FLCMCLA+88 05909000 FLCRGNCD EQU FLCMCLA+84 05910000 FLCFSAA EQU FLCFSA+1 05911000 @NM00042 EQU FLCFSA 05912000 @NM00041 EQU FLCMCLA+72 05913000 FLCMCIC EQU FLCMCLA+64 05914000 @NM00040 EQU FLCMCLA+20 05915000 FLCIOAA EQU FLCIOA+1 05916000 @NM00039 EQU FLCIOA 05917000 @NM00038 EQU FLCMCLA+15 05918000 @NM00037 EQU FLCMCLA+14 05919000 @NM00036 EQU FLCMCLA+12 05920000 FLCLCL EQU FLCMCLA+8 05921000 FLCIOELA EQU FLCIOEL+1 05922000 @NM00035 EQU FLCIOEL 05923000 FLCCHNID EQU FLCMCLA 05924000 @NM00034 EQU PSA+160 05925000 FLCMTRCD EQU PSA+157 05926000 @NM00033 EQU PSA+156 05927000 FLCPERA EQU FLCPER+1 05928000 @NM00032 EQU FLCPER 05929000 @NM00031 EQU PSA+151 05930000 FLCPERCD EQU PSA+150 05931000 FLCMCNUM EQU PSA+149 05932000 @NM00030 EQU PSA+148 05933000 FLCTEAA EQU FLCTEA+1 05934000 @NM00029 EQU FLCTEA 05935000 PSAPIPC EQU PSAPICOD 05936000 PSAPIMC EQU PSAPICOD 05937000 PSAPIPER EQU PSAPICOD 05938000 PSARV049 EQU FLCPICOD 05939000 FLCPILCB EQU FLCPIILC 05940000 @NM00028 EQU FLCPIILC 05941000 @NM00027 EQU PSAEPPSW 05942000 FLCSVCN EQU PSAESPSW+2 05943000 FLCSILCB EQU FLCSVILC 05944000 @NM00026 EQU FLCSVILC 05945000 @NM00025 EQU PSAESPSW 05946000 FLCEICOD EQU PSAEEPSW+2 05947000 PSASPAD EQU PSAEEPSW 05948000 @NM00024 EQU PSA+128 05949000 FLCINPSW EQU PSA+120 05950000 FLCMNPSW EQU PSA+112 05951000 FLCPNPSW EQU PSA+104 05952000 FLCSNPSW EQU PSA+96 05953000 FLCENPSW EQU PSA+88 05954000 FLCTRACE EQU PSA+84 05955000 FLCTIMER EQU PSA+80 05956000 FLCCVT2 EQU PSA+76 05957000 FLCCAW EQU PSA+72 05958000 FLCCSW EQU PSA+64 05959000 FLCIOPSW EQU PSA+56 05960000 FLCMOPSW EQU PSA+48 05961000 FLCPOPSW EQU PSA+40 05962000 FLCSOPSW EQU PSA+32 05963000 FLCEOPSW EQU PSA+24 05964000 @NM00023 EQU FLCICCW2+4 05965000 FLCICCW1 EQU FLCROPSW 05966000 FLCIPPSW EQU FLCRNPSW 05967000 * END UNREFERENCED COMPONENTS 05968000 @RF00121 EQU GETCMSRB 05969000 @RT00154 EQU GETPOSRB 05970000 @RF00154 EQU DETBNDS 05971000 @RF00158 EQU DETBNDS 05972000 @RT00228 EQU LOCALQ 05973000 @RC00276 EQU EXITCLR 05974000 @RT00546 EQU ENDVAL 05975000 @RT00627 EQU EXITI 05976000 @RT00785 EQU FREERGN 05977000 @RT00794 EQU FREEPCB 05978000 @RT00856 EQU UPPFTE 05979000 @RT00889 EQU UPPFTE 05980000 @RT00903 EQU LASTPFTE 05981000 @RT00905 EQU LASTPFTE 05982000 @RT00909 EQU LASTPFTE 05983000 @ENDDATA EQU * 05984000 END IEAVEQR,(C'PLS1217',0701,78164) 05985000