plato:source:plaopl:backmod
Table of Contents
BACKMOD
Table Of Contents
- [00010] MODIFY BACKUP FILES FROM CONSOLE
- [00122] MAIN LOOP
- [00133] SUBROUTINES
- [00135] ATTFILE - ATTACH PERMANENT FILES
- [00164] CKSTATS - CHECK FILE STATUS FOR BUSY
- [00186] CLREPR - CLEAR ERROR PROCESSING BIT IN THE FET
- [00199] GTW - GET WORD
- [00249] INIT - INITIALIZE
- [00289] INITPAR - INITIALIZE PARAMETER BLOCK
- [00322] MVEB - MOVE BITES INTO A BUFFER
- [00354] MVEW - MOVE BITS IN ONE WORD
- [00390] PRA - EXTRACT PARAMETERS BEYOND PERIOD
- [00445] RDPARAM - READ PARAMETER BLOCK AND REST OF S0BACKC
- [00457] SETSLOT - SETUP SLOT TABLE
- [00496] TRIPMSG - WRITE A MESSAGE TO THE DAYFILE 3 TIMES
- [00512] WRPARAM - WRITE PARAMETER BLOCK AND REST OF S0BACKC
- [00522] ZERO - ZERO BUFFER
- [00544] K-DISPLAY ROUTINES
- [00546] BLANK - MOVE BLANK LINE TO K DISPLAY
- [00554] BLDRP - BUILD REQUIRED PACK ENTRY FOR K DISPLAY
- [00573] BLDSL - BUILD SLOT TABLE ENTRY FOR K DISPLAY
- [00608] BLDVS - BUILD VSN ENTRY FOR K DISPLAY
- [00686] BUILDO - BUILD OUTPUT LINE
- [00753] GENINFO - GENERAL INFOMATION PAGE
- [00951] MOVEL - MOVE CODED LINE TO LEFT SCREEN BUFFER
- [01023] OUTBLK - OUTPUT BLANKS
- [01034] OUTDIV - OUTPUT DIVIDE SIGN (/)
- [01044] OUTPER - OUTPUT PERIOD
- [01054] OUT2 - OUTPUT 2 CHARACTERS
- [01066] OUT3 - OUTPUT 3 CHARACTERS
- [01078] OUT4 - OUTPUT 4 CHARACTERS
- [01090] SETBUF - SET UP BUFFER
- [01114] SETK - SET UP K-DISPLAY PARAMETERS
- [01181] SETPAR - SETUP PARAMETERS
- [01251] WAINP - WAIT FOR KEYBOARD INPUT
- [01267] TERMINATION PROGRAMS
- [01281] MESSAGES, BUFFERS, DATA AREAS AND COM DECKS
Source Code
- BACKMOD.txt
- 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
plato/source/plaopl/backmod.txt ยท Last modified: 2023/08/05 18:54 by Site Administrator