BACKMOD
* /--- FILE TYPE = E
* /--- BLOCK SOURCEZ 00 000 81/04/29 11.25
BACKMOD
IDENT BACKMOD,BEGIN,BACKMOD
ENTRY BACKMOD
SYSCOM B1 DEFINE (B1) = 1
*COMMENT MODIFY BACKUP FILES FROM CONSOLE
COMMENT COPYRIGHT CONTROL DATA CORP. 1980.
TITLE MODIFY BACKUP FILES FROM CONSOLE
SPACE 4
*** MODIFY BACKUP FILES FROM CONSOLE
* J. J. BUCHMANN. 80/06/17.
*
*FUNCTION;
* THIS PROGRAM CAN BE USED TO MAKE CHANGES TO THE BACKUP
* PARAMETERS, SLOT TABLE, REQUIRED PACKS TABLE OR PLACE
* MESSAGES ABOUT TAPES IN THE VSN TABLE. THE INFORMATION
* IN ALL THESE TABLES IS SHOWN ON A K-DISPLAY.
*
* CHANGES MAY BE MADE TO THE PARAMETERS SHOWN, BUT THE
* CHANGES WILL NOT BE WRITTEN TO BACK TO THE DISK UNLESS
* A K.WR COMMAND IS ISSUED.
*
* AN ON-LINE LISTING OF ALL PARAMETERS MAYBE DISPLAYED
* BY TYPING KK.
*
*K-DISPLAY PARAMETERS;
* K.GI SHOW GENERAL INFORMATION PAGE
* K.RP SHOW REQUIRED PACKS TABLE
* K.ST SHOW SLOT TABLE
* K.VS SHOW VSN TABLE
* K.ND=N CHANGE THE NUMBER OF PLATO DUMP DIRECTORY
* DATASETS.
* K.RR REREAD PARAMETERS FILE FROM DISK
* K.WR WRITE PARAMETERS FILE TO DISK
* K.STOP OR K.END EXIT FROM PROGRAM (NO WRITE TO DISK)
* K.+ PAGE THROUGH ENTRIES
*
* ON REQUIRED PACKS PAGE;
* K.N=PACK STORE PACK NAME *PACK* AT ENTRY N
*
* ON SLOT TABLE PAGE;
* K.M=N STORE *N* AT SLOT ENTRY M
* K.DA=N SET DAILY CYCLE NUMBER TO N
* K.WK=M SET WEEKLY CYCLE NUMBER TO M
* K.SS SETUP SLOT TABLE ACCORDING TO THE DA/WK
* PARAMETERS
*
* ON THE VSN TABLE PAGE;
* K.M=MESSAGE SET *MESSAGE* TO BE STORE LATER
* K.N START DISPLAY AT ENTRY N
* K.SL=M DISPLAY ENTRIES WITH SLOT VALUE=M. THIS
* ALSO LIMIT WHERE MESSAGES CAN BE STORED.
* K.N= STORE MESSAGE AT ENTRY N
* K.M-N STORE MESSAGE AT ENTRIES M THROUGH N
* K.1-4000 STORE MESSAGE AT ALL VSN ENTRIES
*
*ERROR MESSAGES;
* ERROR IN PARAMETERS
*
*INTERNAL ERROR MESSAGES; NONE
* /--- BLOCK SOURCEZ 00 000 81/05/07 06.51
SPACE 4
*CALL COMCMAC
*CALL COMCDCM
*CALL COMCCMD
*CALL PLASMPC
**** ASSEMBLY CONSTANTS.
MAXK545 EQU 35 MAX LINES ON CC545 K-DISPLAY
MAXK721 EQU 20 MAX LINES ON 721 K-DISPLAY
IBUFL EQU 2001B IFILE BUFFER LENGTH
OBUFL EQU 2001B OFILE BUFFER LENGTH
ABUFL EQU 2001B AFILE BUFFER LENGTH
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
SLOTSZE EQU MBSLOT*BLKSZE SIZE OF SLOT TABLE
AUDBLK EQU 300 BLOCK SIZE FOR AUDIT TRAIL
AUDCNT EQU 13 NUMBER OF BLOCKS/AUDIT TRAIL
USERI EQU 377773B USER INDEX FOR FILES
TIMEL EQU 7777B TIME LIMIT
PRIOR EQU 41B PRIORITY
* OFFSETS WITHIN PARAMETER BLOCK
PDATE EQU 0 LAST BACKUP DATE
PTIME EQU 1 LAST BACKUP TIME
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
PLABW EQU 6 WORDS IN LOOK-ASIDE BUFFER
PMAXS EQU 8 MAXIMUM NUMBER OF SLOTS
PPAGE EQU 9 PAGE SIZE
PREQP EQU 50 REQUIRED PACKS TABLE
BEGIN BSS 0
FETS BSS 0
I BSS 0
S0BACKC RFILEB IBUF,IBUFL,(FET=13D),EPR
* DATA WORDS
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
TITLE MAIN LOOP
* MAIN LOOP
BACKMOD BSS 0 ENTRY POINT
SB1 1 FOREVER CONSTANT
RJ INIT INITIALIZE AND GET ARGS
RJ ATTFILE ATTACH FILES
RJ RDPARAM READ S0BACKC
RJ KDISP DO K-DISPLAY
EQ END
* /--- BLOCK SOURCEZ 00 000 81/03/18 10.00
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,,,W 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 SOURCEZ 00 000 81/04/21 09.19
GTW SPACE 4
** GTW - GET WORD
*
* THIS ROUTINE EXTRACTS UP TO TEN CHARACTERS FROM
* A CONTROL CARD AREA. ALL WORDS ARE SEPARATED
* BY DELIMITERS (ANY CHARACTER .GT. 9 EXCEPT BLANK).
*
* ENTRY B1 = 1
* A4/X4 = CHARACTERS TO BE EXTRACTED FROM
* B6 = SHIFT COUNT (INITIALLY 0)
*
* EXIT X1 = WORD THAT WAS EXTRACTED
* X2 = DELIMITER
* IF X2 .LT. 0 - MORE THAN 10 CHARS IN WORD
* IF X2 .EQ. 0 - END OF CARD
* B5 = 60-(N*6) WHERE N IS THE NUMBER OF
* CHARACTERS FOUND IN THE WORD
* A4/X4/B6 SET FOR NEXT WORD
*
* USES A-4
* X-1,2,3,4
* B-5,6,7
GTW DATA 0 ENTRY/EXIT
MX1 0 INITIAL SETTINGS
SB5 60
SB7 B5
GTW1 SB6 B6+6 NEXT CHARACTER
GT B6,B7,GTW2 IF NEW WORD NEEDED
MX2 -6 CHARACTER MASK
LX4 6 SHIFT TO NEXT CHARACTER
BX2 -X2*X4
ZR X2,GTW END OF CARD
SX3 X2-1R TEST FOR BLANKS
ZR X3,GTW1A
SX3 X2-1R9-1
PL X3,GTW IF DELIMITER
GTW1A SB5 B5-6 DECREASE CHARACTER SHIFT COUNT
NG B5,GTW3 IF MORE THAN 10 CHARS.
LX2 X2,B5 SHIFT TO PROPER LOCATION
BX1 X1+X2 MERGE
EQ GTW1 GET NEXT CHARACTER
GTW2 SA4 A4+B1 GET NEXT WORD
SB6 B0
EQ GTW1
GTW3 BX2 -X2 ERROR FLAG
EQ GTW EXIT
INIT SPACE 4
** INIT - INITIALIZE
INIT DATA 0 ENTRY/EXIT
SETTL TIMEL SET TIME LIMIT
SETPR PRIOR SET PRIORITY
SB6 LSCR CLEAR BUFFERS
SB7 BEND-LSCR
RJ ZERO
*
* GET ARGUMENTS
*
SA1 ACTR ARG COUNT
SB4 X1
SA4 ARGR FIRST ARG
SB5 ARGTBL ARG TABLE
RJ ARG
NZ X1,INITERR ERROR IN ARGUMENTS
SA1 INITM MODIFY COMCARG FOR 10 CHARS
BX6 X1
SA6 ARG5
SA1 Z SEE IF EXTENDED PARAMETERS
ZR X1,INIT
SX5 CCDR CONTROL CARD AREA
RJ PRA EXTRACT EXTENDED PARAMETERS
NZ X6,INITERR IF ERROR IN CARD
SB5 ARGTBL ARG TABLE ADDRESS
RJ ARG
NZ X1,INITERR ERROR IN ARGUMENTS
EQ INIT
* /--- BLOCK SOURCEZ 00 000 81/04/22 07.19
INITM BX7 X3+X6 INSTRUCTIONS MODIFIED AT ARG5
SA7 B2+
SB3 B2-B3
INITERR MESSAGE INMSG
EQ ABORT
INITPAR SPACE 4
** INITPAR - INITIALIZE PARAMETER BLOCK
*
* SETS DATE OF LAST BACKUP TO *NEVER*
* DATASET BASE NAME TO *D0*
* NUMBER OF DATASETS TO 7
* NUMBER OF RECORDS IN DATASETS TO 142
* MAX. NUMBER OF SLOTS TO 30
* PAGE SIZE TO 3000
* SETUP SLOT TABLE(DAILY=6, WEEKLY=24 DEFAULT)
INITPAR DATA 0 ENTRY/EXIT
SB6 PARAM ZERO EVERYTHING
SB7 MBALL*BLKSZE
RJ ZERO
SA1 =5LNEVER SET DATE OF LAST BACKUP
SA2 =2LD0 DATASET BASE NAME
BX6 X1
BX7 X2
SA6 PARAM+PDATE
SA7 PARAM+PBASE
SX6 7 NUMBER OF DATASETS
SA6 PARAM+PDNUM
SX6 142 NUMBER OF RECORDS/DATASET
SA6 PARAM+PNREC
SA6 PARAM+PLREC
SX6 30 MAX NUMBER OF SLOTS
SA6 PARAM+PMAXS
SX6 3000 PAGE SIZE
SA6 PARAM+PPAGE
RJ SETSLOT SETUP SLOT TABLE
EQ INITPAR EXIT
MVEB SPACE 4
** MVEB - MOVE BITES INTO A BUFFER
*
* ENTRY X6=BITS TO BE MOVED (LEFT JUSTIFIED)
* B7=NUMBER OF BITS TO MOVE
* MVBS=3/2,9/CURRENT BIT COUNT,30/0,
* 18/CURRENT ADDRESS
*
* EXIT BITS MOVED
* MVBS UPDATED
MVEB DATA 0 ENTRY/EXIT
SA2 MVBS GET CURRENT POINTER
SB5 60 NUMBER OF BITS IN A WORD
UX2 X2,B6 EXTRACT CURRENT BIT COUNT
SB4 B6+B7 TOTAL BITS AFTER STORE
GT B4,B5,MVEB1 IF ANOTHER WORD IS NEEDED
RJ MVEW STORE THIS WORD
EQ MVEB EXIT
MVEB1 BX5 X6 SAVE BITS TO BE STORED
SB2 B7 AND BIT COUNT
SB7 B5-B6 NUMBER OF BITS IN THIS WORD
SB4 B5 TOTAL FIRST WORD
RJ MVEW STORE FIRST WORD
LX6 B7,X5 SHIFT OFF THE ALREADY STORED
SB7 B2-B7 REMAINING BIT COUNT
SB6 B0 STARTING BIT COUNT
SB4 B6+B7 FINISH BIT COUNT
RJ MVEW SECOND WORD
EQ MVEB EXIT
MVEW SPACE 4
** MVEW - MOVE BITS IN ONE WORD
*
* ENTRY X6=BITS TO BE MOVED (LEFT JUSTIFIED)
* B7=NUMBER OF BITS TO MOVE
* B5=60
* A2=MVBS
* X2=CURRENT WORD ADDRESS
* /--- BLOCK SOURCEZ 00 000 81/04/21 10.10
* B6=CURRENT BIT COUNT
* B4=B6+B7 - MUST BE .LE. 60
MVEW DATA 0 ENTRY/EXIT
SA1 X2 GET CURRENT WORD
MX7 1 FORM MASK TO STRIP OFF BITS
SB3 B7-B1
AX7 B3
BX6 X7*X6 ISOLATE BITS TO BE STORED
SB3 B5-B6 SHIFT COUNT FOR BITS
LX6 B3 SHIFT TO PROPER LOCATION
BX6 X6+X1 MERGE
SA6 A1 STORE
EQ B5,B4,MVEW1 IF JUST ONE WORD
PX6 X2,B4 UPDATE MVBS
SA6 A2
EQ MVEW EXIT
MVEW1 SX2 X2+B1 NEXT WORD
PX6 X2,B0 BIT COUNT = 0
SA6 A2
MX7 0 CLEAR NEXT WORD
SA7 X2
EQ MVEW
MVBS DATA 0 CURRENT ADDRESS AND BIT COUNT
PRA SPACE 4
** PRA - EXTRACT PARAMETERS BEYOND PERIOD
*
* EXTRACT PARAMETERS FROM CONTROL CARD AREA
*
* ENTRY B1 = 1
* X5 = ADDRESS OF CONTROL CARD
*
* EXIT X6 = 0 ALL OK, -1 IF ERROR
* ARGUMENTS AT ARGR
* A4/X4 = FIRST ARGUMENT
* B4 = NUMBER OF ARGUMENTS
*
* USES A-4
* X-1,2,3,4,6,7
* B-3,4,5,6,7
*
* CALLS GTW
PRA DATA 0 ENTRY/EXIT
SA4 X5 CONTROL CARD AREA
SB6 0 INITIAL SHIFT COUNT
PRA1 RJ GTW GET NEXT WORD
NG X2,PRAX ERROR - MORE THAN 10 CHARS.
ZR X2,PRAX ERROR - NULL WORD
SX7 X2-1R.
ZR X7,PRA2 IF PERIOD
SX7 X2-1R)
NZ X7,PRA1 IF NOT )
PRA2 SB3 ARGR LOCATION TO STORE ARGS
PRA3 RJ GTW GET NEXT WORD
NG X2,PRAX ERROR - MORE THAN 10 CHARS
ZR X1,PRA5 IF END OF CARD
SX7 X2-1R= SEE IF = IS DELIMITER
SX6 0
NZ X7,PRA3A IF NOT =
SX6 1R= ADD = CHARACTER TO WORD
EQ PRA4 MERGE
PRA3A SX7 X2-1R- SEE IF - IS DELIMITER
NZ X7,PRA4 IF NOT -
SX6 1R- ADD - CHARACTER TO WORD
PRA4 BX6 X6+X1 MERGE
SA6 B3 STORE ARGUMENT
SB3 B3+B1 ADVANCE ARG POINTER
NZ X2,PRA3 IF NOT END OF CARD
PRA5 SB4 B3-ARGR NUMBER OF ARGUMENTS
SA4 ARGR FIRST ARGUMENT
MX6 0 OK EXIT
EQ PRA
PRAX MX6 59 ERROR EXIT
EQ PRA
* /--- BLOCK SOURCEZ 00 000 81/04/21 08.19
RDPARAM SPACE 4
** RDPARAM - READ PARAMETER BLOCK AND REST OF S0BACKC
RDPARAM DATA 0 ENTRY/EXIT
SB6 PARAM FWA
SB7 MBALL*BLKSZE NUMBER OF WORDS TO ZERO
RJ ZERO ZERO PARAMETER AREA
REWIND I,R
READ I,R
READW I,PARAM,MBALL*BLKSZE
EQ RDPARAM EXIT
SETSLOT SPACE 4
** SETSLOT - SETUP SLOT TABLE
*
* ENTRY DA=DAILY COUNT
* WK=WEEKLY COUNT
* EXIT SLOT TABLE SET AS FOLLOWS';
* 1,1,2,...,DA,DA+1,1,2,...,DA,DA+2,1,2,...
* DA+3,1,2..........,DA,DA+WK
SETSLOT DATA 0 ENTRY/EXIT
SA1 DA GET DAILY COUNT
SA2 WK GET WEEKLY COUNT
IX7 X1+X2 CHECK PARAMETERS
SX6 X1+B1
SX7 X7-31 SEE IF .GT. 30
PL X7,SETSLOT IF TOO BIG
IX7 X6*X2
SX3 B0 INITIAL COUNT
SX7 X7-SLOTSZE-1
PL X7,SETSLOT IF TOO BIG FOR BUFFER
SB6 SLOT CLEAR SLOT TABLE
SB7 SLOTSZE
RJ ZERO
SX7 1 SLOT 0 = 1
SA7 SLOT
SS1 SX7 1 BEGIN DAILY CYCLE
SS2 SA7 A7+B1 STORE NEXT DAILY
SX7 X7+1 BUMP COUNT
IX6 X1-X7
PL X6,SS2 IF MORE DAILY TO DO
SX3 X3+B1 BUMP WEEKLY COUNT
IX6 X2-X3
NG X6,SETSLOT IF ALREADY DONE
IX7 X3+X1 GET WEEKLY SLOT NUMBER
SA7 A7+B1 STORE IN NEXT SLOT
NZ X6,SS1 IF NOT DONE - RESTART DAILY
EQ SETSLOT EXIT
* /--- BLOCK SOURCEZ 00 000 81/04/21 07.57
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
WRPARAM SPACE 4
** WRPARAM - WRITE PARAMETER BLOCK AND REST OF S0BACKC
WRPARAM DATA 0 ENTRY/EXIT
REWIND I,R
WRITEW I,PARAM,MBALL*BLKSZE
WRITER I,R
WRITEF I,R
EQ WRPARAM EXIT
ZERO SPACE 4
** ZERO - ZERO BUFFER
*
* ENTRY B1=1
* B6=FWA
* B7=NUMBER OF WORDS TO ZERO
*
* EXIT X7=0
* BUFFER ZEROED
*
* USES A-7
* X-7
* B-6,7
ZERO DATA 0 EMTRY/EXIT
MX7 0
SB7 B7-B1
NG B7,ZERO
ZRO1 SA7 B6+B7
SB7 B7-B1
PL B7,ZRO1
EQ ZERO
* /--- BLOCK SOURCEZ 00 000 81/03/13 11.41
TITLE K-DISPLAY ROUTINES
BLANK SPACE 4
** BLANK - MOVE BLANK LINE TO K DISPLAY
BLANK DATA 0 ENTRY/EXIT
SB6 =1L MOVE BLANK LINE
RJ MOVEL
EQ BLANK
BLDRP SPACE 4
** BLDRP - BUILD REQUIRED PACK ENTRY FOR K DISPLAY
BLDRP DATA 0 ENTRY/EXIT
SA1 BUILDC GET COUNTER
SX1 X1+1
SX6 X1-MXDSU+1
PL X6,BLDRP IF TOO LARGE
RJ OUT3 OUTPUT AS 3 CHARACTERS
RJ OUTPER OUTPUT PERIOD
SA1 BUILDC OUTPUT PACK NAME
SX6 X1+B1 INCREMENT COUNTER
SA6 A1
SA1 X1+REQPK
RJ SFN
SB7 60
RJ MVEB
EQ BLDRP
BLDSL SPACE 4
** BLDSL - BUILD SLOT TABLE ENTRY FOR K DISPLAY
BLDSL DATA 0 ENTRY/EXIT
SA1 BUILDC GET COUNTER
SX6 X1-366
PL X6,BLDSL IF OVER A YEAR
RJ OUT3 OUTPUT AS 3 CHARACTERS
RJ OUTPER OUTPUT PERIOD
SA1 BUILDC OUTPUT SLOT NUMBER
SA1 X1+SLOT
ZR X1,BLDSL3 IF ZERO, OUTPUT BLANKS
RJ OUT3
BLDSL1 SA1 BUILDC SEE IF SLOT .EQ. COUNTER
SA2 SLOT
SX6 X1+B1 INCREMENT COUNTER
SA6 A1
ZR X1,BLDSL2 IF ZERO SLOT
IX6 X1-X2 SEE IF MATCH ON SLOT
ZR X6,BLDSL2
SB7 6 OUTPUT ONE BLANK
RJ OUTBLK
EQ BLDSL
BLDSL2 SA1 =1L* OUTPUT STAR
BX6 X1
SB7 6
RJ MVEB
EQ BLDSL
BLDSL3 SB7 18 OUTPUT 3 BLANKS
RJ OUTBLK
EQ BLDSL1
* /--- BLOCK SOURCEZ 00 000 81/03/10 11.59
BLDVS SPACE 4
** BLDVS - BUILD VSN ENTRY FOR K DISPLAY
BLDVS DATA 0 ENTRY/EXIT
SX6 X2+B1 INCREMENT COUNTER
SA6 A2
SX1 X6
BX6 X3 SAVE ENTRY
SA6 BUILDY
SA3 A3-B1 GET FIRST WORD OF VSN ENTRY
BX6 X3 SAVE IT ALSO
SA6 A6+B1
RJ OUT4 OUTPUT VSN ENTRY NUMBER
RJ OUTPER OUTPUT PERIOD
SA1 BUILDY GET VSN NAME
MX7 6 TEST TOP CHARACTER
BX6 X7*X1
NZ X6,BLDVS1 IF PACK NAME
SA1 =5L T OUTPUT T FOR TAPE
SB7 30
BX6 X1
RJ MVEB
SA1 BUILDY
LX1 6
MX7 36 MASK NAME
EQ BLDVS2
BLDVS1 SA1 =5L D OUTPUT D FOR DISK
SB7 30
BX6 X1
RJ MVEB
SA1 BUILDY
MX7 42 MASK NAME
BLDVS2 BX1 X7*X1
RJ SFN OUTPUT PACK NAME
SB7 42
RJ MVEB
SA1 BUILDY+1 GET SLOT
MX7 -12 MASK SLOT
BX1 -X7*X1
RJ OUT4
SA1 BUILDY
AX1 14 EXTRACT YEAR
MX7 -4
BX1 -X7*X1
SX1 X1+80 ADD OFFSET
RJ OUT4
RJ OUTDIV OUTPUT /
SA1 BUILDY
AX1 10 EXTRACT MONTH
MX7 -4
BX1 -X7*X1
SX1 X1+10000
RJ OUT2
RJ OUTDIV OUTPUT /
SA1 BUILDY
AX1 5 EXTRACT DAY
MX7 -5
BX1 -X7*X1
SX1 X1+10000
RJ OUT2
SB7 12
RJ OUTBLK OUTPUT 2 BLANKS
SA1 BUILDY
MX7 -5 EXTRACT HOUR
BX1 -X7*X1
RJ OUT2
SB7 12
RJ OUTBLK OUTPUT 2 BLANKS
SA1 BUILDY+1 OUTPUT MESSAGE
MX7 8*6
BX1 X7*X1
RJ SFN
SB7 8*6
RJ MVEB
EQ BLDVS EXIT
* /--- BLOCK SOURCEZ 00 000 81/03/13 09.59
BUILDO SPACE 4
** BUILDO - BUILD OUTPUT LINE
BUILDX SX6 -1 END OF DISPLAY EXIT
BUILDO DATA 0 ENTRY/EXIT
SB6 BUILD FWA
SB7 7 NUMBER OF WORDS
RJ ZERO CLEAR BUILD BUFFER
SX7 B6
PX7 B0
SA7 MVBS POINTER TO BUFFER
SA1 DI
SA2 BUILDC GET COUNTER
ZR X1,BUILDX IF GENERAL INFO
SX1 X1-1
NZ X1,BUI1 IF NOT REQUIRED PACKS
SX2 X2-MXDSU SEE IF DONE
PL X2,BUILDX
RJ BLDRP BUILD REQUIRED PACK LINE
RJ BLDRP
RJ BLDRP
RJ BLDRP
MX6 0 NOT FINISHED FLAG
EQ BUILDO EXIT
BUI1 SX1 X1-1
NZ X1,BUI2 IF NOT SLOT TABLE
SX2 X2-366 SEE IF DONE
PL X2,BUILDX
RJ BLDSL BUILD SLOT TABLE OUTPUT LINE
RJ BLDSL
RJ BLDSL
RJ BLDSL
RJ BLDSL
RJ BLDSL
RJ BLDSL
MX6 0 NOT FINISHED FLAG
EQ BUILDO EXIT
BUI2 SX1 X1-1
NZ X1,BUILDO IF NOT VSN TABLE
BUI3 SX3 X2-4000 SEE IF DONE
PL X3,BUILDX
IX3 X2+X2 DOUBLE ENTRY NUMBER
SA3 X3+VSN+1 LOOK FOR ENTRY
NZ X3,BUI4
SX2 X2+B1
EQ BUI3
BUI4 SA4 S SEE IF SLOT SELECTED
ZR X4,BUI5 IF NON SELECTED
SA1 A3-B1 GET THIS SLOT NUMBER
MX6 -12
BX1 -X6*X1
IX1 X1-X4 SEE IF THE SAME
ZR X1,BUI5 PROCESS THIS ENTRY
SX2 X2+B1 ADVANCE TO NEXT ENTRY
EQ BUI3
BUI5 RJ BLDVS BUILD VSN TABLE ENTRY
MX6 0 NOT FINISHED FLAG
EQ BUILDO EXIT
BUILDC DATA 0 BUILD COUNTER
BUILDY DATA 0,0 SAVE ENTRIES
* /--- BLOCK SOURCEZ 00 000 81/04/21 08.44
GENINFO SPACE 4
** GENINFO - GENERAL INFOMATION PAGE
GENINFO DATA 0 ENTRY/EXIT
SA1 PARAM+PDATE GET DATE OF LAST BACKUP
SA2 PARAM+PTIME GET TIME
BX6 X1
BX7 X2
SA6 PAR2
SA7 A6+B1
SB6 PAR1 MOVE BACK DATE/TIME TO K-DISP
RJ MOVEL
RJ BLANK BLANK LINE
SA1 PARAM+PDNUM GET NUMBER OF DATASETS
RJ CDD
SA6 PAR8
SB6 PAR7 MOVE TO KDISP
RJ MOVEL
RJ BLANK BLANK LINE
SA1 SLOT GET SLOT POINTER
RJ CDD
SA6 PAR4
SB6 PAR3 MOVE TO KDISP
RJ MOVEL
SA1 SLOT GET SLOT VALUE
SA1 X1+SLOT
RJ CDD
SA6 PAR6
SB6 PAR5 MOVE TO KDISP
RJ MOVEL
RJ BLANK
EQ GENINFO GENERAL INFO PAGE
* /--- BLOCK SOURCEZ 00 000 81/04/21 08.11
KDISP SPACE 4
** DO K-DISPLAY
KDISP DATA 0 ENTRY/EXIT
RJ SETPAR SET UP PARAMETERS
NZ X4,INITERR IF ERROR IN PARAMS
KDSP1 RJ SETK SET UP K-DISPLAY PARAMETERS
SA1 DI SEE DISPLAY MODE
NZ X1,KDSP2 IF NOT GENERAL PARAMETERS
RJ GENINFO GENERAL INFO DISPLAY
EQ KDSP3
KDSP2 RJ BUILDO BUILD OUTPUT LINE
NG X6,KDSP3 IF END OF DISPLAY
SB6 BUILD
RJ MOVEL MOVE TO K-DISPLAY BUFFER
ZR X6,KDSP2 IF NO OUTPUT TO TRANSFER
EQ KDSP4
KDSP3 SB6 0 END OF DISPLAY
RJ MOVEL
ZR X6,KDSP1 START OVER IF +
KDSP4 SA1 =10HXXXXXXXXX. SET UP FAKE CONTROL CARD
SX5 KFILL
BX6 X1
SA6 X5
RJ PRA STRIP OFF PARAMETERS
NZ X6,KDSP5 IF ERROR IN PARAMETERS
MX7 6 SEE IF FIRST CHARACTER NUMERIC
BX7 X7*X4
LX7 6
SX7 X7-1R0
PL X7,KDSP6 IF POSSIBLE NUMERIC
SA1 =3LEND
SA2 =4LSTOP
SA3 =10LINITIALIZE
BX6 X4-X1
BX7 X4-X2
ZR X6,KDISP
ZR X7,KDISP
BX6 X4-X3
ZR X6,KDSP18
SB5 ARGT ARG TABLE ADDRESS
RJ ARG
NZ X1,KDSP5 ERROR IN PARAMETERS
RJ SETBUF SET UP BUFFER
RJ SETPAR SET UP PARAMETERS
ZR X4,KDSP1 IF NO ERROR IN PARAMS
KDSP5 RJ SETBUF SET UP BUFFER PARAMS
RJ SETK
SB6 INMSG ERROR IN PARAMS MESSAGE
RJ MOVEL
EQ KDSP3
* /--- BLOCK SOURCEZ 00 000 81/04/21 06.51
KDSP6 MX5 42 MASK OFF NUMBER
BX5 X5*X4
SX7 B4 SAVE NUMBER OF ARGS
SB7 B1 ASSUME DECIMAL
SA7 KDSPX
RJ DXB CONVERT
NZ X4,KDSP5 IF ERROR
NG X6,KDSP5 IF NEGATIVE VALUE
SA1 KDSPX GET ARG COUNT
SX1 X1-1
NZ X1,KDSP9 IF MORE THAN ONE ARG
SA2 ARGR GET FIRST ARGUMENT
SX2 X2-1R= SEE IF EQUAL SEPARATOR
ZR X2,KDSP8
SX2 X2-1R-+1R= SEE IF MINUS SEPARATOR
ZR X2,KDSP5 ERROR IF - AND ONLY ONE ARG.
SA2 DI SEE DISPLAY MODE
SX2 X2-2
ZR X2,KDSP7 IF SLOT TABLE DISPLAY
ZR X6,KDSP7 IF ZERO SELECTED
SX6 X6-1 DECREMENT FOR PROPER VALUE
KDSP7 SA6 A1+ SAVE ENTRY VALUE
RJ SETBUF SET UP BUFFERS
RJ SETK SET UP K DISPLAY PARAMETERS
SA1 KDSPX SET UP ENTRY COUNTER
BX6 X1
SA6 BUILDC
EQ KDSP2
KDSP8 SX7 0 SET UP DUMMY SECOND ARGUMENT
SA7 ARGR+1
KDSP9 SA1 ARGR GET FIRST ARGUMENT
SX2 X1-1R=
SX3 X1-1R-
ZR X2,KDSP10 IF = SEPARATOR
NZ X3,KDSP5 IF ERROR
KDSP10 SA6 KDSPX SAVE ENTRY NUMBER
SA5 A1+B1 GET NEXT ARGUMENT
SB7 B1 ASSUME DECIMAL
SA1 DI GET DISPLAY MODE
ZR X1,KDSP5 IF GENERAL INFO.
SX1 X1-2 SEE IF SLOT TABLE
NZ X1,KDSP12 IF NOT SLOT TABLE
RJ DXB CONVERT
NZ X4,KDSP5 IF ERROR
NG X6,KDSP5 IF ILLEGAL SLOT VALUE
SA1 KDSPX GET SLOT ENTRY NUMBER
SX2 X1-366
PL X2,KDSP5 IF ENTRY NUMBER TO BIG
ZR X1,KDSP11 IF ZERO SLOT ENTRY
SX5 X6-31
PL X5,KDSP5 IF SLOT VALUE TOO BIG
SA6 X1+SLOT
EQ KDSP1
KDSP11 SX5 X6-366
PL X5,KDSP5 IF SLOT VALUE TOO BIG
SA6 X1+SLOT
EQ KDSP1
KDSP12 PL X1,KDSP13 IF NOT REQUIRED PACKS TABLE
SX1 X6-MXDSU+1 SEE IF ENTRY NUMBER TOO LARGE
PL X1,KDSP5
ZR X6,KDSP5 IF ENTRY NUMBER ZERO
BX7 X5 STORE ENTRY
SA7 X6+REQPK-1
EQ KDSP1
* /--- BLOCK SOURCEZ 00 000 81/04/21 09.17
* VSN TABLE
KDSP13 ZR X6,KDSP5 ILLEGAL ENTRY NUMBER
SX1 X6-4001
PL X1,KDSP5 ILLEGAL ENTRY NUMBER
ZR X2,KDSP14 IF ONLY ONE TO SET
NZ X3,KDSP5 IF NOT MINUS SEPARATOR
RJ DXB CONVERT SECOND ARGUMENT
NZ X4,KDSP5 IF ERROR
NG X6,KDSP5 IF NEGATIVE ENTRY NUMBER
KDSP14 SA5 KDSPX FIRST ENTRY VALUE
IX7 X6-X5 COMPARE FIRST AND SECOND ENTRY
NG X7,KDSP5 SECOND .LT. FIRST
SX1 X6-4001
PL X1,KDSP5 ENTRY NUMBER TOO LARGE
SA4 MESS MESSAGE TO STORE
SA3 S SPECIFIED SLOT NUMBER
MX2 48 MESSAGE/SLOT MASK
BX4 X2*X4 ISOLATE MESSAGE
KDSP15 IX1 X5+X5 OFFSET IN SLOT TABLE
SA1 X1+VSN-1 GET ENTRY
ZR X1,KDSP17 IF NULL ENTRY
SA1 A1-B1 MESSAGE ENTRY
BX7 -X2*X1 SLOT NUMBER
IX1 X7-X3 COMPARE SLOTS
ZR X3,KDSP16 IF ALL SLOTS ALLOWED
NZ X1,KDSP17 IF WRONG SLOT
KDSP16 BX7 X4+X7 MERGE MESSAGE AND SLOT
SA7 A1+ STORE IN VSN
KDSP17 SX5 X5+B1 GO TO NEXT VSN ENTRY
IX1 X6-X5 COMPARE WITH LAST
PL X1,KDSP15 IF NOT DONE
EQ KDSP1 SHOW SCREEN
KDSP18 RJ INITPAR INITIALIZE PARAMETER BLOCK
EQ KDSP1
KDSPX DATA 0 NUMBER OF ARGS
* /--- BLOCK SOURCEZ 00 000 81/04/21 10.38
MOVEL SPACE 4
** MOVEL - MOVE CODED LINE TO LEFT SCREEN BUFFER
*
* MOVES A CODED LINE TO LEFT DISPLAY BUFFER IF ROOM.
* IF NO ROOM, OUTPUT MESSAGE *+ FOR MORE*, AND
* WAIT FOR KEYBOARD INPUT. IF INPUT =*+*, THEN
* ZERO BUFFER AFTER HEADER AND MOVE LINE.
*
* ENTRY B1=1
* B6=ADDRESS OF CODED LINE
* IF B6=0, END MESSSAGE SENT
* WLINE, WHDR, LLINE, LHDR SET(INIT. 0,1,0,0)
*
* EXIT X6=0, LINE MOVED OK
* X6.NE.0, INFORMATION IN KEYBOARD BUFFER
* WLINE, LLINE RESET
MOVEL DATA 0 ENTRY/EXIT
MVL1 ZR B6,MVL7 IF END MESSAGE
MX7 -12 CHARACTER MASK
SB7 B0 WORD COUNTER
MVL2 SA1 B6+B7 GET NEXT WORD
BX6 -X7*X1 SEE IF BOTTOM 12 BITS ARE ZERO
ZR X6,MVL3 IF END OF LINE
SB7 B7+B1 BUMP WORD COUNT
EQ MVL2
MVL3 SA1 WLINE CURRENT WORD COUNT
SB7 B7+B1 CORRECT WORD COUNT FOR LINE
SX6 X1+B7 TOTAL INCLUDING THIS LINE
SX7 X6-1000B-3
PL X7,MVL5 IF NOT ENOUGH ROOM IN BUFFER
SA6 A1 UPDATE WORD COUNT
SA2 LLINE UPDATE NUMBER OF LINES
SX6 X2+B1
SA6 A2
SB4 B0 MOVE COUNTER
SA3 MAXK CHECK IF TOO MANY LINES
IX6 X2-X3
PL X6,MVL5
SB5 X1+LSCR FIRST STOREAGE ADDRESS
MVL4 SA1 B6+B4 NEXT WORD TO TRANSFER
BX6 X1
SA6 B5+B4 STORE IN LEFT SCREEN BUFFER
SB4 B4+B1 BUMP COUNTER
LT B4,B7,MVL4 IF NOT DONE
MX6 0 OK FLAG
EQ MOVEL EXIT
MVL5 SA2 =10L+ FOR MORE MORE INFO MESSAGE
MVL6 BX6 X2
SX7 B6 SAVE FWA OF MESSAGE
SA6 LSCR+X1 PUT IN SCREEN BUFFER
SA7 LSAVE
SB6 A6+B1 ZERO REST OF SCREEN BUFFER
SB7 X1-777B
SB7 -B7
RJ ZERO
RJ WAINP WAIT FOR KEYBOARD INPUT
NZ X6,MOVEL EXIT WITH ERROR FLAG
RJ SETBUF SET UP BUFFER
SA1 LSAVE RESTORE FWA OF LINE
SB6 X1
MX6 0
ZR B6,MOVEL EXIT IF END MESSAGE
EQ MVL1 TRY IT AGAIN
MVL7 SA2 =3LEND END MESSAGE
SA1 WLINE WORD COUNT
EQ MVL6 MOVE END MESSAGE
* /--- BLOCK SOURCEZ 00 000 81/03/10 12.23
OUTBLK SPACE 4
** OUTBLK - OUTPUT BLANKS
*
* B7=6*CHAR COUNT
OUTBLK DATA 0 ENTRY/EXIT
SA1 =10H BLANKS
BX6 X1
RJ MVEB
EQ OUTBLK
OUTDIV SPACE 4
** OUTDIV - OUTPUT DIVIDE SIGN (/)
OUTDIV DATA 0 ENTRY/EXIT
SA1 =1L/ OUTPUT DIVIDE SIGN
BX6 X1
SB7 6
RJ MVEB
EQ OUTDIV
OUTPER SPACE 4
** OUTPER - OUTPUT PERIOD
OUTPER DATA 0 ENTRY/EXIT
SA1 =1L. OUTPUT PERIOD
BX6 X1
SB7 6
RJ MVEB
EQ OUTPER
OUT2 SPACE 4
** OUT2 - OUTPUT 2 CHARACTERS
*
* ENTRY X1=NUMBER TO BE PUT IN BUILD BUFFER
OUT2 DATA 0 ENTRY/EXIT
RJ CDD CONVERT
LX6 6*8 OUTPUT 2 CHARACTERS
SB7 12
RJ MVEB
EQ OUT2
OUT3 SPACE 4
** OUT3 - OUTPUT 3 CHARACTERS
*
* ENTRY X1=NUMBER TO BE PUT IN BUILD BUFFER
OUT3 DATA 0 ENTRY/EXIT
RJ CDD CONVERT
LX6 6*7 OUTPUT 3 CHARACTERS
SB7 18
RJ MVEB
EQ OUT3
OUT4 SPACE 4
** OUT4 - OUTPUT 4 CHARACTERS
*
* ENTRY X1=NUMBER TO BE PUT IN BUILD BUFFER
OUT4 DATA 0 ENTRY/EXIT
RJ CDD CONVERT
LX6 6*6 OUTPUT 4 CHARACTERS
SB7 24
RJ MVEB
EQ OUT4
SETBUF SPACE 4
** SETBUF - SET UP BUFFER
*
* ZEROS NON-HEADER PORTION OF BUFFER
* ZERO KEYBOARD BUFFER
* SETS POINTER TO REFLECT HEADER
SETBUF DATA 0 ENTRY/EXIT
SA1 WHDR ZERO BUFFER AND SET LINE COUNT
SA2 LHDR
BX6 X1
BX7 X2
SA6 WLINE
SA7 LLINE
SB6 X1+LSCR
SB7 X1-1000B - WORD COUNT
SB7 -B7
RJ ZERO
SB6 KBUF ZERO KEYBOARD BUFFER
SB7 KEND-KBUF
RJ ZERO
EQ SETBUF
* /--- BLOCK SOURCEZ 00 000 81/03/10 09.05
SETK SPACE 4
** SETK - SET UP K-DISPLAY PARAMETERS
SETK DATA 0 ENTRY/EXIT
.NOS23 IFGE "MODLEVEL",617D
CSTATUS CTYPE GET CONSOLE TYPE
SA1 CTYPE
MX6 12
BX1 X6*X1
ZR X1,SETK0 IF CC545 CONSOLE
SX6 MAXK721 RESET MAX LINES
SA6 MAXK
.NOS23 ENDIF
SETK0 SX6 B1 SET UP SCREEN BUFFERS
SA6 WLINE NUMBER OF WORDS
LX6 48
SX7 0
SA7 LLINE LINE COUNT
SA6 LSCR SET DISPLAY MODES
SA6 RSCR
SB6 PLINE MOVE HEADER LINES
RJ MOVEL
SB6 =1L
RJ MOVEL
SA1 DI SEE WHICH DISPLAY
NZ X1,SETK1 IF NOT GENERAL INFO
SB6 LINE1
RJ MOVEL
SB6 LINE2
RJ MOVEL
EQ SETKX FINISH UP
SETK1 SX1 X1-1
NZ X1,SETK2 IF NOT REQUIRED PACKS TABLE
SB6 LINE3
RJ MOVEL
SB6 LINE4
RJ MOVEL
EQ SETKX FINISH UP
SETK2 SX1 X1-1
NZ X1,SETK3 IF NOT SLOT TABLE
SB6 LINE5
RJ MOVEL
SB6 LINE6
RJ MOVEL
EQ SETKX FINISH UP
SETK3 BSS 0 VSN TABLE
SB6 LINE7
RJ MOVEL
SB6 LINE8
RJ MOVEL
SETKX SA1 WLINE NUMBER OF WORDS IN HEADER
BX6 X1
SA6 WHDR
SX6 4 NUMBER OF LINES IN HEADER
SA6 LHDR
SX6 B0 CLEAR BUILD COUNTER
SA6 BUILDC
CONSOLE CMA CALL CONSOLE
EQ SETK
CTYPE BSS 1
* /--- BLOCK SOURCEZ 00 000 81/04/21 09.12
SETPAR SPACE 4
** SETPAR - SETUP PARAMETERS
*
* CONVERT DATE/SLOT PARAMETERS
*
* EXIT X4=0 IF OK, X4.NE.0 IF ERROR
SETPAR DATA 0 ENTRY/EXIT
SA5 RR SEE IF REREAD REQUESTED
ZR X5,SETP1 NO
MX6 0
SA6 A5 CLEAR FLAG
RJ RDPARAM REREAD DATA
SETP1 SA5 WR SEE IF WRITE REQUESTED
ZR X5,SETP2 NO
MX6 0
SA6 A5 CLEAR FLAG
RJ WRPARAM WRITE DATA
SETP2 SA5 SLT CONVERT SLOT
SX6 B1
IX6 X5-X6
MX4 0 EXIT FLAG
SB7 B1 BASE FLAG = DECIMAL
ZR X6,SETP3
RJ DXB CONVERT
SETP3 NZ X4,SETPAR IF ERROR
SA6 S STORE CONVERTED NUMBER
SA5 DAF CONVERT DAILY
SX6 B1
IX6 X5-X6
MX4 0 EXIT FLAG
SB7 B1 BASE FLAG = DECIMAL
ZR X6,SETP4
RJ DXB CONVERT
NZ X4,SETPAR IF ERROR
SA6 DA STORE CONVERTED NUMBER
SETP4 SA5 WKF CONVERT WEEKLY
SX6 B1
IX6 X5-X6
MX4 0 EXIT FLAG
SB7 B1 BASE FLAG = DECIMAL
ZR X6,SETP5
RJ DXB CONVERT
NZ X4,SETPAR IF ERROR
SA6 WK STORE CONVERTED NUMBER
SETP5 SA1 DA ADD DAILY AND WEEKLY
SA2 WK
IX4 X1+X2
SX4 X4-30 COMPARE WITH MAXIMUM
ZR X4,SETP6 IF 30 EXACTLY
PL X4,SETPAR IF .GT. 30 (ERROR)
SETP6 SA5 SS SEE IF SET SLOT SELECTED
ZR X5,SETP7 NO
MX6 0
SA6 A5 CLEAR FLAG
RJ SETSLOT SET SLOT
SETP7 SA5 ND CONVERT NUMBER OF DATASETS
SX6 B1
IX6 X5-X6
MX4 0 EXIT FLAG
SB7 B1 BASE FLAG = DECIMAL
ZR X6,SETPAR
SX7 B1 CLEAR ND FLAG
SA7 A5
RJ DXB CONVERT
NZ X4,SETPAR IF ERROR
SA6 PARAM+PDNUM STORE CONVERTED NUMBER
EQ SETPAR
* /--- BLOCK SOURCEZ 00 000 81/04/21 10.17
WAINP SPACE 4
** WAINP - WAIT FOR KEYBOARD INPUT
*
* EXIT X6=0, FIRST CHARACTER OF INPUT IS A *+*
WAINP DATA 0
SX6 0
SA6 KBUF ZERO KEYBOARD BUFFER
WAI1 RECALL WAIT FOR USER INPUT
SA1 KBUF SEE IF USER INPUT
ZR X1,WAI1 IF NO INPUT
MX6 6 SEE IF *+*
BX6 X6*X1
LX6 6
SX6 X6-1R+
EQ WAINP
TITLE TERMINATION PROGRAMS
* END PROGRAM
END ENDRUN
ABORT SX6 MSG1
RJ TRIPMSG
SX6 MSG2
RJ TRIPMSG
MESSAGE MSG3
SX6 MSG2
RJ TRIPMSG
SX6 MSG1
RJ TRIPMSG
ABORT
TITLE MESSAGES, BUFFERS, DATA AREAS AND COM DECKS
* DISPLAY MESSAGES
INMSG DIS ,* ERROR IN PARAMETERS.*
MSG1 DIS ,Z ******************************Z
MSG2 DIS ,Z *** ***Z
MSG3 DIS ,Z *** ERRORS ***Z
PLINE DIS ,* BACKUP TABLES*
LINE1 DIS ,* GENERAL INFORMATION*
LINE2 DIS ,* *
LINE3 DIS ,* REQUIRED PACKS TABLE*
LINE4 DIS ,* *
LINE5 DIS ,* SLOT TABLE*
LINE6 DIS ,*SLOT 0 IS A POINTER TO THE CURRENT SLOT*
LINE7 DIS ,* VSN TABLE*
LINE8 DIS ,* T/D VSN SLOT DATE HR MESSAGE*
PAR1 DATA 20HBACKUPS LAST RUN AT
PAR2 DATA 0 DATE
DATA 0 TIME
DATA 0
PAR7 DATA 20HNUMBER OF DATASETS
PAR8 DATA 0
DATA 0
PAR3 DATA 20HCURRENT SLOT POINTER
PAR4 DATA 0
DATA 0
PAR5 DATA 20HCURRENT SLOT VALUE
PAR6 DATA 0
DATA 0
* /--- BLOCK SOURCEZ 00 000 81/04/21 08.46
* ARGUMENT TABLE
ARGTBL BSS 0
ARGT BSS 0
VFD 12/2LRP,18/ONE,30/DI
VFD 12/2LGI,18/ZRO,30/DI
VFD 12/2LND,18/ONE,30/ND
VFD 12/2LST,18/TWO,30/DI
VFD 12/2LVS,18/THREE,30/DI
VFD 12/2LSL,18/ONE,30/SLT
VFD 12/2LDA,18/ONE,30/DAF
VFD 12/2LWK,18/ONE,30/WKF
VFD 12/2LRR,18/ONE,30/RR
VFD 12/2LWR,18/ONE,30/WR
VFD 12/2LSS,18/ONE,30/SS
VFD 12/1LM,18/ZRO,30/MESS
ARGTBLE DATA 0 END OF TABLE
* COUNTERS AND PARAMETERS
Z DATA 0 EXTENDED PARAMETER FLAG
S DATA 0 SLOT VALUE
ND DATA 1 NUMBER OF DATASETS FLAG
SLT DATA 0 SLOT FLAG
RR DATA 0 RE-READ FLAG
WR DATA 0 WRITE FLAG
SS DATA 0 SET SLOT FLAG
DAF DATA 1 DAILY FLAG
WKF DATA 1 WEEKLY FLAG
DA DATA 6 DAILY DEFAULT (6 DAILY DUMPS)
WK DATA 24 WEEKLY DEFAULT (24)
MESS DATA 0 MESSAGE AREA
ONE DATA 1 CONSTANT ONE
ZRO DATA 0 CONSTANT ZERO
TWO DATA 2 CONSTANT TWO
THREE DATA 3 CONSTANT THREE
DI DATA 0 DISPLAY FLAG
WLINE DATA 0 NUMBER OF WORDS USED IN BUFFER
LLINE DATA 0 NUMBER OF LINES IN BUFFER
WHDR DATA 1 NUMBER OF WORDS IN HEADER
LHDR DATA 0 NUMBER OF LINES IN HEADER
LSAVE DATA 0 SAVE FWA OF LINE
MAXK CON MAXK545 MAX LINES ON K-DISPLAY
CMA VFD 24/KBUF,18/RSCR,18/LSCR K-SCREEN PARAMS
* RESERVE BUFFER SPACE
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
SLOT BSSZ MBSLOT*BLKSZE SLOT TABLE
LAB BSSZ MBLAB*BLKSZE LOOK ASIDE BUFFER
VSN BSSZ MBVSN*BLKSZE VSN TABLE
REQPK EQU PARAM+PREQP REQUIRED PACKS TABLE
* SCREEN LOCATIONS
SCREEN BSSZ 2030B SCREEN BUFFERS
RSCR EQU SCREEN RIGHT SCREEN
LSCR EQU RSCR+1000B LEFT SCREEN
KFILL EQU LSCR+1000B KEYBOARD FILL IN COMMAND
KBUF EQU KFILL+1 KEYBOARD BUFFER
KEND EQU KBUF+9 END OF KEYBOARD BUFFER
BUILD EQU KEND BUILD OUTPUT LINE
BEND EQU BUILD+7 END OF BUFFERS
* /--- BLOCK SOURCEZ 00 000 81/04/29 09.09
* COMMON DECKS.
*CALL COMCCIO
*CALL COMCRDS
*CALL COMCRDW
*CALL COMCSYS
*CALL COMCWTS
*CALL COMCWTW
*CALL COMCCDD
*CALL COMCWOD
*CALL COMCMVE
*CALL COMCSFN
*CALL COMCCPM
*CALL COMCPFM
*CALL COMCLFM
*CALL PLACARG
*CALL COMCDXB
ORG RSCR+1
DIS ,* BACKMOD PARAMETER HELP SEQUENCE*
DIS ,* *
DIS ,* K.GI. GENERAL INFORMATION PAGE*
DIS ,* K.ND=N - SET THE NUMBER OF DATASETS*
DIS ,* *
DIS ,* K.RP. REQUIRED PACKS PAGE*
DIS ,* K.N=PACK - STORE PACKNAME AT N*
DIS ,* *
DIS ,* K.ST. SLOT TABLE PAGE*
DIS ,* K.N=M - STORE M AT SLOT N*
DIS ,* K.DA=M - SET DAILY CYCLE*
DIS ,* K.WK=M - SET WEEKLY CYCLE*
DIS ,* K.SS - SET SLOT TABLE USING DA AND WK*
DIS ,* SLOT 0 IS POINTER TO NEXT SLOT TO USE*
DIS ,* *
DIS ,* K.VS. VSN TABLE PAGE*
DIS ,* K.SL=NN - SELECT SLOT ENTRIES*
DIS ,* K.M=MESSAGE - SETUP MESSAGE FOR VSN(S)*
DIS ,* K.N START DISPLAY AT VSN ENTRY N*
DIS ,* K.N= STORE MESSAGE AT VSN ENTRY N*
DIS ,* K.1-4000 STORE MESSAGE AT ALL ENTRIES*
DIS ,* K.M-N STORE MESSAGE AT ENTRIES M - N*
DIS ,* MESSAGES WILL ONLY BE STORED AT VSNS WITH*
DIS ,* CORRECT SLOT VALUES IF K.SL=NN SELECTED*
DIS ,* *
DIS ,* K.RR. REREAD FROM DISK - K.WR WRITE TO DISK*
DIS ,* K.INITIALIZE. INITIALIZE*
DIS ,* K.STOP. OR K.END. - EXIT.*
DIS ,* *
DIS ,* K.+ WILL ADVANCE THE ENTRIES OR START OVER*
DIS ,* IF AT THE END OF THE ENTRIES*
DATA 0
ORG *
END BACKMOD