TITLE 'IRARMCTL -- SYSTEM RESOURCES MANAGER CONTROL ALGORITHM *00001000 ' 00002000 IRARMCTL CSECT , 01S0001 00003000 @PROLOG BALR @12,0 01S0001 00004000 @PSTART DS 0H 01S0001 00005000 USING @PSTART,@12 01S0001 00006000 * 01S0029 00007000 * /*****************************************************************/ 00008000 * /* */ 00009000 * /* RMCTPTR (REG 2) MUST BE SET UP BEFORE IRARMCTL IS ENTERED */ 00010000 * /* RRPAPTR (REG 3) MUST BE SET UP BEFORE IRARMCTL IS ENTERED */ 00011000 * /* */ 00012000 * /*****************************************************************/ 00013000 * 01S0029 00014000 * SVEREG=RMCTRMSA; /* SUPPLY SAVE AREA STACK ADDRS */ 00015000 L SVEREG,RMCTRMSA(,RMCTPTR) 01S0029 00016000 * RRPAEPA=ADDR(RMEPBCTL); /* INDICATE CONTROL ROUTINE RMEP */ 00017000 LA @09,RMEPBCTL(,RMCTPTR) 01S0030 00018000 ST @09,RRPAEPA(,RRPAPTR) 01S0030 00019000 * 02S0031 00020000 */* **************************************************************** */ 00021000 */* */ 00022000 */* ROUTINE NAME - IRARMCEN */ 00023000 */* */ 00024000 */* DESCRIPTIVE NAME - SYSTEM RESOURCES MANAGER CNTRL ALGORITHM */ 00025000 */* DEFERRED USER ACTION PROCESSING ROUTINE */ 00026000 */* */ 00027000 */* FUNCTION- THE IRARMCEN ROUTINE TESTS THE DEFERRED @Z40BPCJ*/ 00028000 */* ACTION QUEUE AT -RMCTAQHD-. IF THE ACTION QUEUE IS */ 00029000 */* NOT EMPTY, IRARMCEN PICKS THE FIRST OUCB ON THE QUEUE, */ 00030000 */* AND ROUTES CONTROL TO THOSE ROUTINES WHOSE REQUEST */ 00031000 */* FLAGS HAVE BEEN SET IN THE -OUCBACN- FIELD. WHEN */ 00032000 */* THERE ARE NO MORE ACTIONS TO BE PERFORMED, IRARMCEN */ 00033000 */* DEQUEUES THE OUCB FROM THE ACTION QUEUE, AND SETS ITS */ 00034000 */* -OUCBACT- FIELD TO ZERO TO INDICATE UNQUEUED STATUS. */ 00035000 */* */ 00036000 */* NOTE - WHILE IRARMCEN IS EXECUTING, OTHR CONCURRENT PROCSS */ 00037000 */* MAY INSERT, VIA THE IRARMCRN RTNE, ADDITIONL ACTION */ 00038000 */* REQUEST BITS INTO THE -OUCBACN- FIELD. */ 00039000 */* */ 00040000 */* SETUP PERFORMED FOR EACH INVOKED ACTION PROCESSING ROUTINE */ 00041000 */* - REG 1 CONTAINS THE ADDRESS OF THE RMEP BLOCK FOR THE */ 00042000 */* ACTION ROUTINE BEING INVOKED. */ 00043000 */* - REG 4 CONTAINS THE ADDRESS OF THE OUCB FOR WHOM THE */ 00044000 */* ACTION IS TO BE PERFORMED. */ 00045000 */* - REG 13 CONTAINS THE ADDRESS OF THE SAVE AREA STACK */ 00046000 */* ASSOCIATED WITH THE SYSTEM RESOURCES MANAGER LOCK. */ 00047000 */* - REG 14 CONTAINS THE RETURN ADDRESS. */ 00048000 */* - REG 15 CONTAINS THE ACTION RTNE ENTRY ADDRESS. */ 00049000 */* */ 00050000 */* **************************************************************** */ 00051000 * 02S0031 00052000 * /*****************************************************************/ 00053000 * /* */ 00054000 * /* CAN NOW INVOKE ROUTINES WHICH WERE PREVIOUSLY DEFERRED. ANY */ 00055000 * /* USERS FOR WHOM ACTIONS WERE DEFERRED HAVE BEEN QUEUED ONTO THE*/ 00056000 * /* ACTION QUEUE. THE FOLLOWING CODE IS EXECUTED AS LONG AS THE */ 00057000 * /* ACTION QUEUE IS NOT EMPTY. EMPTY IS INDICATED WHEN THE */ 00058000 * /* REMAINING MEMBER IS THE DUMMY PREASSEMBLED OUCB. */ 00059000 * /* */ 00060000 * /*****************************************************************/ 00061000 * 02S0031 00062000 * DO WHILE(RMCTAQHD^=RMCTOUCB); 02S0031 00063000 B @DE00031 02S0031 00064000 @DL00031 DS 0H 02S0032 00065000 *RMCENL1: /* RETRY PICK 1ST OUCB IF QUEUE 00066000 * CHANGED BY OTHER PROCESS */ 00067000 * OUCBPTR=RMCTAQHD; /* PICK TOP OUCB ON ACTION QUE */ 00068000 * 02S0032 00069000 RMCENL1 L OUCBPTR,RMCTAQHD(,RMCTPTR) 02S0032 00070000 * /***************************************************************/ 00071000 * /* */ 00072000 * /* DEQUEUE THE OUCB FROM THE ACTION QUEUE, AS ALL REQSTD */ 00073000 * /* ACTIONS WILL HAVE BEEN PERFORMED BY THE TIME THAT THE */ 00074000 * /* IRARMCEN ROUTINE STEPS AWAY FROM THIS OUCB. A ZERO IS */ 00075000 * /* INSERTED INTO THE -OUCBACT- FIELD TO INDICATE THAT THIS USER*/ 00076000 * /* IS NO LONGER QUEUED UP FOR ACTION PROCESSING. */ 00077000 * /* */ 00078000 * /***************************************************************/ 00079000 * 02S0033 00080000 * R0=ZERO; /* ZERO - TO MARK OUCB NOT QUED */ 00081000 SLR R0,R0 02S0033 00082000 * SVRE=RMCTAQCT; /* PICK PREV ACTION QUEUE COUNT */ 00083000 L SVRE,RMCTAQCT(,RMCTPTR) 02S0034 00084000 * SVRO=OUCBPTR; /* INSURE OUCB STILL QUED AT TOP */ 00085000 LR SVRO,OUCBPTR 02S0035 00086000 * WKRE=SVRE; /* KEEP PREV ACTION QUEUE COUNT */ 00087000 LR WKRE,SVRE 02S0036 00088000 * WKRO=OUCBACT; /* PICK NEW TOP ACTION QUE OUCB */ 00089000 L WKRO,OUCBACT(,OUCBPTR) 02S0037 00090000 * CDS(SVRE,WKRE,RMCTACQH); /* STORE UPDATED QUEUE HEADER */ 00091000 CDS SVRE,WKRE,RMCTACQH(RMCTPTR) 02S0038 00092000 * BC(7,RMCENL1); /* REPEAT IF OUCB WAS NOT AT TOP */ 00093000 BC 7,RMCENL1 02S0039 00094000 * OUCBACT=R0; /* MARK OUCB AS NOT ON QUEUE */ 00095000 ST R0,OUCBACT(,OUCBPTR) 02S0040 00096000 * WKRE=OUCBCSW&ACTNDEF; /* PICK DEFERRED ACTION REQ FLGS */ 00097000 L WKRE,OUCBCSW(,OUCBPTR) 02S0041 00098000 N WKRE,ACTNDEF 02S0041 00099000 * IF WKRE^=EMPTY THEN /* ACTIONS HAVE BEEN DEFERRED */ 00100000 * 02S0042 00101000 LTR WKRE,WKRE 02S0042 00102000 BZ @RF00042 02S0042 00103000 * /*************************************************************/ 00104000 * /* */ 00105000 * /* INVOKE THE IRARMCRT SUBROUTINE, PASSING IT THE ADDRESS OF */ 00106000 * /* THE DEFERRABLE ACTION ROUTINE TABLE. IRARMCRT WILL ROUTE */ 00107000 * /* CONTROL TO ALL OF THE ENTRY POINTS WHOSE FLAGS HAVE BEEN */ 00108000 * /* SET IN THE -OUCBACN- FIELD, AND WILL TURN OFF EACH */ 00109000 * /* -OUCBACN- FLAG WHEN THE CORRESPONDING ENTRY POINT ROUTINE */ 00110000 * /* HAS COMPLETED ITS PROCESSING. */ 00111000 * /* */ 00112000 * /*************************************************************/ 00113000 * 02S0043 00114000 * DO; 02S0043 00115000 * RMCAINV=ACTNDEF; /* INDICATE THE ACTN REQST FLAGS */ 00116000 MVC RMCAINV(4,RMCTPTR),ACTNDEF 02S0044 00117000 * PMRE=ADDR(OUCBACN); /* INDICATE THE RTNE REQST ACCUM */ 00118000 LA PMRE,OUCBACN(,OUCBPTR) 02S0045 00119000 * RMEPPTR=RMCTEPDT; /* INDICATE ACTION TABLE TO SCAN */ 00120000 L RMEPPTR,RMCTEPDT(,RMCTPTR) 02S0046 00121000 * CALL IRARMCRT; /* SCAN AND PERFORM ACTION RTNES */ 00122000 BAL @14,IRARMCRT 02S0047 00123000 * END; 02S0048 00124000 * END; 02S0049 00125000 @RF00042 DS 0H 02S0049 00126000 @DE00031 CLC RMCTAQHD(4,RMCTPTR),RMCTOUCB(RMCTPTR) 02S0049 00127000 BNE @DL00031 02S0049 00128000 * 02S0050 00129000 */* **************************************************************** */ 00130000 */* */ 00131000 */* ROUTINE NAME - IRARMCEL */ 00132000 */* */ 00133000 */* DESCRIPTIVE NAME - SYSTEM RESOURCES MANAGER CNTRL ALGORITHM */ 00134000 */* INDIVIDUALLY REQUESTED ALGORITHM CONTROL ROUTING RTNE */ 00135000 */* */ 00136000 */* FUNCTION - THE IRARMCEL ROUTINE GATHERS ALGORITHM EXECUTION */ 00137000 */* REQUESTS, WHICH HAVE BEEN STORED AS BIT PATTERNS IN */ 00138000 */* -RMCTALR- BY SYSTEM RESOURCES MANAGER LOCKED RTNES, */ 00139000 */* AND IN -RMCTALA- BY OUTSIDE-LOCK ROUTINES. @Z40BPCJ*/ 00140000 */* ALL REQUESTS ARE PUT IN -RMCTALR-. CONTROL IS @Z40BPCJ*/ 00141000 */* THEN ROUTED, VIA THE IRARMCRT SBRTNE, TO ALGORITHMS */ 00142000 */* REQUESTED IN -RMCTALR-. AS EACH REQUESTED ALGORITHM */ 00143000 */* COMPLETES, ITS REQUEST BIT IS TURNED OFF IN -RMCTALR-. */ 00144000 */* WHEN CONTROL ROUTING IS COMPLETE, ANY REMAINING RE- */ 00145000 */* QUESTS ARE LEFT FOR THE NEXT TIME IRARMCEL IS RUN. */ 00146000 */* */ 00147000 */* NOTE - WHILE IRARMCEL IS EXECUTING, OTHR CONCURRENT PROCSS */ 00148000 */* MAY INSERT, VIA THE IRARMCRL ROUTINE, ADDITIONL ALG */ 00149000 */* REQUEST BITS INTO THE -RMCTALA- FIELD. */ 00150000 */* */ 00151000 */* SETUP PERFORMED FOR EACH INVOKED ALGORITHM ROUTINE */ 00152000 */* - REG 1 CONTAINS THE ADDRESS OF THE RMEP BLOCK FOR THE */ 00153000 */* ALGORITHM BEING INVOKED. */ 00154000 */* - REG 13 CONTAINS THE ADDRESS OF THE SAVE AREA STACK */ 00155000 */* ASSOCIATED WITH THE SYSTEM RESOURCES MANAGER LOCK. */ 00156000 */* - REG 14 CONTAINS THE RETURN ADDRESS. */ 00157000 */* - REG 15 CONTAINS THE ALGORITHM RTNE ENTRY ADDRESS */ 00158000 */* */ 00159000 */* **************************************************************** */ 00160000 * 02S0050 00161000 * /*****************************************************************/ 00162000 * /* */ 00163000 * /* TEST IF ANY ALGORITHMS HAVE BEEN INDIVIDUALLY REQUESTED */ 00164000 * /* */ 00165000 * /*****************************************************************/ 00166000 * 02S0050 00167000 * R0=EMPTY; /* ZERO - TO TEST + CLEAR ACCUMS */ 00168000 SLR R0,R0 02S0050 00169000 * WKRE=RMCTALA; /* PICK ALG REQUEST ACCUM FIELD */ 00170000 L WKRE,RMCTALA(,RMCTPTR) 02S0051 00171000 * WKRO=WKRE|RMCTALR; /* ADD IMMED ALG REQUEST FIELD */ 00172000 LR WKRO,WKRE 02S0052 00173000 O WKRO,RMCTALR(,RMCTPTR) 02S0052 00174000 * IF WKRO^=R0 THEN /* HAVE ALGORITHM REQUEST */ 00175000 * 02S0053 00176000 CLR WKRO,R0 02S0053 00177000 BE @RF00053 02S0053 00178000 * /***************************************************************/ 00179000 * /* */ 00180000 * /* THE FOLLOWING INSTRUCTIONS ARE EXECUTED ONLY IF AT LEAST ONE*/ 00181000 * /* REQUEST FOR ALGORITHM EXECUTION IS PENDING. */ 00182000 * /* */ 00183000 * /***************************************************************/ 00184000 * 02S0054 00185000 * DO; 02S0054 00186000 * IF WKRE^=R0 THEN /* RMCTALA FIELD NON-ZERO */ 00187000 * 02S0055 00188000 CLR WKRE,R0 02S0055 00189000 BE @RF00055 02S0055 00190000 * /***********************************************************/ 00191000 * /* */ 00192000 * /* MOVE REQUEST BITS OUT OF OUTSIDE-LOCK REQUEST ACCUMULATR*/ 00193000 * /* */ 00194000 * /***********************************************************/ 00195000 * 02S0056 00196000 * DO; 02S0056 00197000 *RMCELL1: /* POINT WHERE MOVE RMCTALA BITS 00198000 * INTO RMCTALR */ 00199000 * RMCTALR=WKRE|RMCTALR; /* GATHER ALL ALG REQUEST BITS */ 00200000 RMCELL1 LR @09,WKRE 02S0057 00201000 O @09,RMCTALR(,RMCTPTR) 02S0057 00202000 ST @09,RMCTALR(,RMCTPTR) 02S0057 00203000 * CS(WKRE,R0,RMCTALAW); /* CLEAR OUTSIDE-LOCK ACCUMULATR */ 00204000 CS WKRE,@00,RMCTALAW(RMCTPTR) 02S0058 00205000 * BC(7,RMCELL1); /* REPEAT IF REQUEST JUST ADDED */ 00206000 BC 7,RMCELL1 02S0059 00207000 * END; 02S0060 00208000 * 02S0060 00209000 * /*************************************************************/ 00210000 * /* */ 00211000 * /* INVOKE THE IRARMCRT SUBROUTINE, PASSING IT THE ADDRESS OF */ 00212000 * /* THE INDIVIDUALLY REQUESTABLE ALGORITHMS TABLE. IRARMCRT */ 00213000 * /* WILL ROUTE CONTROL TO THE ALGS REQUESTED IN -RMCTALR-. AS */ 00214000 * /* EACH ALGORITHM COMPLETES ITS EXECUTION, IRARMCRT WILL TURN*/ 00215000 * /* OFF ITS REQUEST BIT IN -RMCTALR-. */ 00216000 * /* */ 00217000 * /*************************************************************/ 00218000 * 02S0061 00219000 * RMCAINV=FLAGDEF; /* PASS THE ALG REQST FLGS MASK */ 00220000 @RF00055 MVC RMCAINV(4,RMCTPTR),FLAGDEF 02S0061 00221000 * PMRE=ADDR(RMCTALR); /* PASS THE ALG REQUEST ACCUML */ 00222000 LA PMRE,RMCTALR(,RMCTPTR) 02S0062 00223000 * RMEPPTR=RMCTEPAT; /* PASS ALGORITHM TABLE TO SCAN */ 00224000 L RMEPPTR,RMCTEPAT(,RMCTPTR) 02S0063 00225000 * CALL IRARMCRT; /* SCAN AND PERFORM ALGORITHMS */ 00226000 BAL @14,IRARMCRT 02S0064 00227000 * END; 02S0065 00228000 * 01S0066 00229000 * /*****************************************************************/ 00230000 * /* */ 00231000 * /* RETURN TO SYSTEM RESOURCES MANAGER INTERFACE PROGRAM ? */ 00232000 * /* IRACTLCL EPN(I01) */ 00233000 * /* */ 00234000 * /*****************************************************************/ 00235000 * 01S0066 00236000 * GOTO RMEXI01->IRARMNTR; /* EXIT TO I01 FUNCT */ 00237000 @RF00053 L @09,RMEXI01(,RMCTPTR) 01S0066 00238000 BR @09 01S0066 00239000 * 02S0067 00240000 */* **************************************************************** */ 00241000 */* */ 00242000 */* ROUTINE NAME - IRARMCET */ 00243000 */* */ 00244000 */* DESCRIPTIVE NAME - SYSTEM RESOURCES MANAGER CNTRL ALGORITHM */ 00245000 */* PERIODIC ENTRY POINT SCHEDULING ROUTINE */ 00246000 */* */ 00247000 */* FUNCTION - THE IRARMCET ROUTINE ACCEPTS TIMER INTERRUPTS, */ 00248000 */* SETS UP REQUESTS FOR ALL THOSE PERIODICALLY SCHEDU- */ 00249000 */* LED SYSTEM RESOURCES MANAGER ALGORITHMIC PROCESSING */ 00250000 */* ROUTINES WHICH ARE THEN DUE, AND RESETS THE SYSTEM */ 00251000 */* RESOURCES MANAGER TIMER ELEMENT SO AS TO INTERRUPT */ 00252000 */* AGAIN WHEN IRARMCET WILL BE NEXT REQUIRED. */ 00253000 */* */ 00254000 */* INPUT - THE TIME-DRIVEN ALGORITHM QUEUE IS ORDERED BY THE */ 00255000 */* RMEPTME VALUES OF THE BLOCKS ON THE QUEUE. */ 00256000 */* - RMCTTOD CONTAINS THE CURRENT TIME. */ 00257000 */* - RMPTTOL CONTAINS THE ALLOWED SCHEDULING TOLERANCE. */ 00258000 */* - RMPTTOM CONTAINS THE REQUIRED MINIMUM SCHD PERIOD. */ 00259000 */* - THE RMEPINT FIELDS OF THE BLCKS ON THE TIME-DRIVEN */ 00260000 */* ALG QUE INDICATE THE SCHED INTERVALS FOR THE ALGS. */ 00261000 */* */ 00262000 */* OUTPT - RMCTALA CONTAINS THE REQUEST FLAGS FOR ALL THOSE */ 00263000 */* TIME-DRIVEN ALGORITHMS SCHEDULED TO BE EXECUTED */ 00264000 */* AT THE PRESENT TIME. */ 00265000 */* - RMPTTOI CONTAINS THE TIME OF EXPIRATION OF THE */ 00266000 */* NEXT SYSTEM RESOURCES MANAGER SCHEDULING INTERVAL. */ 00267000 */* */ 00268000 */* **************************************************************** */ 00269000 * 02S0067 00270000 * DCL 02S0067 00271000 * IRARMCET LABEL EXTERNAL; 02S0067 00272000 *IRARMCET: /* PROCESS SYSTEM RESOURCES 02S0068 00273000 * MANAGER TIMER INTERRUPT */ 00274000 * GEN CODE; 02S0068 00275000 IRARMCET DS 0H 02S0068 00276000 * /* 00277000 IRARMXTL DS 0H 00278000 ENTRY IRARMXTL 00279000 BALR @15,0 SETUP ENTRY ADDRESSABILITY 00280000 LA @12,*-@PSTART DISPLACEMENT TO MODULE BASE 00281000 LCR @12,@12 NEGATIVE FOR SUBTRACT 00282000 ALR @12,@15 SETUP MODULE ADDRESSABILITY 00283000 * SVEREG=RMCTRMSA; /* SUPPLY SAVE AREA STACK ADDRS */ 00284000 L SVEREG,RMCTRMSA(,RMCTPTR) 02S0069 00285000 * RRPAEPA=ADDR(RMEPBCTL); /* INDICATE CONTROL ROUTINE RMEP */ 00286000 LA @09,RMEPBCTL(,RMCTPTR) 02S0070 00287000 ST @09,RRPAEPA(,RRPAPTR) 02S0070 00288000 * RRPACTL='0'B; /* REVERT TO NORMAL FAIL PROCESS */ 00289000 NI RRPACTL(RRPAPTR),B'11110111' 02S0071 00290000 * RMEPPTR=RMCTTMQE->RMEPFWD; /* PICK 1ST RMEP ON TMEDRVN QUE */ 00291000 L @09,RMCTTMQE(,RMCTPTR) 02S0072 00292000 L RMEPPTR,RMEPFWD(,@09) 02S0072 00293000 * PMRE=RMEPINT; /* DEFAULT TME OF NXT INTERRUPT */ 00294000 L PMRE,RMEPINT(,RMEPPTR) 02S0073 00295000 * IF RRPARFI='0'B THEN /* NOT MULTIPLE ERROR RECURSION */ 00296000 * 02S0074 00297000 TM RRPARFI(RRPAPTR),B'00000010' 02S0074 00298000 BNZ @RF00074 02S0074 00299000 * /***************************************************************/ 00300000 * /* */ 00301000 * /* REQUEST EACH TIME-DRIVEN QUE RTNE NOT SCHEDULED FOR LATER */ 00302000 * /* */ 00303000 * /***************************************************************/ 00304000 * 02S0075 00305000 * DO WHILE(RRPATOD+RMPTTOL^RMEPINT THEN /* RTNE RESCHED INTERVL SMALLER */ 00317000 L @09,RMEPINT(,RMEPPTR) 02S0080 00318000 CLR PMRE,@09 02S0080 00319000 BNH @RF00080 02S0080 00320000 * PMRE=RMEPINT; /* SET NEW TME OF NXT INTERRUPT */ 00321000 LR PMRE,@09 02S0081 00322000 * RMEPPTR=RMEPFWD; /* STEP TO NXT TMEDRVN QUE RMEP */ 00323000 @RF00080 L RMEPPTR,RMEPFWD(,RMEPPTR) 02S0082 00324000 * END; 02S0083 00325000 @DE00075 L @09,RRPATOD(,RRPAPTR) 02S0083 00326000 AL @09,RMPTTOL(,RMCTPTR) 02S0083 00327000 CL @09,RMEPTME(,RMEPPTR) 02S0083 00328000 BNL @DL00075 02S0083 00329000 * PMRE=MIN(PMRE,RMEPTME-RRPATOD); /* CONSIDER NEXT RTNE SCHEDL */ 00330000 @RF00074 L @09,RMEPTME(,RMEPPTR) 02S0084 00331000 SL @09,RRPATOD(,RRPAPTR) 02S0084 00332000 CLR PMRE,@09 02S0084 00333000 BNH *+6 00334000 LR PMRE,@09 02S0084 00335000 * R1=RMCTTOD+MAX(RMPTTOM,PMRE); /* PASS NXT TIME OF EXPIRATN */ 00336000 * 02S0085 00337000 L R1,RMPTTOM(,RMCTPTR) 02S0085 00338000 CLR R1,PMRE 02S0085 00339000 BNL *+6 00340000 LR R1,PMRE 02S0085 00341000 AL R1,RMCTTOD(,RMCTPTR) 02S0085 00342000 * /*****************************************************************/ 00343000 * /* */ 00344000 * /* ? IRACTLCL EPN(I05) */ 00345000 * /* */ 00346000 * /*****************************************************************/ 00347000 * 02S0086 00348000 * CALL RMSBI05->IRARMRTN; /* INVOKE I05 SUBRTN */ 00349000 L @15,RMSBI05(,RMCTPTR) 02S0086 00350000 BALR @14,@15 02S0086 00351000 * IF RTNCOD=ZERO THEN /* TIMER INTERVAL SET SUCCESSFUL */ 00352000 LTR RTNCOD,RTNCOD 02S0087 00353000 BNZ @RF00087 02S0087 00354000 * RMCATOI=R1; /* SAVE NEW TIMER EXPIRE SETTING */ 00355000 * 02S0088 00356000 ST R1,RMCATOI(,RMCTPTR) 02S0088 00357000 * /*****************************************************************/ 00358000 * /* */ 00359000 * /* ? IRACTLCL EPN(CTL) */ 00360000 * /* */ 00361000 * /*****************************************************************/ 00362000 * 02S0089 00363000 * GOTO RMEXCTL->IRARMNTR; /* EXIT TO CTL FUNCT */ 00364000 @RF00087 L @09,RMEXCTL(,RMCTPTR) 02S0089 00365000 BR @09 02S0089 00366000 * 02S0090 00367000 */* **************************************************************** */ 00368000 */* */ 00369000 */* ROUTINE NAME - IRARMCED */ 00370000 */* */ 00371000 */* DESCRIPTIVE NAME - SYSTEM RESOURCES MANAGER CNTRL ALGORITHM */ 00372000 */* SRB DISPATCHED ORIGINAL ENTRY PROCESSING ROUTINE */ 00373000 */* */ 00374000 */* FUNCTION - THE IRARMCED ROUTINE RECEIVES CONTROL UNDER AN */ 00375000 */* SRB SCHEDULED BY THE DISPATCHER. IRARMCED SETS UP AN */ 00376000 */* ENTRY TO THE MAINLINE OF THE SYSTEM RESOURCES MANAGER */ 00377000 */* BY LINKING TO THE SRM AS SYSEVENT 48. THIS SYSEVENT */ 00378000 */* IS INTERPRETED BY THE SRM ROUTINES AS A REQUEST THAT */ 00379000 */* IRARMCTL BE RE-ENTERED, ONCE THE SRM LOCK AND THE SRM */ 00380000 */* FRR HAVE BEEN ACQUIRED. ONE SRB MAKES USE OF THIS */ 00381000 */* @Z40BPCJ*/ 00382000 */* FACILITY. IT IS SCHEDULED BY ROUTINES NOT HOLDING */ 00383000 */* @Z40BPCJ*/ 00384000 */* THE SRM LOCK, IN ORDER THAT DEPENDENT ROUTINES, WHICH */ 00385000 */* DO REQUIRE THE LOCK, MAY BE RUN (BY THE SRB) WITHOUT */ 00386000 */* DELAY. @Z40BPCJ*/ 00387000 */* */ 00388000 */* EXIT - BRANCH ON REGISTER 14 BACK TO THE DISPATCHER. */ 00389000 */* - THERE IS NO ERROR EXIT OR INDICATION. */ 00390000 */* */ 00391000 */* **************************************************************** */ 00392000 * 02S0090 00393000 * DCL 02S0090 00394000 * IRARMCED LABEL EXTERNAL; 02S0090 00395000 *IRARMCED: /* SYSTEM RESOURCES MANAGER SRB 00396000 * PROCESSING ENTRY POINT */ 00397000 * R1=R0; /* SAVE SRB ADDRESS AS PARAMETR */ 00398000 IRARMCED LR R1,R0 02S0091 00399000 * RMCTPTR=CVTOPCTP; /* ADDR SYSTEM RSRCS MNGR TABLE */ 00400000 L @09,CVTPTR 02S0092 00401000 L RMCTPTR,CVTOPCTP(,@09) 02S0092 00402000 * SVEREG=RTNREG; /* PASS REG 14 CONTENT IN REG 13 */ 00403000 LR SVEREG,RTNREG 02S0093 00404000 * R0=E48; /* SRB ENTRY SYSEVENT CODE */ 00405000 LA R0,48 02S0094 00406000 * GOTO RMEXI48->IRARMNTR; /* OBTAIN SRM LOCK, RRPA BLOCK */ 00407000 L @09,RMEXI48(,RMCTPTR) 02S0095 00408000 BR @09 02S0095 00409000 * 02S0096 00410000 */* **************************************************************** */ 00411000 */* */ 00412000 */* ROUTINE NAME - IRARMCQT */ 00413000 */* */ 00414000 */* DESCRIPTIVE NAME - SYSTEM RESOURCES MANAGER CNTRL ALGORITHM */ 00415000 */* PERIODICALLY INVOKED ENTRY POINT RESCHEDULING SBRTNE */ 00416000 */* */ 00417000 */* FUNCTION - THE IRARMCQT SUBROUTINE ACCEPTS A REQUEST TO */ 00418000 */* RESCHEDULE THE EXECUTION OF A PERIODICALLY INVOKED */ 00419000 */* SYSTEM RESOURCES MANAGER ENTRY POINT. IT ADDS THE */ 00420000 */* INVOCATION INTERVAL TO THE TIME THE ENTRY WAS LAST */ 00421000 */* SCHEDULED, AND REPOSITIONS THE ROUTINE SCHEDULING */ 00422000 */* BLOCK ON THE SYSTEM RESOURCES MANAGER ENTRY TIMING */ 00423000 */* QUEUE ACCORDING TO WHEN IT IS NEXT DUE. */ 00424000 */* */ 00425000 */* INPUT - REG 1 CONTAINS THE ADDRESS OF THE RMEP BLOCK TO */ 00426000 */* BE PLACED ON THE ENTRY TIMING QUEUE. THE RMEP */ 00427000 */* MUST HAVE BEEN DEQUED PRIOR TO USING IRARMCQT. */ 00428000 */* - REG 14 CONTAINS THE RETURN ADDRESS. */ 00429000 */* - RMEPTME CONTAINS THE STARTING TIME WITH RESPECT */ 00430000 */* TO WHICH THE ENTRY POINT WILL BE RESCHEDULED. */ 00431000 */* - RMEPINT CONTAINS THE INTERVAL VALUE TO BE ADDED */ 00432000 */* TO THE STARTING TIME. */ 00433000 */* */ 00434000 */* OUTPT - THE INTERVAL VALUE IS ADDED TO THE RMEPTME FIELD. */ 00435000 */* - THE RMEP IS MOVED TO THE PROPER POSITION ON THE */ 00436000 */* ENTRY TIMING QUEUE. */ 00437000 */* */ 00438000 */* EXIT - BRANCH ON REGISTER 14. */ 00439000 */* - THERE IS NO ERROR EXIT OR INDICATION. */ 00440000 */* */ 00441000 */* **************************************************************** */ 00442000 * 02S0096 00443000 *IRARMCQT: 02S0096 00444000 * PROC OPTIONS(NOSAVE,NOSAVEAREA,NOENTREG,RETREG,NOPARMREG); 02S0096 00445000 IRARMCQT DS 0H 02S0097 00446000 * RMEPTME=RRPATOD+MAX(RMPTTOM,RMEPINT);/* CALC POSITN VALUE */ 00447000 L @09,RMPTTOM(,RMCTPTR) 02S0097 00448000 L @08,RMEPINT(,RMEPPTR) 02S0097 00449000 CLR @09,@08 02S0097 00450000 BNL *+6 00451000 LR @09,@08 02S0097 00452000 AL @09,RRPATOD(,RRPAPTR) 02S0097 00453000 ST @09,RMEPTME(,RMEPPTR) 02S0097 00454000 * TMRE=RMCTTMQE->RMEPFWD; /* PICK 1ST TIMED QUEUE RMEP */ 00455000 * 02S0098 00456000 L @09,RMCTTMQE(,RMCTPTR) 02S0098 00457000 L TMRE,RMEPFWD(,@09) 02S0098 00458000 * /*****************************************************************/ 00459000 * /* */ 00460000 * /* SEARCH FOR POSITION INTO WHICH TO INSERT THE GIVEN RMEP */ 00461000 * /* */ 00462000 * /*****************************************************************/ 00463000 * 02S0099 00464000 * RESPECIFY 02S0099 00465000 * (RMEP) BASED(TMRE); /* TME REG USED TO SCAN MEMBERS */ 00466000 * 02S0099 00467000 * /*****************************************************************/ 00468000 * /* */ 00469000 * /* THE END OF THE Q IS MARKED WITH THE HIGHEST POSSIBLE VALUE */ 00470000 * /* STEP UNTIL FIND QUEUE MEMBER WITH A LARGER TIME VALUE */ 00471000 * /* */ 00472000 * /*****************************************************************/ 00473000 * 02S0100 00474000 * DO WHILE(RMEPPTR->RMEPTME^RMEPFWD=ADDR(RMEP); /* POINT RMEP TO FWD CHAIN */ 00490000 ST TMRE,RMEPFWD(,RMEPPTR) 02S0103 00491000 * RMEPPTR->RMEPBCK=RMEPBCK; /* POINT RMEP TO BCKWD CHAIN */ 00492000 L @09,RMEPBCK(,TMRE) 02S0104 00493000 ST @09,RMEPBCK(,RMEPPTR) 02S0104 00494000 * RMEPBCK->RMEPFWD=RMEPPTR; /* ENQUE RMEP ONTO FORWD CHAIN */ 00495000 ST RMEPPTR,RMEPFWD(,@09) 02S0105 00496000 * RMEPBCK=RMEPPTR; /* ENQUE RMEP ONTO BCKWD CHAIN */ 00497000 ST RMEPPTR,RMEPBCK(,TMRE) 02S0106 00498000 * RESPECIFY 02S0107 00499000 * (RMEP) BASED(RMEPPTR); /* RESTORE NORMAL RMEP BASE */ 00500000 * END IRARMCQT; 02S0108 00501000 @EL00002 DS 0H 02S0108 00502000 @EF00002 DS 0H 02S0108 00503000 @ER00002 BR @14 02S0108 00504000 * 02S0109 00505000 */* **************************************************************** */ 00506000 */* */ 00507000 */* ROUTINE NAME - IRARMCRD */ 00508000 */* */ 00509000 */* DESCRIPTIVE NAME - SYSTEM RESOURCES MANAGER CNTRL ALGORITHM */ 00510000 */* SRB SCHEDULING REQUEST RECEIVING SUBROUTINE */ 00511000 */* */ 00512000 */* FUNCTION - THE IRARMCRD SUBROUTINE ACCEPTS A REQUEST @Z40BPCJ*/ 00513000 */* TO SCHEDULE THE SRM SRB TO OBTAIN THE SRM LOCK. @Z40BPCJ*/ 00514000 */* IF THE SRB IS @Z40BPCJ*/ 00515000 */* NOT CURRENTLY IN USE, IRARMCRD ISSUES A 'SCHEDULE' IN */ 00516000 */* ORDER TO BRING ABOUT THE DISPATCHING OF THAT SRB. */ 00517000 */* */ 00518000 */* NOTE - IRARMCRD DOES NOT REQUIRE THE OPT LOCK TO BE HELD. */ 00519000 */* */ 00520000 */* INPUT - REG 1 CONTAINS THE ADDRESS OF THE RMEP BLOCK FOR */ 00521000 */* THE RTNE ON WHOSE BEHALF THE REQUEST IS ISSUED. */ 00522000 */* - REG 14 CONTAINS THE RETURN ADDRESS. */ 00523000 */* - REG 15 CONTAINS THE IRARMCRD ROUTINE ADDRESS. */ 00524000 */* - SRBPARM INDICATES WHETHER THE SRB IS AVAILABLE. */ 00525000 */* */ 00526000 */* OUTPT - SEE FUNCTION. */ 00527000 */* */ 00528000 */* EXIT - BRANCH ON REGISTER 14. */ 00529000 */* - THERE IS NO ERROR EXIT OR INDICATION. */ 00530000 */* */ 00531000 */* **************************************************************** */ 00532000 * 02S0109 00533000 *IRARMCRD: 02S0109 00534000 * PROC OPTIONS(NOSAVE,NOSAVEAREA,NOENTREG,RETREG,NOPARMREG); 02S0109 00535000 IRARMCRD DS 0H 02S0110 00536000 * PMRE=RMEPPTR; /* SAVE INPUT RTNE BLOCK ADDR */ 00537000 LR PMRE,RMEPPTR 02S0110 00538000 * SRBPTR=RMCTSRBT; /* PICK LOCK OBTAIN SRB ADDR 00539000 * @Z40BPCJ*/ 00540000 L SRBPTR,RMCTSRBT(,RMCTPTR) 02S0111 00541000 * WKRE=ZERO; /* INDICATOR FOR AVAILABLE SRB */ 00542000 SLR WKRE,WKRE 02S0112 00543000 * DO; 02S0113 00544000 * WKRO=MAX(RRPATOD,EIGHT); /* PICK NONZERO PARAMETER VALUE */ 00545000 L WKRO,RRPATOD(,RRPAPTR) 02S0114 00546000 LA @09,8 02S0114 00547000 CLR WKRO,@09 02S0114 00548000 BNL *+6 00549000 LR WKRO,@09 02S0114 00550000 * CS(WKRE,WKRO,SRBPARM); /* STORE VLU AS USAGE INDICATOR */ 00551000 CS WKRE,@11,SRBPARM(SRBPTR) 02S0115 00552000 * BC(7,RMCRDX1); /* BYPASS SCHED IF STORE FAILED */ 00553000 BC 7,RMCRDX1 02S0116 00554000 * GEN CODE REFS(CVTGSMQ,SRBFLNK,SRBSECT); 02S0117 00555000 * /* 00556000 SCHEDULE SRB=(1),SCOPE=GLOBAL 00557000 * IF RRPASVC='1'B& /* SRM INVOKED VIA TYPE-1 SVC */ 00558000 * RRPACOD^=E48 THEN /* NOT INVOKED FROM SRB ENTRY */ 00559000 TM RRPASVC(RRPAPTR),B'00100000' 02S0118 00560000 BNO @RF00118 02S0118 00561000 CLI RRPACOD(RRPAPTR),48 02S0118 00562000 BE @RF00118 02S0118 00563000 * RRPARTN=CVTEXP1; /* FORCE EXIT THRU DISPATCHER */ 00564000 L @09,CVTPTR 02S0119 00565000 L @09,CVTEXP1(,@09) 02S0119 00566000 ST @09,RRPARTN(,RRPAPTR) 02S0119 00567000 *RMCRDX1: /* BRANCH POINT WHEN DESIGNATED 00568000 * SRB NOT AVAILABLE FOR USE */ 00569000 * END; 02S0120 00570000 @RF00118 DS 0H 02S0120 00571000 RMCRDX1 DS 0H 02S0121 00572000 * RMEPPTR=PMRE; /* REST INPUT RTNE BLOCK ADDR */ 00573000 LR RMEPPTR,PMRE 02S0121 00574000 * END IRARMCRD; 02S0122 00575000 @EL00003 DS 0H 02S0122 00576000 @EF00003 DS 0H 02S0122 00577000 @ER00003 BR @14 02S0122 00578000 * 02S0123 00579000 */* **************************************************************** */ 00580000 */* */ 00581000 */* ROUTINE NAME - IRARMCRL */ 00582000 */* */ 00583000 */* DESCRIPTIVE NAME - SYSTEM RESOURCES MANAGER ALGORITHMIC */ 00584000 */* PROCESSING REQUEST RECEIVING SUBROUTINE */ 00585000 */* */ 00586000 */* FUNCTION - THE IRARMCRL SUBROUTINE ACCEPTS A REQUEST FOR AN */ 00587000 */* ALGORITHM, AND TURNS ON A BIT IN THE RMCT TO INDICATE */ 00588000 */* THAT THAT ALGORITHM HAS BEEN REQUESTED. SUBSEQUENTLY, */ 00589000 */* THE IRARMCEL SBRTINE WILL OBSERVE THAT BIT, @Z40BPCJ*/ 00590000 */* AND WILL INVOKE THE ALGORITHM. @Z40BPCJ*/ 00591000 */* */ 00592000 */* NOTE - IRARMCRL DOES NOT REQUIRE THE SRM LOCK TO BE HELD. */ 00593000 */* WHILE IRARMCRL IS EXECUTING, OTHR CONCURRENT PROCSS */ 00594000 */* MAY BE INSERTING, ALSO VIA THE IRARMCRL ROUTINE, OR */ 00595000 */* MAY BE REMOVING, VIA THE IRARMCEL ROUTINE, REQUEST */ 00596000 */* BITS INTO/FROM -RMCTALA-. HOWEVER, -RMCTALR- USAGE */ 00597000 */* IS SERIALIZED, IN THAT ALL ROUTINES WHICH ACCESS IT */ 00598000 */* MUST HOLD THE SYSTEM RESOURCES MANAGER LOCK. */ 00599000 */* */ 00600000 */* INPUT - REG 1 CONTAINS THE ADDRESS OF THE RMEP BLOCK FOR THE */ 00601000 */* ALGORITHM BEING REQUESTED. */ 00602000 */* - REG 14 CONTAINS THE RETURN ADDRESS. */ 00603000 */* - REG 15 CONTAINS THE IRARMCRL ROUTINE ADDRESS. */ 00604000 */* - THE RRPA LOCATED BY REG 3 INDICATES IF THIS REQUEST */ 00605000 */* IS/IS NOT COMING FROM A PROCESS HOLDING THE SYSTEM */ 00606000 */* RESOURCES MANAGER LOCK. */ 00607000 */* - THE RRPAEPA FIELD CONTAINS THE ADDRESS OF THE RMEP */ 00608000 */* BLOCK OF THE ROUTINE WHICH IS ISSUING THE REQUEST. */ 00609000 */* */ 00610000 */* OUTPT - IF IRARMCRL IS ENTERED WITH THE SRM LOCK, @Z40BPCJ*/ 00611000 */* THE FLAG FROM THE RMEPFLG FIELD OF THE INPUT RMEP IS */ 00612000 */* OR'ED INTO RMCTALR. OTHERWISE, THE FLAG @Z40BPCJ*/ 00613000 */* IS SET IN THE RMCTALA FIELD BY A COMPARE AND SWAP. */ 00614000 */* */ 00615000 */* EXIT - BRANCH ON REGISTER 14. */ 00616000 */* - THERE IS NO ERROR EXIT OR INDICATION. */ 00617000 */* */ 00618000 */* **************************************************************** */ 00619000 * 02S0123 00620000 * /*****************************************************************/ 00621000 * /* */ 00622000 * /* IRARMCRL ROUTINE - ENTRY SEQUENCE ? IRACTLEP */ 00623000 * /* EPN(CRL)SAVE(6,14) */ 00624000 * /* */ 00625000 * /*****************************************************************/ 00626000 * 02S0123 00627000 * DCL 02S0123 00628000 * IRARMCRL ENTRY INT; 02S0123 00629000 * GEN CODE REFS(LCCACPUS,PSALCCAV,WSACOPTM) DEFS(IRARMCRL) NOEXIT 00630000 * SEQFLOW; 02S0124 00631000 * 02S0124 00632000 * /* 00633000 ENTRY IRARMCRL 00634000 IRARMCRL DS 0H 00635000 L @15,PSALCCAV LCCA ADDRESS 00636000 L @15,LCCACPUS-LCCA(,@15) CPU SAVE AREA VECTOR TABLE 00637000 L @15,WSACOPTM-WSAC(,@15) SRM SAVE AREA START ADDRESS 00638000 STM @06,@14,000+024(@15) SAVE INVOKING RTNE REGS 00639000 LR @13,@15 ROUTINE SAVE AREA ADDRESS 00640000 BALR @15,0 SETUP ENTRY ADDRESSABILITY 00641000 LA @12,*-@PSTART DISPLACEMENT TO MODULE BASE 00642000 LCR @12,@12 NEGATIVE FOR SUBTRACT 00643000 ALR @12,@15 SETUP MODULE ADDRESSABILITY 00644000 * /*****************************************************************/ 00645000 * /* */ 00646000 * /* TEST THAT LOCK IS HELD, REQST IS NOT RECURSIVE */ 00647000 * /* */ 00648000 * /*****************************************************************/ 00649000 * 02S0125 00650000 * IF RRPAOPT='1'B&RRPAEPA^=R1 THEN 02S0125 00651000 * 02S0125 00652000 TM RRPAOPT(RRPAPTR),B'00000010' 02S0125 00653000 BNO @RF00125 02S0125 00654000 C R1,RRPAEPA(,RRPAPTR) 02S0125 00655000 BE @RF00125 02S0125 00656000 * /***************************************************************/ 00657000 * /* */ 00658000 * /* INSTRUCTION EXECUTION SERIALIZED BY HOLDING THE SRM LOCK */ 00659000 * /* */ 00660000 * /***************************************************************/ 00661000 * 02S0126 00662000 * DO; 02S0126 00663000 * WKRO=RMCTALR; /* PICK IMMED ALG REQUEST FIELD */ 00664000 L WKRO,RMCTALR(,RMCTPTR) 02S0127 00665000 * WKRO=RMEPFLG|WKRO; /* INSERT FLAG FOR REQUESTD ALG */ 00666000 O WKRO,RMEPFLG(,RMEPPTR) 02S0128 00667000 * WKRO=WKRO&FLAGDEF; /* CLR RTNE CHARACTERISTIC FLGS */ 00668000 N WKRO,FLAGDEF 02S0129 00669000 * RMCTALR=WKRO; /* STORE UPDATED ALG REQST FLD */ 00670000 ST WKRO,RMCTALR(,RMCTPTR) 02S0130 00671000 * END; 02S0131 00672000 * ELSE /* REQUEST FROM OUTSIDE OPT LOCK */ 00673000 * 02S0132 00674000 * /***************************************************************/ 00675000 * /* */ 00676000 * /* CAN EXECUTE IN PARALLEL - MUST USE COMPARE AND SWAP INSTR */ 00677000 * /* */ 00678000 * /***************************************************************/ 00679000 * 02S0132 00680000 * DO; 02S0132 00681000 B @RC00125 02S0132 00682000 @RF00125 DS 0H 02S0133 00683000 * WKRE=RMCTALA; /* PICK ALG REQUEST ACCUM FIELD */ 00684000 L WKRE,RMCTALA(,RMCTPTR) 02S0133 00685000 *RMCRLL1: /* POINT FROM WHICH TRY AGAIN IF 00686000 * COMPARE AND SWAP FAILS */ 00687000 * WKRO=WKRE; /* PICK ALG REQ ACCUM CONTENTS */ 00688000 RMCRLL1 LR WKRO,WKRE 02S0134 00689000 * WKRO=RMEPFLG|WKRO; /* INSERT FLAG FOR REQUESTD ALG */ 00690000 O WKRO,RMEPFLG(,RMEPPTR) 02S0135 00691000 * WKRO=WKRO&FLAGDEF; /* CLR RTNE CHARACTERISTIC FLGS */ 00692000 N WKRO,FLAGDEF 02S0136 00693000 * CS(WKRE,WKRO,RMCTALAW); /* STORE UPDATED ALG REQST FLD */ 00694000 CS WKRE,@11,RMCTALAW(RMCTPTR) 02S0137 00695000 * BC(7,RMCRLL1); /* REPEAT IF ACCUM UPDTE FAILED */ 00696000 BC 7,RMCRLL1 02S0138 00697000 * IF(RRPAOPT='0'B&RMEPRCR='1'B)/* REQ ACTION W/O DELAY @Z40BPCJ*/ 00698000 * |(R1=ADDR(RMEPBPR1)) /* OR UIC UPDATE REDRIVE @ZA33182*/ 00699000 * |(R1=ADDR(RMEPBCAP)) THEN/* OR IF CAP REDRIVE @Z40BPCJ*/ 00700000 * 02S0139 00701000 TM RRPAOPT(RRPAPTR),B'00000010' 02S0139 00702000 BNZ @GL00004 02S0139 00703000 TM RMEPRCR(RMEPPTR),B'00000100' 02S0139 00704000 BO @RT00139 02S0139 00705000 @GL00004 LA @09,RMEPBPR1(,RMCTPTR) 02S0139 00706000 CR R1,@09 02S0139 00707000 BE @RT00139 02S0139 00708000 LA @09,RMEPBCAP(,RMCTPTR) 02S0139 00709000 CR R1,@09 02S0139 00710000 BNE @RF00139 02S0139 00711000 @RT00139 DS 0H 02S0140 00712000 * /***********************************************************/ 00713000 * /* */ 00714000 * /* REQUEST SCHEDULING OF SRB TO GET LOCK AND RUN ALGORITHM */ 00715000 * /* */ 00716000 * /***********************************************************/ 00717000 * 02S0140 00718000 * DO; 02S0140 00719000 * SVRO=R0; /* SAVE INPUT R0 ACROSS CALL */ 00720000 LR SVRO,R0 02S0141 00721000 * CALL IRARMCRD; /* REQUEST LOCK SRB SCHEDULING */ 00722000 BAL @14,IRARMCRD 02S0142 00723000 * R0=SVRO; /* RESTORE INPUT R0 CONTENTS */ 00724000 LR R0,SVRO 02S0143 00725000 * END; 02S0144 00726000 * END; 02S0145 00727000 * 02S0145 00728000 @RF00139 DS 0H 02S0146 00729000 * /*****************************************************************/ 00730000 * /* */ 00731000 * /* IRARMCRL ROUTINE - EXIT SEQUENCE ? IRACTLEP ENN(CRL) */ 00732000 * /* */ 00733000 * /*****************************************************************/ 00734000 * 02S0146 00735000 * GEN CODE EXIT NOSEQFLOW; 02S0146 00736000 @RC00125 DS 0H 02S0146 00737000 * /* 00738000 LM @06,@14,000+024(@13) RELOAD INVOKING RTNE REGS 00739000 BR RTNREG RETURN TO INVOKER 00740000 * 02S0147 00741000 */* **************************************************************** */ 00742000 */* */ 00743000 */* ROUTINE NAME - IRARMCRN */ 00744000 */* */ 00745000 */* DESCRIPTIVE NAME - SYSTEM RESOURCES MANAGER DEFERRABLE USER */ 00746000 */* ACTION REQUEST RECEIVING SUBROUTINE */ 00747000 */* */ 00748000 */* FUNCTION - THE IRARMCRN SUBROUTINE ACCEPTS A REQUEST FOR AN */ 00749000 */* ACTION WHICH REQUIRES SERIALIZATION WITH OTHER SYSTEM */ 00750000 */* RESOURCES MANAGER PROCESSING. IT CHECKS TO SEE IF THE */ 00751000 */* ACTION MAY BE PERFORMED IMMEDIATELY, IF YES, IT INVOKES */ 00752000 */* THE REQUESTED ROUTINE. OTHERWISE, IRARMCRN SETS A BIT */ 00753000 */* IN THE OUCB OF THE AFFECTED USER, AND QUEUES THAT OUCB */ 00754000 */* FOR SUBSEQUENT PROCESSING BY THE IRARMCTL ROUTINE. */ 00755000 */* */ 00756000 */* NOTE - IRARMCRN DOES NOT REQUIRE THE SRM LOCK. @Z40BPJC*/ 00757000 */* WHILE IRARMCRN IS EXECUTING, OTHR CONCURRENT PROCSS */ 00758000 */* MAY BE INSERTING, ALSO VIA THE IRARMCRN ROUTINE, OR */ 00759000 */* MAY BE REMOVING, VIA THE IRARMCEN ROUTINE, REQUEST */ 00760000 */* BITS INTO/FROM THE -OUCBACN- FIELDS OF THE SAME OR */ 00761000 */* DIFFERENT OUCB'S, AND MAY BE ENQUEUEING/DEQUEUEING */ 00762000 */* THOSE OUCBS TO/FRM THE ACTION QUEUE IN -RMCTAQHD-. */ 00763000 */* */ 00764000 */* INPUT - REG 1 CONTAINS THE ADDRESS OF THE RMEP BLOCK FOR THE */ 00765000 */* ACTION ROUTINE BEING REQUESTED. */ 00766000 */* - REG 4 CONTAINS THA ADDRESS OF THE OUCB OF THE USER */ 00767000 */* FOR WHOM THE ACTION IS TO BE PERFORMED. */ 00768000 */* - REG 14 CONTAINS THE RETURN ADDRESS. */ 00769000 */* - THE RRPA LOCATED BY REG 3 INDICATES IF THIS REQUEST */ 00770000 */* IS/IS NOT COMING FORM A PROCESS HOLDING THE SYSTEM */ 00771000 */* RESOURCES MANAGER LOCK. */ 00772000 */* */ 00773000 */* OUTPT - IF THE REQUESTED ACTION IS TO BE DEFERRED, @Z40BPJC*/ 00774000 */* THE RMEPFLG FIELD OF THE INPUT RMEP IS OR'ED @Z40BPJC*/ 00775000 */* INTO THE OUCBACN FIELD OF THE OUCB LOCATED BY THE */ 00776000 */* INPUT ASCB. THAT OUCB IS THEN ADDED TO THE SYSTEM */ 00777000 */* RESOURCES MANAGER ACTION QUEUE, WHOSE MEMBERS ARE */ 00778000 */* LINKED VIA THEIR OUCBACT FIELDS, AND WHOSE HEAD IS */ 00779000 */* LOCATED VIA THE RMCTAQHD FIELD. */ 00780000 */* */ 00781000 */* SETUP PERFORMED IF THE ACTION ROUTINE IS INVOKED DIRECTLY */ 00782000 */* - REG 1 CONTAINS THE ADDRESS OF THE RMEP BLOCK FOR THE */ 00783000 */* ACTION ROUTINE BEING INVOKED. */ 00784000 */* - REG 4 CONTAINS THE ADDRESS OF THE OUCB FOR WHOM THE */ 00785000 */* ACTION IS TO BE PERFORMED. */ 00786000 */* - REG 13 CONTAINS THE ADDRESS OF THE SAVE AREA STACK */ 00787000 */* ASSOCIATED WITH THE SYSTEM RESOURCES MANAGER LOCK. */ 00788000 */* - REG 14 CONTAINS THE RETURN ADDRESS. */ 00789000 */* - REG 15 CONTAINS THE ACTION RTNE ENTRY ADDRESS. */ 00790000 */* */ 00791000 */* EXIT - BRANCH ON REGISTER 14. */ 00792000 */* - THERE IS NO ERROR EXIT OR INDICATION. */ 00793000 */* */ 00794000 */* **************************************************************** */ 00795000 * 02S0147 00796000 * /*****************************************************************/ 00797000 * /* */ 00798000 * /* IRARMCRN ROUTINE - ENTRY SEQUENCE ? IRACTLEP EPN(CRN) */ 00799000 * /* */ 00800000 * /*****************************************************************/ 00801000 * 02S0147 00802000 * DCL 02S0147 00803000 * IRARMCRN ENTRY INT; 02S0147 00804000 * GEN CODE REFS(LCCACPUS,PSALCCAV,WSACOPTM) DEFS(IRARMCRN) NOEXIT 00805000 * SEQFLOW; 02S0148 00806000 * /* 00807000 ENTRY IRARMCRN 00808000 IRARMCRN DS 0H 00809000 L @15,PSALCCAV LCCA ADDRESS 00810000 L @15,LCCACPUS-LCCA(,@15) CPU SAVE AREA VECTOR TABLE 00811000 L @15,WSACOPTM-WSAC(,@15) SRM SAVE AREA START ADDRESS 00812000 STM @00,@14,064+000(@15) SAVE INVOKING RTNE REGS 00813000 LR @13,@15 ROUTINE SAVE AREA ADDRESS 00814000 BALR @15,0 SETUP ENTRY ADDRESSABILITY 00815000 LA @12,*-@PSTART DISPLACEMENT TO MODULE BASE 00816000 LCR @12,@12 NEGATIVE FOR SUBTRACT 00817000 ALR @12,@15 SETUP MODULE ADDRESSABILITY 00818000 * IF RRPAOPT='1'B& /* LOCKED, @Z40BPCJ*/ 00819000 * RRPAEPA->RMEPACN='0'B THEN /* NOT RECURSIV ACN CALL */ 00820000 * 02S0149 00821000 TM RRPAOPT(RRPAPTR),B'00000010' 02S0149 00822000 BNO @RF00149 02S0149 00823000 L @09,RRPAEPA(,RRPAPTR) 02S0149 00824000 TM RMEPACN(@09),B'00000001' 02S0149 00825000 BNZ @RF00149 02S0149 00826000 * /***************************************************************/ 00827000 * /* */ 00828000 * /* THE REQUEST DOES NOT HAVE TO BE DEFERRED. @Z40BPCJ*/ 00829000 * /* THE REQUESTED RTNE IS INVOKED DIRECTLY. @Z40BPCJ*/ 00830000 * /* HOLDING THE SRM LOCK ASSURES SERIALIZATION. @Z40BPCJ*/ 00831000 * /* */ 00832000 * /***************************************************************/ 00833000 * 02S0150 00834000 * NTRREG=RMEPEPA; /* ENTRY TO REQSTD ACTION RTNE */ 00835000 L NTRREG,RMEPEPA(,RMEPPTR) 02S0150 00836000 * ELSE /* OTHER PROCSS USING RESOURCES */ 00837000 * 02S0151 00838000 * /***************************************************************/ 00839000 * /* */ 00840000 * /* THE INVOCATION MUST BE DEFERRED. THE REQUEST IS FLAGGED IN */ 00841000 * /* THE USER CONTROL BLOCK, AND THE CTRL BLOCK IS QUEUED FOR */ 00842000 * /* LATER EXAMINATION. COMPARE AND SWAP USAGE PERMITS THE */ 00843000 * /* HANDLING OF SIMULTANEOUS UPDATES. */ 00844000 * /* */ 00845000 * /***************************************************************/ 00846000 * 02S0151 00847000 * DO; 02S0151 00848000 * 02S0151 00849000 B @RC00149 02S0151 00850000 @RF00149 DS 0H 02S0152 00851000 * /*************************************************************/ 00852000 * /* */ 00853000 * /* INSERT REQUEST FLAG INTO USER DEFERRED ACTION FIELD */ 00854000 * /* */ 00855000 * /*************************************************************/ 00856000 * 02S0152 00857000 * WKRE=OUCBCSW; /* PICK DEFERRED ACTION ACCUMUL */ 00858000 L WKRE,OUCBCSW(,OUCBPTR) 02S0152 00859000 *RMCRNL1: /* RETRY INSERT ACTION IF OUCB 00860000 * CHANGED BY OTHER PROCESS */ 00861000 * WKRO=RMEPFLG&FLAGDEF; /* CLR RTNE CHARACTERISTIC FLGS */ 00862000 RMCRNL1 L WKRO,RMEPFLG(,RMEPPTR) 02S0153 00863000 N WKRO,FLAGDEF 02S0153 00864000 * WKRO=WKRO|WKRE; /* INSERT FLAG FOR REQUESTD ACN */ 00865000 OR WKRO,WKRE 02S0154 00866000 * CS(WKRE,WKRO,OUCBCSW); /* STORE UPDATED ACTN REQ FIELD */ 00867000 CS WKRE,@11,OUCBCSW(OUCBPTR) 02S0155 00868000 * BC(7,RMCRNL1); /* REPEAT IF ACCUM UPDATE FAILED */ 00869000 * 02S0156 00870000 BC 7,RMCRNL1 02S0156 00871000 * /*************************************************************/ 00872000 * /* */ 00873000 * /* INSURE OUCB IS QUEUED ONTO THE DEFERRED ACTION QUEUE */ 00874000 * /* */ 00875000 * /*************************************************************/ 00876000 * 02S0157 00877000 * R0=ZERO; /* ZERO - TO SEE IF OUCB QUEUED */ 00878000 SLR R0,R0 02S0157 00879000 * WKRO=OUCBPTR; /* INSERT NEW OUCB FOR Q HEADER */ 00880000 LR WKRO,OUCBPTR 02S0158 00881000 * GEN(LM SVRE,SVRO,RMCTAQCT(RMCTPTR));/* PICK OLD Q HEADER */ 00882000 LM SVRE,SVRO,RMCTAQCT(RMCTPTR) 00883000 * CS(R0,SVRO,OUCBACTW); /* POINT NEW OUCB TO TOP OF QUE */ 00884000 CS R0,@07,OUCBACTW(OUCBPTR) 02S0160 00885000 * BC(7,RMCRNX1); /* EXIT IF OUCB ALREADY ON QUEUE */ 00886000 * 02S0161 00887000 BC 7,RMCRNX1 02S0161 00888000 * /*************************************************************/ 00889000 * /* */ 00890000 * /* IT IS THE RESPONSIBILITY OF WHOEVER MAKES -OUCBACT- NON- */ 00891000 * /* ZERO TO INSURE THAT THE OUCB IS PROPERLY QUEUED ONTO THE */ 00892000 * /* ACTION QUEUE. IT IS THE RESPONSIBILITY OF WHOEVER MAKES */ 00893000 * /* -OUCBACT- ZERO TO DO SO ONLY IF ALL ACTIONS REQUESTED UP */ 00894000 * /* TO THAT MOMENT WILL BE COMPLETED BY THE ZERO SET ROUTINE. */ 00895000 * /* */ 00896000 * /*************************************************************/ 00897000 * 02S0162 00898000 *RMCRNL2: /* RETRY ENQUEUE OUCB IF QUEUE 00899000 * CHANGED BY OTHER PROCESS */ 00900000 * WKRE=SVRE+ONE; /* INCREMENT Q COUNT FOR HEADER */ 00901000 RMCRNL2 LA WKRE,1 02S0162 00902000 ALR WKRE,SVRE 02S0162 00903000 * CDS(SVRE,WKRE,RMCTACQH); /* STORE UPDATED QUEUE HEADER */ 00904000 CDS SVRE,WKRE,RMCTACQH(RMCTPTR) 02S0163 00905000 * BC(8,RMCRNX1); /* EXIT IF OUCB ENQ SUCCESSFUL */ 00906000 BC 8,RMCRNX1 02S0164 00907000 * OUCBACT=SVRO; /* POINT OUCB TO NEW TOP OF QUE */ 00908000 ST SVRO,OUCBACT(,OUCBPTR) 02S0165 00909000 * GOTO RMCRNL2; /* REPEAT IF OUCB ENQUEUE FAILED */ 00910000 B RMCRNL2 02S0166 00911000 *RMCRNX1: 02S0167 00912000 * ; /* BRANCH POINT WHEN ACTION 02S0167 00913000 * DEFERRAL HAS BEEN COMPLETED */ 00914000 RMCRNX1 DS 0H 02S0168 00915000 * IF RRPAOPT='0'B&RMEPRCR='1'B THEN/* REQ ACTION W/O DELAY 00916000 * @Z40BPCJ*/ 00917000 * 02S0168 00918000 TM RRPAOPT(RRPAPTR),B'00000010' 02S0168 00919000 BNZ @RF00168 02S0168 00920000 TM RMEPRCR(RMEPPTR),B'00000100' 02S0168 00921000 BNO @RF00168 02S0168 00922000 * /***********************************************************/ 00923000 * /* */ 00924000 * /* REQUEST SCHEDULING OF SRB TO GET LOCK AND RUN ALGORITHM */ 00925000 * /* */ 00926000 * /***********************************************************/ 00927000 * 02S0169 00928000 * DO; 02S0169 00929000 * CALL IRARMCRD; /* REQUEST LOCK SRB SCHEDULING */ 00930000 BAL @14,IRARMCRD 02S0170 00931000 * END; 02S0171 00932000 * NTRREG=CRNRTRN; /* RETURN TO REQUESTOR OF ACTION */ 00933000 @RF00168 L NTRREG,CRNRTRN(,SVEREG) 02S0172 00934000 * END; 02S0173 00935000 * 02S0173 00936000 * /*****************************************************************/ 00937000 * /* */ 00938000 * /* IRARMCRN ROUTINE - EXIT SEQUENCE ? IRACTLEP ENN(CRN) */ 00939000 * /* */ 00940000 * /*****************************************************************/ 00941000 * 02S0174 00942000 * GEN CODE EXIT NOSEQFLOW; 02S0174 00943000 @RC00149 DS 0H 02S0174 00944000 * /* 00945000 LM @00,@14,064+000(@13) RELOAD INVOKING RTNE REGS 00946000 BR NTRREG EXIT TO ACTION/REQUEST 00947000 * 02S0175 00948000 */* **************************************************************** */ 00949000 */* */ 00950000 */* ROUTINE NAME - IRARMCRT */ 00951000 */* */ 00952000 */* DESCRIPTIVE NAME - SYSTEM RESOURCES MANAGER CNTRL ALGORITHM */ 00953000 */* ENTRY POINT TABLE SCANNING SUBROUTINE */ 00954000 */* */ 00955000 */* FUNCTION - THE IRARMCRT SUBROUTINE ACCEPTS AN INVOCATION BIT */ 00956000 */* PATTERN AND AN ENTRY POINT TABLE ADDRESS. IT SCANS THE */ 00957000 */* TABLE LOOKING FOR ENTRY POINT BLOCKS WHOSE INVOCATION */ 00958000 */* FLAGS MATCH 'ONE' BITS IN THE INPUT BIT PATTERN. FOR */ 00959000 */* EACH SUCCESSFUL MATCH, THE CORRESPONDING ENTRY POINT */ 00960000 */* ROUTINE IS INVOKED. AFTER THE ROUTINE COMPLETES, ITS */ 00961000 */* INVOCATION BIT IS SET 'ZERO' IN THE INPUT BIT PATTERN. */ 00962000 */* */ 00963000 */* INPUT - REG 1 CONTAINS THE ADDRESS OF THE TOP RMEP BLOCK IN */ 00964000 */* A CHAINED TABLE. THE RMEP BLOCKS IN THIS TABLE CON- */ 00965000 */* STITUTE THE LIST OF CANDIDATES THAT MAY BE INVOKED. */ 00966000 */* - REG 8 CONTAINS THE ADDRESS OF A FULL WORD WHOSE BITS */ 00967000 */* IF 'ONE' REPRESENT ROUTINES TO BE INVOKED. */ 00968000 */* - REG 13 CONTAINS THE ADDRESS OF THE SAVE AREA STACK */ 00969000 */* APPLICABLE TO THE ROUTINES TO BE INVOKED. */ 00970000 */* - REG 14 CONTAINS THE RETURN ADDRESS */ 00971000 */* */ 00972000 */* OUTPT - SEE FUNCTION. */ 00973000 */* */ 00974000 */* EXIT - BRANCH ON REGISTER 14. */ 00975000 */* - THERE IS NO ERROR EXIT OR INDICATION. */ 00976000 */* */ 00977000 */* **************************************************************** */ 00978000 * 02S0175 00979000 *IRARMCRT: 02S0175 00980000 * PROC OPTIONS(NOSAVE,NOSAVEAREA,NOENTREG,RETREG,NOPARMREG); 02S0175 00981000 IRARMCRT DS 0H 02S0176 00982000 * SVRO=RTNREG; /* SAVE RETURN REG CONTENTS */ 00983000 LR SVRO,RTNREG 02S0176 00984000 * WKRE=INMASK&RMCAINV; /* PICK RTNE INVOCN BIT PATTERN */ 00985000 * 02S0177 00986000 L WKRE,INMASK(,PMRE) 02S0177 00987000 N WKRE,RMCAINV(,RMCTPTR) 02S0177 00988000 * /*****************************************************************/ 00989000 * /* */ 00990000 * /* THE FOLLOWING CODE WILL BE EXECUTED AS LONG AS ALL BITS IN THE*/ 00991000 * /* SUPPLIED INVOCATION PATTERN HAVE NOT BEEN TURNED OFF. */ 00992000 * /* */ 00993000 * /*****************************************************************/ 00994000 * 02S0178 00995000 * DO WHILE(WKRE^=EMPTY&RMEPPTR^=ZERO); 02S0178 00996000 * 02S0178 00997000 B @DE00178 02S0178 00998000 @DL00178 DS 0H 02S0179 00999000 * /***************************************************************/ 01000000 * /* */ 01001000 * /* THE FOLLOWING CODE STEPS THROUGH THE CHAINED RMEP BLOCKS IN */ 01002000 * /* THE SPECIFIED TABLE. TABLE END IS INDICATED BY A ZERO VALUE */ 01003000 * /* IN THE CHAIN FORWARD POINTER. */ 01004000 * /* */ 01005000 * /***************************************************************/ 01006000 * 02S0179 01007000 * WKRO=WKRE&RMEPFLG; /* TEST CURRENT RTNE INVOCN BIT */ 01008000 LR WKRO,WKRE 02S0179 01009000 N WKRO,RMEPFLG(,RMEPPTR) 02S0179 01010000 * IF WKRO^=EMPTY THEN /* ROUTINE FLAG MATCHES PATTERN */ 01011000 * 02S0180 01012000 LTR WKRO,WKRO 02S0180 01013000 BZ @RF00180 02S0180 01014000 * /*************************************************************/ 01015000 * /* */ 01016000 * /* INVOKE THE ROUTINE WHOSE FLAG IS 'ONE' IN THE PATTERN */ 01017000 * /* */ 01018000 * /*************************************************************/ 01019000 * 02S0181 01020000 * DO; 02S0181 01021000 * WKRE=INMASK; /* PICK RTNE INVOCN BIT PATTERN */ 01022000 L WKRE,INMASK(,PMRE) 02S0182 01023000 *RMCRTL1: /* POINT FROM WHICH TRY AGAIN IF 01024000 * COMPARE AND SWAP FAILS */ 01025000 * RTNREG=WKRE|WKRO; /* ADD IN FLAG FOR INVOKED RTNE */ 01026000 RMCRTL1 LR RTNREG,WKRE 02S0183 01027000 OR RTNREG,WKRO 02S0183 01028000 * RTNREG=RTNREG&&WKRO; /* DELETE FLAG FOR INVOKED RTNE */ 01029000 XR RTNREG,WKRO 02S0184 01030000 * CS(WKRE,RTNREG,INMASK); /* STORE UPDATED INVOCN PATTERN */ 01031000 CS WKRE,@14,INMASK(PMRE) 02S0185 01032000 * BC(7,RMCRTL1); /* REPEAT IF PATTRN UPDTE FAILD */ 01033000 BC 7,RMCRTL1 02S0186 01034000 * RRPACTL='1'B; /* CONTINUE IRARMCTL ON 2ND FAIL */ 01035000 OI RRPACTL(RRPAPTR),B'00001000' 02S0187 01036000 * CALL RMEPEPA->IRARMRTN; /* INVOKE DESIGNATED ROUTINE */ 01037000 L @15,RMEPEPA(,RMEPPTR) 02S0188 01038000 BALR @14,@15 02S0188 01039000 * RRPACTL='0'B; /* REVERT TO NORMAL FAIL PROCESS */ 01040000 NI RRPACTL(RRPAPTR),B'11110111' 02S0189 01041000 * RRPAEPA=ADDR(RMEPBCTL); /* RESTORE CONTROL ROUTINE RMEP */ 01042000 LA @09,RMEPBCTL(,RMCTPTR) 02S0190 01043000 ST @09,RRPAEPA(,RRPAPTR) 02S0190 01044000 * IF RMEPTMD='1'B& /* TIME-DRIVEN ALGORITHM INVKD */ 01045000 * RMCTTBS^=ZERO THEN /* SRM TIMER INTERRUPTS ACTIVE */ 01046000 * 02S0191 01047000 TM RMEPTMD(RMEPPTR),B'00000010' 02S0191 01048000 BNO @RF00191 02S0191 01049000 L @09,RMCTTBS(,RMCTPTR) 02S0191 01050000 LTR @09,@09 02S0191 01051000 BZ @RF00191 02S0191 01052000 * /*********************************************************/ 01053000 * /* */ 01054000 * /* CALL SBRTN TO RESCHED THE RMEP ON THE TIMED ENTRY QUE */ 01055000 * /* */ 01056000 * /*********************************************************/ 01057000 * 02S0192 01058000 * DO; 02S0192 01059000 * RMEPBCK->RMEPFWD=RMEPFWD;/* DEQ RMEP FROM FWD CHAIN */ 01060000 L @09,RMEPBCK(,RMEPPTR) 02S0193 01061000 L @08,RMEPFWD(,RMEPPTR) 02S0193 01062000 ST @08,RMEPFWD(,@09) 02S0193 01063000 * RMEPFWD->RMEPBCK=RMEPBCK;/* DEQ RMEP FROM BCK CHAIN */ 01064000 ST @09,RMEPBCK(,@08) 02S0194 01065000 * CALL IRARMCQT; /* RE-ENQUE RMEP ONTO TIMED QUE */ 01066000 BAL @14,IRARMCQT 02S0195 01067000 * END; 02S0196 01068000 * WKRE=INMASK&RMCAINV; /* RELOD RTN INVOCN BIT PATTERN */ 01069000 @RF00191 L WKRE,INMASK(,PMRE) 02S0197 01070000 N WKRE,RMCAINV(,RMCTPTR) 02S0197 01071000 * END; 02S0198 01072000 * RMEPPTR=RMEPPRV; /* STEP TO NEXT RMEP ON CHAIN */ 01073000 @RF00180 L RMEPPTR,RMEPPRV(,RMEPPTR) 02S0199 01074000 * END; 02S0200 01075000 @DE00178 SLR @09,@09 02S0200 01076000 CLR WKRE,@09 02S0200 01077000 BE @DC00178 02S0200 01078000 CR RMEPPTR,@09 02S0200 01079000 BNE @DL00178 02S0200 01080000 @DC00178 DS 0H 02S0201 01081000 * RTNREG=SVRO; /* RESTORE RETURN REG CONTENTS */ 01082000 LR RTNREG,SVRO 02S0201 01083000 * END IRARMCRT; 02S0202 01084000 @EL00004 DS 0H 02S0202 01085000 @EF00004 DS 0H 02S0202 01086000 @ER00004 BR @14 02S0202 01087000 * 02S0203 01088000 */* **************************************************************** */ 01089000 */* */ 01090000 */* ROUTINE NAME - IRARMCRY */ 01091000 */* */ 01092000 */* DESCRIPTIVE NAME - SYSTEM RESOURCES MANAGER CNTRL ALGORITHM */ 01093000 */* USER SWAP REQUEST RECEIVING SUBROUTINE @Z40BPCJ*/ 01094000 */* */ 01095000 */* FUNCTION - THE IRARMCRY SUBROUTINE ACCEPTS A REQUEST THAT */ 01096000 */* A USER BE SWAPPED INTO OR OUT OF CORE. IF THE USER IS */ 01097000 */* @Z40BPCJ*/ 01098000 */* IN THE PROCESS OF BEING SWAPPED, A CODE IS RETURNED */ 01099000 */* TO INDICATE THAT THE REQUEST COULD NOT BE HONORED. */ 01100000 */* IF THE REQUESTOR HAS OBTAINED THE SYSTEM RESOURCES */ 01101000 */* MANAGER LOCK, CONTROL IS ROUTED TO THE SUBROUTINE */ 01102000 */* WHICH WILL PROCESS THE REQUEST. IF THE SRM LOCK IS */ 01103000 */* NOT HELD, A CODE IS RETURNED TO INDICATE THAT THE */ 01104000 */* REQUEST COULD NOT BE HONORED. */ 01105000 */* */ 01106000 */* INPUT - REG 1 CONTAINS THE ADDRESS OF THE RMEP BLOCK FOR THE */ 01107000 */* SWAP FUNCTION BEING REQUESTED. @Z40BPCJ*/ 01108000 */* - REG 4 CONTAINS THE ADDRESS OF THE OUCB OF THE USER */ 01109000 */* TO BE SWAPPED. @Z40BPCJ*/ 01110000 */* - REG 14 CONTAINS THE RETURN ADDRESS. */ 01111000 */* - REG 15 CONTAINS THE IRARMCRY ROUTINE ADDRESS. */ 01112000 */* - THE RRPA LOCATED BY REG 3 INDICATES IF THIS REQUEST */ 01113000 */* IS/IS NOT COMING FROM A PROCESS HOLDING THE SYSTEM */ 01114000 */* RESOURCES MANAGER LOCK. */ 01115000 */* - THE RRPAEPA FIELD CONTAINS THE ADDRESS OF THE RMEP */ 01116000 */* BLOCK OF THE ROUTINE WHICH IS ISSUING THE REQUEST. */ 01117000 */* - SEE INPUT DATA DESCRIPTION OF THE INDIVIDUAL SWAP */ 01118000 */* SUBROUTINES FOR FURTHER PARAMETERS. @Z40BPCJ*/ 01119000 */* */ 01120000 */* OUTPT - IF THE CURRENT STATE OF THE SPECIFIED OUCB WAS SUCH */ 01121000 */* THAT THE REQUEST COULD BE HONORED, @Z40BPCJ*/ 01122000 */* THE APPROPRIATE SWAPPING PROCEDURE @Z40BPCJ*/ 01123000 */* WILL HAVE BEEN INITIATED FOR THAT ADDRESS SPACE. */ 01124000 */* */ 01125000 */* EXIT NORMAL - BRANCH ON REGISTER 14. */ 01126000 */* - 0 IN REG 15 TO INDICATE THAT THE REQUEST WAS HONORED. */ 01127000 */* */ 01128000 */* EXIT ERROR - BRANCH ON REGISTER 14. */ 01129000 */* - 4 IN REG 15 IF THE INDICATED USER IS @Z40BPCJ*/ 01130000 */* NON-SWAPPABLE OR INVALID @Z40BPCJ*/ 01131000 */* - 8 IN REG 15 IF THE INDICATED USER IS CURRENTLY IN */ 01132000 */* THE PROCESS OF BEING SWAPPED. */ 01133000 */* - SEE ERROR EXIT DESCRIPTION OF THE INDIVIDUAL SWAP */ 01134000 */* SUBROUTINES FOR FURTHER ERROR CODES. @Z40BPCJ*/ 01135000 */* */ 01136000 */* **************************************************************** */ 01137000 * 02S0203 01138000 * /*****************************************************************/ 01139000 * /* */ 01140000 * /* IRARMCRY ROUTINE - ENTRY SEQUENCE ? IRACTLEP EPN(CRY) */ 01141000 * /* */ 01142000 * /*****************************************************************/ 01143000 * 02S0203 01144000 * DCL 02S0203 01145000 * IRARMCRY ENTRY INT; 02S0203 01146000 * GEN CODE REFS(LCCACPUS,PSALCCAV,WSACOPTM) DEFS(IRARMCRY) NOEXIT 01147000 * SEQFLOW; 02S0204 01148000 * 02S0204 01149000 * /* 01150000 ENTRY IRARMCRY 01151000 IRARMCRY DS 0H 01152000 L @15,PSALCCAV LCCA ADDRESS 01153000 L @15,LCCACPUS-LCCA(,@15) CPU SAVE AREA VECTOR TABLE 01154000 L @15,WSACOPTM-WSAC(,@15) SRM SAVE AREA START ADDRESS 01155000 STM @00,@14,128+000(@15) SAVE INVOKING RTNE REGS 01156000 LR @13,@15 ROUTINE SAVE AREA ADDRESS 01157000 BALR @15,0 SETUP ENTRY ADDRESSABILITY 01158000 LA @12,*-@PSTART DISPLACEMENT TO MODULE BASE 01159000 LCR @12,@12 NEGATIVE FOR SUBTRACT 01160000 ALR @12,@15 SETUP MODULE ADDRESSABILITY 01161000 * /*****************************************************************/ 01162000 * /* */ 01163000 * /* CHECK IF SWAP INAPPLICABLE TO THIS USER. @Z40BPCJ*/ 01164000 * /* */ 01165000 * /*****************************************************************/ 01166000 * 02S0205 01167000 * IF(OUCBNSW='0'B|OUCBOUT='1'B)&OUCBNAME='OUCB'&OUCBINV='0'B THEN/* 01168000 * USER STATUS SWAPPABLE AND 01169000 * VALID @Z40BPCJ*/ 01170000 * 02S0205 01171000 TM OUCBNSW(OUCBPTR),B'10000000' 02S0205 01172000 BZ @GL00011 02S0205 01173000 TM OUCBOUT(OUCBPTR),B'00000100' 02S0205 01174000 BNO @RF00205 02S0205 01175000 @GL00011 CLC OUCBNAME(4,OUCBPTR),@CC02242 02S0205 01176000 BNE @RF00205 02S0205 01177000 TM OUCBINV(OUCBPTR),B'00010000' 02S0205 01178000 BNZ @RF00205 02S0205 01179000 * /***************************************************************/ 01180000 * /* */ 01181000 * /* SWAP NOT PROHIBITED. CHECK IF THE ADDRESS @Z40BPCJ*/ 01182000 * /* SPACE IS IN THE PROCESS OF BEING SWAPPED. */ 01183000 * /* */ 01184000 * /***************************************************************/ 01185000 * 02S0206 01186000 * IF OUCBGOO='0'B&OUCBGOI='0'B THEN/* NOT BEING SWAPPED */ 01187000 * 02S0206 01188000 TM OUCBGOO(OUCBPTR),B'11000000' 02S0206 01189000 BNZ @RF00206 02S0206 01190000 * /*************************************************************/ 01191000 * /* */ 01192000 * /* CHECK IF THE FUNCTION CAN BE INVOKED AT THIS TIME. */ 01193000 * /* */ 01194000 * /*************************************************************/ 01195000 * 02S0207 01196000 * IF RRPAOPT='1'B THEN /* SRM LOCK HELD BY REQUESTOR */ 01197000 * 02S0207 01198000 TM RRPAOPT(RRPAPTR),B'00000010' 02S0207 01199000 BNO @RF00207 02S0207 01200000 * /***********************************************************/ 01201000 * /* */ 01202000 * /* INVOKE REQUESTED SUBFUNCTION. @Z40BPCJ*/ 01203000 * /* */ 01204000 * /***********************************************************/ 01205000 * 02S0208 01206000 * DO; 02S0208 01207000 * WKRO=SVEREG; /* SAVE IRARMCRY CALLERS REG 13 */ 01208000 LR WKRO,SVEREG 02S0209 01209000 * SVEREG=RMCTRMSA; /* PASS SAVE AREA STACK TO RTNE */ 01210000 L SVEREG,RMCTRMSA(,RMCTPTR) 02S0210 01211000 * CALL RMEPEPA->IRARMRTN; /* INVOKE REQSTD SWAP FUNCTN */ 01212000 L @15,RMEPEPA(,RMEPPTR) 02S0211 01213000 BALR @14,@15 02S0211 01214000 * SVEREG=WKRO; /* REST IRARMCRY CALLERS REG 13 */ 01215000 LR SVEREG,WKRO 02S0212 01216000 * END; 02S0213 01217000 * ELSE /* NONLOCKED REQ FOR SWAP@Z40BPCJ*/ 01218000 * RTNCOD=FOUR; /* RESULT EQUALS NON-SWAPPABLE */ 01219000 B @RC00207 02S0214 01220000 @RF00207 LA RTNCOD,4 02S0214 01221000 * ELSE /* HAVE ONGOING SWAP @Z40BPCJ*/ 01222000 * RTNCOD=EIGHT; /* REQUEST GIVEN AT WRONG TIME */ 01223000 B @RC00206 02S0215 01224000 @RF00206 LA RTNCOD,8 02S0215 01225000 * ELSE /* ADDRESS SPACE NON-SWAPPABLE */ 01226000 * RTNCOD=FOUR; /* REQUEST GIVEN FOR WRONG USER */ 01227000 * 02S0216 01228000 B @RC00205 02S0216 01229000 @RF00205 LA RTNCOD,4 02S0216 01230000 * /*****************************************************************/ 01231000 * /* */ 01232000 * /* IRARMCRY ROUTINE - EXIT SEQUENCE ? IRACTLEP ENN(CRY) */ 01233000 * /* */ 01234000 * /*****************************************************************/ 01235000 * 02S0217 01236000 * GEN CODE EXIT NOSEQFLOW; 02S0217 01237000 @RC00205 DS 0H 02S0217 01238000 * /* 01239000 LM @00,@14,128+000(@13) RELOAD INVOKING RTNE REGS 01240000 BR RTNREG RETURN TO INVOKER 01241000 * 02S0218 01242000 */* **************************************************************** */ 01243000 */* */ 01244000 */* ROUTINE NAME - IRARMCSI */ 01245000 */* */ 01246000 */* DESCRIPTIVE NAME - SYSTEM RESOURCES MANAGER CNTRL ALGORITHM */ 01247000 */* USER SWAP-IN REQUEST RECEIVING SBRTNE */ 01248000 */* */ 01249000 */* FUNCTION - THE IRARMCSI SUBROUTINE ACCEPTS A REQUEST THAT AN */ 01250000 */* ADDRESS SPACE BE SWAPPED IN. ROUTINES @Z40BPCJ*/ 01251000 */* ARE INVOKED TO ALLOCATE AN OUXB TO THE ADDRESS SPACE, */ 01252000 */* AND TO SCHEDULE THE SWAP-IN. IF THE SWAPIN @Z40BPCJ*/ 01253000 */* PROCESS WAS SUCCESSFULLY INITIATED, THE OUCB IS MARKED */ 01254000 */* THAT THE ADDRESS SPACE IS BEING SWAPPED IN. */ 01255000 */* */ 01256000 */* NOTE - THE IRARMCSI ROUTINE DOES NOT REQUIRE SERIALIZATION */ 01257000 */* WITH OTHER SYSTEM RESOURCES MANAGER PROCESSES, WHICH */ 01258000 */* COULD BE CONCURRENTLY EXAMINING THE SAME OUCB WHOSE */ 01259000 */* STATUS IS BEING CHANGED BY IRARMCSI. */ 01260000 */* */ 01261000 */* INPUT - REG 4 CONTAINS THE ADDRESS OF THE OUCB OF THE USER */ 01262000 */* WHO IS TO BE SWAPPED IN. */ 01263000 */* - REG 13 CONTAINS THE ADDRESS OF THE SAVE AREA STACK */ 01264000 */* ASSOCIATED WITH THE SYSTEM RESOURCES MANAGER LOCK. */ 01265000 */* - REG 14 CONTAINS THE RETURN ADDRESS. */ 01266000 */* - REG 15 CONTAINS THE IRARMCSI ROUTINE ADDRESS. */ 01267000 */* */ 01268000 */* OUTPT - AN OUXB IS ASSIGNED TO THE ADDRESS SPACE TO BE */ 01269000 */* SWAPPED IN. */ 01270000 */* - OUCBGOI IS SET IF THE SWAP-IN IS INITIATED. */ 01271000 */* */ 01272000 */* EXIT NORMAL - BRANCH ON REGISTER 14. */ 01273000 */* - 0 IN REG 15 TO INDICATE THAT SWAP-IN WAS INITIATED. */ 01274000 */* */ 01275000 */* EXIT ERROR - BRANCH ON REGISTER 14. */ 01276000 */* - SEE IRARMI04 ROUTINE TO DETERMINE THE ERROR @Z40BPCJ*/ 01277000 */* CODES RETURNED WHEN A STORAGE REQUEST FAILS. @Z40BPCJ*/ 01278000 */* - SEE IRARMI07 ROUTINE TO DETERMINE THE ERROR @Z40BPCJ*/ 01279000 */* CODES RETURNED WHEN A SWAPIN REQUEST FAILS. @Z40BPCJ*/ 01280000 */* - 8 IN REG 15 IF THE INDICATED USER IS @Z40BPCJ*/ 01281000 */* ALREADY SWAPPED IN. @Z40BPCJ*/ 01282000 */* */ 01283000 */* **************************************************************** */ 01284000 * 02S0218 01285000 * /*****************************************************************/ 01286000 * /* */ 01287000 * /* IRARMCSI ROUTINE - ENTRY SEQUENCE ? IRACTLEP EPN(CSI) */ 01288000 * /* */ 01289000 * /*****************************************************************/ 01290000 * 02S0218 01291000 * DCL 02S0218 01292000 * IRARMCSI ENTRY INT; 02S0218 01293000 * GEN CODE DEFS(IRARMCSI) NOEXIT SEQFLOW; 02S0219 01294000 * /* 01295000 ENTRY IRARMCSI 01296000 IRARMCSI DS 0H 01297000 STM @00,@14,128+000(@13) SAVE INVOKING RTNE REGS 01298000 LA @12,IRARMCSI-@PSTART DISPLACEMENT TO MODULE BASE 01299000 LCR @12,@12 NEGATIVE FOR SUBTRACT 01300000 ALR @12,@15 SETUP MODULE ADDRESSABILITY 01301000 * IF OUCBOUT='1'B THEN 02S0220 01302000 TM OUCBOUT(OUCBPTR),B'00000100' 02S0220 01303000 BNO @RF00220 02S0220 01304000 * DO; /* USER CURRENTLY OUT OF CORE 01305000 * @Z40BPCJ*/ 01306000 * ASCBPTR=OUCBASCB; /* PICK USER TO BE SWPD @ZA00250*/ 01307000 L ASCBPTR,OUCBASCB(,OUCBPTR) 02S0222 01308000 * R1=ASCBOUXB; /* PICK EXTENSION ADDRS @ZA00250*/ 01309000 L R1,ASCBOUXB(,ASCBPTR) 02S0223 01310000 * IF R1=RMCTOUXB THEN /* DON'T HAVE EXTENSION @Z40BPCJ*/ 01311000 * 02S0224 01312000 C R1,RMCTOUXB(,RMCTPTR) 02S0224 01313000 BNE @RF00224 02S0224 01314000 * /***********************************************************/ 01315000 * /* */ 01316000 * /* PREPARE FOR SWAP-IN - OBTAIN USER CNTRL BLOCK EXTENSION */ 01317000 * /* */ 01318000 * /***********************************************************/ 01319000 * 02S0225 01320000 * DO; 02S0225 01321000 * 02S0225 01322000 * /*********************************************************/ 01323000 * /* */ 01324000 * /* INVOKE SUBROUTINE TO OBTAIN STORAGE FOR ADDR SPACE */ 01325000 * /* OUXB */ 01326000 * /* */ 01327000 * /*********************************************************/ 01328000 * 02S0226 01329000 * R0=LENGTH(OUXB); /* INDICATE SIZE OF AREA WANTED */ 01330000 LA R0,144 02S0226 01331000 * R1=ZERO; /* INDICATE STORAGE GET REQUEST */ 01332000 * 02S0227 01333000 SLR R1,R1 02S0227 01334000 * /*********************************************************/ 01335000 * /* */ 01336000 * /* ? IRACTLCL EPN(I04) */ 01337000 * /* */ 01338000 * /*********************************************************/ 01339000 * 02S0228 01340000 * CALL RMSBI04->IRARMRTN; /* INVOKE I04 SUBRTN */ 01341000 L @15,RMSBI04(,RMCTPTR) 02S0228 01342000 BALR @14,@15 02S0228 01343000 * IF RTNCOD^=ZERO THEN 02S0229 01344000 LTR RTNCOD,RTNCOD 02S0229 01345000 BNZ @RT00229 02S0229 01346000 * GO TO RMCSIL5; /* DONT HAVE STORAGE FOR OUXB 01347000 * @Z40BPCJ*/ 01348000 * END; 02S0231 01349000 * 02S0231 01350000 * /*************************************************************/ 01351000 * /* */ 01352000 * /* INVOKE SUBROUTINE TO SCHEDULE SWAP-IN FOR ADDRESS SPACE ? */ 01353000 * /* IRACTLCL EPN(I07) */ 01354000 * /* */ 01355000 * /*************************************************************/ 01356000 * 02S0232 01357000 * CALL RMSBI07->IRARMRTN; /* INVOKE I07 SUBRTN */ 01358000 @RF00224 L @15,RMSBI07(,RMCTPTR) 02S0232 01359000 BALR @14,@15 02S0232 01360000 * IF RTNCOD=ZERO THEN /* PHYSICAL SWAP-IN INITIATED */ 01361000 * 02S0233 01362000 LTR RTNCOD,RTNCOD 02S0233 01363000 BNZ @RF00233 02S0233 01364000 * /***********************************************************/ 01365000 * /* */ 01366000 * /* INITIALIZE BLOCKS FOR ADDRESS SPACE SWAP-IN */ 01367000 * /* */ 01368000 * /***********************************************************/ 01369000 * 02S0234 01370000 * DO; 02S0234 01371000 * R1->OUXB=R1->OUXB&&R1->OUXB;/* CLEAR OUXB */ 01372000 XC OUXB(144,R1),OUXB(R1) 02S0235 01373000 * R1->OUXBNAME='OUXB'; /* SETUP BLOCK IDENTIFIER */ 01374000 MVC OUXBNAME(4,R1),@CC02246 02S0236 01375000 * ASCBOUXB=R1; /* STORE NEW OUXB ADDRESS */ 01376000 ST R1,ASCBOUXB(,ASCBPTR) 02S0237 01377000 * OUCBGOI='1'B; /* INDICATE USER STATUS CHANGE */ 01378000 OI OUCBGOI(OUCBPTR),B'01000000' 02S0238 01379000 * RMCACIUS=RMCACIUS+ONE; /* ADD TO COMING IN USRS @Z30WIGS*/ 01380000 LA @09,1 02S0239 01381000 AH @09,RMCACIUS(,RMCTPTR) 02S0239 01382000 STH @09,RMCACIUS(,RMCTPTR) 02S0239 01383000 * END; 02S0240 01384000 * ELSE /* ERROR IN TRYING TO SWAP-IN */ 01385000 * 02S0241 01386000 * /***********************************************************/ 01387000 * /* */ 01388000 * /* FREE STORAGE OBTAINED FOR USE AS OUXB */ 01389000 * /* */ 01390000 * /***********************************************************/ 01391000 * 02S0241 01392000 * DO; 02S0241 01393000 B @RC00233 02S0241 01394000 @RF00233 DS 0H 02S0242 01395000 * RESPECIFY 02S0242 01396000 * CVRE RSTD; /* @Z40BPCJ*/ 01397000 * CVRE=RTNCOD; /* @Z40BPCJ*/ 01398000 LR CVRE,RTNCOD 02S0243 01399000 * ASCBOUXB=RMCTOUXB; /* STORE PTR TO PREDEFINED OUXB 01400000 * @Z40BPCJ*/ 01401000 L @09,RMCTOUXB(,RMCTPTR) 02S0244 01402000 ST @09,ASCBOUXB(,ASCBPTR) 02S0244 01403000 * R0=LENGTH(OUXB); /* INDICATE SIZE OF AREA FREED */ 01404000 * 02S0245 01405000 LA R0,144 02S0245 01406000 * /*********************************************************/ 01407000 * /* */ 01408000 * /* ? IRACTLCL EPN(I04) */ 01409000 * /* */ 01410000 * /*********************************************************/ 01411000 * 02S0246 01412000 * CALL RMSBI04->IRARMRTN; /* INVOKE I04 SUBRTN */ 01413000 L @15,RMSBI04(,RMCTPTR) 02S0246 01414000 BALR @14,@15 02S0246 01415000 * RTNCOD=CVRE; /* @Z40BPCJ*/ 01416000 LR RTNCOD,CVRE 02S0247 01417000 * RESPECIFY 02S0248 01418000 * CVRE UNRSTD; /* @Z40BPCJ*/ 01419000 * END; 02S0249 01420000 *RMCSIL5: 02S0250 01421000 * END; /* @Z40BPCJ*/ 01422000 * ELSE 02S0251 01423000 * RTNCOD=EIGHT; /* @Z40BPCJ*/ 01424000 * 02S0251 01425000 B @RC00220 02S0251 01426000 @RF00220 LA RTNCOD,8 02S0251 01427000 * /*****************************************************************/ 01428000 * /* */ 01429000 * /* ? IRACTLEP ENN(CSI) */ 01430000 * /* */ 01431000 * /*****************************************************************/ 01432000 * 02S0252 01433000 * GEN CODE EXIT NOSEQFLOW; 02S0252 01434000 @RC00220 DS 0H 02S0252 01435000 * /* 01436000 LM @00,@14,128+000(@13) RELOAD INVOKING RTNE REGS 01437000 BR RTNREG RETURN TO INVOKER 01438000 * 02S0253 01439000 */* **************************************************************** */ 01440000 */* */ 01441000 */* ROUTINE NAME - IRARMCSO */ 01442000 */* */ 01443000 */* DESCRIPTIVE NAME - SYSTEM RESOURCES MANAGER CNTRL ALGORITHM */ 01444000 */* USER SWAP-OUT REQUEST RECEIVING SBRTNE */ 01445000 */* */ 01446000 */* FUNCTION - THE IRARMCSO SUBROUTINE ACCEPTS A REQUEST THAT AN */ 01447000 */* ADDRESS SPACE BE SWAPPED OUT. IF THE ADDRESS SPACE IS */ 01448000 */* ALREADY SWAPPED OUT, A CODE IS RETURNED TO INDICATE */ 01449000 */* THAT THE REQUEST COULD NOT BE HONORED. OTHERWISE, THE */ 01450000 */* IRARMI06 ROUTINE IS INVOKED TO POST QUIESCE FOR THE */ 01451000 */* ADDRESS SPACE, AND THE SYSTEM RESOURCES MANAGER USER */ 01452000 */* CONTROL BLOCK IS MARKED TO SHOW THAT THE USER IS IN */ 01453000 */* THE PROCESS OF BEING SWAPPED OUT. */ 01454000 */* */ 01455000 */* NOTE - THE IRARMCSO ROUTINE DOES NOT REQUIRE SERIALIZATION */ 01456000 */* WITH OTHER SYSTEM RESOURCES MANAGER PROCESSES, WHICH */ 01457000 */* COULD BE EXAMINING THE SAME OUCB WHOSE STATUS IS */ 01458000 */* BEING CHANGED BY IRARMCSO. */ 01459000 */* */ 01460000 */* INPUT - REG 4 CONTAINS THE ADDRESS OF THE OUCB OF THE USER */ 01461000 */* WHO IS TO BE SWAPPED OUT. */ 01462000 */* - REG 14 CONTAINS THE RETURN ADDRESS. */ 01463000 */* - REG 15 CONTAINS THE IRARMCSO ROUTINE ADDRESS. */ 01464000 */* */ 01465000 */* OUTPT - OUCBGOO IS SET IF THE SWAP-OUT IS INITIATED. */ 01466000 */* */ 01467000 */* EXIT NORMAL - BRANCH ON REGISTER 14. */ 01468000 */* - 0 IN REG 15 TO INDICATE THAT SWAP-OUT WAS INITIATED. */ 01469000 */* */ 01470000 */* EXIT ERROR - BRANCH ON REGISTER 14. */ 01471000 */* - 4 IN REG 15 IF AN ERROR WAS EXPERIENCED WHILE */ 01472000 */* TRYING TO POST QUIESCE FOR THE ADDRESS SPACE. */ 01473000 */* - 8 IN REG 15 IF THE INDICATED USER IS ALREADY */ 01474000 */* SWAPPED OUT. */ 01475000 */* - SEE IRARMCRY EXIT DESCRIPTION FOR ERROR CODES */ 01476000 */* GIVEN IF THE USER IS NOT IN SWAPPABLE STATUS. */ 01477000 */* */ 01478000 */* **************************************************************** */ 01479000 * 02S0253 01480000 * /*****************************************************************/ 01481000 * /* */ 01482000 * /* IRARMCSO ROUTINE - ENTRY SEQUENCE ? IRACTLEP EPN(CSO) */ 01483000 * /* */ 01484000 * /*****************************************************************/ 01485000 * 02S0253 01486000 * DCL 02S0253 01487000 * IRARMCSO ENTRY INT; 02S0253 01488000 * GEN CODE DEFS(IRARMCSO) NOEXIT SEQFLOW; 02S0254 01489000 * 02S0254 01490000 * /* 01491000 ENTRY IRARMCSO 01492000 IRARMCSO DS 0H 01493000 STM @00,@14,128+000(@13) SAVE INVOKING RTNE REGS 01494000 LA @12,IRARMCSO-@PSTART DISPLACEMENT TO MODULE BASE 01495000 LCR @12,@12 NEGATIVE FOR SUBTRACT 01496000 ALR @12,@15 SETUP MODULE ADDRESSABILITY 01497000 * /*****************************************************************/ 01498000 * /* */ 01499000 * /* CHECK IF SWAP-OUT REQUEST INAPPLICABLE TO THIS USER. */ 01500000 * /* */ 01501000 * /*****************************************************************/ 01502000 * 02S0255 01503000 * IF OUCBOUT='0'B THEN /* USER CURRENTLY IN CORE */ 01504000 * 02S0255 01505000 TM OUCBOUT(OUCBPTR),B'00000100' 02S0255 01506000 BNZ @RF00255 02S0255 01507000 * /***************************************************************/ 01508000 * /* */ 01509000 * /* INITIATE ACTUAL SWAP-OUT PROCESS. */ 01510000 * /* */ 01511000 * /***************************************************************/ 01512000 * 02S0256 01513000 * DO; 02S0256 01514000 * 02S0256 01515000 * /*************************************************************/ 01516000 * /* */ 01517000 * /* INVOKE SUBROUTINE TO POST QUIESCE. */ 01518000 * /* */ 01519000 * /*************************************************************/ 01520000 * 02S0257 01521000 * ASCBPTR=OUCBASCB; /* PASS USER TO BE QUIESCED */ 01522000 L ASCBPTR,OUCBASCB(,OUCBPTR) 02S0257 01523000 * OUCBPSTR='1'B; /* IF POST ERROR, RECOVER (BIT IS 01524000 * RESET BY QSCEST SYSEVENT) 01525000 * @ZA16887*/ 01526000 OI OUCBPSTR(OUCBPTR),B'00001000' 02S0258 01527000 * R0=ZERO; /* PASS POST CODE 0 @Z116887*/ 01528000 SLR R0,R0 02S0259 01529000 * R1=ADDR(ASCBECB); /* PASS RCT ECB ADDRESS */ 01530000 LA R1,ASCBECB(,ASCBPTR) 02S0260 01531000 * ASCBFQUB='1'B; /* TELL RCT TO QUIESCE */ 01532000 * 02S0261 01533000 L @09,ASCBFQUB-2(,ASCBPTR) 02S0261 01534000 @GL00013 LR @08,@09 02S0261 01535000 O @08,@CF02292 02S0261 01536000 CS @09,@08,ASCBFQUB-2(ASCBPTR) 02S0261 01537000 BNE @GL00013 02S0261 01538000 * /*************************************************************/ 01539000 * /* */ 01540000 * /* ? IRACTLCL EPN(I06) */ 01541000 * /* */ 01542000 * /*************************************************************/ 01543000 * 02S0262 01544000 * CALL RMSBI06->IRARMRTN; /* INVOKE I06 SUBRTN */ 01545000 L @15,RMSBI06(,RMCTPTR) 02S0262 01546000 BALR @14,@15 02S0262 01547000 * IF RTNCOD=ZERO THEN /* PHYSICAL SWAP-OUT INITIATED */ 01548000 * 02S0263 01549000 LTR RTNCOD,RTNCOD 02S0263 01550000 BNZ @RF00263 02S0263 01551000 * /***********************************************************/ 01552000 * /* */ 01553000 * /* PUT USER AT TOP OF DISPATCHING QUEUE DURING QUIESCE */ 01554000 * /* */ 01555000 * /***********************************************************/ 01556000 * 02S0264 01557000 * DO; /* @YM05632*/ 01558000 * OUCBGOO='1'B; /* INDICATE USER STATUS CHANGE */ 01559000 OI OUCBGOO(OUCBPTR),B'10000000' 02S0265 01560000 * IF OUCBAPG='0'B /* PREVENT ZERO DP IF A @ZA11365*/ 01561000 * THEN 02S0266 01562000 TM OUCBAPG(OUCBPTR),B'01000000' 02S0266 01563000 BNZ @RF00266 02S0266 01564000 * OUCBNDP=ASCBDP; /* SWAP BEFORE EVENT 10. @ZA11365*/ 01565000 IC @09,ASCBDP(,ASCBPTR) 02S0267 01566000 STC @09,OUCBNDP(,OUCBPTR) 02S0267 01567000 * RMCACHU=ASCBPTR; /* PASS USER TO BE CHAPPED 02S0268 01568000 * @YM05632*/ 01569000 @RF00266 ST ASCBPTR,RMCACHU(,RMCTPTR) 02S0268 01570000 * R1=ADDR(RMCACHP); /* ADDR OF CHAP PARAM LIST 02S0269 01571000 * @YM05632*/ 01572000 * 02S0269 01573000 LA R1,RMCACHP(,RMCTPTR) 02S0269 01574000 * /*********************************************************/ 01575000 * /* */ 01576000 * /* ? IRACTLCL EPN(I02) */ 01577000 * /* */ 01578000 * /*********************************************************/ 01579000 * 02S0270 01580000 * CALL RMSBI02->IRARMRTN; /* INVOKE I02 SUBRTN */ 01581000 L @15,RMSBI02(,RMCTPTR) 02S0270 01582000 BALR @14,@15 02S0270 01583000 * RTNCOD=ZERO; /* SWAP-OUT REQUEST PROCESSED 01584000 * @YM05632*/ 01585000 SLR RTNCOD,RTNCOD 02S0271 01586000 * END; /* @YM05632*/ 01587000 * ELSE /* ERROR IN TRYING TO SWAP-OUT */ 01588000 * RTNCOD=FOUR; /* PASS INVOKER ERROR RESPONSE */ 01589000 B @RC00263 02S0273 01590000 @RF00263 LA RTNCOD,4 02S0273 01591000 * END; 02S0274 01592000 * ELSE /* USER ALREADY SWAPPED OUT */ 01593000 * RTNCOD=EIGHT; /* REQUEST GIVEN AT WRONG TIME */ 01594000 * 02S0275 01595000 B @RC00255 02S0275 01596000 @RF00255 LA RTNCOD,8 02S0275 01597000 * /*****************************************************************/ 01598000 * /* */ 01599000 * /* IRARMCSO ROUTINE - EXIT SEQUENCE ? IRACTLEP ENN(CSO) */ 01600000 * /* */ 01601000 * /*****************************************************************/ 01602000 * 02S0276 01603000 * GEN CODE EXIT NOSEQFLOW; 02S0276 01604000 @RC00255 DS 0H 02S0276 01605000 * /* 01606000 LM @00,@14,128+000(@13) RELOAD INVOKING RTNE REGS 01607000 BR RTNREG RETURN TO INVOKER 01608000 * 02S0277 01609000 */* *********************************************************@Z40BPCH*/ 01610000 */* @Z40BPCH*/ 01611000 */* ROUTINE NAME - IRARMRPS @Z40BPCH*/ 01612000 */* @Z40BPCH*/ 01613000 */* DESCRIPTIVE NAME - SYSTEM RESOURCES MANAGER USER CONTROL @Z40BPCH*/ 01614000 */* BLOCK REPOSITIONING ROUTINE @Z40BPCH*/ 01615000 */* @Z40BPCH*/ 01616000 */* FUNCTION - THE IRARMRPS SUBROUTINE DEQUEUES THE INDICATED@Z40BPCH*/ 01617000 */* OUCB FROM THE PRESENT POSITION ON ITS PRESENT @Z40BPCH*/ 01618000 */* QUEUE, AND ENQUEUES THE OUCB ONTO THE QUEUE @Z40BPCH*/ 01619000 */* SPECIFIED BY THE FLAGS IN ITS OUCBQFL FIELD @Z40BPCH*/ 01620000 */* AT THE END POSITION ON THE QUEUE. @Z40BPCH*/ 01621000 */* @Z40BPCH*/ 01622000 */* NOTE - IRARMRPS IS AN 'ACTION ROUTINE' I.E. IT PERFORMS @Z40BPCH*/ 01623000 */* OUCB ENQUEUEING FOR ONE USER. IRARMRPS RUNS UNDER @Z40BPCH*/ 01624000 */* THE SRM LOCK. @Z40BPCH*/ 01625000 */* @Z40BPCH*/ 01626000 */* INPUT - OUCBGOB MUST BE SET '1'B WHEN CALLED @Z40BPCH*/ 01627000 */* REG 1 CONTAINS THE ADDRESS OF THE RMEP FOR RPS @Z40BPCH*/ 01628000 */* REG 4 CONTAINS THE ADDR OF THE OUCB TO BE QUEUED @Z40BPCH*/ 01629000 */* REG 13 CONTAINS THE ADDR OF THE SAVE AREA STACK @Z40BPCH*/ 01630000 */* ASSOCIATED WITH THE SRM LOCK @Z40BPCH*/ 01631000 */* REG 14 CONTAINS THE RETURN ADDRESS @Z40BPCH*/ 01632000 */* REG 15 CONTAINS THE RPS ROUTINE ADDRESS @Z40BPCH*/ 01633000 */* IF THE OUCBOUT FLAG IS OFF, THE OUCB WILL BE @Z40BPCH*/ 01634000 */* PLACED ON THE IN-CORE QUEUE. @Z40BPCH*/ 01635000 */* ELSE, IF THE OUCBOFF FLAG IS ON AND THE USER IS @Z40BPCH*/ 01636000 */* NOT READY OR IS BEING FORCED OUT BY AN AUXILIARY @Z40BPCH*/ 01637000 */* STORAGE SHORTAGE, THE OUCB WILL BE PLACED ON THE @Z40BPCH*/ 01638000 */* WAIT QUEUE. OTHERWISE THE OUCB WILL BE PLACED ON @Z40BPCH*/ 01639000 */* THE OUT QUEUE. @Z40BPCH*/ 01640000 */* @Z40BPCH*/ 01641000 */* OUTPUT - THE OUXB IS MOVED TO THE END POSITION ON THE @Z40BPCH*/ 01642000 */* INDICATED QUEUE. @Z40BPCH*/ 01643000 */* @Z40BPCH*/ 01644000 */* EXIT - BRANCH ON REGISTER 14 @Z40BPCH*/ 01645000 */* THERE IS NO ERROR EXIT OR INDICATOR. @Z40BPCH*/ 01646000 */* @Z40BPCH*/ 01647000 */* *********************************************************@Z40BPCH*/ 01648000 */* IRARMRPS ROUTINE - ENTRY SEQUENCE @Z40BPCH*/ 01649000 * 02S0277 01650000 * /*****************************************************************/ 01651000 * /* */ 01652000 * /* ? IRACTLEP EPN(RPS)SAVE(6,14)CODEREG(*) */ 01653000 * /* */ 01654000 * /*****************************************************************/ 01655000 * 02S0277 01656000 * DCL 02S0277 01657000 * IRARMRPS ENTRY INT; 02S0277 01658000 * GEN CODE REFS(RMCTRMSA,RRPAEPA) DEFS(IRARMRPS) NOEXIT SEQFLOW; 01659000 * 02S0278 01660000 * /* 01661000 ENTRY IRARMRPS 01662000 IRARMRPS DS 0H 01663000 L @15,RMCTRMSA(,RMCTPTR) SRM SAVE AREA START ADDRESS 01664000 STM @00,@14,064+000(@15) SAVE INVOKING RTNE REGS 01665000 MVC 064+060(4,@15),RRPAEPA(RRPAPTR) SAVE PREV RMEP 01666000 ST @01,RRPAEPA(,RRPAPTR) INDICATE NEW CURRENT RMEP 01667000 LR @13,@15 ROUTINE SAVE AREA ADDRESS 01668000 BALR @15,0 RESET ENTRY ADDRESSABILITY 01669000 USING *,@15 01670000 */* @Z40BPCH*/ 01671000 */* DEQUEUE OUCB FROM ITS PRESENT POSITION ON SOME QUEUE. THE@Z40BPCH*/ 01672000 */* SUBROUTINE IS ONLY EXECUTED WHILE HOLDING THE SRM LOCK. @Z40BPCH*/ 01673000 */* COMPARE AND SWAP INSTRUCTIONS DO NOT HAVE TO BE USED. @Z40BPCH*/ 01674000 * 02S0279 01675000 * OUCBFWD->OUCBBCK=OUCBBCK; /* DEQ OUCB FROM PREV BACK CHAIN 01676000 * @Z40BPCH*/ 01677000 L @09,OUCBFWD(,OUCBPTR) 02S0279 01678000 L @08,OUCBBCK(,OUCBPTR) 02S0279 01679000 ST @08,OUCBBCK(,@09) 02S0279 01680000 * OUCBBCK->OUCBFWD=OUCBFWD; /* DEQ OUCB FROM PREV FWD CHAIN 01681000 * @Z40BPCH*/ 01682000 ST @09,OUCBFWD(,@08) 02S0280 01683000 */* DETERMINE QUEUE ONTO WHICH OUCB IS TO BE PLACED @Z40BPCH*/ 01684000 * 02S0281 01685000 * IF OUCBOUT='0'B THEN /* TEST IF USER IS IN CORE 02S0281 01686000 * @Z40BPCH*/ 01687000 TM OUCBOUT(OUCBPTR),B'00000100' 02S0281 01688000 BNZ @RF00281 02S0281 01689000 * PMRO=RMCTINQE; /* SAVE INQ QUEUE HEADER ADDRESS 01690000 * @Z40BPCH*/ 01691000 L PMRO,RMCTINQE(,RMCTPTR) 02S0282 01692000 * ELSE /* USER CONSIDERED OUT OF CORE 01693000 * @Z40BPCH*/ 01694000 */* THERE ARE TWO QUEUES FOR OUT OF CORE USERS. THE LONG WAIT QUEUE 01695000 * @Z40BPCH*/ 01696000 */* CONTAINS USERS WHICH MUST BE AWAKENED BEFORE THEY CAN EXECUTE. 01697000 * @Z40PBCH*/ 01698000 */* THE OUT OF CORE QUEUE CONTAINS USERS SUBJECT TO PERFORMANCE 02S0283 01699000 * @Z40PBCH*/ 01700000 */* ANALYSIS BEFORE BEING BROUGHT BACK IN. @Z40BPCH*/ 01701000 * 02S0283 01702000 * DO; /* @Z40BPCH*/ 01703000 B @RC00281 02S0283 01704000 @RF00281 DS 0H 02S0284 01705000 */* TEST IF USER PUT ON WAIT QUEUE BY LONG WAIT OR BY AUXILIARY 02S0284 01706000 * @Z40BPCH*/ 01707000 */* STORAGE SHORTAGE. @Z40BPCH*/ 01708000 * 02S0284 01709000 * IF OUCBOFF='1'B&(OUCBRDY='0'B|OUCBAXS='1'B|OUCBFXS='1'B| 01710000 * OUCBJSAS='1'B|OUCBJSFS='1'B) THEN/* @ZM43072*/ 01711000 TM OUCBOFF(OUCBPTR),B'00001000' 02S0284 01712000 BNO @RF00284 02S0284 01713000 TM OUCBRDY(OUCBPTR),B'10000000' 02S0284 01714000 BZ @RT00284 02S0284 01715000 TM OUCBAXS(OUCBPTR),B'00000101' 02S0284 01716000 BNZ @RT00284 02S0284 01717000 TM OUCBJSAS(OUCBPTR),B'11000000' 02S0284 01718000 BZ @RF00284 02S0284 01719000 @RT00284 DS 0H 02S0285 01720000 * PMRO=RMCTWTQE; /* PLACE USER ON WAIT QUEUE 02S0285 01721000 * @Z40BPCH*/ 01722000 L PMRO,RMCTWTQE(,RMCTPTR) 02S0285 01723000 * ELSE /* @Z40BPCH*/ 01724000 * DO; /* PLACE USER ON OUT QUEUE 02S0286 01725000 * @Z40BPCH*/ 01726000 B @RC00284 02S0286 01727000 @RF00284 DS 0H 02S0287 01728000 * OUCBOFF='0'B; /* REMOVE USER IF ON WAIT QUEUE 01729000 * @Z40BPCH*/ 01730000 NI OUCBOFF(OUCBPTR),B'11110111' 02S0287 01731000 * PMRO=RMCTOTQE; /* PLACE USER ON OUT QUEUE 02S0288 01732000 * @Z40BPCH*/ 01733000 L PMRO,RMCTOTQE(,RMCTPTR) 02S0288 01734000 * END; /* @Z40BPCH*/ 01735000 * END; /* @Z40BPCH*/ 01736000 @RC00284 DS 0H 02S0291 01737000 */* INSERT THE OUCB ON THE END OF THE QUEUE @Z40BPCH*/ 01738000 * 02S0291 01739000 * RESPECIFY /* @Z40BPCH*/ 01740000 * (OUCB) BASED(PMRO); /* @Z40BPCH*/ 01741000 @RC00281 DS 0H 02S0292 01742000 * PMRO=OUCBBCK; /* ADDRESS OF LAST OUCB ON QUEUE 01743000 * @Z40BPCH*/ 01744000 L PMRO,OUCBBCK(,PMRO) 02S0292 01745000 * OUCBPTR->OUCBBCK=ADDR(OUCB); /* POINT OUCB TO BACK CHAIN 02S0293 01746000 * @Z40BPCH*/ 01747000 ST PMRO,OUCBBCK(,OUCBPTR) 02S0293 01748000 * OUCBPTR->OUCBFWD=OUCBFWD; /* POINT TO QUEUE HEADER @Z40BPCH*/ 01749000 L @09,OUCBFWD(,PMRO) 02S0294 01750000 ST @09,OUCBFWD(,OUCBPTR) 02S0294 01751000 * OUCBFWD->OUCBBCK=OUCBPTR; /* ENQ OUCB ON BACKWD CHAIN 02S0295 01752000 * @Z40BPCH*/ 01753000 ST OUCBPTR,OUCBBCK(,@09) 02S0295 01754000 * OUCBFWD=OUCBPTR; /* ENQ OUCB ON FORWORD CHAIN 01755000 * @Z40BPCH*/ 01756000 ST OUCBPTR,OUCBFWD(,PMRO) 02S0296 01757000 * RESPECIFY /* @Z40BPCH*/ 01758000 * (OUCB) BASED(OUCBPTR); /* RESTORE NORMAL OUCB BASE 02S0297 01759000 * @Z40BPCH*/ 01760000 * OUCBGOB='0'B; /* CLEAR OUCB REPOSITION FLAG 01761000 * @Z40BPCH*/ 01762000 NI OUCBGOB(OUCBPTR),B'11011111' 02S0298 01763000 */* IRARMRPS ROUTINE - EXIT SEQUENCE @Z40BPCH*/ 01764000 * 02S0299 01765000 * /*****************************************************************/ 01766000 * /* */ 01767000 * /* ? IRACTLEP ENN(RPS) */ 01768000 * /* */ 01769000 * /*****************************************************************/ 01770000 * 02S0299 01771000 * GEN CODE EXIT NOSEQFLOW; 02S0299 01772000 * 02S0299 01773000 * /* 01774000 MVC RRPAEPA(4,RRPAPTR),064+060(@13) RESTORE PREV RMEP 01775000 LM @06,@14,064+024(@13) RELOAD INVOKING RTNE REGS 01776000 BR RTNREG RETURN TO INVOKER 01777000 DROP @15 01778000 */* @Z40BPCH*/ 01779000 * 02S0300 01780000 * 02S0300 01781000 */* **************************************************************** */ 01782000 */* */ 01783000 */* ROUTINE NAME - IRARMWMY */ 01784000 */* */ 01785000 */* DESCRIPTIVE NAME - SYSTEM RESOURCES MANAGER CNTRL ALGORITHM */ 01786000 */* PERIODIC ENTRY POINT INVOKE INITIALIZATION ROUTINE */ 01787000 */* */ 01788000 */* FUNCTION - THE IRARMWMY ROUTINE TAKES THE EXISTING BCKWRDS */ 01789000 */* CHAINED ENTRY TIMING QUEUE LOCATED BY -RMCTTMQE- AND */ 01790000 */* REQUEUES ALL OF ITS MEMBERS, ADJUSTING THE TIME DUE */ 01791000 */* FIELD OF EACH BY THE DIFFERENCE BETWEEN -RMCTTOD- */ 01792000 */* AND -RMPTTOI-. THIS EFFECTIVELY RESETS THE ENTIRE */ 01793000 */* QUEUE TO START ANEW BASED UPON THE CURRENT TIME. */ 01794000 */* */ 01795000 */* **************************************************************** */ 01796000 * 02S0300 01797000 * /*****************************************************************/ 01798000 * /* */ 01799000 * /* IRARMWMY ROUTINE - ENTRY SEQUENCE ? IRACTLEP EPN(WMY) */ 01800000 * /* */ 01801000 * /*****************************************************************/ 01802000 * 02S0300 01803000 * DCL 02S0300 01804000 * IRARMWMY ENTRY INT; 02S0300 01805000 * GEN CODE DEFS(IRARMWMY) NOEXIT SEQFLOW; 02S0301 01806000 * 02S0301 01807000 * /* 01808000 ENTRY IRARMWMY 01809000 IRARMWMY DS 0H 01810000 STM @00,@14,128+000(@13) SAVE INVOKING RTNE REGS 01811000 LA @12,IRARMWMY-@PSTART DISPLACEMENT TO MODULE BASE 01812000 LCR @12,@12 NEGATIVE FOR SUBTRACT 01813000 ALR @12,@15 SETUP MODULE ADDRESSABILITY 01814000 * /*****************************************************************/ 01815000 * /* */ 01816000 * /* CALCULATE AMT BY WHICH TO ADJUST SCHEDULED INVOCATION TIMES */ 01817000 * /* */ 01818000 * /*****************************************************************/ 01819000 * 02S0302 01820000 * WKRO=RRPATOD-RMCATOI; /* DELTA BETWEEN EXPECT AND GET */ 01821000 L @09,RRPATOD(,RRPAPTR) 02S0302 01822000 LR WKRO,@09 02S0302 01823000 SL WKRO,RMCATOI(,RMCTPTR) 02S0302 01824000 * IF RRPATOD=WKRO THEN /* RRPATOD NOT ALLOW TO BE ZERO */ 01825000 CLR @09,WKRO 02S0303 01826000 BNE @RF00303 02S0303 01827000 * WKRO=WKRO-ONE; /* INSURE RMCTTOD NOT MADE ZERO */ 01828000 BCTR WKRO,0 02S0304 01829000 * IF RMCTTBS=WKRO THEN /* RMCTTBS ZERO IF HAVEN'T INIT */ 01830000 @RF00303 CL WKRO,RMCTTBS(,RMCTPTR) 02S0305 01831000 BNE @RF00305 02S0305 01832000 * WKRO=WKRO-ONE; /* INSURE RMCTTBS NOT MADE ZERO */ 01833000 BCTR WKRO,0 02S0306 01834000 * RMCTTBS=RMCTTBS-WKRO; /* ADJUST RSRCS MNGR TIME BASE */ 01835000 @RF00305 L @09,RMCTTBS(,RMCTPTR) 02S0307 01836000 SLR @09,WKRO 02S0307 01837000 ST @09,RMCTTBS(,RMCTPTR) 02S0307 01838000 * RRPATOD=RRPATOD-WKRO; /* ADJUST RSRCS MNGR CURR TIME */ 01839000 L @09,RRPATOD(,RRPAPTR) 02S0308 01840000 SLR @09,WKRO 02S0308 01841000 ST @09,RRPATOD(,RRPAPTR) 02S0308 01842000 * RMCTTOD=RMCTTOD-WKRO; /* ADJUST RSRCS MNGR CURR TIME */ 01843000 * 02S0309 01844000 L @09,RMCTTOD(,RMCTPTR) 02S0309 01845000 SLR @09,WKRO 02S0309 01846000 ST @09,RMCTTOD(,RMCTPTR) 02S0309 01847000 * /*****************************************************************/ 01848000 * /* */ 01849000 * /* START NEW TIMED ENTRY QUEUE BY CHAINING HEADER TO ITSELF */ 01850000 * /* */ 01851000 * /*****************************************************************/ 01852000 * 02S0310 01853000 * RMEPPTR=RMCTTMQE; /* PICK TIMED QUEUE HEADER ADDR */ 01854000 L RMEPPTR,RMCTTMQE(,RMCTPTR) 02S0310 01855000 * PMRE=RMEPBCK; /* PRESERVE PREVIOUS MEMBER ADR */ 01856000 L PMRE,RMEPBCK(,RMEPPTR) 02S0311 01857000 * RMEPFWD=RMEPPTR; /* ENQUE FORWRD CHAIN TO HEADER */ 01858000 ST RMEPPTR,RMEPFWD(,RMEPPTR) 02S0312 01859000 * RMEPBCK=RMEPPTR; /* ENQUE BCKWRD CHAIN TO HEADER */ 01860000 ST RMEPPTR,RMEPBCK(,RMEPPTR) 02S0313 01861000 * RMEPPTR=PMRE; /* PICK 1ST FORMER QUEUE MEMBER */ 01862000 * 02S0314 01863000 LR RMEPPTR,PMRE 02S0314 01864000 * /*****************************************************************/ 01865000 * /* */ 01866000 * /* STEP THROUGH MEMBERS OF PREVIOUS ENTRY TIMING QUE. ADJUST EACH*/ 01867000 * /* TO THE NEW TIME BASE, AND REQUE ONTO THE ENTRY TIMING QUEUE. */ 01868000 * /* DONE STEPPING WHEN ARRIVE BACK AT QUEUE HEADER. */ 01869000 * /* */ 01870000 * /*****************************************************************/ 01871000 * 02S0315 01872000 * DO WHILE(RMEPFLG^=EMPTY); 02S0315 01873000 B @DE00315 02S0315 01874000 @DL00315 DS 0H 02S0316 01875000 * PMRE=RMEPBCK; /* PRESERVE PREVIOUS MEMBER ADR */ 01876000 L PMRE,RMEPBCK(,RMEPPTR) 02S0316 01877000 * CALL IRARMCQT; /* REENQUE MEMBR ONTO TIMED QUE */ 01878000 BAL @14,IRARMCQT 02S0317 01879000 * RMEPPTR=PMRE; /* PICK NXT FORMER QUEUE MEMBER */ 01880000 LR RMEPPTR,PMRE 02S0318 01881000 * END; 02S0319 01882000 * 02S0319 01883000 @DE00315 L @09,RMEPFLG(,RMEPPTR) 02S0319 01884000 LTR @09,@09 02S0319 01885000 BNZ @DL00315 02S0319 01886000 */* THE SUBSEQUENT IRARMCET ROUTINE WILL RESET RMCTTOI AND RESET */ 01887000 */* THE TIMER EXPIRE SETTING FOR THE SYSTEM RESOURCES MANAGER. */ 01888000 * 02S0320 01889000 * /*****************************************************************/ 01890000 * /* */ 01891000 * /* IRARMWMY ROUTINE - EXIT SEQUENCE ? IRACTLEP ENN(WMY) */ 01892000 * /* */ 01893000 * /*****************************************************************/ 01894000 * 02S0320 01895000 * GEN CODE EXIT NOSEQFLOW; 02S0320 01896000 * /* 01897000 LM @00,@14,128+000(@13) RELOAD INVOKING RTNE REGS 01898000 BR RTNREG RETURN TO INVOKER 01899000 * 02S0321 01900000 */* *********************************************************@Z40BPJC*/ 01901000 */* @Z40BPJC*/ 01902000 */* ROUTINE NAME - IRARMCAP @Z40BPJC*/ 01903000 */* @Z40BPJC*/ 01904000 */* DESCRIPTIVE NAME - SYSTEM RESOURCES MANAGER (SRM) @Z40BPJC*/ 01905000 */* SWAP ANALYSIS ALGORITHM @Z40BPJC*/ 01906000 */* @Z40BPJC*/ 01907000 */* FUNCTION - THE IRARMCAP ROUTINE ATTEMPTS TO KEEP THE @Z40BPJC*/ 01908000 */* MULTIPROGRAMMING LEVEL (MPL) PER DOMAIN AT @Z40BPJC*/ 01909000 */* ITS TARGET LEVEL. THE TARGET MPL PER DOMAIN@Z40BPJC*/ 01910000 */* IS THE DESIRED NUMBER OF MEMORIES BELONGING @Z40BPJC*/ 01911000 */* TO THAT DOMAIN TO BE KEPT IN CORE. IRARMCAP@Z40BPJC*/ 01912000 */* ATTEMPTS TO MAINTAIN THE MPL PER DOMAIN AT @Z40BPJC*/ 01913000 */* ITS TARGET BY PERFORMING MEMORY SWAPS. @Z40BPJC*/ 01914000 */* @Z40BPJC*/ 01915000 */* NOTE - IRARMCAP IS AN 'ALGORITHM' ROUTINE - I.E. IT HAS@Z40BPJC*/ 01916000 */* A SYSTEM-WIDE SCOPE OF APPLICABILITY. IRARMCAP @Z40BPJC*/ 01917000 */* RUNS UNDER THE SRM LOCK. IT IS A TIMED @Z40BPJC*/ 01918000 */* ALGORITHM AND IS ALSO INVOKED BY THE USERRDY AND@Z40BPJC*/ 01919000 */* SWOUTCMP SYSEVENTS. @Z40BPJC*/ 01920000 */* @Z40BPJC*/ 01921000 */* INPUT - REG 1 CONTAINS THE ADDRESS OF RMEP FOR IRARMCAP@Z40BPJC*/ 01922000 */* - REG 13 CONTAINS THE ADDRESS OF THE SAVE AREA @Z40BPJC*/ 01923000 */* STACK ASSOCIATED WITH THE SYSTEM RESOURCES @Z40BPJC*/ 01924000 */* MANAGER LOCK. @Z40BPJC*/ 01925000 */* - REG 14 CONTAINS THE RETURN ADDRESS. @Z40BPJC*/ 01926000 */* - REG 15 CONTAINS THE IRARMCAP ROUTINE ADDRESS. @Z40BPJC*/ 01927000 */* - THE OUCB OUT QUEUE CONTAINS USERS WHICH ARE @Z40BPJC*/ 01928000 */* CANDIDATES FOR SWAP-IN. @Z40BPJC*/ 01929000 */* - THE OUCB IN QUEUE CONTAINS USERS WHICH ARE @Z40BPJC*/ 01930000 */* CANDIDATES FOR SWAP-OUT. @Z40BPJC*/ 01931000 */* - THE DOMAIN TABLE CONTAINS THE TARGET MPL PER @Z40BPJC*/ 01932000 */* DOMAIN @Z40BPJC*/ 01933000 */* @Z40BPJC*/ 01934000 */* OUTPUT - THE FOLLOWING DATA IS CALCULATED PER DOMAIN @Z40BPJC*/ 01935000 */* AND STORED IN THE DOMAIN TABLE: THE CURRENT @Z40BPJC*/ 01936000 */* MPL, THE NUMBER OF SWAPPABLE INCORE USERS, THE@Z40BPJC*/ 01937000 */* NUMBER OF OUT USERS, AND THE NUMBER OF USERS @Z40BPJC*/ 01938000 */* GOING OUT. THESE COUNTS ARE UPDATED TO @Z40BPJC*/ 01939000 */* REFLECT CHANGES RESULTING FROM SWAPS. THE @Z40BPJC*/ 01940000 */* STEPS OF THE SWAP ANALYSIS ARE DEFINED @Z40BPJC*/ 01941000 */* BELOW IN THE ORDER IN WHICH THEY ARE @Z40BPJC*/ 01942000 */* INVOKED. ALL DOMAINS ARE CONSIDERED FOR EACH @Z40BPJC*/ 01943000 */* STEP BEFORE PROCEEDING TO THE NEXT STEP. @Z40BPJC*/ 01944000 */* @Z40BPJC*/ 01945000 */* 1) FOR EACH DOMAIN, SWAP OUT THE REQUIRED @Z40BPJC*/ 01946000 */* NUMBER OF USERS TO DRIVE THE MPL DOWN TO @Z40BPJC*/ 01947000 */* ITS TARGET. SELECT THE USERS WITH THE @Z40BPJC*/ 01948000 */* SMALLEST RECOMMENDATION VALUES. IF ANY @Z40BPJC*/ 01949000 */* SWAPS ARE INITIATED BY STEP 1, THE OTHER @ZA29015*/ 01950000 */* STEPS ARE SKIPPED, AND THE ANALYSIS ENDS. @ZA29015*/ 01951000 */* @Z40BPJC*/ 01952000 */* 2) IF THERE IS A USER ON THE OUT QUEUE @Z40BPJC*/ 01953000 */* ENQUEUED UPON A RESOURCE REQUESTED BY @Z40BPJC*/ 01954000 */* ANOTHER USER, OR BEING CANCELLED, SWAP IN @Z40BPJC*/ 01955000 */* THE USER IF THE MPL FOR ITS DOMAIN @Z40BPJC*/ 01956000 */* IS LESS THAN ITS TARGET. OTHERWISE @Z40BPJC*/ 01957000 */* SWAP OUT THE INCORE USER IN THAT DOMAIN @Z40PBJC*/ 01958000 */* WITH THE SMALLEST RECOMMENDATION @Z40BPJC*/ 01959000 */* VALUE. IF NO INCORE USER IN @Z40BPJC*/ 01960000 */* THAT DOMAIN IS SWAPPABLE, SWAP IN @Z40BPJC*/ 01961000 */* THE OUT-OF-CORE USER ANYWAY. IF A SWAP @Z40BPJC*/ 01962000 */* IS INITIATED BY STEP 2, THE REMAINING @ZA29015*/ 01963000 */* STEPS ARE SKIPPED, AND THE ANALYSIS ENDS. @ZA29015*/ 01964000 */* @Z40BPJC*/ 01965000 */* 3) FOR EACH DOMAIN, SWAP IN THE REQUIRED @Z40BPJC*/ 01966000 */* NUMBER OF USERS TO RAISE THE MPL TO ITS @Z40BPJC*/ 01967000 */* TARGET VALUE. SELECT THE USERS WITH THE @Z49BPJC*/ 01968000 */* LARGEST RECOMMENDATION VALUES. IF ANY @Z40BPJC*/ 01969000 */* SWAPS ARE INITIATED BY STEP 3, STEP 4 IS @ZA29015*/ 01970000 */* SKIPPED, AND THE ANALYSIS ENDS. @ZA29015*/ 01971000 */* @Z40BPJC*/ 01972000 */* 4) IF THE MPL FOR A DOMAIN IS EQUAL TO ITS @Z40BPJC*/ 01973000 */* TARGET, SELECT AN INCORE AND OUT OF CORE @Z40BPJC*/ 01974000 */* USER OF THE GIVEN DOMAIN TO EXCHANGE. FIND@Z40BPJC*/ 01975000 */* THE OUT OF CORE USER WITH THE LARGEST @Z40BPJC*/ 01976000 */* RECOMMENDATION VALUE AND THE INCORE USER @Z40BPJC*/ 01977000 */* WITH THE SMALLEST RECOMMENDATION VALUE. @Z40BPJC*/ 01978000 */* THE RECOMMENDATION VALUE OF THE OUT OF CORE@Z40BPJC*/ 01979000 */* USER MUST EXCEED THE RECOMMENDATION VALUE @Z40BPJC*/ 01980000 */* OF THE INCORE USER BY A THRESHOLD. IF AN @Z40BPJC*/ 01981000 */* EXCHANGE IS JUSTIFIED, A SWAPOUT OF THE @Z40BPJC*/ 01982000 */* INCORE USER IS INITIATED. THE SWAPIN OF @Z40BPJC*/ 01983000 */* THE OUT OF CORE MEMORY MAY BE INITIATED @Z40BPJC*/ 01984000 */* UPON THE NEXT INVOCATION OF THE SWAP @Z40BPJC*/ 01985000 */* ANALYSIS ALGORITHM. @Z40BPJC*/ 01986000 */* @Z40BPJC*/ 01987000 */* EXIT - BRANCH ON REGISTER 14. @Z40BPJC*/ 01988000 */* THERE IS NO ERROR EXIT OR INDICATION. @Z40BPJC*/ 01989000 */* @Z40BPJC*/ 01990000 */* @Z40BPJC*/ 01991000 */* *********************************************************@Z40BPJC*/ 01992000 * 02S0321 01993000 * /*****************************************************************/ 01994000 * /* */ 01995000 * /* IRARMCAP ROUTINE - ENTRY SEQUENCE @Z40BPJC*/ 01996000 * /* */ 01997000 * /*****************************************************************/ 01998000 * 02S0321 01999000 */* ? IRACTLEP EPN(CAP) */ 02000000 * 02S0321 02001000 * DCL 02S0321 02002000 * IRARMCAP ENTRY INT; 02S0321 02003000 * GEN CODE REFS(RRPAEPA) DEFS(IRARMCAP) NOEXIT SEQFLOW; 02S0322 02004000 * 02S0322 02005000 * /* 02006000 ENTRY IRARMCAP 02007000 IRARMCAP DS 0H 02008000 STM @00,@14,000+000(@13) SAVE INVOKING RTNE REGS 02009000 ST @01,RRPAEPA(,RRPAPTR) INDICATE NEW CURRENT RMEP 02010000 LA @12,IRARMCAP-@PSTART DISPLACEMENT TO MODULE BASE 02011000 LCR @12,@12 NEGATIVE FOR SUBTRACT 02012000 ALR @12,@15 SETUP MODULE ADDRESSABILITY 02013000 * /*****************************************************************/ 02014000 * /* */ 02015000 * /* @Z40BPJC*/ 02016000 * /* REINITIALIZE DOMAIN TABLE */ 02017000 * /* */ 02018000 * /*****************************************************************/ 02019000 * 02S0323 02020000 * RESPECIFY 02S0323 02021000 * DMDT BASED(DMDTPTR2); /* @Z40BPJC*/ 02022000 * DO DMDTPTR2=RMCTDMDT BY LENGTH(DMDT) TO RMCTDMDE;/* DO EVERY 02023000 * DOMAIN @Z40BPJC*/ 02024000 L DMDTPTR2,RMCTDMDT(,RMCTPTR) 02S0324 02025000 B @DE00324 02S0324 02026000 @DL00324 DS 0H 02S0325 02027000 * DMDTBLK1=0; /* ZERO NUMBER OF USERS GOING 02028000 * OUT, CURRENT MPL @Z40BPJC*/ 02029000 SLR @09,@09 02S0325 02030000 ST @09,DMDTBLK1(,DMDTPTR2) 02S0325 02031000 * DMDTBLK2=0; /* NUMBER OF SWAPPABLE IN USERS 02032000 * AND NUMBER OF OUT USERS 02S0326 02033000 * @Z40BPJC*/ 02034000 ST @09,DMDTBLK2(,DMDTPTR2) 02S0326 02035000 * END; /* @Z40BPJC*/ 02036000 * 02S0327 02037000 AL DMDTPTR2,@CF02274 02S0327 02038000 @DE00324 C DMDTPTR2,RMCTDMDE(,RMCTPTR) 02S0327 02039000 BNH @DL00324 02S0327 02040000 * /*****************************************************************/ 02041000 * /* */ 02042000 * /* COUNT THREE TYPES OF USERS ON IN QUEUE: @Z40BPJC*/ 02043000 * /* */ 02044000 * /*****************************************************************/ 02045000 * 02S0328 02046000 * OUCBPTR=RMCTINQE->OUCBFWD; /* SCAN QUEUE FRWRD @Z40BPJC*/ 02047000 L @09,RMCTINQE(,RMCTPTR) 02S0328 02048000 L OUCBPTR,OUCBFWD(,@09) 02S0328 02049000 * DO WHILE OUCBSCN='0'B; /* TO ITS END @Z40BPJC*/ 02050000 B @DE00329 02S0329 02051000 @DL00329 DS 0H 02S0330 02052000 * DMDTPTR2=RMCTDMDT+OUCBDMO; /* POINT TO CURRENT OUCB'S 'S 02053000 * DOMAIN ENTRY @Z40BPJC*/ 02054000 LH DMDTPTR2,OUCBDMO(,OUCBPTR) 02S0330 02055000 AL DMDTPTR2,RMCTDMDT(,RMCTPTR) 02S0330 02056000 * IF OUCBNSW='0'B& /* COUNT ONLY VALID/SWAPPABLE */ 02057000 * OUCBINV='0'B THEN /* USERS @Z40BPCJ*/ 02058000 TM OUCBNSW(OUCBPTR),B'10010000' 02S0331 02059000 BNZ @RF00331 02S0331 02060000 * DO; /* @Z40BPJC*/ 02061000 * IF(OUCBGOO='1'B|OUCBGOB='1'B) THEN 02S0333 02062000 TM OUCBGOO(OUCBPTR),B'10100000' 02S0333 02063000 BZ @RF00333 02S0333 02064000 * DMDTGOOU=DMDTGOOU+1; /* COUNT USERS GOING OUT @Z40BPJC*/ 02065000 LA @09,1 02S0334 02066000 AH @09,DMDTGOOU(,DMDTPTR2) 02S0334 02067000 STH @09,DMDTGOOU(,DMDTPTR2) 02S0334 02068000 * ELSE 02S0335 02069000 * DO; /* @Z40BPJC*/ 02070000 B @RC00333 02S0335 02071000 @RF00333 DS 0H 02S0336 02072000 * DMDTCMPL=DMDTCMPL+1; /* INCLUDE IN CURRENT MPL 02S0336 02073000 * @Z40BPJC*/ 02074000 LA @09,1 02S0336 02075000 LH @08,DMDTCMPL(,DMDTPTR2) 02S0336 02076000 ALR @08,@09 02S0336 02077000 STH @08,DMDTCMPL(,DMDTPTR2) 02S0336 02078000 * IF OUCBENQ='0'B&OUCBBIB='0'B THEN 02S0337 02079000 TM OUCBENQ(OUCBPTR),B'00100010' 02S0337 02080000 BNZ @RF00337 02S0337 02081000 * DMDTINCU=DMDTINCU+1;/* COUNT INCORE USERS @Z40BPJC*/ 02082000 AH @09,DMDTINCU(,DMDTPTR2) 02S0338 02083000 STH @09,DMDTINCU(,DMDTPTR2) 02S0338 02084000 * END; /* @Z40BPJC*/ 02085000 @RF00337 DS 0H 02S0340 02086000 * END; /* @Z40BPJC*/ 02087000 @RC00333 DS 0H 02S0341 02088000 * OUCBPTR=OUCBFWD; /* CHAIN THRU ALL OUCBS @Z40BPJC*/ 02089000 @RF00331 L OUCBPTR,OUCBFWD(,OUCBPTR) 02S0341 02090000 * END; /* @Z40BPJC*/ 02091000 * 02S0342 02092000 @DE00329 TM OUCBSCN(OUCBPTR),B'00000001' 02S0342 02093000 BZ @DL00329 02S0342 02094000 * /*****************************************************************/ 02095000 * /* */ 02096000 * /* EXAMINE OUT QUEUE FOR USERS IN EACH DOMAIN WHICH ARE OUT, */ 02097000 * /* GOING IN, OUT WITH ENQ BIT OR CANCEL BIT ON. @Z40BPJC*/ 02098000 * /* */ 02099000 * /*****************************************************************/ 02100000 * 02S0343 02101000 * RMCACPW1=0; /* INITIALIZE POINTER TO OLDEST 02102000 * ENQUEUED USER @Z40BPJC*/ 02103000 SLR @09,@09 02S0343 02104000 ST @09,RMCACPW1(,RMCTPTR) 02S0343 02105000 * OUCBPTR=RMCTOTQE->OUCBBCK; /* START WITH YOUNGEST USER 02S0344 02106000 * @Z40BPJC*/ 02107000 L @09,RMCTOTQE(,RMCTPTR) 02S0344 02108000 L OUCBPTR,OUCBBCK(,@09) 02S0344 02109000 * DO WHILE OUCBSCN='0'B; /* LOOP THROUGH OUCBS BACK TO HDR 02110000 * @Z40BPJC*/ 02111000 B @DE00345 02S0345 02112000 @DL00345 DS 0H 02S0346 02113000 * IF OUCBNSWI='0'B THEN /* EXCLUDE TERMINATING USERS 02114000 * @ZA29015*/ 02115000 TM OUCBNSWI(OUCBPTR),B'00001000' 02S0346 02116000 BNZ @RF00346 02S0346 02117000 * DO; /* FROM DOMAIN COUNTS @ZA29015*/ 02118000 * DMDTPTR2=RMCTDMDT+OUCBDMO;/* POINT TO THIS OUCB'S DOMAIN 02119000 * @Z40BPJC*/ 02120000 LH DMDTPTR2,OUCBDMO(,OUCBPTR) 02S0348 02121000 AL DMDTPTR2,RMCTDMDT(,RMCTPTR) 02S0348 02122000 * IF OUCBGOI='1'B|OUCBGOB='1'B THEN 02S0349 02123000 TM OUCBGOI(OUCBPTR),B'01100000' 02S0349 02124000 BZ @RF00349 02S0349 02125000 * DMDTCMPL=DMDTCMPL+1; /* ADD 1 TO CURRENT MPL COUNT 02126000 * @Z40BPJC*/ 02127000 LA @09,1 02S0350 02128000 AH @09,DMDTCMPL(,DMDTPTR2) 02S0350 02129000 STH @09,DMDTCMPL(,DMDTPTR2) 02S0350 02130000 * ELSE 02S0351 02131000 * DO; /* @Z4OBPJC*/ 02132000 B @RC00349 02S0351 02133000 @RF00349 DS 0H 02S0352 02134000 * IF OUCBGOO='0'B THEN 02S0352 02135000 TM OUCBGOO(OUCBPTR),B'10000000' 02S0352 02136000 BNZ @RF00352 02S0352 02137000 * DO; /* EXCLUDE GOING OUT USERS 02S0353 02138000 * @Z40BPJC*/ 02139000 * DMDTOUTU=DMDTOUTU+1;/* ADD 1 TO OUT USER COUNT 02140000 * @Z40BPJC*/ 02141000 LA @09,1 02S0354 02142000 AH @09,DMDTOUTU(,DMDTPTR2) 02S0354 02143000 STH @09,DMDTOUTU(,DMDTPTR2) 02S0354 02144000 * IF OUCBENQ='1'B|OUCBBIB='1'B THEN 02S0355 02145000 TM OUCBENQ(OUCBPTR),B'00100010' 02S0355 02146000 BZ @RF00355 02S0355 02147000 * RMCACPW1=OUCBPTR;/* OLDEST OUCB FOUND SO FAR 02148000 * @Z40BPJC*/ 02149000 ST OUCBPTR,RMCACPW1(,RMCTPTR) 02S0356 02150000 * END; /* @Z40BPJC*/ 02151000 * ELSE 02S0358 02152000 * DMDTGOOU=DMDTGOOU+1;/* COUNT USERS GOING OUT @Z40BPJC*/ 02153000 B @RC00352 02S0358 02154000 @RF00352 LA @09,1 02S0358 02155000 AH @09,DMDTGOOU(,DMDTPTR2) 02S0358 02156000 STH @09,DMDTGOOU(,DMDTPTR2) 02S0358 02157000 * END; /* @Z40BPJC*/ 02158000 @RC00352 DS 0H 02S0360 02159000 * END; /* END DOMAIN COUNTS @ZA29015*/ 02160000 @RC00349 DS 0H 02S0361 02161000 * OUCBPTR=OUCBBCK; /* GET NEXT OLDER OUCB @Z40BPJC*/ 02162000 @RF00346 L OUCBPTR,OUCBBCK(,OUCBPTR) 02S0361 02163000 * END; /* @Z40BPJC*/ 02164000 @DE00345 TM OUCBSCN(OUCBPTR),B'00000001' 02S0362 02165000 BZ @DL00345 02S0362 02166000 */* COUNTERS NOW UPDATED. RMCACPW1 HOLDS ADDRESS OF OLDEST OUCB 02S0363 02167000 * ENQUEUED ON A RESOURCE @Z40BPJC*/ 02168000 * 02S0363 02169000 * 02S0363 02170000 * /*****************************************************************/ 02171000 * /* */ 02172000 * /* UNILATERAL SWAPOUT @Z40BPJC*/ 02173000 * /* */ 02174000 * /*****************************************************************/ 02175000 * 02S0363 02176000 * OUCBPTR=0; /* PTR = 0 SHOWS NO SWAPOUTS YET 02177000 * @Z40BPJC*/ 02178000 SLR OUCBPTR,OUCBPTR 02S0363 02179000 * DO DMDTPTR2=RMCTDMDT BY LENGTH(DMDT) TO RMCTDMDE;/* DO EVERY 02180000 * DOMAIN @Z40BPJC*/ 02181000 L DMDTPTR2,RMCTDMDT(,RMCTPTR) 02S0364 02182000 B @DE00364 02S0364 02183000 @DL00364 DS 0H 02S0365 02184000 * DO WHILE DMDTCMPL>DMDTMPLT& /* IN EACH DOMAIN REDUCE MPL TO 02185000 * TARGET, @Z40BPJC*/ 02186000 * DMDTINCU^=0; /* IF THIS DOMAIN HAS USERS IN 02187000 * CORE AND SWAPPABLE. @Z40BPJC*/ 02188000 B @DE00365 02S0365 02189000 @DL00365 DS 0H 02S0366 02190000 * CALL IRARMCPO; /* PICK BEST CANDIDATE FOR 02S0366 02191000 * SWAPOUT. DMDTPTR2 HAS ADDRESS 02192000 * OF DMDT ENTRY @Z40BPJC*/ 02193000 BAL @14,IRARMCPO 02S0366 02194000 * IF OUCBPTR=0 THEN 02S0367 02195000 LTR OUCBPTR,OUCBPTR 02S0367 02196000 BZ @RT00367 02S0367 02197000 * GO TO RMCAPEND; /* CHK RETURN AND QUIT IF CPO 02198000 * DETECTED A DOMAIN CHANGE 02S0368 02199000 * @Z40BPJC*/ 02200000 * 02S0368 02201000 * /*************************************************************/ 02202000 * /* */ 02203000 * /* ? IRACTLCL EPN(CSO) */ 02204000 * /* */ 02205000 * /*************************************************************/ 02206000 * 02S0369 02207000 * DO; 02S0369 02208000 * R1=ADDR(RMEPBCSO); /* CSO REQUEST IS PARAM */ 02209000 LA R1,RMEPBCSO(,RMCTPTR) 02S0370 02210000 * CALL RMSBCRY->IRARMRTN; /* ACTION INVK FUNCT */ 02211000 L @15,RMSBCRY(,RMCTPTR) 02S0371 02212000 BALR @14,@15 02S0371 02213000 * END; /* SWAP OUT THE USER, OUCBPTR 02214000 * NON-ZERO SHOWS SWPOUT */ 02215000 * IF RTNCOD^=0 THEN 02S0373 02216000 LTR RTNCOD,RTNCOD 02S0373 02217000 BNZ @RT00373 02S0373 02218000 * GO TO RMCAPEND; /* QUIT ALGORITHM TO AVOID 02S0374 02219000 * LOOPING @Z40BPJC*/ 02220000 * OUCBSRC=SRCDUSSC; /* SET SWAP REASON CODE @Z40BPJC*/ 02221000 MVI OUCBSRC(OUCBPTR),X'0A' 02S0375 02222000 * DMDTCMPL=DMDTCMPL-1; /* MPL=MPL-1 @Z40BPJC*/ 02223000 LH @09,DMDTCMPL(,DMDTPTR2) 02S0376 02224000 BCTR @09,0 02S0376 02225000 STH @09,DMDTCMPL(,DMDTPTR2) 02S0376 02226000 * DMDTINCU=DMDTINCU-1; /* IN USER CNT=CNT - 1 @Z40BPJC*/ 02227000 LH @09,DMDTINCU(,DMDTPTR2) 02S0377 02228000 BCTR @09,0 02S0377 02229000 STH @09,DMDTINCU(,DMDTPTR2) 02S0377 02230000 * DMDTGOOU=DMDTGOOU+1; /* USER GOING OUT CNT=CNT+1 02S0378 02231000 * @Z40BPJC*/ 02232000 LA @09,1 02S0378 02233000 AH @09,DMDTGOOU(,DMDTPTR2) 02S0378 02234000 STH @09,DMDTGOOU(,DMDTPTR2) 02S0378 02235000 * END; /* @Z40BPJC*/ 02236000 @DE00365 LH @09,DMDTCMPL(,DMDTPTR2) 02S0379 02237000 CH @09,DMDTMPLT(,DMDTPTR2) 02S0379 02238000 BNH @DC00365 02S0379 02239000 LH @09,DMDTINCU(,DMDTPTR2) 02S0379 02240000 LTR @09,@09 02S0379 02241000 BNZ @DL00365 02S0379 02242000 @DC00365 DS 0H 02S0380 02243000 * END; /* END OF DO LOOP @Z40BPJC*/ 02244000 AL DMDTPTR2,@CF02274 02S0380 02245000 @DE00364 C DMDTPTR2,RMCTDMDE(,RMCTPTR) 02S0380 02246000 BNH @DL00364 02S0380 02247000 * IF OUCBPTR^=0 THEN 02S0381 02248000 SLR @09,@09 02S0381 02249000 CR OUCBPTR,@09 02S0381 02250000 BNE @RT00381 02S0381 02251000 * GO TO RMCAPEND; /* IF ANY SWAPS, END ALGORITHM 02252000 * @Z40BPJC*/ 02253000 * 02S0383 02254000 * /*****************************************************************/ 02255000 * /* */ 02256000 * /* EXPRESS SWAP IN FOR USER ENQUEUED ON RESOURCE OR BEING */ 02257000 * /* CANCELLED @Z40BPJC*/ 02258000 * /* */ 02259000 * /*****************************************************************/ 02260000 * 02S0383 02261000 * IF RMCACPW1^=0 THEN 02S0383 02262000 L @08,RMCACPW1(,RMCTPTR) 02S0383 02263000 CR @08,@09 02S0383 02264000 BE @RF00383 02S0383 02265000 * DO; /* LOOK IN FLD FOR ADDR OF 02S0384 02266000 * @Z40BPJC*/ 02267000 * OUCBPTR=RMCACPW1; /* OUCB OF PREVIOUSLY-SELECTED 02268000 * USR @Z40BPJC*/ 02269000 LR OUCBPTR,@08 02S0385 02270000 * DMDTPTR2=RMCTDMDT+OUCBDMO; /* POINT TO USER'S DOMAIN 02S0386 02271000 * @Z40BPJC*/ 02272000 LH DMDTPTR2,OUCBDMO(,OUCBPTR) 02S0386 02273000 AL DMDTPTR2,RMCTDMDT(,RMCTPTR) 02S0386 02274000 * IF DMDTCMPL^IRARMRTN;/* ACTION INVK FUNCT */ 02303000 L @15,RMSBCRY(,RMCTPTR) 02S0394 02304000 BALR @14,@15 02S0394 02305000 * END; /* MAKE ROOM FOR ENQUEUED USR 02306000 * @Z40BPJC*/ 02307000 * IF RTNCOD=0 THEN 02S0396 02308000 LTR RTNCOD,RTNCOD 02S0396 02309000 BNZ @RF00396 02S0396 02310000 * DO; 02S0397 02311000 * OUCBSRC=SRCDNQSC;/* SET REASON COD AND @Z40BPJC*/ 02312000 MVI OUCBSRC(OUCBPTR),X'08' 02S0398 02313000 * DMDTCMPL=DMDTCMPL-1;/* MPL=MPL-1 @Z40BPJC*/ 02314000 LH @09,DMDTCMPL(,DMDTPTR2) 02S0399 02315000 BCTR @09,0 02S0399 02316000 STH @09,DMDTCMPL(,DMDTPTR2) 02S0399 02317000 * DMDTINCU=DMDTINCU-1;/* IN USER CNT=CNT - 1 02S0400 02318000 * @Z40BPJC*/ 02319000 LH @09,DMDTINCU(,DMDTPTR2) 02S0400 02320000 BCTR @09,0 02S0400 02321000 STH @09,DMDTINCU(,DMDTPTR2) 02S0400 02322000 * DMDTGOOU=DMDTGOOU+1;/* USER GOING OUT CNT=CNT+1 02323000 * @Z40BPJC*/ 02324000 LA @09,1 02S0401 02325000 AH @09,DMDTGOOU(,DMDTPTR2) 02S0401 02326000 STH @09,DMDTGOOU(,DMDTPTR2) 02S0401 02327000 * GO TO RMCAPEND; /* QUIT ALGORITHM @Z40BPJC*/ 02328000 B RMCAPEND 02S0402 02329000 * END; /* @Z40BPJC*/ 02330000 * END; /* @Z40BPJC*/ 02331000 @RF00396 DS 0H 02S0405 02332000 * OUCBPTR=RMCACPW1; /* RESTORE OUCB OF PREVIOUSLY 02333000 * SELECTED ENQUEUED USER 02S0405 02334000 * @Z40BPJC*/ 02335000 @RF00390 L OUCBPTR,RMCACPW1(,RMCTPTR) 02S0405 02336000 * END; /* @Z40BPJC*/ 02337000 * 02S0406 02338000 * /*************************************************************/ 02339000 * /* */ 02340000 * /* ? IRACTLCL EPN(CSI) */ 02341000 * /* */ 02342000 * /*************************************************************/ 02343000 * 02S0407 02344000 * DO; 02S0407 02345000 @RF00387 DS 0H 02S0408 02346000 * R1=ADDR(RMEPBCSI); /* CSI REQUEST IS PARAM */ 02347000 LA R1,RMEPBCSI(,RMCTPTR) 02S0408 02348000 * CALL RMSBCRY->IRARMRTN; /* ACTION INVK FUNCT */ 02349000 L @15,RMSBCRY(,RMCTPTR) 02S0409 02350000 BALR @14,@15 02S0409 02351000 * END; /* SWAP IN ENQUEUED USER @Z40BPJC*/ 02352000 * IF RTNCOD=0 THEN 02S0411 02353000 LTR RTNCOD,RTNCOD 02S0411 02354000 BNZ @RF00411 02S0411 02355000 * DO; /* @Z40BPJC*/ 02356000 * DMDTCMPL=DMDTCMPL+1; /* MPL=MPL+1 @Z40BPJC*/ 02357000 LA @09,1 02S0413 02358000 AH @09,DMDTCMPL(,DMDTPTR2) 02S0413 02359000 STH @09,DMDTCMPL(,DMDTPTR2) 02S0413 02360000 * DMDTOUTU=DMDTOUTU-1; /* OUT USER CNT=CNT - 1 @Z40BPJC*/ 02361000 LH @09,DMDTOUTU(,DMDTPTR2) 02S0414 02362000 BCTR @09,0 02S0414 02363000 STH @09,DMDTOUTU(,DMDTPTR2) 02S0414 02364000 * END; /* @Z40BPJC*/ 02365000 * GO TO RMCAPEND; /* END ALGORITHM @Z40BPJC*/ 02366000 B RMCAPEND 02S0416 02367000 * END; /* @Z40BPJC*/ 02368000 * 02S0418 02369000 * /*****************************************************************/ 02370000 * /* */ 02371000 * /* UNILATERAL SWAP IN @Z40BPJC*/ 02372000 * /* */ 02373000 * /*****************************************************************/ 02374000 * 02S0418 02375000 * OUCBPTR=0; /* SET SWAPIN SWITCH TO ZERO 02376000 * @Z40BPJC*/ 02377000 @RF00383 SLR OUCBPTR,OUCBPTR 02S0418 02378000 * DO DMDTPTR2=RMCTDMDT BY LENGTH(DMDT) TO RMCTDMDE;/* DO EVERY 02379000 * DOMAIN @Z40BPJC*/ 02380000 L DMDTPTR2,RMCTDMDT(,RMCTPTR) 02S0419 02381000 B @DE00419 02S0419 02382000 @DL00419 DS 0H 02S0420 02383000 * DO WHILE(DMDTCMPL+DMDTGOOUIRARMRTN; /* ACTION INVK FUNCT */ 02409000 L @15,RMSBCRY(,RMCTPTR) 02S0426 02410000 BALR @14,@15 02S0426 02411000 * END; /* SWAP IN SELECTED USER @Z40BPJC*/ 02412000 * IF RTNCOD^=0 THEN 02S0428 02413000 LTR RTNCOD,RTNCOD 02S0428 02414000 BNZ @RT00428 02S0428 02415000 * GO TO RMCAPEND; /* QUIT @Z40BPJC*/ 02416000 * DMDTCMPL=DMDTCMPL+1; /* MPL=MPL+1 @Z40BPJC*/ 02417000 LA @09,1 02S0430 02418000 AH @09,DMDTCMPL(,DMDTPTR2) 02S0430 02419000 STH @09,DMDTCMPL(,DMDTPTR2) 02S0430 02420000 * DMDTOUTU=DMDTOUTU-1; /* OUT USER CNT=CNT - 1 @Z40BPJC*/ 02421000 LH @09,DMDTOUTU(,DMDTPTR2) 02S0431 02422000 BCTR @09,0 02S0431 02423000 STH @09,DMDTOUTU(,DMDTPTR2) 02S0431 02424000 * END; /* @Z40BPJC*/ 02425000 @DE00420 LH @09,DMDTCMPL(,DMDTPTR2) 02S0432 02426000 AH @09,DMDTGOOU(,DMDTPTR2) 02S0432 02427000 CH @09,DMDTMPLT(,DMDTPTR2) 02S0432 02428000 BNL @DC00420 02S0432 02429000 LH @09,DMDTOUTU(,DMDTPTR2) 02S0432 02430000 LTR @09,@09 02S0432 02431000 BNZ @DL00420 02S0432 02432000 @DC00420 DS 0H 02S0433 02433000 * END; /* @Z40BPJC*/ 02434000 AL DMDTPTR2,@CF02274 02S0433 02435000 @DE00419 C DMDTPTR2,RMCTDMDE(,RMCTPTR) 02S0433 02436000 BNH @DL00419 02S0433 02437000 * IF OUCBPTR^=0 THEN 02S0434 02438000 LTR OUCBPTR,OUCBPTR 02S0434 02439000 BNZ @RT00434 02S0434 02440000 * GO TO RMCAPEND; /* IF ANY SWAPS, END ALGORITHM 02441000 * @Z40BPJC*/ 02442000 * 02S0436 02443000 * /*****************************************************************/ 02444000 * /* */ 02445000 * /* EXCHANGE SWAP INITIATION @Z40BPJC*/ 02446000 * /* */ 02447000 * /*****************************************************************/ 02448000 * 02S0436 02449000 * DO DMDTPTR2=RMCTDMDT BY LENGTH(DMDT) TO RMCTDMDE;/* DO ALL 02S0436 02450000 * DOMAINS UNTIL SWAP EXCHANGE 02451000 * INITIATED @Z40BPJC*/ 02452000 L DMDTPTR2,RMCTDMDT(,RMCTPTR) 02S0436 02453000 B @DE00436 02S0436 02454000 @DL00436 DS 0H 02S0437 02455000 * IF(DMDTCMPL=DMDTMPLT& /* MPL ON TARGET AND @Z40BPJC*/ 02456000 * DMDTOUTU^=0& /* AT LEAST ONE OUT USER @Z40BPJC*/ 02457000 * DMDTINCU^=0) /* AND AT LEAST ONE IN USER 02S0437 02458000 * @Z40BPJC*/ 02459000 * THEN 02S0437 02460000 CLC DMDTCMPL(2,DMDTPTR2),DMDTMPLT(DMDTPTR2) 02S0437 02461000 BNE @RF00437 02S0437 02462000 SLR @09,@09 02S0437 02463000 CH @09,DMDTOUTU(,DMDTPTR2) 02S0437 02464000 BE @RF00437 02S0437 02465000 CH @09,DMDTINCU(,DMDTPTR2) 02S0437 02466000 BE @RF00437 02S0437 02467000 * DO; /* PASS DOMAIN ENTRY IN DMDTPTR2 02468000 * @Z40BPJC*/ 02469000 * CALL IRARMCPI; /* SELECT BEST CAND FOR SWAP IN 02470000 * @Z40BPJC*/ 02471000 BAL @14,IRARMCPI 02S0439 02472000 * IF OUCBPTR=0 THEN 02S0440 02473000 LTR OUCBPTR,OUCBPTR 02S0440 02474000 BZ @RT00440 02S0440 02475000 * GO TO RMCAPEND; /* TERMINATE ALGORITHM @Z40BPJC*/ 02476000 * ELSE 02S0442 02477000 * DO; /* @Z40PBJC*/ 02478000 * RMCACPW1=OUCBPTR; /* SAVE ADDR OUCB PICKED FOR 02479000 * SWAPIN. PASS DOMAIN ENTRY IN 02480000 * DMDTPTR2 @Z40BPJC*/ 02481000 ST OUCBPTR,RMCACPW1(,RMCTPTR) 02S0443 02482000 * CALL IRARMCPO; /* SELECT SWAP OUT CANDIDATE 02483000 * @Z40BPJC*/ 02484000 BAL @14,IRARMCPO 02S0444 02485000 * IF OUCBPTR=0 THEN 02S0445 02486000 LTR OUCBPTR,OUCBPTR 02S0445 02487000 BZ @RT00445 02S0445 02488000 * GO TO RMCAPEND; /* TERMINATE ALGORITHM @Z40BPJC*/ 02489000 * ELSE 02S0447 02490000 * IF(RMCACPW1->OUCBCMRV-OUCBCMRV>RMPTXCHT) THEN 02S0447 02491000 L @09,RMCACPW1(,RMCTPTR) 02S0447 02492000 L @09,OUCBCMRV(,@09) 02S0447 02493000 SL @09,OUCBCMRV(,OUCBPTR) 02S0447 02494000 C @09,RMPTXCHT(,RMCTPTR) 02S0447 02495000 BNH @RF00447 02S0447 02496000 * DO; /* RV DIFFERENCE EXCEEDS THRESH 02497000 * @Z40BPJC*/ 02498000 * 02S0448 02499000 * /*************************************************/ 02500000 * /* */ 02501000 * /* ? IRACTLCL EPN(CSO) */ 02502000 * /* */ 02503000 * /*************************************************/ 02504000 * 02S0449 02505000 * DO; 02S0449 02506000 * R1=ADDR(RMEPBCSO);/* CSO REQUEST IS PARAM */ 02507000 LA R1,RMEPBCSO(,RMCTPTR) 02S0450 02508000 * CALL RMSBCRY->IRARMRTN;/* ACTION INVK FUNCT */ 02509000 L @15,RMSBCRY(,RMCTPTR) 02S0451 02510000 BALR @14,@15 02S0451 02511000 * END; /* SWAP OUT @Z40BPJC*/ 02512000 * IF RTNCOD=0 THEN 02S0453 02513000 LTR RTNCOD,RTNCOD 02S0453 02514000 BNZ @RF00453 02S0453 02515000 * DO; 02S0454 02516000 * OUCBSRC=SRCDEXSC;/* SET SWAP REASON CODE 02517000 * @Z40BPJC*/ 02518000 MVI OUCBSRC(OUCBPTR),X'09' 02S0455 02519000 * DMDTCMPL=DMDTCMPL-1;/* MPL=MPL-1 @Z40BPJC*/ 02520000 LH @09,DMDTCMPL(,DMDTPTR2) 02S0456 02521000 BCTR @09,0 02S0456 02522000 STH @09,DMDTCMPL(,DMDTPTR2) 02S0456 02523000 * DMDTINCU=DMDTINCU-1;/* IN USER CNT=CNT - 1 02524000 * @Z40BPJC*/ 02525000 LH @09,DMDTINCU(,DMDTPTR2) 02S0457 02526000 BCTR @09,0 02S0457 02527000 STH @09,DMDTINCU(,DMDTPTR2) 02S0457 02528000 * DMDTGOOU=DMDTGOOU+1;/* USER GOING OUT 02S0458 02529000 * CNT=CNT+1 @Z40BPJC*/ 02530000 LA @09,1 02S0458 02531000 AH @09,DMDTGOOU(,DMDTPTR2) 02S0458 02532000 STH @09,DMDTGOOU(,DMDTPTR2) 02S0458 02533000 * END; /* @Z40BPJC*/ 02534000 * GO TO RMCAPEND; /* INDICATE ALGORITHM END 02S0460 02535000 * @Z40BPJC*/ 02536000 B RMCAPEND 02S0460 02537000 * END; /* @Z40BPJC*/ 02538000 * END; /* @Z40BPJC*/ 02539000 @RF00447 DS 0H 02S0463 02540000 * END; /* @Z40BPJC*/ 02541000 * END; /* @Z40BPJC*/ 02542000 * 02S0464 02543000 @RF00437 AL DMDTPTR2,@CF02274 02S0464 02544000 @DE00436 C DMDTPTR2,RMCTDMDE(,RMCTPTR) 02S0464 02545000 BNH @DL00436 02S0464 02546000 * /*****************************************************************/ 02547000 * /* */ 02548000 * /* RETURN - ALGORITHM END */ 02549000 * /* */ 02550000 * /*****************************************************************/ 02551000 * 02S0465 02552000 *RMCAPEND: 02S0465 02553000 * 02S0465 02554000 * /*****************************************************************/ 02555000 * /* */ 02556000 * /* ? IRACTLEP ENN(CAP) */ 02557000 * /* */ 02558000 * /*****************************************************************/ 02559000 * 02S0465 02560000 * GEN CODE EXIT NOSEQFLOW; 02S0465 02561000 * 02S0465 02562000 RMCAPEND DS 0H 02S0465 02563000 * /* 02564000 LM @00,@14,000+000(@13) RELOAD INVOKING RTNE REGS 02565000 BR RTNREG RETURN TO INVOKER 02566000 * /*****************************************************************/ 02567000 * /* */ 02568000 * /* @Z40BPJC*/ 02569000 * /* */ 02570000 * /*****************************************************************/ 02571000 * 02S0466 02572000 * 02S0466 02573000 */***********************************************************@Z40BPJC*/ 02574000 */* @Z40BPJC*/ 02575000 */* ROUTINE NAME - IRARMCPI @Z40BPJC*/ 02576000 */* @Z40BPJC*/ 02577000 */* DESCRIPTIVE NAME - SYSTEM RESOURCES MANAGER (SRM) @Z40BPJC*/ 02578000 */* PICK SWAP-IN CANDIDATE SUBROUTINE @Z40BPJC*/ 02579000 */* @Z40BPJC*/ 02580000 */* FUNCTION - THE IRARMCPI ROUTINE SCANS THE OUT QUEUE FOR@Z40BPJC*/ 02581000 */* THE USER, BELONGING TO A SPECIFIED DOMAIN, @Z40BPJC*/ 02582000 */* WITH THE HIGHEST RECOMMENDATION VALUE. @Z40BPJC*/ 02583000 */* SUBROUTINE IRARMCVL IS CALLED TO COMPUTE A @Z40BPJC*/ 02584000 */* CURRENT SWAP RECOMMENDATION VALUE FOR EACH @Z40BPJC*/ 02585000 */* USER EVALUATED. @Z40BPJC*/ 02586000 */* @Z40BPJC*/ 02587000 */* INPUT - REGISTER DMDTPTR2 CONTAINS THE ADDRESS OF THE @Z40BPJC*/ 02588000 */* DOMAIN TABLE ENTRY CORRESPONDING TO THE @Z40BPJC*/ 02589000 */* SPECIFIED DOMAIN. @Z40BPJC*/ 02590000 */* @Z40BPJC*/ 02591000 */* OUTPUT - REGISTER 4(OUCBPTR) WILL CONTAIN THE ADDRESS @Z40BPJC*/ 02592000 */* OF THE OUCB HAVING THE HIGHEST RECOMMENDATION @Z40PBJC*/ 02593000 */* VALUE IN THE SPECIFIED DOMAIN. @Z40BPJC*/ 02594000 */* @Z40BPJC*/ 02595000 */* EXIT NORMAL - BRANCH ON REGISTER 14. @Z40BPJC*/ 02596000 */* REGISTER 4 IS NON-ZERO. @Z40BPJC*/ 02597000 */* @Z40BPJC*/ 02598000 */* EXIT ERROR - REGISTER 4 IS 0. @Z40BPJC*/ 02599000 */* A DOMAIN CHANGE OCCURRED. @Z40BPJC*/ 02600000 */* @Z40BPJC*/ 02601000 */* @Z40BPJC*/ 02602000 */***********************************************************@Z40BPJC*/ 02603000 * 02S0466 02604000 *IRARMCPI: 02S0466 02605000 * PROCEDURE OPTIONS(NOSAVE,NOSAVEAREA,NOENTREG,RETREG,NOPARMREG);/* 02606000 * @Z40BPJC*/ 02607000 * 02S0466 02608000 IRARMCPI DS 0H 02S0467 02609000 * /*****************************************************************/ 02610000 * /* */ 02611000 * /* INITIAL PTR AND SWITCH SETTING @Z40BPJC*/ 02612000 * /* */ 02613000 * /*****************************************************************/ 02614000 * 02S0467 02615000 * WKRE=RTNREG; /* SAVE RETURN REGISTER @Z40BPJC*/ 02616000 LR WKRE,RTNREG 02S0467 02617000 * RESPECIFY 02S0468 02618000 * CPICKPTR RSTD; /* @Z40BPJC*/ 02619000 * CPICKPTR=0; /* INITIALIZE PTR TO SHOW OUCB 02620000 * NOT YET FOUND @Z40BPJC*/ 02621000 SLR CPICKPTR,CPICKPTR 02S0469 02622000 * DMDTPTR2=DMDTPTR2-RMCTDMDT; /* CONVERT ADDR TO OFFSET 02S0470 02623000 * @Z40BPJC*/ 02624000 SL DMDTPTR2,RMCTDMDT(,RMCTPTR) 02S0470 02625000 * RMCTCPS1='0'B; /* DOMAIN CHANGE SWITCH OFF 02S0471 02626000 * @Z40BPJC*/ 02627000 * 02S0471 02628000 NI RMCTCPS1(RMCTPTR),B'10111111' 02S0471 02629000 * /*****************************************************************/ 02630000 * /* */ 02631000 * /* FIND OUCBS ON OUT QUEUE IN THIS DOMAIN @Z40BPJC*/ 02632000 * /* */ 02633000 * /*****************************************************************/ 02634000 * 02S0472 02635000 * OUCBPTR=RMCTOTQE->OUCBFWD; /* SCAN OUT QUEUE FORWARD 02S0472 02636000 * @Z40BPJC*/ 02637000 L @09,RMCTOTQE(,RMCTPTR) 02S0472 02638000 L OUCBPTR,OUCBFWD(,@09) 02S0472 02639000 * DO WHILE OUCBSCN='0'B; /* ALL THE WAY TO END @Z40BPJC*/ 02640000 B @DE00473 02S0473 02641000 @DL00473 DS 0H 02S0474 02642000 * IF OUCBNSWI='0'B& /* EXCLUDE TERMINATING USERS 02643000 * @ZA29015*/ 02644000 * DMDTPTR2=OUCBDMO& /* IF OUCB IN THIS DOMAIN, */ 02645000 * OUCBGOI='0'B& /* NOT GOING IN */ 02646000 * OUCBGOO='0'B& /* OR OUT */ 02647000 * OUCBGOB='0'B /* AND NOT TRANSITIONING */ 02648000 * THEN 02S0474 02649000 TM OUCBNSWI(OUCBPTR),B'00001000' 02S0474 02650000 BNZ @RF00474 02S0474 02651000 CH DMDTPTR2,OUCBDMO(,OUCBPTR) 02S0474 02652000 BNE @RF00474 02S0474 02653000 TM OUCBGOI(OUCBPTR),B'11100000' 02S0474 02654000 BNZ @RF00474 02S0474 02655000 * DO; /* @Z40BPJC*/ 02656000 * IF(RRPATOD-OUCBTMA)>RMPTSAET|/* IF WMR TOO OLD */ 02657000 * OUCBRMA='1'B THEN /* OR RTB = 1 (NEED I/O OR CPU 02658000 * RV) @Z40BPJC*/ 02659000 L @09,RRPATOD(,RRPAPTR) 02S0476 02660000 SL @09,OUCBTMA(,OUCBPTR) 02S0476 02661000 CL @09,RMPTSAET(,RMCTPTR) 02S0476 02662000 BH @RT00476 02S0476 02663000 TM OUCBRMA(OUCBPTR),B'00100000' 02S0476 02664000 BNO @RF00476 02S0476 02665000 @RT00476 DS 0H 02S0477 02666000 * CALL IRARMCVL; /* CALL CVL TO CMPUT NEW CMPS RV 02667000 * @Z40BPJC*/ 02668000 BAL @14,IRARMCVL 02S0477 02669000 * ELSE 02S0478 02670000 * OUCBCMRV=OUCBWMR; /* OR USE OLD WMR AS COMPOSITE 02671000 * SINCE RTB = 0 @Z40BPJC*/ 02672000 B @RC00476 02S0478 02673000 @RF00476 L @09,OUCBWMR(,OUCBPTR) 02S0478 02674000 ST @09,OUCBCMRV(,OUCBPTR) 02S0478 02675000 * IF RMCTCPS1='0'B THEN 02S0479 02676000 @RC00476 TM RMCTCPS1(RMCTPTR),B'01000000' 02S0479 02677000 BNZ @RF00479 02S0479 02678000 * DO; /* NO PREVIOUS DOMAIN CHANGE 02679000 * @Z40BPJC*/ 02680000 * IF DMDTPTR2^=OUCBDMO THEN 02S0481 02681000 CH DMDTPTR2,OUCBDMO(,OUCBPTR) 02S0481 02682000 BE @RF00481 02S0481 02683000 * DO; /* IF THIS OUCB'S DOMAIN CHANGED, 02684000 * @Z40BPJC*/ 02685000 * RMCTCPS1='1'B; /* SIGNAL TO QUIT SRCH FOR HI RV 02686000 * @Z40BPJC*/ 02687000 OI RMCTCPS1(RMCTPTR),B'01000000' 02S0483 02688000 * CPICKPTR=0; /* SET RETURN CODE TO SHOW NO 02689000 * OUCB @Z40BPJC*/ 02690000 * 02S0484 02691000 SLR CPICKPTR,CPICKPTR 02S0484 02692000 * /***************************************************/ 02693000 * /* */ 02694000 * /* ? IRACTLCL EPN(CAP) */ 02695000 * /* */ 02696000 * /***************************************************/ 02697000 * 02S0485 02698000 * DO; 02S0485 02699000 * R1=ADDR(RMEPBCAP);/* CAP REQUEST IS PARAM */ 02700000 LA R1,RMEPBCAP(,RMCTPTR) 02S0486 02701000 * CALL RMSBCRL->IRARMRTN;/* ALGRTHM SCH FUNCT */ 02702000 L @15,RMSBCRL(,RMCTPTR) 02S0487 02703000 BALR @14,@15 02S0487 02704000 * END; /* ENSURE CAP REDRIVE SOON */ 02705000 * END; /* @Z40BPJC*/ 02706000 * ELSE 02S0490 02707000 * DO; /* NO DOMAIN CHG FOUND BY CVL 02708000 * @Z40BPJC*/ 02709000 B @RC00481 02S0490 02710000 @RF00481 DS 0H 02S0491 02711000 * IF CPICKPTR=0|(OUCBCMRV>CPICKPTR->OUCBCMRV) THEN 02712000 LTR CPICKPTR,CPICKPTR 02S0491 02713000 BZ @RT00491 02S0491 02714000 L @09,OUCBCMRV(,OUCBPTR) 02S0491 02715000 C @09,OUCBCMRV(,CPICKPTR) 02S0491 02716000 BNH @RF00491 02S0491 02717000 @RT00491 DS 0H 02S0492 02718000 * CPICKPTR=OUCBPTR;/* USE HIGHR RV OF TWO. IF 02S0492 02719000 * EQUAL, USE OLDER OUCB @Z40BPJC*/ 02720000 LR CPICKPTR,OUCBPTR 02S0492 02721000 * END; /* @Z40BPJC*/ 02722000 @RF00491 DS 0H 02S0494 02723000 * END; /* @Z40BPJC*/ 02724000 @RC00481 DS 0H 02S0495 02725000 * END; /* @Z40BPJC*/ 02726000 @RF00479 DS 0H 02S0496 02727000 * OUCBPTR=OUCBFWD; /* CONTINUE FORWARD SCAN @Z40BPJC*/ 02728000 @RF00474 L OUCBPTR,OUCBFWD(,OUCBPTR) 02S0496 02729000 * END; /* @Z40BPJC*/ 02730000 @DE00473 TM OUCBSCN(OUCBPTR),B'00000001' 02S0497 02731000 BZ @DL00473 02S0497 02732000 * OUCBPTR=CPICKPTR; /* PASS BACK SELECTED OUCB 02S0498 02733000 * @Z40BPJC*/ 02734000 LR OUCBPTR,CPICKPTR 02S0498 02735000 * DMDTPTR2=DMDTPTR2+RMCTDMDT; /* CONVERT BACK TO ADDR. @Z40BPJC*/ 02736000 AL DMDTPTR2,RMCTDMDT(,RMCTPTR) 02S0499 02737000 * RTNREG=WKRE; /* RESTORE RETURN REGISTER 02S0500 02738000 * @Z40BPJC*/ 02739000 LR RTNREG,WKRE 02S0500 02740000 * RESPECIFY 02S0501 02741000 * CPICKPTR UNRSTD; /* @Z40BPJC*/ 02742000 * END IRARMCPI; /* @Z40BPJC*/ 02743000 @EL00005 DS 0H 02S0502 02744000 @EF00005 DS 0H 02S0502 02745000 @ER00005 BR @14 02S0502 02746000 * 02S0503 02747000 */***********************************************************@Z40BPJC*/ 02748000 */* @Z40BPJC*/ 02749000 */* ROUTINE NAME - IRARMCPO @Z40BPJC*/ 02750000 */* @Z40BPJC*/ 02751000 */* DESCRIPTIVE NAME - SYSTEM RESOURCES MANAGER (SRM) @Z40BPJC*/ 02752000 */* PICK SWAP-OUT CANDIDATE SUBROUTINE @Z40BPJC*/ 02753000 */* @Z40BPJC*/ 02754000 */* FUNCTION - THE IRARMCPO ROUTINE SCANS THE IN QUEUE FOR @Z40BPJC*/ 02755000 */* THE USER, BELONGING TO A SPECIFIED DOMAIN, @Z40BPJC*/ 02756000 */* WITH THE LOWEST RECOMMENDATION VALUE. @Z40BPJC*/ 02757000 */* SUBROUTINE IRARMCVL IS CALLED TO COMPUTE @Z40BPJC*/ 02758000 */* A CURRENT SWAP RECOMMENDATION VALUE FOR @Z40BPJC*/ 02759000 */* EACH USER EVALUATED. @Z40BPJC*/ 02760000 */* @Z40BPJC*/ 02761000 */* INPUT - REGISTER DMDTPTR2 CONTAINS THE ADDRESS OF THE @Z40BPJC*/ 02762000 */* DOMAIN TABLE ENTRY CORRESPONDING TO THE @Z40BPJC*/ 02763000 */* SPECIFIED DOMAIN. @Z40BPJC*/ 02764000 */* @Z40BPJC*/ 02765000 */* OUTPUT - REGISTER 4(OUCBPTR) WILL CONTAIN THE ADDRESS @Z40BPJC*/ 02766000 */* OF THE OUCB HAVING THE LOWEST RECOMMENDATION @Z40BPJC*/ 02767000 */* VALUE IN THE SPECIFIED DOMAIN. @Z40BPJC*/ 02768000 */* @Z40BPJC*/ 02769000 */* EXIT NORMAL - BRANCH ON REGISTER 14. @Z40BPJC*/ 02770000 */* REGISTER 4 IS NON-ZERO. @Z40BPJC*/ 02771000 */* @Z40BPJC*/ 02772000 */* EXIT ERROR - REGISTER 4 IS 0. @Z40BPJC*/ 02773000 */* A DOMAIN CHANGE OCCURRED. @Z40BPJC*/ 02774000 */* @Z40BPJC*/ 02775000 */* @Z40BPJC*/ 02776000 */***********************************************************@Z40BPJC*/ 02777000 * 02S0503 02778000 *IRARMCPO: 02S0503 02779000 * PROCEDURE OPTIONS(NOSAVE,NOSAVEAREA,NOENTREG,RETREG,NOPARMREG);/* 02780000 * @Z40BPJC*/ 02781000 * 02S0503 02782000 IRARMCPO DS 0H 02S0504 02783000 * /*****************************************************************/ 02784000 * /* */ 02785000 * /* INITIAL PTR AND SWITCH SETTING @Z40BPJC*/ 02786000 * /* */ 02787000 * /*****************************************************************/ 02788000 * 02S0504 02789000 * WKRE=RTNREG; /* SAVE RETURN REGISTER @Z40BPJC*/ 02790000 LR WKRE,RTNREG 02S0504 02791000 * RESPECIFY 02S0505 02792000 * CPICKPTR RSTD; /* @Z40BPJC*/ 02793000 * CPICKPTR=0; /* INITIALIZE POINTER TO SELECTED 02794000 * OUCB @Z40BPJC*/ 02795000 SLR CPICKPTR,CPICKPTR 02S0506 02796000 * DMDTPTR2=DMDTPTR2-RMCTDMDT; /* CONVERT TO OFFSET @Z40BPJC*/ 02797000 SL DMDTPTR2,RMCTDMDT(,RMCTPTR) 02S0507 02798000 * RMCTCPS1='0'B; /* SET DOMAIN CHANGE SWITCH OFF 02799000 * @Z40BPJC*/ 02800000 * 02S0508 02801000 NI RMCTCPS1(RMCTPTR),B'10111111' 02S0508 02802000 * /*****************************************************************/ 02803000 * /* */ 02804000 * /* FIND OUCBS ON IN QUEUE IN THIS DOMAIN @Z40BPJC*/ 02805000 * /* */ 02806000 * /*****************************************************************/ 02807000 * 02S0509 02808000 * OUCBPTR=RMCTINQE->OUCBFWD; /* SCAN QUEUE FORWARD @Z40BPJC*/ 02809000 L @09,RMCTINQE(,RMCTPTR) 02S0509 02810000 L OUCBPTR,OUCBFWD(,@09) 02S0509 02811000 * DO WHILE OUCBSCN='0'B; /* ALL THE WAY TO THE END 02S0510 02812000 * @Z40BPJC*/ 02813000 B @DE00510 02S0510 02814000 @DL00510 DS 0H 02S0511 02815000 * IF DMDTPTR2=OUCBDMO& /* IF OUCB IN THIS DOMAIN, */ 02816000 * OUCBNSW='0'B& /* USER SWAPPABLE, */ 02817000 * OUCBBIB='0'B& /* NOT BEING CANCELLED */ 02818000 * OUCBENQ='0'B& /* NOT ENQUEUED AND */ 02819000 * OUCBINV='0'B& /* VALID AND */ 02820000 * OUCBGOO='0'B& /* NOT ON WAY OUT */ 02821000 * OUCBGOB='0'B /* OR TRANSITIONING */ 02822000 * THEN 02S0511 02823000 CH DMDTPTR2,OUCBDMO(,OUCBPTR) 02S0511 02824000 BNE @RF00511 02S0511 02825000 TM OUCBNSW(OUCBPTR),B'10110010' 02S0511 02826000 BNZ @RF00511 02S0511 02827000 TM OUCBGOO(OUCBPTR),B'10100000' 02S0511 02828000 BNZ @RF00511 02S0511 02829000 * DO; /* @Z40BPJC*/ 02830000 * IF(RRPATOD-OUCBTMA)>RMPTSAET|/* AND ENUF TIME */ 02831000 * OUCBRMA='1'B THEN /* AND RTB = 1, @Z40BPJC*/ 02832000 L @09,RRPATOD(,RRPAPTR) 02S0513 02833000 SL @09,OUCBTMA(,OUCBPTR) 02S0513 02834000 CL @09,RMPTSAET(,RMCTPTR) 02S0513 02835000 BH @RT00513 02S0513 02836000 TM OUCBRMA(OUCBPTR),B'00100000' 02S0513 02837000 BNO @RF00513 02S0513 02838000 @RT00513 DS 0H 02S0514 02839000 * CALL IRARMCVL; /* CALL CVL TO COMPUTE COMPOSITE 02840000 * @Z40BPJC*/ 02841000 BAL @14,IRARMCVL 02S0514 02842000 * ELSE 02S0515 02843000 * OUCBCMRV=OUCBWMR; /* OR USE OLD WMR AS COMPOSITE 02844000 * SINCE RTB = 0 @Z40BPJC*/ 02845000 B @RC00513 02S0515 02846000 @RF00513 L @09,OUCBWMR(,OUCBPTR) 02S0515 02847000 ST @09,OUCBCMRV(,OUCBPTR) 02S0515 02848000 * IF RMCTCPS1='0'B THEN 02S0516 02849000 @RC00513 TM RMCTCPS1(RMCTPTR),B'01000000' 02S0516 02850000 BNZ @RF00516 02S0516 02851000 * DO; /* NO PREVIOUS DOMAIN CHANGE 02852000 * @Z40BPJC*/ 02853000 * IF DMDTPTR2^=OUCBDMO THEN 02S0518 02854000 CH DMDTPTR2,OUCBDMO(,OUCBPTR) 02S0518 02855000 BE @RF00518 02S0518 02856000 * DO; /* IF THIS OUCB'S DOMAIN CHANGED, 02857000 * @Z40BPJC*/ 02858000 * RMCTCPS1='1'B; /* SIGNAL TO QUIT SRCH FOR LOW RV 02859000 * @Z40BPJC*/ 02860000 OI RMCTCPS1(RMCTPTR),B'01000000' 02S0520 02861000 * CPICKPTR=0; /* SET RETURN CODE TO SHOW NO 02862000 * OUCB @Z40BPJC*/ 02863000 * 02S0521 02864000 SLR CPICKPTR,CPICKPTR 02S0521 02865000 * /***************************************************/ 02866000 * /* */ 02867000 * /* ? IRACTLCL EPN(CAP) */ 02868000 * /* */ 02869000 * /***************************************************/ 02870000 * 02S0522 02871000 * DO; 02S0522 02872000 * R1=ADDR(RMEPBCAP);/* CAP REQUEST IS PARAM */ 02873000 LA R1,RMEPBCAP(,RMCTPTR) 02S0523 02874000 * CALL RMSBCRL->IRARMRTN;/* ALGRTHM SCH FUNCT */ 02875000 L @15,RMSBCRL(,RMCTPTR) 02S0524 02876000 BALR @14,@15 02S0524 02877000 * END; /* ENSURE CAP REDRIVE SOON 02S0525 02878000 * @Z40BPJC*/ 02879000 * END; /* @Z40BPJC*/ 02880000 * ELSE 02S0527 02881000 * DO; /* NO DOMAIN CHG FOUND BY CVL 02882000 * @Z40BPJC*/ 02883000 B @RC00518 02S0527 02884000 @RF00518 DS 0H 02S0528 02885000 * IF(CPICKPTR=0|OUCBCMRVOUCBCMRV) THEN 02886000 LTR CPICKPTR,CPICKPTR 02S0528 02887000 BZ @RT00528 02S0528 02888000 L @09,OUCBCMRV(,OUCBPTR) 02S0528 02889000 C @09,OUCBCMRV(,CPICKPTR) 02S0528 02890000 BNL @RF00528 02S0528 02891000 @RT00528 DS 0H 02S0529 02892000 * CPICKPTR=OUCBPTR;/* USE LOWER RV OF TWO. IF 02S0529 02893000 * EQUAL, USE OLDER OUCB @Z40BPJC*/ 02894000 LR CPICKPTR,OUCBPTR 02S0529 02895000 * END; /* @Z40BPJC*/ 02896000 @RF00528 DS 0H 02S0531 02897000 * END; /* @Z40BPJC*/ 02898000 @RC00518 DS 0H 02S0532 02899000 * END; /* @Z40BPJC*/ 02900000 @RF00516 DS 0H 02S0533 02901000 * OUCBPTR=OUCBFWD; /* CONTINUE FORWARD SCAN @Z40BPJC*/ 02902000 @RF00511 L OUCBPTR,OUCBFWD(,OUCBPTR) 02S0533 02903000 * END; /* @Z40BPJC*/ 02904000 @DE00510 TM OUCBSCN(OUCBPTR),B'00000001' 02S0534 02905000 BZ @DL00510 02S0534 02906000 * OUCBPTR=CPICKPTR; /* PASS BACK SELECTED OUCB 02S0535 02907000 * @Z40BPJC*/ 02908000 LR OUCBPTR,CPICKPTR 02S0535 02909000 * DMDTPTR2=DMDTPTR2+RMCTDMDT; /* CONVERT BACK TO ADDR. @Z40BPJC*/ 02910000 AL DMDTPTR2,RMCTDMDT(,RMCTPTR) 02S0536 02911000 * RTNREG=WKRE; /* RESTORE RETURN REGISTER 02S0537 02912000 * @Z40BPJC*/ 02913000 LR RTNREG,WKRE 02S0537 02914000 * RESPECIFY 02S0538 02915000 * CPICKPTR UNRSTD; /* @Z40BPJC*/ 02916000 * END IRARMCPO; /* @Z40BPJC*/ 02917000 @EL00006 DS 0H 02S0539 02918000 @EF00006 DS 0H 02S0539 02919000 @ER00006 BR @14 02S0539 02920000 * 02S0540 02921000 */* *********************************************************@Z40BPJC*/ 02922000 */* @Z40BPJC*/ 02923000 */* ROUTINE NAME - IRARMCVL @Z40BPJC*/ 02924000 */* @Z40BPJC*/ 02925000 */* DESCRIPTIVE NAME - SYSTEM RESOURCES MANAGER (SRM) @Z40BPJC*/ 02926000 */* USER SWAP EVALUATION ROUTINE @Z40BPJC*/ 02927000 */* @Z40BPJC*/ 02928000 */* FUNCTION - THE IRARMCVL ROUTINE COMPUTES A NUMERICAL @Z40BPJC*/ 02929000 */* VALUE REPRESENTING THE RECOMMENDATION OF A @Z40BPJC*/ 02930000 */* A USER TO BE SWAPPED INTO OR TO REMAIN @Z40BPJC*/ 02931000 */* IN CORE. THE RECOMMENDATION VALUE IS THE @Z40BPJC*/ 02932000 */* COMPOSITE SUM OF THE USER'S NORMALIZED @Z40BPJC*/ 02933000 */* WORKLOAD LEVEL AND THE RECOMMENDATIONS @Z40BPJC*/ 02934000 */* OF THE I/O AND CPU RESOURCE MANAGERS. @Z40BPJC*/ 02935000 */* @Z40BPJC*/ 02936000 */* INPUT - REG 4 CONTAINS THE ADDRESS OF THE OUCB OF THE @Z40BPJC*/ 02937000 */* USER TO BE EVALUATED. @Z40BPJC*/ 02938000 */* - REG 14 CONTAINS THE RETURN ADDRESS. @Z40BPJC*/ 02939000 */* - RMCTALU CONTAINS FLAGS REPRESENTING IMBALANCED @Z40BPJC*/ 02940000 */* RESOURCES. @Z40BPJC*/ 02941000 */* @Z40BPJC*/ 02942000 */* OUTPUT - THE COMPOSITE RECOMMENDATION VALUE IS STORED @Z40BPJC*/ 02943000 */* IN -OUCBCMRV-. @Z40BPJC*/ 02944000 */* @Z40BPJC*/ 02945000 */* EXIT - BRANCH ON REGISTER 14. @Z40BPJC*/ 02946000 */* THERE IS NO ERROR EXIT OR INDICATION. @Z40BPJC*/ 02947000 */* @Z40BPJC*/ 02948000 */* @Z40BPJC*/ 02949000 */* *********************************************************@Z40BPJC*/ 02950000 * 02S0540 02951000 *IRARMCVL: 02S0540 02952000 * PROCEDURE OPTIONS(NOSAVE,NOSAVEAREA,NOENTREG,RETREG,NOPARMREG);/* 02953000 * @Z40BPJC*/ 02954000 IRARMCVL DS 0H 02S0541 02955000 * RESPECIFY 02S0541 02956000 * CVRE RSTD; /* @Z40BPJC*/ 02957000 * PMRO=RTNREG; /* SAVE ACROSS CALL TO CL3/IL3 02958000 * @Z40BPJC*/ 02959000 LR PMRO,RTNREG 02S0542 02960000 * IF(RRPATOD-OUCBTMA>RMPTSAET) THEN 02S0543 02961000 * 02S0543 02962000 L @09,RRPATOD(,RRPAPTR) 02S0543 02963000 SL @09,OUCBTMA(,OUCBPTR) 02S0543 02964000 CL @09,RMPTSAET(,RMCTPTR) 02S0543 02965000 BNH @RF00543 02S0543 02966000 * /***************************************************************/ 02967000 * /* */ 02968000 * /* ? IRACTLCL EPN(WM3) */ 02969000 * /* */ 02970000 * /***************************************************************/ 02971000 * 02S0544 02972000 * CALL EPSTWM3->IRARMRTN; /* INVOKE WM3 ACTION */ 02973000 * 02S0544 02974000 L @15,EPSTWM3(,RMCTPTR) 02S0544 02975000 BALR @14,@15 02S0544 02976000 * /*****************************************************************/ 02977000 * /* */ 02978000 * /* @Z40BPJC*/ 02979000 * /* */ 02980000 * /*****************************************************************/ 02981000 * 02S0545 02982000 * CVRE=OUCBWMR; /* ACCUM. COMPOSITE EQUALS 02S0545 02983000 * NORMALIZED LEVEL @Z40BPJC*/ 02984000 @RF00543 L CVRE,OUCBWMR(,OUCBPTR) 02S0545 02985000 * IF(OUCBRMA='1'B) THEN 02S0546 02986000 TM OUCBRMA(OUCBPTR),B'00100000' 02S0546 02987000 BNO @RF00546 02S0546 02988000 * DO; /* BE SURE RTB = 1 FOR USER 02S0547 02989000 * @Z40BPJC*/ 02990000 * IF(CCTCPUOT='1'B) /* IS CPU OUT-OF-BAL AND IS THIS */ 02991000 * &(OUCBCPL='1'B) THEN 02S0548 02992000 TM CCTCPUOT(RMCTPTR),B'01000000' 02S0548 02993000 BNO @RF00548 02S0548 02994000 TM OUCBCPL(OUCBPTR),B'00010000' 02S0548 02995000 BNO @RF00548 02S0548 02996000 * DO; /* A SIGNIFICNT USR @Z40BPJC*/ 02997000 * IF(RRPATOD-OUCBTCP)>RMPTCPET THEN/* ENUF TIME PASSED */ 02998000 * 02S0550 02999000 L @09,RRPATOD(,RRPAPTR) 02S0550 03000000 SL @09,OUCBTCP(,OUCBPTR) 02S0550 03001000 CL @09,RMPTCPET(,RMCTPTR) 02S0550 03002000 BNH @RF00550 02S0550 03003000 * /*******************************************************/ 03004000 * /* */ 03005000 * /* ? IRACTLCL EPN(CL3) */ 03006000 * /* */ 03007000 * /*******************************************************/ 03008000 * 02S0551 03009000 * CALL EPSTCL3->IRARMRTN;/* INVOKE CL3 ACTION */ 03010000 * 02S0551 03011000 L @15,EPSTCL3(,RMCTPTR) 02S0551 03012000 BALR @14,@15 02S0551 03013000 * /*********************************************************/ 03014000 * /* */ 03015000 * /* INVOKE CL3 RTN @Z40BPJC*/ 03016000 * /* */ 03017000 * /*********************************************************/ 03018000 * 02S0552 03019000 * CVRE=CVRE+OUCBCRV*RMPTCPU;/* ADD CPU RV @Z40BPJC*/ 03020000 @RF00550 L @09,RMPTCPU(,RMCTPTR) 02S0552 03021000 MH @09,OUCBCRV(,OUCBPTR) 02S0552 03022000 ALR CVRE,@09 02S0552 03023000 * END; /* @Z40BPJC*/ 03024000 * ELSE /* CPU IN BAL OR NOT A SIG USER 03025000 * @ZA26908*/ 03026000 * OUCBCRV=ZERO; /* THEN REC VALUE = ZERO @ZA26908*/ 03027000 B @RC00548 02S0554 03028000 @RF00548 SLR @09,@09 02S0554 03029000 STH @09,OUCBCRV(,OUCBPTR) 02S0554 03030000 * IF ICTIOOT='1'B THEN 02S0555 03031000 @RC00548 TM ICTIOOT(RMCTPTR),B'00100000' 02S0555 03032000 BNO @RF00555 02S0555 03033000 * DO; /* I/O OUT-OF-BAL @Z40BPJC*/ 03034000 * IF(RRPATOD-OUCBTIO)>RMPTIOET THEN 02S0557 03035000 * 02S0557 03036000 L @09,RRPATOD(,RRPAPTR) 02S0557 03037000 SL @09,OUCBTIO(,OUCBPTR) 02S0557 03038000 CL @09,RMPTIOET(,RMCTPTR) 02S0557 03039000 BNH @RF00557 02S0557 03040000 * /*******************************************************/ 03041000 * /* */ 03042000 * /* ? IRACTLCL EPN(IL3) */ 03043000 * /* */ 03044000 * /*******************************************************/ 03045000 * 02S0558 03046000 * CALL EPSTIL3->IRARMRTN;/* INVOKE IL3 ACTION */ 03047000 * 02S0558 03048000 L @15,EPSTIL3(,RMCTPTR) 02S0558 03049000 BALR @14,@15 02S0558 03050000 * /*********************************************************/ 03051000 * /* */ 03052000 * /* IF ENOUGH TIME SINCE LAST CALCULATION, INVOKE IL3 RTN */ 03053000 * /* @Z40BPJC*/ 03054000 * /* */ 03055000 * /*********************************************************/ 03056000 * 02S0559 03057000 * CVRE=CVRE+OUCBIRV*RMPTIOC;/* ADD I/O RV @Z40BPJC*/ 03058000 @RF00557 L @09,RMPTIOC(,RMCTPTR) 02S0559 03059000 MH @09,OUCBIRV(,OUCBPTR) 02S0559 03060000 ALR CVRE,@09 02S0559 03061000 * END; /* @Z40BPJC*/ 03062000 * ELSE /* I/O IN BAL @ZA26908*/ 03063000 * OUCBIRV=ZERO; /* THEN REC VALUE = ZERO @ZA26908*/ 03064000 B @RC00555 02S0561 03065000 @RF00555 SLR @09,@09 02S0561 03066000 STH @09,OUCBIRV(,OUCBPTR) 02S0561 03067000 * END; /* @Z40BPJC*/ 03068000 @RC00555 DS 0H 02S0563 03069000 * RTNREG=PMRO; /* @Z40BPJC*/ 03070000 @RF00546 LR RTNREG,PMRO 02S0563 03071000 * OUCBCMRV=CVRE; /* SAVE ACCUM COMPOS R.V. 02S0564 03072000 * @Z40BPJC*/ 03073000 ST CVRE,OUCBCMRV(,OUCBPTR) 02S0564 03074000 * RESPECIFY 02S0565 03075000 * CVRE UNRSTD; /* @Z40BPJC*/ 03076000 * END IRARMCVL; 02S0566 03077000 @EL00007 DS 0H 02S0566 03078000 @EF00007 DS 0H 02S0566 03079000 @ER00007 BR @14 02S0566 03080000 * END IRARMCTL 01S0567 03081000 * 01S0567 03082000 */* THE FOLLOWING INCLUDE STATEMENTS WERE FOUND IN THIS PROGRAM. */ 03083000 */*%INCLUDE SYSUT5 (IRACTLDT) */ 03084000 */*%INCLUDE SYSLIB (IRACNSMP) */ 03085000 */*%INCLUDE SYSLIB (IRARMCT ) */ 03086000 */*%INCLUDE SYSLIB (IRACCT ) */ 03087000 */*%INCLUDE SYSLIB (IRAICT ) */ 03088000 */*%INCLUDE SYSLIB (IRAMCT ) */ 03089000 */*%INCLUDE SYSLIB (IRARCT ) */ 03090000 */*%INCLUDE SYSLIB (IRARMPT ) */ 03091000 */*%INCLUDE SYSLIB (IRARMCA ) */ 03092000 */*%INCLUDE SYSLIB (IRARMEX ) */ 03093000 */*%INCLUDE SYSLIB (IRARMSB ) */ 03094000 */*%INCLUDE SYSLIB (IRAEPAT ) */ 03095000 */*%INCLUDE SYSLIB (IRAEPDT ) */ 03096000 */*%INCLUDE SYSLIB (IRAEPST ) */ 03097000 */*%INCLUDE SYSLIB (IRARRPA ) */ 03098000 */*%INCLUDE SYSLIB (IHAASCB ) */ 03099000 */*%INCLUDE SYSLIB (IRAOUCB ) */ 03100000 */*%INCLUDE SYSLIB (IHAOUXB ) */ 03101000 */*%INCLUDE SYSLIB (IRARMEP ) */ 03102000 */*%INCLUDE SYSLIB (IRADMDT ) */ 03103000 */*%INCLUDE SYSLIB (IHAWSAVT) */ 03104000 */*%INCLUDE SYSLIB (IHAPSA ) */ 03105000 */*%INCLUDE SYSLIB (IHALCCA ) */ 03106000 */*%INCLUDE SYSLIB (CVT ) */ 03107000 */*%INCLUDE SYSLIB (IHAPVT ) */ 03108000 */*%INCLUDE SYSLIB (IHASRB ) */ 03109000 */*%INCLUDE SYSLIB (IRAREGS ) */ 03110000 */*%INCLUDE SYSLIB (IRASRCD ) */ 03111000 */*%INCLUDE SYSUT5 (IRARMCEN) */ 03112000 */*%INCLUDE SYSUT5 (IRARMCEL) */ 03113000 */*%INCLUDE SYSUT5 (IRARMCET) */ 03114000 */*%INCLUDE SYSUT5 (IRARMCED) */ 03115000 */*%INCLUDE SYSUT5 (IRARMCQT) */ 03116000 */*%INCLUDE SYSUT5 (IRARMCRD) */ 03117000 */*%INCLUDE SYSUT5 (IRARMCRL) */ 03118000 */*%INCLUDE SYSUT5 (IRARMCRN) */ 03119000 */*%INCLUDE SYSUT5 (IRARMCRT) */ 03120000 */*%INCLUDE SYSUT5 (IRARMCRY) */ 03121000 */*%INCLUDE SYSUT5 (IRARMCSI) */ 03122000 */*%INCLUDE SYSUT5 (IRARMCSO) */ 03123000 */*%INCLUDE SYSUT5 (IRARMRPS) */ 03124000 */*%INCLUDE SYSUT5 (IRARMWMY) */ 03125000 */*%INCLUDE SYSUT5 (IRARMCAP) */ 03126000 */*%INCLUDE SYSUT5 (IRARMCPI) */ 03127000 */*%INCLUDE SYSUT5 (IRARMCPO) */ 03128000 */*%INCLUDE SYSUT5 (IRARMCVL) */ 03129000 * 01S0567 03130000 * ; 01S0567 03131000 @DATA DS 0H 03132000 @DATD DSECT 03133000 DS 0F 03134000 IRARMCTL CSECT 03135000 DS 0F 03136000 @CF02274 DC F'20' 03137000 @CF02292 DC BL4'00000000000000000010000000000000' 03138000 @DATD DSECT 03139000 DS 0D 03140000 ORG *+1-(*-@DATD)/(*-@DATD) INSURE DSECT DATA 03141000 @ENDDATD EQU * 03142000 IRARMCTL CSECT 03143000 DS 0F 03144000 @SIZDATD DC AL1(0) 03145000 DC AL3(@ENDDATD-@DATD) 03146000 DS 0D 03147000 @CC02242 DC C'OUCB' 03148000 @CC02246 DC C'OUXB' 03149000 FLAGDEF DC X'FFFFFFF0' 03150000 ACTNDEF DC X'FFF00000' 03151000 @00 EQU 00 EQUATES FOR REGISTERS 0-15 03152000 @01 EQU 01 03153000 @02 EQU 02 03154000 @03 EQU 03 03155000 @04 EQU 04 03156000 @05 EQU 05 03157000 @06 EQU 06 03158000 @07 EQU 07 03159000 @08 EQU 08 03160000 @09 EQU 09 03161000 @10 EQU 10 03162000 @11 EQU 11 03163000 @12 EQU 12 03164000 @13 EQU 13 03165000 @14 EQU 14 03166000 @15 EQU 15 03167000 RMCTPTR EQU @02 03168000 RRPAPTR EQU @03 03169000 ASCBPTR EQU @05 03170000 OUCBPTR EQU @04 03171000 OUXBPTR EQU @06 03172000 RMEPPTR EQU @01 03173000 DMDTPTR EQU @06 03174000 SRBPTR EQU @01 03175000 R0 EQU @00 03176000 R1 EQU @01 03177000 SVEREG EQU @13 03178000 RTNREG EQU @14 03179000 NTRREG EQU @15 03180000 RTNCOD EQU @15 03181000 PMRE EQU @06 03182000 PMRO EQU @07 03183000 SVRE EQU @06 03184000 SVRO EQU @07 03185000 TMRE EQU @10 03186000 WKRE EQU @10 03187000 WKRO EQU @11 03188000 CVRE EQU @06 03189000 CPICKPTR EQU @05 03190000 DMDTPTR2 EQU @11 03191000 VLRE EQU @10 03192000 VLRO EQU @11 03193000 ENTRY IRARMCET 03194000 ENTRY IRARMCED 03195000 PSA EQU 0 03196000 FLCRNPSW EQU PSA 03197000 FLCROPSW EQU PSA+8 03198000 FLCICCW2 EQU PSA+16 03199000 FLCCVT EQU FLCICCW2 03200000 PSAEEPSW EQU PSA+132 03201000 PSAESPSW EQU PSA+136 03202000 FLCSVILC EQU PSAESPSW+1 03203000 PSAEPPSW EQU PSA+140 03204000 FLCPIILC EQU PSAEPPSW+1 03205000 FLCPICOD EQU PSAEPPSW+2 03206000 PSAPICOD EQU FLCPICOD+1 03207000 FLCTEA EQU PSAEPPSW+4 03208000 FLCPER EQU PSA+152 03209000 FLCMCLA EQU PSA+168 03210000 FLCIOEL EQU FLCMCLA+4 03211000 FLCIOA EQU FLCMCLA+16 03212000 FLCFSA EQU FLCMCLA+80 03213000 PSALCCAV EQU PSA+528 03214000 PSASUPER EQU PSA+552 03215000 PSASUP1 EQU PSASUPER 03216000 PSASUP2 EQU PSASUPER+1 03217000 PSASUP3 EQU PSASUPER+2 03218000 PSASUP4 EQU PSASUPER+3 03219000 PSACLHT EQU PSA+640 03220000 PSALKSA EQU PSA+696 03221000 PSAHLHI EQU PSA+760 03222000 PSADSSFL EQU PSA+836 03223000 PSADSSF1 EQU PSADSSFL 03224000 PSADSSF3 EQU PSADSSFL+2 03225000 PSADSSF4 EQU PSADSSFL+3 03226000 PSARSVT EQU PSA+896 03227000 RMCT EQU 0 03228000 RMCTRMSA EQU RMCT+32 03229000 RMCTEPDT EQU RMCT+52 03230000 RMCTEPAT EQU RMCT+56 03231000 RMCTTMQE EQU RMCT+92 03232000 RMCTAQCT EQU RMCT+96 03233000 RMCTAQHD EQU RMCT+100 03234000 RMCTWTQE EQU RMCT+104 03235000 RMCTOTQE EQU RMCT+108 03236000 RMCTINQE EQU RMCT+112 03237000 RMCTTBS EQU RMCT+120 03238000 RMCTTOD EQU RMCT+124 03239000 RMCTALA EQU RMCT+136 03240000 RMCTALR EQU RMCT+140 03241000 RMCTFLGS EQU RMCT+148 03242000 RMCTCPS1 EQU RMCTFLGS 03243000 RMCTOUCB EQU RMCT+168 03244000 RMCTOUXB EQU RMCT+172 03245000 RMCTSRBT EQU RMCT+176 03246000 RMCTDMDT EQU RMCT+180 03247000 RMCTDMDE EQU RMCT+184 03248000 CCT EQU RMCT+192 03249000 CCTFLG1 EQU CCT+124 03250000 CCTCPUOT EQU CCTFLG1 03251000 ICT EQU RMCT+320 03252000 ICTFLAGS EQU ICT+84 03253000 ICTIOOT EQU ICTFLAGS 03254000 MCT EQU RMCT+408 03255000 MCTSFLGS EQU MCT+64 03256000 MCTOFLGS EQU MCT+65 03257000 RCT EQU RMCT+504 03258000 RMPT EQU RMCT+592 03259000 RMPTCPU EQU RMPT+4 03260000 RMPTIOC EQU RMPT+8 03261000 RMPTTOM EQU RMPT+24 03262000 RMPTTOL EQU RMPT+28 03263000 RMPTXCHT EQU RMPT+40 03264000 RMPTSAET EQU RMPT+44 03265000 RMPTCPET EQU RMPT+52 03266000 RMPTIOET EQU RMPT+56 03267000 RMCA EQU RMCT+664 03268000 RMCATOI EQU RMCA+20 03269000 RMCAFLGS EQU RMCA+36 03270000 RMCACHP EQU RMCA+48 03271000 RMCACHU EQU RMCA+52 03272000 RMCAINV EQU RMCA+64 03273000 RMCACIUS EQU RMCA+118 03274000 RMCACPW1 EQU RMCA+120 03275000 RMCASRC EQU RMCA+124 03276000 RMEX EQU RMCT+832 03277000 RMEPBEVT EQU RMEX 03278000 RMEPBCTL EQU RMEX+16 03279000 RMEXCTL EQU RMEPBCTL 03280000 RMEXI01 EQU RMEX+32 03281000 RMEXI48 EQU RMEX+44 03282000 RMSB EQU RMCT+896 03283000 RMSBI02 EQU RMSB 03284000 RMSBI04 EQU RMSB+8 03285000 RMSBI05 EQU RMSB+12 03286000 RMSBI06 EQU RMSB+16 03287000 RMSBI07 EQU RMSB+20 03288000 RMSBCRL EQU RMSB+36 03289000 RMSBCRY EQU RMSB+44 03290000 EPAT EQU RMCT+1016 03291000 RMEPBCAP EQU EPAT 03292000 RMEPBPR1 EQU EPAT+368 03293000 EPDT EQU RMCT+1416 03294000 EPST EQU RMCT+1512 03295000 RMEPBWM3 EQU EPST 03296000 EPSTWM3 EQU RMEPBWM3 03297000 RMEPBIL3 EQU EPST+16 03298000 EPSTIL3 EQU RMEPBIL3 03299000 RMEPBCL3 EQU EPST+32 03300000 EPSTCL3 EQU RMEPBCL3 03301000 RMEPBCSO EQU EPST+48 03302000 RMEPBCSI EQU EPST+64 03303000 RRPA EQU 0 03304000 RRPAINC EQU RRPA 03305000 RRPAVPGN EQU RRPAINC+2 03306000 RRPAFLG0 EQU RRPAVPGN 03307000 RRPACOD EQU RRPAINC+3 03308000 RRPAINP EQU RRPA+4 03309000 RRPAFLG EQU RRPA+8 03310000 RRPASVC EQU RRPAFLG 03311000 RRPAOPT EQU RRPAFLG 03312000 RRPACTL EQU RRPAFLG+1 03313000 RRPARFI EQU RRPAFLG+1 03314000 RRPATOD EQU RRPA+12 03315000 RRPAINS EQU RRPA+16 03316000 RRPARTN EQU RRPAINS 03317000 RRPAEPA EQU RRPA+20 03318000 ASCB EQU 0 03319000 ASCBSUPC EQU ASCB+16 03320000 ASCBDP EQU ASCB+43 03321000 ASCBRSM EQU ASCB+52 03322000 ASCBRSMF EQU ASCBRSM 03323000 ASCBECB EQU ASCB+84 03324000 ASCBFW1 EQU ASCB+100 03325000 ASCBRCTF EQU ASCBFW1+2 03326000 ASCBFLG1 EQU ASCBFW1+3 03327000 ASCBDSP1 EQU ASCB+114 03328000 ASCBFLG2 EQU ASCB+115 03329000 ASCBLKGP EQU ASCB+128 03330000 ASCBOUXB EQU ASCB+148 03331000 ASCBSRQ EQU ASCB+180 03332000 ASCBSRQ1 EQU ASCBSRQ 03333000 ASCBSRQ2 EQU ASCBSRQ+1 03334000 ASCBSRQ3 EQU ASCBSRQ+2 03335000 ASCBSRQ4 EQU ASCBSRQ+3 03336000 OUCB EQU 0 03337000 OUCBNAME EQU OUCB 03338000 OUCBFWD EQU OUCB+4 03339000 OUCBBCK EQU OUCB+8 03340000 OUCBTMA EQU OUCB+12 03341000 OUCBQFL EQU OUCB+16 03342000 OUCBGOO EQU OUCBQFL 03343000 OUCBGOI EQU OUCBQFL 03344000 OUCBGOB EQU OUCBQFL 03345000 OUCBOFF EQU OUCBQFL 03346000 OUCBOUT EQU OUCBQFL 03347000 OUCBSFL EQU OUCB+17 03348000 OUCBNSW EQU OUCBSFL 03349000 OUCBBIB EQU OUCBSFL 03350000 OUCBINV EQU OUCBSFL 03351000 OUCBNSWI EQU OUCBSFL 03352000 OUCBENQ EQU OUCBSFL 03353000 OUCBSCN EQU OUCBSFL 03354000 OUCBYFL EQU OUCB+18 03355000 OUCBPSTR EQU OUCBYFL 03356000 OUCBAXS EQU OUCBYFL 03357000 OUCBFXS EQU OUCBYFL 03358000 OUCBAFL EQU OUCB+19 03359000 OUCBAPG EQU OUCBAFL 03360000 OUCBRMA EQU OUCBAFL 03361000 OUCBCPL EQU OUCBAFL 03362000 OUCBTFL EQU OUCB+20 03363000 OUCBEFL EQU OUCB+21 03364000 OUCBUFL EQU OUCB+23 03365000 OUCBJSFS EQU OUCBUFL 03366000 OUCBJSAS EQU OUCBUFL 03367000 OUCBNDP EQU OUCB+26 03368000 OUCBDMO EQU OUCB+34 03369000 OUCBSRC EQU OUCB+37 03370000 OUCBASCB EQU OUCB+40 03371000 OUCBACT EQU OUCB+80 03372000 OUCBCSW EQU OUCB+84 03373000 OUCBACN EQU OUCBCSW 03374000 OUCBCFL EQU OUCBCSW+2 03375000 OUCBRDY EQU OUCBCFL 03376000 OUCBCMRV EQU OUCB+88 03377000 OUCBWMR EQU OUCB+92 03378000 OUCBIRV EQU OUCB+96 03379000 OUCBCRV EQU OUCB+98 03380000 OUCBPSS EQU OUCB+112 03381000 OUCBTCP EQU OUCB+124 03382000 OUCBTIO EQU OUCB+128 03383000 OUXB EQU 0 03384000 OUXBNAME EQU OUXB 03385000 RMEP EQU 0 03386000 RMEPEPB EQU RMEP 03387000 RMEPEPA EQU RMEPEPB 03388000 RMEPFLG EQU RMEPEPB+8 03389000 RMEPRCR EQU RMEPFLG+3 03390000 RMEPTMD EQU RMEPFLG+3 03391000 RMEPACN EQU RMEPFLG+3 03392000 RMEPPRV EQU RMEPEPB+12 03393000 RMEPSCH EQU RMEP+16 03394000 RMEPFWD EQU RMEPSCH 03395000 RMEPBCK EQU RMEPSCH+4 03396000 RMEPTME EQU RMEPSCH+8 03397000 RMEPINT EQU RMEPSCH+12 03398000 DMDT EQU 0 03399000 DMDTMPLT EQU DMDT+4 03400000 DMDTGOOU EQU DMDT+8 03401000 DMDTCMPL EQU DMDT+10 03402000 DMDTOUTU EQU DMDT+12 03403000 DMDTINCU EQU DMDT+14 03404000 WSAC EQU 0 03405000 WSACOPTM EQU WSAC+8 03406000 LCCA EQU 0 03407000 LCCAIHRC EQU LCCA+520 03408000 LCCAIHR1 EQU LCCAIHRC 03409000 LCCAIHR2 EQU LCCAIHRC+1 03410000 LCCAIHR3 EQU LCCAIHRC+2 03411000 LCCAIHR4 EQU LCCAIHRC+3 03412000 LCCASPIN EQU LCCA+524 03413000 LCCASPN1 EQU LCCASPIN 03414000 LCCASPN2 EQU LCCASPIN+1 03415000 LCCASPN3 EQU LCCASPIN+2 03416000 LCCASPN4 EQU LCCASPIN+3 03417000 LCCACPUS EQU LCCA+536 03418000 LCCADSF1 EQU LCCA+540 03419000 LCCADSF2 EQU LCCA+541 03420000 LCCASPSA EQU LCCA+544 03421000 LCCACRFL EQU LCCA+692 03422000 LCCACREX EQU LCCA+693 03423000 LCCALKFG EQU LCCA+694 03424000 LCCASRBF EQU LCCA+720 03425000 CVTMAP EQU 0 03426000 CVTDAR EQU CVTMAP+72 03427000 CVTFLGS1 EQU CVTDAR 03428000 CVTDCB EQU CVTMAP+116 03429000 CVTIOQET EQU CVTMAP+120 03430000 CVTIERLC EQU CVTMAP+144 03431000 CVTHEAD EQU CVTMAP+160 03432000 CVTSV76C EQU CVTHEAD 03433000 CVTOPTA EQU CVTMAP+182 03434000 CVTOPTB EQU CVTMAP+183 03435000 CVTGTF EQU CVTMAP+236 03436000 CVTGTFST EQU CVTGTF 03437000 CVTGTFS EQU CVTGTFST 03438000 CVTSTATE EQU CVTGTFST 03439000 CVTTMODE EQU CVTGTFST 03440000 CVTFORM EQU CVTGTFST 03441000 CVTAQAVT EQU CVTMAP+240 03442000 CVTTCMFG EQU CVTAQAVT 03443000 CVTVOLM2 EQU CVTMAP+244 03444000 CVTTATA EQU CVTVOLM2 03445000 CVTTSKS EQU CVTTATA 03446000 CVTVOLF2 EQU CVTTSKS 03447000 CVTTAT EQU CVTTATA+1 03448000 CVTATER EQU CVTMAP+248 03449000 CVTEXT1 EQU CVTMAP+252 03450000 CVTPURG EQU CVTMAP+260 03451000 CVTQMSG EQU CVTMAP+268 03452000 CVTDMSR EQU CVTMAP+272 03453000 CVTRSV37 EQU CVTDMSR 03454000 CVTDMSRF EQU CVTRSV37 03455000 CVTERPV EQU CVTMAP+316 03456000 CVTINTLA EQU CVTMAP+320 03457000 CVTAPF EQU CVTMAP+324 03458000 CVTEXT2 EQU CVTMAP+328 03459000 CVTHJES EQU CVTMAP+332 03460000 CVTPGSIA EQU CVTMAP+348 03461000 CVTA1F1 EQU CVTMAP+356 03462000 CVTSYSK EQU CVTMAP+357 03463000 CVTVOLM1 EQU CVTMAP+380 03464000 CVTVOLF1 EQU CVTVOLM1 03465000 CVTATMCT EQU CVTMAP+388 03466000 CVTXTNT1 EQU 0 03467000 CVTXTNT2 EQU 0 03468000 CVTDSSV EQU CVTXTNT2 03469000 CVTFLGBT EQU CVTXTNT2+5 03470000 CVTQID EQU CVTXTNT2+24 03471000 CVTRV400 EQU CVTXTNT2+52 03472000 CVTRV409 EQU CVTXTNT2+53 03473000 CVTATCVT EQU CVTXTNT2+64 03474000 CVTRV429 EQU CVTXTNT2+84 03475000 CVTRV438 EQU CVTXTNT2+85 03476000 CVTRV457 EQU CVTXTNT2+112 03477000 CVTRV466 EQU CVTXTNT2+113 03478000 CVTFIX EQU 0 03479000 CVTRELNO EQU CVTFIX+252 03480000 PVT EQU 0 03481000 PVTFLAG1 EQU PVT 03482000 PVTFLAG2 EQU PVT+1 03483000 PVTQS EQU PVT+304 03484000 PVTWSAX EQU PVT+344 03485000 SRBSECT EQU 0 03486000 SRB EQU SRBSECT 03487000 SRBFLNK EQU SRB+4 03488000 SRBFLC EQU SRB+12 03489000 SRBPARM EQU SRB+28 03490000 IRARMNTR EQU 0 03491000 IRARMRTN EQU 0 03492000 CRNRTRN EQU 120 03493000 INMASK EQU 0 03494000 IRARMPTR EQU 0 03495000 PSARSVTE EQU PSARSVT 03496000 LCCAPTR EQU PSALCCAV 03497000 CVTPTR EQU FLCCVT 03498000 CVTS01 EQU CVTPGSIA 03499000 CVTPVTP EQU CVTS01+8 03500000 CVTLPDIA EQU CVTS01+12 03501000 CVTDIRST EQU CVTLPDIA 03502000 CVTSLIDA EQU CVTS01+24 03503000 CVTCTLFG EQU CVTS01+50 03504000 CVTOPCTP EQU CVTS01+256 03505000 CVTGSMQ EQU CVTS01+264 03506000 CVTRV210 EQU CVTS01+424 03507000 CVTRV219 EQU CVTS01+425 03508000 CVTRV228 EQU CVTS01+426 03509000 CVTRV237 EQU CVTS01+427 03510000 CVTMFRTR EQU CVTS01+452 03511000 CVTRV262 EQU CVTS01+468 03512000 CVTRV271 EQU CVTS01+469 03513000 CVTRV280 EQU CVTS01+470 03514000 CVTRV289 EQU CVTS01+471 03515000 CVTEXP1 EQU CVTS01+572 03516000 CVTGSDA EQU CVTS01+600 03517000 PVTPTR EQU CVTPVTP 03518000 RMCTACQH EQU RMCTAQCT 03519000 RMCTALAW EQU RMCTALA 03520000 OUCBACTW EQU OUCBACT 03521000 DMDTBLK1 EQU DMDTGOOU 03522000 DMDTBLK2 EQU DMDTOUTU 03523000 ASCBQFLG EQU ASCBFW1 03524000 ASCBFQUB EQU ASCBQFLG+2 03525000 FLC EQU PSA 03526000 NEGATIV EQU FLAGDEF 03527000 AGO .@UNREFD START UNREFERENCED COMPONENTS 03528000 @NM00033 EQU ASCBQFLG+2 03529000 @NM00032 EQU ASCBQFLG 03530000 CVTRV628 EQU CVTS01+728 03531000 CVTRV627 EQU CVTS01+724 03532000 CVTRV626 EQU CVTS01+720 03533000 CVTRV625 EQU CVTS01+716 03534000 CVTRV624 EQU CVTS01+712 03535000 CVTRV623 EQU CVTS01+708 03536000 CVTRV622 EQU CVTS01+704 03537000 CVTRV621 EQU CVTS01+700 03538000 CVTIHASU EQU CVTS01+696 03539000 CVTSUSP EQU CVTS01+692 03540000 CVTT6SVC EQU CVTS01+688 03541000 CVTCDAL EQU CVTS01+684 03542000 CVTTCTL EQU CVTS01+680 03543000 CVTRSUME EQU CVTS01+676 03544000 CVTJTERM EQU CVTS01+672 03545000 CVTASMRM EQU CVTS01+668 03546000 CVTTCASP EQU CVTS01+664 03547000 CVT0PT03 EQU CVTS01+660 03548000 CVT0PT0E EQU CVTS01+656 03549000 CVTRV609 EQU CVTS01+652 03550000 CVTCGK EQU CVTS01+648 03551000 CVTRAC EQU CVTS01+644 03552000 CVTHSM EQU CVTS01+640 03553000 CVTRV605 EQU CVTS01+636 03554000 CVTRV604 EQU CVTS01+632 03555000 CVTEFF02 EQU CVTS01+628 03556000 CVTCBBR EQU CVTS01+624 03557000 CVTSSCR EQU CVTS01+620 03558000 CVTEVENT EQU CVTS01+616 03559000 CVTCRCA EQU CVTS01+612 03560000 CVTTPIO EQU CVTS01+608 03561000 CVTADV EQU CVTS01+604 03562000 CVTGSDAB EQU CVTGSDA 03563000 CVTQV3 EQU CVTS01+596 03564000 CVTQV2 EQU CVTS01+592 03565000 CVTQV1 EQU CVTS01+588 03566000 CVTRPT EQU CVTS01+584 03567000 CVTSSRB EQU CVTS01+580 03568000 CVTCSDRL EQU CVTS01+576 03569000 CVTRMPMT EQU CVTS01+568 03570000 CVTRMPTT EQU CVTS01+564 03571000 CVTVPSA EQU CVTS01+560 03572000 CVTVSTOP EQU CVTS01+556 03573000 CVTGTFR8 EQU CVTS01+552 03574000 CVTQUIT EQU CVTS01+548 03575000 CVTVACR EQU CVTS01+544 03576000 CVTWTCB EQU CVTS01+540 03577000 CVTSTPRS EQU CVTS01+536 03578000 CVT0PT02 EQU CVTS01+532 03579000 CVTDARCM EQU CVTS01+528 03580000 CVTIRECM EQU CVTS01+524 03581000 CVTJRECM EQU CVTS01+520 03582000 CVTVEMS0 EQU CVTS01+516 03583000 CVTSPFRR EQU CVTS01+512 03584000 CVTRLSTG EQU CVTS01+508 03585000 CVT0TC0A EQU CVTS01+504 03586000 CVTGMBR EQU CVTS01+500 03587000 CVTLFRM EQU CVTS01+496 03588000 CVTRMBR EQU CVTS01+492 03589000 CVTVIOP EQU CVTS01+488 03590000 CVTRV307 EQU CVTS01+486 03591000 CVTRV306 EQU CVTS01+484 03592000 CVTRV305 EQU CVTS01+482 03593000 CVTRV304 EQU CVTS01+480 03594000 CVTRV303 EQU CVTS01+478 03595000 CVTRV302 EQU CVTS01+476 03596000 CVTTRCA EQU CVTS01+472 03597000 CVTRV297 EQU CVTRV289 03598000 CVTRV296 EQU CVTRV289 03599000 CVTRV295 EQU CVTRV289 03600000 CVTRV294 EQU CVTRV289 03601000 CVTRV293 EQU CVTRV289 03602000 CVTRV292 EQU CVTRV289 03603000 CVTRV291 EQU CVTRV289 03604000 CVTRV290 EQU CVTRV289 03605000 CVTRV288 EQU CVTRV280 03606000 CVTRV287 EQU CVTRV280 03607000 CVTRV286 EQU CVTRV280 03608000 CVTRV285 EQU CVTRV280 03609000 CVTRV284 EQU CVTRV280 03610000 CVTRV283 EQU CVTRV280 03611000 CVTRV282 EQU CVTRV280 03612000 CVTRV281 EQU CVTRV280 03613000 CVTRV279 EQU CVTRV271 03614000 CVTRV278 EQU CVTRV271 03615000 CVTRV277 EQU CVTRV271 03616000 CVTRV276 EQU CVTRV271 03617000 CVTRV275 EQU CVTRV271 03618000 CVTRV274 EQU CVTRV271 03619000 CVTRV273 EQU CVTRV271 03620000 CVTRV272 EQU CVTRV271 03621000 CVTRV270 EQU CVTRV262 03622000 CVTRV269 EQU CVTRV262 03623000 CVTRV268 EQU CVTRV262 03624000 CVTRV267 EQU CVTRV262 03625000 CVTRV266 EQU CVTRV262 03626000 CVTRV265 EQU CVTRV262 03627000 CVTRV264 EQU CVTRV262 03628000 CVTRV263 EQU CVTRV262 03629000 CVTVFP EQU CVTS01+464 03630000 CVTVSI EQU CVTS01+460 03631000 CVTVPSIB EQU CVTS01+456 03632000 CVTMFACT EQU CVTMFRTR 03633000 CVTMFCTL EQU CVTS01+448 03634000 CVTPVBP EQU CVTS01+444 03635000 CVTPWI EQU CVTS01+440 03636000 CVTRV254 EQU CVTS01+438 03637000 CVTRV253 EQU CVTS01+436 03638000 CVTRV252 EQU CVTS01+434 03639000 CVTRV251 EQU CVTS01+433 03640000 CVTRV250 EQU CVTS01+432 03641000 CVTRV249 EQU CVTS01+431 03642000 CVTRV248 EQU CVTS01+430 03643000 CVTRV247 EQU CVTS01+429 03644000 CVTRV246 EQU CVTS01+428 03645000 CVTRV245 EQU CVTRV237 03646000 CVTRV244 EQU CVTRV237 03647000 CVTRV243 EQU CVTRV237 03648000 CVTRV242 EQU CVTRV237 03649000 CVTRV241 EQU CVTRV237 03650000 CVTRV240 EQU CVTRV237 03651000 CVTRV239 EQU CVTRV237 03652000 CVTRV238 EQU CVTRV237 03653000 CVTRV236 EQU CVTRV228 03654000 CVTRV235 EQU CVTRV228 03655000 CVTRV234 EQU CVTRV228 03656000 CVTRV233 EQU CVTRV228 03657000 CVTRV232 EQU CVTRV228 03658000 CVTRV231 EQU CVTRV228 03659000 CVTRV230 EQU CVTRV228 03660000 CVTRV229 EQU CVTRV228 03661000 CVTRV227 EQU CVTRV219 03662000 CVTRV226 EQU CVTRV219 03663000 CVTRV225 EQU CVTRV219 03664000 CVTRV224 EQU CVTRV219 03665000 CVTRV223 EQU CVTRV219 03666000 CVTRV222 EQU CVTRV219 03667000 CVTRV221 EQU CVTRV219 03668000 CVTRV220 EQU CVTRV219 03669000 CVTRV218 EQU CVTRV210 03670000 CVTRV217 EQU CVTRV210 03671000 CVTRV216 EQU CVTRV210 03672000 CVTRV215 EQU CVTRV210 03673000 CVTRV214 EQU CVTRV210 03674000 CVTRV213 EQU CVTRV210 03675000 CVTRV212 EQU CVTRV210 03676000 CVTRV211 EQU CVTRV210 03677000 CVTLCCAT EQU CVTS01+420 03678000 CVTPCCAT EQU CVTS01+416 03679000 CVTIPCRP EQU CVTS01+412 03680000 CVTIPCRI EQU CVTS01+408 03681000 CVTIPCDS EQU CVTS01+404 03682000 CVTAIDVT EQU CVTS01+400 03683000 CVTSSAP EQU CVTS01+396 03684000 CVTEHCIR EQU CVTS01+392 03685000 CVTEHDEF EQU CVTS01+388 03686000 CVTDAIR EQU CVTS01+384 03687000 CVTPERFM EQU CVTS01+380 03688000 CVT044R2 EQU CVTS01+376 03689000 CVTFETCH EQU CVTS01+372 03690000 CVTRSTWD EQU CVTS01+368 03691000 CVTSPOST EQU CVTS01+364 03692000 CVTIOBP EQU CVTS01+360 03693000 CVTASMVT EQU CVTS01+356 03694000 CVTRECRQ EQU CVTS01+352 03695000 CVTWSAC EQU CVTS01+348 03696000 CVTRV149 EQU CVTS01+344 03697000 CVTWSAL EQU CVTS01+340 03698000 CVTSPSA EQU CVTS01+336 03699000 CVTGLMN EQU CVTS01+332 03700000 CVTVEAC0 EQU CVTS01+328 03701000 CVT062R1 EQU CVTS01+324 03702000 CVTRPOST EQU CVTS01+320 03703000 CVTDQIQE EQU CVTS01+316 03704000 CVTCSD EQU CVTS01+312 03705000 CVTLKRMA EQU CVTS01+308 03706000 CVTRSPIE EQU CVTS01+304 03707000 CVTRENQ EQU CVTS01+300 03708000 CVTLQCB EQU CVTS01+296 03709000 CVTFQCB EQU CVTS01+292 03710000 CVTQCS01 EQU CVTS01+288 03711000 CVTAPFT EQU CVTS01+284 03712000 CVTPARRL EQU CVTS01+280 03713000 CVTVWAIT EQU CVTS01+276 03714000 CVTGSPL EQU CVTS01+272 03715000 CVTLSMQ EQU CVTS01+268 03716000 CVTEXPRO EQU CVTS01+260 03717000 CVTSIC EQU CVTS01+252 03718000 CVTTPIOS EQU CVTS01+248 03719000 CVTRTMS EQU CVTS01+244 03720000 CVTSDBF EQU CVTS01+240 03721000 CVTSCBP EQU CVTS01+236 03722000 CVTSDMP EQU CVTS01+232 03723000 CVTSV60 EQU CVTS01+228 03724000 CVTRTMCT EQU CVTS01+224 03725000 CVTASCBL EQU CVTS01+220 03726000 CVTASCBH EQU CVTS01+216 03727000 CVTGDA EQU CVTS01+212 03728000 CVTASVT EQU CVTS01+208 03729000 CVTVVMDI EQU CVTS01+204 03730000 CVTAQTOP EQU CVTS01+200 03731000 CVTIOSCS EQU CVTS01+196 03732000 CVTSDRM EQU CVTS01+192 03733000 CVTOPTE EQU CVTS01+188 03734000 CVTSTXU EQU CVTS01+184 03735000 CVTQUIS EQU CVTS01+180 03736000 CVTPARS EQU CVTS01+176 03737000 CVTS1EE EQU CVTS01+172 03738000 CVTFRAS EQU CVTS01+168 03739000 CVTQSAS EQU CVTS01+164 03740000 CVTCRAS EQU CVTS01+160 03741000 CVTCRMN EQU CVTS01+156 03742000 CVTDELCP EQU CVTS01+152 03743000 CVTFRECL EQU CVTS01+148 03744000 CVTGETCL EQU CVTS01+144 03745000 CVTBLDCP EQU CVTS01+140 03746000 CVTAUTHL EQU CVTS01+136 03747000 CVTSCAN EQU CVTS01+132 03748000 CVTRV144 EQU CVTS01+130 03749000 CVTMAXMP EQU CVTS01+128 03750000 CVTSTCK EQU CVTS01+124 03751000 CVTRV139 EQU CVTS01+123 03752000 CVTDSSAC EQU CVTS01+122 03753000 CVTRV513 EQU CVTS01+121 03754000 CVTIOSPL EQU CVTS01+120 03755000 CVTPTGT EQU CVTS01+116 03756000 CVTCSPIE EQU CVTS01+112 03757000 CVTSMFEX EQU CVTS01+108 03758000 CVTOLT0A EQU CVTS01+104 03759000 CVTSRBRT EQU CVTS01+100 03760000 CVTPUTL EQU CVTS01+96 03761000 CVTASCRL EQU CVTS01+92 03762000 CVTASCRF EQU CVTS01+88 03763000 CVTRV326 EQU CVTS01+84 03764000 CVTRV325 EQU CVTS01+80 03765000 CVTRV324 EQU CVTS01+76 03766000 CVT0VL01 EQU CVTS01+72 03767000 CVTSHRVM EQU CVTS01+68 03768000 CVTRV332 EQU CVTS01+64 03769000 CVTTAS EQU CVTS01+60 03770000 CVTRSCN EQU CVTS01+56 03771000 CVTTRAC2 EQU CVTS01+54 03772000 CVTTRACE EQU CVTS01+52 03773000 CVTAPG EQU CVTS01+51 03774000 CVTSDTRC EQU CVTCTLFG 03775000 CVTGTRCE EQU CVTCTLFG 03776000 CVTNOMP EQU CVTCTLFG 03777000 CVTRSV79 EQU CVTCTLFG 03778000 CVTDSTAT EQU CVTCTLFG 03779000 CVTRSV78 EQU CVTCTLFG 03780000 CVTRV333 EQU CVTCTLFG 03781000 CVTRV323 EQU CVTCTLFG 03782000 CVTSPVLK EQU CVTS01+49 03783000 CVTRSV77 EQU CVTS01+48 03784000 CVTRV331 EQU CVTS01+44 03785000 CVTRV330 EQU CVTS01+40 03786000 CVTRV329 EQU CVTS01+36 03787000 CVTRV328 EQU CVTS01+32 03788000 CVTRV322 EQU CVTS01+28 03789000 CVTSLID EQU CVTSLIDA+1 03790000 CVTSYLK EQU CVTSLIDA 03791000 CVTRV321 EQU CVTS01+20 03792000 CVTRV320 EQU CVTS01+16 03793000 CVTLPDIR EQU CVTLPDIA+1 03794000 CVTRSV69 EQU CVTDIRST 03795000 CVTRSV68 EQU CVTDIRST 03796000 CVTRSV67 EQU CVTDIRST 03797000 CVTRSV66 EQU CVTDIRST 03798000 CVTRSV65 EQU CVTDIRST 03799000 CVTRSV64 EQU CVTDIRST 03800000 CVTRSV63 EQU CVTDIRST 03801000 CVTDICOM EQU CVTDIRST 03802000 CVTLPDSR EQU CVTS01+4 03803000 CVTGETL EQU CVTS01 03804000 PSARSAV EQU PSARSVTE+60 03805000 PSARSTK EQU PSARSVTE+56 03806000 PSAESAV3 EQU PSARSVTE+52 03807000 PSAESTK3 EQU PSARSVTE+48 03808000 PSAESAV2 EQU PSARSVTE+44 03809000 PSAESTK2 EQU PSARSVTE+40 03810000 PSAESAV1 EQU PSARSVTE+36 03811000 PSAESTK1 EQU PSARSVTE+32 03812000 PSAPSAV EQU PSARSVTE+28 03813000 PSAPSTK EQU PSARSVTE+24 03814000 PSAMSAV EQU PSARSVTE+20 03815000 PSAMSTK EQU PSARSVTE+16 03816000 PSASSAV EQU PSARSVTE+12 03817000 PSASSTK EQU PSARSVTE+8 03818000 PSANSTK EQU PSARSVTE+4 03819000 PSACSTK EQU PSARSVTE 03820000 @NM00031 EQU SRB+40 03821000 @NM00030 EQU SRB+38 03822000 SRBPRIOR EQU SRB+37 03823000 SRBPKF EQU SRB+36 03824000 SRBSAVE EQU SRB+32 03825000 SRBRMTR EQU SRB+24 03826000 SRBEP EQU SRB+20 03827000 SRBPTCB EQU SRBFLC+4 03828000 SRBPASID EQU SRBFLC+2 03829000 SRBCPAFF EQU SRBFLC 03830000 SRBASCB EQU SRB+8 03831000 SRBID EQU SRB 03832000 PVTEND EQU PVT+1848 03833000 PVTTASID EQU PVT+1846 03834000 PVTXXXXX EQU PVT+1844 03835000 PVTMVCLC EQU PVT+1840 03836000 PVTSPARE EQU PVT+1838 03837000 PVTCHUIC EQU PVT+1836 03838000 PVTCOMFX EQU PVT+1834 03839000 PVTSQAFX EQU PVT+1832 03840000 PVTCNTFX EQU PVT+1830 03841000 PVTDEFFX EQU PVT+1828 03842000 PVTFIXOK EQU PVT+1826 03843000 PVTPEROK EQU PVT+1824 03844000 PVTMAXFX EQU PVT+1822 03845000 PVTPERFX EQU PVT+1820 03846000 PVTRSRB EQU PVT+1776 03847000 PVTRESV5 EQU PVT+1773 03848000 PVTSRBS EQU PVT+1772 03849000 PVTSSRB EQU PVT+1768 03850000 PVTACA EQU PVTWSAX+1400 03851000 PVTSAVE EQU PVTWSAX+1328 03852000 PVTWSA18 EQU PVTWSAX+1256 03853000 PVTWSA17 EQU PVTWSAX+1184 03854000 PVTWSA16 EQU PVTWSAX+1112 03855000 PVTWSA15 EQU PVTWSAX+1040 03856000 PVTWSA14 EQU PVTWSAX+968 03857000 PVTWSA13 EQU PVTWSAX+896 03858000 PVTWSA12 EQU PVTWSAX+824 03859000 PVTWSA11 EQU PVTWSAX+752 03860000 PVTWSA10 EQU PVTWSAX+672 03861000 PVTWSA9 EQU PVTWSAX+592 03862000 PVTWSA8 EQU PVTWSAX+504 03863000 PVTWSA7 EQU PVTWSAX+432 03864000 PVTWSA6 EQU PVTWSAX+360 03865000 PVTWSA5 EQU PVTWSAX+288 03866000 PVTWSA4 EQU PVTWSAX+216 03867000 PVTWSA3 EQU PVTWSAX+144 03868000 PVTWSA2 EQU PVTWSAX+72 03869000 PVTWSA1 EQU PVTWSAX 03870000 PVTCIOQL EQU PVTQS+36 03871000 PVTCIOQF EQU PVTQS+32 03872000 PVTGFADL EQU PVTQS+28 03873000 PVTGFADF EQU PVTQS+24 03874000 PVTFPCBL EQU PVTQS+20 03875000 PVTFPCBF EQU PVTQS+16 03876000 PVTSQAQL EQU PVTQS+14 03877000 PVTSQAQF EQU PVTQS+12 03878000 PVTCFQL EQU PVTQS+10 03879000 PVTCFQF EQU PVTQS+8 03880000 PVTRSRVL EQU PVTQS+6 03881000 PVTRSRVF EQU PVTQS+4 03882000 PVTAFQL EQU PVTQS+2 03883000 PVTAFQF EQU PVTQS 03884000 PVTSPFR EQU PVT+302 03885000 PVTCFMCT EQU PVT+300 03886000 PVTSPREC EQU PVT+296 03887000 PVTCAREC EQU PVT+292 03888000 PVTCAOUT EQU PVT+288 03889000 PVTCAIN EQU PVT+284 03890000 PVTNSWPS EQU PVT+280 03891000 PVTNPREC EQU PVT+276 03892000 PVTSPOUT EQU PVT+272 03893000 PVTSPIN EQU PVT+268 03894000 PVTVAMR EQU PVT+264 03895000 PVTVAMO EQU PVT+260 03896000 PVTVAMI EQU PVT+256 03897000 PVTNPOUT EQU PVT+252 03898000 PVTNPIN EQU PVT+248 03899000 PVTPRSET EQU PVT+244 03900000 PVTFRSLT EQU PVT+240 03901000 PVTPAGIO EQU PVT+236 03902000 PVTSWPIO EQU PVT+232 03903000 PVTPSWPP EQU PVT+228 03904000 PVTPPREF EQU PVT+224 03905000 PVTPOPBR EQU PVT+220 03906000 PVTPRELF EQU PVT+216 03907000 PVTPRELV EQU PVT+212 03908000 PVTPFREE EQU PVT+208 03909000 PVTPRELS EQU PVT+204 03910000 PVTPOUT EQU PVT+200 03911000 PVTPFXLD EQU PVT+196 03912000 PVTPITAS EQU PVT+192 03913000 PVTPSRBP EQU PVT+188 03914000 PVTPDSEG EQU PVT+184 03915000 PVTPCSGB EQU PVT+180 03916000 PVTPCSEG EQU PVT+176 03917000 PVTPINV EQU PVT+172 03918000 PVTPSWPC EQU PVT+168 03919000 PVTPSOUT EQU PVT+164 03920000 PVTPSWIN EQU PVT+160 03921000 PVTPRCV EQU PVT+156 03922000 PVTPRCFI EQU PVT+152 03923000 PVTPRCF EQU PVT+148 03924000 PVTPVRC EQU PVT+144 03925000 PVTPVRIN EQU PVT+140 03926000 PVTPVRLS EQU PVT+136 03927000 PVTPVEQR EQU PVT+132 03928000 PVTPPIOI EQU PVT+128 03929000 PVTPVRPO EQU PVT+124 03930000 PVTPRFR EQU PVT+120 03931000 PVTPFP2 EQU PVT+116 03932000 PVTPFP EQU PVT+112 03933000 PVTPFTE EQU PVT+108 03934000 PVTPCB EQU PVT+104 03935000 PVTREP2 EQU PVT+100 03936000 PVTPIOCP EQU PVT+96 03937000 PVTPIOP EQU PVT+92 03938000 PVTPGFAD EQU PVT+88 03939000 PVTPGFA EQU PVT+84 03940000 PVTPSQA EQU PVT+80 03941000 PVTPSINT EQU PVT+76 03942000 PVTPSIB EQU PVT+72 03943000 PVTSRBID EQU PVT+68 03944000 PVTPCIWA EQU PVT+64 03945000 PVTHQSA EQU PVT+62 03946000 PVTLQSA EQU PVT+60 03947000 PVTOROOT EQU PVT+56 03948000 PVTPRCA EQU PVT+52 03949000 PVTREUS EQU PVT+48 03950000 PVTSQNPC EQU PVT+47 03951000 PVTSQVRC EQU PVT+46 03952000 PVTRSUS EQU PVT+44 03953000 PVTVROOT EQU PVT+40 03954000 PVTPCBLO EQU PVT+38 03955000 PVTPCBCT EQU PVT+36 03956000 PVTDFRS EQU PVT+34 03957000 PVTRSQA EQU PVT+32 03958000 PVTPTLB EQU PVT+31 03959000 PVTPCBNO EQU PVT+30 03960000 PVTSRBNO EQU PVT+29 03961000 PVTSQDC EQU PVT+28 03962000 PVTLCSA EQU PVT+26 03963000 PVTLPRIV EQU PVT+24 03964000 PVTLVR EQU PVT+22 03965000 PVTFVR EQU PVT+20 03966000 PVTLPFN EQU PVT+18 03967000 PVTFPFN EQU PVT+16 03968000 PVTPFTP EQU PVT+12 03969000 PVTSSPIN EQU PVT+11 03970000 PVTPCBS EQU PVT+10 03971000 PVTPOOL EQU PVT+8 03972000 PVTAFCOK EQU PVT+6 03973000 PVTAFCLO EQU PVT+4 03974000 PVTAFC EQU PVT+2 03975000 @NM00029 EQU PVTFLAG2 03976000 PVTRSMGM EQU PVTFLAG2 03977000 PVTDUMP EQU PVTFLAG1 03978000 PVTSIT EQU PVTFLAG1 03979000 PVTLSI EQU PVTFLAG1 03980000 PVTAPREF EQU PVTFLAG1 03981000 PVTPCBLT EQU PVTFLAG1 03982000 PVTSRBIU EQU PVTFLAG1 03983000 PVTBGMS EQU PVTFLAG1 03984000 PVTPMSG EQU PVTFLAG1 03985000 CVTLEVL EQU CVTRELNO+2 03986000 CVTNUMB EQU CVTRELNO 03987000 CVTMDL EQU CVTFIX+250 03988000 @NM00028 EQU CVTFIX+248 03989000 @NM00027 EQU CVTFIX 03990000 CVTRV482 EQU CVTXTNT2+128 03991000 CVTRV481 EQU CVTXTNT2+124 03992000 CVTRV480 EQU CVTXTNT2+120 03993000 CVTRV479 EQU CVTXTNT2+118 03994000 CVTRV478 EQU CVTXTNT2+117 03995000 CVTRV477 EQU CVTXTNT2+116 03996000 CVTRV476 EQU CVTXTNT2+115 03997000 CVTRV475 EQU CVTXTNT2+114 03998000 CVTRV474 EQU CVTRV466 03999000 CVTRV473 EQU CVTRV466 04000000 CVTRV472 EQU CVTRV466 04001000 CVTRV471 EQU CVTRV466 04002000 CVTRV470 EQU CVTRV466 04003000 CVTRV469 EQU CVTRV466 04004000 CVTRV468 EQU CVTRV466 04005000 CVTRV467 EQU CVTRV466 04006000 CVTRV465 EQU CVTRV457 04007000 CVTRV464 EQU CVTRV457 04008000 CVTRV463 EQU CVTRV457 04009000 CVTRV462 EQU CVTRV457 04010000 CVTRV461 EQU CVTRV457 04011000 CVTRV460 EQU CVTRV457 04012000 CVTRV459 EQU CVTRV457 04013000 CVTRV458 EQU CVTRV457 04014000 CVTRV456 EQU CVTXTNT2+108 04015000 CVTRV455 EQU CVTXTNT2+104 04016000 CVTRV454 EQU CVTXTNT2+100 04017000 CVTRV453 EQU CVTXTNT2+96 04018000 CVTRV452 EQU CVTXTNT2+94 04019000 CVTRV451 EQU CVTXTNT2+92 04020000 CVTRV450 EQU CVTXTNT2+90 04021000 CVTRV449 EQU CVTXTNT2+88 04022000 CVTRV448 EQU CVTXTNT2+87 04023000 CVTRV447 EQU CVTXTNT2+86 04024000 CVTRV446 EQU CVTRV438 04025000 CVTRV445 EQU CVTRV438 04026000 CVTRV444 EQU CVTRV438 04027000 CVTRV443 EQU CVTRV438 04028000 CVTRV442 EQU CVTRV438 04029000 CVTRV441 EQU CVTRV438 04030000 CVTRV440 EQU CVTRV438 04031000 CVTRV439 EQU CVTRV438 04032000 CVTRV437 EQU CVTRV429 04033000 CVTRV436 EQU CVTRV429 04034000 CVTRV435 EQU CVTRV429 04035000 CVTRV434 EQU CVTRV429 04036000 CVTRV433 EQU CVTRV429 04037000 CVTRV432 EQU CVTRV429 04038000 CVTRV431 EQU CVTRV429 04039000 CVTRV430 EQU CVTRV429 04040000 CVTRV428 EQU CVTXTNT2+80 04041000 CVTRV427 EQU CVTXTNT2+76 04042000 CVTRV426 EQU CVTXTNT2+72 04043000 CVTRV425 EQU CVTXTNT2+68 04044000 CVTATACT EQU CVTATCVT 04045000 CVTRV423 EQU CVTXTNT2+62 04046000 CVTRV422 EQU CVTXTNT2+60 04047000 CVTRV421 EQU CVTXTNT2+58 04048000 CVTRV420 EQU CVTXTNT2+56 04049000 CVTRV419 EQU CVTXTNT2+55 04050000 CVTRV418 EQU CVTXTNT2+54 04051000 CVTRV417 EQU CVTRV409 04052000 CVTRV416 EQU CVTRV409 04053000 CVTRV415 EQU CVTRV409 04054000 CVTRV414 EQU CVTRV409 04055000 CVTRV413 EQU CVTRV409 04056000 CVTRV412 EQU CVTRV409 04057000 CVTRV411 EQU CVTRV409 04058000 CVTRV410 EQU CVTRV409 04059000 CVTRV408 EQU CVTRV400 04060000 CVTRV407 EQU CVTRV400 04061000 CVTRV406 EQU CVTRV400 04062000 CVTRV405 EQU CVTRV400 04063000 CVTRV404 EQU CVTRV400 04064000 CVTRV403 EQU CVTRV400 04065000 CVTRV402 EQU CVTRV400 04066000 CVTRV401 EQU CVTRV400 04067000 CVTICB EQU CVTXTNT2+48 04068000 CVTSKTA EQU CVTXTNT2+44 04069000 CVTCCVT EQU CVTXTNT2+40 04070000 CVTRSV98 EQU CVTXTNT2+36 04071000 CVTRSV97 EQU CVTXTNT2+34 04072000 CVTRSV96 EQU CVTXTNT2+32 04073000 CVTOLTEP EQU CVTXTNT2+28 04074000 CVTQIDA EQU CVTQID+1 04075000 CVTRSV95 EQU CVTQID 04076000 CVTRSV94 EQU CVTXTNT2+20 04077000 CVTRSV93 EQU CVTXTNT2+16 04078000 CVTRSV92 EQU CVTXTNT2+12 04079000 CVTDEBVR EQU CVTXTNT2+8 04080000 CVTRSV91 EQU CVTXTNT2+6 04081000 CVTRSV9H EQU CVTFLGBT 04082000 CVTRSV9G EQU CVTFLGBT 04083000 CVTRSV9F EQU CVTFLGBT 04084000 CVTRSV9E EQU CVTFLGBT 04085000 CVTRSV9D EQU CVTFLGBT 04086000 CVTRSV9C EQU CVTFLGBT 04087000 CVTVME EQU CVTFLGBT 04088000 CVTNPE EQU CVTFLGBT 04089000 CVTNUCLS EQU CVTXTNT2+4 04090000 CVTDSSVA EQU CVTDSSV+1 04091000 CVTRSV89 EQU CVTDSSV 04092000 CVTRSV88 EQU CVTXTNT1+8 04093000 CVTRSV87 EQU CVTXTNT1+4 04094000 CVTFACHN EQU CVTXTNT1 04095000 CVTRV488 EQU CVTMAP+412 04096000 CVTRV487 EQU CVTMAP+408 04097000 CVTRV486 EQU CVTMAP+404 04098000 CVTRV485 EQU CVTMAP+400 04099000 CVTACTAP EQU CVTMAP+396 04100000 CVTAUTH EQU CVTMAP+392 04101000 CVTATMCA EQU CVTATMCT+1 04102000 CVTATMST EQU CVTATMCT 04103000 CVTRSV61 EQU CVTMAP+384 04104000 CVTVOLT1 EQU CVTVOLM1+1 04105000 CVTVOLI1 EQU CVTVOLF1 04106000 CVTSTOA EQU CVTMAP+376 04107000 CVTRSV58 EQU CVTMAP+374 04108000 CVTRSV57 EQU CVTMAP+372 04109000 CVTDDCE EQU CVTMAP+368 04110000 CVTPNWFR EQU CVTMAP+364 04111000 CVTSMF EQU CVTMAP+360 04112000 CVTSULK EQU CVTMAP+358 04113000 CVTSLKO EQU CVTSYSK 04114000 CVTSLKP EQU CVTSYSK 04115000 CVTSLKQ EQU CVTSYSK 04116000 CVTSLKR EQU CVTSYSK 04117000 CVTRSV56 EQU CVTSYSK 04118000 CVTRSV55 EQU CVTSYSK 04119000 CVTRSV54 EQU CVTSYSK 04120000 CVTRSV53 EQU CVTSYSK 04121000 CVTRSV52 EQU CVTA1F1 04122000 CVTRSV51 EQU CVTA1F1 04123000 CVTRSV50 EQU CVTA1F1 04124000 CVTRSV49 EQU CVTA1F1 04125000 CVTRSV48 EQU CVTA1F1 04126000 CVTRSV47 EQU CVTA1F1 04127000 CVTSRSW EQU CVTA1F1 04128000 CVTPFSW EQU CVTA1F1 04129000 CVTPCVT EQU CVTMAP+352 04130000 CVTRSV46 EQU CVTMAP+344 04131000 CVTRSV45 EQU CVTMAP+340 04132000 CVTRSV44 EQU CVTMAP+338 04133000 CVTRSV43 EQU CVTMAP+336 04134000 CVTHJESA EQU CVTHJES+1 04135000 CVTRSV42 EQU CVTHJES 04136000 CVTEXT2A EQU CVTEXT2+1 04137000 CVTRSV41 EQU CVTEXT2 04138000 CVTAPFA EQU CVTAPF+1 04139000 CVTRSV40 EQU CVTAPF 04140000 CVTRV518 EQU CVTINTLA 04141000 CVTRV517 EQU CVTERPV 04142000 CVTEORM EQU CVTMAP+312 04143000 CVTMCHPR EQU CVTMAP+308 04144000 CVTTZ EQU CVTMAP+304 04145000 CVTJEPS EQU CVTMAP+300 04146000 CVTJESCT EQU CVTMAP+296 04147000 CVTMODE EQU CVTMAP+292 04148000 CVTPTRV EQU CVTMAP+288 04149000 CVTREAL EQU CVTMAP+284 04150000 CVTRSV39 EQU CVTMAP+280 04151000 CVTRSV38 EQU CVTMAP+276 04152000 CVTDMSRA EQU CVTDMSR+1 04153000 CVTRV634 EQU CVTDMSRF 04154000 CVTRV633 EQU CVTDMSRF 04155000 CVTRV632 EQU CVTDMSRF 04156000 CVTRV631 EQU CVTDMSRF 04157000 CVTRV630 EQU CVTDMSRF 04158000 CVTRV629 EQU CVTDMSRF 04159000 CVTUDUMP EQU CVTDMSRF 04160000 CVTSDUMP EQU CVTDMSRF 04161000 CVTQMSGA EQU CVTQMSG+1 04162000 CVTRSV36 EQU CVTQMSG 04163000 CVTAMFF EQU CVTMAP+264 04164000 CVTPURGA EQU CVTPURG+1 04165000 CVTRSV35 EQU CVTPURG 04166000 CVTCBSP EQU CVTMAP+256 04167000 CVTATERA EQU CVTATER+1 04168000 CVTSYST EQU CVTATER 04169000 CVTVOLT2 EQU CVTTAT 04170000 CVTVOLI2 EQU CVTVOLF2 04171000 CVTAQAVB EQU CVTAQAVT+1 04172000 CVTRSV34 EQU CVTTCMFG 04173000 CVTRSV33 EQU CVTTCMFG 04174000 CVTRSV32 EQU CVTTCMFG 04175000 CVTRSV31 EQU CVTTCMFG 04176000 CVTRSV30 EQU CVTTCMFG 04177000 CVTRSV29 EQU CVTTCMFG 04178000 CVTLDEV EQU CVTTCMFG 04179000 CVTTCRDY EQU CVTTCMFG 04180000 CVTGTFA EQU CVTGTF+1 04181000 CVTRSV27 EQU CVTGTFST 04182000 CVTRNIO EQU CVTGTFST 04183000 CVTUSR EQU CVTGTFST 04184000 CVTRV318 EQU CVTFORM 04185000 CVTRV317 EQU CVTTMODE 04186000 CVTRV316 EQU CVTSTATE 04187000 CVTRV315 EQU CVTGTFS 04188000 CVTGTFAV EQU CVTGTFS 04189000 CVT0SCR1 EQU CVTMAP+232 04190000 CVTRV515 EQU CVTMAP+228 04191000 CVTRMS EQU CVTMAP+224 04192000 CVTPATCH EQU CVTMAP+220 04193000 CVTTSCE EQU CVTMAP+216 04194000 CVTLNKSC EQU CVTMAP+214 04195000 CVTQABST EQU CVTMAP+212 04196000 CVTMDLDS EQU CVTMAP+208 04197000 CVTUSER EQU CVTMAP+204 04198000 CVTABEND EQU CVTMAP+200 04199000 CVTSMCA EQU CVTMAP+196 04200000 CVTRSV18 EQU CVTMAP+192 04201000 CVTQLPAQ EQU CVTMAP+188 04202000 CVTQCDSR EQU CVTMAP+184 04203000 CVTRSV17 EQU CVTOPTB 04204000 CVTRSV16 EQU CVTOPTB 04205000 CVTFP EQU CVTOPTB 04206000 CVTAPTHR EQU CVTOPTB 04207000 CVTNLOG EQU CVTOPTB 04208000 CVTTOD EQU CVTOPTB 04209000 CVTCTIMS EQU CVTOPTB 04210000 CVTPROT EQU CVTOPTB 04211000 CVTXPFP EQU CVTOPTA 04212000 CVTASCII EQU CVTOPTA 04213000 CVTRSV13 EQU CVTOPTA 04214000 CVTRSV12 EQU CVTOPTA 04215000 CVTNIP EQU CVTOPTA 04216000 CVTDDR EQU CVTOPTA 04217000 CVTAPR EQU CVTOPTA 04218000 CVTCCH EQU CVTOPTA 04219000 CVTSNCTR EQU CVTMAP+180 04220000 CVTQMWR EQU CVTMAP+176 04221000 CVTQOCR EQU CVTMAP+172 04222000 CVT1EF00 EQU CVTMAP+168 04223000 CVTMZ00 EQU CVTMAP+164 04224000 CVTSV76Q EQU CVTSV76C 04225000 CVTRSV11 EQU CVTMAP+156 04226000 CVT0PT01 EQU CVTMAP+152 04227000 CVTMSER EQU CVTMAP+148 04228000 CVTRV516 EQU CVTIERLC 04229000 CVTILCH EQU CVTMAP+140 04230000 CVT0DS EQU CVTMAP+136 04231000 CVTFBOSV EQU CVTMAP+132 04232000 CVTNUCB EQU CVTMAP+128 04233000 CVTIXAVL EQU CVTMAP+124 04234000 CVTSV76M EQU CVTIOQET 04235000 CVTDCBA EQU CVTMAP+117 04236000 CVTMVS2 EQU CVTDCB 04237000 CVT6DAT EQU CVTDCB 04238000 CVT4MPS EQU CVTDCB 04239000 CVTRSV09 EQU CVTDCB 04240000 CVT4MS1 EQU CVTDCB 04241000 CVT2SPS EQU CVTDCB 04242000 CVT1SSS EQU CVTDCB 04243000 CVTRSV08 EQU CVTDCB 04244000 CVTSTB EQU CVTMAP+112 04245000 CVTQTD00 EQU CVTMAP+108 04246000 CVTQTE00 EQU CVTMAP+104 04247000 CVTCUCB EQU CVTMAP+100 04248000 CVTSJQ EQU CVTMAP+96 04249000 CVTPBLDL EQU CVTMAP+92 04250000 CVTTPC EQU CVTMAP+88 04251000 CVTSVDCB EQU CVTMAP+84 04252000 CVTBRET EQU CVTMAP+82 04253000 CVTEXIT EQU CVTMAP+80 04254000 CVT0FN00 EQU CVTMAP+76 04255000 CVTDARA EQU CVTDAR+1 04256000 CVTRSV07 EQU CVTFLGS1 04257000 CVTRSV06 EQU CVTFLGS1 04258000 CVTRSV05 EQU CVTFLGS1 04259000 CVTRSV04 EQU CVTFLGS1 04260000 CVTRSV03 EQU CVTFLGS1 04261000 CVTRSV02 EQU CVTFLGS1 04262000 CVTRSV01 EQU CVTFLGS1 04263000 CVTDMPLK EQU CVTFLGS1 04264000 CVTXITP EQU CVTMAP+68 04265000 CVTZDTAB EQU CVTMAP+64 04266000 CVTMSLT EQU CVTMAP+60 04267000 CVTDATE EQU CVTMAP+56 04268000 CVTBTERM EQU CVTMAP+52 04269000 CVTSYSAD EQU CVTMAP+48 04270000 CVTXTLER EQU CVTMAP+44 04271000 CVTILK2 EQU CVTMAP+40 04272000 CVTILK1 EQU CVTMAP+36 04273000 CVTPRLTV EQU CVTMAP+32 04274000 CVTPCNVT EQU CVTMAP+28 04275000 CVT0VL00 EQU CVTMAP+24 04276000 CVTXAPG EQU CVTMAP+20 04277000 CVTBUF EQU CVTMAP+16 04278000 CVTJOB EQU CVTMAP+12 04279000 CVTLINK EQU CVTMAP+8 04280000 CVT0EF00 EQU CVTMAP+4 04281000 CVTTCBP EQU CVTMAP 04282000 CVT EQU CVTMAP 04283000 LCCAR125 EQU LCCA+964 04284000 LCCAR124 EQU LCCA+960 04285000 LCCASGPR EQU LCCA+896 04286000 LCCADRT2 EQU LCCA+888 04287000 LCCADRT1 EQU LCCA+880 04288000 LCCAR103 EQU LCCA+876 04289000 LCCAESS2 EQU LCCA+872 04290000 LCCASPLJ EQU LCCA+868 04291000 LCCASMQJ EQU LCCA+864 04292000 LCCAIRT EQU LCCA+736 04293000 LCCAASID EQU LCCA+732 04294000 LCCARV89 EQU LCCA+728 04295000 LCCAPGTA EQU LCCASRBF+2 04296000 LCCASAFN EQU LCCASRBF 04297000 LCCAECSA EQU LCCA+716 04298000 LCCAICR0 EQU LCCA+712 04299000 LCCALWTM EQU LCCA+704 04300000 LCCARV78 EQU LCCA+700 04301000 LCCAPINV EQU LCCA+696 04302000 LCCARV88 EQU LCCA+695 04303000 LCCARV87 EQU LCCALKFG 04304000 LCCARV86 EQU LCCALKFG 04305000 LCCARV85 EQU LCCALKFG 04306000 LCCARV84 EQU LCCALKFG 04307000 LCCALKRD EQU LCCALKFG 04308000 LCCALKAQ EQU LCCALKFG 04309000 LCCALKSA EQU LCCALKFG 04310000 LCCALKDP EQU LCCALKFG 04311000 LCCACRST EQU LCCACREX 04312000 LCCACRDP EQU LCCACREX 04313000 LCCACRLM EQU LCCACREX 04314000 LCCACRIN EQU LCCACREX 04315000 LCCACRRT EQU LCCACREX 04316000 LCCACRLE EQU LCCACREX 04317000 LCCACRRM EQU LCCACREX 04318000 LCCACREF EQU LCCACREX 04319000 LCCAVARY EQU LCCACRFL 04320000 LCCARV73 EQU LCCACRFL 04321000 LCCARV72 EQU LCCACRFL 04322000 LCCARV71 EQU LCCACRFL 04323000 LCCARV70 EQU LCCACRFL 04324000 LCCARV69 EQU LCCACRFL 04325000 LCCACLMS EQU LCCACRFL 04326000 LCCACRTM EQU LCCACRFL 04327000 LCCALCR0 EQU LCCA+688 04328000 LCCACRLC EQU LCCA+684 04329000 LCCARCPU EQU LCCA+680 04330000 LCCADCPU EQU LCCA+676 04331000 LCCASRBJ EQU LCCA+672 04332000 LCCADSSR EQU LCCA+668 04333000 LCCADSSC EQU LCCA+660 04334000 LCCADSS3 EQU LCCA+648 04335000 LCCADSS2 EQU LCCA+636 04336000 LCCADSS1 EQU LCCA+624 04337000 LCCAWTIM EQU LCCA+616 04338000 LCCAITOD EQU LCCA+608 04339000 LCCADTOD EQU LCCA+600 04340000 LCCASTOD EQU LCCA+592 04341000 LCCARIR5 EQU LCCASPSA+44 04342000 LCCARIR4 EQU LCCASPSA+40 04343000 LCCARIR3 EQU LCCASPSA+36 04344000 LCCARIR2 EQU LCCASPSA+32 04345000 LCCARPR5 EQU LCCASPSA+28 04346000 LCCARPR4 EQU LCCASPSA+24 04347000 LCCARPR3 EQU LCCASPSA+20 04348000 LCCARPR2 EQU LCCASPSA+16 04349000 LCCADSR5 EQU LCCASPSA+12 04350000 LCCADSR4 EQU LCCASPSA+8 04351000 LCCADSR3 EQU LCCASPSA+4 04352000 LCCADSR2 EQU LCCASPSA 04353000 LCCARV68 EQU LCCA+543 04354000 LCCAPSMK EQU LCCA+542 04355000 LCCARV67 EQU LCCADSF2 04356000 LCCARV66 EQU LCCADSF2 04357000 LCCARV65 EQU LCCADSF2 04358000 LCCARV64 EQU LCCADSF2 04359000 LCCADSRW EQU LCCADSF2 04360000 LCCADSPL EQU LCCADSF2 04361000 LCCAGSRB EQU LCCADSF2 04362000 LCCASRBM EQU LCCADSF2 04363000 LCCARV61 EQU LCCADSF1 04364000 LCCARV60 EQU LCCADSF1 04365000 LCCARV59 EQU LCCADSF1 04366000 LCCARV58 EQU LCCADSF1 04367000 LCCATIMR EQU LCCADSF1 04368000 LCCADSS EQU LCCADSF1 04369000 LCCAVCPU EQU LCCADSF1 04370000 LCCAACR EQU LCCADSF1 04371000 LCCAASCP EQU LCCA+532 04372000 LCCAESSA EQU LCCA+528 04373000 LCCARV55 EQU LCCASPN4 04374000 LCCARV54 EQU LCCASPN4 04375000 LCCARV53 EQU LCCASPN4 04376000 LCCARV52 EQU LCCASPN4 04377000 LCCARV51 EQU LCCASPN4 04378000 LCCARV50 EQU LCCASPN4 04379000 LCCARV49 EQU LCCASPN4 04380000 LCCARV48 EQU LCCASPN4 04381000 LCCARV47 EQU LCCASPN3 04382000 LCCARV46 EQU LCCASPN3 04383000 LCCARV45 EQU LCCASPN3 04384000 LCCARV44 EQU LCCASPN3 04385000 LCCARV43 EQU LCCASPN3 04386000 LCCARV42 EQU LCCASPN3 04387000 LCCARV41 EQU LCCASPN3 04388000 LCCARV40 EQU LCCASPN3 04389000 LCCARV39 EQU LCCASPN2 04390000 LCCARV38 EQU LCCASPN2 04391000 LCCARV37 EQU LCCASPN2 04392000 LCCARV36 EQU LCCASPN2 04393000 LCCARV35 EQU LCCASPN2 04394000 LCCARV34 EQU LCCASPN2 04395000 LCCARV33 EQU LCCASPN2 04396000 LCCARV32 EQU LCCASPN2 04397000 LCCARV31 EQU LCCASPN1 04398000 LCCARV30 EQU LCCASPN1 04399000 LCCAMFIO EQU LCCASPN1 04400000 LCCARSTR EQU LCCASPN1 04401000 LCCATSPN EQU LCCASPN1 04402000 LCCALOCK EQU LCCASPN1 04403000 LCCASIGP EQU LCCASPN1 04404000 LCCAPTLB EQU LCCASPN1 04405000 LCCARV27 EQU LCCAIHR4 04406000 LCCARV26 EQU LCCAIHR4 04407000 LCCARV25 EQU LCCAIHR4 04408000 LCCARV24 EQU LCCAIHR4 04409000 LCCARV23 EQU LCCAIHR4 04410000 LCCARV22 EQU LCCAIHR4 04411000 LCCARV21 EQU LCCAIHR4 04412000 LCCARV20 EQU LCCAIHR4 04413000 LCCARV19 EQU LCCAIHR3 04414000 LCCARV18 EQU LCCAIHR3 04415000 LCCARV17 EQU LCCAIHR3 04416000 LCCARV16 EQU LCCAIHR3 04417000 LCCARV15 EQU LCCAIHR3 04418000 LCCARV14 EQU LCCAIHR3 04419000 LCCARV13 EQU LCCAIHR3 04420000 LCCARV12 EQU LCCAIHR3 04421000 LCCARV11 EQU LCCAIHR2 04422000 LCCARV10 EQU LCCAIHR2 04423000 LCCARV09 EQU LCCAIHR2 04424000 LCCARV08 EQU LCCAIHR2 04425000 LCCARV07 EQU LCCAIHR2 04426000 LCCARV06 EQU LCCAIHR2 04427000 LCCARV05 EQU LCCAIHR2 04428000 LCCARV04 EQU LCCAIHR2 04429000 LCCARV03 EQU LCCAIHR1 04430000 LCCARV02 EQU LCCAIHR1 04431000 LCCARV01 EQU LCCAIHR1 04432000 LCCAPPIE EQU LCCAIHR1 04433000 LCCAPSG1 EQU LCCAIHR1 04434000 LCCAPDAT EQU LCCAIHR1 04435000 LCCAXRC2 EQU LCCAIHR1 04436000 LCCAXRC1 EQU LCCAIHR1 04437000 LCCAIOPS EQU LCCA+512 04438000 LCCAGPGR EQU LCCA+448 04439000 LCCAR133 EQU LCCA+444 04440000 LCCAR132 EQU LCCA+440 04441000 LCCAR131 EQU LCCA+436 04442000 LCCAR130 EQU LCCA+432 04443000 LCCAR129 EQU LCCA+428 04444000 LCCAR128 EQU LCCA+424 04445000 LCCAR127 EQU LCCA+420 04446000 LCCAR126 EQU LCCA+416 04447000 LCCARSGR EQU LCCA+352 04448000 LCCAXGR3 EQU LCCA+288 04449000 LCCAXGR2 EQU LCCA+224 04450000 LCCAXGR1 EQU LCCA+160 04451000 LCCACR0 EQU LCCA+156 04452000 LCCAMCR1 EQU LCCA+152 04453000 LCCAPVAD EQU LCCA+148 04454000 LCCAPINT EQU LCCA+144 04455000 LCCAPPSW EQU LCCA+136 04456000 LCCAPGR2 EQU LCCA+72 04457000 LCCAPGR1 EQU LCCA+8 04458000 LCCARV77 EQU LCCA+6 04459000 LCCACPUA EQU LCCA+4 04460000 LCCALCCA EQU LCCA 04461000 WSACASMS EQU WSAC+60 04462000 WSACASMD EQU WSAC+56 04463000 WSACCCH EQU WSAC+52 04464000 WSACRRSA EQU WSAC+48 04465000 WSACREST EQU WSAC+44 04466000 WSACRSTI EQU WSAC+40 04467000 WSACABTM EQU WSAC+36 04468000 WSACMF1 EQU WSAC+32 04469000 WSACEDS0 EQU WSAC+28 04470000 WSACIOS EQU WSAC+24 04471000 WSACRTMK EQU WSAC+20 04472000 WSACACR EQU WSAC+16 04473000 WSACTIME EQU WSAC+12 04474000 WSACGTF EQU WSAC+4 04475000 WSACCWSA EQU WSAC 04476000 DMDTEND EQU DMDT+20 04477000 DMDTRUC EQU DMDT+16 04478000 DMDTRUA EQU DMDT+6 04479000 DMDTWT EQU DMDT+3 04480000 DMDTHI EQU DMDT+2 04481000 DMDTLO EQU DMDT+1 04482000 DMDTNO EQU DMDT 04483000 RMEPSND EQU RMEP+32 04484000 RMEPEND EQU RMEP+16 04485000 RMEPVFL EQU RMEPFLG 04486000 RMEPERA EQU RMEPEPB+4 04487000 OUXBEND EQU OUXB+144 04488000 OUXBTSW EQU OUXB+140 04489000 OUXBFIXC EQU OUXB+138 04490000 OUXBNVC EQU OUXB+136 04491000 OUXBUIC EQU OUXB+134 04492000 OUXBVSC EQU OUXB+132 04493000 OUXBILS EQU OUXB+128 04494000 OUXBRSV1 EQU OUXB+126 04495000 OUXBWCT EQU OUXB+124 04496000 OUXBPRS EQU OUXB+120 04497000 OUXBSTD EQU OUXB+116 04498000 OUXBITD EQU OUXB+112 04499000 OUXBMSS EQU OUXB+104 04500000 OUXBCPS EQU OUXB+96 04501000 OUXBAET EQU OUXB+92 04502000 OUXBTRR EQU OUXB+88 04503000 OUXBJBR EQU OUXB+84 04504000 OUXBTRT EQU OUXB+80 04505000 OUXBTRS EQU OUXB+76 04506000 OUXBJBT EQU OUXB+72 04507000 OUXBJBS EQU OUXB+68 04508000 OUXBTRC EQU OUXB+64 04509000 OUXBNQT EQU OUXB+60 04510000 OUXBIOSM EQU OUXB+56 04511000 OUXBSTC EQU OUXB+54 04512000 OUXBIOS EQU OUXB+52 04513000 OUXBSTCT EQU OUXB+48 04514000 OUXBCAPR EQU OUXB+44 04515000 OUXBCAPI EQU OUXB+40 04516000 OUXBVAMR EQU OUXB+36 04517000 OUXBVAMO EQU OUXB+32 04518000 OUXBVAMI EQU OUXB+28 04519000 OUXBPREC EQU OUXB+24 04520000 OUXBPOUT EQU OUXB+20 04521000 OUXBPIN EQU OUXB+16 04522000 OUXBRSW EQU OUXB+12 04523000 OUXBMET EQU OUXB+8 04524000 OUXBPET EQU OUXB+4 04525000 OUCBEND EQU OUCB+136 04526000 OUCBNTSP EQU OUCB+134 04527000 OUCBNDS EQU OUCB+132 04528000 OUCBPST EQU OUCB+120 04529000 OUCBPS2 EQU OUCBPSS+4 04530000 OUCBPS1 EQU OUCBPSS 04531000 OUCBIOSM EQU OUCB+108 04532000 OUCBTMP EQU OUCB+104 04533000 OUCBR03 EQU OUCB+102 04534000 OUCBIOR EQU OUCB+100 04535000 OUCBCF2 EQU OUCBCFL 04536000 OUCBRSM EQU OUCBCFL 04537000 OUCBWSS EQU OUCB+78 04538000 OUCBPSO EQU OUCB+76 04539000 OUCBTMO EQU OUCB+72 04540000 OUCBTMS EQU OUCB+68 04541000 OUCBMSO EQU OUCB+64 04542000 OUCBIOC EQU OUCB+60 04543000 OUCBCPU EQU OUCB+56 04544000 OUCBWMS EQU OUCB+52 04545000 OUCBTMW EQU OUCB+48 04546000 OUCBIMCB EQU OUCB+44 04547000 OUCBSWC EQU OUCB+38 04548000 OUCBDMN EQU OUCB+36 04549000 OUCBWMG EQU OUCB+32 04550000 OUCBPGP EQU OUCB+31 04551000 OUCBR40 EQU OUCB+30 04552000 OUCBR30 EQU OUCB+29 04553000 OUCBSPG EQU OUCB+28 04554000 OUCBRDP EQU OUCB+27 04555000 OUCBRPG EQU OUCB+25 04556000 OUCBNPG EQU OUCB+24 04557000 OUCBUF7 EQU OUCBUFL 04558000 OUCBUF6 EQU OUCBUFL 04559000 OUCBUF5 EQU OUCBUFL 04560000 OUCBTSWC EQU OUCBUFL 04561000 OUCBTSWP EQU OUCBUFL 04562000 OUCBRSWP EQU OUCBUFL 04563000 OUCBNQC EQU OUCB+22 04564000 OUCBMWT EQU OUCBEFL 04565000 OUCBQSC EQU OUCBEFL 04566000 OUCBQSS EQU OUCBEFL 04567000 OUCBNQF EQU OUCBEFL 04568000 OUCBCIM EQU OUCBEFL 04569000 OUCBOWT EQU OUCBEFL 04570000 OUCBTRM EQU OUCBEFL 04571000 OUCBLWT EQU OUCBEFL 04572000 OUCBINC EQU OUCBTFL 04573000 OUCBINP EQU OUCBTFL 04574000 OUCBMAR EQU OUCBTFL 04575000 OUCBPCH EQU OUCBTFL 04576000 OUCBRTR EQU OUCBTFL 04577000 OUCBNTR EQU OUCBTFL 04578000 OUCBSTR EQU OUCBTFL 04579000 OUCBATR EQU OUCBTFL 04580000 OUCBASW EQU OUCBAFL 04581000 OUCBNWT EQU OUCBAFL 04582000 OUCBR02 EQU OUCBAFL 04583000 OUCBJSR EQU OUCBAFL 04584000 OUCBAF0 EQU OUCBAFL 04585000 OUCBDTA EQU OUCBYFL 04586000 OUCBMNT EQU OUCBYFL 04587000 OUCBLOG EQU OUCBYFL 04588000 OUCBSTT EQU OUCBYFL 04589000 OUCBPSTE EQU OUCBYFL 04590000 OUCBPVL EQU OUCBSFL 04591000 OUCBCTI EQU OUCBSFL 04592000 OUCBQF7 EQU OUCBQFL 04593000 OUCBQF6 EQU OUCBQFL 04594000 OUCBQSFL EQU OUCBQFL 04595000 ASCBEND EQU ASCB+208 04596000 ASCBSRBT EQU ASCB+200 04597000 ASCBSWTL EQU ASCB+196 04598000 ASCBRS14 EQU ASCB+195 04599000 ASCBSMCT EQU ASCB+194 04600000 ASCBRS12 EQU ASCB+192 04601000 ASCBPCTT EQU ASCB+188 04602000 ASCBVGTT EQU ASCB+184 04603000 ASCBRV43 EQU ASCBSRQ4 04604000 ASCBRV42 EQU ASCBSRQ4 04605000 ASCBRV41 EQU ASCBSRQ4 04606000 ASCBRV40 EQU ASCBSRQ4 04607000 ASCBRV39 EQU ASCBSRQ4 04608000 ASCBRV38 EQU ASCBSRQ4 04609000 ASCBRV37 EQU ASCBSRQ4 04610000 ASCBRV36 EQU ASCBSRQ4 04611000 ASCBRV35 EQU ASCBSRQ3 04612000 ASCBRV34 EQU ASCBSRQ3 04613000 ASCBRV33 EQU ASCBSRQ3 04614000 ASCBRV32 EQU ASCBSRQ3 04615000 ASCBRV31 EQU ASCBSRQ3 04616000 ASCBRV30 EQU ASCBSRQ3 04617000 ASCBRV29 EQU ASCBSRQ3 04618000 ASCBRV28 EQU ASCBSRQ3 04619000 ASCBRV27 EQU ASCBSRQ2 04620000 ASCBRV26 EQU ASCBSRQ2 04621000 ASCBRV25 EQU ASCBSRQ2 04622000 ASCBRV24 EQU ASCBSRQ2 04623000 ASCBRV23 EQU ASCBSRQ2 04624000 ASCBRV22 EQU ASCBSRQ2 04625000 ASCBRV21 EQU ASCBSRQ2 04626000 ASCBRV20 EQU ASCBSRQ2 04627000 ASCBRV19 EQU ASCBSRQ1 04628000 ASCBRV18 EQU ASCBSRQ1 04629000 ASCBRV17 EQU ASCBSRQ1 04630000 ASCBRV16 EQU ASCBSRQ1 04631000 ASCBRV15 EQU ASCBSRQ1 04632000 ASCBRV14 EQU ASCBSRQ1 04633000 ASCBRV13 EQU ASCBSRQ1 04634000 ASCBSTA EQU ASCBSRQ1 04635000 ASCBJBNS EQU ASCB+176 04636000 ASCBJBNI EQU ASCB+172 04637000 ASCBMCC EQU ASCB+168 04638000 ASCBRTWA EQU ASCB+164 04639000 ASCBIQEA EQU ASCB+160 04640000 ASCBXMPQ EQU ASCB+156 04641000 ASCBRS01 EQU ASCB+154 04642000 ASCBFMCT EQU ASCB+152 04643000 ASCBOUCB EQU ASCB+144 04644000 ASCBMECB EQU ASCB+140 04645000 ASCBQECB EQU ASCB+136 04646000 ASCBLSQH EQU ASCBLKGP+4 04647000 ASCBLOCK EQU ASCBLKGP 04648000 ASCBTCBS EQU ASCB+124 04649000 ASCBNVSC EQU ASCB+122 04650000 ASCBVSC EQU ASCB+120 04651000 ASCBSRBS EQU ASCB+118 04652000 ASCBSSRB EQU ASCB+116 04653000 ASCBRV06 EQU ASCBFLG2 04654000 ASCBRV05 EQU ASCBFLG2 04655000 ASCBRV04 EQU ASCBFLG2 04656000 ASCBSNQS EQU ASCBFLG2 04657000 ASCBS2S EQU ASCBFLG2 04658000 ASCBCEXT EQU ASCBFLG2 04659000 ASCBPXMT EQU ASCBFLG2 04660000 ASCBXMPT EQU ASCBFLG2 04661000 ASCBRF07 EQU ASCBDSP1 04662000 ASCBRF06 EQU ASCBDSP1 04663000 ASCBRF05 EQU ASCBDSP1 04664000 ASCBRF04 EQU ASCBDSP1 04665000 ASCBRF03 EQU ASCBDSP1 04666000 ASCBRF02 EQU ASCBDSP1 04667000 ASCBFAIL EQU ASCBDSP1 04668000 ASCBNOQ EQU ASCBDSP1 04669000 ASCBSWCT EQU ASCB+112 04670000 ASCBASXB EQU ASCB+108 04671000 ASCBTMCH EQU ASCB+104 04672000 ASCBNSWP EQU ASCBFLG1 04673000 ASCBTYP1 EQU ASCBFLG1 04674000 ASCBSTND EQU ASCBFLG1 04675000 ASCBABNT EQU ASCBFLG1 04676000 ASCBTERM EQU ASCBFLG1 04677000 ASCBS3S EQU ASCBFLG1 04678000 ASCBCMSH EQU ASCBFLG1 04679000 ASCBTOFF EQU ASCBFLG1 04680000 ASCBRF01 EQU ASCBRCTF 04681000 ASCBTMLW EQU ASCBRCTF 04682000 ASCBOUT EQU ASCBRCTF 04683000 ASCBWAIT EQU ASCBRCTF 04684000 ASCBRV08 EQU ASCBRCTF 04685000 ASCBFQU EQU ASCBRCTF 04686000 ASCBFRS EQU ASCBRCTF 04687000 ASCBTMNO EQU ASCBRCTF 04688000 ASCBAFFN EQU ASCBFW1 04689000 ASCBDUMP EQU ASCB+96 04690000 ASCBRV44 EQU ASCB+92 04691000 ASCBUBET EQU ASCB+88 04692000 ASCBJSTL EQU ASCB+80 04693000 ASCBEWST EQU ASCB+72 04694000 ASCBEJST EQU ASCB+64 04695000 ASCBTSB EQU ASCB+60 04696000 ASCBCSCB EQU ASCB+56 04697000 ASCBRSMA EQU ASCBRSM+1 04698000 ASCBRV54 EQU ASCBRSMF 04699000 ASCBRV53 EQU ASCBRSMF 04700000 ASCBRV52 EQU ASCBRSMF 04701000 ASCBRV51 EQU ASCBRSMF 04702000 ASCBVEQR EQU ASCBRSMF 04703000 ASCBN2LP EQU ASCBRSMF 04704000 ASCB1LPU EQU ASCBRSMF 04705000 ASCB2LPU EQU ASCBRSMF 04706000 ASCBLDA EQU ASCB+48 04707000 ASCBSTOR EQU ASCB+44 04708000 ASCBRV07 EQU ASCB+42 04709000 ASCBIOSM EQU ASCB+40 04710000 ASCBSEQN EQU ASCB+38 04711000 ASCBASID EQU ASCB+36 04712000 ASCBCPUS EQU ASCB+32 04713000 ASCBSPL EQU ASCB+28 04714000 ASCBIOSP EQU ASCB+24 04715000 ASCBSYNC EQU ASCBSUPC+4 04716000 ASCBSVRB EQU ASCBSUPC 04717000 ASCBCMSF EQU ASCB+12 04718000 ASCBBWDP EQU ASCB+8 04719000 ASCBFWDP EQU ASCB+4 04720000 ASCBASCB EQU ASCB 04721000 ASCBEGIN EQU ASCB 04722000 RRPAEND EQU RRPA+24 04723000 RRPARTC EQU RRPA+11 04724000 RRPAKEY EQU RRPA+10 04725000 RRPARCI EQU RRPAFLG+1 04726000 RRPARTI EQU RRPAFLG+1 04727000 RRPAF11 EQU RRPAFLG+1 04728000 RRPAIPS EQU RRPAFLG+1 04729000 RRPAWAR EQU RRPAFLG+1 04730000 RRPAF07 EQU RRPAFLG 04731000 RRPAF05 EQU RRPAFLG 04732000 RRPAF04 EQU RRPAFLG 04733000 RRPADSP EQU RRPAFLG 04734000 RRPAENB EQU RRPAFLG 04735000 RRPADSB EQU RRPAFLG 04736000 RRPAVLU EQU RRPAINP 04737000 @NM00002 EQU RRPAFLG0 04738000 RRPANSWI EQU RRPAFLG0 04739000 RRPAASD EQU RRPAINC 04740000 EPSTEND EQU EPST+80 04741000 EPSTCSI EQU RMEPBCSI 04742000 EPSTCSO EQU RMEPBCSO 04743000 EPDTEND EQU EPDT+96 04744000 RMEPBRPS EQU EPDT+80 04745000 RMEPBHIT EQU EPDT+64 04746000 RMEPBUXB EQU EPDT+48 04747000 RMEPBIL4 EQU EPDT+32 04748000 RMEPBDEL EQU EPDT+16 04749000 RMEPBIPS EQU EPDT 04750000 EPATEND EQU EPAT+400 04751000 RMEPBEQ1 EQU EPAT+336 04752000 RMEPBAP1 EQU EPAT+304 04753000 RMEPBCL1 EQU EPAT+272 04754000 RMEPBWM2 EQU EPAT+240 04755000 RMEPBIL1 EQU EPAT+208 04756000 RMEPBASM EQU EPAT+176 04757000 RMEPBMS2 EQU EPAT+160 04758000 RMEPBPR5 EQU EPAT+144 04759000 RMEPBMS6 EQU EPAT+112 04760000 RMEPBSQA EQU EPAT+96 04761000 RMEPBRM2 EQU EPAT+64 04762000 RMEPBRM1 EQU EPAT+32 04763000 RMSBEND EQU RMSB+120 04764000 RMSBRA9 EQU RMSB+116 04765000 RMSBIL0 EQU RMSB+112 04766000 RMSBCL0 EQU RMSB+108 04767000 RMSBRA6 EQU RMSB+104 04768000 RMSBNOP EQU RMSB+100 04769000 RMSBSET EQU RMSB+96 04770000 RMSBWR6 EQU RMSB+92 04771000 RMSBWR4 EQU RMSB+88 04772000 RMSBTRC EQU RMSB+84 04773000 RMSBWMY EQU RMSB+80 04774000 RMSBWMR EQU RMSB+76 04775000 RMSBWMQ EQU RMSB+72 04776000 RMSBWMO EQU RMSB+68 04777000 RMSBWMN EQU RMSB+64 04778000 RMSBWMK EQU RMSB+60 04779000 RMSBWM4 EQU RMSB+56 04780000 RMSBWM1 EQU RMSB+52 04781000 RMSBWM5 EQU RMSB+48 04782000 RMSBCRN EQU RMSB+40 04783000 RMSBI10 EQU RMSB+32 04784000 RMSBI09 EQU RMSB+28 04785000 RMSBR24 EQU RMSB+24 04786000 RMSBI03 EQU RMSB+4 04787000 RMEXEND EQU RMEX+64 04788000 RMEXSRE EQU RMEX+60 04789000 RMEXXPE EQU RMEX+56 04790000 RMEXRR2 EQU RMEX+52 04791000 RMEXRR1 EQU RMEX+48 04792000 RMEXCET EQU RMEX+40 04793000 RMEXCXX EQU RMEX+36 04794000 RMEXEVT EQU RMEPBEVT 04795000 RMCAEND EQU RMCA+168 04796000 RMCAR90 EQU RMCA+164 04797000 RMCAUSSC EQU RMCASRC+36 04798000 RMCAEXSC EQU RMCASRC+32 04799000 RMCANQSC EQU RMCASRC+28 04800000 RMCARQSC EQU RMCASRC+24 04801000 RMCADWSC EQU RMCASRC+20 04802000 RMCARSSC EQU RMCASRC+16 04803000 RMCAXSSC EQU RMCASRC+12 04804000 RMCALWSC EQU RMCASRC+8 04805000 RMCATISC EQU RMCASRC+4 04806000 RMCATOSC EQU RMCASRC 04807000 RMCAR14 EQU RMCA+116 04808000 RMCAR13 EQU RMCA+112 04809000 RMCAWKA EQU RMCA+80 04810000 RMCAMAS EQU RMCA+76 04811000 RMCAR20 EQU RMCA+74 04812000 RMCABCPG EQU RMCA+73 04813000 RMCALGPG EQU RMCA+72 04814000 RMCAISV EQU RMCA+70 04815000 RMCAR11 EQU RMCA+68 04816000 RMCAR10 EQU RMCA+60 04817000 RMCARSV9 EQU RMCA+56 04818000 RMCARSV8 EQU RMCA+44 04819000 RMCARSV7 EQU RMCA+40 04820000 RMCARSVF EQU RMCAFLGS 04821000 RMCASAAF EQU RMCAFLGS 04822000 RMCARSV5 EQU RMCA+32 04823000 RMCARSV4 EQU RMCA+28 04824000 RMCARSV3 EQU RMCA+24 04825000 RMCATRS EQU RMCA+16 04826000 RMCATQS EQU RMCA+12 04827000 RMCARSV2 EQU RMCA+10 04828000 RMCARSV1 EQU RMCA+8 04829000 RMCAINUS EQU RMCA+6 04830000 RMCAR04 EQU RMCA+4 04831000 RMCANAME EQU RMCA 04832000 RMPTEND EQU RMPT+72 04833000 RMPTOPE EQU RMPT+66 04834000 RMPTOPI EQU RMPT+63 04835000 RMPTOPC EQU RMPT+60 04836000 RMPTWMET EQU RMPT+48 04837000 RMPTRSV3 EQU RMPT+38 04838000 RMPTRSV2 EQU RMPT+36 04839000 RMPTRSV1 EQU RMPT+32 04840000 RMPTTCS EQU RMPT+20 04841000 RMPTIMN EQU RMPT+16 04842000 RMPTERV EQU RMPT+12 04843000 RMPTNAME EQU RMPT 04844000 RCTEND EQU RCT+88 04845000 RCVRSVF3 EQU RCT+84 04846000 RCVRSVF2 EQU RCT+80 04847000 RCVTAPAD EQU RCT+76 04848000 RCVRSVF1 EQU RCT+74 04849000 RCVTOTDF EQU RCT+72 04850000 RCVBPTTM EQU RCT+68 04851000 RCVBPTCT EQU RCT+64 04852000 RCVASMQ EQU RCT+60 04853000 RCVAVQP EQU RCT+56 04854000 RCVCPUC EQU RCT+52 04855000 RCVUICC EQU RCT+48 04856000 RCVPTR EQU RCT+46 04857000 RCVASMQA EQU RCT+44 04858000 RCVAVQC EQU RCT+42 04859000 RCVCPUA EQU RCT+40 04860000 RCVUICA EQU RCT+38 04861000 RCVCTMC EQU RCT+36 04862000 RCCRSVF3 EQU RCT+32 04863000 RCCRSVF2 EQU RCT+28 04864000 RCCRSVF1 EQU RCT+26 04865000 RCCLCHRR EQU RCT+24 04866000 RCCLCHUT EQU RCT+22 04867000 RCCTOTUT EQU RCT+20 04868000 RCCASMTH EQU RCT+18 04869000 RCCASMTL EQU RCT+16 04870000 RCCPTRTH EQU RCT+14 04871000 RCCPTRTL EQU RCT+12 04872000 RCCCPUTH EQU RCT+10 04873000 RCCCPUTL EQU RCT+8 04874000 RCCUICTH EQU RCT+6 04875000 RCCUICTL EQU RCT+4 04876000 RCTRCT EQU RCT 04877000 MCTEND EQU MCT+96 04878000 MCVRSVF3 EQU MCT+92 04879000 MCVRSVF2 EQU MCT+88 04880000 MCVRSVF1 EQU MCT+84 04881000 MCCINTMX EQU MCT+80 04882000 MCCPR1IN EQU MCT+76 04883000 MCCUICIN EQU MCT+72 04884000 MCCUICBD EQU MCT+68 04885000 MCTRSVB1 EQU MCT+67 04886000 MCTXRSVD EQU MCT+66 04887000 MCTFX2 EQU MCTOFLGS 04888000 MCTFX1 EQU MCTOFLGS 04889000 MCTSMS2 EQU MCTOFLGS 04890000 MCTSMS1 EQU MCTOFLGS 04891000 MCTAMS2 EQU MCTOFLGS 04892000 @NM00001 EQU MCTOFLGS 04893000 MCTASM2 EQU MCTOFLGS 04894000 MCTASM1 EQU MCTOFLGS 04895000 MCTSF04 EQU MCTSFLGS 04896000 MCTFAVQ EQU MCTSFLGS 04897000 MCTAVQ1 EQU MCTSFLGS 04898000 MCTSQA2 EQU MCTSFLGS 04899000 MCTSQA1 EQU MCTSFLGS 04900000 MCVAVQC EQU MCT+60 04901000 MCVFRCNT EQU MCT+58 04902000 MCVSTCRI EQU MCT+56 04903000 MCCEND EQU MCT+56 04904000 MCCASMT2 EQU MCT+54 04905000 MCCASMT1 EQU MCT+52 04906000 MCCRSVH1 EQU MCT+50 04907000 MCCPLUS EQU MCT+48 04908000 MCCMS403 EQU MCT+44 04909000 MCCMS402 EQU MCT+40 04910000 MCCMS401 EQU MCT+36 04911000 MCCMS400 EQU MCT+32 04912000 MCCMS203 EQU MCT+28 04913000 MCCMS202 EQU MCT+24 04914000 MCCMS201 EQU MCT+20 04915000 MCCMS200 EQU MCT+16 04916000 MCCMS102 EQU MCT+12 04917000 MCCMS101 EQU MCT+8 04918000 MCCMS100 EQU MCT+4 04919000 MCTMCT EQU MCT 04920000 ICTEND EQU ICT+88 04921000 ICTRSVB3 EQU ICT+87 04922000 ICTRSVB2 EQU ICT+86 04923000 ICTRSVB1 EQU ICT+85 04924000 ICT003 EQU ICTFLAGS 04925000 ICTIOL EQU ICTFLAGS 04926000 ICTDRSV4 EQU ICTFLAGS 04927000 ICVIRSV3 EQU ICT+80 04928000 ICVULCBT EQU ICT+76 04929000 ICVOLCBT EQU ICT+72 04930000 ICVLCBPT EQU ICT+68 04931000 ICVLUTBT EQU ICT+64 04932000 ICCEND EQU ICT+64 04933000 ICCRSV01 EQU ICT+62 04934000 ICCEDSUT EQU ICT+60 04935000 ICCSRSV2 EQU ICT+58 04936000 ICCSIGUP EQU ICT+56 04937000 ICCINDAT EQU ICT+52 04938000 ICCINLOT EQU ICT+48 04939000 ICCINHIT EQU ICT+44 04940000 ICCDAUTH EQU ICT+42 04941000 ICCLOUTH EQU ICT+40 04942000 ICCHIUTH EQU ICT+38 04943000 ICCDASF2 EQU ICT+36 04944000 ICCDASF1 EQU ICT+34 04945000 ICCMINRV EQU ICT+32 04946000 ICCMAXRV EQU ICT+30 04947000 ICCRVSCF EQU ICT+28 04948000 ICCMNIOR EQU ICT+26 04949000 ICCLCHN EQU ICT+24 04950000 ICCLCLST EQU ICT+20 04951000 ICCMNSWP EQU ICT+16 04952000 ICCMNUIN EQU ICT+12 04953000 ICCMXICT EQU ICT+8 04954000 ICCMRSV1 EQU ICT+4 04955000 ICTICT EQU ICT 04956000 CCVEND EQU CCT+128 04957000 CCTFLG2 EQU CCT+125 04958000 CCTALL EQU CCTFLG1 04959000 CCVCPUCT EQU CCT+122 04960000 CCVENQCT EQU CCT+120 04961000 CCVLGFMC EQU CCT+118 04962000 CCVLGUTL EQU CCT+116 04963000 CCVR07 EQU CCT+114 04964000 CCVR06 EQU CCT+112 04965000 CCVUTILP EQU CCT+110 04966000 CCVR05 EQU CCT+108 04967000 CCVIMBBT EQU CCT+104 04968000 CCVEJST EQU CCT+100 04969000 CCVPGCPF EQU CCT+96 04970000 CCVRVSWF EQU CCT+92 04971000 CCVRBSTD EQU CCT+88 04972000 CCVR04 EQU CCT+84 04973000 CCVRBSWT EQU CCT+80 04974000 CCVR03 EQU CCT+76 04975000 CCCEND EQU CCT+76 04976000 CCCRSVH1 EQU CCT+74 04977000 CCCSCFC2 EQU CCT+72 04978000 CCCSCFC1 EQU CCT+70 04979000 CCCR02 EQU CCT+68 04980000 CCCSIGUR EQU CCT+66 04981000 CCCSIGDP EQU CCT+64 04982000 CCCSCFAC EQU CCT+62 04983000 CCCMINRV EQU CCT+60 04984000 CCCMAXRV EQU CCT+58 04985000 CCCLOSCF EQU CCT+56 04986000 CCCHISCF EQU CCT+54 04987000 CCCUTLOT EQU CCT+52 04988000 CCCUTHIT EQU CCT+50 04989000 CCCAPRHT EQU CCT+48 04990000 CCCAPRLT EQU CCT+46 04991000 CCCR01 EQU CCT+44 04992000 CCCAPGDP EQU CCT+42 04993000 CCCAPMDP EQU CCT+40 04994000 CCCAPLDP EQU CCT+38 04995000 CCCAPBDP EQU CCT+36 04996000 CCCAPROT EQU CCT+34 04997000 CCCAPDIV EQU CCT+32 04998000 CCCRSVF1 EQU CCT+28 04999000 CCCMNSIN EQU CCT+24 05000000 CCCMNUIN EQU CCT+20 05001000 CCCAPDEL EQU CCT+16 05002000 CCCAPMAX EQU CCT+12 05003000 CCCAPMIN EQU CCT+8 05004000 CCCAPMET EQU CCT+4 05005000 CCTCCT EQU CCT 05006000 RMCTEND EQU RMCT+192 05007000 RMCTR50 EQU RMCT+190 05008000 RMCTDMNC EQU RMCT+188 05009000 RMCTTOCI EQU RMCT+160 05010000 RMCTCPID EQU RMCT+156 05011000 RMCTTELM EQU RMCT+152 05012000 RMCTF09 EQU RMCTFLGS+1 05013000 RMCTMFS EQU RMCTFLGS+1 05014000 RMCTF07 EQU RMCTFLGS+1 05015000 RMCTF06 EQU RMCTFLGS 05016000 RMCTRSV2 EQU RMCTFLGS 05017000 RMCTSTW EQU RMCTFLGS 05018000 RMCTRSV1 EQU RMCTFLGS 05019000 RMCTINIT EQU RMCTFLGS 05020000 RMCTF03 EQU RMCTFLGS 05021000 RMCTMFA EQU RMCTFLGS 05022000 RMCTRQSV EQU RMCT+144 05023000 RMCTTOC EQU RMCT+128 05024000 RMCTR10 EQU RMCT+116 05025000 RMCTWAMT EQU RMCT+88 05026000 RMCTWAST EQU RMCT+84 05027000 RMCTEPPR EQU RMCT+80 05028000 RMCTFLTM EQU RMCT+76 05029000 RMCTEPET EQU RMCT+72 05030000 RMCTITT EQU RMCT+68 05031000 RMCTADJC EQU RMCT+64 05032000 RMCTEPBG EQU RMCT+60 05033000 RMCTEPPA EQU RMCT+48 05034000 RMCTRMSB EQU RMCT+44 05035000 RMCTRMEX EQU RMCT+40 05036000 RMCTRMPD EQU RMCT+36 05037000 RMCTRLCT EQU RMCT+28 05038000 RMCTWMST EQU RMCT+24 05039000 RMCTRMCA EQU RMCT+20 05040000 RMCTRMPT EQU RMCT+16 05041000 RMCTMCT EQU RMCT+12 05042000 RMCTICT EQU RMCT+8 05043000 RMCTCCT EQU RMCT+4 05044000 RMCTNAME EQU RMCT 05045000 @NM00026 EQU PSA+3668 05046000 PSASTAK EQU PSA+3072 05047000 @NM00025 EQU PSA+1048 05048000 PSAUSEND EQU PSA+1048 05049000 PSARV062 EQU PSA+1044 05050000 PSACDAL EQU PSA+1040 05051000 PSAWTCOD EQU PSA+1036 05052000 PSAATCVT EQU PSA+1032 05053000 PSAPCPSW EQU PSA+1024 05054000 PSAPIR2 EQU PSA+1020 05055000 PSARV059 EQU PSA+1018 05056000 PSASVC13 EQU PSA+1016 05057000 PSALSFCC EQU PSA+1012 05058000 PSASFACC EQU PSA+1008 05059000 PSASTOP EQU PSA+992 05060000 PSASTART EQU PSA+976 05061000 PSARSPSW EQU PSA+968 05062000 PSASRPSW EQU PSA+960 05063000 PSARV045 EQU PSA+892 05064000 PSARV044 EQU PSA+888 05065000 PSARV043 EQU PSA+884 05066000 PSARV042 EQU PSA+880 05067000 PSARV041 EQU PSA+876 05068000 PSARV040 EQU PSA+872 05069000 PSARV025 EQU PSA+868 05070000 PSADSSED EQU PSA+868 05071000 PSADSSPR EQU PSA+864 05072000 PSADSSFW EQU PSA+860 05073000 PSADSS14 EQU PSA+856 05074000 PSADSSPP EQU PSA+848 05075000 PSADSSRP EQU PSA+840 05076000 PSADSS05 EQU PSADSSF4 05077000 PSADSS10 EQU PSADSSF4 05078000 PSADSSVE EQU PSADSSF4 05079000 PSADSSDE EQU PSADSSF4 05080000 PSADSSC0 EQU PSADSSF4 05081000 PSADSSIE EQU PSADSSF4 05082000 PSADSS12 EQU PSADSSF4 05083000 PSADSSRC EQU PSADSSF4 05084000 PSARV057 EQU PSADSSF3 05085000 PSARV056 EQU PSADSSF3 05086000 PSARV055 EQU PSADSSF3 05087000 PSADSSMC EQU PSADSSF3 05088000 PSADSSRW EQU PSADSSF3 05089000 PSADSSNM EQU PSADSSF3 05090000 PSADSSES EQU PSADSSF3 05091000 PSADSSGP EQU PSADSSF3 05092000 PSADSSF2 EQU PSADSSFL+1 05093000 PSADSSPI EQU PSADSSF1 05094000 PSADSSOI EQU PSADSSF1 05095000 PSADSSSP EQU PSADSSF1 05096000 PSADSSTP EQU PSADSSF1 05097000 PSADSSDW EQU PSADSSF1 05098000 PSADSSDD EQU PSADSSF1 05099000 PSADSSDM EQU PSADSSF1 05100000 PSADSSMV EQU PSADSSF1 05101000 PSADSSTS EQU PSA+816 05102000 PSADSSWK EQU PSA+812 05103000 PSADSSR3 EQU PSA+808 05104000 PSADSSR2 EQU PSA+804 05105000 PSADSSRS EQU PSA+800 05106000 PSASTOR EQU PSA+796 05107000 PSACPUSA EQU PSA+794 05108000 PSAVSTAP EQU PSA+792 05109000 PSAWKVAP EQU PSA+788 05110000 PSAWKRAP EQU PSA+784 05111000 PSAMCHIC EQU PSA+783 05112000 PSARV061 EQU PSA+782 05113000 PSASYMSK EQU PSA+781 05114000 PSAMCHFL EQU PSA+780 05115000 PSACR0 EQU PSA+776 05116000 PSAPSWSV EQU PSA+768 05117000 PSALITA EQU PSA+764 05118000 PSACLHS EQU PSAHLHI 05119000 PSALKR15 EQU PSALKSA+60 05120000 PSALKR14 EQU PSALKSA+56 05121000 PSALKR13 EQU PSALKSA+52 05122000 PSALKR12 EQU PSALKSA+48 05123000 PSALKR11 EQU PSALKSA+44 05124000 PSALKR10 EQU PSALKSA+40 05125000 PSALKR9 EQU PSALKSA+36 05126000 PSALKR8 EQU PSALKSA+32 05127000 PSALKR7 EQU PSALKSA+28 05128000 PSALKR6 EQU PSALKSA+24 05129000 PSALKR5 EQU PSALKSA+20 05130000 PSALKR4 EQU PSALKSA+16 05131000 PSALKR3 EQU PSALKSA+12 05132000 PSALKR2 EQU PSALKSA+8 05133000 PSALKR1 EQU PSALKSA+4 05134000 PSALKR0 EQU PSALKSA 05135000 PSARV023 EQU PSACLHT+52 05136000 PSALOCAL EQU PSACLHT+48 05137000 PSACMSL EQU PSACLHT+44 05138000 PSAOPTL EQU PSACLHT+40 05139000 PSATPACL EQU PSACLHT+36 05140000 PSATPDNL EQU PSACLHT+32 05141000 PSATPNCL EQU PSACLHT+28 05142000 PSAIOSLL EQU PSACLHT+24 05143000 PSAIOSUL EQU PSACLHT+20 05144000 PSAIOSCL EQU PSACLHT+16 05145000 PSAIOSSL EQU PSACLHT+12 05146000 PSASALCL EQU PSACLHT+8 05147000 PSAASML EQU PSACLHT+4 05148000 PSADISPL EQU PSACLHT 05149000 PSASRSA EQU PSA+636 05150000 PSARV050 EQU PSA+634 05151000 PSADSSGO EQU PSA+633 05152000 PSARECUR EQU PSA+632 05153000 PSAHLHIS EQU PSA+628 05154000 PSAIPCSA EQU PSA+624 05155000 @NM00024 EQU PSA+621 05156000 PSAIPCDM EQU PSA+620 05157000 PSAIPCD EQU PSA+616 05158000 @NM00023 EQU PSA+613 05159000 PSAIPCRM EQU PSA+612 05160000 PSAIPCR EQU PSA+608 05161000 PSAMCHEX EQU PSA+600 05162000 PSAMPSW EQU PSA+592 05163000 PSAEXPS2 EQU PSA+584 05164000 PSAEXPS1 EQU PSA+576 05165000 PSAPIREG EQU PSA+572 05166000 PSARSREG EQU PSA+568 05167000 PSAGPREG EQU PSA+556 05168000 PSARV022 EQU PSASUP4 05169000 PSARV021 EQU PSASUP4 05170000 PSARV020 EQU PSASUP4 05171000 PSARV019 EQU PSASUP4 05172000 PSARV018 EQU PSASUP4 05173000 PSARV017 EQU PSASUP4 05174000 PSARV016 EQU PSASUP4 05175000 PSARV015 EQU PSASUP4 05176000 PSARV014 EQU PSASUP3 05177000 PSAULCMS EQU PSASUP3 05178000 PSARV012 EQU PSASUP3 05179000 PSAESTA EQU PSASUP3 05180000 PSASPR EQU PSASUP3 05181000 PSAPSREG EQU PSASUP3 05182000 PSAPI2 EQU PSASUP3 05183000 PSAIOSUP EQU PSASUP3 05184000 PSALCR EQU PSASUP2 05185000 PSARTM EQU PSASUP2 05186000 PSAACR EQU PSASUP2 05187000 PSAIPCE2 EQU PSASUP2 05188000 PSAIPCES EQU PSASUP2 05189000 PSAIPCEC EQU PSASUP2 05190000 PSAGTF EQU PSASUP2 05191000 PSAIPCRI EQU PSASUP2 05192000 PSATYPE6 EQU PSASUP1 05193000 PSATCTL EQU PSASUP1 05194000 PSADISP EQU PSASUP1 05195000 PSALOCK EQU PSASUP1 05196000 PSAPI EQU PSASUP1 05197000 PSAEXT EQU PSASUP1 05198000 PSASVC EQU PSASUP1 05199000 PSAIO EQU PSASUP1 05200000 PSAAOLD EQU PSA+548 05201000 PSAANEW EQU PSA+544 05202000 PSATOLD EQU PSA+540 05203000 PSATNEW EQU PSA+536 05204000 PSALCCAR EQU PSA+532 05205000 PSAPCCAR EQU PSA+524 05206000 PSAPCCAV EQU PSA+520 05207000 PSACPULA EQU PSA+518 05208000 PSACPUPA EQU PSA+516 05209000 PSAPSA EQU PSA+512 05210000 FLCHDEND EQU PSA+512 05211000 FLCCRSAV EQU FLCMCLA+280 05212000 FLCGRSAV EQU FLCMCLA+216 05213000 FLCFPSAV EQU FLCMCLA+184 05214000 FLCFLA EQU FLCMCLA+88 05215000 FLCRGNCD EQU FLCMCLA+84 05216000 FLCFSAA EQU FLCFSA+1 05217000 @NM00022 EQU FLCFSA 05218000 @NM00021 EQU FLCMCLA+72 05219000 FLCMCIC EQU FLCMCLA+64 05220000 @NM00020 EQU FLCMCLA+20 05221000 FLCIOAA EQU FLCIOA+1 05222000 @NM00019 EQU FLCIOA 05223000 @NM00018 EQU FLCMCLA+15 05224000 @NM00017 EQU FLCMCLA+14 05225000 @NM00016 EQU FLCMCLA+12 05226000 FLCLCL EQU FLCMCLA+8 05227000 FLCIOELA EQU FLCIOEL+1 05228000 @NM00015 EQU FLCIOEL 05229000 FLCCHNID EQU FLCMCLA 05230000 @NM00014 EQU PSA+160 05231000 FLCMTRCD EQU PSA+157 05232000 @NM00013 EQU PSA+156 05233000 FLCPERA EQU FLCPER+1 05234000 @NM00012 EQU FLCPER 05235000 @NM00011 EQU PSA+151 05236000 FLCPERCD EQU PSA+150 05237000 FLCMCNUM EQU PSA+149 05238000 @NM00010 EQU PSA+148 05239000 FLCTEAA EQU FLCTEA+1 05240000 @NM00009 EQU FLCTEA 05241000 PSAPIPC EQU PSAPICOD 05242000 PSAPIMC EQU PSAPICOD 05243000 PSAPIPER EQU PSAPICOD 05244000 PSARV049 EQU FLCPICOD 05245000 FLCPILCB EQU FLCPIILC 05246000 @NM00008 EQU FLCPIILC 05247000 @NM00007 EQU PSAEPPSW 05248000 FLCSVCN EQU PSAESPSW+2 05249000 FLCSILCB EQU FLCSVILC 05250000 @NM00006 EQU FLCSVILC 05251000 @NM00005 EQU PSAESPSW 05252000 FLCEICOD EQU PSAEEPSW+2 05253000 PSASPAD EQU PSAEEPSW 05254000 @NM00004 EQU PSA+128 05255000 FLCINPSW EQU PSA+120 05256000 FLCMNPSW EQU PSA+112 05257000 FLCPNPSW EQU PSA+104 05258000 FLCSNPSW EQU PSA+96 05259000 FLCENPSW EQU PSA+88 05260000 FLCTRACE EQU PSA+84 05261000 FLCTIMER EQU PSA+80 05262000 FLCCVT2 EQU PSA+76 05263000 FLCCAW EQU PSA+72 05264000 FLCCSW EQU PSA+64 05265000 FLCIOPSW EQU PSA+56 05266000 FLCMOPSW EQU PSA+48 05267000 FLCPOPSW EQU PSA+40 05268000 FLCSOPSW EQU PSA+32 05269000 FLCEOPSW EQU PSA+24 05270000 @NM00003 EQU FLCICCW2+4 05271000 FLCICCW1 EQU FLCROPSW 05272000 FLCIPPSW EQU FLCRNPSW 05273000 .@UNREFD ANOP END UNREFERENCED COMPONENTS 05274000 @RC00206 EQU @RC00205 05275000 @RC00233 EQU @RC00220 05276000 RMCSIL5 EQU @RC00220 05277000 @RC00263 EQU @RC00255 05278000 @RF00355 EQU @RC00352 05279000 @RT00367 EQU RMCAPEND 05280000 @RT00373 EQU RMCAPEND 05281000 @RT00381 EQU RMCAPEND 05282000 @RF00411 EQU RMCAPEND 05283000 @RT00422 EQU RMCAPEND 05284000 @RT00428 EQU RMCAPEND 05285000 @RT00434 EQU RMCAPEND 05286000 @RT00440 EQU RMCAPEND 05287000 @RT00445 EQU RMCAPEND 05288000 @RF00453 EQU RMCAPEND 05289000 @RC00207 EQU @RC00206 05290000 @RT00229 EQU RMCSIL5 05291000 @ENDDATA EQU * 05292000 END IRARMCTL,(C'PLS2008',0701,78177) 05293000