plato:source:plaopl:copypf
Table of Contents
COPYPF
Table Of Contents
- [00010] COPY PLATO FILES FROM DUMPS
- [00196] ATTAUD - ATTACH AUDIT TRAIL FILE
- [00211] SUBROUTINES
- [00213] CKSTATS - CHECK FILE STATUS FOR BUSY
- [00235] CLREPR - CLEAR ERROR PROCESSING BIT IN THE FET
- [00248] GETPN - ATTACH FILE ON PACK *PN*
- [00268] GTW - GET WORD
- [00319] INIT - INITIALIZE
- [00370] INITFIL - INITIALIZE FOR FILE RECOVERY
- [00403] INITPCK - INITIALIZE PACKNAME/VSN FOR MASTER FILE
- [00437] INITPT - INITIALIZE POINTERS
- [00458] PRA - EXTRACT PARAMETERS BEYOND PERIOD
- [00510] RTF - REQUEST TAPE FILE
- [00634] SETEB - SETUP EXTENDED LABEL BUFFER
- [00659] SETEPR - SET ERROR PROCESSING BIT IN THE FET
- [00671] ZERO - ZERO BUFFER
- [00693] PROCESS MF DATA
- [01050] PLATO FILE ATTACH, READ WRITE ROUTINES
- [01051] SETF - ATTACH FILE
- [01095] DRD - DATAIN ROUTINES
- [01115] DWR - DWRITE ROUTINES
- [01132] DDET - DETACH FILE
- [01143] DPAR - STORE PARAMETERS
- [01158] BDIS - SENT MESSAGE TO THE B DISPLAY ONLY
- [01171] DMAM - OUTPUT FILE NAME INTO DAYFILE
- [01181] DMEM - OUTPUT ERROR STATUS INTO DAYFILE
- [01191] DBGM - OUTPUT BEGIN RECORD INTO DAYFILE
- [01201] DNRM - OUTPUT NUMBER OF RECORDS INTO DAYFILE
- [01263] K-DISPLAY ROUTINES
- [01265] BUILDO - BUILD OUTPUT LINE
- [01479] MOVEL - MOVE CODED LINE TO LEFT SCREEN BUFFER
- [01554] SETBUF - SET UP BUFFER
- [01577] SETK - SET UP K-DISPLAY PARAMETERS
- [01649] SETPAR - SETUP PARAMETERS
- [01683] SETSTK - SET PARAMETERS IN STACK
- [01705] WAINP - WAIT FOR KEYBOARD INPUT
- [01892] MESSAGES, BUFFERS, DATA AREAS AND COM DECKS
Source Code
- COPYPF.txt
- COPYPF
- * /--- FILE TYPE = E
- * /--- BLOCK COPYPFX 00 000 81/04/29 11.32
- COPYPF
- IDENT COPYPF,BEGIN,COPYPF
- ENTRY COPYPF
- SYSCOM B1 DEFINE (B1) = 1
- *COMMENT COPY PLATO FILES FROM DUMPS
- COMMENT COPYRIGHT CONTROL DATA CORP. 1980.
- TITLE COPY PLATO FILES FROM DUMPS
- SPACE 4
- *** COPY PLATO FILES FROM DUMPS
- * J. J. BUCHMANN. 80/06/17.
- *
- *FUNCTION;
- * THIS PROGRAM HAS TWO MODES OF OPERATION, SINGLE PLATO
- * FILE RECOVERY, AND MASTERFILE RECOVERY MODE. THE MODE
- * OF OPERATION DEPENDS ON THE *FF* PARAMETER ON THE
- * CONTROL CARD. IF *FF* IS PRESENT, THEN SINGLE FILE
- * MODE IS SELECTED, IF NOT PRESENT, THEN MASTERFILE MODE
- * IS SELECTED.
- *
- * IN SINGLE FILE MODE, ALL THE PARAMETERS MUST BE
- * SPECIFIED ON THE CONTROL CARD; PLATO MUST BE UP; AND A
- * PLATO FILE CREATED (*TF* PARAMETER) OF TYPE BACKUP,
- * RESIDING IN THE SAME ACCOUNT AS THE ORIGINAL FILE, AND
- * OF THE SAME SIZE. THE COPYPF PROGRAM WILL REQUEST THE
- * TAPE/DISK (E,P DISPLAY IF THE V=VSN PARAMETER IS
- * SPECIFIED). THE TAPE/DISK WILL BE SCANNED FOR THE
- * REQUESTED FILE, AND THE FILE WILL BE RESTORED IF ALL
- * CONDITIONS FOR FILE TYEP, ACCOUNT, AND SIZE ARE MET.
- *
- * IN MASTERFILE MODE, THE PARAMETERS MAY BE PASSED ON
- * THE CONTROL CARD OR VIA THE K-DISPLAY. WHEN THE
- * PROPER MASTERFILES HAVE BEEN SELECTED FOR RECOVERY,
- * THEN A K.GO WILL START THE PROCESS. ALL MASTERFILES
- * THAT ARE TO BE RECOVERED MUST HAVE BEEN ATTACHED TO
- * THE CONTROL POINT PRIOR TO THE RECOVERY ATTEMPT. THE
- * PROGRAM WILL REQUEST TAPES/PACKS VIA THE E,P DISPLAY.
- * THE OPERATOR CONTINUES TO MOUNT THE TAPE/PACKS AS
- * NEEDED UNTIL ALL REQUESTED MASTERFILES HAVE BEEN
- * RECOVERED.
- *
- * AN ON-LINE LISTING OF ALL PARAMETERS MAYBE DISPLAYED
- * BY TYPING KK.
- *
- *PARAMETERS;
- * SINGLE PLATO FILE RECOVERY MODE;
- * V=VSN REQUEST LABELED TAPE (VSN=LABEL)
- * FF=XXXXXX FROM FILE NAME (PLATO FILE NAME ON TAPE)
- * TF=XXXXXX TO FILE NAME (CURRENT PLATO FILE NAME)
- * IF NOT SPECIFIED, DEFAULT = FF
- *
- * MASTERFILE RECOVERY MODE;
- * PN=PACK PACKNAME TO BE RECOVERED
- * MF=MASTER MASTERFILE NAME TO BE RECOVERED
- * DA=MMDD MONTH AND DAY TO BE RECOVERED
- * SL=NN SLOT VALUE TO BE USED
- *
- * K-DISPLAY PARAMETERS (MASTERFILE MODE ONLY);
- * PN,MF,DA,SL SAME AS ABOVE
- * GO BEGIN PROCESSING THE RECOVERY TAPES
- *
- * /--- BLOCK COPYPFX 00 000 81/04/29 11.33
- *INFORMATIVE MESSAGES;
- * DO NOT USE BLANK LABEL TAPE (WRONG TAPE)
- * DUMP FILE ASSIGNED TO DISK (RESTART THE PROGRAM AND
- * GIVE TAPE ASSIGNMENT)
- * NO FILES SELECTED (WHEN K.GO IS ENTERED)
- * FFFFF - FILE NOT FOUND IN MASTERFILE MMMMM (FILE NOT
- * IN THIS MASTERFILE, SKIP TO NEXT MASTERFILE)
- * MMMMM - MASTERFILE NOT REQUESTED (THIS MASTERFILE WILL
- * BE SKIPPED)
- * ALL DONE
- *
- *ERROR MESSAGES;
- * ERROR IN PARAMETERS (CORRECT THE PROCEDURES)
- * TOO MANY FILES SELECTED (TO BE RESTORED - MAX. 50)
- * FIW OF TO FILE NOT BACKUP TYPE
- * TO FILE TYPE NOT BACKUP (WORD 2 OF BLOCK 0)
- * FILE SIZES DO NOT MATCH
- * FILE ACCOUNTS DO NOT MATCH
- *
- *PLATO ATTACH READ/WRITE ERROR MESSAGES;
- * WAITING FOR FILE - XXXXXX (INFORMATIVE ONLY)
- * ERROR IN ATTACHING FILE
- * ERROR IN READING FILE
- * ERROR IN WRITING FILE
- * FILE NAME = XXXXX
- * ERROR STATUS = NNNN
- * BEGINNING RECORD = NNNN
- * ENDING RECORD = NNNN
- *
- *INTERNAL ERROR MESSAGES;
- * ERROR IN PROCESSOR TABLE
- * TOO MANY FILES IN MASTER FILE
- * NAMES OF TO FILES DO NOT MATCH (FIW .VS. FILE DIRECT.)
- * NAMES OF FROM FILES DO NOT MATCH (FIW .VS. FILE DIR.)
- * FROM FILE SIZE WRONG
- * FILE NOT COMPLETELY CONTAINED IN MASTERFILE
- SPACE 4
- *CALL COMCMAC
- *CALL COMCDCM
- *CALL COMCCMD
- SPACE 4,10
- *CALL SYSCON
- SPACE 4,10
- **** ASSEMBLY CONSTANTS.
- BUFL EQU 10001B CIO BUFFER LENGTH (SMALL)
- LBUFL EQU 10001B CIO BUFFER LENGTH (LARGE)
- WORKL EQU 320*7 WORKING STORAGE BUFFER LENGTH
- CWRKH EQU 6 COMMUNICATIONS BUFFER HEADER
- CWRKF EQU 3 COMM. BUFFER FILE ENTRY
- MAXFIL EQU MFFILES MAX NUM OF FILES / MASTERFILE
- MAXK545 EQU 35 MAX LINES ON CC545 K-DISPLAY
- MAXK721 EQU 20 MAX LINES ON 721 K-DISPLAY
- MAXST EQU 50 MAX NO. OF STACK ENTRIES
- MAXST2 EQU MAXST*2 SIZE OF STACK BUFFER
- BLOCK EQU 320 BLOCK SIZE
- NUMBLK EQU 7 NUMBER OF BLOCKS/PART
- PART EQU BLOCK*NUMBLK PART SIZE
- BASE EQU 320 BASE WORD FOR BEGINNING OF INFO
- MFNM EQU BASE MASTER FILE NAME
- MFTY EQU BASE+1 MASTER FILE TYPE
- FILW EQU BASE+3 FILE WORD WITHIN FIRST BLOCK
- OFFS EQU BASE+4 FILE LIST OFFSET
- BACKTY EQU 52B BACKUP TYPE
- NAME EQU 0 FILE NAME OFFSET IN DIRECTORY
- TYPE EQU 1 FILE TYPE OFFSET
- SIZE EQU 2 FILE SIZE OFFSET
- ACCT EQU 40 ACCOUNT NAME OFFSET
- * /--- BLOCK COPYPFX 00 000 81/05/07 06.53
- USERI EQU 377773B USER INDEX FOR FILES
- TIMEL EQU 7777B TIME LIMIT
- PRIOR EQU 41B PRIORITY
- BEGIN BSS 0
- * SET UP FETS
- IF BSS 0
- MFDUMP FILEC IBUF,LBUFL,(FET=14),XL
- TB BSS 0
- ZZZZZZ FILEC TBUF,BUFL,(FET=14)
- * MAIN LOOP
- COPYPF BSS 0 ENTRY POINT
- SB1 1 FOREVER CONSTANT
- RJ INIT INITIALIZE AND GET ARGS
- CPF1 SA1 MFCT UPDATE MASTER FILE COUNT
- SX6 X1+B1
- SA6 A1
- SA1 VSNX USER REQUESTED VSN
- BX6 X1
- RJ RTF OPEN TAPE
- READ IF,R INITIALIZE READING OF FILE
- CPF2 READW IF,WORK,WORKL
- SA2 ECOUNT TRANSFER WORD COUNTS
- SX7 B6-WORK NUMBER OF WORDS READ
- BX6 X2
- SA6 WCOUNT
- IX7 X6+X7 NEW WORD COUNT
- SA7 A2
- BX7 X1 SAVE READ STATUS
- SA7 STATUS
- NG X1,CPF4 IF EOF/EOI
- NZ X1,CPF3 IF EOR
- RJ PROCESS PROCESS INFO FOR THIS BLOCK
- EQ CPF2
- CPF3 RJ PROCESS PROCESS INFO FOR THIS BLOCK
- READ IF
- EQ CPF2
- CPF4 SX5 X1+B1
- NZ X5,CPF5 IF EOI OR ERROR
- RJ PROCESS PROCESS INFO FOR THIS BLOCK
- READ IF
- EQ CPF2
- CPF5 RJ PROCESS PROCESS INFO FOR THIS BLOCK
- SA1 FF
- ZR X1,PROK6 IF DUMP MASTERFILE MODE
- MESSAGE TOOBIG
- EQ ABORT
- * /--- BLOCK COPYPFX 00 000 80/11/17 11.04
- ATTAUD SPACE 4
- ** ATTAUD - ATTACH AUDIT TRAIL FILE
- ATTAUD DATA 0 ENTRY/EXIT
- SETUI USERI USER INDEX
- PACKNAM PACK SET PACKNAME
- SA1 TB+1 SET ERROR PROCESSING BIT
- RJ SETEPR
- ATTA1 ATTACH TB,APER,,,R ATTACH AUDIT FILE
- SA1 TB CHECK STATUS FOR BUSY
- RJ CKSTATS
- NZ X2,ATTA1 IF BUSY
- SA1 TB+1 CLEAR ERROR PROCESSING BIT
- RJ CLREPR
- EQ ATTAUD
- TITLE SUBROUTINES
- 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 COPYPFX 00 000 81/01/15 07.00
- GETPN SPACE 4
- ** GETPN - ATTACH FILE ON PACK *PN*
- GETPN DATA 0 ENTRY/EXIT
- SA1 MFCT GET MF COUNT
- SA2 =5LMFDMP
- LX1 24
- BX6 X1+X2
- SA6 IF+8
- SA1 IF+1 SET EPR
- RJ SETEPR
- GETPN1 ATTACH IF,IF+8,,,R,PN
- SA1 IF
- RJ CKSTATS
- NZ X2,GETPN1
- SA1 IF+1 CLEAR EPR
- RJ CLREPR
- REWIND IF,R
- EQ GETPN
- 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
- * /--- BLOCK COPYPFX 00 000 81/01/15 06.59
- 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
- INIT4 RJ INITFIL INITIALIZE FOR SINGLE FILE MODE
- INIT DATA 0 ENTRY/EXIT
- SB6 LSCR CLEAR BUFFERS
- SB7 BEND-LSCR
- RJ ZERO
- RJ INITPT INITIALIZE POINTERS
- SETUI USERI SET USER INDEX
- SETTL TIMEL SET TIME LIMIT
- SETPR PRIOR SET PRIORITY
- *
- * 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 /COMCARG/ARG5
- SA1 Z SEE IF EXTENDED PARAMETERS
- ZR X1,INIT1
- 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
- INIT1 SA1 FF FROM FILE
- NZ X1,INIT3 IF TO FILE SPECIFIED
- INIT2 RJ KDISP DO K-DISPLAY
- EQ INIT
- INIT3 SA2 TF TO FILE
- NZ X2,INIT4 IF TO FILE SPECIFIED
- BX6 X1 SET TO = FROM
- SA6 A2
- EQ INIT4
- INITM BX7 X3+X6 INSTRUCTIONS MODIFIED AT ARG5
- SA7 B2+
- SB3 B2-B3
- INITERR MESSAGE INMSG
- EQ ABORT
- * /--- BLOCK COPYPFX 00 000 80/11/13 09.27
- INITFIL SPACE 4
- ** INITFIL - INITIALIZE FOR FILE RECOVERY
- INITFIL DATA 0 ENTRY/EXIT
- REWIND TB
- SA1 TF ATTACH TO FILE
- RJ SETF
- SX1 WORK READ DIRECTORY BLOCK
- SX6 B0
- SX7 B1
- RJ DRD
- SA1 =XPFINFO
- MX7 -6
- AX1 24
- BX6 -X7*X1 SIZE OF FILE (PARTS)
- SA6 TOSIZE
- AX1 6
- BX6 -X7*X1 TYPE OF FILE
- SX6 X6-BACKTY SEE IF BACKUP TYPE
- NZ X6,TOFIWE IF WRONG TYPE
- SA1 WORK+NAME
- SA2 TF
- IX6 X1-X2
- NZ X6,TONAME IF WRONG NAME
- SA1 WORK+TYPE
- SA2 BACKUP
- IX6 X1-X2
- NZ X6,TOTYPE IF WRONG TYPE
- SA1 WORK+ACCT
- BX6 X1
- SA6 TOACCT SAVE ACCOUNT
- EQ INITFIL
- INITPCK SPACE 4
- ** INITPCK - INITIALIZE PACKNAME/VSN FOR MASTER FILE
- * RECOVERY MODE.
- *
- * EXIT X1=0, NO MORE STACK ENTRIES
- INITPCK DATA 0 ENTRY/EXIT
- SA1 STACKPT
- ZR X1,INITPCK IF NO ENTRIES
- SX7 0 ZERO POINTERS
- SA7 MFCT
- SA7 VSNX
- SA7 VSN
- SA7 PN
- SA7 RTFA
- SB6 0
- SB7 X1+ COUNTERS
- IPCK1 SA1 B6+STACK+1 CURRENT STACK ENTRY
- NZ X1,IPCK2 ENTRY FILLED
- SB6 B6+2 NEXT ENTRY
- LT B6,B7,IPCK1 IF NOT DONE
- EQ INITPCK EXIT, X1=0
- IPCK2 BX6 X1 STORE ENTRY IN VSN OR PACKNAME
- MX7 6
- BX7 X7*X6
- ZR X7,IPCK3 IF VSN
- SA6 PN
- EQ INITPCK
- IPCK3 LX6 6
- SA6 VSNX
- EQ INITPCK
- INITPT SPACE 4
- ** INITPT - INITIALIZE POINTERS
- INITPT DATA 0 ENTRY/EXIT
- SX7 0 ZERO COUNTERS
- SA7 COUNT
- SA7 WCOUNT
- SA7 ECOUNT
- SA7 MFNAME
- SA7 MFTYPE
- SA7 NFILES
- SA7 MFILES
- SA7 OFFSET
- SA1 PROX INITIALIZE PROCESS POINTERS
- BX6 X1
- SA6 PRO1
- SX7 PTABLE
- SA7 PPOINT
- EQ INITPT
- * /--- BLOCK COPYPFX 00 000 80/11/03 07.22
- 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,PRA4 IF NOT =
- SB4 48
- LT B5,B4,PRA4 IF NOT 1 OR 2 CHARACTERS
- 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 COPYPFX 00 000 80/11/14 09.08
- RTF SPACE 4
- ** RTF - REQUEST TAPE FILE
- *
- * REQUEST A LABELED TAPE
- *
- * ENTRY - IF = FET ADDRESS
- * PN .NE. 0 - PN=PACKNAME (DO NOT LABEL)
- * (X6) = VSN REQUESTED
- * IF BINARY 0, GET SCRATCH TAPE
- * IF BINARY 1, REQUEST TAPE
- *
- * EXIT - (X6) = VSN OF TAPE LOADED
- * LABELS WRITTEN
- RTF DATA 0 ENTRY/EXIT
- SA1 RTFA INCREMENT TAPE FILE COUNT
- SX7 X1+B1
- SA7 A1
- RTF1 SA1 PN SEE IF PACK NAME SPECIFIED
- NZ X1,RTF8
- SX1 B1 TEST FOR REQUEST TAPE OPTION
- SX2 B1
- LX2 39 X2=RING OUT
- IX6 X6-X1
- ZR X6,RTF2 REQUEST TAPE
- IX6 X6+X1
- NZ X6,RTF2 IF VSN SPECIFIED
- SA1 =6L LABEL FOR SCRATCH TAPE
- BX6 X1 (X6) = SCRATCH VSN
- RTF2 SX7 5 (X7) = LABELED / 9-TRACK
- LX7 56
- BX7 X7+X2
- SA7 IF+8
- MX0 36
- BX6 X0*X6
- SA6 A7+B1 SET VSN
- BX6 X6-X6
- SX6 B0 SET FILE NAME = 0
- SA6 A6+B1
- SA2 RTFA GET TAPE POSITION
- BX7 X2
- * SX2 X2-1
- * SX7 1 FIRST FILE SEQUENCE = 1
- * ZR X2,RTF4
- * SX7 9999 ALL OTHERS = 9999
- RTF4 IX6 X6+X7 MERGE WITH FILE NAME
- SA6 A6+B1 FET+11
- SA1 =6LMFDUMP
- BX6 X1
- SA6 A6+B1 SET NAME = *MFDUMP*
- BX7 X7-X7
- SA7 A6+B1
- LABEL IF FIND LABELED TAPE
- * OPEN VOL1 LABEL IF FIRST TIME THRU
- SA3 RTFA TAPE FILE NUMBER
- SX3 X3-1
- NZ X3,RTF5 IF NOT FIRST FILE
- * RJ SETEB
- * SA1 =0LVOL1
- * BX6 X1
- * SA6 PB+1
- * OPEN IF,READ,R
- * SA1 IF+B1 CHECK DEVICE TYPE
- * PL X1,RTF7 IF ASSIGNED TO DISK
- * SA1 PB+1 GET VSN
- * SA4 =6L TEST FOR BLANK LABEL
- * MX6 36
- * LX1 24
- * BX6 X6*X1
- * IX7 X6-X4
- * ZR X7,RTF9 IF BLANK LABEL
- SA1 VSNX
- BX6 X1
- * /--- BLOCK COPYPFX 00 000 80/10/27 10.12
- LX6 54 CLEAR TOP BITS FOR TAPE FLAG
- SA6 VSN
- RTF5 SA1 RTFA FORM FILE SEQUENCE NUMBER
- SX1 X1+10000
- RJ CDD
- MX7 -18
- BX4 -X7*X6
- SA1 IF+10 SHIFT TO STANDARD FET INFO
- SA2 A1+B1
- BX6 X1
- SA6 A1-B1 FILE IDENTIFIER-FIRST 10 CHARS
- MX7 42
- BX6 X7*X2 NEXT 7 CHARS
- BX6 X6+X4 ADD SEQUENCE NUMBER
- SA6 A6+B1 FET+10
- MX6 0
- SA6 A6+B1
- SA1 A6+B1 SET IDENTIFICATION
- MX7 36
- BX6 X7*X1
- SA6 A1 FET+12
- SA1 IF+1 CLEAR EXTENDED LABEL BIT
- SX6 B1
- LX6 41
- BX6 -X6*X1
- SA6 A1
- POSMF IF,R
- SA1 IF+2 IN=OUT
- BX6 X1
- SA6 A1+B1
- SA1 IF+B1 CHECK DEVICE TYPE
- NG X1,RTF IF ASSIGNED TO TAPE
- RTF7 MESSAGE WRONG WRONG DEVICE
- EQ ABORT
- RTF8 RJ GETPN GET FILE ATTACHED ON PACK
- EQ RTF EXIT
- RTF9 UNLOAD IF,R GET RID IF BLANK LABEL
- MESSAGE BLANK ERROR MESSAGE
- SA1 VSNX TRY TO REQUEST TAPE AGAIN
- BX6 X1
- EQ RTF1
- PB BSSZ 10 BUFFER FOR VOL1 HEADER
- RTFA DATA 0 COUNT OF FILES ON TAPE
- * /--- BLOCK COPYPFX 00 000 80/10/30 12.14
- SETEB SPACE 4
- ** SETEB - SETUP EXTENDED LABEL BUFFER
- *
- * SETS UP COUNT FIELDS IN FET AND EXT. BUFFER
- * CLEAR ALL OTHER FIELDS IN BUFFER
- *
- * USES A - 6,7
- * X - 6,7
- * B - 6
- SETEB DATA 0 ENTRY/EXIT
- SX6 10 LENGTH
- SX7 PB BEGINNING ADDRESS
- LX6 18
- BX6 X6+X7
- SA6 IF+9 PUT IN FET
- SX7 80 CHARACTER COUNT
- SA7 PB
- SX6 0
- SB6 9
- SEB1 SA6 A7+B6 CLEAR PB+1 TO PB+9
- SB6 B6-B1
- GE B6,B1,SEB1
- EQ SETEB
- SETEPR SPACE 4
- ** SETEPR - SET ERROR PROCESSING BIT IN THE FET
- *
- * ENTRY A1/X1=FET+1 AND CONTENTS
- SETEPR DATA 0 ENTRY/EXIT
- SX6 B1 MASK FOR EPR
- LX6 44
- BX6 X6+X1
- SA6 A1
- EQ SETEPR
- 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 COPYPFX 00 000 80/10/24 07.15
- TITLE PROCESS MF DATA
- ** PROCESS BLOCK INFORMATION
- PROZ SA1 PROY INSTALL FAST EXIT
- BX6 X1
- SA6 PRO1
- PROCESS DATA 0 PROCESS BLOCK INFO
- *
- * THE FOLLOWING COMMANDS DUPLICATED AT PROX
- *
- PRO1 SA3 PPOINT PROCESS POINTER
- SA4 X3+
- ZR X4,PROZ IF ALL DONE
- SA1 WCOUNT BEGINNING COUNT FOR THIS READ
- SA2 ECOUNT ENDING COUNT FOR THIS READ
- MX7 30
- BX6 -X7*X4 WORD THAT IS WANTED
- ZR X6,PRO5 JUMP ROUTINE DEMANDED
- IX5 X6-X1 COMPARE WITH BEGINNING
- IX3 X6-X2 COMPARE WITH ENDING
- NG X5,PROERR IF WE HAVE ALREADY PASSED IT
- PL X3,PROCESS IF NOT HERE YET
- MX7 12
- BX7 X7*X4 WORD COUNT
- ZR X7,PRO5 PROCESS JUMP WANTED
- LX7 12
- SB7 X7 WORD COUNT
- NE B7,B1,PRO2 IF MORE THAN 1 WORD
- SA1 X5+WORK GET WORD THAT IS WANTED
- AX4 30 STORE LOCATION
- BX7 X1
- SA7 X4 STORE DESIRED WORD
- SX7 A4+B1 BUMP POINTER COUNTER
- SA7 PPOINT
- EQ PRO1 PROCESS NEXT REQUEST
- PRO2 IX6 X3+X7 COMPARE WORD COUNT WITH ROOM
- NG X6,PRO3 IF ENOUGH ROOM
- ZR X6,PRO3 IF JUST ENOUGH ROOM
- IX7 X4-X3 INCREMENT FROM
- LX3 30
- IX7 X7-X3 INCREMENT TO
- LX3 18
- IX7 X7+X3 DECREMENT TO
- LX3 12 RESTORE COUNT
- SA7 A4 STORE NEW COMMAND FOR NEXT PASS
- BX1 -X3 WORD COUNT THIS PASS
- EQ PRO4 MOVE WORDS
- PRO3 SX7 A4+B1 BUMP POINTER
- SA7 PPOINT
- SX1 B7 WORD COUNT
- PRO4 SX2 X5+WORK FROM
- AX4 30
- SX3 X4 TO
- RJ MVE= MOVE WORDS
- EQ PRO1 NEXT REQUEST
- * /--- BLOCK COPYPFX 00 000 80/10/31 12.06
- PRO5 SX7 A4+B1 BUMP POINTER
- SA7 PPOINT
- AX4 30 GET JUMP ADDRESS
- SB7 X4
- JP B7+ JUMP TO PROPER ROUTINE
- PROF SA1 NFILES GET FILE COUNTS
- SX7 X1 NUMBER OF FILES
- AX1 18
- NZ X7,PROF1 IF NO FILES, FAKE ONE
- SX7 1
- PROF1 SX6 X1 MAX NUMBER OF FILES
- SA7 A1
- SA6 MFILES
- SX5 X7-MAXFIL-1 COMPARE WITH MAX.
- PL X5,PROFERR TOO MANY
- SA1 OFFSET
- SX2 FILN FILE NAME BUFFER
- SX3 FILI FILE INFO BUFFER
- LX2 30
- LX3 30
- SX1 X1+BASE
- IX6 X6+X1
- LX7 48 FILE COUNT
- IX6 X6+X7
- IX6 X6+X3
- IX7 X7+X1
- IX7 X7+X2
- SA7 PTABA
- SA6 A7+B1
- EQ PRO1 NEXT REQUEST
- PROG SA2 NFILES NUMBER OF FILES
- SA1 FF FROM FILE
- SB7 X2+
- SB6 0
- PROG1 SA2 FILN+B6 CURRENT FILE NAME
- IX6 X1-X2
- ZR X6,PROG4 IF DESIRED FILE
- SB6 B6+B1 NEXT FILE
- LT B6,B7,PROG1 IF NOT DONE
- RJ SFN FORM MESSAGE
- SA6 PROGM
- SA1 MFNAME MASTER FILE NAME
- SX2 3RLE
- BX6 X1+X2
- LX6 42
- SA6 PROGM1
- MESSAGE PROGM
- PROG1A SA1 PN UNLOAD IF DISK PACK
- ZR X1,PROG2
- UNLOAD IF,R
- EQ PROG3
- PROG2 SA1 IF+2 IN=OUT
- BX6 X1
- SA6 A1+B1
- PROG3 RJ INITPT INITIALIZE POINTERS
- EQ CPF1 READ NEXT MASTER FILE
- PROG4 SA1 FILI+B6 FILE INFO WORD
- SX5 PART NUMBER OF WORDS IN PART
- MX7 -24
- BX6 -X7*X1 BEGINNING PART NUMBER
- IX6 X6*X5 BEGINNING WORD
- SX7 PROH FORM PROCESSOR TABLE ENTRY
- LX7 30
- IX6 X6+X7
- SA6 PTABB
- MX7 -6
- AX1 24
- BX6 -X7*X1 NUMBER OF PARTS IN FILE
- IX6 X6*X5 WORD COUNT
- SA6 WCWANT
- EQ PRO1 NEXT ENTRY
- * /--- BLOCK COPYPFX 00 000 81/01/15 07.56
- PROH BSS 0
- SA1 WCWANT WORD COUNT REMAINING IN FILE
- IX6 X3+X1 DECREMENT
- SA6 A1
- NG X6,PROH1 IF ENOUGH WORDS THIS PASS
- ZR X6,PROH1 IF JUST ENOUGH WORDS
- SA4 A4 REREAD PROCESSOR WORD
- IX7 X4-X3 INCREMENT FROM COUNT
- SA7 A4
- SX7 A4 RESET PROCESSOR POINTER
- SA7 PPOINT
- PROH1 BX3 -X3 CORRECT WORD COUNT
- WRITEW TB,WORK+X5,X3 WRITE OUT TEMP. FILE
- SA1 WCWANT
- NG X1,PROH2 IF DONE
- NZ X1,PRO1 IF NOT DONE
- PROH2 WRITER TB,R WRITE EOR
- EQ PRO1
- PROI BSS 0
- REWIND TB,R
- READ TB,R
- READW TB,WORK,BLOCK
- NZ X1,PROIER IF EARLY EOR, EOF, EOI
- SA1 WORK+NAME SEE IF NAMES MATCH
- SA2 FF
- IX6 X1-X2
- NZ X6,FFNAME
- SA2 TOACCT
- BX6 X2 UPDATE ACCT NAME IN FILE DIR.
- SA6 WORK+ACCT
- SA1 WORK+SIZE SEE IF SIZE MATCH
- SA2 TOSIZE
- SX6 NUMBLK
- IX2 X6*X2
- IX6 X1-X2
- NZ X6,TOSIZX
- BX6 X1 SAVE NUMBER OF BLOCKS
- SA6 A2
- SX6 B0 CURRENT BLOCK
- SA6 WCWANT
- PROI1 READW TB,WORK,BLOCK
- NZ X1,PROI2 IF EOR, EOF, EOI
- SA1 WCWANT
- SX6 X1+B1 CURRENT BLOCK
- SA6 A1
- SX7 1 NUMBER OF BLOCKS TO WRITE
- SX1 WORK FWA
- RJ DWR WRITE BLOCK
- EQ PROI1
- PROI2 SA1 WCWANT
- SA2 TOSIZE
- SX1 X1+B1
- IX6 X1-X2
- NZ X6,PROIER IF FILES NOT THE SAME SIZE
- REWIND TB,R REREAD FIRST BLOCK
- READ TB,R
- READW TB,WORK,BLOCK
- NZ X1,PROIER IF EARLY EOR, EOF, EOI
- SA1 TF PUT IN PROPER NAME
- BX6 X1
- SA6 WORK+NAME
- SX6 B0 REWRITE DIRECTORY
- SX7 B1
- SX1 WORK
- RJ DWR
- PROI3 MESSAGE (=C*ALL DONE*)
- ENDRUN
- * /--- BLOCK COPYPFX 00 000 80/11/14 08.33
- PROJ SA1 FF
- NZ X1,PRO1 SKIP IF IN SINGLE FILE MODE
- SA2 MFNAME GET MASTER FILE NAME
- SA3 STACKPT NUMBER OF ENTRIES IN STACK * 2
- SB6 B0 COUNTER
- SB5 2 INCREMENT
- SB7 X3 FINAL COUNT
- PROJ1 SA1 B6+STACK CURRENT ENTRY
- BX6 X1-X2 COMPARE
- SB6 B6+B5 INCREMENT FOR NEXT ENTRY
- PROJ2 ZR X6,PROJ3 IF MASTER FILES AGREE
- LT B6,B7,PROJ1 IF NOT DONE
- SA1 MFNAME OUTPUT MASTERFILE NAME
- RJ SFN
- SA6 NOTREQ
- MESSAGE NOTREQ
- EQ PROG1A
- PROJ3 SA1 B6+STACK-1 GET VSN/PACKNAME
- MX7 6 MASK FOR TOP CHARACTER
- BX7 X7*X6
- ZR X7,PROJ5 IF VSN
- SA1 PN GET PACK NAME
- PROJ4 BX6 X1-X2 COMPARE VSN/PN WITH REQUEST
- * NZ X6,PROJ2 IF NOT THE SAME
- SX6 B6-B5 SAVE STACK ADDRESS
- SA6 THISONE
- SA1 MFNAME
- SX6 B1
- IX6 X6+X1
- SA6 TB SET UP F.E.T.
- REWIND TB,R
- SX7 PTABD RESET PROCESS POINTER
- SA7 PPOINT
- SX6 PROK SET UP PROCESS WORD
- LX6 30
- SA6 X7
- SA1 MFNAME OUTPUT RESTORING MESSAGES
- RJ SFN
- SA6 REING+1
- MESSAGE REING
- EQ PRO1 FOR NOW
- PROJ5 SA1 VSN GET VSN
- EQ PROJ4
- PROK SA1 ECOUNT ENDING COUNT
- SX6 PROK PROCESS TABLE POINTER
- SA2 WCOUNT BEGINNING COUNT
- LX6 30 SHIFT TO PROPER SUBR. POSITION
- IX5 X1-X2 WORD COUNT
- IX6 X1+X6 NEXT RECORD PROCESS WORD
- SA6 PTABD
- SX6 A6 PROCESS POINTER
- SA6 PPOINT
- ZR X5,PROK1 NO WORDS TO WRITE
- WRITEW TB,WORK,X5 WRITE OUT WORDS
- PROK1 SA1 STATUS CHECK READ STATUS
- SB7 X1+
- LE B7,B0,PROK2 IF NOT EOR
- SB7 1 EOR JUMP NUMBER
- PROK2 JP B7+PROK3+3 JUMP TO PROPER ROUTINE
- PROK3 EQ PROK5 ERROR
- EQ PROK6 EOI
- EQ PROK4 EOF
- EQ PRO1 NORMAL READ
- * WRITER TB,R EOR
- EQ PRO1 NEXT RECORD
- * PROK4 WRITEF TB,R EOF
- PROK4 BSS 0
- EQ PRO1 NEXT RECORD
- PROK5 MESSAGE (=C* ERROR WHILE READING INPUT*)
- EQ ABORT
- * /--- BLOCK COPYPFX 00 000 80/11/07 13.23
- PROK6 SA1 TB+2 SEE IF BUFFER EMPTY
- SA2 A1+B1
- IX3 X1-X2
- ZR X3,PROK7
- WRITE TB,R
- SA1 TB+2 SEE IF BUFFER NOW EMPTY
- SA2 A1+B1
- IX3 X1-X2
- ZR X3,PROK7
- WRITER TB,R FORCE WRITE
- PROK7 SA1 MFNAME OUTPUT RECOVERED MESSAGE
- RJ SFN
- SA6 RECOV
- MESSAGE RECOV
- SA1 THISONE
- SA1 X1+STACK+1 GET THIS PACKNAME/VSN
- MX7 0 CLEAR THIS ENTRY
- SA7 A1
- SA7 A7-B1
- *
- * LOOK FOR MORE ENTRIES TO DO
- *
- SB6 B0
- SA3 STACKPT
- SB7 X3
- SB5 B1+B1
- PROK8 SA2 B6+STACK+1 CURRENT ENTRY
- BX6 X1-X2 SEE IF SAME AS CURRENT ONE
- SB6 B6+B5
- ZR X6,PROG1A IF MORE FOR THIS VSN/PACK
- LT B6,B7,PROK8 IF MORE TO LOOK AT
- UNLOAD IF,R ALL DONE WITH THIS PACK VSN
- RJ INITPT SET UP POINTERS
- RJ INITPCK INIT. PACK POINTERS
- NZ X1,CPF1 IF MORE ENTRIES
- EQ PROI3 ALL DONE
- PROX SA3 PPOINT COPY OF PRO1
- SA4 X3+
- PROY EQ PROCESS DUMMY FAST EXIT COMMAND
- PROERR MESSAGE PROM
- ABORT ABORT
- PROFERR MESSAGE PROFM
- EQ ABORT
- PROIER MESSAGE PROIE
- EQ ABORT
- * PROCESSOR TABLE
- PPOINT VFD 60/PTABLE PROCESS TABLE POINTER
- PTABLE BSS 0
- VFD 12/1,18/MFNAME,30/MFNM
- VFD 12/0,18/PROJ,30/0
- VFD 12/1,18/MFTYPE,30/MFTY
- VFD 12/1,18/NFILES,30/FILW
- VFD 12/1,18/OFFSET,30/OFFS
- VFD 12/0,18/PROF,30/0
- PTABA VFD 12/0,18/FILN,30/0 FILLED IN WITH NUM FILES
- VFD 12/0,18/FILI,30/0 FILLED IN WITH NUM FILES
- VFD 12/0,18/PROG,30/0
- PTABB VFD 12/0,18/PROH,30/0 FILE LOCATION FILLED IN
- VFD 12/0,18/PROI,30/0
- PTABC DATA 0 END OF TABLE
- PTABD VFD 12/0,18/PROK,30/0
- DATA 0 END OF TABLE
- * /--- BLOCK COPYPFX 00 000 80/10/15 08.53
- TITLE PLATO FILE ATTACH, READ WRITE ROUTINES
- ** SETF - ATTACH FILE
- *
- * X1=FILE NAME
- *
- * EXIT IF ALREADY ATTACHED
- * ABORT IF ERROR
- SETFX SA1 DST4 SEE IF CLEAR MESSAGE NEEDED
- ZR X1,SETF
- MX6 0 CLEAR FLAG
- SA6 A1
- SX6 CMSG
- RJ BDIS CLEAR B DISPLAY
- SETF DATA 0 ENTRY/EXIT
- BX7 X1 FILE NAME
- SA1 DSNAME OLD FILE NAME
- IX6 X7-X1
- ZR X6,SETF EXIT IF ALREADY ATTACHED
- SA7 A1 SAVE FOR LATER
- DST1 SA1 DARG1 ARGUMENT LIST
- RJ =XSETFILE ATTACH FILE
- SB1 1 RESTORE
- SA1 DERROR SEE IF ERROR STATUS
- NG X1,SETFX 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 FILE NAME
- RJ DMEM ERROR STATUS
- EQ ABORT
- DST4 DATA 0 FLAG FOR WAITING MESSAGE
- DRD SPACE 4
- ** DRD - DATAIN ROUTINES
- *
- * X1 - CENTRAL MEMORY LOCATION
- * X6 - STARTING RECORD
- * X7 - NUMBER OF RECORDS
- DRD DATA 0 ENTRY/EXIT
- RJ DPAR STORE PARAMETERS
- RJ =XDREAD READ IN DATA
- SB1 1 RESTORE
- SA1 DERROR LOOK AT STATUS
- NG X1,DRD IF NO ERROR
- MESSAGE DMRDM DREAD ERROR MESSAGE
- DRDX RJ DMAM FILE NAME
- RJ DMEM ERROR STATUS
- RJ DBGM BEGINNING RECORD NUMBER
- RJ DNRM NUMBER OF RECORDS
- EQ ABORT ABORT
- DWR SPACE 4
- ** DWR - DWRITE ROUTINES
- *
- * X1 - CENTRAL MEMORY LOCATION
- * X6 - STARTING RECORD
- * X7 - NUMBER OF RECORDS
- DWR DATA 0 ENTRY/EXIT
- RJ DPAR STORE PARAMETERS
- RJ =XDWRITE WRITE OUT DATA
- SB1 1 RESTORE
- SA1 DERROR LOOK AT STATUS
- NG X1,DWR IF NO ERROR
- MESSAGE DMWRM DWRITE ERROR MESSAGE
- EQ DRDX ERROR MESSAGES AND ABORT
- * /--- BLOCK COPYPFX 00 000 80/10/15 08.42
- DDET SPACE 4
- ** DDET - DETACH FILE
- *
- * DETACHES LAST FILE
- DDET DATA 0 ENTRY/EXIT
- SA1 DARG3 ARGUMENT LIST
- RJ =XDETACH DETACH FILE
- SB1 1 RESTORE
- 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 COPYPFX 00 000 80/10/15 08.53
- DMAM SPACE 4
- ** DMAM - OUTPUT FILE NAME INTO DAYFILE
- DMAM DATA 0 ENTRY/EXIT
- SA1 DSNAME GET CURRENT FILE 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 FILE*
- DMRDM DIS ,* ERROR IN READING FILE*
- DMWRM DIS ,* ERROR IN WRITING FILE*
- DMNAM DATA 10H FILE NAM
- DATA 10HE =
- 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 FILE 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 DREAD /DWRITE
- 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 COPYPFX 00 000 80/10/27 14.51
- TITLE K-DISPLAY ROUTINES
- BUILDO SPACE 4
- ** BUILDO - BUILD OUTPUT LINE
- *
- * AUDIT INFO IN BUFA
- * BUILDS OUTPUT LINE FOR PRINTER IN BUILD
- BUILDO DATA 0 ENTRY/EXIT
- SA1 BUFA MASTER FILE NAME
- MX7 42
- BX1 X7*X1
- RJ SFN
- LX6 54
- SA6 BUILD
- SA1 BUFA+1 PACKNAME
- MX7 42
- BX1 X7*X1
- RJ SFN
- SA6 BUILD+1
- SA1 BUFA NUMBER OF FILES
- SX1 X1
- RJ CDD
- MX7 -24
- BX6 -X7*X6
- LX6 36
- SA6 BUILD+2
- SA1 BUFA+1 SLOT NUMBER
- MX7 -7
- BX1 -X7*X1
- RJ CDD
- SA1 BUILD+2
- LX6 6
- MX7 -36
- BX6 -X7*X6
- IX6 X6+X1
- SA6 A1
- SA1 BUFA+2 VSN/PACK
- MX7 6 IF TAPE, ADD *
- BX7 X7*X1
- NZ X7,BUI1
- SX7 1R*
- LX7 54
- BX1 X1+X7
- BUI1 MX7 42
- BX1 X7*X1
- RJ SFN
- SA6 BUILD+3
- SA1 BUFA+1 EST
- MX7 -6
- AX1 7
- BX1 -X7*X1
- RJ WOD
- MX6 -12
- SA1 BUILD+3
- BX7 -X6*X7
- BX1 X6*X1
- IX6 X7+X1
- SA6 A1
- SA1 BUFA+2 YEAR
- AX1 14
- MX7 -4
- BX1 -X7*X1
- SX1 X1+80
- RJ CDD
- MX7 -18
- BX6 -X7*X6
- LX6 42
- SA6 BUILD+4
- SA1 BUFA+2 MONTH
- AX1 10
- MX7 -4
- BX1 -X7*X1
- RJ CDD
- SA1 BUILD+4
- MX7 -18
- BX6 -X7*X6
- LX6 24
- IX6 X6+X1
- SA6 A1
- SA1 BUFA+2 DAY
- AX1 5
- MX7 -5
- BX1 -X7*X1
- RJ CDD
- SA1 BUILD+4
- LX6 6
- MX7 -24
- BX6 -X7*X6
- IX6 X6+X1
- SA6 A1
- SA1 BUFA+2 HOUR
- MX7 -5
- BX1 -X7*X1
- RJ CDD
- LX6 6
- MX7 -18
- BX6 -X7*X6
- LX6 42
- SA6 BUILD+5
- EQ BUILDO
- * /--- BLOCK COPYPFX 00 000 80/11/03 10.40
- KDISP SPACE 4
- ** DO K-DISPLAY
- KDISP DATA 0 ENTRY/EXIT
- RJ SETPAR SET UP PARAMETERS
- NZ X4,INITERR IF ERROR IN PARAMS
- SX6 0 CLEAR GO FLAG
- SA6 GO
- RJ ATTAUD ATTACH AUDIT FILE
- KDSP1 RJ SETK SET UP K-DISPLAY PARAMETERS
- KDSP2 REWIND TB,R
- READ TB,R
- KDSP3 READW TB,BUFA,BUFAL READ AUDIT ENTRY
- NZ X1,KDSP11 IF EOR, EOF, EOI
- SA1 PN SEE IF PACKNAME SPECIFIED
- ZR X1,KDSP4
- SA2 BUFA+1
- MX7 42
- BX2 X7*X2
- BX6 X1-X2
- NZ X6,KDSP3 IF PACKNAMES DO NOT MATCH
- KDSP4 SA1 MF SEE IF MASTERFILE SPECIFIED
- ZR X1,KDSP5
- SA2 BUFA
- MX7 42
- BX2 X7*X2
- BX6 X1-X2
- NZ X6,KDSP3 IF MASTERFILES DO NOT MATCH
- KDSP5 SA1 SL SEE IF SLOT SPECIFIED
- ZR X1,KDSP6
- SA2 BUFA+1
- MX7 -7
- BX2 -X7*X2
- BX6 X1-X2
- NZ X6,KDSP3 IF SLOT DOES NOT MATCH
- KDSP6 SA1 MO SEE IF MONTH SPECIFIED
- ZR X1,KDSP7
- SA2 BUFA+2
- AX2 10
- MX7 -4
- BX2 -X7*X2
- BX6 X1-X2
- NZ X6,KDSP3 IF MONTH DOES NOT MATCH
- KDSP7 SA1 DAY SEE IF DAY SPECIFIED
- ZR X1,KDSP8
- SA2 BUFA+2
- AX2 5
- MX7 -5
- BX2 -X7*X2
- BX6 X1-X2
- NZ X6,KDSP3 IF DAY DOES NOT MATCH
- KDSP8 SA1 GO SEE IF IN GO MODE
- ZR X1,KDSP10 NO GO MODE
- RJ SETSTK ADD TO REQUEST STACK
- NG X7,KDSP3 IF NO OVERFLOW
- RJ SETBUF SETUP BUFFER
- RJ SETK
- SB6 TOOMF TOO MANY FILE SELECTED
- KDSP9 RJ MOVEL MOVE ERROR LINE
- SX6 0 CLEAR GO FLAG
- SA6 GO
- EQ KDSP11
- KDSP10 RJ BUILDO BUILD OUTPUT LINE
- SB6 BUILD
- RJ MOVEL MOVE TO K-DISPLAY BUFFER
- ZR X6,KDSP3 IF NO OUTPUT TO TRANSFER
- EQ KDSP12
- * /--- BLOCK COPYPFX 00 000 80/11/07 07.34
- KDSP11 SA1 GO SEE IF GO MODE
- NZ X1,KDSP14
- SB6 0 END MESSAGE
- RJ MOVEL
- ZR X6,KDSP2 START OVER IF +
- KDSP12 SA1 =10HXXXXXXXXX. SET UP FAKE CONTROL CARD
- SX5 KFILL
- BX6 X1
- SA6 X5
- RJ PRA STRIP OFF PARAMETERS
- NZ X6,KDSP13 IF ERROR IN PARAMETERS
- SB5 ARGT ARG TABLE ADDRESS
- RJ ARG
- NZ X1,KDSP13 ERROR IN PARAMETERS
- RJ SETBUF SET UP BUFFER
- RJ SETPAR SET UP PARAMETERS
- NZ X4,KDSP13 IF ERROR IN PARAMS
- SA1 GO SEE IF GO MODE
- ZR X1,KDSP1
- SB6 STACK ZERO STACK
- SB7 MAXST*2
- RJ ZERO
- SA7 STACKPT CLEAR STACK POINTER
- EQ KDSP1
- KDSP13 RJ SETBUF SET UP BUFFER PARAMS
- RJ SETK
- SB6 INMSG ERROR IN PARAMS MESSAGE
- RJ MOVEL
- EQ KDSP11
- KDSP14 RJ INITPCK SEE IF ANY ENTRIES/INITIALIZE
- ZR X1,KDSP15
- UNLOAD TB,R GET RID OF AUDIT TRAIL FILE
- MX6 0 RELEASE CONSOLE BUFFERS
- SA6 CMA
- CONSOLE CMA
- EQ KDISP
- KDSP15 RJ SETBUF SEND ERROR MESSAGE
- RJ SETK
- SB6 NOFILE
- EQ KDSP9
- 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
- * /--- BLOCK COPYPFX 00 000 80/10/30 11.11
- 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
- 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
- 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
- * /--- BLOCK COPYPFX 00 000 80/10/29 14.34
- 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
- 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,SETK1 IF CC545 CONSOLE
- SX6 MAXK721 RESET MAX LINES
- SA6 MAXK
- .NOS23 ENDIF
- SETK1 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
- SA1 PN FORMAT PACKNAME
- RJ SFN
- MX7 42
- BX6 X7*X6
- SX7 3RPN=
- IX6 X6+X7
- LX6 42
- SA6 PLINE+1
- SA1 MF FORMAT FILENAME
- RJ SFN
- MX7 42
- BX6 X7*X6
- SX7 3RMF=
- IX6 X6+X7
- LX6 42
- SA6 PLINE+3
- SA1 SL FORMAT SLOT
- RJ CDD
- MX7 42
- BX4 X7*X4
- SX6 3RSL=
- BX6 X6+X4
- LX6 36
- BX6 X7*X6
- SA6 PLINE+4
- SA1 DA FORMAT DATE
- RJ CDD
- MX7 42
- BX4 X7*X4
- SX6 3RDA=
- BX6 X6+X4
- LX6 36
- SA6 PLINE+2
- SB6 PLINE MOVE HEADER LINES
- RJ MOVEL
- SB6 =1L
- RJ MOVEL
- SB6 LINE1
- RJ MOVEL
- SB6 LINE2
- RJ MOVEL
- SA1 WLINE NUMBER OF WORDS IN HEADER
- BX6 X1
- SA6 WHDR
- SX6 4 NUMBER OF LINES IN HEADER
- SA6 LHDR
- CONSOLE CMA CALL CONSOLE
- EQ SETK
- CTYPE BSS 1
- * /--- BLOCK COPYPFX 00 000 80/10/29 14.43
- 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 SLOT CONVERT SLOT
- SX6 B1
- IX6 X5-X6
- MX4 0 EXIT FLAG
- SB7 B1 BASE FLAG = DECIMAL
- ZR X6,SETP1
- RJ DXB CONVERT
- SETP1 NZ X4,SETPAR IF ERROR
- SA6 SL STORE CONVERTED NUMBER
- SA5 DATE CONVERT DATE
- SX6 B1
- IX6 X5-X6
- ZR X6,SETP2
- RJ DXB CONVERT
- SETP2 NZ X4,SETPAR IF ERROR
- SA6 DA STORE CONVERTED NUMBER
- SX5 100 FIND MONTH
- BX1 X6
- IX7 X6/X5
- SA7 MO
- SX5 100
- IX7 X7*X5 FIND DAY OF MONTH
- IX7 X1-X7
- SA7 DAY
- EQ SETPAR
- SETSTK SPACE 4
- ** SETSTK - SET PARAMETERS IN STACK
- *
- * GOOD AUDIT ENTRY AT BUFA
- * STACKPT - SET TO CURRENT STACK ENTRY
- *
- * EXIT X7.LT.0 - ENTRY INSERTED, X7=+ - OVERFLOW
- SETSTK DATA 0 ENTRY/EXIT
- SA2 STACKPT CURRENT STACK POINTER
- SA1 BUFA GET MASTER FILE NAME
- MX7 42
- BX6 X7*X1
- SA6 STACK+X2
- SA1 BUFA+2 GET VSN/PACK NAME
- BX6 X7*X1
- SA6 A6+B1
- SX7 X2+2 INCREMENT STACK POINTER
- SA7 A2
- SX7 X7-MAXST2-1 TEST FOR OVERFLOW
- EQ SETSTK
- WAINP SPACE 4
- ** WAINP - WAIT FOR KEYBOARD INPUT
- *
- * EXIT X6=0, FIRST CHARACTER OF INPUT IS A *+*
- WAINP DATA 0
- 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
- * /--- BLOCK COPYPFX 00 000 87/03/18 14.33
- DEBUG SPACE 4
- DEBUG DATA 0 ENTRY/EXIT
- RJ CDD
- SA6 DMSG
- MESSAGE DMSG
- EQ DEBUG
- DEBUGX DATA 0 ENTRY/EXIT
- BX7 X2
- SA7 DMS
- RJ CDD
- SA6 DMSG
- MESSAGE DMS
- EQ DEBUGX
- SHOW DATA 0
- BX6 X1
- SA6 DMSG
- RJ WOD
- SA6 DMSA
- SA7 A6+B1
- MESSAGE DMSA
- EQ SHOW
- MESSX DATA 0 ENTRY/EXIT
- BX7 X2
- SA7 DMS
- BX6 X1
- SA6 DMSG
- MESSAGE DMS
- EQ MESSX
- * /--- BLOCK ARG 00 000 87/03/18 14.08
- ARG TITLE ARG - PROCESS ARGUMENTS.
- *** ARG - PROCESS ARGUMENTS.
- * G. R. MANSFIELD. 70/10/09.
- *
- * THIS IS A COPY OF NOS COMMON DECK COMCARG.
- *
- * AFTER PARSING THE CONFORMING ARGUMENTS, THE *INIT*
- * ROUTINE MODIFIES THE CODE TO ACCEPT 10 CHARACTER
- * ARGUMENTS (THOSE FOLLOWING THE CLOSE PARENTHESIS
- * OR PERIOD) FOR THE *Z* PARAMETER.
- *
- IF -DEF,QUAL$,1
- QUAL COMCARG
- BASE D
- ARG SPACE 4
- *** ARG PROCESSES AN ARGUMENT LIST BY THE USE OF AN
- * EQUIVALENCE TABLE.
- *
- * ENTRY (B1) = 1.
- * (B4) = ARGUMENT COUNT.
- * (A4) = ADDRESS OF FIRST ARGUMENT.
- * (X4) = FIRST ARGUMENT.
- * (B5) = ADDRESS OF ARGUMENT TABLE IN ONE OF THE
- * FOLLOWING FORMS -
- * 1. 12/ OP, 18/ ASV, 12/ ST, 18/ ADDR
- * 2. 12/ 77B, 18/ ASV, 12/ ST, 18/ ADDR
- * 42/ OP, 18/0
- * 77B = INDICATION THAT TWO-WORD ENTRY TABLE
- * FORMAT WAS USED.
- * OP = ONE TO SEVEN CHARACTER OPTION.
- * ASV = ADDRESS OF ASSUMED VALUE.
- * ST = STATUS.
- * ADDR = ADDRESS TO STORE ARGUMENT.
- * THE LOWER 18 BITS OF THE ASSUMED VALUE ARE
- * ENTERED INTO THE EQUIVALENCED ARGUMENT.
- * IF *ASV* .LT. 0, THE ARGUMENT MUST NOT BE
- * EQUIVALENCED.
- * IF *ASV* = *ADDR*, ONLY ONE ENTRY OF THAT
- * ARGUMENT WILL BE ALLOWED (*OP* IS SET TO - 0).
- * IF STATUS = 4000B, A ZERO *0* PARAMETER IS
- * RETAINED AS A DISPLAY ZERO, OTHERWISE A
- * VALUE OF ZERO IS STORED.
- *
- * EXIT (X1) .NE. 0, IF ARGUMENT ERROR DETECTED.
- * AN ERROR STATUS IS RETURNED FOR THE FOLLOWING
- * CONDITIONS -
- * 1. OPTION NOT FOUND IN TABLE
- * 2. SINGLE ARGUMENT EQUIVALENCED
- * 3. ILLEGAL RE-ENTRY OF ARGUMENT
- *
- * USES X - 0, 1, 2, 3, 4, 6, 7.
- * B - 2, 3, 4.
- * A - 2, 3, 4, 7.
- * /--- BLOCK ARG 00 000 87/03/18 14.02
- ARG SUBR ENTRY/EXIT
- MX0 42
- SX1 B0
- ZR B4,ARGX IF NO ARGUMENTS
- SX1 B1 PRESET ERROR
- * SEARCH FOR MATCH IN ARGUMENT TABLE.
- ARG1 ZR X4,ARGX IF NULL ARGUMENT
- SA2 B5-B1
- MX3 12
- SB3 12
- ARG1.1 SA2 A2+B1 GET NEXT OPTION
- ZR X2,ARGX IF END OF OPTION TABLE
- SB2 B0
- BX6 X3*X2 CHECK FOR KEYWORD MATCH
- LX7 X6,B3
- SX7 X7-77B
- NZ X7,ARG1.2 IF ARGUMENT LESS THAN THREE CHARACTERS
- SB2 B1
- SA2 A2+B1 GET SECOND WORD OF THE ENTRY
- BX6 X0*X2 GET OPTION
- ARG1.2 BX7 X4-X6
- BX7 X0*X7
- NZ X7,ARG1.1 IF NO MATCH
- * CHECK FOR EQUIVALENCE ALLOWED.
- ZR B2,ARG2 IF ONE WORD ENTRY
- SA2 A2-B1
- ARG2 SX7 X4-1R= CHECK FOR EQUIVALENCE SEPARATOR
- SB2 X2 SET VALUE ADDRESS
- LX2 30 GET ASSUMED VALUE
- ZR X7,ARG2.1 IF NOS *=*
- SX7 X4-2 CHECK FOR PRODUCT SET FORMAT *=*
- ARG2.1 SB3 X2
- PL B3,ARG3 IF EQUIVALENCE ALLOWED
- SA3 -B3 ASSUMED VALUE
- BX6 -X0*X3 ASSUMED STATUS
- SB3 -B3
- NZ X7,ARG5 IF ARGUMENT NOT EQUIVALENCED
- SA4 A4+B1
- SB4 B4-B1
- ZR X4,ARG6 IF NULL PARAMETER
- EQ ARGX RETURN
- * /--- BLOCK ARG 00 000 87/03/18 14.04
- * PROCESS EQUIVALENCE.
- ARG3 SA3 B3 ASSUMED VALUE
- BX6 -X0*X3 ASSUMED STATUS
- NZ X7,ARG5 IF ARGUMENT NOT EQUIVALENCED
- SA4 A4+B1 CHECK EQUIVALENCE
- SB4 B4-B1
- BX3 X4 CHANGED TO BX3 X0*X4 IN NOS 670
- AX4 42
- NG X2,ARG4 IF DISPLAY ZERO REQUESTED
- SX2 X4-1L0
- ARG4 ZR X3,ARG6 IF NULL PARAMETER
- NZ X2,ARG5 IF NOT *0*
- SX3 B0 CLEAR EQUIVALENCE
- SX6 B0 CLEAR STATUS
- * ENTER ARGUMENT.
- ARG5 BX3 X0*X3 MERGE ARGUMENT AND STATUS
- IX7 X3+X6
- SA7 B2 STORE ARGUMENT
- SB3 B2-B3
- NZ B3,ARG6 IF ASSUMED VALUE NOT IN ARGUMENT ADDRESS
- SA2 A2
- MX3 12
- BX4 -X3*X2
- BX7 X3+X4 SET OP = -0 IF ONLY ONE ARGUMENT ALLOWED
- SA7 A2
- ARG6 SB4 B4-B1 CHECK FOR MORE ARGUMENTS
- SA4 A4+B1
- NZ B4,ARG1 IF MORE ARGUMENTS TO PROCESS
- SX1 B0 CLEAR ERROR
- EQ ARGX RETURN
- SPACE 4
- BASE *
- QUAL$ IF -DEF,QUAL$
- QUAL *
- ARG EQU /COMCARG/ARG
- QUAL$ ENDIF
- * /--- BLOCK MESSAGES 00 000 87/03/18 14.33
- TITLE MESSAGES, BUFFERS, DATA AREAS AND COM DECKS
- * DISPLAY MESSAGES
- TOFIWE MESSAGE TOFIW
- EQ ABORT
- TONAME MESSAGE TONAM
- EQ ABORT
- TOTYPE MESSAGE TOTYP
- EQ ABORT
- TOACCE MESSAGE TOACT
- EQ ABORT
- TOSIZX MESSAGE TOSIZ
- EQ ABORT
- FFNAME MESSAGE FFNAM
- EQ ABORT
- INMSG DIS ,* ERROR IN PARAMETERS.*
- PROM DIS ,* ERROR IN PROCESSOR TABLE.*
- WRONG DIS ,* DUMP FILE ASSIGNED TO DISK*
- BLANK DIS ,* DO NOT USE BLANK LABEL TAPE*
- PROFM DIS ,* TOO MANY FILES IN MASTER FILE.*
- TOFIW DIS ,* FIW OF TO FILE NOT BACKUP TYPE*
- TONAM DIS ,* NAMES OF TO FILES DOES NOT MATCH*
- FFNAM DIS ,* NAMES OF FROM FILES DOES NOT MATCH*
- TOTYP DIS ,* TO FILE TYPE NOT BACKUP*
- TOSIZ DIS ,* FILE SIZES DO NOT MATCH*
- TOACT DIS ,* FILE ACCOUNTS DO NOT MATCH*
- TOOMF DIS ,* TOO MANY FILES SELECTED*
- NOFILE DIS ,* NO FILES SELECTED*
- NOTREQ DATA 0 MASTER FILE NAME
- DIS ,* - MASTER FILE NOT REQUESTED*
- PROIE DIS ,* FROM FILE SIZE WRONG*
- PROGM DATA 0 FILE NAME
- DATA 30H - FILE NOT FOUND IN MASTER FI
- PROGM1 DATA 3LLE MASTER FILE NAME ADDED HERE
- DATA 0
- TOOBIG DIS ,* FILE NOT COMPLETELY CONTAINED IN M.F.*
- RECOV DATA 0 MASTER FILE NAME
- DIS ,* - MASTER FILE RECOVERED*
- REING DATA 10HRESTORING
- DATA 0,0
- PLINE DATA 10HPARAMS -
- DATA 3HPN=
- DATA 4H DA=
- DATA 3HMF=
- DATA 4L SL=
- LINE1 DIS ,= MASTER- PACKNAME FILE SLOT VSN(*) EST YY MM DD HH=
- LINE2 DIS ,= FILE PACK=
- DMSA DATA 0
- DMS DATA 0
- DMSG DATA 0,0 DEBUG MESSAGE AREA
- * ARGUMENT TABLE
- ARGTBL BSS 0
- VFD 12/1LV,18/ONE,30/VSNX
- VFD 12/1LZ,18/ONE,30/Z
- VFD 12/2LFF,18/FF,30/FF
- VFD 12/2LTF,18/TF,30/TF
- * VFD 12/2LSP,18/PACK,30/PACK
- * VFD 12/2LAP,18/APER,30/APER
- ARGT BSS 0
- VFD 12/2LPN,18/ZRO,30/PN
- VFD 12/2LMF,18/ZRO,30/MF
- VFD 12/2LGO,18/ONE,30/GO
- VFD 12/2LSL,18/ONE,12/4000B,18/SLOT
- VFD 12/2LDA,18/ONE,12/4000B,18/DATE
- ARGTBLE DATA 0 END OF TABLE
- * /--- BLOCK DATA 00 000 80/11/17 11.01
- * COUNTERS AND PARAMETERS
- COUNT DATA 0 BLOCK COUNT
- WCOUNT DATA 0 BEGINNING WORD COUNT
- ECOUNT DATA 0 ENDING WORD COUNT
- MFNAME DATA 0 MASTER FILE NAME
- MFTYPE DATA 0 MASTER FILE TYPE
- NFILES DATA 0 NUMBER OF FILES
- MFILES DATA 0 MAX. NUMBER OF FILES
- OFFSET DATA 0 FILE OFFSET
- PACKNAM DATA 0 PACKNAME
- VSN DATA 0 VSN NUMBER (ACTUAL)
- VSNX DATA 0 VSN NUMBER (USER REQUEST)
- Z DATA 0 EXTENDED PARAMETER FLAG
- ONE DATA 1 CONSTANT ONE
- ZRO DATA 0 CONSTANT ZERO
- PN DATA 0 USER PACK NAME FOR DUMPED FILE
- FF DATA 0 FROM FILE
- TF DATA 0 TO FILE
- MFCT DATA 0 MASTER FILE COUNT
- WCWANT DATA 0 WORD COUNT WANTED
- BACKUP DATA 10HBACKUP ) BACKUP FILE TYPE
- TOSIZE DATA 0 TO FILE SIZE (PARTS)
- TOACCT DATA 0 TO FILE ACCOUNT
- PACK DATA 0 PACK NAME FOR ATTACHES
- APER DATA 5LAUDIT PERMANENT FILE FOR AUDIT
- MF DATA 0 MASTER FILE NAME
- SL DATA 0 SLOT NUMBER
- SLOT DATA 0 SLOT NUMBER/FLAG
- DA DATA 0 DATE
- MO DATA 0 MONTH
- DAY DATA 0 DAY OF MONTH
- DATE DATA 0 DATE/FLAG
- GO DATA 0 GO FLAG
- STACKPT DATA 0 STACK POINTER
- STATUS DATA 0 STATUS OF READ REQUEST
- THISONE DATA 0 POINTER TO CURRENT STACK ENTRY
- MAXK CON MAXK545 MAX LINES ON K-DISPLAY
- CMA VFD 24/KBUF,18/RSCR,18/LSCR K-SCREEN PARAMS
- * RESERVE BUFFER SPACE
- WORK BSSZ WORKL WORKING BUFFER
- IBUF BSSZ LBUFL INPUT CIRCULAR BUFFER
- TBUF BSSZ BUFL TEMP CIRCULAR BUFFER
- FILN BSSZ MAXFIL FILE NAMES
- FILI BSSZ MAXFIL FILE INFO AND LOCATION
- * SCREEN LOCATIONS
- RSCR EQU IBUF 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 AUDIT OUTPUT LINE
- BUFA EQU BUILD+6 READ AUDIT INFO
- BUFAL EQU 3 LENGTH OF AUDIT INFO
- BEND EQU BUFA+BUFAL END OF BUFFERS
- * STACK
- STACK EQU FILN REQUEST STACK
- * /--- BLOCK COMMONS 00 000 87/03/18 14.37
- * 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 COMCDXB
- ORG RSCR+1
- DIS ,* COPYPF PARAMETER HELP SEQUENCE*
- DIS ,* *
- DIS ,* K.MF=MASTER FILE NAME*
- DIS ,* K.PN=PACK NAME*
- DIS ,* K.SL=SLOT NUMBER*
- DIS ,* K.DA=DATE (MMDD FORMAT, MM=MONTH, DD=DATE)*
- DIS ,* *
- DIS ,* K.+ WILL ADVANCE THE ENTRIES OR START OVER*
- DIS ,* IF AT THE END OF THE ENTRIES*
- DIS ,* *
- DIS ,* K.GO WILL START THE PROCESSING*
- DATA 0
- ORG *
- END COPYPF
plato/source/plaopl/copypf.txt ยท Last modified: 2023/08/05 18:54 by Site Administrator