BACKCPY
* /--- FILE TYPE = E
* /--- BLOCK SOURCEY 00 000 81/05/07 06.51
BACKCPY
IDENT BACKCPY,BEGIN,BACKCPY
ENTRY BACKCPY
SYSCOM B1 DEFINE (B1) = 1
*COMMENT COPY NOS VERSION OF DUMP DIRECTORY TO PLATO
COMMENT COPYRIGHT CONTROL DATA CORP. 1981.
TITLE COPY NOS VERSION OF DUMP DIRECTORY TO PLATO
SPACE 4
*** BACKUPS - COPY NOS VERSION OF DUMP DIRECTORY TO PLATO
* J. J. BUCHMANN. 81/02/27.
*
*FUNCTION;
* THIS PROGRAM ATTACHES THE DUMP DIRECTORY, AUDIT TRAIL,
* AND PARAMETERS FILE AND COPIES THE INFORMATION BACK TO
* THE EQUIVALENT PLATO FILES (THEREFORE PLATO MUST BE
* UP). THIS SHOULD BE DONE AT LEAST ONCE EVERY DAY TO
* INSURE THAT THE ON-LINE INFORMATION AVAILABLE TO THE
* PLATO USERS IS ALWAYS UP TO DATE. THEREFORE THIS
* PROGRAM SHOULD BE RUN SOON AFTER THE PLATO DUMPS ARE
* COMPLETE AND SOON AFTER ANY CHANGE IN THE BACKUP
* PARAMETERS.
*
*PARAMETERS; NONE
*
*ERROR MESSAGES;
* NOT ENOUGH DUMP DIRECTORY DATASETS - CREATE ANOTHER
* PLATO DUMP DIRECTORY(32 PART DATASET, RECORD SIZE
* = 500 WORDS, NAME=D0X WHERE X STARTS AT A,B,C,D,E
* ETC. CHOOSE THE NEXT *X* NOT ALREADY CREATED)
* UPDATE THE NUMBER OF DATASETS USING X.BACKMOD.
*
*PLATO ATTACH READ/WRITE ERROR MESSAGES;
* WAITING FOR FILE - XXXXXX (INFORMATIVE ONLY)
* ERROR IN ATTACHING
* FILE ERROR IN WRITING FILE FILE NAME = XXXXX
* ERROR STATUS = NNNN
* BEGINNING RECORD = NNNN
* ENDING RECORD = NNNN
*
*INTERNAL ERROR MESSAGES; NONE
SPACE 4
*CALL COMCMAC
*CALL COMCCMD
SPACE 4
**** ASSEMBLY CONSTANTS.
IBUFL EQU 2001B IFILE BUFFER LENGTH
OBUFL EQU 2001B OFILE BUFFER LENGTH
ABUFL EQU 2001B AFILE BUFFER LENGTH
DSHF EQU 42 SHIFT COUNT DUMP DIR. NAME INC.
BLKSZE EQU 320 BLOCK SIZE (WORDS) FOR S0BACKC
MBPARM EQU 1 MAX NUM OF BLOCKS / PARAMETERS
MBSLOT EQU 2 MAX NUM OF BLOCKS / SLOT TABLE
MBLAB EQU 25 MAX NUM OF BLOCKS / LOOK ASIDE
MBVSN EQU 25 MAX NUM OF BLOCKS / VSN TABLE
MBALL EQU MBPARM+MBSLOT+MBLAB+MBVSN TOTAL NUM BLOCKS
AUDBLK EQU 300 BLOCK SIZE FOR AUDIT TRAIL
AUDCNT EQU 26 NUMBER OF BLOCKS/AUDIT TRAIL
USERI EQU 377773B USER INDEX FOR FILES
TIMEL EQU 7777B TIME LIMIT
PRIOR EQU 41B PRIORITY
* /--- BLOCK SOURCEY 00 000 81/04/29 08.14
* OFFSETS WITHIN PARAMETER BLOCK
PBASE EQU 2 DUMP DIRECTORY BASE NAME
PDNUM EQU 3 NUMBER OF DATASETS IN DUMP DIR.
PNREC EQU 4 NUMBER OF RECORDS IN DATASETS
PLREC EQU 5 NUMBER OF RECORDS-LAST DATASET
PPAGE EQU 9 PAGE SIZE
****
TITLE COMMON DATA
BEGIN BSS 0
FETS BSS 0
I BSS 0
S0BACKC RFILEB IBUF,IBUFL,(FET=13D),EPR
O BSS 0
BACKDIR RFILEB OBUF,OBUFL,(FET=13D),EPR
A BSS 0
AUDIT RFILEB ABUF,ABUFL,(FET=13D),EPR
SPACE 4
* DATA WORDS
PAGE DATA 0 PAGE SIZE
CPAG DATA 0 CURRENT NUMBER OF WORDS IN PAGE
DREC DATA 500 RECORD SIZE FOR DUMP DIRECTORY
DNAM DATA 0 BASE NAME FOR DUMP DIRECTORY
DNUM DATA 0 NUMBER OF DUMP DIRECTORIES
DNOR DATA 0 NUMBER OF RECORDS/THIS DATASET
DNORA DATA 0 NUMBER OF RECORDS/ALL DATASETS
DNORL DATA 0 NUMBER OF RECORDS/LAST DATASET
CNOR DATA 0 CURRENT RECORD NUMBER
CNUM DATA 0 CURRENT DATASET NUMBER
PACK DATA 0 PACK NAME FOR ATTACHES
DPER DATA 7LBACKDIR PERMANENT FILE FOR DUMP DIRECT.
SPER DATA 7LS0BACKC PERM. FILE FOR BACKUP PARAMS.
APER DATA 5LAUDIT PERMANENT FILE FOR AUDIT TRAIL
SRCT DATA 0 RECORD COUNT FOR S0BACKC
ARCT DATA 0 RECORD COUNT FOR AUDIT TRAIL
* /--- BLOCK SOURCEY 00 000 81/03/04 11.38
TITLE MAIN PROGRAM.
*** BACKCPY
BACKCPY SB1 1 (B1) = 1
RJ ATTFILE ATTACH FILES
RJ RDPARAM READ PARAMETER TABLE
RJ INIT INITIALIZE PARAMETERS
RJ WRITDMP WRITE DUMP DIRECTORY
RJ WRITS0B WRITE S0BACKC
RJ WRITAUD WRITE AUDIT TRAIL
EQ END ALL DONE
TITLE SUBROUTINES
ATTFILE SPACE 4
** ATTFILE - ATTACH PERMANENT FILES
*
* ATTACH S0BACKC, BACKDIR, AND AUDIT
*
ATTFILE DATA 0 ENTRY/EXIT
SETUI USERI USER INDEX
PACKNAM PACK SET PACKNAME
ATT1 ATTACH I,SPER,,,R ATTACH S0BACKC
SA1 I
RJ CKSTATS
NZ X2,ATT1 IF FILE WAS BUSY
SA1 I+1
RJ CLREPR CLEAR EPR
ATT2 ATTACH O,DPER,,,R ATTACH BACKDIR
SA1 O
RJ CKSTATS
NZ X2,ATT2 IF FILE WAS BUSY
SA1 O+1
RJ CLREPR CLEAR EPR
ATT3 ATTACH A,APER,,,R ATTACH AUDIT
SA1 A
RJ CKSTATS
NZ X2,ATT3 IF FILE WAS BUSY
SA1 A+1
RJ CLREPR CLEAR EPR
EQ ATTFILE EXIT
CKSTATS SPACE 4
** CKSTATS - CHECK FILE STATUS FOR BUSY
* ROLLOUT FOR 64 SECONDS IF BUSY
* ABORT IF ERROR
*
* ENTRY X1-FET STATUS WORD
*
* EXIT X2=0, NOT BUSY
CKSTATS DATA 0 ENTRY/EXIT
AX1 10
MX7 -8
BX2 -X7*X1 ISOLATE STATUS
ZR X2,CKSTATS IF NOT BUSY AND NO ERROR
SX2 X2-1
NZ X2,ABORT ATTACH ERROR
ROLLOUT CKSW
SX2 1 BUSY STATUS
EQ CKSTATS
CKSW DATA 7700000100B
CLREPR SPACE 4
** CLREPR - CLEAR ERROR PROCESSING BIT IN THE FET
*
* ENTRY A1/X1=FET+1 AND CONTENTS
CLREPR DATA 0 ENTRY/EXIT
SX6 B1 MASK FOR EPR
LX6 44
BX6 -X6*X1
SA6 A1
EQ CLREPR
* /--- BLOCK SOURCEY 00 000 81/04/02 11.09
DMPI SPACE 4
** DMPI - INCREMENT DUMP DIR. RECORD NUMBER/DATASET
* ABORT WITH MESSAGE IF OUT OF ROOM
DMPI DATA 0 ENTRY/EXIT
RJ DMPX INCREMENT
PL X6,DMPI IF NO ERROR
EQ DERR1 ERROR MESSAGE
DMPX SPACE 4
** DMPX - INCREMENT DUMP DIRECTORY
* X6.LT.0 IF ERROR
DMPX DATA 0
SA1 CNOR CURRENT NUM OF RECORDS
SA2 DNOR MAX NUMBER OF RECORDS
SX7 X1+B1 INCREMENT
IX6 X2-X7
SA7 A1
PL X6,DMPX IF NO NEW DATASET NEEDED
SX7 B1
SA7 A7 CURRENT RECORD = 1
SA1 CNUM CURRENT DATASET NUMBER
SX7 X1+B1
SA2 DNUM MAX NUMBER
IX6 X2-X7
NG X6,DMPX NOT ENOUGH DATASETS
NZ X6,DMPX1 IF NOT LAST DATASET
SA3 DNORL NUMBER OF RECORDS
BX6 X3
SA6 DNOR
DMPX1 SA7 A1
SA1 DNAM BASE NAME
LX7 DSHF SHIFT FOR NAME
IX1 X7+X1 MERGE
RJ DSET ATTACH DATASET
MX6 0 OK RESPONSE
EQ DMPX EXIT
INIT SPACE 4
** INIT - INITIALIZE PARAMETERS
INIT DATA 0 ENTRY/EXIT
SETTL TIMEL SET TIME LIMIT
SETPR PRIOR SET PRIORITY
SA1 PARAM+PBASE DATABASE NAME
SA2 PARAM+PDNUM NUMBER OF DATASETS
BX6 X1
BX7 X2
SA6 DNAM
SA7 DNUM
SA1 PARAM+PNREC NUMBER OF RECORDS
SA2 PARAM+PLREC NUMBER OF RECORDS(LAST DATASET)
BX6 X1
BX7 X2
SA6 DNORA
SA7 DNORL
SA1 PARAM+PPAGE PAGE SIZE
BX6 X1
SA6 PAGE
SA6 CPAG
EQ INIT
INTD SPACE 4
** INTD - INITIALIZE DUMP DIRECTORY POINTERS
* SET TO FILE 0, LAST BLOCK
INTD DATA 0 ENTRY/EXIT
SA1 DNORA DATASET NUMBER OF RECORDS
MX7 0
BX6 X1
SA6 CNOR
SA7 CNUM DATASET NUMBER
SA6 DNOR
EQ INTD EXIT
* /--- BLOCK SOURCEY 00 000 81/03/05 08.20
RDPARAM SPACE 4
** RDPARAM - READ PARAMETER BLOCK
RDPARAM DATA 0 ENTRY/EXIT
RJ ZPARAM ZERO PARAMETER AREA
REWIND I
READ I,R
READW I,PARAM,MBPARM*BLKSZE
EQ RDPARAM EXIT
TRIPMSG SPACE 4
** TRIPMSG - WRITE A MESSAGE TO THE DAYFILE 3 TIMES
*
* X6 - ADDRESS OF MESSAGE
TRIPMSG DATA 0
SA6 TRSAVE
MESSAGE X6
SA1 TRSAVE
MESSAGE X1
SA1 TRSAVE
MESSAGE X1
EQ TRIPMSG
TRSAVE DATA 0
WRITAUD SPACE 4
** WRITE AUDIT TRAIL BACK TO PLATO
WRITAUX RJ DDET DETACH DATASET
WRITAUD DATA 0 ENTRY/EXIT
MESSAGE WRAM
REWIND A,R REWIND FILE
READ A,R INITIALIZE READING OF FILE
RJ ATTA ATTACH
WRA1 SA1 ARCT INCREMENT CURRENT RECORD COUNT
SX7 X1+B1
SA7 A1
SX6 X1-AUDCNT SEE IF DONE
PL X6,WRITAUX DONE
RJ ZPARAM ZERO PARAMETER AREA
READW A,PARAM,AUDBLK READ DATA
NZ X1,WRA2 IF EOR, EOF, EOI
SA1 ARCT RECORD COUNT
BX6 X1 CURRENT RECORD COUNT
SX7 B1 RECORD LENGTH = 1
SX1 PARAM MEMORY LOCATION
RJ DOUT WRITE TO PLATO
EQ WRA1 GET NEXT RECORD
WRA2 SA1 ARCT RECORD COUNT
BX6 X1 CURRENT RECORD COUNT
SX7 B1 RECORD LENGTH = 1
SX1 PARAM MEMORY LOCATION
RJ DOUT WRITE TO PLATO
SA1 ARCT INCREMENT CURRENT RECORD COUNT
SX7 X1+B1
SA7 A1
SX6 X1-AUDCNT SEE IF DONE
PL X6,WRITAUX DONE
RJ ZPARAM ZERO PARAMETER AREA
EQ WRA2 LOOP FOR ALL REMAINING RECORDS
WRAM DIS ,*WRITING AUDIT TRAIL*
* /--- BLOCK SOURCEY 00 000 81/03/23 13.10
WRITDMP SPACE 4
** WRITE DUMP DIRECTORY BACK TO PLATO
WRITDMP DATA 0 ENTRY/EXIT
MESSAGE WRDM
REWIND O,R REWIND FILE
READ O,R INITIALIZE READING OF FILE
RJ INTD INITIALIZE DUMP POINTERS
WRD1 RJ DMPI INCREMENT DUMP DIR. RECORD NUM.
SA5 DREC NUMBER OF WORDS / RECORD
READW O,DBUF,X5
NZ X1,WRD2 IF EOR
SA1 CNOR BEGINNING RECORD
SX7 B1 RECORD COUNT
BX6 X1
SX1 DBUF MEMORY LOCATION
RJ DOUT WRITE IT OUT
EQ WRD1 BACK FOR MORE
WRD2 SA1 DREC RECORD SIZE
SB7 X1+DBUF LAST WORD TO BE SET TO O77...76
SX7 -1
WRD3 SA7 B6
SB6 B6+B1
LT B6,B7,WRD3
SA1 CNOR BEGINNING RECORD
SX7 B1 RECORD COUNT
BX6 X1
SX1 DBUF MEMORY LOCATION
RJ DOUT WRITE IT OUT
SX7 -1 FILL REST OF PAGE WITH 77...76
SB6 DBUF
SA1 DREC
SB7 X1+DBUF
WRD4 SA7 B6
SB6 B6+B1
LT B6,B7,WRD4
SX6 11
SA6 TEMP RECORD COUNT
WRD5 SA1 TEMP
SX6 X1-1
NG X6,WRITDMP IF DONE
SA6 A1+
RJ DMPI NEXT RECORD
SA1 CNOR CURRENT RECORD NUMBER
SX7 B1 WRITE ONE RECORD
BX6 X1
SX1 DBUF BEGINNING ADDRESS
RJ DOUT WRITE IT OUT
EQ WRD5
WRDM DIS ,*WRITING DUMP DIRECTORY*
* /--- BLOCK SOURCEY 00 000 81/03/04 11.00
WRITS0B SPACE 4
** WRITE S0BACKC BACK TO PLATO
WRITS0X RJ DDET DETACH DATASET
WRITS0B DATA 0 ENTRY/EXIT
MESSAGE WRSM
REWIND I,R REWIND FILE
READ I,R INITIALIZE READING OF FILE
RJ DATT ATTACH
WRS1 SA1 SRCT INCREMENT CURRENT RECORD COUNT
SX7 X1+B1
SA7 A1
SX6 X1-MBALL SEE IF DONE
PL X6,WRITS0X DONE
RJ ZPARAM ZERO PARAMETER AREA
READW I,PARAM,BLKSZE READ DATA
NZ X1,WRS2 IF EOR, EOF, EOI
SA1 SRCT RECORD COUNT
BX6 X1 CURRENT RECORD COUNT
SX7 B1 RECORD LENGTH = 1
SX1 PARAM MEMORY LOCATION
RJ DOUT WRITE TO PLATO
EQ WRS1 GET NEXT RECORD
WRS2 SA1 SRCT RECORD COUNT
BX6 X1 CURRENT RECORD COUNT
SX7 B1 RECORD LENGTH = 1
SX1 PARAM MEMORY LOCATION
RJ DOUT WRITE TO PLATO
SA1 SRCT INCREMENT CURRENT RECORD COUNT
SX7 X1+B1
SA7 A1
SX6 X1-MBALL SEE IF DONE
PL X6,WRITS0X DONE
RJ ZPARAM ZERO PARAMETER AREA
EQ WRS2 LOOP FOR ALL REMAINING RECORDS
WRSM DIS ,*WRITING S0BACKC*
ZPARAM SPACE 4
** ZPARAM - ZERO PARAMETER BLOCK
ZPARAM DATA 0 ENTRY/EXIT
SB7 MBPARM*BLKSZE-1 NUMBER OF WORDS - 1
SB6 PARAM FWA
SX7 0
ZPR1 SA7 B7+B6 STORE WORD
SB7 B7-B1 DECREMENT COUNTER
PL B7,ZPR1 IF NOT DONE
EQ ZPARAM EXIT
* /--- BLOCK SOURCEY 00 000 81/02/25 12.43
TITLE PLATO DATASET ATTACH, READ WRITE ROUTINES
** DSET - ATTACH DATASET
*
* X1=DATASET NAME
*
* EXIT IF ALREADY ATTACHED
* ABORT IF ERROR
DSETX SA1 DST4 SEE IF CLEAR MESSAGE NEEDED
ZR X1,DSET
MX6 0 CLEAR FLAG
SA6 A1
SX6 CMSG
RJ BDIS CLEAR B DISPLAY
DSET DATA 0 ENTRY/EXIT
BX7 X1 DATASET NAME
SA1 DSNAME OLD DATASET NAME
IX6 X7-X1
ZR X6,DSET EXIT IF ALREADY ATTACHED
SA7 A1 SAVE FOR LATER
DST1 SA1 DARG1 ARGUMENT LIST
RJ =XDATASET ATTACH DATASET
SB1 1 RESTORE
SA1 DERROR SEE IF ERROR STATUS
NG X1,DSETX IF NO ERROR
SX6 X1-13 SEE IF ATTACHED EARLIER
ZR X6,DST2
SX1 X1-2 SEE IF ATTACHED ELSEWARE
NZ X1,DST3
SA6 DST4 FLAG TO CLEAR WAITING MESSAGE
SX6 DWAIT WAITING MESSAGE
RJ BDIS
EQ DST1
DST2 RJ DDET DETACH IT
EQ DST1 REATTACH IT
DST3 MESSAGE DMATT ATTACH ERROR MESSAAGE
RJ DMAM DATASET NAME
RJ DMEM ERROR STATUS
EQ ABORT
DST4 DATA 0 FLAG FOR WAITING MESSAGE
DOUT SPACE 4
** DOUT - DATAOUT ROUTINES
*
* X1 - CENTRAL MEMORY LOCATION
* X6 - STARTING RECORD
* X7 - NUMBER OF RECORDS
DOUT DATA 0 ENTRY/EXIT
RJ DPAR STORE PARAMETERS
RJ =XDATAOUT WRITE OUT DATA
SB1 1 RESTORE
SA1 DERROR LOOK AT STATUS
NG X1,DOUT IF NO ERROR
MESSAGE DMWRM DATAOUT ERROR MESSAGE
*
* ERROR MESSAGES AND ABORT
*
DINX RJ DMAM DATASET NAME
RJ DMEM ERROR STATUS
RJ DBGM BEGINNING RECORD NUMBER
RJ DNRM NUMBER OF RECORDS
EQ ABORT ABORT
* /--- BLOCK SOURCEY 00 000 81/03/04 11.02
DDET SPACE 4
** DDET - DETACH DATASET
*
* DETACHES LAST DATASET
DDET DATA 0 ENTRY/EXIT
SA1 DARG3 ARGUMENT LIST
RJ =XDETACH DETACH DATASET
SB1 1 RESTORE
SX7 0
SA7 DSNAME CLEAR NAME
EQ DDET
DPAR SPACE 4
** DPAR - STORE PARAMETERS
*
* X1 - CENTRAL MEMORY LOCATION
* X6 - STARTING RECORD
* X7 - NUMBER OF RECORDS
DPAR DATA 0 ENTRY/EXIT
SA6 DBR BEGINNING RECORD
SA7 DNR NUMBER OF RECORDS
BX6 X1 MEMORY ADDRESS
SA6 DA2M
SA1 DARG2 PARAMETER LIST
EQ DPAR
BDIS SPACE 4
** BDIS - SENT MESSAGE TO THE B DISPLAY ONLY
*
* X6=ADDRESS OF MESSAGE
BDIS DATA 0 ENTRY/EXIT
SA6 DARG4 STORE ARGUMENT
SA1 DARG4
RJ =XBDISP
SB1 1 RESTORE
EQ BDIS
* /--- BLOCK SOURCEY 00 000 81/02/26 13.12
DMAM SPACE 4
** DMAM - OUTPUT DATASET NAME INTO DAYFILE
DMAM DATA 0 ENTRY/EXIT
SA1 DSNAME GET CURRENT DATASET NAME
BX6 X1
SA6 DMNAX STORE IN ERROR MESSAGE
MESSAGE DMNAM
EQ DMAM
DMEM SPACE 4
** DMEM - OUTPUT ERROR STATUS INTO DAYFILE
DMEM DATA 0 ENTRY/EXIT
SA1 DERROR GET ERROR STATUS
RJ CDD CONVERT
SA6 DMERX STORE IN ERROR MESSAGE
MESSAGE DMERR
EQ DMEM
DBGM SPACE 4
** DBGM - OUTPUT BEGIN RECORD INTO DAYFILE
DBGM DATA 0 ENTRY/EXIT
SA1 DBR GET BEGINNING RECORD NUMBER
RJ CDD CONVERT
SA6 DMBGX STORE IN ERROR MESSAGE
MESSAGE DMBGR
EQ DBGM
DNRM SPACE 4
** DNRM - OUTPUT NUMBER OF RECORDS INTO DAYFILE
DNRM DATA 0 ENTRY/EXIT
SA1 DNR GET NUMBER OF RECORDS
RJ CDD CONVERT
SA6 DMNRX STORE IN ERROR MESSAGE
MESSAGE DMNRC
EQ DNRM
* ERROR MESSAGES
DMATT DIS ,* ERROR IN ATTACHING DATASET*
DMWRM DIS ,* ERROR IN WRITING DATASET*
DMNAM DATA 10H DATASET
DATA 10HNAME =
DMNAX DATA 0
DATA 0
DMERR DATA 10H ERROR ST
DATA 10HATUS =
DMERX DATA 0
DATA 0
DMBGR DATA 10H BEGINNIN
DATA 10HG RECORD =
DMBGX DATA 0
DATA 0
DMNRC DATA 10H ENDING R
DATA 10HECORD =
DMNRX DATA 0
DATA 0
* ARGUMENT LISTS AND VARIABLES
DWAIT DATA 10HWAITING FO
DATA 10HR FILE -
DSNAME DATA 0 DATASET NAME
DATA 0 END OF MESSAGE
DERROR DATA 0 RETURN STATUS
DM1 DATA -1 WRITE PERMISSION
DBR DATA 0 BEGINNING RECORD NUMBER
DNR DATA 0 NUMBER OF RECORDS
CMSG DATA 1L CLEAR MESSAGE
DARG1 VFD 60/DSNAME ARGUMENT LIST FOR ATTACH
VFD 60/DERROR
VFD 60/DM1
DATA 0
DARG2 VFD 60/DBR ARG. LIST FOR DATAIN/DATAOUT
DA2M VFD 60/0 MEMORY LOCATION STORED HERE
VFD 60/DNR
VFD 60/DERROR
DATA 0
DARG3 VFD 60/DSNAME ARGUMENT LIST FOR DETACH
DATA 0
DARG4 VFD 60/0 B DISPLAY ARGUMENT
DATA 0
* /--- BLOCK SOURCEY 00 000 81/04/02 11.10
ATTA SPACE 4
** ATTA - ATTACH AUDIT TRAIL DATASET (S0BACKA)
ATTA DATA 0 ENTRY/EXIT
SA1 ATTN DATASET NAME
RJ DSET ATTACH
EQ ATTA EXIT
ATTN DATA 7LS0BACKA
DATT SPACE 4
** DATT - ATTACH BACKUPS DATASET (S0BACKC)
DATT DATA 0 ENTRY/EXIT
SA1 DATN DATASET NAME
RJ DSET ATTACH
EQ DATT EXIT
DATN DATA 7LS0BACKC
END SPACE 4
** END - END PROGRAM.
END BSS 0 END PROGRAM
ENDRUN
DERR1 MESSAGE DMERR1
ABORT SX6 MSG1
RJ TRIPMSG
SX6 MSG2
RJ TRIPMSG
MESSAGE MSG3
SX6 MSG2
RJ TRIPMSG
SX6 MSG1
RJ TRIPMSG
ABORT
SPACE 4
* MESSAGES
DMERR1 DIS ,* NOT ENOUGH DUMP DIRECTORY DATASETS*
MSG1 DIS ,Z ******************************Z
MSG2 DIS ,Z *** ***Z
MSG3 DIS ,Z *** ERRORS ***Z
SPACE 4
* COMMON DECKS.
*CALL COMCCIO
*CALL COMCRDW
*CALL COMCSYS
*CALL COMCWTW
*CALL COMCCDD
*CALL COMCCPM
SPACE 4
* BUFFERS.
BUFFERS BSS 0
TEMP BSSZ 1 RECORD COUNT
DBUF BSSZ 500 BUFFER FOR DUMP DIRECTORY
IBUF BSSZ IBUFL CIRCULAR BUFFER FOR I
OBUF BSSZ OBUFL CIRCULAR BUFFER FOR O
ABUF BSSZ ABUFL CIRCULAR BUFFER FOR A
PARAM BSSZ MBPARM*BLKSZE PARAMETER TABLE
END BACKCPY