TITLE 'IEAVGFA - GENERAL FRAME ALLOCATION *00001000 ' 00002000 * /* @Z40WPYC*/ 00003000 IEAVGFA CSECT 00004000 MODID BR=NO 00005000 ENTRY IEAVGFA2 @Z40WPYC 00006000 IEAVGFA2 DS 0H @Z40WPYC 00007000 STM R4,R14,PVTWSA8(PVTPTR) SAVE THE NECESSARY REGISTERS 00008000 BALR R9,0 ESTABLISH PROGRAM ADDRESSABILITY 00009000 GFABASE EQU * 00010000 USING GFABASE,R9 00011000 USING GFABASE+4094,R8 00012000 LA R8,4094(R9) ESTABLISH SECOND BASE REG 00013000 * RCACSECT=RCACGFA; /* SET THE CSECT AND ENTRY POINT */ 00014000 L @10,RCAPTR(,PVTPTR) 0099 00015000 MVI RCACSECT(@10),X'0E' 0099 00016000 * RCAGFA='1'B; /* FLAGS IN THE RCA TO INDICATE 00017000 * GFA ENTERED */ 00018000 OI RCAGFA(@10),B'00000010' 0100 00019000 * VARIABLS=VARIABLS&&VARIABLS; /* INITIALIZE INTERNAL VARIABLES */ 00020000 XC VARIABLS(44,PVTPTR),VARIABLS(PVTPTR) 0101 00021000 * PCBPTR=R1; /* SET THE PCB BASE REGISTER */ 00022000 LR PCBPTR,R1 0102 00023000 * RFY 0103 00024000 * R1 UNRSTD; 0103 00025000 * GEN REFS(R15,PCBPTR,GFAENTER) SETS(R15,PCB); 0104 00026000 * 0104 00027000 * /* @Z40WPYC*/ 00028000 TRACEZG1 EQU * PCB TRACE - GFA ENTERED @Z40WPYC 00029000 B *+16 BRANCH AROUND TRACE CODE @Z40WPYC 00030000 L R15,68(PCBPTR) GET CURRENT COUNT @Z40WPYC 00031000 AL R15,GFAENTER INCREMENT BY 1 @Z40WPYC 00032000 ST R15,68(PCBPTR) STORE NEW COUNT @Z40WPYC 00033000 * /*****************************************************************/ 00034000 * /* */ 00035000 * /* THIS BEGINS THE PCB PROCESSING LOOP. RETURN IS MADE HERE FOR */ 00036000 * /* EACHINPUT PCB */ 00037000 * /* */ 00038000 * /*****************************************************************/ 00039000 * 0105 00040000 *PCBPROC: 0105 00041000 * NEXTPCBP=PCBFQPA; /* SAVE ADDRESS OF NEXT INPUT PCB*/ 00042000 PCBPROC L @10,PCBFQPA-1(,PCBPTR) 0105 00043000 LA @10,0(,@10) 0105 00044000 ST @10,NEXTPCBP(,PVTPTR) 0105 00045000 * PCBFQPA=0; /* DEQUEUE THIS PCB FROM THE 0106 00046000 * INPUT LIST -- THIS PREVENTS AN 00047000 * ERROR IN THE PCB MANAGER WHEN 00048000 * THE PCB IS SUBSEQUENTLY 0106 00049000 * ENQUEUED AFTER PROCESSING IS 00050000 * COMPLETE */ 00051000 SLR @10,@10 0106 00052000 STCM @10,7,PCBFQPA(PCBPTR) 0106 00053000 * COUNTSET='0'B; /* CLEAR FLAG INDICATING STATUS 00054000 * OF COUNTERS DURING RECLAIM 0107 00055000 * PROCESSING @YA01572*/ 00056000 NI COUNTSET(PVTPTR),B'11101111' 0107 00057000 * IF PCBSWPIN='0'B THEN 0108 00058000 TM PCBSWPIN(PCBPTR),B'01000000' 0108 00059000 BNZ @RF00108 0108 00060000 * DO; /* NOT SWAP-IN OF LSQA OR PA FIX */ 00061000 * IF XPTDEFER='0'B|XPTPOINP='1'B THEN 0110 00062000 L @10,XPTEPTR(,PCBPTR) 0110 00063000 TM XPTDEFER(@10),B'00000010' 0110 00064000 BZ @RT00110 0110 00065000 TM XPTPOINP(@10),B'00100000' 0110 00066000 BNO @RF00110 0110 00067000 @RT00110 DS 0H 0111 00068000 * DO; /* IF THE PCB DOES NOT REPRESENT 00069000 * A SWAP-IN AND THE EXTERNAL 0111 00070000 * PAGE TABLE DOES NOT INDICATE 00071000 * ALLOCATION WAS PREVIOUSLY 0111 00072000 * DEFERRED, OR THE XPTE 0111 00073000 * INDICATES A PAGEOUT IN PROCESS 00074000 * FOR A NON-RECLAIMABLE FRAME, 00075000 * THEN ATTEMPT TO RECLAIM THE 0111 00076000 * PAGE FRAME @Z40WPYC*/ 00077000 * RBN=PGTRSA&'FFF0'X; /* CREATE THE REAL BLOCK NUMBER 00078000 * OF THE INPUT PAGE */ 00079000 L @10,PTEPTR(,PCBPTR) 0112 00080000 MVC RBN(2,PVTPTR),PGTRSA(@10) 0112 00081000 NC RBN(2,PVTPTR),@CB02190 0112 00082000 * IF RBN^=0 THEN 0113 00083000 ICM @10,3,RBN(PVTPTR) 0113 00084000 BZ @RF00113 0113 00085000 * DO; /* TEST FOR RECLAIMABLE PAGE 0114 00086000 * @Z40WPYC*/ 00087000 * CALL RECLAIM; /* THE PAGE IS FEASIBLY 0115 00088000 * RECLAIMABLE, INVOKE THE 0115 00089000 * RECLAIM SUBROUTINE */ 00090000 BAL @14,RECLAIM 0115 00091000 * RFY 0116 00092000 * R15 RSTD; 0116 00093000 * IF R15=0 /* WAS THE FRAME RECLAIMED ? */ 00094000 * THEN 0117 00095000 LTR R15,R15 0117 00096000 BZ @RT00117 0117 00097000 * GOTO NXTPCB; /* YES, GET THE NEXT INPUT PCB */ 00098000 * ELSE 0119 00099000 * ; /* FRAME WAS NOT RECLAIMED. */ 00100000 * END; 0120 00101000 * ELSE 0121 00102000 * ; 0121 00103000 @RF00113 DS 0H 0122 00104000 * GOTO CALLALLC; /* THE FRAME WAS NOT RECLAIMED, 00105000 * OR RECLAIM WAS NOT ATTEMPTED, 00106000 * TRY TO ALLOCATE A NEW FRAME */ 00107000 B CALLALLC 0122 00108000 * RFY 0123 00109000 * R15 UNRSTD; 0123 00110000 * END; 0124 00111000 * ELSE 0125 00112000 * ; 0125 00113000 @RF00110 DS 0H 0126 00114000 * IF PVTAFC=0 THEN 0126 00115000 LH @10,PVTAFC(,PVTPTR) 0126 00116000 LTR @10,@10 0126 00117000 BZ @RT00126 0126 00118000 * GOTO GFAPUT; /* IF NO FRAMES ARE AVAILABLE, 0127 00119000 * DEFER THIS REQUEST */ 00120000 * ELSE 0128 00121000 * CALL GETGFAD; /* THE REQUEST WAS PREVIOUSLY 0128 00122000 * DEFERRED, AND NOW AVAILABLE 0128 00123000 * FRAMES EXIST, GET ANY RELATED 00124000 * PCBS FROM THE DEFER QUEUE */ 00125000 BAL @14,GETGFAD 0128 00126000 * END; 0129 00127000 * ELSE 0130 00128000 * ; 0130 00129000 @RF00108 DS 0H 0131 00130000 *CALLALLC: 0131 00131000 * ; /* ATTEMPT TO ALLOCATE A FRAME */ 00132000 * 0131 00133000 CALLALLC DS 0H 0132 00134000 * /*****************************************************************/ 00135000 * /* */ 00136000 * /* ALLOCATE SUBROUTINE -- ALLOCATE A FRAME. ON INPUT, PCBPTR -> */ 00137000 * /* THE PCB FOR WHICH A FRAME IS TO BE ALLOCATED. THE ROUTINE */ 00138000 * /* SCANS THE AVAILABLE FRAME QUEUE FOR A FRAME WHICH HAS THE MOST*/ 00139000 * /* DESIRABLE ATTRIBUTES FOR ALLOCATION, WHERE THE WEIGHTING OF */ 00140000 * /* THESE FACTORS IS DETERMINED BY THE CIRCUMSTANCES UNDER WHICH */ 00141000 * /* THE FRAME IS BEING ALLOCATED. - FOR A PAGING EXCEPTION, THE */ 00142000 * /* FRAME NEED ONLY BE ON THE AVAILABLE FRAME QUEUE. - THE SAME */ 00143000 * /* RULE APPLIES TO NON-PAGE FAULT, NON-SWAP-IN REQUESTS - FOR */ 00144000 * /* SWAP-IN REQUESTS OF PRIVATE AREA FIXED AND LSQA PAGES, THE */ 00145000 * /* FRAME MUST BE AVAILABLE AND: - NOT IN THE V=R AREA IF THE */ 00146000 * /* SWAP-IN IS FOR A SWAPPABLE MEMORY. - IN THE PREFERRED AREA FOR*/ 00147000 * /* A NON-SWAPPABLE MEMORY. ***** IN THE ABOVE CASES, THE V=R AREA*/ 00148000 * /* FRAME OR THE RESERVED AREA FRAME WILL BE USED IF NO FRAME */ 00149000 * /* MEETING THE CRITERION CAN BE FOUND. */ 00150000 * /* */ 00151000 * /*****************************************************************/ 00152000 * 0132 00153000 *ALLOC: 0132 00154000 * IF PVTAFQF^=0 THEN 0132 00155000 ALLOC LH @10,PVTAFQF(,PVTPTR) 0132 00156000 N @10,@CF02300 0132 00157000 LTR @10,@10 0132 00158000 BZ @RF00132 0132 00159000 * DO; /* THERE ARE AVAILABLE FRAMES */ 00160000 * LONGFLAG='0'B; /* RESET THE INTERNAL LONG-FIX 0134 00161000 * INDICATOR */ 00162000 NI LONGFLAG(PVTPTR),B'01111111' 0134 00163000 * RBN=PVTAFQF; /* FIRST FRAME ON THE AVAILABLE 00164000 * FRAME QUEUE */ 00165000 MVC RBN(2,PVTPTR),PVTAFQF(PVTPTR) 0135 00166000 * PFTEPTR=RBN+PVTPFTP; /* SET UP THE PFTE ADDRESS */ 00167000 SLR PFTEPTR,PFTEPTR 0136 00168000 ICM PFTEPTR,3,RBN(PVTPTR) 0136 00169000 AL PFTEPTR,PVTPFTP(,PVTPTR) 0136 00170000 * PTR1=PCBPTR; /* SCAN THE QUEUE OF PCBS THAT 0137 00171000 * ARE RELATED TO THE INPUT PCB, 00172000 * LOOKING FOR A 'LONG-FIX' 0137 00173000 * REQUEST */ 00174000 LR PTR1,PCBPTR 0137 00175000 * DO WHILE PTR1^=0; 0138 00176000 B @DE00138 0138 00177000 @DL00138 DS 0H 0139 00178000 * IF PTR1->PCBSWPS1='1'B|PTR1->PCBFXC^=0 THEN/* DOES PCB 0139 00179000 * REPRESENT STAGE 1 SWAP OR PAGE 00180000 * FIX */ 00181000 TM PCBSWPS1(PTR1),B'00100000' 0139 00182000 BO @RT00139 0139 00183000 CLI PCBFXC(PTR1),0 0139 00184000 BE @RF00139 0139 00185000 @RT00139 DS 0H 0140 00186000 * DO; /* YES, CHECK DEFER FIX THRESHOLD 00187000 * @YA01572*/ 00188000 * IF PVTAFC<=PVTDEFFX THEN/* SHOULD FIX REQUESTS BE 0141 00189000 * DEFERRED */ 00190000 LH @10,PVTAFC(,PVTPTR) 0141 00191000 CH @10,PVTDEFFX(,PVTPTR) 0141 00192000 BNH @RT00141 0141 00193000 * GOTO TESTDFSP; /* YES,DEFER REQUEST OR REJECT IT 00194000 * @YA01572*/ 00195000 * IF PTR1->PCBPREFR='1'B THEN/* @ZA16816*/ 00196000 TM PCBPREFR(PTR1),B'00001000' 0143 00197000 BNO @RF00143 0143 00198000 * LONGFLAG='1'B; /* A LONG-FIX HAS BEEN FOUND, SET 00199000 * THE INTERNAL INDICATOR */ 00200000 OI LONGFLAG(PVTPTR),B'10000000' 0144 00201000 * END; 0145 00202000 * ELSE 0146 00203000 * ; 0146 00204000 @RF00139 DS 0H 0147 00205000 * PTR1=PTR1->PCBRLPA; /* GET THE NEXT RELATED PCB */ 00206000 @RC00139 L @10,PCBRLPA-1(,PTR1) 0147 00207000 LA @10,0(,@10) 0147 00208000 LR PTR1,@10 0147 00209000 * END; 0148 00210000 @DE00138 LTR PTR1,PTR1 0148 00211000 BNZ @DL00138 0148 00212000 * IF LONGFLAG='1'B THEN 0149 00213000 TM LONGFLAG(PVTPTR),B'10000000' 0149 00214000 BNO @RF00149 0149 00215000 * DO; 0150 00216000 * 0150 00217000 * /*********************************************************/ 00218000 * /* */ 00219000 * /* THIS CODE HANDLES THE SELECTION OF A FRAME BEST SUITED*/ 00220000 * /* TO A PREFERRED FIX. FIRST CHOICE IS A PREFERRED AREA */ 00221000 * /* FRAME. SECOND CHOICE IS A NON-PREFERRED NON V=R FRAME.*/ 00222000 * /* LAST CHOICE IS THE BEST V=R FRAME ON THE AFQ @ZA16816*/ 00223000 * /* */ 00224000 * /*********************************************************/ 00225000 * 0151 00226000 * RESPECIFY 0151 00227000 * (R5) RSTD; /* @ZA16816*/ 00228000 * CALL GETAPREF; /* TRY TO GET A PREFERRED 0152 00229000 * @ZA16816*/ 00230000 BAL @14,GETAPREF 0152 00231000 * IF R5^=0 THEN /* IF A PREFERRED FOUND @ZA16816*/ 00232000 LTR R5,R5 0153 00233000 BZ @RF00153 0153 00234000 * DO; /* THEN ALLOCATE IT. @ZA16816*/ 00235000 * PFTEPTR=R5; /* SET PFTE POINTER @ZA16816*/ 00236000 LR PFTEPTR,R5 0155 00237000 * RBN=PFTEPTR-PVTPFTP;/* SET RBN @ZA16816*/ 00238000 LR @10,PFTEPTR 0156 00239000 SL @10,PVTPFTP(,PVTPTR) 0156 00240000 STCM @10,3,RBN(PVTPTR) 0156 00241000 * RESPECIFY 0157 00242000 * (R5) UNRSTD; /* @ZA16816*/ 00243000 * END; /* @ZA16816*/ 00244000 * ELSE /* HERE IF NO PREFERRED @ZA16816*/ 00245000 * DO; /* TRY NON-PREF NON V=R. @ZA16816*/ 00246000 B @RC00153 0159 00247000 @RF00153 DS 0H 0160 00248000 * PFTEPTR=SAVEPFTE; /* TRY AFQ FIRST. @ZA16816*/ 00249000 L PFTEPTR,SAVEPFTE(,PVTPTR) 0160 00250000 * IF PFTEPTR^=0 THEN /* IF THERE WAS ONE, @ZA16816*/ 00251000 LTR PFTEPTR,PFTEPTR 0161 00252000 BZ @RF00161 0161 00253000 * DO; /* CONVERT BOX AND USE IT 0162 00254000 * @ZA16816*/ 00255000 * RBN=PFTEPTR-PVTPFTP;/* SET RBN OF THE FRAME 0163 00256000 * @ZA16816*/ 00257000 LR @10,PFTEPTR 0163 00258000 SL @10,PVTPFTP(,PVTPTR) 0163 00259000 STCM @10,3,RBN(PVTPTR) 0163 00260000 * RESPECIFY 0164 00261000 * (PARM) RSTD; /* @ZA16816*/ 00262000 * PARM=RBN; /* GET RBN FOR IEAVPREF @ZA16816*/ 00263000 LR PARM,@10 0165 00264000 * CALL IEAVPREF; /* CONVERT THE BOX @ZA16816*/ 00265000 L @15,PVTPPREF(,PVTPTR) 0166 00266000 BALR @14,@15 0166 00267000 * RESPECIFY 0167 00268000 * (PARM) UNRSTD; /* @ZA16816*/ 00269000 * END; /* @ZA16816*/ 00270000 * ELSE /* HERE IF ONLY V=R ON AFQ 0169 00271000 * @ZA16816*/ 00272000 * DO; /* TRY IEAVPREF @ZA16816*/ 00273000 B @RC00161 0169 00274000 @RF00161 DS 0H 0170 00275000 * RESPECIFY 0170 00276000 * (PASS, 0170 00277000 * PARM) RSTD; /* @ZA16816*/ 00278000 * PASS=2; /* AFQ HAS ONLY V=R- @ZA16816*/ 00279000 LA PASS,2 0171 00280000 * PARM=0; /* USE IEAVPREF TO @ZA16816*/ 00281000 SLR PARM,PARM 0172 00282000 * CALL IEAVPREF; /* GET A NON-PREF NON V=R 0173 00283000 * @ZA16816*/ 00284000 L @15,PVTPPREF(,PVTPTR) 0173 00285000 BALR @14,@15 0173 00286000 * IF R15=0 THEN /* IF SUCCESSFUL, THEN @ZA16816*/ 00287000 LTR R15,R15 0174 00288000 BNZ @RF00174 0174 00289000 * DO; /* CONVERT BOX AND USE IT 0175 00290000 * @ZA16816*/ 00291000 * PFTEPTR=R0; /* SET PFTE POINTER @ZA16816*/ 00292000 LR PFTEPTR,R0 0176 00293000 * RBN=PFTEPTR-PVTPFTP;/* SET RBN @ZA16816*/ 00294000 LR @10,PFTEPTR 0177 00295000 SL @10,PVTPFTP(,PVTPTR) 0177 00296000 STCM @10,3,RBN(PVTPTR) 0177 00297000 * PARM=RBN; /* SET RBN FOR IEAVPREF @ZA16816*/ 00298000 LR PARM,@10 0178 00299000 * CALL IEAVPREF;/* CONVERT THE BOX @ZA16816*/ 00300000 L @15,PVTPPREF(,PVTPTR) 0179 00301000 BALR @14,@15 0179 00302000 * RESPECIFY 0180 00303000 * (PASS, 0180 00304000 * PARM) UNRSTD;/* @ZA16816*/ 00305000 * END; /* @ZA16816*/ 00306000 * ELSE /* HERE IF NO NON V=R AVAILABLE 00307000 * @ZA16816*/ 00308000 * 0182 00309000 * /***********************************************/ 00310000 * /* */ 00311000 * /* MUST USE A V=R FRAME FROM THE AVAILABLE */ 00312000 * /* FRAME QUEUE. BEGIN THE SPECIAL PROCESSING TO*/ 00313000 * /* SELECT THE V=R PFTE ON THE AFQ WHICH CAUSES */ 00314000 * /* THE LEAST POLLUTION IN THE V=R AREA OF REAL */ 00315000 * /* STORAGE (IE. THE V=R FRAME THAT IS CLOSEST */ 00316000 * /* TO AN END OF THE V=R AREA). @ZA16816*/ 00317000 * /* */ 00318000 * /***********************************************/ 00319000 * 0182 00320000 * DO; /* @ZA16816*/ 00321000 B @RC00174 0182 00322000 @RF00174 DS 0H 0183 00323000 * ADRDIFFS=MXVROFF;/* DEFAULT OFFSETS TO 0183 00324000 * MAXIMUM @ZA31128*/ 00325000 MVC ADRDIFFS(4,PVTPTR),MXVROFF 0183 00326000 * PFTEPTR=PVTPFTP+PVTLVR;/* ADDR LAST V=R PFTE 00327000 * @ZA31128*/ 00328000 L @10,PVTPFTP(,PVTPTR) 0184 00329000 LH PFTEPTR,PVTLVR(,PVTPTR) 0184 00330000 N PFTEPTR,@CF02300 0184 00331000 ALR PFTEPTR,@10 0184 00332000 * PTR1=PVTPFTP+PVTFVR;/* ADDR FIRST V=R PFTE 0185 00333000 * @ZA31128*/ 00334000 * 0185 00335000 LH PTR1,PVTFVR(,PVTPTR) 0185 00336000 N PTR1,@CF02300 0185 00337000 ALR @10,PTR1 0185 00338000 LR PTR1,@10 0185 00339000 * /*********************************************/ 00340000 * /* */ 00341000 * /* SCAN FROM HIGH END OF V=R AREA UNTIL THE */ 00342000 * /* LOWEST FRAME IN THE V=R AREA OR AN */ 00343000 * /* AVAILABLE V=R FRAME IS FOUND. @ZA31128*/ 00344000 * /* */ 00345000 * /*********************************************/ 00346000 * 0186 00347000 * DO UNTIL(PFTEPTR=PTR1)|(LVRADDIF^=NOFRAME);/* 00348000 * @ZA31128*/ 00349000 @DL00186 DS 0H 0187 00350000 * IF PFTONAVQ='1'B THEN/* AVAILABLE ? 0187 00351000 * @ZA31128*/ 00352000 * 0187 00353000 TM PFTONAVQ(PFTEPTR),B'10000000' 0187 00354000 BNO @RF00187 0187 00355000 * /*****************************************/ 00356000 * /* */ 00357000 * /* FRAME IS AVAILABLE. CALCULATE AND SAVE*/ 00358000 * /* ITS OFFSET FROM THE HIGH END OF THE */ 00359000 * /* V=R AREA. @ZA31128*/ 00360000 * /* */ 00361000 * /*****************************************/ 00362000 * 0188 00363000 * LVRADDIF=(PVTPFTP+PVTLVR)-PFTEPTR;/* 0188 00364000 * @ZA31128*/ 00365000 LH @10,PVTLVR(,PVTPTR) 0188 00366000 N @10,@CF02300 0188 00367000 AL @10,PVTPFTP(,PVTPTR) 0188 00368000 SLR @10,PFTEPTR 0188 00369000 STH @10,LVRADDIF(,PVTPTR) 0188 00370000 * ELSE /* NOT AVAILABLE @ZA31128*/ 00371000 * PFTEPTR=PFTEPTR-LENGTH(PFTE);/* NEXT PFTE 00372000 * @ZA31128*/ 00373000 B @RC00187 0189 00374000 @RF00187 SL PFTEPTR,@CF00060 0189 00375000 * END; /* @ZA31128*/ 00376000 * 0190 00377000 @RC00187 DS 0H 0190 00378000 @DE00186 CR PFTEPTR,PTR1 0190 00379000 BE @DC00186 0190 00380000 CLC LVRADDIF(2,PVTPTR),NOFRAME 0190 00381000 BE @DL00186 0190 00382000 @DC00186 DS 0H 0191 00383000 * /*********************************************/ 00384000 * /* */ 00385000 * /* NOW SCAN FROM LOW END OF V=R AREA UNTIL */ 00386000 * /* THE FRAME FOUND DURING THE TOP DOWN SCAN */ 00387000 * /* IS REACHED, OR AN AVAILABLE V=R FRAME IS */ 00388000 * /* FOUND. @ZA31128*/ 00389000 * /* */ 00390000 * /*********************************************/ 00391000 * 0191 00392000 * RFY 0191 00393000 * PFTE BASED(PTR1);/* @ZA31128*/ 00394000 * DO UNTIL(PTR1>PFTEPTR)|(FVRADDIF^=NOFRAME);/* 00395000 * @ZA31128*/ 00396000 @DL00192 DS 0H 0193 00397000 * IF PFTONAVQ='1'B THEN/* AVAILABLE ? 0193 00398000 * @ZA31128*/ 00399000 * 0193 00400000 TM PFTONAVQ(PTR1),B'10000000' 0193 00401000 BNO @RF00193 0193 00402000 * /*****************************************/ 00403000 * /* */ 00404000 * /* FRAME IS AVAILABLE. CALCULATE AND SAVE*/ 00405000 * /* ITS OFFSET FROM THE LOW END OF THE V=R*/ 00406000 * /* AREA. @ZA31128*/ 00407000 * /* */ 00408000 * /*****************************************/ 00409000 * 0194 00410000 * FVRADDIF=PTR1-(PVTPFTP+PVTFVR);/* 0194 00411000 * @ZA31128*/ 00412000 LH @10,PVTFVR(,PVTPTR) 0194 00413000 N @10,@CF02300 0194 00414000 AL @10,PVTPFTP(,PVTPTR) 0194 00415000 LCR @10,@10 0194 00416000 ALR @10,PTR1 0194 00417000 STH @10,FVRADDIF(,PVTPTR) 0194 00418000 * ELSE /* NOT AVAILABLE @ZA31128*/ 00419000 * PTR1=PTR1+LENGTH(PFTE);/* NEXT PFTE 0195 00420000 * @ZA31128*/ 00421000 B @RC00193 0195 00422000 @RF00193 AL PTR1,@CF00060 0195 00423000 * END; /* @ZA31128*/ 00424000 @RC00193 DS 0H 0196 00425000 @DE00192 CR PTR1,PFTEPTR 0196 00426000 BH @DC00192 0196 00427000 CLC FVRADDIF(2,PVTPTR),NOFRAME 0196 00428000 BE @DL00192 0196 00429000 @DC00192 DS 0H 0197 00430000 * RFY 0197 00431000 * PFTE BASED(PFTEPTR);/* @ZA31128*/ 00432000 * 0197 00433000 * /*********************************************/ 00434000 * /* */ 00435000 * /* SCAN IS COMPLETE. IF ADRDIFFS STILL EQUALS*/ 00436000 * /* ITS INITIAL VALUE OF F'S, THEN NO */ 00437000 * /* AVAILABLE FRAME WAS FOUND IN THE V=R AREA.*/ 00438000 * /* THIS IS AN ERROR. @ZA31128*/ 00439000 * /* */ 00440000 * /*********************************************/ 00441000 * 0198 00442000 * IF ADRDIFFS=MXVROFF THEN/* ANY FRAME FOUND ? 00443000 * @ZA31128*/ 00444000 CLC ADRDIFFS(4,PVTPTR),MXVROFF 0198 00445000 BE @RT00198 0198 00446000 * GOTO DEFERXIT;/* NO, SHOULD NOT OCCUR 0199 00447000 * @ZA31128*/ 00448000 * 0199 00449000 * /*********************************************/ 00450000 * /* */ 00451000 * /* DETERMINE WHICH DIFFERENCE IS LESS AND SET*/ 00452000 * /* THE RBN AND PFTEPTR ACCORDINGLY. INDICATE */ 00453000 * /* THAT THE V=R AREA IS POLLUTED SINCE A */ 00454000 * /* REQUEST FOR A PREFERRED FRAME HAS BEEN */ 00455000 * /* SATISFIED WITH A V=R FRAME. @ZA31128*/ 00456000 * /* */ 00457000 * /*********************************************/ 00458000 * 0200 00459000 * IF FVRADDIF=PVTLCSA THEN 0216 00518000 CLC PCBVBN(2,PCBPTR),PVTLCSA(PVTPTR) 0216 00519000 BL @RF00216 0216 00520000 * DO; /* THE PCB WAS FOR A COMMON AREA 00521000 * PAGE, SET UP TO HAVE IT 0217 00522000 * ENQUEUED ON THE COMMON AREA 0217 00523000 * QUEUE */ 00524000 * PFTASID=COMMASID; /* SET COMMON AREA 'ASID' */ 00525000 MVC PFTASID(2,PFTEPTR),COMMASID 0218 00526000 * TOQUEUE#=PFTCFQN; /* TARGET QUEUE IS COMMON AREA 0219 00527000 * FRAME QUEUE */ 00528000 MVI TOQUEUE#(PVTPTR),X'08' 0219 00529000 * END; 0220 00530000 * ELSE 0221 00531000 * DO; /* THE PCB WAS FOR A PRIVATE AREA 00532000 * PAGE, GET IT ENQUEUED ON THE 00533000 * LOCAL FRAME QUEUE FOR THIS 0221 00534000 * ADDRESS SPACE */ 00535000 B @RC00216 0221 00536000 @RF00216 DS 0H 0222 00537000 * TOQUEUE#=PFTLFQN; /* TARGET QUEUE IS THE LOCAL 0222 00538000 * FRAME QUEUE */ 00539000 MVI TOQUEUE#(PVTPTR),X'80' 0222 00540000 *ASIDASGN: 0223 00541000 * ; /* ASSIGN THE FRAME @YA01572*/ 00542000 ASIDASGN DS 0H 0224 00543000 * PFTASID=ASCBASID; /* ASSIGN THE FRAME TO THE 0224 00544000 * ADDRESS SPACE */ 00545000 L @10,ASCBPTR(,RSMHDPTR) 0224 00546000 LH @10,ASCBASID(,@10) 0224 00547000 N @10,@CF02300 0224 00548000 STH @10,PFTASID(,PFTEPTR) 0224 00549000 * END; 0225 00550000 * RBNPARM=RBN; /* SET UP PARMS FOR IEAVPFTE TO 00551000 * DEQUEUE THE PFTE AND HAVE IT 00552000 * ADDED TO THE APPROPRIATE QUEUE*/ 00553000 @RC00216 MVC RBNPARM(2,PVTPTR),RBN(PVTPTR) 0226 00554000 * RFY 0227 00555000 * (R0, 0227 00556000 * R1) RSTD; 0227 00557000 * R0=PARMPFTE; 0228 00558000 L R0,PARMPFTE(,PVTPTR) 0228 00559000 * R1=ASCBPTR; 0229 00560000 L R1,ASCBPTR(,RSMHDPTR) 0229 00561000 * IF PCBSWPS1='1'B THEN /* IF STG I SWAP-IN @ZA16816*/ 00562000 TM PCBSWPS1(PCBPTR),B'00100000' 0230 00563000 BNO @RF00230 0230 00564000 * DO; /* SWITCH RSMHDPTR @ZA16816*/ 00565000 * RSMHDPTR=PSAAOLD->ASCBRSM;/* TO CURRENT FOR @ZA16816*/ 00566000 L @10,PSAAOLD 0232 00567000 L RSMHDPTR,ASCBRSM(,@10) 0232 00568000 * CALL IEAVPFTE; /* PFTE DEQ AND ENQ @ZA16816*/ 00569000 L @15,PVTPFTE(,PVTPTR) 0233 00570000 BALR @14,@15 0233 00571000 * RSMHDPTR=PCBRASCB->ASCBRSM;/* RESTORE RSMHDPTR @ZA16816*/ 00572000 L @10,PCBRPTR(,PCBPTR) 0234 00573000 L @10,PCBRASCB(,@10) 0234 00574000 L RSMHDPTR,ASCBRSM(,@10) 0234 00575000 * END; /* @ZA16816*/ 00576000 * ELSE /* IF NOT STG I @ZA16816*/ 00577000 * CALL IEAVPFTE; /* RSMHD PTR O.K. @ZA16816*/ 00578000 B @RC00230 0236 00579000 @RF00230 L @15,PVTPFTE(,PVTPTR) 0236 00580000 BALR @14,@15 0236 00581000 * RFY 0237 00582000 * R0 UNRSTD; 0237 00583000 @RC00230 DS 0H 0238 00584000 * PCBRBN=RBN; /* ASSIGN THE RBN OF THE FRAME TO 00585000 * THE INPUT PCB */ 00586000 MVC PCBRBN(2,PCBPTR),RBN(PVTPTR) 0238 00587000 * PFTFXCT=PCBFXC; /* SET THE FRAME FIX COUNT FROM 00588000 * THE INPUT PCB'S FIX COUNT */ 00589000 SLR @10,@10 0239 00590000 IC @10,PCBFXC(,PCBPTR) 0239 00591000 STH @10,PFTFXCT(,PFTEPTR) 0239 00592000 * PTR1=PCBRLPA; /* GET THE RELATED QUEUE POINTER */ 00593000 L PTR1,PCBRLPA-1(,PCBPTR) 0240 00594000 LA PTR1,0(,PTR1) 0240 00595000 * DO WHILE PTR1^=0; /* SCAN THE RELATED QUEUE AND 0241 00596000 * SUMMARIZE THE FIX COUNTS OF 0241 00597000 * ALL THE PCBS (IF ANY). */ 00598000 B @DE00241 0241 00599000 @DL00241 DS 0H 0242 00600000 * PFTFXCT=PFTFXCT+PTR1->PCBFXC; 0242 00601000 SLR @10,@10 0242 00602000 IC @10,PCBFXC(,PTR1) 0242 00603000 AH @10,PFTFXCT(,PFTEPTR) 0242 00604000 STH @10,PFTFXCT(,PFTEPTR) 0242 00605000 * PTR1->PCBRBN=PCBRBN; /* ASSIGN THE FRAME TO ALL 0243 00606000 * RELATED PCBS @YA01572*/ 00607000 MVC PCBRBN(2,PTR1),PCBRBN(PCBPTR) 0243 00608000 * PTR1=PTR1->PCBRLPA; 0244 00609000 L @10,PCBRLPA-1(,PTR1) 0244 00610000 LA @10,0(,@10) 0244 00611000 LR PTR1,@10 0244 00612000 * END; 0245 00613000 @DE00241 SLR @10,@10 0245 00614000 CR PTR1,@10 0245 00615000 BNE @DL00241 0245 00616000 * IF PFTFXCT^=0|PFTLSQA='1'B THEN/* HAS THIS FRAME BEEN FIXED 00617000 * OR IS THIS AN LSQA FRAME 0246 00618000 * @YA01572*/ 00619000 CH @10,PFTFXCT(,PFTEPTR) 0246 00620000 BNE @RT00246 0246 00621000 TM PFTLSQA(PFTEPTR),B'00100000' 0246 00622000 BNO @RF00246 0246 00623000 @RT00246 DS 0H 0247 00624000 * DO; /* YES, UPDATE FIX COUNTERS 0247 00625000 * @YA01572*/ 00626000 * PVTCNTFX=PVTCNTFX+1; /* INCREMENT THE GLOBAL COUNT 0248 00627000 * @YA01572*/ 00628000 LA @10,1 0248 00629000 LH @06,PVTCNTFX(,PVTPTR) 0248 00630000 ALR @06,@10 0248 00631000 STH @06,PVTCNTFX(,PVTPTR) 0248 00632000 * IF PCBVBN>=PVTLCSA THEN /* PCB FOR COMMON AREA PAGE 0249 00633000 * @YA01572*/ 00634000 CLC PCBVBN(2,PCBPTR),PVTLCSA(PVTPTR) 0249 00635000 BL @RF00249 0249 00636000 * PVTCOMFX=PVTCOMFX+1; /* INCREMENT COMMON AREA COUNT 0250 00637000 * @YA01572*/ 00638000 AH @10,PVTCOMFX(,PVTPTR) 0250 00639000 STH @10,PVTCOMFX(,PVTPTR) 0250 00640000 * ELSE 0251 00641000 * RSMCNTFX=RSMCNTFX+1; /* INCREMENT LOCAL COUNT @YA01572*/ 00642000 B @RC00249 0251 00643000 @RF00249 LA @10,1 0251 00644000 AH @10,RSMCNTFX(,RSMHDPTR) 0251 00645000 STH @10,RSMCNTFX(,RSMHDPTR) 0251 00646000 * IF PVTCNTFX=PVTMAXFX THEN/* HAS THE FIX COUNT THRESHOLD 00647000 * BEEN REACHED */ 00648000 @RC00249 CLC PVTCNTFX(2,PVTPTR),PVTMAXFX(PVTPTR) 0252 00649000 BNE @RF00252 0252 00650000 * DO; /* YES, NOTIFY SRM @YA01572*/ 00651000 * RFY 0254 00652000 * (R1, 0254 00653000 * R13) RSTD; 0254 00654000 * R1=MAXFIXED; /* GET CODE INDICATING FIX 0255 00655000 * THRESHOLD HAS BEEN REACHED 0255 00656000 * @YA01572*/ 00657000 LA R1,4 0255 00658000 * R13=ADDR(PVTSAVE); /* GET SRM A SAVE AREA @YA01572*/ 00659000 LA R13,PVTSAVE(,PVTPTR) 0256 00660000 * GENERATE REFS(CVT,CVTPTR,CVTOPTE) SETS(R0,R14,R15); 00661000 SYSEVENT AVQLOW,ENTRY=BRANCH @YA01572 00662000 * END; 0258 00663000 * END; /* END OF PROCESSING FOR INITIAL 00664000 * FIX OF FRAME */ 00665000 * 0259 00666000 @RF00252 DS 0H 0260 00667000 * /*************************************************************/ 00668000 * /* */ 00669000 * /* COMPLETE INITIALIZATION OF THE FRAME --- FILL IN THE FRAME*/ 00670000 * /* TABLE FIELDS INDICATING ALLOCATION OF THE FRAME AND MAKE */ 00671000 * /* SURE VIO FLAG IS OFF */ 00672000 * /* */ 00673000 * /*************************************************************/ 00674000 * 0260 00675000 * PFTIRRG='0'B; 0260 00676000 @RF00246 NI PFTIRRG(PFTEPTR),B'11101111' 0260 00677000 * PFTVBN=PCBVBN; 0261 00678000 MVC PFTVBN(2,PFTEPTR),PCBVBN(PCBPTR) 0261 00679000 * END; 0262 00680000 * ELSE 0263 00681000 * DO; /* ALLOCATION WAS DEFERRED, NO 0263 00682000 * FRAME COULD BE OBTAINED WHICH 00683000 * WOULD SATISFY THE CONSTRAINTS 00684000 * OR THE QUEUE IS EMPTY. */ 00685000 B @RC00132 0263 00686000 @RF00132 DS 0H 0264 00687000 *DEFERXIT: 0264 00688000 * IF ISSUESE3='0'B THEN /* HAS SYSEVENT 3 BEEN ISSUED? 0264 00689000 * @YM07669*/ 00690000 DEFERXIT TM ISSUESE3(PVTPTR),B'00100000' 0264 00691000 BNZ @RF00264 0264 00692000 * DO; /* ISSUE SYSEVENT IF NOT @YM07669*/ 00693000 * RFY 0266 00694000 * (R1, 0266 00695000 * R13) RSTD; 0266 00696000 * ISSUESE3='1'B; /* TURN ON FLAG @YM07669*/ 00697000 OI ISSUESE3(PVTPTR),B'00100000' 0267 00698000 * R1=SYSLOW; /* @YM07669*/ 00699000 LA R1,3 0268 00700000 * R13=ADDR(PVTSAVE); /* SAVE AREA FOR SRM TO USE 0269 00701000 * @YM07669*/ 00702000 LA R13,PVTSAVE(,PVTPTR) 0269 00703000 * GENERATE REFS(CVT,CVTPTR,CVTOPTE); 0270 00704000 * /*CAUSE SRM TO STEAL @YM07669* 00705000 SYSEVENT AVQLOW,ENTRY=BRANCH 00706000 * END; 0271 00707000 * RFY 0272 00708000 * (R1, 0272 00709000 * R13) UNRSTD; 0272 00710000 @RF00264 DS 0H 0273 00711000 *TESTDFSP: 0273 00712000 * ; /* @YA01572*/ 00713000 TESTDFSP DS 0H 0274 00714000 * IF PCBSWPS1='0'B /* DEFERRED ALLOC STAGE1 SWAPIN */ 00715000 * THEN 0274 00716000 TM PCBSWPS1(PCBPTR),B'00100000' 0274 00717000 BNZ @RF00274 0274 00718000 * DO; /* NOT STAGE ONE OF SWAP-IN */ 00719000 * 0275 00720000 * /*********************************************************/ 00721000 * /* */ 00722000 * /* THE ALLOCATION OF A FRAME WAS DENIED, PUT THE PCB AND */ 00723000 * /* ANY RELATED PCBS ON THE DEFER QUEUE. */ 00724000 * /* */ 00725000 * /*********************************************************/ 00726000 * 0276 00727000 *GFAPUT: 0276 00728000 * INTRETCD=4; /* SET UP ASYNCHRONOUS PROCESSING 00729000 * RETURN CODE */ 00730000 GFAPUT MVI INTRETCD(PVTPTR),X'04' 0276 00731000 * IF PCBPEX='1'B THEN 0277 00732000 TM PCBPEX(PCBPTR),B'01000000' 0277 00733000 BNO @RF00277 0277 00734000 * DO; /* PAGING EXCEPTION */ 00735000 * IF PCBRESET='0'B THEN 0279 00736000 TM PCBRESET(PCBPTR),B'00010000' 0279 00737000 BNZ @RF00279 0279 00738000 * DO; /* RESET IS NOT INDICATED */ 00739000 * RFY 0281 00740000 * (R13, 0281 00741000 * R4, 0281 00742000 * R5, 0281 00743000 * R6) RSTD; 0281 00744000 * R13=ADDR(PVTSAVE);/* SAVE AREA FOR SUSPEND */ 00745000 LA R13,PVTSAVE(,PVTPTR) 0282 00746000 * CALL IEAVSUSP; /* SUSPEND THE FAULTER */ 00747000 L @15,@CV02161 0283 00748000 BALR @14,@15 0283 00749000 * RCAPARM1=PCBPTR;/* SAVE SUSPENDED PCB ADDRESS FOR 00750000 * RECOVERY PURPUSES. */ 00751000 L @10,RCAPTR(,PVTPTR) 0284 00752000 ST PCBPTR,RCAPARM1(,@10) 0284 00753000 * PCBRESET='1'B; /* INDICATE THAT THE OWNER OF 0285 00754000 * THIS PCB WAS SUSPENDED */ 00755000 OI PCBRESET(PCBPTR),B'00010000' 0285 00756000 * RFY 0286 00757000 * R13 UNRSTD; 0286 00758000 * IF R5=0 THEN 0287 00759000 LTR R5,R5 0287 00760000 BNZ @RF00287 0287 00761000 * DO; /* FAULTER WAS RUNNING UNDER AN 00762000 * SRB */ 00763000 * PCBSRB=R4; /* SAVE THE SRB ADDRESS */ 00764000 ST R4,PCBSRB(,PCBPTR) 0289 00765000 * PCBSRBMD='1'B;/* INDICATE SRB MODE */ 00766000 OI PCBSRBMD(PCBPTR),B'00100000' 0290 00767000 * PCBRTPA=R5; /* STORE A NULL TCB ADDRESS */ 00768000 STCM R5,7,PCBRTPA(PCBPTR) 0291 00769000 * END; 0292 00770000 * ELSE 0293 00771000 * DO; /* FAULTER WAS RUNNING UNDER A 0293 00772000 * TCB */ 00773000 B @RC00287 0293 00774000 @RF00287 DS 0H 0294 00775000 * PCBRTPA=R4; /* SAVE THE TCB ADDRESS */ 00776000 STCM R4,7,PCBRTPA(PCBPTR) 0294 00777000 * PCBRB=R5; /* SAVE RB ADDR @Z40WPYC*/ 00778000 ST R5,PCBRB(,PCBPTR) 0295 00779000 * END; 0296 00780000 * IF R6=4 THEN 0297 00781000 @RC00287 C R6,@CF00085 0297 00782000 BNE @RF00297 0297 00783000 * PCBLLHLD='1'B;/* IF A LOCKED PAGE-FAULT, SET 0298 00784000 * THE LOCK HELD FLAG */ 00785000 OI PCBLLHLD(PCBPTR),B'00010000' 0298 00786000 * ELSE 0299 00787000 * ; 0299 00788000 @RF00297 DS 0H 0300 00789000 * RFY 0300 00790000 * (R4, 0300 00791000 * R5, 0300 00792000 * R6) UNRSTD; 0300 00793000 * END; 0301 00794000 * ELSE 0302 00795000 * ; 0302 00796000 @RF00279 DS 0H 0303 00797000 * END; 0303 00798000 * ELSE 0304 00799000 * ; 0304 00800000 @RF00277 DS 0H 0305 00801000 * RFY 0305 00802000 * R1 RSTD; 0305 00803000 * R1=PCBPTR; /* ADDRESS OF THE PCB FOR PUTGFAD*/ 00804000 LR R1,PCBPTR 0306 00805000 * CALL PUTGFAD; /* MOVE THE PCB TO THE GFA DEFER 00806000 * QUEUE */ 00807000 BAL @14,PUTGFAD 0307 00808000 * RFY 0308 00809000 * R1 UNRSTD; 0308 00810000 * GOTO NXTPCB; /* AND GO GET THE NEXT INPUT PCB */ 00811000 B NXTPCB 0309 00812000 * END; 0310 00813000 * ELSE 0311 00814000 * DO; 0311 00815000 * 0311 00816000 @RF00274 DS 0H 0312 00817000 * /*********************************************************/ 00818000 * /* */ 00819000 * /* ..... SWAP-IN STAGE 1 HAS FAILED...THE DEFER FIX */ 00820000 * /* THRESHOLD HAS BEEN REACHED;....OR A FRAME COULD NOT BE*/ 00821000 * /* ALLOCATED, BACK OUT ALL FRAMES ALLOCATED SO FAR, AND */ 00822000 * /* TERMINATE ALL PAGE-INS STARTED. NOTE THAT THE STRING */ 00823000 * /* OF PCBS FROM IEAVSWIN CONTAINS ONLY STAGE1 SWAPIN */ 00824000 * /* PCBS. */ 00825000 * /* */ 00826000 * /*********************************************************/ 00827000 * 0312 00828000 * INTRETCD=8; /* STAGE ONE FAILED RETURN CODE */ 00829000 MVI INTRETCD(PVTPTR),X'08' 0312 00830000 * ROOTPCBP=PCBRTPA; /* SAVE THE ROOT PCB ADDRESS */ 00831000 L @10,PCBRTPA-1(,PCBPTR) 0313 00832000 LA @10,0(,@10) 0313 00833000 ST @10,ROOTPCBP(,PVTPTR) 0313 00834000 * PCBRPB='1'B; /* SET THE FREE ROOT FLAG IN THE 00835000 * ROOT PCB */ 00836000 * PCBRETRY='1'B; /* SET THE RETRY FLAG IN THE ROOT 00837000 * PCB */ 00838000 L @10,PCBRPTR(,PCBPTR) 0315 00839000 OI PCBRPB(@10),B'01100000' 0315 00840000 * PCBFQPA=NEXTPCBP; /* RESTORE THE PCB BEING 0316 00841000 * PROCESSED TO THE FRONT OF THE 00842000 * CHAIN OF PCB'S THAT HAVE NOT 00843000 * YET BEEN PROCESSED */ 00844000 * 0316 00845000 MVC PCBFQPA(3,PCBPTR),NEXTPCBP+1(PVTPTR) 0316 00846000 * /*********************************************************/ 00847000 * /* */ 00848000 * /* IF THERE ARE ANY RELATED PCBS, RETURN THEM TO THE */ 00849000 * /* DEFER QUEUE. ONLY THE PCB BEING PROCESSED CAN HAVE */ 00850000 * /* RELATED PCB'S. */ 00851000 * /* */ 00852000 * /*********************************************************/ 00853000 * 0317 00854000 * IF PCBRLPA^=0 THEN 0317 00855000 L @10,PCBRLPA-1(,PCBPTR) 0317 00856000 LA @10,0(,@10) 0317 00857000 LTR @10,@10 0317 00858000 BZ @RF00317 0317 00859000 * DO; 0318 00860000 * RFY 0319 00861000 * R1 RSTD; 0319 00862000 * R1=PCBRLPA; /* ADDRESS OF RELATED PCB FOR 0320 00863000 * PUTGFAD */ 00864000 LR R1,@10 0320 00865000 * CALL PUTGFAD; /* PUT RELATED PCBS ON THE DEFER 00866000 * QUEUE */ 00867000 BAL @14,PUTGFAD 0321 00868000 * RFY 0322 00869000 * R1 UNRSTD; 0322 00870000 * END; 0323 00871000 * ELSE 0324 00872000 * ; 0324 00873000 * 0324 00874000 @RF00317 DS 0H 0325 00875000 * /*********************************************************/ 00876000 * /* */ 00877000 * /* PUT UNPROCESSED STAGE 1 PCB'S ON THE PCBRWRK3/PCBRWRK4*/ 00878000 * /* QUEUE FOR THE SWAP-IN ROOT EXIT TO PROCESS. */ 00879000 * /* */ 00880000 * /*********************************************************/ 00881000 * 0325 00882000 * RFY 0325 00883000 * PCBR BASED(ROOTPCBP); /* @ZA08771*/ 00884000 * PCBRWRK3=PCBPTR; /* POINT FAILURE QUEUE HEADER TO 00885000 * FIRST STAGE 1 PCB @ZA08771*/ 00886000 L @10,ROOTPCBP(,PVTPTR) 0326 00887000 ST PCBPTR,PCBRWRK3(,@10) 0326 00888000 * RFY 0327 00889000 * R1 RSTD; /* @ZA08771*/ 00890000 * DO WHILE PCBPTR^=0&PCBSWPS1='1'B;/* @ZA08771*/ 00891000 B @DE00328 0328 00892000 @DL00328 DS 0H 0329 00893000 * PCBRCNT=PCBRCNT-1; /* REDUCE THE ROOT COMPLETION 0329 00894000 * COUNT */ 00895000 L @10,ROOTPCBP(,PVTPTR) 0329 00896000 LH @06,PCBRCNT(,@10) 0329 00897000 BCTR @06,0 0329 00898000 STH @06,PCBRCNT(,@10) 0329 00899000 * R1=PCBPTR; /* SAVE POINTER TO LAST STAGE 1 00900000 * PCB @ZA08771*/ 00901000 LR R1,PCBPTR 0330 00902000 * PCBPTR=PCBFQPA; /* GET THE NEXT PCB IN THE CHAIN */ 00903000 L @10,PCBFQPA-1(,PCBPTR) 0331 00904000 LA @10,0(,@10) 0331 00905000 LR PCBPTR,@10 0331 00906000 * END; /* @ZA08771*/ 00907000 * 0332 00908000 @DE00328 LTR PCBPTR,PCBPTR 0332 00909000 BZ @DC00328 0332 00910000 TM PCBSWPS1(PCBPTR),B'00100000' 0332 00911000 BO @DL00328 0332 00912000 @DC00328 DS 0H 0333 00913000 * /*********************************************************/ 00914000 * /* */ 00915000 * /* AT THIS POINT, R1 CONTAINS THE ADDRESS OF THE LAST */ 00916000 * /* STAGE 1, AND PCBPTR CONTAINS 0 (NO STAGE 2,S). */ 00917000 * /* */ 00918000 * /*********************************************************/ 00919000 * 0333 00920000 * PCBRWRK4=R1; /* POINT FAILURE QUEUE HEADER TO 00921000 * LAST STAGE 1 PCB @ZA08771*/ 00922000 L @10,ROOTPCBP(,PVTPTR) 0333 00923000 ST R1,PCBRWRK4(,@10) 0333 00924000 * RFY 0334 00925000 * R1 UNRSTD; /* @ZA08771*/ 00926000 * PCBRWRK3->PCBBQPA=0; /* ZERO BKWD POINTER OF FIRST 0335 00927000 * FAILED STAGE 1 PCB @ZA08771*/ 00928000 SLR @06,@06 0335 00929000 L @10,PCBRWRK3(,@10) 0335 00930000 ST @06,PCBBQPA(,@10) 0335 00931000 * PCBRWRK4->PCBFQPA=0; /* ZERO FWD POINTER OF LAST 0336 00932000 * FAILED STAGE 1 PCB @ZA08771*/ 00933000 L @10,ROOTPCBP(,PVTPTR) 0336 00934000 L @10,PCBRWRK4(,@10) 0336 00935000 STCM @06,7,PCBFQPA(@10) 0336 00936000 * RFY 0337 00937000 * (R0, 0337 00938000 * R1) UNRSTD; 0337 00939000 *AIALOOP: 0338 00940000 * ; 0338 00941000 * 0338 00942000 AIALOOP DS 0H 0339 00943000 * /*********************************************************/ 00944000 * /* */ 00945000 * /* THIS ROUTINE PROCESSES THE PCBS ASSOCIATED WITH ANY */ 00946000 * /* ACCUMULATED I/O IN SITUATIONS WHERE STAGE ONE OF */ 00947000 * /* SWAP-IN IS ABORTED FOR EITHER LACK OF AVAILABLE FRAMES*/ 00948000 * /* OR WHEN THE AUXILIARY STORAGE MANAGER FINDS THAT IT IS*/ 00949000 * /* INCAPABLE OF STARTING ONE OF THE PAGE-IN OPERATIONS */ 00950000 * /* FOR SWAP-IN */ 00951000 * /* */ 00952000 * /*********************************************************/ 00953000 * 0339 00954000 * RFY 0339 00955000 * PCBR BASED(ROOTPCBP); 0339 00956000 * AIAPTR=IOHOLDQF; /* GET THE ADDRESS OF THE FIRST 00957000 * AIA ON I/O HOLD QUEUE @Z40WPYC*/ 00958000 L @10,IOHOLDQF(,PVTPTR) 0340 00959000 ST @10,AIAPTR(,PVTPTR) 0340 00960000 * RFY 0341 00961000 * (R0, 0341 00962000 * R1) RSTD; 0341 00963000 * DO WHILE AIAPTR^=0; 0342 00964000 B @DE00342 0342 00965000 @DL00342 DS 0H 0343 00966000 * PCBPTR=AIAPTR-(LENGTH(PCB)-LENGTH(PCBAIA));/* GET THE 00967000 * ADDRESS OF THE PCB ASSOCIATED 00968000 * WITH THIS AIA */ 00969000 L PCBPTR,AIAPTR(,PVTPTR) 0343 00970000 SL PCBPTR,@CF02288 0343 00971000 * TOQUEUE#=PFTAFQN; /* THE FRAME ALLOCATED FOR THIS 00972000 * PCB MUST BE MADE AVAILABLE 0344 00973000 * (DEALLOCATED) */ 00974000 MVI TOQUEUE#(PVTPTR),X'00' 0344 00975000 * RBNPARM=PCBRBN; 0345 00976000 MVC RBNPARM(2,PVTPTR),PCBRBN(PCBPTR) 0345 00977000 * R0=PARMPFTE; 0346 00978000 L R0,PARMPFTE(,PVTPTR) 0346 00979000 * CALL IEAVPFTE; /* RETURN THE ALLOCATED FRAME TO 00980000 * THE AVAILABLE FRAME QUEUE */ 00981000 L @15,PVTPFTE(,PVTPTR) 0347 00982000 BALR @14,@15 0347 00983000 * IF PCBVBN>=PVTLCSA THEN/* FOR COMMON AREA FIXES, 0348 00984000 * PREVENT RECLAIM OF THE FREED 00985000 * FRAME */ 00986000 CLC PCBVBN(2,PCBPTR),PVTLCSA(PVTPTR) 0348 00987000 BL @RF00348 0348 00988000 * DO; 0349 00989000 * PVTCOMFX=PVTCOMFX-1;/* DECREMENT COMMON AREA COUNT 00990000 * @YA01572*/ 00991000 LH @10,PVTCOMFX(,PVTPTR) 0350 00992000 BCTR @10,0 0350 00993000 STH @10,PVTCOMFX(,PVTPTR) 0350 00994000 * PGTRSA=PGTPAMB+PGTPVMB;/* ZERO THE PGTE */ 00995000 L @10,PTEPTR(,PCBPTR) 0351 00996000 MVC PGTRSA(2,@10),@CH00032 0351 00997000 * END; 0352 00998000 * ELSE 0353 00999000 * RSMCNTFX=RSMCNTFX-1;/* OTHERWISE DECREMENT LOCAL 0353 01000000 * COUNT @YA01572*/ 01001000 B @RC00348 0353 01002000 @RF00348 LH @10,RSMCNTFX(,RSMHDPTR) 0353 01003000 BCTR @10,0 0353 01004000 STH @10,RSMCNTFX(,RSMHDPTR) 0353 01005000 * PVTCNTFX=PVTCNTFX-1; /* DECREMENT SYSTEM COUNT 0354 01006000 * @YA01572*/ 01007000 @RC00348 LH @10,PVTCNTFX(,PVTPTR) 0354 01008000 BCTR @10,0 0354 01009000 STH @10,PVTCNTFX(,PVTPTR) 0354 01010000 * PCBRCNT=PCBRCNT-1; /* DECREASE THE COMPLETION COUNT 01011000 * FOR THE ROOT PCB */ 01012000 L @10,ROOTPCBP(,PVTPTR) 0355 01013000 LH @06,PCBRCNT(,@10) 0355 01014000 BCTR @06,0 0355 01015000 STH @06,PCBRCNT(,@10) 0355 01016000 * IF PCBRLPA^=0 THEN 0356 01017000 L @10,PCBRLPA-1(,PCBPTR) 0356 01018000 LA @10,0(,@10) 0356 01019000 LTR @10,@10 0356 01020000 BZ @RF00356 0356 01021000 * DO; /* IF ANY RELATED PCBS EXIST, */ 01022000 * R1=PCBRLPA; /* ADDRESS OF RELATED QUEUE */ 01023000 LR R1,@10 0358 01024000 * CALL PUTGFAD; /* MOVE RELATED PCBS TO THE DEFER 01025000 * QUEUE */ 01026000 BAL @14,PUTGFAD 0359 01027000 * END; 0360 01028000 * ELSE 0361 01029000 * ; 0361 01030000 @RF00356 DS 0H 0362 01031000 * R0=PCBDEQN; /* CODE TO DEQUEUE THE PCB. */ 01032000 LA R0,255 0362 01033000 * R1=PCBPTR; /* ADDRESS OF THE PCB */ 01034000 LR R1,PCBPTR 0363 01035000 * CALL IEAVPCB; /* DEQUEUE THE PCB */ 01036000 L @15,PVTPCB(,PVTPTR) 0364 01037000 BALR @14,@15 0364 01038000 * RFY 0365 01039000 * (R0, 0365 01040000 * R1) UNRSTD; 0365 01041000 * IF PCBRWRK3=0 THEN 0366 01042000 L @10,ROOTPCBP(,PVTPTR) 0366 01043000 L @06,PCBRWRK3(,@10) 0366 01044000 LTR @06,@06 0366 01045000 BNZ @RF00366 0366 01046000 * DO; /* FIRST PCB IN ERROR */ 01047000 * PCBRWRK3=PCBPTR; /* PLACE IT ON THE FAILURE */ 01048000 ST PCBPTR,PCBRWRK3(,@10) 0368 01049000 * PCBRWRK4=PCBPTR; /* QUEUE BY ITSELF */ 01050000 ST PCBPTR,PCBRWRK4(,@10) 0369 01051000 * END; 0370 01052000 * ELSE 0371 01053000 * DO; /* A PRIOR PCB EXISTS ON THE 0371 01054000 * ERROR QUEUE */ 01055000 B @RC00366 0371 01056000 @RF00366 DS 0H 0372 01057000 * PCBRWRK3->PCBBQPA=PCBPTR;/* BACK CHAIN TO NEW */ 01058000 L @10,ROOTPCBP(,PVTPTR) 0372 01059000 L @06,PCBRWRK3(,@10) 0372 01060000 ST PCBPTR,PCBBQPA(,@06) 0372 01061000 * PCBFQPA=PCBRWRK3; /* FORWARD CHAIN OLD FROM NEW */ 01062000 STCM @06,7,PCBFQPA(PCBPTR) 0373 01063000 * PCBRWRK3=PCBPTR; /* ADD NEW AT TOP OF QUEUE */ 01064000 ST PCBPTR,PCBRWRK3(,@10) 0374 01065000 * END; 0375 01066000 * AIAPTR=AIANXAIA; /* GET NEXT AIA ON THE HOLD QUEUE*/ 01067000 @RC00366 L @10,AIANXAIA(,PCBPTR) 0376 01068000 ST @10,AIAPTR(,PVTPTR) 0376 01069000 * END; 0377 01070000 @DE00342 L @10,AIAPTR(,PVTPTR) 0377 01071000 LTR @10,@10 0377 01072000 BNZ @DL00342 0377 01073000 *BACKOTND: 0378 01074000 * ; /* END OF FAILING AIA CHAIN */ 01075000 BACKOTND DS 0H 0379 01076000 * IF PCBRCNT=0 THEN 0379 01077000 L @10,ROOTPCBP(,PVTPTR) 0379 01078000 LH @06,PCBRCNT(,@10) 0379 01079000 LTR @06,@06 0379 01080000 BNZ @RF00379 0379 01081000 * DO; /* WHEN ALL PCBS HAVE BEEN 0380 01082000 * ACCOUNTED FOR, */ 01083000 * RFY 0381 01084000 * (R1, 0381 01085000 * R15) RSTD; 0381 01086000 * R15=PCBRGOTO; /* GO TO THE ROOT EXIT ROUTINE 0382 01087000 * INDICATED */ 01088000 L R15,PCBRGOTO(,@10) 0382 01089000 * R1=ADDR(PCBR); /* ROOT PCB ADDR IN R1 */ 01090000 LR R1,@10 0383 01091000 * CALL ROOTEXIT; /* CALL THE ROOT EXIT ROUTINE */ 01092000 BALR @14,@15 0384 01093000 * RFY 0385 01094000 * (R1, 0385 01095000 * R15) UNRSTD; 0385 01096000 * RFY 0386 01097000 * PCBR BASED(PCBRPTR); 0386 01098000 * END; 0387 01099000 * ELSE 0388 01100000 * ; 0388 01101000 @RF00379 DS 0H 0389 01102000 * GOTO GFAEXIT; /* AND RETURN TO GFA'S CALLER */ 01103000 B GFAEXIT 0389 01104000 * END; 0390 01105000 * END; 0391 01106000 * DO; 0392 01107000 * 0392 01108000 @RC00132 DS 0H 0393 01109000 * /***************************************************************/ 01110000 * /* */ 01111000 * /* ALLOCATION SUCCEEDED, A FRAME HAS BEEN ASSIGNED FOR THE */ 01112000 * /* REQUEST, SUBSEQUENT PROCESSING IS DETERMINED BY THE TYPE OF */ 01113000 * /* REQUEST. */ 01114000 * /* */ 01115000 * /***************************************************************/ 01116000 * 0393 01117000 * IF PCBSWPIN='0'B THEN 0393 01118000 TM PCBSWPIN(PCBPTR),B'01000000' 0393 01119000 BNZ @RF00393 0393 01120000 * DO; /* NOT A SWAP-IN REQUEST */ 01121000 * IF XPTXAV='0'B|XPTPOINP='1'B THEN 0395 01122000 L @10,XPTEPTR(,PCBPTR) 0395 01123000 TM XPTXAV(@10),B'01000000' 0395 01124000 BZ @RT00395 0395 01125000 TM XPTPOINP(@10),B'00100000' 0395 01126000 BNO @RF00395 0395 01127000 @RT00395 DS 0H 0396 01128000 * DO; /* THIS IS A FIRST REFERENCE, THE 01129000 * EXTERNAL PAGE IS NOT VALID, OR 01130000 * THERE IS A PAGEOUT IN PROCESS 01131000 * FOR A NON RECLAIMABLE FRAME 0396 01132000 * @Z40WPYC*/ 01133000 * RFY 0397 01134000 * (R0, 0397 01135000 * R1, 0397 01136000 * R14, 0397 01137000 * R15) RSTD; 0397 01138000 * R14=RBA; /* REAL PAGE ADDRESS */ 01139000 L R14,RBA(,PVTPTR) 0398 01140000 * R15=4096; /* PAGE LENGTH FOR MVCL @Z40WPYC*/ 01141000 * 0399 01142000 L R15,@CF02220 0399 01143000 * /*******************************************************/ 01144000 * /* */ 01145000 * /* DETERMINE IF A PAGEOUT IS IN PROCESS FOR A NON- */ 01146000 * /* RECLAIMABLE FRAME. THIS CAN OCCUR IN 2 SITUATIONS: */ 01147000 * /* IF THE FRAME HAS BEEN INTERCEPTED FOR V=R OR VARY */ 01148000 * /* STOR AND A PAGEOUT IS IN PROCESS, OR THE REQUEST IS */ 01149000 * /* A LONG TERM FIX AND THE FRAME IS IN THE V=R AREA OR */ 01150000 * /* NON-PREFERRED AREA FOR A NON-SWAPPABLE ADDRESS SPACE*/ 01151000 * /* AND A PAGEOUT IS IN PROCESS. BOTH CASES WILL CAUSE */ 01152000 * /* THE DATA IN THE OLD FRAME TO BE MOVED TO THE NEWLY */ 01153000 * /* SELECTED FRAME. @Z40WPYC*/ 01154000 * /* */ 01155000 * /*******************************************************/ 01156000 * 0400 01157000 * IF XPTPOINP='1'B THEN /* IF PAGEOUT IN PROCESS, IT MUST 01158000 * BE THE NO RECLAIM SITUATION 0400 01159000 * SINCE IF NORMAL PAGEOUT THE 0400 01160000 * THE FRAME WOULD HAVE BEEN 0400 01161000 * RECLAIMED IMMEDIATELY. 0400 01162000 * @Z40WPYC*/ 01163000 L @10,XPTEPTR(,PCBPTR) 0400 01164000 TM XPTPOINP(@10),B'00100000' 0400 01165000 BNO @RF00400 0400 01166000 * DO; /* FRAME NOT RECLAIMABLE @Z40WPYC*/ 01167000 * NORECPCB->PCBVBN=0;/* MAKE PCB NON-RECLAIMABLE 0402 01168000 * @Z40WPYC*/ 01169000 L @06,NORECPCB(,PVTPTR) 0402 01170000 SLR @05,@05 0402 01171000 STH @05,PCBVBN(,@06) 0402 01172000 * NORECPCB->AIAFRAUX='1'B;/* FREE AUX STOR @Z40WPYC*/ 01173000 OI AIAFRAUX(@06),B'10000000' 0403 01174000 * XPTPOINP='0'B; /* WHEN AIAFRAUX IS SET BY RSM 0404 01175000 * FOR AN OUTPUT PCB, IT MUST 0404 01176000 * ALSO ZERO XPTPOINP (CLEARED 0404 01177000 * NORMALLY BY ASM EXCEPT WHEN 0404 01178000 * AIAFRAUX IS SET). @Z40WPYC*/ 01179000 NI XPTPOINP(@10),B'11011111' 0404 01180000 * XPTXAV='0'B; /* AUX STORAGE DOES NOT EXIST 0405 01181000 * @Z40WPYC*/ 01182000 * 0405 01183000 NI XPTXAV(@10),B'10111111' 0405 01184000 * /***************************************************/ 01185000 * /* */ 01186000 * /* TURN ON THE CHANGE AND REFERENCE BITS IN THE */ 01187000 * /* XPTE COPY OF THE STORAGE PROTECT KEY. THE */ 01188000 * /* STORAGE KEYS OF THE NEW FRAME WILL BE SET FROM */ 01189000 * /* HERE. THE CHANGE BIT MUST BE ON IN THE NEW FRAME*/ 01190000 * /* SO THAT THE DATA ON THE PAGE WILL EVENTUALLY BE */ 01191000 * /* WRITTEN TO AUXILLARY STORAGE. @ZA16863*/ 01192000 * /* */ 01193000 * /***************************************************/ 01194000 * 0406 01195000 * XPTPROT=XPTPROT|'06'X;/* @ZA16863*/ 01196000 OI XPTPROT(@10),X'06' 0406 01197000 * R0=NORECPCB->PCBRBN*256;/* REAL STOR ADDR OF THE 0407 01198000 * OLD PAGE @Z40WPYC*/ 01199000 LH R0,PCBRBN(,@06) 0407 01200000 N R0,@CF02300 0407 01201000 SLA R0,8 0407 01202000 * R1=R15; /* LENGTH OF MOVE IS 4096 0408 01203000 * @Z40WPYC*/ 01204000 LR R1,R15 0408 01205000 * IF PCBPREFR='1'B THEN/* IF MOVE DUE TO PREFERRED 0409 01206000 * REQUEST @ZA16816*/ 01207000 TM PCBPREFR(PCBPTR),B'00001000' 0409 01208000 BNO @RF00409 0409 01209000 * PVTMVCLC=PVTMVCLC+1;/* INCR MOVE PAGE COUNT 0410 01210000 * @ZA16816*/ 01211000 LA @10,1 0410 01212000 AL @10,PVTMVCLC(,PVTPTR) 0410 01213000 ST @10,PVTMVCLC(,PVTPTR) 0410 01214000 * END; /* END NO RECLAIM @Z40WPYC*/ 01215000 * ELSE /* THIS IS THE FIRST REF. CASE- 01216000 * CLEAR NEW FRAME @Z40WPYC*/ 01217000 * DO; /* @Z40WPYC*/ 01218000 B @RC00400 0412 01219000 @RF00400 DS 0H 0413 01220000 * R0=0; /* SET PADDING CHAR FOR MVCL 0413 01221000 * @Z40WPYC*/ 01222000 SLR R0,R0 0413 01223000 * R1=0; /* SINCE FIRST OPERAND LESS THAN 01224000 * FIRST, PROPAGATE ZEROES THRU 01225000 * THE NEW PAGE @Z40WPYC*/ 01226000 SLR R1,R1 0414 01227000 * END; /* END FIRST REF CASE @Z40WPYC*/ 01228000 * 0415 01229000 * /*******************************************************/ 01230000 * /* */ 01231000 * /* ADDRESS TRANSLATION IS TURNED OFF TO REFERENCE THE */ 01232000 * /* NEW FRAME ABOUT TO BE ASSIGNED BECAUSE DATA CAN BE */ 01233000 * /* LOST IN AN MP ENVIRONMENT IF THE PAGE IS CHANGED */ 01234000 * /* WITH DAT ON SINCE THE PAGE MUST BE VALIDATED BEFORE */ 01235000 * /* IT CAN BE CHANGED @ZA30323*/ 01236000 * /* */ 01237000 * /*******************************************************/ 01238000 * 0416 01239000 * GENERATE CODE NOFLOWS REFS(TEMPSAVE); 0416 01240000 @RC00400 DS 0H 0416 01241000 STNSM TEMPSAVE(PVTPTR),X'FB' TURN DAT OFF @ZA30323 01242000 MVCL R14,R0 CLEAR OR MOVE THE FRAME 01243000 STOSM TEMPSAVE(PVTPTR),X'04' TURN DAT ON @ZA30323 01244000 * R14=RBA; /* RESTORE REAL PAGE ADDRESS */ 01245000 L R14,RBA(,PVTPTR) 0417 01246000 * R1=XPTPROT; /* PROTECTION KEY FROM THE 0418 01247000 * EXTERNAL PAGE TABLE */ 01248000 * 0418 01249000 L @10,XPTEPTR(,PCBPTR) 0418 01250000 SLR R1,R1 0418 01251000 IC R1,XPTPROT(,@10) 0418 01252000 * /*******************************************************/ 01253000 * /* */ 01254000 * /* TURN OFF CHANGE AND REFERENCE BITS IN XPTE COPY OF */ 01255000 * /* STORAGE PROTECT KEY IN CASE THEY WERE TURNED ON FOR */ 01256000 * /* THE CASE OF THE NON-RECLAIMABLE PCB. @ZA16863*/ 01257000 * /* */ 01258000 * /*******************************************************/ 01259000 * 0419 01260000 * XPTPROT=XPTPROT&'F9'X;/* @ZA16863*/ 01261000 NI XPTPROT(@10),X'F9' 0419 01262000 * GEN(SSK R1,R14); /* SET THE PROTECT KEY FOR THE 0420 01263000 * PAGE (BOTH HALVES) */ 01264000 SSK R1,R14 01265000 * R15=R14+2048; /* ADDR OF SECOND HALF OF PAGE */ 01266000 LA R15,2048 0421 01267000 ALR R15,R14 0421 01268000 * GEN(SSK R1,R15); 0422 01269000 SSK R1,R15 01270000 * RFY 0423 01271000 * (R0, 0423 01272000 * R14, 0423 01273000 * R15) UNRSTD; 0423 01274000 * PGTRSA=RBN+PGTPAMB; /* ASSIGN THE REAL FRAME TO THE 01275000 * VIRTUAL PAGE, AND SET THE 0424 01276000 * ASSIGNED FLAG */ 01277000 L @10,PTEPTR(,PCBPTR) 0424 01278000 LA @06,1 0424 01279000 SLR @00,@00 0424 01280000 ICM @00,3,RBN(PVTPTR) 0424 01281000 ALR @06,@00 0424 01282000 STCM @06,3,PGTRSA(@10) 0424 01283000 * CALL PCBDISP; /* DISPOSE OF THE INPUT PCB. THE 01284000 * OUTPUT PCB AND FRAME WILL BE 01285000 * FREED BY PIOP WHEN THE I/O 0425 01286000 * COMPLETES. @Z40WPYC*/ 01287000 BAL @14,PCBDISP 0425 01288000 * RFY 0426 01289000 * R1 UNRSTD; 0426 01290000 * GOTO NXTPCB; /* GO GET THE NEXT INPUT PCB */ 01291000 B NXTPCB 0427 01292000 * END; 0428 01293000 * ELSE 0429 01294000 * ; 0429 01295000 @RF00395 DS 0H 0430 01296000 * END; 0430 01297000 * ELSE 0431 01298000 * ; /* A FRAME WAS ALLOCATED FOR A 0431 01299000 * SWAP-IN, OR A VALID EXTERNAL 01300000 * PAGE EXISTS, PREPARE TO DO THE 01301000 * I/O TO READ IN THE EXTERNAL 0431 01302000 * PAGE */ 01303000 @RF00393 DS 0H 0432 01304000 * PFTPCBSI='1'B; /* INDICATE THAT A PCB EXISTS FOR 01305000 * THE FRAME */ 01306000 * 0432 01307000 OI PFTPCBSI(PFTEPTR),B'00001000' 0432 01308000 * /***************************************************************/ 01309000 * /* */ 01310000 * /* PREPARE FOR PAGE-IN -- SUSPEND USER IF PAGE-FAULT. */ 01311000 * /* */ 01312000 * /***************************************************************/ 01313000 * 0433 01314000 * IF PCBPEX='1'B THEN 0433 01315000 TM PCBPEX(PCBPTR),B'01000000' 0433 01316000 BNO @RF00433 0433 01317000 * DO; /* PAGING EXCEPTION */ 01318000 * IF PCBRESET='0'B THEN 0435 01319000 TM PCBRESET(PCBPTR),B'00010000' 0435 01320000 BNZ @RF00435 0435 01321000 * DO; /* RESET IS NOT INDICATED */ 01322000 * RFY 0437 01323000 * (R13, 0437 01324000 * R4, 0437 01325000 * R5, 0437 01326000 * R6) RSTD; 0437 01327000 * R13=ADDR(PVTSAVE); /* SAVE AREA FOR SUSPEND */ 01328000 LA R13,PVTSAVE(,PVTPTR) 0438 01329000 * CALL IEAVSUSP; /* SUSPEND THE FAULTER */ 01330000 L @15,@CV02161 0439 01331000 BALR @14,@15 0439 01332000 * RCAPARM1=PCBPTR; /* SAVE SUSPENDED PCB ADDRESS FOR 01333000 * RECOVERY PURPUSES. */ 01334000 L @10,RCAPTR(,PVTPTR) 0440 01335000 ST PCBPTR,RCAPARM1(,@10) 0440 01336000 * PCBRESET='1'B; /* INDICATE THAT THE OWNER OF 0441 01337000 * THIS PCB WAS SUSPENDED */ 01338000 OI PCBRESET(PCBPTR),B'00010000' 0441 01339000 * RFY 0442 01340000 * R13 UNRSTD; 0442 01341000 * IF R5=0 THEN 0443 01342000 LTR R5,R5 0443 01343000 BNZ @RF00443 0443 01344000 * DO; /* FAULTER WAS RUNNING UNDER AN 01345000 * SRB */ 01346000 * PCBSRB=R4; /* SAVE THE SRB ADDRESS */ 01347000 ST R4,PCBSRB(,PCBPTR) 0445 01348000 * PCBSRBMD='1'B; /* INDICATE SRB MODE */ 01349000 OI PCBSRBMD(PCBPTR),B'00100000' 0446 01350000 * PCBRTPA=R5; /* STORE A NULL TCB ADDRESS */ 01351000 STCM R5,7,PCBRTPA(PCBPTR) 0447 01352000 * END; 0448 01353000 * ELSE 0449 01354000 * DO; /* FAULTER WAS RUNNING UNDER A 0449 01355000 * TCB */ 01356000 B @RC00443 0449 01357000 @RF00443 DS 0H 0450 01358000 * PCBRTPA=R4; /* SAVE THE TCB ADDRESS */ 01359000 STCM R4,7,PCBRTPA(PCBPTR) 0450 01360000 * PCBRB=R5; /* SAVE RB ADDR @Z40WPYC*/ 01361000 ST R5,PCBRB(,PCBPTR) 0451 01362000 * END; 0452 01363000 * IF R6=4 THEN 0453 01364000 @RC00443 C R6,@CF00085 0453 01365000 BNE @RF00453 0453 01366000 * PCBLLHLD='1'B; /* IF A LOCKED PAGE-FAULT, SET 0454 01367000 * THE LOCK HELD FLAG */ 01368000 OI PCBLLHLD(PCBPTR),B'00010000' 0454 01369000 * ELSE 0455 01370000 * ; 0455 01371000 @RF00453 DS 0H 0456 01372000 * RFY 0456 01373000 * (R4, 0456 01374000 * R5, 0456 01375000 * R6) UNRSTD; 0456 01376000 * END; 0457 01377000 * ELSE 0458 01378000 * ; 0458 01379000 @RF00435 DS 0H 0459 01380000 * END; 0459 01381000 * ELSE 0460 01382000 * ; 0460 01383000 * 0460 01384000 @RF00433 DS 0H 0461 01385000 * /***************************************************************/ 01386000 * /* */ 01387000 * /* PGIN SUBROUTINE -- SET UP TO PAGE A FRAME INTO STORAGE. THE */ 01388000 * /* APPROPRIATE COUNTERS ARE INCREMENTED TO INDICATE TO THE */ 01389000 * /* SYSTEM WHAT KIND OF A PAGE-IN HAS OCCURRED. THE PCB IS THEN */ 01390000 * /* ADDED TO THE PROPER I/O QUEUE, DEPENDING UPON WHETHER IT */ 01391000 * /* DESCRIBES A PRIVATE AREA ADDRESS OR A COMMON AREA ADDRESS. */ 01392000 * /* THE INPUT PCB IS ADDRESSED BY PCBPTR. NO RETURN CODES ARE */ 01393000 * /* GENERATED. THE AIA OF THE INPUT PCB IS ALWAYS ADDED TO THE */ 01394000 * /* END OF THE I/O HOLD QUEUE. */ 01395000 * /* */ 01396000 * /***************************************************************/ 01397000 * 0461 01398000 *PGIN: 0461 01399000 * ; 0461 01400000 PGIN DS 0H 0462 01401000 * RFY 0462 01402000 * (R0, 0462 01403000 * R1) RSTD; 0462 01404000 * 0462 01405000 * /***************************************************************/ 01406000 * /* */ 01407000 * /* ENQUEUE THE AIA ON THE I/O HOLD QUEUE. THE FOLLOWING CODE */ 01408000 * /* WILL INSURE LSQA REQUESTS ARE AT THE FRONT OF THE FRONT OF */ 01409000 * /* THE I/O QUEUE FOR SWAPIN AS GUARANTEED TO ASM */ 01410000 * /* */ 01411000 * /***************************************************************/ 01412000 * 0463 01413000 * IF IOHOLDQF=0 THEN /* PAGEIN AIA Q EMPTY @Z40WPYC*/ 01414000 L @10,IOHOLDQF(,PVTPTR) 0463 01415000 LTR @10,@10 0463 01416000 BNZ @RF00463 0463 01417000 * DO; /* YES- SET FIRST/LAST PTRS 0464 01418000 * @Z40WPYC*/ 01419000 * IOHOLDQF=ADDR(PCBAIA); /* SET PTR TO FIRST AIA @Z40WPYC*/ 01420000 LA @10,PCBAIA(,PCBPTR) 0465 01421000 ST @10,IOHOLDQF(,PVTPTR) 0465 01422000 * IOHOLDQL=ADDR(PCBAIA); /* SET PTR TO LAST AIA @Z40WPYC*/ 01423000 ST @10,IOHOLDQL(,PVTPTR) 0466 01424000 * END; /* END AIA QUEUE EMPTY @Z40WPYC*/ 01425000 * ELSE /* NOT EMPTY @Z40WPYC*/ 01426000 * DO; /* RESET QUEUE PTRS @Z40WPYC*/ 01427000 B @RC00463 0468 01428000 @RF00463 DS 0H 0469 01429000 * R1=IOHOLDQL-(LENGTH(PCB)-LENGTH(PCBAIA));/* POINT TO PCB 0469 01430000 * @Z40WPYC*/ 01431000 L R1,IOHOLDQL(,PVTPTR) 0469 01432000 SL R1,@CF02288 0469 01433000 * R1->AIANXAIA=ADDR(PCBAIA);/* CHAIN CURRENT INPUT AIA TO 0470 01434000 * LAST PAGEIN AIA @Z40WPYC*/ 01435000 LA @10,PCBAIA(,PCBPTR) 0470 01436000 ST @10,AIANXAIA(,R1) 0470 01437000 * RESPECIFY 0471 01438000 * (R1) UNRESTRICTED; /* @Z40WPYC*/ 01439000 * IOHOLDQL=ADDR(PCBAIA); /* RESET LAST AIA PTR @Z40WPYC*/ 01440000 ST @10,IOHOLDQL(,PVTPTR) 0472 01441000 * END; /* END UPDATE AIA PTRS @Z40WPYC*/ 01442000 * IF PCBVBNAIALSQA='1'B THEN /* IF STAGE1 SWAPIN @Z40WPYC*/ 01613000 TM AIALSQA(R15),B'00001000' 0521 01614000 BNO @RF00521 0521 01615000 * CALL ILRSWAP; /* ASM SWAP I/O PROCESSOR 0522 01616000 * @Z40WPYC*/ 01617000 L @15,PVTSWPIO(,PVTPTR) 0522 01618000 BALR @14,@15 0522 01619000 * ELSE /* NORMAL PAGEIN @Z40WPYC*/ 01620000 * CALL ILRPAGIO; /* ASM PAGE I/O PROCESSOR 0523 01621000 * @Z40WPYC*/ 01622000 B @RC00521 0523 01623000 @RF00521 L @15,PVTPAGIO(,PVTPTR) 0523 01624000 BALR @14,@15 0523 01625000 * INTRETCD=4; /* ASYNCHRONOUS COMPLETION RETURN 01626000 * CODE */ 01627000 @RC00521 MVI INTRETCD(PVTPTR),X'04' 0524 01628000 * IF R15^=0 THEN 0525 01629000 LTR R15,R15 0525 01630000 BZ @RF00525 0525 01631000 * DO; 0526 01632000 * 0526 01633000 * /*******************************************************/ 01634000 * /* */ 01635000 * /* THE AUXILIARY STORAGE MANAGER FOUND AN ERROR */ 01636000 * /* CONDITION WHEN ATTEMPTING TO PROCESS THE ACCUMULATED*/ 01637000 * /* I/O. THE ADDRESS OF THE FAILING AIA IS RETURNED BY */ 01638000 * /* THE AUXILIARY STORAGE MANAGER IN REGISTER ONE. ALL */ 01639000 * /* SUBSEQUENT AIAS HAVE NOT BEEN ACTED UPON AND ARE */ 01640000 * /* LINKED TO THE FAILING AIA. */ 01641000 * /* */ 01642000 * /*******************************************************/ 01643000 * 0527 01644000 * RFY 0527 01645000 * (R0, 0527 01646000 * R15) UNRSTD; 0527 01647000 * PTR1=R1; /* SAVE THE AIA ADDRESS AROUND 0528 01648000 * THE CALL TO ABEND */ 01649000 * 0528 01650000 LR PTR1,R1 0528 01651000 * /*******************************************************/ 01652000 * /* */ 01653000 * /* OBTAIN THE PCB ADDRESS FOR THE AIA IN ERROR BY */ 01654000 * /* BACKING UP THE AIA ADDRESS BY THE AMOUNT OF ITS */ 01655000 * /* OFFSET INTO THE PCB */ 01656000 * /* */ 01657000 * /*******************************************************/ 01658000 * 0529 01659000 * PCBPTR=PTR1-(LENGTH(PCB)-LENGTH(PCBAIA));/* @Z40WPYD*/ 01660000 LR PCBPTR,PTR1 0529 01661000 SL PCBPTR,@CF02288 0529 01662000 * IF AIAPRIER='0'B THEN 0530 01663000 TM AIAPRIER(PCBPTR),B'00001000' 0530 01664000 BNZ @RF00530 0530 01665000 * DO; /* DO NOT RECORD AN ERROR IF 0531 01666000 * THERE WAS A PREVIOUS I/O ERROR 01667000 * FOR THE PAGE @Z40WPYD*/ 01668000 * RCARCRD=ASMERR; /* RECORD THE ERROR */ 01669000 L @10,RCAPTR(,PVTPTR) 0532 01670000 MVI RCARCRD(@10),X'04' 0532 01671000 * GEN(ABEND X'C0D',,,SYSTEM); 0533 01672000 ABEND X'C0D',,,SYSTEM 01673000 * END; 0534 01674000 * IF PCBSWPS1='1'B THEN 0535 01675000 @RF00530 TM PCBSWPS1(PCBPTR),B'00100000' 0535 01676000 BNO @RF00535 0535 01677000 * DO; 0536 01678000 * 0536 01679000 * /***************************************************/ 01680000 * /* */ 01681000 * /* STAGE ONE OF SWAP-IN, GET THE ROOT PCB ADDRESS */ 01682000 * /* */ 01683000 * /***************************************************/ 01684000 * 0537 01685000 * ROOTPCBP=PCBRTPA; /* SAVE ROOT PCB ADDRESS */ 01686000 L @10,PCBRTPA-1(,PCBPTR) 0537 01687000 LA @10,0(,@10) 0537 01688000 ST @10,ROOTPCBP(,PVTPTR) 0537 01689000 * PCBRFAIL='1'B; /* INDICATE THE I/O ERROR */ 01690000 * PCBRPB='1'B; /* SET THE FREE ROOT PCB FLAG */ 01691000 L @10,PCBRPTR(,PCBPTR) 0539 01692000 OI PCBRFAIL(@10),B'00101000' 0539 01693000 * RSMFAIL='1'B; /* INDICATE THAT LSQA IS 0540 01694000 * UNAVAILABLE @Z40WPYC*/ 01695000 OI RSMFAIL(RSMHDPTR),B'00000010' 0540 01696000 * IOHOLDQF=ADDR(PCBAIA);/* PLACE AIA ON I/O HOLD 0541 01697000 * QUEUE @Z40WPYC*/ 01698000 LA @10,PCBAIA(,PCBPTR) 0541 01699000 ST @10,IOHOLDQF(,PVTPTR) 0541 01700000 * GOTO AIALOOP; /* AND GO DELETE THE AIAS */ 01701000 B AIALOOP 0542 01702000 * END; 0543 01703000 * ELSE 0544 01704000 * DO; /* NOT SWAP-IN STAGE ONE */ 01705000 @RF00535 DS 0H 0545 01706000 * IF PCBROOT='1'B THEN 0545 01707000 TM PCBROOT(PCBPTR),B'00000100' 0545 01708000 BNO @RF00545 0545 01709000 * DO; /* THERE EXISTS A ROOT PCB */ 01710000 * PCBRFAIL='1'B;/* INDICATE I/O ERROR IN ROOT PCB*/ 01711000 L @10,PCBRPTR(,PCBPTR) 0547 01712000 OI PCBRFAIL(@10),B'00001000' 0547 01713000 * PCBIOERR='1'B;/* INDICATE I/O ERROR IN PCB */ 01714000 OI PCBIOERR(PCBPTR),B'00100000' 0548 01715000 * END; 0549 01716000 * ELSE 0550 01717000 * ; 0550 01718000 @RF00545 DS 0H 0551 01719000 * END; 0551 01720000 * PTR1=PCBPTR; /* GET THE QUEUED PCB POINTER 0552 01721000 * @YA01572*/ 01722000 LR PTR1,PCBPTR 0552 01723000 * DO WHILE PTR1^=0; 0553 01724000 * 0553 01725000 B @DE00553 0553 01726000 @DL00553 DS 0H 0554 01727000 * /*****************************************************/ 01728000 * /* */ 01729000 * /* SET I/O ERROR FLAG FOR ALL THE RELATED PCBS */ 01730000 * /* */ 01731000 * /*****************************************************/ 01732000 * 0554 01733000 * PTR1->PCBIOCMP='1'B;/* INDICATE I/O COMPLETE @YA01572*/ 01734000 OI PCBIOCMP(PTR1),B'00000001' 0554 01735000 * PTR1->PCBIOERR='1'B; 0555 01736000 OI PCBIOERR(PTR1),B'00100000' 0555 01737000 * IF PTR1->PCBROOT='1'B THEN 0556 01738000 TM PCBROOT(PTR1),B'00000100' 0556 01739000 BNO @RF00556 0556 01740000 * PTR1->PCBRTPA->PCBRFAIL='1'B;/* SET THE FAIL BIT IN 01741000 * ANY ASSOCIATED ROOT PCB */ 01742000 L @10,PCBRTPA-1(,PTR1) 0557 01743000 OI PCBRFAIL(@10),B'00001000' 0557 01744000 * PTR1=PTR1->PCBRLPA; /* GET THE NEXT RELATED PCB */ 01745000 @RF00556 L @10,PCBRLPA-1(,PTR1) 0558 01746000 LA @10,0(,@10) 0558 01747000 LR PTR1,@10 0558 01748000 * END; 0559 01749000 @DE00553 LTR PTR1,PTR1 0559 01750000 BNZ @DL00553 0559 01751000 * IOHOLDQF=AIANXAIA; /* DEQUEUE THE FIRST AIA ON THE 01752000 * I/O HOLD QUEUE @Z40WPYC*/ 01753000 L @10,AIANXAIA(,PCBPTR) 0560 01754000 ST @10,IOHOLDQF(,PVTPTR) 0560 01755000 * R1=PCBPTR; /* GET PCB PTR FOR IEAVOPBR TO 0561 01756000 * SCHED IEAVIOCP @YA01572*/ 01757000 LR R1,PCBPTR 0561 01758000 * CALL IEAVOPBR; /* HAVE IEAVIOCP SCHEDULED FOR 0562 01759000 * THIS ADDRESS SPACE @YA01572*/ 01760000 L @15,PVTPOPBR(,PVTPTR) 0562 01761000 BALR @14,@15 0562 01762000 * GOTO CALLASM; /* AND CALL ASM, IF REQUIRED */ 01763000 B CALLASM 0563 01764000 * END; 0564 01765000 * ELSE 0565 01766000 * ; 0565 01767000 @RF00525 DS 0H 0566 01768000 * END; 0566 01769000 * ELSE 0567 01770000 * ; 0567 01771000 @RF00516 DS 0H 0568 01772000 * END; 0568 01773000 *GFAEXIT: 0569 01774000 * ; /* EXIT FROM GFA MAINLINE - 0569 01775000 * RETURN TO CALLER */ 01776000 GFAEXIT DS 0H 0570 01777000 * RCAGFA='0'B; /* RESET THE GFA ENTERED FLAG */ 01778000 L @10,RCAPTR(,PVTPTR) 0570 01779000 NI RCAGFA(@10),B'11111101' 0570 01780000 * RFY 0571 01781000 * R15 RSTD; 0571 01782000 * R15=INTRETCD; /* PASS THE RETURN CODE */ 01783000 SLR R15,R15 0572 01784000 IC R15,INTRETCD(,PVTPTR) 0572 01785000 * GENERATE; 0573 01786000 LM R4,R14,PVTWSA8(PVTPTR) RESTORE THE REQUIRED REGISTERS 01787000 BR R14 RETURN TO THE CALLER 01788000 EJECT 01789000 * RFY 0574 01790000 * (R0, 0574 01791000 * R4, 0574 01792000 * R1, 0574 01793000 * R6) UNRSTD; 0574 01794000 * 0574 01795000 * /*****************************************************************/ 01796000 * /* */ 01797000 * /* PCB RECLAIM SUBROUTINE -- CALLED BY IEAVGFA. THE RECLAIM */ 01798000 * /* ROUTINE WILL ATTEMPT TO RECOVER (IN PLACE) THE SAME FRAME */ 01799000 * /* PREVIOUSLY OCCUPIED BY THE PAGE REPRESENTED BY THE INPUT PCB */ 01800000 * /* (POINTED TO BY PCBPTR). IF RECLAIM IS POSSIBLE THE FRAME IS */ 01801000 * /* ALLOCATED TO THE INPUT PCB, AND A RETURN CODE OF ZERO IS */ 01802000 * /* GIVEN. IF RECLAIM CANNOT BE ACCOMPLISHED (FOR ONE OF MANY */ 01803000 * /* REASONS), A RETURN CODE OF 4 IS GIVEN. */ 01804000 * /* */ 01805000 * /*****************************************************************/ 01806000 * 0575 01807000 *RECLAIM: 0575 01808000 * RCLMRET=R14; /* SAVE THE CONTENTS OF REG 14 */ 01809000 RECLAIM ST R14,RCLMRET(,PVTPTR) 0575 01810000 * CANCEL='0'B; 0576 01811000 * LONGFLAG='0'B; /* RESET RECLAIM INTERNAL FLAGS */ 01812000 NI CANCEL(PVTPTR),B'00111111' 0577 01813000 * IF RBNPVTLPFN THEN 0578 01814000 CLC RBN(2,PVTPTR),PVTFPFN(PVTPTR) 0578 01815000 BL @RT00578 0578 01816000 CLC RBN(2,PVTPTR),PVTLPFN(PVTPTR) 0578 01817000 BH @RT00578 0578 01818000 * GOTO RETCDEQ4; /* IF INVALID BLOCK ADDRESS 0579 01819000 * (BLOCK #), ERROR RETURN. */ 01820000 * ELSE 0580 01821000 * DO; /* VALID VIRTUAL ADDRESS */ 01822000 * PFTEPTR=PVTPFTP+RBN; /* COMPUTE THE ADDRESS OF THE 0581 01823000 * FRAME TABLE ENTRY */ 01824000 SLR PFTEPTR,PFTEPTR 0581 01825000 ICM PFTEPTR,3,RBN(PVTPTR) 0581 01826000 AL PFTEPTR,PVTPFTP(,PVTPTR) 0581 01827000 * IF PFTIRRG='1'B|PFTVBN^=PCBVBN THEN 0582 01828000 TM PFTIRRG(PFTEPTR),B'00010000' 0582 01829000 BO @RT00582 0582 01830000 CLC PFTVBN(2,PFTEPTR),PCBVBN(PCBPTR) 0582 01831000 BNE @RT00582 0582 01832000 * GOTO RETCDEQ4; /* IF THE FRAME IS A VIO WINDOW, 01833000 * OR NO LONGER REPRESENTS THE 0583 01834000 * SAME VIRTUAL ADDRESS, ERROR 0583 01835000 * RETURN. */ 01836000 * ELSE 0584 01837000 * ; 0584 01838000 * IF PCBVBN=PVTLCSA THEN/* IF COMMON @ZA16816*/ 02172000 CLC PCBVBN(2,PCBPTR),PVTLCSA(PVTPTR) 0678 02173000 BL @RF00678 0678 02174000 * PVTCOMFX=PVTCOMFX-1;/* DEC COM CT @ZA16816*/ 02175000 LH @10,PVTCOMFX(,PVTPTR) 0679 02176000 BCTR @10,0 0679 02177000 STH @10,PVTCOMFX(,PVTPTR) 0679 02178000 * ELSE /* IF PRIVATE @ZA16816*/ 02179000 * RSMCNTFX=RSMCNTFX-1;/* DEC PRV CT @ZA16816*/ 02180000 B @RC00678 0680 02181000 @RF00678 LH @10,RSMCNTFX(,RSMHDPTR) 0680 02182000 BCTR @10,0 0680 02183000 STH @10,RSMCNTFX(,RSMHDPTR) 0680 02184000 * PVTCNTFX=PVTCNTFX-1;/* DEC SYS CT @ZA16816*/ 02185000 @RC00678 LH @10,PVTCNTFX(,PVTPTR) 0681 02186000 BCTR @10,0 0681 02187000 STH @10,PVTCNTFX(,PVTPTR) 0681 02188000 * END; /* @ZA16816*/ 02189000 * GOTO RELATE; /* @ZA16816*/ 02190000 B RELATE 0683 02191000 * END; /* @ZA16816*/ 02192000 * END; 0685 02193000 * 0686 02194000 * /*********************************************************/ 02195000 * /* */ 02196000 * /* THE VIRTUAL PAGE OWNING THE RECLAIMED FRAME IS ALREADY*/ 02197000 * /* VALID IN REAL STORAGE AND THE PAGE IS TO BE PREFERRED */ 02198000 * /* FIXED. IT IS ASSUMED THAT THE PAGE IS NOT ALREADY */ 02199000 * /* FIXED (PFTFXCT=0) AND THE REAL FRAME IS NOT IN THE */ 02200000 * /* PREFERRED AREA.THE PAGE SHOULD BE MIGRATED TO A */ 02201000 * /* PREFERRED AREA FRAME IF POSSIBLE BEFORE BEING FIXED. A*/ 02202000 * /* NON-V=R AREA FRAME WILL BE THE SECOND CHOICE. IF */ 02203000 * /* NEITHER TYPE OF FRAME IS AVAILABLE, THE PAGE WILL BE */ 02204000 * /* FIXED IN THE CURRENT FRAME IT OCCUPIES. NONE OF THE */ 02205000 * /* ABOVE CONDITIONS ARE TESTED HERE AS EITHER IEAVFXLD OR*/ 02206000 * /* IEAVSWIN HAVE ALREADY TESTED THEM. @ZA16816*/ 02207000 * /* */ 02208000 * /*********************************************************/ 02209000 * 0686 02210000 * ELSE 0686 02211000 * ; 0686 02212000 @RF00670 DS 0H 0687 02213000 * RFY 0687 02214000 * R1 RSTD; 0687 02215000 * R1=PTEPTR; 0688 02216000 L R1,PTEPTR(,PCBPTR) 0688 02217000 * CALL IEAVINV; /* INVALIDATE THE PAGE */ 02218000 L @15,PVTPINV(,PVTPTR) 0689 02219000 BALR @14,@15 0689 02220000 * R1=RBA; /* REAL ADDRESS OF THE FRAME */ 02221000 L R1,RBA(,PVTPTR) 0690 02222000 * GEN(RRB 0(R1)); /* TEST TO SEE IF THE FRAME WAS 02223000 * CHANGED */ 02224000 RRB 0(R1) 02225000 * BC(5,CHANGED); 0692 02226000 BC 5,CHANGED 0692 02227000 * GEN(RRB 2048(R1)); 0693 02228000 RRB 2048(R1) 02229000 * BC(5,CHANGED); 0694 02230000 BC 5,CHANGED 0694 02231000 * RFY 0695 02232000 * R0 RSTD; 0695 02233000 * 0695 02234000 * /*********************************************************/ 02235000 * /* */ 02236000 * /* THE FRAME HAS NOT BEEN CHANGED, MAKE IT AVAILABLE */ 02237000 * /* */ 02238000 * /*********************************************************/ 02239000 * 0696 02240000 *NOCHANGE: 0696 02241000 * ; 0696 02242000 NOCHANGE DS 0H 0697 02243000 * TOQUEUE#=PFTAFQN; 0697 02244000 MVI TOQUEUE#(PVTPTR),X'00' 0697 02245000 * RBNPARM=RBN; /* PARMS FOR IEAVPFTE */ 02246000 MVC RBNPARM(2,PVTPTR),RBN(PVTPTR) 0698 02247000 * R0=PARMPFTE; 0699 02248000 L R0,PARMPFTE(,PVTPTR) 0699 02249000 * CALL IEAVPFTE; /* SEND PFTE TO THE AVAILABLE 0700 02250000 * FRAME QUEUE */ 02251000 L @15,PVTPFTE(,PVTPTR) 0700 02252000 BALR @14,@15 0700 02253000 * GOTO RETCDEQ4; /* EXIT, INDICATE RECLAIM FAILED */ 02254000 B RETCDEQ4 0701 02255000 * 0702 02256000 * /*********************************************************/ 02257000 * /* */ 02258000 * /* THE FRAME WAS CHANGED, TRANSFER IT TO ANOTHER FRAME IF*/ 02259000 * /* IT IS NOT IN THE PLPA. */ 02260000 * /* */ 02261000 * /*********************************************************/ 02262000 * 0702 02263000 *CHANGED: 0702 02264000 * ; 0702 02265000 CHANGED DS 0H 0703 02266000 * IF PFTVBN>=PVTLQSA THEN 0703 02267000 CLC PFTVBN(2,PFTEPTR),PVTLQSA(PVTPTR) 0703 02268000 BNL @RT00703 0703 02269000 * GOTO NOCHANGE; 0704 02270000 * ELSE 0705 02271000 * ; 0705 02272000 * 0705 02273000 * /*********************************************************/ 02274000 * /* */ 02275000 * /* USE SUBROUTINE GETAPREF TO FIND A PREFERRED AREA FRAME*/ 02276000 * /* TO TAKE THE PLACE OF THE FRAME IN THE NON-PREFERRED */ 02277000 * /* AREA. IF NONE IS AVAILABLE AND THE SUBJECT FRAME IS A */ 02278000 * /* V=R, SEARCH FOR A NON-PREFERRED NON V=R TO TAKE ITS */ 02279000 * /* PLACE. IF THERE ARE NO NON-PREF NON V=R AVAILABLE, */ 02280000 * /* THEN KEEP THE ORIGINAL FRAME. @ZA16816*/ 02281000 * /* */ 02282000 * /*********************************************************/ 02283000 * 0706 02284000 * RESPECIFY 0706 02285000 * (R4, 0706 02286000 * R5) RSTD; /* @ZA16816*/ 02287000 * CALL GETAPREF; /* GET A PREFERRED FRAME @ZA16816*/ 02288000 BAL @14,GETAPREF 0707 02289000 * IF R5^=0 THEN /* IF SUCCESSFUL, GET THE 0708 02290000 * @ZA16816*/ 02291000 LTR R5,R5 0708 02292000 BZ @RF00708 0708 02293000 * R4=R5-PVTPFTP; /* RBN AND DO MOVE PAGE. @ZA16816*/ 02294000 LR R4,R5 0709 02295000 SL R4,PVTPFTP(,PVTPTR) 0709 02296000 * ELSE /* HERE IF NONE AVAILABLE 0710 02297000 * @ZA16816*/ 02298000 * DO; /* @ZA16816*/ 02299000 B @RC00708 0710 02300000 @RF00708 DS 0H 0711 02301000 * IF PFTVR='0'B THEN /* IF OLD FRAME NOT V=R, @ZA16816*/ 02302000 TM PFTVR(PFTEPTR),B'00100000' 0711 02303000 BNZ @RF00711 0711 02304000 * DO; /* CANNOT DO ANY BETTER @ZA16816*/ 02305000 * RESPECIFY 0713 02306000 * (PARM) RSTD; /* @ZA16816*/ 02307000 * PARM=PFTEPTR-PVTPFTP;/* GET RBN OF FRAME @ZA16816*/ 02308000 LR PARM,PFTEPTR 0714 02309000 SL PARM,PVTPFTP(,PVTPTR) 0714 02310000 * CALL IEAVPREF; /* CONVERT ITS BOX @ZA16816*/ 02311000 L @15,PVTPPREF(,PVTPTR) 0715 02312000 BALR @14,@15 0715 02313000 * RESPECIFY 0716 02314000 * (PARM) UNRSTD; /* @ZA16816*/ 02315000 * PGTPVM='0'B; /* REVALIDATE PAGE @ZA16816*/ 02316000 L @10,PTEPTR(,PCBPTR) 0717 02317000 NI PGTPVM(@10),B'11110111' 0717 02318000 * GOTO BUMPFIX; /* GO BUMP FIX COUNT @ZA16816*/ 02319000 B BUMPFIX 0718 02320000 * END; /* @ZA16816*/ 02321000 * 0719 02322000 * /*****************************************************/ 02323000 * /* */ 02324000 * /* THERE ARE NO PREFERRED AREA FRAMES AVAILABLE. THE */ 02325000 * /* SUBJECT FRAME HOWEVER, IS A V=R. THEREFORE, LOOK */ 02326000 * /* FOR A NON-PREFERRED NON V=R TO MIGRATE TO. */ 02327000 * /* @ZA16816*/ 02328000 * /* */ 02329000 * /*****************************************************/ 02330000 * 0720 02331000 * R5=SAVEPFTE; /* GET A NON V=R FROM AFQ 0720 02332000 * @ZA16816*/ 02333000 @RF00711 L R5,SAVEPFTE(,PVTPTR) 0720 02334000 * IF R5=0 THEN /* IF THERE WAS NONE, @ZA16816*/ 02335000 LTR R5,R5 0721 02336000 BNZ @RF00721 0721 02337000 * DO; /* USE IEAVPREF. @ZA16816*/ 02338000 * RESPECIFY 0723 02339000 * (PASS, 0723 02340000 * PARM) RSTD; /* @ZA16816*/ 02341000 * PASS=2; /* INDICATE NON-PREF PASS 0724 02342000 * @ZA16816*/ 02343000 LA PASS,2 0724 02344000 * PARM=0; /* INDICATE STEAL OPTION @ZA16816*/ 02345000 SLR PARM,PARM 0725 02346000 * CALL IEAVPREF; /* GET A NON-PREFERRED @ZA16816*/ 02347000 L @15,PVTPPREF(,PVTPTR) 0726 02348000 BALR @14,@15 0726 02349000 * IF R15^=0 THEN /* IF UNSUCCESSFUL THEN @ZA16816*/ 02350000 LTR R15,R15 0727 02351000 BZ @RF00727 0727 02352000 * DO; /* ACCEPT SUBJECT FRAME. @ZA16816*/ 02353000 * PGTPVM='0'B;/* REVALIDATE PAGE @ZA16816*/ 02354000 L @10,PTEPTR(,PCBPTR) 0729 02355000 NI PGTPVM(@10),B'11110111' 0729 02356000 * PFTVRPLT='1'B;/* V=R POLLUTED @ZA31128*/ 02357000 OI PFTVRPLT(PFTEPTR),B'00010000' 0730 02358000 * GOTO BUMPFIX;/* GO BUMP FIX COUNTS @ZA16816*/ 02359000 B BUMPFIX 0731 02360000 * END; /* @ZA16816*/ 02361000 * R5=R0; /* GET PFTE ADDRESS @ZA16816*/ 02362000 @RF00727 LR R5,R0 0733 02363000 * RESPECIFY 0734 02364000 * (PASS, 0734 02365000 * PARM) UNRSTD; /* @ZA16816*/ 02366000 * END; /* @ZA16816*/ 02367000 * R4=R5-PVTPFTP; /* GET RBN OF NEW FRAME @ZA16816*/ 02368000 @RF00721 LR R4,R5 0736 02369000 SL R4,PVTPFTP(,PVTPTR) 0736 02370000 * RESPECIFY 0737 02371000 * (PARM) RSTD; /* @ZA16816*/ 02372000 * PARM=R4; /* SET RBN FOR IEAVPREF @ZA16816*/ 02373000 LR PARM,R4 0738 02374000 * CALL IEAVPREF; /* CONVERT THE BOX @ZA16816*/ 02375000 L @15,PVTPPREF(,PVTPTR) 0739 02376000 BALR @14,@15 0739 02377000 * RESPECIFY 0740 02378000 * (PARM) UNRSTD; /* @ZA16816*/ 02379000 * END; /* @ZA16816*/ 02380000 * 0741 02381000 * /*********************************************************/ 02382000 * /* */ 02383000 * /* TRANSFER THE NEW FRAME TO THE SAME QUEUE AS THE OLD */ 02384000 * /* ONE. */ 02385000 * /* */ 02386000 * /*********************************************************/ 02387000 * 0742 02388000 *MOVEPAGE: 0742 02389000 * TOQUEUE#=PFTQNDX; /* QUEUE ID OF OLD FRAME */ 02390000 @RC00708 DS 0H 0742 02391000 MOVEPAGE MVC TOQUEUE#(1,PVTPTR),PFTQNDX(PFTEPTR) 0742 02392000 * RBNPARM=R4; /* RBN FOR PFTE MANAGER. */ 02393000 STH R4,RBNPARM(,PVTPTR) 0743 02394000 * RFY 0744 02395000 * (R0, 0744 02396000 * R1) RSTD; 0744 02397000 * R0=PARMPFTE; /* RBN AND QUEUE ID PARAMETERS */ 02398000 L R0,PARMPFTE(,PVTPTR) 0745 02399000 * R1=ASCBPTR; /* ASCB ADDRESS PARAMETER */ 02400000 L R1,ASCBPTR(,RSMHDPTR) 0746 02401000 * IF PCBSWPS1='1'B THEN /* IF STG I SWAP-IN @ZA16816*/ 02402000 TM PCBSWPS1(PCBPTR),B'00100000' 0747 02403000 BNO @RF00747 0747 02404000 * DO; /* SWITCH RSMHDPTR @ZA16816*/ 02405000 * RSMHDPTR=PSAAOLD->ASCBRSM;/* TO CURRENT FOR @ZA16816*/ 02406000 L @10,PSAAOLD 0749 02407000 L RSMHDPTR,ASCBRSM(,@10) 0749 02408000 * CALL IEAVPFTE; /* PFTE DEQ AND ENQ @ZA16816*/ 02409000 L @15,PVTPFTE(,PVTPTR) 0750 02410000 BALR @14,@15 0750 02411000 * RSMHDPTR=PCBRASCB->ASCBRSM;/* RESTORE RSMHDPTR 0751 02412000 * @ZA16816*/ 02413000 L @10,PCBRPTR(,PCBPTR) 0751 02414000 L @10,PCBRASCB(,@10) 0751 02415000 L RSMHDPTR,ASCBRSM(,@10) 0751 02416000 * END; /* @ZA16816*/ 02417000 * ELSE /* IF NOT STG I @ZA16816*/ 02418000 * CALL IEAVPFTE; /* RSMHD PTR O.K. @ZA16816*/ 02419000 * 0753 02420000 B @RC00747 0753 02421000 @RF00747 L @15,PVTPFTE(,PVTPTR) 0753 02422000 BALR @14,@15 0753 02423000 * /*********************************************************/ 02424000 * /* */ 02425000 * /* TRANSFER THE NECESSARY DATA FROM THE OLD FRAME TO THE */ 02426000 * /* NEW ONE. */ 02427000 * /* */ 02428000 * /*********************************************************/ 02429000 * 0754 02430000 * R5->PFTPGID=PFTPGID; /* ASID AND VBN OF OLD FRAME */ 02431000 @RC00747 L @10,PFTPGID(,PFTEPTR) 0754 02432000 ST @10,PFTPGID(,R5) 0754 02433000 * 0755 02434000 * /*********************************************************/ 02435000 * /* */ 02436000 * /* THE TWO FRAMES NOW BELONG EXCLUSIVELY TO IEAVGFA. THE */ 02437000 * /* DATA IN THE OLD FRAME WILL BE COPIED TO THE NEW FRAME */ 02438000 * /* AT THIS POINT. */ 02439000 * /* */ 02440000 * /*********************************************************/ 02441000 * 0755 02442000 * RFY 0755 02443000 * (R14, 0755 02444000 * R15) RSTD; 0755 02445000 * R0=R4*256; /* REAL STORAGE ADDRESS OF NEW 0756 02446000 * PAGE */ 02447000 LR R0,R4 0756 02448000 SLA R0,8 0756 02449000 * R1=4096; /* LENGTH OF THE NEW PAGE. */ 02450000 L R1,@CF02220 0757 02451000 * R14=RBA; /* REAL STORAGE ADDRESS OF THE 0758 02452000 * OLD PAGE. */ 02453000 * 0758 02454000 L R14,RBA(,PVTPTR) 0758 02455000 * /*********************************************************/ 02456000 * /* */ 02457000 * /* THE MOVE WILL BE ACCOMPLISHED WITH ADDRESS TRANSLATION*/ 02458000 * /* OFF, SINCE THE TWO PAGES HAVE EFFECTIVELY THE SAME */ 02459000 * /* VIRTUAL ADDRESS. @ZA30323*/ 02460000 * /* */ 02461000 * /*********************************************************/ 02462000 * 0759 02463000 * RFY 0759 02464000 * (R13) RSTD; 0759 02465000 * R13=XPTPROT; /* GET THE PROTECT KEY FOR THIS 02466000 * PAGE. */ 02467000 L @10,XPTEPTR(,PCBPTR) 0760 02468000 SLR R13,R13 0760 02469000 IC R13,XPTPROT(,@10) 0760 02470000 * GENERATE CODE NOFLOWS REFS(TEMPSAVE); 0761 02471000 LR R15,R0 GET THE NEW PAGE ADDRESS FOR SSK 02472000 SSK R13,R15 SET THE PROTECT KEY OF THE NEW PAGE 02473000 LA R15,2048(R15) SET IT FOR BOTH HALVES 02474000 SSK R13,R15 02475000 LR R15,R1 COPY THE PAGE LENGTH FOR THE FROM FIELD 02476000 STNSM TEMPSAVE(PVTPTR),X'FB' TURN DAT OFF @ZA30323 02477000 MVCL R0,R14 TRANSFER THE PAGE 02478000 STOSM TEMPSAVE(PVTPTR),X'04' TURN DAT ON @ZA30323 02479000 * RFY 0762 02480000 * (R13, 0762 02481000 * R14, 0762 02482000 * R15) UNRSTD; 0762 02483000 * PVTMVCLC=PVTMVCLC+1; /* INCR MOVE PAGE COUNT @ZA16816*/ 02484000 * 0763 02485000 LA @10,1 0763 02486000 AL @10,PVTMVCLC(,PVTPTR) 0763 02487000 ST @10,PVTMVCLC(,PVTPTR) 0763 02488000 * /*********************************************************/ 02489000 * /* */ 02490000 * /* RETURN THE OLD FRAME TO THE AVAILABLE FRAME QUEUE. */ 02491000 * /* */ 02492000 * /*********************************************************/ 02493000 * 0764 02494000 * RBNPARM=RBN; /* RBN PARAMETER FOR PFTE 0764 02495000 * MANAGER. */ 02496000 MVC RBNPARM(2,PVTPTR),RBN(PVTPTR) 0764 02497000 * RBN=R4; /* SAVE THE RBN OF THE NEW FRAME.*/ 02498000 STCM R4,3,RBN(PVTPTR) 0765 02499000 * TOQUEUE#=PFTAFQN; /* AVAILABLE FRAME QUEUE ID 0766 02500000 * PARAMETER. */ 02501000 MVI TOQUEUE#(PVTPTR),X'00' 0766 02502000 * R0=PARMPFTE; /* PARAMETERS FOR PFTE MANAGER. */ 02503000 L R0,PARMPFTE(,PVTPTR) 0767 02504000 * R1=ASCBPTR; /* ASCB ADDRESS PARAMETER. */ 02505000 L R1,ASCBPTR(,RSMHDPTR) 0768 02506000 * CALL IEAVPFTE; /* FREE THE OLD FRAME. */ 02507000 L @15,PVTPFTE(,PVTPTR) 0769 02508000 BALR @14,@15 0769 02509000 * PFTEPTR=R5; /* SET UP TO ADDRESS NEW PFTE 0770 02510000 * NORMALLY. */ 02511000 LR PFTEPTR,R5 0770 02512000 * RFY 0771 02513000 * (R0, 0771 02514000 * R1, 0771 02515000 * R4, 0771 02516000 * R5, 0771 02517000 * R6) UNRSTD; 0771 02518000 * 0771 02519000 * /*********************************************************/ 02520000 * /* */ 02521000 * /* NOW FINISH THE JOB OF REAL FRAME ASSIGNMENT. */ 02522000 * /* */ 02523000 * /*********************************************************/ 02524000 * 0772 02525000 * PFTIRRG='0'B; /* TURN OFF IRREG FLAG TO PREVENT 02526000 * VIO RECLAIM OF FRAME @YM07910*/ 02527000 NI PFTIRRG(PFTEPTR),B'11101111' 0772 02528000 * PGTRSA=RBN+PGTPAMB; /* ASSIGN THE PAGE AND VALIDATE 02529000 * IT */ 02530000 L @10,PTEPTR(,PCBPTR) 0773 02531000 LA @06,1 0773 02532000 SLR @15,@15 0773 02533000 ICM @15,3,RBN(PVTPTR) 0773 02534000 ALR @06,@15 0773 02535000 STCM @06,3,PGTRSA(@10) 0773 02536000 * PCBRBN=RBN; /* ASSIGN THE PAGE TO THE PCB. */ 02537000 MVC PCBRBN(2,PCBPTR),RBN(PVTPTR) 0774 02538000 * 0775 02539000 * /*********************************************************/ 02540000 * /* */ 02541000 * /* ANY NECESSARY FIX PROCESSING IS COMPLETED NOW AND THE */ 02542000 * /* FINAL TESTS IN THE FIRST PHASE OF RECLAIM PROCESSING */ 02543000 * /* PERFORMED TO DECIDE WHETHER OR NOT RELATE PROCESSING */ 02544000 * /* IS NECESSARY */ 02545000 * /* */ 02546000 * /*********************************************************/ 02547000 * 0775 02548000 *BUMPFIX: 0775 02549000 * IF PFTFXCT=0 /* IS THIS FRAME ABOUT TO BE 0775 02550000 * FIXED FOR THE FIRST TIME 0775 02551000 * @YA01572*/ 02552000 * THEN 0775 02553000 BUMPFIX LH @10,PFTFXCT(,PFTEPTR) 0775 02554000 LTR @10,@10 0775 02555000 BNZ @RF00775 0775 02556000 * DO; /* YES, UPDATE FIX COUNTERS 0776 02557000 * @YA01572*/ 02558000 * COUNTSET='1'B; /* SET FLAG INDICATING COUNTS 0777 02559000 * HAVE BEEN UPDATED @YA01572*/ 02560000 * 0777 02561000 OI COUNTSET(PVTPTR),B'00010000' 0777 02562000 * /*****************************************************/ 02563000 * /* */ 02564000 * /* NOTE, THIS FLAG WILL BE TESTED IF AN OUTPUT PCB IS*/ 02565000 * /* FOUND ON AN I/O QUEUE WITH PCBNOREC ON. IN THIS */ 02566000 * /* CASE, THE COUNTERS WILL BE DECREMENTED */ 02567000 * /* */ 02568000 * /*****************************************************/ 02569000 * 0778 02570000 * PVTCNTFX=PVTCNTFX+1;/* INCREMENT THE GLOBAL COUNT 0778 02571000 * @YA01572*/ 02572000 LA @10,1 0778 02573000 LH @06,PVTCNTFX(,PVTPTR) 0778 02574000 ALR @06,@10 0778 02575000 STH @06,PVTCNTFX(,PVTPTR) 0778 02576000 * IF PCBVBN>=PVTLCSA THEN/* PCB FOR COMMON AREA PAGE 0779 02577000 * @YA01572*/ 02578000 CLC PCBVBN(2,PCBPTR),PVTLCSA(PVTPTR) 0779 02579000 BL @RF00779 0779 02580000 * PVTCOMFX=PVTCOMFX+1;/* INCREMENT COMMON AREA COUNT 02581000 * @YA01572*/ 02582000 AH @10,PVTCOMFX(,PVTPTR) 0780 02583000 STH @10,PVTCOMFX(,PVTPTR) 0780 02584000 * ELSE 0781 02585000 * RSMCNTFX=RSMCNTFX+1;/* INCREMENT LOCAL COUNT 0781 02586000 * @YA01572*/ 02587000 B @RC00779 0781 02588000 @RF00779 LA @10,1 0781 02589000 AH @10,RSMCNTFX(,RSMHDPTR) 0781 02590000 STH @10,RSMCNTFX(,RSMHDPTR) 0781 02591000 * IF PVTCNTFX=PVTMAXFX THEN/* HAS THE FIX COUNT 0782 02592000 * THRESHOLD BEEN REACHED */ 02593000 @RC00779 CLC PVTCNTFX(2,PVTPTR),PVTMAXFX(PVTPTR) 0782 02594000 BNE @RF00782 0782 02595000 * DO; /* YES, NOTIFY SRM @YA01572*/ 02596000 * RFY 0784 02597000 * (R1, 0784 02598000 * R13) RSTD; 0784 02599000 * R1=MAXFIXED; /* GET CODE INDICATING FIX 0785 02600000 * THRESHOLD HAS BEEN REACHED 0785 02601000 * @YA01572*/ 02602000 LA R1,4 0785 02603000 * R13=ADDR(PVTSAVE);/* GET SRM A SAVE AREA @YA01572*/ 02604000 LA R13,PVTSAVE(,PVTPTR) 0786 02605000 * GENERATE REFS(CVT,CVTPTR,CVTOPTE) SETS(R0,R14,R15); 02606000 SYSEVENT AVQLOW,ENTRY=BRANCH @YA01572 02607000 * END; 0788 02608000 * END; /* END OF PROCESSING FOR INITIAL 02609000 * FIX OF FRAME */ 02610000 @RF00782 DS 0H 0790 02611000 * PFTFXCT=PFTFXCT+PCBFXC; /* INCREMENT FIX COUNT BY THE 0790 02612000 * COUNT IN THE INPUT PCB */ 02613000 @RF00775 SLR @10,@10 0790 02614000 IC @10,PCBFXC(,PCBPTR) 0790 02615000 AH @10,PFTFXCT(,PFTEPTR) 0790 02616000 STH @10,PFTFXCT(,PFTEPTR) 0790 02617000 * IF PGTPVM='0'B THEN 0791 02618000 L @10,PTEPTR(,PCBPTR) 0791 02619000 TM PGTPVM(@10),B'00001000' 0791 02620000 BZ @RT00791 0791 02621000 * GOTO RECDISP0; /* VALID PAGE, RECLAIM 0792 02622000 * SUCCESSFUL, EXIT */ 02623000 * ELSE 0793 02624000 * GOTO RELATE; /* THE PAGE IS NOT YET VALID, 0793 02625000 * RELATE THIS PCB */ 02626000 B RELATE 0793 02627000 * END; 0794 02628000 * END; 0795 02629000 @RC00588 DS 0H 0796 02630000 * 0796 02631000 * /*****************************************************************/ 02632000 * /* */ 02633000 * /* THIS ROUTINE WILL ATTEMPT TO RELATE THE INPUT PCB TO ONE */ 02634000 * /* ALREADY ON AN I/O QUEUE --- EITHER THE LOCAL I/O QUEUE */ 02635000 * /* (ADDRESS SPACE ORIENTED) OR THE COMMON I/O QUEUE (SYSTEM */ 02636000 * /* ORIENTED) WILL BE SEARCHED, DEPENDING UPON WHETHER THE VIRTUAL*/ 02637000 * /* ADDRESS REFERENCED RESIDES IN THE PRIVATE AREA OR COMMON AREA,*/ 02638000 * /* RESPECTIVELY. */ 02639000 * /* */ 02640000 * /*****************************************************************/ 02641000 * 0796 02642000 *RELATE: 0796 02643000 * ; 0796 02644000 RELATE DS 0H 0797 02645000 * IF PFTPCBSI='0'B THEN 0797 02646000 TM PFTPCBSI(PFTEPTR),B'00001000' 0797 02647000 BZ @RT00797 0797 02648000 * GOTO CODABEND; /* IF NO PCB ALREADY EXISTS FOR 02649000 * THIS FRAME, THEN GO TO 0798 02650000 * CODABEND */ 02651000 * ELSE 0799 02652000 * ; 0799 02653000 * 0799 02654000 * /*****************************************************************/ 02655000 * /* */ 02656000 * /* ATTEMPT TO RELATE THIS PCB TO ONE ALREADY ON AN I/O QUEUE */ 02657000 * /* */ 02658000 * /*****************************************************************/ 02659000 * 0800 02660000 * IF PCBVBNPCBVBN THEN 0804 02675000 CLC PCBVBN(2,PCBPTR),PCBVBN(PTR1) 0804 02676000 BNE @RF00804 0804 02677000 * DO; /* THE PCBS MATCH (THEIR VIRTUAL 02678000 * ADDRESSES ARE EQUAL ) */ 02679000 * GEN REFS(R15,PTR1,GFARECLM) SETS(R15,PCB); 0806 02680000 * /* @Z40WPYC */ 02681000 TRACEZG2 EQU * INDICATE FRAME RECLAIMED @Z40WPYC 02682000 B *+16 BRANCH AROUND PCB TRACE @Z40WPYC 02683000 L R15,68(PTR1) GET CURRENT COUNT @Z40WPYC 02684000 AL R15,GFARECLM INCREMENT BY 1 @Z40WPYC 02685000 ST R15,68(PTR1) STORE NEW COUNT @Z40WPYC 02686000 * IF CANCEL='1'B THEN 0807 02687000 TM CANCEL(PVTPTR),B'01000000' 0807 02688000 BNO @RF00807 0807 02689000 * DO; 0808 02690000 * 0808 02691000 * /*******************************************************/ 02692000 * /* */ 02693000 * /* RECLAIM HAS BEEN CANCELLED @ZA16816*/ 02694000 * /* */ 02695000 * /*******************************************************/ 02696000 * 0809 02697000 * IF PTR1->PCBIOI='0'B THEN 0809 02698000 TM PCBIOI(PTR1),B'00000010' 0809 02699000 BNZ @RF00809 0809 02700000 * DO; 0810 02701000 * 0810 02702000 * /***************************************************/ 02703000 * /* */ 02704000 * /* INPUT IS GOING ON. CANCEL IT BY NOP'ING THE PCB */ 02705000 * /* ON THE I/O QUEUE. BUILD A NEW PCB REFLECTING */ 02706000 * /* THIS PCB AND RELATE IT TO THE INPUT PCB. THEN GO*/ 02707000 * /* THROUGH NORMAL GFA ALLOCATION FOR THE INPUT PCB */ 02708000 * /* WHERE A PREFERRED FRAME SHOULD BE ALLOCATED AND */ 02709000 * /* INPUT RESTARTED FOR THE VIRTUAL PAGE. @ZA16816*/ 02710000 * /* */ 02711000 * /***************************************************/ 02712000 * 0811 02713000 * RESPECIFY 0811 02714000 * (R0, 0811 02715000 * R1) RSTD; /* @ZA16816*/ 02716000 * R0=1; /* REQUEST ONE PCB @ZA16816*/ 02717000 LA R0,1 0812 02718000 * R1=0; /* INDICATE BUILD OPTION @ZA16816*/ 02719000 SLR R1,R1 0813 02720000 * CALL IEAVPCB; /* GET A PCB @ZA16816*/ 02721000 L @15,PVTPCB(,PVTPTR) 0814 02722000 BALR @14,@15 0814 02723000 * IF R15=0 THEN /* IF GOT A PCB, @ZA16816*/ 02724000 SLR @14,@14 0815 02725000 CR R15,@14 0815 02726000 BNE @RF00815 0815 02727000 * DO; /* CONTINUE WITH CANCEL @ZA16816*/ 02728000 * 0816 02729000 * /***********************************************/ 02730000 * /* */ 02731000 * /* TO REFLECT THE I/O Q PCB IN THE NEW PCB, */ 02732000 * /* COPY ALL FIELDS EXCEPT THE CHAIN POINTERS. */ 02733000 * /* NOTE, THAT THIS ALSO WILL CAUSE ANY RELATED */ 02734000 * /* PCBS TO NOW BE RELATED TO THE NEW PCB. */ 02735000 * /* @ZA16816*/ 02736000 * /* */ 02737000 * /***********************************************/ 02738000 * 0817 02739000 * R1->PCBCOPY=PTR1->PCBCOPY;/* COPY I/O Q PCB 0817 02740000 * @ZA16816*/ 02741000 * 0817 02742000 MVC PCBCOPY(28,R1),PCBCOPY(PTR1) 0817 02743000 * /***********************************************/ 02744000 * /* */ 02745000 * /* NEXT, NOP THE PCB ON THE I/O QUEUE @ZA16816*/ 02746000 * /* */ 02747000 * /***********************************************/ 02748000 * 0818 02749000 * PTR1->PCBFREAL='1'B;/* FREE PFTE ON I/O 0818 02750000 * COMPLETION @ZA16816*/ 02751000 * PTR1->PCBRESET='0'B;/* NO RESET NEEDED @ZA16816*/ 02752000 OI PCBFREAL(PTR1),B'10000000' 0819 02753000 NI PCBRESET(PTR1),B'11101111' 0819 02754000 * PTR1->PCBROOT='0'B;/* NO ROOT EXIT NEEDED 0820 02755000 * @ZA16816*/ 02756000 NI PCBROOT(PTR1),B'11111011' 0820 02757000 * PTR1->PCBRLPA=0;/* NO RELATED PCBS @ZA16816*/ 02758000 STCM @14,7,PCBRLPA(PTR1) 0821 02759000 * PTR1->PCBVBN=0;/* NO VBN @ZA16816*/ 02760000 * 0822 02761000 STH @14,PCBVBN(,PTR1) 0822 02762000 * /***********************************************/ 02763000 * /* */ 02764000 * /* FINALLY, RELATE THE NEW PCB TO THE INPUT PCB*/ 02765000 * /* @ZA16816*/ 02766000 * /* */ 02767000 * /***********************************************/ 02768000 * 0823 02769000 * PCBRLPA=R1; /* @ZA16816*/ 02770000 STCM R1,7,PCBRLPA(PCBPTR) 0823 02771000 * GOTO RETCDEQ4;/* REJECT THE RECLAIM @ZA16816*/ 02772000 B RETCDEQ4 0824 02773000 * END; /* END SUCCESSFUL CANCEL @ZA16816*/ 02774000 * ELSE /* CANNOT GET A PCB @ZA16816*/ 02775000 * DO; /* CONTINUE WITH RECLAIM @ZA16816*/ 02776000 @RF00815 DS 0H 0827 02777000 * IF PCBFXC=0 THEN/* IF NOT A FIX RQST @ZA16816*/ 02778000 CLI PCBFXC(PCBPTR),0 0827 02779000 BE @RT00827 0827 02780000 * GOTO IMMTEST;/* CONTINUE @ZA16816*/ 02781000 * 0828 02782000 * /***********************************************/ 02783000 * /* */ 02784000 * /* IF CANCEL DUE TO A PREFERRED AREA FIX, */ 02785000 * /* CONVERT THE BOX IF A NON V=R FRAME AND THEN */ 02786000 * /* CONTINUE WITH THE RECLAIM. @ZA16816*/ 02787000 * /* */ 02788000 * /***********************************************/ 02789000 * 0829 02790000 * IF PCBPREFR='1'B&PFTVR='0'B THEN/* IF NOT A V=R 02791000 * @ZA16816*/ 02792000 TM PCBPREFR(PCBPTR),B'00001000' 0829 02793000 BNO @RF00829 0829 02794000 TM PFTVR(PFTEPTR),B'00100000' 0829 02795000 BNZ @RF00829 0829 02796000 * DO; /* CONVERT BOX @ZA16816*/ 02797000 * RESPECIFY 0831 02798000 * (PARM) RSTD;/* @ZA16816*/ 02799000 * PARM=PCBRBN;/* GET RBN @ZA16816*/ 02800000 LH PARM,PCBRBN(,PCBPTR) 0832 02801000 N PARM,@CF02300 0832 02802000 * CALL IEAVPREF;/* CONVERT @ZA16816*/ 02803000 L @15,PVTPPREF(,PVTPTR) 0833 02804000 BALR @14,@15 0833 02805000 * RESPECIFY 0834 02806000 * (PARM) UNRSTD;/* @ZA16816*/ 02807000 * END; 0835 02808000 * IF PCBPREFR='1'B THEN/* IF PREFERRED FIX THEN 02809000 * @ZA16816*/ 02810000 @RF00829 TM PCBPREFR(PCBPTR),B'00001000' 0836 02811000 BNO @RF00836 0836 02812000 * DO; /* UPDATE FIX CNTRS @ZA16816*/ 02813000 * PVTCNTFX=PVTCNTFX+1;/* INCREMENT THE GLOBAL 02814000 * COUNT @YA01572*/ 02815000 LA @10,1 0838 02816000 LH @06,PVTCNTFX(,PVTPTR) 0838 02817000 ALR @06,@10 0838 02818000 STH @06,PVTCNTFX(,PVTPTR) 0838 02819000 * IF PCBVBN>=PVTLCSA THEN/* PCB FOR COMMON 0839 02820000 * AREA PAGE @YA01572*/ 02821000 CLC PCBVBN(2,PCBPTR),PVTLCSA(PVTPTR) 0839 02822000 BL @RF00839 0839 02823000 * PVTCOMFX=PVTCOMFX+1;/* INCREMENT COMMON 02824000 * AREA COUNT @YA01572*/ 02825000 AH @10,PVTCOMFX(,PVTPTR) 0840 02826000 STH @10,PVTCOMFX(,PVTPTR) 0840 02827000 * ELSE 0841 02828000 * RSMCNTFX=RSMCNTFX+1;/* INCREMENT LOCAL 0841 02829000 * COUNT @YA01572*/ 02830000 B @RC00839 0841 02831000 @RF00839 LA @10,1 0841 02832000 AH @10,RSMCNTFX(,RSMHDPTR) 0841 02833000 STH @10,RSMCNTFX(,RSMHDPTR) 0841 02834000 * IF PVTCNTFX=PVTMAXFX THEN/* HAS THE FIX 0842 02835000 * COUNT THRESHOLD BEEN REACHED */ 02836000 @RC00839 CLC PVTCNTFX(2,PVTPTR),PVTMAXFX(PVTPTR) 0842 02837000 BNE @RF00842 0842 02838000 * DO; /* YES, NOTIFY SRM @YA01572*/ 02839000 * RFY 0844 02840000 * (R1, 0844 02841000 * R13) RSTD; 0844 02842000 * R1=MAXFIXED;/* GET CODE INDICATING FIX 02843000 * THRESHOLD HAS BEEN REACHED 0845 02844000 * @YA01572*/ 02845000 LA R1,4 0845 02846000 * R13=ADDR(PVTSAVE);/* GET SRM A SAVE 0846 02847000 * AREA @YA01572*/ 02848000 LA R13,PVTSAVE(,PVTPTR) 0846 02849000 * GENERATE REFS(CVT,CVTPTR,CVTOPTE) SETS(R0 02850000 * ,R14,R15); 0847 02851000 SYSEVENT AVQLOW,ENTRY=BRANCH @YA01572 02852000 * END; /* @ZA16816*/ 02853000 * END; /* END OF PROCESSING FOR INITIAL 02854000 * FIX OF FRAME */ 02855000 @RF00842 DS 0H 0850 02856000 * PFTFXCT=PFTFXCT+PCBFXC;/* INITIALIZE THE FIX 0850 02857000 * COUNT @ZA16816*/ 02858000 @RF00836 SLR @10,@10 0850 02859000 IC @10,PCBFXC(,PCBPTR) 0850 02860000 AH @10,PFTFXCT(,PFTEPTR) 0850 02861000 STH @10,PFTFXCT(,PFTEPTR) 0850 02862000 * GOTO IMMTEST; /* TAKE THE FRAME, IMMEDIATE 0851 02863000 * RECLAIM MAY BE POSSIBLE, IF 0851 02864000 * THE I/O IS COMPLETE WITHOUT 0851 02865000 * ERROR. */ 02866000 B IMMTEST 0851 02867000 * END; /* @ZA16816*/ 02868000 * RESPECIFY 0853 02869000 * (R0, 0853 02870000 * R1) UNRSTD; /* @ZA16816*/ 02871000 * END; /* END CANCEL WHILE INBOUND 0854 02872000 * @ZA16816*/ 02873000 * ELSE 0855 02874000 * ; /* PAGE-OUT REQUEST, RECLAIM IS 02875000 * NOT POSSIBLE, INITIALIZE THE 02876000 * RELATED QUEUE */ 02877000 @RF00809 DS 0H 0856 02878000 * PTR1->PCBNOREC='1'B; /* INDICATE THAT THE OUTPUT PCB 02879000 * IS NOT RECLAIMABLE UNTIL THE 02880000 * OUTPUT I/O COMPLETES. @Z40WPYC*/ 02881000 OI PCBNOREC(PTR1),B'00000100' 0856 02882000 * PTR1->PCBFREAL='1'B; /* SET FREE REAL STOR FLAG IN 0857 02883000 * CASE PGOUT WITH KEEPREAL 0857 02884000 * SPECIFIED @Z40WPYC*/ 02885000 OI PCBFREAL(PTR1),B'10000000' 0857 02886000 * NORECPCB=PTR1; /* SAVE PTR TO NON-RECLAIMABLE 0858 02887000 * PCB FOR MAINLIN ALLOCATION 0858 02888000 * @Z40WPYC*/ 02889000 ST PTR1,NORECPCB(,PVTPTR) 0858 02890000 * CALL GETGFAD; /* OBTAIN RELATEDS @Z40WPYC*/ 02891000 BAL @14,GETGFAD 0859 02892000 * GOTO RETCDEQ4; /* ATTEMPT FRAME ALLOCATION 0860 02893000 * @Z40WPYC*/ 02894000 B RETCDEQ4 0860 02895000 * END; /* END CANCEL PROCESSING @ZA16816*/ 02896000 * ELSE 0862 02897000 * ; /* RECLAIM HAS NOT BEEN CANCELED */ 02898000 @RF00807 DS 0H 0863 02899000 * IF PTR1->PCBIOI='1'B THEN 0863 02900000 TM PCBIOI(PTR1),B'00000010' 0863 02901000 BNO @RF00863 0863 02902000 * DO; /* THIS IS A PAGE OUT */ 02903000 * IF PFTSTEAL='1'B THEN 0865 02904000 TM PFTSTEAL(PFTEPTR),B'00001000' 0865 02905000 BNO @RF00865 0865 02906000 * DO; /* IF THE FRAME IS MARKED PENDING 02907000 * STEAL */ 02908000 * PFTSTEAL='0'B; /* REMOVE THE FRAME FROM THE 0867 02909000 * PENDING STEAL STATUS */ 02910000 NI PFTSTEAL(PFTEPTR),B'11110111' 0867 02911000 * PFTUIC=0; /* ZERO THE UNREFERENCED INTERVAL 02912000 * COUNT */ 02913000 MVI PFTUIC(PFTEPTR),X'00' 0868 02914000 * END; 0869 02915000 * ELSE 0870 02916000 * ; 0870 02917000 @RF00865 DS 0H 0871 02918000 * IF PTR1->PCBVIO='0'B THEN 0871 02919000 TM PCBVIO(PTR1),B'00000100' 0871 02920000 BNZ @RF00871 0871 02921000 * DO; /* THE PAGE IS OTHER THAN A VIO 02922000 * WINDOW @Z40WPYC*/ 02923000 * IF PTR1->PCBNOREC='1'B THEN/* IF THIS PCB HAS BEEN 02924000 * MARKED NON-RECLAIMABLE DO NOT 02925000 * FREE THE AUX STOR COPY 0873 02926000 * @Z40WPYC*/ 02927000 TM PCBNOREC(PTR1),B'00000100' 0873 02928000 BNO @RF00873 0873 02929000 * DO; /* PCB IS NON-RECLAIMABLE 0874 02930000 * @Z40WPYC*/ 02931000 * NORECPCB=PTR1;/* SAVE PTR TO THE NON - 0875 02932000 * RECLAIMABLE PCB FOR MAINLINE 02933000 * ALLOCATION @Z40WPYC*/ 02934000 ST PTR1,NORECPCB(,PVTPTR) 0875 02935000 * CALL GETGFAD; /* OBTAIN RELATEDS. THESE PCBS 0876 02936000 * MAY BE PLACED BACK ON THE 0876 02937000 * DEFER QUEUE IF A FRAME IS NOT 02938000 * AVAILABLE TO SATISFY THE 0876 02939000 * REQUEST @Z40WPYC*/ 02940000 BAL @14,GETGFAD 0876 02941000 * IF COUNTSET='1'B THEN 0877 02942000 TM COUNTSET(PVTPTR),B'00010000' 0877 02943000 BNO @RF00877 0877 02944000 * DO; /* DECREMENT COUNTS IF THEY HAVE 02945000 * BEEN UPDATED @YA01572*/ 02946000 * IF PCBVBN>=PVTLCSA THEN 0879 02947000 CLC PCBVBN(2,PCBPTR),PVTLCSA(PVTPTR) 0879 02948000 BL @RF00879 0879 02949000 * PVTCOMFX=PVTCOMFX-1;/* IF COMMON AREA, 0880 02950000 * DECREMENT COMMON AREA COUNT 0880 02951000 * @YA01572*/ 02952000 LH @10,PVTCOMFX(,PVTPTR) 0880 02953000 BCTR @10,0 0880 02954000 STH @10,PVTCOMFX(,PVTPTR) 0880 02955000 * ELSE 0881 02956000 * RSMCNTFX=RSMCNTFX-1;/* DECREMENT COUNT 0881 02957000 * FOR THIS ADDRESS SPACE 0881 02958000 * @YA01572*/ 02959000 B @RC00879 0881 02960000 @RF00879 LH @10,RSMCNTFX(,RSMHDPTR) 0881 02961000 BCTR @10,0 0881 02962000 STH @10,RSMCNTFX(,RSMHDPTR) 0881 02963000 * PVTCNTFX=PVTCNTFX-1;/* DECREMENT SYSTEM 0882 02964000 * COUNT @YA01572*/ 02965000 @RC00879 LH @10,PVTCNTFX(,PVTPTR) 0882 02966000 BCTR @10,0 0882 02967000 STH @10,PVTCNTFX(,PVTPTR) 0882 02968000 * PFTFXCT=PFTFXCT-PCBFXC;/* ADJUST PFTE FIX 02969000 * COUNT @YA01572*/ 02970000 LH @10,PFTFXCT(,PFTEPTR) 0883 02971000 SLR @06,@06 0883 02972000 IC @06,PCBFXC(,PCBPTR) 0883 02973000 SLR @10,@06 0883 02974000 STH @10,PFTFXCT(,PFTEPTR) 0883 02975000 * END; 0884 02976000 * GOTO RETCDEQ4;/* ATTEMPT FRAME ALLOCATION 0885 02977000 * @Z40WPYC*/ 02978000 B RETCDEQ4 0885 02979000 * END; /* END NO RECLAIM @Z40WPYC*/ 02980000 * ELSE 0887 02981000 * ; /* NOP OUTPUT PCB AND VALIDATE 0887 02982000 * THE FRAME @Z40WPYC*/ 02983000 @RF00873 DS 0H 0888 02984000 * PTR1->PCBVBN=0; 0888 02985000 SLR @10,@10 0888 02986000 STH @10,PCBVBN(,PTR1) 0888 02987000 * PTR1->PCBFREAL='0'B;/* DON'T FREE REAL STORAGE ON 02988000 * PAGE-OUT */ 02989000 * PTR1->PCBSUPRS='1'B;/* SUPPRESS REAL FRAME 0890 02990000 * PROCESSING WHEN I/O COMPLETES */ 02991000 OI PCBSUPRS(PTR1),B'00001000' 0890 02992000 NI PCBFREAL(PTR1),B'01111111' 0890 02993000 * PFTPCBSI='0'B; 0891 02994000 NI PFTPCBSI(PFTEPTR),B'11110111' 0891 02995000 * PTR1->AIAFRAUX='1'B;/* TELL ASM TO FREE THE SLOT 0892 02996000 * WHEN I/O COMPLETES @Z40WPYC*/ 02997000 OI AIAFRAUX(PTR1),B'10000000' 0892 02998000 * PTR1->PCBXPTA->XPTPOINP='0'B;/* RSM MUST CLEAR THE 02999000 * XPTPOINP BIT WHEN FRAUX IS SET 03000000 * (NORMALLY DONE BY ASM). 0893 03001000 * @Z40WPYC*/ 03002000 L @10,PCBXPTA-1(,PTR1) 0893 03003000 LA @10,0(,@10) 0893 03004000 NI XPTPOINP(@10),B'11011111' 0893 03005000 * PTR1->PCBXPTA->XPTXAV='0'B;/* MUST ALSO CLEAR THE 03006000 * BIT INDICATING AUX STOR IS 0894 03007000 * VALID @Z40WPYC*/ 03008000 * 0894 03009000 NI XPTXAV(@10),B'10111111' 0894 03010000 * /***************************************************/ 03011000 * /* */ 03012000 * /* THE STORAGE KEY MAY HAVE TO BE SET ON THIS PATH */ 03013000 * /* BECAUSE THE CHANGE KEY FUNCTION COULD HAVE */ 03014000 * /* CHANGED THE KEY. @ZA12459*/ 03015000 * /* */ 03016000 * /***************************************************/ 03017000 * 0895 03018000 * IF PTR1->PCBXPTA->XPTCKF='0'B THEN/* @ZA12459*/ 03019000 TM XPTCKF(@10),B'00100000' 0895 03020000 BZ @RT00895 0895 03021000 * GOTO VALIDATE; /* EXIT WITH RECLAIMED FRAME. 0896 03022000 * XPTXAV WILL REMAIN ON AND THE 03023000 * CHANGE BIT IN THE KEY MUST 0896 03024000 * REMAIN ON IN ORDER TO PREVENT 03025000 * LOSS OF DATA. */ 03026000 * ELSE /* @ZA12459*/ 03027000 * DO; /* @ZA12459*/ 03028000 * RFY 0898 03029000 * (R15, 0898 03030000 * R1) RSTD; 0898 03031000 * R1=RBA; /* @ZA12459*/ 03032000 L R1,RBA(,PVTPTR) 0899 03033000 * R15=PTR1->PCBXPTA->XPTPROT;/* @ZA12459*/ 03034000 SLR R15,R15 0900 03035000 IC R15,XPTPROT(,@10) 0900 03036000 * R15=R15|'00000006'X;/* @ZA12459*/ 03037000 O R15,@CF02253 0901 03038000 * GEN(SSK R15,R1);/* @ZA12459*/ 03039000 SSK R15,R1 03040000 * R1=R1+2048; /* @ZA12459*/ 03041000 AL R1,@CF02222 0903 03042000 * GEN(SSK R15,R1);/* @ZA12459*/ 03043000 SSK R15,R1 03044000 * GOTO VALIDATE;/* EXIT WITH RECLAIMED FRAME. 0905 03045000 * @ZA12459*/ 03046000 B VALIDATE 0905 03047000 * RFY 0906 03048000 * (R15, 0906 03049000 * R1) UNRSTD; 0906 03050000 * END; /* @ZA12459*/ 03051000 * END; 0908 03052000 * ELSE 0909 03053000 * GOTO IMMRLATE; /* AUXILIARY STORAGE IS TO BE 0909 03054000 * SAVED. */ 03055000 * END; 0910 03056000 * ELSE 0911 03057000 * DO; /* PAGE IN REQUEST */ 03058000 @RF00863 DS 0H 0912 03059000 *IMMTEST: 0912 03060000 * ; /* TEST FOR THE ABILITY TO 0912 03061000 * INSTANTLY RECLAIM THE FRAME */ 03062000 IMMTEST DS 0H 0913 03063000 * IF PTR1->PCBIOCMP='1'B&PCBPEX='1'B&PTR1->PCBIOERR='0'B& 03064000 * PCBRESET='0'B THEN 0913 03065000 TM PCBIOCMP(PTR1),B'00000001' 0913 03066000 BNO @RF00913 0913 03067000 TM PCBPEX(PCBPTR),B'01000000' 0913 03068000 BNO @RF00913 0913 03069000 TM PCBIOERR(PTR1),B'00100000' 0913 03070000 BNZ @RF00913 0913 03071000 TM PCBRESET(PCBPTR),B'00010000' 0913 03072000 BNZ @RF00913 0913 03073000 * DO; 0914 03074000 * 0914 03075000 * /***************************************************/ 03076000 * /* */ 03077000 * /* INSTANT RECLAIM --- IF THE I/O IS COMPLETE, NO */ 03078000 * /* ERROR OCCURRED, AND THIS IS A PAGE FAULT (BUT */ 03079000 * /* THE FAULTER WAS NOT PREVIOUSLY SUSPENDED), SET */ 03080000 * /* THE KEY OF THE FRAME FROM XPTPROT AND TAKE THIS */ 03081000 * /* FRAME */ 03082000 * /* */ 03083000 * /***************************************************/ 03084000 * 0915 03085000 * RFY 0915 03086000 * (R1, 0915 03087000 * R15) RSTD; 0915 03088000 * R1=RBA; /* GET THE PAGE ADDRESS */ 03089000 L R1,RBA(,PVTPTR) 0916 03090000 * R15=XPTPROT; /* AND THE PROTECTION KEY */ 03091000 L @10,XPTEPTR(,PCBPTR) 0917 03092000 SLR R15,R15 0917 03093000 IC R15,XPTPROT(,@10) 0917 03094000 * GEN(SSK R15,R1);/* SET THE PROTECTION KEY OF THE 03095000 * PAGE */ 03096000 SSK R15,R1 03097000 * R1=R1+2048; /* SECOND HALF OF PAGE'S ADDRESS */ 03098000 AL R1,@CF02222 0919 03099000 * GEN(SSK R15,R1); 0920 03100000 SSK R15,R1 03101000 * RFY 0921 03102000 * (R15, 0921 03103000 * R1) UNRSTD; 0921 03104000 * PGTPVM='0'B; /* VALIDATE THE PAGE */ 03105000 * 0922 03106000 L @10,PTEPTR(,PCBPTR) 0922 03107000 NI PGTPVM(@10),B'11110111' 0922 03108000 * /***************************************************/ 03109000 * /* */ 03110000 * /* NOP THE PCB SO THAT IOCP WON'T PROCESS IT AGAIN */ 03111000 * /* */ 03112000 * /***************************************************/ 03113000 * 0923 03114000 * PFTPCBSI='0'B; /* REMOVE PAGE RELATIONSHIP */ 03115000 NI PFTPCBSI(PFTEPTR),B'11110111' 0923 03116000 * PTR1->PCBVBN=0; /* @YM06853*/ 03117000 SLR @10,@10 0924 03118000 STH @10,PCBVBN(,PTR1) 0924 03119000 * PTR1->PCBFREAL='0'B;/* MAKE SURE FRAME NOT FREED 0925 03120000 * @YM06853*/ 03121000 * PTR1->PCBVIO='0'B;/* PREVENT RECLAIM DUE TO PAGE 0926 03122000 * FAULT FROM VAM ASSIGN @ZA03282*/ 03123000 * 0926 03124000 NI PCBFREAL(PTR1),B'01111011' 0926 03125000 * /***************************************************/ 03126000 * /* */ 03127000 * /* @Z40WPYC*/ 03128000 * /* */ 03129000 * /***************************************************/ 03130000 * 0927 03131000 * RFY 0927 03132000 * R1 RSTD; 0927 03133000 * R1=PTR1->PCBRLPA; /* GET RELATED PCB POINTER 0928 03134000 * @YM06853*/ 03135000 L R1,PCBRLPA-1(,PTR1) 0928 03136000 LA R1,0(,R1) 0928 03137000 * DO WHILE R1^=0; /* ZERO VBN IN ALL RELATED PCBS */ 03138000 B @DE00929 0929 03139000 @DL00929 DS 0H 0930 03140000 * R1->PCBVBN=0; 0930 03141000 SLR @10,@10 0930 03142000 STH @10,PCBVBN(,R1) 0930 03143000 * R1=R1->PCBRLPA; /* PICK UP NEXT RELATED */ 03144000 L @10,PCBRLPA-1(,R1) 0931 03145000 LA @10,0(,@10) 0931 03146000 LR R1,@10 0931 03147000 * END; 0932 03148000 @DE00929 LTR R1,R1 0932 03149000 BNZ @DL00929 0932 03150000 * RFY 0933 03151000 * R1 UNRSTD; 0933 03152000 * GOTO INSTEXIT; /* EXIT WITH THE RECLAIMED FRAME */ 03153000 B INSTEXIT 0934 03154000 * END; 0935 03155000 * ELSE 0936 03156000 * ; 0936 03157000 * 0936 03158000 @RF00913 DS 0H 0937 03159000 * /*******************************************************/ 03160000 * /* */ 03161000 * /* THIS IS A PAGE OUT WITH AUX STORAGE TO BE SAVED , OR*/ 03162000 * /* THIS IS A PAGE IN WHERE THE I/O WAS NOT COMPLETE, AN*/ 03163000 * /* ERROR OCCURRED, OR THIS IS NOT A PAGE FAULT... */ 03164000 * /* SUSPEND EXECUTION OF THE FAULTER AND ADD THE PCB TO */ 03165000 * /* THE RELATED QUEUE @ZA27667*/ 03166000 * /* */ 03167000 * /*******************************************************/ 03168000 * 0937 03169000 *IMMRLATE: 0937 03170000 * ; /* INSTANT RECLAIM FAILED, RELATE 03171000 * THE PCB */ 03172000 * 0937 03173000 IMMRLATE DS 0H 0938 03174000 * /*******************************************************/ 03175000 * /* */ 03176000 * /* COPY THE I/O COMPLETION FLAGS */ 03177000 * /* */ 03178000 * /*******************************************************/ 03179000 * 0938 03180000 * IF PTR1->PCBIOCMP='1'B THEN 0938 03181000 TM PCBIOCMP(PTR1),B'00000001' 0938 03182000 BNO @RF00938 0938 03183000 * PCBIOCMP='1'B; 0939 03184000 OI PCBIOCMP(PCBPTR),B'00000001' 0939 03185000 * ELSE 0940 03186000 * ; 0940 03187000 @RF00938 DS 0H 0941 03188000 * IF PTR1->PCBIOERR='1'B THEN 0941 03189000 TM PCBIOERR(PTR1),B'00100000' 0941 03190000 BNO @RF00941 0941 03191000 * PCBIOERR='1'B; 0942 03192000 OI PCBIOERR(PCBPTR),B'00100000' 0942 03193000 * ELSE 0943 03194000 * ; 0943 03195000 @RF00941 DS 0H 0944 03196000 * IF PCBPEX='1'B&PCBRESET='0'B THEN 0944 03197000 TM PCBPEX(PCBPTR),B'01000000' 0944 03198000 BNO @RF00944 0944 03199000 TM PCBRESET(PCBPTR),B'00010000' 0944 03200000 BNZ @RF00944 0944 03201000 * DO; /* THIS IS A PAGING EXCEPTION, 0945 03202000 * AND THE PAGE-FAULTER IS NOT 0945 03203000 * ALREADY SUSPENDED, SUSPEND 0945 03204000 * HIM. */ 03205000 * RFY 0946 03206000 * (R4, 0946 03207000 * R13, 0946 03208000 * R5, 0946 03209000 * R6) RSTD; 0946 03210000 * R13=ADDR(PVTSAVE); 0947 03211000 LA R13,PVTSAVE(,PVTPTR) 0947 03212000 * CALL IEAVSUSP; /* SUSPEND THE PAGE-FAULTER. */ 03213000 L @15,@CV02161 0948 03214000 BALR @14,@15 0948 03215000 * RCAPARM1=PCBPTR; /* SAVE SUSPENDED PCB ADDRESS FOR 03216000 * RECOVERY PURPUSES. */ 03217000 L @10,RCAPTR(,PVTPTR) 0949 03218000 ST PCBPTR,RCAPARM1(,@10) 0949 03219000 * RFY 0950 03220000 * R13 UNRSTD; 0950 03221000 * 0950 03222000 * /***************************************************/ 03223000 * /* */ 03224000 * /* SUSPEND EXECUTION OF FAULTER */ 03225000 * /* */ 03226000 * /***************************************************/ 03227000 * 0951 03228000 * PCBRESET='1'B; /* INDICATE SUSPENDED 0951 03229000 * PAGE-FAULTER */ 03230000 OI PCBRESET(PCBPTR),B'00010000' 0951 03231000 * IF R5=0 THEN 0952 03232000 LTR R5,R5 0952 03233000 BNZ @RF00952 0952 03234000 * DO; /* PAGE-FAULT OCCURRED UNDER AN 03235000 * SRB */ 03236000 * PCBSRB=R4; /* SAVE THE SRB ADDRESS */ 03237000 ST R4,PCBSRB(,PCBPTR) 0954 03238000 * PCBSRBMD='1'B;/* INDICATE SRB MODE */ 03239000 OI PCBSRBMD(PCBPTR),B'00100000' 0955 03240000 * PCBRTPA=R5; /* SAVE A NULL TCB ADDRESS */ 03241000 STCM R5,7,PCBRTPA(PCBPTR) 0956 03242000 * END; 0957 03243000 * ELSE 0958 03244000 * DO; /* PAGE-FAULT OCCURRED UNDER A 0958 03245000 * TCB */ 03246000 B @RC00952 0958 03247000 @RF00952 DS 0H 0959 03248000 * PCBRTPA=R4; /* SAVE THE TCB ADDRESS */ 03249000 STCM R4,7,PCBRTPA(PCBPTR) 0959 03250000 * PCBRB=R5; /* SAVE THE RB ADDR @Z40WPYC*/ 03251000 ST R5,PCBRB(,PCBPTR) 0960 03252000 * END; 0961 03253000 * IF R6=4 THEN 0962 03254000 @RC00952 C R6,@CF00085 0962 03255000 BNE @RF00962 0962 03256000 * PCBLLHLD='1'B; /* SET THE LOCAL-LOCK HELD FLAG 03257000 * IF A LOCKED PAGE-FAULT */ 03258000 OI PCBLLHLD(PCBPTR),B'00010000' 0963 03259000 * ELSE 0964 03260000 * ; 0964 03261000 @RF00962 DS 0H 0965 03262000 * END; 0965 03263000 * 0965 03264000 * /*******************************************************/ 03265000 * /* */ 03266000 * /* ADD PCB TO RELATED QUEUE @ZA27667*/ 03267000 * /* */ 03268000 * /*******************************************************/ 03269000 * 0966 03270000 * ELSE 0966 03271000 * ; 0966 03272000 @RF00944 DS 0H 0967 03273000 * DO WHILE PTR1->PCBRLPA^=0;/* FIND THE END OF THE 0967 03274000 * RELATED QUEUE @ZA27667*/ 03275000 B @DE00967 0967 03276000 @DL00967 DS 0H 0968 03277000 * PTR1=PTR1->PCBRLPA; /* @ZA27667*/ 03278000 L @10,PCBRLPA-1(,PTR1) 0968 03279000 LA @10,0(,@10) 0968 03280000 LR PTR1,@10 0968 03281000 * END; /* @ZA27667*/ 03282000 @DE00967 L @10,PCBRLPA-1(,PTR1) 0969 03283000 LA @10,0(,@10) 0969 03284000 LTR @10,@10 0969 03285000 BNZ @DL00967 0969 03286000 * PTR1->PCBRLPA=PCBPTR; /* ENQUEUE THE PCB ON THE RELATED 03287000 * QUEUE @ZA27667*/ 03288000 STCM PCBPTR,7,PCBRLPA(PTR1) 0970 03289000 * RFY 0971 03290000 * (R4, 0971 03291000 * R5, 0971 03292000 * R6) UNRSTD; 0971 03293000 * INTRETCD=4; /* SET THE EXTERNAL RETURN CODE 03294000 * TO 4 - THE PAGE-FAULTING USER 03295000 * HAS BEEN SUSPENDED, ALTHOUGH 03296000 * THE FRAME HAS BEEN 0972 03297000 * SUCCESSFULLY RECLAIMED */ 03298000 MVI INTRETCD(PVTPTR),X'04' 0972 03299000 * IF PCBSWPS2='0'B THEN /* IS THIS OTHER THAN A 0973 03300000 * STAGE2-SWAP @Z40FPYD*/ 03301000 TM PCBSWPS2(PCBPTR),B'00000001' 0973 03302000 BNZ @RF00973 0973 03303000 * DO; /* YES, THIS IS NOT A STAGE2-SWAP 03304000 * PCB */ 03305000 * IF PCBSWPS1='1'B THEN/* IS THIS A SWAP-IN @Z40FPYD*/ 03306000 TM PCBSWPS1(PCBPTR),B'00100000' 0975 03307000 BNO @RF00975 0975 03308000 * PVTSPIN=PVTSPIN-1;/* YES, DECREMENT SWAP-IN COUNT 03309000 * @Z40FPYD*/ 03310000 L @10,PVTSPIN(,PVTPTR) 0976 03311000 BCTR @10,0 0976 03312000 ST @10,PVTSPIN(,PVTPTR) 0976 03313000 * ELSE /* NO, NOT A SWAP-IN */ 03314000 * PVTNPREC=PVTNPREC+1;/* COUNT THE RECLAIM */ 03315000 B @RC00975 0977 03316000 @RF00975 LA @10,1 0977 03317000 AL @10,PVTNPREC(,PVTPTR) 0977 03318000 ST @10,PVTNPREC(,PVTPTR) 0977 03319000 * IF PCBVBNPCBFQPA; /* GET THE NEXT PCB ON THE QUEUE */ 03354000 @RF00804 DS 0H 0988 03355000 NEXTPCB L @10,PCBFQPA-1(,PTR1) 0988 03356000 LA @10,0(,@10) 0988 03357000 LR PTR1,@10 0988 03358000 * END; 0989 03359000 @DE00803 LTR PTR1,PTR1 0989 03360000 BNZ @DL00803 0989 03361000 * 0990 03362000 * /*****************************************************************/ 03363000 * /* */ 03364000 * /* ERROR, NO MATCH COULD BE FOUND ON THE I/O QUEUE */ 03365000 * /* */ 03366000 * /*****************************************************************/ 03367000 * 0990 03368000 *CODABEND: 0990 03369000 * RCARCRD=UNRELATD; 0990 03370000 CODABEND L @10,RCAPTR(,PVTPTR) 0990 03371000 MVI RCARCRD(@10),X'07' 0990 03372000 * GEN(ABEND X'C0D',,,SYSTEM); 0991 03373000 ABEND X'C0D',,,SYSTEM 03374000 * IF PGTPVM='0'B THEN 0992 03375000 L @10,PTEPTR(,PCBPTR) 0992 03376000 TM PGTPVM(@10),B'00001000' 0992 03377000 BZ @RT00992 0992 03378000 * GOTO INSTEXIT; /* VALID PAGE, EXIT */ 03379000 * ELSE 0994 03380000 * PGTRSA=PGTPAMB+PGTPVMB; /* INDICATE PAGE ASSIGNED, BUT 0994 03381000 * NOT VALID */ 03382000 MVC PGTRSA(2,@10),@CH00032 0994 03383000 *RETCDEQ4: 0995 03384000 * ; /* EXIT WITH RETURN CODE TO 0995 03385000 * INDICATE ASYNCHRONOUS 0995 03386000 * COMPLETIONOF THE REQUEST */ 03387000 RETCDEQ4 DS 0H 0996 03388000 * R14=RCLMRET; /* RESTORE RETURN ADDRESS */ 03389000 L R14,RCLMRET(,PVTPTR) 0996 03390000 * GENERATE; 0997 03391000 LA R15,4 RECLAIM FAILED ERROR CODE 03392000 BR R14 RETURN TO THE CALLER 03393000 * 0998 03394000 */* ******************************************************************/ 03395000 */* */ 03396000 */* GETAPREF SUBROUTINE */ 03397000 */* */ 03398000 */* FUNCTION- WILL ATTEMPT TO LOCATE A PREFERRED AREA */ 03399000 */* FRAME WHICH CAN BE ALLOCATED. THE AFQ IS */ 03400000 */* CONSIDERED THE PRIMARY SOURCE. IF NONE CAN */ 03401000 */* BE FOUND ON THE AFQ, IEAVPREF IS USED TO */ 03402000 */* STEAL ONE FROM ANOTHER QUEUE. */ 03403000 */* */ 03404000 */* INPUT - R2 = ASSUMED TO BE RSMHD ADDR FOR CUR A.S. */ 03405000 */* UNLESS STAGE I SWAP-IN. IN THIS CASE IT */ 03406000 */* IS ASSUMED TO BE FOR THE ASCB FOR THE */ 03407000 */* SWAP-IN A.S. AS FOUND IN PCBRASCB. */ 03408000 */* R3 = ADDRESS OF PVT */ 03409000 */* R11= PCB ADDRESS */ 03410000 */* R14= RETURN ADDRESS */ 03411000 */* */ 03412000 */* OUTPUT - R5 = 0: NO PREFERRED AREA PFTE COULD BE */ 03413000 */* LOCATED. IF SAVEPFTE IS NOT ZERO, */ 03414000 */* IT WILL CONTAIN THE ADDRESS OF A */ 03415000 */* NON-PREFERRED NON V=R PFTE ON THE */ 03416000 */* AFQ. */ 03417000 */* R5 NOT 0: R5 CONTAINS THE ADDRESS OF AN */ 03418000 */* ALLOCATABLE PREFERRED AREA PFTE. */ 03419000 */* @ZA16816*/ 03420000 */* ******************************************************************/ 03421000 * 0998 03422000 *GETAPREF: 0998 03423000 * RESPECIFY 0998 03424000 * (R5, 0998 03425000 * R6) RSTD; /* @ZA16816*/ 03426000 GETAPREF DS 0H 0999 03427000 * SUBRTSAV=R14; /* SAVE RETURN ADDRESS @ZA16816*/ 03428000 ST R14,SUBRTSAV(,PVTPTR) 0999 03429000 * R5=0; /* INIT OUTPUT PFTE PTR @ZA16816*/ 03430000 SLR R5,R5 1000 03431000 * SAVEPFTE=0; /* INIT OUTPUT PFTE PTR @ZA16816*/ 03432000 SLR @10,@10 1001 03433000 ST @10,SAVEPFTE(,PVTPTR) 1001 03434000 * R6=PVTAFQF; /* GET RBN OF 1ST PFTE ON AFQ 1002 03435000 * @ZA16816*/ 03436000 LH R6,PVTAFQF(,PVTPTR) 1002 03437000 N R6,@CF02300 1002 03438000 * DO WHILE R6^=0; /* SCAN ENTIRE QUEUE @ZA16816*/ 03439000 B @DE01003 1003 03440000 @DL01003 DS 0H 1004 03441000 * R6=PVTPFTP+R6; /* GET ADDRESS OF PFTE @ZA16816*/ 03442000 AL R6,PVTPFTP(,PVTPTR) 1004 03443000 * IF R6->PFTPREF='1'B THEN /* IF PREFERRED AREA PFTE 1005 03444000 * @ZA16816*/ 03445000 TM PFTPREF(R6),B'00000100' 1005 03446000 BNO @RF01005 1005 03447000 * DO; /* THEN WANT THE PFTE - @ZA16816*/ 03448000 * R5=R6; /* SAVE PFTR ADDRESS AND @ZA16816*/ 03449000 LR R5,R6 1007 03450000 * R6=0; /* KILL THE SCAN. @ZA16816*/ 03451000 SLR R6,R6 1008 03452000 * END; /* @ZA16816*/ 03453000 * ELSE /* IF NON-PREFERRED PFTE, 1010 03454000 * @ZA16816*/ 03455000 * DO; /* LOOK FOR NON V=R @ZA16816*/ 03456000 B @RC01005 1010 03457000 @RF01005 DS 0H 1011 03458000 * IF R6->PFTVR='0'B THEN /* IF NON V=R PFTE, @ZA16816*/ 03459000 TM PFTVR(R6),B'00100000' 1011 03460000 BNZ @RF01011 1011 03461000 * SAVEPFTE=R6; /* SAVE PTR FOR OUTPUT @ZA16816*/ 03462000 ST R6,SAVEPFTE(,PVTPTR) 1012 03463000 * R6=R6->PFTFQPTR; /* GET NEXT PFTE RBN ON AFQ 1013 03464000 * @ZA16816*/ 03465000 @RF01011 LH @10,PFTFQPTR(,R6) 1013 03466000 N @10,@CF02300 1013 03467000 LR R6,@10 1013 03468000 * END; /* @ZA16816*/ 03469000 * END; /* END OF DO WHILE @ZA16816*/ 03470000 @RC01005 DS 0H 1015 03471000 @DE01003 SLR @10,@10 1015 03472000 CR R6,@10 1015 03473000 BNE @DL01003 1015 03474000 * IF R5=0 THEN /* IF NO PREF PFTE ON AFQ 1016 03475000 * @ZA16816*/ 03476000 CR R5,@10 1016 03477000 BNE @RF01016 1016 03478000 * DO; /* TRY IEAVPREF NEXT. @ZA16816*/ 03479000 * RESPECIFY 1018 03480000 * (PASS, 1018 03481000 * PARM) RSTD; /* @ZA16816*/ 03482000 * PASS=1; /* INDICATE PASS 1 @ZA16816*/ 03483000 LA PASS,1 1019 03484000 * PARM=0; /* INDICATE STEAL OPTION @ZA16816*/ 03485000 SLR PARM,PARM 1020 03486000 * CALL IEAVPREF; /* TRY TO STEAL A PREF @ZA16816*/ 03487000 L @15,PVTPPREF(,PVTPTR) 1021 03488000 BALR @14,@15 1021 03489000 * R5=R0; /* SAVE PFTE ADDRESS @ZA16816*/ 03490000 * 1022 03491000 LR R5,R0 1022 03492000 * /*************************************************************/ 03493000 * /* */ 03494000 * /* EXIT IF RETURN CODE FROM IEAVPREF IS 0 OR 4. IF 0, THEN R5*/ 03495000 * /* WILL HOLD ADDRESS OF PREFERRED AREA PFTE. IF 4, THEN R5 */ 03496000 * /* SHOULD BE SET TO ZERO. IF RETURN CODE FROM IEAVPREF IS 8, */ 03497000 * /* THEN R5 HOLDS THE ADDRESS OF PFTE FOR A PREFERRED FRAME */ 03498000 * /* WHICH IS BACKING A CHANGED PAGE. IN THIS CASE, TRY TO MOVE*/ 03499000 * /* THE PAGE INTO A SECOND FRAME THEREBY MAKING THE PREFERRED */ 03500000 * /* FRAME AVAILABLE. @ZA16816*/ 03501000 * /* */ 03502000 * /*************************************************************/ 03503000 * 1023 03504000 * IF R15^=0 THEN /* IF RC NOT 0, THEN @ZA16816*/ 03505000 LTR R15,R15 1023 03506000 BZ @RF01023 1023 03507000 * DO; /* CHECK FOR 4 OR 8 @ZA16816*/ 03508000 * IF R15=4 THEN /* IF RC=4 THEN CLEAR THE 1025 03509000 * @ZA16816*/ 03510000 C R15,@CF00085 1025 03511000 BNE @RF01025 1025 03512000 * R5=0; /* OUTPUT REG AND EXIT. @ZA16816*/ 03513000 SLR R5,R5 1026 03514000 * ELSE /* HERE IF RC=8 @ZA16816*/ 03515000 * DO; /* SET R12 = 0 OR ASCB PTR OF 1027 03516000 * @ZA16816*/ 03517000 B @RC01025 1027 03518000 @RF01025 DS 0H 1028 03519000 * R12=R1; /* ASCB OWNING R5 PFTE. @ZA16816*/ 03520000 LR R12,R1 1028 03521000 * R6=PVTPFTP+PVTAFQF; /* GET FIRST AFQ PFTE @ZA16816*/ 03522000 LH @10,PVTAFQF(,PVTPTR) 1029 03523000 N @10,@CF02300 1029 03524000 L R6,PVTPFTP(,PVTPTR) 1029 03525000 ALR R6,@10 1029 03526000 * IF PVTAFQF=0 THEN /* IF THE AFQ IS EMPTY, @ZA16816*/ 03527000 LTR @10,@10 1030 03528000 BNZ @RF01030 1030 03529000 * DO; /* USE IEAVPREF. @ZA16816*/ 03530000 * PASS=2; /* INDICATE PASS 2 @ZA16816*/ 03531000 LA PASS,2 1032 03532000 * PARM=0; /* INDICATE STEAL OPTION @ZA16816*/ 03533000 SLR PARM,PARM 1033 03534000 * CALL IEAVPREF; /* TRY TO GET A NON-PREF @ZA16816*/ 03535000 L @15,PVTPPREF(,PVTPTR) 1034 03536000 BALR @14,@15 1034 03537000 * IF R15^=0 THEN /* IF NOT SUCCESSFUL @ZA16816*/ 03538000 LTR R15,R15 1035 03539000 BZ @RF01035 1035 03540000 * DO; /* TRY FOR A V=R PFTE. @ZA16816*/ 03541000 * PASS=3; /* INDICATE PASS 3 @ZA16816*/ 03542000 LA PASS,3 1037 03543000 * PARM=0; /* INDICATE STEAL OPTION @ZA16816*/ 03544000 SLR PARM,PARM 1038 03545000 * CALL IEAVPREF;/* TRY TO GET A V=R PFTE 1039 03546000 * @ZA16816*/ 03547000 L @15,PVTPPREF(,PVTPTR) 1039 03548000 BALR @14,@15 1039 03549000 * IF R15^=0 THEN/* IF STILL UNSUCCESSFUL, 1040 03550000 * @ZA16816*/ 03551000 LTR R15,R15 1040 03552000 BZ @RF01040 1040 03553000 * DO; /* THEN @ZA16816*/ 03554000 * R5=0; /* INDICATE FAILURE, @ZA16816*/ 03555000 SLR R5,R5 1042 03556000 * R14=SUBRTSAV;/* RESTORE RETURN ADDR, 1043 03557000 * @ZA16816*/ 03558000 L R14,SUBRTSAV(,PVTPTR) 1043 03559000 * GEN(BR R14);/* RETURN TO CALLER @ZA16816*/ 03560000 BR R14 03561000 * END; /* @ZA16816*/ 03562000 * END; /* @ZA16816*/ 03563000 @RF01040 DS 0H 1047 03564000 * R6=R0; /* SAVE PFTE ADDRESS @ZA16816*/ 03565000 @RF01035 LR R6,R0 1047 03566000 * END; /* @ZA16816*/ 03567000 * 1048 03568000 * /*****************************************************/ 03569000 * /* */ 03570000 * /* AT THIS POINT, R5 POINTS TO A CHANGED PREFERRED */ 03571000 * /* AREA FRAME AND R6 POINTS TO A NON-PREFERRED, BUT */ 03572000 * /* AVAILABLE FRAME. MOVE THE R5 PAGE TO THE R6 FRAME.*/ 03573000 * /* @ZA16816*/ 03574000 * /* */ 03575000 * /*****************************************************/ 03576000 * 1049 03577000 * R1=256*R5->PFTVBN; /* GET VIRTUAL ADDRESS @ZA16816*/ 03578000 @RF01030 LH R1,PFTVBN(,R5) 1049 03579000 N R1,@CF02300 1049 03580000 SLA R1,8 1049 03581000 * IF R12^=0 THEN /* IF PREF PFTE FROM A @ZA16816*/ 03582000 LTR R12,R12 1050 03583000 BZ @RF01050 1050 03584000 * DO; /* FOREIGN LFQ THEN TRAS @ZA16816*/ 03585000 * PVTTASID=R12->ASCBASID;/* SET ASID FOR RCV 1052 03586000 * @ZA16816*/ 03587000 MVC PVTTASID(2,PVTPTR),ASCBASID(R12) 1052 03588000 * LCCAASID=R12->ASCBASID;/* SET ASID FOR RTM 1053 03589000 * @ZA16816*/ 03590000 L @10,LCCAPTR 1053 03591000 XC LCCAASID+2(2,@10),LCCAASID+2(@10) 1053 03592000 MVC LCCAASID(2,@10),ASCBASID(R12) 1053 03593000 * GENERATE CODE REFS(ASCBSTOR); 1054 03594000 LCTL 1,1,ASCBSTOR(R12) -----TRAS ----- 03595000 * RSMHDPTR=R12->ASCBRSM;/* GET CORRECT RSMHD 1055 03596000 * @ZA16816*/ 03597000 L RSMHDPTR,ASCBRSM(,R12) 1055 03598000 * END; /* @ZA16816*/ 03599000 * ELSE /* IF NOT FOREIGN LFQ @ZA16816*/ 03600000 * RSMHDPTR=PSAAOLD->ASCBRSM;/* USE CURRENT @ZA16816*/ 03601000 B @RC01050 1057 03602000 @RF01050 L @10,PSAAOLD 1057 03603000 L RSMHDPTR,ASCBRSM(,@10) 1057 03604000 * CALL IEAVFP2; /* GET PGTE ADDRESS @ZA16816*/ 03605000 @RC01050 L @15,PVTPFP2(,PVTPTR) 1058 03606000 BALR @14,@15 1058 03607000 * IF R15^=0 THEN /* IF FINDPAGE FAILED, @ZA16816*/ 03608000 SLR @14,@14 1059 03609000 CR R15,@14 1059 03610000 BE @RF01059 1059 03611000 * DO; /* C0D THEN RETURN. @ZA16816*/ 03612000 * IF R12^=0 THEN /* IF DID A TRAS THEN @ZA16816*/ 03613000 CR R12,@14 1061 03614000 BE @RF01061 1061 03615000 * DO; /* TRAS BACK. @ZA16816*/ 03616000 * R15=PSAAOLD;/* GET CURRENT ASCB ADDR @ZA16816*/ 03617000 L R15,PSAAOLD 1063 03618000 * GENERATE CODE REFS(ASCBSTOR); 1064 03619000 LCTL 1,1,ASCBSTOR(R15) ----- TRAS BACK ----- 03620000 * LCCAASID=0; /* CLEAR TRAS INDICATOR @ZA16816*/ 03621000 SLR @10,@10 1065 03622000 L @04,LCCAPTR 1065 03623000 ST @10,LCCAASID(,@04) 1065 03624000 * PVTTASID=0; /* CLEAR TRAS INDICATOR @ZA16816*/ 03625000 STH @10,PVTTASID(,PVTPTR) 1066 03626000 * END; /* @ZA16816*/ 03627000 * IF PCBSWPS1='1'B THEN/* IF STG I RESTOR @ZA16816*/ 03628000 @RF01061 TM PCBSWPS1(PCBPTR),B'00100000' 1068 03629000 BNO @RF01068 1068 03630000 * RSMHDPTR=PCBRASCB->ASCBRSM;/* VIA PCBR @ZA16816*/ 03631000 L @10,PCBRPTR(,PCBPTR) 1069 03632000 L @10,PCBRASCB(,@10) 1069 03633000 L RSMHDPTR,ASCBRSM(,@10) 1069 03634000 * ELSE /* IF NOT, RESTORE @ZA16816*/ 03635000 * RSMHDPTR=PSAAOLD->ASCBRSM;/* VIA CUR. @ZA16816*/ 03636000 B @RC01068 1070 03637000 @RF01068 L @10,PSAAOLD 1070 03638000 L RSMHDPTR,ASCBRSM(,@10) 1070 03639000 * RCARCRD='01'X; /* SET REASON CODE @ZA16816*/ 03640000 @RC01068 L @10,RCAPTR(,PVTPTR) 1071 03641000 MVI RCARCRD(@10),X'01' 1071 03642000 * GEN NOFLOWS SETS(R1)(ABEND X'C0D',,,SYSTEM); 1072 03643000 ABEND X'C0D',,,SYSTEM 03644000 * R5=0; /* INDICATE FAILURE, @ZA16816*/ 03645000 SLR R5,R5 1073 03646000 * R14=SUBRTSAV; /* RESTORE RETURN ADDRESS 1074 03647000 * @ZA16816*/ 03648000 L R14,SUBRTSAV(,PVTPTR) 1074 03649000 * GEN(BR R14); /* RETURN TO CALLER @ZA16816*/ 03650000 BR R14 03651000 * END; /* @ZA16816*/ 03652000 * RESPECIFY 1077 03653000 * (R4) RSTD; /* @ZA16816*/ 03654000 @RF01059 DS 0H 1078 03655000 * R4=R0; /* SAVE PGTE ADDRESS @ZA16816*/ 03656000 LR R4,R0 1078 03657000 * PROTKEY=R1->XPTPROT;/* SAVE XPTE PROTECT KEY @ZA16816*/ 03658000 MVC PROTKEY(1,PVTPTR),XPTPROT(R1) 1079 03659000 * R1=R0; /* SET PGTE ADDR FOR INV @ZA16816*/ 03660000 LR R1,R0 1080 03661000 * CALL IEAVINV; /* INVALIDATE THE PAGE @ZA16816*/ 03662000 L @15,PVTPINV(,PVTPTR) 1081 03663000 BALR @14,@15 1081 03664000 * RESPECIFY 1082 03665000 * (R14, 1082 03666000 * R15) RSTD; /* @ZA16816*/ 03667000 * R14=PROTKEY; /* GET PROT KEY FOR SSK @ZA16816*/ 03668000 SLR R14,R14 1083 03669000 IC R14,PROTKEY(,PVTPTR) 1083 03670000 * R15=256*(R6-PVTPFTP);/* GET RSA FOR SSK @ZA16816*/ 03671000 LR R15,R6 1084 03672000 SL R15,PVTPFTP(,PVTPTR) 1084 03673000 SLA R15,8 1084 03674000 * R0=R15; /* SAVE FOR MVCL LATER @ZA16816*/ 03675000 LR R0,R15 1085 03676000 * GENERATE CODE NOFLOWS; 1086 03677000 SSK R14,R15 SET PROTECT KEY - 1ST 2K BLOCK 03678000 LA R15,2048(R15) GET RSA OF NEXT 2K BLOCK 03679000 SSK R14,R15 SET PROTECT KEY - 2ND 2K BLOCK 03680000 * R1=4096; /* NO OF BYTES TO MOVE @ZA16816*/ 03681000 L @10,@CF02220 1087 03682000 LR R1,@10 1087 03683000 * R14=256*(R5-PVTPFTP);/* GET FROM ADDR (REAL) @ZA16816*/ 03684000 LR R14,R5 1088 03685000 SL R14,PVTPFTP(,PVTPTR) 1088 03686000 SLA R14,8 1088 03687000 * R15=4096; /* NO OF BYTES TO MOVE @ZA16816*/ 03688000 * 1089 03689000 LR R15,@10 1089 03690000 * /*****************************************************/ 03691000 * /* */ 03692000 * /* THE PAGE AT THE REAL ADDRESS IN R14 IS TO BE MOVED*/ 03693000 * /* TO THE REAL ADDRESS IN R0. DAT IS TURNED OFF SINCE*/ 03694000 * /* THE R14 PAGE IS MARKED INVALID. NOTE THAT THE */ 03695000 * /* CHANGE BIT FOR THE R0 PAGE WILL BE TURNED ON, AS */ 03696000 * /* IT SHOULD BE, BY THE MVCL. @ZA16816*/ 03697000 * /* */ 03698000 * /*****************************************************/ 03699000 * 1090 03700000 * GENERATE CODE NOFLOWS REFS(TEMPSAVE); 1090 03701000 STNSM TEMPSAVE(PVTPTR),X'FB' TURN DAT OFF 03702000 MVCL R0,R14 MOVE PAGE-TURN CHNG BIT ON 03703000 STOSM TEMPSAVE(PVTPTR),X'04' TURN DAT BACK ON 03704000 * RESPECIFY 1091 03705000 * (R14, 1091 03706000 * R15) UNRSTD; /* @ZA16816*/ 03707000 * PVTMVCLC=PVTMVCLC+1;/* INCR MOVED PAGES COUNT 1092 03708000 * @ZA16816*/ 03709000 LA @10,1 1092 03710000 AL @10,PVTMVCLC(,PVTPTR) 1092 03711000 ST @10,PVTMVCLC(,PVTPTR) 1092 03712000 * R6->PFTPGID=R5->PFTPGID;/* COPY ASID AND VBN @ZA16816*/ 03713000 L @10,PFTPGID(,R5) 1093 03714000 ST @10,PFTPGID(,R6) 1093 03715000 * R6->PFTIRRG='0'B; /* CLEAR IRRG BIT @ZA16816*/ 03716000 NI PFTIRRG(R6),B'11101111' 1094 03717000 * R0=(65536*(R5->PFTQNDX))|(R6-PVTPFTP);/* PARM 1095 03718000 * @ZA16816*/ 03719000 SLR R0,R0 1095 03720000 IC R0,PFTQNDX(,R5) 1095 03721000 SLA R0,16 1095 03722000 LR @10,R6 1095 03723000 SL @10,PVTPFTP(,PVTPTR) 1095 03724000 OR R0,@10 1095 03725000 * IF R12=0 THEN /* IF NOT IN TRAS MODE, @ZA16816*/ 03726000 LTR R12,R12 1096 03727000 BNZ @RF01096 1096 03728000 * R1=PSAAOLD; /* TO ASCB=CURRENTASCB @ZA16816*/ 03729000 L R1,PSAAOLD 1097 03730000 * ELSE /* IF IN TRAS MODE, @ZA16816*/ 03731000 * R1=R12; /* TO ASCB=NON-CURRENT @ZA16816*/ 03732000 B @RC01096 1098 03733000 @RF01096 LR R1,R12 1098 03734000 * RSMHDPTR=PSAAOLD->ASCBRSM;/* SET RSMHDPTR FOR DEQ 1099 03735000 * @ZA16816*/ 03736000 @RC01096 L @10,PSAAOLD 1099 03737000 L RSMHDPTR,ASCBRSM(,@10) 1099 03738000 * CALL IEAVPFTE; /* DEQ/ENQ THE NEW PFTE @ZA16816*/ 03739000 L @15,PVTPFTE(,PVTPTR) 1100 03740000 BALR @14,@15 1100 03741000 * R4->PGTRSA=(R6-PVTPFTP);/* PUT RBN IN PGTE @ZA16816*/ 03742000 LR @10,R6 1101 03743000 SL @10,PVTPFTP(,PVTPTR) 1101 03744000 STCM @10,3,PGTRSA(R4) 1101 03745000 * R4->PGTPAM='1'B; /* PAGE VALID, GETMAINED @ZA16816*/ 03746000 OI PGTPAM(R4),B'00000001' 1102 03747000 * RESPECIFY 1103 03748000 * (R4) UNRSTD; /* @ZA16816*/ 03749000 * IF R12^=0 THEN /* IF IN TRAS MODE, TRAS @ZA16816*/ 03750000 LTR R12,R12 1104 03751000 BZ @RF01104 1104 03752000 * DO; /* BACK AND DEQ OLD PFTE @ZA16816*/ 03753000 * R1=PSAAOLD; /* GET CURRENT ASCB @ZA16816*/ 03754000 L R1,PSAAOLD 1106 03755000 * GENERATE CODE NOFLOWS REFS(ASCBSTOR); 1107 03756000 LCTL 1,1,ASCBSTOR(R1) ----- TRAS BACK ----- 03757000 * LCCAASID=0; /* CLEAR TRAS INDICATOR @ZA16816*/ 03758000 SLR @10,@10 1108 03759000 L @04,LCCAPTR 1108 03760000 ST @10,LCCAASID(,@04) 1108 03761000 * PVTTASID=0; /* CLEAR TRAS INDICATOR @ZA16816*/ 03762000 STH @10,PVTTASID(,PVTPTR) 1109 03763000 * R0=(65536*PFTNQN)|(R5-PVTPFTP);/* SET PARMS 1110 03764000 * @ZA16816*/ 03765000 LR R0,R5 1110 03766000 SL R0,PVTPFTP(,PVTPTR) 1110 03767000 O R0,@CF02289 1110 03768000 * RSMHDPTR=R12->ASCBRSM;/* SET RSMHDPTR FOR DEQ 1111 03769000 * @ZA16816*/ 03770000 L RSMHDPTR,ASCBRSM(,R12) 1111 03771000 * CALL IEAVPFTE; /* DEQ THE PREF PFTE @ZA16816*/ 03772000 L @15,PVTPFTE(,PVTPTR) 1112 03773000 BALR @14,@15 1112 03774000 * END; /* @ZA16816*/ 03775000 * IF PCBSWPS1='1'B THEN/* IF STG I RESTORE @ZA16816*/ 03776000 @RF01104 TM PCBSWPS1(PCBPTR),B'00100000' 1114 03777000 BNO @RF01114 1114 03778000 * RSMHDPTR=PCBRASCB->ASCBRSM;/* VIA PCBR @ZA16816*/ 03779000 L @10,PCBRPTR(,PCBPTR) 1115 03780000 L @10,PCBRASCB(,@10) 1115 03781000 L RSMHDPTR,ASCBRSM(,@10) 1115 03782000 * ELSE /* IF NOT, RESTORE @ZA16816*/ 03783000 * RSMHDPTR=PSAAOLD->ASCBRSM;/* VIA CUR. @ZA16816*/ 03784000 B @RC01114 1116 03785000 @RF01114 L @10,PSAAOLD 1116 03786000 L RSMHDPTR,ASCBRSM(,@10) 1116 03787000 * R5->PFTUIC=0; /* INITIALIZE UIC TO ZERO 1117 03788000 * @ZA16816*/ 03789000 @RC01114 MVI PFTUIC(R5),X'00' 1117 03790000 * R5->PFTSTEAL='0'B; /* CLEAR STEAL FLAG @ZA16816*/ 03791000 NI PFTSTEAL(R5),B'11110111' 1118 03792000 * END; /* END OF RC=8 PASS 1 PROCESSING 03793000 * @ZA16816*/ 03794000 * END; /* END OF RC=4 OR 8 PASS 1 1120 03795000 * PROCESS @ZA16816*/ 03796000 @RC01025 DS 0H 1121 03797000 * RESPECIFY 1121 03798000 * (PASS, 1121 03799000 * PARM) UNRSTD; /* @ZA16816*/ 03800000 @RF01023 DS 0H 1122 03801000 * END; /* END OF NO PREF ON AFQ 1122 03802000 * PROCESSING @ZA16816*/ 03803000 * R14=SUBRTSAV; /* RESTORE RETURN ADDRESS 1123 03804000 * @ZA16816*/ 03805000 @RF01016 L R14,SUBRTSAV(,PVTPTR) 1123 03806000 * GEN(BR R14); /* RETURN TO CALLER @ZA16816*/ 03807000 BR R14 03808000 * RESPECIFY 1125 03809000 * (R5, 1125 03810000 * R6) UNRSTD; /* END OF GETAPREF SUBRTN 1125 03811000 * @ZA16816*/ 03812000 * 1126 03813000 * /*****************************************************************/ 03814000 * /* */ 03815000 * /* PCBDISP ROUTINE -- DISPOSE OF THE PCB ADDRESSED BY PCBPTR. */ 03816000 * /* PCBS REQUIRING IEAVIOCP PROCESSING WILL BE ENQUEUED ON THE */ 03817000 * /* APPROPRIATE I/O QUEUE AND IEAVIOCP SCHEDULED. PCBS WITH */ 03818000 * /* ASSOCIATED ROOT PCBS WILL HAVE THE ROOT COUNTS REDUCED FOR */ 03819000 * /* EACH PCB PROCESSED. IF THE ROOT COUNT REACHES ZERO, THE */ 03820000 * /* REQUIRED ROOT EXIT WILL BE RUN. PCBS FOR PAGE-FAULTS */ 03821000 * /* (FIRST-REFERENCE OR RECLAIMED PAGES), WILL BE RETURNED TO THE */ 03822000 * /* FREE PCB QUEUE. THE PAGE FAULTER WILL BE RESET IN THIS */ 03823000 * /* ROUTINE, IF REQUIRED (I.E., HE HAS BEEN SUSPENDED). */ 03824000 * /* */ 03825000 * /*****************************************************************/ 03826000 * 1126 03827000 *PCBDISP: 1126 03828000 * SUBRTSAV=R14; /* SAVE RETURN ADDRESS */ 03829000 PCBDISP ST R14,SUBRTSAV(,PVTPTR) 1126 03830000 * PTR1=PCBRLPA; /* START OF THE RELATED QUEUE */ 03831000 L PTR1,PCBRLPA-1(,PCBPTR) 1127 03832000 LA PTR1,0(,PTR1) 1127 03833000 * IF PCBPEX='0'B THEN 1128 03834000 TM PCBPEX(PCBPTR),B'01000000' 1128 03835000 BNZ @RF01128 1128 03836000 * DO; /* NOT A PAGE EXCEPTION */ 03837000 * IF PCBROOT='0'B THEN 1130 03838000 TM PCBROOT(PCBPTR),B'00000100' 1130 03839000 BZ @RT01130 1130 03840000 * GOTO SCHEDPCB; /* NO ROOT PCB EXISTS @Z40WPYC*/ 03841000 * ELSE 1132 03842000 * DO; /* A ROOT PCB EXISTS */ 03843000 * IF PCBRCNT<=1 THEN 1133 03844000 L @10,PCBRPTR(,PCBPTR) 1133 03845000 LH @10,PCBRCNT(,@10) 1133 03846000 C @10,@CF00038 1133 03847000 BH @RF01133 1133 03848000 * DO; /* ROOT COMPLETION COUNT = 1 OR 0*/ 03849000 * RFY 1135 03850000 * R13 RSTD; /* ONLY ONE INCOMPLETELY 1135 03851000 * PROCESSED PAGE */ 03852000 * RFY 1136 03853000 * (R0, 1136 03854000 * R1) RSTD; 1136 03855000 * R0=PTR1; /* SAVE REGISTERS DESTROYED BY 1137 03856000 * SETLOCK */ 03857000 LR R0,PTR1 1137 03858000 * R1=PCBPTR; 1138 03859000 LR R1,PCBPTR 1138 03860000 * GEN REFS(FLC,PSALITA) 1139 03861000 *(SETLOCK OBTAIN,TYPE=LOCAL,MODE=COND,RELATED=(LOCAL,(IEAVGFA))); 1139 03862000 SETLOCK OBTAIN,TYPE=LOCAL,MODE=COND,RELATED=(LOCAL,(IEAVGFA)) 03863000 * PCBPTR=R1; /* RESTORE SETLOCK DESTROYED 1140 03864000 * REGISTERS */ 03865000 LR PCBPTR,R1 1140 03866000 * PTR1=R0; 1141 03867000 LR PTR1,R0 1141 03868000 * RFY 1142 03869000 * (R0, 1142 03870000 * R1) UNRSTD; 1142 03871000 * IF R13>4 THEN 1143 03872000 C R13,@CF00085 1143 03873000 BH @RT01143 1143 03874000 * GOTO PCBDISPB; /* LOCAL LOCK NOT OBTAINED GO 1144 03875000 * ENQUEUE THE PCB */ 03876000 * ELSE 1145 03877000 * IF R13=0 THEN 1145 03878000 LTR R13,R13 1145 03879000 BNZ @RF01145 1145 03880000 * RCALL='1'B; /* LOCAL LOCK OBTAINED, SET FLAG 03881000 * IN THE RCA TO INDICATE THIS */ 03882000 L @10,RCAPTR(,PVTPTR) 1146 03883000 OI RCALL(@10),B'01000000' 1146 03884000 * ELSE 1147 03885000 * ; 1147 03886000 @RF01145 DS 0H 1148 03887000 * PCBRCNT=0; /* SET ROOT COMPLETION COUNT TO 03888000 * ZERO */ 03889000 L @10,PCBRPTR(,PCBPTR) 1148 03890000 SLR @06,@06 1148 03891000 STH @06,PCBRCNT(,@10) 1148 03892000 * RFY 1149 03893000 * (R1, 1149 03894000 * R15) RSTD; 1149 03895000 * R1=PCBRPTR; /* ADDRESS OF ROOT PCB FOR ROOT 03896000 * EXIT ROUTINE */ 03897000 LR R1,@10 1150 03898000 * R15=PCBRGOTO; /* ADDRESS OF THE ROOT EXIT 1151 03899000 * ROUTINE */ 03900000 L R15,PCBRGOTO(,@10) 1151 03901000 * CALL ROOTEXIT; /* INVOKE ROOT EXIT */ 03902000 BALR @14,@15 1152 03903000 * RFY 1153 03904000 * (R1, 1153 03905000 * R15) UNRSTD; 1153 03906000 * IF R13=0 THEN 1154 03907000 LTR R13,R13 1154 03908000 BNZ @RF01154 1154 03909000 * DO; /* IF LOCAL LOCK WAS OBTAINED BY 03910000 * ME, FREE IT */ 03911000 * RFY 1156 03912000 * (R0, 1156 03913000 * R1) RSTD; 1156 03914000 * R0=PTR1; /* SAVE REGISTERS DESTROYED BY 1157 03915000 * SETLOCK */ 03916000 LR R0,PTR1 1157 03917000 * R1=PCBPTR; 1158 03918000 LR R1,PCBPTR 1158 03919000 * GEN 1159 03920000 *(SETLOCK RELEASE,TYPE=LOCAL,RELATED=(LOCAL,(IEAVGFA))); 1159 03921000 SETLOCK RELEASE,TYPE=LOCAL,RELATED=(LOCAL,(IEAVGFA)) 03922000 * PCBPTR=R1; /* RESTORE SETLOCK DESTROYED 1160 03923000 * REGISTERS */ 03924000 LR PCBPTR,R1 1160 03925000 * PTR1=R0; 1161 03926000 LR PTR1,R0 1161 03927000 * RFY 1162 03928000 * (R0, 1162 03929000 * R1, 1162 03930000 * R13) UNRSTD; 1162 03931000 * RCALL='0'B; /* RESET THE LOCAL LOCK FLAG */ 03932000 L @10,RCAPTR(,PVTPTR) 1163 03933000 NI RCALL(@10),B'10111111' 1163 03934000 * END; 1164 03935000 * ELSE 1165 03936000 * ; 1165 03937000 @RF01154 DS 0H 1166 03938000 * END; 1166 03939000 * ELSE 1167 03940000 * PCBRCNT=PCBRCNT-1; /* REDUCE THE ROOT COMPLETION 1167 03941000 * COUNT */ 03942000 B @RC01133 1167 03943000 @RF01133 L @10,PCBRPTR(,PCBPTR) 1167 03944000 LH @06,PCBRCNT(,@10) 1167 03945000 BCTR @06,0 1167 03946000 STH @06,PCBRCNT(,@10) 1167 03947000 * END; 1168 03948000 @RC01133 DS 0H 1169 03949000 *SCHEDPCB: 1169 03950000 * ; 1169 03951000 SCHEDPCB DS 0H 1170 03952000 * RFY 1170 03953000 * (R0, 1170 03954000 * R1) RSTD; 1170 03955000 * R1=PCBPTR; 1171 03956000 LR R1,PCBPTR 1171 03957000 * R0=PCBFREQN; 1172 03958000 LA R0,16 1172 03959000 * CALL IEAVPCB; /* ENQUEUE THIS PCB ON THE FREE 03960000 * QUEUE */ 03961000 L @15,PVTPCB(,PVTPTR) 1173 03962000 BALR @14,@15 1173 03963000 * RFY 1174 03964000 * (R0, 1174 03965000 * R1) UNRSTD; 1174 03966000 *DISPLAST: 1175 03967000 * ; 1175 03968000 DISPLAST DS 0H 1176 03969000 * IF PTR1^=0 THEN 1176 03970000 LTR PTR1,PTR1 1176 03971000 BZ @RF01176 1176 03972000 * DO; /* MORE RELATED PCBS */ 03973000 * PCBPTR=PTR1; /* GET THE NEXT ONE AND CONTINUE */ 03974000 LR PCBPTR,PTR1 1178 03975000 * PTR1=PCBRLPA; 1179 03976000 L PTR1,PCBRLPA-1(,PCBPTR) 1179 03977000 LA PTR1,0(,PTR1) 1179 03978000 * GOTO PCBDISPB; 1180 03979000 B PCBDISPB 1180 03980000 * END; 1181 03981000 * ELSE 1182 03982000 * DO; /* OTHERWISE RETURN TO CALLER */ 03983000 @RF01176 DS 0H 1183 03984000 * R14=SUBRTSAV; /* RESTORE RETURN ADDRESS */ 03985000 L R14,SUBRTSAV(,PVTPTR) 1183 03986000 * GEN(BR R14); /* RETURN TO CALLER */ 03987000 BR R14 03988000 * END; 1185 03989000 * END; 1186 03990000 * 1187 03991000 * /*****************************************************************/ 03992000 * /* */ 03993000 * /* IF THIS IS A SUSPENDED PAGE-FAULTER AND RESET IS INDICATED, */ 03994000 * /* (I.E., THE FRAME HAS BEEN ALLOCATED OR RECLAIMED), THEN RESET */ 03995000 * /* THE PAGE-FAULTER. */ 03996000 * /* */ 03997000 * /*****************************************************************/ 03998000 * 1187 03999000 * ELSE 1187 04000000 * ; /* PAGING EXCEPTION */ 04001000 @RF01128 DS 0H 1188 04002000 * IF PCBRESET='0'B THEN 1188 04003000 TM PCBRESET(PCBPTR),B'00010000' 1188 04004000 BNZ @RF01188 1188 04005000 * DO; /* DO NOT RESET @Z40WPYC*/ 04006000 * IF PCBPTR=PVTREUS THEN /* IF THIS PCB IS THE CURRENT 1190 04007000 * IEAVPIX PCB @Z40WPYC*/ 04008000 C PCBPTR,PVTREUS(,PVTPTR) 1190 04009000 BNE @RF01190 1190 04010000 * DO; /* @Z40WPYC*/ 04011000 * GOTO DISPLAST; /* DONT FREE PCB @Z40WPYC*/ 04012000 B DISPLAST 1192 04013000 * END; /* END REUSEABLE PCB PROC. 1193 04014000 * @Z40WPYC*/ 04015000 * ELSE /* NOT CURRENT INPUT @Z40WPYC*/ 04016000 * GOTO SCHEDPCB; /* PROCESS RELATEDS @Z40WPYC*/ 04017000 * END; /* END NO RESET PROCESSING 1195 04018000 * @Z40WPYC*/ 04019000 * ELSE 1196 04020000 * ; /* RESET THE PAGE-FAULTER */ 04021000 @RF01188 DS 0H 1197 04022000 * IF PCBSRBMD='1'B|PCBLLHLD='1'B THEN 1197 04023000 TM PCBSRBMD(PCBPTR),B'00110000' 1197 04024000 BZ @RF01197 1197 04025000 * DO; /* SRB MODE OR LOCAL LOCK HELD ? */ 04026000 * RFY 1199 04027000 * (R4, 1199 04028000 * R5, 1199 04029000 * R6, 1199 04030000 * R13) RSTD; 1199 04031000 * IF PCBSRBMD='1'B THEN 1200 04032000 TM PCBSRBMD(PCBPTR),B'00100000' 1200 04033000 BNO @RF01200 1200 04034000 * DO; 1201 04035000 * R4=PCBSRB; /* SRB ADDRESS FOR RESET */ 04036000 L R4,PCBSRB(,PCBPTR) 1202 04037000 * R5=0; 1203 04038000 SLR R5,R5 1203 04039000 * END; 1204 04040000 * ELSE 1205 04041000 * DO; 1205 04042000 B @RC01200 1205 04043000 @RF01200 DS 0H 1206 04044000 * R4=PCBRTPA; /* TCB ADDRESS */ 04045000 L R4,PCBRTPA-1(,PCBPTR) 1206 04046000 LA R4,0(,R4) 1206 04047000 * R5=PCBRB; /* RB ADDRESS @Z40WPYC*/ 04048000 L R5,PCBRB(,PCBPTR) 1207 04049000 * END; 1208 04050000 * R6=0; /* RESET ... NO PAGING ERROR */ 04051000 @RC01200 SLR R6,R6 1209 04052000 * R13=ADDR(PVTSAVE); /* SAVE AREA FOR RESET ROUTINE */ 04053000 LA R13,PVTSAVE(,PVTPTR) 1210 04054000 * CALL IEAVRSET; /* MAKE SRB/TCB DISPATCHABLE */ 04055000 L @15,PVTPRSET(,PVTPTR) 1211 04056000 BALR @14,@15 1211 04057000 * GOTO SCHEDPCB; 1212 04058000 B SCHEDPCB 1212 04059000 * END; 1213 04060000 * ELSE 1214 04061000 * ; /* PAGE-FAULT UNDER AN UN-LOCKED 04062000 * TCB, NO RESET IN GFA BECAUSE 04063000 * STATUS OF LOCAL LOCK IS NOT 1214 04064000 * KNOWN */ 04065000 @RF01197 DS 0H 1215 04066000 * RFY 1215 04067000 * (R4, 1215 04068000 * R5, 1215 04069000 * R6, 1215 04070000 * R13) UNRSTD; 1215 04071000 * RFY 1216 04072000 * R0 RSTD; 1216 04073000 *PCBDISPB: 1217 04074000 * ; /* ENQUEUE THE PCB ON THE PROPER 04075000 * I/O QUEUE */ 04076000 * 1217 04077000 PCBDISPB DS 0H 1218 04078000 * /*****************************************************************/ 04079000 * /* */ 04080000 * /* THIS SECTION OF CODE ENQUEUES A PCB TO THE I/O ACTIVE QUEUES, */ 04081000 * /* MARKS IT I/O COMPLETE AND SCHEDULES IEAVIOCP */ 04082000 * /* */ 04083000 * /*****************************************************************/ 04084000 * 1218 04085000 * IF PCBVBNPCBVBN=PCBVBN THEN 1239 04172000 CLC PCBVBN(2,PTR1),PCBVBN(R1) 1239 04173000 BNE @RF01239 1239 04174000 * DO; /* MAKE THE MATCHING TEST 1240 04175000 * (DESCRIBED IN THE SUBROUTINE 04176000 * DISCRIPTION ABOVE) */ 04177000 * IF PCBVBN>=PVTLCSA|(PCBVBNPCBASCB) 04178000 * THEN 1241 04179000 CLC PCBVBN(2,R1),PVTLCSA(PVTPTR) 1241 04180000 BNL @RT01241 1241 04181000 CLC PCBVBN(2,R1),PVTLCSA(PVTPTR) 1241 04182000 BNL @RF01241 1241 04183000 CLC PCBASCB(4,R1),PCBASCB(PTR1) 1241 04184000 BNE @RF01241 1241 04185000 @RT01241 DS 0H 1242 04186000 * DO; /* MATCH FOUND - RELATE THE PCBS */ 04187000 * PCBRLPA=PTR1->PCBRLPA;/* ENQUEUE THE INPUT PCB AT 04188000 * THE BEGINNING OF THE RELATED 04189000 * QUEUE */ 04190000 MVC PCBRLPA(3,R1),PCBRLPA(PTR1) 1243 04191000 * PTR1->PCBRLPA=R1; 1244 04192000 STCM R1,7,PCBRLPA(PTR1) 1244 04193000 * GOTO PUTEXIT; /* AND RETURN TO THE CALLER */ 04194000 B PUTEXIT 1245 04195000 * END; 1246 04196000 * ELSE 1247 04197000 * ; 1247 04198000 @RF01241 DS 0H 1248 04199000 * END; 1248 04200000 * ELSE 1249 04201000 * ; /* NO MATCH, CONTINUE THE SCAN */ 04202000 @RF01239 DS 0H 1250 04203000 * PTR1=PTR1->PCBFQPA; 1250 04204000 L @10,PCBFQPA-1(,PTR1) 1250 04205000 LA @10,0(,@10) 1250 04206000 LR PTR1,@10 1250 04207000 * END; 1251 04208000 * 1251 04209000 @DE01238 LTR PTR1,PTR1 1251 04210000 BNZ @DL01238 1251 04211000 * /*************************************************************/ 04212000 * /* */ 04213000 * /* THE END OF THE QUEUE HAS BEEN REACHED AND NO MATCH FOUND, */ 04214000 * /* RECORD THE ERROR AND CONTINUE */ 04215000 * /* */ 04216000 * /*************************************************************/ 04217000 * 1252 04218000 * RESPECIFY 1252 04219000 * (R10) RESTRICTED; /* @Z40WPYC*/ 04220000 * R10=R1; /* SAVE PCBPTR OVER ABEND 1253 04221000 * @Z40WPYC*/ 04222000 LR R10,R1 1253 04223000 * RCARCRD=UNRELATD; /* INDICATE XPTE MARKED DEFERRED, 04224000 * BUT NO ENTRY FOUND ON GFA 1254 04225000 * DEFER QUEUE. @Z40WPYC*/ 04226000 L @06,RCAPTR(,PVTPTR) 1254 04227000 MVI RCARCRD(@06),X'07' 1254 04228000 * GEN(ABEND X'C0D',,,SYSTEM); /* RCRD ERROR @Z40WPYC*/ 04229000 ABEND X'C0D',,,SYSTEM 04230000 * R1=R10; /* RESTORE PCBPTR @Z40WPYC*/ 04231000 LR R1,R10 1256 04232000 * RESPECIFY 1257 04233000 * (R10) UNRESTRICTED; /* @Z40WPYC*/ 04234000 * END; /* END DEFER PROCESSING @Z40WPYC*/ 04235000 * ELSE 1259 04236000 * ; /* NOT DEFERRED @Z40WPYC*/ 04237000 @RF01235 DS 0H 1260 04238000 * XPTDEFER='1'B; 1260 04239000 * 1260 04240000 L @10,XPTEPTR(,R1) 1260 04241000 OI XPTDEFER(@10),B'00000010' 1260 04242000 * /*****************************************************************/ 04243000 * /* */ 04244000 * /* THE STATEMENT TO SET THE PGTE TO X'0009' TO PREVENT RECLAIM */ 04245000 * /* HAS BEEN REMOVED AS A RESULT OF APAR OZ29825. THIS WAS */ 04246000 * /* NECESSARY AS OF SU 7 DUE TO THE NON-RECLAIMABLE PCB. WITH THE */ 04247000 * /* NON-RECLAIMABLE PCB, THE DEFERRED PCB MUST GO THROUGH RECLAIM */ 04248000 * /* PROCESSING WHEN IT IS SENT BACK THROUGH MAINLINE GFA. THIS IS */ 04249000 * /* SO THAT IF THE OUTPUT I/O IS STILL IN PROGRESS, A PCB */ 04250000 * /* (NORECPCB) CAN BE FOUND WHICH CONTAINS THE RBN THAT THE DATA */ 04251000 * /* CAN BE COPIED FROM. IF THE PGTE WAS INVALIDATED, NORECPCB */ 04252000 * /* WOULD CONTAIN A 0, AND THE 2 BYTES AT LOCATION X'18' WOULD BE */ 04253000 * /* USED AS THE RBN CAUSING GARBAGE TO BE COPIED INTO THE NEW */ 04254000 * /* FRAME. @ZA29825*/ 04255000 * /* */ 04256000 * /*****************************************************************/ 04257000 * 1261 04258000 *CALLPCB: 1261 04259000 * ; /* NO MATCH COULD/WOULD BE 1261 04260000 * FOUND,ADD THE PCB TO THE DEFER 04261000 * QUEUE */ 04262000 CALLPCB DS 0H 1262 04263000 * RFY 1262 04264000 * R0 RSTD; 1262 04265000 * R0=PCBDEFRN; /* DEFER QUEUE ID */ 04266000 LA R0,24 1263 04267000 * CALL IEAVPCB; /* ENQUEUE THIS PCB ON THE DEFER 04268000 * QUEUE */ 04269000 L @15,PVTPCB(,PVTPTR) 1264 04270000 BALR @14,@15 1264 04271000 * RFY 1265 04272000 * (R0, 1265 04273000 * R1) UNRSTD; 1265 04274000 *PUTEXIT: 1266 04275000 * ; 1266 04276000 PUTEXIT DS 0H 1267 04277000 * R14=SUBRTSAV; 1267 04278000 L R14,SUBRTSAV(,PVTPTR) 1267 04279000 * GEN(BR R14); 1268 04280000 BR R14 04281000 * RFY 1269 04282000 * PCB BASED(PCBPTR); 1269 04283000 * 1270 04284000 * /*****************************************************************/ 04285000 * /* */ 04286000 * /* GETGFAD SUBROUTINE --- OBTAIN RELATED PCBS FROM THE DEFER */ 04287000 * /* QUEUE. THE INPUT PCB IS ADDRESSED BY PCBPTR. ANY PCBS ON THE */ 04288000 * /* DEFERRED QUEUE WHICH ARE RELATED TO THE INPUT PCB ARE ADDED TO*/ 04289000 * /* THE INPUT PCB'S RELATED QUEUE (PCBRLPA). TWO PCBS ARE SAID TO */ 04290000 * /* BE RELATED WHEN THEY ADDRESS THE SAME VIRTUAL PAGE IN THE */ 04291000 * /* COMMON AREA OR IN THE SAME ADDRESS SPACE. NO RETURN CODES ARE */ 04292000 * /* GENERATED. */ 04293000 * /* */ 04294000 * /*****************************************************************/ 04295000 * 1270 04296000 * RESPECIFY 1270 04297000 * (R14) RSTD; /* @ZA16816*/ 04298000 *GETGFAD: 1271 04299000 * IF PVTGFADF=0 THEN 1271 04300000 GETGFAD L @15,PVTGFADF(,PVTPTR) 1271 04301000 LTR @15,@15 1271 04302000 BNZ @RF01271 1271 04303000 * DO; /* ON EMPTY DEFER QUEUE, 1272 04304000 * IMMEDIATE RETURN */ 04305000 * GEN(BR R14); 1273 04306000 BR R14 04307000 * END; 1274 04308000 * ELSE 1275 04309000 * ; 1275 04310000 @RF01271 DS 0H 1276 04311000 * SUBRTSAV=R14; /* PRESERVE THE RETURN POINT */ 04312000 ST R14,SUBRTSAV(,PVTPTR) 1276 04313000 * RFY 1277 04314000 * R1 RSTD; 1277 04315000 * R1=PVTGFADF; /* FIRST ELEMENT ON THE DEFER 1278 04316000 * QUEUE */ 04317000 L R1,PVTGFADF(,PVTPTR) 1278 04318000 * DO WHILE R1^=0; /* SCAN THE DEFERRED QUEUE */ 04319000 B @DE01279 1279 04320000 @DL01279 DS 0H 1280 04321000 * IF PCBVBN=R1->PCBVBN THEN 1280 04322000 CLC PCBVBN(2,PCBPTR),PCBVBN(R1) 1280 04323000 BNE @RF01280 1280 04324000 * DO; /* THE DEFERRED PCB ADDRESSES THE 04325000 * SAME PAGE AS THE INPUT PCB */ 04326000 * IF PCBVBN>=PVTLCSA|(PCBVBNPCBASCB=PCBASCB) THEN 04327000 CLC PCBVBN(2,PCBPTR),PVTLCSA(PVTPTR) 1282 04328000 BNL @RT01282 1282 04329000 CLC PCBVBN(2,PCBPTR),PVTLCSA(PVTPTR) 1282 04330000 BNL @RF01282 1282 04331000 CLC PCBASCB(4,R1),PCBASCB(PCBPTR) 1282 04332000 BNE @RF01282 1282 04333000 @RT01282 DS 0H 1283 04334000 * DO; /* THE PAGE IS IN THE COMMON AREA 04335000 * OR IN THE PRIVATE AREA OF THE 04336000 * SAME ADDRESS SPACE, THEREFORE 04337000 * THE DEFERRED PCB IS RELATED, 04338000 * ADD IT TO THE INPUT PCB'S 1283 04339000 * RELATED QUEUE */ 04340000 * RFY 1284 04341000 * R0 RSTD; 1284 04342000 * R0=PCBDEQN; /* CODE TO DEQUEUE THE PCB */ 04343000 LA R0,255 1285 04344000 * CALL IEAVPCB; /* DEQUEUE THE DEFERRED PCB */ 04345000 L @15,PVTPCB(,PVTPTR) 1286 04346000 BALR @14,@15 1286 04347000 * PCBRLPA=R1; /* ADD IT TO THE RELATED QUEUE OF 04348000 * THE INPUT PCB */ 04349000 STCM R1,7,PCBRLPA(PCBPTR) 1287 04350000 * GOTO GTEXIT; 1288 04351000 B GTEXIT 1288 04352000 * RFY 1289 04353000 * R0 UNRSTD; 1289 04354000 * END; 1290 04355000 * ELSE 1291 04356000 * ; 1291 04357000 @RF01282 DS 0H 1292 04358000 * END; 1292 04359000 * ELSE 1293 04360000 * ; 1293 04361000 @RF01280 DS 0H 1294 04362000 * R1=R1->PCBFQPA; /* NO MATCH, KEEP SCANNING. */ 04363000 L @15,PCBFQPA-1(,R1) 1294 04364000 LA @15,0(,@15) 1294 04365000 LR R1,@15 1294 04366000 * END; 1295 04367000 @DE01279 LTR R1,R1 1295 04368000 BNZ @DL01279 1295 04369000 * RFY 1296 04370000 * R1 UNRSTD; 1296 04371000 *GTEXIT: 1297 04372000 * XPTDEFER='0'B; 1297 04373000 GTEXIT L @15,XPTEPTR(,PCBPTR) 1297 04374000 NI XPTDEFER(@15),B'11111101' 1297 04375000 * R14=SUBRTSAV; /* RESTORE RETURN ADDRESS */ 04376000 L R14,SUBRTSAV(,PVTPTR) 1298 04377000 * GEN(BR R14); 1299 04378000 BR R14 04379000 * RESPECIFY 1300 04380000 * (R14) UNRSTD; /* @ZA16816*/ 04381000 * 1301 04382000 * /*****************************************************************/ 04383000 * /* */ 04384000 * /* DEFERRED FRAME ALLOCATION PROCESSOR --- IEAVGFAD. INPUT PARM =*/ 04385000 * /* R1 -> ASCB. R0 -> SRB. NORMAL LINKAGE -- BALR R14,R15 */ 04386000 * /* PROCESSES THE GFA DEFER QUEUE BACKWARDS (BEGINNING WITH THE */ 04387000 * /* LAST PCB AND WORKING TO THE FIRST). */ 04388000 * /* */ 04389000 * /*****************************************************************/ 04390000 * 1301 04391000 * RFY 1301 04392000 * R15 UNRSTD; 1301 04393000 * RFY 1302 04394000 * (R0, 1302 04395000 * R1, 1302 04396000 * R14, 1302 04397000 * R4, 1302 04398000 * R6) RSTD; 1302 04399000 * GENERATE; 1303 04400000 * /* @Z40WPYC*/ 04401000 IEAVGFAD CSECT 04402000 USING *,R15 04403000 MODID BR=NO 04404000 ENTRY IEAVGFD2 @Z40WPYC 04405000 IEAVGFD2 DS 0H @Z40WPYC 04406000 BALR R9,0 04407000 USING *,R9 04408000 DROP R15 04409000 * R6=R0; /* SAVE THE SRB ADDRESS FOR 1304 04410000 * FREECELL */ 04411000 LR R6,R0 1304 04412000 * RTNADDR=R14; /* PRESERVE THE RETURN ADDR 1305 04413000 * ACROSS CALLS @YD03005*/ 04414000 ST R14,RTNADDR(,R6) 1305 04415000 * PVTPTR=CVTPVTP; /* ESTABLISH GFA ENTRY PARMS (PVT 04416000 * ADDRESS) */ 04417000 L @15,CVTPTR 1306 04418000 L PVTPTR,CVTPVTP(,@15) 1306 04419000 * RFY 1307 04420000 * ASCB BASED(R1); 1307 04421000 * RSMHDPTR=ASCBRSM; /* AND RSM HEADER ADDRESS */ 04422000 L RSMHDPTR,ASCBRSM(,R1) 1308 04423000 * RFY 1309 04424000 * (R14, 1309 04425000 * R0, 1309 04426000 * R1) UNRSTD; 1309 04427000 * RFY 1310 04428000 * ASCB BASED(ASCBPTR); 1310 04429000 * GENERATE REFS(PSACSTK,PSA,FRRSCURR,FRRS,FRRSLAST,FRRSELEN,FRRSFRRA, 04430000 * FRRSENTR,PVTPRCV,FRRSPARM,PSALITA,FLC,PSALSFCC,PVTPTR); 1311 04431000 SETFRR A,PARMAD=(R4),WRKREGS=(R14,R15),FRRAD=PVTPRCV(PVTPTR) 04432000 SALLOCGT SETLOCK OBTAIN,TYPE=SALLOC,MODE=UNCOND,RELATED=(IEAVGFAD) 04433000 * PVTPRCA=R4; /* STORE THE RECOVERY WORK AREA 04434000 * ADDR. */ 04435000 ST R4,PVTPRCA(,PVTPTR) 1312 04436000 * RFY 1313 04437000 * R4 UNRSTD; 1313 04438000 * RCASAL='1'B; /* INDICATE SALLOC LOCK ACQUIRED */ 04439000 L @10,RCAPTR(,PVTPTR) 1314 04440000 OI RCASAL(@10),B'10000000' 1314 04441000 * RCACSECT=RCACGFA; /* INDICATE IEAVGFA MODULE IN 1315 04442000 * CONTROL */ 04443000 MVI RCACSECT(@10),X'0E' 1315 04444000 * RCAGFAD='1'B; /* INDICATE ENTRY AT IEAVGFAD */ 04445000 OI RCAGFAD(@10),B'00000001' 1316 04446000 * RSMGFAD='0'B; /* INDICATE GFA DEFER PROCESSING 04447000 * STARTED FOR THIS ADDRESS SPACE*/ 04448000 NI RSMGFAD(RSMHDPTR),B'11011111' 1317 04449000 * PCBPTR=PVTGFADL; /* GET LAST PCB ON THE DEFER 1318 04450000 * QUEUE */ 04451000 L PCBPTR,PVTGFADL(,PVTPTR) 1318 04452000 * 1319 04453000 * /*****************************************************************/ 04454000 * /* */ 04455000 * /* THIS LOOP PROCESSES THE ENTIRE GFA DEFER QUEUE, LOOKING FOR */ 04456000 * /* DEFERRED PCBS FOR THIS ADDRESS SPACE. EACH ONE FOUND IS SENT */ 04457000 * /* TO GFA MAINLINE FOR FRAME ASSIGNMENT. */ 04458000 * /* */ 04459000 * /*****************************************************************/ 04460000 * 1319 04461000 * DO WHILE PCBPTR^=0; /* SCAN THE DEFER QUEUE UNTIL THE 04462000 * BEGINNING IS REACHED */ 04463000 B @DE01319 1319 04464000 @DL01319 DS 0H 1320 04465000 *TESTASCB: 1320 04466000 * IF PCBASCB^=ASCBPTR THEN 1320 04467000 TESTASCB CLC PCBASCB(4,PCBPTR),ASCBPTR(RSMHDPTR) 1320 04468000 BE @RF01320 1320 04469000 * PCBPTR=PCBBQPA; /* CONTINUE BACKWARDS SCAN OF THE 04470000 * PCB DEFER QUEUE IF THE PCB IS 04471000 * NOT FOR THE INPUT ADDRESS 1321 04472000 * SPACE @YA01572*/ 04473000 L PCBPTR,PCBBQPA(,PCBPTR) 1321 04474000 * ELSE 1322 04475000 * DO; /* THE PCB IS FOR THIS ADDRESS 1322 04476000 * SPACE */ 04477000 B @RC01320 1322 04478000 @RF01320 DS 0H 1323 04479000 * PCBGFAD='0'B; /* RESET THE GFA DEFER PROCESSING 04480000 * FLAG */ 04481000 NI PCBGFAD(PCBPTR),B'10111111' 1323 04482000 * IF PVTAFC^=0 THEN 1324 04483000 LH @10,PVTAFC(,PVTPTR) 1324 04484000 LTR @10,@10 1324 04485000 BZ @RF01324 1324 04486000 * DO; /* AVAILABLE FRAMES EXIST */ 04487000 * RFY 1326 04488000 * PTR1 RSTD; 1326 04489000 * PTR1=PCBPTR; /* LOOK AT THE QUEUED PCB AND ALL 04490000 * PCBS THAT ARE RELATED. CHECK 04491000 * FOR A FIX COUNT. IF FOUND, 1327 04492000 * TEST THE DEFER FIX THRESHOLD. 04493000 * @YA01572*/ 04494000 LR PTR1,PCBPTR 1327 04495000 * DO WHILE PTR1^=0; 1328 04496000 B @DE01328 1328 04497000 @DL01328 DS 0H 1329 04498000 * IF PTR1->PCBFXC>0 THEN/* DOES PCB REPRESENT A FIX 1329 04499000 * @YA01572*/ 04500000 CLI PCBFXC(PTR1),0 1329 04501000 BNH @RF01329 1329 04502000 * DO; /* YES, CHECK THE DEFER FIX 1330 04503000 * THRESHOLD @YA01572*/ 04504000 * IF PVTAFC<=PVTDEFFX THEN/* AT DEFER FIX THRESHOLD 04505000 * @YA01572*/ 04506000 LH @10,PVTAFC(,PVTPTR) 1331 04507000 CH @10,PVTDEFFX(,PVTPTR) 1331 04508000 BH @RF01331 1331 04509000 * DO; /* YES, LEAVE THIS PCB ON THE GFA 04510000 * DEFER QUEUE @YA01572*/ 04511000 * PCBPTR=PCBBQPA;/* GET NEXT PCB POINTER 1333 04512000 * @YA01572*/ 04513000 L PCBPTR,PCBBQPA(,PCBPTR) 1333 04514000 * IF PCBPTR=0 THEN 1334 04515000 LTR PCBPTR,PCBPTR 1334 04516000 BZ @RT01334 1334 04517000 * GOTO GFADEXIT;/* RETURN, IF THERE ARE NO 1335 04518000 * MORE PCBS ON THE GFA DEFER 1335 04519000 * QUEUE @YA01572*/ 04520000 * ELSE 1336 04521000 * GOTO TESTASCB;/* LOOK AT THE NEXT PCB ON 1336 04522000 * THE GFA DEFER QUEUE @YA01572*/ 04523000 B TESTASCB 1336 04524000 * END; 1337 04525000 * ELSE 1338 04526000 * GOTO DQTHEPCB;/* A FIX WAS FOUND, BUT THE DEFER 04527000 * FIX THRESHOLD HAS NOT BEEN 1338 04528000 * REACHED SO THIS PCB MAY BE 1338 04529000 * REMOVED FROM THE GFA DEFER 1338 04530000 * QUEUE @YA01572*/ 04531000 * END; 1339 04532000 * ELSE 1340 04533000 * PTR1=PTR1->PCBRLPA;/* GET PTR TO NEXT RELATED PCB 04534000 * @YA01572*/ 04535000 @RF01329 L @10,PCBRLPA-1(,PTR1) 1340 04536000 LA @10,0(,@10) 1340 04537000 LR PTR1,@10 1340 04538000 * END; 1341 04539000 @DE01328 LTR PTR1,PTR1 1341 04540000 BNZ @DL01328 1341 04541000 *DQTHEPCB: 1342 04542000 * XPTDEFER='0'B; /* TURN OFF DEFER INDICATOR 1342 04543000 * @YA01572*/ 04544000 * 1342 04545000 DQTHEPCB L @10,XPTEPTR(,PCBPTR) 1342 04546000 NI XPTDEFER(@10),B'11111101' 1342 04547000 * /*******************************************************/ 04548000 * /* */ 04549000 * /* SET UP PCB MANAGER PARAMETERS TO DEQUEUE THE PCB */ 04550000 * /* FROM THE DEFER QUEUE */ 04551000 * /* */ 04552000 * /*******************************************************/ 04553000 * 1343 04554000 * RFY 1343 04555000 * (R0, 1343 04556000 * R1) RSTD; 1343 04557000 * R0=PCBDEQN; /* HAVE THIS PCB DEQUEUED */ 04558000 LA R0,255 1344 04559000 * R1=PCBPTR; /* ADDR OF THE PCB */ 04560000 LR R1,PCBPTR 1345 04561000 * PCBPTR=PCBBQPA; /* SAVE THE PREVIOUS PCB ADDRESS */ 04562000 L PCBPTR,PCBBQPA(,PCBPTR) 1346 04563000 * CALL IEAVPCB; /* PASS THE PCB TO BE DEQUEUED, 04564000 * ITS ADDRESS WILL COME BACK IN 04565000 * REGISTER 1 ALSO, SO THAT WE 1347 04566000 * PASS MAY THE PCB PTR TO 1347 04567000 * IEAVGFA IN REG 1 */ 04568000 L @15,PVTPCB(,PVTPTR) 1347 04569000 BALR @14,@15 1347 04570000 * CALL GFAMAIN; /* CALL IEAVGFA TO GET A FRAME 1348 04571000 * ALLOCATED FOR THE PCB */ 04572000 L @15,PVTPGFA(,PVTPTR) 1348 04573000 BALR @14,@15 1348 04574000 * RFY 1349 04575000 * (R1, 1349 04576000 * R0) UNRSTD; 1349 04577000 * END; 1350 04578000 * ELSE 1351 04579000 * GOTO GFADEXIT; /* NO AVAILABLE FRAMES, EXIT */ 04580000 * END; 1352 04581000 * END; 1353 04582000 @RC01320 DS 0H 1353 04583000 @DE01319 LTR PCBPTR,PCBPTR 1353 04584000 BNZ @DL01319 1353 04585000 *GFADEXIT: 1354 04586000 * ; /* WE HAVE RUN OUT OF AVAILABLE 04587000 * FRAMES OR INPUT PCBS, TIME TO 04588000 * EXIT. */ 04589000 GFADEXIT DS 0H 1355 04590000 * GEN REFS(PSALITA,FLC) 1355 04591000 * (SETLOCK RELEASE,TYPE=SALLOC,RELATED=(SALLOC(IEAVGFAD))); 1355 04592000 SETLOCK RELEASE,TYPE=SALLOC,RELATED=(SALLOC(IEAVGFAD)) 04593000 * R7=RTNADDR; /* RESTORE THE EXIT ADDRESS 1356 04594000 * @YD03005*/ 04595000 L R7,RTNADDR(,R6) 1356 04596000 * RFY 1357 04597000 * (R0, 1357 04598000 * R1) RSTD; 1357 04599000 * R0=PVTSRBID; /* QUICKCELL POOL ID FOR SRB POOL*/ 04600000 L R0,PVTSRBID(,PVTPTR) 1358 04601000 * R1=R6; /* THE ADDRESS OF THE SRB TO BE 04602000 * FREED */ 04603000 LR R1,R6 1359 04604000 * GENERATE REFS(CVTMAP,CVTFRECL,PSACSTK,PSA,FRRSCURR,FRRS,FRRSEMP, 04605000 * FRRSELEN); 1360 04606000 FREECELL CPID=(0),CELL=(1),SAVE=NO,BRANCH=YES 04607000 SETFRR D,WRKREGS=(R5,R6) 04608000 LR R14,R7 04609000 BR R14 04610000 IEAVGFA CSECT 04611000 * END; 1361 04612000 * 1362 04613000 */*GFA: CHART GENERAL FRAME ALLOCATION */ 04614000 */*IEAVGFA: E (,%GFA) GFA MAINLINE */ 04615000 */*%GFA: P SAVE REGS IN PVTWSA8 */ 04616000 */* P SET ENTRY POINT AND MODULE ID IN RCA */ 04617000 */* P GET FIRST PCB ADDRESS FROM REG 1 */ 04618000 */*PCBPROC: D (NO,,YES,CALLALLC) SWAP-IN REQUEST */ 04619000 */* D (YES,,NO,%GFA5) ALLOCATION OF THIS FRAME DEFERRED ? 04620000 */* */ 04621000 */* D (YES,,NO,GFAPUT) ANY AVAILABLE FRAMES ? */ 04622000 */* S (,CALLALLC) GETGFAD: GET RELATED PCBS FROM GFADQ */ 04623000 */*%GFA5: S RECLAIM: RECOVER THE PAGE FRAME, IF POSSIBLE */ 04624000 */* D (NO,,YES,NXTPCB) RECLAIM SUCCESSFUL ? (R15 = 0) */ 04625000 */*CALLALLC: S ALLOC: OBTAIN (ALLOCATE) AN AVAILABLE FRAME */ 04626000 */* D (NO,,YES,%GFA11) DID A FRAME GET ALLOCATED ? */ 04627000 */* D (NO,,YES,%GFAA0) SWAP-IN STAGE 1 ? */ 04628000 */* P SET GFA RETURN CODE (INTRETCD) TO 4. */ 04629000 */* D (YES,,NO,GFAPUT) PAGING EXCEPTION ? */ 04630000 */* D (NO,,YES,GFAPUT) FAULTER PREVIOUSLY SUSPENDED ? */ 04631000 */* S IEAVSUSP: SUSPEND EXECUTION OF FAULTING RB/SRB */ 04632000 */* D (SRB,,RB,%GFSWX1) FAULTER WAS RUNNING UNDER AN ... ? */ 04633000 */* P (,%GFSWX2) SAVE THE SRB ADDRESS, A NULL TCB ADDRESS, INDICATE 04634000 */*SRB MODE */ 04635000 */*%GFSWX1: P (,%GFSWX2) STORE THE TCB AND RB ADDRESSES */ 04636000 */*%GFSWX2: D (YES,,NO,%GFSWX3) LOCKED PAGE-FAULT ? */ 04637000 */* P (,%GFSWX3) INDICATE LOCAL LOCK HELD */ 04638000 */*%GFSWX3: P INDICATE THE FAULTER SHOULD BE RESET */ 04639000 */*GFAPUT: S (,NXTPCB) PUTGFAD: PUT PCB ON DEFER QUEUE */ 04640000 */*%GFA11: D (NO,,YES,%GFA13) SWAP-IN ? */ 04641000 */* D (YES,,NO,%GFA60) EXTERNAL PAGE VALID ? */ 04642000 */*%GFA13: P INDICATE A PCB EXISTS FOR THIS FRAME */ 04643000 */* P INITIALIZE PCBAIA FIELDS FOR INPUT I/O */ 04644000 */* D (YES,,NO,%GFA70) PAGING EXCEPTION ? */ 04645000 */* D (NO,,YES,%GFA70) FAULTER PREVIOUSLY SUSPENDED ? */ 04646000 */* S IEAVSUSP: SUSPEND EXECUTION OF FAULTING RB/SRB */ 04647000 */* P INDICATE THE FAULTER SHOULD BE RESET */ 04648000 */* D (SRB,,RB,%GFSWP1) FAULTER WAS RUNNING UNDER AN ... ? */ 04649000 */* P (,%GFSWP2) SAVE THE SRB ADDRESS, A NULL TCB ADDRESS, INDICATE 04650000 */*SRB MODE */ 04651000 */*%GFSWP1: P (,%GFSWP2) STORE THE TCB AND RB ADDRESSES */ 04652000 */*%GFSWP2: D (YES,,NO,%GFA70) LOCKED PAGE-FAULT ? */ 04653000 */* P (,%GFA70) INDICATE LOCAL LOCK HELD */ 04654000 */*%GFA70: S PGIN: SET UP FOR INPUT I/O */ 04655000 */* D (YES,NXTPCB,NO,) SWAP-IN PCB ? */ 04656000 */* P (,NXTPCB) PGTE=RBN + ASSIGNED AND INVALID FLAGS */ 04657000 */*NXTPCB: D (NO,CALLASM,YES,PCBPROC) ANY MORE INPUT PCBS ? */ 04658000 */*CALLASM: D (YES,,NO,GFAEXIT) ANY AIAS ON I/O HOLD QUEUE ? */ 04659000 */* S ILRCALL: PASS (IOHOLDQ) ACCUMULATED I/O TO ASM */ 04660000 */* P SET GFA RETURN CODE (INTRETCD) TO 4. */ 04661000 */* D (YES,,NO,%C0D1) RETURN CODE FROM ASM = 0? */ 04662000 */*GFAEXIT: P TURN OFF GFA ENTERED FLAG IN RCA */ 04663000 */* P REG 15 = INTRETCD */ 04664000 */* P RESTORE REGISTERS FROM PVTWSA8 */ 04665000 */* R EXIT VIA REG 14 */ 04666000 */*%C0D1: S ABEND: X'C0D' ABEND -- RECORD THE ERROR */ 04667000 */* P GET PCB ADDRESS FROM AIA RETURNED BY ASM */ 04668000 */* D (YES,,NO,%AIABK) SWAP-IN STAGE 1 ? */ 04669000 */* P (,AIALOOP) INDICATE FAILURE IN ROOT PCB, PUT AIA@ ON I/O HOLD 04670000 */*QUEUE */ 04671000 */*%AIABK: P PCBRFAIL = 1, PCBRPB = 1 */ 04672000 */* P SET PCBIOERR ON IN THIS AND ALL RELATED PCBS */ 04673000 */* P SET PCBRFAIL IN ALL ASSOCIATED ROOT PCBS */ 04674000 */* P PUT NEXT AIA AT HEAD OF I/O HOLD QUEUE */ 04675000 */* D (YES,,NO,ERRAIA2 ) FAULTER SUSPENDED ? */ 04676000 */* D (NO,,YES,%AIASRB) PAGE FAULT UNDER AN SRB ? */ 04677000 */* D (YES,,NO,ERRAIA2 ) LOCAL LOCK HELD BY FAULTER ? */ 04678000 */* P (,%AIARST) SET UP TO RESET TCB */ 04679000 */*%AIASRB: P (,%AIARST) SET UP TO RESET SRB */ 04680000 */*%AIARST: S (,%AIADIS1) IEAVRSET: RESET THE TCB/SRB W/PAGE I/O 04681000 */*ERR CODE */ 04682000 */*%AIADIS1: P (,ERRAIA2 ) TURN OFF PCBRESET TO INDICATE RESET ALREADY 04683000 */* DONE */ 04684000 */*ERRAIA2: S (,CALLASM) PCBDISP: DISPOSE OF THE PCBS */ 04685000 */*%GFA60: P ALLOCATE THE PAGE AND ASSIGN IT */ 04686000 */* P ZERO PAGE AND SET PROTECT ITS KEY */ 04687000 */* S (,NXTPCB) PCBDISP: DISPOSE OF PCB(S) */ 04688000 */*%GFAA0: P SET PCBRPB = 1, INTRETCD = 8 */ 04689000 */*BACKOUT1: P DECREMENT THE ROOT COMPLETION COUNT */ 04690000 */* D (YES,,NO,%BKOT3) ANY RELATED PCBS ? */ 04691000 */* S (,%BKOT3) PUTGFAD: PUT RELATED PCBS BACK ON DEFER QUEUE 04692000 */* */ 04693000 */*%BKOT3: S IEAVPCB: SEND PCB TO FREE QUEUE */ 04694000 */* D (YES,,NO,AIALOOP) ARE THERE MORE INPUT PCBS ? */ 04695000 */* P GET NEXT INPUT PCB */ 04696000 */* D (NO,%BKOT3,YES,BACKOUT1) STAGE 1 SWAP-IN PCB ? */ 04697000 */*AIALOOP: D (YES,,NO,%BKOT9) ANY AIAS ON THE I/O HOLD QUEUE ? */ 04698000 */* P GET NEXT AIA AND CALCULATE PCB ADDR. */ 04699000 */* S IEAVPFTE: FREE THE FRAME ADDRESSED BY PCBRBN */ 04700000 */* D (YES,,NO,%BKOT5) STAGE 1 SWAP-IN ? */ 04701000 */* P DECREMENT THE ROOT COMPLETION COUNT */ 04702000 */* D (YES,,NO,%BKOT5) ANY RELATED PCBS ? */ 04703000 */* S PUTGFAD: PUT THEM BACK ON THE DEFER QUEUE */ 04704000 */*%BKOT5: S IEAVPCB: DEQ THE PCB */ 04705000 */* D (YES,,NO,%WRK12) PCB FOR STAGE 1 PAGE */ 04706000 */* P (,AIALOOP) CHAIN THE PCB TO PCBRWRK3 AND PCBRWRK4 */ 04707000 */*%WRK12: P (,AIALOOP) CHAIN THE PCB TO PCBRWRK1 AND PCBRWRK2 */ 04708000 */*%BKOT9: D (NO,GFAEXIT,YES,) ROOT COMPLETION COUNT = 0 ? */ 04709000 */* S (,GFAEXIT) ROOTEXIT: SCHEDULE THE REQUIRED ROOT EXIT ROUTINE. */ 04710000 */*RECLAIM: E RECLAIM SUBROUTINE */ 04711000 */* P CREATE AN RBN FROM THE REAL ADDRESS, SET CANCEL AND 04712000 */* LONGFLAG OFF 1362 04713000 */* */ 04714000 */* D (YES,,NO,%RC10) RBN = 0 ? */ 04715000 */* D (YES,,NO,RELATE2) FORCE RELATE ? */ 04716000 */*RETCDEQ4: R RETURN TO MAINLINE GFA (R15 = 4) */ 04717000 */*%RC10: D (YES,,NO,RETCDEQ4) IS THE BLOCK ADDRESS DEFINED ? 04718000 */* */ 04719000 */* N LOCATE PFTE FOR PAGE'S MOST RECENT FRAME */ 04720000 */* P CALCULATE THE PFTE ADDRESS = PVTPFTP + RBN */ 04721000 */* D (NO,,YES,RETCDEQ4) FRAME REPRESENT VIO WINDOW ? */ 04722000 */* D (YES,,NO,RETCDEQ4) VIRTUAL ADDRESS MATCH PCBVBN ? 04723000 */* */ 04724000 */* D (YES,,NO,%RC15) ADDRESS IN PRIVATE AREA ? */ 04725000 */* D (YES,,NO,RETCDEQ4) SAME ADDRESS SPACE ? */ 04726000 */*%RC15: D (YES,,NO,%RC40) THIS FRAME AVAILABLE ? */ 04727000 */*%RC16: D (NO,,YES,%RC35) FIX REQUEST ? */ 04728000 */*%RC17: P ASSIGN THE FRAME: PCBRBN = RBN */ 04729000 */* P SET PROTECT KEY OF FRAME TO XPTPROT VALUE */ 04730000 */* D (NO,,YES,%RC20) ADDRESS IN PRIVATE AREA ? */ 04731000 */* P INCREMENT COMMON AREA FRAME COUNT */ 04732000 */* P (,%RC21) SEND FRAME TO COMMON FRAME QUEUE */ 04733000 */*%RC20: P SEND FRAME TO LOCAL FRAME QUEUE */ 04734000 */* P INCREMENT THE ADDRESS SPACE FRAME COUNT */ 04735000 */*%RC21: S IEAVPFTE: MOVE PFTE TO LOCAL/ COMMON FRAME QUEUE */ 04736000 */*VALIDATE: P VALIDATE THE PAGE */ 04737000 */*INSTEXIT: P COUNT THE RECLAIM */ 04738000 */* D (NO,,YES,%RC32) PRIVATE AREA FRAME ? */ 04739000 */* P (,RECDISP0) COUNT THE COMMON AREA RECLAIM */ 04740000 */*%RC32: P COUNT THE PRIVATE AREA RECLAIM */ 04741000 */*RECDISP0: S PCBDISP: DISPOSE OF PCB */ 04742000 */*RETCDEQ0: R RETURN TO MAINLINE GFA (R15 = 0) */ 04743000 */*%RC35: D (YES,,NO,%RC36) LONG-FIX REQUEST ? */ 04744000 */* D (NO,,YES,RETCDEQ4) V=R AREA FRAME ? */ 04745000 */* P SET THE FRAME LONG-FIXED */ 04746000 */*%RC36: P (,%RC17) INITIALIZE THE FRAMES FIX COUNT FROM 1362 04747000 */*PCBFXC */ 04748000 */*%RC40: D (NO,,YES,RETCDEQ4) IS THE FRAME CURRENTLY DEQUEUED 04749000 */*? */ 04750000 */* P PCBRBN = RBN */ 04751000 */* D (YES,,NO,RELATE) FIX REQUEST ? */ 04752000 */* D (NO,BUMPFIX,YES,%RC42) LONG FIX REQUEST ? */ 04753000 */*%RC42: D (NO,,YES,%RC44) V=R AREA FRAME ? */ 04754000 */*LONGFIX1: P LONG-FIX THE FRAME */ 04755000 */*BUMPFIX: P ADD THE INPUT FIX COUNT TO THE FRAME FIX COUNT */ 04756000 */* D (YES,RECDISP0,NO,RELATE) PGTPVM = 0 (PAGE IN CORE) 04757000 */*? */ 04758000 */*%RC44: D (NO,,YES,%RC49) IS THE PAGE VALID ? */ 04759000 */* D (NO,,YES,LONGFIX1) IS THE FRAME FIXED ? */ 04760000 */* P (,RELATE) CANCEL = 1 */ 04761000 */*%RC46: P (,LONGFIX1) MAKE THE PAGE VALID */ 04762000 */*%RC49: N THE PAGE CANNOT BE ALREADY FIXED (INPUT REQUIREMENT) */ 04763000 */* S IEAVINV: INVALIDATE PAGE */ 04764000 */* D (YES,,NO,NOCHANGE) HAS THE FRAME BEEN CHANGED ? */ 04765000 */*CHANGED: D (YES,NOCHANGE,NO,) PAGE IN QUICK START AREA ? */ 04766000 */* P SEARCH THE AFQ FOR A NON-V=R AREA FRAME */ 04767000 */* D (YES,MOVEPAGE,NO,) WAS A FRAME OBTAINED ? */ 04768000 */* S IEAVPREF: TRY TO STEAL PREFERRED PFTE FROM LIOQ */ 04769000 */* D (YES,MOVEPAGE,NO,) PREF PFTE STOLEN */ 04770000 */* S IEAVPREF: TRY TO STEAL PREFERRED PFTE FROM CIOQ */ 04771000 */* D (YES,MOVEPAGE,NO,) PREF PFTE STOLEN */ 04772000 */* D (YES,%CONVERT,NO,) IS THERE PFTE TO CONVERT */ 04773000 */* P (,LONGFIX1) REVALIDATE PAGE */ 04774000 */*%CONVERT: S IEAVPREF: CONVERT BOX TO PREFERRED */ 04775000 */*MOVEPAGE: S IEAVPFTE: TRANSFER FRAME TO SAME QUEUE AS V=R FRAME 04776000 */* */ 04777000 */* P COPY THE NECESSARY PFTE FIELDS */ 04778000 */* P COPY THE PAGE IN NON-TRANSLATE MODE */ 04779000 */* S IEAVPFTE: FREE THE V=R AREA FRAME */ 04780000 */*%RC431: P (,LONGFIX1) ASSIGN AND VALIDATE THE PAGE */ 04781000 */*NOCHANGE: S IEAVPFTE: SEND PFTE TO AFQ */ 04782000 */* P (,RETCDEQ4) DECREMENT THE APPROPRIATE FRAME COUNT 04783000 */* */ 04784000 */*RELATE: D (YES,,NO,C0DABEND) PCB EXIST FOR THIS FRAME ? */ 04785000 */*RELATE2: D (YES,,NO,%RL3) PRIVATE AREA PAGE ? */ 04786000 */* P (,%RL5) SET UP TO SEARCH THE LOCAL I/O QUEUE */ 04787000 */*%RL3: P SET UP TO SEARCH THE COMMON I/O QUEUE */ 04788000 */*%RL5: D (NO,,YES,%RL60) IS THE QUEUE EMPTY ? */ 04789000 */* D (NO,,YES,%RL10) DOES THE VIRTUAL ADDRESS MATCH ? */ 04790000 */*%RL50: P (,%RL5) EXAMINE THE NEXT PCB ON THE QUEUE */ 04791000 */*%RL10: D (NO,,YES,%RL40) CANCEL = 1 ? */ 04792000 */* D (YES,,NO,IMMTEST) IS THE PCB FOR OUTPUT ? */ 04793000 */* D (YES,,NO,%RL50) DO THE PCBRBNS MATCH ? */ 04794000 */* D (YES,,NO,%RL13) FRAME MARKED FOR STEAL ? */ 04795000 */* P (,%RL13) RESET STEAL FLAG, ZERO UNREFERENCED 1362 04796000 */*INTERVAL COUNT */ 04797000 */*%RL13: D (YES,,NO,%RL30) VIO VINDOW ? */ 04798000 */*IMMRLATE: P ADD THE INPUT PCB TO THE HEAD OF THE RELATED 1362 04799000 */*QUEUE */ 04800000 */* P COPY COMPLETION FLAGS FROM PTR.PCB TO INPUT PCB */ 04801000 */* D (YES,,NO,%RL21) PAGING EXCEPTION ? */ 04802000 */* D (NO,,YES,%RL21) PAGE FAULTER SUSPENDED ? */ 04803000 */* S IEAVSUSP: SUSPEND EXECUTION OF FAULTER */ 04804000 */* P INDICATE FAULTER HAS BEEN SUSPENDED */ 04805000 */* D (SRB,,RB,%RLSUP1) FAULTER WAS UNDER AN ... ? ? */ 04806000 */* P (,%RLSUP2) SAVE THE SRB ADDRESS AND INDICATE SRB MODE */ 04807000 */*%RLSUP1: P (,%RLSUP2) SAVE THE TCB & RB ADDRESSES IN THE PCB 04808000 */* */ 04809000 */*%RLSUP2: D (YES,,NO,%RL21) LOCKED PAGE-FAULT ? */ 04810000 */* P INDICATE LOCAL LOCK HELD */ 04811000 */*%RL21: P RETURN CODE = 4 */ 04812000 */* P COUNT THE RECLAIM */ 04813000 */* D (NO,,YES,%RL22) PRIVATE AREA PAGE ? */ 04814000 */* P (,%RL23) COUNT THE COMMON AREA RECLAIM */ 04815000 */*%RL22: P COUNT THE PRIVATE AREA RECLAIM */ 04816000 */*%RL23: D (YES,,NO,RETCDEQ0) FORCE RELATE ? */ 04817000 */* P (,RETCDEQ0) SET PCBRBN = PTR.RBN AND UPDATE PFTFXCT 04818000 */* */ 04819000 */*%RL30: P (,VALIDATE) PTR.VBN = 0, PTR.FREAL = 0, PFTPCBSI = 1362 04820000 */*0, PTR.SUPRS = 1 */ 04821000 */*%RL40: D (YES,,NO,%FIXCTST) OUTPUT PCB ? */ 04822000 */* P SET PCBFREAL=1, PCBVBN=0 FOR ALL RELATED PCBS */ 04823000 */* D (YES,RETCDEQ4,NO,%RL50) DO PCBRBNS MATCH */ 04824000 */*%FIXCTST: P (,IMMTEST) INITIALIZE THE FRAME FIX COUNT FROM THE 04825000 */*INPUT PCB */ 04826000 */*IMMTEST: D (YES,,NO,IMMRLATE) IMMEDIATE RECLAIM ? */ 04827000 */* N I. E., I/O COMPLETE, NO I/O ERROR, PAGE-FAULT, AND NOT SUSPENDED 04828000 */* */ 04829000 */* P SET THE KEY OF THE FRAME FROM XPTPROT */ 04830000 */* P VALIDATE THE PAGE */ 04831000 */* P DISCONNECT THE PCB FROM THE PFTE: PCBVBN = 0, PCBFREAL = '0'B */ 04832000 */*P (,INSTEXIT) ZERO THE VBN IN ALL RELATED PCBS */ 04833000 */*%RL60: D (NO,,YES,%RL65) FORCE RELATE ? */ 04834000 */*C0DABEND: P SET UNRELATABLE PCB ERROR FLAG IN RCA */ 04835000 */* S ABEND: X'C0D' ABEND TO RECORD ERROR */ 04836000 */* D (NO,,YES,INSTEXIT) PAGE VALID ? */ 04837000 */* P (,RETCDEQ4) MARK THE PAGE ASSIGNED AND INVALID */ 04838000 */*%RL65: S (,RETCDEQ4) GETGFAD: GET ANY RELATED PCBS FROM 1362 04839000 */*THE DEFER QUEUE */ 04840000 */*ALLOC: E FRAME ALLOCATION SUBROUTINE */ 04841000 */* P RBN = PVTAFQF AND SET LONGFLAG OFF */ 04842000 */*%AL5: D (NO,,YES,%AL90) AVAILABLE FRAME QUEUE EMPTY ? */ 04843000 */* P GENERATE PFTE ADDRESS FROM RBN, PTR1 = RELATED 1362 04844000 */*QUEUE POINTER */ 04845000 */*%AL6: D (YES,%AL7,NO,) PCB INDICATE LONG-FIX ? */ 04846000 */* D (NO,,YES,%NOLNGFX) END OF RELATED QUEUE ? */ 04847000 */* P (,%AL6) GET ADDRESS OF NEXT RELATED PCB */ 04848000 */*%AL7: P (,NSWAPTST) SET INTERNAL 'LONG' FLAG */ 04849000 */*%NOLNGFX: D (NO,,YES,NSWAPTST) SWAP-IN OF LOCAL FIXED OR LSQA 04850000 */*PAGE ? */ 04851000 */*%AL10: D (NO,,YES,%AL17) PRIVATE AREA PAGE ? */ 04852000 */* P INCREMENT COMMON AREA FRAME COUNT */ 04853000 */* P (,%AL20) PFTE DESTINATION IS COMMON FRAME QUEUE, 04854000 */*ASID = X'FFFF' */ 04855000 */*%AL17: P PFTE DESTINATION IS LOCAL FRAME QUEUE */ 04856000 */*UPFRMCT: P INCREMENT LOCAL (PRIVATE AREA) FRAME COUNT, PFTASID 04857000 */*= ASCBASID */ 04858000 */*%AL20: S IEAVPFTE: MOVE PFTE FROM AFQ TO 'TO' QUEUE */ 04859000 */* P PCBRBN = RBN OF FRAME, PFTVBN = PCBVBN */ 04860000 */* P SET FRAME FIX COUNT = PCBFXC PLUS SUM OF ALL 1362 04861000 */* RELATED PCBS FIX COUNTS */ 04862000 */*%AL30: P RESET ALL PFTE FLAGS AND FIELDS NOT EXPLICITLY SET BY 04863000 */*ALLOCATE */ 04864000 */* R RETURN TO MAINLINE */ 04865000 */*NSWAPTST: P INITIALIZE RBNSAVE (LAST RESORT RBN) */ 04866000 */* D (NO,%AL61,YES,) ADDRESS SPACE SWAPPABLE ? */ 04867000 */*%AL41: D (YES,,NO,%AL75) V=R AREA FRAME ? */ 04868000 */* P RBNSAVE = CURRENT PFTE'S RBN */ 04869000 */*%AL42: P RBN = RBN OF NEXT AVAILABLE FRAME (PFTFQPTR) */ 04870000 */* D (NO,,YES,%AL70) END OF THE QUEUE ? */ 04871000 */* P (,%AL41) PFTEPTR = PVTPFTP + RBN */ 04872000 */*%AL61: D (NO,,YES,%AL65) V=R AREA FRAME ? */ 04873000 */* D (YES,,NO,%AL75) FRAME IN THE RESERVED AREA ? */ 04874000 */*%AL62: P RBNSAVE = CURRENT PFTE'S RBN */ 04875000 */*%AL65: P RBN = RBN OF NEXT AVAILABLE FRAME (PFTFQPTR) */ 04876000 */* D (NO,,YES,%AL71) END OF THE QUEUE ? */ 04877000 */* P (,%AL61) PFTEPTR = PVTPFTP + RBN */ 04878000 */*%AL71: S IEAVPREF: TRY TO STEAL PREFERRED PFTE FROM LIOQ */ 04879000 */* D (YES,%AL75,NO,) PREF PFTE STOLEN */ 04880000 */* S IEAVPREF: TRY TO STEAL PREFERRED PFTE FROM CIOQ */ 04881000 */* D (YES,%AL75,NO,) PREF PFTE STOLEN */ 04882000 */* D (NO,%AL70,YES,) NEED TO CONVERT SAVED PFTE */ 04883000 */* S IEAVPREF: CONVERT BOX TO PREFERRED */ 04884000 */*%AL70: D (NO,,YES,%AL90) RBNSAVE = 0 ? */ 04885000 */* P PTR = PVTPFTP + RBNSAVE, RBN = RBNSAVE */ 04886000 */*%AL75: D (YES,,NO,%AL80) INTERNAL 'LONG' FLAG ON ? */ 04887000 */* P (,%AL80) LONG-FIX THE FRAME */ 04888000 */*%AL80: D (YES,,NO,%AL10) LSQA PAGE SWAP-IN ? */ 04889000 */* P (,UPFRMCT) SEND FRAME TO LSQA QUEUE, SET LSQA FLAG 04890000 */* IN THE PFTE */ 04891000 */*%AL90: P INDICATE FRAME ALLOCATION DEFERRED FOR THIS PCB */ 04892000 */* R RETURN TO MAINLINE */ 04893000 */*IEAVGFAD: E (,%GFAD) DEFER QUEUE PROCESSOR */ 04894000 */*%GFAD: P SET UP PVT AND RSMHD ADDRESSES FOR IEAVGFA */ 04895000 */* S SETFRR: SET UP FRR AND OBTAIN RCA */ 04896000 */* S SETLOCK: GET SALLOC LOCK */ 04897000 */* P INDICATE CSECT ENTERED AND LOCK HELD IN RCA, LINK 04898000 */*RCA TO PVT */ 04899000 */* P RESET THE GFA-DEFER FLAG IN THE RSM HEADER */ 04900000 */* P PCBPTR = LAST PCB ON THE DEFER QUEUE */ 04901000 */*%DEF10: D (NO,,YES,GFADEXIT) DEFER QUEUE EMPTY ? */ 04902000 */* D (YES,,NO,%DEF20) DEFERRED PCB FOR THIS MEMORY ? */ 04903000 */* P RESET THE PCB DEFER FLAG */ 04904000 */* D (NO,,YES,GFADEXIT) AVAILABLE FRAME Q EMPTY ? */ 04905000 */* P RESET DEFER FLAGS IN THE PCB AND ITS XPTE */ 04906000 */* P PTR = ADDRESS OF PREVIOUS PCB */ 04907000 */* S IEAVPCB: DEQUEUE CURRENT PCB */ 04908000 */* S (,%DEF10) IEAVGFA: PASS PCB TO GFA FOR ALLOCATION 04909000 */* */ 04910000 */*%DEF20: P (,%DEF10) GET THE PREVIOUS PCB ADDRESS */ 04911000 */*GFADEXIT: S SETLOCK: RELEASE SALLOC LOCK */ 04912000 */* S FREECELL: FREE SRB */ 04913000 */* S SETFRR: DELETE FRR AND FREE RCA */ 04914000 */* R EXIT */ 04915000 */*PCBDISP: E DISPOSE OF PCBS */ 04916000 */* P GET FIRST RELATED PCB ADDRESS */ 04917000 */* D (YES,,NO,%PCB64) PAGING EXCEPTION ? */ 04918000 */* D (YES,,NO,SCHEDPCB) PAGE FAULTER SUSPENDED ? */ 04919000 */* D (YES,%PCBRST,NO,) PAGE FAULT UNDER AN SRB ? */ 04920000 */* D (YES,%PCBRST,NO,) LOCKED PAGE FAULT ? */ 04921000 */*PCBDISPB: D (YES,%PCB62A,NO,) PRIVATE AREA PAGE ? */ 04922000 */* P (,%PCB62C) PCB DESTINATION IS COMMON I/O QUEUE */ 04923000 */*%PCB62A: P (,%PCB62C) PCB DESTINATION IS LOCAL I/O QUEUE */ 04924000 */*%PCB62C: P INDICATE I/O COMPLETE, NO RELATED PCBS, RESET VIRTUAL 04925000 */*ADDRESS */ 04926000 */* S IEAVPCB: ADD PCB TO ITS DESTINATION QUEUE */ 04927000 */* S (,DISPLAST) IEAVOPBR: HAVE IEAVIOCP SCHEDULED */ 04928000 */*%PCBRST: S (,SCHEDPCB) IEAVRSET: MAKE TCB OR SRB DISPATCHABLE */ 04929000 */*%PCB64: D (YES,,NO,PCBDISPB) ROOT PCB EXIST ? */ 04930000 */* D (YES,,NO,%PCBSTLK) ROOT COMPLETION COUNT > 1 ? */ 04931000 */* P (,SCHEDPCB) DECREMENT THE ROOT COMPLETION COUNT */ 04932000 */*%PCBSTLK: S SETLOCK: REQUEST LOCAL LOCK CONDITIONALLY */ 04933000 */* D (NO,PCBDISPB,YES,) DO WE NOW HOLD THE LOCAL LOCK? */ 04934000 */* D (YES,%PCBNST,NO,) DID OUR CPU HAVE IT BEFORE? */ 04935000 */* P SET RCALL TO INDICATE LOCAL LOCK OBTAINED */ 04936000 */*%PCBNST: P ZERO THE ROOT COMPLETION COUNT */ 04937000 */* S ROOTEXIT: CALL THE EXIT POINTED TO BY PCBRGOTO */ 04938000 */* D (NO,SCHEDPCB,YES,) DID I GET LOCAL LOCK ? */ 04939000 */* S (,SCHEDPCB) SETLOCK: RELEASE LOCAL LOCK , RESET RCALL 04940000 */*FLAG */ 04941000 */*SCHEDPCB: S IEAVPCB: FREE THE PCB */ 04942000 */*DISPLAST: D (YES,,NO,%PCB66D) END OF THE RELATED QUEUE ? */ 04943000 */* R RETURN TO GFA MAINLINE */ 04944000 */*%PCB66D: P (,PCBDISPB) PTR1 = NEXT RELATED PCB ADDRESS */ 04945000 */*PUTGFAD: E SUBRTN TO PUT PCBS ON DEFER QUEUE */ 04946000 */* P INCREMENT THE DEFER COUNT */ 04947000 */* D (YES,,NO,%PUT30) SWAP-IN ? */ 04948000 */* P (,CALLPCB) PCBSWPIN = 0 */ 04949000 */*%PUT30: D (NO,,YES,%PUT32) XPTDEFER = 1 OR XPTFREL = 1 ? */ 04950000 */* P MARK THE XPTE DEFERRED, THE PAGE ASSIGNED AND 1362 04951000 */*INVALID */ 04952000 */*CALLPCB: S (,PUTEXIT) IEAVPCB: PUT PCB ON END OF DEFER QUEUE 04953000 */* */ 04954000 */*%PUT32: P LOCATE FIRST PCB ON GFA DEFER QUEUE (PVTGFAD) */ 04955000 */*%PUT33: D (NO,,YES,%PUT39) IS THIS THE END OF THE QUEUE ? */ 04956000 */* D (NO,,YES,%PUT34) DOES VBN MATCH INPUT PCBVBN ? */ 04957000 */*%PUT33A: P (,%PUT33) GET NEXT PCB ON QUEUE (PCBFQPA) */ 04958000 */*%PUT34: D (YES,,NO,%PUT35) INPUT PCBVBN IN PRIVATE AREA ? */ 04959000 */* D (NO,%PUT33A,YES,%PUT35) DO ASID'S MATCH ? */ 04960000 */*%PUT35: P ADD THE PCB TO THE FRONT OF THE RELATED QUEUE */ 04961000 */*PUTEXIT: R RETURN TO MAINLINE */ 04962000 */*%PUT39: P (,CALLPCB) MARK THE FRAME DEFERRED */ 04963000 */*GETGFAD: E SUBROUTINE TO GET PCBS FROM GFADQ */ 04964000 */* P PTR = PVTGFADF ( ADDRESS OF THE DEFER QUEUE) */ 04965000 */*%GET10: D (NO,,YES,GTEXIT) PTR = 0 (END OF THE QUEUE ) ? */ 04966000 */* D (NO,,YES,%GET20) PCB FOR SAME VIRTUAL PAGE ? */ 04967000 */*%GET15: P (,%GET10) PTR = ADDRESS OF NEXT DEFERRED PCB */ 04968000 */*%GET20: D (YES,,NO,%GET25) PCB FOR PRIVATE AREA PAGE ? */ 04969000 */* D (YES,,NO,%GET15) PCB FOR THE SAME MEMORY ? */ 04970000 */*%GET25: S (,%GET30) IEAVPCB: DEQUEUE THE PCB(S) FROM THE DEFER 1362 04971000 */*QUEUE */ 04972000 */*%GET30: P ENQUEUE THEM ON THE INPUT PCB'S RELATED QUEUE */ 04973000 */*GTEXIT: P RESET THE XPTDEFER FLAG */ 04974000 */* R RETURN TO MAINLINE */ 04975000 */*PGIN: E PAGE-IN SET-UP SUBRTN */ 04976000 */* P PLACE PCB'S AIA ON I/O HOLD QUEUE */ 04977000 */* D (YES,,NO,%PGIN30) PRIVATE AREA PAGE ? */ 04978000 */* D (NO,,YES,%PGIN20) SWAP-IN ? */ 04979000 */* D (NO,,YES,%PGIN10) VIO PAGE ? */ 04980000 */* P (,%PGIN20) COUNT THE NON-VIO PAGE-IN */ 04981000 */*%PGIN10: P COUNT THE VIO PAGE-IN */ 04982000 */*%PGIN20: P PCB QUEUE NUMBER IS PCBLIOQN */ 04983000 */*%PGIN25: S IEAVPCB: MOVE PCB TO AN IOQ */ 04984000 */* R RETURN */ 04985000 */*%PGIN30: D (NO,,YES,%PGIN40) STAGE 1 SWAP-IN ? */ 04986000 */* D (NO,,YES,%PGIN50) VIO PAGE ? */ 04987000 */* P COUNT THE COMMON AREA NON-VIO PAGE-IN */ 04988000 */*%PGIN40: P (,%PGIN25) PCB QUEUE IS PCBCIOQN */ 04989000 */*%PGIN50: P (,%PGIN40) COUNT THE COMMON AREA VIO PAGE-IN */ 04990000 */*IEAVGFA: END */ 04991000 @DATA DS 0H 04992000 @CH00032 DC H'9' 04993000 @DATD DSECT 04994000 DS 0F 04995000 IEAVGFA CSECT 04996000 DS 0F 04997000 @CF00038 DC F'1' 04998000 @CF00085 DC F'4' 04999000 @CF00060 DC F'16' 05000000 @CF02288 DC F'36' 05001000 @CF02222 DC F'2048' 05002000 @CF02220 DC F'4096' 05003000 @CF02289 DC F'16711680' 05004000 @CF02253 DC XL4'00000006' 05005000 @CF02300 DC XL4'0000FFFF' 05006000 @DATD DSECT 05007000 DS 0D 05008000 @ENDDATD EQU * 05009000 IEAVGFA CSECT 05010000 NOPR ((@ENDDATD-@DATD)*16) 05011000 DS 0F 05012000 @SIZDATD DC AL1(0) 05013000 DC AL3(@ENDDATD-@DATD) 05014000 @CV02161 DC V(IEAVSUSP) 05015000 DS 0D 05016000 GFAENTER DC XL4'01000000' 05017000 GFADEFER DC XL4'10000000' 05018000 GFARECLM DC XL4'00000100' 05019000 @CB02190 DC X'FFF0' 05020000 MXVROFF DC X'FFFFFFFF' 05021000 ORG MXVROFF 05022000 NOFRAME DS BL2 05023000 COMMASID DS BL2 05024000 ORG MXVROFF+4 05025000 @00 EQU 00 EQUATES FOR REGISTERS 0-15 05026000 @01 EQU 01 05027000 @02 EQU 02 05028000 @03 EQU 03 05029000 @04 EQU 04 05030000 @05 EQU 05 05031000 @06 EQU 06 05032000 @07 EQU 07 05033000 @08 EQU 08 05034000 @09 EQU 09 05035000 @10 EQU 10 05036000 @11 EQU 11 05037000 @12 EQU 12 05038000 @13 EQU 13 05039000 @14 EQU 14 05040000 @15 EQU 15 05041000 PVTPTR EQU @03 05042000 PFTEPTR EQU @07 05043000 PCBPTR EQU @11 05044000 RSMHDPTR EQU @02 05045000 R6 EQU @06 05046000 R0 EQU @00 05047000 PASS EQU @00 05048000 R1 EQU @01 05049000 PARM EQU @01 05050000 R4 EQU @04 05051000 R5 EQU @05 05052000 R7 EQU @07 05053000 R8 EQU @08 05054000 R9 EQU @09 05055000 R10 EQU @10 05056000 R12 EQU @12 05057000 PTR1 EQU @12 05058000 R13 EQU @13 05059000 R14 EQU @14 05060000 R15 EQU @15 05061000 PSA EQU 0 05062000 FLCRNPSW EQU PSA 05063000 FLCROPSW EQU PSA+8 05064000 FLCICCW2 EQU PSA+16 05065000 FLCCVT EQU FLCICCW2 05066000 PSAEEPSW EQU PSA+132 05067000 PSAESPSW EQU PSA+136 05068000 FLCSVILC EQU PSAESPSW+1 05069000 PSAEPPSW EQU PSA+140 05070000 FLCPIILC EQU PSAEPPSW+1 05071000 FLCPICOD EQU PSAEPPSW+2 05072000 PSAPICOD EQU FLCPICOD+1 05073000 FLCTEA EQU PSAEPPSW+4 05074000 FLCPER EQU PSA+152 05075000 FLCMCLA EQU PSA+168 05076000 FLCIOEL EQU FLCMCLA+4 05077000 FLCIOA EQU FLCMCLA+16 05078000 FLCFSA EQU FLCMCLA+80 05079000 PSALCCAV EQU PSA+528 05080000 PSAAOLD EQU PSA+548 05081000 PSASUPER EQU PSA+552 05082000 PSASUP1 EQU PSASUPER 05083000 PSASUP2 EQU PSASUPER+1 05084000 PSASUP3 EQU PSASUPER+2 05085000 PSASUP4 EQU PSASUPER+3 05086000 PSACLHT EQU PSA+640 05087000 PSALKSA EQU PSA+696 05088000 PSAHLHI EQU PSA+760 05089000 PSALITA EQU PSA+764 05090000 PSADSSFL EQU PSA+836 05091000 PSADSSF1 EQU PSADSSFL 05092000 PSADSSF3 EQU PSADSSFL+2 05093000 PSADSSF4 EQU PSADSSFL+3 05094000 PSARSVT EQU PSA+896 05095000 PSALSFCC EQU PSA+1012 05096000 PVT EQU 0 05097000 PVTFLAG1 EQU PVT 05098000 PVTFLAG2 EQU PVT+1 05099000 PVTAFC EQU PVT+2 05100000 PVTPFTP EQU PVT+12 05101000 PVTFPFN EQU PVT+16 05102000 PVTLPFN EQU PVT+18 05103000 PVTFVR EQU PVT+20 05104000 PVTLVR EQU PVT+22 05105000 PVTLCSA EQU PVT+26 05106000 PVTDFRS EQU PVT+34 05107000 PVTREUS EQU PVT+48 05108000 PVTPRCA EQU PVT+52 05109000 PVTLQSA EQU PVT+60 05110000 PVTSRBID EQU PVT+68 05111000 PVTPGFA EQU PVT+84 05112000 PVTPCB EQU PVT+104 05113000 PVTPFTE EQU PVT+108 05114000 PVTPFP2 EQU PVT+116 05115000 PVTPRCV EQU PVT+156 05116000 PVTPINV EQU PVT+172 05117000 PVTPOPBR EQU PVT+220 05118000 PVTPPREF EQU PVT+224 05119000 PVTSWPIO EQU PVT+232 05120000 PVTPAGIO EQU PVT+236 05121000 PVTPRSET EQU PVT+244 05122000 PVTNPIN EQU PVT+248 05123000 PVTVAMI EQU PVT+256 05124000 PVTSPIN EQU PVT+268 05125000 PVTNPREC EQU PVT+276 05126000 PVTCAIN EQU PVT+284 05127000 PVTCAREC EQU PVT+292 05128000 PVTSPREC EQU PVT+296 05129000 PVTQS EQU PVT+304 05130000 PVTAFQF EQU PVTQS 05131000 PVTWSAX EQU PVT+344 05132000 PVTWSA8 EQU PVTWSAX+504 05133000 PVTSAVE EQU PVTWSAX+1328 05134000 PVTMAXFX EQU PVT+1822 05135000 PVTDEFFX EQU PVT+1828 05136000 PVTCNTFX EQU PVT+1830 05137000 PVTCOMFX EQU PVT+1834 05138000 PVTPCBQS EQU PVT+1852 05139000 PVTGFADF EQU PVTPCBQS+24 05140000 PVTGFADL EQU PVTPCBQS+28 05141000 PVTCIOQF EQU PVTPCBQS+32 05142000 PVTMVCLC EQU PVT+1936 05143000 PVTTASID EQU PVT+1942 05144000 FRRS EQU 0 05145000 FRRSHEAD EQU FRRS 05146000 FRRSEMP EQU FRRSHEAD 05147000 FRRSLAST EQU FRRSHEAD+4 05148000 FRRSELEN EQU FRRSHEAD+8 05149000 FRRSCURR EQU FRRSHEAD+12 05150000 FRRSENTR EQU 0 05151000 FRRSFRRA EQU FRRSENTR 05152000 FRRSFLGS EQU FRRSENTR+4 05153000 FRRSFLG1 EQU FRRSFLGS 05154000 FRRSPARM EQU FRRSENTR+8 05155000 FRREPTR EQU 0 05156000 ASCB EQU 0 05157000 ASCBSUPC EQU ASCB+16 05158000 ASCBASID EQU ASCB+36 05159000 ASCBSTOR EQU ASCB+44 05160000 ASCBRSM EQU ASCB+52 05161000 ASCBRSMF EQU ASCBRSM 05162000 ASCBFW1 EQU ASCB+100 05163000 ASCBRCTF EQU ASCBFW1+2 05164000 ASCBFLG1 EQU ASCBFW1+3 05165000 ASCBDSP1 EQU ASCB+114 05166000 ASCBFLG2 EQU ASCB+115 05167000 ASCBLKGP EQU ASCB+128 05168000 ASCBOUXB EQU ASCB+148 05169000 ASCBSRQ EQU ASCB+180 05170000 ASCBSRQ1 EQU ASCBSRQ 05171000 ASCBSRQ2 EQU ASCBSRQ+1 05172000 ASCBSRQ3 EQU ASCBSRQ+2 05173000 ASCBSRQ4 EQU ASCBSRQ+3 05174000 RCA EQU 0 05175000 RCAPARM1 EQU RCA+4 05176000 RCANAME7 EQU RCA+8 05177000 RCACSECT EQU RCA+9 05178000 RCAFLAGS EQU RCA+10 05179000 RCASAL EQU RCAFLAGS 05180000 RCALL EQU RCAFLAGS 05181000 RCARCRD EQU RCA+11 05182000 RCANAMES EQU RCA+12 05183000 RCANAME1 EQU RCANAMES 05184000 RCAGFA EQU RCANAME1 05185000 RCANAME2 EQU RCANAMES+1 05186000 RCANAME3 EQU RCANAMES+2 05187000 RCANAME4 EQU RCANAMES+3 05188000 RCAGFAD EQU RCANAME4 05189000 RCANAME5 EQU RCANAMES+4 05190000 RCANAME6 EQU RCANAMES+5 05191000 PFTE EQU 0 05192000 PFTPGID EQU PFTE 05193000 PFTASID EQU PFTPGID 05194000 PFTVBN EQU PFTPGID+2 05195000 PFTQPTRS EQU PFTE+4 05196000 PFTFQPTR EQU PFTQPTRS 05197000 PFTFXCT EQU PFTE+8 05198000 PFTFLAGS EQU PFTE+12 05199000 PFTFLAG1 EQU PFTFLAGS 05200000 PFTONAVQ EQU PFTFLAG1 05201000 PFTVRINT EQU PFTFLAG1 05202000 PFTLSQA EQU PFTFLAG1 05203000 PFTVRPLT EQU PFTFLAG1 05204000 PFTPCBSI EQU PFTFLAG1 05205000 PFTOFINT EQU PFTFLAG1 05206000 PFTFLAG2 EQU PFTFLAGS+1 05207000 PFTVR EQU PFTFLAG2 05208000 PFTIRRG EQU PFTFLAG2 05209000 PFTSTEAL EQU PFTFLAG2 05210000 PFTPREF EQU PFTFLAG2 05211000 PFTQNDX EQU PFTE+14 05212000 PFTUIC EQU PFTE+15 05213000 PCB EQU 0 05214000 PCBFQP EQU PCB 05215000 PCBFQPA EQU PCBFQP+1 05216000 PCBBQP EQU PCB+4 05217000 PCBBQPA EQU PCBBQP 05218000 PCBRTP EQU PCB+8 05219000 PCBFL1 EQU PCBRTP 05220000 PCBPEX EQU PCBFL1 05221000 PCBSRBMD EQU PCBFL1 05222000 PCBLLHLD EQU PCBFL1 05223000 PCBROOT EQU PCBFL1 05224000 PCBIOI EQU PCBFL1 05225000 PCBIOCMP EQU PCBFL1 05226000 PCBRTPA EQU PCBRTP+1 05227000 PCBRLP EQU PCB+12 05228000 PCBFXC EQU PCBRLP 05229000 PCBRLPA EQU PCBRLP+1 05230000 PCBXPT EQU PCB+16 05231000 PCBFL2 EQU PCBXPT 05232000 PCBFREAL EQU PCBFL2 05233000 PCBGFAD EQU PCBFL2 05234000 PCBIOERR EQU PCBFL2 05235000 PCBRESET EQU PCBFL2 05236000 PCBSUPRS EQU PCBFL2 05237000 PCBVIO EQU PCBFL2 05238000 PCBXPTA EQU PCBXPT+1 05239000 PCBPGT EQU PCB+20 05240000 PCBFL3 EQU PCBPGT 05241000 PCBSWPIN EQU PCBFL3 05242000 PCBSWPS1 EQU PCBFL3 05243000 PCBSWPLS EQU PCBFL3 05244000 PCBNOREC EQU PCBFL3 05245000 PCBSWPS2 EQU PCBFL3 05246000 PCBRBN EQU PCB+24 05247000 PCBVBN EQU PCB+26 05248000 PCBBLOCK EQU PCB+28 05249000 PCBSRB EQU PCBBLOCK 05250000 PCBRB EQU PCBSRB 05251000 PCBASCB EQU PCB+32 05252000 PCBAIA EQU PCB+36 05253000 PCBR EQU 0 05254000 PCBRTCB EQU PCBR 05255000 PCBRFLAG EQU PCBRTCB 05256000 PCBRETRY EQU PCBRFLAG 05257000 PCBRPB EQU PCBRFLAG 05258000 PCBRFAIL EQU PCBRFLAG 05259000 PCBRGOTO EQU PCBR+4 05260000 PCBRASCB EQU PCBR+12 05261000 PCBRCNT EQU PCBR+16 05262000 PCBRWRK3 EQU PCBR+28 05263000 PCBRWRK4 EQU PCBR+32 05264000 CVTMAP EQU 0 05265000 CVT EQU CVTMAP 05266000 CVTDAR EQU CVTMAP+72 05267000 CVTFLGS1 EQU CVTDAR 05268000 CVTDCB EQU CVTMAP+116 05269000 CVTIOQET EQU CVTMAP+120 05270000 CVTIERLC EQU CVTMAP+144 05271000 CVTHEAD EQU CVTMAP+160 05272000 CVTSV76C EQU CVTHEAD 05273000 CVTOPTA EQU CVTMAP+182 05274000 CVTOPTB EQU CVTMAP+183 05275000 CVTGTF EQU CVTMAP+236 05276000 CVTGTFST EQU CVTGTF 05277000 CVTGTFS EQU CVTGTFST 05278000 CVTSTATE EQU CVTGTFST 05279000 CVTTMODE EQU CVTGTFST 05280000 CVTFORM EQU CVTGTFST 05281000 CVTAQAVT EQU CVTMAP+240 05282000 CVTTCMFG EQU CVTAQAVT 05283000 CVTVOLM2 EQU CVTMAP+244 05284000 CVTTATA EQU CVTVOLM2 05285000 CVTTSKS EQU CVTTATA 05286000 CVTVOLF2 EQU CVTTSKS 05287000 CVTTAT EQU CVTTATA+1 05288000 CVTATER EQU CVTMAP+248 05289000 CVTEXT1 EQU CVTMAP+252 05290000 CVTPURG EQU CVTMAP+260 05291000 CVTQMSG EQU CVTMAP+268 05292000 CVTDMSR EQU CVTMAP+272 05293000 CVTRSV37 EQU CVTDMSR 05294000 CVTDMSRF EQU CVTRSV37 05295000 CVTERPV EQU CVTMAP+316 05296000 CVTINTLA EQU CVTMAP+320 05297000 CVTAPF EQU CVTMAP+324 05298000 CVTEXT2 EQU CVTMAP+328 05299000 CVTHJES EQU CVTMAP+332 05300000 CVTPGSIA EQU CVTMAP+348 05301000 CVTA1F1 EQU CVTMAP+356 05302000 CVTSYSK EQU CVTMAP+357 05303000 CVTVOLM1 EQU CVTMAP+380 05304000 CVTVOLF1 EQU CVTVOLM1 05305000 CVTXTNT1 EQU 0 05306000 CVTXTNT2 EQU 0 05307000 CVTDSSV EQU CVTXTNT2 05308000 CVTFLGBT EQU CVTXTNT2+5 05309000 CVTQID EQU CVTXTNT2+24 05310000 CVTRV400 EQU CVTXTNT2+52 05311000 CVTRV409 EQU CVTXTNT2+53 05312000 CVTATCVT EQU CVTXTNT2+64 05313000 CVTRV429 EQU CVTXTNT2+84 05314000 CVTRV438 EQU CVTXTNT2+85 05315000 CVTRV457 EQU CVTXTNT2+112 05316000 CVTRV466 EQU CVTXTNT2+113 05317000 CVTFIX EQU 0 05318000 CVTRELNO EQU CVTFIX+252 05319000 RSMHD EQU 0 05320000 RSMASCB EQU RSMHD+8 05321000 RSMFLG1 EQU RSMHD+12 05322000 RSMGFAD EQU RSMFLG1 05323000 RSMFAIL EQU RSMFLG1 05324000 RSMCNTFX EQU RSMHD+14 05325000 RSMQS EQU RSMHD+20 05326000 RSMLFQ EQU RSMQS 05327000 RSMLSQA EQU RSMQS+4 05328000 RSMLIOQ EQU RSMQS+8 05329000 RSMLIOQF EQU RSMLIOQ 05330000 PGTPTE EQU 0 05331000 PGTRSA EQU PGTPTE 05332000 PGTBITS EQU PGTRSA+1 05333000 PGTPVM EQU PGTBITS 05334000 PGTPAM EQU PGTBITS 05335000 XPTE EQU 0 05336000 XPTPROT EQU XPTE 05337000 XPTFLAGS EQU XPTE+2 05338000 XPTXAV EQU XPTFLAGS 05339000 XPTCKF EQU XPTFLAGS 05340000 XPTVIO EQU XPTFLAGS 05341000 XPTDEFER EQU XPTFLAGS 05342000 XPTFLAG2 EQU XPTE+3 05343000 XPTPOINP EQU XPTFLAG2 05344000 XPTLPID EQU XPTE+4 05345000 XPTLGN EQU XPTLPID 05346000 XPTLPN EQU XPTLPID+4 05347000 ASMVT EQU 0 05348000 ASMFLAG1 EQU ASMVT 05349000 ASMFLAG2 EQU ASMVT+1 05350000 ASMSTAGQ EQU ASMVT+32 05351000 ASMPCCWQ EQU ASMVT+64 05352000 ASMLSAI EQU ASMVT+144 05353000 ASMGOSQS EQU ASMVT+152 05354000 ASMWKSA1 EQU ASMVT+368 05355000 ASMWKSA2 EQU ASMVT+448 05356000 ASMWKSA3 EQU ASMVT+528 05357000 ASMWKSA4 EQU ASMVT+608 05358000 ASMWKSA5 EQU ASMVT+688 05359000 ASMPOOLS EQU 0 05360000 ASMCPAVQ EQU ASMPOOLS+8 05361000 ASMCPRSQ EQU ASMPOOLS+16 05362000 OUXB EQU 0 05363000 OUXBPIN EQU OUXB+16 05364000 OUXBPREC EQU OUXB+24 05365000 OUXBVAMI EQU OUXB+28 05366000 OUXBCAPI EQU OUXB+40 05367000 OUXBCAPR EQU OUXB+44 05368000 LCCA EQU 0 05369000 LCCAIHRC EQU LCCA+520 05370000 LCCAIHR1 EQU LCCAIHRC 05371000 LCCAIHR2 EQU LCCAIHRC+1 05372000 LCCAIHR3 EQU LCCAIHRC+2 05373000 LCCAIHR4 EQU LCCAIHRC+3 05374000 LCCASPIN EQU LCCA+524 05375000 LCCASPN1 EQU LCCASPIN 05376000 LCCASPN2 EQU LCCASPIN+1 05377000 LCCASPN3 EQU LCCASPIN+2 05378000 LCCASPN4 EQU LCCASPIN+3 05379000 LCCADSF1 EQU LCCA+540 05380000 LCCADSF2 EQU LCCA+541 05381000 LCCASPSA EQU LCCA+544 05382000 LCCACRFL EQU LCCA+692 05383000 LCCACREX EQU LCCA+693 05384000 LCCALKFG EQU LCCA+694 05385000 LCCASRBF EQU LCCA+720 05386000 LCCAASID EQU LCCA+732 05387000 RTNADDR EQU 0 05388000 IEAVFP2 EQU 0 05389000 IEAVPCB EQU 0 05390000 IEAVINV EQU 0 05391000 IEAVPFTE EQU 0 05392000 IEAVOPBR EQU 0 05393000 IEAVRSET EQU 0 05394000 IEAVPREF EQU 0 05395000 ROOTEXIT EQU 0 05396000 GFAMAIN EQU 0 05397000 ILRSWAP EQU 0 05398000 ILRPAGIO EQU 0 05399000 PCPTR EQU 0 05400000 PGTEND EQU 0 05401000 FLC EQU PSA 05402000 PSARSVTE EQU PSARSVT 05403000 PSACSTK EQU PSARSVTE 05404000 FRRSPTR EQU PSACSTK 05405000 ASCBPTR EQU RSMASCB 05406000 RCAPTR EQU PVTPRCA 05407000 PCBRPTR EQU PCBRTP 05408000 CVTPTR EQU FLCCVT 05409000 CVTS01 EQU CVTPGSIA 05410000 CVTPVTP EQU CVTS01+8 05411000 CVTLPDIA EQU CVTS01+12 05412000 CVTDIRST EQU CVTLPDIA 05413000 CVTSLIDA EQU CVTS01+24 05414000 CVTCTLFG EQU CVTS01+50 05415000 CVTFRECL EQU CVTS01+148 05416000 CVTOPTE EQU CVTS01+188 05417000 CVTASMVT EQU CVTS01+356 05418000 CVTRV210 EQU CVTS01+424 05419000 CVTRV219 EQU CVTS01+425 05420000 CVTRV228 EQU CVTS01+426 05421000 CVTRV237 EQU CVTS01+427 05422000 CVTMFRTR EQU CVTS01+452 05423000 CVTRV262 EQU CVTS01+468 05424000 CVTRV271 EQU CVTS01+469 05425000 CVTRV280 EQU CVTS01+470 05426000 CVTRV289 EQU CVTS01+471 05427000 CVTGSDA EQU CVTS01+600 05428000 PTEPTR EQU PCBPGT 05429000 XPTEPTR EQU PCBXPT 05430000 ASMVTPTR EQU CVTASMVT 05431000 ASM1WKSV EQU ASMWKSA1 05432000 ASM1RGSV EQU ASM1WKSV 05433000 ASM1WRKA EQU ASM1WKSV+60 05434000 ASM2WKSV EQU ASMWKSA2 05435000 ASM2WRKA EQU ASM2WKSV+52 05436000 ASM2FLGS EQU ASM2WRKA+12 05437000 ASM3WKSV EQU ASMWKSA3 05438000 ASM4WKSV EQU ASMWKSA4 05439000 ASM4RGSV EQU ASM4WKSV 05440000 ASM5WKSV EQU ASMWKSA5 05441000 ASM5RGSV EQU ASM5WKSV 05442000 RSMAIA EQU PCBAIA 05443000 AIA EQU RSMAIA 05444000 AIAFLG1 EQU AIA+9 05445000 AIALSQA EQU AIAFLG1 05446000 AIAFLG2 EQU AIA+10 05447000 AIAFRAUX EQU AIAFLG2 05448000 AIAPRIER EQU AIAFLG2 05449000 AIAFLG3 EQU AIA+11 05450000 AIANXAIA EQU AIA+12 05451000 AIAID EQU AIA+16 05452000 AIALPID EQU AIAID 05453000 AIALGID EQU AIALPID 05454000 AIALSID EQU AIALGID 05455000 AIASSID EQU AIALSID+1 05456000 AIARPN EQU AIALPID+4 05457000 AIALSID2 EQU AIARPN 05458000 AIALPMEP EQU AIALSID2 05459000 AIAGRPSZ EQU AIA+24 05460000 AIALGE EQU AIAGRPSZ 05461000 OUXBPTR EQU ASCBOUXB 05462000 LCCAPTR EQU PSALCCAV 05463000 WORKSAVE EQU PVTWSA8 05464000 VARIABLS EQU WORKSAVE+44 05465000 RCLMRET EQU VARIABLS 05466000 SUBRTSAV EQU VARIABLS+4 05467000 INTRETCD EQU VARIABLS+8 05468000 INTFLGS EQU VARIABLS+9 05469000 LONGFLAG EQU INTFLGS 05470000 CANCEL EQU INTFLGS 05471000 ISSUESE3 EQU INTFLGS 05472000 COUNTSET EQU INTFLGS 05473000 PROTKEY EQU VARIABLS+10 05474000 TEMPSAVE EQU PROTKEY 05475000 PARMPFTE EQU VARIABLS+12 05476000 TOQUEUE# EQU PARMPFTE+1 05477000 RBNPARM EQU PARMPFTE+2 05478000 AIAPTR EQU VARIABLS+16 05479000 RBA EQU VARIABLS+20 05480000 RBN EQU RBA+1 05481000 NEXTPCBP EQU VARIABLS+24 05482000 ADRDIFFS EQU VARIABLS+28 05483000 ROOTPCBP EQU ADRDIFFS 05484000 SAVEPFTE EQU ROOTPCBP 05485000 LVRADDIF EQU SAVEPFTE 05486000 FVRADDIF EQU SAVEPFTE+2 05487000 IOHOLDQF EQU VARIABLS+32 05488000 IOHOLDQL EQU VARIABLS+36 05489000 NORECPCB EQU VARIABLS+40 05490000 PCBCOPY EQU PCBRTP 05491000 @NM00057 EQU PCBFL1 05492000 PCBPREFR EQU @NM00057 05493000 AGO .@UNREFD START UNREFERENCED COMPONENTS 05494000 @NM00059 EQU @NM00057 05495000 @NM00058 EQU @NM00057 05496000 @NM00056 EQU RBA+3 05497000 @NM00055 EQU RBA 05498000 FLGSPTFE EQU PARMPFTE 05499000 @NM00054 EQU VARIABLS+11 05500000 SAVEREGS EQU WORKSAVE 05501000 AIADPXCT EQU AIALGE 05502000 AIACEPTR EQU AIALPMEP 05503000 AIASLOT EQU AIASSID+1 05504000 @NM00053 EQU AIASSID 05505000 @NM00052 EQU AIALSID 05506000 AIARCSN EQU AIANXAIA+2 05507000 AIACYL EQU AIANXAIA 05508000 AIARSV9 EQU AIAFLG3 05509000 AIARSV8 EQU AIAFLG3 05510000 AIARSV7 EQU AIAFLG3 05511000 AIALPMEC EQU AIAFLG3 05512000 AIARSV6 EQU AIAFLG3 05513000 AIATRPSP EQU AIAFLG3 05514000 AIAPRINO EQU AIAFLG3 05515000 AIARSV5 EQU AIAFLG3 05516000 AIABADID EQU AIAFLG2 05517000 AIAERROR EQU AIAFLG2 05518000 AIASECER EQU AIAFLG2 05519000 AIARSV4 EQU AIAFLG2 05520000 AIAIORTY EQU AIAFLG2 05521000 AIATERMR EQU AIAFLG2 05522000 AIARSV1 EQU AIAFLG1 05523000 AIASWPFX EQU AIAFLG1 05524000 AIAPAGDS EQU AIAFLG1 05525000 AIADUPLX EQU AIAFLG1 05526000 AIAVIO EQU AIAFLG1 05527000 AIAPRIV EQU AIAFLG1 05528000 AIAWRITE EQU AIAFLG1 05529000 AIAOP EQU AIA+8 05530000 AIABQPA EQU AIA+4 05531000 AIAFQPA EQU AIA 05532000 ASM5FLGS EQU ASM5WKSV+64 05533000 ASM5AIA EQU ASM5WKSV+60 05534000 ASM5GCTR EQU ASM5WKSV+56 05535000 ASM5SR14 EQU ASM5WKSV+52 05536000 @NM00051 EQU ASM5RGSV+4 05537000 ASM5RG2 EQU ASM5RGSV 05538000 @NM00050 EQU ASM4RGSV+4 05539000 ASM4RG2 EQU ASM4RGSV 05540000 ASM3SR13 EQU ASM3WKSV+28 05541000 ASM3R14B EQU ASM3WKSV+24 05542000 ASM3R14A EQU ASM3WKSV+20 05543000 ASM3GRPA EQU ASM3WKSV+16 05544000 ASM3TMPA EQU ASM3WKSV+12 05545000 ASM3PIOP EQU ASM3WKSV+8 05546000 ASM3GENQ EQU ASM3WKSV+4 05547000 ASM3SWPQ EQU ASM3WKSV 05548000 ASM2SR14 EQU ASM2WRKA+16 05549000 @NM00049 EQU ASM2WRKA+13 05550000 ASM2WFLG EQU ASM2FLGS 05551000 ASM2RFLG EQU ASM2FLGS 05552000 ASM2DUPQ EQU ASM2WRKA+8 05553000 ASM2CAQ EQU ASM2WRKA+4 05554000 ASM2PAQ EQU ASM2WRKA 05555000 ASM2RGSV EQU ASM2WKSV 05556000 ASM1NXTA EQU ASM1WRKA+4 05557000 ASM1ASCB EQU ASM1WRKA 05558000 ASM1RG15 EQU ASM1RGSV+56 05559000 @NM00048 EQU ASM1RGSV+4 05560000 ASM1RG1 EQU ASM1RGSV 05561000 CVTRV628 EQU CVTS01+728 05562000 CVTRV627 EQU CVTS01+724 05563000 CVTRV626 EQU CVTS01+720 05564000 CVTRV625 EQU CVTS01+716 05565000 CVTRV624 EQU CVTS01+712 05566000 CVTRV623 EQU CVTS01+708 05567000 CVTRV622 EQU CVTS01+704 05568000 CVTRV621 EQU CVTS01+700 05569000 CVTIHASU EQU CVTS01+696 05570000 CVTSUSP EQU CVTS01+692 05571000 CVTT6SVC EQU CVTS01+688 05572000 CVTCDAL EQU CVTS01+684 05573000 CVTTCTL EQU CVTS01+680 05574000 CVTRSUME EQU CVTS01+676 05575000 CVTJTERM EQU CVTS01+672 05576000 CVTASMRM EQU CVTS01+668 05577000 CVTTCASP EQU CVTS01+664 05578000 CVT0PT03 EQU CVTS01+660 05579000 CVT0PT0E EQU CVTS01+656 05580000 CVTRV609 EQU CVTS01+652 05581000 CVTCGK EQU CVTS01+648 05582000 CVTRAC EQU CVTS01+644 05583000 CVTHSM EQU CVTS01+640 05584000 CVTRV605 EQU CVTS01+636 05585000 CVTRV604 EQU CVTS01+632 05586000 CVTEFF02 EQU CVTS01+628 05587000 CVTCBBR EQU CVTS01+624 05588000 CVTSSCR EQU CVTS01+620 05589000 CVTEVENT EQU CVTS01+616 05590000 CVTCRCA EQU CVTS01+612 05591000 CVTTPIO EQU CVTS01+608 05592000 CVTADV EQU CVTS01+604 05593000 CVTGSDAB EQU CVTGSDA 05594000 CVTQV3 EQU CVTS01+596 05595000 CVTQV2 EQU CVTS01+592 05596000 CVTQV1 EQU CVTS01+588 05597000 CVTRPT EQU CVTS01+584 05598000 CVTSSRB EQU CVTS01+580 05599000 CVTCSDRL EQU CVTS01+576 05600000 CVTEXP1 EQU CVTS01+572 05601000 CVTRMPMT EQU CVTS01+568 05602000 CVTRMPTT EQU CVTS01+564 05603000 CVTVPSA EQU CVTS01+560 05604000 CVTVSTOP EQU CVTS01+556 05605000 CVTGTFR8 EQU CVTS01+552 05606000 CVTQUIT EQU CVTS01+548 05607000 CVTVACR EQU CVTS01+544 05608000 CVTWTCB EQU CVTS01+540 05609000 CVTSTPRS EQU CVTS01+536 05610000 CVT0PT02 EQU CVTS01+532 05611000 CVTDARCM EQU CVTS01+528 05612000 CVTIRECM EQU CVTS01+524 05613000 CVTJRECM EQU CVTS01+520 05614000 CVTVEMS0 EQU CVTS01+516 05615000 CVTSPFRR EQU CVTS01+512 05616000 CVTRLSTG EQU CVTS01+508 05617000 CVT0TC0A EQU CVTS01+504 05618000 CVTGMBR EQU CVTS01+500 05619000 CVTLFRM EQU CVTS01+496 05620000 CVTRMBR EQU CVTS01+492 05621000 CVTVIOP EQU CVTS01+488 05622000 CVTRV307 EQU CVTS01+486 05623000 CVTRV306 EQU CVTS01+484 05624000 CVTRV305 EQU CVTS01+482 05625000 CVTRV304 EQU CVTS01+480 05626000 CVTRV303 EQU CVTS01+478 05627000 CVTRV302 EQU CVTS01+476 05628000 CVTTRCA EQU CVTS01+472 05629000 CVTRV297 EQU CVTRV289 05630000 CVTRV296 EQU CVTRV289 05631000 CVTRV295 EQU CVTRV289 05632000 CVTRV294 EQU CVTRV289 05633000 CVTRV293 EQU CVTRV289 05634000 CVTRV292 EQU CVTRV289 05635000 CVTRV291 EQU CVTRV289 05636000 CVTRV290 EQU CVTRV289 05637000 CVTRV288 EQU CVTRV280 05638000 CVTRV287 EQU CVTRV280 05639000 CVTRV286 EQU CVTRV280 05640000 CVTRV285 EQU CVTRV280 05641000 CVTRV284 EQU CVTRV280 05642000 CVTRV283 EQU CVTRV280 05643000 CVTRV282 EQU CVTRV280 05644000 CVTRV281 EQU CVTRV280 05645000 CVTRV279 EQU CVTRV271 05646000 CVTRV278 EQU CVTRV271 05647000 CVTRV277 EQU CVTRV271 05648000 CVTRV276 EQU CVTRV271 05649000 CVTRV275 EQU CVTRV271 05650000 CVTRV274 EQU CVTRV271 05651000 CVTRV273 EQU CVTRV271 05652000 CVTRV272 EQU CVTRV271 05653000 CVTRV270 EQU CVTRV262 05654000 CVTRV269 EQU CVTRV262 05655000 CVTRV268 EQU CVTRV262 05656000 CVTRV267 EQU CVTRV262 05657000 CVTRV266 EQU CVTRV262 05658000 CVTRV265 EQU CVTRV262 05659000 CVTRV264 EQU CVTRV262 05660000 CVTRV263 EQU CVTRV262 05661000 CVTVFP EQU CVTS01+464 05662000 CVTVSI EQU CVTS01+460 05663000 CVTVPSIB EQU CVTS01+456 05664000 CVTMFACT EQU CVTMFRTR 05665000 CVTMFCTL EQU CVTS01+448 05666000 CVTPVBP EQU CVTS01+444 05667000 CVTPWI EQU CVTS01+440 05668000 CVTRV254 EQU CVTS01+438 05669000 CVTRV253 EQU CVTS01+436 05670000 CVTRV252 EQU CVTS01+434 05671000 CVTRV251 EQU CVTS01+433 05672000 CVTRV250 EQU CVTS01+432 05673000 CVTRV249 EQU CVTS01+431 05674000 CVTRV248 EQU CVTS01+430 05675000 CVTRV247 EQU CVTS01+429 05676000 CVTRV246 EQU CVTS01+428 05677000 CVTRV245 EQU CVTRV237 05678000 CVTRV244 EQU CVTRV237 05679000 CVTRV243 EQU CVTRV237 05680000 CVTRV242 EQU CVTRV237 05681000 CVTRV241 EQU CVTRV237 05682000 CVTRV240 EQU CVTRV237 05683000 CVTRV239 EQU CVTRV237 05684000 CVTRV238 EQU CVTRV237 05685000 CVTRV236 EQU CVTRV228 05686000 CVTRV235 EQU CVTRV228 05687000 CVTRV234 EQU CVTRV228 05688000 CVTRV233 EQU CVTRV228 05689000 CVTRV232 EQU CVTRV228 05690000 CVTRV231 EQU CVTRV228 05691000 CVTRV230 EQU CVTRV228 05692000 CVTRV229 EQU CVTRV228 05693000 CVTRV227 EQU CVTRV219 05694000 CVTRV226 EQU CVTRV219 05695000 CVTRV225 EQU CVTRV219 05696000 CVTRV224 EQU CVTRV219 05697000 CVTRV223 EQU CVTRV219 05698000 CVTRV222 EQU CVTRV219 05699000 CVTRV221 EQU CVTRV219 05700000 CVTRV220 EQU CVTRV219 05701000 CVTRV218 EQU CVTRV210 05702000 CVTRV217 EQU CVTRV210 05703000 CVTRV216 EQU CVTRV210 05704000 CVTRV215 EQU CVTRV210 05705000 CVTRV214 EQU CVTRV210 05706000 CVTRV213 EQU CVTRV210 05707000 CVTRV212 EQU CVTRV210 05708000 CVTRV211 EQU CVTRV210 05709000 CVTLCCAT EQU CVTS01+420 05710000 CVTPCCAT EQU CVTS01+416 05711000 CVTIPCRP EQU CVTS01+412 05712000 CVTIPCRI EQU CVTS01+408 05713000 CVTIPCDS EQU CVTS01+404 05714000 CVTAIDVT EQU CVTS01+400 05715000 CVTSSAP EQU CVTS01+396 05716000 CVTEHCIR EQU CVTS01+392 05717000 CVTEHDEF EQU CVTS01+388 05718000 CVTDAIR EQU CVTS01+384 05719000 CVTPERFM EQU CVTS01+380 05720000 CVT044R2 EQU CVTS01+376 05721000 CVTFETCH EQU CVTS01+372 05722000 CVTRSTWD EQU CVTS01+368 05723000 CVTSPOST EQU CVTS01+364 05724000 CVTIOBP EQU CVTS01+360 05725000 CVTRECRQ EQU CVTS01+352 05726000 CVTWSAC EQU CVTS01+348 05727000 CVTRV149 EQU CVTS01+344 05728000 CVTWSAL EQU CVTS01+340 05729000 CVTSPSA EQU CVTS01+336 05730000 CVTGLMN EQU CVTS01+332 05731000 CVTVEAC0 EQU CVTS01+328 05732000 CVT062R1 EQU CVTS01+324 05733000 CVTRPOST EQU CVTS01+320 05734000 CVTDQIQE EQU CVTS01+316 05735000 CVTCSD EQU CVTS01+312 05736000 CVTLKRMA EQU CVTS01+308 05737000 CVTRSPIE EQU CVTS01+304 05738000 CVTRENQ EQU CVTS01+300 05739000 CVTLQCB EQU CVTS01+296 05740000 CVTFQCB EQU CVTS01+292 05741000 CVTQCS01 EQU CVTS01+288 05742000 CVTAPFT EQU CVTS01+284 05743000 CVTPARRL EQU CVTS01+280 05744000 CVTVWAIT EQU CVTS01+276 05745000 CVTGSPL EQU CVTS01+272 05746000 CVTLSMQ EQU CVTS01+268 05747000 CVTGSMQ EQU CVTS01+264 05748000 CVTEXPRO EQU CVTS01+260 05749000 CVTOPCTP EQU CVTS01+256 05750000 CVTSIC EQU CVTS01+252 05751000 CVTTPIOS EQU CVTS01+248 05752000 CVTRTMS EQU CVTS01+244 05753000 CVTSDBF EQU CVTS01+240 05754000 CVTSCBP EQU CVTS01+236 05755000 CVTSDMP EQU CVTS01+232 05756000 CVTSV60 EQU CVTS01+228 05757000 CVTRTMCT EQU CVTS01+224 05758000 CVTASCBL EQU CVTS01+220 05759000 CVTASCBH EQU CVTS01+216 05760000 CVTGDA EQU CVTS01+212 05761000 CVTASVT EQU CVTS01+208 05762000 CVTVVMDI EQU CVTS01+204 05763000 CVTAQTOP EQU CVTS01+200 05764000 CVTIOSCS EQU CVTS01+196 05765000 CVTSDRM EQU CVTS01+192 05766000 CVTSTXU EQU CVTS01+184 05767000 CVTQUIS EQU CVTS01+180 05768000 CVTPARS EQU CVTS01+176 05769000 CVTS1EE EQU CVTS01+172 05770000 CVTFRAS EQU CVTS01+168 05771000 CVTQSAS EQU CVTS01+164 05772000 CVTCRAS EQU CVTS01+160 05773000 CVTCRMN EQU CVTS01+156 05774000 CVTDELCP EQU CVTS01+152 05775000 CVTGETCL EQU CVTS01+144 05776000 CVTBLDCP EQU CVTS01+140 05777000 CVTAUTHL EQU CVTS01+136 05778000 CVTSCAN EQU CVTS01+132 05779000 CVTRV144 EQU CVTS01+130 05780000 CVTMAXMP EQU CVTS01+128 05781000 CVTSTCK EQU CVTS01+124 05782000 CVTRV139 EQU CVTS01+123 05783000 CVTDSSAC EQU CVTS01+122 05784000 CVTRV513 EQU CVTS01+121 05785000 CVTIOSPL EQU CVTS01+120 05786000 CVTPTGT EQU CVTS01+116 05787000 CVTCSPIE EQU CVTS01+112 05788000 CVTSMFEX EQU CVTS01+108 05789000 CVTOLT0A EQU CVTS01+104 05790000 CVTSRBRT EQU CVTS01+100 05791000 CVTPUTL EQU CVTS01+96 05792000 CVTASCRL EQU CVTS01+92 05793000 CVTASCRF EQU CVTS01+88 05794000 CVTRV326 EQU CVTS01+84 05795000 CVTRV325 EQU CVTS01+80 05796000 CVTRV324 EQU CVTS01+76 05797000 CVT0VL01 EQU CVTS01+72 05798000 CVTSHRVM EQU CVTS01+68 05799000 CVTRV332 EQU CVTS01+64 05800000 CVTTAS EQU CVTS01+60 05801000 CVTRSCN EQU CVTS01+56 05802000 CVTTRAC2 EQU CVTS01+54 05803000 CVTTRACE EQU CVTS01+52 05804000 CVTAPG EQU CVTS01+51 05805000 CVTSDTRC EQU CVTCTLFG 05806000 CVTGTRCE EQU CVTCTLFG 05807000 CVTNOMP EQU CVTCTLFG 05808000 CVTRSV79 EQU CVTCTLFG 05809000 CVTDSTAT EQU CVTCTLFG 05810000 CVTRSV78 EQU CVTCTLFG 05811000 CVTRV333 EQU CVTCTLFG 05812000 CVTRV323 EQU CVTCTLFG 05813000 CVTSPVLK EQU CVTS01+49 05814000 CVTRSV77 EQU CVTS01+48 05815000 CVTRV331 EQU CVTS01+44 05816000 CVTRV330 EQU CVTS01+40 05817000 CVTRV329 EQU CVTS01+36 05818000 CVTRV328 EQU CVTS01+32 05819000 CVTRV322 EQU CVTS01+28 05820000 CVTSLID EQU CVTSLIDA+1 05821000 CVTSYLK EQU CVTSLIDA 05822000 CVTRV321 EQU CVTS01+20 05823000 CVTRV320 EQU CVTS01+16 05824000 CVTLPDIR EQU CVTLPDIA+1 05825000 CVTRSV69 EQU CVTDIRST 05826000 CVTRSV68 EQU CVTDIRST 05827000 CVTRSV67 EQU CVTDIRST 05828000 CVTRSV66 EQU CVTDIRST 05829000 CVTRSV65 EQU CVTDIRST 05830000 CVTRSV64 EQU CVTDIRST 05831000 CVTRSV63 EQU CVTDIRST 05832000 CVTDICOM EQU CVTDIRST 05833000 CVTLPDSR EQU CVTS01+4 05834000 CVTGETL EQU CVTS01 05835000 PSARSAV EQU PSARSVTE+60 05836000 PSARSTK EQU PSARSVTE+56 05837000 PSAESAV3 EQU PSARSVTE+52 05838000 PSAESTK3 EQU PSARSVTE+48 05839000 PSAESAV2 EQU PSARSVTE+44 05840000 PSAESTK2 EQU PSARSVTE+40 05841000 PSAESAV1 EQU PSARSVTE+36 05842000 PSAESTK1 EQU PSARSVTE+32 05843000 PSAPSAV EQU PSARSVTE+28 05844000 PSAPSTK EQU PSARSVTE+24 05845000 PSAMSAV EQU PSARSVTE+20 05846000 PSAMSTK EQU PSARSVTE+16 05847000 PSASSAV EQU PSARSVTE+12 05848000 PSASSTK EQU PSARSVTE+8 05849000 PSANSTK EQU PSARSVTE+4 05850000 LCCAR125 EQU LCCA+964 05851000 LCCAR124 EQU LCCA+960 05852000 LCCASGPR EQU LCCA+896 05853000 LCCADRT2 EQU LCCA+888 05854000 LCCADRT1 EQU LCCA+880 05855000 LCCAR103 EQU LCCA+876 05856000 LCCAESS2 EQU LCCA+872 05857000 LCCASPLJ EQU LCCA+868 05858000 LCCASMQJ EQU LCCA+864 05859000 LCCAIRT EQU LCCA+736 05860000 LCCARV89 EQU LCCA+728 05861000 LCCAPGTA EQU LCCASRBF+2 05862000 LCCASAFN EQU LCCASRBF 05863000 LCCAECSA EQU LCCA+716 05864000 LCCAICR0 EQU LCCA+712 05865000 LCCALWTM EQU LCCA+704 05866000 LCCARV78 EQU LCCA+700 05867000 LCCAPINV EQU LCCA+696 05868000 LCCARV88 EQU LCCA+695 05869000 LCCARV87 EQU LCCALKFG 05870000 LCCARV86 EQU LCCALKFG 05871000 LCCARV85 EQU LCCALKFG 05872000 LCCARV84 EQU LCCALKFG 05873000 LCCALKRD EQU LCCALKFG 05874000 LCCALKAQ EQU LCCALKFG 05875000 LCCALKSA EQU LCCALKFG 05876000 LCCALKDP EQU LCCALKFG 05877000 LCCACRST EQU LCCACREX 05878000 LCCACRDP EQU LCCACREX 05879000 LCCACRLM EQU LCCACREX 05880000 LCCACRIN EQU LCCACREX 05881000 LCCACRRT EQU LCCACREX 05882000 LCCACRLE EQU LCCACREX 05883000 LCCACRRM EQU LCCACREX 05884000 LCCACREF EQU LCCACREX 05885000 LCCAVARY EQU LCCACRFL 05886000 LCCARV73 EQU LCCACRFL 05887000 LCCARV72 EQU LCCACRFL 05888000 LCCARV71 EQU LCCACRFL 05889000 LCCARV70 EQU LCCACRFL 05890000 LCCARV69 EQU LCCACRFL 05891000 LCCACLMS EQU LCCACRFL 05892000 LCCACRTM EQU LCCACRFL 05893000 LCCALCR0 EQU LCCA+688 05894000 LCCACRLC EQU LCCA+684 05895000 LCCARCPU EQU LCCA+680 05896000 LCCADCPU EQU LCCA+676 05897000 LCCASRBJ EQU LCCA+672 05898000 LCCADSSR EQU LCCA+668 05899000 LCCADSSC EQU LCCA+660 05900000 LCCADSS3 EQU LCCA+648 05901000 LCCADSS2 EQU LCCA+636 05902000 LCCADSS1 EQU LCCA+624 05903000 LCCAWTIM EQU LCCA+616 05904000 LCCAITOD EQU LCCA+608 05905000 LCCADTOD EQU LCCA+600 05906000 LCCASTOD EQU LCCA+592 05907000 LCCARIR5 EQU LCCASPSA+44 05908000 LCCARIR4 EQU LCCASPSA+40 05909000 LCCARIR3 EQU LCCASPSA+36 05910000 LCCARIR2 EQU LCCASPSA+32 05911000 LCCARPR5 EQU LCCASPSA+28 05912000 LCCARPR4 EQU LCCASPSA+24 05913000 LCCARPR3 EQU LCCASPSA+20 05914000 LCCARPR2 EQU LCCASPSA+16 05915000 LCCADSR5 EQU LCCASPSA+12 05916000 LCCADSR4 EQU LCCASPSA+8 05917000 LCCADSR3 EQU LCCASPSA+4 05918000 LCCADSR2 EQU LCCASPSA 05919000 LCCARV68 EQU LCCA+543 05920000 LCCAPSMK EQU LCCA+542 05921000 LCCARV67 EQU LCCADSF2 05922000 LCCARV66 EQU LCCADSF2 05923000 LCCARV65 EQU LCCADSF2 05924000 LCCARV64 EQU LCCADSF2 05925000 LCCADSRW EQU LCCADSF2 05926000 LCCADSPL EQU LCCADSF2 05927000 LCCAGSRB EQU LCCADSF2 05928000 LCCASRBM EQU LCCADSF2 05929000 LCCARV61 EQU LCCADSF1 05930000 LCCARV60 EQU LCCADSF1 05931000 LCCARV59 EQU LCCADSF1 05932000 LCCARV58 EQU LCCADSF1 05933000 LCCATIMR EQU LCCADSF1 05934000 LCCADSS EQU LCCADSF1 05935000 LCCAVCPU EQU LCCADSF1 05936000 LCCAACR EQU LCCADSF1 05937000 LCCACPUS EQU LCCA+536 05938000 LCCAASCP EQU LCCA+532 05939000 LCCAESSA EQU LCCA+528 05940000 LCCARV55 EQU LCCASPN4 05941000 LCCARV54 EQU LCCASPN4 05942000 LCCARV53 EQU LCCASPN4 05943000 LCCARV52 EQU LCCASPN4 05944000 LCCARV51 EQU LCCASPN4 05945000 LCCARV50 EQU LCCASPN4 05946000 LCCARV49 EQU LCCASPN4 05947000 LCCARV48 EQU LCCASPN4 05948000 LCCARV47 EQU LCCASPN3 05949000 LCCARV46 EQU LCCASPN3 05950000 LCCARV45 EQU LCCASPN3 05951000 LCCARV44 EQU LCCASPN3 05952000 LCCARV43 EQU LCCASPN3 05953000 LCCARV42 EQU LCCASPN3 05954000 LCCARV41 EQU LCCASPN3 05955000 LCCARV40 EQU LCCASPN3 05956000 LCCARV39 EQU LCCASPN2 05957000 LCCARV38 EQU LCCASPN2 05958000 LCCARV37 EQU LCCASPN2 05959000 LCCARV36 EQU LCCASPN2 05960000 LCCARV35 EQU LCCASPN2 05961000 LCCARV34 EQU LCCASPN2 05962000 LCCARV33 EQU LCCASPN2 05963000 LCCARV32 EQU LCCASPN2 05964000 LCCARV31 EQU LCCASPN1 05965000 LCCARV30 EQU LCCASPN1 05966000 LCCAMFIO EQU LCCASPN1 05967000 LCCARSTR EQU LCCASPN1 05968000 LCCATSPN EQU LCCASPN1 05969000 LCCALOCK EQU LCCASPN1 05970000 LCCASIGP EQU LCCASPN1 05971000 LCCAPTLB EQU LCCASPN1 05972000 LCCARV27 EQU LCCAIHR4 05973000 LCCARV26 EQU LCCAIHR4 05974000 LCCARV25 EQU LCCAIHR4 05975000 LCCARV24 EQU LCCAIHR4 05976000 LCCARV23 EQU LCCAIHR4 05977000 LCCARV22 EQU LCCAIHR4 05978000 LCCARV21 EQU LCCAIHR4 05979000 LCCARV20 EQU LCCAIHR4 05980000 LCCARV19 EQU LCCAIHR3 05981000 LCCARV18 EQU LCCAIHR3 05982000 LCCARV17 EQU LCCAIHR3 05983000 LCCARV16 EQU LCCAIHR3 05984000 LCCARV15 EQU LCCAIHR3 05985000 LCCARV14 EQU LCCAIHR3 05986000 LCCARV13 EQU LCCAIHR3 05987000 LCCARV12 EQU LCCAIHR3 05988000 LCCARV11 EQU LCCAIHR2 05989000 LCCARV10 EQU LCCAIHR2 05990000 LCCARV09 EQU LCCAIHR2 05991000 LCCARV08 EQU LCCAIHR2 05992000 LCCARV07 EQU LCCAIHR2 05993000 LCCARV06 EQU LCCAIHR2 05994000 LCCARV05 EQU LCCAIHR2 05995000 LCCARV04 EQU LCCAIHR2 05996000 LCCARV03 EQU LCCAIHR1 05997000 LCCARV02 EQU LCCAIHR1 05998000 LCCARV01 EQU LCCAIHR1 05999000 LCCAPPIE EQU LCCAIHR1 06000000 LCCAPSG1 EQU LCCAIHR1 06001000 LCCAPDAT EQU LCCAIHR1 06002000 LCCAXRC2 EQU LCCAIHR1 06003000 LCCAXRC1 EQU LCCAIHR1 06004000 LCCAIOPS EQU LCCA+512 06005000 LCCAGPGR EQU LCCA+448 06006000 LCCAR133 EQU LCCA+444 06007000 LCCAR132 EQU LCCA+440 06008000 LCCAR131 EQU LCCA+436 06009000 LCCAR130 EQU LCCA+432 06010000 LCCAR129 EQU LCCA+428 06011000 LCCAR128 EQU LCCA+424 06012000 LCCAR127 EQU LCCA+420 06013000 LCCAR126 EQU LCCA+416 06014000 LCCARSGR EQU LCCA+352 06015000 LCCAXGR3 EQU LCCA+288 06016000 LCCAXGR2 EQU LCCA+224 06017000 LCCAXGR1 EQU LCCA+160 06018000 LCCACR0 EQU LCCA+156 06019000 LCCAMCR1 EQU LCCA+152 06020000 LCCAPVAD EQU LCCA+148 06021000 LCCAPINT EQU LCCA+144 06022000 LCCAPPSW EQU LCCA+136 06023000 LCCAPGR2 EQU LCCA+72 06024000 LCCAPGR1 EQU LCCA+8 06025000 LCCARV77 EQU LCCA+6 06026000 LCCACPUA EQU LCCA+4 06027000 LCCALCCA EQU LCCA 06028000 OUXBEND EQU OUXB+144 06029000 OUXBTSW EQU OUXB+140 06030000 OUXBFIXC EQU OUXB+138 06031000 OUXBNVC EQU OUXB+136 06032000 OUXBUIC EQU OUXB+134 06033000 OUXBVSC EQU OUXB+132 06034000 OUXBILS EQU OUXB+128 06035000 OUXBRSV1 EQU OUXB+126 06036000 OUXBWCT EQU OUXB+124 06037000 OUXBPRS EQU OUXB+120 06038000 OUXBSTD EQU OUXB+116 06039000 OUXBITD EQU OUXB+112 06040000 OUXBMSS EQU OUXB+104 06041000 OUXBCPS EQU OUXB+96 06042000 OUXBAET EQU OUXB+92 06043000 OUXBTRR EQU OUXB+88 06044000 OUXBJBR EQU OUXB+84 06045000 OUXBTRT EQU OUXB+80 06046000 OUXBTRS EQU OUXB+76 06047000 OUXBJBT EQU OUXB+72 06048000 OUXBJBS EQU OUXB+68 06049000 OUXBTRC EQU OUXB+64 06050000 OUXBNQT EQU OUXB+60 06051000 OUXBIOSM EQU OUXB+56 06052000 OUXBSTC EQU OUXB+54 06053000 OUXBIOS EQU OUXB+52 06054000 OUXBSTCT EQU OUXB+48 06055000 OUXBVAMR EQU OUXB+36 06056000 OUXBVAMO EQU OUXB+32 06057000 OUXBPOUT EQU OUXB+20 06058000 OUXBRSW EQU OUXB+12 06059000 OUXBMET EQU OUXB+8 06060000 OUXBPET EQU OUXB+4 06061000 OUXBNAME EQU OUXB 06062000 ASMCPRES EQU ASMCPRSQ+4 06063000 ASMCPTAK EQU ASMCPRSQ 06064000 ASMCPCNT EQU ASMCPAVQ+4 06065000 ASMCPAVL EQU ASMCPAVQ 06066000 ASMCPEXT EQU ASMPOOLS+6 06067000 ASMCPSIZ EQU ASMPOOLS+4 06068000 ASMCPID EQU ASMPOOLS 06069000 ASMRSV12 EQU ASMVT+1000 06070000 ASMSAVE EQU ASMVT+928 06071000 ASMWKSA7 EQU ASMVT+848 06072000 ASMWKSA6 EQU ASMVT+768 06073000 ASMACEPC EQU ASMVT+344 06074000 ASMSWKPC EQU ASMVT+328 06075000 ASMBWKPC EQU ASMVT+312 06076000 ASMIOEPC EQU ASMVT+296 06077000 ASMRSV10 EQU ASMVT+280 06078000 ASMPVACE EQU ASMVT+276 06079000 ASMPIOFR EQU ASMVT+272 06080000 ASMPVACQ EQU ASMVT+268 06081000 ASMPMSGS EQU ASMVT+264 06082000 ASMPMSG0 EQU ASMVT+260 06083000 ASMPFRLG EQU ASMVT+256 06084000 ASMPRLG EQU ASMVT+252 06085000 ASMPACT EQU ASMVT+248 06086000 ASMPSAV EQU ASMVT+244 06087000 ASMPCMP EQU ASMVT+240 06088000 ASMPCMPA EQU ASMVT+236 06089000 ASMPCMPN EQU ASMVT+232 06090000 ASMPCMPD EQU ASMVT+228 06091000 ASMPEX EQU ASMVT+224 06092000 ASMVRMTR EQU ASMVT+220 06093000 ASMPSRBC EQU ASMVT+216 06094000 ASMPSRMT EQU ASMVT+212 06095000 ASMPSWPD EQU ASMVT+208 06096000 ASMPTM EQU ASMVT+204 06097000 ASMPFRSW EQU ASMVT+200 06098000 ASMPFRSL EQU ASMVT+196 06099000 ASMPQIOE EQU ASMVT+192 06100000 ASMRSV8 EQU ASMVT+188 06101000 ASMVSAMW EQU ASMVT+184 06102000 ASMTASCB EQU ASMVT+180 06103000 ASMRLGWQ EQU ASMVT+176 06104000 ASMRLGRQ EQU ASMVT+172 06105000 ASMTMECB EQU ASMVT+168 06106000 ASMTCBPT EQU ASMVT+164 06107000 ASMREQCT EQU ASMVT+160 06108000 ASMGOSWK EQU ASMGOSQS+4 06109000 ASMGOSWT EQU ASMGOSQS 06110000 ASMLSAIH EQU ASMLSAI+4 06111000 ASMLSAIL EQU ASMLSAI 06112000 ASMCINV EQU ASMVT+140 06113000 ASMSTGXA EQU ASMVT+136 06114000 ASMLGVT EQU ASMVT+132 06115000 ASMSLOTV EQU ASMVT+128 06116000 ASMERRS EQU ASMVT+124 06117000 ASMNVSC EQU ASMVT+120 06118000 ASMVSC EQU ASMVT+116 06119000 ASMSLOTS EQU ASMVT+112 06120000 ASMBKSLT EQU ASMVT+108 06121000 ASMRSV7 EQU ASMVT+92 06122000 ASMPSRB EQU ASMVT+88 06123000 ASMSRBCT EQU ASMVT+84 06124000 ASMIOCNT EQU ASMVT+80 06125000 ASMBURST EQU ASMVT+76 06126000 ASMPCCWN EQU ASMVT+72 06127000 ASMPCCWC EQU ASMPCCWQ+4 06128000 ASMPCCWA EQU ASMPCCWQ 06129000 ASMRSV6 EQU ASMVT+48 06130000 ASMIORQC EQU ASMVT+44 06131000 ASMIORQR EQU ASMVT+40 06132000 ASMSTAGL EQU ASMSTAGQ+4 06133000 ASMSTAGF EQU ASMSTAGQ 06134000 ASMRSV5 EQU ASMVT+28 06135000 ASMMSGBF EQU ASMVT+24 06136000 ASMEREC EQU ASMVT+20 06137000 ASMTRPAG EQU ASMVT+16 06138000 ASMGOS EQU ASMVT+12 06139000 ASMPART EQU ASMVT+8 06140000 ASMSART EQU ASMVT+4 06141000 ASMDSSFS EQU ASMVT+2 06142000 ASMWARM EQU ASMFLAG2 06143000 ASMQUICK EQU ASMFLAG2 06144000 ASMNOTPT EQU ASMFLAG2 06145000 ASMNOTMR EQU ASMFLAG2 06146000 ASMNOSAV EQU ASMFLAG2 06147000 ASMCALLQ EQU ASMFLAG2 06148000 ASMPLPAS EQU ASMFLAG1 06149000 ASMCOMMF EQU ASMFLAG1 06150000 ASMPLPAF EQU ASMFLAG1 06151000 ASMNODPX EQU ASMFLAG1 06152000 ASMRSV1 EQU ASMFLAG1 06153000 ASMNOLCL EQU ASMFLAG1 06154000 ASMNOCWQ EQU ASMFLAG1 06155000 ASMDUPLX EQU ASMFLAG1 06156000 XPTLSID2 EQU XPTLPN 06157000 XPTLSID EQU XPTLGN 06158000 @NM00047 EQU XPTFLAG2 06159000 XPTIOERR EQU XPTFLAG2 06160000 XPTRES1 EQU XPTFLAG2 06161000 XPTVALID EQU XPTFLAG2 06162000 XPTRSV4 EQU XPTFLAGS 06163000 XPTRES2 EQU XPTFLAGS 06164000 @NM00046 EQU XPTFLAGS 06165000 XPTVIOLP EQU XPTFLAGS 06166000 XPTRSV1 EQU XPTE+1 06167000 @NM00045 EQU PGTBITS 06168000 @NM00044 EQU PGTBITS 06169000 @NM00043 EQU PGTBITS 06170000 @NM00042 EQU PGTBITS 06171000 @NM00041 EQU PGTBITS 06172000 @NM00040 EQU PGTBITS 06173000 PGTREAL EQU PGTRSA 06174000 RSMASMHD EQU RSMHD+40 06175000 RSMFOEQ EQU RSMHD+36 06176000 RSMLIOQL EQU RSMLIOQ+4 06177000 RSMLSQAL EQU RSMLSQA+2 06178000 RSMLSQAF EQU RSMLSQA 06179000 RSMLFQL EQU RSMLFQ+2 06180000 RSMLFQF EQU RSMLFQ 06181000 RSMRSV2 EQU RSMHD+16 06182000 RSMRSV1 EQU RSMHD+13 06183000 @NM00039 EQU RSMFLG1 06184000 RSMGFADD EQU RSMFLG1 06185000 RSMCPNC EQU RSMFLG1 06186000 RSMCPNU EQU RSMFLG1 06187000 RSMIOCPC EQU RSMFLG1 06188000 RSMIOCPU EQU RSMFLG1 06189000 RSMSPCT EQU RSMHD+4 06190000 RSMVSTO EQU RSMHD 06191000 CVTLEVL EQU CVTRELNO+2 06192000 CVTNUMB EQU CVTRELNO 06193000 CVTMDL EQU CVTFIX+250 06194000 @NM00038 EQU CVTFIX+248 06195000 @NM00037 EQU CVTFIX 06196000 CVTRV482 EQU CVTXTNT2+128 06197000 CVTRV481 EQU CVTXTNT2+124 06198000 CVTRV480 EQU CVTXTNT2+120 06199000 CVTRV479 EQU CVTXTNT2+118 06200000 CVTRV478 EQU CVTXTNT2+117 06201000 CVTRV477 EQU CVTXTNT2+116 06202000 CVTRV476 EQU CVTXTNT2+115 06203000 CVTRV475 EQU CVTXTNT2+114 06204000 CVTRV474 EQU CVTRV466 06205000 CVTRV473 EQU CVTRV466 06206000 CVTRV472 EQU CVTRV466 06207000 CVTRV471 EQU CVTRV466 06208000 CVTRV470 EQU CVTRV466 06209000 CVTRV469 EQU CVTRV466 06210000 CVTRV468 EQU CVTRV466 06211000 CVTRV467 EQU CVTRV466 06212000 CVTRV465 EQU CVTRV457 06213000 CVTRV464 EQU CVTRV457 06214000 CVTRV463 EQU CVTRV457 06215000 CVTRV462 EQU CVTRV457 06216000 CVTRV461 EQU CVTRV457 06217000 CVTRV460 EQU CVTRV457 06218000 CVTRV459 EQU CVTRV457 06219000 CVTRV458 EQU CVTRV457 06220000 CVTRV456 EQU CVTXTNT2+108 06221000 CVTRV455 EQU CVTXTNT2+104 06222000 CVTRV454 EQU CVTXTNT2+100 06223000 CVTRV453 EQU CVTXTNT2+96 06224000 CVTRV452 EQU CVTXTNT2+94 06225000 CVTRV451 EQU CVTXTNT2+92 06226000 CVTRV450 EQU CVTXTNT2+90 06227000 CVTRV449 EQU CVTXTNT2+88 06228000 CVTRV448 EQU CVTXTNT2+87 06229000 CVTRV447 EQU CVTXTNT2+86 06230000 CVTRV446 EQU CVTRV438 06231000 CVTRV445 EQU CVTRV438 06232000 CVTRV444 EQU CVTRV438 06233000 CVTRV443 EQU CVTRV438 06234000 CVTRV442 EQU CVTRV438 06235000 CVTRV441 EQU CVTRV438 06236000 CVTRV440 EQU CVTRV438 06237000 CVTRV439 EQU CVTRV438 06238000 CVTRV437 EQU CVTRV429 06239000 CVTRV436 EQU CVTRV429 06240000 CVTRV435 EQU CVTRV429 06241000 CVTRV434 EQU CVTRV429 06242000 CVTRV433 EQU CVTRV429 06243000 CVTRV432 EQU CVTRV429 06244000 CVTRV431 EQU CVTRV429 06245000 CVTRV430 EQU CVTRV429 06246000 CVTRV428 EQU CVTXTNT2+80 06247000 CVTRV427 EQU CVTXTNT2+76 06248000 CVTRV426 EQU CVTXTNT2+72 06249000 CVTRV425 EQU CVTXTNT2+68 06250000 CVTATACT EQU CVTATCVT 06251000 CVTRV423 EQU CVTXTNT2+62 06252000 CVTRV422 EQU CVTXTNT2+60 06253000 CVTRV421 EQU CVTXTNT2+58 06254000 CVTRV420 EQU CVTXTNT2+56 06255000 CVTRV419 EQU CVTXTNT2+55 06256000 CVTRV418 EQU CVTXTNT2+54 06257000 CVTRV417 EQU CVTRV409 06258000 CVTRV416 EQU CVTRV409 06259000 CVTRV415 EQU CVTRV409 06260000 CVTRV414 EQU CVTRV409 06261000 CVTRV413 EQU CVTRV409 06262000 CVTRV412 EQU CVTRV409 06263000 CVTRV411 EQU CVTRV409 06264000 CVTRV410 EQU CVTRV409 06265000 CVTRV408 EQU CVTRV400 06266000 CVTRV407 EQU CVTRV400 06267000 CVTRV406 EQU CVTRV400 06268000 CVTRV405 EQU CVTRV400 06269000 CVTRV404 EQU CVTRV400 06270000 CVTRV403 EQU CVTRV400 06271000 CVTRV402 EQU CVTRV400 06272000 CVTRV401 EQU CVTRV400 06273000 CVTICB EQU CVTXTNT2+48 06274000 CVTSKTA EQU CVTXTNT2+44 06275000 CVTCCVT EQU CVTXTNT2+40 06276000 CVTRSV98 EQU CVTXTNT2+36 06277000 CVTRSV97 EQU CVTXTNT2+34 06278000 CVTRSV96 EQU CVTXTNT2+32 06279000 CVTOLTEP EQU CVTXTNT2+28 06280000 CVTQIDA EQU CVTQID+1 06281000 CVTRSV95 EQU CVTQID 06282000 CVTRSV94 EQU CVTXTNT2+20 06283000 CVTRSV93 EQU CVTXTNT2+16 06284000 CVTRSV92 EQU CVTXTNT2+12 06285000 CVTDEBVR EQU CVTXTNT2+8 06286000 CVTRSV91 EQU CVTXTNT2+6 06287000 CVTRSV9H EQU CVTFLGBT 06288000 CVTRSV9G EQU CVTFLGBT 06289000 CVTRSV9F EQU CVTFLGBT 06290000 CVTRSV9E EQU CVTFLGBT 06291000 CVTRSV9D EQU CVTFLGBT 06292000 CVTBAH EQU CVTFLGBT 06293000 CVTVME EQU CVTFLGBT 06294000 CVTNPE EQU CVTFLGBT 06295000 CVTNUCLS EQU CVTXTNT2+4 06296000 CVTDSSVA EQU CVTDSSV+1 06297000 CVTRSV89 EQU CVTDSSV 06298000 CVTRSV88 EQU CVTXTNT1+8 06299000 CVTRSV87 EQU CVTXTNT1+4 06300000 CVTFACHN EQU CVTXTNT1 06301000 CVTRV488 EQU CVTMAP+412 06302000 CVTRV487 EQU CVTMAP+408 06303000 CVTRV486 EQU CVTMAP+404 06304000 CVTRV485 EQU CVTMAP+400 06305000 CVTACTAP EQU CVTMAP+396 06306000 CVTAUTH EQU CVTMAP+392 06307000 CVTRV490 EQU CVTMAP+388 06308000 CVTSU EQU CVTMAP+384 06309000 CVTVOLT1 EQU CVTVOLM1+1 06310000 CVTVOLI1 EQU CVTVOLF1 06311000 CVTSTOA EQU CVTMAP+376 06312000 CVTRSV58 EQU CVTMAP+374 06313000 CVTRSV57 EQU CVTMAP+372 06314000 CVTDDCE EQU CVTMAP+368 06315000 CVTPNWFR EQU CVTMAP+364 06316000 CVTSMF EQU CVTMAP+360 06317000 CVTSULK EQU CVTMAP+358 06318000 CVTSLKO EQU CVTSYSK 06319000 CVTSLKP EQU CVTSYSK 06320000 CVTSLKQ EQU CVTSYSK 06321000 CVTSLKR EQU CVTSYSK 06322000 CVTRSV56 EQU CVTSYSK 06323000 CVTRSV55 EQU CVTSYSK 06324000 CVTRSV54 EQU CVTSYSK 06325000 CVTRSV53 EQU CVTSYSK 06326000 CVTRSV52 EQU CVTA1F1 06327000 CVTRSV51 EQU CVTA1F1 06328000 CVTRSV50 EQU CVTA1F1 06329000 CVTRSV49 EQU CVTA1F1 06330000 CVTRSV48 EQU CVTA1F1 06331000 CVTRSV47 EQU CVTA1F1 06332000 CVTSRSW EQU CVTA1F1 06333000 CVTPFSW EQU CVTA1F1 06334000 CVTPCVT EQU CVTMAP+352 06335000 CVTRSV46 EQU CVTMAP+344 06336000 CVTRSV45 EQU CVTMAP+340 06337000 CVTRSV44 EQU CVTMAP+338 06338000 CVTRSV43 EQU CVTMAP+336 06339000 CVTHJESA EQU CVTHJES+1 06340000 CVTRSV42 EQU CVTHJES 06341000 CVTEXT2A EQU CVTEXT2+1 06342000 CVTRSV41 EQU CVTEXT2 06343000 CVTAPFA EQU CVTAPF+1 06344000 CVTRSV40 EQU CVTAPF 06345000 CVTRV518 EQU CVTINTLA 06346000 CVTRV517 EQU CVTERPV 06347000 CVTEORM EQU CVTMAP+312 06348000 CVTMCHPR EQU CVTMAP+308 06349000 CVTTZ EQU CVTMAP+304 06350000 CVTJEPS EQU CVTMAP+300 06351000 CVTJESCT EQU CVTMAP+296 06352000 CVTMODE EQU CVTMAP+292 06353000 CVTPTRV EQU CVTMAP+288 06354000 CVTREAL EQU CVTMAP+284 06355000 CVTRSV39 EQU CVTMAP+280 06356000 CVTRSV38 EQU CVTMAP+276 06357000 CVTDMSRA EQU CVTDMSR+1 06358000 CVTRV634 EQU CVTDMSRF 06359000 CVTRV633 EQU CVTDMSRF 06360000 CVTRV632 EQU CVTDMSRF 06361000 CVTRV631 EQU CVTDMSRF 06362000 CVTRV630 EQU CVTDMSRF 06363000 CVTRV629 EQU CVTDMSRF 06364000 CVTUDUMP EQU CVTDMSRF 06365000 CVTSDUMP EQU CVTDMSRF 06366000 CVTQMSGA EQU CVTQMSG+1 06367000 CVTRSV36 EQU CVTQMSG 06368000 CVTAMFF EQU CVTMAP+264 06369000 CVTPURGA EQU CVTPURG+1 06370000 CVTRSV35 EQU CVTPURG 06371000 CVTCBSP EQU CVTMAP+256 06372000 CVTATERA EQU CVTATER+1 06373000 CVTSYST EQU CVTATER 06374000 CVTVOLT2 EQU CVTTAT 06375000 CVTVOLI2 EQU CVTVOLF2 06376000 CVTAQAVB EQU CVTAQAVT+1 06377000 CVTRSV34 EQU CVTTCMFG 06378000 CVTRSV33 EQU CVTTCMFG 06379000 CVTRSV32 EQU CVTTCMFG 06380000 CVTRSV31 EQU CVTTCMFG 06381000 CVTRSV30 EQU CVTTCMFG 06382000 CVTRSV29 EQU CVTTCMFG 06383000 CVTLDEV EQU CVTTCMFG 06384000 CVTTCRDY EQU CVTTCMFG 06385000 CVTGTFA EQU CVTGTF+1 06386000 CVTRSV27 EQU CVTGTFST 06387000 CVTRNIO EQU CVTGTFST 06388000 CVTUSR EQU CVTGTFST 06389000 CVTRV318 EQU CVTFORM 06390000 CVTRV317 EQU CVTTMODE 06391000 CVTRV316 EQU CVTSTATE 06392000 CVTRV315 EQU CVTGTFS 06393000 CVTGTFAV EQU CVTGTFS 06394000 CVT0SCR1 EQU CVTMAP+232 06395000 CVTRV515 EQU CVTMAP+228 06396000 CVTRMS EQU CVTMAP+224 06397000 CVTPATCH EQU CVTMAP+220 06398000 CVTTSCE EQU CVTMAP+216 06399000 CVTLNKSC EQU CVTMAP+214 06400000 CVTQABST EQU CVTMAP+212 06401000 CVTMDLDS EQU CVTMAP+208 06402000 CVTUSER EQU CVTMAP+204 06403000 CVTABEND EQU CVTMAP+200 06404000 CVTSMCA EQU CVTMAP+196 06405000 CVTRSV18 EQU CVTMAP+192 06406000 CVTQLPAQ EQU CVTMAP+188 06407000 CVTQCDSR EQU CVTMAP+184 06408000 CVTVS1B EQU CVTOPTB 06409000 CVTVS1A EQU CVTOPTB 06410000 CVTFP EQU CVTOPTB 06411000 CVTAPTHR EQU CVTOPTB 06412000 CVTNLOG EQU CVTOPTB 06413000 CVTTOD EQU CVTOPTB 06414000 CVTCTIMS EQU CVTOPTB 06415000 CVTPROT EQU CVTOPTB 06416000 CVTXPFP EQU CVTOPTA 06417000 CVTASCII EQU CVTOPTA 06418000 CVTRSV13 EQU CVTOPTA 06419000 CVTRSV12 EQU CVTOPTA 06420000 CVTNIP EQU CVTOPTA 06421000 CVTDDR EQU CVTOPTA 06422000 CVTAPR EQU CVTOPTA 06423000 CVTCCH EQU CVTOPTA 06424000 CVTSNCTR EQU CVTMAP+180 06425000 CVTQMWR EQU CVTMAP+176 06426000 CVTQOCR EQU CVTMAP+172 06427000 CVT1EF00 EQU CVTMAP+168 06428000 CVTMZ00 EQU CVTMAP+164 06429000 CVTSV76Q EQU CVTSV76C 06430000 CVTRSV11 EQU CVTMAP+156 06431000 CVT0PT01 EQU CVTMAP+152 06432000 CVTMSER EQU CVTMAP+148 06433000 CVTRV516 EQU CVTIERLC 06434000 CVTILCH EQU CVTMAP+140 06435000 CVT0DS EQU CVTMAP+136 06436000 CVTFBOSV EQU CVTMAP+132 06437000 CVTNUCB EQU CVTMAP+128 06438000 CVTIXAVL EQU CVTMAP+124 06439000 CVTSV76M EQU CVTIOQET 06440000 CVTDCBA EQU CVTMAP+117 06441000 CVTMVS2 EQU CVTDCB 06442000 CVT6DAT EQU CVTDCB 06443000 CVT4MPS EQU CVTDCB 06444000 CVTRSV09 EQU CVTDCB 06445000 CVT4MS1 EQU CVTDCB 06446000 CVT2SPS EQU CVTDCB 06447000 CVT1SSS EQU CVTDCB 06448000 CVTRSV08 EQU CVTDCB 06449000 CVTSTB EQU CVTMAP+112 06450000 CVTQTD00 EQU CVTMAP+108 06451000 CVTQTE00 EQU CVTMAP+104 06452000 CVTCUCB EQU CVTMAP+100 06453000 CVTSJQ EQU CVTMAP+96 06454000 CVTPBLDL EQU CVTMAP+92 06455000 CVTTPC EQU CVTMAP+88 06456000 CVTSVDCB EQU CVTMAP+84 06457000 CVTBRET EQU CVTMAP+82 06458000 CVTEXIT EQU CVTMAP+80 06459000 CVT0FN00 EQU CVTMAP+76 06460000 CVTDARA EQU CVTDAR+1 06461000 CVTRSV07 EQU CVTFLGS1 06462000 CVTRSV06 EQU CVTFLGS1 06463000 CVTRSV05 EQU CVTFLGS1 06464000 CVTRSV04 EQU CVTFLGS1 06465000 CVTRSV03 EQU CVTFLGS1 06466000 CVTRSV02 EQU CVTFLGS1 06467000 CVTRSV01 EQU CVTFLGS1 06468000 CVTDMPLK EQU CVTFLGS1 06469000 CVTXITP EQU CVTMAP+68 06470000 CVTZDTAB EQU CVTMAP+64 06471000 CVTMSLT EQU CVTMAP+60 06472000 CVTDATE EQU CVTMAP+56 06473000 CVTBTERM EQU CVTMAP+52 06474000 CVTSYSAD EQU CVTMAP+48 06475000 CVTXTLER EQU CVTMAP+44 06476000 CVTILK2 EQU CVTMAP+40 06477000 CVTILK1 EQU CVTMAP+36 06478000 CVTPRLTV EQU CVTMAP+32 06479000 CVTPCNVT EQU CVTMAP+28 06480000 CVT0VL00 EQU CVTMAP+24 06481000 CVTXAPG EQU CVTMAP+20 06482000 CVTBUF EQU CVTMAP+16 06483000 CVTJOB EQU CVTMAP+12 06484000 CVTLINK EQU CVTMAP+8 06485000 CVT0EF00 EQU CVTMAP+4 06486000 CVTTCBP EQU CVTMAP 06487000 PCBRWRKB EQU PCBR+60 06488000 PCBRWRKA EQU PCBR+56 06489000 PCBRWRK9 EQU PCBR+52 06490000 PCBRWRK8 EQU PCBR+48 06491000 PCBRWRK7 EQU PCBR+44 06492000 PCBRWRK6 EQU PCBR+40 06493000 PCBRWRK5 EQU PCBR+36 06494000 PCBRWRK2 EQU PCBR+24 06495000 PCBRWRK1 EQU PCBR+20 06496000 PCBRRSV1 EQU PCBR+18 06497000 PCBRECB EQU PCBR+8 06498000 PCBRTCBA EQU PCBRTCB+1 06499000 PCBRPOF EQU PCBRFLAG 06500000 PCBRFECB EQU PCBRFLAG 06501000 PCBRLOAD EQU PCBRFLAG 06502000 PCBRFPCB EQU PCBRFLAG 06503000 PCBRINT EQU PCBRFLAG 06504000 PCBEND EQU PCB+64 06505000 PCBSPCTE EQU PCBRB 06506000 PCBPGTA EQU PCBPGT+1 06507000 @NM00036 EQU PCBFL3 06508000 PCBDFRLS EQU PCBFL3 06509000 PCBSWPOT EQU PCBFL3 06510000 @NM00035 EQU PCBFL2 06511000 @NM00034 EQU PCBFL2 06512000 PCBLFR EQU PCBFL1 06513000 @NM00033 EQU PCBFL1 06514000 PCBCQN EQU PCBFQP 06515000 @NM00032 EQU PFTFLAG2 06516000 @NM00031 EQU PFTFLAG2 06517000 PFTOFFLN EQU PFTFLAG2 06518000 PFTDFRLS EQU PFTFLAG2 06519000 PFTVRALC EQU PFTFLAG1 06520000 PFTBADPG EQU PFTFLAG1 06521000 PFTRSV1 EQU PFTE+10 06522000 PFTBQPTR EQU PFTQPTRS+2 06523000 RCARETAD EQU RCA+20 06524000 RCATASID EQU RCA+18 06525000 RCAREP1 EQU RCANAME6 06526000 RCAPSIF EQU RCANAME6 06527000 RCAPSIX EQU RCANAME6 06528000 RCAVEQRP EQU RCANAME6 06529000 RCARCFC EQU RCANAME6 06530000 RCACSGB EQU RCANAME6 06531000 RCAFXL EQU RCANAME6 06532000 RCAPS113 EQU RCANAME6 06533000 RCAFREE EQU RCANAME5 06534000 RCARFR2 EQU RCANAME5 06535000 RCACPBR EQU RCANAME5 06536000 RCAOPBR EQU RCANAME5 06537000 RCASORT EQU RCANAME5 06538000 RCASIRT EQU RCANAME5 06539000 RCARELV EQU RCANAME5 06540000 RCARELF EQU RCANAME5 06541000 RCAVEQRI EQU RCANAME4 06542000 RCAVEQRF EQU RCANAME4 06543000 RCAVEQRC EQU RCANAME4 06544000 RCATERM EQU RCANAME4 06545000 RCASQA EQU RCANAME4 06546000 RCASWIN EQU RCANAME4 06547000 RCASOUT EQU RCANAME4 06548000 RCARFR EQU RCANAME3 06549000 RCARELS EQU RCANAME3 06550000 RCARCFI EQU RCANAME3 06551000 RCARCF EQU RCANAME3 06552000 RCAPSII EQU RCANAME3 06553000 RCAPSIB EQU RCANAME3 06554000 RCAPS112 EQU RCANAME3 06555000 RCAPIX EQU RCANAME3 06556000 RCAPIOP EQU RCANAME2 06557000 RCASWPC EQU RCANAME2 06558000 RCASWPP EQU RCANAME2 06559000 RCAPFTE EQU RCANAME2 06560000 RCAPCB EQU RCANAME2 06561000 RCAOUT EQU RCANAME2 06562000 RCAITAS EQU RCANAME2 06563000 RCAIOCP EQU RCANAME2 06564000 RCAINV EQU RCANAME1 06565000 RCAFXLD EQU RCANAME1 06566000 RCAVEQR EQU RCANAME1 06567000 RCADSEG EQU RCANAME1 06568000 RCADLAS EQU RCANAME1 06569000 RCACSEG EQU RCANAME1 06570000 RCAVAMSI EQU RCANAME1 06571000 @NM00030 EQU RCAFLAGS 06572000 RCADISP EQU RCAFLAGS 06573000 @NM00029 EQU RCAFLAGS 06574000 RCAQS EQU RCAFLAGS 06575000 RCAPSIER EQU RCAFLAGS 06576000 RCAABEND EQU RCAFLAGS 06577000 @NM00028 EQU RCANAME7 06578000 RCAPRSS EQU RCANAME7 06579000 RCAPRSR EQU RCANAME7 06580000 RCAPRSB EQU RCANAME7 06581000 RCAPSIY EQU RCANAME7 06582000 RCAPIOI EQU RCANAME7 06583000 RCAPARM0 EQU RCA 06584000 ASCBEND EQU ASCB+208 06585000 ASCBSRBT EQU ASCB+200 06586000 ASCBSWTL EQU ASCB+196 06587000 ASCBRS14 EQU ASCB+195 06588000 ASCBSMCT EQU ASCB+194 06589000 ASCBRS12 EQU ASCB+192 06590000 ASCBPCTT EQU ASCB+188 06591000 ASCBVGTT EQU ASCB+184 06592000 ASCBRV43 EQU ASCBSRQ4 06593000 ASCBRV42 EQU ASCBSRQ4 06594000 ASCBRV41 EQU ASCBSRQ4 06595000 ASCBRV40 EQU ASCBSRQ4 06596000 ASCBRV39 EQU ASCBSRQ4 06597000 ASCBRV38 EQU ASCBSRQ4 06598000 ASCBRV37 EQU ASCBSRQ4 06599000 ASCBRV36 EQU ASCBSRQ4 06600000 ASCBRV35 EQU ASCBSRQ3 06601000 ASCBRV34 EQU ASCBSRQ3 06602000 ASCBRV33 EQU ASCBSRQ3 06603000 ASCBRV32 EQU ASCBSRQ3 06604000 ASCBRV31 EQU ASCBSRQ3 06605000 ASCBRV30 EQU ASCBSRQ3 06606000 ASCBRV29 EQU ASCBSRQ3 06607000 ASCBRV28 EQU ASCBSRQ3 06608000 ASCBRV27 EQU ASCBSRQ2 06609000 ASCBRV26 EQU ASCBSRQ2 06610000 ASCBRV25 EQU ASCBSRQ2 06611000 ASCBRV24 EQU ASCBSRQ2 06612000 ASCBRV23 EQU ASCBSRQ2 06613000 ASCBRV22 EQU ASCBSRQ2 06614000 ASCBRV21 EQU ASCBSRQ2 06615000 ASCBRV20 EQU ASCBSRQ2 06616000 ASCBRV19 EQU ASCBSRQ1 06617000 ASCBRV18 EQU ASCBSRQ1 06618000 ASCBRV17 EQU ASCBSRQ1 06619000 ASCBRV16 EQU ASCBSRQ1 06620000 ASCBRV15 EQU ASCBSRQ1 06621000 ASCBRV14 EQU ASCBSRQ1 06622000 ASCBRV13 EQU ASCBSRQ1 06623000 ASCBSTA EQU ASCBSRQ1 06624000 ASCBJBNS EQU ASCB+176 06625000 ASCBJBNI EQU ASCB+172 06626000 ASCBMCC EQU ASCB+168 06627000 ASCBRTWA EQU ASCB+164 06628000 ASCBIQEA EQU ASCB+160 06629000 ASCBXMPQ EQU ASCB+156 06630000 ASCBRS01 EQU ASCB+154 06631000 ASCBFMCT EQU ASCB+152 06632000 ASCBOUCB EQU ASCB+144 06633000 ASCBMECB EQU ASCB+140 06634000 ASCBQECB EQU ASCB+136 06635000 ASCBLSQH EQU ASCBLKGP+4 06636000 ASCBLOCK EQU ASCBLKGP 06637000 ASCBTCBS EQU ASCB+124 06638000 ASCBNVSC EQU ASCB+122 06639000 ASCBVSC EQU ASCB+120 06640000 ASCBSRBS EQU ASCB+118 06641000 ASCBSSRB EQU ASCB+116 06642000 ASCBRV06 EQU ASCBFLG2 06643000 ASCBRV05 EQU ASCBFLG2 06644000 ASCBRV04 EQU ASCBFLG2 06645000 ASCBSNQS EQU ASCBFLG2 06646000 ASCBS2S EQU ASCBFLG2 06647000 ASCBCEXT EQU ASCBFLG2 06648000 ASCBPXMT EQU ASCBFLG2 06649000 ASCBXMPT EQU ASCBFLG2 06650000 ASCBRF07 EQU ASCBDSP1 06651000 ASCBRF06 EQU ASCBDSP1 06652000 ASCBRF05 EQU ASCBDSP1 06653000 ASCBRF04 EQU ASCBDSP1 06654000 ASCBRF03 EQU ASCBDSP1 06655000 ASCBRF02 EQU ASCBDSP1 06656000 ASCBFAIL EQU ASCBDSP1 06657000 ASCBNOQ EQU ASCBDSP1 06658000 ASCBSWCT EQU ASCB+112 06659000 ASCBASXB EQU ASCB+108 06660000 ASCBTMCH EQU ASCB+104 06661000 ASCBNSWP EQU ASCBFLG1 06662000 ASCBTYP1 EQU ASCBFLG1 06663000 ASCBSTND EQU ASCBFLG1 06664000 ASCBABNT EQU ASCBFLG1 06665000 ASCBTERM EQU ASCBFLG1 06666000 ASCBS3S EQU ASCBFLG1 06667000 ASCBCMSH EQU ASCBFLG1 06668000 ASCBTOFF EQU ASCBFLG1 06669000 ASCBRF01 EQU ASCBRCTF 06670000 ASCBTMLW EQU ASCBRCTF 06671000 ASCBOUT EQU ASCBRCTF 06672000 ASCBWAIT EQU ASCBRCTF 06673000 ASCBRV08 EQU ASCBRCTF 06674000 ASCBFQU EQU ASCBRCTF 06675000 ASCBFRS EQU ASCBRCTF 06676000 ASCBTMNO EQU ASCBRCTF 06677000 ASCBAFFN EQU ASCBFW1 06678000 ASCBDUMP EQU ASCB+96 06679000 ASCBRV44 EQU ASCB+92 06680000 ASCBUBET EQU ASCB+88 06681000 ASCBECB EQU ASCB+84 06682000 ASCBJSTL EQU ASCB+80 06683000 ASCBEWST EQU ASCB+72 06684000 ASCBEJST EQU ASCB+64 06685000 ASCBTSB EQU ASCB+60 06686000 ASCBCSCB EQU ASCB+56 06687000 ASCBRSMA EQU ASCBRSM+1 06688000 ASCBRV54 EQU ASCBRSMF 06689000 ASCBRV53 EQU ASCBRSMF 06690000 ASCBRV52 EQU ASCBRSMF 06691000 ASCBRV51 EQU ASCBRSMF 06692000 ASCBVEQR EQU ASCBRSMF 06693000 ASCBN2LP EQU ASCBRSMF 06694000 ASCB1LPU EQU ASCBRSMF 06695000 ASCB2LPU EQU ASCBRSMF 06696000 ASCBLDA EQU ASCB+48 06697000 ASCBDP EQU ASCB+43 06698000 ASCBRV07 EQU ASCB+42 06699000 ASCBIOSM EQU ASCB+40 06700000 ASCBSEQN EQU ASCB+38 06701000 ASCBCPUS EQU ASCB+32 06702000 ASCBSPL EQU ASCB+28 06703000 ASCBIOSP EQU ASCB+24 06704000 ASCBSYNC EQU ASCBSUPC+4 06705000 ASCBSVRB EQU ASCBSUPC 06706000 ASCBCMSF EQU ASCB+12 06707000 ASCBBWDP EQU ASCB+8 06708000 ASCBFWDP EQU ASCB+4 06709000 ASCBASCB EQU ASCB 06710000 ASCBEGIN EQU ASCB 06711000 @NM00027 EQU FRRSFLGS+1 06712000 @NM00026 EQU FRRSFLG1 06713000 FRRSNEST EQU FRRSFLG1 06714000 FRRSRCUR EQU FRRSFLG1 06715000 FRRSENTS EQU FRRS+84 06716000 FRRSRTMW EQU FRRS+16 06717000 PVTEND EQU PVT+1944 06718000 PVTXXXXX EQU PVT+1940 06719000 PVTVCONS EQU PVT+1896 06720000 PVTPRSB EQU PVT+1892 06721000 PVTCIOQL EQU PVTPCBQS+36 06722000 PVTFPCBL EQU PVTPCBQS+20 06723000 PVTFPCBF EQU PVTPCBQS+16 06724000 PVTPCBQR EQU PVTPCBQS 06725000 PVTLPAFX EQU PVT+1850 06726000 PVTLSQAF EQU PVT+1848 06727000 PVTLPAR EQU PVT+1844 06728000 PVTLPAI EQU PVT+1840 06729000 PVTLPAFC EQU PVT+1838 06730000 PVTCHUIC EQU PVT+1836 06731000 PVTSQAFX EQU PVT+1832 06732000 PVTFIXOK EQU PVT+1826 06733000 PVTPEROK EQU PVT+1824 06734000 PVTPERFX EQU PVT+1820 06735000 PVTRSRB EQU PVT+1776 06736000 PVTRESV5 EQU PVT+1773 06737000 PVTSRBS EQU PVT+1772 06738000 PVTSSRB EQU PVT+1768 06739000 PVTACA EQU PVTWSAX+1400 06740000 PVTWSA18 EQU PVTWSAX+1256 06741000 PVTWSA17 EQU PVTWSAX+1184 06742000 PVTWSA16 EQU PVTWSAX+1112 06743000 PVTWSA15 EQU PVTWSAX+1040 06744000 PVTWSA14 EQU PVTWSAX+968 06745000 PVTWSA13 EQU PVTWSAX+896 06746000 PVTWSA12 EQU PVTWSAX+824 06747000 PVTWSA11 EQU PVTWSAX+752 06748000 PVTWSA10 EQU PVTWSAX+672 06749000 PVTWSA9 EQU PVTWSAX+592 06750000 PVTWSA7 EQU PVTWSAX+432 06751000 PVTWSA6 EQU PVTWSAX+360 06752000 PVTWSA5 EQU PVTWSAX+288 06753000 PVTWSA4 EQU PVTWSAX+216 06754000 PVTWSA3 EQU PVTWSAX+144 06755000 PVTWSA2 EQU PVTWSAX+72 06756000 PVTWSA1 EQU PVTWSAX 06757000 PVTPFTQR EQU PVTQS+20 06758000 PVTRSBQL EQU PVTQS+18 06759000 PVTRSBQF EQU PVTQS+16 06760000 PVTSQAQL EQU PVTQS+14 06761000 PVTSQAQF EQU PVTQS+12 06762000 PVTCFQL EQU PVTQS+10 06763000 PVTCFQF EQU PVTQS+8 06764000 PVTRSRVL EQU PVTQS+6 06765000 PVTRSRVF EQU PVTQS+4 06766000 PVTAFQL EQU PVTQS+2 06767000 PVTSPFR EQU PVT+302 06768000 PVTCFMCT EQU PVT+300 06769000 PVTCAOUT EQU PVT+288 06770000 PVTNSWPS EQU PVT+280 06771000 PVTSPOUT EQU PVT+272 06772000 PVTVAMR EQU PVT+264 06773000 PVTVAMO EQU PVT+260 06774000 PVTNPOUT EQU PVT+252 06775000 PVTFRSLT EQU PVT+240 06776000 PVTPSWPP EQU PVT+228 06777000 PVTPRELF EQU PVT+216 06778000 PVTPRELV EQU PVT+212 06779000 PVTPFREE EQU PVT+208 06780000 PVTPRELS EQU PVT+204 06781000 PVTPOUT EQU PVT+200 06782000 PVTPFXLD EQU PVT+196 06783000 PVTPITAS EQU PVT+192 06784000 PVTPSRBP EQU PVT+188 06785000 PVTPDSEG EQU PVT+184 06786000 PVTPCSGB EQU PVT+180 06787000 PVTPCSEG EQU PVT+176 06788000 PVTPSWPC EQU PVT+168 06789000 PVTPSOUT EQU PVT+164 06790000 PVTPSWIN EQU PVT+160 06791000 PVTPRCFI EQU PVT+152 06792000 PVTPRCF EQU PVT+148 06793000 PVTPVRC EQU PVT+144 06794000 PVTPVRIN EQU PVT+140 06795000 PVTPVRLS EQU PVT+136 06796000 PVTPVEQR EQU PVT+132 06797000 PVTPPIOI EQU PVT+128 06798000 PVTPVRPO EQU PVT+124 06799000 PVTPRFR EQU PVT+120 06800000 PVTPFP EQU PVT+112 06801000 PVTREP2 EQU PVT+100 06802000 PVTPIOCP EQU PVT+96 06803000 PVTPIOP EQU PVT+92 06804000 PVTPGFAD EQU PVT+88 06805000 PVTPSQA EQU PVT+80 06806000 PVTPSINT EQU PVT+76 06807000 PVTPSIB EQU PVT+72 06808000 PVTPCIWA EQU PVT+64 06809000 PVTHQSA EQU PVT+62 06810000 PVTOROOT EQU PVT+56 06811000 PVTSQNPC EQU PVT+47 06812000 PVTSQVRC EQU PVT+46 06813000 PVTRSUS EQU PVT+44 06814000 PVTVROOT EQU PVT+40 06815000 PVTPCBLO EQU PVT+38 06816000 PVTPCBCT EQU PVT+36 06817000 PVTRSQA EQU PVT+32 06818000 PVTPTLB EQU PVT+31 06819000 PVTPCBNO EQU PVT+30 06820000 PVTSRBNO EQU PVT+29 06821000 PVTSQDC EQU PVT+28 06822000 PVTLPRIV EQU PVT+24 06823000 PVTSSPIN EQU PVT+11 06824000 PVTPCBS EQU PVT+10 06825000 PVTPOOL EQU PVT+8 06826000 PVTAFCOK EQU PVT+6 06827000 PVTAFCLO EQU PVT+4 06828000 @NM00001 EQU PVTFLAG2 06829000 PVTRSMGM EQU PVTFLAG2 06830000 PVTDUMP EQU PVTFLAG1 06831000 PVTSIT EQU PVTFLAG1 06832000 PVTLSI EQU PVTFLAG1 06833000 PVTAPREF EQU PVTFLAG1 06834000 PVTPCBLT EQU PVTFLAG1 06835000 PVTSRBIU EQU PVTFLAG1 06836000 PVTBGMS EQU PVTFLAG1 06837000 PVTPMSG EQU PVTFLAG1 06838000 @NM00025 EQU PSA+3668 06839000 PSASTAK EQU PSA+3072 06840000 @NM00024 EQU PSA+1048 06841000 PSAUSEND EQU PSA+1048 06842000 PSARV062 EQU PSA+1044 06843000 PSACDAL EQU PSA+1040 06844000 PSAWTCOD EQU PSA+1036 06845000 PSAATCVT EQU PSA+1032 06846000 PSAPCPSW EQU PSA+1024 06847000 PSAPIR2 EQU PSA+1020 06848000 PSARV059 EQU PSA+1018 06849000 PSASVC13 EQU PSA+1016 06850000 PSASFACC EQU PSA+1008 06851000 PSASTOP EQU PSA+992 06852000 PSASTART EQU PSA+976 06853000 PSARSPSW EQU PSA+968 06854000 PSASRPSW EQU PSA+960 06855000 PSARV045 EQU PSA+892 06856000 PSARV044 EQU PSA+888 06857000 PSARV043 EQU PSA+884 06858000 PSARV042 EQU PSA+880 06859000 PSARV041 EQU PSA+876 06860000 PSARV040 EQU PSA+872 06861000 PSARV025 EQU PSA+868 06862000 PSADSSED EQU PSA+868 06863000 PSADSSPR EQU PSA+864 06864000 PSADSSFW EQU PSA+860 06865000 PSADSS14 EQU PSA+856 06866000 PSADSSPP EQU PSA+848 06867000 PSADSSRP EQU PSA+840 06868000 PSADSS05 EQU PSADSSF4 06869000 PSADSS10 EQU PSADSSF4 06870000 PSADSSVE EQU PSADSSF4 06871000 PSADSSDE EQU PSADSSF4 06872000 PSADSSC0 EQU PSADSSF4 06873000 PSADSSIE EQU PSADSSF4 06874000 PSADSS12 EQU PSADSSF4 06875000 PSADSSRC EQU PSADSSF4 06876000 PSARV057 EQU PSADSSF3 06877000 PSARV056 EQU PSADSSF3 06878000 PSARV055 EQU PSADSSF3 06879000 PSADSSMC EQU PSADSSF3 06880000 PSADSSRW EQU PSADSSF3 06881000 PSADSSNM EQU PSADSSF3 06882000 PSADSSES EQU PSADSSF3 06883000 PSADSSGP EQU PSADSSF3 06884000 PSADSSF2 EQU PSADSSFL+1 06885000 PSADSSPI EQU PSADSSF1 06886000 PSADSSOI EQU PSADSSF1 06887000 PSADSSSP EQU PSADSSF1 06888000 PSADSSTP EQU PSADSSF1 06889000 PSADSSDW EQU PSADSSF1 06890000 PSADSSDD EQU PSADSSF1 06891000 PSADSSDM EQU PSADSSF1 06892000 PSADSSMV EQU PSADSSF1 06893000 PSADSSTS EQU PSA+816 06894000 PSADSSWK EQU PSA+812 06895000 PSADSSR3 EQU PSA+808 06896000 PSADSSR2 EQU PSA+804 06897000 PSADSSRS EQU PSA+800 06898000 PSASTOR EQU PSA+796 06899000 PSACPUSA EQU PSA+794 06900000 PSAVSTAP EQU PSA+792 06901000 PSAWKVAP EQU PSA+788 06902000 PSAWKRAP EQU PSA+784 06903000 PSAMCHIC EQU PSA+783 06904000 PSARV061 EQU PSA+782 06905000 PSASYMSK EQU PSA+781 06906000 PSAMCHFL EQU PSA+780 06907000 PSACR0 EQU PSA+776 06908000 PSAPSWSV EQU PSA+768 06909000 PSACLHS EQU PSAHLHI 06910000 PSALKR15 EQU PSALKSA+60 06911000 PSALKR14 EQU PSALKSA+56 06912000 PSALKR13 EQU PSALKSA+52 06913000 PSALKR12 EQU PSALKSA+48 06914000 PSALKR11 EQU PSALKSA+44 06915000 PSALKR10 EQU PSALKSA+40 06916000 PSALKR9 EQU PSALKSA+36 06917000 PSALKR8 EQU PSALKSA+32 06918000 PSALKR7 EQU PSALKSA+28 06919000 PSALKR6 EQU PSALKSA+24 06920000 PSALKR5 EQU PSALKSA+20 06921000 PSALKR4 EQU PSALKSA+16 06922000 PSALKR3 EQU PSALKSA+12 06923000 PSALKR2 EQU PSALKSA+8 06924000 PSALKR1 EQU PSALKSA+4 06925000 PSALKR0 EQU PSALKSA 06926000 PSARV023 EQU PSACLHT+52 06927000 PSALOCAL EQU PSACLHT+48 06928000 PSACMSL EQU PSACLHT+44 06929000 PSAOPTL EQU PSACLHT+40 06930000 PSATPACL EQU PSACLHT+36 06931000 PSATPDNL EQU PSACLHT+32 06932000 PSATPNCL EQU PSACLHT+28 06933000 PSAIOSLL EQU PSACLHT+24 06934000 PSAIOSUL EQU PSACLHT+20 06935000 PSAIOSCL EQU PSACLHT+16 06936000 PSAIOSSL EQU PSACLHT+12 06937000 PSASALCL EQU PSACLHT+8 06938000 PSAASML EQU PSACLHT+4 06939000 PSADISPL EQU PSACLHT 06940000 PSASRSA EQU PSA+636 06941000 PSARV050 EQU PSA+634 06942000 PSADSSGO EQU PSA+633 06943000 PSARECUR EQU PSA+632 06944000 PSAHLHIS EQU PSA+628 06945000 PSAIPCSA EQU PSA+624 06946000 @NM00023 EQU PSA+621 06947000 PSAIPCDM EQU PSA+620 06948000 PSAIPCD EQU PSA+616 06949000 @NM00022 EQU PSA+613 06950000 PSAIPCRM EQU PSA+612 06951000 PSAIPCR EQU PSA+608 06952000 PSAMCHEX EQU PSA+600 06953000 PSAMPSW EQU PSA+592 06954000 PSAEXPS2 EQU PSA+584 06955000 PSAEXPS1 EQU PSA+576 06956000 PSAPIREG EQU PSA+572 06957000 PSARSREG EQU PSA+568 06958000 PSAGPREG EQU PSA+556 06959000 PSARV022 EQU PSASUP4 06960000 PSARV021 EQU PSASUP4 06961000 PSARV020 EQU PSASUP4 06962000 PSARV019 EQU PSASUP4 06963000 PSARV018 EQU PSASUP4 06964000 PSARV017 EQU PSASUP4 06965000 PSARV016 EQU PSASUP4 06966000 PSARV015 EQU PSASUP4 06967000 PSARV014 EQU PSASUP3 06968000 PSAULCMS EQU PSASUP3 06969000 PSARV012 EQU PSASUP3 06970000 PSAESTA EQU PSASUP3 06971000 PSASPR EQU PSASUP3 06972000 PSAPSREG EQU PSASUP3 06973000 PSAPI2 EQU PSASUP3 06974000 PSAIOSUP EQU PSASUP3 06975000 PSALCR EQU PSASUP2 06976000 PSARTM EQU PSASUP2 06977000 PSAACR EQU PSASUP2 06978000 PSAIPCE2 EQU PSASUP2 06979000 PSAIPCES EQU PSASUP2 06980000 PSAIPCEC EQU PSASUP2 06981000 PSAGTF EQU PSASUP2 06982000 PSAIPCRI EQU PSASUP2 06983000 PSATYPE6 EQU PSASUP1 06984000 PSATCTL EQU PSASUP1 06985000 PSADISP EQU PSASUP1 06986000 PSALOCK EQU PSASUP1 06987000 PSAPI EQU PSASUP1 06988000 PSAEXT EQU PSASUP1 06989000 PSASVC EQU PSASUP1 06990000 PSAIO EQU PSASUP1 06991000 PSAANEW EQU PSA+544 06992000 PSATOLD EQU PSA+540 06993000 PSATNEW EQU PSA+536 06994000 PSALCCAR EQU PSA+532 06995000 PSAPCCAR EQU PSA+524 06996000 PSAPCCAV EQU PSA+520 06997000 PSACPULA EQU PSA+518 06998000 PSACPUPA EQU PSA+516 06999000 PSAPSA EQU PSA+512 07000000 FLCHDEND EQU PSA+512 07001000 FLCCRSAV EQU FLCMCLA+280 07002000 FLCGRSAV EQU FLCMCLA+216 07003000 FLCFPSAV EQU FLCMCLA+184 07004000 FLCFLA EQU FLCMCLA+88 07005000 FLCRGNCD EQU FLCMCLA+84 07006000 FLCFSAA EQU FLCFSA+1 07007000 @NM00021 EQU FLCFSA 07008000 @NM00020 EQU FLCMCLA+72 07009000 FLCMCIC EQU FLCMCLA+64 07010000 @NM00019 EQU FLCMCLA+20 07011000 FLCIOAA EQU FLCIOA+1 07012000 @NM00018 EQU FLCIOA 07013000 @NM00017 EQU FLCMCLA+15 07014000 @NM00016 EQU FLCMCLA+14 07015000 @NM00015 EQU FLCMCLA+12 07016000 FLCLCL EQU FLCMCLA+8 07017000 FLCIOELA EQU FLCIOEL+1 07018000 @NM00014 EQU FLCIOEL 07019000 FLCCHNID EQU FLCMCLA 07020000 @NM00013 EQU PSA+160 07021000 FLCMTRCD EQU PSA+157 07022000 @NM00012 EQU PSA+156 07023000 FLCPERA EQU FLCPER+1 07024000 @NM00011 EQU FLCPER 07025000 @NM00010 EQU PSA+151 07026000 FLCPERCD EQU PSA+150 07027000 FLCMCNUM EQU PSA+149 07028000 @NM00009 EQU PSA+148 07029000 FLCTEAA EQU FLCTEA+1 07030000 @NM00008 EQU FLCTEA 07031000 PSAPIPC EQU PSAPICOD 07032000 PSAPIMC EQU PSAPICOD 07033000 PSAPIPER EQU PSAPICOD 07034000 PSARV049 EQU FLCPICOD 07035000 FLCPILCB EQU FLCPIILC 07036000 @NM00007 EQU FLCPIILC 07037000 @NM00006 EQU PSAEPPSW 07038000 FLCSVCN EQU PSAESPSW+2 07039000 FLCSILCB EQU FLCSVILC 07040000 @NM00005 EQU FLCSVILC 07041000 @NM00004 EQU PSAESPSW 07042000 FLCEICOD EQU PSAEEPSW+2 07043000 PSASPAD EQU PSAEEPSW 07044000 @NM00003 EQU PSA+128 07045000 FLCINPSW EQU PSA+120 07046000 FLCMNPSW EQU PSA+112 07047000 FLCPNPSW EQU PSA+104 07048000 FLCSNPSW EQU PSA+96 07049000 FLCENPSW EQU PSA+88 07050000 FLCTRACE EQU PSA+84 07051000 FLCTIMER EQU PSA+80 07052000 FLCCVT2 EQU PSA+76 07053000 FLCCAW EQU PSA+72 07054000 FLCCSW EQU PSA+64 07055000 FLCIOPSW EQU PSA+56 07056000 FLCMOPSW EQU PSA+48 07057000 FLCPOPSW EQU PSA+40 07058000 FLCSOPSW EQU PSA+32 07059000 FLCEOPSW EQU PSA+24 07060000 @NM00002 EQU FLCICCW2+4 07061000 FLCICCW1 EQU FLCROPSW 07062000 FLCIPPSW EQU FLCRNPSW 07063000 .@UNREFD ANOP END UNREFERENCED COMPONENTS 07064000 @RT00117 EQU NXTPCB 07065000 @RT00126 EQU GFAPUT 07066000 @RT00141 EQU TESTDFSP 07067000 @RF00143 EQU @RC00139 07068000 @RT00198 EQU DEFERXIT 07069000 @RF00409 EQU @RC00400 07070000 @RC00478 EQU @RC00476 07071000 @RC00481 EQU @RC00476 07072000 @RT00513 EQU PCBPROC 07073000 @RT00578 EQU RETCDEQ4 07074000 @RT00582 EQU RETCDEQ4 07075000 @RT00585 EQU RETCDEQ4 07076000 @RT00592 EQU TESTDFSP 07077000 @RT00594 EQU RETCDEQ4 07078000 @RF00605 EQU @RC00590 07079000 @RT00655 EQU RETCDEQ4 07080000 @RT00664 EQU RELATE 07081000 @RT00667 EQU BUMPFIX 07082000 @RT00672 EQU BUMPFIX 07083000 @RF00676 EQU RELATE 07084000 @RT00703 EQU NOCHANGE 07085000 @RT00791 EQU RECDISP0 07086000 @RF00791 EQU RELATE 07087000 @RT00797 EQU CODABEND 07088000 @RT00827 EQU IMMTEST 07089000 @RF00877 EQU RETCDEQ4 07090000 @RT00895 EQU VALIDATE 07091000 @RF00871 EQU IMMRLATE 07092000 @RF00973 EQU RETCDEQ0 07093000 @RC00978 EQU RETCDEQ0 07094000 @RT00992 EQU INSTEXIT 07095000 @RT01130 EQU SCHEDPCB 07096000 @RT01143 EQU PCBDISPB 07097000 @RF01190 EQU SCHEDPCB 07098000 @RT01334 EQU GFADEXIT 07099000 @RF01334 EQU TESTASCB 07100000 @RF01331 EQU DQTHEPCB 07101000 @RF01324 EQU GFADEXIT 07102000 @ENDDATA EQU * 07103000 END IEAVGFA,(C'PLS1255',0701,78164) 07104000