CPS TITLE 'DMKCPR (CP) VM/370 - RELEASE 6' 00001000
*. 00002000
* MODULE NAME - 00003000
* 00004000
* DMKCPR 00005000
* 00006000
* FUNCTION - 00007000
* 00008000
* BRING THE SYSTEM TO AN ORDERLY SHUTDOWN, SAVING SPOOL FILES 00009000
* AND ACCOUNTING INFORMATION. 00010000
* 00011000
* ATTRIBUTES - 00012000
* 00013000
* REENTRANT, PAGEABLE, CALLED VIA SVC 00014000
* 00015000
* ENTRY POINTS 00016000
* 00017000
* DMKCPRSH - BRING THE SYSTEM TO AN ORDERLY SHUTDOWN, SAVING 00018000
* SPOOL FILE AND ACCOUNTING INFORMATION 00019000
* 00020000
* ENTRY CONDITIONS - 00021000
* 00022000
* GPR11 = ADDRESS OF CALLER'S VMBLOK 00023000
* GPR12 = ADDRESS OF ENTRY POINT 00024000
* GPR13 = ADDRESS OF SAVEAREA 00025000
* 00026000
* EXIT CONDITIONS - 00027000
* 00028000
* NONE 00029000
* 00030000
* CALLS TO OTHER ROUTINES - 00031000
* 00032000
* DMKFREE - TO OBTAIN STORAGE 00033000
* DMKFRET - TO RETURN A BLOCK OF STORAGE 00034000
* DMKDSBSD - RECORD 3330/3340/3350/2305 STATISTICAL DATA 00035000
* DMKRSESD - RECORD 3800 STATISTICAL DATA 00036000
* DMKIOESR - SYNCHRONOUS OBR PROCESSING 00037000
* DMKDMPRS - RE-IPL SYSTEM 00038000
* DMKVSPCO - CLOSE FUNCTIONS FOR SPOOLED PRT/PCH 00039000
* DMKPRGMC - ADDR OF MONCOM 00040000
* DMKSPLDL - DELETE SPOOL FILES ON THE 3800 DELAY QUEUE 00041000
* 00042000
* EXTERNAL REFERENCES - 00043000
* 00044000
* NONE 00045000
* 00046000
* TABLES / WORKAREAS - 00047000
* 00048000
* 00049000
* 00050000
* REGISTER USAGE - 00051000
* 00052000
* GPR0 = PARMS PASSED TO CALLED ROUTINES, PSA BASE REG 00053000
* GPR1 = WORK REGESTER 00054000
* GPR2 = PARMS PASSED TO CALLED ROUTINES 00055000
* GPR3 = LENGTH FOR EXECUTED MOVES AND COMPARES 00056000
* GPR4 = INTERNAL LINKAGE (2ND LEVEL) 00057000
* GPR5 = INTERNAL LINKAGE (2ND LEVEL) 00058000
* GPR6 = RCHBLOK BASE 00059000
* GPR7 = RCUBLOK BASE 00060000
* GPR8 = RDEVBLOK BASE 00061000
* GPR9 = WORK REGISTER 00062000
* GPR10 = IOBLOK BASE 00063000
* GPR11 = VMBLOK BASE 00064000
* GPR12 = MODULE BASE 00065000
* GPR13 = SAVEAREA BASE 00066000
* GPR14 = EXTERNAL LINKAGE 00067000
* GPR15 = EXTERNAL LINKAGE 00068000
* 00069000
* OPERATION - 00070000
* 00071000
* THE COMMAND HANDLING ROUTINES IN DMKCPR ARE CALLED FROM DMKCFM 00072000
* AFTER THEIR PRIVILEGE CLASS HAS BEEN VERIFIED 00073000
*. 00074000
EJECT 00075000
*. 00076000
* 00077000
* SUBROUTINE NAME - 00078000
* 00079000
* DMKCPRSH 00080000
* 00081000
* FUNCTION - 00082000
* 00083000
* TO TERMINATE ALL SYSTEM ACTIVITY AND SAVE SYSTEM STATUS FOR A 00084000
* FUTURE WARM START 00085000
* 00086000
* COMMAND LINE FORMAT - 00087000
* 00088000
* +------------+--------------+ 00089000
* | SHUTDOWN | NO OPERAND | 00090000
* | SHUTDOWN | | 00091000
* +------------+--------------+ 00092000
* 00093000
* OPERATION - 00094000
* 00095000
* 1. LOCATE THE CONSOLE VDEVBLOK FOR THE CALLER AND THE 00096000
* OPERATOR, IF AN ACTIVE CONSOLE SPOOL FILE EXIST; CALL 00097000
* DMKVSPCO TO CLOSE AND CHAIN THE SPOOL FILE BLOK. 00098000
* 2. LOCATE RDEVBLOK 00099000
* A. CALL DMKIOESR IF STATISTICAL DATA (OUTBOARD) EXISTS 00100000
* FOR THIS DEVICE,TO PROCESS OBR SYCHRONOUSLY. 00101000
* B. CALL DMKDSBSD TO RECORD STATISTICAL DATA FOR 00102000
* EACH TYPE OF DASD. 00103000
* EACH DASD DEVICE OR DMKRSESD FOR A 3800 PRINTER. 00104000
* C. FOR EACH 3800, DELETE EACH FILE ON ITS 00105000
* DELAYED PURGE QUEUE. 00106000
* IF THE MONITOR IS ACTIVE THEN STOP IT. 00107000
* 3. PLACE THE CHARACTER STRING 'CPCP' IN THE CPID WORD IN PSA. 00108000
* 4. GO TO THE 'RESTART' FUNCTION (DMKDMPRS) IN DMKDMPDK TO 00109000
* RE-IPL THE SYSTEM. CHECKPOINT (DMKCKP) WILL SAVE ALL 00110000
* SPOOLING AND ACCOUNTING INFORMATION, AND PLACE THE 00111000
* STRING 'SHUT' IN CPID TO INDICATE SHUTDOWN COMPLETE. 00112000
* 00113000
* MESSAGES - 00114000
* 00115000
* NONE 00116000
* 00117000
*. 00118000
EJECT 00119000
COPY OPTIONS @VA03757 00120000
COPY LOCAL @VA03757 00121000
EJECT 00122000
PUNCH 'SPB' @VA03757 00123000
DMKCPR CSECT 00124000
MODID DC CL8'DMKCPR' 00125000
SPACE 3 00126000
USING PSA,R0 @VA03757 00127000
USING VMBLOK,R11 @VA03757 00128000
USING SAVEAREA,R13 @VA03757 00129000
SPACE 00130000
************************************************************** 00131000
* * 00132000
* EXTERNAL SYMBOL TABLE * 00133000
* * 00134000
************************************************************** 00135000
SPACE 00136000
EXTRN DMKDMPRS @VA03757 00137000
EXTRN DMKSTKCP @V407466 00138000
EXTRN DMKTAPRL TAPE RELEASE EPA @V407466 00139000
EXTRN DMKCVTBD @VA03757 00140000
EXTRN DMKVSPCO @VA03757 00141000
EXTRN DMKDSBSD UNLOAD DASD STAT DATA @VA08187 00142000
EXTRN DMKPRGMC,DMKMNISH @V407595 00143000
EXTRN DMKIOESR SYCHRONOUS OBR PROCESSING @VA03757 00144000
EXTRN DMKSPLDL,DMKCVTAB,DMKSCHST,DMKRSESD 3800 SUPPORT@V60B9BA 00145000
EXTRN DMKSSSDE TO DEMOUNT VOLUME @VA10877 00146000
EXTRN DMKSCNFD Word Scanner HRC002DK 00146300
EXTRN DMKERMSG ERROR MESSAGE ROUTINE HRC002DK 00146600
EJECT 00147000
************************************************************** 00148000
* * 00149000
* ENTRY POINT FOR DMKCPRSH * 00150000
* * 00151000
************************************************************** 00152000
SPACE 00153000
DMKCPRSH RELOC SHUTDOWN THE SYSTEM 00154000
L R6,PREFIXA GET ABSOLUTE PSA @VA12314 00154100
TM CPSTAT4-PSA(R6),CPSHUT IS SHUTDOWN IN PROGRESS? @VA12314 00154200
BO EXIT YES...IT'S TOO LATE FOR 2ND CMD @VA12314 00154300
CALL DMKSCNFD HRC002DK 00154306
BNZ NOSHTPRM HRC002DK 00154312
LR R2,R0 HRC002DK 00154318
BCTR R2,0 HRC002DK 00154324
CL R2,F3 HRC002DK 00154330
BL ERRMSG3 HRC002DK 00154336
EX R2,CMPREIPL HRC002DK 00154342
BNZ CHKPOFF HRC002DK 00154348
OI CPSTAT4-PSA(R6),CPREIPL HRC002DK 00154354
B NOSHTPRM HRC002DK 00154360
CHKPOFF EQU * HRC002DK 00154366
EX R2,CMPPOFF HRC002DK 00154372
BNZ ERRMSG3 HRC002DK 00154378
OI CPSTAT4-PSA(R6),CPPWROFF HRC002DK 00154384
NOSHTPRM EQU * HRC002DK 00154390
OI CPSTAT4-PSA(R6),CPSHUT INDICATE SHUTDOWN IN @VA12314 00154400
* PROGRESS 00154500
XC SAVEWRK1(L4),SAVEWRK1 CLEAR FLAG BITS @V407595 00155000
TM APSTAT1,APUOPER IS THE APU OPERATIONAL ? @V407595 00156000
BNO NOAP NO - BYPASS APU PROCESSING @V407595 00157000
OI CPSBITS,APUOPER INDICATE THE APU WAS @V407595 00158000
* OPERATIONAL. 00159000
SWITCH ENSURE RUNNING ON MAIN PROC @V407595 00160000
SIGNAL QUIESCE QUIESCE THE APU @V407595 00161000
SIGNAL SHUTDOWN SET THE APU NOT OPERATIONAL @V407595 00162000
NOAP EQU * @V407595 00163000
SPACE 00164000
************************************************************** 00165000
* * 00166000
* IF THE MONITOR IS ACTIVE, STOP IT. * 00167000
* * 00168000
************************************************************** 00169000
SPACE 00170000
L R9,=A(DMKPRGMC) SOME KEY FIELDS IN DMKPRG @VA03757 00171000
L R9,0(R9) PICK UP COMM. AREA ADDRESS @VA03757 00172000
LTR R9,R9 IS THERE ONE @VA03757 00173000
BZ CLOSECON NO, THEN MONITOR IS NOT ACTIVE @VA03757 00174000
SPACE 1 00175000
USING MONCOM,R9 @VA03757 00176000
MVC CPCREG8,ZEROES SHUT OFF EVENT TRACE IMMED. @VA03757 00177000
LCTL C8,C8,ZEROES ... @VA03757 00178000
OI MONFLAG1,CFSTOP INDICATE CONSOLE FUNCTION STOP @VA03757 00179000
TM MONFLAG3,SPOOLED SEE IF SPOOLING @V50A2B5 00180000
BO NOSETUR YES, SKIP NEXT @V50A2B5 00181000
MVC MONUSER,=CL8'SHUTDOWN' SHUTDOWN DID IT @VA03757 00182000
NOSETUR EQU * @V50A2B5 00183000
L R8,MONARDB ADDRESS OF THE RDEVBLOK @VA03757 00184000
USING RDEVBLOK,R8 @VA03757 00185000
L R10,MONAIOB GET THE IOB ADDRESS @VA03757 00186000
USING IOBLOK,R10 @VA03757 00187000
TM MONFLAG3,SPOOLED SEE IF SPOOLING @V50A2B5 00188000
BO NOCHKDV YES, SKIP NEXT @V50A2B5 00189000
TM RDEVSTAT,RDEVNRDY IS THE DEVICE INT REQ? @VA03757 00190000
BO CLOSECON YES, THEN SKIP THE TRAILER @VA03757 00191000
NOCHKDV EQU * @V50A2B5 00192000
LA R0,CPEXSIZE SIZE OF A CPEXBLOK @VA03757 00193000
CALL DMKFREE GET THE BLOCK @VA03757 00194000
USING CPEXBLOK,R1 ADDRESS THE BLOCK @VA03757 00195000
LA R14,CLOSECON ADDRESS OF RETURN POINT @VA03757 00196000
STM R0,R15,CPEXR0 SAVE REGS FOR RETURN FROM MON @VA03757 00197000
ST R1,IOBMISC2 SAVE CPEXBLOK ADDRESS FOR MON @VA03757 00198000
TM MONFLAG3,SPOOLED SEE IF WE ARE SPOOLED @V50A2B5 00199000
BNO CONTIN NO, SKIP NEXT @V50A2B5 00200000
ST R14,CPEXADD STORE AS CPEX ADDR @V50A2B5 00201000
L R2,MONIOBF GET CURRENT IOBUF @V50A2B5 00202000
LTR R2,R2 ANY IO @V50A2B5 00203000
BNZ SENDCP IO ACTIVE, SYSTEM WILL @VA07888 00204000
* SHUTDOWN USING CFSTOP FLAG WHEN I/O COMPLETE 00205000
CALL DMKMNISH YES, CALL SHUTDOWN @V50A2B5 00206000
SENDCP CALL DMKSTKCP STACK CPEXBLOK @V50A2B5 00207000
B GOTODSP GO TO DISPATCHER @V50A2B5 00208000
CONTIN EQU * @V50A2B5 00209000
DROP R1 DEADDRESS THE CPEXBLOK @VA03757 00210000
L R1,MONIOBF GET TAPE BUSY INDICATOR @V407595 00211000
LTR R1,R1 IS TAPE BUSY ? @V407595 00212000
BNZ GOTODSP YES, SKIP MNISH CALL @V407595 00213000
CALL DMKMNISH CALL MNISH TO INITIATE TRAILER @V407595 00214000
GOTODSP GOTO DMKDSPCH MON INT HANDLER WILL RETURN @VA03757 00215000
DROP R8,R9,R10 @VA03757 00216000
EJECT 00217000
************************************************************** 00218000
* * 00219000
* CLOSE CONSOLE SPOOL FILES FOR OPERATOR AND USER * 00220000
* WHO ISSUED SHUTDOWN. * 00221000
* * 00222000
************************************************************** 00223000
SPACE 00224000
USING VDEVBLOK,R8 @VA03757 00225000
CLOSECON EQU * SAVE CONSOLE SPOOL FILES @VA03757 00226000
LH R8,VMVTERM CHECK FOR VIRTUAL CONSOLE @VA03757 00227000
LTR R8,R8 IS THERE ONE AT THE MOMENT ? @VA03757 00228000
BM CKOPER NO -- SKIP SPOOL CHECK @VA03757 00229000
AL R8,VMDVSTRT POINT TO THE VDEVBLOK ITSELF @VA03757 00230000
ICM R2,B'1111',VDEVSPL OPEN SPOOL FILE ? @VA03757 00231000
BZ CKOPER NO - @VA03757 00232000
NI VDEVFLAG,255-VDEVCSPL TURN OFF SPOOLING FLAG @VA05613 00233000
SL R8,VMDVSTRT VDEVBLOK DISPLACEMENT @VA03757 00234000
CALL DMKVSPCO,PARM=0 CLOSE FILE @VA03757 00235000
AL R8,VMDVSTRT VDEVBLOK ADDRESS @VA03757 00236000
CKOPER L R2,ASYSOP GET VMBLOK ADDRESS OF OPERATOR @VA03757 00237000
CR R2,R11 IS THIS THE OPERATOR ? @VA03757 00238000
BE RESTVM YES -- RESTORE CALLER VMBLOK @VA03757 00239000
* ADDRESS 00240000
CHARGE SWITCH,(R2) STORE USERS VMTTIME AND SET @V407595 00241000
* OPERATOR'S TO CPU TIMER. 00242000
B CLOSECON CLOSE OPERATOR'S CONSOLE @VA03757 00243000
RESTVM EQU * @V407595 00244000
CHARGE SWITCH,SAVER11 RESUME CHARGING CALLER. @V407595 00245000
DROP R8 @VA03757 00246000
SPACE 00247000
************************************************************** 00248000
* * 00249000
* RECORD STATISTICAL DATA FOR DASD AND 3800 PRINTER * 00250000
* * 00251000
************************************************************** 00252000
SPACE 00253000
LA R0,IOBSIZE SIZE OF ONE (1) IOBLOK @VA03757 00254000
CALL DMKFREE @VA03757 00255000
LR R10,R1 IOBLOK ADDRESS INTO R10 @VA03757 00256000
USING IOBLOK,R10 @VA03757 00257000
LA R4,2 INCREMENT FOR BXLE LOOP @VA03757 00258000
SR R1,R1 ZERO CHANNEL INDEX @VA03757 00259000
LA R5,30 END OF INDEX TABLE @VA03757 00260000
DASDCH L R9,ARIOCT ADDRESS OF CHANNEL INDICES @VA03757 00261000
LH R6,0(R1,R9) LOAD INDEX OF NEXT CHANNEL @VA03757 00262000
LTR R6,R6 IS CHANNEL THERE @VA03757 00263000
BM DASDCHI NO, GET NEXT CHANNEL @VA03757 00264000
A R6,ARIOCH ADDRESS OF RCHBLOK IN R6 @VA03757 00265000
USING RCHBLOK,R6 @VA03757 00266000
SR R2,R2 ZERO CONTROL UNIT INDEX COUNT @VA03757 00267000
LA R5,62 END OF CONTROL UNIT INDEX TABLE @VA03757 00268000
DASDCU LH R7,RCHCUTBL(R2) PICK UP INDEX @VA03757 00269000
LTR R7,R7 IS CONTROL UNIT THERE @VA03757 00270000
BM DASDCUI NO, TRY NEXT CU @VA03757 00271000
A R7,ARIOCU ADDRESS OF RCUBLOK TO R7 @VA03757 00272000
USING RCUBLOK,R7 @VA03757 00273000
SR R3,R3 ZERO INDEX FOR DEVICE INDEX @VA03757 00274000
LA R5,30 SET R5 TO END OF DEVICE INDEX @VA03757 00275000
* TABLE 00276000
DASDDEV LH R8,RCUDVTBL(R3) PICK UP INDEX @VA03757 00277000
LTR R8,R8 IS DEVICE THERE @VA03757 00278000
BM DASDDEVI NO, TRY NEXT DEVICE @VA03757 00279000
SLL R8,3(0) CONVERT TO BYTE INDEX @VA03757 00280000
A R8,ARIODV ADDRESS OF RDEVBLOK TO R8 @VA03757 00281000
USING RDEVBLOK,R8 @VA03757 00282000
LR R14,R7 RELOCATE CU ADDR @VA10349 00283000
TM RCUTYPE,RCUSUB SUBORDINATE CU ? @VA10349 00284000
BNO JODEL NO ...CONTINUE @VA10349 00285000
L R14,RCUPRIME YES ..GET THE PRIME CU @VA10349 00286000
JODEL DS 0H 00287000
CL R6,RCUCHA-RCUBLOK(R14) IS THIS PRIME CH - CU @VA10349 00288000
BNE DASDDEVI NO DONT RECORD THIS ONE EITHER @VA10349 00289000
CL R7,RDEVCUA IS THIS THE PRIME DEV - CU @VA10349 00290000
BNE DASDDEVI NO FORGET IT @VA10349 00291000
TESTSDR ICM R15,15,RDEVCTRS PICK UP ADDRESS OF SDRBLOK @VA03757 00292000
* FOR POSSIBLE STATISTICAL DATA RECORDING 00293000
BNP NOCALL NO SDRBLOK, CONTINUE DEVICE LOOP @VA03757 00294000
CALL DMKIOESR GO RECORD OBR SYNCHRONOUSLY @VA03757 00295000
NOCALL EQU * @VA03757 00296000
CLC RDEVTYPC(2),P3800 IS THIS A 3800 ? @V60B9BA 00297000
BE NOCALL3 XFER IF SO @V60B9BA 00298000
NOCALL2 CLI RDEVTYPC,CLASDASD IS DEVICE CLASS DASDI @V60B9BA 00299000
BNE DASDDEVI NO, TRY NEXT DEVICE @VA03757 00300000
NOCALL3 XC IOBLOK(IOBSIZE*8),IOBLOK ZERO OUT IOBLOK @V60B9BA 00301000
ST R10,IOBLINK IOBLOK POINTS TO ITSELF (= @VA03757 00302000
* ORIGINAL COPY) 00303000
OI IOBSPEC,IOBIMSTK INDICATE SHUTDOWN @VA05361 00304000
CLC RDEVTYPC(2),P3800 IS THIS A 3800 ? @V60B9BA 00305000
BE NOCALL3A XFER IF SO @V60B9BA 00306000
CALL DMKDSBSD RECORD STATISTICAL DATA FOR DASD @VA08187 00307000
B DASDDEVI TRY NEXT DEVICE @V60B9BA 00308000
NOCALL3A CALL DMKRSESD RECORD STATISTICAL DATA FOR 3800@V60B9BA 00309000
SPACE 1 00310000
* THE DELAY PURGE QUEUE MUST NOW FINALLY BE PURGED @V60B9BA 00311000
SPACE 1 00312000
LR R9,R7 SAVE R7 FOR NOW @V60B9BA 00313000
TM RDEVSTAT,RDEVDED DEDICATED 3800? @VA10546 00314000
BO NOCALL5 YES, GO TO NEXT DEVICE @VA10546 00315000
NOCALL4 L R7,RDEVDELP GET THE DELAYED PURGE ANCHOR @V60B9BA 00316000
LTR R7,R7 ANYTHING THERE? @VA10546 00317000
BZ NOCALL5 XFER IF NOTHING THERE @V60B9BA 00318000
MVC RDEVDELP,0(R7) NEXT ONE IS NOW FIRST @V60B9BA 00319000
CALL DMKSPLDL GO AND DELETE IT @V60B9BA 00320000
B NOCALL4 DO FOR NEXT ONE ALSO @V60B9BA 00321000
NOCALL5 LR R7,R9 RESTORE R7 @V60B9BA 00322000
DASDDEVI BXLE R3,R4,DASDDEV @VA03757 00323000
LA R5,62 @VA03757 00324000
DASDCUI BXLE R2,R4,DASDCU @VA03757 00325000
LA R5,30 @VA03757 00326000
DASDCHI BXLE R1,R4,DASDCH @VA03757 00327000
EJECT 00328000
************************************************************** 00329000
* * 00330000
* WHEN HERE - ALL DEVICES HAVE BEEN CHECKED * 00331000
* INDICATE 'CPCP' SHUTDOWN AND GOTO DMKDMPRS * 00332000
* * 00333000
************************************************************** 00334000
SPACE 00335000
LA R0,IOBSIZE SIZE OF IOBLOK TO FRET @VA03757 00336000
LR R1,R10 FRET THE IOBLOK @VA03757 00337000
CALL DMKFRET @VA03757 00338000
DROP R6,R7,R8,R10 @VA03757 00339000
TM CPSBITS,APUOPER WAS THE APU OPERATIONAL ? @V407595 00340000
BNO NOAP2 NO- BYPASS SET PREFIX @V407595 00341000
SPX ZEROES END OF PREFIXING @V407595 00342000
NOAP2 EQU * @V407595 00343000
MVC CPID(4),=C'CPCP' INDICATE SHUTDOWN TO DMKCKP @VA03757 00344000
GOTO DMKDMPRS GOT TO IT @VA03757 00345000
SPACE 00345100
ERRMSG3 DS 0H HRC002DK 00345110
LA R2,3 HRC002DK 00345120
B ERRRET HRC002DK 00345130
ERRRET DS 0H HRC002DK 00345140
ICM R0,B'1110',DMKCPR+3 HRC002DK 00345150
ICM R2,B'1000',F0 HRC002DK 00345160
CALL DMKERMSG HRC002DK 00345170
EXIT DS 0H @VA12314 00345200
EXIT RETURN TO CALLER @VA12314 00345300
EJECT 00346000
************************************************************** 00347000
* * 00348000
* DEFINE CONSTANT AND EQUATE POOL * 00349000
* * 00350000
************************************************************** 00351000
SPACE 00352000
CMPPOFF CLC 0(0,R1),=C'POWEROFF ' HRC002DK 00352300
CMPREIPL CLC 0(0,R1),=C'REIPL ' HRC002DK 00352600
P3800 DC AL1(CLASURO,TYP3800) FOR COMPARISONS @V60B9BA 00353000
L4 EQU 4 LENGTH INDICATOR @V407595 00354000
EJECT 00355000
************************************************************** 00356000
* * 00357000
* BEGIN LITERAL POOL * 00358000
* * 00359000
************************************************************** 00360000
SPACE 00361000
LTORG @VA03757 00362000
EJECT 00363000
************************************************************** 00364000
* * 00365000
* COPY PREDEFINED SOURCE CODING * 00366000
* * 00367000
************************************************************** 00368000
SPACE 00369000
PSA @VA03757 00370000
COPY DEVTYPES @VA03757 00371000
COPY EQU @VA03757 00372000
COPY IOBLOKS @VA03757 00373000
COPY MONBLOKS @VA03757 00374000
COPY RBLOKS @VA03757 00375000
COPY SAVE @VA03757 00376000
SPACE 2 00377000
CPSBITS EQU SAVEWRK1 @V407466 00378000
SPACE 2 00379000
COPY VBLOKS @VA03757 00380000
COPY VMBLOK @VA03757 00381000
END 00382000