TITLE 'ICBVQM00 MSVC USER TASK QUEUE MANAGER - MVS *00001000 ' 00002000 ICBVQM00 CSECT , 0001 00003000 @MAINENT DS 0H 0001 00004000 USING *,@15 0001 00005000 B @PROLOG 0001 00006000 DC AL1(16) 0001 00007000 DC C'ICBVQM00 77.354' 0001 00008000 DROP @15 00009000 @PROLOG ST @14,12(,@13) 0001 00010000 STM @01,@12,24(@13) 0001 00011000 BALR @12,0 0001 00012000 @PSTART DS 0H 0001 00013000 USING @PSTART,@12 0001 00014000 * 0150 00015000 * /*****************************************************************/ 00016000 * /* */ 00017000 * /* SET UP ADDRESSABILITY @Y30LB12*/ 00018000 * /* @Y30LB12*/ 00019000 * /* PARMPTR CONTAINS THE ADDRESS OF THE PARAMETER @Y30LB12*/ 00020000 * /* LIST PASSED TO THE QUEUE MANAGER @Y30LB12*/ 00021000 * /* PARM0 CONTAINS EITHER THE MSC REASON CODE @Y30LB12*/ 00022000 * /* (IF ANY) AND AN INDICATION OF FIRST OR @Y30LB12*/ 00023000 * /* OR SECOND ENTRY, OR AN INDICATOR THAT @Y30LB12*/ 00024000 * /* THE THE USER'S TASK HAS ABENDED DURING @Y30LB12*/ 00025000 * /* MSS PROCESSING @Y30LB12*/ 00026000 * /* VVIPTR CONTAINS THE ADDRESS OF THE MSVC @Y30LB12*/ 00027000 * /* CONTROL BLOCK. @Y30LB12*/ 00028000 * /* */ 00029000 * /*****************************************************************/ 00030000 * 0150 00031000 * PARMPTR=REG1; /* SAVE PARAMETER ADDRESS 0150 00032000 * @Y30LB24*/ 00033000 LR PARMPTR,REG1 0150 00034000 * PARM0=REG0; /* SAVE PARAMETER REGISTER 0151 00035000 * @Y30LB24*/ 00036000 LR PARM0,REG0 0151 00037000 * VVIPTR=ICBVVICB; /* INITIALIZE MSVC CB PTR 0152 00038000 * @Y30LB24*/ 00039000 * 0152 00040000 L @11,CVTPTR 0152 00041000 L @11,CVTEXT2(,@11) 0152 00042000 L @11,CVTICB(,@11) 0152 00043000 L VVIPTR,ICBVVICB(,@11) 0152 00044000 * /*****************************************************************/ 00045000 * /* */ 00046000 * /* INITIALIZE DEFAULT VALUES THAT WILL BE RETURNED @Y30LB12*/ 00047000 * /* TO THE MSS-SVC. @YM34322*/ 00048000 * /* @Y30LB12*/ 00049000 * /* */ 00050000 * /*****************************************************************/ 00051000 * 0153 00052000 * FAILCODE=ZERO; /* INITIALIZE REASON CODE 0153 00053000 * @Y30LB12*/ 00054000 SLR FAILCODE,FAILCODE 0153 00055000 * REG0=SUCCES; /* INITIALIZE RETURN CODE 0154 00056000 * @YM34322*/ 00057000 * 0154 00058000 SLR REG0,REG0 0154 00059000 * /*****************************************************************/ 00060000 * /* */ 00061000 * /* SHIFT THE MSS REASON CODE THAT EXISTED AT ENTRY @Y30LB12*/ 00062000 * /* TO THIS MODULE TO THE LOW-ORDER EIGHT BITS OF @Y30LB12*/ 00063000 * /* REGISTER 1. @Y30LB12*/ 00064000 * /* */ 00065000 * /*****************************************************************/ 00066000 * 0155 00067000 * REG1=PARM0; /* SET PARAMETER WORK REG 0155 00068000 * @Y30LB24*/ 00069000 LR REG1,PARM0 0155 00070000 * GEN(SRL REG1,M24); /* SHIFT HIGH BYTE @Y30LB24*/ 00071000 SRL REG1,M24 00072000 * RESPECIFY 0157 00073000 * RVVI BASED(PARMPTR); /* BASE LISTMSVI @Y30LB24*/ 00074000 * RESPECIFY 0158 00075000 * INFMJFCB BASED(REG3); /* BASE JFCB @Y30LB24*/ 00076000 * RESPECIFY 0159 00077000 * JFCBX BASED(REG3); /* BASE JFCB EXT @Y30LB24*/ 00078000 * 0160 00079000 * /*****************************************************************/ 00080000 * /* */ 00081000 * /* CHECK PARAMETERS AND OPERATION CODES TO FIND WHICH SUBROUTINE */ 00082000 * /* IS REQUIRED TO PROCESS THIS ENTRY. @Y30LB24*/ 00083000 * /* */ 00084000 * /*****************************************************************/ 00085000 * 0160 00086000 * IF REG1=RIO| /* ABNORMAL TERMINATION @Y30LB24*/ 00087000 * REG1=RNIO THEN /* ABNORMAL TERMINATION @Y30LB24*/ 00088000 SLR @11,@11 0160 00089000 IC @11,RIO 0160 00090000 CR REG1,@11 0160 00091000 BE @RT00160 0160 00092000 SLR @11,@11 0160 00093000 IC @11,RNIO 0160 00094000 CR REG1,@11 0160 00095000 BNE @RF00160 0160 00096000 @RT00160 DS 0H 0161 00097000 * DO; /* YES @Y30LB24*/ 00098000 * CALL VQMABEND; /* CALL ABEND RTN @Y30LB24*/ 00099000 BAL @14,VQMABEND 0162 00100000 * REG0=SUCCES; /* REASON CODE (000) @YM34322*/ 00101000 SLR REG0,REG0 0163 00102000 * FAILCODE=ZERO; /* SET RETURN CODE @Y30LB24*/ 00103000 SLR FAILCODE,FAILCODE 0164 00104000 * RETURN; /* RETURN TO MSSC-SVC @Y30LB24*/ 00105000 @EL00001 DS 0H 0165 00106000 @EF00001 DS 0H 0165 00107000 @ER00001 L @14,12(,@13) 0165 00108000 LM @01,@12,24(@13) 0165 00109000 BR @14 0165 00110000 * END; /* @Y30LB24*/ 00111000 * 0166 00112000 * /*****************************************************************/ 00113000 * /* */ 00114000 * /* CHECK IF THE LENGTH OF THE PASSED PARAMETER @YM34322*/ 00115000 * /* LIST IS VALID @YM34322*/ 00116000 * /* */ 00117000 * /*****************************************************************/ 00118000 * 0167 00119000 * IF PLENGTH<=ZERO| /* INVALID REQUEST? @Y30LB24*/ 00120000 * PLENGTH>MAXLNGTH THEN /* INVALID REQUEST? @Y30LB 24 0167 00121000 * @YM34322*/ 00122000 @RF00160 L @11,PLENGTH(,PARMPTR) 0167 00123000 LTR @11,@11 0167 00124000 BNP @RT00167 0167 00125000 C @11,@CF00129 0167 00126000 BNH @RF00167 0167 00127000 @RT00167 DS 0H 0168 00128000 * DO; /* YES @Y30LB24*/ 00129000 * REG0=INVALLNG; /* REASON CODE (216) @YM34322*/ 00130000 LA REG0,534 0169 00131000 * FAILCODE=FOUR; /* SET RETURN CODE @Y30LB24*/ 00132000 LA FAILCODE,4 0170 00133000 * RETURN; /* RETURN TO MSSC-SVC @Y30LB24*/ 00134000 B @EL00001 0171 00135000 * END; /* @Y30LB24*/ 00136000 * 0172 00137000 * /*****************************************************************/ 00138000 * /* */ 00139000 * /* CHECK THE OP CODE AND DETERMINE THE PROCESSING @YM34322*/ 00140000 * /* TO BE DONE @YM34322*/ 00141000 * /* */ 00142000 * /*****************************************************************/ 00143000 * 0173 00144000 * IF OPCODE=MOUNT THEN /* IS THIS A MOUNT @Y30LB12*/ 00145000 @RF00167 CLI OPCODE(PARMPTR),X'08' 0173 00146000 BNE @RF00173 0173 00147000 * DO; /* YES @Y30LB24*/ 00148000 * CALL VQMMOUNT; /* CALL MOUNT RTN @Y30LB24*/ 00149000 BAL @14,VQMMOUNT 0175 00150000 * RETURN; /* RETURN TO MSSC-SVC @Y30LB24*/ 00151000 B @EL00001 0176 00152000 * END; /* @Y30LB24*/ 00153000 * IF OPCODE=DEMOUNT THEN /* IS THIS A DEMOUNT @Y30LB12*/ 00154000 @RF00173 CLI OPCODE(PARMPTR),X'06' 0178 00155000 BNE @RF00178 0178 00156000 * DO; /* YES @Y30LB24*/ 00157000 * CALL VQMDEMNT; /* CALL DEMOUNT RTN @Y30LB24*/ 00158000 BAL @14,VQMDEMNT 0180 00159000 * REG0=SUCCES; /* REASON CODE (000) @YM34322*/ 00160000 SLR REG0,REG0 0181 00161000 * FAILCODE=ZERO; /* SET RETURN CODE @Y30LB24*/ 00162000 SLR FAILCODE,FAILCODE 0182 00163000 * RETURN; /* RETURN TO MSSC-SVC @Y30LB24*/ 00164000 B @EL00001 0183 00165000 * END; /* @Y30LB24*/ 00166000 * IF OPCODE=MOVECART| /* MOVE CARTRIDGE? @Y30LB12*/ 00167000 * OPCODE=DEFVOL| /* DEFINE VOLUME? @Y30LB12*/ 00168000 * OPCODE=NULLC| /* NULL CARTRIDGE? @Z40LB25*/ 00169000 * OPCODE=COPYCART| /* COPY CARTRIDGE? @Y30LB12*/ 00170000 * OPCODE=COPYVOL THEN /* COPY VOLUME? @Y30LB12*/ 00171000 @RF00178 CLI OPCODE(PARMPTR),X'0E' 0185 00172000 BE @RT00185 0185 00173000 CLI OPCODE(PARMPTR),X'18' 0185 00174000 BE @RT00185 0185 00175000 CLI OPCODE(PARMPTR),X'09' 0185 00176000 BE @RT00185 0185 00177000 CLI OPCODE(PARMPTR),X'28' 0185 00178000 BE @RT00185 0185 00179000 CLI OPCODE(PARMPTR),X'2A' 0185 00180000 BNE @RF00185 0185 00181000 @RT00185 DS 0H 0186 00182000 * DO; /* YES @Y30LB24*/ 00183000 * CALL VQMMSSUT; /* CALL MSS UTIL RTN @Y30LB24*/ 00184000 BAL @14,VQMMSSUT 0187 00185000 * RETURN; /* RETURN TO MSSC-SVC @Y30LB24*/ 00186000 B @EL00001 0188 00187000 * END; /* @Y30LB24*/ 00188000 * IF OPCODE=MSCMSG THEN /* MSC MESSAGE? @Y30LB12*/ 00189000 @RF00185 CLI OPCODE(PARMPTR),X'86' 0190 00190000 BNE @RF00190 0190 00191000 * DO; /* YES @Y30LB24*/ 00192000 * CALL VQMMSSMG; /* CALL MESSAGE RTN @Y30LB24*/ 00193000 BAL @14,VQMMSSMG 0192 00194000 * REG0=SUCCES; /* REASON CODE (000) @YM34322*/ 00195000 SLR REG0,REG0 0193 00196000 * FAILCODE=ZERO; /* SET RETURN CODE @Y30LB24*/ 00197000 SLR FAILCODE,FAILCODE 0194 00198000 * RETURN; /* RETURN TO MSSC-SVC @Y30LB24*/ 00199000 B @EL00001 0195 00200000 * END; /* @Y30LB24*/ 00201000 * IF OPCODE=READINV THEN /* READ INVENTORY? @Y30LB12*/ 00202000 @RF00190 CLI OPCODE(PARMPTR),X'87' 0197 00203000 BNE @RF00197 0197 00204000 * DO; /* YES @Y30LB24*/ 00205000 * CALL VQMREADR; /* CALL READ RTN @Y30LB24*/ 00206000 BAL @14,VQMREADR 0199 00207000 * RETURN; /* RETURN TO MSSC-SVC @Y30LB24*/ 00208000 B @EL00001 0200 00209000 * END; 0201 00210000 * IF OPCODE=REMOVVOL| /* REMOVE VOLUME RECORD @Y30LB12*/ 00211000 * OPCODE=CREATEG| /* CREATE GROUP RECORD @Y30LB12*/ 00212000 * OPCODE=MODIFYG| /* MODIFY GROUP RECORD @Y30LB12*/ 00213000 * OPCODE=SCRATCHG| /* SCRATCH GROUP RECORD @Y30LB12*/ 00214000 * OPCODE=MODIFYV THEN /* MODIFY VOLUME RECORD @Y30LB12*/ 00215000 @RF00197 CLI OPCODE(PARMPTR),X'81' 0202 00216000 BE @RT00202 0202 00217000 CLI OPCODE(PARMPTR),X'82' 0202 00218000 BE @RT00202 0202 00219000 CLI OPCODE(PARMPTR),X'83' 0202 00220000 BE @RT00202 0202 00221000 CLI OPCODE(PARMPTR),X'84' 0202 00222000 BE @RT00202 0202 00223000 CLI OPCODE(PARMPTR),X'85' 0202 00224000 BNE @RF00202 0202 00225000 @RT00202 DS 0H 0203 00226000 * DO; /* YES @Y30LB24*/ 00227000 * CALL VQMVVIUT; /* CALL VVI UTIL RTN @Y30LB24*/ 00228000 BAL @14,VQMVVIUT 0204 00229000 * RETURN; /* RETURN TO MSSC-SVC @Y30LB24*/ 00230000 B @EL00001 0205 00231000 * END; /* @Y30LB24*/ 00232000 * IF OPCODE=SUSPEND THEN /* SUSPEND? @Y30LB12*/ 00233000 @RF00202 CLI OPCODE(PARMPTR),X'22' 0207 00234000 BNE @RF00207 0207 00235000 * DO; /* YES @Y30LB24*/ 00236000 * CALL VQMMSSCM; /* CALL MSS CM RTN @Y30LB24*/ 00237000 BAL @14,VQMMSSCM 0209 00238000 * RETURN; /* RETURN TO MSSC-SVC @Y30LB24*/ 00239000 B @EL00001 0210 00240000 * END; /* @Y30LB24*/ 00241000 * IF OPCODE=PURGE| /* PURGE? @Y30LB12*/ 00242000 * OPCODE=ASSOCDIS THEN /* ASSOC/DISASSOC @Y30LB12*/ 00243000 @RF00207 CLI OPCODE(PARMPTR),X'14' 0212 00244000 BE @RT00212 0212 00245000 CLI OPCODE(PARMPTR),X'2C' 0212 00246000 BNE @RF00212 0212 00247000 @RT00212 DS 0H 0213 00248000 * DO; /* YES @Y30LB24*/ 00249000 * CALL VQMMSSCM; /* CALL MSS CM RTN @Y30LB24*/ 00250000 BAL @14,VQMMSSCM 0214 00251000 * REG0=SUCCES; /* REASON CODE (000) @YM34322*/ 00252000 SLR REG0,REG0 0215 00253000 * FAILCODE=ZERO; /* SET RETURN CODE @Y30LB24*/ 00254000 SLR FAILCODE,FAILCODE 0216 00255000 * RETURN; /* RETURN TO MSSC-SVC @Y30LB24*/ 00256000 B @EL00001 0217 00257000 * END; /* @Y30LB24*/ 00258000 * IF OPCODE=ENABLDIS THEN /* ENABLE/DISABLE? @Y30LB12*/ 00259000 @RF00212 CLI OPCODE(PARMPTR),X'88' 0219 00260000 BNE @RF00219 0219 00261000 * DO; /* YES @Y30LB24*/ 00262000 * CALL VQMVABLE; /* CALL ENABLE/DISABLE RTN 0221 00263000 * @Y30LB24*/ 00264000 BAL @14,VQMVABLE 0221 00265000 * RETURN; /* RETURN TO MSSC-SVC @Y30LB24*/ 00266000 B @EL00001 0222 00267000 * END; /* @Y30LB24*/ 00268000 * IF OPCODE=DSRECOV THEN /* DATA SET RECOVERY @Y30LB12*/ 00269000 @RF00219 CLI OPCODE(PARMPTR),X'8F' 0224 00270000 BNE @RF00224 0224 00271000 * DO; /* YES @Y30LB24*/ 00272000 * CALL VQMRECVY; /* CALL RECOVERY RTN @Y30LB24*/ 00273000 BAL @14,VQMRECVY 0226 00274000 * RETURN; /* RETURN TO MSSC-SVC @Y30LB24*/ 00275000 B @EL00001 0227 00276000 * END; /* @Y30LB24*/ 00277000 * 0228 00278000 * /*****************************************************************/ 00279000 * /* */ 00280000 * /* IF THE OP CODE PASSED IN THE PARAMETER LIST IS @Y30LB12*/ 00281000 * /* UNDEFINED (NOT ONE OF THE EXPECTED CODES), @Y30LB12*/ 00282000 * /* RETURN TO THE CALLING ROUTINE WITH A RETURN CODE @Y30LB12*/ 00283000 * /* OF FOUR IN REGISTER 15 AND A REASON CODE OF 217 @Y30LB12*/ 00284000 * /* (INVALID REQUEST OPERATION CODE) IN REGISTER 0. @Y30LB12*/ 00285000 * /* */ 00286000 * /*****************************************************************/ 00287000 * 0229 00288000 * REG0=INVALOP; /* REASON CODE (217) @YM34322*/ 00289000 @RF00224 LA REG0,535 0229 00290000 * FAILCODE=FOUR; /* SET RETURN CODE @Y30LB24*/ 00291000 LA FAILCODE,4 0230 00292000 * RETURN; /* RETURN TO MSSC-SVC @Y30LB24*/ 00293000 * 0231 00294000 B @EL00001 0231 00295000 * /*****************************************************************/ 00296000 * /* */ 00297000 * /* END OF MAINLINE PROCESSING FOR ICBVQM00. @Y30LB12*/ 00298000 * /* THE REMAINDER OF THIS MODULE CONSISTS OF @Y30LB12*/ 00299000 * /* INTERNAL PROCEDURES FOR ICBVQM00. @Y30LB12*/ 00300000 * /* */ 00301000 * /*****************************************************************/ 00302000 * 0232 00303000 * 0232 00304000 */* ****************************************************************** 00305000 * 0232 00306000 * NAME = VQMABEND, INVALIDATE MSC ORDER ENTRY IN RPLV QUEUES 0232 00307000 * @Y30LB24 00308000 * 0232 00309000 * INPUT = POINTER TO THE MSSC-SVC REQUEST, AND ICBVVICB POINTING 00310000 * TO THE RPLV QUEUES. @Y30LB24 00311000 * 0232 00312000 * PROCESS = THIS SUBROUTINE IS CALLED TO INVALIDATE REQUESTS. 0232 00313000 * ALL REQUESTS THAT CAN BE RECOVERED ARE PUT ON MSVC REQUEST 0232 00314000 * QUEUES IN ORDER THAT THE MSVC INVENTORY IS UPDATED TO 0232 00315000 * MATCH THE MSS TABLES. @Y30LB24 00316000 * 0232 00317000 * OUTPUT = MSVC INVENTORY UPDATED TO MATCH MSS TABLES. 0232 00318000 * @Y30LB24 00319000 * 0232 00320000 ******************************************************************** */ 00321000 */*VQMABEND: CHART */ 00322000 */*HEADER 0232 00323000 */*JUNE 14, 1974 ICBVQM00 - SEGMENT 0232 00324000 */*VQMABEND - INVALIDATE ENTRY IN QUEUES */ 00325000 */* E VQMABEND */ 00326000 */* D (YES,,NO,%END) RECOVERY POSSIBLE? */ 00327000 */* D (YES,,NO,%END) VALID LENGTH PARMETER */ 00328000 */* D (YES,,NO,%END) VALID REQUEST */ 00329000 */* D (NO,,YES,%GET) MSC I/O ISSUED */ 00330000 */* P SET FAILING REASON */ 00331000 */*%GET: P SET GETMAIN LENGTH */ 00332000 */* S VQMGSTOR: GETMAIN FOR RPLV */ 00333000 */* D (NO,,YES,%END) ERROR FROM GETMAIN */ 00334000 */* P BUILD REQUEST BLOCK */ 00335000 */* D (YES,,NO,%UTL) MOUNT SCRATCH */ 00336000 */* P SET SCR BIT OFF */ 00337000 */*%UTL: D (YES,,NO,%ADD) UTIL EXT. */ 00338000 */* P ZERO UTIL EXT ADDR */ 00339000 */*%ADD: S VQMADDRB: CHAIN RPLV */ 00340000 */*%END: R RETURN TO ICBVQM00 MAINLINE */ 00341000 */*VQMABEND: END */ 00342000 * 0232 00343000 *VQMABEND: 0232 00344000 * PROCEDURE OPTIONS(NOSAVE,NOSAVEAREA); 0232 00345000 * 0232 00346000 VQMABEND DS 0H 0233 00347000 * /*****************************************************************/ 00348000 * /* */ 00349000 * /* FOR THE FOLLOWING GROUP OF OP CODES, NO RECOVERY @Y30LB12*/ 00350000 * /* ACTION IS DEFINED, SINCE THESE OP CODES DO NOT @Y30LB12*/ 00351000 * /* CAUSE I/O TO THE MSC. THEREFORE, RETURN TO THE @Y30LB12*/ 00352000 * /* MAINLINE OF ICBVQM00 WITHOUT MODIFYING THE @Y30LB12*/ 00353000 * /* RETURN CODE OR THE REASON CODE. @Y30LB12*/ 00354000 * /* */ 00355000 * /*****************************************************************/ 00356000 * 0233 00357000 * IF OPCODE=REMOVVOL| /* REMOVE VOLUME RECORD @Y30LB12*/ 00358000 * OPCODE=CREATEG| /* CREATE GROUP RECORD @Y30LB12*/ 00359000 * OPCODE=MODIFYG| /* MODIFY GROUP RECORD @Y30LB12*/ 00360000 * OPCODE=SCRATCHG| /* SCRATCH GROUP RECORD @Y30LB12*/ 00361000 * OPCODE=MODIFYV| /* MODIFY VOLUME RECORD @Y30LB12*/ 00362000 * OPCODE=MSCMSG| /* MSC MESSAGE? @Y30LB12*/ 00363000 * OPCODE=READINV| /* READ INVENTORY? @Y30LB12*/ 00364000 * OPCODE=ENABLDIS| /* ENABLE/DISABLE? @Y30LB12*/ 00365000 * OPCODE=DSRECOV THEN /* DATA SET RECOVERY @Y30LB12*/ 00366000 CLI OPCODE(PARMPTR),X'81' 0233 00367000 BE @RT00233 0233 00368000 CLI OPCODE(PARMPTR),X'82' 0233 00369000 BE @RT00233 0233 00370000 CLI OPCODE(PARMPTR),X'83' 0233 00371000 BE @RT00233 0233 00372000 CLI OPCODE(PARMPTR),X'84' 0233 00373000 BE @RT00233 0233 00374000 CLI OPCODE(PARMPTR),X'85' 0233 00375000 BE @RT00233 0233 00376000 CLI OPCODE(PARMPTR),X'86' 0233 00377000 BE @RT00233 0233 00378000 CLI OPCODE(PARMPTR),X'87' 0233 00379000 BE @RT00233 0233 00380000 CLI OPCODE(PARMPTR),X'88' 0233 00381000 BE @RT00233 0233 00382000 CLI OPCODE(PARMPTR),X'8F' 0233 00383000 BNE @RF00233 0233 00384000 @RT00233 DS 0H 0234 00385000 * DO; /* YES @Y30LB24*/ 00386000 * RETURN; /* RETURN TO ICBVQM00 @YM34322*/ 00387000 @EL00002 DS 0H 0235 00388000 @EF00002 DS 0H 0235 00389000 @ER00002 BR @14 0235 00390000 * END; /* @Y30LB24*/ 00391000 * IF PLENGTH<=ZERO| /* INVALID REQUEST? @Y30LB24*/ 00392000 * PLENGTH>MAXLNGTH THEN /* INVALID REQUEST? @Y30LB 24 0237 00393000 * @YM34322*/ 00394000 @RF00233 L @11,PLENGTH(,PARMPTR) 0237 00395000 LTR @11,@11 0237 00396000 BNP @RT00237 0237 00397000 C @11,@CF00129 0237 00398000 BNH @RF00237 0237 00399000 @RT00237 DS 0H 0238 00400000 * DO; /* YES @Y30LB24*/ 00401000 * RETURN; /* RETURN TO ICBVQM00 @YM34322*/ 00402000 B @EL00002 0239 00403000 * END; /* @Y30LB24*/ 00404000 * IF OPCODE=MOUNT| /* IS THIS A MOUNT @YM34322*/ 00405000 * OPCODE=DEMOUNT| /* IS THIS A DEMOUNT @YM34322*/ 00406000 * OPCODE=NULLC| /* IS THIS A NULLIFYC @Z40LB25*/ 00407000 * OPCODE=MOVECART| /* MOVE CARTRIDGE? @YM34322*/ 00408000 * OPCODE=DEFVOL| /* DEFINE VOLUME? @YM34322*/ 00409000 * OPCODE=COPYCART| /* COPY CARTRIDGE? @YM34322*/ 00410000 * OPCODE=COPYVOL| /* COPY VOLUME? @YM34322*/ 00411000 * OPCODE=SUSPEND| /* SUSPEND? @YM34322*/ 00412000 * OPCODE=PURGE| /* PURGE? @YM34322*/ 00413000 * OPCODE=ASSOCDIS THEN /* ASSOC/DISASSOC @YM34322*/ 00414000 @RF00237 CLI OPCODE(PARMPTR),X'08' 0241 00415000 BE @RT00241 0241 00416000 CLI OPCODE(PARMPTR),X'06' 0241 00417000 BE @RT00241 0241 00418000 CLI OPCODE(PARMPTR),X'09' 0241 00419000 BE @RT00241 0241 00420000 CLI OPCODE(PARMPTR),X'0E' 0241 00421000 BE @RT00241 0241 00422000 CLI OPCODE(PARMPTR),X'18' 0241 00423000 BE @RT00241 0241 00424000 CLI OPCODE(PARMPTR),X'28' 0241 00425000 BE @RT00241 0241 00426000 CLI OPCODE(PARMPTR),X'2A' 0241 00427000 BE @RT00241 0241 00428000 CLI OPCODE(PARMPTR),X'22' 0241 00429000 BE @RT00241 0241 00430000 CLI OPCODE(PARMPTR),X'14' 0241 00431000 BE @RT00241 0241 00432000 CLI OPCODE(PARMPTR),X'2C' 0241 00433000 BNE @RF00241 0241 00434000 @RT00241 DS 0H 0242 00435000 * DO; /* YES @Y30LB24*/ 00436000 * 0242 00437000 * /*************************************************************/ 00438000 * /* */ 00439000 * /* IF NO I/O HAS BEEN ISSUED TO THE MSC, SET @Y30LB12*/ 00440000 * /* PARM0 TO INDICATE THAT THE USER TASK HAS @YM34322*/ 00441000 * /* HAS ABENDED BEFORE PERFORMING I/O @YM34322*/ 00442000 * /* TO THE MSC. @YM34322*/ 00443000 * /* */ 00444000 * /*************************************************************/ 00445000 * 0243 00446000 * IF REG1=RNIO THEN /* NO I/O ISSUED @Y30LB24*/ 00447000 SLR @11,@11 0243 00448000 IC @11,RNIO 0243 00449000 CR REG1,@11 0243 00450000 BNE @RF00243 0243 00451000 * DO; /* YES @Y30LB24*/ 00452000 * PARM0=ABENDED; /* SET PARAMETER @YM34322*/ 00453000 LA PARM0,512 0245 00454000 * GEN(ICM PARM0,M8,RNIO); /* RESTORE RNIO @Y30LB24*/ 00455000 ICM PARM0,M8,RNIO 00456000 * END; /* @Y30LB24*/ 00457000 * END; /* @Y30LB24*/ 00458000 * 0248 00459000 * /*****************************************************************/ 00460000 * /* */ 00461000 * /* FOR ORDER TYPES OTHER THAN THOSE SPECIFICALLY @Y30LB12*/ 00462000 * /* TESTED IN THIS 'IF' STATEMENT, RETURN TO THE @Y30LB12*/ 00463000 * /* MAINLINE PROCEDURE OF ICBVQM00. @Y30LB12*/ 00464000 * /* */ 00465000 * /*****************************************************************/ 00466000 * 0249 00467000 * ELSE 0249 00468000 * DO; /* INVALID ORDER @Y30LB24*/ 00469000 B @RC00241 0249 00470000 @RF00241 DS 0H 0250 00471000 * RETURN; /* RETURN TO ICBVQM00 @YM34322*/ 00472000 B @EL00002 0250 00473000 * END; /* @Y30LB24*/ 00474000 * 0251 00475000 * /*****************************************************************/ 00476000 * /* */ 00477000 * /* THE FOLLOWING RECOVERY ACTION APPLIES ONLY TO @Y30LB12*/ 00478000 * /* ORDERS -- MOUNT, DEMOUNT, MOVE CARTRIDGE, DEFINE @Y30LB12*/ 00479000 * /* VOLUME, COPY CARTRIDGE, COPY VOLUME, SUSPEND, @Y30LB12*/ 00480000 * /* PURGE, ASSOCIATE/DISASSOCIATE @YM34322*/ 00481000 * /* */ 00482000 * /*****************************************************************/ 00483000 * 0252 00484000 * REG8=REG14; /* SAVE LINKREG @Y30LB24*/ 00485000 @RC00241 LR REG8,REG14 0252 00486000 * REG2=LENGTH(RPLV); /* SET RPLV LENGTH @Y30LB24*/ 00487000 LA REG2,132 0253 00488000 * REG2=REG2+PLENGTH; /* ADD ORDER LENGTH @Y30LB24*/ 00489000 AL REG2,PLENGTH(,PARMPTR) 0254 00490000 * CALL VQMGSTOR; /* CALL GETMAIN RTN @Y30LB24*/ 00491000 BAL @14,VQMGSTOR 0255 00492000 * IF FAILCODE^=ZERO THEN /* CORE AVAILABLE? @Y30LB24*/ 00493000 LTR FAILCODE,FAILCODE 0256 00494000 BZ @RF00256 0256 00495000 * DO; /* NO @Y30LB24*/ 00496000 * REG14=REG8; /* RESTORE LINKREG @Y30LB24*/ 00497000 LR REG14,REG8 0258 00498000 * RETURN; /* RETURN TO CALLER @G18MB04*/ 00499000 B @EL00002 0259 00500000 * END; /* @Y30LB24*/ 00501000 * RPLFTIME=ON; /* SET SECOND ENTRY @Y30LB24*/ 00502000 @RF00256 DS 0H 0262 00503000 * RPLVPOST=OFF; /* INDICATE NO ECB POST @Y30LB24*/ 00504000 OI RPLFTIME(RPLVPTR),B'10000000' 0262 00505000 NI RPLVPOST(RPLVPTR),B'10111111' 0262 00506000 * RPLRCODE=PARM0; /* SET REASON CODE @Y30LB24*/ 00507000 STH PARM0,RPLRCODE(,RPLVPTR) 0263 00508000 * RPLVRETC=PARM0; /* SET RETURN CODE @Y30LB24*/ 00509000 STH PARM0,RPLVRETC(,RPLVPTR) 0264 00510000 * REG1=PLENGTH; /* SET PARM LENGTH @Y30LB24*/ 00511000 L REG1,PLENGTH(,PARMPTR) 0265 00512000 * RPLVUTIL(1:REG1)=PARMLIST; /* COPY PARMS @Y30LB24*/ 00513000 LR @11,REG1 0266 00514000 BCTR @11,0 0266 00515000 EX @11,@SM01699 0266 00516000 * REG2=ADDR(RPLVUTIL); /* SET RPLV ADDR @Y30LB24*/ 00517000 LA REG2,RPLVUTIL(,RPLVPTR) 0267 00518000 * IF OPCODE=MOUNT THEN /* IS THIS A MOUNT @YM34322*/ 00519000 CLI OPCODE(PARMPTR),X'08' 0268 00520000 BNE @RF00268 0268 00521000 * REG2->MDSRTCH=OFF; /* SET MSVC SCR OFF @Y30LB24*/ 00522000 NI MDSRTCH(REG2),B'11101111' 0269 00523000 * IF OPCODE=MOVECART THEN /* MOVE CARTRIDGE? @YM34322*/ 00524000 @RF00268 CLI OPCODE(PARMPTR),X'0E' 0270 00525000 BNE @RF00270 0270 00526000 * REG2->MCRTVEXT=ZERO; /* ZERO UTIL EXT. @Y30LB24*/ 00527000 SLR @11,@11 0271 00528000 ST @11,MCRTVEXT(,REG2) 0271 00529000 * IF OPCODE=DEFVOL THEN /* DEFINE VOLUME? @YM34322*/ 00530000 @RF00270 CLI OPCODE(PARMPTR),X'18' 0272 00531000 BNE @RF00272 0272 00532000 * REG2->DEFVVEXT=ZERO; /* ZERO UTIL EXT. @Y30LB24*/ 00533000 SLR @11,@11 0273 00534000 ST @11,DEFVVEXT(,REG2) 0273 00535000 * IF OPCODE=COPYVOL THEN /* COPY VOLUME? @YM34322*/ 00536000 @RF00272 CLI OPCODE(PARMPTR),X'2A' 0274 00537000 BNE @RF00274 0274 00538000 * REG2->CVOLVEXT=ZERO; /* ZERO UTIL EXT. @Y30LB24*/ 00539000 SLR @11,@11 0275 00540000 ST @11,CVOLVEXT(,REG2) 0275 00541000 * CALL VQMADDRB; /* CALL QUEUING RTN @Y30LB24*/ 00542000 @RF00274 BAL @14,VQMADDRB 0276 00543000 * REG14=REG8; /* RESTORE LINKREG @Y30LB24*/ 00544000 LR REG14,REG8 0277 00545000 * RETURN; /* RETURN TO CALLER OF VQMABEND 00546000 * @G18MB04*/ 00547000 B @EL00002 0278 00548000 * END VQMABEND; /* END ABNORMAL TERMINATION 0279 00549000 * @Y30LB24*/ 00550000 * 0280 00551000 */* ****************************************************************** 00552000 * 0280 00553000 * NAME = VQMMOUNT, VOLUME MOUNT PROCESSING. @Y30LB24 00554000 * 0280 00555000 * INPUT = POINTER TO THE MSSC-SVC REQUEST, AND A POINTER TO 0280 00556000 * THE MSVC CONTROL BLOCK (ICBVVICB). @Y30LB24 00557000 * 0280 00558000 * PROCESS = THIS SUBROUTINE IS CALLED FOR PROCESSING OF 0280 00559000 * MOUNT SPECIFIC AND MOUNT NON-SPECIFIC (SCRATCH) REQUESTS. 0280 00560000 * THEY WILL BE DESCRIBED SEPARATELY. @Y30LB24 00561000 * 0280 00562000 * THE FOLLOWING DESCRIBES MOUNT SPECIFIC. 0280 00563000 * IF THE MSVC INVENTORY IS DISABLED THEN NO PROCESSING IS 0280 00564000 * DONE AND THE REQUEST IS RETURNED WITH GOOD COMPLETION. 0280 00565000 * IF THE MSVC INVENTORY IS NOT DISABLED THEN PROCESSING CAN 0280 00566000 * CONTINUE. IN VS/2 IF THE MSC FAILED THE MOUNT, IT IS 0280 00567000 * REISSUED. IF THE MOUNT WAS SUCCESSFUL A RETURN IS MADE TO THE 00568000 * MSSC-SVC WITH A RETRY SUCCESSFUL REASON AND RETURN CODE. 0280 00569000 * IF THE MOUNT WAS NOT SUCCESSFUL THEN PROCESSING CONTINUES. 0280 00570000 * THROUGH A SUBROUTINE A GETMAIN IS DONE FOR STORAGE FOR THE 0280 00571000 * MSVC RPLV, THE MSVC RPLV IS ZEROED AND INITIALIZED WITH 0280 00572000 * THE PROPER FLAGS AND ENTRIES. 0280 00573000 * THE RPLV IS THEN FILLED IN WITH REQUEST DEPENDENT DATA AND 0280 00574000 * THEN THROUGH ANOTHER SUBROUTINE THE RPLV IS CHAINED TO THE 0280 00575000 * HIGH PRIORITY QUEUE IN THE ICBVVICB AND THE SUBTASK IS POSTED 00576000 * IN ORDER TO HAVE THE MSVC INVENTORY UPDATED. 0280 00577000 * A RETURN IS THEN MADE TO ICBVQM00 MAINLINE WITH A SUCCESSFUL 0280 00578000 * COMPLETION WHICH WILL BE RETURNED TO THE CALLER. @Y30LB24 00579000 * 0280 00580000 * 0280 00581000 * THE FOLLOWING DESCRIBES MOUNT NONSPECIFIC (SCRATCH). 0280 00582000 * IF THIS IS THE SECOND ENTRY FOR THE REQUEST AND THE MSC RETURN 00583000 * CODE IS ZERO THE REQUEST IS RETURNED WITH GOOD COMPLETION. 0280 00584000 * IF THE MSVC INVENTORY IS DISABLED AND THIS IS THE FIRST ENTRY 00585000 * FOR THE REQUEST, THE REQUEST IS RETURNED WITH BAD COMPLETION. 00586000 * IF THE MOUNT PARAMETER LIST HAS A ZERO MOUNT LIST @G18MB04 00587000 * EXTENSION ADDRESS OR IF THE JFCB ADDRESS IN THE MOUNT @G18MB04 00588000 * PARAMETER LIST EXTENSION IS ZERO, THE REQUEST IS @G18MB04 00589000 * RETURNED WITH BAD COMPLETION. @G18MB04 00590000 * IF ALL OF THE ABOVE TESTS ARE MET THEN THE AMOUNT OF @G18MB04 00591000 * STORAGE NEEDED FOR THE REQUEST IS CALCULATED, @G18MB04 00592000 * AND THROUGH THE SUBROUTINE VQMGSTOR A GETMAIN IS DONE @G18MB04 00593000 * FOR THE MSVC RPLV AND STORAGE FOR JES3 COMMUNICATION, @G18MB04 00594000 * RPLV IS ZEROED AND INITIALIZED WITH THE PROPER FLAGS @G18MB04 00595000 * AND ENTRIES. @G18MB04 00596000 * THE RPLV IS THEN FILLED IN WITH REQUEST DEPENDENT DATA. @G18MB04 00597000 * FOR REQUESTS OF INTEREST TO JES3 (MOUNT NONSPECIFIC @G18MB04 00598000 * WITH MSVGP CODED) THE SUBROUTINE VQMJESMT IS CALLED @G18MB04 00599000 * TO CONTROL FIRST ENTRY PROCESSING. @G18MB04 00600000 * FOR FIRST ENTRY OF REQUESTS NOT OF INTEREST TO JES3, @G18MB04 00601000 * THEN THROUGH ANOTHER SUBROUTINE THE RPLV IS CHAINED TO THE 0280 00602000 * HIGH PRIORITY QUEUE IN THE ICBVVICB AND THE SUBTASK IS POSTED 00603000 * IN ORDER TO HAVE THE MSVC INVENTORY UPDATED. 0280 00604000 * IF THIS IS THE FIRST ENTRY FOR THE REQUEST THEN 0280 00605000 * A WAIT IS THEN DONE FOR SUBTASK TO COMPLETE THE FUNCTION. 0280 00606000 * WHEN CONTROL IS RETURNED AFTER THE WAIT, A SUBROUTINE IS 0280 00607000 * CALLED TO FREE THE REQUEST BLOCK. A RETURN IS THEN MADE TO 0280 00608000 * ICBVQM00 MAINLINE WITH A FUNCTION SUCCESS COMPLETION WHICH 0280 00609000 * WILL BE RETURNED TO THE CALLER. @Y30LB24 00610000 * 0280 00611000 * IF THIS THE SECOND ENTRY FOR THE REQUEST AND THE MOUNT BY THE 00612000 * MSC WAS UNSUCCESSFUL THEN THE FOLLOWING IS DONE. 0280 00613000 * FOR REQUESTS OF INTEREST TO JES3 (MOUNT NONSPECIFIC @G18MB04 00614000 * WITH MSVGP CODED), THE SUBROUTINE VQMJESMT IS CALLED @G18MB04 00615000 * TO CONTROL SECOND ENTRY PROCESSING. FOR SECOND ENTRY @G18MB04 00616000 * FOR REQUESTS NOT OF INTEREST TO JES3, THE FOLLOWING @G18MB04 00617000 * HAPPENS IN VQMMOUNT -- @G18MB04 00618000 * A WAIT IS THEN DONE FOR SUBTASK TO COMPLETE THE FUNCTION. 0280 00619000 * WHEN CONTROL IS RETURNED AFTER THE WAIT, IF MSVC PROCESSING 0280 00620000 * WAS COMPLETED SUCCESSFULLY THE MOUNT IS REISSUED. 0280 00621000 * IF MSVC PROCESSING IS UNSUCCESSFUL THEN A SUBROUTINE IS 0280 00622000 * CALLED TO FREE THE REQUEST BLOCK AND A RETURN IS THEN MADE TO 00623000 * ICBVQM00 MAINLINE WITH A FUNCTION SUCCESS COMPLETION WHICH 0280 00624000 * WILL BE RETURNED TO THE CALLER. 0280 00625000 * IF THE REISSUED MOUNT WAS SUCCESSFUL THEN A SUBROUTINE IS 0280 00626000 * CALLED TO FREE THE REQUEST BLOCK. A RETURN IS THEN MADE TO 0280 00627000 * ICBVQM00 MAINLINE WITH A RETRY SUCCESSFUL COMPLETION WHICH 0280 00628000 * WILL BE RETURNED TO THE CALLER. 0280 00629000 * IF THE REISSUED MOUNT WAS NOT SUCCESSFUL THEN THE REQUEST IS 0280 00630000 * SET UP AGAIN AND PROCESSING STARTS OVER AGAIN UNTIL EITHER 0280 00631000 * THE MSVC RETURNS A UNSUCCESSFUL RETURN CODE OR THE REISSUED 0280 00632000 * MOUNT IS SUCCESSFUL. @Y30LB24 00633000 * 0280 00634000 * OUTPUT = MSSC-SVC REQUEST ENTRY ADDED TO RPLV CHAIN. @Y30LB24 00635000 * 0280 00636000 ******************************************************************** */ 00637000 */*VQMMOUNT: CHART */ 00638000 */*HEADER 0280 00639000 */*DECEMBER 8, 1975 ICBVQM00 - SEGMENT 0280 00640000 */*VQMMOUNT - VOLUME MOUNT PROCESSING */ 00641000 */* E VQMMOUNT */ 00642000 */* D (NO,,YES,%SCR) MOUNT SCRATCH */ 00643000 */* D (NO,,YES,%END) MSVC DISABLED */ 00644000 */* D (NO,,YES,%END) MSC REASON CODE ZERO */ 00645000 */* D (NO,,YES,%GET) INITIAL ENTRY FOR ORDER */ 00646000 */* W STIMER WAIT 5.12 SEC */ 00647000 */* L REISSUE MOUNT */ 00648000 */* D (NO,,YES,%GET) MOUNT FAIL */ 00649000 */* P (,%END) SET NEW R/R CODES */ 00650000 */*%GET: P SET GETMAIN LENGTH */ 00651000 */* S VQMGSTOR: GETMAIN FOR RPLV */ 00652000 */* D (YES,,NO,%BLD) ERROR FROM GETMAIN */ 00653000 */* P (,%END) NEVER FAIL MOUNT SPECIFIC */ 00654000 */*%BLD: P BUILD REQUEST BLOCK */ 00655000 */* D (NO,,YES,%ADD) INITIAL ENTRY FOR ORDER */ 00656000 */* P INDICATE SECOND ENTRY */ 00657000 */*%ADD: S VQMADDRB: CHAIN RPLV */ 00658000 */* P (,%END) NEVER FAIL MOUNT SPECIFIC */ 00659000 */*%SCR: D (NO,,YES,%END) MSC REASON CODE ZERO */ 00660000 */* D (YES,,NO,%CON) MSVC DISABLED */ 00661000 */* D (YES,,NO,%CON) INITIAL ENTRY FOR ORDER */ 00662000 */* P (,%END) INDICATE MSVC DISABLE */ 00663000 */*%CON: D (YES,,NO,%PRO) JFCB ADDRESS OR PARM LIST EXTENSION 00664000 */*ZERO */ 00665000 */* P (,%END) INDICATE BAD PARM */ 00666000 */*%PRO: P SET GETMAIN LENGTH FOR RPLV AND JES3 00667000 */*COMMUNIC. STORAGE */ 00668000 */* S VQMGSTOR: GETMAIN */ 00669000 */* D (NO,,YES,%END) ERROR FROM GETMAIN */ 00670000 */* P BUILD REQUEST BLOCK */ 00671000 */* D (NO,,YES,%ADD1) INITIAL ENTRY FOR ORDER */ 00672000 */*%SEC: D (NO,%ADD2,YES,) WAS MSVGP SPECIFIED ? */ 00673000 */* S (,%END) VQMJESMT: PROCESS MOUNT NONSPECIF, 00674000 */*2ND ENTRY & MSVGP */ 00675000 */*%ADD2: P CLEAR FLAGS & ENTRIES */ 00676000 */* P INDICATE SECOND ENTRY */ 00677000 */* S VQMADDRB: CHAIN RPLV */ 00678000 */* D (YES,,NO,%RET) MSVC SELECTION OK */ 00679000 */* L REISSUE MOUNT */ 00680000 */* D (NO,,YES,%ADD2) MOUNT FAIL */ 00681000 */* P SET NEW R/R CODES */ 00682000 */*%RET: P MOVE PARAMETERS TO USER'S LIST */ 00683000 */* P SET FREEMAIN LENGTH */ 00684000 */* S VQMFSTOR: FREEMAIN RPLV */ 00685000 */* P (,%END) RETURN TO ICBVQM00 */ 00686000 */*%ADD1: P INDICATE FIRST ENTRY */ 00687000 */* D (NO,%ADD3,YES,) WAS MSVGP SPECIFIED ? */ 00688000 */* S (,%END) VQMJESMT: PROCESS MOUNT NONSPECIF, 00689000 */*1ST ENTRY & MSVGP */ 00690000 */*%ADD3: S VQMADDRB: CHAIN RPLV */ 00691000 */* P MOVE PARAMETERS TO USER'S LIST */ 00692000 */* P SET FREEMAIN LENGTH */ 00693000 */* S VQMFSTOR: FREEMAIN RPLV */ 00694000 */*%END: R RETURN TO ICBVQM00 MAINLINE */ 00695000 */*VQMMOUNT: END */ 00696000 * 0280 00697000 *VQMMOUNT: 0280 00698000 * PROCEDURE OPTIONS(NOSAVE,NOSAVEAREA); 0280 00699000 VQMMOUNT DS 0H 0281 00700000 * IF MDSRTCH=OFF THEN /* MOUNT SPECIFIC? @Y30LB24*/ 00701000 TM MDSRTCH(PARMPTR),B'00010000' 0281 00702000 BNZ @RF00281 0281 00703000 * DO; /* YES @Y30LB24*/ 00704000 * IF VVIFLG0=ON| /* TOTAL DISABLE @Y30LB24*/ 00705000 * PARM0=RZERO THEN /* ZERO MSC RCODE @Y30LB24*/ 00706000 TM VVIFLG0(VVIPTR),B'10000000' 0283 00707000 BO @RT00283 0283 00708000 C PARM0,RZERO 0283 00709000 BNE @RF00283 0283 00710000 @RT00283 DS 0H 0284 00711000 * DO; /* YES @Y30LB24*/ 00712000 * REG0=SUCCES; /* REASON CODE (000) @YM34322*/ 00713000 SLR REG0,REG0 0285 00714000 * FAILCODE=ZERO; /* SET RETURN CODE @Y30LB24*/ 00715000 SLR FAILCODE,FAILCODE 0286 00716000 * RETURN; /* RETURN TO ICBVQM00 @Y30LB24*/ 00717000 @EL00003 DS 0H 0287 00718000 @EF00003 DS 0H 0287 00719000 @ER00003 BR @14 0287 00720000 * END; /* @Y30LB24*/ 00721000 * IF PARM0^=ZERO THEN /* BAD MSC RETURN CODE @Y30LB24*/ 00722000 @RF00283 LTR PARM0,PARM0 0289 00723000 BZ @RF00289 0289 00724000 * DO; /* YES @Y30LB24*/ 00725000 * GEN(STIMER WAIT,BINTVL=TIME);/* WAIT TO REISSUE @Y30LB24*/ 00726000 STIMER WAIT,BINTVL=TIME 00727000 * MDVISMNT=ON; /* SET MSVC MNT ON @YM34322 00728000 * SO VVIC WONT BE @YM34322 00729000 * CALLED @YM34322*/ 00730000 OI MDVISMNT(PARMPTR),B'01000000' 0292 00731000 * REG1=PARMPTR; /* SET PARM ADDRESS @Y30LB24*/ 00732000 LR REG1,PARMPTR 0293 00733000 *LMSSC1: 0294 00734000 * SVC(126); /* INVOKE SVC 126 REISSUE MOUNT 00735000 * @Y30LB24*/ 00736000 LMSSC1 SVC 126 0294 00737000 * MDVISMNT=OFF; /* SET MSVC MNT OFF @Y30LB24*/ 00738000 NI MDVISMNT(PARMPTR),B'10111111' 0295 00739000 * IF REG15=ZERO THEN /* MOUNT SUCCESSFUL @Y30LB24*/ 00740000 LTR REG15,REG15 0296 00741000 BNZ @RF00296 0296 00742000 * DO; /* YES @Y30LB24*/ 00743000 * REG0=ZERO; /* REASON CODE (000) @Y30LB24*/ 00744000 SLR REG0,REG0 0298 00745000 * FAILCODE=EIGHT; /* SET RETURN CODE @Y30LB24*/ 00746000 LA FAILCODE,8 0299 00747000 * RETURN; /* RETURN TO ICBVQM00 @Y30LB24*/ 00748000 B @EL00003 0300 00749000 * END; /* @Y30LB24*/ 00750000 * END; /* @Y30LB24*/ 00751000 @RF00296 DS 0H 0303 00752000 * REG8=REG14; /* SAVE LINKREG @Y30LB24*/ 00753000 @RF00289 LR REG8,REG14 0303 00754000 * REG2=LENGTH(RPLV); /* SET RPLV LENGTH @Y30LB24*/ 00755000 LA REG2,132 0304 00756000 * REG2=REG2+PLENGTH; /* ADD ORDER LENGTH @Y30LB24*/ 00757000 AL REG2,PLENGTH(,PARMPTR) 0305 00758000 * CALL VQMGSTOR; /* CALL GETMAIN RTN @Y30LB24*/ 00759000 BAL @14,VQMGSTOR 0306 00760000 * IF FAILCODE^=ZERO THEN /* CORE AVAILABLE? @Y30LB24*/ 00761000 LTR FAILCODE,FAILCODE 0307 00762000 BZ @RF00307 0307 00763000 * DO; /* NO @Y30LB24*/ 00764000 * REG0=SUCCES; /* REASON CODE (000) @YM34322*/ 00765000 SLR REG0,REG0 0309 00766000 * FAILCODE=ZERO; /* SET RETURN CODE @Y30LB24*/ 00767000 SLR FAILCODE,FAILCODE 0310 00768000 * REG14=REG8; /* RESTORE LINKREG @Y30LB24*/ 00769000 LR REG14,REG8 0311 00770000 * RETURN; /* RETURN TO ICBVQM00 @Y30LB24*/ 00771000 B @EL00003 0312 00772000 * END; /* @Y30LB24*/ 00773000 * RPLFTIME=ON; /* DEFAULT SECOND ENTRY @Y30LB24*/ 00774000 @RF00307 OI RPLFTIME(RPLVPTR),B'10000000' 0314 00775000 * IF PARM0=ZERO THEN /* FIRST ENTRY? @Y30LB24*/ 00776000 LTR PARM0,PARM0 0315 00777000 BNZ @RF00315 0315 00778000 * RPLFTIME=OFF; /* INDICATE FIRST ENTRY @Y30LB24*/ 00779000 NI RPLFTIME(RPLVPTR),B'01111111' 0316 00780000 * RPLVPOST=OFF; /* INDICATE NO ECB POST @Y30LB24*/ 00781000 @RF00315 NI RPLVPOST(RPLVPTR),B'10111111' 0317 00782000 * RPLRCODE=PARM0; /* SET REASON CODE @Y30LB24*/ 00783000 STH PARM0,RPLRCODE(,RPLVPTR) 0318 00784000 * RPLVRETC=PARM0; /* SET RETURN CODE @Y30LB24*/ 00785000 STH PARM0,RPLVRETC(,RPLVPTR) 0319 00786000 * REG1=PLENGTH; /* SET PARM LENGTH @Y30LB24*/ 00787000 L REG1,PLENGTH(,PARMPTR) 0320 00788000 * RPLVUTIL(1:REG1)=PARMLIST; /* COPY PARMS @Y30LB24*/ 00789000 LR @11,REG1 0321 00790000 BCTR @11,0 0321 00791000 EX @11,@SM01699 0321 00792000 * CALL VQMADDRB; /* CALL QUEUING RTN @Y30LB24*/ 00793000 BAL @14,VQMADDRB 0322 00794000 * REG0=SUCCES; /* REASON CODE (000) @YM34322*/ 00795000 SLR REG0,REG0 0323 00796000 * FAILCODE=ZERO; /* SET RETURN CODE @Y30LB24*/ 00797000 SLR FAILCODE,FAILCODE 0324 00798000 * REG14=REG8; /* RESTORE LINKREG @Y30LB24*/ 00799000 LR REG14,REG8 0325 00800000 * RETURN; /* RETURN TO ICBVQM00 @Y30LB24*/ 00801000 B @EL00003 0326 00802000 * END; /* END MOUNT SPECIFIC @Y30LB24*/ 00803000 * 0328 00804000 * /*****************************************************************/ 00805000 * /* */ 00806000 * /* THIS SECTION OF CODE PROCESSES MOUNT SCRATCH REQUESTS */ 00807000 * /* */ 00808000 * /*****************************************************************/ 00809000 * 0328 00810000 * IF PARM0=RZERO THEN /* ZERO MSC RETURN CODE @Y30LB24*/ 00811000 @RF00281 C PARM0,RZERO 0328 00812000 BNE @RF00328 0328 00813000 * DO; /* YES @Y30LB24*/ 00814000 * REG0=SUCCES; /* REASON CODE (000) @YM34322*/ 00815000 SLR REG0,REG0 0330 00816000 * FAILCODE=ZERO; /* SET RETURN CODE @Y30LB24*/ 00817000 SLR FAILCODE,FAILCODE 0331 00818000 * RETURN; /* RETURN TO ICBVQM00 @Y30LB24*/ 00819000 B @EL00003 0332 00820000 * END; /* @Y30LB24*/ 00821000 * IF VVIFLG0=ON& /* TOTAL DISABLE AND @Y30LB24*/ 00822000 * PARM0=ZERO THEN /* FIRST ENTRY? @Y30LB24*/ 00823000 @RF00328 TM VVIFLG0(VVIPTR),B'10000000' 0334 00824000 BNO @RF00334 0334 00825000 LTR PARM0,PARM0 0334 00826000 BNZ @RF00334 0334 00827000 * DO; /* YES @Y30LB24*/ 00828000 * REG0=IDISABL; /* REASON CODE (213) @YM34322*/ 00829000 LA REG0,531 0336 00830000 * FAILCODE=FOUR; /* SET RETURN CODE @Y30LB24*/ 00831000 LA FAILCODE,4 0337 00832000 * RETURN; /* RETURN TO ICBVQM00 @Y30LB24*/ 00833000 B @EL00003 0338 00834000 * END; /* @Y30LB24*/ 00835000 * REG15=ZERO; /* ZERO WORK REGISTER @ZDR2048*/ 00836000 * 0340 00837000 @RF00334 SLR REG15,REG15 0340 00838000 * /*****************************************************************/ 00839000 * /* */ 00840000 * /* CHECK FOR ADDRESSABILITY TO JFCB @ZDR2048*/ 00841000 * /* */ 00842000 * /*****************************************************************/ 00843000 * 0341 00844000 * IF MDJFCB=REG15|(MDMEXT=ON&MNTXJFCB=REG15)/* @ZDR2048*/ 00845000 * THEN 0341 00846000 C REG15,MDJFCB(,PARMPTR) 0341 00847000 BE @RT00341 0341 00848000 TM MDMEXT(PARMPTR),B'00001000' 0341 00849000 BNO @RF00341 0341 00850000 L @11,MNTEXTP(,PARMPTR) 0341 00851000 C REG15,MNTXJFCB(,@11) 0341 00852000 BNE @RF00341 0341 00853000 @RT00341 DS 0H 0342 00854000 * DO; /* NOT ALLOWABLE @G18MB04*/ 00855000 * REG0=NOJFCB; /* REASON CODE (215) @YM34322*/ 00856000 LA REG0,533 0343 00857000 * FAILCODE=FOUR; /* SET RETURN CODE @Y30LB24*/ 00858000 LA FAILCODE,4 0344 00859000 * RETURN; /* RETURN TO ICBVQM00 @Y30LB24*/ 00860000 B @EL00003 0345 00861000 * END; /* @Y30LB24*/ 00862000 * REG8=REG14; /* SAVE LINKREG @Y30LB24*/ 00863000 @RF00341 LR REG8,REG14 0347 00864000 * REG2=LENGTH(RPLV); /* SET RPLV LENGTH @Y30LB24*/ 00865000 LA REG2,132 0348 00866000 * REG2=REG2+PLENGTH; /* ADD ORDER LENGTH @Y30LB24*/ 00867000 AL REG2,PLENGTH(,PARMPTR) 0349 00868000 * REG2=REG2+LJFCBOX; /* ADD JFCB LENGTH #YM34322*/ 00869000 AL REG2,@CF00127 0350 00870000 * IF MDMEXT=ON /* MOUNT LIST EXTENSION USED ? 0351 00871000 * @ZDR2048*/ 00872000 * THEN 0351 00873000 TM MDMEXT(PARMPTR),B'00001000' 0351 00874000 BNO @RF00351 0351 00875000 * REG3=MNTXJFCB; /* GET JFCB ADDR THERE @ZDR2048*/ 00876000 L @11,MNTEXTP(,PARMPTR) 0352 00877000 L REG3,MNTXJFCB(,@11) 0352 00878000 * ELSE /* JFCB ADDRESS IS IN MOUNT 0353 00879000 * PARAMETER LIST @ZDR2048*/ 00880000 * REG3=MDJFCB; /* SET JFCB ADDR @G18MB04*/ 00881000 B @RC00351 0353 00882000 @RF00351 L REG3,MDJFCB(,PARMPTR) 0353 00883000 * REG15=NVOL; /* SET PARM WORK REG @Y30LB24*/ 00884000 @RC00351 SLR REG15,REG15 0354 00885000 IC REG15,NVOL(,REG3) 0354 00886000 * REG15=REG15-NVOLJFCB; /* SUB JFCB CNT @YM34322*/ 00887000 SL REG15,@CF00123 0355 00888000 * DO WHILE REG15>ZERO; /* JFCBX NEEDED? @Y30LB24*/ 00889000 B @DE00356 0356 00890000 @DL00356 DS 0H 0357 00891000 * REG2=REG2+LJFCBOX; /* ADD JFCBX LENGTH @YM34322*/ 00892000 AL REG2,@CF00127 0357 00893000 * REG15=REG15-NVOLJX; /* SUB JFCBX CNT @YM34322*/ 00894000 SL REG15,@CF00033 0358 00895000 * END; 0359 00896000 * 0359 00897000 @DE00356 LTR REG15,REG15 0359 00898000 BP @DL00356 0359 00899000 * /*****************************************************************/ 00900000 * /* */ 00901000 * /* IF NONSPECIFIC-WITH-MSVGP-SPECIFIED, NEED MORE @G18MB04*/ 00902000 * /* */ 00903000 * /*****************************************************************/ 00904000 * 0360 00905000 * IF JFCBMSGP=ON /* WAS MSVGP SPECIFIED ? @G18MB04*/ 00906000 * THEN /* YES @G18MB04*/ 00907000 TM JFCBMSGP(REG3),B'00100000' 0360 00908000 BNO @RF00360 0360 00909000 * DO; /* READY FOR MORE STORAGE 0361 00910000 * @G18MB04*/ 00911000 * MNSWMPT=REG2; /* SAVE SIZE OF FIRST PART 0362 00912000 * @G18MB04*/ 00913000 LR MNSWMPT,REG2 0362 00914000 * REG2=REG2+LENGTH(MNSWMSTG); /* ADD LENGTH OF ADDITIONAL 0363 00915000 * @G18MB04*/ 00916000 AL REG2,@CF01683 0363 00917000 * END; /* @G18MB04*/ 00918000 * CALL VQMGSTOR; /* CALL GETMAIN RTN @Y30LB24*/ 00919000 @RF00360 BAL @14,VQMGSTOR 0365 00920000 * IF FAILCODE^=ZERO THEN /* CORE AVAILABLE? @Y30LB24*/ 00921000 LTR FAILCODE,FAILCODE 0366 00922000 BZ @RF00366 0366 00923000 * DO; /* NO @Y30LB24*/ 00924000 * REG14=REG8; /* RESTORE LINKREG @Y30LB24*/ 00925000 LR REG14,REG8 0368 00926000 * RETURN; /* RETURN TO ICBVQM00 @Y30LB24*/ 00927000 B @EL00003 0369 00928000 * END; /* @Y30LB24*/ 00929000 * REG1=PLENGTH; /* SET PARM LENGTH @Y30LB24*/ 00930000 @RF00366 L @11,PLENGTH(,PARMPTR) 0371 00931000 LR REG1,@11 0371 00932000 * RPLVUTIL(1:REG1)=PARMLIST; /* COPY PARMS @Y30LB24*/ 00933000 LR @07,REG1 0372 00934000 BCTR @07,0 0372 00935000 EX @07,@SM01699 0372 00936000 * REG2=ADDR(RPLVUTIL); /* SET RPLV ADDR @Y30LB24*/ 00937000 LA REG2,RPLVUTIL(,RPLVPTR) 0373 00938000 * REG2=REG2+PLENGTH; /* ADD ORDER LENGTH @Y30LB24*/ 00939000 ALR REG2,@11 0374 00940000 * REG1=LJFCBOX; /* SET JFCB LENGTH @YM34322*/ 00941000 LA REG1,176 0375 00942000 * IF MDMEXT=ON /* MOUNT LIST EXTENSION USED ? 0376 00943000 * @ZDR2048*/ 00944000 * THEN 0376 00945000 TM MDMEXT(PARMPTR),B'00001000' 0376 00946000 BNO @RF00376 0376 00947000 * REG3=MNTXJFCB; /* GET JFCB ADDR THERE @ZDR2048*/ 00948000 L @11,MNTEXTP(,PARMPTR) 0377 00949000 L REG3,MNTXJFCB(,@11) 0377 00950000 * ELSE /* USE JFCB ADDR FROM MOUNT PARAM 00951000 * LIST @ZDR2048*/ 00952000 * REG3=MDJFCB; /* SET JFCB ADDR @G18MB04*/ 00953000 B @RC00376 0378 00954000 @RF00376 L REG3,MDJFCB(,PARMPTR) 0378 00955000 * MOVELST(1:REG1)=INFMJFCB; /* COPY JFCB @Y30LB24*/ 00956000 @RC00376 LR @11,REG1 0379 00957000 BCTR @11,0 0379 00958000 EX @11,@SM01706 0379 00959000 * REG2=REG2+LJFCBOX; /* ADD JFCB LENGTH @YM34322*/ 00960000 AL REG2,@CF00127 0380 00961000 * REG15=NVOL; /* SET PARM WORK REG @Y30LB24*/ 00962000 SLR REG15,REG15 0381 00963000 IC REG15,NVOL(,REG3) 0381 00964000 * REG3=EXAD; /* SET JFCBX ADDR @ZA05100*/ 00965000 L @11,EXAD-1(,REG3) 0382 00966000 LA @11,0(,@11) 0382 00967000 LR REG3,@11 0382 00968000 * REG15=REG15-NVOLJFCB; /* SUB JFCB CNT @YM34322*/ 00969000 SL REG15,@CF00123 0383 00970000 * DO WHILE REG15>ZERO; /* JFCBX NEEDED? @Y30LB24*/ 00971000 B @DE00384 0384 00972000 @DL00384 DS 0H 0385 00973000 * REG1=LJFCBOX; /* SET JFCBX LENGTH @YM34322*/ 00974000 LA @11,176 0385 00975000 LR REG1,@11 0385 00976000 * MOVELST(1:REG1)=JFCBX; /* COPY JFCBX @Y30LB24*/ 00977000 LR @07,REG1 0386 00978000 BCTR @07,0 0386 00979000 EX @07,@SM01708 0386 00980000 * REG3=JFCBXNXT; /* SET JFCBX ADDR @Y30LB24*/ 00981000 L REG3,JFCBXNXT(,REG3) 0387 00982000 * REG2=REG2+LJFCBOX; /* ADD JFCBX LENGTH @YM34322*/ 00983000 ALR REG2,@11 0388 00984000 * REG15=REG15-NVOLJX; /* SUB JFCBX CNT @YM34322*/ 00985000 SL REG15,@CF00033 0389 00986000 * END; /* @Y30LB24*/ 00987000 @DE00384 SLR @11,@11 0390 00988000 CR REG15,@11 0390 00989000 BH @DL00384 0390 00990000 * IF PARM0=ZERO THEN /* FIRST ENTRY FOR REQUEST 0391 00991000 * @Y30LB24*/ 00992000 CR PARM0,@11 0391 00993000 BNE @RF00391 0391 00994000 * DO; /* YES @Y30LB24*/ 00995000 * RPLFTIME=OFF; /* INDICATE FIRST ENTRY @Y30LB24*/ 00996000 NI RPLFTIME(RPLVPTR),B'01111111' 0393 00997000 * IF MDMEXT=ON /* MOUNT LIST EXTENSION USED ? 0394 00998000 * @ZDR2048*/ 00999000 * THEN 0394 01000000 TM MDMEXT(PARMPTR),B'00001000' 0394 01001000 BNO @RF00394 0394 01002000 * REG3=MNTXJFCB; /* GET JFCB ADDR THERE @ZDR2048*/ 01003000 L @11,MNTEXTP(,PARMPTR) 0395 01004000 L REG3,MNTXJFCB(,@11) 0395 01005000 * ELSE /* USE JFCB ADDR FROM MOUNT PARAM 01006000 * LIST @ZDR2048*/ 01007000 * REG3=MDJFCB; /* SET JFCB ADDR @G18MB04*/ 01008000 B @RC00394 0396 01009000 @RF00394 L REG3,MDJFCB(,PARMPTR) 0396 01010000 * IF JFCBMSGP=ON&MDMEXT=ON /* WAS MSVGP SPECIFIED @G18MB04*/ 01011000 * THEN /* YES, SPECIAL PROCESS @G18MB04*/ 01012000 @RC00394 TM JFCBMSGP(REG3),B'00100000' 0397 01013000 BNO @RF00397 0397 01014000 TM MDMEXT(PARMPTR),B'00001000' 0397 01015000 BNO @RF00397 0397 01016000 * DO; /* VQMJESMT DOES IT @G18MB04*/ 01017000 * CALL VQMJESMT; /* @G18MB04*/ 01018000 BAL @14,VQMJESMT 0399 01019000 * REG14=REG8; /* RESTORE RETURN @G18MB04*/ 01020000 LR REG14,REG8 0400 01021000 * RETURN; /* VQMJESMT COMPLETE @G18MB04*/ 01022000 B @EL00003 0401 01023000 * END; /* @G18MB04*/ 01024000 * RPLVPOST=ON; /* INDICATE ECB POST @Y30LB24*/ 01025000 @RF00397 OI RPLVPOST(RPLVPTR),B'01000000' 0403 01026000 * CALL VQMADDRB; /* CALL QUEUING RTN @Y30LB24*/ 01027000 BAL @14,VQMADDRB 0404 01028000 * REG1=PLENGTH; /* SET PARM LENGTH @Y30LB24*/ 01029000 L REG1,PLENGTH(,PARMPTR) 0405 01030000 * REG2=ADDR(RPLVUTIL); /* SET RPLV ADDR @Y30LB24*/ 01031000 LA REG2,RPLVUTIL(,RPLVPTR) 0406 01032000 * PARMLIST(1:REG1)=REG2->PARMLIST;/* COPY BACK @Y30LB24*/ 01033000 LR @11,REG1 0407 01034000 BCTR @11,0 0407 01035000 EX @11,@SM01710 0407 01036000 * REG2=REG2+PLENGTH; /* ADD ORDER LENGTH @Y30LB24*/ 01037000 AL REG2,PLENGTH(,PARMPTR) 0408 01038000 * REG1=LJFCBOX; /* SET JFCB LENGTH #YM34322*/ 01039000 LA REG1,176 0409 01040000 * IF MDMEXT=ON /* MOUNT LIST EXTENSION USED ? 0410 01041000 * @ZDR2048*/ 01042000 * THEN 0410 01043000 TM MDMEXT(PARMPTR),B'00001000' 0410 01044000 BNO @RF00410 0410 01045000 * REG3=MNTXJFCB; /* GET JFCB ADDR @ZDR2048*/ 01046000 L @11,MNTEXTP(,PARMPTR) 0411 01047000 L REG3,MNTXJFCB(,@11) 0411 01048000 * ELSE /* GET JFCB ADDR FROM MOUNT PARAM 01049000 * LIST @ZDR2048*/ 01050000 * REG3=MDJFCB; /* SET JFCB ADDR @G18MB04*/ 01051000 B @RC00410 0412 01052000 @RF00410 L REG3,MDJFCB(,PARMPTR) 0412 01053000 * INFMJFCB=MOVELST(1:REG1); /* COPY JFCB BACK @Y30LB24*/ 01054000 @RC00410 MVI INFMJFCB+1(REG3),C' ' 0413 01055000 MVC INFMJFCB+2(92,REG3),INFMJFCB+1(REG3) 0413 01056000 LR @11,REG1 0413 01057000 BCTR @11,0 0413 01058000 EX @11,@SM01712 0413 01059000 * CALL VQMFSTOR; /* CALL FREEMAIN RTN @Y30LB24*/ 01060000 BAL @14,VQMFSTOR 0414 01061000 * REG14=REG8; /* RESTORE LINKREG @Y30LB24*/ 01062000 LR REG14,REG8 0415 01063000 * RETURN; /* RETURN TO ICBVQM00 @Y30LB24*/ 01064000 B @EL00003 0416 01065000 * END; /* @Y30LB24*/ 01066000 * 0418 01067000 * /*****************************************************************/ 01068000 * /* */ 01069000 * /* THIS SECTION OF CODE PROCESSES MOUNT RETRY @Y30LB24*/ 01070000 * /* */ 01071000 * /*****************************************************************/ 01072000 * 0418 01073000 * REG0=PARM0; /* SET PARAMETER WORK REG 0418 01074000 * @Y30LB24*/ 01075000 @RF00391 LR REG0,PARM0 0418 01076000 * REG15=PARM0; /* SET PARAMETER WORK REG 0419 01077000 * @Y30LB24*/ 01078000 LR REG15,PARM0 0419 01079000 * IF MDMEXT=ON /* MOUNT LIST EXTENSION USED ? 0420 01080000 * @ZDR2048*/ 01081000 * THEN 0420 01082000 TM MDMEXT(PARMPTR),B'00001000' 0420 01083000 BNO @RF00420 0420 01084000 * REG3=MNTXJFCB; /* GET JFCB ADDR @ZDR2048*/ 01085000 L @11,MNTEXTP(,PARMPTR) 0421 01086000 L REG3,MNTXJFCB(,@11) 0421 01087000 * ELSE /* GET JFCB ADDR FROM MOUNT PARAM 01088000 * LIST @ZDR2048*/ 01089000 * REG3=MDJFCB; /* SET JFCB ADDR @G18MB04*/ 01090000 B @RC00420 0422 01091000 @RF00420 L REG3,MDJFCB(,PARMPTR) 0422 01092000 * IF JFCBMSGP=ON&MDMEXT=ON /* WAS MSVGP SPECIFIED @G18MB04*/ 01093000 * THEN /* YES, NEED SPECIAL PROCESSING 01094000 * @G18MB04*/ 01095000 @RC00420 TM JFCBMSGP(REG3),B'00100000' 0423 01096000 BNO @RF00423 0423 01097000 TM MDMEXT(PARMPTR),B'00001000' 0423 01098000 BNO @RF00423 0423 01099000 * DO; /* @G18MB04*/ 01100000 * RPLFTIME=ON; /* INDICATE RETRY OR 2ND TIME 0425 01101000 * @G18MB04*/ 01102000 OI RPLFTIME(RPLVPTR),B'10000000' 0425 01103000 * CALL VQMJESMT; /* LET VQMJESMT DO ALL PROCESSING 01104000 * @G18MB04*/ 01105000 BAL @14,VQMJESMT 0426 01106000 * REG14=REG8; /* RESTORE RETURN FOR VQMMOUNT 0427 01107000 * @G18MB04*/ 01108000 LR REG14,REG8 0427 01109000 * RETURN; /* @G18MB04*/ 01110000 B @EL00003 0428 01111000 * END; /* ALL NONSPECIFIC WITH MSVGP,2ND 01112000 * ENTRY @G18MB04*/ 01113000 * DO WHILE REG15^=ZERO; /* BAD MSC RETURN CODE @Y30LB24*/ 01114000 @RF00423 B @DE00430 0430 01115000 @DL00430 DS 0H 0431 01116000 * RPLFLAGA=''B; /* ZERO FLAGS @Y30LB24*/ 01117000 XC RPLFLAGA(2,RPLVPTR),RPLFLAGA(RPLVPTR) 0431 01118000 * RPLVSAM=''B; /* ZERO VSAM RPL @Y30LB24*/ 01119000 XC RPLVSAM(76,RPLVPTR),RPLVSAM(RPLVPTR) 0432 01120000 * RPLFTIME=ON; /* INDICATE SECOND ENTRY @Y30LB24*/ 01121000 * RPLVPOST=ON; /* INDICATE ECB POST @Y30LB24*/ 01122000 OI RPLFTIME(RPLVPTR),B'11000000' 0434 01123000 * RPLRCODE=REG0; /* SET REASON CODE @Y30LB24*/ 01124000 STH REG0,RPLRCODE(,RPLVPTR) 0435 01125000 * RPLVRETC=REG0; /* SET RETURN CODE @Y30LB24*/ 01126000 STH REG0,RPLVRETC(,RPLVPTR) 0436 01127000 * CALL VQMADDRB; /* CALL QUEUING RTN @Y30LB24*/ 01128000 BAL @14,VQMADDRB 0437 01129000 * IF RPLVRETC^=ZERO THEN /* MSVC SUCCESSFUL? @Y30LB24*/ 01130000 LH @11,RPLVRETC(,RPLVPTR) 0438 01131000 N @11,@CF01714 0438 01132000 LTR @11,@11 0438 01133000 BZ @RF00438 0438 01134000 * DO; /* NO @Y30LB24*/ 01135000 * REG15=ZERO; /* SET LOOP FAIL @Y30LB24*/ 01136000 SLR REG15,REG15 0440 01137000 * END; /* @Y30LB24*/ 01138000 * ELSE 0442 01139000 * DO; /* REISSUE MOUNT @Y30LB24*/ 01140000 B @RC00438 0442 01141000 @RF00438 DS 0H 0443 01142000 * REG1=ADDR(RPLVUTIL); /* SET RPLV ADDR @Y30LB24*/ 01143000 LA REG1,RPLVUTIL(,RPLVPTR) 0443 01144000 * REG1->MDVISMNT=ON; /* SET MSVC MNT ON @Y30LB24*/ 01145000 OI MDVISMNT(REG1),B'01000000' 0444 01146000 *LMSSC2: 0445 01147000 * SVC(126); /* INVOKE SVC 126 ISSUE MOUNT 0445 01148000 * @Y30LB24*/ 01149000 LMSSC2 SVC 126 0445 01150000 * REG1->MDVISMNT=OFF; /* SET MSVC MNT OFF @Y30LB24*/ 01151000 NI MDVISMNT(REG1),B'10111111' 0446 01152000 * IF REG15=ZERO THEN /* MOUNT SUCCESSFUL @Y30LB24*/ 01153000 SLR @11,@11 0447 01154000 CR REG15,@11 0447 01155000 BNE @RF00447 0447 01156000 * DO; /* YES @Y30LB24*/ 01157000 * RPLRCODE=ZERO; /* REASON CODE (000) @Y30LB24*/ 01158000 STH @11,RPLRCODE(,RPLVPTR) 0449 01159000 * RPLVRETC=EIGHT; /* SET RETURN CODE @Y30LB24*/ 01160000 MVC RPLVRETC(2,RPLVPTR),@CH00061 0450 01161000 * END; /* @Y30LB24*/ 01162000 * END; /* @Y30LB24*/ 01163000 @RF00447 DS 0H 0453 01164000 * END; /* @Y30LB24*/ 01165000 @RC00438 DS 0H 0453 01166000 @DE00430 LTR REG15,REG15 0453 01167000 BNZ @DL00430 0453 01168000 * REG1=PLENGTH; /* SET PARM LENGTH @Y30LB24*/ 01169000 L REG1,PLENGTH(,PARMPTR) 0454 01170000 * REG2=ADDR(RPLVUTIL); /* SET RPLV ADDR @Y30LB24*/ 01171000 LA REG2,RPLVUTIL(,RPLVPTR) 0455 01172000 * PARMLIST(1:REG1)=REG2->PARMLIST;/* COPY PARM BACK @Y30LB24*/ 01173000 LR @11,REG1 0456 01174000 BCTR @11,0 0456 01175000 EX @11,@SM01710 0456 01176000 * REG2=REG2+PLENGTH; /* ADD ORDER LENGTH @Y30LB24*/ 01177000 AL REG2,PLENGTH(,PARMPTR) 0457 01178000 * REG1=LJFCBOX; /* SET JFCB LENGTH #YM34322*/ 01179000 LA REG1,176 0458 01180000 * IF MDMEXT=ON /* MOUNT LIST EXTENSION USED ? 0459 01181000 * @ZDR2048*/ 01182000 * THEN 0459 01183000 TM MDMEXT(PARMPTR),B'00001000' 0459 01184000 BNO @RF00459 0459 01185000 * REG3=MNTXJFCB; /* GET JFCB ADDR THERE @ZDR2048*/ 01186000 L @11,MNTEXTP(,PARMPTR) 0460 01187000 L REG3,MNTXJFCB(,@11) 0460 01188000 * ELSE /* JFCB ADDR FROM MOUNT PARAM 0461 01189000 * LIST @ZDR2048*/ 01190000 * REG3=MDJFCB; /* SET JFCB ADDR @G18MB04*/ 01191000 B @RC00459 0461 01192000 @RF00459 L REG3,MDJFCB(,PARMPTR) 0461 01193000 * INFMJFCB=MOVELST(1:REG1); /* COPY JFCB BACK @Y30LB24*/ 01194000 @RC00459 MVI INFMJFCB+1(REG3),C' ' 0462 01195000 MVC INFMJFCB+2(92,REG3),INFMJFCB+1(REG3) 0462 01196000 LR @11,REG1 0462 01197000 BCTR @11,0 0462 01198000 EX @11,@SM01712 0462 01199000 * CALL VQMFSTOR; /* CALL FREEMAIN RTN @Y30LB24*/ 01200000 BAL @14,VQMFSTOR 0463 01201000 * REG14=REG8; /* RESTORE LINKREG @Y30LB24*/ 01202000 LR REG14,REG8 0464 01203000 * RETURN; /* RETURN TO ICBVQM00 @Y30LB24*/ 01204000 B @EL00003 0465 01205000 * END VQMMOUNT; /* END MOUNT RTN @Y30LB24*/ 01206000 * 0467 01207000 */* ****************************************************************** 01208000 * 0467 01209000 * NAME = VQMDEMNT, VOLUME DEMOUNT PROCESSING. @Y30LB24 01210000 * 0467 01211000 * INPUT = POINTER TO THE MSSC-SVC REQUEST, AND A POINTER TO 0467 01212000 * THE MSVC CONTROL BLOCK (ICBVVICB). @Y30LB24 01213000 * 0467 01214000 * PROCESS = THIS SUBROUTINE IS CALLED FOR PROCESSING OF 0467 01215000 * DEMOUNT REQUESTS. 0467 01216000 * IF THE MSVC INVENTORY IS DISABLED THEN NO PROCESSING IS 0467 01217000 * DONE AND THE REQUEST IS RETURNED WITH GOOD COMPLETION. 0467 01218000 * IF THE MSVC INVENTORY IS NOT DISABLED THEN THROUGH 0467 01219000 * A SUBROUTINE A GETMAIN IS DONE FOR STORAGE FOR THE 0467 01220000 * MSVC RPLV, THE MSVC RPLV IS ZEROED AND INITIALIZED WITH 0467 01221000 * THE PROPER FLAGS AND ENTRIES. 0467 01222000 * THE RPLV IS THEN FILLED IN WITH REQUEST DEPENDENT DATA AND 0467 01223000 * THEN THROUGH ANOTHER SUBROUTINE THE RPLV IS CHAINED TO THE 0467 01224000 * HIGH PRIORITY QUEUE IN THE ICBVVICB AND THE SUBTASK IS POSTED 01225000 * IN ORDER TO HAVE THE MSVC INVENTORY UPDATED. 0467 01226000 * IF THIS IS THE FIRST ENTRY FOR THE REQUEST THEN 0467 01227000 * A WAIT IS THEN DONE FOR THE SUBTASK TO COMPLETE THE FUNCTION. 01228000 * WHEN CONTROL IS RETURNED AFTER THE WAIT, A SUBROUTINE IS 0467 01229000 * CALLED TO FREE THE REQUEST BLOCK. 0467 01230000 * A RETURN IS THEN MADE TO ICBVQM00 MAINLINE WITH A 0467 01231000 * SUCCESSFUL COMPLETION WHICH WILL BE RETURNED TO THE CALLER. 0467 01232000 * IF THIS IS THE SECOND ENTRY FOR THE REQUEST THEN NO WAIT IS 0467 01233000 * REQUIRED AND A RETURN IS THEN MADE TO ICBVQM00 MAINLINE WITH 0467 01234000 * A SUCCESSFUL COMPLETION WHICH WILL BE RETURNED TO THE CALLER. 01235000 * @Y30LB24 01236000 * 0467 01237000 * OUTPUT = MSSC-SVC REQUEST ENTRY ADDED TO RPLV CHAIN. @Y30LB24 01238000 * 0467 01239000 ******************************************************************** */ 01240000 */*VQMDEMNT: CHART */ 01241000 */*HEADER 0467 01242000 */*DECEMBER 8, 1975 ICBVQM00 - SEGMENT 0467 01243000 */*VQMDEMNT - VOLUME DEMOUNT PROCESSING */ 01244000 */* E VQMDEMNT */ 01245000 */* D (NO,,YES,%END) MSVC DISABLED */ 01246000 */* P SET GETMAIN LENGTH */ 01247000 */* S VQMGSTOR: GETMAIN FOR RPLV */ 01248000 */* D (NO,,YES,%END) ERROR FROM GETMAIN */ 01249000 */* P BUILD REQUEST BLOCK */ 01250000 */* D (NO,,YES,%ADD) INITIAL ENTRY FOR ORDER */ 01251000 */* P INDICATE SECOND ENTRY */ 01252000 */*%ADD: S VQMADDRB: CHAIN RPLV */ 01253000 */* P SET FREEMAIN LENGTH */ 01254000 */* S VQMFSTOR: FREEMAIN RPLV */ 01255000 */*%END: R RETURN TO ICBVQM00 MAINLINE */ 01256000 */*VQMDEMNT: END */ 01257000 * 0467 01258000 *VQMDEMNT: 0467 01259000 * PROCEDURE OPTIONS(NOSAVE,NOSAVEAREA); 0467 01260000 VQMDEMNT DS 0H 0468 01261000 * IF VVIFLG0=ON THEN /* TOTAL DISABLE @Y30LB24*/ 01262000 TM VVIFLG0(VVIPTR),B'10000000' 0468 01263000 BNO @RF00468 0468 01264000 * DO; /* YES @Y30LB24*/ 01265000 * RETURN; /* RETURN TO ICBVQM00 @Y30LB24*/ 01266000 @EL00004 DS 0H 0470 01267000 @EF00004 DS 0H 0470 01268000 @ER00004 BR @14 0470 01269000 * END; /* @Y30LB24*/ 01270000 * REG8=REG14; /* SAVE LINKREG @Y30LB24*/ 01271000 @RF00468 LR REG8,REG14 0472 01272000 * REG2=LENGTH(RPLV); /* SET RPLV LENGTH @Y30LB24*/ 01273000 LA REG2,132 0473 01274000 * REG2=REG2+PLENGTH; /* ADD ORDER LENGTH @Y30LB24*/ 01275000 AL REG2,PLENGTH(,PARMPTR) 0474 01276000 * CALL VQMGSTOR; /* CALL GETMAIN RTN @Y30LB24*/ 01277000 BAL @14,VQMGSTOR 0475 01278000 * IF FAILCODE^=ZERO THEN /* CORE AVAILABLE? @Y30LB24*/ 01279000 LTR FAILCODE,FAILCODE 0476 01280000 BZ @RF00476 0476 01281000 * DO; /* NO @Y30LB24*/ 01282000 * REG14=REG8; /* RESTORE LINKREG @Y30LB24*/ 01283000 LR REG14,REG8 0478 01284000 * RETURN; /* RETURN TO ICBVQM00 @Y30LB24*/ 01285000 B @EL00004 0479 01286000 * END; /* @Y30LB24*/ 01287000 * REG1=PLENGTH; /* SET PARM LENGTH @Y30LB24*/ 01288000 @RF00476 L REG1,PLENGTH(,PARMPTR) 0481 01289000 * RPLVUTIL(1:REG1)=PARMLIST; /* COPY PARMS @Y30LB24*/ 01290000 LR @11,REG1 0482 01291000 BCTR @11,0 0482 01292000 EX @11,@SM01699 0482 01293000 * IF PARM0=ZERO THEN /* FIRST ENTRY? @Y30LB24*/ 01294000 LTR PARM0,PARM0 0483 01295000 BNZ @RF00483 0483 01296000 * DO; /* YES @Y30LB24*/ 01297000 * RPLFTIME=OFF; /* INDICATE FIRST ENTRY @Y30LB24*/ 01298000 * RPLVPOST=ON; /* INDICATE ECB POST @Y30LB24*/ 01299000 OI RPLVPOST(RPLVPTR),B'01000000' 0486 01300000 NI RPLFTIME(RPLVPTR),B'01111111' 0486 01301000 * CALL VQMADDRB; /* CALL QUEUING RTN @Y30LB24*/ 01302000 BAL @14,VQMADDRB 0487 01303000 * CALL VQMFSTOR; /* CALL FREEMAIN RTN @Y30LB24*/ 01304000 BAL @14,VQMFSTOR 0488 01305000 * REG14=REG8; /* RESTORE LINKREG @Y30LB24*/ 01306000 LR REG14,REG8 0489 01307000 * RETURN; /* RETURN TO ICBVQM00 @Y30LB24*/ 01308000 B @EL00004 0490 01309000 * END; /* @Y30LB24*/ 01310000 * RPLFTIME=ON; /* INDICATE SECOND ENTRY @Y30LB24*/ 01311000 @RF00483 DS 0H 0493 01312000 * RPLVPOST=OFF; /* INDICATE NO ECB POST @Y30LB24*/ 01313000 OI RPLFTIME(RPLVPTR),B'10000000' 0493 01314000 NI RPLVPOST(RPLVPTR),B'10111111' 0493 01315000 * RPLRCODE=PARM0; /* SET REASON CODE @Y30LB24*/ 01316000 STH PARM0,RPLRCODE(,RPLVPTR) 0494 01317000 * RPLVRETC=PARM0; /* SET RETURN CODE @Y30LB24*/ 01318000 STH PARM0,RPLVRETC(,RPLVPTR) 0495 01319000 * CALL VQMADDRB; /* CALL QUEUING RTN @Y30LB24*/ 01320000 BAL @14,VQMADDRB 0496 01321000 * REG14=REG8; /* RESTORE LINKREG @Y30LB24*/ 01322000 LR REG14,REG8 0497 01323000 * RETURN; /* RETURN TO ICBVQM00 @Y30LB24*/ 01324000 B @EL00004 0498 01325000 * END VQMDEMNT; /* END DEMOUNT @Y30LB24*/ 01326000 * 0500 01327000 */* ****************************************************************** 01328000 * 0500 01329000 * NAME = VQMMSSUT, MSS UTILITY PROCESSING. @Y30LB24 01330000 * 0500 01331000 * INPUT = POINTER TO THE MSSC-SVC REQUEST, AND A POINTER TO 0500 01332000 * THE MSVC CONTROL BLOCK (ICBVVICB). @Y30LB24 01333000 * 0500 01334000 * PROCESS = THIS SUBROUTINE IS CALLED FOR PROCESSING OF 0500 01335000 * MOVE CARTRIDGE, COPY CARTRIDGE, DEFINE VOLUME, AND 0500 01336000 * COPY VOLUME REQUESTS. 0500 01337000 * IF THE MSVC RPLV IS FOR A MOVE SCRATCH CARTRIDGE, 0500 01338000 * COPY CARTRIDGE TO DASD,OR DEFINES A CE CARTRIDGE 0500 01339000 * THEN RETURN IS MADE WITH GOOD RETURN. 0500 01340000 * IF THE MSVC INVENTORY OR JOURNAL IS DISABLED THEN NO 0500 01341000 * PROCESSING IS DONE AND THE REQUEST IS FAILED. 0500 01342000 * IF THE MSVC INVENTORY OR JOURNAL IS NOT DISABLED THEN 0500 01343000 * THROUGH A SUBROUTINE A GETMAIN IS DONE FOR STORAGE FOR THE 0500 01344000 * MSVC RPLV, THE MSVC RPLV IS ZEROED AND INITIALIZED WITH 0500 01345000 * THE PROPER FLAGS AND ENTRIES. 0500 01346000 * THE RPLV IS THEN FILLED IN WITH REQUEST DEPENDENT DATA AND 0500 01347000 * THEN THROUGH ANOTHER SUBROUTINE THE RPLV IS CHAINED TO THE 0500 01348000 * LOW PRIORITY QUEUE IN THE ICBVVICB AND THE SUBTASK IS POSTED 0500 01349000 * IN ORDER TO HAVE THE MSVC INVENTORY UPDATED. 0500 01350000 * A WAIT IS THEN DONE FOR SUBTASK TO COMPLETE THE FUNCTION. 0500 01351000 * WHEN CONTROL IS RETURNED AFTER THE WAIT, A SUBROUTINE IS 0500 01352000 * CALLED TO FREE THE REQUEST BLOCK. 0500 01353000 * A RETURN IS THEN MADE TO ICBVQM00 MAINLINE WITH THE RESULTS 0500 01354000 * OF THE FUNCTION WHICH WILL BE RETURNED TO THE CALLER. @YM34322 01355000 * 0500 01356000 * OUTPUT = FUNCTION RESULTS WHICH ARE RETURNED TO CALLER. @Y30LB24 01357000 * 0500 01358000 ******************************************************************** */ 01359000 */*VQMMSSUT: CHART */ 01360000 */*HEADER 0500 01361000 */*DECEMBER 8, 1975 ICBVQM00 - SEGMENT 0500 01362000 */*VQMMSSUT - MSS UTILITY PROCESSING */ 01363000 */* E VQMMSSUT */ 01364000 */* D (NO,,YES,%END) MOVE SCRATCH CARTRIDGE */ 01365000 */* D (NO,,YES,%END) NULLIFY SCRATCH CARTRIDGE */ 01366000 */* D (NO,,YES,%END) COPY CARTRIDGE TO DASD */ 01367000 */* D (NO,,YES,%END) DEFINE A CE CARTRIDGE */ 01368000 */* D (YES,,NO,%ENABLE) INITIAL ENTRY FOR ORDER */ 01369000 */* D (YES,,NO,%CKJRNL) MSVC DISABLED */ 01370000 */* P (,%END) INDICATE MSVC DISABLED */ 01371000 */*%CKJRNL: D (YES,,NO,%CKNULC) JRNL DISABLED */ 01372000 */* P (,%END) INDICATE JRNL DISABLED */ 01373000 */*%CKNULC: D (YES,%END,NO,) NULLIFYC ORDER */ 01374000 */*%ENABLE: D (YES,,NO,%GET) INVALID EXT LENGTH */ 01375000 */* P (,%END) INDICATE INVALID REQUEST */ 01376000 */*%GET: P SET GETMAIN LENGTH */ 01377000 */* S VQMGSTOR: GETMAIN FOR RPLV */ 01378000 */* D (NO,,YES,%RET) ERROR FROM GETMAIN */ 01379000 */* P BUILD REQUEST BLOCK */ 01380000 */* S VQMADDRB: CHAIN RPLV */ 01381000 */* P SET FREEMAIN LENGTH */ 01382000 */* S VQMFSTOR: FREEMAIN RPLV */ 01383000 */*%RET: D (YES,,NO,%END) ZERO MSC RETURN */ 01384000 */* D (NO,,YES,%END) ZERO MSVC RETURN */ 01385000 */* P SET UTIL INDICATOR */ 01386000 */*%END: R RETURN TO ICBVQM00 MAINLINE */ 01387000 */*VQMMSSUT: END */ 01388000 * 0500 01389000 *VQMMSSUT: 0500 01390000 * PROCEDURE OPTIONS(NOSAVE,NOSAVEAREA); 0500 01391000 VQMMSSUT DS 0H 0501 01392000 * IF(OPCODE=MOVECART& /* MOVE CARTRIDGE @YM34322*/ 01393000 * MCRTSCT=ON)| /* SCRATCH CARTRIDGE @YM34322*/ 01394000 * (OPCODE=NULLC& /* NULLIYC OF @Z40LB25*/ 01395000 * NULSCRC=ON)| /* SCRATCH CARTRIDGE @Z40LB25*/ 01396000 * (OPCODE=COPYVOL& /* COPY CARTRIDGE @YM34322*/ 01397000 * CVOCRDAS=ON)| /* CARTRIDGE TO DASD @YM34322*/ 01398000 * (OPCODE=DEFVOL& /* DEFINE VOLUME @YM34322*/ 01399000 * DEFVCECT=ON& /* CE CARTRIDGE @YM34322*/ 01400000 * DEFVVFLG^=ALLON) THEN /* NOT REPLACE VOL FLAGS @YM34322*/ 01401000 CLI OPCODE(PARMPTR),X'0E' 0501 01402000 BNE @GL00038 0501 01403000 TM MCRTSCT(PARMPTR),B'00010000' 0501 01404000 BO @RT00501 0501 01405000 @GL00038 CLI OPCODE(PARMPTR),X'09' 0501 01406000 BNE @GL00037 0501 01407000 TM NULSCRC(PARMPTR),B'00100000' 0501 01408000 BO @RT00501 0501 01409000 @GL00037 CLI OPCODE(PARMPTR),X'2A' 0501 01410000 BNE @GL00036 0501 01411000 TM CVOCRDAS(PARMPTR),B'01000000' 0501 01412000 BO @RT00501 0501 01413000 @GL00036 CLI OPCODE(PARMPTR),X'18' 0501 01414000 BNE @RF00501 0501 01415000 TM DEFVCECT(PARMPTR),B'10000000' 0501 01416000 BNO @RF00501 0501 01417000 CLI DEFVVFLG(PARMPTR),X'FF' 0501 01418000 BNE @RT00501 0501 01419000 * RETURN; /* RETURN TO ICBVQM00 @YM34322*/ 01420000 * IF PARM0=ZERO THEN /* FIRST ENTRY? @Y30LB24*/ 01421000 @RF00501 LTR PARM0,PARM0 0503 01422000 BNZ @RF00503 0503 01423000 * DO; /* YES @Y30LB24*/ 01424000 * IF VVIFLG0=ON THEN /* TOTAL DISABLE @Y30LB24*/ 01425000 TM VVIFLG0(VVIPTR),B'10000000' 0505 01426000 BNO @RF00505 0505 01427000 * DO; /* YES @Y30LB24*/ 01428000 * REG0=IDISABL; /* REASON CODE (213) @YM34322*/ 01429000 LA REG0,531 0507 01430000 * FAILCODE=FOUR; /* SET RETURN CODE @Y30LB24*/ 01431000 LA FAILCODE,4 0508 01432000 * RETURN; /* RETURN TO ICBVQM00 @Y30LB24*/ 01433000 @EL00005 DS 0H 0509 01434000 @EF00005 DS 0H 0509 01435000 @ER00005 BR @14 0509 01436000 * END; /* @Y30LB24*/ 01437000 * IF VVIFLG2=ON THEN /* JOURNAL DISABLE @Y30LB24*/ 01438000 @RF00505 TM VVIFLG2(VVIPTR),B'00100000' 0511 01439000 BNO @RF00511 0511 01440000 * DO; /* YES @Y30LB24*/ 01441000 * REG0=JDISABL; /* REASON CODE (214) @YM34322*/ 01442000 LA REG0,532 0513 01443000 * FAILCODE=FOUR; /* SET RETURN CODE @Y30LB24*/ 01444000 LA FAILCODE,4 0514 01445000 * RETURN; /* RETURN TO ICBVQM00 @Y30LB24*/ 01446000 B @EL00005 0515 01447000 * END; /* @Y30LB24*/ 01448000 * IF OPCODE=NULLC THEN /* NULL CARTRIDGE? @Z40LB25*/ 01449000 @RF00511 CLI OPCODE(PARMPTR),X'09' 0517 01450000 BE @RT00517 0517 01451000 * RETURN; /* RETURN TO ICBVQM00 @Y30LB24*/ 01452000 * END; /* @Y30LB24*/ 01453000 * REG8=REG14; /* SAVE LINKREG @Y30LB24*/ 01454000 @RF00503 LR REG8,REG14 0520 01455000 * REG2=LENGTH(RPLV); /* SET RPLV LENGTH @Y30LB24*/ 01456000 LA REG2,132 0521 01457000 * REG2=REG2+PLENGTH; /* ADD ORDER LENGTH @Y30LB24*/ 01458000 AL REG2,PLENGTH(,PARMPTR) 0522 01459000 * REG1=ONE; /* SET DEFAULT PARM @Y30LB24*/ 01460000 LA REG1,1 0523 01461000 * REG3=REG3-REG3; /* SET DEFAULT PARM @Y30LB24*/ 01462000 SLR REG3,REG3 0524 01463000 * IF OPCODE=MOVECART THEN /* MOVE CARTRIDGE? @YM34322*/ 01464000 CLI OPCODE(PARMPTR),X'0E' 0525 01465000 BNE @RF00525 0525 01466000 * DO; /* YES @Y30LB24*/ 01467000 * IF MCRTVEXT^=ZERO THEN /* UTILITY EXT. @Y30LB24*/ 01468000 L @11,MCRTVEXT(,PARMPTR) 0527 01469000 LTR @11,@11 0527 01470000 BZ @RF00527 0527 01471000 * DO; /* YES @Y30LB24*/ 01472000 * REG3=MCRTVEXT; /* SET EXT ADDRESS @Y30LB24*/ 01473000 LR REG3,@11 0529 01474000 * REG1=REG3->PLENGTH; /* SET EXT LENGTH @Y30LB24*/ 01475000 L REG1,PLENGTH(,REG3) 0530 01476000 * REG2=REG2+REG1; /* ADD EXT LENGTH @Y30LB24*/ 01477000 ALR REG2,REG1 0531 01478000 * END; /* @Y30LB24*/ 01479000 * END; /* @Y30LB24*/ 01480000 @RF00527 DS 0H 0534 01481000 * IF OPCODE=DEFVOL THEN /* DEFINE VOLUME? @YM34322*/ 01482000 @RF00525 CLI OPCODE(PARMPTR),X'18' 0534 01483000 BNE @RF00534 0534 01484000 * DO; /* YES @Y30LB24*/ 01485000 * IF DEFVVEXT^=ZERO THEN /* UTILITY EXT. @Y30LB24*/ 01486000 L @11,DEFVVEXT(,PARMPTR) 0536 01487000 LTR @11,@11 0536 01488000 BZ @RF00536 0536 01489000 * DO; /* YES @Y30LB24*/ 01490000 * REG3=DEFVVEXT; /* SET EXT ADDRESS @Y30LB24*/ 01491000 LR REG3,@11 0538 01492000 * REG1=REG3->PLENGTH; /* SET EXT LENGTH @Y30LB24*/ 01493000 L REG1,PLENGTH(,REG3) 0539 01494000 * REG2=REG2+REG1; /* ADD EXT LENGTH @Y30LB24*/ 01495000 ALR REG2,REG1 0540 01496000 * END; /* @Y30LB24*/ 01497000 * END; /* @Y30LB24*/ 01498000 @RF00536 DS 0H 0543 01499000 * IF OPCODE=COPYVOL THEN /* COPY VOLUME? @YM34322*/ 01500000 @RF00534 CLI OPCODE(PARMPTR),X'2A' 0543 01501000 BNE @RF00543 0543 01502000 * DO; /* YES @Y30LB24*/ 01503000 * IF CVOLVEXT^=ZERO THEN /* UTILITY EXT. @Y30LB24*/ 01504000 L @11,CVOLVEXT(,PARMPTR) 0545 01505000 LTR @11,@11 0545 01506000 BZ @RF00545 0545 01507000 * DO; /* YES @Y30LB24*/ 01508000 * REG3=CVOLVEXT; /* SET EXT ADDRESS @Y30LB24*/ 01509000 LR REG3,@11 0547 01510000 * REG1=REG3->PLENGTH; /* SET EXT LENGTH @Y30LB24*/ 01511000 L REG1,PLENGTH(,REG3) 0548 01512000 * REG2=REG2+REG1; /* ADD EXT LENGTH @Y30LB24*/ 01513000 ALR REG2,REG1 0549 01514000 * END; /* @Y30LB24*/ 01515000 * END; /* @Y30LB24*/ 01516000 @RF00545 DS 0H 0552 01517000 * IF REG1<=ZERO| /* INVALID REQUEST? @Y30LB24*/ 01518000 * REG1>MAXLNGTH THEN /* INVALID REQUEST? @Y30LB24 01519000 * @YM34322*/ 01520000 @RF00543 LTR REG1,REG1 0552 01521000 BNP @RT00552 0552 01522000 C REG1,@CF00129 0552 01523000 BNH @RF00552 0552 01524000 @RT00552 DS 0H 0553 01525000 * DO; /* YES @Y30LB24*/ 01526000 * REG0=INVALLNG; /* REASON CODE (216) @YM34322*/ 01527000 LA REG0,534 0554 01528000 * FAILCODE=FOUR; /* SET RETURN CODE @Y30LB24*/ 01529000 LA FAILCODE,4 0555 01530000 * RETURN; /* RETURN TO MSSC-SVC @Y30LB24*/ 01531000 B @EL00005 0556 01532000 * END; /* @Y30LB24*/ 01533000 * CALL VQMGSTOR; /* CALL GETMAIN RTN @Y30LB24*/ 01534000 @RF00552 BAL @14,VQMGSTOR 0558 01535000 * IF FAILCODE^=ZERO THEN /* CORE AVAILABLE? @Y30LB24*/ 01536000 LTR FAILCODE,FAILCODE 0559 01537000 BZ @RF00559 0559 01538000 * DO; /* NO @Y30LB24*/ 01539000 * IF PARM0=RZERO THEN /* ZERO MSC RETURN @YD00160*/ 01540000 C PARM0,RZERO 0561 01541000 BNE @RF00561 0561 01542000 * DO; /* YES @YD00160*/ 01543000 * GEN(ICM REG0,M8,EID); /* SET UTIL INDICATOR @YD00160*/ 01544000 ICM REG0,M8,EID 01545000 * END; /* @YD00160*/ 01546000 * REG14=REG8; /* RESTORE LINKREG @Y30LB24*/ 01547000 @RF00561 LR REG14,REG8 0565 01548000 * RETURN; /* RETURN TO ICBVQM00 @Y30LB24*/ 01549000 B @EL00005 0566 01550000 * END; /* @Y30LB24*/ 01551000 * RPLFTIME=ON; /* DEFAULT SECOND ENTRY @Y30LB24*/ 01552000 @RF00559 OI RPLFTIME(RPLVPTR),B'10000000' 0568 01553000 * IF PARM0=ZERO THEN /* FIRST ENTRY? @Y30LB24*/ 01554000 LTR PARM0,PARM0 0569 01555000 BNZ @RF00569 0569 01556000 * RPLFTIME=OFF; /* INDICATE FIRST ENTRY @Y30LB24*/ 01557000 NI RPLFTIME(RPLVPTR),B'01111111' 0570 01558000 * RPLVPOST=ON; /* INDICATE ECB POST @Y30LB24*/ 01559000 @RF00569 OI RPLVPOST(RPLVPTR),B'01000000' 0571 01560000 * RPLRCODE=PARM0; /* SET REASON CODE @Y30LB24*/ 01561000 STH PARM0,RPLRCODE(,RPLVPTR) 0572 01562000 * RPLVRETC=PARM0; /* SET RETURN CODE @Y30LB24*/ 01563000 STH PARM0,RPLVRETC(,RPLVPTR) 0573 01564000 * REG1=PLENGTH; /* SET PARM LENGTH @Y30LB24*/ 01565000 L @11,PLENGTH(,PARMPTR) 0574 01566000 LR REG1,@11 0574 01567000 * RPLVUTIL(1:REG1)=PARMLIST; /* COPY PARMS @Y30LB24*/ 01568000 LR @07,REG1 0575 01569000 BCTR @07,0 0575 01570000 EX @07,@SM01699 0575 01571000 * REG2=ADDR(RPLVUTIL); /* SET RPLV ADDR @Y30LB24*/ 01572000 LA REG2,RPLVUTIL(,RPLVPTR) 0576 01573000 * REG2=REG2+PLENGTH; /* ADD ORDER LENGTH @Y30LB24*/ 01574000 ALR REG2,@11 0577 01575000 * IF REG3^=ZERO THEN /* EXT AVAILABLE? @Y30LB24*/ 01576000 LTR REG3,REG3 0578 01577000 BZ @RF00578 0578 01578000 * DO; /* YES @Y30LB24*/ 01579000 * REG1=REG3->PLENGTH; /* SET EXT LENGTH @Y30LB24*/ 01580000 L REG1,PLENGTH(,REG3) 0580 01581000 * MOVELST(1:REG1)=PARMEXT; /* COPY EXTENSION @Y30LB24*/ 01582000 LR @11,REG1 0581 01583000 BCTR @11,0 0581 01584000 EX @11,@SM01715 0581 01585000 * END; /* @Y30LB24*/ 01586000 * CALL VQMADDRB; /* CALL QUEUING RTN @Y30LB24*/ 01587000 @RF00578 BAL @14,VQMADDRB 0583 01588000 * CALL VQMFSTOR; /* CALL FREEMAIN RTN @Y30LB24*/ 01589000 BAL @14,VQMFSTOR 0584 01590000 * IF PARM0=RZERO THEN /* ZERO MSC RETURN @YD00160*/ 01591000 C PARM0,RZERO 0585 01592000 BNE @RF00585 0585 01593000 * DO; /* YES @YD00160*/ 01594000 * IF REG0^=ZERO THEN /* ZERO MSVC RETURN @YD00160*/ 01595000 LTR REG0,REG0 0587 01596000 BZ @RF00587 0587 01597000 * DO; /* NO @YD00160*/ 01598000 * GEN(ICM REG0,M8,EID); /* SET UTIL INDICATOR @YD00160*/ 01599000 ICM REG0,M8,EID 01600000 * END; /* @YD00160*/ 01601000 * END; /* @YD00160*/ 01602000 @RF00587 DS 0H 0592 01603000 * REG14=REG8; /* RESTORE LINKREG @Y30LB24*/ 01604000 @RF00585 LR REG14,REG8 0592 01605000 * RETURN; /* RETURN TO ICBVQM00 @Y30LB24*/ 01606000 B @EL00005 0593 01607000 * END VQMMSSUT; /* END MSS UTILITY @Y30LB24*/ 01608000 B @EL00005 0594 01609000 * 0595 01610000 */* ****************************************************************** 01611000 * 0595 01612000 * NAME = VQMMSSMG, MSS MESSAGE PROCESSING @Y30LB24 01613000 * 0595 01614000 * INPUT = POINTER TO THE MSSC-SVC REQUEST, AND A POINTER TO 0595 01615000 * THE MSVC CONTROL BLOCK (ICBVVICB). @Y30LB24 01616000 * 0595 01617000 * PROCESS = THIS SUBROUTINE IS CALLED FOR PROCESSING OF 0595 01618000 * MSC SOLICTED AND UNSOLICTED MESSAGES. 0595 01619000 * THROUGH A SUBROUTINE A GETMAIN IS DONE FOR STORAGE FOR 0595 01620000 * THE MSVC RPLV, THE MSVC RPLV IS ZEROED AND INITIALIZED 0595 01621000 * WITH THE PROPER FLAGS AND ENTRIES. 0595 01622000 * THE RPLV IS THEN FILLED IN WITH REQUEST DEPENDENT DATA AND 0595 01623000 * THEN THROUGH ANOTHER SUBROUTINE THE RPLV IS CHAINED TO THE 0595 01624000 * LOW PRIORITY QUEUE IN THE ICBVVICB AND THE SUBTASK IS POSTED 0595 01625000 * IN ORDER TO HAVE THE MSVC INVENTORY UPDATED. 0595 01626000 * A RETURN IS THEN MADE TO ICBVQM00 MAINLINE. @Y30LB24 01627000 * 0595 01628000 * OUTPUT = MSSC-SVC REQUEST ENTRY ADDED TO RPLV CHAIN. @Y30LB24 01629000 * 0595 01630000 ******************************************************************** */ 01631000 */*VQMMSSMG: CHART */ 01632000 */*HEADER 0595 01633000 */*JUNE 14, 1974 ICBVQM00 - SEGMENT 0595 01634000 */*VQMMSSMG - MSS MESSAGE PROCESSING */ 01635000 */* E VQMMSSMG */ 01636000 */* P SET GETMAIN LENGTH */ 01637000 */* S VQMGSTOR: GETMAIN FOR RPLV */ 01638000 */* D (NO,,YES,%END) ERROR FROM GETMAIN */ 01639000 */* P BUILD REQUEST BLOCK */ 01640000 */* S VQMADDRB: CHAIN RPLV */ 01641000 */*%END: R RETURN TO ICBVQM00 MAINLINE */ 01642000 */*VQMMSSMG: END */ 01643000 * 0595 01644000 *VQMMSSMG: 0595 01645000 * PROCEDURE OPTIONS(NOSAVE,NOSAVEAREA); 0595 01646000 VQMMSSMG DS 0H 0596 01647000 * REG8=REG14; /* SAVE LINKREG @Y30LB24*/ 01648000 LR REG8,REG14 0596 01649000 * REG2=LENGTH(RPLV); /* SET RPLV LENGTH @Y30LB24*/ 01650000 LA REG2,132 0597 01651000 * REG2=REG2+PLENGTH; /* ADD ORDER LENGTH @Y30LB24*/ 01652000 AL REG2,PLENGTH(,PARMPTR) 0598 01653000 * CALL VQMGSTOR; /* CALL GETMAIN RTN @Y30LB24*/ 01654000 BAL @14,VQMGSTOR 0599 01655000 * IF FAILCODE^=ZERO THEN /* CORE AVAILABLE? @Y30LB24*/ 01656000 LTR FAILCODE,FAILCODE 0600 01657000 BZ @RF00600 0600 01658000 * DO; /* NO @Y30LB24*/ 01659000 * REG14=REG8; /* RESTORE LINKREG @Y30LB24*/ 01660000 LR REG14,REG8 0602 01661000 * RETURN; /* RETURN TO ICBVQM00 @Y30LB24*/ 01662000 @EL00006 DS 0H 0603 01663000 @EF00006 DS 0H 0603 01664000 @ER00006 BR @14 0603 01665000 * END; /* @Y30LB24*/ 01666000 * RPLFTIME=OFF; /* INDICATE FIRST ENTRY @Y30LB24*/ 01667000 @RF00600 DS 0H 0606 01668000 * RPLVPOST=OFF; /* INDICATE NO ECB POST @Y30LB24*/ 01669000 NI RPLFTIME(RPLVPTR),B'00111111' 0606 01670000 * REG1=PLENGTH; /* SET PARM LENGTH @Y30LB24*/ 01671000 L REG1,PLENGTH(,PARMPTR) 0607 01672000 * RPLVUTIL(1:REG1)=PARMLIST; /* COPY PARMS @Y30LB24*/ 01673000 LR @11,REG1 0608 01674000 BCTR @11,0 0608 01675000 EX @11,@SM01699 0608 01676000 * CALL VQMADDRB; /* CALL QUEUING RTN @Y30LB24*/ 01677000 BAL @14,VQMADDRB 0609 01678000 * REG14=REG8; /* RESTORE LINKREG @Y30LB24*/ 01679000 LR REG14,REG8 0610 01680000 * RETURN; /* RETURN TO ICBVQM00 @Y30LB24*/ 01681000 B @EL00006 0611 01682000 * END VQMMSSMG; /* END MESSAGE PROCESSING 0612 01683000 * @Y30LB24*/ 01684000 * 0613 01685000 */* ****************************************************************** 01686000 * 0613 01687000 * NAME = VQMREADR, READ RECORD FROM INVENTORY. @Y30LB24 01688000 * 0613 01689000 * INPUT = POINTER TO THE MSSC-SVC REQUEST, AND A POINTER TO 0613 01690000 * THE MSVC CONTROL BLOCK (ICBVVICB). @Y30LB24 01691000 * 0613 01692000 * PROCESS = THIS SUBROUTINE IS CALLED FOR PROCESSING OF READ 0613 01693000 * MSVC RECORDS REQUESTS. 0613 01694000 * IF THE MSVC INVENTORY IS DISABLED THEN NO PROCESSING IS 0613 01695000 * DONE AND THE REQUEST IS FAILED. 0613 01696000 * IF THE MSVC INVENTORY IS NOT DISABLED THEN THROUGH 0613 01697000 * A SUBROUTINE A GETMAIN IS DONE FOR STORAGE FOR THE 0613 01698000 * MSVC RPLV, THE MSVC RPLV IS ZEROED AND INITIALIZED WITH 0613 01699000 * THE PROPER FLAGS AND ENTRIES. 0613 01700000 * THE RPLV IS THEN FILLED IN WITH REQUEST DEPENDENT DATA AND 0613 01701000 * THEN THROUGH ANOTHER SUBROUTINE THE RPLV IS CHAINED TO THE 0613 01702000 * LOW PRIORITY QUEUE IN THE ICBVVICB AND THE SUBTASK IS POSTED 0613 01703000 * IN ORDER TO HAVE THE MSVC INVENTORY UPDATED. 0613 01704000 * A WAIT IS THEN DONE FOR SUBTASK TO COMPLETE THE FUNCTION. 0613 01705000 * WHEN CONTROL IS RETURNED AFTER THE WAIT, IF THE READ WAS 0613 01706000 * SUCCESSFUL THE RECORD IS MOVED TO THE USER'S BUFFER AND 0613 01707000 * A FREEMAIN IS DONE TO FREE THE MSVC RECORD BUFFER. 0613 01708000 * A SUBROUTINE IS CALLED TO FREE THE REQUEST BLOCK. 0613 01709000 * A RETURN IS THEN MADE TO ICBVQM00 MAINLINE WITH THE RESULTS 0613 01710000 * OF THE FUNCTION WHICH WILL BE RETURNED TO THE CALLER. @Y30LB24 01711000 * 0613 01712000 * OUTPUT = FUNCTION RESULTS WHICH ARE RETURNED TO CALLER. @Y30LB24 01713000 * 0613 01714000 ******************************************************************** */ 01715000 */*VQMREADR: CHART */ 01716000 */*HEADER 0613 01717000 */*DECEMBER 8, 1975 ICBVQM00 - SEGMENT 01718000 */*VQMREADR - READ RECORD PROCESSING */ 01719000 */* E VQMREADR */ 01720000 */* D (YES,,NO,%ENABLE) MSVC DISABLED */ 01721000 */* P (,%END) INDICATE MSVC DISABLED */ 01722000 */*%ENABLE: P SET GETMAIN LENGTH */ 01723000 */* S VQMGSTOR: GETMAIN FOR RPLV */ 01724000 */* D (NO,,YES,%END) ERROR FROM GETMAIN */ 01725000 */* P BUILD REQUEST BLOCK */ 01726000 */* P ZERO SUBTASK PARMS */ 01727000 */* S VQMADDRB: CHAIN RPLV */ 01728000 */* D (YES,,NO,%FRPLV) BUFFER AVAILABLE */ 01729000 */* P MOVE RECORD TO USER BUFFER */ 01730000 */* P FREEMAIN RECORD BUFFER */ 01731000 */*%FRPLV: P SET FREEMAIN LENGTH */ 01732000 */* S VQMFSTOR: FREE RPLV */ 01733000 */*%END: R RETURN TO ICBVQM00 MAINLINE */ 01734000 */*VQMREADR: END */ 01735000 * 0613 01736000 *VQMREADR: 0613 01737000 * PROCEDURE OPTIONS(NOSAVE,NOSAVEAREA); 0613 01738000 VQMREADR DS 0H 0614 01739000 * IF VVIFLG0=ON THEN /* TOTAL DISABLE @Y30LB24*/ 01740000 TM VVIFLG0(VVIPTR),B'10000000' 0614 01741000 BNO @RF00614 0614 01742000 * DO; /* YES @Y30LB24*/ 01743000 * REG0=IDISABL; /* REASON CODE (213) @YM34322*/ 01744000 LA REG0,531 0616 01745000 * FAILCODE=FOUR; /* SET RETURN CODE @Y30LB24*/ 01746000 LA FAILCODE,4 0617 01747000 * RETURN; /* RETURN TO ICBVQM00 @Y30LB24*/ 01748000 @EL00007 DS 0H 0618 01749000 @EF00007 DS 0H 0618 01750000 @ER00007 BR @14 0618 01751000 * END; /* @Y30LB24*/ 01752000 * REG8=REG14; /* SAVE LINKREG @Y30LB24*/ 01753000 @RF00614 LR REG8,REG14 0620 01754000 * REG2=LENGTH(RPLV); /* SET RPLV LENGTH @Y30LB24*/ 01755000 LA REG2,132 0621 01756000 * REG2=REG2+PLENGTH; /* ADD ORDER LENGTH @Y30LB24*/ 01757000 AL REG2,PLENGTH(,PARMPTR) 0622 01758000 * CALL VQMGSTOR; /* CALL GETMAIN RTN @Y30LB24*/ 01759000 BAL @14,VQMGSTOR 0623 01760000 * IF FAILCODE^=ZERO THEN /* CORE AVAILABLE? @Y30LB24*/ 01761000 LTR FAILCODE,FAILCODE 0624 01762000 BZ @RF00624 0624 01763000 * DO; /* NO @Y30LB24*/ 01764000 * REG14=REG8; /* RESTORE LINKREG @Y30LB24*/ 01765000 LR REG14,REG8 0626 01766000 * RETURN; /* RETURN TO ICBVQM00 @Y30LB24*/ 01767000 B @EL00007 0627 01768000 * END; /* @Y30LB24*/ 01769000 * RPLFTIME=OFF; /* INDICATE FIRST ENTRY @Y30LB24*/ 01770000 @RF00624 DS 0H 0630 01771000 * RPLVPOST=ON; /* INDICATE ECB POST @Y30LB24*/ 01772000 OI RPLVPOST(RPLVPTR),B'01000000' 0630 01773000 NI RPLFTIME(RPLVPTR),B'01111111' 0630 01774000 * RVVARLN=ZERO; /* ZERO SUBTASK PARM @Y30LB24*/ 01775000 SLR @11,@11 0631 01776000 STH @11,RVVARLN(,PARMPTR) 0631 01777000 * RVVAREA=ZERO; /* ZERO SUBTASK PARM @Y30LB24*/ 01778000 ST @11,RVVAREA(,PARMPTR) 0632 01779000 * REG1=PLENGTH; /* SET PARM LENGTH @Y30LB24*/ 01780000 L REG1,PLENGTH(,PARMPTR) 0633 01781000 * RPLVUTIL(1:REG1)=PARMLIST; /* COPY PARMS @Y30LB24*/ 01782000 LR @11,REG1 0634 01783000 BCTR @11,0 0634 01784000 EX @11,@SM01699 0634 01785000 * CALL VQMADDRB; /* CALL QUEUING RTN @Y30LB24*/ 01786000 BAL @14,VQMADDRB 0635 01787000 * REG3=ADDR(RPLVUTIL); /* SET ADDR REG @Y30LB24*/ 01788000 LA REG3,RPLVUTIL(,RPLVPTR) 0636 01789000 * IF REG3->RVVAREA^=ZERO THEN /* BUFFER AVAILABLE @Y30LB24*/ 01790000 L @11,RVVAREA(,REG3) 0637 01791000 LTR @11,@11 0637 01792000 BZ @RF00637 0637 01793000 * DO; /* YES @Y30LB24*/ 01794000 * REG0=RVVRTBUF; /* SET USER BUFFER PTR @Y30LB24*/ 01795000 L REG0,RVVRTBUF(,PARMPTR) 0639 01796000 * REG1=RPLVRLN; /* SET MSVC RECORD LENGTH 0640 01797000 * @Y30LB24*/ 01798000 L REG1,RPLVRLN(,RPLVPTR) 0640 01799000 * REG2=REG3->RVVAREA; /* SET MSVC BUFF PTR @Y30LB24*/ 01800000 LR REG2,@11 0641 01801000 * REG3=REG1; /* SET MOVE RECORD LENGTH 0642 01802000 * @Y30LB24*/ 01803000 LR REG3,REG1 0642 01804000 * GEN(MVCL REG0,REG2); /* MOVE RECORD @Y30LB24*/ 01805000 MVCL REG0,REG2 01806000 * REG3=ADDR(RPLVUTIL); /* SET ADDR REG @Y30LB24*/ 01807000 LA REG3,RPLVUTIL(,RPLVPTR) 0644 01808000 * REG0=REG3->RVVARLN; /* SET FREEMAIN LENGTH @Y30LB24*/ 01809000 LH REG0,RVVARLN(,REG3) 0645 01810000 * GEN(ICM REG0,M8,POOL); /* INDICATE SUBPOOL 241 @Y30LB24*/ 01811000 ICM REG0,M8,POOL 01812000 * REG1=REG3->RVVAREA; /* SET FREEMAIN ADDR @Y30LB24*/ 01813000 L REG1,RVVAREA(,REG3) 0647 01814000 *LFREM1: 0648 01815000 * GEN(FREEMAIN R,LV=(0),A=(1));/* FREEMAIN @Y30LB24*/ 01816000 LFREM1 FREEMAIN R,LV=(0),A=(1) 01817000 * END; /* @Y30LB24*/ 01818000 * CALL VQMFSTOR; /* CALL FREEMAIN RTN @Y30LB24*/ 01819000 @RF00637 BAL @14,VQMFSTOR 0650 01820000 * REG14=REG8; /* RESTORE LINKREG @Y30LB24*/ 01821000 LR REG14,REG8 0651 01822000 * RETURN; /* RETURN TO ICBVQM00 @Y30LB24*/ 01823000 B @EL00007 0652 01824000 * END VQMREADR; /* END READ RECORD @Y30LB24*/ 01825000 * 0654 01826000 */* ****************************************************************** 01827000 * 0654 01828000 * NAME = VQMVVIUT, MSVC UTILITY REQUEST. @Y30LB24 01829000 * 0654 01830000 * INPUT = POINTER TO THE MSSC-SVC REQUEST, AND A POINTER TO 0654 01831000 * THE MSVC CONTROL BLOCK (ICBVVICB). @Y30LB24 01832000 * 0654 01833000 * PROCESS = THIS SUBROUTINE IS CALLED FOR PROCESSING OF REMOVE 0654 01834000 * VOLUME RECORD, MODIFY VOLUME RECORD, CREATE GROUP RECORD, 0654 01835000 * MODIFY GROUP RECORD, AND SCRATCH GROUP RECORD REQUESTS. 0654 01836000 * IF THE MSVC INVENTORY OR JOURNAL IS DISABLED THEN NO 0654 01837000 * PROCESSING IS DONE AND THE REQUEST IS FAILED. 0654 01838000 * IF THE MSVC INVENTORY OR JOURNAL IS NOT DISABLED THEN 0654 01839000 * THROUGH A SUBROUTINE A GETMAIN IS DONE FOR STORAGE FOR THE 0654 01840000 * MSVC RPLV, THE MSVC RPLV IS ZEROED AND INITIALIZED WITH 0654 01841000 * THE PROPER FLAGS AND ENTRIES. 0654 01842000 * THE RPLV IS THEN FILLED IN WITH REQUEST DEPENDENT DATA AND 0654 01843000 * THEN THROUGH ANOTHER SUBROUTINE THE RPLV IS CHAINED TO THE 0654 01844000 * LOW PRIORITY QUEUE IN THE ICBVVICB AND THE SUBTASK IS POSTED 0654 01845000 * IN ORDER TO HAVE THE MSVC INVENTORY UPDATED. 0654 01846000 * A WAIT IS THEN DONE FOR SUBTASK TO COMPLETE THE FUNCTION. 0654 01847000 * WHEN CONTROL IS RETURNED AFTER THE WAIT, A SUBROUTINE IS 0654 01848000 * CALLED TO FREE THE REQUEST BLOCK. 0654 01849000 * A RETURN IS THEN MADE TO ICBVQM00 MAINLINE WITH THE RESULTS 0654 01850000 * OF THE FUNCTION WHICH WILL BE RETURNED TO THE CALLER. @Y30LB24 01851000 * 0654 01852000 * OUTPUT = FUNCTION RESULTS WHICH ARE RETURNED TO CALLER. @Y30LB24 01853000 * 0654 01854000 ******************************************************************** */ 01855000 */*VQMVVIUT: CHART */ 01856000 */*HEADER 0654 01857000 */*DECEMBER 8, 1975 ICBVQM00 - SEGMENT 01858000 */*VQMVVIUT - MSVC UTILITY PROCESSING */ 01859000 */* E VQMVVIUT */ 01860000 */* D (YES,,NO,%ENABLE) MSVC DISABLED */ 01861000 */* P (,%END) INDICATE MSVC DISABLED */ 01862000 */*%ENABLE: P SET GETMAIN LENGTH */ 01863000 */* S VQMGSTOR: GETMAIN FOR RPLV */ 01864000 */* D (NO,,YES,%END) ERROR FROM GETMAIN */ 01865000 */* P BUILD REQUEST BLOCK */ 01866000 */* S VQMADDRB: CHAIN RPLV */ 01867000 */* P SET FREEMAIN LENGTH */ 01868000 */* S VQMFSTOR: FREEMAIN RPLV */ 01869000 */*%END: R RETURN TO ICBVQM00 MAINLINE */ 01870000 */*VQMVVIUT: END */ 01871000 * 0654 01872000 *VQMVVIUT: 0654 01873000 * PROCEDURE OPTIONS(NOSAVE,NOSAVEAREA); 0654 01874000 VQMVVIUT DS 0H 0655 01875000 * IF VVIFLG0=ON THEN /* TOTAL DISABLE @Y30LB24*/ 01876000 TM VVIFLG0(VVIPTR),B'10000000' 0655 01877000 BNO @RF00655 0655 01878000 * DO; /* YES @Y30LB24*/ 01879000 * REG0=IDISABL; /* REASON CODE (213) @YM34322*/ 01880000 LA REG0,531 0657 01881000 * FAILCODE=FOUR; /* SET RETURN CODE @Y30LB24*/ 01882000 LA FAILCODE,4 0658 01883000 * RETURN; /* RETURN TO ICBVQM00 @Y30LB24*/ 01884000 @EL00008 DS 0H 0659 01885000 @EF00008 DS 0H 0659 01886000 @ER00008 BR @14 0659 01887000 * END; /* @Y30LB24*/ 01888000 * IF VVIFLG2=ON THEN /* JOURNAL DISABLE @Y30LB24*/ 01889000 @RF00655 TM VVIFLG2(VVIPTR),B'00100000' 0661 01890000 BNO @RF00661 0661 01891000 * DO; /* YES @Y30LB24*/ 01892000 * REG0=JDISABL; /* REASON CODE (214) @YM34322*/ 01893000 LA REG0,532 0663 01894000 * FAILCODE=FOUR; /* SET RETURN CODE @Y30LB24*/ 01895000 LA FAILCODE,4 0664 01896000 * RETURN; /* RETURN TO ICBVQM00 @Y30LB24*/ 01897000 B @EL00008 0665 01898000 * END; /* @Y30LB24*/ 01899000 * REG8=REG14; /* SAVE LINKREG @Y30LB24*/ 01900000 @RF00661 LR REG8,REG14 0667 01901000 * REG2=LENGTH(RPLV); /* SET RPLV LENGTH @Y30LB24*/ 01902000 LA REG2,132 0668 01903000 * REG2=REG2+PLENGTH; /* ADD ORDER LENGTH @Y30LB24*/ 01904000 AL REG2,PLENGTH(,PARMPTR) 0669 01905000 * CALL VQMGSTOR; /* CALL GETMAIN RTN @Y30LB24*/ 01906000 BAL @14,VQMGSTOR 0670 01907000 * IF FAILCODE^=ZERO THEN /* CORE AVAILABLE? @Y30LB24*/ 01908000 LTR FAILCODE,FAILCODE 0671 01909000 BZ @RF00671 0671 01910000 * DO; /* NO @Y30LB24*/ 01911000 * REG14=REG8; /* RESTORE LINKREG @Y30LB24*/ 01912000 LR REG14,REG8 0673 01913000 * RETURN; /* RETURN TO ICBVQM00 @Y30LB24*/ 01914000 B @EL00008 0674 01915000 * END; /* @Y30LB24*/ 01916000 * RPLFTIME=OFF; /* INDICATE FIRST ENTRY @Y30LB24*/ 01917000 @RF00671 DS 0H 0677 01918000 * RPLVPOST=ON; /* INDICATE ECB POST @Y30LB24*/ 01919000 OI RPLVPOST(RPLVPTR),B'01000000' 0677 01920000 NI RPLFTIME(RPLVPTR),B'01111111' 0677 01921000 * REG1=PLENGTH; /* SET PARM LENGTH @Y30LB24*/ 01922000 L REG1,PLENGTH(,PARMPTR) 0678 01923000 * RPLVUTIL(1:REG1)=PARMLIST; /* COPY PARMS @Y30LB24*/ 01924000 LR @11,REG1 0679 01925000 BCTR @11,0 0679 01926000 EX @11,@SM01699 0679 01927000 * CALL VQMADDRB; /* CALL QUEUING RTN @Y30LB24*/ 01928000 BAL @14,VQMADDRB 0680 01929000 * CALL VQMFSTOR; /* CALL FREEMAIN RTN @Y30LB24*/ 01930000 BAL @14,VQMFSTOR 0681 01931000 * REG14=REG8; /* RESTORE LINKREG @Y30LB24*/ 01932000 LR REG14,REG8 0682 01933000 * RETURN; /* RETURN TO ICBVQM00 @Y30LB24*/ 01934000 B @EL00008 0683 01935000 * END VQMVVIUT; /* END MSVC UTILITY @Y30LB24*/ 01936000 * 0685 01937000 */* ****************************************************************** 01938000 * 0685 01939000 * NAME = VQMMSSCM, MSS COMMUNICATIONS PROCESSING @Y30LB24 01940000 * 0685 01941000 * INPUT = POINTER TO THE MSSC-SVC REQUEST, AND A POINTER TO 0685 01942000 * THE MSVC CONTROL BLOCK (ICBVVICB). @Y30LB24 01943000 * 0685 01944000 * PROCESS = THIS SUBROUTINE IS CALLED FOR PROCESSING OF 0685 01945000 * PURGE, SUSPEND, ASSOCIATE, AND DISASSOCIATE REQUESTS. 0685 01946000 * IF GOOD COMPLETION IS RECEIVED FROM THE MSC I/O THEN NO 0685 01947000 * PROCESSING IS DONE AND A GOOD RETURN IS MADE TO THE MSSC-SVC. 01948000 * IF FIRST ENTRY FOR REQUEST OR A BAD RETURN CODE IS RETURNED 0685 01949000 * FROM THE MSC I/O THEN THROUGH A SUBROUTINE A GETMAIN 0685 01950000 * IS DONE FOR STORAGE FOR THE MSVC RPLV, THE MSVC RPLV 0685 01951000 * IS ZEROED AND INITIALIZED WITH THE PROPER FLAGS AND ENTRIES. 0685 01952000 * THE RPLV IS THEN FILLED IN WITH REQUEST DEPENDENT DATA AND 0685 01953000 * THEN THROUGH ANOTHER SUBROUTINE THE RPLV IS CHAINED TO THE 0685 01954000 * HIGH PRIORITY QUEUE IN THE ICBVVICB AND THE SUBTASK IS POSTED 01955000 * IN ORDER TO HAVE THE MSVC STATUS UPDATED. 0685 01956000 * A RETURN IS THEN MADE TO ICBVQM00 MAINLINE. @Y30LB24 01957000 * 0685 01958000 * OUTPUT = MSSC-SVC REQUEST ENTRY ADDED TO RPLV CHAIN. @Y30LB24 01959000 * 0685 01960000 ******************************************************************** */ 01961000 */*VQMMSSCM: CHART */ 01962000 */*HEADER 0685 01963000 */*DECEMBER 8, 1975 ICBVQM00 - SEGMENT 01964000 */*VQMMSSCM - MSS COMMUNICATIONS */ 01965000 */* E VQMMSSCM */ 01966000 */* P SET GETMAIN LENGTH */ 01967000 */* S VQMGSTOR: GETMAIN FOR RPLV */ 01968000 */* D (NO,,YES,%END) ERROR FROM GETMAIN */ 01969000 */* P BUILD REQUEST BLOCK */ 01970000 */* S VQMADDRB: CHAIN RPLV */ 01971000 */* P SET FREEMAIN LENGTH */ 01972000 */* S VQMFSTOR: FREEMAIN RPLV */ 01973000 */*%END: R RETURN TO ICBVQM00 MAINLINE */ 01974000 */*VQMMSSCM: END */ 01975000 * 0685 01976000 *VQMMSSCM: 0685 01977000 * PROCEDURE OPTIONS(NOSAVE,NOSAVEAREA); 0685 01978000 VQMMSSCM DS 0H 0686 01979000 * REG8=REG14; /* SAVE LINKREG @Y30LB24*/ 01980000 LR REG8,REG14 0686 01981000 * REG2=LENGTH(RPLV); /* SET RPLV LENGTH @Y30LB24*/ 01982000 LA REG2,132 0687 01983000 * IF OPCODE=SUSPEND /* REQUEST FOR SUSPEND? @G24LB04*/ 01984000 * THEN 0688 01985000 CLI OPCODE(PARMPTR),X'22' 0688 01986000 BNE @RF00688 0688 01987000 * DO; /* SUSPEND REQUEST PROCESSING 0689 01988000 * @G24LB04*/ 01989000 * IF PARM0=RZERO /* 2ND ENTRY, GOOD MSC RETURN ? 01990000 * @G24LB04*/ 01991000 * THEN 0690 01992000 C PARM0,RZERO 0690 01993000 BNE @RF00690 0690 01994000 * DO; /* YES, SEND BACK GOOD RETURN 0691 01995000 * @G24LB04*/ 01996000 * REG0=SUCCES; /* REASON CODE (000) @G24LB04*/ 01997000 SLR REG0,REG0 0692 01998000 * FAILCODE=ZERO; /* SET RETURN CODE @G24LB04*/ 01999000 SLR FAILCODE,FAILCODE 0693 02000000 * RETURN; /* RETURN TO VQM MAINLINE 0694 02001000 * @G24LB04*/ 02002000 @EL00009 DS 0H 0694 02003000 @EF00009 DS 0H 0694 02004000 @ER00009 BR @14 0694 02005000 * END; /* @G24LB04*/ 02006000 * 0695 02007000 * /*************************************************************/ 02008000 * /* */ 02009000 * /* HAVE SUSPEND FIRST ENTRY, OR SECOND WITH FAILURE.@G24LB04 */ 02010000 * /* NOW TURN INTO DISABLE OR ENABLE, RESPECTIVELY @G24LB04*/ 02011000 * /* */ 02012000 * /*************************************************************/ 02013000 * 0696 02014000 * REG2=REG2+INILEN; /* ENABLE/DISABLE LENGTH @G24LB04*/ 02015000 @RF00690 AH REG2,INILEN 0696 02016000 * CALL VQMGSTOR; /* OBTAIN STORAGE @G24LB04*/ 02017000 BAL @14,VQMGSTOR 0697 02018000 * IF FAILCODE^=ZERO THEN 0698 02019000 LTR FAILCODE,FAILCODE 0698 02020000 BZ @RF00698 0698 02021000 * DO; /* NO STORAGE ? @G24LB04*/ 02022000 * REG14=REG8; /* RESTORE RETURN ADDRESS 0700 02023000 * @G24LB04*/ 02024000 LR REG14,REG8 0700 02025000 * RETURN; /* BACK TO VQM MAINLINE @G24LB04*/ 02026000 B @EL00009 0701 02027000 * END; /* @G24LB04*/ 02028000 * RPLFTIME=ON; /* FIRST TIME FOR REQUEST 0703 02029000 * @G24LB04*/ 02030000 @RF00698 DS 0H 0704 02031000 * RPLVPOST=ON; /* INDICATE POST VQM BACK 0704 02032000 * @G24LB04*/ 02033000 OI RPLFTIME(RPLVPTR),B'11000000' 0704 02034000 * RFY 0705 02035000 * INITVVI BASED(ADDR(RPLVUTIL));/* REQUEST BLOCK @G24LB04*/ 02036000 * 0705 02037000 * /*************************************************************/ 02038000 * /* */ 02039000 * /* FILL IN REQUEST @G24LB04*/ 02040000 * /* */ 02041000 * /*************************************************************/ 02042000 * 0706 02043000 * INITVVI=INITVVI&&INITVVI; /* CLEAR REQUEST AREA @G24LB04*/ 02044000 LA @11,132 0706 02045000 ALR @11,RPLVPTR 0706 02046000 XC INITVVI(20,@11),INITVVI(@11) 0706 02047000 * INILNGTH=INILEN; /* LENGTH OF ENABLE/DISABLE 0707 02048000 * @G24LB04*/ 02049000 LH @07,INILEN 0707 02050000 ST @07,INILNGTH(,@11) 0707 02051000 * INITOPCD=INICODE; /* ENABLE, DISABLE SAME OP 0708 02052000 * @G24LB04*/ 02053000 MVI INITOPCD(@11),X'88' 0708 02054000 * IF PARM0=ZERO /* 1ST ENTRY FOR SUSPEND? 0709 02055000 * @G24LB04*/ 02056000 * THEN 0709 02057000 LTR PARM0,PARM0 0709 02058000 BNZ @RF00709 0709 02059000 * DO; /* YES, MAKE DISABLE REQ @G24LB04*/ 02060000 * INIDISAB=ON; /* SPECIFY DISABLE @G24LB04*/ 02061000 OI INIDISAB(@11),B'00100000' 0711 02062000 * INIJRNL=ON; /* DISABLE JOURNAL PROCESS. 0712 02063000 * @G24LB04*/ 02064000 * INIABLE=ON; /* DISABLE REST OF MSVC @G24LB04*/ 02065000 OI INIJRNL(@11),B'01100000' 0713 02066000 * END; /* @G24LB04*/ 02067000 * ELSE 0715 02068000 * DO; /* @G24LB04*/ 02069000 B @RC00709 0715 02070000 @RF00709 DS 0H 0716 02071000 * INIENABL=ON; /* SUSPEND FAIL INTO ENABLE 0716 02072000 * @G24LB04*/ 02073000 LA @11,132 0716 02074000 ALR @11,RPLVPTR 0716 02075000 OI INIENABL(@11),B'01000000' 0716 02076000 * INIUCAT=VVIUCAT; /* CATLG NAME FROM CONTROL BLK 0717 02077000 * @G24LB04*/ 02078000 MVC INIUCAT(8,@11),VVIUCAT(VVIPTR) 0717 02079000 * END; /* @G24LB04*/ 02080000 * CALL VQMADDRB; /* GET IT CHAINED, WAITING 0719 02081000 * @G24LB04*/ 02082000 @RC00709 BAL @14,VQMADDRB 0719 02083000 * CALL VQMFSTOR; /* FREE THE STORAGE @G24LB04*/ 02084000 BAL @14,VQMFSTOR 0720 02085000 * END; /* PROCESSING FOR SUSPEND 0721 02086000 * @G24LB04*/ 02087000 * ELSE 0722 02088000 * DO; /* NOT A SUSPEND REQUEST @G24LB04*/ 02089000 B @RC00688 0722 02090000 @RF00688 DS 0H 0723 02091000 * REG2=REG2+PLENGTH; /* ADD ORDER LENGTH @Y30LB24*/ 02092000 AL REG2,PLENGTH(,PARMPTR) 0723 02093000 * CALL VQMGSTOR; /* CALL GETMAIN RTN @Y30LB24*/ 02094000 BAL @14,VQMGSTOR 0724 02095000 * IF FAILCODE^=ZERO THEN /* CORE AVAILABLE? @Y30LB24*/ 02096000 LTR FAILCODE,FAILCODE 0725 02097000 BZ @RF00725 0725 02098000 * DO; /* NO @Y30LB24*/ 02099000 * REG14=REG8; /* RESTORE LINKREG @Y30LB24*/ 02100000 LR REG14,REG8 0727 02101000 * RETURN; /* RETURN TO ICBVQM00 @Y30LB24*/ 02102000 B @EL00009 0728 02103000 * END; /* @Y30LB24*/ 02104000 * RPLFTIME=ON; /* DEFAULT SECOND ENTRY @Y30LB24*/ 02105000 @RF00725 OI RPLFTIME(RPLVPTR),B'10000000' 0730 02106000 * IF PARM0=ZERO THEN /* FIRST ENTRY? @Y30LB24*/ 02107000 LTR PARM0,PARM0 0731 02108000 BNZ @RF00731 0731 02109000 * RPLFTIME=OFF; /* INDICATE FIRST ENTRY @Y30LB24*/ 02110000 NI RPLFTIME(RPLVPTR),B'01111111' 0732 02111000 * RPLRCODE=PARM0; /* SET REASON CODE @Y30LB24*/ 02112000 @RF00731 STH PARM0,RPLRCODE(,RPLVPTR) 0733 02113000 * RPLVRETC=PARM0; /* SET RETURN CODE @Y30LB24*/ 02114000 STH PARM0,RPLVRETC(,RPLVPTR) 0734 02115000 * REG1=PLENGTH; /* SET PARM LENGTH @Y30LB24*/ 02116000 L REG1,PLENGTH(,PARMPTR) 0735 02117000 * RPLVUTIL(1:REG1)=PARMLIST; /* COPY PARMS @Y30LB24*/ 02118000 LR @11,REG1 0736 02119000 BCTR @11,0 0736 02120000 EX @11,@SM01699 0736 02121000 * CALL VQMADDRB; /* CALL QUEUING RTN @Y30LB24*/ 02122000 BAL @14,VQMADDRB 0737 02123000 * END; /* @G24LB04*/ 02124000 * REG14=REG8; /* RESTORE LINKREG @Y30LB24*/ 02125000 @RC00688 LR REG14,REG8 0739 02126000 * RETURN; /* RETURN TO ICBVQM00 @Y30LB24*/ 02127000 B @EL00009 0740 02128000 * END VQMMSSCM; /* END MSS COMMUNICATIONS 0741 02129000 * @Y30LB24*/ 02130000 * 0742 02131000 */* ****************************************************************** 02132000 * 0742 02133000 * NAME = VQMVABLE, ENABLE/DISABLE MSVC DATA SETS. @Y30LB24 02134000 * 0742 02135000 * INPUT = POINTER TO THE MSSC-SVC REQUEST, AND A POINTER TO 0742 02136000 * THE MSVC CONTROL BLOCK (ICBVVICB). @Y30LB24 02137000 * 0742 02138000 * PROCESS = THIS SUBROUTINE IS CALLED FOR PROCESSING OF 0742 02139000 * ENABLING OR DISABLING THE MSVC INVENTORY OR JOURNAL DATA SETS. 02140000 * THROUGH A SUBROUTINE A GETMAIN IS DONE FOR STORAGE FOR THE 0742 02141000 * MSVC RPLV, THE MSVC RPLV IS ZEROED AND INITIALIZED WITH 0742 02142000 * THE PROPER FLAGS AND ENTRIES. 0742 02143000 * THE RPLV IS THEN FILLED IN WITH REQUEST DEPENDENT DATA AND 0742 02144000 * THEN THROUGH ANOTHER SUBROUTINE THE RPLV IS CHAINED TO THE 0742 02145000 * HIGH PRIORITY QUEUE IN THE ICBVVICB AND THE SUBTASK IS POSTED 02146000 * IN ORDER TO HAVE THE MSVC STATUS UPDATED. 0742 02147000 * A WAIT IS THEN DONE FOR SUBTASK TO COMPLETE THE FUNCTION. 0742 02148000 * WHEN CONTROL IS RETURNED AFTER THE WAIT, A SUBROUTINE IS 0742 02149000 * CALLED TO FREE THE REQUEST BLOCK. 0742 02150000 * A RETURN IS THEN MADE TO ICBVQM00 MAINLINE WITH THE RESULTS 0742 02151000 * OF THE FUNCTION WHICH WILL BE RETURNED TO THE CALLER. @Y30LB24 02152000 * 0742 02153000 * OUTPUT = FUNCTION RESULTS WHICH ARE RETURNED TO CALLER. @Y30LB24 02154000 * 0742 02155000 ******************************************************************** */ 02156000 */*VQMVABLE: CHART */ 02157000 */*HEADER 0742 02158000 */*DECEMBER 8, 1975 ICBVQM00 - SEGMENT 02159000 */*VQMVABLE - ENABLE/DISABLE PROCESSING */ 02160000 */* E VQMVABLE */ 02161000 */* P SET GETMAIN LENGTH */ 02162000 */* S VQMGSTOR: GETMAIN FOR RPLV */ 02163000 */* D (NO,,YES,%END) ERROR FROM GETMAIN */ 02164000 */* P BUILD REQUEST BLOCK */ 02165000 */* S VQMADDRB: CHAIN RPLV */ 02166000 */* P SET FREEMAIN LENGTH */ 02167000 */* S VQMFSTOR: FREEMAIN RPLV */ 02168000 */*%END: R RETURN TO ICBVQM00 MAINLINE */ 02169000 */*VQMVABLE: END */ 02170000 * 0742 02171000 *VQMVABLE: 0742 02172000 * PROCEDURE OPTIONS(NOSAVE,NOSAVEAREA); 0742 02173000 VQMVABLE DS 0H 0743 02174000 * REG8=REG14; /* SAVE LINKREG @Y30LB24*/ 02175000 LR REG8,REG14 0743 02176000 * REG2=LENGTH(RPLV); /* SET RPLV LENGTH @Y30LB24*/ 02177000 LA REG2,132 0744 02178000 * REG2=REG2+PLENGTH; /* ADD ORDER LENGTH @Y30LB24*/ 02179000 AL REG2,PLENGTH(,PARMPTR) 0745 02180000 * CALL VQMGSTOR; /* CALL GETMAIN RTN @Y30LB24*/ 02181000 BAL @14,VQMGSTOR 0746 02182000 * IF FAILCODE^=ZERO THEN /* CORE AVAILABLE? @Y30LB24*/ 02183000 LTR FAILCODE,FAILCODE 0747 02184000 BZ @RF00747 0747 02185000 * DO; /* NO @Y30LB24*/ 02186000 * REG14=REG8; /* RESTORE LINKREG @Y30LB24*/ 02187000 LR REG14,REG8 0749 02188000 * RETURN; /* RETURN TO ICBVQM00 @Y30LB24*/ 02189000 @EL00010 DS 0H 0750 02190000 @EF00010 DS 0H 0750 02191000 @ER00010 BR @14 0750 02192000 * END; /* @Y30LB24*/ 02193000 * RPLFTIME=OFF; /* INDICATE FIRST ENTRY @Y30LB24*/ 02194000 @RF00747 DS 0H 0753 02195000 * RPLVPOST=ON; /* INDICATE ECB POST @Y30LB24*/ 02196000 OI RPLVPOST(RPLVPTR),B'01000000' 0753 02197000 NI RPLFTIME(RPLVPTR),B'01111111' 0753 02198000 * REG1=PLENGTH; /* SET PARM LENGTH @Y30LB24*/ 02199000 L REG1,PLENGTH(,PARMPTR) 0754 02200000 * RPLVUTIL(1:REG1)=PARMLIST; /* COPY PARMS @Y30LB24*/ 02201000 LR @11,REG1 0755 02202000 BCTR @11,0 0755 02203000 EX @11,@SM01699 0755 02204000 * CALL VQMADDRB; /* CALL QUEUING RTN @Y30LB24*/ 02205000 BAL @14,VQMADDRB 0756 02206000 * CALL VQMFSTOR; /* CALL FREEMAIN RTN @Y30LB24*/ 02207000 BAL @14,VQMFSTOR 0757 02208000 * REG14=REG8; /* RESTORE LINKREG @Y30LB24*/ 02209000 LR REG14,REG8 0758 02210000 * RETURN; /* RETURN TO ICBVQM00 @Y30LB24*/ 02211000 B @EL00010 0759 02212000 * END VQMVABLE; /* END ENABLE/DISABLE @Y30LB24*/ 02213000 * 0761 02214000 */* ****************************************************************** 02215000 * 0761 02216000 * NAME = VQMRECVY, RECOVERY FROM BACK LEVEL INVENTORY. @Y30LB24 02217000 * 0761 02218000 * INPUT = POINTER TO THE MSSC-SVC REQUEST, AND A POINTER TO 0761 02219000 * THE MSVC CONTROL BLOCK (ICBVVICB). @Y30LB24 02220000 * 0761 02221000 * PROCESS = THIS SUBROUTINE IS CALLED FOR PROCESSING OF 0761 02222000 * DATA SET RECOVERY REQUESTS. THE MSVC INVENTORY IS UPDATED 0761 02223000 * FROM JOURNALLED REQUEST LISTS AND A DOWN LEVEL MSVC INVENTORY. 02224000 * THROUGH A SUBROUTINE A GETMAIN IS DONE FOR STORAGE FOR THE 0761 02225000 * MSVC RPLV, THE MSVC RPLV IS ZEROED AND INITIALIZED WITH 0761 02226000 * THE PROPER FLAGS AND ENTRIES. 0761 02227000 * THE RPLV IS THEN FILLED IN WITH REQUEST DEPENDENT DATA AND 0761 02228000 * THEN THROUGH ANOTHER SUBROUTINE THE RPLV IS CHAINED TO THE 0761 02229000 * LOW PRIORITY QUEUE IN THE ICBVVICB AND THE SUBTASK IS POSTED 0761 02230000 * IN ORDER TO HAVE THE MSVC INVENTORY UPDATED. 0761 02231000 * A WAIT IS THEN DONE FOR SUBTASK TO COMPLETE THE FUNCTION. 0761 02232000 * WHEN CONTROL IS RETURNED AFTER THE WAIT, A SUBROUTINE IS 0761 02233000 * CALLED TO FREE THE REQUEST BLOCK. 0761 02234000 * A RETURN IS THEN MADE TO ICBVQM00 MAINLINE WITH THE RESULTS 0761 02235000 * OF THE FUNCTION WHICH WILL BE RETURNED TO THE CALLER. @Y30LB24 02236000 * 0761 02237000 * OUTPUT = FUNCTION RESULTS WHICH ARE RETURNED TO CALLER. @Y30LB24 02238000 * 0761 02239000 ******************************************************************** */ 02240000 */*VQMRECVY: CHART */ 02241000 */*HEADER 0761 02242000 */*DECEMBER 8, 1975 ICBVQM00 - SEGMENT 0761 02243000 */*VQMRECVY - DATA RECOVERY PROCESSING */ 02244000 */* E VQMRECVY */ 02245000 */*%ENABLE: P SET GETMAIN LENGTH */ 02246000 */* S VQMGSTOR: GETMAIN FOR RPLV */ 02247000 */* D (NO,,YES,%END) ERROR FROM GETMAIN */ 02248000 */* P BUILD REQUEST BLOCK */ 02249000 */* S VQMADDRB: CHAIN RPLV */ 02250000 */* P SET FREEMAIN LENGTH */ 02251000 */* S VQMFSTOR: FREEMAIN RPLV */ 02252000 */*%END: R RETURN TO ICBVPI00 MAINLINE */ 02253000 */*VQMRECVY: END */ 02254000 * 0761 02255000 *VQMRECVY: 0761 02256000 * PROCEDURE OPTIONS(NOSAVE,NOSAVEAREA); 0761 02257000 VQMRECVY DS 0H 0762 02258000 * REG8=REG14; /* SAVE LINKREG @Y30LB24*/ 02259000 LR REG8,REG14 0762 02260000 * REG2=PARMPTR->RPLVTLEN; /* SET GETMAIN LENGTH @Y30LB24*/ 02261000 LH REG2,RPLVTLEN(,PARMPTR) 0763 02262000 * CALL VQMGSTOR; /* CALL GETMAIN RTN @Y30LB24*/ 02263000 BAL @14,VQMGSTOR 0764 02264000 * IF FAILCODE^=ZERO THEN /* CORE AVAILABLE? @Y30LB24*/ 02265000 LTR FAILCODE,FAILCODE 0765 02266000 BZ @RF00765 0765 02267000 * DO; /* NO @Y30LB24*/ 02268000 * REG14=REG8; /* RESTORE LINKREG @Y30LB24*/ 02269000 LR REG14,REG8 0767 02270000 * RETURN; /* RETURN TO ICBVQM00 @Y30LB24*/ 02271000 @EL00011 DS 0H 0768 02272000 @EF00011 DS 0H 0768 02273000 @ER00011 BR @14 0768 02274000 * END; /* @Y30LB24*/ 02275000 * REG0=RPLVPTR; /* SET RPLV PTR @Y30LB24*/ 02276000 @RF00765 LR REG0,RPLVPTR 0770 02277000 * REG1=RPLVTLEN; /* SET PARM LENGTH @Y30LB24*/ 02278000 LH REG1,RPLVTLEN(,RPLVPTR) 0771 02279000 * REG2=PARMPTR; /* SET PARM PTR @Y30LB24*/ 02280000 LR REG2,PARMPTR 0772 02281000 * REG3=REG1; /* SET MOVE LENGTH @Y30LB24*/ 02282000 LR REG3,REG1 0773 02283000 * GEN(MVCL REG0,REG2); /* MOVE PARMS @Y30LB24*/ 02284000 MVCL REG0,REG2 02285000 * RPLVQPTR=ZERO; /* ZERO CHAIN PTR @Y30LB24*/ 02286000 SLR @11,@11 0775 02287000 ST @11,RPLVQPTR(,RPLVPTR) 0775 02288000 * RPLVECB=ZERO; /* ZERO ECB @Y30LB24*/ 02289000 ST @11,RPLVECB(,RPLVPTR) 0776 02290000 * RPLASCBP=ASCBSAVE; /* SET ASCB PTR @ZA27588*/ 02291000 L @11,CVTPTR 0777 02292000 L @11,CVTTCBP(,@11) 0777 02293000 L @11,ASCBSAVE(,@11) 0777 02294000 ST @11,RPLASCBP(,RPLVPTR) 0777 02295000 * RPLVPOST=ON; /* INDICATE ECB POST @Y30LB24*/ 02296000 OI RPLVPOST(RPLVPTR),B'01000000' 0778 02297000 * RPLVSAM=''B; /* ZERO VSAM RPL @Y30LB24*/ 02298000 XC RPLVSAM(76,RPLVPTR),RPLVSAM(RPLVPTR) 0779 02299000 * CALL VQMADDRB; /* CALL QUEUING RTN @Y30LB24*/ 02300000 BAL @14,VQMADDRB 0780 02301000 * CALL VQMFSTOR; /* CALL FREEMAIN RTN @Y30LB24*/ 02302000 BAL @14,VQMFSTOR 0781 02303000 * REG14=REG8; /* RESTORE LINKREG @Y30LB24*/ 02304000 LR REG14,REG8 0782 02305000 * RETURN; /* RETURN TO ICBVQM00 @Y30LB24*/ 02306000 B @EL00011 0783 02307000 * END VQMRECVY; /* END INVENTORY RECOVERY 0784 02308000 * @Y30LB24*/ 02309000 * 0785 02310000 */* ****************************************************************** 02311000 * 0785 02312000 * NAME = VQMGSTOR, ACQUIRE STORAGE AS DIRECTED. @G18MB04 02313000 * 0785 02314000 * INPUT = REGISTER TWO WITH THE LENGTH OF STORAGE NEEDED. @Y30LB24 02315000 * 0785 02316000 * PROCESS = THIS SUBROUTINE IS CALLED WHEN MAIN STORAGE IS @G18MB04 02317000 * REQUIRED. AN RPLV IS ALWAYS OBTAINED, AND IF THE LENGTH @G18MB04 02318000 * OF THE STORAGE IS GREATER THAN THAT OF THE RPLV, THIS @G18MB04 02319000 * PROGRAM MERELY OBTAINS THE EXTRA STORAGE CONTIGUOUS TO @G18MB04 02320000 * THE RPLV. @G18MB04 02321000 * THE REQUEST BLOCK IS INITIALIZED WITH ZEROES AND @G18MB04 02322000 * ADDRESSABILITY IS SET. @G18MB04 02323000 * THE LENGTH OF THE ENTIRE STORAGE OBTAINED IS PLACED IN @G18MB04 02324000 * THE FIELD RPLVTLEN SO THE FREEMAIN SETUP WILL HAVE IT. @G18MB04 02325000 * (THE STORAGE OBTAINED IS NOT ALWAYS FREED IN ICBVQM00, @G18MB04 02326000 * SOMETIMES IN OTHER MSVC MODULES.) @G18MB04 02327000 * 0785 02328000 * 0785 02329000 * OUTPUT = STORAGE FOR REQUEST BLOCK WITH INITIALIZED FIELDS. 0785 02330000 * ADDITIONAL STORAGE CONTIGUOUS TO THE REQUEST BLOCK @G18MB04 02331000 * @Y30LB24 02332000 * 0785 02333000 ******************************************************************** */ 02334000 */*VQMGSTOR: CHART */ 02335000 */*HEADER 0785 02336000 */*DECEMBER 8, 1975 ICBVQM00 - SEGMENT 02337000 */*VQMGSTOR - ACQUIRE STORAGE */ 02338000 */* E VQMGSTOR */ 02339000 */* D (NO,,YES,%CON) CONTROL BLOCKS GOOD? */ 02340000 */* P (,%END) SET ERROR CODES */ 02341000 */*%CON: P SET GETMAIN REG */ 02342000 */* L GETMAIN FOR STORAGE SPECIFIED */ 02343000 */* D (NO,,YES,%ERR) ERROR FROM GETMAIN */ 02344000 */* P SET RPLV ADDRESSABILITY */ 02345000 */* P CLEAR RPLV ONLY */ 02346000 */* P (,%END) INIT COMMON FIELDS */ 02347000 */*%ERR: P WRITE CONSOLE ERROR MSG */ 02348000 */* P SET ERROR CODES */ 02349000 */*%END: R RETURN TO CALLER */ 02350000 */*VQMGSTOR: END */ 02351000 * 0785 02352000 *VQMGSTOR: 0785 02353000 * PROCEDURE OPTIONS(NOSAVE,NOSAVEAREA); 0785 02354000 VQMGSTOR DS 0H 0786 02355000 * REG15=ZERO; /* ZERO WORK REG @Y30LB24*/ 02356000 SLR REG15,REG15 0786 02357000 * IF CVTPTR=REG15| /* IS THERE A CVT @Y30LB24*/ 02358000 * CVTEXT2=REG15| /* IS THERE A CVT EXT @Y30LB24*/ 02359000 * CVTICB=REG15| /* IS THERE A MSSC CB @Y30LB24*/ 02360000 * ICBVVICB=REG15 THEN /* IS THERE A MSVC CB @Y30LB24*/ 02361000 L @11,CVTPTR 0787 02362000 CR @11,REG15 0787 02363000 BE @RT00787 0787 02364000 L @11,CVTEXT2(,@11) 0787 02365000 CR @11,REG15 0787 02366000 BE @RT00787 0787 02367000 L @11,CVTICB(,@11) 0787 02368000 CR @11,REG15 0787 02369000 BE @RT00787 0787 02370000 C REG15,ICBVVICB(,@11) 0787 02371000 BNE @RF00787 0787 02372000 @RT00787 DS 0H 0788 02373000 * DO; /* NO @Y30LB24*/ 02374000 * REG0=INVALCBP; /* REASON CODE (23B) @YM34322*/ 02375000 LA REG0,571 0789 02376000 * FAILCODE=FOUR; /* SET RETURN CODE @Y30LB24*/ 02377000 LA FAILCODE,4 0790 02378000 * RETURN; /* RETURN TO CALLER @Y30LB24*/ 02379000 @EL00012 DS 0H 0791 02380000 @EF00012 DS 0H 0791 02381000 @ER00012 BR @14 0791 02382000 * END; /* @Y30LB24*/ 02383000 * REG0=REG2; /* SET GETMAIN REG0 @Y30LB24*/ 02384000 @RF00787 LR REG0,REG2 0793 02385000 *LGET1: 0794 02386000 * GEN(GETMAIN RC,LV=(0),SP=241); /* PERFORM GETMAIN 241 @Y30LB24*/ 02387000 LGET1 GETMAIN RC,LV=(0),SP=241 02388000 * IF REG15^=ZERO THEN /* CORE AVAILABLE? @Y30LB24*/ 02389000 LTR REG15,REG15 0795 02390000 BZ @RF00795 0795 02391000 * DO; /* NO @Y30LB24*/ 02392000 * REG1=ADDR(MSG1); /* SET UP REG 1 @Y30LB24*/ 02393000 LA REG1,MSG1 0797 02394000 *LWTO1: 0798 02395000 * GEN(WTO MF=(E,(REG1))); /* SEND ERROR MSG1 @Y30LB24*/ 02396000 LWTO1 WTO MF=(E,(REG1)) 02397000 * REG0=GMFAIL; /* REASON CODE (22A) @YM34322*/ 02398000 LA REG0,554 0799 02399000 * FAILCODE=FOUR; /* SET RETURN CODE @Y30LB24*/ 02400000 LA FAILCODE,4 0800 02401000 * RETURN; /* RETURN TO CALLER @Y30LB24*/ 02402000 B @EL00012 0801 02403000 * END; /* @Y30LB24*/ 02404000 * RPLVPTR=REG1; /* BASE RPLV @Y30LB24*/ 02405000 @RF00795 LR RPLVPTR,REG1 0803 02406000 * RPLV=RPLV&&RPLV; /* ZERO RPLV @Y30LB24*/ 02407000 XC RPLV(132,RPLVPTR),RPLV(RPLVPTR) 0804 02408000 * RPLVTLEN=REG2; /* SET RPL LENGTH @Y30LB24*/ 02409000 STH REG2,RPLVTLEN(,RPLVPTR) 0805 02410000 * RPLASCBP=ASCBSAVE; /* SET ASCB PTR @G18MB04*/ 02411000 L @11,CVTPTR 0806 02412000 L @11,CVTTCBP(,@11) 0806 02413000 L @11,ASCBSAVE(,@11) 0806 02414000 ST @11,RPLASCBP(,RPLVPTR) 0806 02415000 * REG0=SUCCES; /* REASON CODE (000) @YM34322*/ 02416000 SLR REG0,REG0 0807 02417000 * FAILCODE=ZERO; /* SET RETURN CODE @Y30LB24*/ 02418000 SLR FAILCODE,FAILCODE 0808 02419000 * RETURN; /* RETURN TO CALLER @Y30LB24*/ 02420000 B @EL00012 0809 02421000 * END VQMGSTOR; /* END GETMAIN REQUEST @Y30LB24*/ 02422000 * 0811 02423000 */* ****************************************************************** 02424000 * 0811 02425000 * NAME = VQMADDRB, ADD REQUEST BLOCK TO QUEUES. @Y30LB24 02426000 * 0811 02427000 * INPUT = POINTER TO THE RPLV REQUEST BLOCK AND TO THE MSSC-SVC 02428000 * REQUEST LIST. @Y30LB24 02429000 * 0811 02430000 * PROCESS = THIS SUBROUTINE IS CALLED WHEN A REQUEST IS TO 0811 02431000 * BE ADDED TO THE QUEUES SO THAT FUNCTION PROCESSING CAN BE 0811 02432000 * COMPLETED BY THE MSVC SUBTASK. @Y30LB24 02433000 * 0811 02434000 * OUTPUT = REQUEST BLOCK ADDED TO QUEUE. @Y30LB24 02435000 * 0811 02436000 ******************************************************************** */ 02437000 */*VQMADDRB: CHART */ 02438000 */*HEADER 0811 02439000 */*JUNE 14, 1974 ICBVQM00 - SEGMENT 0811 02440000 */*VQMADDRB - ADD REQUEST BLOCK TO QUEUE */ 02441000 */* E VQMADDRB */ 02442000 */* P SET CURRENT DATE */ 02443000 */*%CSFAIL: D (YES,,NO,%SETLOW) HIGH PRIORITY ITEM */ 02444000 */* P (,%ADD) SET HIGH PRIORITY PTRS */ 02445000 */*%SETLOW: P SET LOW PRIORITY PTRS */ 02446000 */*%ADD: P SET FORWARD CHAIN PTR */ 02447000 */* P CHAIN REQUEST TO QUEUE */ 02448000 */* P ADD REQUEST TO QUEUE */ 02449000 */*%CS: D (NO,,YES,%CSFAIL) DID CS ADD FAIL */ 02450000 */*%POST: P POST SUBTASK ECB */ 02451000 */* D (YES,,NO,%END) FUNCTION WAIT REQ? */ 02452000 */* P WAIT FOR FUNCTION TO COMPLETE */ 02453000 */*%END: R RETURN TO CALLER */ 02454000 */*VQMADDRB: END */ 02455000 * 0811 02456000 *VQMADDRB: 0811 02457000 * PROCEDURE OPTIONS(NOSAVE,NOSAVEAREA); 0811 02458000 VQMADDRB DS 0H 0812 02459000 * REG3=ONE; /* SET DEFAULT PARM @Y30LB24*/ 02460000 LA REG3,1 0812 02461000 * IF RPLVPOST=ON THEN /* POST RPL? @Y30LB24*/ 02462000 TM RPLVPOST(RPLVPTR),B'01000000' 0813 02463000 BNO @RF00813 0813 02464000 * REG3=ZERO; /* SET POST PARM @Y30LB24*/ 02465000 SLR REG3,REG3 0814 02466000 * RPLVPROG=OFF; /* SET RPLV FLAG OFF @Y30LB24*/ 02467000 @RF00813 DS 0H 0816 02468000 * RPLVCOMP=OFF; /* SET RPLV FLAG OFF @Y30LB24*/ 02469000 * RPLVVIN=OFF; /* SET RPLV FLAG OFF @Y30LB24*/ 02470000 * RPLVVOP=OFF; /* SET RPLV FLAG OFF @Y30LB24*/ 02471000 * RPLVJRNL=OFF; /* SET RPLV FLAG OFF @Y30LB24*/ 02472000 NI RPLVPROG(RPLVPTR),B'11000010' 0819 02473000 * RPLVECB=ZERO; /* ZERO ECB FOR WAIT @Y30LB24*/ 02474000 SLR @11,@11 0820 02475000 ST @11,RPLVECB(,RPLVPTR) 0820 02476000 *ADDRB: 0821 02477000 * IF OPCODE=DEMOUNT| /* IS THIS DEMOUNT @ZA13484*/ 02478000 * OPCODE=MOUNT| /* MOUNT @ZA13484*/ 02479000 * OPCODE=ENABLDIS THEN /* ENABLE/DISABLE @ZA13484*/ 02480000 ADDRB CLI OPCODE(PARMPTR),X'06' 0821 02481000 BE @RT00821 0821 02482000 CLI OPCODE(PARMPTR),X'08' 0821 02483000 BE @RT00821 0821 02484000 CLI OPCODE(PARMPTR),X'88' 0821 02485000 BNE @RF00821 0821 02486000 @RT00821 DS 0H 0822 02487000 * DO; /* HIGH PRIORITY ITEM @Y30LB24*/ 02488000 * REG2=ADDR(VVIQRPL1); /* POINT TO QUEUE HEAD @Y30LB24*/ 02489000 LA REG2,VVIQRPL1(,VVIPTR) 0823 02490000 * REG1=VVIQRPL1; /* POINT TO FIRST RPL @Y30LB24*/ 02491000 L REG1,VVIQRPL1(,VVIPTR) 0824 02492000 * END; /* @Y30LB24*/ 02493000 * ELSE /* OTHERWISE @Y30LB24*/ 02494000 * DO; /* LOW PRIORITY ITEM @Y30LB24*/ 02495000 B @RC00821 0826 02496000 @RF00821 DS 0H 0827 02497000 * REG2=ADDR(VVIQRPL2); /* POINT TO QUEUE HEAD @Y30LB24*/ 02498000 LA REG2,VVIQRPL2(,VVIPTR) 0827 02499000 * REG1=VVIQRPL2; /* POINT TO FIRST RPL @Y30LB24*/ 02500000 L REG1,VVIQRPL2(,VVIPTR) 0828 02501000 * END; /* @Y30LB24*/ 02502000 * RPLVQPTR=REG1; /* SET FORWARD CHAIN PTR @Y30LB24*/ 02503000 @RC00821 ST REG1,RPLVQPTR(,RPLVPTR) 0830 02504000 * GEN(CS REG1,RPLVPTR,M0(REG2)); /* COMPARE & SWAP @Y30LB24*/ 02505000 CS REG1,RPLVPTR,M0(REG2) 02506000 * BC(FOUR,ADDRB); /* IF FAIL, BRANCH @Y30LB24*/ 02507000 BC 4,ADDRB 0832 02508000 * VVIRES4=ADDR(VVIECB1); /* SET PARM LIST ECB @Y30LB24*/ 02509000 LA @11,VVIECB1(,VVIPTR) 0833 02510000 ST @11,VVIRES4(,VVIPTR) 0833 02511000 * VVIRES5=ASVTENTY(ONE); /* SET PARM LIST ASCB @Y30LB24*/ 02512000 L @11,CVTPTR 0834 02513000 L @07,ASVTPTR(,@11) 0834 02514000 MVC VVIRES5(4,VVIPTR),ASVTENTY(@07) 0834 02515000 * VVIRES6=ADDR(CVTBRET); /* SET PARM LIST ERRADDR @ZA28148*/ 02516000 LA @11,CVTBRET(,@11) 0835 02517000 ST @11,VVIRES6(,VVIPTR) 0835 02518000 * REG1=ADDR(VVIRES4); /* SET PARM REG @Y30LB24*/ 02519000 LA REG1,VVIRES4(,VVIPTR) 0836 02520000 * GEN(ICM REG1,M8,EID); /* INDICATE PARM LIST @Y30LB24*/ 02521000 ICM REG1,M8,EID 02522000 * REG0=ZERO; /* SET POST CODE @Y30LB24*/ 02523000 SLR REG0,REG0 0838 02524000 * IF VVIECB1^=PZERO THEN /* POST REQUIRED? @Y30LB24*/ 02525000 CLC VVIECB1(4,VVIPTR),PZERO 0839 02526000 BE @RF00839 0839 02527000 * DO; /* YES @Y30LB24*/ 02528000 *LPOST1: 0841 02529000 * GEN(SVC POST); /* POST SUBTASK @Y30LB24*/ 02530000 LPOST1 SVC POST 02531000 * END; /* @Y30LB24*/ 02532000 * IF REG3=ZERO THEN /* POST RPL? @Y30LB24*/ 02533000 @RF00839 LTR REG3,REG3 0843 02534000 BNZ @RF00843 0843 02535000 * DO; /* YES @Y30LB24*/ 02536000 * REG1=ADDR(RPLVECB); /* SET PARM REG @Y30LB24*/ 02537000 LA REG1,RPLVECB(,RPLVPTR) 0845 02538000 *LWAIT1: 0846 02539000 * GEN(WAIT 1,ECB=(REG1)); /* WAIT FOR COMPLETION @Y30LB24*/ 02540000 LWAIT1 WAIT 1,ECB=(REG1) 02541000 * END; /* @Y30LB24*/ 02542000 * RETURN; /* RETURN TO CALLER @Y30LB24*/ 02543000 @EL00013 DS 0H 0848 02544000 @EF00013 DS 0H 0848 02545000 @ER00013 BR @14 0848 02546000 * END VQMADDRB; /* END ADD TO QUEUE @Y30LB24*/ 02547000 B @EL00013 0849 02548000 * 0850 02549000 */* ****************************************************************** 02550000 * 0850 02551000 * NAME = VQMFSTOR, RELEASE STORAGE @G18MB04 02552000 * 0850 02553000 * INPUT = POINTER TO THE STORAGE TO BE FREED @G18MB04 02554000 * LENGTH OF THE STORAGE TO BE FREED @G18MB04 02555000 * NOTE THAT THE STORAGE MUST BEGIN WITH AN RPLV REQUEST @G18MB04 02556000 * BLOCK @G18MB04 02557000 * 0850 02558000 * PROCESS = THIS SUBROUTINE IS CALLED WHEN MAIN STORAGE IS TO 0850 02559000 * BE RELEASED FOR THE RPLV REQUEST BLOCK AND POSSIBLY SOME @G18MB04 02560000 * ADDITIONAL CONTIGUOUS STORAGE @G18MB04 02561000 * 0850 02562000 * OUTPUT = FREED STORAGE ACQUIRED FOR REQUEST BLOCK AND 0850 02563000 * CONTIGUOUS STORAGE FOR COMMUNICATION WITH JES3. @G18MB04 02564000 * REASON AND RETURN CODES FROM FUNCTION REQUEST. @Y30LB24 02565000 * 0850 02566000 ******************************************************************** */ 02567000 */*VQMFSTOR: CHART */ 02568000 */*HEADER 0850 02569000 */*DECEMBER 8, 1975 ICBVQM00 - SEGMENT 0850 02570000 */*VQMFSTOR - RELEASE STORAGE */ 02571000 */* E VQMFSTOR */ 02572000 */* P SAVE R/R CODES */ 02573000 */* D (YES,,NO,%CON) UTILITY FLAG SET */ 02574000 */* P SET REASON CODE FLAG */ 02575000 */*%CON: P SET FREEMAIN LENGTH */ 02576000 */* P SET FREEMAIN SUBPOOL */ 02577000 */* P SET FREEMAIN ADDRESS */ 02578000 */* L FREEMAIN FOR STORAGE */ 02579000 */* P RESTORE R/R CODES */ 02580000 */*%END: R RETURN TO CALLER */ 02581000 */*VQMFSTOR: END */ 02582000 * 0850 02583000 *VQMFSTOR: 0850 02584000 * PROCEDURE OPTIONS(NOSAVE,NOSAVEAREA); 0850 02585000 VQMFSTOR DS 0H 0851 02586000 * REG2=RPLRCODE; /* SAVE REASON CODE @Y30LB24*/ 02587000 LH REG2,RPLRCODE(,RPLVPTR) 0851 02588000 N REG2,@CF01714 0851 02589000 * REG3=RPLVRETC; /* SAVE RETURN CODE @Y30LB24*/ 02590000 LH REG3,RPLVRETC(,RPLVPTR) 0852 02591000 N REG3,@CF01714 0852 02592000 * IF RPLVJRNL=ON THEN /* UTIL FLAG ON @YD00160*/ 02593000 TM RPLVJRNL(RPLVPTR),B'00000001' 0853 02594000 BNO @RF00853 0853 02595000 * DO; /* YES @YD00160*/ 02596000 * GEN(ICM REG2,M8,EID); /* SET UTIL INDICATOR @YD00160*/ 02597000 ICM REG2,M8,EID 02598000 * END; /* @YD00160*/ 02599000 * REG0=RPLVTLEN; /* SET FREEMAIN LENGTH @Y30LB24*/ 02600000 @RF00853 LH REG0,RPLVTLEN(,RPLVPTR) 0857 02601000 * GEN(ICM REG0,M8,POOL); /* INDICATE SUBPOOL 241 @Y30LB24*/ 02602000 ICM REG0,M8,POOL 02603000 * REG1=RPLVPTR; /* SET FREEMAIN ADDR @Y30LB24*/ 02604000 LR REG1,RPLVPTR 0859 02605000 *LFREM2: 0860 02606000 * GEN(FREEMAIN R,LV=(0),A=(1)); /* FREEMAIN SUBPOOL 241 @Y30LB24*/ 02607000 LFREM2 FREEMAIN R,LV=(0),A=(1) 02608000 * REG0=REG2; /* SET REASON CODE @Y30LB24*/ 02609000 LR REG0,REG2 0861 02610000 * FAILCODE=REG3; /* SET RETURN CODE @Y30LB24*/ 02611000 LR FAILCODE,REG3 0862 02612000 * RETURN; /* RETURN TO CALLER @Y30LB24*/ 02613000 @EL00014 DS 0H 0863 02614000 @EF00014 DS 0H 0863 02615000 @ER00014 BR @14 0863 02616000 * END VQMFSTOR; /* END FREEMAIN REQUEST @Y30LB24*/ 02617000 * 0865 02618000 */* ****************************************************************** 02619000 * 0865 02620000 * NAME = VQMJESMT, MSVC-JES3 MOUNT INTERFACE ROUTINE @G18MB04 02621000 * PROCESSES ENTRY TO MSVC FOR MOUNT NONSPECIFIC REQUEST @G18MB04 02622000 * WITH MSVGP CODED. INCLUDES NECESSARY INTERFACE TO MAKE @G18MB04 02623000 * MSS A JES3-MANAGED DEVICE. THIS ROUTINE IS USED @G18MB04 02624000 * WHETHER OR NOT JES3 IS IN THE SYSTEM. @G18MB04 02625000 * @G18MB04 02626000 * INPUT = POINTER TO AN MSSC SVC REQUEST @G18MB04 02627000 * INDICATOR WHETHER FIRST OR SECOND ENTRY FOR THAT @G18MB04 02628000 * REQUEST @G18MB04 02629000 * POINTER TO THE RPLV AND HENCE ADDRESSABILITY TO @G18MB04 02630000 * STORAGE PREVIOUSLY OBTAINED FOR JES3 INTERFACE @G18MB04 02631000 * REQUIREMENTS. THIS CONTAINS, IN THIS ORDER -- @G18MB04 02632000 * .RPLV AND OTHER NON-JES3 STORAGE FOR THE REQUEST@G18MB04 02633000 * .STORAGE OBTAINED FOR JES3 INTERFACE @G18MB04 02634000 * THE STRUCTURE MNSWMSTG DESCRIBES JES3-STORAGE, @G18MB04 02635000 * AND ITS LENGTH IS INCLUDED IN THE TOTAL RPLV @G18MB04 02636000 * LENGTH, RPLVTLEN, FOR GETMAIN AND FREEMAIN @G18MB04 02637000 * COMPATIBILITY @G18MB04 02638000 * POINTER TO IEFJSREQ VIA THE CVT AND JSECT @G18MB04 02639000 * @G18MB04 02640000 * PROCESS = VQMJESMT REPEATS THE FOLLOWING STEPS UNTIL @G18MB04 02641000 * A VOLUME IS CHOSEN (FOR FIRST ENTRY CASE), OR @G18MB04 02642000 * A SUCCESSFUL MOUNT IS ACHIEVED (FOR SECOND ENTRY @G18MB04 02643000 * CASE), OR UNTIL AN ERROR WHICH PROHIBITS @G18MB04 02644000 * FURTHER PROCESSING IS ENCOUNTERED. @G18MB04 02645000 * 0 FILL IN THE SSOB AND SSOB EXTENSION @G18MB04 02646000 * INFORMATION WHICH REMAINS THE SAME @G18MB04 02647000 * 1 SEND THIS REQUEST TO MSVC TASK VIA THE @G18MB04 02648000 * SUBROUTINE VQMADDRB. VQMADDRB WAITS FOR @G18MB04 02649000 * COMPLETION OF TASK PROCESSING FOR THIS @G18MB04 02650000 * REQUEST, AFTER WHICH ANY TRACES OF PRIOR @G18MB04 02651000 * SELECTION OF A VOLUME WHICH CANNOT BE USED @G18MB04 02652000 * HAVE BEEN REMOVED, AND ANOTHER VOLUME HAS @G18MB04 02653000 * BEEN SELECTED IF POSSIBLE @G18MB04 02654000 * 2 SEND THE NEXT VOLUME CANDIDATE CHOICE TO @G18MB04 02655000 * JES3 FOR APPROVAL VIA THE SUBSYSTEM INTERFACE @G18MB04 02656000 * 3 CONVERSE WITH VQMADDRB AND JES3 (STEPS 1 & 2) @G18MB04 02657000 * UNTIL A MUTUALLY SATISFACTORY VOLUME CAN BE @G18MB04 02658000 * SELECTED, OR WE MUST GIVE UP AND FAIL THE @G18MB04 02659000 * REQUEST. IF JES3 IS NOT IN SYSTEM WITH THIS @G18MB04 02660000 * FUNCTION, THE FIRST MSVC CHOICE IS USED. @G18MB04 02661000 * 4 WHEN A VOLUME COULD BE CHOSEN, VQMJESMT @G18MB04 02662000 * RETURNS THAT VOLUME TO CALLER FOR FIRST ENTRY, @G18MB04 02663000 * OR REISSUES THE MOUNT REQUEST THROUGH THE @G18MB04 02664000 * MSSC SVC, FOR SECOND ENTRY. @G18MB04 02665000 * IF THIS MOUNT FAILS, VQMJESMT REPEATS STEPS @G18MB04 02666000 * BEGINNING WITH (1) ABOVE. @G18MB04 02667000 * FOR SUCCESSFUL MOUNT, NEW CODES ARE SET FOR @G18MB04 02668000 * THE MOUNT REQUEST. @G18MB04 02669000 * MOVE FINAL PARAMETERS INTO CALLERS PARAMETER LIST@G18MB04 02670000 * FREE APPROPRIATE AMOUNT OF STORAGE VIA VQMFSTOR @G18MB04 02671000 * 0865 02672000 * 0865 02673000 * OUTPUT = MSSC SVC REQUEST ADDED TO RPLV CHAIN @G18MB04 02674000 * MOUNT ORDER TO MSC VIA MSSC SVC FOR SECOND ENTRY@G18MB04 02675000 * CANDIDATE VOLSER IS PRESENTED TO JES3 FOR @G18MB04 02676000 * APPROVAL OR DISAPPROVAL @G18MB04 02677000 * 0865 02678000 ******************************************************************** */ 02679000 */*VQMJESMT: CHART */ 02680000 */*HEADER 0865 02681000 */*JANUARY 20, 1976 ICBVQM00 - SEGMENT 0865 02682000 */*VQMJESMT - NONSPECIFIC MOUNT WITH MSVGP SPECIFIED */ 02683000 */* E VQMJESMT */ 02684000 */* P SAVE RETURN ADDRESS AND CLEAR OWN 02685000 */*SWITCHES */ 02686000 */* D (YES,%FRS,NO,%SEC) RPLV SHOW FIRST VQM ENTRY ? */ 02687000 */*%FRS: P SET OWN FIRST ENTRY SWITCHES */ 02688000 */* N INCLUDING NO MOUNT, FIRST VQM 0865 02689000 */*ENTRY AND NO PRIOR CHOICE TO BACK OUT */ 02690000 */*%SEC: P CLEAR SSOB AND EXTENSION, SET UP 0865 02691000 */*BASIC INFORMATION */ 02692000 */*%NOVOL: P SET NO VOLUME CHOSEN */ 02693000 */* P CLEAR FIELDS IN RPLV WHICH ARE REUSED 02694000 */* */ 02695000 */* D (NO,%SEL,YES,%RTY) PRIOR CHOICE TO BACK OUT ? */ 02696000 */*%RTY: P SET RPLV FOR RETRY (CHOOSE NEW & BACK 02697000 */* OUT PRIOR CHOICE OF VOLSER IN RPLV) */ 02698000 */*%SEL: P SPECIFY WAIT FOR TASK COMPLETION OF 02699000 */*THIS REQUEST */ 02700000 */* S VQMADDRB: CHAIN RPLV FOR VOLUME 0865 02701000 */*CHOICE & WAIT */ 02702000 */* D (YES,%GOT,NO,%FATL)VOLUME CHOSEN ? */ 02703000 */*%FATL: P (,%MNTQ) SET FATAL ERROR ENCOUNTERED */ 02704000 */*%GOT: P PUT VOLUME SERIAL INTO CALLERS 0865 02705000 */*ORIGINAL PARAMETER LIST */ 02706000 */* S IEFSSREQ: ASK JES3 IF VOLUME OK TO 02707000 */*USE */ 02708000 */* D (YES,%GTQ,NO,%ERS) DID JES3 GET THE QUESTION? */ 02709000 */*%GTQ: D (YES,%J3OK,NO,%QES)IS VOLUME OK BY JES3 ? */ 02710000 */*%J3OK: P (,%MNTQ) SET VOLUME CHOSEN */ 02711000 */*%QES: D (YES,%REJ,NO,%CODR)WAS VOLUME BUSY? */ 02712000 */*%REJ: P COUNT REJECTION AND SET JES3 0865 02713000 */*REJECTION REASON CODE */ 02714000 */* P PREPARE RPLV FOR REUSE. MSVC WILL BE 02715000 */*TOLD TO BACK OUT THIS VOLUME CHOICE */ 02716000 */* P (,%MNTQ) SET PRIOR CHOICE TO BACK OUT DURING 02717000 */*RETRY */ 02718000 */*%CODR: P SET FATAL ERROR, AND MSVC MUST BACK 02719000 */*OUT SELECTION (CLEANUP) */ 02720000 */* P (,%MNTQ) SET JES3 REJECT REASON CODE, AND 0865 02721000 */*APPROPRIATE RETURN CODE */ 02722000 */*%ERS: N FIND OUT WHY JES3 DID NOT GET REQUEST 02723000 */* */ 02724000 */* D (NO,%SET,YES,%FTL)WAS JES3 - MSVC FUNCTION THERE ? */ 02725000 */*%SET: P (,%MNTQ) SET VOLUME CHOSEN, SINCE NO JES3 FOR 02726000 */*THIS FUNCTION IN SYSTEM NOW */ 02727000 */*%FTL: P SET FATAL ERROR, & MSVC MUST 0865 02728000 */*BACK OUT CHOICE (CLEANUP). SET RETURN CODE */ 02729000 */* P (,%MNTQ) DETERMINE EXACT REASON FOR THIS ERROR 02730000 */* AND SET APPROPRIATE REASON CODE */ 02731000 */*%MNTQ: D (YES,%ISS,NO,%NOM) VOLUME CHOSEN OR FATAL ERROR ? */ 02732000 */*%ISS: D (YES,%MOU,NO,%NOM)SHOULD MOUNT BE ISSUED ? */ 02733000 */*%MOU: S SVC 126: ISSUE MOUNT TO MSC */ 02734000 */* D (YES,%MOK,NO,%DEC)MOUNT OK ? */ 02735000 */*%MOK: P (,%DEC) SET SUCCESSFUL MOUNT, GOOD REASON & 02736000 */*RETURN CODES */ 02737000 */*%NOM: N (,%DEC) NO MOUNT IS ISSUED FOR FIRST VQM 02738000 */* ENTRY FOR REQUEST, OR ERROR */ 02739000 */*%CLQ: D (YES,%CLE,NO,%ITR)IS MSVC BACK OUT (CLEANUP) REQ NOW ? 02740000 */* */ 02741000 */*%CLE: P SAVE ADDRESS OF THIS RPLV */ 02742000 */* N THIS IS NECESSARY ONLY WHEN NO RETRY 02743000 */*WILL BE MADE */ 02744000 */* S VQMABEND: GETS NEW RPLV, CHAINS FOR 02745000 */*CLEANUP ONLY */ 02746000 */* P (,%ITR) READDRESS ORIGINAL RPLV */ 02747000 */*%DEC: N IF FIRST ENTRY OR SUCCESSFUL 0865 02748000 */*MOUNT OR FATAL ERROR, HAVE FINISHED... */ 02749000 */* N (,%CLQ) UNLESS CLEANUP OF MSVC RECORDS (FOR 02750000 */*VOLUME CHOSEN BUT NOT USED) IS NEEDED */ 02751000 */*%ITR: D (YES,%NOVOL,NO,%MOV) ITERATE (RETRY) ? */ 02752000 */*%MOV: P MOVE PARAMETERS TO CALLERS ORIGINAL 02753000 */*LIST */ 02754000 */* P PICK UP RETURN ADDRESS */ 02755000 */* N FREEMAIN LENGTH IS CONTAINED IN RPLV 02756000 */* */ 02757000 */* S VQMFSTOR: FREE STORAGE */ 02758000 */* R RETURN */ 02759000 */*VQMJESMT: END */ 02760000 * 0865 02761000 *VQMJESMT: 0865 02762000 * PROCEDURE OPTIONS(NOSAVE,NOSAVEAREA);/* @G18MB04*/ 02763000 VQMJESMT DS 0H 0866 02764000 * MNSWMPT=MNSWMPT+ADDR(RPLV); /* FIND STORAGE FOR JES3 @G18MB04*/ 02765000 ALR MNSWMPT,RPLVPTR 0866 02766000 * R14SAVE=REG14; /* SAVE RETURN ADDRESS @G18MB04*/ 02767000 ST REG14,R14SAVE(,MNSWMPT) 0867 02768000 * NSMFLAGS=ZERO; /* CLEAR OWN SWITCHES @G18MB04*/ 02769000 MVI NSMFLAGS(MNSWMPT),X'00' 0868 02770000 * IF RPLFTIME=OFF /* 1ST ENTRY FOR REQ? @G18MB04*/ 02771000 * THEN /* FIRST ENTRY TO VQM @G18MB04*/ 02772000 TM RPLFTIME(RPLVPTR),B'10000000' 0869 02773000 BNZ @RF00869 0869 02774000 * DO; /* FIRST-TIME SWITCHES @G18MB04*/ 02775000 * NSMFENTY=ON; /* 1ST ENTRY, NOT RESET @G18MB04*/ 02776000 * NOMOUNT=ON; /* NO MOUNT TO BE ISSUED @G18MB04*/ 02777000 * NOBACKOU=ON; /* NOTHING TO BACK OUT @G18MB04*/ 02778000 OI NSMFENTY(MNSWMPT),B'11100000' 0873 02779000 * END; /* @G18MB04*/ 02780000 * 0874 02781000 * /*****************************************************************/ 02782000 * /* */ 02783000 * /* MSVC INTERFACE TO JES3 HAS SSOBMO FUNCTION NAME @G18MB04*/ 02784000 * /* SINCE THIS MODULE EXECUTES UNDER USER TASK, NO SSIB @G18MB04*/ 02785000 * /* */ 02786000 * /*****************************************************************/ 02787000 * 0875 02788000 * RFY 0875 02789000 * SSOB BASED(ADDR(NSMMSSOB)); /* SUBSYS INTERFACE BLK @G18MB04*/ 02790000 @RF00869 DS 0H 0876 02791000 * RFY 0876 02792000 * SSMO BASED(ADDR(NSMMSSBX)); /* THEN SSOB EXTENSION @G18MB04*/ 02793000 * SSOB=SSOB&&SSOB; /* CLEAR THE SSOB @G18MB04*/ 02794000 XC SSOB(20,MNSWMPT),SSOB(MNSWMPT) 0877 02795000 * SSOBID=CHARSSOB; /* EBCDIC LETTERS SSOB @G18MB04*/ 02796000 MVC SSOBID(4,MNSWMPT),CHARSSOB 0878 02797000 * SSOBLEN=LENGTH(SSOB); /* LENGTH OF HEADER @G18MB04*/ 02798000 LA @11,20 0879 02799000 STH @11,SSOBLEN(,MNSWMPT) 0879 02800000 * SSOBFUNC=SSOBMSVC; /* FUNCTION ID FOR MSVC @G18MB04*/ 02801000 MVC SSOBFUNC(2,MNSWMPT),@CH01311 0880 02802000 * SSOBINDV=ADDR(SSMO); /* ADDRESS OF EXTENSION @G18MB04*/ 02803000 ALR @11,MNSWMPT 0881 02804000 ST @11,SSOBINDV(,MNSWMPT) 0881 02805000 * RESPECIFY 0882 02806000 * SSMO BASED(SSOBINDV); /* ADDRESS EXTENSION @G18MB04*/ 02807000 * SSMO=SSMO&&SSMO; /* CLEAR EXTENSION @G18MB04*/ 02808000 XC SSMO(28,@11),SSMO(@11) 0883 02809000 * SSMOLEN=LENGTH(SSMO); /* SSMO EXTENSION LENGTH @G18MB04*/ 02810000 MVC SSMOLEN(2,@11),@CH01294 0884 02811000 * SSMOPNAM=MNTXJOBN; /* POINTER TO JOB NAME @G18MB04*/ 02812000 L @07,MNTEXTP(,PARMPTR) 0885 02813000 MVC SSMOPNAM(4,@11),MNTXJOBN(@07) 0885 02814000 * SSMOPSTN=MNTXSTEP; /* PTR TO STEP NUMBER @G18MB04*/ 02815000 MVC SSMOPSTN(4,@11),MNTXSTEP(@07) 0886 02816000 * SSMOPUAD=ADDR(MDVUA); /* PTR TO UNIT ADDRESS @G18MB04*/ 02817000 LA @07,MDVUA(,PARMPTR) 0887 02818000 ST @07,SSMOPUAD(,@11) 0887 02819000 * SSMOPVOL=ADDR(MDVOL); /* POINTER TO VOLSER @G18MB04*/ 02820000 LA @07,MDVOL(,PARMPTR) 0888 02821000 ST @07,SSMOPVOL(,@11) 0888 02822000 * 0889 02823000 * /*****************************************************************/ 02824000 * /* */ 02825000 * /* FOLLOWING ITERATES ONCE ONLY FOR 1ST ENTRY. FOR 2ND @G18MB04*/ 02826000 * /* ENTRY, ITERATES UNTIL SUCCESSFUL MOUNT OR FATAL ERROR @G18MB04*/ 02827000 * /* */ 02828000 * /*****************************************************************/ 02829000 * 0889 02830000 * DO UNTIL NSMFENTY=ON|SUCCMNT=ON|FATALERR=ON;/* MAIN LOOP @G18MB04*/ 02831000 @DL00889 DS 0H 0890 02832000 * VOLCHOSN=OFF; /* NEED DIFFERENT VOLUME @G18MB04*/ 02833000 NI VOLCHOSN(MNSWMPT),B'11111011' 0890 02834000 * RPLFLAGA=''B; /* CLEAR RPLV FLAGS @G18MB04*/ 02835000 XC RPLFLAGA(2,RPLVPTR),RPLFLAGA(RPLVPTR) 0891 02836000 * IF NOBACKOU=OFF /* RECORDS TO BACK OUT ? @G18MB04*/ 02837000 * THEN /* VOL SHOWN USED -- NOT @G18MB04*/ 02838000 TM NOBACKOU(MNSWMPT),B'00100000' 0892 02839000 BNZ @RF00892 0892 02840000 * RPLFTIME=ON; /* THIS IS 2ND ENTRY @G18MB04*/ 02841000 OI RPLFTIME(RPLVPTR),B'10000000' 0893 02842000 * DO UNTIL VOLCHOSN=ON|FATALERR=ON;/* CHOOSE ANOTHER VOL @G18MB04*/ 02843000 @RF00892 DS 0H 0894 02844000 @DL00894 DS 0H 0895 02845000 * RPLVPOST=ON; /* NEED ECB POST @G18MB04*/ 02846000 OI RPLVPOST(RPLVPTR),B'01000000' 0895 02847000 * RPLVSAM=''B; /* & VSAM RPLV @G18MB04*/ 02848000 XC RPLVSAM(76,RPLVPTR),RPLVSAM(RPLVPTR) 0896 02849000 * CALL VQMADDRB; /* CALL QUEUEING ROUTINE @G18MB04*/ 02850000 BAL @14,VQMADDRB 0897 02851000 * IF RPLVRETC^=SUCCES /* NO VOLUME CHOSEN? @G18MB04*/ 02852000 * THEN /* REQUEST NOT SATISFIED @G18MB04*/ 02853000 LH @11,RPLVRETC(,RPLVPTR) 0898 02854000 N @11,@CF01714 0898 02855000 LTR @11,@11 0898 02856000 BZ @RF00898 0898 02857000 * FATALERR=ON; /* REQUEST WILL FAIL @G18MB04*/ 02858000 OI FATALERR(MNSWMPT),B'00010000' 0899 02859000 * ELSE 0900 02860000 * DO; /* MSVC HAS VOLUME @G18MB04*/ 02861000 B @RC00898 0900 02862000 @RF00898 DS 0H 0901 02863000 * MDVOL=ADDR(RPLVUTIL)->MDVOL;/* VOL TO ORIG LIST @G18MB04*/ 02864000 * 0901 02865000 LA @11,132 0901 02866000 LR @07,RPLVPTR 0901 02867000 ALR @07,@11 0901 02868000 MVC MDVOL(6,PARMPTR),MDVOL(@07) 0901 02869000 * /*********************************************************/ 02870000 * /* */ 02871000 * /* OFFER VOLSER TO JES3 VIA SUBSYSTEM INTERFACE @G18MB04*/ 02872000 * /* */ 02873000 * /*********************************************************/ 02874000 * 0902 02875000 * RFY 0902 02876000 * (REG13) RSTD; /* @G18MB04*/ 02877000 * R13SAVE=REG13; /* SAVE OWN REG13 @G18MB04*/ 02878000 ST REG13,R13SAVE(,MNSWMPT) 0903 02879000 * REG13=ADDR(SUBREGS); /* REG13 HAS SAVE AREA @G18MB04*/ 02880000 LA REG13,SUBREGS(,MNSWMPT) 0904 02881000 * NSMSSOB=ADDR(SSOB); /* NEED PTR TO SSOB ADDR @G18MB04*/ 02882000 ST MNSWMPT,NSMSSOB(,MNSWMPT) 0905 02883000 * NSMPHIBT=ON; /* HI-ORDER PARMLIST BIT @G18MB04*/ 02884000 ALR @11,MNSWMPT 0906 02885000 OI NSMPHIBT(@11),B'10000000' 0906 02886000 * REG1=ADDR(NSMSSOB); /* PROVIDE PTR TO SSOB @G18MB04*/ 02887000 * 0907 02888000 LA REG1,NSMSSOB(,MNSWMPT) 0907 02889000 * /*********************************************************/ 02890000 * /* */ 02891000 * /* MACRO ASSEM VERSION USED -- NO AUTO STORAGE @G18MB04*/ 02892000 * /* */ 02893000 * /*********************************************************/ 02894000 * 0908 02895000 * GEN(IEFSSREQ) /* SUBSYS INTERFACE REQ @G18MB04*/ 02896000 * REFS(REG1,REG14,REG15,CVTPTR,CVTJESCT,JESSSREQ) SETS(REG14, 02897000 * REG15); /* 0,1,14,15 DESTROYED @G18MB04*/ 02898000 IEFSSREQ 02899000 * REG13=R13SAVE; /* RESTORE OWN REG 13 @G18MB04*/ 02900000 L REG13,R13SAVE(,MNSWMPT) 0909 02901000 * RFY 0910 02902000 * (REG13) UNRSTD; /* REGS 2-12 SAVED @G18MB04*/ 02903000 * 0910 02904000 * /*********************************************************/ 02905000 * /* */ 02906000 * /* REGISTER 15 HAS RETURN CODE FROM SUBSYSTEM INTERFACE */ 02907000 * /* */ 02908000 * /*********************************************************/ 02909000 * 0911 02910000 * IF REG15=SSRTOK /* DID FUNCTION GET REQ? @G18MB04*/ 02911000 * THEN /* JES3 GOT REQUEST @G18MB04*/ 02912000 SLR @11,@11 0911 02913000 CR REG15,@11 0911 02914000 BNE @RF00911 0911 02915000 * DO; /* SEE CODE FROM JES3 @G18MB04*/ 02916000 * IF SSOBRETN=SSMOVOLA/* DID JES3 LIKE IT ? @G18MB04*/ 02917000 * THEN /* YES, VOL AVAILABLE @G18MB04*/ 02918000 C @11,SSOBRETN(,MNSWMPT) 0913 02919000 BNE @RF00913 0913 02920000 * VOLCHOSN=ON; /* WE WILL USE THIS ONE @G18MB04*/ 02921000 OI VOLCHOSN(MNSWMPT),B'00000100' 0914 02922000 * ELSE /* CODE ISNT VOL.AVAIL. @G18MB04*/ 02923000 * IF SSOBRETN^=SSMOVOLB/* NOT VOL BUSY? @G18MB04*/ 02924000 * THEN /* BAD CODE FROM JES3 @G18MB04*/ 02925000 B @RC00913 0915 02926000 @RF00913 LA @11,4 0915 02927000 C @11,SSOBRETN(,MNSWMPT) 0915 02928000 BE @RF00915 0915 02929000 * DO; /* @G18MB04*/ 02930000 * FATALERR=ON; /* END OF THIS REQUEST @G18MB04*/ 02931000 * CLEANUP=ON; /* TO GET MSVC IN SYNCH @G18MB04*/ 02932000 OI FATALERR(MNSWMPT),B'00011000' 0918 02933000 * RPLRCODE=JES3RCUK;/* UNKNOWN CODE @G18MB04*/ 02934000 MVC RPLRCODE(2,RPLVPTR),@CH00117 0919 02935000 * RPLVRETC=FOUR;/* END OF REQUEST @G18MB04*/ 02936000 STH @11,RPLVRETC(,RPLVPTR) 0920 02937000 * END; /* @G18MB04*/ 02938000 * ELSE /* JES3 SAYS VOL BUSY @G18MB04*/ 02939000 * DO; /* SET UP TO TRY ANOTHER @G18MB04*/ 02940000 B @RC00915 0922 02941000 @RF00915 DS 0H 0923 02942000 * MNTXREJT=MNTXREJT+1;/* COUNT REJECTION @G18MB04*/ 02943000 * 0923 02944000 L @11,MNTEXTP(,PARMPTR) 0923 02945000 LA @07,1 0923 02946000 AL @07,MNTXREJT(,@11) 0923 02947000 ST @07,MNTXREJT(,@11) 0923 02948000 * /***********************************************/ 02949000 * /* */ 02950000 * /* SET UP SO THAT MSVC WILL REMOVE ANY @G18MB04*/ 02951000 * /* RECORD OF THIS CHOICE OF THIS VOLUME, WHILE */ 02952000 * /* IT IS LOOKING FOR ANOTHER @G18MB04*/ 02953000 * /* */ 02954000 * /***********************************************/ 02955000 * 0924 02956000 * RPLRCODE=JES3REJ;/* JES3 SAYS NO @G18MB04*/ 02957000 MVC RPLRCODE(2,RPLVPTR),@CH00109 0924 02958000 * RPLVRETC=FOUR;/* BAD RETURN CODE @G18MB04*/ 02959000 MVC RPLVRETC(2,RPLVPTR),@CH00121 0925 02960000 * RPLFLAGA=''B; /* RESET RPLV @G18MB04*/ 02961000 XC RPLFLAGA(2,RPLVPTR),RPLFLAGA(RPLVPTR) 0926 02962000 * RPLFTIME=ON; /* THIS IS 2ND ENTRY @G18MB04*/ 02963000 OI RPLFTIME(RPLVPTR),B'10000000' 0927 02964000 * NOBACKOU=OFF; /* SET UP TO BACK OUT @G18MB04*/ 02965000 NI NOBACKOU(MNSWMPT),B'11011111' 0928 02966000 * END; /* OF SETUP FOR RETRY @G18MB04*/ 02967000 * END; /* MSVC FUNCTION GOT REQ @G18MB04*/ 02968000 * ELSE /* REQ DIDNT GET THERE @G18MB04*/ 02969000 * DO; /* FIND OUT WHY @G18MB04*/ 02970000 B @RC00911 0931 02971000 @RF00911 DS 0H 0932 02972000 * IF REG15=SSRTNSUP| /* FUNCT NOT SUPPORTED @G18MB04*/ 02973000 * REG15=SSRTNTUP| /* SUBSYS IS, BUT NOT UP @G18MB04*/ 02974000 * REG15=SSRTNOSS /* NO SUCH SUBSYSTEM @G18MB04*/ 02975000 * THEN /* SKIP JES3, NOT THERE @G18MB04*/ 02976000 C REG15,@CF00121 0932 02977000 BE @RT00932 0932 02978000 C REG15,@CF00061 0932 02979000 BE @RT00932 0932 02980000 C REG15,@CF01307 0932 02981000 BNE @RF00932 0932 02982000 @RT00932 DS 0H 0933 02983000 * VOLCHOSN=ON; /* USE THIS VOLUME @G18MB04*/ 02984000 OI VOLCHOSN(MNSWMPT),B'00000100' 0933 02985000 * ELSE /* ERRORS @G18MB04*/ 02986000 * DO; /* INTERROGATE ERRORS @G18MB04*/ 02987000 B @RC00932 0934 02988000 @RF00932 DS 0H 0935 02989000 * FATALERR=ON; /* END OF THIS REQUEST @G18MB04*/ 02990000 * CLEANUP=ON; /* MSVC WILL BACK OUT @G18MB04*/ 02991000 OI FATALERR(MNSWMPT),B'00011000' 0936 02992000 * RPLVRETC=FOUR; /* @G18MB04*/ 02993000 MVC RPLVRETC(2,RPLVPTR),@CH00121 0937 02994000 * IF REG15=SSRTDIST/* SUBSYS DISASTER? @G18MB04*/ 02995000 * THEN /* DISASTROUS ERROR @G18MB04*/ 02996000 C REG15,@CF00068 0938 02997000 BNE @RF00938 0938 02998000 * RPLRCODE=SUBSYSDS;/* SUBSYS DIS.ERROR @G18MB04*/ 02999000 MVC RPLRCODE(2,RPLVPTR),@CH00111 0939 03000000 * ELSE /* ANOTHER ERROR @G18MB04*/ 03001000 * DO; /* @G18MB04*/ 03002000 B @RC00938 0940 03003000 @RF00938 DS 0H 0941 03004000 * IF REG15=SSRTLERR/* LOGICAL ERROR ? @G18MB04*/ 03005000 * THEN /* SUBSYS LOGICAL ERROR @G18MB04*/ 03006000 C REG15,@CF00187 0941 03007000 BNE @RF00941 0941 03008000 * RPLRCODE=SUBSYSLE;/* SUBSYS LOG. @G18MB04*/ 03009000 MVC RPLRCODE(2,RPLVPTR),@CH00113 0942 03010000 * ELSE /* REG15 CONTENT UNKNOWN @G18MB04*/ 03011000 * RPLRCODE=SUBSYSUK;/* UNKNOWN CODE @G18MB04*/ 03012000 B @RC00941 0943 03013000 @RF00941 MVC RPLRCODE(2,RPLVPTR),@CH00115 0943 03014000 * END; /* @G18MB04*/ 03015000 @RC00941 DS 0H 0945 03016000 * END; /* ERROR INTERROGATION @G18MB04*/ 03017000 @RC00938 DS 0H 0946 03018000 * END; /* FINDING OUT WHY @G18MB04*/ 03019000 @RC00932 DS 0H 0947 03020000 * END; /* MSVC HAS VOLUME @G18MB04*/ 03021000 @RC00911 DS 0H 0948 03022000 * END; /* CHOOSING ANOTHER VOLUME 0948 03023000 * @G18MB04*/ 03024000 @RC00898 DS 0H 0948 03025000 @DE00894 TM VOLCHOSN(MNSWMPT),B'00010100' 0948 03026000 BZ @DL00894 0948 03027000 * IF NOMOUNT=ON|FATALERR=ON /* SKIP VOLUME MOUNT ? @G18MB04*/ 03028000 * THEN /* WILL NOT ISSUE MOUNT @G18MB04*/ 03029000 TM NOMOUNT(MNSWMPT),B'01010000' 0949 03030000 BZ @RF00949 0949 03031000 * DO; /* @G18MB04*/ 03032000 * IF CLEANUP=ON /* UPDATE MSVC RECORDS ? @G18MB04*/ 03033000 * THEN /* MSVC RECORDS SHOW UNUSED 0951 03034000 * VOLUME IN USE @G18MB04*/ 03035000 TM CLEANUP(MNSWMPT),B'00001000' 0951 03036000 BNO @RF00951 0951 03037000 * DO; /* SEND CLEANUP RPLV @G18MB04*/ 03038000 * NSMORPLV=RPLVPTR; /* SAVE PTR TO ORIG RPLV @G18MB04*/ 03039000 ST RPLVPTR,NSMORPLV(,MNSWMPT) 0953 03040000 * REG1=RNIO; /* DESIGNATE RECOVERY @G18MB04*/ 03041000 SLR REG1,REG1 0954 03042000 IC REG1,RNIO 0954 03043000 * REG8SAV=REG8; /* SAVE AROUND VQMABEND @G18MB04*/ 03044000 ST REG8,REG8SAV(,MNSWMPT) 0955 03045000 * CALL VQMABEND; /* NEW RPLV,QUED,NO WAIT @G18MB04*/ 03046000 BAL @14,VQMABEND 0956 03047000 * REG8=REG8SAV; /* RESTORE AFTER VQMABEND USE 0957 03048000 * @G18MB04*/ 03049000 L REG8,REG8SAV(,MNSWMPT) 0957 03050000 * RPLVPTR=NSMORPLV; /* BACK TO ORIGINAL RPLV @G18MB04*/ 03051000 L RPLVPTR,NSMORPLV(,MNSWMPT) 0958 03052000 * END; /* CLEANUP @G18MB04*/ 03053000 * END; /* @G18MB04*/ 03054000 * ELSE 0961 03055000 * DO; /* MOUNT CHOSEN VOLUME @G18MB04*/ 03056000 B @RC00949 0961 03057000 @RF00949 DS 0H 0962 03058000 * REG1=ADDR(RPLVUTIL); /* SET RPLV ADDR @G18MB04*/ 03059000 LA REG1,RPLVUTIL(,RPLVPTR) 0962 03060000 * REG1->MDVISMNT=ON; /* SET MSVC MNT ON @G18MB04*/ 03061000 OI MDVISMNT(REG1),B'01000000' 0963 03062000 *LMSSC3: 0964 03063000 * SVC(126); /* INVOKE SVC 126 MOUNT @G18MB04*/ 03064000 LMSSC3 SVC 126 0964 03065000 * REG1->MDVISMNT=OFF; /* SET MSVC MNT OFF @G18MB04*/ 03066000 NI MDVISMNT(REG1),B'10111111' 0965 03067000 * RPLRCODE=REG0; /* REASON CODE @ZA26243*/ 03068000 STH REG0,RPLRCODE(,RPLVPTR) 0966 03069000 * RPLVRETC=REG0; /* RETURN CODE @ZA26243*/ 03070000 STH REG0,RPLVRETC(,RPLVPTR) 0967 03071000 * IF REG15=ZERO THEN /* MOUNT SUCCESSFUL @G18MB04*/ 03072000 LTR REG15,REG15 0968 03073000 BNZ @RF00968 0968 03074000 * DO; /* YES @G18MB04*/ 03075000 * RPLVRETC=EIGHT; /* SET RETURN CODE @G18MB04*/ 03076000 MVC RPLVRETC(2,RPLVPTR),@CH00061 0970 03077000 * SUCCMNT=ON; /* SET SUCCESSFUL MOUNT @G18MB04*/ 03078000 OI SUCCMNT(MNSWMPT),B'00000010' 0971 03079000 * END; /* @G18MB04*/ 03080000 * END; /* TRYING MOUNT @G18MB04*/ 03081000 @RF00968 DS 0H 0974 03082000 * END; /* OF VQMJESMT MAIN LOOP @G18MB04*/ 03083000 @RC00949 DS 0H 0974 03084000 @DE00889 TM NSMFENTY(MNSWMPT),B'10010010' 0974 03085000 BZ @DL00889 0974 03086000 * 0975 03087000 * /*****************************************************************/ 03088000 * /* */ 03089000 * /* NOW MOVE PARAMETERS TO CALLERS ORIGINAL LIST @G18MB04*/ 03090000 * /* */ 03091000 * /*****************************************************************/ 03092000 * 0975 03093000 * REG1=PLENGTH; /* SET LENGTH TO MOVE @G18MB04*/ 03094000 L REG1,PLENGTH(,PARMPTR) 0975 03095000 * REG2=ADDR(RPLVUTIL); /* RPLV ADDRESS @G18MB04*/ 03096000 LA REG2,RPLVUTIL(,RPLVPTR) 0976 03097000 * PARMLIST(1:REG1)=REG2->PARMLIST;/* @G18MB04*/ 03098000 LR @11,REG1 0977 03099000 BCTR @11,0 0977 03100000 EX @11,@SM01710 0977 03101000 * REG2=REG2+PLENGTH; /* ADD ORDER LENGTH @G18MB04*/ 03102000 AL REG2,PLENGTH(,PARMPTR) 0978 03103000 * REG1=LJFCBOX; /* SET JFCB LENGTH ADDR @G18MB04*/ 03104000 LA REG1,176 0979 03105000 * REG3=MNTXJFCB; /* SET JFCB ADDRESS @G18MB04*/ 03106000 L @11,MNTEXTP(,PARMPTR) 0980 03107000 L REG3,MNTXJFCB(,@11) 0980 03108000 * INFMJFCB=MOVELST(1:REG1); /* COPY JFCB BACK @G18MB04*/ 03109000 * 0981 03110000 MVI INFMJFCB+1(REG3),C' ' 0981 03111000 MVC INFMJFCB+2(92,REG3),INFMJFCB+1(REG3) 0981 03112000 LR @11,REG1 0981 03113000 BCTR @11,0 0981 03114000 EX @11,@SM01712 0981 03115000 * /*****************************************************************/ 03116000 * /* */ 03117000 * /* PICK UP RETURN ADDRESS FOR VQMJESMT FROM STORAGE @G18MB04*/ 03118000 * /* ABOUT TO BE FREED, AND PUT IT INTO RESTRICTED REG. WHICH WAS */ 03119000 * /* USED FOR ADDRESSABILITY OF PART OF THAT STORAGE @G18MB04*/ 03120000 * /* */ 03121000 * /*****************************************************************/ 03122000 * 0982 03123000 * MNSWMPT=R14SAVE; /* @G18MB04*/ 03124000 * 0982 03125000 L MNSWMPT,R14SAVE(,MNSWMPT) 0982 03126000 * /*****************************************************************/ 03127000 * /* */ 03128000 * /* FREE RPLV AND OTHER CONTIGUOUS STORAGE OBTAINED IN VQMMOUNT */ 03129000 * /* LENGTH USED IS IN RPLVTLEN, AS SET BY VQMSTOR @G18MB04*/ 03130000 * /* */ 03131000 * /*****************************************************************/ 03132000 * 0983 03133000 * CALL VQMFSTOR; /* @G18MB04*/ 03134000 BAL @14,VQMFSTOR 0983 03135000 * REG14=MNSWMPT; /* RESTORE RETURN ADDR @G18MB04*/ 03136000 LR REG14,MNSWMPT 0984 03137000 * RETURN; /* @G18MB04*/ 03138000 @EL00015 DS 0H 0985 03139000 @EF00015 DS 0H 0985 03140000 @ER00015 BR @14 0985 03141000 * END VQMJESMT; /* END VQMJESMT @G18MB04*/ 03142000 * END ICBVQM00 /* END ICBVQM00 @Y30LB24*/ 03143000 * 0987 03144000 */* THE FOLLOWING INCLUDE STATEMENTS WERE FOUND IN THIS PROGRAM. */ 03145000 */*%INCLUDE SYSLIB (IEZSSC ) */ 03146000 */*%INCLUDE SYSLIB (IHAASVT ) */ 03147000 */*%INCLUDE SYSLIB (IEZVVICB) */ 03148000 */*%INCLUDE SYSLIB (IEZRPLV ) */ 03149000 */*%INCLUDE SYSLIB (CVT ) */ 03150000 */*%INCLUDE SYSLIB (IEFJFCBN) */ 03151000 */*%INCLUDE SYSLIB (IEFJFCBX) */ 03152000 */*%INCLUDE SYSLIB (IEFJSSOB) */ 03153000 */*%INCLUDE SYSLIB (IEFJESCT) */ 03154000 */*%INCLUDE SYSLIB (IEZRVVI ) */ 03155000 */*%INCLUDE SYSLIB (IEZMNTXT) */ 03156000 */*%INCLUDE SYSLIB (IEZINIT ) */ 03157000 * 0987 03158000 * ; 0987 03159000 @DATA DS 0H 03160000 @CH01294 DC H'28' 03161000 @CH01311 DC H'35' 03162000 @CH00109 DC H'609' 03163000 @CH00111 DC H'610' 03164000 @CH00113 DC H'611' 03165000 @CH00115 DC H'612' 03166000 @CH00117 DC H'613' 03167000 @SM01699 MVC RPLVUTIL(0,RPLVPTR),PARMLIST(PARMPTR) 03168000 @SM01706 MVC MOVELST(0,REG2),INFMJFCB(REG3) 03169000 @SM01708 MVC MOVELST(0,REG2),JFCBX(REG3) 03170000 @SM01710 MVC PARMLIST(0,PARMPTR),PARMLIST(REG2) 03171000 @SM01712 MVC INFMJFCB(0,REG3),MOVELST(REG2) 03172000 @SM01715 MVC MOVELST(0,REG2),PARMEXT(REG3) 03173000 @DATD DSECT 03174000 DS 0F 03175000 ICBVQM00 CSECT 03176000 DS 0F 03177000 @CF00121 DC F'4' 03178000 @CH00121 EQU @CF00121+2 03179000 @CF00123 DC F'5' 03180000 @CF00061 DC F'8' 03181000 @CH00061 EQU @CF00061+2 03182000 @CF01307 DC F'12' 03183000 @CF00033 DC F'15' 03184000 @CF00068 DC F'16' 03185000 @CF00187 DC F'20' 03186000 @CF01683 DC F'141' 03187000 @CF00127 DC F'176' 03188000 @CF00129 DC F'256' 03189000 @CF01714 DC XL4'0000FFFF' 03190000 @DATD DSECT 03191000 DS 0D 03192000 ICBVQM00 CSECT 03193000 DS 0F 03194000 @SIZDATD DC AL1(0) 03195000 DC AL3(@ENDDATD-@DATD) 03196000 DS 0D 03197000 RZERO DC XL4'80000000' 03198000 PZERO DC XL4'40000000' 03199000 RVVLEN DC AL2(68) 03200000 INILEN DC AL2(20) 03201000 POOL DC AL1(241) 03202000 EID DC XL1'80' 03203000 RIO DC XL1'40' 03204000 RNIO DC XL1'20' 03205000 CHARSSOB DC CL4'SSOB' 03206000 VQMPATCH DS CL200 03207000 ORG VQMPATCH 03208000 @NM00003 DC CL20'ICBVQM00 PATCH AREA ' 03209000 @NM00004 DC XL180'0' 03210000 ORG VQMPATCH+200 03211000 ICBVQM00 CSECT 03212000 * /*#Y30LB24*/ 03213000 M0 EQU 0 MASK @YM34322 03214000 M8 EQU 8 MASK @YM34322 03215000 M24 EQU 24 MASK @YM34322 03216000 POST EQU 2 03217000 TIME DC F'5120' 03218000 ICBVQM00 CSECT 03219000 * /*#Y30LB24*/ 03220000 MSG1 WTO 'ICB409I GETMAIN FAILURE IN MSVC QUEUE MANAGER', *03221000 ROUTCDE=(2,11),DESC=6,MF=L 03222000 @DATD DSECT 03223000 ORG *+1-(*-@DATD)/(*-@DATD) INSURE DSECT DATA 03224000 @ENDDATD EQU * 03225000 ICBVQM00 CSECT 03226000 @00 EQU 00 EQUATES FOR REGISTERS 0-15 03227000 @01 EQU 01 03228000 @02 EQU 02 03229000 @03 EQU 03 03230000 @04 EQU 04 03231000 @05 EQU 05 03232000 @06 EQU 06 03233000 @07 EQU 07 03234000 @08 EQU 08 03235000 @09 EQU 09 03236000 @10 EQU 10 03237000 @11 EQU 11 03238000 @12 EQU 12 03239000 @13 EQU 13 03240000 @14 EQU 14 03241000 @15 EQU 15 03242000 REG0 EQU @00 03243000 REG1 EQU @01 03244000 REG2 EQU @02 03245000 REG3 EQU @03 03246000 MNSWMPT EQU @04 03247000 RPLVPTR EQU @05 03248000 VVIPTR EQU @06 03249000 REG8 EQU @08 03250000 PARMPTR EQU @09 03251000 PARM0 EQU @10 03252000 REG13 EQU @13 03253000 REG14 EQU @14 03254000 REG15 EQU @15 03255000 FAILCODE EQU @15 03256000 CVOLR1 EQU @01 03257000 DEFVR1 EQU @01 03258000 MCR1 EQU @01 03259000 MDREG1 EQU @01 03260000 NULBR1 EQU @01 03261000 REG11 EQU @11 03262000 REG12 EQU @12 03263000 REG7 EQU @07 03264000 CVTPTR EQU 16 03265000 TCBCHAN EQU 0 03266000 ASCBSAVE EQU TCBCHAN+12 03267000 RVVIPTR EQU 0 03268000 JFCBPTR EQU 0 03269000 JFCBXPTR EQU 0 03270000 INITPTR EQU 0 03271000 ICB2SSCB EQU 0 03272000 ICBOPT EQU ICB2SSCB+48 03273000 ICBFLG EQU ICB2SSCB+52 03274000 ICBFG1 EQU ICBFLG 03275000 ICBVVICB EQU ICB2SSCB+76 03276000 ICBTRACE EQU ICB2SSCB+148 03277000 ASVT EQU 0 03278000 ASVTFRST EQU ASVT+524 03279000 ASVTENTY EQU ASVT+528 03280000 VVICB EQU 0 03281000 VVIUCAT EQU VVICB+4 03282000 VVIFLGA EQU VVICB+15 03283000 VVIFLG0 EQU VVIFLGA 03284000 VVIFLG2 EQU VVIFLGA 03285000 VVIECB1 EQU VVICB+28 03286000 VVIQRPL1 EQU VVICB+40 03287000 VVIQRPL2 EQU VVICB+44 03288000 VVIRES4 EQU VVICB+64 03289000 VVIRES5 EQU VVICB+68 03290000 VVIRES6 EQU VVICB+72 03291000 RPLV EQU 0 03292000 RPLVQPTR EQU RPLV 03293000 RPLVECB EQU RPLV+4 03294000 RPLTCBPR EQU RPLV+8 03295000 RPLASCBP EQU RPLTCBPR 03296000 RPLFLAGA EQU RPLV+28 03297000 RPLFTIME EQU RPLFLAGA 03298000 RPLVPOST EQU RPLFLAGA 03299000 RPLVPROG EQU RPLFLAGA 03300000 RPLVCOMP EQU RPLFLAGA 03301000 RPLVVIN EQU RPLFLAGA 03302000 RPLVVOP EQU RPLFLAGA 03303000 RPLVJRNL EQU RPLFLAGA 03304000 RPLVTLEN EQU RPLV+30 03305000 RPLRCODE EQU RPLV+32 03306000 RPLVRETC EQU RPLV+34 03307000 RPLVSAM EQU RPLV+56 03308000 RPLVOPT EQU RPLVSAM+40 03309000 RPLVRLN EQU RPLVSAM+48 03310000 RPLVUTIL EQU RPLV+132 03311000 CVTMAP EQU 0 03312000 CVTTCBP EQU CVTMAP 03313000 CVTDAR EQU CVTMAP+72 03314000 CVTFLGS1 EQU CVTDAR 03315000 CVTBRET EQU CVTMAP+82 03316000 CVTDCB EQU CVTMAP+116 03317000 CVTIOQET EQU CVTMAP+120 03318000 CVTIERLC EQU CVTMAP+144 03319000 CVTHEAD EQU CVTMAP+160 03320000 CVTSV76C EQU CVTHEAD 03321000 CVTOPTA EQU CVTMAP+182 03322000 CVTOPTB EQU CVTMAP+183 03323000 CVTGTF EQU CVTMAP+236 03324000 CVTGTFST EQU CVTGTF 03325000 CVTGTFS EQU CVTGTFST 03326000 CVTSTATE EQU CVTGTFST 03327000 CVTTMODE EQU CVTGTFST 03328000 CVTFORM EQU CVTGTFST 03329000 CVTAQAVT EQU CVTMAP+240 03330000 CVTTCMFG EQU CVTAQAVT 03331000 CVTVOLM2 EQU CVTMAP+244 03332000 CVTTATA EQU CVTVOLM2 03333000 CVTTSKS EQU CVTTATA 03334000 CVTVOLF2 EQU CVTTSKS 03335000 CVTTAT EQU CVTTATA+1 03336000 CVTATER EQU CVTMAP+248 03337000 CVTEXT1 EQU CVTMAP+252 03338000 CVTPURG EQU CVTMAP+260 03339000 CVTQMSG EQU CVTMAP+268 03340000 CVTDMSR EQU CVTMAP+272 03341000 CVTRSV37 EQU CVTDMSR 03342000 CVTDMSRF EQU CVTRSV37 03343000 CVTJESCT EQU CVTMAP+296 03344000 CVTERPV EQU CVTMAP+316 03345000 CVTINTLA EQU CVTMAP+320 03346000 CVTAPF EQU CVTMAP+324 03347000 CVTEXT2 EQU CVTMAP+328 03348000 CVTHJES EQU CVTMAP+332 03349000 CVTPGSIA EQU CVTMAP+348 03350000 CVTA1F1 EQU CVTMAP+356 03351000 CVTSYSK EQU CVTMAP+357 03352000 CVTVOLM1 EQU CVTMAP+380 03353000 CVTVOLF1 EQU CVTVOLM1 03354000 CVTATMCT EQU CVTMAP+388 03355000 CVTXTNT1 EQU 0 03356000 CVTXTNT2 EQU 0 03357000 CVTDSSV EQU CVTXTNT2 03358000 CVTFLGBT EQU CVTXTNT2+5 03359000 CVTQID EQU CVTXTNT2+24 03360000 CVTICB EQU CVTXTNT2+48 03361000 CVTRV400 EQU CVTXTNT2+52 03362000 CVTRV409 EQU CVTXTNT2+53 03363000 CVTATCVT EQU CVTXTNT2+64 03364000 CVTRV429 EQU CVTXTNT2+84 03365000 CVTRV438 EQU CVTXTNT2+85 03366000 CVTRV457 EQU CVTXTNT2+112 03367000 CVTRV466 EQU CVTXTNT2+113 03368000 CVTFIX EQU 0 03369000 CVTRELNO EQU CVTFIX+252 03370000 INFMJFCB EQU 0 03371000 JFCBDSNM EQU INFMJFCB 03372000 JFCBELNM EQU INFMJFCB+44 03373000 JFCBTSDM EQU INFMJFCB+52 03374000 JFCFCBID EQU INFMJFCB+56 03375000 JFCBFRID EQU JFCFCBID 03376000 JFCBLTYP EQU INFMJFCB+66 03377000 JFCBOTTR EQU INFMJFCB+67 03378000 JFCBUFOF EQU JFCBOTTR 03379000 JFCBFLSQ EQU JFCBOTTR+1 03380000 JFCFUNC EQU JFCBFLSQ 03381000 JFCBMASK EQU INFMJFCB+72 03382000 JFCBFLG1 EQU JFCBMASK+5 03383000 JFCOPEN EQU JFCBFLG1 03384000 JFCBFLG2 EQU JFCBMASK+6 03385000 JFCDEFER EQU JFCBFLG2 03386000 JFCBIND1 EQU INFMJFCB+86 03387000 JFCBIND2 EQU INFMJFCB+87 03388000 JFCAMPTR EQU INFMJFCB+88 03389000 JFCBUFRQ EQU JFCAMPTR 03390000 JFCBUFNO EQU JFCBUFRQ 03391000 JFCBGNCP EQU JFCAMPTR+1 03392000 JFCBHIAR EQU JFCBGNCP 03393000 JFCBFALN EQU JFCBHIAR 03394000 JFCBFTEK EQU JFCBFALN 03395000 JFCBBFTA EQU JFCBFTEK 03396000 JFCEROPT EQU INFMJFCB+92 03397000 JFCTRTCH EQU INFMJFCB+93 03398000 JFCBX EQU 0 03399000 JFCBXNXT EQU JFCBX+172 03400000 SSOB EQU 0 03401000 SSOBID EQU SSOB 03402000 SSOBLEN EQU SSOB+4 03403000 SSOBFUNC EQU SSOB+6 03404000 SSOBRETN EQU SSOB+12 03405000 SSOBINDV EQU SSOB+16 03406000 SSMO EQU 0 03407000 SSMOLEN EQU SSMO 03408000 SSMOFLG1 EQU SSMO+2 03409000 SSMOPNAM EQU SSMO+4 03410000 SSMOPSTN EQU SSMO+8 03411000 SSMOPUAD EQU SSMO+12 03412000 SSMOPVOL EQU SSMO+16 03413000 JESCT EQU 0 03414000 JESWAA EQU JESCT+8 03415000 JESSSREQ EQU JESCT+20 03416000 JESALLOC EQU JESCT+32 03417000 JESUNALC EQU JESCT+36 03418000 JESCATL EQU JESCT+40 03419000 MNSWMSTG EQU 0 03420000 NSMMSSOB EQU MNSWMSTG 03421000 NSMMSSBX EQU MNSWMSTG+20 03422000 REGSAVE EQU MNSWMSTG+48 03423000 SUBREGS EQU REGSAVE 03424000 R14SAVE EQU REGSAVE+72 03425000 R13SAVE EQU REGSAVE+76 03426000 REG8SAV EQU REGSAVE+80 03427000 NSMSSPLS EQU MNSWMSTG+132 03428000 NSMSSOB EQU NSMSSPLS 03429000 NSMORPLV EQU MNSWMSTG+136 03430000 NSMFLAGS EQU MNSWMSTG+140 03431000 NSMFENTY EQU NSMFLAGS 03432000 NOMOUNT EQU NSMFLAGS 03433000 NOBACKOU EQU NSMFLAGS 03434000 FATALERR EQU NSMFLAGS 03435000 CLEANUP EQU NSMFLAGS 03436000 VOLCHOSN EQU NSMFLAGS 03437000 SUCCMNT EQU NSMFLAGS 03438000 NSMPARBT EQU 0 03439000 NSMPHIBT EQU NSMPARBT 03440000 RVVI EQU 0 03441000 RVVOPCOD EQU RVVI+4 03442000 RVVARLN EQU RVVI+22 03443000 RVVAREA EQU RVVI+24 03444000 RVVRTBUF EQU RVVI+32 03445000 RVVFLAGA EQU RVVI+58 03446000 RVVRMODE EQU RVVFLAGA 03447000 RVVCHAIN EQU RVVFLAGA+1 03448000 RVVRDRCD EQU RVVFLAGA+2 03449000 RVVRTEST EQU RVVFLAGA+3 03450000 RVVCPYTP EQU RVVFLAGA+4 03451000 RVVSPEC EQU RVVFLAGA+5 03452000 ICBDVLST EQU 0 03453000 DEFVFLG EQU ICBDVLST+6 03454000 DEFVLIB EQU ICBDVLST+7 03455000 DEFVVFLG EQU ICBDVLST+14 03456000 DEFVCECT EQU DEFVVFLG 03457000 DEFVDATA EQU ICBDVLST+56 03458000 DEFVVEXT EQU ICBDVLST+128 03459000 ICBMCLST EQU 0 03460000 MCRTFLG EQU ICBMCLST+6 03461000 MCRTSCT EQU MCRTFLG 03462000 MCRTLIB EQU ICBMCLST+7 03463000 MCRTVEXT EQU ICBMCLST+44 03464000 ICBCVLST EQU 0 03465000 CVOLFLG EQU ICBCVLST+6 03466000 CVOCRDAS EQU CVOLFLG 03467000 CVOLVEXT EQU ICBCVLST+36 03468000 LSTNULLC EQU 0 03469000 NULFLAGA EQU LSTNULLC+6 03470000 NULSCRC EQU NULFLAGA 03471000 ICBMTLST EQU 0 03472000 MDFLG EQU ICBMTLST+6 03473000 MDVISMNT EQU MDFLG 03474000 MDSRTCH EQU MDFLG 03475000 MDMEXT EQU MDFLG 03476000 MDVOL EQU ICBMTLST+8 03477000 MDVUA EQU ICBMTLST+14 03478000 MNTEXTP EQU ICBMTLST+24 03479000 MDJFCB EQU MNTEXTP 03480000 MNTXT EQU 0 03481000 MNTXJFCB EQU MNTXT 03482000 MNTXJOBN EQU MNTXT+4 03483000 MNTXSTEP EQU MNTXT+8 03484000 MNTXREJT EQU MNTXT+12 03485000 INITVVI EQU 0 03486000 INILNGTH EQU INITVVI 03487000 INITOPCD EQU INITVVI+4 03488000 INIFLAGA EQU INITVVI+5 03489000 INIENABL EQU INIFLAGA 03490000 INIDISAB EQU INIFLAGA 03491000 INIFLAGB EQU INITVVI+6 03492000 INIJRNL EQU INIFLAGB 03493000 INIABLE EQU INIFLAGB 03494000 INIUCAT EQU INITVVI+8 03495000 PARMLIST EQU 0 03496000 ORDER EQU PARMLIST 03497000 PLENGTH EQU ORDER 03498000 OPCODE EQU ORDER+4 03499000 MOVELIST EQU 0 03500000 MOVELST EQU MOVELIST 03501000 PARMLST EQU 0 03502000 PARMEXT EQU PARMLST 03503000 IEFAB4F5 EQU 0 03504000 IEFBB410 EQU 0 03505000 IEFW21SD EQU 0 03506000 SSREQ EQU 0 03507000 SWAMGR EQU 0 03508000 JFCSPPRT EQU JFCTRTCH 03509000 JFCBABFS EQU JFCSPPRT+2 03510000 JFCLIMCT EQU JFCBABFS 03511000 JFCDSORG EQU JFCSPPRT+5 03512000 JFCDSRG1 EQU JFCDSORG 03513000 JFCDSRG2 EQU JFCDSORG+1 03514000 JFCRECFM EQU JFCSPPRT+7 03515000 JFCRCFM EQU JFCRECFM 03516000 JFCOPTCD EQU JFCSPPRT+8 03517000 JFCWVCSP EQU JFCOPTCD 03518000 JFCWVCIS EQU JFCWVCSP 03519000 JFCWVCBD EQU JFCWVCIS 03520000 JFCALLOW EQU JFCOPTCD 03521000 JFCRSV17 EQU JFCALLOW 03522000 JFCOVER EQU JFCRSV17 03523000 JFCPCIBT EQU JFCOPTCD 03524000 JFCMAST EQU JFCPCIBT 03525000 JFCEXT EQU JFCMAST 03526000 JFCBCKPT EQU JFCOPTCD 03527000 JFCIND EQU JFCBCKPT 03528000 JFCRSV18 EQU JFCOPTCD 03529000 JFCCYL EQU JFCRSV18 03530000 JFCACT EQU JFCCYL 03531000 JFCREDUC EQU JFCOPTCD 03532000 JFCRSV19 EQU JFCREDUC 03533000 JFCRSV20 EQU JFCRSV19 03534000 JFCRSV21 EQU JFCOPTCD 03535000 JFCDEL EQU JFCRSV21 03536000 JFCOPTJ EQU JFCOPTCD 03537000 JFCREORG EQU JFCOPTJ 03538000 JFCBLKSI EQU JFCSPPRT+9 03539000 JFCBUFSI EQU JFCBLKSI 03540000 JFCAMSYN EQU JFCSPPRT+11 03541000 JFCNCP EQU JFCAMSYN+2 03542000 JFCNTM EQU JFCAMSYN+3 03543000 JFCBFSEQ EQU JFCNTM 03544000 JFCPCI EQU JFCBFSEQ 03545000 JFCRESRV EQU JFCAMSYN+4 03546000 JFCUCSEG EQU JFCRESRV 03547000 JFCUCSOP EQU JFCUCSEG+4 03548000 JFCOUTLI EQU JFCUCSEG+5 03549000 JFCTHRSH EQU JFCOUTLI 03550000 JFCCPRI EQU JFCTHRSH 03551000 JFCBNVOL EQU JFCUCSEG+9 03552000 JFCBVOLS EQU JFCUCSEG+10 03553000 NVOL EQU JFCBNVOL 03554000 JFCBS001 EQU JFCBVOLS 03555000 JFCBEXAD EQU JFCBS001+31 03556000 JFCBPQTY EQU JFCBS001+34 03557000 JFCBCTRI EQU JFCBS001+37 03558000 JFCBMSGP EQU JFCBCTRI 03559000 JFCBSQTY EQU JFCBS001+38 03560000 JFCFLGS1 EQU JFCBS001+41 03561000 JFCBSPNM EQU JFCBS001+45 03562000 JFCBFLG3 EQU JFCBSPNM 03563000 EXAD EQU JFCBEXAD 03564000 CVTS01 EQU CVTPGSIA 03565000 CVTLPDIA EQU CVTS01+12 03566000 CVTDIRST EQU CVTLPDIA 03567000 CVTSLIDA EQU CVTS01+24 03568000 CVTCTLFG EQU CVTS01+50 03569000 CVTASVT EQU CVTS01+208 03570000 CVTRV210 EQU CVTS01+424 03571000 CVTRV219 EQU CVTS01+425 03572000 CVTRV228 EQU CVTS01+426 03573000 CVTRV237 EQU CVTS01+427 03574000 CVTMFRTR EQU CVTS01+452 03575000 CVTRV262 EQU CVTS01+468 03576000 CVTRV271 EQU CVTS01+469 03577000 CVTRV280 EQU CVTS01+470 03578000 CVTRV289 EQU CVTS01+471 03579000 CVTGSDA EQU CVTS01+600 03580000 ASVTPTR EQU CVTASVT 03581000 JFCKEYLE EQU JFCTRTCH 03582000 JFCCODE EQU JFCKEYLE 03583000 JFCSTACK EQU JFCTRTCH 03584000 JFCMODE EQU JFCSTACK 03585000 ICBPTR EQU CVTICB 03586000 AGO .@UNREFD START UNREFERENCED COMPONENTS 03587000 JFCONE EQU JFCMODE 03588000 JFCTWO EQU JFCMODE 03589000 JFCRSV07 EQU JFCMODE 03590000 JFCRSV06 EQU JFCMODE 03591000 JFCMODER EQU JFCMODE 03592000 JFCMODEO EQU JFCMODE 03593000 JFCEBCD EQU JFCMODE 03594000 JFCBIN EQU JFCMODE 03595000 JFCRSV32 EQU JFCCODE 03596000 JFCTTY EQU JFCCODE 03597000 JFCASCII EQU JFCCODE 03598000 JFCNCR EQU JFCCODE 03599000 JFCBUR EQU JFCCODE 03600000 JFCFRI EQU JFCCODE 03601000 JFCBCD EQU JFCCODE 03602000 JFCNOCON EQU JFCCODE 03603000 CVTRV628 EQU CVTS01+728 03604000 CVTRV627 EQU CVTS01+724 03605000 CVTRV626 EQU CVTS01+720 03606000 CVTRV625 EQU CVTS01+716 03607000 CVTRV624 EQU CVTS01+712 03608000 CVTRV623 EQU CVTS01+708 03609000 CVTRV622 EQU CVTS01+704 03610000 CVTRV621 EQU CVTS01+700 03611000 CVTIHASU EQU CVTS01+696 03612000 CVTRV619 EQU CVTS01+692 03613000 CVTRV618 EQU CVTS01+688 03614000 CVTRV617 EQU CVTS01+684 03615000 CVTRV616 EQU CVTS01+680 03616000 CVTRV615 EQU CVTS01+676 03617000 CVTRV614 EQU CVTS01+672 03618000 CVTRV613 EQU CVTS01+668 03619000 CVTTCASP EQU CVTS01+664 03620000 CVT0PT03 EQU CVTS01+660 03621000 CVT0PT0E EQU CVTS01+656 03622000 CVTRV609 EQU CVTS01+652 03623000 CVTCGK EQU CVTS01+648 03624000 CVTRAC EQU CVTS01+644 03625000 CVTRV606 EQU CVTS01+640 03626000 CVTRV605 EQU CVTS01+636 03627000 CVTRV604 EQU CVTS01+632 03628000 CVTEFF02 EQU CVTS01+628 03629000 CVTCBBR EQU CVTS01+624 03630000 CVTSSCR EQU CVTS01+620 03631000 CVTEVENT EQU CVTS01+616 03632000 CVTCRCA EQU CVTS01+612 03633000 CVTTPIO EQU CVTS01+608 03634000 CVTADV EQU CVTS01+604 03635000 CVTGSDAB EQU CVTGSDA 03636000 CVTQV3 EQU CVTS01+596 03637000 CVTQV2 EQU CVTS01+592 03638000 CVTQV1 EQU CVTS01+588 03639000 CVTRPT EQU CVTS01+584 03640000 CVTSSRB EQU CVTS01+580 03641000 CVTCSDRL EQU CVTS01+576 03642000 CVTEXP1 EQU CVTS01+572 03643000 CVTRMPMT EQU CVTS01+568 03644000 CVTRMPTT EQU CVTS01+564 03645000 CVTVPSA EQU CVTS01+560 03646000 CVTVSTOP EQU CVTS01+556 03647000 CVTGTFR8 EQU CVTS01+552 03648000 CVTQUIT EQU CVTS01+548 03649000 CVTVACR EQU CVTS01+544 03650000 CVTWTCB EQU CVTS01+540 03651000 CVTSTPRS EQU CVTS01+536 03652000 CVT0PT02 EQU CVTS01+532 03653000 CVTDARCM EQU CVTS01+528 03654000 CVTIRECM EQU CVTS01+524 03655000 CVTJRECM EQU CVTS01+520 03656000 CVTVEMS0 EQU CVTS01+516 03657000 CVTSPFRR EQU CVTS01+512 03658000 CVTRLSTG EQU CVTS01+508 03659000 CVT0TC0A EQU CVTS01+504 03660000 CVTGMBR EQU CVTS01+500 03661000 CVTLFRM EQU CVTS01+496 03662000 CVTRMBR EQU CVTS01+492 03663000 CVTVIOP EQU CVTS01+488 03664000 CVTRV307 EQU CVTS01+486 03665000 CVTRV306 EQU CVTS01+484 03666000 CVTRV305 EQU CVTS01+482 03667000 CVTRV304 EQU CVTS01+480 03668000 CVTRV303 EQU CVTS01+478 03669000 CVTRV302 EQU CVTS01+476 03670000 CVTTRCA EQU CVTS01+472 03671000 CVTRV297 EQU CVTRV289 03672000 CVTRV296 EQU CVTRV289 03673000 CVTRV295 EQU CVTRV289 03674000 CVTRV294 EQU CVTRV289 03675000 CVTRV293 EQU CVTRV289 03676000 CVTRV292 EQU CVTRV289 03677000 CVTRV291 EQU CVTRV289 03678000 CVTRV290 EQU CVTRV289 03679000 CVTRV288 EQU CVTRV280 03680000 CVTRV287 EQU CVTRV280 03681000 CVTRV286 EQU CVTRV280 03682000 CVTRV285 EQU CVTRV280 03683000 CVTRV284 EQU CVTRV280 03684000 CVTRV283 EQU CVTRV280 03685000 CVTRV282 EQU CVTRV280 03686000 CVTRV281 EQU CVTRV280 03687000 CVTRV279 EQU CVTRV271 03688000 CVTRV278 EQU CVTRV271 03689000 CVTRV277 EQU CVTRV271 03690000 CVTRV276 EQU CVTRV271 03691000 CVTRV275 EQU CVTRV271 03692000 CVTRV274 EQU CVTRV271 03693000 CVTRV273 EQU CVTRV271 03694000 CVTRV272 EQU CVTRV271 03695000 CVTRV270 EQU CVTRV262 03696000 CVTRV269 EQU CVTRV262 03697000 CVTRV268 EQU CVTRV262 03698000 CVTRV267 EQU CVTRV262 03699000 CVTRV266 EQU CVTRV262 03700000 CVTRV265 EQU CVTRV262 03701000 CVTRV264 EQU CVTRV262 03702000 CVTRV263 EQU CVTRV262 03703000 CVTVFP EQU CVTS01+464 03704000 CVTVSI EQU CVTS01+460 03705000 CVTVPSIB EQU CVTS01+456 03706000 CVTMFACT EQU CVTMFRTR 03707000 CVTMFCTL EQU CVTS01+448 03708000 CVTPVBP EQU CVTS01+444 03709000 CVTPWI EQU CVTS01+440 03710000 CVTRV254 EQU CVTS01+438 03711000 CVTRV253 EQU CVTS01+436 03712000 CVTRV252 EQU CVTS01+434 03713000 CVTRV251 EQU CVTS01+433 03714000 CVTRV250 EQU CVTS01+432 03715000 CVTRV249 EQU CVTS01+431 03716000 CVTRV248 EQU CVTS01+430 03717000 CVTRV247 EQU CVTS01+429 03718000 CVTRV246 EQU CVTS01+428 03719000 CVTRV245 EQU CVTRV237 03720000 CVTRV244 EQU CVTRV237 03721000 CVTRV243 EQU CVTRV237 03722000 CVTRV242 EQU CVTRV237 03723000 CVTRV241 EQU CVTRV237 03724000 CVTRV240 EQU CVTRV237 03725000 CVTRV239 EQU CVTRV237 03726000 CVTRV238 EQU CVTRV237 03727000 CVTRV236 EQU CVTRV228 03728000 CVTRV235 EQU CVTRV228 03729000 CVTRV234 EQU CVTRV228 03730000 CVTRV233 EQU CVTRV228 03731000 CVTRV232 EQU CVTRV228 03732000 CVTRV231 EQU CVTRV228 03733000 CVTRV230 EQU CVTRV228 03734000 CVTRV229 EQU CVTRV228 03735000 CVTRV227 EQU CVTRV219 03736000 CVTRV226 EQU CVTRV219 03737000 CVTRV225 EQU CVTRV219 03738000 CVTRV224 EQU CVTRV219 03739000 CVTRV223 EQU CVTRV219 03740000 CVTRV222 EQU CVTRV219 03741000 CVTRV221 EQU CVTRV219 03742000 CVTRV220 EQU CVTRV219 03743000 CVTRV218 EQU CVTRV210 03744000 CVTRV217 EQU CVTRV210 03745000 CVTRV216 EQU CVTRV210 03746000 CVTRV215 EQU CVTRV210 03747000 CVTRV214 EQU CVTRV210 03748000 CVTRV213 EQU CVTRV210 03749000 CVTRV212 EQU CVTRV210 03750000 CVTRV211 EQU CVTRV210 03751000 CVTLCCAT EQU CVTS01+420 03752000 CVTPCCAT EQU CVTS01+416 03753000 CVTIPCRP EQU CVTS01+412 03754000 CVTIPCRI EQU CVTS01+408 03755000 CVTIPCDS EQU CVTS01+404 03756000 CVTAIDVT EQU CVTS01+400 03757000 CVTSSAP EQU CVTS01+396 03758000 CVTEHCIR EQU CVTS01+392 03759000 CVTEHDEF EQU CVTS01+388 03760000 CVTDAIR EQU CVTS01+384 03761000 CVTPERFM EQU CVTS01+380 03762000 CVT044R2 EQU CVTS01+376 03763000 CVTFETCH EQU CVTS01+372 03764000 CVTRSTWD EQU CVTS01+368 03765000 CVTSPOST EQU CVTS01+364 03766000 CVTIOBP EQU CVTS01+360 03767000 CVTASMVT EQU CVTS01+356 03768000 CVTRECRQ EQU CVTS01+352 03769000 CVTWSAC EQU CVTS01+348 03770000 CVTRV149 EQU CVTS01+344 03771000 CVTWSAL EQU CVTS01+340 03772000 CVTSPSA EQU CVTS01+336 03773000 CVTGLMN EQU CVTS01+332 03774000 CVTVEAC0 EQU CVTS01+328 03775000 CVT062R1 EQU CVTS01+324 03776000 CVTRPOST EQU CVTS01+320 03777000 CVTDQIQE EQU CVTS01+316 03778000 CVTCSD EQU CVTS01+312 03779000 CVTLKRMA EQU CVTS01+308 03780000 CVTRSPIE EQU CVTS01+304 03781000 CVTRENQ EQU CVTS01+300 03782000 CVTLQCB EQU CVTS01+296 03783000 CVTFQCB EQU CVTS01+292 03784000 CVTQCS01 EQU CVTS01+288 03785000 CVTAPFT EQU CVTS01+284 03786000 CVTPARRL EQU CVTS01+280 03787000 CVTVWAIT EQU CVTS01+276 03788000 CVTGSPL EQU CVTS01+272 03789000 CVTLSMQ EQU CVTS01+268 03790000 CVTGSMQ EQU CVTS01+264 03791000 CVTEXPRO EQU CVTS01+260 03792000 CVTOPCTP EQU CVTS01+256 03793000 CVTSIC EQU CVTS01+252 03794000 CVTTPIOS EQU CVTS01+248 03795000 CVTRTMS EQU CVTS01+244 03796000 CVTSDBF EQU CVTS01+240 03797000 CVTSCBP EQU CVTS01+236 03798000 CVTSDMP EQU CVTS01+232 03799000 CVTSV60 EQU CVTS01+228 03800000 CVTRTMCT EQU CVTS01+224 03801000 CVTASCBL EQU CVTS01+220 03802000 CVTASCBH EQU CVTS01+216 03803000 CVTGDA EQU CVTS01+212 03804000 CVTVVMDI EQU CVTS01+204 03805000 CVTAQTOP EQU CVTS01+200 03806000 CVTIOSCS EQU CVTS01+196 03807000 CVTSDRM EQU CVTS01+192 03808000 CVTOPTE EQU CVTS01+188 03809000 CVTSTXU EQU CVTS01+184 03810000 CVTQUIS EQU CVTS01+180 03811000 CVTPARS EQU CVTS01+176 03812000 CVTS1EE EQU CVTS01+172 03813000 CVTFRAS EQU CVTS01+168 03814000 CVTQSAS EQU CVTS01+164 03815000 CVTCRAS EQU CVTS01+160 03816000 CVTCRMN EQU CVTS01+156 03817000 CVTDELCP EQU CVTS01+152 03818000 CVTFRECL EQU CVTS01+148 03819000 CVTGETCL EQU CVTS01+144 03820000 CVTBLDCP EQU CVTS01+140 03821000 CVTAUTHL EQU CVTS01+136 03822000 CVTSCAN EQU CVTS01+132 03823000 CVTRV144 EQU CVTS01+130 03824000 CVTMAXMP EQU CVTS01+128 03825000 CVTSTCK EQU CVTS01+124 03826000 CVTRV139 EQU CVTS01+123 03827000 CVTDSSAC EQU CVTS01+122 03828000 CVTRV513 EQU CVTS01+121 03829000 CVTIOSPL EQU CVTS01+120 03830000 CVTPTGT EQU CVTS01+116 03831000 CVTCSPIE EQU CVTS01+112 03832000 CVTSMFEX EQU CVTS01+108 03833000 CVTOLT0A EQU CVTS01+104 03834000 CVTSRBRT EQU CVTS01+100 03835000 CVTPUTL EQU CVTS01+96 03836000 CVTASCRL EQU CVTS01+92 03837000 CVTASCRF EQU CVTS01+88 03838000 CVTRV326 EQU CVTS01+84 03839000 CVTRV325 EQU CVTS01+80 03840000 CVTRV324 EQU CVTS01+76 03841000 CVT0VL01 EQU CVTS01+72 03842000 CVTSHRVM EQU CVTS01+68 03843000 CVTRV332 EQU CVTS01+64 03844000 CVTTAS EQU CVTS01+60 03845000 CVTRSCN EQU CVTS01+56 03846000 CVTTRAC2 EQU CVTS01+54 03847000 CVTTRACE EQU CVTS01+52 03848000 CVTAPG EQU CVTS01+51 03849000 CVTSDTRC EQU CVTCTLFG 03850000 CVTGTRCE EQU CVTCTLFG 03851000 CVTNOMP EQU CVTCTLFG 03852000 CVTRSV79 EQU CVTCTLFG 03853000 CVTDSTAT EQU CVTCTLFG 03854000 CVTRSV78 EQU CVTCTLFG 03855000 CVTRV333 EQU CVTCTLFG 03856000 CVTRV323 EQU CVTCTLFG 03857000 CVTSPVLK EQU CVTS01+49 03858000 CVTRSV77 EQU CVTS01+48 03859000 CVTRV331 EQU CVTS01+44 03860000 CVTRV330 EQU CVTS01+40 03861000 CVTRV329 EQU CVTS01+36 03862000 CVTRV328 EQU CVTS01+32 03863000 CVTRV322 EQU CVTS01+28 03864000 CVTSLID EQU CVTSLIDA+1 03865000 CVTSYLK EQU CVTSLIDA 03866000 CVTRV321 EQU CVTS01+20 03867000 CVTRV320 EQU CVTS01+16 03868000 CVTLPDIR EQU CVTLPDIA+1 03869000 CVTRSV69 EQU CVTDIRST 03870000 CVTRSV68 EQU CVTDIRST 03871000 CVTRSV67 EQU CVTDIRST 03872000 CVTRSV66 EQU CVTDIRST 03873000 CVTRSV65 EQU CVTDIRST 03874000 CVTRSV64 EQU CVTDIRST 03875000 CVTRSV63 EQU CVTDIRST 03876000 CVTDICOM EQU CVTDIRST 03877000 CVTPVTP EQU CVTS01+8 03878000 CVTLPDSR EQU CVTS01+4 03879000 CVTGETL EQU CVTS01 03880000 JFCBEND EQU JFCBS001+58 03881000 JFCBSPTN EQU JFCBS001+57 03882000 JFCBVLCT EQU JFCBS001+56 03883000 JFCBDRLH EQU JFCBS001+53 03884000 JFCBSBNM EQU JFCBS001+50 03885000 JFCBABST EQU JFCBS001+48 03886000 JFCBRV08 EQU JFCBSPNM+1 03887000 JFCBRV07 EQU JFCBFLG3 03888000 JFCBRV06 EQU JFCBFLG3 03889000 JFCBRV05 EQU JFCBFLG3 03890000 JFCBRV04 EQU JFCBFLG3 03891000 JFCBRV03 EQU JFCBFLG3 03892000 JFCBRV02 EQU JFCBFLG3 03893000 JFCBRV01 EQU JFCBFLG3 03894000 JFCDQDSP EQU JFCBFLG3 03895000 JFCBDQTY EQU JFCBS001+42 03896000 JFCBUAFF EQU JFCFLGS1 03897000 JFCRSV45 EQU JFCFLGS1 03898000 JFCVRDS EQU JFCFLGS1 03899000 JFCBCEOV EQU JFCFLGS1 03900000 JFCRSV42 EQU JFCFLGS1 03901000 JFCBADSP EQU JFCFLGS1 03902000 JFCTOPEN EQU JFCFLGS1 03903000 JFCBDLET EQU JFCFLGS1 03904000 JFCRQID EQU JFCBSQTY 03905000 JFCROUND EQU JFCBCTRI 03906000 JFCALX EQU JFCBCTRI 03907000 JFCMIXG EQU JFCBCTRI 03908000 JFCONTIG EQU JFCBCTRI 03909000 JFCRSV29 EQU JFCBCTRI 03910000 JFCBSPAC EQU JFCBCTRI 03911000 JFCRUNIT EQU JFCBPQTY 03912000 JFCBEXTL EQU JFCBS001+30 03913000 JFCMSVGP EQU JFCBS001+22 03914000 @NM00019 EQU JFCBS001 03915000 JFCAVOLS EQU JFCBVOLS 03916000 JFCBNTCS EQU JFCUCSEG+8 03917000 JFCSOWA EQU JFCOUTLI+1 03918000 JFCSEND EQU JFCCPRI 03919000 JFCEQUAL EQU JFCCPRI 03920000 JFCRECV EQU JFCCPRI 03921000 JFCRSV34 EQU JFCCPRI 03922000 JFCRSV33 EQU JFCCPRI 03923000 JFCRSV55 EQU JFCCPRI 03924000 JFCRSV54 EQU JFCCPRI 03925000 JFCRSV53 EQU JFCCPRI 03926000 JFCRSV27 EQU JFCUCSOP 03927000 JFCRSV26 EQU JFCUCSOP 03928000 JFCFCBVR EQU JFCUCSOP 03929000 JFCFCBAL EQU JFCUCSOP 03930000 JFCVER EQU JFCUCSOP 03931000 JFCRSV25 EQU JFCUCSOP 03932000 JFCFOLD EQU JFCUCSOP 03933000 JFCBEXTP EQU JFCUCSOP 03934000 JFCUCSID EQU JFCUCSEG 03935000 JFCINTVL EQU JFCSPPRT+19 03936000 JFCDBUFN EQU JFCRESRV+3 03937000 JFCCYLOF EQU JFCRESRV+2 03938000 JFCRKP EQU JFCRESRV 03939000 JFCPCIR2 EQU JFCPCI 03940000 JFCPCIR1 EQU JFCPCI 03941000 JFCPCIN2 EQU JFCPCI 03942000 JFCPCIN1 EQU JFCPCI 03943000 JFCPCIA2 EQU JFCPCI 03944000 JFCPCIA1 EQU JFCPCI 03945000 JFCPCIX2 EQU JFCPCI 03946000 JFCPCIX1 EQU JFCPCI 03947000 JFCBUFMX EQU JFCNCP 03948000 JFCLRECL EQU JFCAMSYN 03949000 JFCBAXBF EQU JFCBUFSI 03950000 JFCREL EQU JFCREORG 03951000 JFCRSV22 EQU JFCDEL 03952000 JFCSRCHD EQU JFCRSV20 03953000 JFCOPTQ EQU JFCACT 03954000 JFCFEED EQU JFCIND 03955000 JFCCBWU EQU JFCEXT 03956000 JFCWUMSG EQU JFCOVER 03957000 JFCSDNAM EQU JFCWVCBD 03958000 @NM00018 EQU JFCRECFM 03959000 JFCCHAR EQU JFCRECFM 03960000 JFCRFS EQU JFCRECFM 03961000 JFCRFB EQU JFCRECFM 03962000 JFCRFO EQU JFCRCFM 03963000 JFCFMREC EQU JFCRCFM 03964000 JFCRSV16 EQU JFCDSRG2 03965000 JFCRSV15 EQU JFCDSRG2 03966000 JFCORGTR EQU JFCDSRG2 03967000 JFCORGAM EQU JFCDSRG2 03968000 JFCRSV13 EQU JFCDSRG2 03969000 JFCORGTQ EQU JFCDSRG2 03970000 JFCORGTX EQU JFCDSRG2 03971000 JFCORGGS EQU JFCDSRG2 03972000 JFCORGU EQU JFCDSRG1 03973000 JFCORGPO EQU JFCDSRG1 03974000 JFCORGMQ EQU JFCDSRG1 03975000 JFCORGCQ EQU JFCDSRG1 03976000 JFCORGCX EQU JFCDSRG1 03977000 JFCORGDA EQU JFCDSRG1 03978000 JFCORGPS EQU JFCDSRG1 03979000 JFCORGIS EQU JFCDSRG1 03980000 JFCTRKBL EQU JFCLIMCT+1 03981000 @NM00017 EQU JFCLIMCT 03982000 JFCDEN EQU JFCSPPRT+1 03983000 JFCPRTSP EQU JFCSPPRT 03984000 @NM00051 EQU INITVVI+16 03985000 INIVCODE EQU INITVVI+7 03986000 @NM00050 EQU INIFLAGB 03987000 INIRESTR EQU INIFLAGB 03988000 INIVERFY EQU INIFLAGB 03989000 @NM00049 EQU INIFLAGA 03990000 ININIT EQU INIFLAGA 03991000 @NM00048 EQU ICBMTLST+21 03992000 MDHOST EQU ICBMTLST+16 03993000 @NM00047 EQU MDFLG 03994000 MDVSVRQ EQU MDFLG 03995000 @NM00046 EQU MDFLG 03996000 @NM00045 EQU ICBMTLST+5 03997000 MDOPCD EQU ICBMTLST+4 03998000 MDLEN EQU ICBMTLST 03999000 NULRES2 EQU LSTNULLC+32 04000000 NULCSN EQU LSTNULLC+20 04001000 NULECB EQU LSTNULLC+16 04002000 NULASID EQU LSTNULLC+14 04003000 NULVOLID EQU LSTNULLC+8 04004000 @NM00044 EQU NULFLAGA 04005000 NULCART2 EQU NULFLAGA 04006000 NULCART1 EQU NULFLAGA 04007000 @NM00043 EQU NULFLAGA 04008000 NULTRAN EQU NULFLAGA 04009000 NULVOL EQU NULFLAGA 04010000 NULRES1 EQU LSTNULLC+5 04011000 NULORDER EQU LSTNULLC+4 04012000 NULENGTH EQU LSTNULLC 04013000 CVOLRES2 EQU ICBCVLST+34 04014000 CVOLRUA EQU ICBCVLST+32 04015000 CVOLCSN EQU ICBCVLST+20 04016000 CVOLECB EQU ICBCVLST+16 04017000 CVOLASID EQU ICBCVLST+14 04018000 CVOLID EQU ICBCVLST+8 04019000 @NM00042 EQU CVOLFLG 04020000 CVOCRCRV EQU CVOLFLG 04021000 CVOCRCR EQU CVOLFLG 04022000 CVODASCR EQU CVOLFLG 04023000 CVOLRES1 EQU ICBCVLST+5 04024000 CVOLOPCD EQU ICBCVLST+4 04025000 CVOLLEN EQU ICBCVLST 04026000 MCRTECB EQU ICBMCLST+40 04027000 MCRTASID EQU ICBMCLST+38 04028000 MCRTRES4 EQU ICBMCLST+36 04029000 MCRTCSN EQU ICBMCLST+24 04030000 MCRTRES3 EQU ICBMCLST+16 04031000 MCRTRES2 EQU ICBMCLST+8 04032000 MCRTLD EQU MCRTLIB 04033000 @NM00041 EQU MCRTLIB 04034000 @NM00040 EQU MCRTFLG 04035000 MCRTTRAN EQU MCRTFLG 04036000 @NM00039 EQU MCRTFLG 04037000 MCRTRES1 EQU ICBMCLST+5 04038000 MCRTOPCD EQU ICBMCLST+4 04039000 MCRTLEN EQU ICBMCLST 04040000 DEFTLAB EQU DEFVDATA+71 04041000 DEFR60 EQU DEFVDATA+43 04042000 DEFOWNID EQU DEFVDATA+29 04043000 DEFR55 EQU DEFVDATA+3 04044000 DEFACSEC EQU DEFVDATA+2 04045000 DEFR50 EQU DEFVDATA 04046000 DEFVECB EQU ICBDVLST+52 04047000 DEFVASID EQU ICBDVLST+50 04048000 @NM00038 EQU ICBDVLST+48 04049000 DEFVCSN2 EQU ICBDVLST+36 04050000 DEFVCSN1 EQU ICBDVLST+24 04051000 @NM00037 EQU ICBDVLST+22 04052000 DEFVNVOL EQU ICBDVLST+16 04053000 @NM00036 EQU ICBDVLST+15 04054000 @NM00035 EQU DEFVVFLG 04055000 DEFVWINH EQU DEFVVFLG 04056000 DEFVBIND EQU DEFVVFLG 04057000 @NM00034 EQU DEFVVFLG 04058000 DEFVEXCL EQU DEFVVFLG 04059000 DEFVSEC EQU DEFVVFLG 04060000 @NM00033 EQU DEFVVFLG 04061000 DEFVOLD EQU ICBDVLST+8 04062000 DEFVLID EQU DEFVLIB 04063000 @NM00032 EQU DEFVLIB 04064000 DEFVDACT EQU DEFVFLG 04065000 DEFVACT EQU DEFVFLG 04066000 DEFVRNTR EQU DEFVFLG 04067000 DEFVELTR EQU DEFVFLG 04068000 DEFVREP EQU DEFVFLG 04069000 DEFVRNM EQU DEFVFLG 04070000 DEFVELM EQU DEFVFLG 04071000 DEFVCR EQU DEFVFLG 04072000 @NM00031 EQU ICBDVLST+5 04073000 DEFVOPCD EQU ICBDVLST+4 04074000 DEFVLEN EQU ICBDVLST 04075000 @NM00030 EQU RVVI+64 04076000 RVVSVOL EQU RVVSPEC 04077000 RVVSDUP EQU RVVSPEC 04078000 RVVSCPY EQU RVVSPEC 04079000 RVVSCSN EQU RVVSPEC 04080000 RVVSSEQ EQU RVVSPEC 04081000 RVVSDTE EQU RVVSPEC 04082000 RVVSEXP EQU RVVSPEC 04083000 RVVSGRP EQU RVVSPEC 04084000 @NM00029 EQU RVVCPYTP 04085000 RVVCPLHD EQU RVVCPYTP 04086000 RVVLCOPY EQU RVVCPYTP 04087000 RVVOBKUP EQU RVVCPYTP 04088000 RVVLBKUP EQU RVVCPYTP 04089000 RVVBPLHD EQU RVVRTEST 04090000 RVVDVOL EQU RVVRTEST 04091000 RVVACTV EQU RVVRTEST 04092000 RVVINACT EQU RVVRTEST 04093000 RVVRSTD EQU RVVRTEST 04094000 RVVGSVOL EQU RVVRTEST 04095000 RVVTHOLD EQU RVVRTEST 04096000 RVVEXPDT EQU RVVRTEST 04097000 RVVALL EQU RVVRDRCD 04098000 RVVCPURC EQU RVVRDRCD 04099000 RVVCIRCD EQU RVVRDRCD 04100000 RVVRUNKN EQU RVVRDRCD 04101000 RVVDUPRC EQU RVVRDRCD 04102000 RVVCPYRC EQU RVVRDRCD 04103000 RVVGRPRC EQU RVVRDRCD 04104000 RVVBVRCD EQU RVVRDRCD 04105000 @NM00028 EQU RVVCHAIN 04106000 RVVNGVOL EQU RVVCHAIN 04107000 RVVGPVOL EQU RVVCHAIN 04108000 @NM00027 EQU RVVRMODE 04109000 RVVRDCH EQU RVVRMODE 04110000 RVVRDNR EQU RVVRMODE 04111000 RVVRDR EQU RVVRMODE 04112000 RVVDUPID EQU RVVI+57 04113000 RVVCPYID EQU RVVI+56 04114000 RVVRDCSN EQU RVVI+44 04115000 RVVRDSEQ EQU RVVI+43 04116000 RVVBLNK1 EQU RVVI+42 04117000 RVVCDATE EQU RVVI+38 04118000 RVVEXPIR EQU RVVI+36 04119000 RVVBUFLN EQU RVVI+30 04120000 @NM00026 EQU RVVI+28 04121000 RVVGROUP EQU RVVI+14 04122000 RVVOLUME EQU RVVI+8 04123000 @NM00025 EQU RVVOPCOD+1 04124000 RVVCODE EQU RVVOPCOD 04125000 RVVLNGTH EQU RVVI 04126000 JESPJESN EQU JESCT+28 04127000 JESSSCT EQU JESCT+24 04128000 JESRESQM EQU JESCT+16 04129000 JESQMGR EQU JESCT+12 04130000 JESUNITS EQU JESCT+4 04131000 @NM00024 EQU JESCT 04132000 SSMOPRPN EQU SSMO+24 04133000 SSMOPDDN EQU SSMO+20 04134000 SSMORSV0 EQU SSMO+3 04135000 @NM00023 EQU SSMOFLG1 04136000 SSMOMNTD EQU SSMOFLG1 04137000 SSMORUSE EQU SSMOFLG1 04138000 SSMOSCR EQU SSMOFLG1 04139000 SSMOFINL EQU SSMOFLG1 04140000 SSMOOPEN EQU SSMOFLG1 04141000 SSOBSSIB EQU SSOB+8 04142000 @NM00022 EQU JFCBX+144 04143000 JFCBXDEV EQU JFCBX+140 04144000 JFCBXNAM EQU JFCBX+96 04145000 @NM00021 EQU JFCBX+94 04146000 JFCBXVOL EQU JFCBX+4 04147000 @NM00020 EQU JFCBX+3 04148000 JFCBXTTR EQU JFCBX 04149000 JFCRSV05 EQU JFCEROPT 04150000 JFCRSV04 EQU JFCEROPT 04151000 JFCRSV03 EQU JFCEROPT 04152000 JFCRSV02 EQU JFCEROPT 04153000 JFCTOPT EQU JFCEROPT 04154000 JFCABN EQU JFCEROPT 04155000 JFCSKP EQU JFCEROPT 04156000 JFCACC EQU JFCEROPT 04157000 JFCBUFL EQU JFCAMPTR+2 04158000 JFCFWORD EQU JFCBFTEK 04159000 JFCDWORD EQU JFCBFTEK 04160000 JFCHIER1 EQU JFCBFTEK 04161000 JFCDYN EQU JFCBFTEK 04162000 JFCEXC EQU JFCBFTEK 04163000 JFCBBFTR EQU JFCBBFTA 04164000 JFCSIM EQU JFCBBFTA 04165000 JFCHIER EQU JFCBFTEK 04166000 JFCBFOUT EQU JFCBUFNO 04167000 JFCBUFIN EQU JFCBUFNO 04168000 JFCTEMP EQU JFCBIND2 04169000 JFCREQ EQU JFCBIND2 04170000 JFCENT EQU JFCBIND2 04171000 JFCSHARE EQU JFCBIND2 04172000 JFCSECUR EQU JFCBIND2 04173000 JFCDISP EQU JFCBIND2 04174000 JFCPDS EQU JFCBIND1 04175000 JFCGDG EQU JFCBIND1 04176000 JFCADDED EQU JFCBIND1 04177000 JFCLOC EQU JFCBIND1 04178000 JFCRLSE EQU JFCBIND1 04179000 JFCBXPDT EQU INFMJFCB+83 04180000 JFCBCRDT EQU INFMJFCB+80 04181000 JFCBOPS2 EQU JFCBMASK+7 04182000 JFCRCTLG EQU JFCBFLG2 04183000 JFCBBUFF EQU JFCBFLG2 04184000 JFCTRACE EQU JFCBFLG2 04185000 JFCSDRPS EQU JFCBFLG2 04186000 JFCMODNW EQU JFCBFLG2 04187000 JFCNRPS EQU JFCDEFER 04188000 JFCOUTOP EQU JFCBFLG2 04189000 JFCINOP EQU JFCBFLG2 04190000 JFCBPWBP EQU JFCOPEN 04191000 @NM00016 EQU JFCOPEN 04192000 JFCDUAL EQU JFCBFLG1 04193000 JFCSLDES EQU JFCBFLG1 04194000 JFCSLCRE EQU JFCBFLG1 04195000 JFCSTAND EQU JFCBFLG1 04196000 JFCBOPS1 EQU JFCBMASK 04197000 JFCBVLSQ EQU INFMJFCB+70 04198000 JFCRSV31 EQU JFCFUNC 04199000 JFCFNCBT EQU JFCFUNC 04200000 JFCFNCBX EQU JFCFUNC 04201000 JFCFNCBD EQU JFCFUNC 04202000 JFCFNCBW EQU JFCFUNC 04203000 JFCFNCBP EQU JFCFUNC 04204000 JFCFNCBR EQU JFCFUNC 04205000 JFCFNCBI EQU JFCFUNC 04206000 JFCBFOFL EQU JFCBUFOF 04207000 JFCNL EQU JFCBLTYP 04208000 JFCSL EQU JFCBLTYP 04209000 JFCNSL EQU JFCBLTYP 04210000 JFCSUL EQU JFCBLTYP 04211000 JFCBLP EQU JFCBLTYP 04212000 JFCBLTM EQU JFCBLTYP 04213000 JFCBAL EQU JFCBLTYP 04214000 JFCRSV38 EQU JFCBLTYP 04215000 JFCVINDX EQU INFMJFCB+64 04216000 JFCNLREC EQU INFMJFCB+62 04217000 JFCBADBF EQU INFMJFCB+60 04218000 JFCAMSTR EQU JFCBFRID+2 04219000 JFCAMCRO EQU JFCBFRID 04220000 JFCBDSCB EQU INFMJFCB+53 04221000 JFCPAT EQU JFCBTSDM 04222000 JFCNDCB EQU JFCBTSDM 04223000 JFCNDSCB EQU JFCBTSDM 04224000 JFCNWRIT EQU JFCBTSDM 04225000 JFCTTR EQU JFCBTSDM 04226000 JFCSDS EQU JFCBTSDM 04227000 JFCVSL EQU JFCBTSDM 04228000 JFCCAT EQU JFCBTSDM 04229000 JFCIPLTX EQU JFCBELNM 04230000 JFCBQNAM EQU JFCBDSNM 04231000 CVTLEVL EQU CVTRELNO+2 04232000 CVTNUMB EQU CVTRELNO 04233000 CVTMDL EQU CVTFIX+250 04234000 @NM00015 EQU CVTFIX+248 04235000 @NM00014 EQU CVTFIX 04236000 CVTRV482 EQU CVTXTNT2+128 04237000 CVTRV481 EQU CVTXTNT2+124 04238000 CVTRV480 EQU CVTXTNT2+120 04239000 CVTRV479 EQU CVTXTNT2+118 04240000 CVTRV478 EQU CVTXTNT2+117 04241000 CVTRV477 EQU CVTXTNT2+116 04242000 CVTRV476 EQU CVTXTNT2+115 04243000 CVTRV475 EQU CVTXTNT2+114 04244000 CVTRV474 EQU CVTRV466 04245000 CVTRV473 EQU CVTRV466 04246000 CVTRV472 EQU CVTRV466 04247000 CVTRV471 EQU CVTRV466 04248000 CVTRV470 EQU CVTRV466 04249000 CVTRV469 EQU CVTRV466 04250000 CVTRV468 EQU CVTRV466 04251000 CVTRV467 EQU CVTRV466 04252000 CVTRV465 EQU CVTRV457 04253000 CVTRV464 EQU CVTRV457 04254000 CVTRV463 EQU CVTRV457 04255000 CVTRV462 EQU CVTRV457 04256000 CVTRV461 EQU CVTRV457 04257000 CVTRV460 EQU CVTRV457 04258000 CVTRV459 EQU CVTRV457 04259000 CVTRV458 EQU CVTRV457 04260000 CVTRV456 EQU CVTXTNT2+108 04261000 CVTRV455 EQU CVTXTNT2+104 04262000 CVTRV454 EQU CVTXTNT2+100 04263000 CVTRV453 EQU CVTXTNT2+96 04264000 CVTRV452 EQU CVTXTNT2+94 04265000 CVTRV451 EQU CVTXTNT2+92 04266000 CVTRV450 EQU CVTXTNT2+90 04267000 CVTRV449 EQU CVTXTNT2+88 04268000 CVTRV448 EQU CVTXTNT2+87 04269000 CVTRV447 EQU CVTXTNT2+86 04270000 CVTRV446 EQU CVTRV438 04271000 CVTRV445 EQU CVTRV438 04272000 CVTRV444 EQU CVTRV438 04273000 CVTRV443 EQU CVTRV438 04274000 CVTRV442 EQU CVTRV438 04275000 CVTRV441 EQU CVTRV438 04276000 CVTRV440 EQU CVTRV438 04277000 CVTRV439 EQU CVTRV438 04278000 CVTRV437 EQU CVTRV429 04279000 CVTRV436 EQU CVTRV429 04280000 CVTRV435 EQU CVTRV429 04281000 CVTRV434 EQU CVTRV429 04282000 CVTRV433 EQU CVTRV429 04283000 CVTRV432 EQU CVTRV429 04284000 CVTRV431 EQU CVTRV429 04285000 CVTRV430 EQU CVTRV429 04286000 CVTRV428 EQU CVTXTNT2+80 04287000 CVTRV427 EQU CVTXTNT2+76 04288000 CVTRV426 EQU CVTXTNT2+72 04289000 CVTRV425 EQU CVTXTNT2+68 04290000 CVTATACT EQU CVTATCVT 04291000 CVTRV423 EQU CVTXTNT2+62 04292000 CVTRV422 EQU CVTXTNT2+60 04293000 CVTRV421 EQU CVTXTNT2+58 04294000 CVTRV420 EQU CVTXTNT2+56 04295000 CVTRV419 EQU CVTXTNT2+55 04296000 CVTRV418 EQU CVTXTNT2+54 04297000 CVTRV417 EQU CVTRV409 04298000 CVTRV416 EQU CVTRV409 04299000 CVTRV415 EQU CVTRV409 04300000 CVTRV414 EQU CVTRV409 04301000 CVTRV413 EQU CVTRV409 04302000 CVTRV412 EQU CVTRV409 04303000 CVTRV411 EQU CVTRV409 04304000 CVTRV410 EQU CVTRV409 04305000 CVTRV408 EQU CVTRV400 04306000 CVTRV407 EQU CVTRV400 04307000 CVTRV406 EQU CVTRV400 04308000 CVTRV405 EQU CVTRV400 04309000 CVTRV404 EQU CVTRV400 04310000 CVTRV403 EQU CVTRV400 04311000 CVTRV402 EQU CVTRV400 04312000 CVTRV401 EQU CVTRV400 04313000 CVTSKTA EQU CVTXTNT2+44 04314000 CVTRSV99 EQU CVTXTNT2+40 04315000 CVTRSV98 EQU CVTXTNT2+36 04316000 CVTRSV97 EQU CVTXTNT2+34 04317000 CVTRSV96 EQU CVTXTNT2+32 04318000 CVTOLTEP EQU CVTXTNT2+28 04319000 CVTQIDA EQU CVTQID+1 04320000 CVTRSV95 EQU CVTQID 04321000 CVTRSV94 EQU CVTXTNT2+20 04322000 CVTRSV93 EQU CVTXTNT2+16 04323000 CVTRSV92 EQU CVTXTNT2+12 04324000 CVTDEBVR EQU CVTXTNT2+8 04325000 CVTRSV91 EQU CVTXTNT2+6 04326000 CVTRSV9H EQU CVTFLGBT 04327000 CVTRSV9G EQU CVTFLGBT 04328000 CVTRSV9F EQU CVTFLGBT 04329000 CVTRSV9E EQU CVTFLGBT 04330000 CVTRSV9D EQU CVTFLGBT 04331000 CVTRSV9C EQU CVTFLGBT 04332000 CVTVME EQU CVTFLGBT 04333000 CVTNPE EQU CVTFLGBT 04334000 CVTNUCLS EQU CVTXTNT2+4 04335000 CVTDSSVA EQU CVTDSSV+1 04336000 CVTRSV89 EQU CVTDSSV 04337000 CVTRSV88 EQU CVTXTNT1+8 04338000 CVTRSV87 EQU CVTXTNT1+4 04339000 CVTFACHN EQU CVTXTNT1 04340000 CVTRV488 EQU CVTMAP+412 04341000 CVTRV487 EQU CVTMAP+408 04342000 CVTRV486 EQU CVTMAP+404 04343000 CVTRV485 EQU CVTMAP+400 04344000 CVTACTAP EQU CVTMAP+396 04345000 CVTAUTH EQU CVTMAP+392 04346000 CVTATMCA EQU CVTATMCT+1 04347000 CVTATMST EQU CVTATMCT 04348000 CVTRSV61 EQU CVTMAP+384 04349000 CVTVOLT1 EQU CVTVOLM1+1 04350000 CVTVOLI1 EQU CVTVOLF1 04351000 CVTSTOA EQU CVTMAP+376 04352000 CVTRSV58 EQU CVTMAP+374 04353000 CVTRSV57 EQU CVTMAP+372 04354000 CVTDDCE EQU CVTMAP+368 04355000 CVTPNWFR EQU CVTMAP+364 04356000 CVTSMF EQU CVTMAP+360 04357000 CVTSULK EQU CVTMAP+358 04358000 CVTSLKO EQU CVTSYSK 04359000 CVTSLKP EQU CVTSYSK 04360000 CVTSLKQ EQU CVTSYSK 04361000 CVTSLKR EQU CVTSYSK 04362000 CVTRSV56 EQU CVTSYSK 04363000 CVTRSV55 EQU CVTSYSK 04364000 CVTRSV54 EQU CVTSYSK 04365000 CVTRSV53 EQU CVTSYSK 04366000 CVTRSV52 EQU CVTA1F1 04367000 CVTRSV51 EQU CVTA1F1 04368000 CVTRSV50 EQU CVTA1F1 04369000 CVTRSV49 EQU CVTA1F1 04370000 CVTRSV48 EQU CVTA1F1 04371000 CVTRSV47 EQU CVTA1F1 04372000 CVTSRSW EQU CVTA1F1 04373000 CVTPFSW EQU CVTA1F1 04374000 CVTPCVT EQU CVTMAP+352 04375000 CVTRSV46 EQU CVTMAP+344 04376000 CVTRSV45 EQU CVTMAP+340 04377000 CVTRSV44 EQU CVTMAP+338 04378000 CVTRSV43 EQU CVTMAP+336 04379000 CVTHJESA EQU CVTHJES+1 04380000 CVTRSV42 EQU CVTHJES 04381000 CVTEXT2A EQU CVTEXT2+1 04382000 CVTRSV41 EQU CVTEXT2 04383000 CVTAPFA EQU CVTAPF+1 04384000 CVTRSV40 EQU CVTAPF 04385000 CVTRV518 EQU CVTINTLA 04386000 CVTRV517 EQU CVTERPV 04387000 CVTEORM EQU CVTMAP+312 04388000 CVTMCHPR EQU CVTMAP+308 04389000 CVTTZ EQU CVTMAP+304 04390000 CVTJEPS EQU CVTMAP+300 04391000 CVTMODE EQU CVTMAP+292 04392000 CVTPTRV EQU CVTMAP+288 04393000 CVTREAL EQU CVTMAP+284 04394000 CVTRSV39 EQU CVTMAP+280 04395000 CVTRSV38 EQU CVTMAP+276 04396000 CVTDMSRA EQU CVTDMSR+1 04397000 CVTRV634 EQU CVTDMSRF 04398000 CVTRV633 EQU CVTDMSRF 04399000 CVTRV632 EQU CVTDMSRF 04400000 CVTRV631 EQU CVTDMSRF 04401000 CVTRV630 EQU CVTDMSRF 04402000 CVTRV629 EQU CVTDMSRF 04403000 CVTUDUMP EQU CVTDMSRF 04404000 CVTSDUMP EQU CVTDMSRF 04405000 CVTQMSGA EQU CVTQMSG+1 04406000 CVTRSV36 EQU CVTQMSG 04407000 CVTAMFF EQU CVTMAP+264 04408000 CVTPURGA EQU CVTPURG+1 04409000 CVTRSV35 EQU CVTPURG 04410000 CVTCBSP EQU CVTMAP+256 04411000 CVTATERA EQU CVTATER+1 04412000 CVTSYST EQU CVTATER 04413000 CVTVOLT2 EQU CVTTAT 04414000 CVTVOLI2 EQU CVTVOLF2 04415000 CVTAQAVB EQU CVTAQAVT+1 04416000 CVTRSV34 EQU CVTTCMFG 04417000 CVTRSV33 EQU CVTTCMFG 04418000 CVTRSV32 EQU CVTTCMFG 04419000 CVTRSV31 EQU CVTTCMFG 04420000 CVTRSV30 EQU CVTTCMFG 04421000 CVTRSV29 EQU CVTTCMFG 04422000 CVTRSV28 EQU CVTTCMFG 04423000 CVTTCRDY EQU CVTTCMFG 04424000 CVTGTFA EQU CVTGTF+1 04425000 CVTRSV27 EQU CVTGTFST 04426000 CVTRNIO EQU CVTGTFST 04427000 CVTUSR EQU CVTGTFST 04428000 CVTRV318 EQU CVTFORM 04429000 CVTRV317 EQU CVTTMODE 04430000 CVTRV316 EQU CVTSTATE 04431000 CVTRV315 EQU CVTGTFS 04432000 CVTGTFAV EQU CVTGTFS 04433000 CVT0SCR1 EQU CVTMAP+232 04434000 CVTRV515 EQU CVTMAP+228 04435000 CVTRMS EQU CVTMAP+224 04436000 CVTPATCH EQU CVTMAP+220 04437000 CVTTSCE EQU CVTMAP+216 04438000 CVTLNKSC EQU CVTMAP+214 04439000 CVTQABST EQU CVTMAP+212 04440000 CVTMDLDS EQU CVTMAP+208 04441000 CVTUSER EQU CVTMAP+204 04442000 CVTABEND EQU CVTMAP+200 04443000 CVTSMCA EQU CVTMAP+196 04444000 CVTRSV18 EQU CVTMAP+192 04445000 CVTQLPAQ EQU CVTMAP+188 04446000 CVTQCDSR EQU CVTMAP+184 04447000 CVTRSV17 EQU CVTOPTB 04448000 CVTRSV16 EQU CVTOPTB 04449000 CVTFP EQU CVTOPTB 04450000 CVTAPTHR EQU CVTOPTB 04451000 CVTNLOG EQU CVTOPTB 04452000 CVTTOD EQU CVTOPTB 04453000 CVTCTIMS EQU CVTOPTB 04454000 CVTPROT EQU CVTOPTB 04455000 CVTXPFP EQU CVTOPTA 04456000 CVTASCII EQU CVTOPTA 04457000 CVTRSV13 EQU CVTOPTA 04458000 CVTRSV12 EQU CVTOPTA 04459000 CVTNIP EQU CVTOPTA 04460000 CVTDDR EQU CVTOPTA 04461000 CVTAPR EQU CVTOPTA 04462000 CVTCCH EQU CVTOPTA 04463000 CVTSNCTR EQU CVTMAP+180 04464000 CVTQMWR EQU CVTMAP+176 04465000 CVTQOCR EQU CVTMAP+172 04466000 CVT1EF00 EQU CVTMAP+168 04467000 CVTMZ00 EQU CVTMAP+164 04468000 CVTSV76Q EQU CVTSV76C 04469000 CVTRSV11 EQU CVTMAP+156 04470000 CVT0PT01 EQU CVTMAP+152 04471000 CVTMSER EQU CVTMAP+148 04472000 CVTRV516 EQU CVTIERLC 04473000 CVTILCH EQU CVTMAP+140 04474000 CVT0DS EQU CVTMAP+136 04475000 CVTFBOSV EQU CVTMAP+132 04476000 CVTNUCB EQU CVTMAP+128 04477000 CVTIXAVL EQU CVTMAP+124 04478000 CVTSV76M EQU CVTIOQET 04479000 CVTDCBA EQU CVTMAP+117 04480000 CVTMVS2 EQU CVTDCB 04481000 CVT6DAT EQU CVTDCB 04482000 CVT4MPS EQU CVTDCB 04483000 CVTRSV09 EQU CVTDCB 04484000 CVT4MS1 EQU CVTDCB 04485000 CVT2SPS EQU CVTDCB 04486000 CVT1SSS EQU CVTDCB 04487000 CVTRSV08 EQU CVTDCB 04488000 CVTSTB EQU CVTMAP+112 04489000 CVTQTD00 EQU CVTMAP+108 04490000 CVTQTE00 EQU CVTMAP+104 04491000 CVTCUCB EQU CVTMAP+100 04492000 CVTSJQ EQU CVTMAP+96 04493000 CVTPBLDL EQU CVTMAP+92 04494000 CVTTPC EQU CVTMAP+88 04495000 CVTSVDCB EQU CVTMAP+84 04496000 CVTEXIT EQU CVTMAP+80 04497000 CVT0FN00 EQU CVTMAP+76 04498000 CVTDARA EQU CVTDAR+1 04499000 CVTRSV07 EQU CVTFLGS1 04500000 CVTRSV06 EQU CVTFLGS1 04501000 CVTRSV05 EQU CVTFLGS1 04502000 CVTRSV04 EQU CVTFLGS1 04503000 CVTRSV03 EQU CVTFLGS1 04504000 CVTRSV02 EQU CVTFLGS1 04505000 CVTRSV01 EQU CVTFLGS1 04506000 CVTDMPLK EQU CVTFLGS1 04507000 CVTXITP EQU CVTMAP+68 04508000 CVTZDTAB EQU CVTMAP+64 04509000 CVTMSLT EQU CVTMAP+60 04510000 CVTDATE EQU CVTMAP+56 04511000 CVTBTERM EQU CVTMAP+52 04512000 CVTSYSAD EQU CVTMAP+48 04513000 CVTXTLER EQU CVTMAP+44 04514000 CVTILK2 EQU CVTMAP+40 04515000 CVTILK1 EQU CVTMAP+36 04516000 CVTPRLTV EQU CVTMAP+32 04517000 CVTPCNVT EQU CVTMAP+28 04518000 CVT0VL00 EQU CVTMAP+24 04519000 CVTXAPG EQU CVTMAP+20 04520000 CVTBUF EQU CVTMAP+16 04521000 CVTJOB EQU CVTMAP+12 04522000 CVTLINK EQU CVTMAP+8 04523000 CVT0EF00 EQU CVTMAP+4 04524000 CVT EQU CVTMAP 04525000 RPLVBLN EQU RPLVSAM+52 04526000 @NM00013 EQU RPLVSAM+44 04527000 RPLVUPD EQU RPLVOPT+1 04528000 @NM00012 EQU RPLVOPT 04529000 RPLVKGE EQU RPLVOPT 04530000 @NM00011 EQU RPLVOPT 04531000 RPLVNEXT EQU RPLVOPT 04532000 RPLVDIR EQU RPLVOPT 04533000 RPLVLOC EQU RPLVOPT 04534000 RPLVKEY EQU RPLVSAM+36 04535000 RPLVBUF EQU RPLVSAM+32 04536000 @NM00010 EQU RPLVSAM+28 04537000 RPLVACB EQU RPLVSAM+24 04538000 @NM00009 EQU RPLVSAM+3 04539000 RPLVTYP EQU RPLVSAM+2 04540000 @NM00008 EQU RPLVSAM 04541000 @NM00007 EQU RPLV+42 04542000 RPLVDATE EQU RPLV+38 04543000 RPLRMSCC EQU RPLV+36 04544000 RPLVRES1 EQU RPLFLAGA+1 04545000 RPLJRCVY EQU RPLFLAGA 04546000 RPLVRSV3 EQU RPLV+24 04547000 RPLVRSV2 EQU RPLV+20 04548000 RPLVRSV1 EQU RPLV+16 04549000 RPLVVICB EQU RPLV+12 04550000 VVIUNUSD EQU VVICB+116 04551000 VVINUSDC EQU VVICB+112 04552000 VVITPFCH EQU VVICB+108 04553000 VVIDVMEL EQU VVICB+104 04554000 VVIVBSTF EQU VVICB+100 04555000 VVISSOBA EQU VVICB+96 04556000 VVIVSCRA EQU VVICB+92 04557000 VVISTPTB EQU VVICB+88 04558000 VVIDVMTA EQU VVICB+84 04559000 VVIJUCB EQU VVICB+80 04560000 VVIIUCB EQU VVICB+76 04561000 VVIUCB EQU VVICB+60 04562000 VVIVJL EQU VVICB+56 04563000 VVIVRR EQU VVICB+52 04564000 VVIQLSPL EQU VVICB+48 04565000 VVIVTRK EQU VVICB+37 04566000 VVIOPCD EQU VVICB+36 04567000 VVIVQMP EQU VVICB+32 04568000 VVICATAD EQU VVICB+24 04569000 VVIDCBAD EQU VVICB+20 04570000 VVIACBAD EQU VVICB+16 04571000 VVIFLG7 EQU VVIFLGA 04572000 VVIFLG6 EQU VVIFLGA 04573000 VVIFLG5 EQU VVIFLGA 04574000 VVIFLG4 EQU VVIFLGA 04575000 VVIFLG3 EQU VVIFLGA 04576000 VVIFLG1 EQU VVIFLGA 04577000 VVIALCON EQU VVICB+14 04578000 VVICPUID EQU VVICB+12 04579000 VVICID EQU VVICB 04580000 ASVTEND EQU ASVT+528 04581000 ASVTAVAL EQU ASVTENTY 04582000 ASVTAVAI EQU ASVTFRST 04583000 ASVTRS00 EQU ASVT+520 04584000 ASVTMAXU EQU ASVT+516 04585000 ASVTASVT EQU ASVT+512 04586000 ASVTBEGN EQU ASVT+512 04587000 @NM00006 EQU ASVT 04588000 ICBLORD EQU ICBTRACE+256 04589000 ICBOTRC EQU ICBTRACE 04590000 ICBRESV EQU ICB2SSCB+128 04591000 ICBVOLST EQU ICB2SSCB+124 04592000 ICBVSCRA EQU ICB2SSCB+120 04593000 ICBSAMP EQU ICB2SSCB+118 04594000 ICBRESVD EQU ICB2SSCB+117 04595000 ICBCPUID EQU ICB2SSCB+112 04596000 ICBFAB EQU ICB2SSCB+108 04597000 ICBMSSC EQU ICB2SSCB+104 04598000 ICBRSVP EQU ICB2SSCB+100 04599000 ICBAEAP EQU ICB2SSCB+96 04600000 ICBSIOBP EQU ICB2SSCB+92 04601000 ICBIATNA EQU ICB2SSCB+88 04602000 ICBIPRGA EQU ICB2SSCB+84 04603000 ICBSRBP EQU ICB2SSCB+80 04604000 ICBVVIC EQU ICB2SSCB+72 04605000 ICBSIOP EQU ICB2SSCB+68 04606000 ICBMEP EQU ICB2SSCB+64 04607000 ICBIORCI EQU ICB2SSCB+60 04608000 ICB2ACTP EQU ICB2SSCB+56 04609000 ICBFG3 EQU ICBFLG+2 04610000 ICBFG2 EQU ICBFLG+1 04611000 @NM00005 EQU ICBFG1 04612000 ICBMSCA EQU ICBFG1 04613000 ICBMSCMP EQU ICBFG1 04614000 ICBS EQU ICBFG1 04615000 ICBB EQU ICBFG1 04616000 ICBV EQU ICBFG1 04617000 ICBR EQU ICBFG1 04618000 ICBI EQU ICBFG1 04619000 ICBNVT EQU ICBOPT 04620000 ICBVN02P EQU ICB2SSCB+44 04621000 ICBTCB EQU ICB2SSCB+40 04622000 ICBQHEAD EQU ICB2SSCB+36 04623000 ICBAUCB EQU ICB2SSCB+32 04624000 ICBPUCB EQU ICB2SSCB+28 04625000 ICBCOMQ EQU ICB2SSCB+24 04626000 ICBIOR EQU ICB2SSCB+20 04627000 ICBCOM EQU ICB2SSCB+16 04628000 ICBACTV EQU ICB2SSCB+12 04629000 ICBECB EQU ICB2SSCB+8 04630000 ICBSSNAM EQU ICB2SSCB 04631000 @NM00002 EQU TCBCHAN+8 04632000 TCBSAVE EQU TCBCHAN+4 04633000 @NM00001 EQU TCBCHAN 04634000 .@UNREFD ANOP END UNREFERENCED COMPONENTS 04635000 @RF00243 EQU @RC00241 04636000 @RT00501 EQU @EL00005 04637000 @RT00517 EQU @EL00005 04638000 @RF00843 EQU @EL00013 04639000 @RC00915 EQU @RC00911 04640000 @RC00913 EQU @RC00911 04641000 @RF00951 EQU @RC00949 04642000 @ENDDATA EQU * 04643000 END ICBVQM00,(C'PLS1958',0701,77354) 04644000