TITLE 'ILRCMP, I/O COMPLETE *00001000 ' 00002000 ILRCMP CSECT 00003000 USING *,R15 00004000 MODID 00005000 BALR R7,0 00006000 BASEADD DS 0H 00007000 USING *,R7 00008000 DROP R15 00009000 * R9=R1; /* SAVE IOSB ADDRESS */ 00010000 LR R9,R1 0171 00011000 * R8=ATAMCMP; /* TELL SETUP WHO WE ARE */ 00012000 LA R8,12 0172 00013000 * R10=R14; /* SAVE RETURN ADDRESS */ 00014000 LR R10,R14 0173 00015000 * RFY 0174 00016000 * (R1, 0174 00017000 * R8, 0174 00018000 * R9, 0174 00019000 * R14) UNRSTD; 0174 00020000 * CALL SETUP; /* SET RECOVERY AND INITIALIZE */ 00021000 BAL @14,SETUP 0175 00022000 * GEN REFS(R6)(USING @DATD,R6); 0176 00023000 USING @DATD,R6 00024000 * RTNADRX=R10; /* SAVE RETURN ADDR */ 00025000 ST R10,RTNADRX 0177 00026000 * RFY 0178 00027000 * R10 UNRSTD; 0178 00028000 * IF IOSCOD=IOSABNC THEN /* 45- ABEND IN IOS OR APPENDAGE?*/ 00029000 L @12,IOSBPTR 0179 00030000 CLI IOSCOD(@12),X'45' 0179 00031000 BNE @RF00179 0179 00032000 * CALL ABNMTERM; /* MARK EVERY AIA RETRY + FREE 0180 00033000 * P/SCCWS */ 00034000 * 0180 00035000 BAL @14,ABNMTERM 0180 00036000 * /*****************************************************************/ 00037000 * /* */ 00038000 * /* NOT 45- THERE SHOULD BE NO P/SCCWS ON IORB AT THIS POINT. IF */ 00039000 * /* THERE ARE IT MEANS ION WAS ENTERED WITH WHAT WE CONSIDER AN */ 00040000 * /* ERROR (WRL OR UE) WITHOUT THE IOSEX BIT ON. THIS SHOULD NEVER */ 00041000 * /* HAPPEN- THEREFORE ABEND IF SO AND IOC WILL BE AGAIN ENTERED */ 00042000 * /* THIS TIME WITH CODE 45 FROM IOS FRR + THESE AIAS WILL THEN BE */ 00043000 * /* MARKED RETRY */ 00044000 * /* */ 00045000 * /*****************************************************************/ 00046000 * 0181 00047000 * ELSE 0181 00048000 * IF IORPCCW^=0 THEN /* DID THE CANT-HAPPEN HAPPEN? */ 00049000 B @RC00179 0181 00050000 @RF00179 L @12,IORBPTR 0181 00051000 L @12,IORPCCW(,@12) 0181 00052000 LTR @12,@12 0181 00053000 BZ @RF00181 0181 00054000 * DO; /* I STILL DONT BELIEVE IT */ 00055000 * ATARCODE=CANTHAPN; /* SET REASON CODE FOR ABEND */ 00056000 MVI ATARCODE(ATAPTR),X'04' 0183 00057000 * RFY 0184 00058000 * R1 RSTD; 0184 00059000 * GEN(ABEND X'084',,,SYSTEM);/* IOC01 HERE I COME */ 00060000 ABEND X'084',,,SYSTEM 00061000 * RFY 0186 00062000 * R1 UNRSTD; 0186 00063000 * END; 0187 00064000 * ELSE 0188 00065000 * ; /* THE CANT-HAPPEN DIDNT HAPPEN- 00066000 * NOTHING LEFT ON IORB */ 00067000 * 0188 00068000 @RF00181 DS 0H 0189 00069000 * /*****************************************************************/ 00070000 * /* */ 00071000 * /* CLEAN UP AND UNCONDITIONALLY RESCHED PART MONITOR OR SWAP */ 00072000 * /* DRIVER IF CAN. NOT TESTING FOR WORK TO DO SINCE THIS IS AN */ 00073000 * /* ERROR PATH. */ 00074000 * /* */ 00075000 * /*****************************************************************/ 00076000 * 0189 00077000 * ATAIOSB=0; /* TELL RECOVERY WERE CLOSING 0189 00078000 * DOWN */ 00079000 @RC00179 SLR @12,@12 0189 00080000 ST @12,ATAIOSB(,ATAPTR) 0189 00081000 * IORFUSE=OFF; /* MAKE THIS IORB AVAILABLE */ 00082000 L @12,IORBPTR 0190 00083000 NI IORFUSE(@12),B'01111111' 0190 00084000 * IF IORSWAP=ON THEN /* WAS THAT A SWAP OPERATION? */ 00085000 TM IORSWAP(@12),B'00001000' 0191 00086000 BNO @RF00191 0191 00087000 * DO; /* YES- UNCOND SCHED SWAP DRVR IF 00088000 * CAN */ 00089000 * RFY 0193 00090000 * (R0, 0193 00091000 * R1) RSTD; 0193 00092000 * R0=ONE; /* VALUE TO REPLACE IF WE CAN 0194 00093000 * SCHEDULE */ 00094000 LA R0,1 0194 00095000 * R1=0; /* VALUE TO CHECK TO ALLOW A 0195 00096000 * SCHEDULE */ 00097000 SLR R1,R1 0195 00098000 * CS(R1,R0,SARSRBCT); 0196 00099000 L @12,SARTPTR 0196 00100000 CS R1,@00,SARSRBCT(@12) 0196 00101000 * BC(NE,SWPNOSC1); /* IF ALREADY ONE OUT- CANT 0197 00102000 * SCHEDULE */ 00103000 BC 7,SWPNOSC1 0197 00104000 */* CAN SCHEDULE- DO IT */ 00105000 * 0198 00106000 * R1=SARSRBP; /* SWAP DRIVER SRB */ 00107000 L @12,SARTPTR 0198 00108000 L R1,SARSRBP(,@12) 0198 00109000 * RFY 0199 00110000 * R15 RSTD; 0199 00111000 * GEN REFS(R1) SETS(R0,R15)(SCHEDULE SRB=(1),SCOPE=GLOBAL); 0200 00112000 SCHEDULE SRB=(1),SCOPE=GLOBAL 00113000 *SWPNOSC1: 0201 00114000 * RFY 0201 00115000 * (R0, 0201 00116000 * R1, 0201 00117000 * R15) UNRSTD; 0201 00118000 SWPNOSC1 DS 0H 0202 00119000 * END; /* END SCHED SWAP DRIVER */ 00120000 * ELSE /* NOT SWAP- PAGE */ 00121000 * DO; /* DO SPECIAL PAGE CLEANUP AND 0203 00122000 * UNCOND SCHED SWAP DRVR, IF CAN*/ 00123000 B @RC00191 0203 00124000 @RF00191 DS 0H 0204 00125000 * RFY 0204 00126000 * (R0, 0204 00127000 * R1) RSTD; 0204 00128000 * R0=ASMIOCNT; /* GET CURRENT CT STARTIOS NOT 0205 00129000 * COMPLETE */ 00130000 L R0,ASMIOCNT(,ASMVTPTR) 0205 00131000 *RETRYCT1: 0206 00132000 * R1=R0-ONE; /* DECR BY 1- THIS STARTIO 0206 00133000 * COMPLETE */ 00134000 RETRYCT1 LR R1,R0 0206 00135000 BCTR R1,0 0206 00136000 * CS(R0,R1,ASMIOCNT); /* STORE NEW CT */ 00137000 CS R0,@01,ASMIOCNT(ASMVTPTR) 0207 00138000 * BC(NE,RETRYCT1); 0208 00139000 BC 7,RETRYCT1 0208 00140000 * R0=ONE; /* VALUE TO REPLACE IF WE CAN 0209 00141000 * SCHEDULE */ 00142000 LA R0,1 0209 00143000 * R1=0; /* VALUE TO CHECK TO ALLOW A 0210 00144000 * SCHEDULE */ 00145000 SLR R1,R1 0210 00146000 * CS(R1,R0,ASMSRBCT); 0211 00147000 CS R1,@00,ASMSRBCT(ASMVTPTR) 0211 00148000 * BC(NE,PTMNOSC1); /* IF ALREADY ONE OUT- CANT 0212 00149000 * SCHEDULE */ 00150000 BC 7,PTMNOSC1 0212 00151000 */* CAN SCHEDULE- DO IT */ 00152000 * 0213 00153000 * R1=ASMPSRB; /* SET ADDR OF PTMS SRB */ 00154000 L R1,ASMPSRB(,ASMVTPTR) 0213 00155000 * RFY 0214 00156000 * R15 RSTD; 0214 00157000 * GEN REFS(R1) SETS(R0,R15)(SCHEDULE SRB=(1),SCOPE=GLOBAL); 0215 00158000 SCHEDULE SRB=(1),SCOPE=GLOBAL 00159000 *PTMNOSC1: 0216 00160000 * RFY 0216 00161000 * (R0, 0216 00162000 * R1, 0216 00163000 * R15) UNRSTD; 0216 00164000 PTMNOSC1 DS 0H 0217 00165000 * END; /* END SPECIAL PAGE CLEANUP AND 00166000 * SCHED PTM */ 00167000 * 0217 00168000 * /*****************************************************************/ 00169000 * /* */ 00170000 * /* EXIT TO DISPATCHER FROM PGAD */ 00171000 * /* */ 00172000 * /*****************************************************************/ 00173000 * 0218 00174000 * CALL CLEANUP; /* REMOVE RECOVERY */ 00175000 @RC00191 BAL @14,CLEANUP 0218 00176000 * RFY 0219 00177000 * R14 RSTD; 0219 00178000 * R14=RTNADRX; /* RESTORE RETURN ADDR */ 00179000 L R14,RTNADRX 0220 00180000 * RFY 0221 00181000 * R14 UNRSTD; 0221 00182000 * RETURN; /* RETURN TO DISPATCHER */ 00183000 @EL00001 DS 0H 0222 00184000 @EF00001 DS 0H 0222 00185000 @ER00001 BR @14 0222 00186000 * 0223 00187000 */********************************************************************/ 00188000 */* */ 00189000 */* ILRCMPDI - DISABLED INTERRUPT EXIT */ 00190000 */* */ 00191000 */* INPUT - R2 = IOSB ADDRESS */ 00192000 */* R7 = UCB ADDRESS (NOT USED) */ 00193000 */* R13 = 64 BYTE SAVEAREA ADDRESS */ 00194000 */* (REGISTERS 0, 3-6, 8-12 MUST NOT BE DESTROYED BY DIE) */ 00195000 */* */ 00196000 */* PROCESS - PROCESS I/O COMPLETIONS ON ALL GOOD I/O. COMPUTE */ 00197000 */* A NEW SERVICE BURST IF POSSIBLE. RESCHEDULE SWAP */ 00198000 */* DRIVER OR PART MONITOR IF NECESSARY. */ 00199000 */* */ 00200000 */* OUTPUT - NONE */ 00201000 */* */ 00202000 */********************************************************************/ 00203000 */*ILRCMPDI: CHART (AREF) */ 00204000 */* HEADER 0223 00205000 */* DISABLED INTERRUPT EXIT 0223 00206000 */*ILRCMPDI */ 00207000 */*ILRCMPDI: E DISABLED INTERRUPT EXIT */ 00208000 */* N INPUT: R2= IOSB@, R7= UCB@,R13= SAVEAREA ADDR */ 00209000 */* P SAVE REGS IN 16 WORD SAVEAREA (R13) */ 00210000 */* P SET UP MODULE ADDRESSABILITY */ 00211000 */* P SAVE IOSB ADDR */ 00212000 */* P SET MODID IN REG FOR SETUP */ 00213000 */* S SETUP: SET FRR, WORKAREA + ADDRESSABILITY */ 00214000 */* D (YES,,NO,%F1) 1ST ENTRY TO DIE? IOSDIESE */ 00215000 */* P STORE IOC TOD VALUE */ 00216000 */* D (YES,%T2,NO,) STORE CLOCK OK? */ 00217000 */* P ZERO SRT TOD VALUE- NO NEW BURST */ 00218000 */*%T2: D (YES,%T3,NO,) I/O SUCCESSFUL? CE DE CUE & IOSERR=0 */ 00219000 */* P (,%CLEAN) SET RETURN VECTOR 0 IN R15 */ 00220000 */*%T3: P INDICATE NO ERRORS IORERR =0 */ 00221000 */* S PROCCCWS: PROCESS GOOD PCCWS */ 00222000 */*%F2: S POSTCMP: RETURN P/SCCWS AND AIAS */ 00223000 */* S COMPBRST: COMPUTE NEW SERVICE BURST */ 00224000 */* P SET RETURN VECTOR TO 8 IN R15 */ 00225000 */*%CLEAN: S CLEANUP: REMOVE FRR FROM STACK */ 00226000 */* R RETURN ON R14 + R15 */ 00227000 */*%F1: N CLEANUP AND CHECK FOR SCHEDULE OF PART MON OR SWAP DRVR */ 00228000 */* D (PAG,,SWP,%S1) PAGE OR SWAP? IORSWAP */ 00229000 */* P DEC CT OF STARTIOS NOT COMPLETE (C+S) ASMIOCNT */ 00230000 */* P *** FRR *** ZERO ATAIOSB */ 00231000 */* P MARK IORB AVAILABLE (IORFUSE) */ 00232000 */* N DETERMINE WHETHER NECESSARY TO RESCHED PTM- */ 00233000 */* D (YES,,NO,%FREE) ANOTHER SCHED OF PTM REQD? */ 00234000 */* D (YES,%FREE,NO,) PTM ALREADY SCHED? (C+S) ASMSRBCT */ 00235000 */* L SCHEDULE: ILRPTM */ 00236000 */*%FREE: P (,%CLEAN) SET VECTOR 0 IN R15 */ 00237000 */*%S1: P *** FRR *** ZERO ATAIOSB */ 00238000 */* P MARK IORB AVAILABLE (IORFUSE) */ 00239000 */* N SWAP DATA SET- DETERMINE WHETHER NEED TO RESCHED SWAP DRVR */ 00240000 */* D (YES,,NO,%FREE) WORK TO DO? IORSARTE-> SRESCCW */ 00241000 */* D (YES,%FREE,NO,) SWP ALREADY SCHED? (C+S) SARSRBCT */ 00242000 */* L (,%FREE) SCHEDULE: ILRSWPDR */ 00243000 */*ILRCMPDI: END */ 00244000 * 0223 00245000 *ILRCMPDI: 0223 00246000 * PROC OPTIONS(NOSAVE,NOSAVEAREA,RETREG); 0223 00247000 ILRCMPDI DS 0H 0224 00248000 * GENERATE; 0224 00249000 ENTRY ILRCMPDI 00250000 STM R0,R15,0(R13) 00251000 BALR R7,0 00252000 IODBASE LA R9,IODBASE-BASEADD 00253000 SR R7,R9 00254000 * RFY 0225 00255000 * (R2, 0225 00256000 * R8, 0225 00257000 * R9) RSTD; 0225 00258000 * R9=R2; /* SAVE IOSB ADDR FOR SETUP 0226 00259000 * SUBRTN */ 00260000 LR R9,R2 0226 00261000 * R8=ATAMCMPD; /* SET MODID FOR SETUP SUBRTN */ 00262000 LA R8,9 0227 00263000 * RFY 0228 00264000 * (R2, 0228 00265000 * R8, 0228 00266000 * R9) UNRSTD; 0228 00267000 * CALL SETUP; /* SET RECOVERY AND INITIALIZE */ 00268000 BAL @14,SETUP 0229 00269000 * GEN REFS(R6)(USING @DATD,R6); 0230 00270000 USING @DATD,R6 00271000 * DIEIOSSA=R13; /* SAVE IOS DIE SAVEAREA ADDR */ 00272000 LR DIEIOSSA,R13 0231 00273000 * IF IOSDIESE=OFF THEN /* 1ST ENTRY TO DIE? */ 00274000 * 0232 00275000 L @12,IOSBPTR 0232 00276000 TM IOSDIESE(@12),B'10000000' 0232 00277000 BNZ @RF00232 0232 00278000 * /***************************************************************/ 00279000 * /* */ 00280000 * /* FIRST ENTRY TO DIE */ 00281000 * /* */ 00282000 * /***************************************************************/ 00283000 * 0233 00284000 * DO; 0233 00285000 * GEN SETS(IOCTOD)(STCK IOCTOD);/* STORE CURRENT TOD */ 00286000 STCK IOCTOD 00287000 * BC(EQ,GOODTIME); /* STCK OK? */ 00288000 BC 8,GOODTIME 0235 00289000 * IORTSMP=''B; /* NO- ZERO SLOTSORT TOD SO 0236 00290000 * COMPBURST WONT COMPUTE NEW 0236 00291000 * BURST */ 00292000 L @12,IORBPTR 0236 00293000 XC IORTSMP(8,@12),IORTSMP(@12) 0236 00294000 *GOODTIME: 0237 00295000 * ; 0237 00296000 * 0237 00297000 GOODTIME DS 0H 0238 00298000 * /*************************************************************/ 00299000 * /* */ 00300000 * /* DETERMINE WHETHER I/O SUCCESSFUL- ONLY CE DE OR CUE CAN BE*/ 00301000 * /* ON IN CSWSTATUS */ 00302000 * /* */ 00303000 * /*************************************************************/ 00304000 * 0238 00305000 * IF IOSERR=OFF THEN /* WAS ERP NOT IN PROCESS 0238 00306000 * @Z40WPWP*/ 00307000 L @12,IOSBPTR 0238 00308000 TM IOSERR(@12),B'00100000' 0238 00309000 BNZ @RF00238 0238 00310000 * DO; /* YES, SEE IF I/O IS CLEAN 0239 00311000 * @Z40WPWP*/ 00312000 * RFY 0240 00313000 * R12 RSTD; /* @Z40WPWP*/ 00314000 * R12=ADDR(IOSB); /* SET UP TO TEST IOSTATUS 0241 00315000 * @Z40WPWP*/ 00316000 L @08,IOSBPTR 0241 00317000 LR R12,@08 0241 00318000 * GEN REFS(IOSTSA,IOSTSB) FLOWS(NOTCLEAN); 0242 00319000 * /*@Z40WPWP*/ 00320000 TM IOSTSA(R12),BADDEVST BITS ON OTHER THAN CUE,CE @Z40WPWP 00321000 * OR DE IN DEVICE STATUS @Z40WPWP 00322000 BNZ NOTCLEAN YES, LET POST STATUS HANDLE @Z40WPWP 00323000 TM IOSTSB(R12),BADCHNST ANY BITS ON IN CHANNEL @Z40WPWP 00324000 * STATUS @Z40WPWP 00325000 BNZ NOTCLEAN YES, LET POST STATUS HANDLE @Z40WPWP 00326000 * RFY 0243 00327000 * R12 UNRSTD; /* @Z40WPWP*/ 00328000 * 0243 00329000 * /*********************************************************/ 00330000 * /* */ 00331000 * /* THE I/O IS CLEAN SO PROCESS IT HERE @Z40WPWP*/ 00332000 * /* */ 00333000 * /*********************************************************/ 00334000 * 0244 00335000 * IORFDI=ON; /* INDICATE DIE IS PROCESSING 0244 00336000 * THIS COMPLETION */ 00337000 L @12,IORBPTR 0244 00338000 OI IORFDI(@12),B'00000100' 0244 00339000 * IORERR=0; /* INDICATE NO ERRORS */ 00340000 SLR @08,@08 0245 00341000 ST @08,IORERR(,@12) 0245 00342000 * CALL PROCCCWS; /* PROCESS GOOD P/SCCWS */ 00343000 BAL @14,PROCCCWS 0246 00344000 * CALL POSTCMP; /* FREE P/SCCWS AND POST BACK 0247 00345000 * AIAS TO PAGE COMPLETION */ 00346000 BAL @14,POSTCMP 0247 00347000 * CALL COMPBRST; /* COMPUTE NEW SERVICE BURST */ 00348000 BAL @14,COMPBRST 0248 00349000 * RFY 0249 00350000 * R15 RSTD; 0249 00351000 * R15=IGNORE; /* INDICATE FINISHED WITH THIS 0250 00352000 * IOSB WHEN RETURN TO IOS */ 00353000 LA R15,8 0250 00354000 * END; /* END SEE IF I/O IS CLEAN 0251 00355000 * @Z40WPWP*/ 00356000 * ELSE /* NOT CLEAN I/O- */ 00357000 * DO; /* FIND ERROR P/SCCW AND UPDATE 00358000 * SEEK ADDRESS IN IOSB IN CASE 00359000 * THIS IS THE SECOND TEMPORARY 00360000 * ERROR RECEIVED FOR THIS STRING 00361000 * OF P/SCCWS @ZA18116*/ 00362000 B @RC00238 0252 00363000 @RF00238 DS 0H 0253 00364000 * IF IOSCC^=IOSCC1 THEN /* IF CC=1 FROM SIO, DON'T UPDATE 00365000 * SEEK ADDRESS @ZA30982*/ 00366000 L @14,IOSBPTR 0253 00367000 CLI IOSCC(@14),X'10' 0253 00368000 BE @RF00253 0253 00369000 * DO; /* @ZA30982*/ 00370000 * CALL LOCATECP; /* FIND ERROR P/SCCW @ZA18116*/ 00371000 BAL @14,LOCATECP 0255 00372000 * IOSEEK=IORERR->PCCWCHHR;/* UPDATE IOSB STATIC SEEK 0256 00373000 * ADDRESS @ZA28705*/ 00374000 L @14,IOSBPTR 0256 00375000 L @12,IORBPTR 0256 00376000 L @12,IORERR(,@12) 0256 00377000 MVC IOSEEK(8,@14),PCCWCHHR(@12) 0256 00378000 * IOSEEKA=IOSEEK; /* UPDATE IOSB DYNAMIC SEEK 0257 00379000 * ADDRESS @ZA28705*/ 00380000 MVC IOSEEKA(8,@14),IOSEEK(@14) 0257 00381000 * END; /* @ZA30982*/ 00382000 *NOTCLEAN: /* CAN BRANCH HERE FROM GEND 'TM' 00383000 * IN DO ABOVE @Z40WPWP*/ 00384000 * R15=PURSUE; /* INDICATE POST STATUS TO HANDLE 00385000 * THIS ONE */ 00386000 @RF00253 DS 0H 0259 00387000 NOTCLEAN SLR R15,R15 0259 00388000 * END; /* END IOSB SEEK ADDRESS UPDATE 00389000 * @ZA18116*/ 00390000 * END; /* END FIRST ENTRY TO DIE */ 00391000 * 0262 00392000 * /*****************************************************************/ 00393000 * /* */ 00394000 * /* SECOND ENTRY TO DIE- CLEANUP AND CHECK FOR POSSIBLE SCHEDULE */ 00395000 * /* OF PART MONITOR OR SWAP DRIVER */ 00396000 * /* */ 00397000 * /*****************************************************************/ 00398000 * 0262 00399000 * ELSE /* NOT 1ST ENTRY TO DIE- SECOND 00400000 * ENTRY */ 00401000 * DO; 0262 00402000 B @RC00232 0262 00403000 @RF00232 DS 0H 0263 00404000 * IF IORSWAP=ON THEN /* WAS THAT A SWAP OPERATION? */ 00405000 L @14,IORBPTR 0263 00406000 TM IORSWAP(@14),B'00001000' 0263 00407000 BNO @RF00263 0263 00408000 * DO; /* YES- UNCHECKPOINT AND SCHED 0264 00409000 * SWAP DRVR IF NECESSARY */ 00410000 * ATAIOSB=0; /* INDICATE TO RECOVERY WERE 0265 00411000 * CLOSING DOWN */ 00412000 SLR @12,@12 0265 00413000 ST @12,ATAIOSB(,ATAPTR) 0265 00414000 * IORFUSE=OFF; /* MAKE THIS IORB AVAILABLE- THIS 00415000 * MUST BE DONE AFTER ZEROING 0266 00416000 * ATAIOSB FOR RECOV */ 00417000 NI IORFUSE(@14),B'01111111' 0266 00418000 * IF SRESCCW^=0 THEN /* WORK TO DO? */ 00419000 L @14,SAREPTR 0267 00420000 C @12,SRESCCW(,@14) 0267 00421000 BE @RF00267 0267 00422000 * DO; /* YES- SCHED SWAP DRVR IF CAN */ 00423000 * RFY 0269 00424000 * (R0, 0269 00425000 * R1) RSTD; 0269 00426000 * R0=ONE; /* VALUE TO REPLACE IF WE CAN 0270 00427000 * SCHEDULE */ 00428000 LA R0,1 0270 00429000 * R1=0; /* VALUE TO CHECK TO ALLOW A 0271 00430000 * SCHEDULE */ 00431000 SLR R1,R1 0271 00432000 * CS(R1,R0,SARSRBCT); 0272 00433000 L @14,SARTPTR 0272 00434000 CS R1,@00,SARSRBCT(@14) 0272 00435000 * BC(NE,SWPNOSCH); /* IF ALREADY ONE OUT- CANT 0273 00436000 * SCHEDULE */ 00437000 BC 7,SWPNOSCH 0273 00438000 */* CAN SCHEDULE- DO IT */ 00439000 * 0274 00440000 * R1=SARSRBP; /* SET ADDR OF SWP DRVRS SRB */ 00441000 L @14,SARTPTR 0274 00442000 L R1,SARSRBP(,@14) 0274 00443000 * RFY 0275 00444000 * R15 RSTD; 0275 00445000 * GEN REFS(R1) SETS(R0,R15) 0276 00446000 * (SCHEDULE SRB=(1),SCOPE=GLOBAL); 0276 00447000 SCHEDULE SRB=(1),SCOPE=GLOBAL 00448000 *SWPNOSCH: 0277 00449000 * RFY 0277 00450000 * (R0, 0277 00451000 * R1, 0277 00452000 * R15) UNRSTD; 0277 00453000 SWPNOSCH DS 0H 0278 00454000 * END; /* END SCHED SWP DRVR IF CAN */ 00455000 * ELSE 0279 00456000 * ; /* NO WORK TO DO FOR SWAP DRVR */ 00457000 @RF00267 DS 0H 0280 00458000 * END; /* END UNCHECKPT AND SCHED SWAP 00459000 * DRVR */ 00460000 * ELSE /* NOT SWAP- PAGING */ 00461000 * DO; /* DEC CTS AND CHECK FOR SCHED OF 00462000 * PTM */ 00463000 * 0281 00464000 B @RC00263 0281 00465000 @RF00263 DS 0H 0282 00466000 * /*********************************************************/ 00467000 * /* */ 00468000 * /* DECREMENT COUNT OF STARTIOS NOT COMPLETE */ 00469000 * /* */ 00470000 * /*********************************************************/ 00471000 * 0282 00472000 * RFY 0282 00473000 * (R0, 0282 00474000 * R1) RSTD; 0282 00475000 * R0=ASMIOCNT; /* GET CURRENT COUNT */ 00476000 L R0,ASMIOCNT(,ASMVTPTR) 0283 00477000 *RETRYCNT: 0284 00478000 * R1=R0-ONE; /* DECREMENT BY 1- THIS STARTIO 00479000 * COMPLETE */ 00480000 RETRYCNT LR R1,R0 0284 00481000 BCTR R1,0 0284 00482000 * CS(R0,R1,ASMIOCNT); /* STORE NEW CT */ 00483000 CS R0,@01,ASMIOCNT(ASMVTPTR) 0285 00484000 * BC(NE,RETRYCNT); 0286 00485000 BC 7,RETRYCNT 0286 00486000 * ATAIOSB=0; /* INDICATE TO RECOVERY WERE 0287 00487000 * CLOSING DOWN */ 00488000 SLR @12,@12 0287 00489000 ST @12,ATAIOSB(,ATAPTR) 0287 00490000 * IORFUSE=OFF; /* MAKE THIS IORB AVAILABE- THIS 00491000 * MUST BE DONE AFTER ZEROING 0288 00492000 * ATAIOSB FOR RECOV */ 00493000 * 0288 00494000 L @08,IORBPTR 0288 00495000 NI IORFUSE(@08),B'01111111' 0288 00496000 * /*********************************************************/ 00497000 * /* */ 00498000 * /* IF THERE IS WORK TO DO- SCHEDULE PART MONITOR IF CAN. */ 00499000 * /* */ 00500000 * /*********************************************************/ 00501000 * 0289 00502000 * IF ASMIORQR^=ASMIORQC& /* ANY REQUESTS OUTSTANDING */ 00503000 * ASMIOCNT=0 THEN /* AND NO I/O IN PROGRESS */ 00504000 CLC ASMIORQR(4,ASMVTPTR),ASMIORQC(ASMVTPTR) 0289 00505000 BE @RF00289 0289 00506000 C @12,ASMIOCNT(,ASMVTPTR) 0289 00507000 BNE @RF00289 0289 00508000 * DO; /* YES- WORK TO DO FOR PTM- 0290 00509000 * RESCHED IF CAN */ 00510000 * R0=ONE; /* VALUE TO REPLACE IF WE CAN 0291 00511000 * SCHEDULE */ 00512000 LA R0,1 0291 00513000 * R1=0; /* VALUE TO CHECK TO ALLOW A 0292 00514000 * SCHEDULE */ 00515000 SLR R1,R1 0292 00516000 * CS(R1,R0,ASMSRBCT); 0293 00517000 CS R1,@00,ASMSRBCT(ASMVTPTR) 0293 00518000 * BC(NE,PTMNOSCH); /* IF ALREADY ONE OUT- CANT 0294 00519000 * SCHEDULE */ 00520000 BC 7,PTMNOSCH 0294 00521000 */* CAN SCHEDULE- DO IT */ 00522000 * 0295 00523000 * R1=ASMPSRB; /* SET ADDR OF PTMS SRB */ 00524000 L R1,ASMPSRB(,ASMVTPTR) 0295 00525000 * RFY 0296 00526000 * R15 RSTD; 0296 00527000 * GEN REFS(R1) SETS(R0,R15) 0297 00528000 * (SCHEDULE SRB=(1),SCOPE=GLOBAL); 0297 00529000 SCHEDULE SRB=(1),SCOPE=GLOBAL 00530000 *PTMNOSCH: 0298 00531000 * RFY 0298 00532000 * (R0, 0298 00533000 * R1, 0298 00534000 * R15) UNRSTD; 0298 00535000 PTMNOSCH DS 0H 0299 00536000 * END; /* END WORK TO DO FOR PTM */ 00537000 * ELSE 0300 00538000 * ; /* NO WORK FOR PTM- NO NEED TO 0300 00539000 * SCHEDULE */ 00540000 @RF00289 DS 0H 0301 00541000 * END; /* END PAGING DEC CTS + CHECK 0301 00542000 * RESCHED */ 00543000 * RFY 0302 00544000 * R15 RSTD; 0302 00545000 @RC00263 DS 0H 0303 00546000 * R15=PURSUE; /* ON EXIT FROM 2ND DIE ENTRY- GO 00547000 * BACK ON VEC 0 */ 00548000 SLR R15,R15 0303 00549000 * END; /* END PROCESSING FOR 2ND ENTRY 00550000 * TO DIE */ 00551000 * 0305 00552000 * /*****************************************************************/ 00553000 * /* */ 00554000 * /* DIE EXIT PROCESSING- DELETE RECOVERY AND RETURN TO IOS ON */ 00555000 * /* APPROPRIATE VECTOR */ 00556000 * /* */ 00557000 * /*****************************************************************/ 00558000 * 0305 00559000 * CALL CLEANUP; /* REMOVE RECOVERY */ 00560000 @RC00232 BAL @14,CLEANUP 0305 00561000 * R13=DIEIOSSA; /* RESTORE IOS DIE SAVEAREA ADDR */ 00562000 LR R13,DIEIOSSA 0306 00563000 * GEN REFS(R0,R13,R14,R15) EXIT NOSEQFLOW; 0307 00564000 LM R0,R14,0(R13) RESTORE IOS REGS 00565000 B 0(R15,R14) RETURN TO IOS PLUS VECTOR IN R15 00566000 * END ILRCMPDI; 0308 00567000 * 0309 00568000 */********************************************************************/ 00569000 */* */ 00570000 */* ILRCMPNE - NORMAL END APPENDAGE */ 00571000 */* */ 00572000 */* INPUT - REGISTER 1 CONTAINS ADDRESS OF IOSB */ 00573000 */* REGISTER 14 CONTAINS RETURN ADDRESS */ 00574000 */* */ 00575000 */* PROCESS - THIS ENTRY POINT GETS CONTROL FOR WRONG LENGTH */ 00576000 */* RECORD OR UNIT EXCEPTION, AND FOR SUCESSFUL RETRY BY ERP. */ 00577000 */* IF THE I/O IS GOOD IT IS PROCESSED, OTHERWISE RETURN IS */ 00578000 */* MADE TO POST STATUS ON VECTOR ZERO. IF IOSEX IS ON (ALWAYS */ 00579000 */* WILL BE WITH EXCEPTION OF HARDWARE MALFUNCTION), POST */ 00580000 */* STATUS WILL INVOKE DASD ERP. IF IOSEX SHOULD HAPPEN TO BE */ 00581000 */* OFF, THIS ERROR SITUATION WILL SPECIFICALLY BE CAUGHT IN */ 00582000 */* PGAD ENTRY- CMP. */ 00583000 */* */ 00584000 */* OUTPUT - NONE */ 00585000 */* */ 00586000 */********************************************************************/ 00587000 */*ILRCMPNE: CHART (AREF) */ 00588000 */* HEADER 0309 00589000 */* I/O COMPLETE - 0309 00590000 */*ILRCMPNE */ 00591000 */*ILRCMPNE: E NORMAL END APPENDAGE */ 00592000 */* N INPUT: R1 = IOSB@ */ 00593000 */* N THIS APPENDAGE GETS CONTROL FOR UE OR WLR- */ 00594000 */* D (NO,%EXIT,YES,) I/O GOOD (IOSTATUS) */ 00595000 */* S PROCCCWS: PROCESS PCCWS OR SCCWS */ 00596000 */* S POSTCMP: FREE PCCWS OR SCCWS */ 00597000 */* S CLEANUP: REMOVE RECOVERY */ 00598000 */*%EXIT: R RETURN TO POST STATUS - VECTOR 0 */ 00599000 */*ILRCMPNE: END */ 00600000 * 0309 00601000 *ILRCMPNE: 0309 00602000 * PROC OPTIONS(NOSAVE,NOSAVEAREA,RETREG); 0309 00603000 ILRCMPNE DS 0H 0310 00604000 * GENERATE; 0310 00605000 ENTRY ILRCMPNE 00606000 BALR R7,0 @Z40WPWP 00607000 IONBASE LA R15,IONBASE-BASEADD @Z40WPWP 00608000 SR R7,R15 PUT BASE VALUE IN BASE REG @Z40WPWP 00609000 * RFY 0311 00610000 * IOSB BASED(R1); /* @Z40WPWP*/ 00611000 * RFY 0312 00612000 * IORB BASED(IOSUSE); /* @Z40WPWP*/ 00613000 * 0312 00614000 * /*****************************************************************/ 00615000 * /* */ 00616000 * /* DETERMINE WHETHER I/O IS SUCCESSFUL - ONLY CUE, CE OR DE CAN */ 00617000 * /* BE ON IN IOSTATUS @Z40WPWP*/ 00618000 * /* */ 00619000 * /*****************************************************************/ 00620000 * 0313 00621000 * GEN REFS(IOSTSA,IOSTSB,R1); 0313 00622000 * 0313 00623000 * /*@Z40WPWP*/ 00624000 TM IOSTSA(R1),BADDEVST BITS ON OTHER THAN CUE,CE @Z40WPWP 00625000 * OR DE IN DEVICE STATUS @Z40WPWP 00626000 BNZR R14 YES, LEAVE FOR POST STATUS @Z40WPWP 00627000 TM IOSTSB(R1),BADCHNST ANY BITS ON IN CHAN STATUS @Z40WPWP 00628000 BNZR R14 YES, LEAVE FOR POST STATUS @Z40WPWP 00629000 * /*****************************************************************/ 00630000 * /* */ 00631000 * /* THE I/O IS CLEAN, NOW PROCESS THE COMPLETION HERE IN NORMAL */ 00632000 * /* END APPENDAGE @Z40WPWP*/ 00633000 * /* */ 00634000 * /*****************************************************************/ 00635000 * 0314 00636000 * RFY 0314 00637000 * (R0, 0314 00638000 * R1, 0314 00639000 * R2, 0314 00640000 * R3, 0314 00641000 * R4, 0314 00642000 * R5, 0314 00643000 * R14, 0314 00644000 * R15) RSTD; /* @Z40WPWP*/ 00645000 * STM(R0,R15,TEMPSAVE); /* SAVE POST STATUS REGS @Z40WPWP*/ 00646000 L @12,IOSUSE(,R1) 0315 00647000 L @11,IORSAVE(,@12) 0315 00648000 STM R0,R15,TEMPSAVE(@11) 0315 00649000 * RFY 0316 00650000 * (R0, 0316 00651000 * R2, 0316 00652000 * R3, 0316 00653000 * R4, 0316 00654000 * R5, 0316 00655000 * R14, 0316 00656000 * R15) UNRSTD; /* @Z40WPWP*/ 00657000 * IORFNE=ON; /* INDICATE NORMAL END IS 0317 00658000 * PROCESSING THIS COMPLETION 0317 00659000 * @Z40WPWP*/ 00660000 OI IORFNE(@12),B'00000010' 0317 00661000 * RFY 0318 00662000 * (R8, 0318 00663000 * R9) RSTD; /* @Z40WPWP*/ 00664000 * R9=R1; /* SAVE IOSB ADDR FOR SETUP 0319 00665000 * ROUTINE @Z40WPWP*/ 00666000 LR R9,R1 0319 00667000 * R8=ATAMCMPN; /* SET MODID FOR SETUP ROUTINE 0320 00668000 * @Z40WPWP*/ 00669000 LA R8,10 0320 00670000 * CALL SETUP; /* SET UP RECOVERY AND INITIALIZE 00671000 * @Z40WPWP*/ 00672000 BAL @14,SETUP 0321 00673000 * RFY 0322 00674000 * (R1, 0322 00675000 * R8, 0322 00676000 * R9) UNRSTD; /* @Z40WPWP*/ 00677000 * GEN REFS(R6)(USING @DATD,R6); /* @Z40WPWP*/ 00678000 USING @DATD,R6 00679000 * RFY 0324 00680000 * (IORB, 0324 00681000 * IOSB); /* @Z40WPWP*/ 00682000 * IORERR=0; /* INDICATE NO ERROR @Z40WPWP*/ 00683000 L @12,IORBPTR 0325 00684000 SLR @05,@05 0325 00685000 ST @05,IORERR(,@12) 0325 00686000 * CALL PROCCCWS; /* PROCESS GOOD PCCWS OR SCCWS 0326 00687000 * @Z40WPWP*/ 00688000 BAL @14,PROCCCWS 0326 00689000 * CALL POSTCMP; /* FREE PCCWS OR SCCWS AND POST 00690000 * BACK AIAS TO PAGE COMPLETION 00691000 * @Z40WPWP*/ 00692000 BAL @14,POSTCMP 0327 00693000 * CALL CLEANUP; /* REMOVE RECOVERY @Z40WPWP*/ 00694000 BAL @14,CLEANUP 0328 00695000 * RFY 0329 00696000 * (R0, 0329 00697000 * R14) RSTD; /* @Z40WPWP*/ 00698000 * LM(R0,R14,TEMPSAVE); /* RESTORE POST STATUS REGS 0330 00699000 * @Z40WPWP*/ 00700000 L @15,IORBPTR 0330 00701000 L @01,IORSAVE(,@15) 0330 00702000 LM R0,R14,TEMPSAVE(@01) 0330 00703000 * GEN REFS(R14) EXIT NOSEQFLOW(BR R14);/* RETURN TO POST STATUS 00704000 * ALWAYS ON VECTOR 0 @Z40WPWP*/ 00705000 BR R14 00706000 * RFY 0332 00707000 * (R0, 0332 00708000 * R14) UNRSTD; /* @Z40WPWP*/ 00709000 * END ILRCMPNE; 0333 00710000 * 0334 00711000 */********************************************************************/ 00712000 */* */ 00713000 */* ILRCMPAE - ABNORMAL END APPENDAGE */ 00714000 */* */ 00715000 */* INPUT - REGISTER 1 CONTAINS ADDRESS OF IOSB */ 00716000 */* REGISTER 14 CONTAINS RETURN ADDRESS */ 00717000 */* (REGISTERS 2-5 AND 13 MUST NOT BE DESTROYED) */ 00718000 */* */ 00719000 */* PROCESS - THE ABNORMAL END APPENDAGE HANDLES I/O COMPLETION */ 00720000 */* FOR ERROR SITUATIONS OTHER THAN WRONG LENGTH RECORD OR */ 00721000 */* UNIT EXCEPTION. IF THE ERROR IS DETERMINED TO BE TEMP- */ 00722000 */* ORARY, RETURN IS MADE TO POST STATUS TO INVOKE DASD ERP. */ 00723000 */* IF PERMANENT ERROR, ANY GOOD I/O PRECEEDING THE ERROR IS */ 00724000 */* PROCESSED AS IN THE DIE. ERROR COUNTS AND THE BAD SLOT */ 00725000 */* LIST ARE UPDATED AND THE ERROR P/SCCW IS PROCESSED. ANY */ 00726000 */* FURTHER WORK IS RETURNED TO IOS FOR REDRIVE THRU THE */ 00727000 */* CHANNEL SCHEDULER. IF THE PACK IS DETERMINED BAD, THE */ 00728000 */* PAGE/SWAP SPACE IS MARKED UNUSEABLE AND ALL THE P/SCCWS */ 00729000 */* ON THE CHAIN ARE PROCESSED AS BAD I/O. */ 00730000 */* */ 00731000 */* OUTPUT - NONE */ 00732000 */* */ 00733000 */********************************************************************/ 00734000 */*ILRCMPAE: CHART (AREF) */ 00735000 */* HEADER 0334 00736000 */* I/O COMPLETE - 0334 00737000 */*ILRCMPAE */ 00738000 */*ILRCMPAE: E ABNORMAL END APPENDAGE */ 00739000 */* N INPUT: R1 = IOSB@ */ 00740000 */* P SAVE IOSB ADDR */ 00741000 */* P SET MODID IN REG FOR SETUP */ 00742000 */* S SETUP: ESTABLISH FRR + WORKAREA ADDRESSABILITY */ 00743000 */* S LOCATECP: FIND START OF BAD CCWS */ 00744000 */* D (YES,,NO,%PERMERR) TEMPORARY ERROR? IOSCOD */ 00745000 */* P UPDATE SEEK ADDR IN IOSB FOR ERP ON RETRY */ 00746000 */* P (,IOAEXIT) SET RETURN VECTOR 0 IN R15 */ 00747000 */*%PERMERR: S PROCCCWS: PEEL OFF GOOD ONES TO SEND BACK */ 00748000 */* N NO PATH, CC3, PERM I/O ERROR- UNIT CHECK & EQUIP CHECK */ 00749000 */* N OR CHAN CHECKS OR > 176 ERRORS DEFINES PACK ERROR */ 00750000 */*%IOA10: D (YES,,NO,%IOA50) PACK ERROR? */ 00751000 */* D (YES,%T1,NO,) SWAP/ PAGE DS ALREADY MARKED BAD? */ 00752000 */* S BADPACK: MARK PAGE/SWAP SPACE UNUSABLE */ 00753000 */*%T1: N SET UP FOR CALL TO BAD SLOT FOR ENTIRE STRING */ 00754000 */* P REMOVE PCCWS/SCCWS FROM IORB- ZERO IOR P/SCCW PTR ATACPCCW */ 00755000 */* D (YES,,NO,%BS) WANT TO RECORD THIS? IOSCOD 41 */ 00756000 */* S (,%BS) RECERR: RECORD FIRST ONE IN BAD SLOT LIST */ 00757000 */*%IOA50: N NOT PACK ERROR - SLOT ERROR */ 00758000 */* N SET UP FOR CALL TO BADSLOT FOR SINGLE P/SCCW */ 00759000 */* P REMOVE ERROR P/SCCW, FROM IORB, ZERO CHAIN PTR ATACPCCW */ 00760000 */* D (YES,,NO,%F1) LOCAL PAGE DS? IORSWAP PARETYPE */ 00761000 */* P UPDATE ASMERRS (C+S) */ 00762000 */*%F1: P UPDATE PAGE/SWAP ERROR CT PARERRCT (C+S) */ 00763000 */* S RECERR: RECORD BAD SLOT LSID IN SQA BUFFER */ 00764000 */*%BS: S BADSLOT: PROCESS ALL ERROR P/SCCWS */ 00765000 */* D (YES,,NO,%IOA80) ANY P/SCCWS TO RETRY? */ 00766000 */* S RECHAIN: RECHAIN REQUESTS FOR RESTART */ 00767000 */* P SAVE RETURN VECTOR 8 */ 00768000 */*%PGCM: S (,%EXIT4) POSTCMP: RETURN P/SCCWS AND AIAS */ 00769000 */*%IOA80: P (,%PGCM) SAVE RETURN VECTOR 0 */ 00770000 */*%EXIT4: P INSURE DONT GO BACK TO ERP IOSEX */ 00771000 */* S CLEANUP: DELETE FRR */ 00772000 */* P SET SAVED VECTOR IN R15 */ 00773000 */*IOAEXIT: R RETURN TO POST STATUS ON R14 + R15 */ 00774000 */*ILRCMPAE: END */ 00775000 * 0334 00776000 *ILRCMPAE: 0334 00777000 * PROC OPTIONS(NOSAVE,NOSAVEAREA,RETREG); 0334 00778000 ILRCMPAE DS 0H 0335 00779000 * GENERATE; 0335 00780000 ENTRY ILRCMPAE 00781000 BALR R7,0 00782000 IOABASE LA R15,IOABASE-BASEADD 00783000 SR R7,R15 00784000 * RFY 0336 00785000 * (R1, 0336 00786000 * R14) RSTD; 0336 00787000 * RFY 0337 00788000 * IOSB BASED(R1); 0337 00789000 * RFY 0338 00790000 * IORB BASED(IOSUSE); 0338 00791000 * RFY 0339 00792000 * (R0, 0339 00793000 * R2, 0339 00794000 * R3, 0339 00795000 * R4, 0339 00796000 * R5, 0339 00797000 * R15) RSTD; 0339 00798000 * STM(R0,R15,TEMPSAVE); /* SAVE POST STATUS REGS */ 00799000 L @12,IOSUSE(,R1) 0340 00800000 L @12,IORSAVE(,@12) 0340 00801000 STM R0,R15,TEMPSAVE(@12) 0340 00802000 * RFY 0341 00803000 * (R0, 0341 00804000 * R2, 0341 00805000 * R3, 0341 00806000 * R4, 0341 00807000 * R5, 0341 00808000 * R14, 0341 00809000 * R15) UNRSTD; 0341 00810000 * RFY 0342 00811000 * (R8, 0342 00812000 * R9) RSTD; 0342 00813000 * R9=R1; /* SAVE IOSB ADDRESS FOR SETUP 0343 00814000 * SUBRTN */ 00815000 LR R9,R1 0343 00816000 * R8=ATAMCMPA; /* SET MODID FOR SETUP SUBRTN */ 00817000 LA R8,11 0344 00818000 * RFY 0345 00819000 * (R1, 0345 00820000 * R8, 0345 00821000 * R9) UNRSTD; 0345 00822000 * CALL SETUP; /* SET RECOVERY AND INITIALIZE */ 00823000 BAL @14,SETUP 0346 00824000 * GEN REFS(R6)(USING @DATD,R6); 0347 00825000 USING @DATD,R6 00826000 * RFY 0348 00827000 * (IORB, 0348 00828000 * IOSB); 0348 00829000 * CALL LOCATECP; /* FIND ERROR P/SCCW */ 00830000 BAL @14,LOCATECP 0349 00831000 * IORFAE=ON; /* INDICATE ABNORMAL END 0350 00832000 * APPENDAGE HANDLING THIS IORB 00833000 * @ZM43100*/ 00834000 L @12,IORBPTR 0350 00835000 OI IORFAE(@12),B'00000001' 0350 00836000 * CALL PROCCCWS; /* PROCESS GOOD P/SCCWS @ZM43100*/ 00837000 * 0351 00838000 BAL @14,PROCCCWS 0351 00839000 * /*****************************************************************/ 00840000 * /* */ 00841000 * /* * IF A TEMPORARY ERROR SET UP TO RETRY FROM THE BAD P/SCCW, */ 00842000 * /* POST THE GOOD I/O AND RETURN @ZM43100*/ 00843000 * /* */ 00844000 * /*****************************************************************/ 00845000 * 0352 00846000 * IF IOSECB3=SEVENX THEN /* TEMPORARY ERROR? IOSCOD */ 00847000 L @12,IOSBPTR 0352 00848000 TM IOSECB3(@12),B'01110000' 0352 00849000 BNO @RF00352 0352 00850000 * DO; /* YES- TEMP ERROR. GO BACK TO 0353 00851000 * POST STATUS FOR DASD ERP */ 00852000 * CALL RECHAIN; /* SET UP IOSB TO START AT THE 0354 00853000 * BAD S/PCCW @ZM43100*/ 00854000 BAL @14,RECHAIN 0354 00855000 * CALL POSTCMP; /* POST GOOD I/O AND FREE S/PCCW 00856000 * @ZM43100*/ 00857000 BAL @14,POSTCMP 0355 00858000 * RETVEC=PURSUE; /* SET VECTOR ZERO FOR RETURN TO 00859000 * POST STATUS WHICH WILL GO TO 00860000 * DASD ERP FOR RETRY @ZM43100*/ 00861000 SLR RETVEC,RETVEC 0356 00862000 * END; /* @ZM43100*/ 00863000 * ELSE /* NOT A TEMPORARY ERROR @ZM43100*/ 00864000 * DO; /* PROCESS ANY GOOD I/O, PROCESS 00865000 * THE UNCORRECTABLE ERROR, AND 00866000 * RETRY REMAINING I/O, IF ANY 0358 00867000 * @ZM43100*/ 00868000 B @RC00352 0358 00869000 @RF00352 DS 0H 0359 00870000 * 0359 00871000 * /*************************************************************/ 00872000 * /* */ 00873000 * /* DETERMINE WHETHER PACK ERROR, OR SLOT ERROR. */ 00874000 * /* */ 00875000 * /*************************************************************/ 00876000 * 0359 00877000 * IF(IOSCOD=IOSMIHCA)| /* IF I/O NOT STARTED DUE TO NO 00878000 * PATH TO DEVICE */ 00879000 * (IOSCOD=IOSGDPWE)| /* OR DUE TO SIO CONDITION CODE 00880000 * 3- */ 00881000 * ((IOSCOD=IOSERRC)& /* OR A PERMANENT I/O ERROR 0359 00882000 * OCCURRED, THAT IS */ 00883000 * (((IOSTSA&UNITCHCK)=UNITCHCK)&/* UNIT CHECK AND */ 00884000 * ((IOSSNS&EQPTCHCK)=EQPTCHCK))|/* EQUIPTMENT CHECK, OR */ 00885000 * ((IOSTSB&CHNCHCKS)^=0))|/* CHANNEL CHECKS */ 00886000 * (PARERRCT>BSLOTCNT) THEN/* OR THE BAD SLOT COUNT IS TOO 00887000 * LARGE */ 00888000 L @12,IOSBPTR 0359 00889000 CLI IOSCOD(@12),X'51' 0359 00890000 BE @RT00359 0359 00891000 CLI IOSCOD(@12),X'6D' 0359 00892000 BE @RT00359 0359 00893000 CLI IOSCOD(@12),X'41' 0359 00894000 BNE @GL00005 0359 00895000 MVC @TS00001(1),IOSTSA(@12) 0359 00896000 NI @TS00001,X'02' 0359 00897000 CLI @TS00001,X'02' 0359 00898000 BNE @GL00005 0359 00899000 MVC @TS00001(2),IOSSNS(@12) 0359 00900000 NC @TS00001(2),@CB02430 0359 00901000 CLC @TS00001(2),@CB02430 0359 00902000 BE @RT00359 0359 00903000 @GL00005 LA @12,14 0359 00904000 L @05,IOSBPTR 0359 00905000 SLR @02,@02 0359 00906000 IC @02,IOSTSB(,@05) 0359 00907000 NR @12,@02 0359 00908000 LTR @12,@12 0359 00909000 BNZ @RT00359 0359 00910000 L @12,PAREPTR 0359 00911000 L @12,PARERRCT(,@12) 0359 00912000 C @12,@CF02421 0359 00913000 BNH @RF00359 0359 00914000 @RT00359 DS 0H 0360 00915000 * DO; /* PREPARE TO MARK PAGING SPACE 00916000 * AS UNUSABLE, IF NOT ALREADY */ 00917000 * IF PAREDSBD=OFF THEN /* PAGE/SWAP D.S. ALREADY MARKED 00918000 * BAD? */ 00919000 L @12,PAREPTR 0361 00920000 TM PAREDSBD(@12),B'01000000' 0361 00921000 BNZ @RF00361 0361 00922000 * CALL BADPACK; /* NO- MARK BAD NOW + CALL MSG00 00923000 * TO ASSESS SITUATION */ 00924000 BAL @14,BADPACK 0362 00925000 * ELSE 0363 00926000 * ; /* ALREADY MARKED BAD- DONT CALL 00927000 * BADPACK AGAIN */ 00928000 * 0363 00929000 @RF00361 DS 0H 0364 00930000 * /*********************************************************/ 00931000 * /* */ 00932000 * /* SET UP FOR CALL TO BADSLOT WITH ENTIRE STRING OF */ 00933000 * /* P/SCCWS SINCE WE HAD A PACK ERROR- ALL ARE CONSIDERED */ 00934000 * /* BAD. */ 00935000 * /* */ 00936000 * /*********************************************************/ 00937000 * 0364 00938000 * ATACPCCW=IORPCCW; /* PLACE ON ATA CURRENT PTR */ 00939000 L @12,IORBPTR 0364 00940000 L @05,IORPCCW(,@12) 0364 00941000 ST @05,ATACPCCW(,ATAPTR) 0364 00942000 * IORPCCW=0; /* AND REMOVE FROM IORB SO RECOV 00943000 * KNOWS WHATS UP */ 00944000 * 0365 00945000 SLR @05,@05 0365 00946000 ST @05,IORPCCW(,@12) 0365 00947000 * /*********************************************************/ 00948000 * /* */ 00949000 * /* BEFORE WE GO TO BADSLOT, CHECK IOSCOD. THOUGH WE DONT */ 00950000 * /* USUALLY GO TO RECERR TO RECORD BAD LSID FOR PACK */ 00951000 * /* ERRORS, IF IOSCOD WAS 41- (PERMERR- IMPLIES I/O HAD */ 00952000 * /* BEEN DONE) RECERR FOR 1ST P/SCCW IN THE CHAIN. */ 00953000 * /* */ 00954000 * /*********************************************************/ 00955000 * 0366 00956000 * IF IOSCOD=IOSERRC THEN /* PERMANENT ERROR? */ 00957000 L @12,IOSBPTR 0366 00958000 CLI IOSCOD(@12),X'41' 0366 00959000 BNE @RF00366 0366 00960000 * CALL RECERR; /* RECORD BAD LSID FOR 1ST P/SCCW 00961000 * IN CHAIN */ 00962000 BAL @14,RECERR 0367 00963000 * ELSE 0368 00964000 * ; /* ALL OTHER TYPES OF PACK ERROR- 00965000 * DONT RECORD */ 00966000 @RF00366 DS 0H 0369 00967000 * END; /* END PACK ERROR */ 00968000 * 0370 00969000 * /*************************************************************/ 00970000 * /* */ 00971000 * /* SLOT ERROR- UPDATE ERROR COUNTS + SET UP TO GO TO BADSLOT */ 00972000 * /* WITH SINGLE ERROR P/SCCW */ 00973000 * /* */ 00974000 * /*************************************************************/ 00975000 * 0370 00976000 * ELSE 0370 00977000 * DO; 0370 00978000 B @RC00359 0370 00979000 @RF00359 DS 0H 0371 00980000 * ATACPCCW=IORPCCW; /* PLACE ON ATA CURRENT PTR */ 00981000 L @12,IORBPTR 0371 00982000 L @05,IORPCCW(,@12) 0371 00983000 ST @05,ATACPCCW(,ATAPTR) 0371 00984000 * IORPCCW=IORPCCW->PCCWPCCW;/* UPDATE IORB FOR RECOVERY */ 00985000 L @02,PCCWPCCW(,@05) 0372 00986000 ST @02,IORPCCW(,@12) 0372 00987000 * ATACPCCW->PCCWPCCW=0; /* ZERO CHAIN PTR ON BAD P/SCCW */ 00988000 SLR @02,@02 0373 00989000 ST @02,PCCWPCCW(,@05) 0373 00990000 * IF IORSWAP=OFF&PARELOCL=ON THEN/* LOCAL PAGE D.S.? */ 00991000 TM IORSWAP(@12),B'00001000' 0374 00992000 BNZ @RF00374 0374 00993000 L @12,PAREPTR 0374 00994000 TM PARELOCL(@12),B'00010000' 0374 00995000 BNO @RF00374 0374 00996000 * DO; /* YES- UPDATE BAD LOCAL PAGE 0375 00997000 * SLOTS CT- ASMERRS */ 00998000 * RFY 0376 00999000 * (R0, 0376 01000000 * R1) RSTD; 0376 01001000 * R0=ASMERRS; /* GET CURRENT CT */ 01002000 L R0,ASMERRS(,ASMVTPTR) 0377 01003000 *RETRYERS: 0378 01004000 * R1=R0+ONE; /* ADD THIS ERROR */ 01005000 RETRYERS LA R1,1 0378 01006000 ALR R1,R0 0378 01007000 * CS(R0,R1,ASMERRS); /* UPDATE */ 01008000 CS R0,@01,ASMERRS(ASMVTPTR) 0379 01009000 * BC(NE,RETRYERS); 0380 01010000 BC 7,RETRYERS 0380 01011000 * RFY 0381 01012000 * (R0, 0381 01013000 * R1) UNRSTD; 0381 01014000 * END; /* END UPDATE ASMERRS */ 01015000 * ELSE 0383 01016000 * ; /* NOT A LOCAL PAGE D.S. */ 01017000 @RF00374 DS 0H 0384 01018000 */* UPDATE PARTE/SARTE ERROR CTS */ 01019000 * 0384 01020000 * RFY 0384 01021000 * (R0, 0384 01022000 * R1) RSTD; 0384 01023000 * R0=PARERRCT; /* GET CURRENT PARTE/SARTE ERROR 01024000 * CT */ 01025000 L @12,PAREPTR 0385 01026000 L R0,PARERRCT(,@12) 0385 01027000 *RETRYER1: 0386 01028000 * R1=R0+ONE; /* ADD THIS ERROR */ 01029000 RETRYER1 LA R1,1 0386 01030000 ALR R1,R0 0386 01031000 * CS(R0,R1,PARERRCT); /* UPDATE PARTE/SARTE ERROR CT */ 01032000 L @12,PAREPTR 0387 01033000 CS R0,@01,PARERRCT(@12) 0387 01034000 * BC(NE,RETRYER1); 0388 01035000 BC 7,RETRYER1 0388 01036000 * RFY 0389 01037000 * (R0, 0389 01038000 * R1) UNRSTD; 0389 01039000 * CALL RECERR; /* RECORD THIS BAD SLOT ID */ 01040000 BAL @14,RECERR 0390 01041000 * END; /* END SLOT ERROR */ 01042000 * 0392 01043000 * /*************************************************************/ 01044000 * /* */ 01045000 * /* MARK BAD SLOT AIA(S) (MAYBE MORE THAN ONE IF PACK ERROR) */ 01046000 * /* AS PRI OR SEC ERROR + PLACE ON INTERNAL POST QUEUE. PLACE */ 01047000 * /* P/SCCW ON INTERNAL FREE QUEUE. */ 01048000 * /* */ 01049000 * /*************************************************************/ 01050000 * 0392 01051000 * CALL BADSLOT; /* PROCESS BAD SLOTS */ 01052000 * 0392 01053000 @RC00359 BAL @14,BADSLOT 0392 01054000 * /*************************************************************/ 01055000 * /* */ 01056000 * /* DETERMINE WHETHER ANY P/SCCWS REMAIN AFTER THE BAD ONE */ 01057000 * /* REMOVED (IF NOT PACK ERROR) WHICH COULD BE RECHAINED TO */ 01058000 * /* THE IOSB/IORB AND REDRIVEN THRU IOS */ 01059000 * /* */ 01060000 * /*************************************************************/ 01061000 * 0393 01062000 * IF IORPCCW^=0 THEN /* ANY TO BE REDRIVEN? */ 01063000 L @12,IORBPTR 0393 01064000 L @12,IORPCCW(,@12) 0393 01065000 LTR @12,@12 0393 01066000 BZ @RF00393 0393 01067000 * DO; /* YES- */ 01068000 * CALL RECHAIN; /* RESET IOSB/IORB FIELDS TO 0395 01069000 * REFLECT NEW STARTING POINT */ 01070000 BAL @14,RECHAIN 0395 01071000 * RETVEC=REDRIVE; /* INDICATE INVOKE CHAN SCHEDULER 01072000 * TO REDRIVE THIS IOSB/SRB */ 01073000 LA RETVEC,8 0396 01074000 * END; /* END WORK TO BE REDRIVEN */ 01075000 * ELSE /* NOTHING TO REDRIVE */ 01076000 * RETVEC=PURSUE; /* INDICATE FINISHED + INVOKE 0398 01077000 * PGAD */ 01078000 B @RC00393 0398 01079000 @RF00393 SLR RETVEC,RETVEC 0398 01080000 * CALL POSTCMP; /* POST BACK AIAS & FREE P/SCCWS */ 01081000 @RC00393 BAL @14,POSTCMP 0399 01082000 * IOSEX=OFF; /* IN ALL CASES, PREVENT GOING 0400 01083000 * BACK TO ERP */ 01084000 L @12,IOSBPTR 0400 01085000 NI IOSEX(@12),B'11111011' 0400 01086000 * END; /* END NOT A TEMPORARY ERROR- 0401 01087000 * PROCESS ANY....ETC @ZM43100*/ 01088000 * CALL CLEANUP; /* REMOVE RECOVERY */ 01089000 @RC00352 BAL @14,CLEANUP 0402 01090000 * RFY 0403 01091000 * (R0, 0403 01092000 * R14, 0403 01093000 * R15) RSTD; 0403 01094000 * R15=RETVEC; /* SET SAVED RETURN TO POST 0404 01095000 * STATUS VECTOR IN REG */ 01096000 LR R15,RETVEC 0404 01097000 * LM(R0,R14,TEMPSAVE); /* RESTORE POST STATUS REGS */ 01098000 L @12,IORBPTR 0405 01099000 L @01,IORSAVE(,@12) 0405 01100000 LM R0,R14,TEMPSAVE(@01) 0405 01101000 * RFY 0406 01102000 * (R0, 0406 01103000 * R14, 0406 01104000 * R15) UNRSTD; 0406 01105000 * GEN REFS(R14,R15)(B 0(R15,R14));/* RETURN TO POST STATUS + VECTOR*/ 01106000 B 0(R15,R14) 01107000 * END ILRCMPAE; 0408 01108000 @EL00004 DS 0H 0408 01109000 @EF00004 DS 0H 0408 01110000 @ER00004 BR @14 0408 01111000 * 0409 01112000 */********************************************************************/ 01113000 */* */ 01114000 */* SETUP - INITIALIZATION ROUTINE */ 01115000 */* */ 01116000 */* INPUT - R8- MODID OF CALLING ENTRY POINT */ 01117000 */* R9- IOSB ADDRESS */ 01118000 */* */ 01119000 */* PROCESS - THE SETFRR MACRO IS ISSUED TO ESTABLISH RECOVERY. */ 01120000 */* THE APPROPRIATE CPU RELATED WORKAREA IS ADDRESSED. */ 01121000 */* INITIALIZATION OF SOME ATA FIELDS AND CERTAIN OTHER */ 01122000 */* VARIABLES IS DONE AT THIS TIME. */ 01123000 */* */ 01124000 */* OUTPUT - NONE */ 01125000 */* */ 01126000 */********************************************************************/ 01127000 */*SETUP: CHART (AREF) */ 01128000 */* HEADER 0409 01129000 */* I/O COMPLETE - 0409 01130000 */*SETUP */ 01131000 */*SETUP: E SET UP FOR IOC EXECUTION */ 01132000 */* L SETFRR ---*---*--- ESTABLISH RECOVERY */ 01133000 */* N ATA ADDR RETURNED IN R4 */ 01134000 */* P SET MODID IN ATA- PASSED IN REG */ 01135000 */* P *** FRR *** SET IOSB ADDR IN ATAIOSB */ 01136000 */* N USE CPU RELATED WORKAREA ADDRESSED BY WSACASMD FOR DIE. */ 01137000 */* N USE WSACASMS FOR ALL OTHER ENTRY POINTS. */ 01138000 */* P SET ADDRESSABILITY TO WORKAREA */ 01139000 */* P ZERO ENTIRE WORKAREA */ 01140000 */* P INITIALIZE VARIABLES */ 01141000 */* R RETURN TO CALLER */ 01142000 */*SETUP: END */ 01143000 * 0409 01144000 *SETUP: 0409 01145000 * PROC OPTIONS(NOSAVE,NOSAVEAREA); 0409 01146000 SETUP DS 0H 0410 01147000 * RFY 0410 01148000 * (R1, 0410 01149000 * R5, 0410 01150000 * R8, 0410 01151000 * R9, 0410 01152000 * R14) RSTD; 0410 01153000 * R1=ADDR(ILRCMP01); /* SET RECOVERY RTN ADDR FOR 0411 01154000 * SETFRR */ 01155000 L R1,@CV02488 0411 01156000 *IOCARCV1: 0412 01157000 * GEN REFS(R1,R4,R5) SETS(R4,R5); 0412 01158000 IOCARCV1 DS 0H 0412 01159000 SETFRR A,FRRAD=(R1),PARMAD=(R4),WRKREGS=(R4,R5), *01160000 RELATED=(PAGE/SWAP,ILRCMP(IOCDRCV1)) 01161000 * RFY 0413 01162000 * (R1, 0413 01163000 * R5) UNRSTD; 0413 01164000 * ATAMODID=R8; /* SET MODID IN ATA FOR RECOVERY */ 01165000 STC R8,ATAMODID(,ATAPTR) 0414 01166000 * ATAIOSB=R9; /* SET IOSB ADDR FOR RECOVERY */ 01167000 ST R9,ATAIOSB(,ATAPTR) 0415 01168000 * RFY 0416 01169000 * IOSB BASED(R9); 0416 01170000 * RFY 0417 01171000 * IORB BASED(IOSUSE); 0417 01172000 * IF R8=ATAMCMPD THEN /* CALLED BY DIE ENTRY? */ 01173000 C R8,@CF00307 0418 01174000 BNE @RF00418 0418 01175000 * R6=WSACASMD; /* SET ADDRESSABILITY TO DIE 0419 01176000 * WORKAREA */ 01177000 L @15,LCCAPTR 0419 01178000 L @15,LCCACPUS(,@15) 0419 01179000 L R6,WSACASMD(,@15) 0419 01180000 * ELSE /* NO- POST STATUS DRIVEN */ 01181000 * R6=WSACASMS; /* SET ADDRESSABILITY TO SRB 0420 01182000 * WORKAREA */ 01183000 B @RC00418 0420 01184000 @RF00418 L @15,LCCAPTR 0420 01185000 L @15,LCCACPUS(,@15) 0420 01186000 L R6,WSACASMS(,@15) 0420 01187000 * GEN REFS(R6)(USING @DATD,R6); 0421 01188000 @RC00418 DS 0H 0421 01189000 USING @DATD,R6 01190000 * ZEROWORK=''B; /* ZERO ENTIRE IOC WORKAREA */ 01191000 * 0422 01192000 XC ZEROWORK(256,R6),ZEROWORK(R6) 0422 01193000 * /*****************************************************************/ 01194000 * /* */ 01195000 * /* INITIALIZE REQUIRED VARIABLES */ 01196000 * /* */ 01197000 * /*****************************************************************/ 01198000 * 0423 01199000 * ASMVTPTR=CVTASMVT; /* BASE FOR ASMVT */ 01200000 L @15,CVTPTR 0423 01201000 L ASMVTPTR,CVTASMVT(,@15) 0423 01202000 * IOSBPTR=R9; /* SET IOSB BASE */ 01203000 ST R9,IOSBPTR 0424 01204000 * IORBPTR=IOSUSE; /* SET IORB BASE */ 01205000 L @15,IOSUSE(,R9) 0425 01206000 ST @15,IORBPTR 0425 01207000 * RFY 0426 01208000 * IORB; 0426 01209000 * RFY 0427 01210000 * IOSB; 0427 01211000 * RFY 0428 01212000 * (R8, 0428 01213000 * R9) UNRSTD; 0428 01214000 * PARTPTR=ASMPART; /* SET PART BASE */ 01215000 L PARTPTR,ASMPART(,ASMVTPTR) 0429 01216000 * SARTPTR=ASMSART; /* SET SART BASE */ 01217000 L @12,ASMSART(,ASMVTPTR) 0430 01218000 ST @12,SARTPTR 0430 01219000 * PAREPTR=IORPARTE; /* SET PARTE BASE */ 01220000 L @15,IORPARTE(,@15) 0431 01221000 ST @15,PAREPTR 0431 01222000 * RFY 0432 01223000 * R14 UNRSTD; 0432 01224000 * END SETUP; 0433 01225000 @EL00005 DS 0H 0433 01226000 @EF00005 DS 0H 0433 01227000 @ER00005 BR @14 0433 01228000 * 0434 01229000 */********************************************************************/ 01230000 */* */ 01231000 */* CLEANUP - DELETE RECOVERY */ 01232000 */* */ 01233000 */* INPUT - NONE */ 01234000 */* */ 01235000 */* PROCESS - THE SETFRR MACRO IS ISSUED TO REMOVE RECOVERY */ 01236000 */* */ 01237000 */* OUTPUT - NONE. THIS ROUTINE MUST NOT DESTROY REG 15. */ 01238000 */* */ 01239000 */********************************************************************/ 01240000 */*CLEANUP: CHART (AREF) */ 01241000 */* HEADER 0434 01242000 */* I/O COMPLETE - 0434 01243000 */*CLEANUP */ 01244000 */*CLEANUP: E CLEAN UP FOR EXIT */ 01245000 */* L SETFRR ---*---*--- DELETE RECOVERY */ 01246000 */* R RETURN TO MAINLINE */ 01247000 */*CLEANUP: END */ 01248000 * 0434 01249000 *CLEANUP: 0434 01250000 * PROC OPTIONS(NOSAVE,NOSAVEAREA); 0434 01251000 CLEANUP DS 0H 0435 01252000 * RFY 0435 01253000 * (R4, 0435 01254000 * R5, 0435 01255000 * R14, 0435 01256000 * R15) RSTD; 0435 01257000 * 0435 01258000 */* NOTE: THIS ROUTINE MUST NOT DESTROY CONTENTS OF REG 15 */ 01259000 * 0436 01260000 *IOCDRCV1: 0436 01261000 * GEN REFS(R4,R5) SETS(R4,R5); 0436 01262000 IOCDRCV1 DS 0H 0436 01263000 SETFRR D,WRKREGS=(R4,R5), *01264000 RELATED=(PAGE/SWAP,ILRCMP(IOCARCV1)) 01265000 * RFY 0437 01266000 * (R4, 0437 01267000 * R5, 0437 01268000 * R14, 0437 01269000 * R15) UNRSTD; 0437 01270000 * END CLEANUP; 0438 01271000 @EL00006 DS 0H 0438 01272000 @EF00006 DS 0H 0438 01273000 @ER00006 BR @14 0438 01274000 * 0439 01275000 */********************************************************************/ 01276000 */* */ 01277000 */* LOCATECP- LOCATE PCCW IN ERROR */ 01278000 */* */ 01279000 */* INPUT - PTR TO FIRST P/SCCW (IORPCCW) */ 01280000 */* */ 01281000 */* PROCESS - THE P/SCCWS ARE SCANNED FOR THE CCW IN ERROR */ 01282000 */* */ 01283000 */* OUTPUT - IORERR WILL CONTAIN ADDRESS OF ERROR P/SCCW */ 01284000 */* */ 01285000 */********************************************************************/ 01286000 */*LOCATECP: CHART (AREF) */ 01287000 */* HEADER 0439 01288000 */* I/O COMPLETE - 0439 01289000 */*LOCATECP */ 01290000 */*LOCATECP: E LOCATE PCCW IN ERROR */ 01291000 */* P SET UP ADDR OF ERROR CCW CSWCCWA -8 */ 01292000 */* N DETERMINE WHETHER PAGE OR SWAP TO GET LENGTH 0439 01293000 */* OF P/SCCW */ 01294000 */* N THEN DETERMINE WITHIN WHICH P/SCCW CCW IN ERROR FALLS */ 01295000 */* D (PAG,,SWP,%F1) PAGE OR SWAP? IORSWAP */ 01296000 */* P (,%LOC20) SET LENGTH OF PCCW */ 01297000 */*%F1: P SET LENGTH OF SCCW */ 01298000 */*%LOC20: D (NO,,YES,%LOC50) ERROR CCW IN THIS P/SCCW? */ 01299000 */* P UPDATE TO NEXT P/SCCW */ 01300000 */* D (YES,%LOC80,NO,%LOC20) END OF P/SCCW CHAIN? */ 01301000 */*%LOC50: P MARK ERROR P/SCCW PCCWFERR */ 01302000 */*%LOC80: P SAVE ADDRESS OF ERROR P/SCCW IN IORB IORERR */ 01303000 */*%N1: R RETURN */ 01304000 */*LOCATECP: END */ 01305000 * 0439 01306000 *LOCATECP: 0439 01307000 * PROC OPTIONS(NOSAVE,NOSAVEAREA); 0439 01308000 LOCATECP DS 0H 0440 01309000 * RFY 0440 01310000 * R14 RSTD; 0440 01311000 * 0440 01312000 */* SET UP FOR LOCATE PROCESSING */ 01313000 * 0441 01314000 * CSWADDR=IOSCSWCA-CCWLEN; /* SAVE ADDR OF CCW THAT FAILED */ 01315000 L @15,IOSBPTR 0441 01316000 L CSWADDR,IOSCSWCA-1(,@15) 0441 01317000 LA CSWADDR,0(,CSWADDR) 0441 01318000 SL CSWADDR,@CF00040 0441 01319000 * IF IORSWAP=ON THEN /* WORKING WITH SCCWS? */ 01320000 L @15,IORBPTR 0442 01321000 TM IORSWAP(@15),B'00001000' 0442 01322000 BNO @RF00442 0442 01323000 * XCCWLEN=LENGTH(SCCW); /* SAVE SCCW LEN FOR SEARCH */ 01324000 LA XCCWLEN,400 0443 01325000 * ELSE /* NO- PCCWS. */ 01326000 * XCCWLEN=LENGTH(PCCW); /* SAVE PCCW LEN FOR SEARCH */ 01327000 B @RC00442 0444 01328000 @RF00442 LA XCCWLEN,72 0444 01329000 * IORERR=0; /* INIT AS NO ERROR */ 01330000 * 0445 01331000 @RC00442 L @15,IORBPTR 0445 01332000 SLR @12,@12 0445 01333000 ST @12,IORERR(,@15) 0445 01334000 * /*****************************************************************/ 01335000 * /* */ 01336000 * /* LOOP THRU P/SCCWS UNTIL FIND THE ONE THAT CONTAINS FAILING CCW*/ 01337000 * /* OR UNTIL HIT END OF CHAIN */ 01338000 * /* */ 01339000 * /*****************************************************************/ 01340000 * 0446 01341000 * PCCWPTR=IORPCCW; 0446 01342000 L @15,IORPCCW(,@15) 0446 01343000 ST @15,PCCWPTR 0446 01344000 * DO WHILE(PCCWPTR^=0&IORERR=0); 0447 01345000 B @DE00447 0447 01346000 @DL00447 DS 0H 0448 01347000 * IF CSWADDR>=PCCWPTR&CSWADDR<=(PCCWPTR+XCCWLEN) THEN/* ERROR IN 01348000 * THIS P/SCCW? */ 01349000 L @15,PCCWPTR 0448 01350000 CR CSWADDR,@15 0448 01351000 BL @RF00448 0448 01352000 LR @12,XCCWLEN 0448 01353000 ALR @12,@15 0448 01354000 CR CSWADDR,@12 0448 01355000 BH @RF00448 0448 01356000 * DO; /* YES- FOUND ERROR P/SCCW */ 01357000 * IORERR=PCCWPTR; /* SAVE ADDR BAD P/SCCW IN IORB */ 01358000 L @12,IORBPTR 0450 01359000 ST @15,IORERR(,@12) 0450 01360000 * PCCWFERR=ON; /* MARK P/SCCW IN ERROR */ 01361000 OI PCCWFERR(@15),B'10000000' 0451 01362000 * END; 0452 01363000 * ELSE /* ERROR NOT IN THIS P/SCCW */ 01364000 * PCCWPTR=PCCWPCCW; /* CHECK NEXT */ 01365000 B @RC00448 0453 01366000 @RF00448 L @15,PCCWPTR 0453 01367000 L @15,PCCWPCCW(,@15) 0453 01368000 ST @15,PCCWPTR 0453 01369000 * END; /* END LOOP THRU P/SCCWS */ 01370000 @RC00448 DS 0H 0454 01371000 @DE00447 SLR @15,@15 0454 01372000 C @15,PCCWPTR 0454 01373000 BE @DC00447 0454 01374000 L @12,IORBPTR 0454 01375000 C @15,IORERR(,@12) 0454 01376000 BE @DL00447 0454 01377000 @DC00447 DS 0H 0455 01378000 * IF IORERR=0 THEN /* IF ERROR NOT FOUND */ 01379000 L @15,IORBPTR 0455 01380000 L @12,IORERR(,@15) 0455 01381000 LTR @12,@12 0455 01382000 BNZ @RF00455 0455 01383000 * IORERR=IORPCCW; /* MARK 1ST P/SCCW IN ERROR */ 01384000 L @12,IORPCCW(,@15) 0456 01385000 ST @12,IORERR(,@15) 0456 01386000 * ELSE 0457 01387000 * ; /* ERROR FOUND DURING SEARCH */ 01388000 @RF00455 DS 0H 0458 01389000 * RFY 0458 01390000 * R14 UNRSTD; 0458 01391000 * END LOCATECP; 0459 01392000 @EL00007 DS 0H 0459 01393000 @EF00007 DS 0H 0459 01394000 @ER00007 BR @14 0459 01395000 * 0460 01396000 */****************************************************************** */ 01397000 */* */ 01398000 */* RECERR - BAD SLOT LIST ROUTINE */ 01399000 */* */ 01400000 */* INPUT - PTR TO P/SCCW SUFFERING I/O ERROR- ATACPCCW */ 01401000 */* (MAY BE CHAIN OF P/SCCWS IF CALLED ON BADPACK */ 01402000 */* SITUATION, BUT ONLY 1ST IS RECORDED.) */ 01403000 */* */ 01404000 */* PROCESS - THIS SUBROUTINE PLACES THE LSID OF A SLOT */ 01405000 */* WHICH SUFFERED AN I/O ERROR INTO AN SQA BUFFER LIST OF */ 01406000 */* BAD SLOTS. THIS IS A WRAP AROUND BUFFER AND IS USED FOR */ 01407000 */* DEBUGGING PURPOSES. IT IS NOT EXAMINED BY ANY ASM ROUTINE */ 01408000 */* THIS ROUTINE OBTAINS THE BAD SLOT LIST ON FIRST ENTRY. */ 01409000 */* */ 01410000 */* */ 01411000 */* OUTPUT - ASMEREC UPDATED WITH ADDRESS OF BAD SLOT LIST WHEN */ 01412000 */* OBTAINED. */ 01413000 */* NEXT ENTRY IN TABLE UPDATED WITH NEWEST ENTRY. */ 01414000 */* */ 01415000 */****************************************************************** */ 01416000 */* */ 01417000 */*RECERR: CHART (AREF) */ 01418000 */*HEADER 0460 01419000 */* I/O COMPLETE - 0460 01420000 */*RECERR */ 01421000 */*RECERR: E BEGIN SEGMENT ADD SLOT TO LIST */ 01422000 */* N THIS RTN ONLY GETS BUFFER 1ST TIME THERES A BAD SLOT */ 01423000 */* D (YES,%T1,NO,) PREV ERROR- BFR OBTAINED YET? ASMEREC */ 01424000 */* N USE BRANCH ENTRY TO GETMAIN TO OBTAIN BAD SLOT LIST */ 01425000 */* L SETLOCK: OBTAIN SALLOC (UNCOND) */ 01426000 */* N CHECK AGAIN- COULDVE BEEN GOTTEN WHILE WE LOCKED */ 01427000 */* D (YES,,NO,%F1) STILL UNOBTAINED? ASMEREC */ 01428000 */* L GETMAIN: RC LV=1024 SP=245 BRANCH=(YES GLOBAL) */ 01429000 */* D (YES,,NO,%F1) GETMAIN OK? R15 */ 01430000 */* N FORMAT BAD SLOT LIST */ 01431000 */* N SET UP BUFFER HEADER ENTRIES- CURRENT, 1ST, & LAST */ 01432000 */* P SET CURRENT PTR TO ASMEREC+8 */ 01433000 */* P SET 1ST PTR TO ASMEREC + 12 */ 01434000 */* P SET LAST PTR TO ASMEREC + 1020 */ 01435000 */* P INIT BAD SLOT LIST TO ZERO */ 01436000 */* P SET ADDR OF LIST IN ASMVT ASMEREC */ 01437000 */*%F1: L SETLOCK: RELEASE SALLOC */ 01438000 */* D (YES,,NO,%P1) GETMAIN OK OR ALREADY THERE? ASMEREC */ 01439000 */*%T1: D (YES,,NO,%F2) THIS ENTRY THE LAST ENTRY? */ 01440000 */* P (,%N1) SET REG X TO 1ST PTR */ 01441000 */*%F2: P ADD 4 TO REG X */ 01442000 */*%N1: P UPDATE CURR PTR WITH REG X (C+S) */ 01443000 */* D (YES,,NO,%T1) C + S SUCCESSFUL? */ 01444000 */* P PUT LSID IN CURRENT ENTRY USE REG X */ 01445000 */* D (PAG,%P1,SWP,) PAGE OR SWAP? IORSWAP */ 01446000 */* P SET HI ORDER BIT THIS ENTRY INDICATE SWAP USE REG X */ 01447000 */*%P1: R RETURN */ 01448000 */*RECERR: END */ 01449000 * 0460 01450000 *RECERR: 0460 01451000 * PROC OPTIONS(NOSAVE,NOSAVEAREA); 0460 01452000 RECERR DS 0H 0461 01453000 * RFY 0461 01454000 * R14 RSTD; 0461 01455000 * RTNADDR=R14; /* SAVE RETURN ADDRESS */ 01456000 ST R14,RTNADDR 0462 01457000 * RFY 0463 01458000 * R14 UNRSTD; 0463 01459000 * IF ASMEREC=0 THEN /* EVER GET THE BAD SLOT LIST? */ 01460000 L @12,ASMEREC(,ASMVTPTR) 0464 01461000 LTR @12,@12 0464 01462000 BNZ @RF00464 0464 01463000 * DO; /* NOT YET- GET IT NOW */ 01464000 * 0465 01465000 * /*************************************************************/ 01466000 * /* */ 01467000 * /* USE BRANCH ENTRY TO GETMAIN. SALLOC LOCK REQUIRED */ 01468000 * /* */ 01469000 * /*************************************************************/ 01470000 * 0466 01471000 * RFY 0466 01472000 * (R11, 0466 01473000 * R12, 0466 01474000 * R13, 0466 01475000 * R14) RSTD; 0466 01476000 *IOCLK1: 0467 01477000 * GEN REFS(R12,R13,R14,PSALITA,FLC) SETS(R11,R12,R13,R14); 0467 01478000 IOCLK1 DS 0H 0467 01479000 SETLOCK OBTAIN,TYPE=SALLOC,MODE=UNCOND, *01480000 RELATED=(GETMAIN,ILRCMP(IOCUNLK1)) 01481000 * RFY 0468 01482000 * (R11, 0468 01483000 * R12, 0468 01484000 * R14) UNRSTD; 0468 01485000 * IF ASMEREC=0 THEN /* MAKE SURE STILL UNOBTAINED. 0469 01486000 * COULDVE BEEN GOTTEN ON ANOTHER 01487000 * CPU WHILE WE LOCKED. DONT WANT 01488000 * TO GET IT TWICE. */ 01489000 L @12,ASMEREC(,ASMVTPTR) 0469 01490000 LTR @12,@12 0469 01491000 BNZ @RF00469 0469 01492000 * DO; /* NOPE- KEEP GOIN */ 01493000 * STM(R3,R4,R34SAVE); /* SAVE REGS ACROSS GETMAIN */ 01494000 STM R3,R4,R34SAVE 0471 01495000 * RFY 0472 01496000 * (R0, 0472 01497000 * R1, 0472 01498000 * R3, 0472 01499000 * R4, 0472 01500000 * R14, 0472 01501000 * R15) RSTD; 0472 01502000 * GEN SETS(R0,R1,R3,R4,R14,R15); 0473 01503000 GETMAIN RC,LV=1024,SP=245,BRANCH=(YES,GLOBAL) 01504000 * RFY 0474 01505000 * (R0, 0474 01506000 * R1, 0474 01507000 * R14, 0474 01508000 * R15) UNRSTD; 0474 01509000 * LM(R3,R4,R34SAVE); /* RESTORE REGS */ 01510000 LM R3,R4,R34SAVE 0475 01511000 * RFY 0476 01512000 * (R1, 0476 01513000 * R15) RSTD; 0476 01514000 * IF R15=0 THEN /* DID WE SWING IT? */ 01515000 LTR R15,R15 0477 01516000 BNZ @RF00477 0477 01517000 * DO; /* YUP- FORMAT BAD SLOT LIST 0478 01518000 * HEADER */ 01519000 * R1->BSCURR=R1+BSCURPRM;/* PRIME CUR PTR TO ONE ENTRY 01520000 * BEFORE PHYSICAL FIRST */ 01521000 LA @14,8 0479 01522000 ALR @14,R1 0479 01523000 ST @14,BSCURR(,R1) 0479 01524000 * R1->BSFIRST=R1+BS1STPRM;/* PRIME PHYSICAL 1ST NTRY */ 01525000 LA @14,12 0480 01526000 ALR @14,R1 0480 01527000 ST @14,BSFIRST(,R1) 0480 01528000 * R1->BSLAST=R1+BSLSTPRM;/* PRIME PHYSICAL LAST NTRY */ 01529000 * 0481 01530000 LA @14,1020 0481 01531000 ALR @14,R1 0481 01532000 ST @14,BSLAST(,R1) 0481 01533000 * /*****************************************************/ 01534000 * /* */ 01535000 * /* USE MOVE CHAR LONG TO INITIALIZE TABLE TO ZERO */ 01536000 * /* */ 01537000 * /*****************************************************/ 01538000 * 0482 01539000 * RFY 0482 01540000 * (R8, 0482 01541000 * R9, 0482 01542000 * R10, 0482 01543000 * R11) RSTD; 0482 01544000 * R8=ADDR(R1->BSLIST); 0483 01545000 LA R8,BSLIST(,R1) 0483 01546000 * R9=LENGTH(R1->BSLIST); 0484 01547000 LA R9,1012 0484 01548000 * R10=0; 0485 01549000 SLR R10,R10 0485 01550000 * R11=0; /* THIS SETS PAD CHAR TO ZERO */ 01551000 SLR R11,R11 0486 01552000 * MVCL(R8,R10); /* INIT TO ZEROS */ 01553000 MVCL R8,R10 0487 01554000 * RFY 0488 01555000 * (R8, 0488 01556000 * R9, 0488 01557000 * R10, 0488 01558000 * R11) UNRSTD; 0488 01559000 * ASMEREC=R1; /* AND FINALLY, SET LIST ADDR IN 01560000 * ASMVT */ 01561000 ST R1,ASMEREC(,ASMVTPTR) 0489 01562000 * END; /* END FORMAT HEADER */ 01563000 * ELSE 0491 01564000 * ; /* GETMAIN FAILED */ 01565000 @RF00477 DS 0H 0492 01566000 * RFY 0492 01567000 * (R1, 0492 01568000 * R15) UNRSTD; 0492 01569000 * END; /* END KEEP GOIN- STILL 0493 01570000 * UNOBTAINED */ 01571000 * ELSE 0494 01572000 * ; /* LIST ALREADY OBTAINED WHILE WE 01573000 * LOCKED */ 01574000 @RF00469 DS 0H 0495 01575000 * RFY 0495 01576000 * (R11, 0495 01577000 * R12, 0495 01578000 * R13, 0495 01579000 * R14) RSTD; 0495 01580000 *IOCUNLK1: 0496 01581000 * GEN REFS(R12,R13,R14,PSALITA,FLC) SETS(R11,R12,R13,R14); 0496 01582000 IOCUNLK1 DS 0H 0496 01583000 SETLOCK RELEASE,TYPE=SALLOC,RELATED=(GETMAIN,ILRCMP(IOCLK1)) 01584000 * RFY 0497 01585000 * (R11, 0497 01586000 * R12, 0497 01587000 * R14) UNRSTD; 0497 01588000 * 0497 01589000 * /*************************************************************/ 01590000 * /* */ 01591000 * /* AT THIS POINT WE ARE ABOUT TO FALL INTO THE CODE TO USE */ 01592000 * /* THE TABLE FOR THE FIRST TIME- MAKE SURE WE WERE SUCCESSFUL*/ 01593000 * /* IN GETTING THE TABLE ABOVE. */ 01594000 * /* */ 01595000 * /*************************************************************/ 01596000 * 0498 01597000 * IF ASMEREC=0 THEN /* SHOULD EXIST UNLESS OUR 0498 01598000 * GETMAIN FAILED */ 01599000 L @12,ASMEREC(,ASMVTPTR) 0498 01600000 LTR @12,@12 0498 01601000 BZ @RT00498 0498 01602000 * GOTO RECXIT; 0499 01603000 * ELSE 0500 01604000 * ; /* EVERYTHING OK- FALL INTO TABLE 01605000 * UPDATE CODE. FROM NOW ON- WE 01606000 * WILL ALWAYS GO DIRECTLY HERE */ 01607000 * END; /* END OF GET THE BAD SLOT LIST- 01608000 * FIRST TIME */ 01609000 * ELSE 0502 01610000 * ; 0502 01611000 @RF00464 DS 0H 0503 01612000 * 0503 01613000 * /*****************************************************************/ 01614000 * /* */ 01615000 * /* BAD SLOT TABLE UPDATE CODE. UPDATE CURRENT PTR IN HEADER TO */ 01616000 * /* NEXT TABLE ENTRY AND ADD NEW ENTRY TO TABLE. USE C+S TO UPDATE*/ 01617000 * /* CURR PTR SINCE ANOTHER CPU MAY BE DOING SAME THING. */ 01618000 * /* */ 01619000 * /*****************************************************************/ 01620000 * 0503 01621000 * RFY 0503 01622000 * BSHEADER BASED(ASMEREC); 0503 01623000 * RFY 0504 01624000 * (R0, 0504 01625000 * R1) RSTD; 0504 01626000 * R0=BSCURR; /* GET CURRENT CURRENT-PTR */ 01627000 L @12,ASMEREC(,ASMVTPTR) 0505 01628000 L R0,BSCURR(,@12) 0505 01629000 *RETRYBS: 0506 01630000 * IF R0=BSLAST THEN /* LAST ELEM USED? */ 01631000 RETRYBS L @12,ASMEREC(,ASMVTPTR) 0506 01632000 C R0,BSLAST(,@12) 0506 01633000 BNE @RF00506 0506 01634000 * R1=BSFIRST; /* YES- SET UP TO WRAP AROUND */ 01635000 L R1,BSFIRST(,@12) 0507 01636000 * ELSE /* SOME LEFT- */ 01637000 * R1=R0+BSINCR; /* BUMP TO NEXT ELEM */ 01638000 B @RC00506 0508 01639000 @RF00506 LA R1,4 0508 01640000 ALR R1,R0 0508 01641000 * CS(R0,R1,BSCURR); /* UPDATE HEADER CURRENT PTR */ 01642000 @RC00506 L @12,ASMEREC(,ASMVTPTR) 0509 01643000 CS R0,@01,BSCURR(@12) 0509 01644000 * BC(NE,RETRYBS); 0510 01645000 * 0510 01646000 BC 7,RETRYBS 0510 01647000 * /*****************************************************************/ 01648000 * /* */ 01649000 * /* WHEN FALL HERE, REG1 CONTAINS OUR BSCURR VALUE. USE R1 TO */ 01650000 * /* UPDATE TABLE SINCE BSCURR ITSELF MAY CHANGE AGAIN FOR OTHER */ 01651000 * /* CPU */ 01652000 * /* */ 01653000 * /*****************************************************************/ 01654000 * 0511 01655000 * IF ATACPCCW->PCCWAIA->AIADUPLX=ON&/* IS THIS A */ 01656000 * PAREDPLX=ON THEN /* SECONDARY OPERATION? */ 01657000 L @12,ATACPCCW(,ATAPTR) 0511 01658000 L @12,PCCWAIA(,@12) 0511 01659000 TM AIADUPLX(@12),B'00010000' 0511 01660000 BNO @RF00511 0511 01661000 L @05,PAREPTR 0511 01662000 TM PAREDPLX(@05),B'00100000' 0511 01663000 BNO @RF00511 0511 01664000 * R1->BSTABNTY=ATACPCCW->PCCWAIA->AIALSID2;/* PULL PROPER LSID */ 01665000 L @12,AIALSID2(,@12) 0512 01666000 ST @12,BSTABNTY(,R1) 0512 01667000 * ELSE /* NOT SECONDARY OPERATION */ 01668000 * R1->BSTABNTY=ATACPCCW->PCCWAIA->AIALSID;/* ADD BAD P/SCCW AIA 01669000 * SLOT ID TO TABLE */ 01670000 B @RC00511 0513 01671000 @RF00511 L @12,ATACPCCW(,ATAPTR) 0513 01672000 L @12,PCCWAIA(,@12) 0513 01673000 L @12,AIALSID(,@12) 0513 01674000 ST @12,BSTABNTY(,R1) 0513 01675000 * IF IORSWAP=ON THEN /* WAS IT SWAP? */ 01676000 @RC00511 L @12,IORBPTR 0514 01677000 TM IORSWAP(@12),B'00001000' 0514 01678000 BNO @RF00514 0514 01679000 * R1->BSSPLSID=SWPLSID; /* YES- INDICATE SUCH */ 01680000 MVI BSSPLSID(R1),X'80' 0515 01681000 * ELSE /* NO-PAGE- */ 01682000 * R1->BSSPLSID=PAGLSID; /* MAY HAVE BEEN ON LAST TIME 0516 01683000 * USED */ 01684000 B @RC00514 0516 01685000 @RF00514 MVI BSSPLSID(R1),X'00' 0516 01686000 * IF ATACPCCW->PCCWAIA->AIAWRITE^=ON THEN/* A READ ERROR @Z40WPWP*/ 01687000 @RC00514 L @12,ATACPCCW(,ATAPTR) 0517 01688000 L @12,PCCWAIA(,@12) 0517 01689000 TM AIAWRITE(@12),B'10000000' 0517 01690000 BO @RF00517 0517 01691000 * R1->BSSPLSID=R1->BSSPLSID|'08'X;/* INDICATE A READ ERROR 0518 01692000 * @Z40WPWP*/ 01693000 OI BSSPLSID(R1),X'08' 0518 01694000 * RFY 0519 01695000 * (R0, 0519 01696000 * R1) UNRSTD; 0519 01697000 @RF00517 DS 0H 0520 01698000 *RECXIT: 0520 01699000 * RFY 0520 01700000 * R14 RSTD; 0520 01701000 RECXIT DS 0H 0521 01702000 * R14=RTNADDR; /* RESTORE RETURN ADDR */ 01703000 L R14,RTNADDR 0521 01704000 * RFY 0522 01705000 * R14 UNRSTD; 0522 01706000 * END RECERR; 0523 01707000 @EL00008 DS 0H 0523 01708000 @EF00008 DS 0H 0523 01709000 @ER00008 BR @14 0523 01710000 * 0524 01711000 */********************************************************************/ 01712000 */* */ 01713000 */* BADSLOT - PROCESS ERROR P/SCCW(S) */ 01714000 */* */ 01715000 */* INPUT - POINTER TO THE FIRST P/SCCW OF THE CHAIN OR TO THE */ 01716000 */* P/SCCW OF THE OFFENDING I/O REQUEST - ATACPCCW */ 01717000 */* */ 01718000 */* PROCESS - EACH AIA ASSOCIATED WITH THE INPUT P/SCCW(S) IS */ 01719000 */* MARKED PRIMARY OR SECONDARY ERROR. IF THE AIA IS FOR A */ 01720000 */* DUPLEX OPERATION, THEN DECREMENT THE DUPLEX COUNT IN */ 01721000 */* THE AIA BY ONE. IF THE DUPLEX COUNT IS NOW ZERO THEN */ 01722000 */* PUT THAT AIA ON THE INTERNAL COMPLETION QUEUE. NOTE */ 01723000 */* THAT AN AIA FOR A DUPLEX OPERATION WILL NEVER BE PLACED */ 01724000 */* ON THE INTERNAL COMPLETION QUEUE UNTIL BOTH WRITE */ 01725000 */* OPERATIONS HAVE COMPLETED. IF THE DUPLEXED WRITE WAS */ 01726000 */* FOR THE DUPLEX DATA SET THEN MARK THE SECONDARY ERROR */ 01727000 */* FLAG. OTHERWISE, MARK THE PRIMARY ERROR FLAG. IF THE */ 01728000 */* AIA IS NOT FOR A DUPLEX OPERATION, THEN PLACE THE AIA */ 01729000 */* ON THE INTERNAL COMPLETION QUEUE AND MARK THE PRIMARY */ 01730000 */* ERROR FLAG. EACH ASSOCIATED P/SCCW IS PLACED ON THE */ 01731000 */* INTERAL FREE QUEUE TO BE LATER FREED. @ZA16409*/ 01732000 */* */ 01733000 */* OUTPUT - AIAPRIER OR AIASECER. ATACOMPQ AND ATAPCCWQ. */ 01734000 */* */ 01735000 */********************************************************************/ 01736000 */* */ 01737000 */*BADSLOT: CHART (AREF) */ 01738000 */* HEADER 0524 01739000 */* I/O COMPLETE - 0524 01740000 */*BADSLOT */ 01741000 */*BADSLOT: E PROCESS ERROR P/SCCW(S) */ 01742000 */* N CAN HAVE ONE, OR A CHAIN OF P/SCCWS. */ 01743000 */* P PICK UP PTR TO 1ST P/SCCW PCCWPTR */ 01744000 */*%BLOOP: D (YES,%BRET,NO,) END OF CHAIN? */ 01745000 */* D (YES,,NO,%S1) AIADUPLX ON ? @ZA16409*/ 01746000 */* P DECREMENT AIADPXCT BY 1 @ZA16409*/ 01747000 */* D (YES,,NO,%D1) AIADPXCT = 0 ? @ZA16409*/ 01748000 */* P PUT ASSOC AIA ON TOP OF INTERNAL ATACOMPQ @ZA16409*/ 01749000 */*%D1: D (YES,,NO,%F1) PARETYPE = DPLX ? @ZA16409*/ 01750000 */* P (,%N1) SET SECONDARY ERROR AIASECER @ZA16409*/ 01751000 */*%F1: P (,%N1) P SET PRIMARY ERROR AIAPRIER @ZA16409*/ 01752000 */*%S1: P PUT ASSOC AIA ON TOP OF INTERNAL ATACOMPQ */ 01753000 */* P SET PRIMARY ERROR AIAPRIER */ 01754000 */*%N1: P ZERO P/SCCW PTR TO AIA FOR RCV */ 01755000 */* P PUT P/SCCW ON TOP OF INTERNAL ATAPCCWQ */ 01756000 */* P (,%BLOOP) GET NEXT P/SCCW PCCWPCCW */ 01757000 */*%BRET: R RETURN */ 01758000 */*BADSLOT: END */ 01759000 * 0524 01760000 *BADSLOT: 0524 01761000 * PROC OPTIONS(NOSAVE,NOSAVEAREA); 0524 01762000 BADSLOT DS 0H 0525 01763000 * RFY 0525 01764000 * R14 RSTD; 0525 01765000 * 0525 01766000 * /*****************************************************************/ 01767000 * /* */ 01768000 * /* PROCESS BAD P/SCCWS - COULD HAVE ONE OR A CHAIN OF BAD P/SCCWS*/ 01769000 * /* */ 01770000 * /*****************************************************************/ 01771000 * 0526 01772000 * PCCWPTR=ATACPCCW; 0526 01773000 L @15,ATACPCCW(,ATAPTR) 0526 01774000 ST @15,PCCWPTR 0526 01775000 * DO WHILE(PCCWPTR^=0); 0527 01776000 B @DE00527 0527 01777000 @DL00527 DS 0H 0528 01778000 * ATACPCCW=ATACPCCW->PCCWPCCW; /* IMMEDIATELY REMOVE ONE WERE 0528 01779000 * WORKING ON FROM ATA */ 01780000 * 0528 01781000 L @15,ATACPCCW(,ATAPTR) 0528 01782000 L @15,PCCWPCCW(,@15) 0528 01783000 ST @15,ATACPCCW(,ATAPTR) 0528 01784000 * /***************************************************************/ 01785000 * /* */ 01786000 * /* DETERMINE WHETHER TO MARK PRI OR SEC ERROR. TEST FOR DPLX */ 01787000 * /* MUST BE MADE IN FOLLOWING ORDER: CHECK AIADUPLX BIT BEFORE */ 01788000 * /* PAREDPLX IN CASE WE HAVE A SARTE INSTEAD OF A PARTE */ 01789000 * /* */ 01790000 * /***************************************************************/ 01791000 * 0529 01792000 * RFY 0529 01793000 * AIA BASED(PCCWAIA); /* @ZA16409*/ 01794000 * IF AIADUPLX=ON THEN /* DUPLEXED OPERATION ? @ZA16409*/ 01795000 L @15,PCCWPTR 0530 01796000 L @15,PCCWAIA(,@15) 0530 01797000 TM AIADUPLX(@15),B'00010000' 0530 01798000 BNO @RF00530 0530 01799000 * DO; /* YES, @ZA16409*/ 01800000 * RFY 0532 01801000 * (R0, 0532 01802000 * R1) RSTD; /* @ZA16409*/ 01803000 * R0=AIADPXCT; /* OBTAIN DUPLEX COUNT @ZA16409*/ 01804000 L R0,AIADPXCT(,@15) 0533 01805000 *REPEAT1: 0534 01806000 * R1=R0-1; /* DECREMENT DUPLEX COUNT 0534 01807000 * @ZA16409*/ 01808000 REPEAT1 LR R1,R0 0534 01809000 BCTR R1,0 0534 01810000 * CS(R0,R1,AIADPXCT); /* UPDATE DUPLEX COUNT IN AIA 0535 01811000 * @ZA16409*/ 01812000 L @15,PCCWPTR 0535 01813000 L @15,PCCWAIA(,@15) 0535 01814000 CS R0,@01,AIADPXCT(@15) 0535 01815000 * BC(NE,REPEAT1); /* UNSUCCESSFUL, TRY AGAIN 0536 01816000 * @ZA16409*/ 01817000 BC 7,REPEAT1 0536 01818000 * IF R1=0 THEN /* DUPLEX COUNT IS ZERO ? 0537 01819000 * @ZA16409*/ 01820000 LTR R1,R1 0537 01821000 BNZ @RF00537 0537 01822000 * DO; /* YES- @ZA16409*/ 01823000 * AIANXAIA=ATACOMPQ; /* CHAIN IN EXISTING AIA'S 0539 01824000 * @ZA16409*/ 01825000 L @15,PCCWPTR 0539 01826000 L @15,PCCWAIA(,@15) 0539 01827000 L @12,ATACOMPQ(,ATAPTR) 0539 01828000 ST @12,AIANXAIA(,@15) 0539 01829000 * ATACOMPQ=PCCWAIA; /* PUT THIS AIA ON TOP OF 0540 01830000 * INTERNAL POST QUEUE @ZA16409*/ 01831000 ST @15,ATACOMPQ(,ATAPTR) 0540 01832000 * END; /* END - DUPLEX COUNT IS ZERO 0541 01833000 * @ZA16409*/ 01834000 * RFY 0542 01835000 * (R0, 0542 01836000 * R1) UNRSTD; /* @ZA16409*/ 01837000 @RF00537 DS 0H 0543 01838000 * IF PAREDPLX=ON THEN /* SECONDARY OPERATION ? @ZA16409*/ 01839000 L @15,PAREPTR 0543 01840000 TM PAREDPLX(@15),B'00100000' 0543 01841000 BNO @RF00543 0543 01842000 * AIASECER=ON; /* YES, SET SECONDARY ERROR BIT 01843000 * @ZA16409*/ 01844000 L @15,PCCWPTR 0544 01845000 L @15,PCCWAIA(,@15) 0544 01846000 OI AIASECER(@15),B'00000100' 0544 01847000 * ELSE /* NO, @ZA16409*/ 01848000 * AIAPRIER=ON; /* SET PRIMARY ERROR BIT @ZA16409*/ 01849000 B @RC00543 0545 01850000 @RF00543 L @15,PCCWPTR 0545 01851000 L @15,PCCWAIA(,@15) 0545 01852000 OI AIAPRIER(@15),B'00001000' 0545 01853000 * END; /* END DUPLEX PROCESSING @ZA16409*/ 01854000 * ELSE /* NO, @ZA16409*/ 01855000 * DO; /* NOT DUPLEXED OPERATION 0547 01856000 * @ZA16409*/ 01857000 B @RC00530 0547 01858000 @RF00530 DS 0H 0548 01859000 * AIANXAIA=ATACOMPQ; /* CHAIN IN EXISTING AIA'S 0548 01860000 * @ZA16409*/ 01861000 L @15,PCCWPTR 0548 01862000 L @15,PCCWAIA(,@15) 0548 01863000 L @12,ATACOMPQ(,ATAPTR) 0548 01864000 ST @12,AIANXAIA(,@15) 0548 01865000 * ATACOMPQ=PCCWAIA; /* PUT THIS AIA ON TOP OF 0549 01866000 * INTERNAL POST QUEUE @ZA16409*/ 01867000 ST @15,ATACOMPQ(,ATAPTR) 0549 01868000 * AIAPRIER=ON; /* SET PRIMARY ERROR BIT @ZA16409*/ 01869000 OI AIAPRIER(@15),B'00001000' 0550 01870000 * END; /* END-NOT DUPLEXED OPERATION 0551 01871000 * @ZA16409*/ 01872000 * RFY 0552 01873000 * AIA BASED(AIAPTR); /* @ZA16409*/ 01874000 @RC00530 DS 0H 0553 01875000 * PCCWAIA=0; /* REMOVE FROM P/SCCW FOR 0553 01876000 * RECOVERY */ 01877000 L @15,PCCWPTR 0553 01878000 SLR @12,@12 0553 01879000 ST @12,PCCWAIA(,@15) 0553 01880000 * PCCWPCCW=ATAPCCWQ; /* CHAIN IN EXISTING P/SCCWS AND */ 01881000 L @12,ATAPCCWQ(,ATAPTR) 0554 01882000 ST @12,PCCWPCCW(,@15) 0554 01883000 * ATAPCCWQ=PCCWPTR; /* PUT THIS ONE ON TOP OF 0555 01884000 * INTERNAL FREE QUE */ 01885000 ST @15,ATAPCCWQ(,ATAPTR) 0555 01886000 * PCCWPTR=ATACPCCW; /* GET NEXT, IF ANY */ 01887000 L @15,ATACPCCW(,ATAPTR) 0556 01888000 ST @15,PCCWPTR 0556 01889000 * END; /* END PROCESS BAD P/SCCWS */ 01890000 @DE00527 L @15,PCCWPTR 0557 01891000 LTR @15,@15 0557 01892000 BNZ @DL00527 0557 01893000 * RFY 0558 01894000 * R14 UNRSTD; 0558 01895000 * END BADSLOT; 0559 01896000 @EL00009 DS 0H 0559 01897000 @EF00009 DS 0H 0559 01898000 @ER00009 BR @14 0559 01899000 * 0560 01900000 */****************************************************************** */ 01901000 */* */ 01902000 */* RECHAIN - RECHAIN P/SCCWS TO BE REDRIVEN THRU IOS. */ 01903000 */* */ 01904000 */* INPUT - POINTER TO THE 1ST P/SCCW TO BE RECHAINED- IORPCCW */ 01905000 */* */ 01906000 */* PROCESS - RESET IOSB AND IORB FIELDS NECESSARY TO REDRIVE */ 01907000 */* THE I/O OPERATION FROM THIS NEW POINT. ZERO THE STARTING */ 01908000 */* TIME STAMP VALUE IN THE IORB. */ 01909000 */* */ 01910000 */* OUTPUT - IOSVST, IOSRST, IOSEEK, IOSEEKA, */ 01911000 */* IORQSZ, IORTSMP. */ 01912000 */* */ 01913000 */****************************************************************** */ 01914000 */*RECHAIN: CHART (AREF) */ 01915000 */* HEADER 0560 01916000 */* I/O COMPLETE - 0560 01917000 */*RECHAIN */ 01918000 */*RECHAIN: E BEGIN SEGMENT PROCESS RECHAIN PCCWS */ 01919000 */* N THE IORB POINTS TO THE FIRST P/SCCW TO BE RETRIED */ 01920000 */* COMMENT (12,7) ALL THE PCCWS/ */ 01921000 */* COMMENT (13,7) SCCWS BEFORE HAVE */ 01922000 */* COMMENT (14,7) BEEN PROCESSED. */ 01923000 */* COMMENT (17,7) REMAINING P/SCCWS */ 01924000 */* COMMENT (18,7) ARE TO BE RETRIED. */ 01925000 */* N THIS P/SCCW IS THE FIRST ONE RETURNED TO IOS. */ 01926000 */* D (PAG,,SWP,%S1) PAGE OR SWAP? IORSWAP */ 01927000 */* P (,%N1) SET IOSVST=ADDR OF SEARCH CCW IN PCCW */ 01928000 */*%S1: P SET IOSVST=ADDR OF SET SECTOR CCW IN SCCW */ 01929000 */*%N1: P SET IOSRST = IOSVST */ 01930000 */* P RESET IOSB FIELDS- SEE BELOW */ 01931000 */* N IOSEEK, IOSEEKA. */ 01932000 */* P SET CTR TO ONE */ 01933000 */*%CKCHN: D (NO,%ENDCHN,YES,) ANY MORE P/SCCWS IN CHAIN */ 01934000 */* P ADD 1 TO CTR */ 01935000 */*%SELECT: P (,%CKCHN) SELECT NEXT P/SCCW */ 01936000 */*%ENDCHN: P SET CTR IN IORB IORQSZ */ 01937000 */* P ZERO TIME STAMP VALUE IORTSMP */ 01938000 */* R RETURN */ 01939000 */*RECHAIN: END */ 01940000 * 0560 01941000 *RECHAIN: 0560 01942000 * PROC OPTIONS(NOSAVE,NOSAVEAREA); 0560 01943000 RECHAIN DS 0H 0561 01944000 * RFY 0561 01945000 * R14 RSTD; 0561 01946000 * PCCWPTR=IORPCCW; /* SET PCCW MAP BASE */ 01947000 L @15,IORBPTR 0562 01948000 L @12,IORPCCW(,@15) 0562 01949000 ST @12,PCCWPTR 0562 01950000 * IF IORSWAP=ON THEN /* SWAP? */ 01951000 TM IORSWAP(@15),B'00001000' 0563 01952000 BNO @RF00563 0563 01953000 * IOSVST=ADDR(SCCWSSEC); /* YES- SET IOSB TO ADDR OF SET 01954000 * SECTOR CCW- WE KNOW ITS VALID 01955000 * FOR SWAP SINCE WE KNOW WERE 0564 01956000 * PROCESSING FIRST OF SET */ 01957000 L @15,SCCWPTR 0564 01958000 LA @15,SCCWSSEC(,@15) 0564 01959000 L @12,IOSBPTR 0564 01960000 ST @15,IOSVST(,@12) 0564 01961000 * ELSE /* NOT SWAP- PAGE */ 01962000 * IOSVST=ADDR(PCCWSRCH); /* FOR PAGING- DONT KNOW WHERE WE 01963000 * ARE- SKIP SET SECTOR */ 01964000 B @RC00563 0565 01965000 @RF00563 L @15,PCCWPTR 0565 01966000 LA @15,PCCWSRCH(,@15) 0565 01967000 L @12,IOSBPTR 0565 01968000 ST @15,IOSVST(,@12) 0565 01969000 * IOSRST=IOSVST; /* OUR CCWS ARE IN V=R */ 01970000 @RC00563 L @15,IOSBPTR 0566 01971000 L @12,IOSVST(,@15) 0566 01972000 ST @12,IOSRST(,@15) 0566 01973000 * IOSEEK=PCCWCHHR; /* SEEK ADDR- P/SCCW */ 01974000 L @12,PCCWPTR 0567 01975000 MVC IOSEEK(8,@15),PCCWCHHR(@12) 0567 01976000 * IOSEEKA=PCCWCHHR; /* DYNAMIC SEEK ADDR- P/SCCW */ 01977000 MVC IOSEEKA(8,@15),PCCWCHHR(@12) 0568 01978000 * IORRQSZ=ONE; /* INITIALIZE IORB P/SCCW CT */ 01979000 L @15,IORBPTR 0569 01980000 MVI IORRQSZ(@15),X'01' 0569 01981000 * DO WHILE(PCCWPCCW^=0); /* COUNT NUMBER P/SCCWS */ 01982000 B @DE00570 0570 01983000 @DL00570 DS 0H 0571 01984000 * IORRQSZ=IORRQSZ+ONE; 0571 01985000 L @15,IORBPTR 0571 01986000 LA @12,1 0571 01987000 SLR @05,@05 0571 01988000 IC @05,IORRQSZ(,@15) 0571 01989000 ALR @12,@05 0571 01990000 STC @12,IORRQSZ(,@15) 0571 01991000 * PCCWPTR=PCCWPCCW; /* GET NEXT */ 01992000 L @15,PCCWPTR 0572 01993000 L @15,PCCWPCCW(,@15) 0572 01994000 ST @15,PCCWPTR 0572 01995000 * END; 0573 01996000 @DE00570 L @15,PCCWPTR 0573 01997000 L @15,PCCWPCCW(,@15) 0573 01998000 LTR @15,@15 0573 01999000 BNZ @DL00570 0573 02000000 * IORTSMP=''B; /* ZERO SRT TIME STAMP VALUE */ 02001000 L @15,IORBPTR 0574 02002000 XC IORTSMP(8,@15),IORTSMP(@15) 0574 02003000 * RFY 0575 02004000 * R14 UNRSTD; 0575 02005000 * END RECHAIN; 0576 02006000 @EL00010 DS 0H 0576 02007000 @EF00010 DS 0H 0576 02008000 @ER00010 BR @14 0576 02009000 * 0577 02010000 */****************************************************************** */ 02011000 */* */ 02012000 */* PROCCCWS - PROCESS ALL SUCCESSFULLY COMPLETED I/O REQUESTS. */ 02013000 */* */ 02014000 */* INPUT - POINTER TO THE FIRST P/SCCW TO BE PROCESSED- IORPCCW. */ 02015000 */* POINTER TO THE LAST P/SCCW TO BE PROCESSED- PRECEDES */ 02016000 */* IORERR. */ 02017000 */* */ 02018000 */* PROCESS - SEARCH EACH GOOD AIA. IF THE AIA IS FOR A DUPLEX */ 02019000 */* OPERATION, THEN DECREMENT THE DUPLEX COUNT IN THE AIA */ 02020000 */* BY ONE. IF THE DUPLEX COUNT IS NOW ZERO THEN PUT THAT */ 02021000 */* AIA ON THE INTERNAL COMPLETION QUEUE. NOTE THAT AN AIA */ 02022000 */* FOR A DUPLEX OPERATION WILL NEVER BE PLACED ON THE */ 02023000 */* INTERNAL COMPLETION QUEUE UNTIL BOTH WRITE OPERATIONS */ 02024000 */* HAVE COMPLETED. IF THE AIA IS NOT FOR A DUPLEX */ 02025000 */* OPERATION, THEN PLACE THE AIA ON TOP OF THE INTERNAL */ 02026000 */* COMPLETION QUEUE TO BE LATER POSTED BACK TO PAGE */ 02027000 */* COMPLETION. EACH ASSOC P/SCCW IS PLACED ON TOP OF AN */ 02028000 */* INTERNAL FREE QUEUE TO BE LATER FREED ALL AT ONCE. */ 02029000 */* @ZA16409 */ 02030000 */* */ 02031000 */* OUTPUT - ATACOMPQ, ATAPCCWQ, AND NUMREQ (NUMBER OF REQUESTS */ 02032000 */* FOR COMPBRST SUBROUTINE) */ 02033000 */* */ 02034000 */****************************************************************** */ 02035000 */* */ 02036000 */*PROCCCWS: CHART (AREF) */ 02037000 */*HEADER 0577 02038000 */* I/O COMPLETE 0577 02039000 */*PROCCCWS */ 02040000 */*PROCCCWS: E PROCESS GOOD P/SCCWS */ 02041000 */* N LOOP THRU P/SCCWS UNTIL HIT ERROR P/SCCW OR END (IORERR) */ 02042000 */* N IORERR ALWAYS SET TO ERROR P/SCCW OR 0 */ 02043000 */* P GET FIRST P/SCCW PTR */ 02044000 */*%PLOOP: D (YES,%T1,NO,) HIT ERROR OR LAST? IORERR */ 02045000 */* D (YES,,NO,%F1) AIADUPLX ON ? @ZA16409 */ 02046000 */* P DECREMENT AIADPXCT BY 1 @ZA16409 */ 02047000 */* D (YES,,NO,%S1) AIADPXCT = 0 ? @ZA16409 */ 02048000 */*%F1: P PUT THIS P/SCCWS AIA ON TOP OF INTERNAL ATACOMPQ @ZA16409 */ 02049000 */*%S1: P ZERO P/SCCW AIA PTR FOR RCV @ZA16409 */ 02050000 */* P PUT THIS P/SCCW ON TOP OF INTERNAL ATAPCCWQ */ 02051000 */* P GET NEXT P/SCCW PTR */ 02052000 */* P (,%PLOOP) INCR NUM REQUESTS FOR COMPBRST */ 02053000 */*%T1: R RETURN */ 02054000 * 0577 02055000 *PROCCCWS: 0577 02056000 * PROC OPTIONS(NOSAVE,NOSAVEAREA); 0577 02057000 PROCCCWS DS 0H 0578 02058000 * RFY 0578 02059000 * R14 RSTD; 0578 02060000 * RFY 0579 02061000 * PCCW BASED(ATACPCCW); 0579 02062000 * ATACPCCW=IORPCCW; /* PICK UP FIRST P/SCCW ON IORB */ 02063000 L @15,IORBPTR 0580 02064000 L @15,IORPCCW(,@15) 0580 02065000 ST @15,ATACPCCW(,ATAPTR) 0580 02066000 * DO WHILE(ATACPCCW^=IORERR); /* PROCESS ALL PCCWS ON IORB */ 02067000 B @DE00581 0581 02068000 @DL00581 DS 0H 0582 02069000 * IORPCCW=PCCWPCCW; /* IMMEDIATELY REMOVE IN-PROCESS 02070000 * PCCW FROM IORB FOR RECOVERY */ 02071000 L @15,ATACPCCW(,ATAPTR) 0582 02072000 L @12,PCCWPCCW(,@15) 0582 02073000 L @08,IORBPTR 0582 02074000 ST @12,IORPCCW(,@08) 0582 02075000 * RFY 0583 02076000 * AIA BASED(PCCWAIA); /* @ZA16409*/ 02077000 * IF AIADUPLX=ON THEN /* DUPLEXED OPERATION ? @ZA16409*/ 02078000 L @15,PCCWAIA(,@15) 0584 02079000 TM AIADUPLX(@15),B'00010000' 0584 02080000 BNO @RF00584 0584 02081000 * DO; /* YES, @ZA16409*/ 02082000 * RFY 0586 02083000 * (R0, 0586 02084000 * R1) RSTD; /* @ZA16409*/ 02085000 * R0=AIADPXCT; /* OBTAIN DUPLEX COUNT @ZA16409*/ 02086000 L R0,AIADPXCT(,@15) 0587 02087000 *REPEAT2: 0588 02088000 * R1=R0-1; /* DECREMENT DUPLEX COUNT 0588 02089000 * @ZA16409*/ 02090000 REPEAT2 LR R1,R0 0588 02091000 BCTR R1,0 0588 02092000 * CS(R0,R1,AIADPXCT); /* UPDATE DUPLEX COUNT IN AIA 0589 02093000 * @ZA16409*/ 02094000 L @15,ATACPCCW(,ATAPTR) 0589 02095000 L @15,PCCWAIA(,@15) 0589 02096000 CS R0,@01,AIADPXCT(@15) 0589 02097000 * BC(NE,REPEAT2); /* UNSUCCESSFUL, TRY AGAIN 0590 02098000 * @ZA16409*/ 02099000 BC 7,REPEAT2 0590 02100000 * IF R1=0 THEN /* DUPLEX COUNT IS ZERO ? 0591 02101000 * @ZA16409*/ 02102000 LTR R1,R1 0591 02103000 BNZ @RF00591 0591 02104000 * DO; /* YES- @ZA16409*/ 02105000 * AIANXAIA=ATACOMPQ; /* CHAIN IN EXISTING AIA'S 0593 02106000 * @ZA16409*/ 02107000 L @15,ATACPCCW(,ATAPTR) 0593 02108000 L @15,PCCWAIA(,@15) 0593 02109000 L @12,ATACOMPQ(,ATAPTR) 0593 02110000 ST @12,AIANXAIA(,@15) 0593 02111000 * ATACOMPQ=PCCWAIA; /* PUT THIS AIA ON TOP OF 0594 02112000 * INTERNAL POST QUEUE @ZA16409*/ 02113000 ST @15,ATACOMPQ(,ATAPTR) 0594 02114000 * END; /* END - DUPLEX COUNT IS ZERO 0595 02115000 * @ZA16409*/ 02116000 * RFY 0596 02117000 * (R0, 0596 02118000 * R1) UNRSTD; /* @ZA16409*/ 02119000 @RF00591 DS 0H 0597 02120000 * END; /* END DUPLEX PROCESSING @ZA16409*/ 02121000 * ELSE /* NO, @ZA16409*/ 02122000 * DO; /* NOT DUPLEXED OPERATION 0598 02123000 * @ZA16409*/ 02124000 B @RC00584 0598 02125000 @RF00584 DS 0H 0599 02126000 * AIANXAIA=ATACOMPQ; /* CHAIN IN EXISTING AIA'S 0599 02127000 * @ZA16409*/ 02128000 L @15,ATACPCCW(,ATAPTR) 0599 02129000 L @15,PCCWAIA(,@15) 0599 02130000 L @12,ATACOMPQ(,ATAPTR) 0599 02131000 ST @12,AIANXAIA(,@15) 0599 02132000 * ATACOMPQ=PCCWAIA; /* PUT THIS AIA ON TOP OF 0600 02133000 * INTERNAL POST QUEUE @ZA16409*/ 02134000 ST @15,ATACOMPQ(,ATAPTR) 0600 02135000 * END; /* END-NOT DUPLEXED OPERATION 0601 02136000 * @ZA16409*/ 02137000 * RFY 0602 02138000 * AIA BASED(AIAPTR); /* @ZA16409*/ 02139000 @RC00584 DS 0H 0603 02140000 * PCCWAIA=0; /* REMOVE FROM P/SCCW FOR 0603 02141000 * RECOVERY */ 02142000 L @15,ATACPCCW(,ATAPTR) 0603 02143000 SLR @12,@12 0603 02144000 ST @12,PCCWAIA(,@15) 0603 02145000 * PCCWPCCW=ATAPCCWQ; /* CHAIN IN EXISTING P/SCCWS AND */ 02146000 L @12,ATAPCCWQ(,ATAPTR) 0604 02147000 ST @12,PCCWPCCW(,@15) 0604 02148000 * ATAPCCWQ=ATACPCCW; /* PUT THIS ONE ON TOP OF 0605 02149000 * INTERNAL FREE QUEUE */ 02150000 ST @15,ATAPCCWQ(,ATAPTR) 0605 02151000 * ATACPCCW=IORPCCW; /* GET NEXT P/SCCW ON THIS IORB */ 02152000 L @15,IORBPTR 0606 02153000 L @15,IORPCCW(,@15) 0606 02154000 ST @15,ATACPCCW(,ATAPTR) 0606 02155000 * NUMREQ=NUMREQ+ONE; /* INCR NUMBER REQUESTS FOR 0607 02156000 * COMPBRST */ 02157000 LA @15,1 0607 02158000 AL @15,NUMREQ 0607 02159000 ST @15,NUMREQ 0607 02160000 * END; 0608 02161000 @DE00581 L @15,IORBPTR 0608 02162000 CLC ATACPCCW(4,ATAPTR),IORERR(@15) 0608 02163000 BNE @DL00581 0608 02164000 * RFY 0609 02165000 * PCCW; 0609 02166000 * RFY 0610 02167000 * R14 UNRSTD; 0610 02168000 * END PROCCCWS; 0611 02169000 @EL00011 DS 0H 0611 02170000 @EF00011 DS 0H 0611 02171000 @ER00011 BR @14 0611 02172000 * 0612 02173000 */********************************************************************/ 02174000 */* */ 02175000 */* POSTCMP _ RETURN AIA'S TO PAGE COMPLETION AND FREE PCCWS */ 02176000 */* */ 02177000 */* INPUT - INTERNAL FREE QUE OF P/SCCWS - ATAPCCWQ */ 02178000 */* INTERNAL POST QUE OF AIAS - ATACOMPQ */ 02179000 */* */ 02180000 */* PROCESS - THE CHAIN OF P/SCCWS IS PLACED (C+S) ON TOP OF */ 02181000 */* ITS RESPECTIVE AVAILABLE QUEUE (ASMPCCWQ OR SARSCCWQ). */ 02182000 */* THE CHAIN OF AIAS IS PASSED TO PAGE COMPLETION. */ 02183000 */* */ 02184000 */* OUTPUT - NONE. */ 02185000 */* */ 02186000 */********************************************************************/ 02187000 */*POSTCMP: CHART (AREF) */ 02188000 */*HEADER 0612 02189000 */* I/O COMPLETE 0612 02190000 */*POSTCMP */ 02191000 */*POSTCMP: E POST AIAS + FREE P/SCCWS */ 02192000 */* D (YES,,NO,%F2) ANY P/SCCWS TO RETURN? ATAPCCWQ */ 02193000 */* N LOOP THRU ALL P/SCCWS ON INTERNAL FREECCWQ AND GET 0612 02194000 */* PTR TO LAST */ 02195000 */* D (PAG,,SWP,%S1) PCCWS OR SCCWS? IORSWAP */ 02196000 */* P ZERO INTERNAL PTR ATAPCCWQ FOR RCV */ 02197000 */* P SET CHAIN FIELD OF LAST PCCW TO 1ST ON ASMPCCWQ */ 02198000 */* P (,%F1) RETURN PCCWS TO ASMPCCWQ (C+S) */ 02199000 */*%S1: P ZERO INTERNAL PTR ATAPCCWQ FOR RCV */ 02200000 */* P SET CHAIN FIELD OF LAST SCCW TO 1ST ON SARSCCWQ */ 02201000 */* P RETURN SCCWS TO SARSCCWQ (C+S) */ 02202000 */*%F1: P SET R13 TO SAVEAREA ADDRESS */ 02203000 */* P SET R1 TO ADDRESS OF 1ST AIA ON ATACOMPQ */ 02204000 */* P ZERO INTERNAL PTR ATACOMPQ FOR RCV */ 02205000 */* S ILRPAGCM: POST BACK AIAS */ 02206000 */*%F2: R RETURN */ 02207000 */*POSTCMP: END */ 02208000 * 0612 02209000 *POSTCMP: 0612 02210000 * PROC OPTIONS(NOSAVE,NOSAVEAREA); 0612 02211000 POSTCMP DS 0H 0613 02212000 * RFY 0613 02213000 * R14 RSTD; 0613 02214000 * RETADDR1=R14; /* SAVE RETURN ADDRESS */ 02215000 ST R14,RETADDR1 0614 02216000 * RFY 0615 02217000 * R14 UNRSTD; 0615 02218000 * IF ATAPCCWQ^=0 THEN /* ANY P/SCCWS TO RETURN? */ 02219000 L @12,ATAPCCWQ(,ATAPTR) 0616 02220000 LTR @12,@12 0616 02221000 BZ @RF00616 0616 02222000 * DO; /* YES- FREE P/SCCWS AND POST 0617 02223000 * BACK ASSOC AIAS */ 02224000 * PCCWPTR=ATAPCCWQ; 0618 02225000 ST @12,PCCWPTR 0618 02226000 * DO WHILE PCCWPCCW^=0; /* FIND LAST P/SCCW ON INTERNAL 02227000 * FREE QUEUE */ 02228000 B @DE00619 0619 02229000 @DL00619 DS 0H 0620 02230000 * PCCWPTR=PCCWPCCW; /* GET NEXT P/SCCW */ 02231000 L @12,PCCWPTR 0620 02232000 L @12,PCCWPCCW(,@12) 0620 02233000 ST @12,PCCWPTR 0620 02234000 * END; /* PCCWPTR NOW PTS TO LAST P/SCCW*/ 02235000 * 0621 02236000 @DE00619 L @12,PCCWPTR 0621 02237000 L @12,PCCWPCCW(,@12) 0621 02238000 LTR @12,@12 0621 02239000 BNZ @DL00619 0621 02240000 * /*************************************************************/ 02241000 * /* */ 02242000 * /* DETERMINE WHETHER PCCWS OR SCCWS TO RETURN TO APPROPRIATE */ 02243000 * /* AVAILABLE QUEUE. */ 02244000 * /* */ 02245000 * /*************************************************************/ 02246000 * 0622 02247000 * RFY 0622 02248000 * R2 RSTD; 0622 02249000 * IF IORSWAP=ON THEN /* PROCESSING SCCWS? */ 02250000 L @12,IORBPTR 0623 02251000 TM IORSWAP(@12),B'00001000' 0623 02252000 BNO @RF00623 0623 02253000 * R2=ADDR(SARSCCWQ); /* SETUP TO RETURN TO SART */ 02254000 L R2,SARTPTR 0624 02255000 LA R2,SARSCCWQ(,R2) 0624 02256000 * ELSE /* NO- PAGING */ 02257000 * R2=ADDR(ASMPCCWQ); /* SETUP TO RETURN TO ASMVT */ 02258000 B @RC00623 0625 02259000 @RF00623 LA R2,ASMPCCWQ(,ASMVTPTR) 0625 02260000 * RFY 0626 02261000 * (R0, 0626 02262000 * R1) RSTD; 0626 02263000 @RC00623 DS 0H 0627 02264000 * R1=ATAPCCWQ; /* PICK UP CHAIN OF P/SCCWS */ 02265000 L R1,ATAPCCWQ(,ATAPTR) 0627 02266000 * ATAPCCWQ=0; /* IMMEDIATELY ZERO FOR RECOVERY */ 02267000 SLR @12,@12 0628 02268000 ST @12,ATAPCCWQ(,ATAPTR) 0628 02269000 * R0=R2->PORSCCWQ; /* GET HEAD OF P/SCCW AVAILABLE 02270000 * QUEUE */ 02271000 L R0,PORSCCWQ(,R2) 0629 02272000 *REPLPSCW: 0630 02273000 * PCCWPCCW=R0; /* CHAIN IN EXISTING P/SCCWS */ 02274000 REPLPSCW L @12,PCCWPTR 0630 02275000 ST R0,PCCWPCCW(,@12) 0630 02276000 * CS(R0,R1,R2->PORSCCWQ); /* UPDATE AVAILABLE QUEUE */ 02277000 CS R0,@01,PORSCCWQ(R2) 0631 02278000 * BC(NE,REPLPSCW); 0632 02279000 BC 7,REPLPSCW 0632 02280000 * RFY 0633 02281000 * (R0, 0633 02282000 * R2) UNRSTD; 0633 02283000 * 0633 02284000 * /*************************************************************/ 02285000 * /* */ 02286000 * /* POST BACK AIAS TO ILRPAGCM */ 02287000 * /* */ 02288000 * /*************************************************************/ 02289000 * 0634 02290000 * R13=ADDR(SAVEREGS); /* SET UP SAVE AREA FOR PAGE 0634 02291000 * COMPLETION */ 02292000 LA R13,SAVEREGS 0634 02293000 * R1=ATACOMPQ; /* SET PARM REG TO PAGE 0635 02294000 * COMPLETION */ 02295000 L R1,ATACOMPQ(,ATAPTR) 0635 02296000 * ATACOMPQ=0; /* ZERO FOR RECOVERY */ 02297000 SLR @12,@12 0636 02298000 ST @12,ATACOMPQ(,ATAPTR) 0636 02299000 * CALL ILRPAGCM; /* POST BACK AIAS */ 02300000 L @15,@CV02487 0637 02301000 BALR @14,@15 0637 02302000 * RFY 0638 02303000 * R1 UNRSTD; 0638 02304000 * END; /* END FREE P/SCCWS AND POST BACK 02305000 * AIAS */ 02306000 * ELSE 0640 02307000 * ; /* NO P/SCCWS TO RETURN */ 02308000 @RF00616 DS 0H 0641 02309000 * RFY 0641 02310000 * R14 RSTD; 0641 02311000 * R14=RETADDR1; /* RESTORE RETURN ADDRESS */ 02312000 L R14,RETADDR1 0642 02313000 * RFY 0643 02314000 * R14 UNRSTD; 0643 02315000 * END POSTCMP; 0644 02316000 @EL00012 DS 0H 0644 02317000 @EF00012 DS 0H 0644 02318000 @ER00012 BR @14 0644 02319000 * 0645 02320000 */********************************************************************/ 02321000 */* */ 02322000 */* COMPBRST: COMPUTE SERVICE TIME TO BE USED IN COMPUTING THE */ 02323000 */* LENGTH OF A SERVICE BURST. */ 02324000 */* */ 02325000 */* INPUT: THE TIME OF DAY AT ENTRY TO IOS WHICH INITIATED THE I/O */ 02326000 */* REQUEST, AND THE OLD SERVICE TIME FOR ONE PAGE REQUEST IN */ 02327000 */* PART ENTRY */ 02328000 */* */ 02329000 */* PROCESS: THE CURRENT TIME OF DAY IS OBTAINED AND SUBTRACTED FROM */ 02330000 */* THE TIME OF DAY WHEN IOS WAS CALLED. THIS VALUE IS */ 02331000 */* DIVIDED BY THE NUMBER OF I/O REQUESTS JUST COMPLETED, */ 02332000 */* YIELDING THE SERVICE TIME FOR ONE PAGE REQUEST. THIS */ 02333000 */* VALUE IS AVERAGED INTO THE OLD VALUE (PARERQTM) AND */ 02334000 */* THE NEW VALUE IS SAVED IN THE PART ENTRY. */ 02335000 */* (IF AN I/O ERROR HAS OCCURRED, A NEW SERVICE TIME WILL */ 02336000 */* NOT BE COMPUTED- THIS SUBROUTINE WILL NOT BE CALLED.) */ 02337000 */* */ 02338000 */* OUTPUT: A NEW SERVICE TIME IS STORED IN THE PART ENTRY. */ 02339000 */* */ 02340000 */********************************************************************/ 02341000 */*COMPBRST: CHART (AREF) */ 02342000 */* HEADING 0645 02343000 */* I/O COMPLETE - 0645 02344000 */*COMPBRST */ 02345000 */*COMPBRST: E COMPUTE I/O SERVICE TIME */ 02346000 */* N TIME WILL BE 0 IF COMPLETION FOR SWAP */ 02347000 */* D (YES,,NO,%CEX) TIME SAVED BY SLOT SORT? */ 02348000 */* D (YES,,NO,%ZERO) NUMBER OF REQUESTS NONZERO ? */ 02349000 */* P COMPUTE TIME IT TOOK TO PROCESS 1 REQUEST */ 02350000 */* P COMPUTE MOVING AVERAGE OF SERVICE TIME */ 02351000 */* D (YES,,NO,%CEX) IS NEW VALUE NON-ZERO? */ 02352000 */* P (,%CEX) STORE NEW AVERAGE IN PART ENTRY (PARERQTM) */ 02353000 */*%ZERO: P ZERO SLOT SORT TIME */ 02354000 */*%CEX: R RETURN */ 02355000 */*COMPBRST: END */ 02356000 * 0645 02357000 *COMPBRST: 0645 02358000 * PROC OPTIONS(NOSAVE,NOSAVEAREA); 0645 02359000 COMPBRST DS 0H 0646 02360000 * DCL 0646 02361000 * NOCARRY LABEL GENERATED; /* */ 02362000 * RFY 0647 02363000 * R14 RSTD; /* */ 02364000 * RTNADDR=R14; /* SAVE RETURN ADDRESS */ 02365000 ST R14,RTNADDR 0648 02366000 * RFY 0649 02367000 * R14 UNRSTD; 0649 02368000 * IF IORTSMP^=DZERO THEN /* WAS TIME STORED PRIOR TO SRT 02369000 * CALLING IOS AND NOT 0650 02370000 * SUBSEQUENTLY ZEROED BECAUSE 0650 02371000 * THIS IS SWAP OR STCK IN IOD 0650 02372000 * FAILED... */ 02373000 L @12,IORBPTR 0650 02374000 CLC IORTSMP(8,@12),@CB02414 0650 02375000 BE @RF00650 0650 02376000 * DO; /* YES, COMPUTE DIFFERENCE */ 02377000 * IF NUMREQ^=CODE00 THEN 0652 02378000 L @08,NUMREQ 0652 02379000 LTR @08,@08 0652 02380000 BZ @RF00652 0652 02381000 * DO; 0653 02382000 * 0653 02383000 * /*********************************************************/ 02384000 * /* */ 02385000 * /* COMPUTE THE SERVICE TIME (PARERQTM) USED IN COMPUTING */ 02386000 * /* THE THE NUMBER OF REQUESTS THAT CAN BE SERVICED IN ONE*/ 02387000 * /* SERVICE BURST. THE TIME IT ACTUALLY TOOK TO COMPLETE */ 02388000 * /* THE I/O IS COMPUTED (IOCTOD - SRTTOD) AND DIVIDED BY */ 02389000 * /* THE NUMBER OF REQUESTS PROCESSED. A MOVING AVERAGE OF */ 02390000 * /* THIS SERVICE TIME FOR ONE REQUEST IS THEN COMPUTED */ 02391000 * /* USING 3/4 OF THE OLD PARERQTM AND 1/4 OF THE NEW */ 02392000 * /* VALUE. */ 02393000 * /* */ 02394000 * /*********************************************************/ 02395000 * 0654 02396000 * PCTPTR=PAREPCTP; /* SET UP ADDR OF PCT */ 02397000 L @08,PAREPTR 0654 02398000 L PCTPTR,PAREPCTP(,@08) 0654 02399000 * RFY 0655 02400000 * (R0, 0655 02401000 * R1, 0655 02402000 * R14, 0655 02403000 * R15) RSTD; 0655 02404000 * LM(R14,R15,IOCTOD); /* GET TIME AT ENTRY TO IOC */ 02405000 LM R14,R15,IOCTOD 0656 02406000 * LM(R0,R1,IORTSMP); /* GET TIME AT ENTRY TO IOS */ 02407000 LM R0,R1,IORTSMP(@12) 0657 02408000 * GEN REFS(R0,R1,R14,R15) CODE DEFS(NOCARRY); 0658 02409000 SLR R15,R1 SUBTRACT LOW ORDER PORTION 02410000 BC 3,NOCARRY SUBTRACT 1 FROM HIGH REGISTER 02411000 BCTR R14,0 IF A CARRY 02412000 NOCARRY SLR R14,R0 SUBTRACT HIGH ORDER PORTION 02413000 SRDA R14,12 SHIFT OUT LOW 12 BITS 02414000 * BC(4,ENDTIME); /* IF NEGATIVE NUMBER - IGNORE */ 02415000 BC 4,ENDTIME 0659 02416000 * RFY 0660 02417000 * (R0, 0660 02418000 * R1) UNRSTD; 0660 02419000 * IF R15>CODE00 THEN /* Q. A POSITIVE NUMBER? */ 02420000 LTR R15,R15 0661 02421000 BNP @RF00661 0661 02422000 *SUBTR: 0662 02423000 * R15=R15/NUMREQ; /* COMPUTE SERVICE TIME */ 02424000 SUBTR LR @00,R15 0662 02425000 SRDA @00,32 0662 02426000 D @00,NUMREQ 0662 02427000 LR R15,@01 0662 02428000 * R14=PARERQTM; /* GET CURRENT VALUE */ 02429000 @RF00661 L @12,PAREPTR 0663 02430000 L R14,PARERQTM(,@12) 0663 02431000 * GEN(SLA R14,1); /* MULTIPLY BY TWO */ 02432000 SLA R14,1 02433000 * R14=R14+R15+PCTRQTIM; /* ADD IN EXPECTED VALUE FROM PCT*/ 02434000 LR @12,R14 0665 02435000 ALR @12,R15 0665 02436000 AL @12,PCTRQTIM(,PCTPTR) 0665 02437000 LR R14,@12 0665 02438000 * GEN(SRA R14,2); /* DIVIDE BY FOUR */ 02439000 SRA R14,2 02440000 * IF R14>CODE00 THEN /* IS NEW VALUE NON-ZERO? */ 02441000 LTR R14,R14 0667 02442000 BNP @RF00667 0667 02443000 * PARERQTM=R14; /* YES, SET NEW VALUE */ 02444000 L @12,PAREPTR 0668 02445000 ST R14,PARERQTM(,@12) 0668 02446000 * ELSE 0669 02447000 * ; 0669 02448000 @RF00667 DS 0H 0670 02449000 * RFY 0670 02450000 * (R14, 0670 02451000 * R15) UNRSTD; 0670 02452000 * END; 0671 02453000 * ELSE 0672 02454000 * IORTSMP=''B; /* ZERO TIME IF NUMREQ WAS 0 */ 02455000 B @RC00652 0672 02456000 @RF00652 L @12,IORBPTR 0672 02457000 XC IORTSMP(8,@12),IORTSMP(@12) 0672 02458000 * END; 0673 02459000 * ELSE 0674 02460000 * ; 0674 02461000 @RF00650 DS 0H 0675 02462000 *ENDTIME: 0675 02463000 * RFY 0675 02464000 * R14 RSTD; /* */ 02465000 @RC00650 DS 0H 0675 02466000 ENDTIME DS 0H 0676 02467000 * R14=RTNADDR; /* RESTORE RETURN ADDRESS */ 02468000 L R14,RTNADDR 0676 02469000 * RFY 0677 02470000 * R14 UNRSTD; /* */ 02471000 * END COMPBRST; 0678 02472000 @EL00013 DS 0H 0678 02473000 @EF00013 DS 0H 0678 02474000 @ER00013 BR @14 0678 02475000 * 0679 02476000 */********************************************************************/ 02477000 */* */ 02478000 */* ABNMTERM - RETRY ENTIRE STRING OF P/SCCWS. */ 02479000 */* */ 02480000 */* INPUT - POINTER TO THE FIRST PCCW IN THE STRING (IORPCCW) */ 02481000 */* */ 02482000 */* PROCESS - THE AIA FOR EACH P/SCCW ON THE CHAIN IS MARKED */ 02483000 */* RETRY. IF THE AIA IS FOR A DUPLEX OPERATION, THEN */ 02484000 */* DECREMENT THE DUPLEX COUNT IN THE AIA BY ONE. IF THE */ 02485000 */* DUPLEX COUNT IS NOW ZERO THEN PUT THAT AIA ON THE */ 02486000 */* INTERNAL COMPLETION QUEUE. NOTE THAT AN AIA FOR A DUPLEX */ 02487000 */* OPERATION WILL NEVER BE PLACED ON THE INTERNAL COMPLETION */ 02488000 */* QUEUE UNTIL BOTH WRITE OPERATIONS HAVE COMPLETED. IF THE */ 02489000 */* AIA IS NOT FOR A DUPLEX OPERATION, THEN PLACE THE AIA */ 02490000 */* ON TOP OF THE INTERNAL POST QUEUE. EACH ASSOCIATED */ 02491000 */* P/SCCW IS PLACED ON TOP OF THE INTERNAL FREE QUEUE. */ 02492000 */* POSTCMP SUBRTN IS CALLED TO FREE ALL P/SCCWS AND CALL */ 02493000 */* PAGE COMPLETION WITH THE AIAS. @ZA16409*/ 02494000 */* */ 02495000 */* OUTPUT - NONE. */ 02496000 */* */ 02497000 */********************************************************************/ 02498000 */*ABNMTERM: CHART (AREF) */ 02499000 */* HEADER 0679 02500000 */* I/O COMPLETE - 0679 02501000 */*ABNMTERM */ 02502000 */*ABNMTERM: E PROCESS ABNORML TERMINATION OF I/O */ 02503000 */* N PROCESS AN ENTIRE STRING OF P/SCCWS */ 02504000 */* N THAT WERE ABNORMALLY TERMINATED, IF ANY */ 02505000 */* P PICK UP 1ST P/SCCW ATACPCCW */ 02506000 */*%ALOOP: D (YES,%ACMP,NO,) LAST ONE? ATACPCCW */ 02507000 */* P SET ASSOC AIAS RETRY FLAG AIAIORTY */ 02508000 */* D (YES,,NO,%F1) AIADUPLX ON ? @ZA16409 */ 02509000 */* P DECREMENT AIADPXCT BY 1 @ZA16409 */ 02510000 */* D (YES,,NO,%S1) AIADPXCT = 0 ? @ZA16409 */ 02511000 */*%F1: P PUT ASSOC AIA ON TOP OF INTERNAL ATACOMPQ @ZA16409 */ 02512000 */*%S1: P ZERO P/SCCW PTR TO AIA FOR RCV @ZA16409 */ 02513000 */* P PUT P/SCCW ON TOP OF INTERNAL ATAPCCWQ */ 02514000 */* P (,%ALOOP) GET NEXT P/SCCW PCCWPCCW */ 02515000 */*%ACMP: S POSTCMP: POST AIAS / FREE CCWS */ 02516000 */* R RETURN */ 02517000 */*ABNMTERM: END */ 02518000 * 0679 02519000 *ABNMTERM: 0679 02520000 * PROC OPTIONS(NOSAVE,NOSAVEAREA); 0679 02521000 ABNMTERM DS 0H 0680 02522000 * RFY 0680 02523000 * R14 RSTD; 0680 02524000 * RTNADDR=R14; /* SAVE RETURN ADDRESS */ 02525000 ST R14,RTNADDR 0681 02526000 * RFY 0682 02527000 * R14 UNRSTD; 0682 02528000 * RFY 0683 02529000 * PCCW BASED(ATACPCCW); 0683 02530000 * ATACPCCW=IORPCCW; /* PICK UP FIRST P/SCCW ON IORB */ 02531000 L @12,IORBPTR 0684 02532000 L @12,IORPCCW(,@12) 0684 02533000 ST @12,ATACPCCW(,ATAPTR) 0684 02534000 * DO WHILE(ATACPCCW^=0); /* PROCESS ALL P/SCCWS ON IORB, 02535000 * IF ANY */ 02536000 B @DE00685 0685 02537000 @DL00685 DS 0H 0686 02538000 * IORPCCW=PCCWPCCW; /* IMMEDIATELY REMOVE IN PROCESS 02539000 * P/SCCW FROM IORB FOR RECOVERY */ 02540000 L @12,ATACPCCW(,ATAPTR) 0686 02541000 L @05,PCCWPCCW(,@12) 0686 02542000 L @02,IORBPTR 0686 02543000 ST @05,IORPCCW(,@02) 0686 02544000 * PCCWAIA->AIAIORTY=ON; /* INDICATE RETRY */ 02545000 L @12,PCCWAIA(,@12) 0687 02546000 OI AIAIORTY(@12),B'00100000' 0687 02547000 * RFY 0688 02548000 * AIA BASED(PCCWAIA); /* @ZA16409*/ 02549000 * IF AIADUPLX=ON THEN /* DUPLEXED OPERATION ? @ZA16409*/ 02550000 TM AIADUPLX(@12),B'00010000' 0689 02551000 BNO @RF00689 0689 02552000 * DO; /* YES, @ZA16409*/ 02553000 * RFY 0691 02554000 * (R0, 0691 02555000 * R1) RSTD; /* @ZA16409*/ 02556000 * R0=AIADPXCT; /* OBTAIN DUPLEX COUNT @ZA16409*/ 02557000 L R0,AIADPXCT(,@12) 0692 02558000 *REPEAT3: 0693 02559000 * R1=R0-1; /* DECREMENT DUPLEX COUNT 0693 02560000 * @ZA16409*/ 02561000 REPEAT3 LR R1,R0 0693 02562000 BCTR R1,0 0693 02563000 * CS(R0,R1,AIADPXCT); /* UPDATE DUPLEX COUNT IN AIA 0694 02564000 * @ZA16409*/ 02565000 L @12,ATACPCCW(,ATAPTR) 0694 02566000 L @12,PCCWAIA(,@12) 0694 02567000 CS R0,@01,AIADPXCT(@12) 0694 02568000 * BC(NE,REPEAT3); /* UNSUCCESSFUL, TRY AGAIN 0695 02569000 * @ZA16409*/ 02570000 BC 7,REPEAT3 0695 02571000 * IF R1=0 THEN /* DUPLEX COUNT IS ZERO ? 0696 02572000 * @ZA16409*/ 02573000 LTR R1,R1 0696 02574000 BNZ @RF00696 0696 02575000 * DO; /* YES- @ZA16409*/ 02576000 * AIANXAIA=ATACOMPQ; /* CHAIN IN EXISTING AIA'S 0698 02577000 * @ZA16409*/ 02578000 L @12,ATACPCCW(,ATAPTR) 0698 02579000 L @12,PCCWAIA(,@12) 0698 02580000 L @05,ATACOMPQ(,ATAPTR) 0698 02581000 ST @05,AIANXAIA(,@12) 0698 02582000 * ATACOMPQ=PCCWAIA; /* PUT THIS AIA ON TOP OF 0699 02583000 * INTERNAL POST QUEUE @ZA16409*/ 02584000 ST @12,ATACOMPQ(,ATAPTR) 0699 02585000 * END; /* END - DUPLEX COUNT IS ZERO 0700 02586000 * @ZA16409*/ 02587000 * RFY 0701 02588000 * (R0, 0701 02589000 * R1) UNRSTD; /* @ZA16409*/ 02590000 @RF00696 DS 0H 0702 02591000 * END; /* END DUPLEX PROCESSING @ZA16409*/ 02592000 * ELSE /* NO, @ZA16409*/ 02593000 * DO; /* NOT DUPLEXED OPERATION 0703 02594000 * @ZA16409*/ 02595000 B @RC00689 0703 02596000 @RF00689 DS 0H 0704 02597000 * AIANXAIA=ATACOMPQ; /* CHAIN IN EXISTING AIA'S 0704 02598000 * @ZA16409*/ 02599000 L @12,ATACPCCW(,ATAPTR) 0704 02600000 L @12,PCCWAIA(,@12) 0704 02601000 L @05,ATACOMPQ(,ATAPTR) 0704 02602000 ST @05,AIANXAIA(,@12) 0704 02603000 * ATACOMPQ=PCCWAIA; /* PUT THIS AIA ON TOP OF 0705 02604000 * INTERNAL POST QUEUE @ZA16409*/ 02605000 ST @12,ATACOMPQ(,ATAPTR) 0705 02606000 * END; /* END-NOT DUPLEXED OPERATION 0706 02607000 * @ZA16409*/ 02608000 * RFY 0707 02609000 * AIA BASED(AIAPTR); /* @ZA16409*/ 02610000 @RC00689 DS 0H 0708 02611000 * PCCWAIA=0; /* REMOVE FROM PCCW FOR RECOVERY */ 02612000 L @12,ATACPCCW(,ATAPTR) 0708 02613000 SLR @05,@05 0708 02614000 ST @05,PCCWAIA(,@12) 0708 02615000 * PCCWPCCW=ATAPCCWQ; /* CHAIN IN EXISTING P/SCCWS AND */ 02616000 L @05,ATAPCCWQ(,ATAPTR) 0709 02617000 ST @05,PCCWPCCW(,@12) 0709 02618000 * ATAPCCWQ=ATACPCCW; /* PUT THIS ONE ON TOP OF 0710 02619000 * INTERNAL FREE QUEUE */ 02620000 ST @12,ATAPCCWQ(,ATAPTR) 0710 02621000 * ATACPCCW=IORPCCW; /* GET NEXT P/SCCW ON THIS IORB */ 02622000 L @12,IORBPTR 0711 02623000 L @12,IORPCCW(,@12) 0711 02624000 ST @12,ATACPCCW(,ATAPTR) 0711 02625000 * END; 0712 02626000 @DE00685 L @12,ATACPCCW(,ATAPTR) 0712 02627000 LTR @12,@12 0712 02628000 BNZ @DL00685 0712 02629000 * RFY 0713 02630000 * PCCW; 0713 02631000 * CALL POSTCMP; /* POST BACK ANY AIAS + FREE 0714 02632000 * P/SCCWS */ 02633000 BAL @14,POSTCMP 0714 02634000 * RFY 0715 02635000 * R14 RSTD; 0715 02636000 * R14=RTNADDR; /* RESTORE RETURN ADDR */ 02637000 L R14,RTNADDR 0716 02638000 * RFY 0717 02639000 * R14 UNRSTD; 0717 02640000 * END ABNMTERM; 0718 02641000 @EL00014 DS 0H 0718 02642000 @EF00014 DS 0H 0718 02643000 @ER00014 BR @14 0718 02644000 * 0719 02645000 */********************************************************************/ 02646000 */* */ 02647000 */* BADPACK - */ 02648000 */* */ 02649000 */* INPUT - NONE. */ 02650000 */* */ 02651000 */* PROCESS - BADPACK MARKS THE PAGE/SWAP SPACE AS UNUSABLE AFTER */ 02652000 */* OBTAINING THE SALLOC LOCK. ILRMSG00 IS CALLED TO INDICATE */ 02653000 */* SITUATION AND DETERMINE WHETHER THE SYSTEM CAN CONTINUE. */ 02654000 */* NOTE: CONTROL MAY NOT BE RETURNED FROM ILRMSG00. */ 02655000 */* */ 02656000 */* OUTPUT - PAREDSBD ON FOR THIS PAGE/SWAP SPACE. */ 02657000 */* */ 02658000 */********************************************************************/ 02659000 */*BADPACK: CHART (AREF) */ 02660000 */* HEADER 0719 02661000 */* I/O COMPLETE - 0719 02662000 */*BADPACK */ 02663000 */*BADPACK: E MARK PAGE/SWAP SPACE UNUSABLE */ 02664000 */* L SETLOCK: OBTAIN SALLOC */ 02665000 */* P MARK SWAP OR PAGE SPACE BAD PAREDSBD */ 02666000 */* P *** FRR *** ATABADPK ON */ 02667000 */* P SET PARTE/SARTE @ IN MSG/TERM PLIST */ 02668000 */* D (PAG,,SWP,%S1) PAGE OR SWAP? IORSWAP */ 02669000 */* P INDICATE PAGE IN MSG/TERM PLIST */ 02670000 */*%MSG: P FINAL SET UP FOR CALL TO MSG00 */ 02671000 */* N MAY NOT RETURN IF MSG00 TAKES SYS DOWN */ 02672000 */* P *** FRR *** ATABADPK OFF */ 02673000 */* S ILRMSG00: INDICATE SITUATION */ 02674000 */* L SETLOCK: RELEASE SALLOC */ 02675000 */* R RETURN */ 02676000 */*%S1: P (,%MSG) INDICATE SWAP IN MSG PLIST */ 02677000 */*BADPACK: END */ 02678000 * 0719 02679000 *BADPACK: 0719 02680000 * PROC OPTIONS(NOSAVE,NOSAVEAREA); 0719 02681000 BADPACK DS 0H 0720 02682000 * RFY 0720 02683000 * R14 RSTD; 0720 02684000 * RTNADDR=R14; /* SAVE RETURN ADDR */ 02685000 ST R14,RTNADDR 0721 02686000 * RFY 0722 02687000 * R14 UNRSTD; 0722 02688000 * 0722 02689000 * /*****************************************************************/ 02690000 * /* */ 02691000 * /* SERIALIZE THIS PROCESSING WITH SALLOC LOCK */ 02692000 * /* */ 02693000 * /*****************************************************************/ 02694000 * 0723 02695000 * RFY 0723 02696000 * (R11, 0723 02697000 * R12, 0723 02698000 * R13, 0723 02699000 * R14) RSTD; 0723 02700000 *IOCLK2: 0724 02701000 * GEN REFS(R12,R13,R14,PSALITA,FLC) SETS(R11,R12,R13,R14); 0724 02702000 IOCLK2 DS 0H 0724 02703000 SETLOCK OBTAIN,TYPE=SALLOC,MODE=UNCOND, *02704000 RELATED=(PAGE/SWAP,ILRCMP(IOCUNLK2)) 02705000 * RFY 0725 02706000 * (R11, 0725 02707000 * R12, 0725 02708000 * R14) UNRSTD; 0725 02709000 * IF PAREDSBD=OFF THEN /* IS THE BIT STILL OFF @Z40WPWP*/ 02710000 L @12,PAREPTR 0726 02711000 TM PAREDSBD(@12),B'01000000' 0726 02712000 BNZ @RF00726 0726 02713000 * DO; /* YES, TRY TO ISSUE DATA SET BAD 02714000 * MSG @Z40WPWP*/ 02715000 * PAREDSBD=ON; /* MARK PAGE/SWAP SPACE BAD */ 02716000 OI PAREDSBD(@12),B'01000000' 0728 02717000 * ATABADPK=ON; /* LET RECOVERY KNOW WE ARE 0729 02718000 * TRYING TO WRITE MSG @Z40WPWP*/ 02719000 OI ATABADPK(ATAPTR),B'00100000' 0729 02720000 * MSGPLIST=''B; /* INITIAL SETUP OF MSG00 PLIST */ 02721000 XC MSGPLIST(8),MSGPLIST 0730 02722000 * MSGCBADR=IORPARTE; /* SET PARTE/SARTE ADDR IN PLIST */ 02723000 L @12,IORBPTR 0731 02724000 L @05,IORPARTE(,@12) 0731 02725000 ST @05,MSGCBADR 0731 02726000 * IF IORSWAP=ON THEN /* SWAP? */ 02727000 TM IORSWAP(@12),B'00001000' 0732 02728000 BNO @RF00732 0732 02729000 * MSGTYPE=MSGSRETP; /* INDICATE MSGCBADR IS A SARTE */ 02730000 MVC MSGTYPE(2),@CH00043 0733 02731000 * ELSE 0734 02732000 * ; /* PARTE - ALREADY SET TO ZERO */ 02733000 * 0734 02734000 @RF00732 DS 0H 0735 02735000 * /*************************************************************/ 02736000 * /* */ 02737000 * /* PUPOSELY LEFT MSGNUM FIELD ZERO- MSG00 WILL DETERMINE MSG */ 02738000 * /* TO ISSUE AND SYSTEM STATUS. MAY NOT RECEIVE CONTROL BACK */ 02739000 * /* FROM MSG00- SYSTEM MAY BE TAKEN DOWN. */ 02740000 * /* */ 02741000 * /*************************************************************/ 02742000 * 0735 02743000 * RFY 0735 02744000 * R1 RSTD; 0735 02745000 * R13=ADDR(SAVEREGS); /* SET SAVE AREA FOR MSG00 */ 02746000 LA R13,SAVEREGS 0736 02747000 * R1=ADDR(MSGPLIST); /* SET INTERFACE TO MSG00 */ 02748000 LA R1,MSGPLIST 0737 02749000 * ATABADPK=OFF; /* DO NOT LET RECOVERY TRY ISSUE 02750000 * MSG AGAIN @Z40WPWP*/ 02751000 NI ATABADPK(ATAPTR),B'11011111' 0738 02752000 * CALL ILRMSG00; 0739 02753000 L @15,@CV02489 0739 02754000 BALR @14,@15 0739 02755000 * RFY 0740 02756000 * R1 UNRSTD; 0740 02757000 * END; /* FOR TRY TO ISSUE MSG @Z40WPWP*/ 02758000 * RFY 0742 02759000 * (R11, 0742 02760000 * R12, 0742 02761000 * R13, 0742 02762000 * R14) RSTD; 0742 02763000 @RF00726 DS 0H 0743 02764000 *IOCUNLK2: 0743 02765000 * GEN REFS(R12,R13,R14,PSALITA,FLC) SETS(R11,R12,R13,R14); 0743 02766000 IOCUNLK2 DS 0H 0743 02767000 SETLOCK RELEASE,TYPE=SALLOC, *02768000 RELATED=(PAGE/SWAP,ILRCMP(IOCLK2)) 02769000 * RFY 0744 02770000 * (R11, 0744 02771000 * R12) UNRSTD; 0744 02772000 * R14=RTNADDR; /* RESTORE RETURN ADDRESS */ 02773000 L R14,RTNADDR 0745 02774000 * RFY 0746 02775000 * R14 UNRSTD; 0746 02776000 * END BADPACK; 0747 02777000 @EL00015 DS 0H 0747 02778000 @EF00015 DS 0H 0747 02779000 @ER00015 BR @14 0747 02780000 * END ILRCMP 0748 02781000 * 0748 02782000 */* THE FOLLOWING INCLUDE STATEMENTS WERE FOUND IN THIS PROGRAM. */ 02783000 */*%INCLUDE SYSLIB (ILRAIA ) */ 02784000 */*%INCLUDE SYSLIB (ILRASMVT) */ 02785000 */*%INCLUDE SYSLIB (ILRATA ) */ 02786000 */*%INCLUDE SYSLIB (CVT ) */ 02787000 */*%INCLUDE SYSLIB (IHAFRRS ) */ 02788000 */*%INCLUDE SYSLIB (ILRIORB ) */ 02789000 */*%INCLUDE SYSLIB (IECDIOSB) */ 02790000 */*%INCLUDE SYSLIB (IHALCCA ) */ 02791000 */*%INCLUDE SYSLIB (ILRPART ) */ 02792000 */*%INCLUDE SYSLIB (ILRPCCW ) */ 02793000 */*%INCLUDE SYSLIB (ILRSART ) */ 02794000 */*%INCLUDE SYSLIB (ILRSCCW ) */ 02795000 */*%INCLUDE SYSLIB (ILRPCT ) */ 02796000 */*%INCLUDE SYSLIB (IHAPSA ) */ 02797000 */*%INCLUDE SYSLIB (IHASRB ) */ 02798000 */*%INCLUDE SYSLIB (IEFUCBOB) */ 02799000 */*%INCLUDE SYSLIB (IHAWSAVT) */ 02800000 * 0748 02801000 * ; 0748 02802000 @DATA DS 0H 02803000 @CH00043 DC H'1' 02804000 @DATD DSECT 02805000 DS 0F 02806000 ILRCMP CSECT 02807000 DS 0F 02808000 @CF00040 DC F'8' 02809000 @CF02421 DC F'174' 02810000 @CF00307 DC XL4'09' 02811000 @DATD DSECT 02812000 DS 0D 02813000 AIAPTR DS A 02814000 IORBPTR DS A 02815000 IOSBPTR DS A 02816000 PAREPTR DS A 02817000 PCCWPTR DS A 02818000 SARTPTR DS A 02819000 @TS00001 DS CL2 02820000 DS CL2 02821000 @NM00072 DS CL16 02822000 ORG @NM00072 02823000 NUMREQ DS FL4 02824000 RTNADDR DS AL4 02825000 RETADDR1 DS AL4 02826000 RTNADRX DS AL4 02827000 ORG @NM00072+16 02828000 R34SAVE DS CL8 02829000 DS CL4 02830000 IOCTOD DS CL8 02831000 MSGPLIST DS CL8 02832000 ORG MSGPLIST 02833000 MSGNUM DS FL2 02834000 MSGTYPE DS FL2 02835000 MSGCBADR DS AL4 02836000 ORG MSGPLIST+8 02837000 SAVEREGS DS 18F 02838000 ILRCMP CSECT 02839000 NOPR ((@ENDDATD-@DATD)/253*16) 02840000 DS 0F 02841000 @SIZDATD DC AL1(0) 02842000 DC AL3(@ENDDATD-@DATD) 02843000 @CV02487 DC V(ILRPAGCM) 02844000 @CV02488 DC V(ILRCMP01) 02845000 @CV02489 DC V(ILRMSG00) 02846000 DS 0D 02847000 @CB02414 DC X'0000000000000000' 02848000 @CB02430 DC X'1000' 02849000 ILRCMP CSECT 02850000 * /*@Z40WPWP*/ 02851000 BADDEVST EQU B'11010011' ONLY CUE,CE OR DE ON IN IOSTSA @Z40WPWP 02852000 * FOR GOOD I/O @Z40WPWP 02853000 BADCHNST EQU B'11111111' ALL BITS IN IOSTSB OFF FOR GOOD @Z40WPWP 02854000 * I/O @Z40WPWP 02855000 @DATD DSECT 02856000 ORG *+1-(*-@DATD)/(*-@DATD) INSURE DSECT DATA 02857000 @ENDDATD EQU * 02858000 ILRCMP CSECT 02859000 @00 EQU 00 EQUATES FOR REGISTERS 0-15 02860000 @01 EQU 01 02861000 @02 EQU 02 02862000 @03 EQU 03 02863000 @04 EQU 04 02864000 @05 EQU 05 02865000 @06 EQU 06 02866000 @07 EQU 07 02867000 @08 EQU 08 02868000 @09 EQU 09 02869000 @10 EQU 10 02870000 @11 EQU 11 02871000 @12 EQU 12 02872000 @13 EQU 13 02873000 @14 EQU 14 02874000 @15 EQU 15 02875000 XCCWLEN EQU @05 02876000 DIEIOSSA EQU @09 02877000 RETVEC EQU @08 02878000 CSWADDR EQU @02 02879000 PCTPTR EQU @02 02880000 PARTPTR EQU @02 02881000 ASMVTPTR EQU @03 02882000 ATAPTR EQU @04 02883000 R0 EQU @00 02884000 R1 EQU @01 02885000 R2 EQU @02 02886000 R3 EQU @03 02887000 R4 EQU @04 02888000 R5 EQU @05 02889000 R6 EQU @06 02890000 R8 EQU @08 02891000 R9 EQU @09 02892000 R10 EQU @10 02893000 R11 EQU @11 02894000 R12 EQU @12 02895000 R13 EQU @13 02896000 R14 EQU @14 02897000 R15 EQU @15 02898000 R7 EQU @07 02899000 PSA EQU 0 02900000 FLCRNPSW EQU PSA 02901000 FLCROPSW EQU PSA+8 02902000 FLCICCW2 EQU PSA+16 02903000 FLCCVT EQU FLCICCW2 02904000 PSAEEPSW EQU PSA+132 02905000 PSAESPSW EQU PSA+136 02906000 FLCSVILC EQU PSAESPSW+1 02907000 PSAEPPSW EQU PSA+140 02908000 FLCPIILC EQU PSAEPPSW+1 02909000 FLCPICOD EQU PSAEPPSW+2 02910000 PSAPICOD EQU FLCPICOD+1 02911000 FLCTEA EQU PSAEPPSW+4 02912000 FLCPER EQU PSA+152 02913000 FLCMCLA EQU PSA+168 02914000 FLCIOEL EQU FLCMCLA+4 02915000 FLCIOA EQU FLCMCLA+16 02916000 FLCFSA EQU FLCMCLA+80 02917000 PSALCCAV EQU PSA+528 02918000 PSASUPER EQU PSA+552 02919000 PSASUP1 EQU PSASUPER 02920000 PSASUP2 EQU PSASUPER+1 02921000 PSASUP3 EQU PSASUPER+2 02922000 PSASUP4 EQU PSASUPER+3 02923000 PSACLHT EQU PSA+640 02924000 PSALKSA EQU PSA+696 02925000 PSAHLHI EQU PSA+760 02926000 PSALITA EQU PSA+764 02927000 PSADSSFL EQU PSA+836 02928000 PSADSSF1 EQU PSADSSFL 02929000 PSADSSF3 EQU PSADSSFL+2 02930000 PSADSSF4 EQU PSADSSFL+3 02931000 PSARSVT EQU PSA+896 02932000 AIA EQU 0 02933000 AIAFLG1 EQU AIA+9 02934000 AIAWRITE EQU AIAFLG1 02935000 AIADUPLX EQU AIAFLG1 02936000 AIAFLG2 EQU AIA+10 02937000 AIAIORTY EQU AIAFLG2 02938000 AIAPRIER EQU AIAFLG2 02939000 AIASECER EQU AIAFLG2 02940000 AIAFLG3 EQU AIA+11 02941000 AIANXAIA EQU AIA+12 02942000 AIAID EQU AIA+16 02943000 AIALPID EQU AIAID 02944000 AIALGID EQU AIALPID 02945000 AIALSID EQU AIALGID 02946000 AIASSID EQU AIALSID+1 02947000 AIARPN EQU AIALPID+4 02948000 AIALSID2 EQU AIARPN 02949000 AIALPMEP EQU AIALSID2 02950000 AIAGRPSZ EQU AIA+24 02951000 AIALGE EQU AIAGRPSZ 02952000 AIADPXCT EQU AIALGE 02953000 ASMVT EQU 0 02954000 ASMFLAG1 EQU ASMVT 02955000 ASMFLAG2 EQU ASMVT+1 02956000 ASMSART EQU ASMVT+4 02957000 ASMPART EQU ASMVT+8 02958000 ASMEREC EQU ASMVT+20 02959000 ASMSTAGQ EQU ASMVT+32 02960000 ASMIORQR EQU ASMVT+40 02961000 ASMIORQC EQU ASMVT+44 02962000 ASMPCCWQ EQU ASMVT+64 02963000 ASMIOCNT EQU ASMVT+80 02964000 ASMSRBCT EQU ASMVT+84 02965000 ASMPSRB EQU ASMVT+88 02966000 ASMERRS EQU ASMVT+124 02967000 ASMLSAI EQU ASMVT+144 02968000 ASMGOSQS EQU ASMVT+152 02969000 ASMWKSA1 EQU ASMVT+368 02970000 ASMWKSA2 EQU ASMVT+448 02971000 ASMWKSA3 EQU ASMVT+528 02972000 ASMWKSA4 EQU ASMVT+608 02973000 ASMWKSA5 EQU ASMVT+688 02974000 ASMPOOLS EQU 0 02975000 ASMCPAVQ EQU ASMPOOLS+8 02976000 ASMCPRSQ EQU ASMPOOLS+16 02977000 ATA EQU 0 02978000 ATAMODID EQU ATA 02979000 ATASFLGS EQU ATA+1 02980000 ATARFLGS EQU ATA+4 02981000 ATABADPK EQU ATARFLGS 02982000 ATARCRSN EQU ATA+6 02983000 ATARCODE EQU ATA+7 02984000 ATACLEAR EQU ATA+8 02985000 ATAIOSB EQU ATACLEAR 02986000 ATAPCCWQ EQU ATACLEAR+4 02987000 ATACOMPQ EQU ATACLEAR+8 02988000 ATACPCCW EQU ATACLEAR+12 02989000 CVTMAP EQU 0 02990000 CVTDAR EQU CVTMAP+72 02991000 CVTFLGS1 EQU CVTDAR 02992000 CVTDCB EQU CVTMAP+116 02993000 CVTIOQET EQU CVTMAP+120 02994000 CVTIERLC EQU CVTMAP+144 02995000 CVTHEAD EQU CVTMAP+160 02996000 CVTSV76C EQU CVTHEAD 02997000 CVTOPTA EQU CVTMAP+182 02998000 CVTOPTB EQU CVTMAP+183 02999000 CVTGTF EQU CVTMAP+236 03000000 CVTGTFST EQU CVTGTF 03001000 CVTGTFS EQU CVTGTFST 03002000 CVTSTATE EQU CVTGTFST 03003000 CVTTMODE EQU CVTGTFST 03004000 CVTFORM EQU CVTGTFST 03005000 CVTAQAVT EQU CVTMAP+240 03006000 CVTTCMFG EQU CVTAQAVT 03007000 CVTVOLM2 EQU CVTMAP+244 03008000 CVTTATA EQU CVTVOLM2 03009000 CVTTSKS EQU CVTTATA 03010000 CVTVOLF2 EQU CVTTSKS 03011000 CVTTAT EQU CVTTATA+1 03012000 CVTATER EQU CVTMAP+248 03013000 CVTEXT1 EQU CVTMAP+252 03014000 CVTPURG EQU CVTMAP+260 03015000 CVTQMSG EQU CVTMAP+268 03016000 CVTDMSR EQU CVTMAP+272 03017000 CVTRSV37 EQU CVTDMSR 03018000 CVTDMSRF EQU CVTRSV37 03019000 CVTERPV EQU CVTMAP+316 03020000 CVTINTLA EQU CVTMAP+320 03021000 CVTAPF EQU CVTMAP+324 03022000 CVTEXT2 EQU CVTMAP+328 03023000 CVTHJES EQU CVTMAP+332 03024000 CVTPGSIA EQU CVTMAP+348 03025000 CVTA1F1 EQU CVTMAP+356 03026000 CVTSYSK EQU CVTMAP+357 03027000 CVTVOLM1 EQU CVTMAP+380 03028000 CVTVOLF1 EQU CVTVOLM1 03029000 CVTATMCT EQU CVTMAP+388 03030000 CVTXTNT1 EQU 0 03031000 CVTXTNT2 EQU 0 03032000 CVTDSSV EQU CVTXTNT2 03033000 CVTFLGBT EQU CVTXTNT2+5 03034000 CVTQID EQU CVTXTNT2+24 03035000 CVTRV400 EQU CVTXTNT2+52 03036000 CVTRV409 EQU CVTXTNT2+53 03037000 CVTATCVT EQU CVTXTNT2+64 03038000 CVTRV429 EQU CVTXTNT2+84 03039000 CVTRV438 EQU CVTXTNT2+85 03040000 CVTRV457 EQU CVTXTNT2+112 03041000 CVTRV466 EQU CVTXTNT2+113 03042000 CVTFIX EQU 0 03043000 CVTRELNO EQU CVTFIX+252 03044000 FRRS EQU 0 03045000 FRRSHEAD EQU FRRS 03046000 FRRSENTR EQU 0 03047000 FRRSFLGS EQU FRRSENTR+4 03048000 FRRSFLG1 EQU FRRSFLGS 03049000 IORB EQU 0 03050000 IORRQSZ EQU IORB+2 03051000 IORFLGS EQU IORB+3 03052000 IORFUSE EQU IORFLGS 03053000 IORSWAP EQU IORFLGS 03054000 IORAPND EQU IORFLGS 03055000 IORFDI EQU IORAPND 03056000 IORFNE EQU IORAPND 03057000 IORFAE EQU IORAPND 03058000 IORPCCW EQU IORB+8 03059000 IORSAVE EQU IORB+16 03060000 IORERR EQU IORB+20 03061000 IORTSMP EQU IORB+24 03062000 IORPARTE EQU IORB+32 03063000 IOSB EQU 0 03064000 IOSFLA EQU IOSB 03065000 IOSACHN EQU IOSFLA 03066000 IOSERR EQU IOSFLA 03067000 IOSEX EQU IOSFLA 03068000 IOSFLB EQU IOSB+1 03069000 IOSDIESE EQU IOSFLB 03070000 IOSFLC EQU IOSB+2 03071000 IOSDVALT EQU IOSFLC 03072000 IOSPKEY EQU IOSB+12 03073000 IOSCOD EQU IOSB+13 03074000 IOSOPT EQU IOSB+14 03075000 IOSOPT2 EQU IOSB+15 03076000 @NM00014 EQU IOSB+20 03077000 IOSCC EQU @NM00014 03078000 IOSCSW EQU @NM00014+1 03079000 IOSCSWCA EQU IOSCSW 03080000 IOSTATUS EQU IOSCSW+3 03081000 IOSTSA EQU IOSTATUS 03082000 IOSTSB EQU IOSTATUS+1 03083000 IOSUSE EQU IOSB+32 03084000 IOSSNS EQU IOSB+42 03085000 IOSIPIB EQU IOSB+44 03086000 IOSRST EQU IOSB+72 03087000 IOSVST EQU IOSB+76 03088000 IOSPATH EQU IOSB+86 03089000 IOSCHN EQU IOSPATH 03090000 IOSCKEY EQU IOSB+89 03091000 IOSEEK EQU IOSB+92 03092000 IOSEEKA EQU IOSB+100 03093000 IOSCCHH EQU IOSEEKA+3 03094000 IOSSKHH EQU IOSCCHH+2 03095000 LCCA EQU 0 03096000 LCCAIHRC EQU LCCA+520 03097000 LCCAIHR1 EQU LCCAIHRC 03098000 LCCAIHR2 EQU LCCAIHRC+1 03099000 LCCAIHR3 EQU LCCAIHRC+2 03100000 LCCAIHR4 EQU LCCAIHRC+3 03101000 LCCASPIN EQU LCCA+524 03102000 LCCASPN1 EQU LCCASPIN 03103000 LCCASPN2 EQU LCCASPIN+1 03104000 LCCASPN3 EQU LCCASPIN+2 03105000 LCCASPN4 EQU LCCASPIN+3 03106000 LCCACPUS EQU LCCA+536 03107000 LCCADSF1 EQU LCCA+540 03108000 LCCADSF2 EQU LCCA+541 03109000 LCCASPSA EQU LCCA+544 03110000 LCCACRFL EQU LCCA+692 03111000 LCCACREX EQU LCCA+693 03112000 LCCALKFG EQU LCCA+694 03113000 LCCASRBF EQU LCCA+720 03114000 PART EQU 0 03115000 PARTHDR EQU PART 03116000 PARTTPAR EQU PARTHDR+24 03117000 PARTCOMQ EQU PARTHDR+48 03118000 PARTSPLQ EQU PARTHDR+56 03119000 PARTDUPQ EQU PARTHDR+64 03120000 PARTLOCQ EQU PARTHDR+72 03121000 PARTENT EQU 0 03122000 PARELKUP EQU PARTENT+4 03123000 PARELKFL EQU PARELKUP 03124000 PARETYPE EQU PARTENT+8 03125000 PAREDPLX EQU PARETYPE 03126000 PARELOCL EQU PARETYPE 03127000 PAREFLG1 EQU PARTENT+9 03128000 PAREDSBD EQU PAREFLG1 03129000 PARERRCT EQU PARTENT+24 03130000 PAREPCTP EQU PARTENT+36 03131000 PARERQTM EQU PARTENT+56 03132000 PCCW EQU 0 03133000 PCCWFLGS EQU PCCW+2 03134000 PCCWFERR EQU PCCWFLGS 03135000 PCCWPCCW EQU PCCW+4 03136000 PCCWAIA EQU PCCW+8 03137000 PCCWCHHR EQU PCCW+16 03138000 PCCWSEEK EQU PCCW+24 03139000 PCCWSSEC EQU PCCW+32 03140000 PCCWSRCH EQU PCCW+40 03141000 PCCWTIC EQU PCCW+48 03142000 PCCWRW EQU PCCW+56 03143000 PCCWNOP EQU PCCW+64 03144000 SART EQU 0 03145000 SARTHDR EQU SART 03146000 SARSCCWQ EQU SARTHDR+32 03147000 SARWAITQ EQU SARTHDR+40 03148000 SARSRBP EQU SARTHDR+48 03149000 SARSRBCT EQU SARTHDR+52 03150000 SARTE EQU 0 03151000 SREFLG EQU SARTE+9 03152000 SRESCCW EQU SARTE+12 03153000 SCCW EQU 0 03154000 SCCWHDR EQU SCCW 03155000 SCCWFLAG EQU SCCWHDR+2 03156000 SCCWSARG EQU SCCWHDR+16 03157000 SCCWSRH EQU SCCWSARG+3 03158000 SCCWCCHH EQU SCCWSRH 03159000 SCCWCCW EQU SCCW+88 03160000 SCCWSEEK EQU SCCWCCW 03161000 SCCWSSEC EQU SCCWCCW+8 03162000 SCCWSLOT EQU SCCWCCW+16 03163000 SCCWSRCH EQU SCCWSLOT 03164000 SCCWTIC EQU SCCWSLOT+8 03165000 SCCWRW EQU SCCWSLOT+16 03166000 SCCWLTIC EQU SCCWCCW+304 03167000 PCT EQU 0 03168000 PCTRQTIM EQU PCT+32 03169000 PCTABLE EQU PCT+40 03170000 PCTSECT EQU PCTABLE 03171000 PCTSLTNM EQU PCTSECT 03172000 SRBSECT EQU 0 03173000 SRB EQU SRBSECT 03174000 SRBFLC EQU SRB+12 03175000 SRBPTR EQU 0 03176000 UCB EQU 0 03177000 UCBPTR EQU 0 03178000 UCBOB EQU 0 03179000 UCBJBNR EQU UCBOB 03180000 UCBFL5 EQU UCBOB+1 03181000 UCBAF EQU UCBFL5 03182000 UCBSTAT EQU UCBOB+3 03183000 UCBCHAN EQU UCBOB+4 03184000 UCBSFLS EQU UCBOB+6 03185000 UCBFLA EQU UCBSFLS 03186000 UCBFL1 EQU UCBFLA 03187000 UCBBSY EQU UCBFL1 03188000 UCBNRY EQU UCBFL1 03189000 UCBPST EQU UCBFL1 03190000 UCBCUB EQU UCBFL1 03191000 UCBFLB EQU UCBSFLS+1 03192000 UCBCHM EQU UCBOB+8 03193000 UCBCHM1 EQU UCBCHM 03194000 UCBPTH0 EQU UCBCHM1 03195000 UCBPTH1 EQU UCBCHM1 03196000 UCBWGT EQU UCBOB+12 03197000 UCBTYP EQU UCBOB+16 03198000 UCBTBYT1 EQU UCBTYP 03199000 UCB1FEA5 EQU UCBTBYT1 03200000 UCB1FEA6 EQU UCBTBYT1 03201000 UCBTBYT2 EQU UCBTYP+1 03202000 UCB2OPT2 EQU UCBTBYT2 03203000 UCBDUDN1 EQU UCB2OPT2 03204000 UCB2OPT3 EQU UCBTBYT2 03205000 UCBDUDN2 EQU UCB2OPT3 03206000 UCB2OPT4 EQU UCBTBYT2 03207000 UCBRWTAU EQU UCB2OPT4 03208000 UCB2OPT6 EQU UCBTBYT2 03209000 UCB2OPT7 EQU UCBTBYT2 03210000 UCBTBYT3 EQU UCBTYP+2 03211000 UCBDVCLS EQU UCBTBYT3 03212000 UCBTBYT4 EQU UCBTYP+3 03213000 UCBEXTPT EQU UCBOB+20 03214000 UCBFLC EQU UCBEXTPT 03215000 UCBDEV EQU UCBOB+24 03216000 UCBCMEXT EQU 0 03217000 UCBATI EQU UCBCMEXT+3 03218000 @NM00067 EQU UCBATI 03219000 UCBFLP1 EQU UCBCMEXT+5 03220000 UCBMT EQU 0 03221000 UCBOCR EQU 0 03222000 UCB3540X EQU 0 03223000 UCBDKBYT EQU UCB3540X+6 03224000 UCB3800X EQU 0 03225000 UCBOPTNS EQU UCB3800X 03226000 UCBACTIV EQU UCB3800X+3 03227000 UCBMDRBF EQU UCB3800X+36 03228000 UCBUCS EQU 0 03229000 UCBUCSOP EQU UCBUCS+4 03230000 UCBFCBOP EQU UCBUCS+5 03231000 WSAG EQU 0 03232000 WSAC EQU 0 03233000 WSACASMD EQU WSAC+56 03234000 WSACASMS EQU WSAC+60 03235000 ZEROWORK EQU 0 03236000 TEMPSAVE EQU 0 03237000 PORSCCWQ EQU 0 03238000 BSHEADER EQU 0 03239000 BSCURR EQU BSHEADER 03240000 BSFIRST EQU BSHEADER+4 03241000 BSLAST EQU BSHEADER+8 03242000 BSLIST EQU BSHEADER+12 03243000 BSTABNTY EQU 0 03244000 BSSPLSID EQU BSTABNTY 03245000 UCBBGN EQU 0 03246000 WRITEQUE EQU 0 03247000 ASM1WKSV EQU ASMWKSA1 03248000 ASM1RGSV EQU ASM1WKSV 03249000 ASM1WRKA EQU ASM1WKSV+60 03250000 ASM2WKSV EQU ASMWKSA2 03251000 ASM2WRKA EQU ASM2WKSV+52 03252000 ASM2FLGS EQU ASM2WRKA+12 03253000 ASM3WKSV EQU ASMWKSA3 03254000 ASM4WKSV EQU ASMWKSA4 03255000 ASM4RGSV EQU ASM4WKSV 03256000 ASM5WKSV EQU ASMWKSA5 03257000 ASM5RGSV EQU ASM5WKSV 03258000 CVTPTR EQU FLCCVT 03259000 CVTS01 EQU CVTPGSIA 03260000 CVTLPDIA EQU CVTS01+12 03261000 CVTDIRST EQU CVTLPDIA 03262000 CVTSLIDA EQU CVTS01+24 03263000 CVTCTLFG EQU CVTS01+50 03264000 CVTSPSA EQU CVTS01+336 03265000 CVTASMVT EQU CVTS01+356 03266000 CVTRV210 EQU CVTS01+424 03267000 CVTRV219 EQU CVTS01+425 03268000 CVTRV228 EQU CVTS01+426 03269000 CVTRV237 EQU CVTS01+427 03270000 CVTMFRTR EQU CVTS01+452 03271000 CVTRV262 EQU CVTS01+468 03272000 CVTRV271 EQU CVTS01+469 03273000 CVTRV280 EQU CVTS01+470 03274000 CVTRV289 EQU CVTS01+471 03275000 CVTGSDA EQU CVTS01+600 03276000 IOSATTSC EQU IOSIPIB 03277000 IOSWTOWA EQU IOSIPIB 03278000 IOSPCISC EQU IOSIPIB 03279000 LCCAPTR EQU PSALCCAV 03280000 SAREPTR EQU PAREPTR 03281000 SCCWPTR EQU PCCWPTR 03282000 FLC EQU PSA 03283000 PSARSVTE EQU PSARSVT 03284000 UCBOBS01 EQU UCBDEV 03285000 UCBSTAB EQU UCBOBS01+10 03286000 UCBBSVL EQU UCBSTAB 03287000 UCBPRSRS EQU UCBSTAB 03288000 UCBDMCT EQU UCBOBS01+11 03289000 UCBFL4 EQU UCBOBS01+13 03290000 UCBOBS02 EQU UCBDEV 03291000 UCBTFL1 EQU UCBOBS02+19 03292000 UCBXTN EQU UCBOBS02+20 03293000 UCBVOPT EQU UCBXTN 03294000 UCBOBS03 EQU UCBDEV 03295000 UCBXTADR EQU UCBOBS03 03296000 UCBOBS04 EQU UCBDEV 03297000 UCBBTA EQU UCBOBS04+12 03298000 UCBOBS06 EQU UCBDEV 03299000 UCBAOF EQU UCBOBS06 03300000 UCBAOF1 EQU UCBAOF 03301000 UCBAOF2 EQU UCBAOF+1 03302000 @NM00066 EQU UCBOBS06+3 03303000 UCBIRB EQU UCBOBS06+4 03304000 UCBGRAF EQU UCBIRB 03305000 UCBLDNCA EQU UCBOBS06+8 03306000 UCBRDYQ EQU UCBLDNCA 03307000 UCBIRLN EQU UCBRDYQ 03308000 UCBLDNCB EQU UCBRDYQ+1 03309000 UCBCTLNK EQU UCBOBS06+12 03310000 UCBOBS07 EQU UCBDEV 03311000 UCBOBS08 EQU UCBDEV 03312000 UCBCTCAD EQU UCBOBS08 03313000 UCBCTCF1 EQU UCBOBS08+4 03314000 UCBOBS09 EQU UCBDEV 03315000 @NM00068 EQU IOSCOD 03316000 IOSECB7 EQU @NM00068 03317000 IOSECB3 EQU IOSECB7 03318000 SCCWSK EQU SCCWSARG 03319000 * START UNREFERENCED COMPONENTS 03320000 @NM00071 EQU IOSECB7 03321000 NOTPERM EQU IOSECB3 03322000 @NM00070 EQU IOSECB3 03323000 @NM00069 EQU @NM00068 03324000 UCBRV066 EQU UCBOBS09+4 03325000 UCBIOSBA EQU UCBOBS09 03326000 UCBRV042 EQU UCBOBS08+5 03327000 UCBRV082 EQU UCBCTCF1 03328000 UCBRV081 EQU UCBCTCF1 03329000 UCBRV080 EQU UCBCTCF1 03330000 UCBRV079 EQU UCBCTCF1 03331000 UCBRV078 EQU UCBCTCF1 03332000 UCBRV077 EQU UCBCTCF1 03333000 UCBRV076 EQU UCBCTCF1 03334000 UCBCTC80 EQU UCBCTCF1 03335000 UCBCTCAL EQU UCBCTCAD 03336000 UCBICNCB EQU UCBOBS07+4 03337000 UCBRV040 EQU UCBOBS07 03338000 UCBCTLNA EQU UCBCTLNK+1 03339000 UCBRLN EQU UCBCTLNK 03340000 UCBRDYQA EQU UCBLDNCB 03341000 UCBINRLN EQU UCBIRLN 03342000 UCBIRBA EQU UCBIRB+1 03343000 UCBRV039 EQU UCBGRAF 03344000 UCBDWNR EQU UCBGRAF 03345000 UCBRPND EQU UCBGRAF 03346000 UCBUPM EQU UCBGRAF 03347000 UCBBTAM EQU UCBGRAF 03348000 UCBDRNO EQU UCBGRAF 03349000 UCBDRO EQU UCBGRAF 03350000 UCBOIP EQU UCBGRAF 03351000 UCBATRCD EQU @NM00066 03352000 UCBSKPFG EQU @NM00066 03353000 UCBRIPND EQU @NM00066 03354000 UCBRTIAC EQU @NM00066 03355000 UCBRSV79 EQU @NM00066 03356000 UCBRSV78 EQU @NM00066 03357000 UCBRSV77 EQU @NM00066 03358000 UCBOLTEP EQU @NM00066 03359000 UCBATNCT EQU UCBOBS06+2 03360000 UCBRSV76 EQU UCBAOF2 03361000 UCBRSV75 EQU UCBAOF2 03362000 UCBRSV74 EQU UCBAOF2 03363000 UCBRSV73 EQU UCBAOF2 03364000 UCBRSV72 EQU UCBAOF2 03365000 UCBRSV71 EQU UCBAOF2 03366000 UCBRSV70 EQU UCBAOF2 03367000 UCBRSV69 EQU UCBAOF2 03368000 UCBRSV68 EQU UCBAOF1 03369000 UCBRSV67 EQU UCBAOF1 03370000 UCBRSV66 EQU UCBAOF1 03371000 UCBRSV65 EQU UCBAOF1 03372000 UCBRSV64 EQU UCBAOF1 03373000 UCBOFNL EQU UCBAOF1 03374000 UCBOFSP EQU UCBAOF1 03375000 UCBOFMCR EQU UCBAOF1 03376000 UCBBTB EQU UCBBTA+1 03377000 UCBDI EQU UCBBTA 03378000 UCBSNS EQU UCBOBS04+8 03379000 UCBTEB EQU UCBOBS04+4 03380000 UCBGCB EQU UCBOBS04+3 03381000 UCBOPEN EQU UCBOBS04+2 03382000 UCBSTART EQU UCBOBS04 03383000 UCBXTNB EQU UCBXTN+1 03384000 UCBRSV22 EQU UCBVOPT 03385000 UCBRSV21 EQU UCBVOPT 03386000 UCBRSV20 EQU UCBVOPT 03387000 UCBESVE EQU UCBVOPT 03388000 UCBERPC EQU UCBVOPT 03389000 UCBESVC EQU UCBVOPT 03390000 UCBEVA EQU UCBVOPT 03391000 UCBESV EQU UCBVOPT 03392000 UCBRV009 EQU UCBTFL1 03393000 UCBRV008 EQU UCBTFL1 03394000 UCBRV007 EQU UCBTFL1 03395000 UCBRV006 EQU UCBTFL1 03396000 UCBRV005 EQU UCBTFL1 03397000 UCBDQDSP EQU UCBTFL1 03398000 UCBNSLTP EQU UCBTFL1 03399000 UCBNLTP EQU UCBTFL1 03400000 UCBRES1B EQU UCBOBS02+18 03401000 UCBFSER EQU UCBOBS02+12 03402000 @NM00065 EQU UCBOBS02+4 03403000 UCBFSEQ EQU UCBOBS02+2 03404000 UCBFSCT EQU UCBOBS02 03405000 UCBNEXP EQU UCBOBS01+20 03406000 UCBBASE EQU UCBOBS01+16 03407000 UCBRES1A EQU UCBOBS01+15 03408000 UCBUSER EQU UCBOBS01+14 03409000 UCBFL47 EQU UCBFL4 03410000 UCBFL46 EQU UCBFL4 03411000 UCBFL45 EQU UCBFL4 03412000 UCBRV065 EQU UCBFL4 03413000 UCBDSS EQU UCBFL4 03414000 UCBRESVP EQU UCBFL4 03415000 UCBWDAV EQU UCBFL4 03416000 UCBDAVV EQU UCBFL4 03417000 UCBSQC EQU UCBOBS01+12 03418000 UCBDATP EQU UCBOBS01+12 03419000 UCBDMC EQU UCBDMCT 03420000 UCBMOUNT EQU UCBDMCT 03421000 UCBBNUL EQU UCBSTAB 03422000 UCBSHAR EQU UCBSTAB 03423000 UCBBSTR EQU UCBSTAB 03424000 UCBBPUB EQU UCBSTAB 03425000 UCBBPRV EQU UCBSTAB 03426000 UCBBALB EQU UCBPRSRS 03427000 UCBPGFL EQU UCBSTAB 03428000 UCBDVSHR EQU UCBBSVL 03429000 UCBVOLI EQU UCBOBS01+4 03430000 UCBVTOC EQU UCBOBS01 03431000 PSARSAV EQU PSARSVTE+60 03432000 PSARSTK EQU PSARSVTE+56 03433000 PSAESAV3 EQU PSARSVTE+52 03434000 PSAESTK3 EQU PSARSVTE+48 03435000 PSAESAV2 EQU PSARSVTE+44 03436000 PSAESTK2 EQU PSARSVTE+40 03437000 PSAESAV1 EQU PSARSVTE+36 03438000 PSAESTK1 EQU PSARSVTE+32 03439000 PSAPSAV EQU PSARSVTE+28 03440000 PSAPSTK EQU PSARSVTE+24 03441000 PSAMSAV EQU PSARSVTE+20 03442000 PSAMSTK EQU PSARSVTE+16 03443000 PSASSAV EQU PSARSVTE+12 03444000 PSASSTK EQU PSARSVTE+8 03445000 PSANSTK EQU PSARSVTE+4 03446000 PSACSTK EQU PSARSVTE 03447000 IOSPCIWA EQU IOSPCISC+44 03448000 IOSPCIRS EQU IOSPCISC+8 03449000 @NM00019 EQU IOSPCISC+4 03450000 @NM00018 EQU IOSPCISC 03451000 IOSWRNDR EQU IOSWTOWA+4 03452000 IOSWTOPT EQU IOSWTOWA+3 03453000 IOSWTOCP EQU IOSWTOWA+2 03454000 IOSWTOCH EQU IOSWTOWA 03455000 IOSATTWA EQU IOSATTSC+40 03456000 @NM00017 EQU IOSATTSC+24 03457000 IOSATTSN EQU IOSATTSC 03458000 CVTRV628 EQU CVTS01+728 03459000 CVTRV627 EQU CVTS01+724 03460000 CVTRV626 EQU CVTS01+720 03461000 CVTRV625 EQU CVTS01+716 03462000 CVTRV624 EQU CVTS01+712 03463000 CVTRV623 EQU CVTS01+708 03464000 CVTRV622 EQU CVTS01+704 03465000 CVTRV621 EQU CVTS01+700 03466000 CVTIHASU EQU CVTS01+696 03467000 CVTSUSP EQU CVTS01+692 03468000 CVTT6SVC EQU CVTS01+688 03469000 CVTCDAL EQU CVTS01+684 03470000 CVTTCTL EQU CVTS01+680 03471000 CVTRSUME EQU CVTS01+676 03472000 CVTJTERM EQU CVTS01+672 03473000 CVTASMRM EQU CVTS01+668 03474000 CVTTCASP EQU CVTS01+664 03475000 CVT0PT03 EQU CVTS01+660 03476000 CVT0PT0E EQU CVTS01+656 03477000 CVTRV609 EQU CVTS01+652 03478000 CVTCGK EQU CVTS01+648 03479000 CVTRAC EQU CVTS01+644 03480000 CVTHSM EQU CVTS01+640 03481000 CVTRV605 EQU CVTS01+636 03482000 CVTRV604 EQU CVTS01+632 03483000 CVTEFF02 EQU CVTS01+628 03484000 CVTCBBR EQU CVTS01+624 03485000 CVTSSCR EQU CVTS01+620 03486000 CVTEVENT EQU CVTS01+616 03487000 CVTCRCA EQU CVTS01+612 03488000 CVTTPIO EQU CVTS01+608 03489000 CVTADV EQU CVTS01+604 03490000 CVTGSDAB EQU CVTGSDA 03491000 CVTQV3 EQU CVTS01+596 03492000 CVTQV2 EQU CVTS01+592 03493000 CVTQV1 EQU CVTS01+588 03494000 CVTRPT EQU CVTS01+584 03495000 CVTSSRB EQU CVTS01+580 03496000 CVTCSDRL EQU CVTS01+576 03497000 CVTEXP1 EQU CVTS01+572 03498000 CVTRMPMT EQU CVTS01+568 03499000 CVTRMPTT EQU CVTS01+564 03500000 CVTVPSA EQU CVTS01+560 03501000 CVTVSTOP EQU CVTS01+556 03502000 CVTGTFR8 EQU CVTS01+552 03503000 CVTQUIT EQU CVTS01+548 03504000 CVTVACR EQU CVTS01+544 03505000 CVTWTCB EQU CVTS01+540 03506000 CVTSTPRS EQU CVTS01+536 03507000 CVT0PT02 EQU CVTS01+532 03508000 CVTDARCM EQU CVTS01+528 03509000 CVTIRECM EQU CVTS01+524 03510000 CVTJRECM EQU CVTS01+520 03511000 CVTVEMS0 EQU CVTS01+516 03512000 CVTSPFRR EQU CVTS01+512 03513000 CVTRLSTG EQU CVTS01+508 03514000 CVT0TC0A EQU CVTS01+504 03515000 CVTGMBR EQU CVTS01+500 03516000 CVTLFRM EQU CVTS01+496 03517000 CVTRMBR EQU CVTS01+492 03518000 CVTVIOP EQU CVTS01+488 03519000 CVTRV307 EQU CVTS01+486 03520000 CVTRV306 EQU CVTS01+484 03521000 CVTRV305 EQU CVTS01+482 03522000 CVTRV304 EQU CVTS01+480 03523000 CVTRV303 EQU CVTS01+478 03524000 CVTRV302 EQU CVTS01+476 03525000 CVTTRCA EQU CVTS01+472 03526000 CVTRV297 EQU CVTRV289 03527000 CVTRV296 EQU CVTRV289 03528000 CVTRV295 EQU CVTRV289 03529000 CVTRV294 EQU CVTRV289 03530000 CVTRV293 EQU CVTRV289 03531000 CVTRV292 EQU CVTRV289 03532000 CVTRV291 EQU CVTRV289 03533000 CVTRV290 EQU CVTRV289 03534000 CVTRV288 EQU CVTRV280 03535000 CVTRV287 EQU CVTRV280 03536000 CVTRV286 EQU CVTRV280 03537000 CVTRV285 EQU CVTRV280 03538000 CVTRV284 EQU CVTRV280 03539000 CVTRV283 EQU CVTRV280 03540000 CVTRV282 EQU CVTRV280 03541000 CVTRV281 EQU CVTRV280 03542000 CVTRV279 EQU CVTRV271 03543000 CVTRV278 EQU CVTRV271 03544000 CVTRV277 EQU CVTRV271 03545000 CVTRV276 EQU CVTRV271 03546000 CVTRV275 EQU CVTRV271 03547000 CVTRV274 EQU CVTRV271 03548000 CVTRV273 EQU CVTRV271 03549000 CVTRV272 EQU CVTRV271 03550000 CVTRV270 EQU CVTRV262 03551000 CVTRV269 EQU CVTRV262 03552000 CVTRV268 EQU CVTRV262 03553000 CVTRV267 EQU CVTRV262 03554000 CVTRV266 EQU CVTRV262 03555000 CVTRV265 EQU CVTRV262 03556000 CVTRV264 EQU CVTRV262 03557000 CVTRV263 EQU CVTRV262 03558000 CVTVFP EQU CVTS01+464 03559000 CVTVSI EQU CVTS01+460 03560000 CVTVPSIB EQU CVTS01+456 03561000 CVTMFACT EQU CVTMFRTR 03562000 CVTMFCTL EQU CVTS01+448 03563000 CVTPVBP EQU CVTS01+444 03564000 CVTPWI EQU CVTS01+440 03565000 CVTRV254 EQU CVTS01+438 03566000 CVTRV253 EQU CVTS01+436 03567000 CVTRV252 EQU CVTS01+434 03568000 CVTRV251 EQU CVTS01+433 03569000 CVTRV250 EQU CVTS01+432 03570000 CVTRV249 EQU CVTS01+431 03571000 CVTRV248 EQU CVTS01+430 03572000 CVTRV247 EQU CVTS01+429 03573000 CVTRV246 EQU CVTS01+428 03574000 CVTRV245 EQU CVTRV237 03575000 CVTRV244 EQU CVTRV237 03576000 CVTRV243 EQU CVTRV237 03577000 CVTRV242 EQU CVTRV237 03578000 CVTRV241 EQU CVTRV237 03579000 CVTRV240 EQU CVTRV237 03580000 CVTRV239 EQU CVTRV237 03581000 CVTRV238 EQU CVTRV237 03582000 CVTRV236 EQU CVTRV228 03583000 CVTRV235 EQU CVTRV228 03584000 CVTRV234 EQU CVTRV228 03585000 CVTRV233 EQU CVTRV228 03586000 CVTRV232 EQU CVTRV228 03587000 CVTRV231 EQU CVTRV228 03588000 CVTRV230 EQU CVTRV228 03589000 CVTRV229 EQU CVTRV228 03590000 CVTRV227 EQU CVTRV219 03591000 CVTRV226 EQU CVTRV219 03592000 CVTRV225 EQU CVTRV219 03593000 CVTRV224 EQU CVTRV219 03594000 CVTRV223 EQU CVTRV219 03595000 CVTRV222 EQU CVTRV219 03596000 CVTRV221 EQU CVTRV219 03597000 CVTRV220 EQU CVTRV219 03598000 CVTRV218 EQU CVTRV210 03599000 CVTRV217 EQU CVTRV210 03600000 CVTRV216 EQU CVTRV210 03601000 CVTRV215 EQU CVTRV210 03602000 CVTRV214 EQU CVTRV210 03603000 CVTRV213 EQU CVTRV210 03604000 CVTRV212 EQU CVTRV210 03605000 CVTRV211 EQU CVTRV210 03606000 CVTLCCAT EQU CVTS01+420 03607000 CVTPCCAT EQU CVTS01+416 03608000 CVTIPCRP EQU CVTS01+412 03609000 CVTIPCRI EQU CVTS01+408 03610000 CVTIPCDS EQU CVTS01+404 03611000 CVTAIDVT EQU CVTS01+400 03612000 CVTSSAP EQU CVTS01+396 03613000 CVTEHCIR EQU CVTS01+392 03614000 CVTEHDEF EQU CVTS01+388 03615000 CVTDAIR EQU CVTS01+384 03616000 CVTPERFM EQU CVTS01+380 03617000 CVT044R2 EQU CVTS01+376 03618000 CVTFETCH EQU CVTS01+372 03619000 CVTRSTWD EQU CVTS01+368 03620000 CVTSPOST EQU CVTS01+364 03621000 CVTIOBP EQU CVTS01+360 03622000 CVTRECRQ EQU CVTS01+352 03623000 CVTWSAC EQU CVTS01+348 03624000 CVTRV149 EQU CVTS01+344 03625000 CVTWSAL EQU CVTS01+340 03626000 CVTGLMN EQU CVTS01+332 03627000 CVTVEAC0 EQU CVTS01+328 03628000 CVT062R1 EQU CVTS01+324 03629000 CVTRPOST EQU CVTS01+320 03630000 CVTDQIQE EQU CVTS01+316 03631000 CVTCSD EQU CVTS01+312 03632000 CVTLKRMA EQU CVTS01+308 03633000 CVTRSPIE EQU CVTS01+304 03634000 CVTRENQ EQU CVTS01+300 03635000 CVTLQCB EQU CVTS01+296 03636000 CVTFQCB EQU CVTS01+292 03637000 CVTQCS01 EQU CVTS01+288 03638000 CVTAPFT EQU CVTS01+284 03639000 CVTPARRL EQU CVTS01+280 03640000 CVTVWAIT EQU CVTS01+276 03641000 CVTGSPL EQU CVTS01+272 03642000 CVTLSMQ EQU CVTS01+268 03643000 CVTGSMQ EQU CVTS01+264 03644000 CVTEXPRO EQU CVTS01+260 03645000 CVTOPCTP EQU CVTS01+256 03646000 CVTSIC EQU CVTS01+252 03647000 CVTTPIOS EQU CVTS01+248 03648000 CVTRTMS EQU CVTS01+244 03649000 CVTSDBF EQU CVTS01+240 03650000 CVTSCBP EQU CVTS01+236 03651000 CVTSDMP EQU CVTS01+232 03652000 CVTSV60 EQU CVTS01+228 03653000 CVTRTMCT EQU CVTS01+224 03654000 CVTASCBL EQU CVTS01+220 03655000 CVTASCBH EQU CVTS01+216 03656000 CVTGDA EQU CVTS01+212 03657000 CVTASVT EQU CVTS01+208 03658000 CVTVVMDI EQU CVTS01+204 03659000 CVTAQTOP EQU CVTS01+200 03660000 CVTIOSCS EQU CVTS01+196 03661000 CVTSDRM EQU CVTS01+192 03662000 CVTOPTE EQU CVTS01+188 03663000 CVTSTXU EQU CVTS01+184 03664000 CVTQUIS EQU CVTS01+180 03665000 CVTPARS EQU CVTS01+176 03666000 CVTS1EE EQU CVTS01+172 03667000 CVTFRAS EQU CVTS01+168 03668000 CVTQSAS EQU CVTS01+164 03669000 CVTCRAS EQU CVTS01+160 03670000 CVTCRMN EQU CVTS01+156 03671000 CVTDELCP EQU CVTS01+152 03672000 CVTFRECL EQU CVTS01+148 03673000 CVTGETCL EQU CVTS01+144 03674000 CVTBLDCP EQU CVTS01+140 03675000 CVTAUTHL EQU CVTS01+136 03676000 CVTSCAN EQU CVTS01+132 03677000 CVTRV144 EQU CVTS01+130 03678000 CVTMAXMP EQU CVTS01+128 03679000 CVTSTCK EQU CVTS01+124 03680000 CVTRV139 EQU CVTS01+123 03681000 CVTDSSAC EQU CVTS01+122 03682000 CVTRV513 EQU CVTS01+121 03683000 CVTIOSPL EQU CVTS01+120 03684000 CVTPTGT EQU CVTS01+116 03685000 CVTCSPIE EQU CVTS01+112 03686000 CVTSMFEX EQU CVTS01+108 03687000 CVTOLT0A EQU CVTS01+104 03688000 CVTSRBRT EQU CVTS01+100 03689000 CVTPUTL EQU CVTS01+96 03690000 CVTASCRL EQU CVTS01+92 03691000 CVTASCRF EQU CVTS01+88 03692000 CVTRV326 EQU CVTS01+84 03693000 CVTRV325 EQU CVTS01+80 03694000 CVTRV324 EQU CVTS01+76 03695000 CVT0VL01 EQU CVTS01+72 03696000 CVTSHRVM EQU CVTS01+68 03697000 CVTRV332 EQU CVTS01+64 03698000 CVTTAS EQU CVTS01+60 03699000 CVTRSCN EQU CVTS01+56 03700000 CVTTRAC2 EQU CVTS01+54 03701000 CVTTRACE EQU CVTS01+52 03702000 CVTAPG EQU CVTS01+51 03703000 CVTSDTRC EQU CVTCTLFG 03704000 CVTGTRCE EQU CVTCTLFG 03705000 CVTNOMP EQU CVTCTLFG 03706000 CVTRSV79 EQU CVTCTLFG 03707000 CVTDSTAT EQU CVTCTLFG 03708000 CVTRSV78 EQU CVTCTLFG 03709000 CVTRV333 EQU CVTCTLFG 03710000 CVTRV323 EQU CVTCTLFG 03711000 CVTSPVLK EQU CVTS01+49 03712000 CVTRSV77 EQU CVTS01+48 03713000 CVTRV331 EQU CVTS01+44 03714000 CVTRV330 EQU CVTS01+40 03715000 CVTRV329 EQU CVTS01+36 03716000 CVTRV328 EQU CVTS01+32 03717000 CVTRV322 EQU CVTS01+28 03718000 CVTSLID EQU CVTSLIDA+1 03719000 CVTSYLK EQU CVTSLIDA 03720000 CVTRV321 EQU CVTS01+20 03721000 CVTRV320 EQU CVTS01+16 03722000 CVTLPDIR EQU CVTLPDIA+1 03723000 CVTRSV69 EQU CVTDIRST 03724000 CVTRSV68 EQU CVTDIRST 03725000 CVTRSV67 EQU CVTDIRST 03726000 CVTRSV66 EQU CVTDIRST 03727000 CVTRSV65 EQU CVTDIRST 03728000 CVTRSV64 EQU CVTDIRST 03729000 CVTRSV63 EQU CVTDIRST 03730000 CVTDICOM EQU CVTDIRST 03731000 CVTPVTP EQU CVTS01+8 03732000 CVTLPDSR EQU CVTS01+4 03733000 CVTGETL EQU CVTS01 03734000 ASM5FLGS EQU ASM5WKSV+64 03735000 ASM5AIA EQU ASM5WKSV+60 03736000 ASM5GCTR EQU ASM5WKSV+56 03737000 ASM5SR14 EQU ASM5WKSV+52 03738000 @NM00006 EQU ASM5RGSV+4 03739000 ASM5RG2 EQU ASM5RGSV 03740000 @NM00005 EQU ASM4RGSV+4 03741000 ASM4RG2 EQU ASM4RGSV 03742000 ASM3SR13 EQU ASM3WKSV+28 03743000 ASM3R14B EQU ASM3WKSV+24 03744000 ASM3R14A EQU ASM3WKSV+20 03745000 ASM3GRPA EQU ASM3WKSV+16 03746000 ASM3TMPA EQU ASM3WKSV+12 03747000 ASM3PIOP EQU ASM3WKSV+8 03748000 ASM3GENQ EQU ASM3WKSV+4 03749000 ASM3SWPQ EQU ASM3WKSV 03750000 ASM2SR14 EQU ASM2WRKA+16 03751000 @NM00004 EQU ASM2WRKA+13 03752000 ASM2WFLG EQU ASM2FLGS 03753000 ASM2RFLG EQU ASM2FLGS 03754000 ASM2DUPQ EQU ASM2WRKA+8 03755000 ASM2CAQ EQU ASM2WRKA+4 03756000 ASM2PAQ EQU ASM2WRKA 03757000 ASM2RGSV EQU ASM2WKSV 03758000 ASM1NXTA EQU ASM1WRKA+4 03759000 ASM1ASCB EQU ASM1WRKA 03760000 ASM1RG15 EQU ASM1RGSV+56 03761000 @NM00003 EQU ASM1RGSV+4 03762000 ASM1RG1 EQU ASM1RGSV 03763000 @NM00073 EQU BSTABNTY+1 03764000 WSACCCH EQU WSAC+52 03765000 WSACRRSA EQU WSAC+48 03766000 WSACREST EQU WSAC+44 03767000 WSACRSTI EQU WSAC+40 03768000 WSACABTM EQU WSAC+36 03769000 WSACMF1 EQU WSAC+32 03770000 WSACEDS0 EQU WSAC+28 03771000 WSACIOS EQU WSAC+24 03772000 WSACRTMK EQU WSAC+20 03773000 WSACACR EQU WSAC+16 03774000 WSACTIME EQU WSAC+12 03775000 WSACOPTM EQU WSAC+8 03776000 WSACGTF EQU WSAC+4 03777000 WSACCWSA EQU WSAC 03778000 WSAGSCHE EQU WSAG+40 03779000 WSAGREST EQU WSAG+36 03780000 WSAGNQDQ EQU WSAG+32 03781000 WSAGMEMT EQU WSAG+28 03782000 WSAGOPTM EQU WSAG+24 03783000 WSAGSTAT EQU WSAG+20 03784000 WSAGEMS0 EQU WSAG+16 03785000 WSAGSSRS EQU WSAG+12 03786000 WSAGRSM EQU WSAG+8 03787000 WSAGGMFM EQU WSAG+4 03788000 WSAGPGIO EQU WSAG 03789000 UCBERADR EQU UCBUCS+12 03790000 UCBFCBID EQU UCBUCS+8 03791000 UCBERCNT EQU UCBUCS+7 03792000 UCBRSV51 EQU UCBUCS+6 03793000 UCBFCBPE EQU UCBFCBOP 03794000 UCBRSV49 EQU UCBFCBOP 03795000 UCBRSV48 EQU UCBFCBOP 03796000 UCBRSV47 EQU UCBFCBOP 03797000 UCBRSV46 EQU UCBFCBOP 03798000 UCBRSV45 EQU UCBFCBOP 03799000 UCBRSV44 EQU UCBFCBOP 03800000 UCBFCBO1 EQU UCBFCBOP 03801000 UCBUCSPE EQU UCBUCSOP 03802000 UCBRSV43 EQU UCBUCSOP 03803000 UCBRSV42 EQU UCBUCSOP 03804000 UCBRSV41 EQU UCBUCSOP 03805000 UCBRSV40 EQU UCBUCSOP 03806000 UCBRSV39 EQU UCBUCSOP 03807000 UCBUCSO2 EQU UCBUCSOP 03808000 UCBUCSO1 EQU UCBUCSOP 03809000 UCBUCSID EQU UCBUCS 03810000 UCBMDRBA EQU UCBMDRBF+1 03811000 UCBRV075 EQU UCBMDRBF 03812000 UCBRV074 EQU UCB3800X+32 03813000 UCBIMAGE EQU UCB3800X+28 03814000 UCBFCBNM EQU UCB3800X+24 03815000 UCBCHAR4 EQU UCB3800X+20 03816000 UCBCHAR3 EQU UCB3800X+16 03817000 UCBCHAR2 EQU UCB3800X+12 03818000 UCBCHAR1 EQU UCB3800X+8 03819000 UCBCGMID EQU UCB3800X+4 03820000 UCBBRSTA EQU UCBACTIV 03821000 UCBRV063 EQU UCBACTIV 03822000 UCBRV062 EQU UCBACTIV 03823000 UCBRV061 EQU UCBACTIV 03824000 UCBRV060 EQU UCBACTIV 03825000 UCBRV059 EQU UCBACTIV 03826000 UCBRV058 EQU UCBACTIV 03827000 UCBRV057 EQU UCBACTIV 03828000 UCBRV050 EQU UCB3800X+2 03829000 UCBCGMNO EQU UCB3800X+1 03830000 UCBRV083 EQU UCBOPTNS 03831000 UCBBRSTR EQU UCBOPTNS 03832000 UCBRV056 EQU UCBOPTNS 03833000 UCBRV055 EQU UCBOPTNS 03834000 UCBRV054 EQU UCBOPTNS 03835000 UCBRV053 EQU UCBOPTNS 03836000 UCBRV052 EQU UCBOPTNS 03837000 UCBRV051 EQU UCBOPTNS 03838000 UCBRV073 EQU UCB3540X+7 03839000 UCBRV072 EQU UCBDKBYT 03840000 UCBRV071 EQU UCBDKBYT 03841000 UCBRV070 EQU UCBDKBYT 03842000 UCBRV069 EQU UCBDKBYT 03843000 UCBRV068 EQU UCBDKBYT 03844000 UCBRV067 EQU UCBDKBYT 03845000 UCBVLVER EQU UCBDKBYT 03846000 UCBDKAMX EQU UCBDKBYT 03847000 UCBVLSER EQU UCB3540X 03848000 UCBRDATA EQU UCBOCR+4 03849000 UCBFRID EQU UCBOCR 03850000 UCBCLN EQU UCBMT+14 03851000 UCBERG EQU UCBMT+12 03852000 UCBMS EQU UCBMT+11 03853000 UCBNB EQU UCBMT+10 03854000 UCBPW EQU UCBMT+9 03855000 UCBPR EQU UCBMT+8 03856000 UCBSIO EQU UCBMT+6 03857000 UCBTW EQU UCBMT+5 03858000 UCBTR EQU UCBMT+4 03859000 UCBTWT EQU UCBMT+3 03860000 UCBTRT EQU UCBMT+2 03861000 UCBCTD EQU UCBMT 03862000 UCBWTOID EQU UCBCMEXT+17 03863000 UCBRV043 EQU UCBCMEXT+16 03864000 UCBASID EQU UCBCMEXT+14 03865000 UCBMFCNT EQU UCBCMEXT+12 03866000 UCBPMSK EQU UCBCMEXT+10 03867000 UCBCCWOF EQU UCBCMEXT+8 03868000 UCBRV041 EQU UCBCMEXT+6 03869000 UCBRV036 EQU UCBFLP1 03870000 UCBRV035 EQU UCBFLP1 03871000 UCBERLOG EQU UCBFLP1 03872000 UCBRV033 EQU UCBFLP1 03873000 UCBINHIO EQU UCBFLP1 03874000 UCBNSWAP EQU UCBFLP1 03875000 UCBSHRUP EQU UCBFLP1 03876000 UCBNSRCH EQU UCBFLP1 03877000 UCBSNSCT EQU UCBCMEXT+4 03878000 UCBHPDV EQU @NM00067 03879000 UCBHALI EQU @NM00067 03880000 UCBRSV09 EQU @NM00067 03881000 UCBRSV08 EQU @NM00067 03882000 UCBRSV07 EQU @NM00067 03883000 UCBRSV06 EQU @NM00067 03884000 UCBRSV05 EQU @NM00067 03885000 UCBRSV04 EQU @NM00067 03886000 UCBDTI EQU UCBCMEXT+2 03887000 UCBSTI EQU UCBCMEXT+1 03888000 UCBETI EQU UCBCMEXT 03889000 UCBEXTP EQU UCBEXTPT+1 03890000 UCBDDRSW EQU UCBFLC 03891000 UCBTICBT EQU UCBFLC 03892000 UCBIVRR EQU UCBFLC 03893000 UCBIVRS EQU UCBFLC 03894000 UCBITF EQU UCBFLC 03895000 UCBUDE EQU UCBFLC 03896000 UCBWAA EQU UCBFLC 03897000 UCBATTP EQU UCBFLC 03898000 UCBUNTYP EQU UCBTBYT4 03899000 UCBRSV11 EQU UCBDVCLS 03900000 UCBRSV10 EQU UCBDVCLS 03901000 UCB3CHAR EQU UCBDVCLS 03902000 UCB3UREC EQU UCBDVCLS 03903000 UCB3DISP EQU UCBDVCLS 03904000 UCB3DACC EQU UCBDVCLS 03905000 UCB3COMM EQU UCBDVCLS 03906000 UCB3TAPE EQU UCBDVCLS 03907000 UCBDVPWR EQU UCB2OPT7 03908000 UCBVLPWR EQU UCB2OPT6 03909000 UCB2OPT5 EQU UCBTBYT2 03910000 UCBRVDEV EQU UCBRWTAU 03911000 UCBRPS EQU UCBDUDN2 03912000 UCBRR EQU UCBDUDN1 03913000 UCB2OPT1 EQU UCBTBYT2 03914000 UCB2OPT0 EQU UCBTBYT2 03915000 UCB1FEA7 EQU UCBTBYT1 03916000 UCBD6250 EQU UCB1FEA6 03917000 UCBD1600 EQU UCB1FEA5 03918000 UCB1FEA4 EQU UCBTBYT1 03919000 UCB1FEA3 EQU UCBTBYT1 03920000 UCB1FEA2 EQU UCBTBYT1 03921000 UCB1FEA1 EQU UCBTBYT1 03922000 UCB1FEA0 EQU UCBTBYT1 03923000 UCBNAME EQU UCBOB+13 03924000 UCBRV029 EQU UCBWGT 03925000 UCBVHRSN EQU UCBWGT 03926000 UCBVORSN EQU UCBWGT 03927000 UCBMTPXP EQU UCBWGT 03928000 UCBREW EQU UCBWGT 03929000 UCBPUB EQU UCBWGT 03930000 UCBOUT EQU UCBWGT 03931000 UCBIN EQU UCBWGT 03932000 UCBCPU EQU UCBOB+11 03933000 UCBLCI EQU UCBOB+10 03934000 UCBCNT EQU UCBOB+9 03935000 UCBRV017 EQU UCBCHM1 03936000 UCBRV016 EQU UCBCHM1 03937000 UCBRV015 EQU UCBCHM1 03938000 UCBRV014 EQU UCBCHM1 03939000 UCBSPB EQU UCBPTH1 03940000 UCBPPB EQU UCBPTH1 03941000 UCBSPA EQU UCBPTH0 03942000 UCBPPA EQU UCBPTH0 03943000 UCBSIGP EQU UCBFLB 03944000 UCBVALPH EQU UCBFLB 03945000 UCBCRHSN EQU UCBFLB 03946000 UCBCRHRV EQU UCBFLB 03947000 UCBRESVH EQU UCBFLB 03948000 UCBSPST EQU UCBFLB 03949000 UCBASNS EQU UCBFLB 03950000 UCBIORST EQU UCBFLB 03951000 UCBQISCE EQU UCBFL1 03952000 UCBACTV EQU UCBFL1 03953000 UCBSAP EQU UCBFL1 03954000 UCBNOTRC EQU UCBCUB 03955000 UCBPSNS EQU UCBFL1 03956000 UCBUSING EQU UCBPST 03957000 UCBNOTRD EQU UCBNRY 03958000 UCBBUSYD EQU UCBBSY 03959000 UCBUA EQU UCBCHAN+1 03960000 UCBCHA EQU UCBCHAN 03961000 UCBDADI EQU UCBSTAT 03962000 UCBSYSR EQU UCBSTAT 03963000 UCBPRES EQU UCBSTAT 03964000 UCBALOC EQU UCBSTAT 03965000 UCBUNLD EQU UCBSTAT 03966000 UCBRESV EQU UCBSTAT 03967000 UCBCHGS EQU UCBSTAT 03968000 UCBONLI EQU UCBSTAT 03969000 UCBID EQU UCBOB+2 03970000 UCBALTPH EQU UCBFL5 03971000 UCBALTCU EQU UCBFL5 03972000 UCBNALOC EQU UCBFL5 03973000 UCBENVRD EQU UCBFL5 03974000 UCBVSDR EQU UCBFL5 03975000 UCBSASK EQU UCBFL5 03976000 UCBAMV EQU UCBAF 03977000 UCBDCC EQU UCBFL5 03978000 UCBMONT EQU UCBJBNR 03979000 UCBRV011 EQU UCBJBNR 03980000 UCBMMSGP EQU UCBJBNR 03981000 UCBOLDSM EQU UCBJBNR 03982000 UCBRV003 EQU UCBJBNR 03983000 UCBDUC EQU UCBJBNR 03984000 UCBJES3 EQU UCBJBNR 03985000 UCBVRDEV EQU UCBJBNR 03986000 UCBCMSEG EQU UCBOB 03987000 UCBPFXND EQU UCB+512 03988000 UCBIOQ EQU UCB+508 03989000 UCBLOCK EQU UCB+504 03990000 UCBPXST EQU UCB+504 03991000 @NM00064 EQU UCB 03992000 @NM00063 EQU SRB+40 03993000 @NM00062 EQU SRB+38 03994000 SRBPRIOR EQU SRB+37 03995000 SRBPKF EQU SRB+36 03996000 SRBSAVE EQU SRB+32 03997000 SRBPARM EQU SRB+28 03998000 SRBRMTR EQU SRB+24 03999000 SRBEP EQU SRB+20 04000000 SRBPTCB EQU SRBFLC+4 04001000 SRBPASID EQU SRBFLC+2 04002000 SRBCPAFF EQU SRBFLC 04003000 SRBASCB EQU SRB+8 04004000 SRBFLNK EQU SRB+4 04005000 SRBID EQU SRB 04006000 PCTTRBA EQU PCTSECT+2 04007000 PCTSECNM EQU PCTSECT+1 04008000 PCTSLOT EQU PCTSLTNM 04009000 PCTFOVFL EQU PCTSLTNM 04010000 PCTMSSB EQU PCT+38 04011000 PCTMAXTK EQU PCT+36 04012000 PCTSSECN EQU PCT+30 04013000 PCTDPGWT EQU PCT+28 04014000 PCTDMASK EQU PCT+20 04015000 PCTNEXT EQU PCT+16 04016000 PCTCYLSZ EQU PCT+14 04017000 PCTDTYPX EQU PCT+12 04018000 PCTSMAX EQU PCT+10 04019000 PCTDTYPE EQU PCT+4 04020000 PCTID EQU PCT 04021000 @NM00037 EQU SCCWLTIC+4 04022000 SCCWLTAD EQU SCCWLTIC+1 04023000 SCCWLTOP EQU SCCWLTIC 04024000 SCCWRWCT EQU SCCWRW+6 04025000 @NM00036 EQU SCCWRW+5 04026000 SCCWRWFL EQU SCCWRW+4 04027000 SCCWRWAD EQU SCCWRW+1 04028000 SCCWRWOP EQU SCCWRW 04029000 @NM00035 EQU SCCWTIC+4 04030000 SCCWTIAD EQU SCCWTIC+1 04031000 SCCWTIOP EQU SCCWTIC 04032000 SCCWSRCT EQU SCCWSRCH+6 04033000 @NM00034 EQU SCCWSRCH+5 04034000 SCCWSRFL EQU SCCWSRCH+4 04035000 SCCWSRAD EQU SCCWSRCH+1 04036000 SCCWSROP EQU SCCWSRCH 04037000 SCCWFLCT EQU SCCWSSEC+4 04038000 SCCWSSAD EQU SCCWSSEC+1 04039000 SCCWSSOP EQU SCCWSSEC 04040000 SCCWFGCT EQU SCCWSEEK+4 04041000 SCCWSKAD EQU SCCWSEEK+1 04042000 SCCWSKOP EQU SCCWSEEK 04043000 SCCWSVOA EQU SCCWHDR+84 04044000 SCCWLCCW EQU SCCWHDR+80 04045000 SCCWRSV1 EQU SCCWSARG+63 04046000 SCCWR EQU SCCWSRH+4 04047000 SCCWHH EQU SCCWCCHH+2 04048000 SCCWCC EQU SCCWCCHH 04049000 SCCWBB EQU SCCWSARG+1 04050000 SCCWM EQU SCCWSARG 04051000 SCCWIORB EQU SCCWHDR+12 04052000 SCCWAIA EQU SCCWHDR+8 04053000 SCCWSCCW EQU SCCWHDR+4 04054000 @NM00033 EQU SCCWHDR+3 04055000 @NM00032 EQU SCCWFLAG 04056000 SCCWERR EQU SCCWFLAG 04057000 SCCWSECT EQU SCCWHDR+1 04058000 SCCWID EQU SCCWHDR 04059000 SREUCB EQU SARTE+44 04060000 SREEDB EQU SARTE+40 04061000 SRESDCTE EQU SARTE+36 04062000 SRESAT EQU SARTE+32 04063000 SREIORB EQU SARTE+28 04064000 SRERRCNT EQU SARTE+24 04065000 SREAVLSL EQU SARTE+20 04066000 SRETOTSL EQU SARTE+16 04067000 SRENN EQU SARTE+10 04068000 @NM00031 EQU SREFLG 04069000 SREFIXED EQU SREFLG 04070000 SREDRIVE EQU SREFLG 04071000 SREDSBD EQU SREFLG 04072000 SRENUSE EQU SREFLG 04073000 @NM00030 EQU SARTE+8 04074000 SRELOCK EQU SARTE+4 04075000 SRENEXT EQU SARTE 04076000 SARENTS EQU SART+80 04077000 @NM00029 EQU SARTHDR+60 04078000 SARSETSZ EQU SARTHDR+56 04079000 SARWAITL EQU SARWAITQ+4 04080000 SARWAITF EQU SARWAITQ 04081000 SARSETCT EQU SARTHDR+36 04082000 SARSDCT EQU SARTHDR+28 04083000 SARDSNL EQU SARTHDR+24 04084000 SARMOVNX EQU SARTHDR+20 04085000 SARFXDNX EQU SARTHDR+16 04086000 @NM00028 EQU SARTHDR+12 04087000 SARUSE EQU SARTHDR+8 04088000 SARSIZE EQU SARTHDR+4 04089000 SARID EQU SARTHDR 04090000 @NM00027 EQU PCCW+72 04091000 PCCWNCT EQU PCCWNOP+6 04092000 PCCWNFG EQU PCCWNOP+4 04093000 PCCWNAD EQU PCCWNOP+1 04094000 PCCWN EQU PCCWNOP 04095000 PCCWCNT EQU PCCWRW+6 04096000 PCCWRWFG EQU PCCWRW+4 04097000 PCCWADDR EQU PCCWRW+1 04098000 PCCWRDWT EQU PCCWRW 04099000 PCCWTCT EQU PCCWTIC+6 04100000 PCCWTFG EQU PCCWTIC+4 04101000 PCCWTAD EQU PCCWTIC+1 04102000 PCCWT EQU PCCWTIC 04103000 PCCWSICT EQU PCCWSRCH+6 04104000 PCCWSIFG EQU PCCWSRCH+4 04105000 PCCWSIAD EQU PCCWSRCH+1 04106000 PCCWSIDE EQU PCCWSRCH 04107000 PCCWSSCT EQU PCCWSSEC+6 04108000 PCCWSSFG EQU PCCWSSEC+4 04109000 PCCWSSAD EQU PCCWSSEC+1 04110000 PCCWSS EQU PCCWSSEC 04111000 PCCWSKCT EQU PCCWSEEK+6 04112000 PCCWSKFG EQU PCCWSEEK+4 04113000 PCCWSKAD EQU PCCWSEEK+1 04114000 PCCWSK EQU PCCWSEEK 04115000 PCCWR EQU PCCWCHHR+7 04116000 PCCWHH EQU PCCWCHHR+5 04117000 PCCWCC EQU PCCWCHHR+3 04118000 PCCWBB EQU PCCWCHHR+1 04119000 PCCWM EQU PCCWCHHR 04120000 PCCWIORB EQU PCCW+12 04121000 @NM00026 EQU PCCW+3 04122000 @NM00025 EQU PCCWFLGS 04123000 PCCWSECT EQU PCCW+1 04124000 PCCWID EQU PCCW 04125000 @NM00024 EQU PARTENT+62 04126000 PARELCYL EQU PARTENT+60 04127000 PAREWTQE EQU PARTENT+52 04128000 PARENODE EQU PARTENT+48 04129000 PAREUCBP EQU PARTENT+44 04130000 PAREEDBP EQU PARTENT+40 04131000 PAREPATP EQU PARTENT+32 04132000 PAREIORB EQU PARTENT+28 04133000 PARESLTA EQU PARTENT+20 04134000 PARESZSL EQU PARTENT+16 04135000 PAREIOEQ EQU PARTENT+12 04136000 PARENN EQU PARTENT+10 04137000 @NM00023 EQU PAREFLG1 04138000 PAREINCP EQU PAREFLG1 04139000 PARENUSE EQU PAREFLG1 04140000 @NM00022 EQU PARETYPE 04141000 PARECOMM EQU PARETYPE 04142000 PAREPLPA EQU PARETYPE 04143000 PARECPCT EQU PARELKUP+2 04144000 PAREIORN EQU PARELKUP+1 04145000 @NM00021 EQU PARELKFL 04146000 PAREFSIP EQU PARELKFL 04147000 PAREPARE EQU PARTENT 04148000 PARTENTS EQU PART+80 04149000 PARTLOCL EQU PARTLOCQ+4 04150000 PARTLOCF EQU PARTLOCQ 04151000 PARTDUPL EQU PARTDUPQ+4 04152000 PARTDUPF EQU PARTDUPQ 04153000 PARTSPLL EQU PARTSPLQ+4 04154000 PARTSPLF EQU PARTSPLQ 04155000 PARTCOML EQU PARTCOMQ+4 04156000 PARTCOMF EQU PARTCOMQ 04157000 PARTLOCK EQU PARTHDR+44 04158000 PARTLKUP EQU PARTHDR+40 04159000 @NM00020 EQU PARTHDR+34 04160000 PARTLCNT EQU PARTHDR+32 04161000 PARTPCTQ EQU PARTHDR+28 04162000 PARTDSNL EQU PARTTPAR 04163000 PARTCIR2 EQU PARTHDR+20 04164000 PARTCIR1 EQU PARTHDR+16 04165000 PARTAIAE EQU PARTHDR+12 04166000 PARTEUSE EQU PARTHDR+8 04167000 PARTSIZE EQU PARTHDR+4 04168000 PARTIDEN EQU PARTHDR 04169000 LCCAR125 EQU LCCA+964 04170000 LCCAR124 EQU LCCA+960 04171000 LCCASGPR EQU LCCA+896 04172000 LCCADRT2 EQU LCCA+888 04173000 LCCADRT1 EQU LCCA+880 04174000 LCCAR103 EQU LCCA+876 04175000 LCCAESS2 EQU LCCA+872 04176000 LCCASPLJ EQU LCCA+868 04177000 LCCASMQJ EQU LCCA+864 04178000 LCCAIRT EQU LCCA+736 04179000 LCCAASID EQU LCCA+732 04180000 LCCARV89 EQU LCCA+728 04181000 LCCAPGTA EQU LCCASRBF+2 04182000 LCCASAFN EQU LCCASRBF 04183000 LCCAECSA EQU LCCA+716 04184000 LCCAICR0 EQU LCCA+712 04185000 LCCALWTM EQU LCCA+704 04186000 LCCARV78 EQU LCCA+700 04187000 LCCAPINV EQU LCCA+696 04188000 LCCARV88 EQU LCCA+695 04189000 LCCARV87 EQU LCCALKFG 04190000 LCCARV86 EQU LCCALKFG 04191000 LCCARV85 EQU LCCALKFG 04192000 LCCARV84 EQU LCCALKFG 04193000 LCCALKRD EQU LCCALKFG 04194000 LCCALKAQ EQU LCCALKFG 04195000 LCCALKSA EQU LCCALKFG 04196000 LCCALKDP EQU LCCALKFG 04197000 LCCACRST EQU LCCACREX 04198000 LCCACRDP EQU LCCACREX 04199000 LCCACRLM EQU LCCACREX 04200000 LCCACRIN EQU LCCACREX 04201000 LCCACRRT EQU LCCACREX 04202000 LCCACRLE EQU LCCACREX 04203000 LCCACRRM EQU LCCACREX 04204000 LCCACREF EQU LCCACREX 04205000 LCCAVARY EQU LCCACRFL 04206000 LCCARV73 EQU LCCACRFL 04207000 LCCARV72 EQU LCCACRFL 04208000 LCCARV71 EQU LCCACRFL 04209000 LCCARV70 EQU LCCACRFL 04210000 LCCARV69 EQU LCCACRFL 04211000 LCCACLMS EQU LCCACRFL 04212000 LCCACRTM EQU LCCACRFL 04213000 LCCALCR0 EQU LCCA+688 04214000 LCCACRLC EQU LCCA+684 04215000 LCCARCPU EQU LCCA+680 04216000 LCCADCPU EQU LCCA+676 04217000 LCCASRBJ EQU LCCA+672 04218000 LCCADSSR EQU LCCA+668 04219000 LCCADSSC EQU LCCA+660 04220000 LCCADSS3 EQU LCCA+648 04221000 LCCADSS2 EQU LCCA+636 04222000 LCCADSS1 EQU LCCA+624 04223000 LCCAWTIM EQU LCCA+616 04224000 LCCAITOD EQU LCCA+608 04225000 LCCADTOD EQU LCCA+600 04226000 LCCASTOD EQU LCCA+592 04227000 LCCARIR5 EQU LCCASPSA+44 04228000 LCCARIR4 EQU LCCASPSA+40 04229000 LCCARIR3 EQU LCCASPSA+36 04230000 LCCARIR2 EQU LCCASPSA+32 04231000 LCCARPR5 EQU LCCASPSA+28 04232000 LCCARPR4 EQU LCCASPSA+24 04233000 LCCARPR3 EQU LCCASPSA+20 04234000 LCCARPR2 EQU LCCASPSA+16 04235000 LCCADSR5 EQU LCCASPSA+12 04236000 LCCADSR4 EQU LCCASPSA+8 04237000 LCCADSR3 EQU LCCASPSA+4 04238000 LCCADSR2 EQU LCCASPSA 04239000 LCCARV68 EQU LCCA+543 04240000 LCCAPSMK EQU LCCA+542 04241000 LCCARV67 EQU LCCADSF2 04242000 LCCARV66 EQU LCCADSF2 04243000 LCCARV65 EQU LCCADSF2 04244000 LCCARV64 EQU LCCADSF2 04245000 LCCADSRW EQU LCCADSF2 04246000 LCCADSPL EQU LCCADSF2 04247000 LCCAGSRB EQU LCCADSF2 04248000 LCCASRBM EQU LCCADSF2 04249000 LCCARV61 EQU LCCADSF1 04250000 LCCARV60 EQU LCCADSF1 04251000 LCCARV59 EQU LCCADSF1 04252000 LCCARV58 EQU LCCADSF1 04253000 LCCATIMR EQU LCCADSF1 04254000 LCCADSS EQU LCCADSF1 04255000 LCCAVCPU EQU LCCADSF1 04256000 LCCAACR EQU LCCADSF1 04257000 LCCAASCP EQU LCCA+532 04258000 LCCAESSA EQU LCCA+528 04259000 LCCARV55 EQU LCCASPN4 04260000 LCCARV54 EQU LCCASPN4 04261000 LCCARV53 EQU LCCASPN4 04262000 LCCARV52 EQU LCCASPN4 04263000 LCCARV51 EQU LCCASPN4 04264000 LCCARV50 EQU LCCASPN4 04265000 LCCARV49 EQU LCCASPN4 04266000 LCCARV48 EQU LCCASPN4 04267000 LCCARV47 EQU LCCASPN3 04268000 LCCARV46 EQU LCCASPN3 04269000 LCCARV45 EQU LCCASPN3 04270000 LCCARV44 EQU LCCASPN3 04271000 LCCARV43 EQU LCCASPN3 04272000 LCCARV42 EQU LCCASPN3 04273000 LCCARV41 EQU LCCASPN3 04274000 LCCARV40 EQU LCCASPN3 04275000 LCCARV39 EQU LCCASPN2 04276000 LCCARV38 EQU LCCASPN2 04277000 LCCARV37 EQU LCCASPN2 04278000 LCCARV36 EQU LCCASPN2 04279000 LCCARV35 EQU LCCASPN2 04280000 LCCARV34 EQU LCCASPN2 04281000 LCCARV33 EQU LCCASPN2 04282000 LCCARV32 EQU LCCASPN2 04283000 LCCARV31 EQU LCCASPN1 04284000 LCCARV30 EQU LCCASPN1 04285000 LCCAMFIO EQU LCCASPN1 04286000 LCCARSTR EQU LCCASPN1 04287000 LCCATSPN EQU LCCASPN1 04288000 LCCALOCK EQU LCCASPN1 04289000 LCCASIGP EQU LCCASPN1 04290000 LCCAPTLB EQU LCCASPN1 04291000 LCCARV27 EQU LCCAIHR4 04292000 LCCARV26 EQU LCCAIHR4 04293000 LCCARV25 EQU LCCAIHR4 04294000 LCCARV24 EQU LCCAIHR4 04295000 LCCARV23 EQU LCCAIHR4 04296000 LCCARV22 EQU LCCAIHR4 04297000 LCCARV21 EQU LCCAIHR4 04298000 LCCARV20 EQU LCCAIHR4 04299000 LCCARV19 EQU LCCAIHR3 04300000 LCCARV18 EQU LCCAIHR3 04301000 LCCARV17 EQU LCCAIHR3 04302000 LCCARV16 EQU LCCAIHR3 04303000 LCCARV15 EQU LCCAIHR3 04304000 LCCARV14 EQU LCCAIHR3 04305000 LCCARV13 EQU LCCAIHR3 04306000 LCCARV12 EQU LCCAIHR3 04307000 LCCARV11 EQU LCCAIHR2 04308000 LCCARV10 EQU LCCAIHR2 04309000 LCCARV09 EQU LCCAIHR2 04310000 LCCARV08 EQU LCCAIHR2 04311000 LCCARV07 EQU LCCAIHR2 04312000 LCCARV06 EQU LCCAIHR2 04313000 LCCARV05 EQU LCCAIHR2 04314000 LCCARV04 EQU LCCAIHR2 04315000 LCCARV03 EQU LCCAIHR1 04316000 LCCARV02 EQU LCCAIHR1 04317000 LCCARV01 EQU LCCAIHR1 04318000 LCCAPPIE EQU LCCAIHR1 04319000 LCCAPSG1 EQU LCCAIHR1 04320000 LCCAPDAT EQU LCCAIHR1 04321000 LCCAXRC2 EQU LCCAIHR1 04322000 LCCAXRC1 EQU LCCAIHR1 04323000 LCCAIOPS EQU LCCA+512 04324000 LCCAGPGR EQU LCCA+448 04325000 LCCAR133 EQU LCCA+444 04326000 LCCAR132 EQU LCCA+440 04327000 LCCAR131 EQU LCCA+436 04328000 LCCAR130 EQU LCCA+432 04329000 LCCAR129 EQU LCCA+428 04330000 LCCAR128 EQU LCCA+424 04331000 LCCAR127 EQU LCCA+420 04332000 LCCAR126 EQU LCCA+416 04333000 LCCARSGR EQU LCCA+352 04334000 LCCAXGR3 EQU LCCA+288 04335000 LCCAXGR2 EQU LCCA+224 04336000 LCCAXGR1 EQU LCCA+160 04337000 LCCACR0 EQU LCCA+156 04338000 LCCAMCR1 EQU LCCA+152 04339000 LCCAPVAD EQU LCCA+148 04340000 LCCAPINT EQU LCCA+144 04341000 LCCAPPSW EQU LCCA+136 04342000 LCCAPGR2 EQU LCCA+72 04343000 LCCAPGR1 EQU LCCA+8 04344000 LCCARV77 EQU LCCA+6 04345000 LCCACPUA EQU LCCA+4 04346000 LCCALCCA EQU LCCA 04347000 IOSEND EQU IOSB+108 04348000 IOSSKR EQU IOSEEKA+7 04349000 IOSSKH2 EQU IOSSKHH+1 04350000 IOSSKH1 EQU IOSSKHH 04351000 IOSSKCC EQU IOSCCHH 04352000 IOSSKBB EQU IOSEEKA+1 04353000 IOSSKM EQU IOSEEKA 04354000 IOSMDM EQU IOSB+91 04355000 IOSMDB EQU IOSB+90 04356000 IOSCKEY7 EQU IOSCKEY 04357000 IOSCKEY6 EQU IOSCKEY 04358000 IOSCKEY5 EQU IOSCKEY 04359000 IOSCKEY4 EQU IOSCKEY 04360000 @NM00016 EQU IOSCKEY 04361000 IOSFMSK EQU IOSB+88 04362000 IOSCUDEV EQU IOSPATH+1 04363000 @NM00015 EQU IOSCHN 04364000 IOSPATH3 EQU IOSCHN 04365000 IOSPATH2 EQU IOSCHN 04366000 IOSEXP EQU IOSCHN 04367000 IOSGDP EQU IOSCHN 04368000 IOSAFF EQU IOSB+85 04369000 IOSRSS1B EQU IOSB+84 04370000 IOSDSID EQU IOSB+80 04371000 IOSDIE EQU IOSB+68 04372000 IOSABN EQU IOSB+64 04373000 IOSNRM EQU IOSB+60 04374000 IOSPCI EQU IOSB+56 04375000 IOSERP EQU IOSB+52 04376000 IOSPCHN EQU IOSB+48 04377000 IOSAPMSK EQU IOSB+40 04378000 IOSRES4A EQU IOSB+36 04379000 IOSSRB EQU IOSB+28 04380000 IOSCSWRC EQU IOSCSW+5 04381000 IOSUCB EQU IOSB+16 04382000 IOSOPT2X EQU IOSOPT2 04383000 IOSIGP EQU IOSOPT2 04384000 IOSHTP EQU IOSOPT2 04385000 IOSRELSE EQU IOSOPT 04386000 IOSAPR EQU IOSOPT 04387000 IOSTSLL EQU IOSOPT 04388000 IOSNERP EQU IOSOPT 04389000 IOSPSLL EQU IOSOPT 04390000 IOSQISCE EQU IOSOPT 04391000 IOSDEP EQU IOSOPT 04392000 IOSBYP EQU IOSOPT 04393000 IOSPKY7 EQU IOSPKEY 04394000 IOSPGDPX EQU IOSPKEY 04395000 IOSIDR EQU IOSPKEY 04396000 IOSLCL EQU IOSPKEY 04397000 @NM00013 EQU IOSPKEY 04398000 IOSPGAD EQU IOSB+8 04399000 IOSASID EQU IOSB+6 04400000 IOSPRLVL EQU IOSB+5 04401000 IOSDVRID EQU IOSB+4 04402000 IOSPROC EQU IOSB+3 04403000 IOSFLC7 EQU IOSFLC 04404000 IOSCTCNR EQU IOSFLC 04405000 IOSRWAIT EQU IOSFLC 04406000 IOSTP EQU IOSFLC 04407000 IOSCC3WE EQU IOSFLC 04408000 IOSVERIF EQU IOSDVALT 04409000 IOSDVMNT EQU IOSFLC 04410000 IOSLOG EQU IOSFLB 04411000 IOSBDCST EQU IOSFLB 04412000 IOSMSG EQU IOSFLB 04413000 IOSFLB4 EQU IOSFLB 04414000 IOSFLB3 EQU IOSFLB 04415000 IOSNOTRS EQU IOSFLB 04416000 IOSSDR EQU IOSFLB 04417000 IOSIOSB EQU IOSFLA 04418000 IOSDOM EQU IOSFLA 04419000 IOSSMDB EQU IOSFLA 04420000 IOSSMDA EQU IOSFLA 04421000 IOSCCHN EQU IOSACHN 04422000 IOSDCHN EQU IOSACHN 04423000 @NM00012 EQU IORB+40 04424000 IORRSV EQU IORB+36 04425000 IORIOSB EQU IORB+12 04426000 IORSCCW EQU IORPCCW 04427000 IORIORB EQU IORB+4 04428000 @NM00011 EQU IORFLGS 04429000 IORFRPS EQU IORFLGS 04430000 IORNUM EQU IORB+1 04431000 IORID EQU IORB 04432000 FRRSPARM EQU FRRSENTR+8 04433000 @NM00010 EQU FRRSFLGS+1 04434000 @NM00009 EQU FRRSFLG1 04435000 FRRSNEST EQU FRRSFLG1 04436000 FRRSRCUR EQU FRRSFLG1 04437000 FRRSFRRA EQU FRRSENTR 04438000 FRRSENTS EQU FRRS+84 04439000 FRRSRTMW EQU FRRS+16 04440000 FRRSCURR EQU FRRSHEAD+12 04441000 FRRSELEN EQU FRRSHEAD+8 04442000 FRRSLAST EQU FRRSHEAD+4 04443000 FRRSEMP EQU FRRSHEAD 04444000 CVTLEVL EQU CVTRELNO+2 04445000 CVTNUMB EQU CVTRELNO 04446000 CVTMDL EQU CVTFIX+250 04447000 @NM00008 EQU CVTFIX+248 04448000 @NM00007 EQU CVTFIX 04449000 CVTRV482 EQU CVTXTNT2+128 04450000 CVTRV481 EQU CVTXTNT2+124 04451000 CVTRV480 EQU CVTXTNT2+120 04452000 CVTRV479 EQU CVTXTNT2+118 04453000 CVTRV478 EQU CVTXTNT2+117 04454000 CVTRV477 EQU CVTXTNT2+116 04455000 CVTRV476 EQU CVTXTNT2+115 04456000 CVTRV475 EQU CVTXTNT2+114 04457000 CVTRV474 EQU CVTRV466 04458000 CVTRV473 EQU CVTRV466 04459000 CVTRV472 EQU CVTRV466 04460000 CVTRV471 EQU CVTRV466 04461000 CVTRV470 EQU CVTRV466 04462000 CVTRV469 EQU CVTRV466 04463000 CVTRV468 EQU CVTRV466 04464000 CVTRV467 EQU CVTRV466 04465000 CVTRV465 EQU CVTRV457 04466000 CVTRV464 EQU CVTRV457 04467000 CVTRV463 EQU CVTRV457 04468000 CVTRV462 EQU CVTRV457 04469000 CVTRV461 EQU CVTRV457 04470000 CVTRV460 EQU CVTRV457 04471000 CVTRV459 EQU CVTRV457 04472000 CVTRV458 EQU CVTRV457 04473000 CVTRV456 EQU CVTXTNT2+108 04474000 CVTRV455 EQU CVTXTNT2+104 04475000 CVTRV454 EQU CVTXTNT2+100 04476000 CVTRV453 EQU CVTXTNT2+96 04477000 CVTRV452 EQU CVTXTNT2+94 04478000 CVTRV451 EQU CVTXTNT2+92 04479000 CVTRV450 EQU CVTXTNT2+90 04480000 CVTRV449 EQU CVTXTNT2+88 04481000 CVTRV448 EQU CVTXTNT2+87 04482000 CVTRV447 EQU CVTXTNT2+86 04483000 CVTRV446 EQU CVTRV438 04484000 CVTRV445 EQU CVTRV438 04485000 CVTRV444 EQU CVTRV438 04486000 CVTRV443 EQU CVTRV438 04487000 CVTRV442 EQU CVTRV438 04488000 CVTRV441 EQU CVTRV438 04489000 CVTRV440 EQU CVTRV438 04490000 CVTRV439 EQU CVTRV438 04491000 CVTRV437 EQU CVTRV429 04492000 CVTRV436 EQU CVTRV429 04493000 CVTRV435 EQU CVTRV429 04494000 CVTRV434 EQU CVTRV429 04495000 CVTRV433 EQU CVTRV429 04496000 CVTRV432 EQU CVTRV429 04497000 CVTRV431 EQU CVTRV429 04498000 CVTRV430 EQU CVTRV429 04499000 CVTRV428 EQU CVTXTNT2+80 04500000 CVTRV427 EQU CVTXTNT2+76 04501000 CVTRV426 EQU CVTXTNT2+72 04502000 CVTRV425 EQU CVTXTNT2+68 04503000 CVTATACT EQU CVTATCVT 04504000 CVTRV423 EQU CVTXTNT2+62 04505000 CVTRV422 EQU CVTXTNT2+60 04506000 CVTRV421 EQU CVTXTNT2+58 04507000 CVTRV420 EQU CVTXTNT2+56 04508000 CVTRV419 EQU CVTXTNT2+55 04509000 CVTRV418 EQU CVTXTNT2+54 04510000 CVTRV417 EQU CVTRV409 04511000 CVTRV416 EQU CVTRV409 04512000 CVTRV415 EQU CVTRV409 04513000 CVTRV414 EQU CVTRV409 04514000 CVTRV413 EQU CVTRV409 04515000 CVTRV412 EQU CVTRV409 04516000 CVTRV411 EQU CVTRV409 04517000 CVTRV410 EQU CVTRV409 04518000 CVTRV408 EQU CVTRV400 04519000 CVTRV407 EQU CVTRV400 04520000 CVTRV406 EQU CVTRV400 04521000 CVTRV405 EQU CVTRV400 04522000 CVTRV404 EQU CVTRV400 04523000 CVTRV403 EQU CVTRV400 04524000 CVTRV402 EQU CVTRV400 04525000 CVTRV401 EQU CVTRV400 04526000 CVTICB EQU CVTXTNT2+48 04527000 CVTSKTA EQU CVTXTNT2+44 04528000 CVTCCVT EQU CVTXTNT2+40 04529000 CVTRSV98 EQU CVTXTNT2+36 04530000 CVTRSV97 EQU CVTXTNT2+34 04531000 CVTRSV96 EQU CVTXTNT2+32 04532000 CVTOLTEP EQU CVTXTNT2+28 04533000 CVTQIDA EQU CVTQID+1 04534000 CVTRSV95 EQU CVTQID 04535000 CVTRSV94 EQU CVTXTNT2+20 04536000 CVTRSV93 EQU CVTXTNT2+16 04537000 CVTRSV92 EQU CVTXTNT2+12 04538000 CVTDEBVR EQU CVTXTNT2+8 04539000 CVTRSV91 EQU CVTXTNT2+6 04540000 CVTRSV9H EQU CVTFLGBT 04541000 CVTRSV9G EQU CVTFLGBT 04542000 CVTRSV9F EQU CVTFLGBT 04543000 CVTRSV9E EQU CVTFLGBT 04544000 CVTRSV9D EQU CVTFLGBT 04545000 CVTRSV9C EQU CVTFLGBT 04546000 CVTVME EQU CVTFLGBT 04547000 CVTNPE EQU CVTFLGBT 04548000 CVTNUCLS EQU CVTXTNT2+4 04549000 CVTDSSVA EQU CVTDSSV+1 04550000 CVTRSV89 EQU CVTDSSV 04551000 CVTRSV88 EQU CVTXTNT1+8 04552000 CVTRSV87 EQU CVTXTNT1+4 04553000 CVTFACHN EQU CVTXTNT1 04554000 CVTRV488 EQU CVTMAP+412 04555000 CVTRV487 EQU CVTMAP+408 04556000 CVTRV486 EQU CVTMAP+404 04557000 CVTRV485 EQU CVTMAP+400 04558000 CVTACTAP EQU CVTMAP+396 04559000 CVTAUTH EQU CVTMAP+392 04560000 CVTATMCA EQU CVTATMCT+1 04561000 CVTATMST EQU CVTATMCT 04562000 CVTRSV61 EQU CVTMAP+384 04563000 CVTVOLT1 EQU CVTVOLM1+1 04564000 CVTVOLI1 EQU CVTVOLF1 04565000 CVTSTOA EQU CVTMAP+376 04566000 CVTRSV58 EQU CVTMAP+374 04567000 CVTRSV57 EQU CVTMAP+372 04568000 CVTDDCE EQU CVTMAP+368 04569000 CVTPNWFR EQU CVTMAP+364 04570000 CVTSMF EQU CVTMAP+360 04571000 CVTSULK EQU CVTMAP+358 04572000 CVTSLKO EQU CVTSYSK 04573000 CVTSLKP EQU CVTSYSK 04574000 CVTSLKQ EQU CVTSYSK 04575000 CVTSLKR EQU CVTSYSK 04576000 CVTRSV56 EQU CVTSYSK 04577000 CVTRSV55 EQU CVTSYSK 04578000 CVTRSV54 EQU CVTSYSK 04579000 CVTRSV53 EQU CVTSYSK 04580000 CVTRSV52 EQU CVTA1F1 04581000 CVTRSV51 EQU CVTA1F1 04582000 CVTRSV50 EQU CVTA1F1 04583000 CVTRSV49 EQU CVTA1F1 04584000 CVTRSV48 EQU CVTA1F1 04585000 CVTRSV47 EQU CVTA1F1 04586000 CVTSRSW EQU CVTA1F1 04587000 CVTPFSW EQU CVTA1F1 04588000 CVTPCVT EQU CVTMAP+352 04589000 CVTRSV46 EQU CVTMAP+344 04590000 CVTRSV45 EQU CVTMAP+340 04591000 CVTRSV44 EQU CVTMAP+338 04592000 CVTRSV43 EQU CVTMAP+336 04593000 CVTHJESA EQU CVTHJES+1 04594000 CVTRSV42 EQU CVTHJES 04595000 CVTEXT2A EQU CVTEXT2+1 04596000 CVTRSV41 EQU CVTEXT2 04597000 CVTAPFA EQU CVTAPF+1 04598000 CVTRSV40 EQU CVTAPF 04599000 CVTRV518 EQU CVTINTLA 04600000 CVTRV517 EQU CVTERPV 04601000 CVTEORM EQU CVTMAP+312 04602000 CVTMCHPR EQU CVTMAP+308 04603000 CVTTZ EQU CVTMAP+304 04604000 CVTJEPS EQU CVTMAP+300 04605000 CVTJESCT EQU CVTMAP+296 04606000 CVTMODE EQU CVTMAP+292 04607000 CVTPTRV EQU CVTMAP+288 04608000 CVTREAL EQU CVTMAP+284 04609000 CVTRSV39 EQU CVTMAP+280 04610000 CVTRSV38 EQU CVTMAP+276 04611000 CVTDMSRA EQU CVTDMSR+1 04612000 CVTRV634 EQU CVTDMSRF 04613000 CVTRV633 EQU CVTDMSRF 04614000 CVTRV632 EQU CVTDMSRF 04615000 CVTRV631 EQU CVTDMSRF 04616000 CVTRV630 EQU CVTDMSRF 04617000 CVTRV629 EQU CVTDMSRF 04618000 CVTUDUMP EQU CVTDMSRF 04619000 CVTSDUMP EQU CVTDMSRF 04620000 CVTQMSGA EQU CVTQMSG+1 04621000 CVTRSV36 EQU CVTQMSG 04622000 CVTAMFF EQU CVTMAP+264 04623000 CVTPURGA EQU CVTPURG+1 04624000 CVTRSV35 EQU CVTPURG 04625000 CVTCBSP EQU CVTMAP+256 04626000 CVTATERA EQU CVTATER+1 04627000 CVTSYST EQU CVTATER 04628000 CVTVOLT2 EQU CVTTAT 04629000 CVTVOLI2 EQU CVTVOLF2 04630000 CVTAQAVB EQU CVTAQAVT+1 04631000 CVTRSV34 EQU CVTTCMFG 04632000 CVTRSV33 EQU CVTTCMFG 04633000 CVTRSV32 EQU CVTTCMFG 04634000 CVTRSV31 EQU CVTTCMFG 04635000 CVTRSV30 EQU CVTTCMFG 04636000 CVTRSV29 EQU CVTTCMFG 04637000 CVTLDEV EQU CVTTCMFG 04638000 CVTTCRDY EQU CVTTCMFG 04639000 CVTGTFA EQU CVTGTF+1 04640000 CVTRSV27 EQU CVTGTFST 04641000 CVTRNIO EQU CVTGTFST 04642000 CVTUSR EQU CVTGTFST 04643000 CVTRV318 EQU CVTFORM 04644000 CVTRV317 EQU CVTTMODE 04645000 CVTRV316 EQU CVTSTATE 04646000 CVTRV315 EQU CVTGTFS 04647000 CVTGTFAV EQU CVTGTFS 04648000 CVT0SCR1 EQU CVTMAP+232 04649000 CVTRV515 EQU CVTMAP+228 04650000 CVTRMS EQU CVTMAP+224 04651000 CVTPATCH EQU CVTMAP+220 04652000 CVTTSCE EQU CVTMAP+216 04653000 CVTLNKSC EQU CVTMAP+214 04654000 CVTQABST EQU CVTMAP+212 04655000 CVTMDLDS EQU CVTMAP+208 04656000 CVTUSER EQU CVTMAP+204 04657000 CVTABEND EQU CVTMAP+200 04658000 CVTSMCA EQU CVTMAP+196 04659000 CVTRSV18 EQU CVTMAP+192 04660000 CVTQLPAQ EQU CVTMAP+188 04661000 CVTQCDSR EQU CVTMAP+184 04662000 CVTRSV17 EQU CVTOPTB 04663000 CVTRSV16 EQU CVTOPTB 04664000 CVTFP EQU CVTOPTB 04665000 CVTAPTHR EQU CVTOPTB 04666000 CVTNLOG EQU CVTOPTB 04667000 CVTTOD EQU CVTOPTB 04668000 CVTCTIMS EQU CVTOPTB 04669000 CVTPROT EQU CVTOPTB 04670000 CVTXPFP EQU CVTOPTA 04671000 CVTASCII EQU CVTOPTA 04672000 CVTRSV13 EQU CVTOPTA 04673000 CVTRSV12 EQU CVTOPTA 04674000 CVTNIP EQU CVTOPTA 04675000 CVTDDR EQU CVTOPTA 04676000 CVTAPR EQU CVTOPTA 04677000 CVTCCH EQU CVTOPTA 04678000 CVTSNCTR EQU CVTMAP+180 04679000 CVTQMWR EQU CVTMAP+176 04680000 CVTQOCR EQU CVTMAP+172 04681000 CVT1EF00 EQU CVTMAP+168 04682000 CVTMZ00 EQU CVTMAP+164 04683000 CVTSV76Q EQU CVTSV76C 04684000 CVTRSV11 EQU CVTMAP+156 04685000 CVT0PT01 EQU CVTMAP+152 04686000 CVTMSER EQU CVTMAP+148 04687000 CVTRV516 EQU CVTIERLC 04688000 CVTILCH EQU CVTMAP+140 04689000 CVT0DS EQU CVTMAP+136 04690000 CVTFBOSV EQU CVTMAP+132 04691000 CVTNUCB EQU CVTMAP+128 04692000 CVTIXAVL EQU CVTMAP+124 04693000 CVTSV76M EQU CVTIOQET 04694000 CVTDCBA EQU CVTMAP+117 04695000 CVTMVS2 EQU CVTDCB 04696000 CVT6DAT EQU CVTDCB 04697000 CVT4MPS EQU CVTDCB 04698000 CVTRSV09 EQU CVTDCB 04699000 CVT4MS1 EQU CVTDCB 04700000 CVT2SPS EQU CVTDCB 04701000 CVT1SSS EQU CVTDCB 04702000 CVTRSV08 EQU CVTDCB 04703000 CVTSTB EQU CVTMAP+112 04704000 CVTQTD00 EQU CVTMAP+108 04705000 CVTQTE00 EQU CVTMAP+104 04706000 CVTCUCB EQU CVTMAP+100 04707000 CVTSJQ EQU CVTMAP+96 04708000 CVTPBLDL EQU CVTMAP+92 04709000 CVTTPC EQU CVTMAP+88 04710000 CVTSVDCB EQU CVTMAP+84 04711000 CVTBRET EQU CVTMAP+82 04712000 CVTEXIT EQU CVTMAP+80 04713000 CVT0FN00 EQU CVTMAP+76 04714000 CVTDARA EQU CVTDAR+1 04715000 CVTRSV07 EQU CVTFLGS1 04716000 CVTRSV06 EQU CVTFLGS1 04717000 CVTRSV05 EQU CVTFLGS1 04718000 CVTRSV04 EQU CVTFLGS1 04719000 CVTRSV03 EQU CVTFLGS1 04720000 CVTRSV02 EQU CVTFLGS1 04721000 CVTRSV01 EQU CVTFLGS1 04722000 CVTDMPLK EQU CVTFLGS1 04723000 CVTXITP EQU CVTMAP+68 04724000 CVTZDTAB EQU CVTMAP+64 04725000 CVTMSLT EQU CVTMAP+60 04726000 CVTDATE EQU CVTMAP+56 04727000 CVTBTERM EQU CVTMAP+52 04728000 CVTSYSAD EQU CVTMAP+48 04729000 CVTXTLER EQU CVTMAP+44 04730000 CVTILK2 EQU CVTMAP+40 04731000 CVTILK1 EQU CVTMAP+36 04732000 CVTPRLTV EQU CVTMAP+32 04733000 CVTPCNVT EQU CVTMAP+28 04734000 CVT0VL00 EQU CVTMAP+24 04735000 CVTXAPG EQU CVTMAP+20 04736000 CVTBUF EQU CVTMAP+16 04737000 CVTJOB EQU CVTMAP+12 04738000 CVTLINK EQU CVTMAP+8 04739000 CVT0EF00 EQU CVTMAP+4 04740000 CVTTCBP EQU CVTMAP 04741000 CVT EQU CVTMAP 04742000 ATARCRF8 EQU ATARCRSN 04743000 ATARCRF7 EQU ATARCRSN 04744000 ATARCRF6 EQU ATARCRSN 04745000 ATARCRF5 EQU ATARCRSN 04746000 ATARCRF4 EQU ATARCRSN 04747000 ATARCRF3 EQU ATARCRSN 04748000 ATARCRF2 EQU ATARCRSN 04749000 ATARCRF1 EQU ATARCRSN 04750000 ATARSV2 EQU ATARFLGS 04751000 ATASCCWP EQU ATARFLGS 04752000 ATASGNST EQU ATARFLGS 04753000 ATARSV1 EQU ATASFLGS+1 04754000 ATASRT EQU ATASFLGS+1 04755000 ATASWPDR EQU ATASFLGS+1 04756000 ATATRPAG EQU ATASFLGS+1 04757000 ATASWAP EQU ATASFLGS+1 04758000 ATAPAGCM EQU ATASFLGS 04759000 ATAPAGIO EQU ATASFLGS 04760000 ATAPOS EQU ATASFLGS 04761000 ATAPCOMP EQU ATASFLGS 04762000 ATAVIOCM EQU ATASFLGS 04763000 ATASCOMP EQU ATASFLGS 04764000 ATASLSQA EQU ATASFLGS 04765000 ATAQIOE EQU ATASFLGS 04766000 ASMCPRES EQU ASMCPRSQ+4 04767000 ASMCPTAK EQU ASMCPRSQ 04768000 ASMCPCNT EQU ASMCPAVQ+4 04769000 ASMCPAVL EQU ASMCPAVQ 04770000 ASMCPEXT EQU ASMPOOLS+6 04771000 ASMCPSIZ EQU ASMPOOLS+4 04772000 ASMCPID EQU ASMPOOLS 04773000 ASMRSV12 EQU ASMVT+1000 04774000 ASMSAVE EQU ASMVT+928 04775000 ASMWKSA7 EQU ASMVT+848 04776000 ASMWKSA6 EQU ASMVT+768 04777000 ASMACEPC EQU ASMVT+344 04778000 ASMSWKPC EQU ASMVT+328 04779000 ASMBWKPC EQU ASMVT+312 04780000 ASMIOEPC EQU ASMVT+296 04781000 ASMRSV10 EQU ASMVT+280 04782000 ASMPVACE EQU ASMVT+276 04783000 ASMPIOFR EQU ASMVT+272 04784000 ASMPVACQ EQU ASMVT+268 04785000 ASMPMSGS EQU ASMVT+264 04786000 ASMPMSG0 EQU ASMVT+260 04787000 ASMPFRLG EQU ASMVT+256 04788000 ASMPRLG EQU ASMVT+252 04789000 ASMPACT EQU ASMVT+248 04790000 ASMPSAV EQU ASMVT+244 04791000 ASMPCMP EQU ASMVT+240 04792000 ASMPCMPA EQU ASMVT+236 04793000 ASMPCMPN EQU ASMVT+232 04794000 ASMPCMPD EQU ASMVT+228 04795000 ASMPEX EQU ASMVT+224 04796000 ASMVRMTR EQU ASMVT+220 04797000 ASMPSRBC EQU ASMVT+216 04798000 ASMPSRMT EQU ASMVT+212 04799000 ASMPSWPD EQU ASMVT+208 04800000 ASMPTM EQU ASMVT+204 04801000 ASMPFRSW EQU ASMVT+200 04802000 ASMPFRSL EQU ASMVT+196 04803000 ASMPQIOE EQU ASMVT+192 04804000 ASMRSV8 EQU ASMVT+188 04805000 ASMVSAMW EQU ASMVT+184 04806000 ASMTASCB EQU ASMVT+180 04807000 ASMRLGWQ EQU ASMVT+176 04808000 ASMRLGRQ EQU ASMVT+172 04809000 ASMTMECB EQU ASMVT+168 04810000 ASMTCBPT EQU ASMVT+164 04811000 ASMREQCT EQU ASMVT+160 04812000 ASMGOSWK EQU ASMGOSQS+4 04813000 ASMGOSWT EQU ASMGOSQS 04814000 ASMLSAIH EQU ASMLSAI+4 04815000 ASMLSAIL EQU ASMLSAI 04816000 ASMCINV EQU ASMVT+140 04817000 ASMSTGXA EQU ASMVT+136 04818000 ASMLGVT EQU ASMVT+132 04819000 ASMSLOTV EQU ASMVT+128 04820000 ASMNVSC EQU ASMVT+120 04821000 ASMVSC EQU ASMVT+116 04822000 ASMSLOTS EQU ASMVT+112 04823000 ASMBKSLT EQU ASMVT+108 04824000 ASMRSV7 EQU ASMVT+92 04825000 ASMBURST EQU ASMVT+76 04826000 ASMPCCWN EQU ASMVT+72 04827000 ASMPCCWC EQU ASMPCCWQ+4 04828000 ASMPCCWA EQU ASMPCCWQ 04829000 ASMRSV6 EQU ASMVT+48 04830000 ASMSTAGL EQU ASMSTAGQ+4 04831000 ASMSTAGF EQU ASMSTAGQ 04832000 ASMRSV5 EQU ASMVT+28 04833000 ASMMSGBF EQU ASMVT+24 04834000 ASMTRPAG EQU ASMVT+16 04835000 ASMGOS EQU ASMVT+12 04836000 ASMDSSFS EQU ASMVT+2 04837000 ASMWARM EQU ASMFLAG2 04838000 ASMQUICK EQU ASMFLAG2 04839000 ASMNOTPT EQU ASMFLAG2 04840000 ASMNOTMR EQU ASMFLAG2 04841000 ASMNOSAV EQU ASMFLAG2 04842000 ASMCALLQ EQU ASMFLAG2 04843000 ASMPLPAS EQU ASMFLAG1 04844000 ASMCOMMF EQU ASMFLAG1 04845000 ASMPLPAF EQU ASMFLAG1 04846000 ASMNODPX EQU ASMFLAG1 04847000 ASMRSV1 EQU ASMFLAG1 04848000 ASMNOLCL EQU ASMFLAG1 04849000 ASMNOCWQ EQU ASMFLAG1 04850000 ASMDUPLX EQU ASMFLAG1 04851000 AIACEPTR EQU AIALPMEP 04852000 AIASLOT EQU AIASSID+1 04853000 @NM00002 EQU AIASSID 04854000 @NM00001 EQU AIALSID 04855000 AIARCSN EQU AIANXAIA+2 04856000 AIACYL EQU AIANXAIA 04857000 AIARSV9 EQU AIAFLG3 04858000 AIARSV8 EQU AIAFLG3 04859000 AIARSV7 EQU AIAFLG3 04860000 AIALPMEC EQU AIAFLG3 04861000 AIARSV6 EQU AIAFLG3 04862000 AIATRPSP EQU AIAFLG3 04863000 AIAPRINO EQU AIAFLG3 04864000 AIARSV5 EQU AIAFLG3 04865000 AIABADID EQU AIAFLG2 04866000 AIAERROR EQU AIAFLG2 04867000 AIARSV4 EQU AIAFLG2 04868000 AIATERMR EQU AIAFLG2 04869000 AIAFRAUX EQU AIAFLG2 04870000 AIARSV1 EQU AIAFLG1 04871000 AIASWPFX EQU AIAFLG1 04872000 AIAPAGDS EQU AIAFLG1 04873000 AIALSQA EQU AIAFLG1 04874000 AIAVIO EQU AIAFLG1 04875000 AIAPRIV EQU AIAFLG1 04876000 AIAOP EQU AIA+8 04877000 AIABQPA EQU AIA+4 04878000 AIAFQPA EQU AIA 04879000 @NM00061 EQU PSA+3668 04880000 PSASTAK EQU PSA+3072 04881000 @NM00060 EQU PSA+1048 04882000 PSAUSEND EQU PSA+1048 04883000 PSARV062 EQU PSA+1044 04884000 PSACDAL EQU PSA+1040 04885000 PSAWTCOD EQU PSA+1036 04886000 PSAATCVT EQU PSA+1032 04887000 PSAPCPSW EQU PSA+1024 04888000 PSAPIR2 EQU PSA+1020 04889000 PSARV059 EQU PSA+1018 04890000 PSASVC13 EQU PSA+1016 04891000 PSALSFCC EQU PSA+1012 04892000 PSASFACC EQU PSA+1008 04893000 PSASTOP EQU PSA+992 04894000 PSASTART EQU PSA+976 04895000 PSARSPSW EQU PSA+968 04896000 PSASRPSW EQU PSA+960 04897000 PSARV045 EQU PSA+892 04898000 PSARV044 EQU PSA+888 04899000 PSARV043 EQU PSA+884 04900000 PSARV042 EQU PSA+880 04901000 PSARV041 EQU PSA+876 04902000 PSARV040 EQU PSA+872 04903000 PSARV025 EQU PSA+868 04904000 PSADSSED EQU PSA+868 04905000 PSADSSPR EQU PSA+864 04906000 PSADSSFW EQU PSA+860 04907000 PSADSS14 EQU PSA+856 04908000 PSADSSPP EQU PSA+848 04909000 PSADSSRP EQU PSA+840 04910000 PSADSS05 EQU PSADSSF4 04911000 PSADSS10 EQU PSADSSF4 04912000 PSADSSVE EQU PSADSSF4 04913000 PSADSSDE EQU PSADSSF4 04914000 PSADSSC0 EQU PSADSSF4 04915000 PSADSSIE EQU PSADSSF4 04916000 PSADSS12 EQU PSADSSF4 04917000 PSADSSRC EQU PSADSSF4 04918000 PSARV057 EQU PSADSSF3 04919000 PSARV056 EQU PSADSSF3 04920000 PSARV055 EQU PSADSSF3 04921000 PSADSSMC EQU PSADSSF3 04922000 PSADSSRW EQU PSADSSF3 04923000 PSADSSNM EQU PSADSSF3 04924000 PSADSSES EQU PSADSSF3 04925000 PSADSSGP EQU PSADSSF3 04926000 PSADSSF2 EQU PSADSSFL+1 04927000 PSADSSPI EQU PSADSSF1 04928000 PSADSSOI EQU PSADSSF1 04929000 PSADSSSP EQU PSADSSF1 04930000 PSADSSTP EQU PSADSSF1 04931000 PSADSSDW EQU PSADSSF1 04932000 PSADSSDD EQU PSADSSF1 04933000 PSADSSDM EQU PSADSSF1 04934000 PSADSSMV EQU PSADSSF1 04935000 PSADSSTS EQU PSA+816 04936000 PSADSSWK EQU PSA+812 04937000 PSADSSR3 EQU PSA+808 04938000 PSADSSR2 EQU PSA+804 04939000 PSADSSRS EQU PSA+800 04940000 PSASTOR EQU PSA+796 04941000 PSACPUSA EQU PSA+794 04942000 PSAVSTAP EQU PSA+792 04943000 PSAWKVAP EQU PSA+788 04944000 PSAWKRAP EQU PSA+784 04945000 PSAMCHIC EQU PSA+783 04946000 PSARV061 EQU PSA+782 04947000 PSASYMSK EQU PSA+781 04948000 PSAMCHFL EQU PSA+780 04949000 PSACR0 EQU PSA+776 04950000 PSAPSWSV EQU PSA+768 04951000 PSACLHS EQU PSAHLHI 04952000 PSALKR15 EQU PSALKSA+60 04953000 PSALKR14 EQU PSALKSA+56 04954000 PSALKR13 EQU PSALKSA+52 04955000 PSALKR12 EQU PSALKSA+48 04956000 PSALKR11 EQU PSALKSA+44 04957000 PSALKR10 EQU PSALKSA+40 04958000 PSALKR9 EQU PSALKSA+36 04959000 PSALKR8 EQU PSALKSA+32 04960000 PSALKR7 EQU PSALKSA+28 04961000 PSALKR6 EQU PSALKSA+24 04962000 PSALKR5 EQU PSALKSA+20 04963000 PSALKR4 EQU PSALKSA+16 04964000 PSALKR3 EQU PSALKSA+12 04965000 PSALKR2 EQU PSALKSA+8 04966000 PSALKR1 EQU PSALKSA+4 04967000 PSALKR0 EQU PSALKSA 04968000 PSARV023 EQU PSACLHT+52 04969000 PSALOCAL EQU PSACLHT+48 04970000 PSACMSL EQU PSACLHT+44 04971000 PSAOPTL EQU PSACLHT+40 04972000 PSATPACL EQU PSACLHT+36 04973000 PSATPDNL EQU PSACLHT+32 04974000 PSATPNCL EQU PSACLHT+28 04975000 PSAIOSLL EQU PSACLHT+24 04976000 PSAIOSUL EQU PSACLHT+20 04977000 PSAIOSCL EQU PSACLHT+16 04978000 PSAIOSSL EQU PSACLHT+12 04979000 PSASALCL EQU PSACLHT+8 04980000 PSAASML EQU PSACLHT+4 04981000 PSADISPL EQU PSACLHT 04982000 PSASRSA EQU PSA+636 04983000 PSARV050 EQU PSA+634 04984000 PSADSSGO EQU PSA+633 04985000 PSARECUR EQU PSA+632 04986000 PSAHLHIS EQU PSA+628 04987000 PSAIPCSA EQU PSA+624 04988000 @NM00059 EQU PSA+621 04989000 PSAIPCDM EQU PSA+620 04990000 PSAIPCD EQU PSA+616 04991000 @NM00058 EQU PSA+613 04992000 PSAIPCRM EQU PSA+612 04993000 PSAIPCR EQU PSA+608 04994000 PSAMCHEX EQU PSA+600 04995000 PSAMPSW EQU PSA+592 04996000 PSAEXPS2 EQU PSA+584 04997000 PSAEXPS1 EQU PSA+576 04998000 PSAPIREG EQU PSA+572 04999000 PSARSREG EQU PSA+568 05000000 PSAGPREG EQU PSA+556 05001000 PSARV022 EQU PSASUP4 05002000 PSARV021 EQU PSASUP4 05003000 PSARV020 EQU PSASUP4 05004000 PSARV019 EQU PSASUP4 05005000 PSARV018 EQU PSASUP4 05006000 PSARV017 EQU PSASUP4 05007000 PSARV016 EQU PSASUP4 05008000 PSARV015 EQU PSASUP4 05009000 PSARV014 EQU PSASUP3 05010000 PSAULCMS EQU PSASUP3 05011000 PSARV012 EQU PSASUP3 05012000 PSAESTA EQU PSASUP3 05013000 PSASPR EQU PSASUP3 05014000 PSAPSREG EQU PSASUP3 05015000 PSAPI2 EQU PSASUP3 05016000 PSAIOSUP EQU PSASUP3 05017000 PSALCR EQU PSASUP2 05018000 PSARTM EQU PSASUP2 05019000 PSAACR EQU PSASUP2 05020000 PSAIPCE2 EQU PSASUP2 05021000 PSAIPCES EQU PSASUP2 05022000 PSAIPCEC EQU PSASUP2 05023000 PSAGTF EQU PSASUP2 05024000 PSAIPCRI EQU PSASUP2 05025000 PSATYPE6 EQU PSASUP1 05026000 PSATCTL EQU PSASUP1 05027000 PSADISP EQU PSASUP1 05028000 PSALOCK EQU PSASUP1 05029000 PSAPI EQU PSASUP1 05030000 PSAEXT EQU PSASUP1 05031000 PSASVC EQU PSASUP1 05032000 PSAIO EQU PSASUP1 05033000 PSAAOLD EQU PSA+548 05034000 PSAANEW EQU PSA+544 05035000 PSATOLD EQU PSA+540 05036000 PSATNEW EQU PSA+536 05037000 PSALCCAR EQU PSA+532 05038000 PSAPCCAR EQU PSA+524 05039000 PSAPCCAV EQU PSA+520 05040000 PSACPULA EQU PSA+518 05041000 PSACPUPA EQU PSA+516 05042000 PSAPSA EQU PSA+512 05043000 FLCHDEND EQU PSA+512 05044000 FLCCRSAV EQU FLCMCLA+280 05045000 FLCGRSAV EQU FLCMCLA+216 05046000 FLCFPSAV EQU FLCMCLA+184 05047000 FLCFLA EQU FLCMCLA+88 05048000 FLCRGNCD EQU FLCMCLA+84 05049000 FLCFSAA EQU FLCFSA+1 05050000 @NM00057 EQU FLCFSA 05051000 @NM00056 EQU FLCMCLA+72 05052000 FLCMCIC EQU FLCMCLA+64 05053000 @NM00055 EQU FLCMCLA+20 05054000 FLCIOAA EQU FLCIOA+1 05055000 @NM00054 EQU FLCIOA 05056000 @NM00053 EQU FLCMCLA+15 05057000 @NM00052 EQU FLCMCLA+14 05058000 @NM00051 EQU FLCMCLA+12 05059000 FLCLCL EQU FLCMCLA+8 05060000 FLCIOELA EQU FLCIOEL+1 05061000 @NM00050 EQU FLCIOEL 05062000 FLCCHNID EQU FLCMCLA 05063000 @NM00049 EQU PSA+160 05064000 FLCMTRCD EQU PSA+157 05065000 @NM00048 EQU PSA+156 05066000 FLCPERA EQU FLCPER+1 05067000 @NM00047 EQU FLCPER 05068000 @NM00046 EQU PSA+151 05069000 FLCPERCD EQU PSA+150 05070000 FLCMCNUM EQU PSA+149 05071000 @NM00045 EQU PSA+148 05072000 FLCTEAA EQU FLCTEA+1 05073000 @NM00044 EQU FLCTEA 05074000 PSAPIPC EQU PSAPICOD 05075000 PSAPIMC EQU PSAPICOD 05076000 PSAPIPER EQU PSAPICOD 05077000 PSARV049 EQU FLCPICOD 05078000 FLCPILCB EQU FLCPIILC 05079000 @NM00043 EQU FLCPIILC 05080000 @NM00042 EQU PSAEPPSW 05081000 FLCSVCN EQU PSAESPSW+2 05082000 FLCSILCB EQU FLCSVILC 05083000 @NM00041 EQU FLCSVILC 05084000 @NM00040 EQU PSAESPSW 05085000 FLCEICOD EQU PSAEEPSW+2 05086000 PSASPAD EQU PSAEEPSW 05087000 @NM00039 EQU PSA+128 05088000 FLCINPSW EQU PSA+120 05089000 FLCMNPSW EQU PSA+112 05090000 FLCPNPSW EQU PSA+104 05091000 FLCSNPSW EQU PSA+96 05092000 FLCENPSW EQU PSA+88 05093000 FLCTRACE EQU PSA+84 05094000 FLCTIMER EQU PSA+80 05095000 FLCCVT2 EQU PSA+76 05096000 FLCCAW EQU PSA+72 05097000 FLCCSW EQU PSA+64 05098000 FLCIOPSW EQU PSA+56 05099000 FLCMOPSW EQU PSA+48 05100000 FLCPOPSW EQU PSA+40 05101000 FLCSOPSW EQU PSA+32 05102000 FLCEOPSW EQU PSA+24 05103000 @NM00038 EQU FLCICCW2+4 05104000 FLCICCW1 EQU FLCROPSW 05105000 FLCIPPSW EQU FLCRNPSW 05106000 * END UNREFERENCED COMPONENTS 05107000 @RC00238 EQU @RC00232 05108000 @RT00498 EQU RECXIT 05109000 @RC00543 EQU @RC00530 05110000 @RC00652 EQU @RC00650 05111000 @ENDDATA EQU * 05112000 END ILRCMP,(C'PLS1458',0701,78103) 05113000