cdc:nos2.source:opl871:tafrec
Table of Contents
TAFREC
Table Of Contents
- [00007] TAFREC - *TAF* INITIALIZATION AND RECOVERY.
- [00113] CONSTANTS, FETS, BUFFERS AND MISCELLANEOUS.
- [00430] MISCELLANEOUS SUBROUTINES.
- [00432] ITR - INITIALIZE COMMUNICATIONS RECOVERY FILE.
- [00541] PTR - PERFORM *CRF* RECOVERY.
- [00802] RRU - REFORMAT RECOVERY UNIT.
- [00887] PRU - PREALLOCATE RECOVERY UNIT.
- [00945] RFH - READ FILE HEADER.
- [01048] BDR - BUILD DIRECTORY OF RECOVERY UNITS.
- [01342] RMR - READ MESSAGE RECORDS.
- [01390] FRL - FORMAT REPORT LINE.
- [01477] STN - SEARCH TERMINAL NAME.
- [01524] SDR - SORT DIRECTORY OF RECOVERY UNITS.
- [01600] GHL - GET HIGHEST/LOWEST TST ENTRY ADDRESSES.
- [01638] ZFB - ZERO FILL BUFFER.
- [01657] ALC - ADVANCE LINE COUNT.
- [01697] ERR - ERROR PROCESSOR.
- [01738] *TAFREC* PRESET ROUTINES.
- [01740] PRS - PRESET *TAFREC*.
- [02005] IIM - ISSUE INITIALIZATION MESSAGE.
- [02037] PTF - PROCESS *TAF* CONFIGURATION FILE.
- [02365] DSP - PROCESS *DISPLAY* DIRECTIVE.
- [02392] NET - PROCESS *NETWORK* DIRECTIVE.
- [02451] RCV - PROCESS *RECOVER* DIRECTIVE.
- [02517] DMS - PROCESS *DMS* DIRECTIVE.
- [02570] USR - PROCESS *USER* COMMAND.
- [02635] PNF - PROCESS NETWORK FILE.
- [02776] ANF - ATTACH NETWORK DESCRIPTOR FILE.
- [02838] RKD - RESTART *K-DISPLAY*.
- [02943] SRS - SET RECOVERY STATUS.
- [03027] SKD - SET *K-DISPLAY*.
- [03720] DISPLAY FORMATS.
- [04011] FETS AND COMMON DECKS.
Source Code
- TAFREC.txt
- IDENT TAFREC,111B,TAFREC
- ABS
- SST CMBL
- ENTRY TAFREC
- ENTRY RFL=
- SYSCOM B1
- TITLE TAFREC - *TAF* INITIALIZATION AND RECOVERY.
- *COMMENT TAFREC - *TAF* INITIALIZATION AND RECOVERY.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- TAFREC SPACE 4,10
- LIST X
- *CALL COMKTAF
- LIST -X
- SPACE 4,10
- ***** TAFREC - *TAF* INITIALIZATION AND RECOVERY PROGRAM.
- *
- * R. G. PARKHOUSE 80/05/15.
- SPACE 4,10
- *** *TAFREC* PERFORMS INITIALIZATION AND RECOVERY PROCESSING FOR
- * THE TRANSACTION FACILITY *TAF*.
- *
- * *TAFREC* READS THE *TAF* CONFIGURATION FILE VERIFYING THE
- * SYNTAX OF ALL DIRECTIVES. THE DIRECTIVES ACTUALLY PROCESSED
- * ARE *DISPLAY*, *NETWORK* AND *RECOVER*. IF THE *DISPLAY*
- * DIRECTIVE HAS STATUS EQUAL *ON*, THE INITIAL *K-DISPLAY* IS
- * SET UP TO RECEIVE OPERATOR ENTERED VALUES. FOR EACH ID
- * SPECIFIED ON THE *NETWORK* DIRECTIVE THE CORRESPONDING
- * NETWORK FILE IS ATTACHED AND THE TERMINAL STATUS TABLE
- * BUILT. FOR EACH ID SPECIFIED ON THE *RECOVER* DIRECTIVES,
- * THE CORRESPONDING COMMUNICATIONS RECOVERY FILE IS ATTACHED,
- * OR DEFINED IF NOT FOUND AND THE INITIALIZE FUNCTION WAS
- * REQUESTED FROM THE *K-DISPLAY*.
- *
- * *TAFREC* CREATES THE COMMUNICATIONS RECOVERY FILE, *CRF*, IF
- * IT DID NOT EXIST, USING PARAMETERS FROM THE *RECOVER*
- * DIRECTIVE. FOR EACH TERMINAL ON THE CORRESPONDING NETWORK
- * FILE, A RECOVERY UNIT IS INITIALIZED ON THE *CRF*.
- *
- * IF THE COMMUNICATIONS RECOVERY FILE EXISTED, *TAFREC*
- * DETERMINES TERMINALS ACTIVE AT FAILURE AND SETS RECOVERY
- * STATUS FOR THOSE TERMINALS.
- *
- * *TAFREC* REFORMATS THE COMMUNICATIONS RECOVERY FILE IF
- * PARAMETERS IN THE *TAF* CONFIGURATION FILE CHANGE. CHANGES
- * TO THE FOLLOWING MAY CAUSE A REFORMAT,
- * SIZE OF USER RECOVERY MESSAGES.
- * NUMBER OF RECOVERY MESSAGES.
- * TERMINALS ALLOWED TO USE TAF.
- *
- * *TAFREC* PREPARES A RECOVERY REPORT WHICH THE USER MAY PRINT
- * IF DESIRED. THIS REPORT CONSISTS OF,
- * CONTENTS OF *TAF* CONFIGURATION FILE.
- * INITIAL *K-DISPLAY*.
- * INFORMATION ABOUT TERMINALS AFFECTED BY RECOVERY.
- * ERRORS PREVENTING A CORRECT RECOVERY.
- *
- * *TAFREC* PREPARES THE TAF INITIALIZATION FILE WHICH CONTAINS
- * THE INFORMATION FOR *TAF* TO COMPLETE INITIALIZATION.
- *
- SPACE 4,10
- *** DAYFILE MESSAGES.
- *
- * IN THE FOLLOWING MESSAGES, *CRFNAME* IMPLIES THE APPROPRIATE
- * CRF FILE NAME, AND *NETNAME* IMPLIES THE APPROPRIATE NETWORK
- * FILE NAME.
- *
- *
- * ACTIVE RECOVERY UNITS(S) DELETED - CRFNAME.
- * CANNOT DEFINE REFORMATTED FILE - CRFNAME.
- * DB-NAME MUST NOT START WITH THE LETTER Z.
- * FILE TCF NOT FOUND.
- * FORMAT ERROR IN NETWORK FILE - NETNAME.
- * INCORRECT TCF ENTRIES.
- * K.COMMAND NOT VALID.
- * MAXIMUM TERMINALS EXCEEDED.
- * MS REDUCTION INCORRECT - CRFNAME.
- * NETWORK FILE NOT FOUND - NETNAME.
- * NM REDUCTION INCORRECT - CRFNAME.
- * NO TERMINALS IN NETWORK FILE - NETNAME.
- * NULL DESCRIPTION FILE.
- * NO DATA BASE NAME TERMINAL - TERMINAL.
- * COMMUNICATIONS RECOVERY FILE NOT FOUND - CRFNAME.
- * TCF FILE EMPTY.
- * CRF HEADER ERROR - CRFNAME.
- * CRF RUN UNIT ERROR - CRFNAME.
- * CRF RECOVERY/INITIALIZATION ABORTED.
- * CRF RECOVERY/INITIALIZATION COMPLETE.
- SPACE 4,10
- *** DEFINITION OF TERMS.
- *
- * TCF *TAF* CONFIGURATION FILE.
- * CRF COMMUNICATIONS RECOVERY FILE.
- * TIF *TAF* INITIALIZATION FILE.
- * TST TERMINAL STATUS TABLE.
- * RESTART RESTART AFTER *EXIT* AND *TAFXX2* PROCESSING.
- SPACE 4,10
- * COMMON DECKS.
- *CALL COMSPFM
- *CALL COMSTRX
- *CALL COMCCMD
- *CALL COMCDCM
- *CALL COMCDCP
- *CALL COMCMAC
- *CALL COMKFLD
- LIST X
- *CALL COMKIPR
- *CALL COMKCBD
- *CALL COMKTIF
- *CALL COMKTRF
- *CALL COMKTST
- LIST -X
- TITLE CONSTANTS, FETS, BUFFERS AND MISCELLANEOUS.
- SPACE 4,10
- **** ASSEMBLY CONSTANTS.
- RUDL EQU 4 RECOVERY UNIT DIRECTORY ENTRY LENGTH
- CST EQU 7 COMPLETE STATUS
- IST EQU 1 INITIALIZE STATUS
- RST EQU 0 RECOVER STATUS
- ****
- SPACE 4,10
- ORG VLOCL2
- SPACE 4,10
- * FETS.
- CRF BSS 0 COMMUNICATIONS RECOVERY FILE
- ZZCRF RFILEB TRBUF,TRBUFL,EPR,FET=14
- CRFA BSS 0 REFORMATTED COMMUNICATIONS RECOVERY FILE
- ZZCRFA RFILEB TABUF,TABUFL,EPR,FET=14
- TIF BSS 0 *TAF* INITIALIZATION FILE
- "TIF" FILEB TBUF,TBUFL
- R BSS 0 INITIALIZATION RECOVERY REPORT FILE
- ZZIRRF FILEB RBUF,RBUFL
- SPACE 4,10
- * GLOBAL VARIABLES AND TABLES.
- ID CON 0 ID OF NETWORK FILE AND *CRF*
- NM CON 0 NUMBER OF USER MESSAGES
- MS CON 0 SIZE OF USER MESSAGES
- * 3 WORD BUFFER FOR *SETPFP*.
- * 42/ FAMILY NAME, 14/ 0, 4/ FG.
- * 42/ PACK NAME, 18/ PACK TYPE
- * 42/ USER NAME, 18/ USER INDEX
- * FG - FLAG BITS DENOTING WHICH FIELDS TO SET
- * BIT 3 - FAMILY NAME
- * 2 - PACK NAME
- * 1 - USER NAME
- * 0 - USER INDEX
- PFPA VFD 42/0,14/0,4/0
- VFD 42/0,18/0
- VFD 42/0,18/0
- * *CPM* VALIDATION PARAMETER BLOCK.
- FM CON 0 42/FAMILY NAME,18/0
- PW CON 1 DO NOT VALIDATE PASSWORD
- UN CON 0 42/USER NAME,18/USER INDEX
- BSSZ 6 REST OF PARAMETERS
- KCOF CON 0 *K.COMMAND* ORIGIN FLAG
- KCNV DATA C* K.COMMAND NOT VALID.*
- MZDB DATA C* DB-NAME MUST NOT START WITH THE LETTER Z.*
- DFFM BSS 1 DEFAULT FAMILY
- DFNM VFD 60/0L"TRDND" DEFAULT NUMBER USER MESSAGES
- DFMS VFD 60/0L"TRDMD" DEFAULT MESSAGE SIZE
- DATE BSS 1
- TIME BSS 1
- RFN VFD 60/0LZZCRF CRF FILE NAME
- RFNA VFD 60/0LZZCRFA REFORMATED CRF FILE NAME
- ** TABLE OF FAMILY NAMES AND USER INDICES.
- *
- * THIS TABLE HAS TWO WORD ENTRIES IN THE FOLLOWING FORMAT.
- *
- *T W1 42/ FAMILY,18/
- *T, W2 42/ USER NAME, 18/ USER INDEX
- TFAM BSSZ 2*MAXNF TABLE OF FAMILY NAMES AND USER INDICES
- ** TABLE OF VALUES FROM *RECOVER* DIRECTIVE PLUS ADDITIONAL
- * VALUES AND STATUS. THE TABLE IS INDEXED BY *RECOVER* ID.
- *
- *T W1 12/ ,12/ PPM,12/ NM,12/ MS,9/ ,3/ ST
- *
- * WHERE
- * PPM = PRU-S PER USER MESSAGE. (NOT ON DIRECTIVE)
- * NM = NUMBER OF USER MESSAGES ON *CRF*.
- * MS = USER MESSAGE SIZE IN WORDS.
- * ST = STATUS. 0=RECOVER
- * 1=INITIALIZE
- * 7=COMPLETE
- TREC BSSZ MAXRC TABLE OF *RECOVER* DIRECTIVE VALUES
- * TABLE OF TRANSACTION TYPES.
- TTYP BSS 0
- ORG TTYP+TYIT
- DATA 10H TERMINAL
- ORG TTYP+TYBT
- DATA 10H BTRAN
- ORG TTYP+TYRM
- DATA 10HBATCH/CRM
- TTYPL EQU *-TTYP
- ORG TTYP+TTYPL
- * TABLE OF TRANSACTION STEPS.
- TSTP BSS 0
- ORG TSTP+CSNR
- DATA 10HNON-RECOV
- ORG TSTP+CSCD
- DATA 10HCDCS DOWN
- ORG TSTP+CSCE
- DATA 10HCEASE/END
- ORG TSTP+CSTA
- DATA 10H ABORT
- ORG TSTP+CSTN
- DATA 10HRU ERROR
- ORG TSTP+CSTI
- DATA 10HRECOV INP
- ORG TSTP+CSBC
- DATA 10HID LOGGED
- ORG TSTP+CSND
- DATA 10HNAM DOWN
- ORG TSTP+CSST
- DATA 10HSTART JOB
- ORG TSTP+CSTT
- DATA 10H END TAF
- TSTPL EQU *-TSTP
- ORG TSTP+TSTPL
- OVRD CON 0 ERROR OVERRIDE FLAG
- CUID CON -1 CURRENT ID BEING PROCESSED
- SDST CON 0 SHUTDOWN STATUS. -VE = ABNORMAL.
- CUFN CON 0 CURRENT *CRF* FILE NAME
- WPMO CON 0 WORDS PER USER MESSAGE ON OLD *CRF* (N*64)
- PPMO CON 0 PRU-S PER USER MESSAGE ON OLD *CRF*
- WPMN CON 0 WORDS PER USER MESSAGE ON NEW *CRF* (N*64)
- NUMO CON 0 NUMBER MESSAGES/RECOVERY UNIT ON OLD *CRF*
- ADMN CON 0 ADDITIONAL MESSAGES ON NEW *CRF*
- NMRU CON 0 NUMBER OF RECOVERY UNITS ON OLD *CRF*
- HTST CON 0 HIGHEST TST ADDRESS FOR CURRENT *CRF*
- LTST CON 0 LOWEST TST ADDRESS FOR *CRF*
- * TABLE OF RECOVERED TRANSACTION TYPES.
- TNRC BSS 0
- LOC 0
- CON 0 DUMMY ENTRY FOR UNUSED RECOVERY UNITS
- CON 0 NUMBER TERMINALS RECOVERED
- CON 0 NUMBER OF *BTRAN-S* RECOVERED
- CON 0 NUMBER CONCURRENT BATCH/*CRM* RECOVERED
- LOC *O
- TINT CON 0 NUMBER NEW TERMINALS INTRODUCED
- TDEL CON 0 NUMBER EXISTING TERMINALS DELETED
- TERR CON 0 NUMBER OF RECOVERY UNIT ERRORS
- BLNK DATA 20H
- PMSG BSS 3 SCRATCH AREA FOR *PFM* ERROR MESSAGES
- DAYB BSSZ 5 BUFFER FOR DAYFILE MESSAGES
- * HEADING FOR REPORT FILE.
- HEAD DATA 1L1
- DATA 60H TAF INITIALIZATION AND RECOVERY REPORT
- , PAGE -
- HEAD1 BSS 1 PAGE NUMBER
- CON 0 END OF LINE
- DATA 1L BLANK LINE
- DATA 10H
- DATA 20HMODE = "PROD"
- .A IFEQ IPTAR,1
- DATA 20HRECOVERY ENABLED
- .A ELSE
- DATA 20HRECOVERY DISABLED
- .A ENDIF
- HEAD2 DATA 10H RESTART INDICATOR
- CON 0 END OF LINE
- DATA 1L TWO BLANK LINES
- DATA 1L
- HEADL EQU *-HEAD
- * SUBHEADING FOR CRF REPORT.
- RFSH DATA 10H
- DATA 20H INITIALIZING - ZZCR
- DATA 10HFI
- DATA 10HSHUTDOWN -
- DATA 10H NORMAL
- CON 0 END OF LINE
- DATA 1L BLANK LINE
- DATA C* TERMINAL TSEQ TYPE STEP DATE
- ,TIME COMMENT*
- DATA 1L
- RFSHL EQU *-RFSH
- * SUBHEADING FOR SUMMARY.
- SMSH DATA 30H
- DATA C*SUMMARY*
- DATA 1L BLANK LINE
- SMSHL EQU *-SMSH
- * SUMMARY BUFFER.
- SMBF DATA 10H
- SMB1 CON 0 NUMBER OF TERMINALS RECOVERED
- DATA C* TERMINALS RECOVERED.*
- DATA 10H
- SMB2 CON 0 NUMBER OF *BTRAN-S* RECOVERED
- DATA C* BATCH TRANSACTIONS RECOVERED.*
- DATA 10H
- SMB3 CON 0 NUMBER CONCURRENT BATCH *CRM* REQUESTS
- DATA C* CONCURRENT BATCH/CRM REQUESTS RECOVERED.*
- DATA 10H
- SMB4 CON 0 NUMBER OF RECOVERY UNITS INTRODUCED
- DATA C* USER NAMES ADDED.*
- DATA 10H
- SMB5 CON 0 NUMBER OF RECOVERY UNITS DELETED
- DATA C* RECOVERABLE RUN UNITS DELETED.*
- SMBFL EQU *-SMBF
- SBHD BSS 3 SUBHEADING ADDRESS,WORD COUNT,LINE COUNT
- LCNT CON 60 REPORT FILE LINE COUNT
- PCNT CON 0 REPORT FILE PAGE COUNT
- TAFREC EJECT
- * TAFREC MAINLINE.
- TAFREC RJ PRS PRESET TAFREC
- SX1 IPTAR
- ZR X1,TAF5 IF *TAF* AUTOMATIC RECOVERY ENABLED
- SX7 -1
- SA7 CUID INITIALIZE ID
- SX6 RFSH SET SUBHEADING ADDRESS AND LENGTH
- SX7 RFSHL
- SA6 SBHD
- SA7 A6+1
- SX6 4 LINE COUNT OF NEXT SUBHEADING
- SA6 SBHD+2
- * INITIALIZE OR RECOVER ALL COMMUNICATIONS RECOVERY FILES.
- TAF1 SX6 LINP FORCE NEW PAGE
- SA6 LCNT
- SA1 CUID
- SX6 X1+B1
- SX7 X6-MAXRC
- ZR X7,TAF4 IF ALL RECOVERY FILES PROCESSED
- SA6 A1
- SA1 TREC+X6
- ZR X1,TAF1 IF NO RECOVERY FILE WITH THIS ORDINAL
- MX0 -3
- BX2 -X0*X1 GET STATUS OF RECOVERY FILE
- SX3 X2-IST
- NZ X3,TAF2 IF NOT INITIALIZE
- RJ ITR INITIALIZE COMMUNICATIONS RECOVERY FILE
- EQ TAF3 INITIALIZE NETWORK FILE IDENTIFIER
- * RECOVER COMMUNICATIONS RECOVERY FILE.
- TAF2 RJ PTR PERFORM *CRF* RECOVERY
- TAF3 SA1 CUID
- BX6 X1
- LX6 TFIDS-TFIDN+1 INITIALIZE NETWORK FILE IDENTIFIER
- SX2 TTFTE
- IX2 X2*X1
- SA1 TSTHD+X2+TFTSW
- BX6 X6+X1
- SA6 A1
- EQ TAF1 PROCESS NEXT COMMUNICATIONS RECOVERY FILE
- * WRITE RECOVERY REPORT SUMMARY.
- TAF4 SX6 SMSH SUBHEADING ADDRESS
- SX7 SMSHL LENGTH
- SA6 SBHD
- SA7 A6+B1
- SX6 B1+B1 LINE COUNT
- SA6 A7+B1
- SX6 LINP FORCE NEW PAGE
- SA6 LCNT
- SA1 TNRC+B1 TERMINALS RECOVERED
- RJ CDD CONVERT TO DISPLAY
- SA6 SMB1
- SA1 A1+1 *BTRAN* JOBS RECOVERED
- RJ CDD
- SA6 SMB2
- SA1 A1+1 BATCH/*CRM* REQUESTS RECOVERED
- RJ CDD
- SA6 SMB3
- SA1 TINT RECOVERY UNITS INTRODUCED
- RJ CDD
- SA6 SMB4
- SA1 TDEL RECOVERY UNITS DELETED
- RJ CDD
- SA6 SMB5
- SB2 5
- RJ ALC ADVANCE LINE COUNT
- WRITEW R,SMBF,SMBFL WRITE SUMMARY
- * FLUSH BUFFERS AND TERMINATE *TAFREC*.
- TAF5 SA1 TSTLW
- WRITEW TIF,TSTLW,X1+1 WRITE TST TO TIF
- WRITER TIF,R FLUSH BUFFER
- REWIND TIF,R
- WRITER R,R FLUSH REPORT FILE BUFFER
- SA1 DFFM DEFAULT FAMILY
- SX0 13B *SETPFP* FLAGS
- SA2 USRC USER NAME / USER INDEX
- BX6 X0+X1
- BX7 X2
- SA6 PFPA SET UP *SETPFP* CALL BLOCK
- SA7 A6+2
- SETPFP PFPA SET PERMANENT FILE PARAMETERS
- MESSAGE TAFA,0,R COMPLETE MESSAGE
- ENDRUN END
- TAFA DATA C* CRF RECOVERY/INITIALIZATION COMPLETE.*
- TITLE MISCELLANEOUS SUBROUTINES.
- ITR SPACE 4,20
- ** ITR - INITIALIZE COMMUNICATIONS RECOVERY FILE.
- *
- * PREALLOCATE AND INITIALIZE THE *CRF*. THE FILE IS WRITTEN
- * SEQUENTIALLY, THE *CRF* HEADER FIRST, FOLLOWED BY A RECOVERY
- * UNIT FOR EACH TERMINAL IN THE CORRESPONDING NETWORK FILE.
- *
- * ENTRY (CUID) = *CRF* ID.
- * (RFN) = RECOVERY FILE NAME.
- *
- * EXIT CRF INITIALIZED.
- *
- * USES X - 0, 1, 2, 3, 5, 6, 7.
- * A - 1, 2, 3, 6, 7.
- * B - 4, 5, 6.
- *
- * CALLS GHL, PRU, ZFB.
- *
- * MACROS REWIND, WRITER, WRITEW.
- ITR SUBR ENTRY/EXIT
- SA1 CUID GET ID
- SX2 1R0
- IX2 X1+X2 BINARY TO DISPLAY
- LX2 29-5
- SA3 RFN
- BX6 X3+X2 FORM FILE NAME - CRFI
- SA6 PBUF+TRFIW STORE FILE NAME IN HEADER
- SA1 ITRA SET UP SUBHEADING FOR REPORT
- BX7 X1
- SA7 RFSH+1
- SA1 A1+B1
- LX6 24
- MX0 -24
- BX2 -X0*X6
- BX7 X1+X2
- SA7 A7+B1
- BX7 X0*X6
- SA7 A7+B1
- LX6 36
- SA1 BLNK
- BX7 X1
- SA7 A7+2
- SA7 A7+B1
- SX2 B1
- BX6 X6+X2 COMPLETE BIT
- SA6 CRF STORE IN FET
- RJ GHL GET HIGHEST/LOWEST TST ENTRY ADDRESSES
- SA6 HTST SAVE HIGHEST ADDRESS
- SA7 A6+B1 SAVE LOWEST ADDRESS
- IX1 X6-X7
- SX1 X1+TSTLLE
- SX2 TSTLLE
- IX6 X1/X2 NUMBER TERMINALS
- SA1 CUID
- * INITIALIZE *CRF* HEADER.
- SA1 TREC+X1 FILE INFORMATION
- MX0 24
- LX0 36
- BX7 X0*X1 *NM* AND *MS*
- IX7 X7+X6 ADD NUMBER OF RECOVERY UNITS
- MX6 1
- BX7 X7+X6 ABNORMAL SHUTDOWN
- SA7 PBUF+TRNRW STORE FILE PARAMETERS
- SA1 DATE
- SA2 TIME
- BX6 X1
- BX7 X2
- SA6 A7+B1 STARTUP DATE
- SA7 A6+B1 STARTUP TIME
- SB5 A7+B1 FWA TO ZERO
- SB6 TRHWL-TRTDW NUMBER OF WORDS
- RJ ZFB ZERO FILL BUFFER
- SX7 TRBUF
- SA7 CRF+2 RESET BUFFER POINTERS
- SA7 A7+B1
- WRITEW CRF,PBUF,TRHWL WRITE HEADER
- ITR1 SA2 HTST HIGHEST TST ADDRESS
- SA1 A2+B1 NEXT TST ADDRESS
- IX2 X2-X1
- NG X2,ITR2 IF ALL DONE
- SX6 X1+TSTLLE
- SA6 A1
- SA1 X1+B1 TERMINAL NAME
- SX5 CRF FET ADDRESS
- SB4 CSNR STEP = NON RECOVERABLE TRANSACTION
- RJ PRU PREALLOCATE RECOVERY UNIT
- SA1 TINT
- SX6 X1+B1 INCREMENT INTRODUCED RECOVERY UNITS
- SA6 A1
- EQ ITR1 NEXT TERMINAL
- ITR2 WRITER CRF,R FLUSH BUFFER
- WRITER CRF,R WRITE END OF RECORD MARK
- REWIND CRF,R
- SA1 CUID
- SA2 TREC+X1
- MX0 -3
- BX6 X0*X2
- SX0 CST
- BX6 X6+X0
- SA6 A2 SET FILE = COMPLETE
- EQ ITRX RETURN
- ITRA DATA C* INITIALIZING - *
- CON 0
- PTR SPACE 4,25
- ** PTR - PERFORM *CRF* RECOVERY.
- *
- * RECOVER A *CRF* AND DETERMINE THE TERMINALS TO BE RECOVERED.
- * THE *CRF* MAY BE REFORMATTED BECAUSE OF -
- * AN INCREASE IN THE SIZE OF MESSAGE RECORDS.
- * AN INCREASE IN THE NUMBER OF MESSAGE RECORDS.
- * CHANGES IN TERMINALS ON NETWORK FILE.
- * RECOVERY UNIT ERROR AND ERROR OVERRIDE SET.
- * TERMINALS ACTIVE AT *TAF* SHUTDOWN WILL HAVE THE RECOVERY
- * FLAG SET IN THE TST.
- * INFORMATION ON RECOVERED TERMINALS WILL BE WRITTEN TO THE
- * REPORT FILE.
- *
- * ENTRY (CUID) = CURRENT ID.
- *
- * EXIT *CRF* RECOVERED/REFORMATTED.
- * RECOVERY FLAG SET IN THE TST FOR ACTIVE TERMINALS.
- * TO *ERR* IF REFORMATTED FILE CANNOT BE DEFINED.
- *
- * USES X - ALL.
- * A - ALL.
- * B - 2, 3, 4, 5, 6.
- *
- * CALLS ALC, BDR, CDD, FIO, FRL, GHL, PRU, RFH, RRU, SNM, STN,
- * ZFB.
- *
- * MACROS CHANGE, DEFINE, PURGE, RECALL, RENAME, REWIND, SETPFP,
- * WRITER, WRITEW.
- PTR SUBR ENTRY/EXIT
- SX6 B0+
- SA6 TERR CLEAR ERROR COUNT
- SA1 CUID
- SX2 1R0
- IX2 X2+X1 BINARY TO DISPLAY
- LX2 23-5
- SA3 RFNA *CRFA*
- BX6 X3+X2
- SA6 CRFA+CFPN PERMANENT FILE NAME
- SX4 3
- BX6 X6+X4 ADD BINARY/COMPLETE BITS
- SA6 CRFA
- LX2 6
- SA3 RFN *CRF*
- BX6 X3+X2 FORM FILE NAME - *CRFI*
- SA6 CUFN SAVE CURRENT *CRF* FILE NAME
- SA6 CRF+CFPN PERMANENT FILE NAME
- SA6 CRFA+CFNF
- BX6 X6+X4 ADD COMPLETE/BINARY BITS
- SA6 CRF
- RJ GHL GET HIGHEST/LOWEST TST ADDRESSES
- SA6 HTST SAVE HIGHEST
- SA7 LTST SAVE LOWEST
- RJ RFH READ *CRF* HEADER
- SA1 SDST SET UP SUBHEADING FOR REPORT
- LX1 0-TRRSS
- MX0 -TRRSN
- BX1 -X0*X1
- SA1 PTRG+X1 SHUTDOWN STATUS
- SA2 PTRH
- BX6 X1
- BX7 X2
- SA7 RFSH+4
- SA6 A7+B1
- RJ BDR BUILD DIRECTORY OF RECOVERY UNITS
- SA6 PTRB SAVE REFORMAT FLAG
- SA3 HTST
- SA4 LTST
- IX1 X3-X4
- SX2 TSTLLE
- IX1 X1+X2
- IX2 X1/X2 NUMBER OF RECOVERY UNITS
- SB5 PBUF
- SB6 TRHWL
- RJ ZFB ZERO FILL BUFFER
- * UPDATE *CRF* HEADER. SET ABNORMAL SHUTDOWN, DATE, TIME.
- * NUMBER OF USER MESSAGES AND SIZE OF USER MESSAGES.
- SA1 CUID
- SA1 TREC+X1 FILE INFORMATION
- MX0 24
- LX0 36
- BX7 X0*X1 *NM* AND *MS*
- BX7 X7+X2 ADD NUMBER OF RECOVERY UNITS
- MX6 1
- BX7 X7+X6 ABNORMAL SHUTDOWN
- SA7 PBUF+TRNRW
- SA1 DATE
- SA2 TIME
- BX6 X1
- BX7 X2
- SA6 PBUF+TRSDW STARTUP DATE
- SA7 PBUF+TRSTW STARTUP TIME
- SA1 CUFN
- BX6 X1
- SA6 PBUF+TRFIW TRF FILE NAME
- SA1 PTRB
- ZR X1,PTR6 IF REFORMAT NOT NECESSARY
- * REFORMAT *CRF* ONTO ALTERNATE FILE.
- SA5 CUID ID
- LX5 1 OFFSET INTO *TFAM*
- SA1 TFAM+X5 GET FAMILY
- SX0 13B *SETPFP* FLAGS
- BX7 X0+X1
- SA7 PFPA SET UP *SETPFP* CALL BLOCK
- SA5 TFAM+X5+1
- BX7 X5
- SA7 PFPA+2
- SETPFP PFPA SET PERMANENT FILE PARAMETERS
- DEFINE CRFA DEFINE REFORMATTED *CRF*
- SA1 CRFA CHECK FOR ERRORS
- MX2 8
- LX1 59-17
- BX2 X2*X1
- ZR X2,PTR1 IF NO ERROR
- MX2 42
- LX1 17-59
- BX1 X2*X1
- SB2 1RX
- SB5 PTRC * CANNOT DEFINE REFORMATTED FILE.*
- RJ SNM SET NAME IN MESSAGE
- SX1 PTRC
- EQ ERR PROCESS ERROR
- * REFORMAT RECOVERY FILE HEADER ONTO *CRFAI*.
- PTR1 WRITEW CRFA,PBUF,TRHWL WRITE HEADER
- SA1 CUFN COMPLETE SUBHEADING FOR REPORT
- SA2 PTRF
- SA3 A2+B1
- BX6 X2
- SA6 RFSH+1
- LX1 24
- MX0 -24
- BX6 -X0*X1
- BX6 X6+X3
- SA6 A6+B1
- SA2 PTRJ
- BX7 X0*X1
- BX7 X2+X7
- SA7 A6+1
- * REFORMAT RECOVERY UNITS.
- PTR2 SA2 HTST HIGHEST TST ADDRESS
- SA1 LTST NEXT TST ADDRESS
- IX2 X2-X1
- NG X2,PTR5 IF ALL DONE
- SX6 X1+TSTLLE
- SA6 A1
- MX0 TSTNN
- SA1 X1+TSTNW TERMINAL NAME
- SB3 DIR FWA OF TABLE
- BX1 X0*X1 EXTRACT TERMINAL NAME
- SB4 RUDL LENGTH OF ENTRY
- SX2 B4
- SA3 NMRU
- IX3 X3*X2
- SB5 X3+B3 LWA+1 OF DIRECTORY
- RJ STN SEARCH DIRECTORY OF RECOVERY UNITS
- ZR X5,PTR3 IF NEW TERMINAL
- SA2 X5+B1
- LX2 59-58
- SB4 CSTN STEP = I/O ERROR ON RECOVERY UNIT
- NG X2,PTR4 IF RECOVERY UNIT ERROR
- RJ RRU REFORMAT RECOVERY UNIT
- EQ PTR2 NEXT TST ENTRY
- * INITIALIZE NEW RECOVERY UNITS ADDED TO NETWORK FILE.
- PTR3 SB4 CSNR STEP = NON RECOVERABLE TRANSACTION
- SA2 TINT
- SX6 X2+B1 INCREMENT INTRODUCED RECOVERY UNITS
- SA6 A2
- * INITIALIZE RECOVERY UNITS WHICH HAD I/O ERRORS.
- PTR4 SX5 CRFA FET ADDRESS
- RJ PRU INITIALIZE RECOVERY UNIT
- EQ PTR2 NEXT TST ENTRY
- * THE RECOVERY FILE *CRFI* HAS BEEN REFORMATTED ONTO FILE
- * *CRFAI*. CHANGE BOTH PERMANENT AND LOCAL FILE NAMES
- * FROM *CRFAI* TO *CRFI*.
- PTR5 WRITER CRFA,R FLUSH BUFFER
- WRITER CRFA,R WRITE END OF RECORD MARK
- REWIND CRFA,R
- PURGE CRF PURGE OLD *CRF*
- CHANGE CRFA CHANGE NAME FROM *CRFAI* TO *CRFI*
- RENAME CRFA,CUFN CHANGE LOCAL FILE NAME ALSO
- * REPORT RECOVERY UNIT ERRORS.
- SA1 TERR
- ZR X1,PTRX IF NO RECOVERY UNIT ERRORS
- RJ CDD CONVERT TO DISPLAY
- SA6 PTRI+1
- SB2 B1+B1
- RJ ALC ADVANCE LINE COUNT
- WRITEW R,PTRI,PTRIL REPORT NUMBER OF RECOVERY UNIT ERRORS
- REWIND CRFA,R
- EQ PTRX RETURN
- * REWRITE THE *CRF* HEADER.
- PTR6 SX7 TRBUF RESET BUFFER POINTERS
- SA7 CRF+2
- SA7 A7+B1
- WRITEW CRF,PBUF,TRHWL WRITE *CRF* HEADER
- SX1 CIORW
- SX2 B1 ONE PRU TO WRITE
- SX5 CRF
- SX6 1 PRU ADDRESS
- RJ FIO REWRITE HEADER
- SA1 CUFN COMPLETE SUBHEADING FOR REPORT
- SA2 PTRE
- SA3 A2+B1
- BX6 X2
- SA6 RFSH+1
- LX1 24
- MX0 -24
- BX6 -X0*X1
- BX6 X6+X3
- SA6 A6+B1
- SA2 PTRJ
- BX7 X0*X1
- BX7 X2+X7
- SA7 A6+B1
- SX5 DIR-RUDL
- SA0 B0 COMMENT=RECOVERED
- * REPORT RECOVERY UNITS RECOVERED.
- PTR7 SX5 X5+RUDL NEXT DIRECTORY ADDRESS
- RJ FRL FORMAT REPORT LINE
- SA1 NMRU
- SX6 X1-1 DECREMENT NUMBER OF RECOVERY UNITS
- SA6 A1
- NZ X6,PTR7 IF MORE RECOVERY UNITS TO REPORT
- RECALL CRF WAIT *CRF* I/O TO COMPLETE
- REWIND CRF,R
- EQ PTRX RETURN
- PTRB CON 0 REFORMAT FLAG
- PTRC DATA C* CANNOT DEFINE REFORMATTED FILE - XXXXXXX.*
- PTRE DATA C* RECOVERING - *
- PTRF DATA C* REFORMATTING - *
- PTRG DATA 10H NORMAL
- DATA 10H ABNORMAL
- PTRH DATA 10HSHUTDOWN -
- PTRI DATA 1L BLANK LINE
- DATA C* 0 RECOVERY UNIT ERRORS ENCOUNTERED.*
- PTRIL EQU *-PTRI
- PTRJ VFD 12/0,48/8H
- RRU SPACE 4,25
- ** RRU - REFORMAT RECOVERY UNIT.
- *
- * COPY A RECOVERY UNIT FROM *CRFI* TO *CRFAI*. IN THE
- * PROCESS IT MAY INCREASE THE SIZE OF THE MESSAGE RECORDS OR
- * THE NUMBER OF MESSAGES. INFORMATION ON THE RECOVERY UNIT IS
- * WRITTEN TO THE REPORT FILE.
- *
- * ENTRY (X1) = TERMINAL NAME.
- * (X5) = DIRECTORY ENTRY ADDRESS.
- * (NUMO) = NUMBER OF MESSAGES ON OLD *CRF*.
- * (ADMN) = ADDITIONAL MESSAGES ON NEW *CRF*.
- *
- * EXIT RECOVERY UNIT COPIED/REFORMATTED.
- *
- * USES X - 0, 1, 2, 3, 5, 6, 7.
- * A - 0, 1, 2, 3, 5, 6, 7.
- * B - 5, 6
- *
- * CALLS FIO, FRL, ZFB.
- *
- * MACROS MESSAGE, RECALL, READW, WRITEW.
- RRU SUBR ENTRY/EXIT
- SA2 NUMO NUMBER MESSAGES ON OLD *CRF*.
- SA3 ADMN ADDITIONAL MESSAGES ON NEW *CRF*.
- SX6 X2+B1 INCLUDE *SECURE* MESSAGE
- BX7 X3
- SA6 RRUA
- SA7 A6+B1
- BX6 X1
- SA6 RRUC+2
- MESSAGE RRUC,B1 *B-DISPLAY* MESSAGE
- SA0 B0 COMMENT=RECOVERED
- RJ FRL FORMAT REPORT LINE
- * COPY RECOVERY UNIT HEADER AND TRANSACTION INPUT.
- MX0 -30
- SA1 X5+1
- BX6 -X0*X1 PRU ADDRESS OF RECOVERY UNIT
- SX5 CRF FET ADDRESS
- SX1 CIORD READ
- SX2 TRUPL+MRIPL PRU-S TO READ
- RJ FIO READ RECOVERY UNIT HEADER
- RECALL X5 WAIT I/O
- SX7 TRBUF
- SA7 X5+3 SET OUT=FIRST
- READW CRF,PBUF,TRUWL+MRIWL
- WRITEW CRFA,PBUF,TRUWL+MRIWL
- SA5 WPMO MESSGAE SIZE ON OLD *CRF*
- * COPY *SECURE* AND *RPUT* MESSAGES.
- RRU1 RECALL CRF
- READW CRF,PBUF,X5 COPY MESSAGE RECORD
- WRITEW CRFA,PBUF,X5
- SA1 WPMN MESSAGE SIZE ON NEW *CRF*
- IX1 X1-X5
- ZR X1,RRU2 IF MESSAGE RECORD SIZE NOT INCREASED
- SB5 PBUF
- SB6 X1
- RJ ZFB ZERO FILL BUFFER
- WRITEW CRFA,PBUF,X1 INCREASE MESSAGE SIZE
- RRU2 SA1 RRUA
- SX6 X1-1
- SA6 A1
- NZ X6,RRU1 IF MORE MESSAGES TO GO
- SA1 RRUB
- ZR X1,RRUX IF NO ADDITIONAL MESSAGE RECORDS
- SA5 WPMN SIZE OF MESSAGE ON NEW *CRF*
- SB5 PBUF
- SB6 X5
- RJ ZFB ZERO FILL BUFFER
- RRU3 WRITEW CRFA,PBUF,X5 WRITE ADDITIONAL MESSAGE RECORDS
- SA1 RRUB
- SX6 X1-1
- SA6 A1
- NZ X6,RRU3 IF MORE MESSAGES TO ADD
- EQ RRUX RETURN
- RRUA CON 0 NUMBER MESSAGES ON OLD *CRF*
- RRUB CON 0 ADDITIONAL MESSAGES ON NEW *CRF*
- RRUC DATA 30H REFORMATTING - XXXXXXX.
- PRU SPACE 4,20
- ** PRU - PREALLOCATE RECOVERY UNIT.
- *
- * INITIALIZE A RECOVERY UNIT ON THE *CRF*. THE RECOVERY
- * UNIT NUMBER IS WRITTEN, FOLLOWED BY ZERO-FILLED, MESSAGE
- * RECORDS.
- *
- * ENTRY (X1) = TERMINAL NAME.
- * (X5) = FET ADDRESS.
- * (B4) = TRANSACTION STEP.
- * (CUID) = CURRENT ID.
- *
- * EXIT RECOVERY UNIT WRITTEN.
- *
- * USES X - 0, 1, 2, 3, 5, 6, 7.
- * A - 0, 1, 6, 7.
- * B - 5, 6.
- *
- * CALLS FRL, ZFB.
- *
- * MACROS MESSAGE, WRITEW.
- PRU SUBR ENTRY/EXIT
- SB5 PBUF
- SB6 PBUFL
- RJ ZFB ZERO FILL BUFFER
- BX6 X1
- SA6 PBUF+TRUNW STORE TERMINAL NAME
- SX7 B4
- SA7 PBUF+TRCSW STORE STEP
- SA6 PRUA+2
- SA6 PRUB STORE IN DUMMY DIRECTORY ENTRY
- MESSAGE PRUA,B1 *B-DISPLAY* MESSAGE
- WRITEW X5,PBUF,TRUWL WRITE RECOVERY UNIT HEADER
- BX6 X6-X6
- SA6 PBUF
- SA6 A6+B1
- SA1 CUID
- SA1 TREC+X1
- MX0 -12
- LX1 24
- BX2 -X0*X1 PRU-S IN USER MESSAGE RECORD
- LX1 12
- BX3 -X0*X1 NUMBER OF USER MESSAGE RECORDS
- SX3 X3+B1 INCLUDE SECURE MESSAGE
- IX0 X3*X2 PRU-S OF MESSAGE RECORDS
- SX0 X0+MRIPL INCLUDE INITIAL INPUT MESSAGE
- PRU1 WRITEW X5,PBUF,64
- SX0 X0-1
- NZ X0,PRU1 IF MORE TO WRITE
- SA0 2 COMMENT=INITIALIZED
- SX5 PRUB DIRECTORY ENTRY ADDRESS
- RJ FRL FORMAT REPORT LINE
- EQ PRUX RETURN
- PRUA DATA 30H INITIALIZING - XXXXXXX.
- PRUB BSSZ RUDL DUMMY DIRECTORY ENTRY
- RFH SPACE 4,20
- ** RFH - READ FILE HEADER.
- *
- * READ THE *CRF* HEADER RECORD AND CHECK FOR ANY ERRORS
- * WHICH WOULD PREVENT CORRECT AND CONSISTENT RECOVERY.
- *
- * ENTRY *CRF* FET SET UP.
- *
- * EXIT HEADER VALIDATED. TAF CHARACTERISTICS STORED.
- *
- * ERROR TO *ERR* IF I/O OR LOGICAL ERROR IN HEADER OR IF
- * NUMBER OF MESSAGES OR MESSAGE SIZE DECREASED.
- * (B5) = FWA OF ERROR MESSAGE.
- *
- * USES X - ALL.
- * A - 1, 2, 3, 4, 6, 7.
- * B - 2, 5.
- *
- * CALLS CES, FIO, SNM.
- *
- * MACROS RECALL.
- RFH SUBR ENTRY/EXIT
- * READ *CRF* HEADER.
- SX5 CRF FET ADDRESS
- SX1 CIORD READ
- SX2 B1 ONE PRU TO READ
- SX6 B1 PRU ADDRESS
- RJ FIO INITIATE READ
- RECALL X5 WAIT *CRF* I/O TO COMPLETE
- RJ CES CHECK ERROR STATUS
- SB5 RFHC
- NZ X1,RFH1 IF I/O ERROR
- * IF INCORRECT *CRF* HEADER, PRINT ERROR MESSAGE ON
- * RECOVERY REPORT AND ABORT *TAFREC*.
- SA2 TRBUF+TRFIW FILE NAME FOR HEADER
- SA1 CUFN FILE NAME FROM RECOVER DIRECTIVE
- BX3 X2-X1
- NZ X3,RFH1 IF NOT SAME
- SA2 TRBUF+TRRSW SAVE SHUTDOWN STATUS
- BX6 X2
- SA6 SDST
- SA3 CUID
- * IF *RECOVER* DIRECTIVE HAS REDUCED NUMBER OF MESSAGES
- * OR MESSAGE SIZE, PRINT ERROR ON RECOVERY REPORT AND
- * ABORT *TAFREC*.
- SA4 TREC+X3
- MX0 TRNWN
- LX0 TRNWS-59
- BX5 X0*X2 *MS* FROM *CRF*
- BX1 X0*X4 *MS* FROM RECOVER DIRECTIVE
- IX7 X1-X5
- SB5 RFHA
- NG X7,RFH1 IF *MS* HAS BEEN DECREASED
- LX5 TRNWN-TRNWS-1
- LX1 TRNWN-TRNWS-1
- SX7 X5-MAXMS-1
- SB5 RFHC
- PL X7,RFH1 IF LOGICAL ERROR
- SX6 X5+TRMWL+77B
- AX6 6 MESSAGE LENGTH IN PRU-S
- SA6 PPMO
- LX6 6 MESSAGE LENGTH IN WORDS ROUNDED TO N*64
- SA6 WPMO
- SX6 X1+TRMWL+77B
- AX6 6
- LX6 6 SAME FOR NEW *CRF*
- SA6 WPMN
- LX0 TRNMS-59+59-TRNWS
- BX5 X0*X2 *NM* FROM *CRF*
- BX6 X0*X4 *NM* FROM *RECOVER* DIRECTIVE
- LX5 TRNMN-TRNMS-1
- LX6 TRNMN-TRNMS-1
- SX7 X5-TRMM-1
- PL X7,RFH1 IF LOGICAL ERROR
- IX7 X6-X5
- SA7 ADMN ADDITIONAL MESSAGES ON NEW *CRF*
- BX6 X5
- SA6 NUMO NUMBER OF MESSAGES ON OLD *CRF*
- SB5 RFHB
- NG X7,RFH1 IF *NM* REDUCED
- LX0 -24
- BX6 X0*X2 NUMBER OF RECOVERY UNITS
- SA6 NMRU
- EQ RFHX RETURN
- * *CRF* HEADER ERROR OR *RECOVER* DIRECTIVE INCORRECT.
- RFH1 SB2 1RX
- SA1 CUFN
- RJ SNM SET NAME IN MESSAGE
- EQ ERR ERROR
- RFHA DATA C* MS REDUCTION INCORRECT - XXXXXXX.*
- RFHB DATA C* NM REDUCTION INCORRECT - XXXXXXX.*
- RFHC DATA C* CRF HEADER ERROR - XXXXXXX.*
- BDR SPACE 4,50
- ** BDR - BUILD DIRECTORY OF RECOVERY UNITS.
- *
- * READ THE *CRF* AND CREATE A SORTED DIRECTORY OF
- * RECOVERY UNITS. THE AUTOMATIC RECOVERY BIT IS SET IN THE
- * TST FOR EACH ACTIVE RECOVERY UNIT, IF TAF WAS
- * SHUT DOWN ABNORMALLY.
- *
- * DIRECTORY ENTRY FORMAT.
- *
- *T W1 42/TERMINAL,6/ TY,12/ STEP
- *T, W2 1/ I,1/ E,1/ D,1/ C,2/ ,24/ TSEQ,30/ DA
- *T, W3 60/ DATE
- *T, W4 60/ TIME
- *
- * WORD 1.
- * TERMINAL = TERMINAL NAME.
- * TY = TRANSACTION TYPE.
- * STEP = TRANSACTION STEP.
- *
- * WORD 2.
- * I = TERMINAL INACTIVE FLAG.
- * E = ERROR IN RECOVERY UNIT.
- * D = *CDCS* MAY BE USED BY THE TRANSACTION.
- * C = *CRM* MAY BE USED BY THE TRANSACTION.
- * TSEQ = TRANSACTION SEQUENCE NUMBER.
- * DA = RANDOM PRU ADDRESS OF RECOVERY UNIT.
- *
- * WORD 3.
- * DATE = DATE OF LAST RECORDED TRANSACTION.
- *
- * WORD 4.
- * TIME = TIME OF LAST RECORDED TRANSACTION.
- *
- *
- * ENTRY (NMRU) = NUMBER OF RECOVERY UNITS ON OLD *CRF*.
- * (NUMO) = NUMBER OF USER MESSAGES ON OLD *CRF*.
- * (WPMO) = WORDS PER USER MESSAGE ON OLD *CRF*.
- *
- * EXIT (X6) = 0 IF REFORMAT NOT NECESSARY.
- * (B5) = FWA OF ERROR MESSAGE IF ERROR.
- * DIRECTORY BUILT.
- * TO *ERR* IF I/O OR LOGICAL ERROR OR
- * IF ACTIVE RECOVERY UNIT DELETED FROM NETWORK FILE.
- *
- * USES X - ALL.
- * A - ALL.
- * B - 2, 3, 4, 5.
- *
- * CALLS CES, FIO, RMR, SDR, SNM.
- *
- * MACROS MESSAGE, RECALL.
- BDR SUBR ENTRY/EXIT
- SA1 NMRU
- SA0 X1 NUMBER OF RECOVERY UNITS
- BX6 X6-X6 CLEAR ERROR FLAG
- SA6 BDRE
- * COMPUTE PRU-S IN RECOVERY UNIT TO READ.
- SA3 NUMO NUMBER MESSAGES ON OLD *CRF*
- SA5 WPMO WORDS PER MESSAGE ON OLD *CRF*
- BX6 X5
- AX6 6 PRU-S PER MESSAGE
- SX3 X3+B1 INCLUDE *SECURE* MESSAGE
- IX6 X6*X3
- SX6 X6+B1 INCLUDE RECOVERY UNIT HEADER
- SX6 X6+MRIPL INCLUDE INITIAL INPUT
- SA6 BDRA PRU-S PER RECOVERY UNIT
- IX7 X3*X5 WORDS IN ALL MESSAGES
- SX7 X7+MRIWL INCLUDE INITIAL INPUT
- SA7 A6+B1
- SX7 DIR START OF DIRECTORY
- SA7 BDRD
- SX5 CRF
- SX6 2
- SA6 BDRC INITIALIZE DISK ADDRESS
- * READ RECOVERY UNITS. RECOVERY UNITS BEGIN AT PRU 2.
- BDR1 SX2 B1+ ONE PRU TO READ
- SX1 CIORD
- RJ FIO READ RECOVERY UNIT HEADER
- RECALL X5 WAIT I/O
- RJ CES
- ZR X1,BDR4 IF NO I/O ERROR
- * AN I/O ERROR OR BAD DATA HAS BEEN DETECTED ON THE *CRF*.
- * IF ERROR OVERRIDE HAS NOT BEEN SET, REPORT ERROR AND
- * ABORT *TAFREC*.
- BDR2 SA1 OVRD
- SA2 TERR
- SX6 X2+B1 INCREMENT ERROR COUNT
- SA6 A2
- SA6 BDRE INDICATE REFORMAT NECESSARY
- NZ X1,BDR11 IF ERROR OVERIDE SET
- BDR3 SB2 1RX *CRF* RECOVERY UNIT ERROR
- SB5 BDRG
- SA1 CUFN CURRENT FILE NAME
- RJ SNM
- EQ ERR PROCESS ERROR
- BDR4 SA2 TRBUF+TRUNW RECOVERY UNIT NAME
- BX6 X2
- SA6 BDRH+2
- SA1 HTST HIGHEST TST ORDINAL
- SA3 LTST LOWEST TST ORDINAL
- SB2 X1
- SB3 X3
- MX0 TSTNN
- BDR5 SA3 B3+B1 SEARCH TST FOR TERMINAL NAME
- BX6 X0*X3
- BX6 X6-X2
- ZR X6,BDR6 IF FOUND
- SB3 B3+TSTLLE
- SB4 B2-B3
- GE B4,BDR5 IF NOT END OF TST
- * A TERMINAL HAS BEEN DELETED FROM THE NETWORK FILE.
- * IF TERMINAL LAST RAN A NON RECOVERABLE TRANSACTION, DELETE
- * RECOVERY UNIT. OTHERWISE REPORT ERROR.
- SA2 TRBUF+TRCSW STEP WORD
- MX0 -TRCSN
- BX4 -X0*X2
- SX6 B1 SET REFORMAT FLAG
- SA6 BDRE
- SA1 NMRU
- SX6 X1-1 DECREMENT NUMBER OF RECOVERY UNITS
- SA6 A1
- SA1 TDEL
- SX6 X1+B1 INCREMENT COUNT OF DELETED RECOVERY UNITS
- SA6 A1+
- ZR X4,BDR11 IF NON RECOVERABLE TRANSACTION
- SB2 1RX ERROR - ACTIVE RECOVERY UNIT(S) DELETED.
- SB5 -BDRF
- SB3 BDRI
- SA1 BDRH+2 RECOVERY UNIT NAME
- RJ SNM SET NAME IN MESSAGE
- MESSAGE BDRI,0,R
- WRITEW R,BDRI,5 * ACTIVE RECOVERY UNIT(S) DELETED.*
- EQ BDR11 CONTINUE PROCESSING NEXT UNIT
- * RECOVER TERMINAL. INDICATE RECOVERY PROCESSING NEEDED
- * FOR TERMINAL IN TST.
- BDR6 MESSAGE BDRH,B1 *B-DISPLAY* MESSAGE
- SA2 TRBUF+TRCSW STEP WORD
- MX0 -TRCSN
- BX2 -X0*X2
- SB5 X2-CSCD
- ZR B5,BDR7 IF *CDCS* DOWN
- SB5 X2-CSTI
- ZR B5,BDR7 IF RECOVERABLE TRANSACTION/JOB INPUT
- SB5 X2-CSBC
- ZR B5,BDR7 IF BEGIN/COMMIT ID-S LOGGED
- SB5 X2-CSND
- ZR B5,BDR7 IF NAM DOWN
- EQ BDR8 RECOVERY BIT NOT SET
- * SET AUTOMATIC RECOVERY BIT.
- BDR7 SA3 A3-TSTNW+TSARW
- MX6 TSARN
- LX6 TSARS-59
- BX6 X3+X6 SET AUTO RECOVERY BIT
- SA6 A3
- * BUILD DIRECTORY ENTRY.
- BDR8 SA1 BDRD
- SA2 BDRH+2 TERMINAL NAME
- BX6 X2
- SA2 TRBUF+TRCNW
- MX0 -TRCNN
- BX7 -X0*X2 TRANSACTION SEQUENCE NUMBER
- LX7 30
- SA2 BDRC DISK ADDRESS
- BX7 X7+X2
- SA3 TRBUF+TRCSW
- MX0 -TRCSN
- BX4 -X0*X3 CURRENT TRANSACTION STEP
- SX0 X4-TSTPL
- PL X0,BDR2 IF TRANSACTION STEP NOT IN TABLE
- NZ X4,BDR9 IF NOT NONRECOVERABLE TRANSACTION
- MX2 1
- BX7 X7+X2 ADD INACTIVE FLAG
- BDR9 BX6 X6+X4 ADD STEP TO DIRECTORY
- LX3 TRTYN-TRTYS-1
- MX0 -TRTYN
- BX4 -X0*X3
- SA3 TNRC+X4
- SX0 X4-TTYPL-1
- PL X0,BDR2 IF TRANSACTION TYPE NOT IN TABLE
- LX4 17-5
- BX6 X6+X4 ADD TYPE TO DIRECTORY
- SA6 X1
- SA7 A6+B1
- SX6 X3+B1 INCREMENT COUNT OF RECOVERED TYPES
- SA6 A3
- SA3 TRBUF+TRCDW DATE
- SA4 TRBUF+TRCTW TIME
- BX6 X3
- BX7 X4
- SA6 A7+B1
- SA7 A6+B1
- * READ ALL MESSAGES FOR RECOVERY UNIT TO HELP AVOID I/O
- * ERRORS DURING TRANSACTION PROCESSING.
- SA2 BDRB WORDS IN ALL MESSAGES
- RJ RMR READ MESSAGE RECORDS
- SA2 BDRD
- ZR X1,BDR10 IF NO ERROR
- * AN I/O ERROR OCCURRED ON A MESSAGE RECORD IN THE
- * RECOVERY UNIT. IF NO ERROR OVERRIDE, REPORT ERROR ON
- * RECOVERY REPORT AND ABORT *TAFREC*. OTHERWISE, REFORMAT
- * THE *CRF* AND INDICATE THAT RECOVERY IS NO LONGER AVAILABLE
- * FOR RECOVERY UNIT.
- SA1 OVRD
- ZR X1,BDR3 IF ERROR OVERRIDE NOT SET
- SA1 X2+B1
- MX3 1
- LX3 -1
- BX6 X1+X3 SET ERROR BIT
- SA6 A1
- SA1 TERR
- SX6 X1+B1 INCREMENT ERROR COUNT
- SA6 A1+
- SA6 BDRE INDICATE REFORMAT NECESSARY
- BDR10 SX6 X2+RUDL UPDATE DIRECTORY ADDRESS
- SA6 BDRD
- BDR11 SA0 A0-B1 NUMBER OF RECOVERY UNITS LEFT
- SA2 BDRC UPDATE PRU ADDRESS OF NEXT RECOVERY UNIT
- SX7 A0
- SA3 BDRA INCREMENT
- IX6 X2+X3
- SA6 A2
- NZ X7,BDR1 IF MORE RECOVERY UNITS
- * SORT DIRECTORY OF RECOVERY UNITS BY TERMINAL NAME.
- SA1 BDRD
- SX1 X1-DIR DIRECTORY LENGTH
- SB3 DIR FWA OF DIRECTORY
- SB4 RUDL DIRECTORY ENTRY LENGTH
- RJ SDR SORT DIRECTORY
- * REFORMAT *CRF* IF NUMBER OF TERMINALS CHANGED, OR IF
- * NUMBER OF USER MESSAGES OR MESSAGE SIZE INCREASED, OR
- * IF I/O OR DATA ERROR OCCURRED.
- SA1 BDRE ERROR INDICATOR
- BX6 X1
- NZ X6,BDRX IF REFORMAT NECESSARY
- SA2 NMRU NUMBER OF RECOVERY UNITS
- SA3 HTST
- SA4 LTST
- IX3 X3-X4
- SX4 TSTLLE
- IX3 X3/X4
- SX3 X3+B1 NUMBER OF TST ENTRIES
- IX6 X3-X2
- NZ X6,BDRX IF REFORMAT NECESSARY
- SA1 CUID CURRENT ID
- SA1 TREC+X1
- MX0 12
- LX0 36
- BX6 X0*X1 NUMBER MESSAGES ON *RECOVER* DIRECTIVE
- LX6 -24
- SA2 NUMO NUMBER USER MESSAGES ON OLD *CRF*
- IX6 X6-X2
- NZ X6,BDRX IF REFORMAT NECESSARY
- LX0 12
- BX6 X0*X1
- LX6 -36 PRU-S PER USER MESSAGE FROM *RECOVER*
- SA2 PPMO PRU-S PER USER MESSAGE ON OLD *CRF*
- IX6 X6-X2
- EQ BDRX RETURN
- BDRA CON 0 PRU-S PER RECOVERY UNIT
- BDRB CON 0 WORDS IN ALL MESSAGE RECORDS
- BDRC CON 0 CURRENT DISK ADDRESS
- BDRD CON 0 CURRENT DIRECTORY ADDRESS
- BDRE CON 0 *CRF* REFORMAT FLAG
- BDRF DATA C* RECOVERABLE RUN UNIT DELETED - XXXXXXX.*
- BDRG DATA C* CRF RUN UNIT ERROR - XXXXXXX.*
- BDRH DATA 30H RECOVERING - XXXXXXX.
- BDRI BSSZ 5
- RMR SPACE 4,20
- ** RMR - READ MESSAGE RECORDS.
- *
- * READ MESSAGE RECORDS IN A RECOVERY UNIT TO CHECK FOR
- * I/O ERRORS.
- *
- * ENTRY (X2) = NUMBER OF WORDS IN ALL MESSAGE RECORDS.
- * (X5) = FET ADDRESS.
- *
- * EXIT (X1) = 0 IF NO ERRORS ENCOUNTERED.
- *
- * USES X - 1, 2, 6, 7.
- * A - 2, 7.
- *
- * CALLS CES, FIO.
- *
- * MACROS RECALL.
- RMR SUBR ENTRY/EXIT
- SX7 X2-TRBUFL/100B*100B
- SA7 RMRA
- AX2 6 CONVERT TO PRU-S
- NG X7,RMR1 IF LESS THAN A BUFFER SIZE
- NZ X7,RMR2 IF NOT SAME AS BUFFER SIZE
- RMR1 SX6 B0
- SX1 CIORD
- RJ FIO READ MESSAGE RECORDS
- RECALL X5 WAIT I/O
- RJ CES CHECK ERROR STATUS
- EQ RMRX RETURN
- RMR2 SX6 B0+
- SX1 CIORD
- SX2 TRBUFL/100B
- RJ FIO
- RECALL X5 WAIT I/O
- RJ CES CHECK ERROR STATUS
- NZ X1,RMRX IF ERROR
- SA2 RMRA
- SX7 X2-TRBUFL/100B*100B
- AX2 6 PRU-S
- NG X7,RMR1 IF LESS THAN A BUFFER FULL
- ZR X7,RMR1 IF EXACTLY A BUFFER FULL
- SA7 A2
- EQ RMR2 READ MORE MESSAGE RECORDS
- RMRA CON 0 WORDS IN ALL MESSAGE RECORDS
- FRL SPACE 4,20
- ** FRL - FORMAT REPORT LINE.
- *
- * EXTRACT INFORMATION FROM THE DIRECTORY ENTRY AND FORMAT
- * A PRINT LINE FOR THE REPORT FILE.
- *
- * ENTRY (X5) = ADDRESS OF THE DIRECTORY ENTRY.
- * (A0) = COMMENT INDEX.
- *
- * EXIT LINE WRITTEN TO REPORT FILE.
- *
- * USES X - 0, 1, 2, 6, 7.
- * A - 1, 2, 6, 7.
- * B - 2.
- *
- * CALLS ALC, CDD, SFN.
- *
- * MACROS WRITEW.
- FRL SUBR ENTRY/EXIT
- MX0 42
- SA1 X5
- BX1 X0*X1 TERMINAL NAME
- RJ SFN SPACE FILL NAME
- LX6 53-59 USE BLANK FOR PRINTER CONTROL
- SA6 RWSA
- MX0 24
- LX0 53-59
- SA1 X5+B1
- BX1 X0*X1
- LX1 23-53
- NZ X1,FRL1 IF TRANSACTION SEQUENCE NUMBER PRESENT
- SA1 BLNK
- BX6 X1
- SA6 RWSA+1
- SA6 A6+B1
- SA6 A6+B1
- SA6 A6+B1
- SA6 A6+B1
- EQ FRL2 PRINT COMMENT
- FRL1 RJ COD CONVERT TO DISPLAY
- LX6 12
- MX0 48
- SX2 2RB
- BX6 X0*X6
- BX6 X6+X2
- SA6 RWSA+1
- MX0 6
- LX0 18
- SA1 X5
- BX2 X0*X1
- LX2 -12 TRANSACTION TYPE
- SA2 TTYP+X2
- BX6 X2
- SA6 A6+B1
- MX0 12
- LX0 12
- BX2 X0*X1 TRANSACTION STEP
- SA2 TSTP+X2
- BX6 X2
- SA6 A6+B1
- SA1 X5+2 DATE
- SA2 A1+B1 TIME
- BX7 X1
- BX6 X2
- SA7 A6+B1
- SA6 A7+B1
- FRL2 SA1 FRLA+A0 GET COMMENT
- SA2 A1+B1
- BX6 X1
- BX7 X2
- SA6 A6+B1
- SA7 A6+B1
- SB2 B1
- RJ ALC ADVANCE LINE COUNT
- WRITEW R,RWSA,RWSAL
- EQ FRLX RETURN
- * TABLE OF COMMENTS FOR REPORT FILE (12 CHARACTERS MAXIMUM).
- FRLA BSS 0
- LOC 0
- DATA C*RECOVERED*
- DATA C*INITIALIZED*
- LOC *O
- STN SPACE 4,20
- ** STN - SEARCH TERMINAL NAME.
- *
- * SEARCH A TABLE FOR THE REQUIRED TERMINAL NAME.
- *
- * ENTRY (X1) = TERMINAL NAME.
- * (B3) = FWA OF TABLE.
- * (B4) = LENGTH OF ENTRY.
- * (B5) = LWA OF TABLE + 1.
- *
- * EXIT (X5) = ADDRESS OF ENTRY.
- * = 0 IF TERMINAL NOT FOUND.
- * (X1) = TERMINAL NAME.
- *
- * USES X - 0, 1, 2, 4, 5, 6, 7.
- * A - 2.
- * B - 3, 5.
- STN SUBR ENTRY/EXIT
- LX1 59-17
- MX0 42 MASK FOR TERMINAL NAME
- BX5 X5-X5
- EQ STN2 ENTER LOOP
- * USE BINARY SEARCH TO FIND TERMINAL.
- STN1 SB3 A2+B4 SET NEW LOW LIMIT
- STN2 SX7 B5-B3 FIND MIDDLE
- SX4 B4
- IX7 X7/X4
- AX7 1
- SX4 B4
- IX7 X4*X7
- SA2 B3+X7 READ AN ENTRY
- BX4 X0*X2
- LX4 42
- IX6 X4-X1
- ZR X6,STN3 IF ENTRY FOUND
- ZR X7,STN4 IF END OF SEARCH
- NG X6,STN1 IF TOO LOW IN TABLE
- SB5 A2 SET NEW UPPER LIMIT
- EQ STN2 NEXT ENTRY
- STN3 SX5 A2 ADDRESS OF ENTRY
- STN4 LX1 17-59 REPOSITION TERMINAL NAME
- EQ STNX RETURN
- SDR SPACE 4,15
- ** SDR - SORT DIRECTORY OF RECOVERY UNITS.
- *
- * ENTRY (B3) = FWA OF TABLE.
- * (B4) = LENGTH OF ENTRY.
- * (X1) = LENGTH OF TABLE.
- *
- * EXIT DIRECTORY SORTED BY TERMINAL NAME.
- *
- * USES X - ALL.
- * A - 3, 6.
- * B - 2, 4, 6, 7.
- SDR SUBR ENTRY/EXIT
- MX0 42
- SX2 B4
- MX4 12
- BX3 X1
- IX3 X3/X2 NUMBER OF ENTRIES
- SX2 B4
- NX6,B2 X3
- AX4 X4,B2
- SX1 B3+X1
- BX5 X5-X5
- EQ SDR7 ENTER SORT LOOP
- SDR1 PL X5,SDR3 IF NO SWAP
- SB7 X2 NUMBER OF WORDS TO MOVE
- SB6 B6+B2
- SDR2 SB7 B7-B1 DECREMENT INDEX
- SA3 SDRA+B7
- BX6 X3
- SA6 B6+B7
- NZ B7,SDR2 IF NOT END OF ENTRY
- SDR3 SB4 B4+X2
- SX3 B4+
- IX3 X3-X1
- BX5 X5-X5
- ZR X3,SDR7 IF END OF TABLE
- SB7 X2 NUMBER OF WORDS TO SAVE
- SDR4 SB7 B7-B1
- SA3 B4+B7
- BX6 X3
- SA6 SDRA+B7
- NZ B7,SDR4 IF NOT END OF ENTRY
- SB6 B4-B2
- BX7 X0*X3
- LX7 42 SHIFT SO NO SIGN BIT
- SDR5 SA3 B6+
- BX6 X0*X3
- LX6 42 SHIFT SO NO SIGN BIT
- IX6 X7-X6
- PL X6,SDR1 IF IN ORDER
- SB7 X2
- SX5 B6+B2
- SDR6 SB7 B7-B1
- SA3 B6+B7
- BX6 X3
- SA6 X5+B7
- NZ B7,SDR6 IF NOT END OF ENTRY
- MX5 1 INDICATE ENTRY REPLACED
- SB6 B6-B2
- GE B6,B3,SDR5 IF IN BOUNDS
- EQ SDR1 SELECT NEXT ENTRY
- SDR7 AX4 1
- BX3 -X4
- IX7 X2*X3
- SB2 X7
- SB7 X2
- SB4 B3+X7
- NZ X4,SDR4 IF MORE TO SORT
- EQ SDRX RETURN
- SDRA BSSZ RUDL TEMPORARY STORAGE
- GHL SPACE 4,15
- ** GHL - GET HIGHEST/LOWEST TST ENTRY ADDRESSES.
- *
- * CALCULATE THE HIGHEST AND LOWEST TST ADDRESSES FOR
- * THE REQUIRED NETWORK FILE.
- *
- * ENTRY (CUID) = CURRENT ID.
- *
- * EXIT (X6) = HIGHEST ADDRESS.
- * (X7) = LOWEST ADDRESS.
- *
- * USES X - 0, 1, 2, 3, 4, 6, 7.
- * A - 1, 3.
- GHL SUBR ENTRY/EXIT
- SA1 CUID
- SX3 TTFTE LENGTH OF TST HEADING ENTRY
- IX3 X3*X1
- SA3 TSTHD+X3 GET HIGHEST TST ORDINAL FOR ID
- MX0 -TFHON
- LX3 TFHON-1-TFHOS RIGHT JUSTIFY HIGHEST ORDINAL
- BX2 -X0*X3 HIGHEST ORDINAL
- SX4 B1+
- GHL1 SX1 X1-1
- NG X1,GHL2 IF START OF TST HEADER REACHED
- SA3 A3-TTFTE
- ZR X3,GHL1 IF NO NETWORK FILE FOR THIS ID
- LX3 TFHON-1-TFHOS RIGHT JUSTIFY HIGHEST ORDINAL
- BX4 -X0*X3 HIGHEST ORDINAL OF PREVIOUS NETWORK FILE
- SX4 X4+1 LOWEST ORDINAL FOR THIS NETWORK FILE
- GHL2 SX0 TSTLLE
- IX2 X0*X2 CONVERT TO OFFSET
- IX4 X0*X4
- SX0 TST
- IX6 X0+X2 CONVERT TO ABSOLUTE ADDRESS
- IX7 X0+X4
- EQ GHLX RETURN
- ZFB SPACE 4,10
- ** ZFB - ZERO FILL BUFFER.
- *
- * ENTRY (B5) = FWA OF BUFFER.
- * (B6) = NUMBER OF WORDS.
- *
- * USES X - 6.
- * A - 6.
- * B - 5, 6.
- ZFB SUBR ENTRY/EXIT
- EQ B6,ZFBX IF NONE
- SX6 B0+
- ZFB1 SA6 B5
- SB5 B5+B1
- SB6 B6-B1
- NE B6,ZFB1 IF MORE TO DO
- EQ ZFBX RETURN
- ALC SPACE 4,15
- ** ALC - ADVANCE LINE COUNT.
- *
- * ADVANCE THE LINE COUNT OF THE REPORT FILE AND IF
- * NECESSARY, PRINT THE HEADING AND SUBHEADING ON A NEW PAGE.
- *
- * ENTRY (B2) = NUMBER OF LINES TO ADVANCE.
- *
- * USES X - 1, 2, 6, 7.
- * A - 1, 2, 6.
- *
- * CALLS CDD.
- *
- * MACROS WRITEW.
- ALC SUBR ENTRY/EXIT
- SA1 LCNT CURRENT LINE COUNT
- SX6 X1+B2
- SX7 X6-LINP
- PL X7,ALC1 IF PAGE FULL
- SA6 A1
- EQ ALCX RETURN
- ALC1 SX6 B2+5 LINE COUNT PLUS HEADING
- SA2 SBHD+2
- IX6 X6+X2 INCLUDE SUBHEADING LINE COUNT
- SA6 A1
- SA1 PCNT
- SX1 X1+B1 INCREMENT PAGE COUNT
- BX6 X1
- SA6 A1+
- RJ CDD CONVERT TO DISPLAY CODE
- BX6 X4
- SA6 HEAD1
- WRITEW R,HEAD,HEADL WRITE NEW HEADING
- SA1 SBHD SUBHEADING ADDRESS
- SA2 A1+B1 LENGTH
- WRITEW R,X1,X2
- EQ ALCX RETURN
- ERR SPACE 4,10
- ** ERR - ERROR PROCESSOR.
- *
- * ISSUE A DAYFILE ERROR MESSAGE AND ABORT *TAFREC*.
- *
- * ENTRY (B5) = FWA OF ERROR MESSAGE.
- *
- * MACROS ABORT, MESSAGE, SETPFP, WRITER.
- ERR MESSAGE B5,0,R ISSUE SPECIFIC ERROR MESSAGE
- MESSAGE ERRA,0,R
- SA1 DFFM DEFAULT FAMILY
- SX0 10B *SETPFP* FLAGS
- BX6 X0+X1
- SA6 PFPA *SETPFP* CALL BLOCK
- SETPFP PFPA RESET TO DEFAULT FAMILY
- WRITER R,R FLUSH REPORT FILE BUFFER
- ABORT
- ERRA DATA C* CRF RECOVERY/INITIALIZATION ABORTED.*
- SPACE 4,10
- * COMMON DECKS.
- LIST X
- *CALL COMKFIO
- LIST -X
- SPACE 4,10
- *CALL COMCCDD
- *CALL COMCCIO
- *CALL COMCCOD
- *CALL COMCCPM
- *CALL COMCDXB
- *CALL COMCLFM
- *CALL COMCPFM
- *CALL COMCRDW
- *CALL COMCSFN
- *CALL COMCSNM
- *CALL COMCSYS
- *CALL COMCWTC
- *CALL COMCWTW
- *CALL COMCZTB
- TITLE *TAFREC* PRESET ROUTINES.
- PRS SPACE 4,10
- ** PRS - PRESET *TAFREC*.
- *
- * PERFORM PRESET PROCESSING FOR *TAFREC*.
- * PRESET CONSISTS OF -
- *
- * PROCESSING THE TCF.
- * SETTING THE *K-DISPLAY*.
- * PROCESSING THE NETWORK FILE(S).
- * ATTACHING OR DEFINING THE CRF(S).
- *
- * CALLS CDD, COD, IIM, PNF, PRK, PTF, RKD, SKD,
- * SRS, ZFB.
- *
- * MACROS CLOCK, DATE, GETPFP, READ, READW, REWIND,
- * STATUS, WRITEW.
- PRS SUBR
- SB1 1
- SX7 B0+
- SA7 VECSC CLEAR CURRENT ECS ADDRESS
- SA7 VTST SET *O-DISPLAY* INACTIVE
- DATE DATE
- CLOCK TIME
- GETPFP PFPA GET PERMANENT FILE PARAMETERS
- SA1 PFPA
- BX6 X1
- SA6 DFFM
- SX7 TTFTL
- SA7 TSTLW PRESET TST LENGTH
- SA1 DATE
- SA2 TIME
- BX6 X1
- BX7 X2
- SA6 PRSC
- SA7 A6+B1
- WRITEW R,PRSB,PRSBL WRITE REPORT FILE BANNER
- SX7 PMSG ADDRESS OF *PFM* ERROR MESSAGES
- SA7 CRF+CFPW
- SA7 CRFA+CFPW
- SA7 TCF+CFPW
- SA7 N+CFPW
- SB5 TSTHD FWA OF TST HEADER
- SB6 TTFTL+TSTLLE HEADER LENGTH + FIRST TST ENTRY
- RJ ZFB ZERO FILL BUFFER
- * DETERMINE IF RESTART.
- SA1 B0 POSITION TO SENSE SWITCH 3
- LX1 59-8
- PL X1,PRS1 IF RECOVERY MODE NOT SELECTED
- REWIND TIF,R
- READ TIF
- READW TIF,PRSA,1 READ WORD ONE INTO TEMPORARY LOCATION
- SX6 B1 SET RESTART FLAG
- LX6 TIRFS-0
- SA6 PRSA
- READW TIF,VLOCS,VLOCL RESTORE POINTERS
- SX7 B0+
- SA7 VTST SET *O-DISPLAY* INACTIVE
- SA7 VTOT CLEAR *TOTAL* LOAD FLAG
- SA7 VECSC CLEAR CURRENT EXTENDED MEMORY ADDRESS
- REWIND TIF
- SA7 VINT CLEAR *TAFXXX1* COMPLETE FLAG
- SA1 PRSE INDICATE RESTART
- BX6 X1
- SA6 HEAD2
- RJ RKD SET UP RESTART *K-DISPLAY*
- EQ PRS2 PROCESS TCF
- * SET UP INITIAL *TAFREC* VALUES.
- PRS1 BX7 X7-X7 CLEAR *TAFXXX1* COMPLETE FLAG
- SA7 VINT
- SX6 NSCP
- SX7 NCMB
- LX6 41-17
- LX7 41-17
- SA6 VNSCP NUMBER OF SUBCONTROL POINTS
- SA7 VNCMB NUMBER OF COMMUNICATION BLOCKS
- SX7 SCMFL
- SA7 VMFL MAXIMUM FL FOR SUBCONTROL POINTS
- SX7 ECSFL MAXIMUM EXTENDED MEMORY FOR *TAF*
- SX6 RECDF
- SA6 VREC USER RECOVERY FLAG DEFAULT VALUE
- SA1 PRSD
- BX6 X1
- LX7 9 CORRECTLY POSITION *ECSFL*
- SA7 VECS
- SA6 VTFL SYSTEM TASK LIBRARY FILE NAME
- SX1 CMMBFL BASE FL FOR CMM
- SX6 CMMEFL EXPANDABLE FL FOR CMM
- LX6 18
- BX7 X1+X6
- SX1 CMMTFL TARGET FL FOR CMM
- LX1 36
- BX7 X1+X7
- SA7 VCMM SAVE CMM FL
- * SAVE INITIAL *TIF* VALUES IN CASE OF ABORT.
- REWIND TIF,R
- WRITEW TIF,PRSA,1 STATUS WORD
- WRITEW TIF,VLOCS,VLOCL LOW CORE SYMBOLS
- WRITER TIF,R FLUSH BUFFER
- * PROCESS *TAF* CONFIGURATION PARAMETERS.
- PRS2 RJ PTF PROCESS TAF CONFIGURATION FILE
- ZR X2,PRS3 IF *K-DISPLAY* NOT REQUESTED
- SX3 KPRS
- RJ PRK PRESET K-DISPLAY BUFFER
- RJ SKD SET *K-DISPLAY*
- * COMPUTE NUMBER OF C.B.-S RESERVED FOR SMALL INPUT.
- PRS3 SB5 -NLIN*NCBC NUMBER OF C.B. FOR LARGE INPUT
- SA2 VNCMB NUMBER OF C.B.-S
- LX2 17-41
- SX6 X2+B5 COMPUTE *VNSIN*
- SX6 X6-RSCMB
- LX6 41-17
- SB5 PRSG
- NG X6,ERR IF NOT ENOUGH C.B.-S
- SA6 VNSIN
- * PROCESS NETWORK FILES.
- SA1 CUID
- SX2 MAXNF
- SX1 X1+B1 NEXT ID
- IX2 X2-X1
- ZR X2,PRS4 IF ALL ID-S PROCESSED
- SX2 2
- IX5 X2*X1
- BX6 X1
- SA6 A1
- SA1 TFAM+X5+1
- ZR X1,PRS3 IF NO NETWORK FILE
- RJ PNF PROCESS NETWORK FILE
- SX1 IPTAR
- ZR X1,PRS3 IF AUTO RECOVERY DISABLED
- RJ SRS SET RECOVERY STATUS
- EQ PRS3 NEXT ID
- * WRITE LOW CORE POINTERS.
- PRS4 REWIND TIF,R
- WRITEW TIF,PRSA,1 FALGS FOR *TAF1*
- WRITEW TIF,VLOCS,VLOCL WRITE LOW CM POINTERS
- * ISSUE DAYFILE MESSAGES.
- PRS6 MESSAGE IIMA * INITIALIZATION OPTIONS.*
- SA1 VNCMB NUMBER OF COMMUNICATION BLOCKS
- LX1 -24
- RJ CDD CONSTANT TO DECIMAL DISPLAY
- SB5 IIMB * K.CMB=XX.*
- BX1 X6
- LX1 48
- RJ IIM ISSUE INITIALIZATION MESSAGE
- SA1 VECS EXTENDED MEMORY FL
- LX1 -9
- RJ COD CONSTANT TO OCTAL DISPLAY
- BX1 X6
- LX1 42
- SB5 IIMC * K.ECS=XXXK.*
- RJ IIM ISSUE INITIALIZATION MESSAGE
- SA1 VMFL TAF MAXIMUM FL
- RJ COD CONSTANT TO OCTAL DISPLAY
- BX1 X6
- LX1 24
- SB5 IIME * K.MFL=XXXXXXB.*
- RJ IIM ISSUE INITIALIZATION MESSAGE
- SA2 VREC GET RECOVERY FLAG
- SX1 3L NO
- LX1 42
- ZR X2,PRS7 IF USER RECOVERY NOT SET
- SX1 3LYES
- LX1 42
- SX2 X2
- NZ X2,PRS7 IF USER RECOVERY SET
- SX1 3LCRM
- LX1 42
- PRS7 SB5 IIMF * K.REC=XXX.*
- RJ IIM ISSUE INITIALIZATION MESSAGE
- SA1 VNSCP NUMBER OF SUBCONTROL POINTS
- LX1 -24
- RJ CDD CONSTANT TO DECIMAL DISPLAY
- BX1 X6
- LX1 48
- SB5 IIMG * K.SCP=XX.*
- RJ IIM ISSUE INITIALIZATION MESSAGE
- SA1 VTFL NAME OF SYSTEM TASK LIBRARY
- AX1 18
- LX1 18
- SB5 IIMH * K.TLF=XXXXXXX.*
- RJ IIM ISSUE INITIALIZATION MESSAGE
- SA1 INTG *CRF* INTIALIZATION OPTION
- SB5 IIMI * K.INT=CRF,XXXXXXX.*
- RJ IIM ISSUE INITIALIZATION MESSAGE
- SA2 PRSA
- LX2 59-TICRS *CRM* INITIALIZATION OPTION
- SA1 PRSF
- PL X2,PRS8 IF NOT *ALL*
- SX1 3LALL
- LX1 42
- PRS8 SB5 IIMJ * K.INT=CRM,XXXX.*
- RJ IIM ISSUE INITIALIZATION MESSAGE
- SA2 OVRD *CRF* ERROR OVERRIDE OPTION
- SX1 3L NO
- LX1 42
- ZR X2,PRS9 IF NOT ERROR OVERRIDE
- SX1 3LYES
- LX1 42
- PRS9 SB5 IIMK * K.ERO=CRF,XXX.*
- RJ IIM ISSUE INITIALIZATION MESSAGE
- SA2 VCMM CMM FL
- SX1 X2 CMM BASE FL
- RJ COD CONVERT OCTAL TO DISPLAY
- BX1 X4
- SB5 IIML * K.BFL=XXXXXXB.*
- RJ IIM ISSUE INITIALIZATION MESSAGE
- SA1 VCMM
- AX1 18 CMM EXPANDABLE FL
- SX1 X1
- RJ COD CONVERT OCTAL TO DISPLAY
- BX1 X4
- SB5 IIMM * K.EFL=XXXXXXB.*
- RJ IIM ISSUE INITIALIZATION MESSAGE
- SA1 VCMM
- AX1 36
- RJ COD CONVERT OCTAL TO DISPLAY
- BX1 X4
- SB5 IIMN * K.TFL=XXXXXXB.*
- RJ IIM ISSUE INITIALIZATION MESSAGE
- EQ PRSX RETURN
- PRSA CON 0 FLAG WORD
- * REPORT FILE BANNER
- PRSB DATA C/1****************************************************
- ,*****************/
- DATA 1L
- DATA 1L
- DATA 10H
- DATA C* TAF INITIALIZATION AND RECOVERY REPORT*
- DATA 1L
- DATA 20H
- DATA C*GIVE TO TAF ADMINISTRATOR*
- DATA 1L
- DATA 20H
- PRSC BSS 2 DATE/TIME
- DATA 1L
- DATA 1L
- DATA C/ ****************************************************
- ,*****************/
- PRSBL EQU *-PRSB
- PRSD VFD 42/0L"TLFM",18/1
- PRSE DATA 10H RESTART
- PRSF DATA 4LNONE
- PRSG DATA C* NOT ENOUGH COMMUNICATION BLOCKS DEFINED.*
- IIM SPACE 4,10
- ** IIM - ISSUE INITIALIZATION MESSAGE.
- *
- * ENTRY (B5) = FWA OF MESSAGE.
- * (X1) = VALUE TO BE PUT IN MESSAGE.
- *
- * USES B - 2, 3, 5.
- *
- * CALLS SNM.
- IIM SUBR ENTRY/EXIT
- SB2 1RX SET REPLACEMENT CHARACTER
- SB3 DAYB ALTERNATE ASSEMBLY AREA
- SB5 -B5
- RJ SNM SET NAME IN MESSAGE
- MESSAGE DAYB ISSUE MESSAGE TO DAYFILE
- EQ IIMX RETURN
- IIMA DATA C* INITIALIZATION OPTIONS.*
- IIMB DATA C* K.CMB=XX.*
- IIMC DATA C* K.ECS=XXXK.*
- IIME DATA C* K.MFL=XXXXXXB.*
- IIMF DATA C* K.REC=XXX.*
- IIMG DATA C* K.SCP=XX.*
- IIMH DATA C* K.TLF=XXXXXXX.*
- IIMI DATA C* K.INT=CRF,XXXXXXX.*
- IIMJ DATA C* K.INT=CRM,XXXX.*
- IIMK DATA C* K.ERO=CRF,XXX.*
- IIML DATA C* K.BFL=XXXXXXB.*
- IIMM DATA C* K.EFL=XXXXXXB.*
- IIMN DATA C* K.TFL=XXXXXXB.*
- PTF SPACE 4,40
- ** PTF - PROCESS *TAF* CONFIGURATION FILE.
- *
- * READ DIRECTIVES FROM THE TCF AND VALIDATE THE
- * PARAMETERS. ALL DIRECTIVES ARE VALIDATED BUT ONLY A SUBSET
- * OF THEM ARE FULLY PROCESSED WITHIN *TAFREC*. THE OTHERS
- * RECEIVE FINAL PROCESSING IN *TAFNAM1*.
- *
- * VALID DIRECTIVES ARE -
- *
- * * DISPLAY(DSTAT)
- * * K.COMMAND.
- * * NETWORK(ID=I,FM=FAMILY,UN=USERNAM)
- * * RECOVER(ID=I,NM=NMSG,MS=MSIZE)
- * DMS(DM,SW,DB1,DB2,...,DBN)
- *
- * WHERE DSTAT = *ON* OR *OFF* DEFINES IF K-DISPLAY IS USED.
- * COMMAND = INITIALIZATION OPTIONS, STOP, END OR GO.
- * I = NETWORK FILE AND *CRF* ID (0-7).
- * FAMILY = FAMILY WHERE NETWORK FILE AND *CRF* RESIDE.
- * USERNAM = USER NAME OF NETWORK FILE AND *CRF*.
- * NMSG = NUMBER OF USER MESSAGES/TERMINAL ON *CRF*.
- * MSIZE = MAXIMUM USER MESSAGE SIZE.
- * DM = DATA MANAGER (*TAF*,*CRM*,*TOTAL*,*OTHER*).
- * SW = *ON* OR *OFF*.
- * DBI = DATA BASE NAMES.
- *
- * DIRECTIVES FLAGGED BY * ARE FULLY PROCESSED IN *TAFREC*.
- *
- * EXIT (X2) .NE. 0 IF K-DISPLAY TO BE SET.
- * *TCF* PROCESSED.
- * (B5) = FWA OF ERROR MESSAGE IF ERROR.
- * TO *SKD* IF ERRORS IN *TCF*.
- * TO *ERR* IF *TCF* NOT FOUND, OTHER THAN
- * *K.COMMAND* ERRORS OR OPERATOR TERMINATION.
- *
- * USES X - ALL.
- * A - ALL.
- * B - 2, 3, 4, 5, 7.
- *
- * CALLS ALC, DMS, DSP, DXB, NET, PKC, RCV, SKD, UPC.
- *
- * MACROS GET, MESSAGE, READ, READC, REWIND, STATUS, WRITEC,
- * WRITEW.
- *
- * NOTES *K-DISPLAY* WILL BE SET IN CASE OF INCORRECT
- * DIRECTIVES.
- PTF SUBR ENTRY/EXIT
- SX6 PTFQ
- SX7 PTFQL
- SA6 SBHD SET SUB HEADING ADDRESS
- SA7 A6+B1 LENGTH
- SX6 B1+B1 SUBHEADING LINE COUNT
- SA6 A7+B1
- * IF TCF IS LOCAL, USE IT, OTHERWISE GET TCF
- * FROM *TAF-S* USER INDEX.
- STATUS TCF SEE IF TCF IS LOCAL
- SA1 X2
- MX0 11
- LX1 59-11
- BX1 X0*X1
- NZ X1,PTF1 IF TCF LOCAL
- GET TCF
- MX0 8
- SA1 TCF
- LX1 59-17
- BX1 X0*X1
- ZR X1,PTF1 IF TCF FOUND
- SB5 PTFD
- EQ ERR ERROR - FILE TCF NOT FOUND
- PTF1 REWIND TCF,R LOCAL TCF MUST BE REWOUND IF RESTART
- READ TCF,R
- SA1 TCF+2 IN
- SA2 A1+B1 OUT
- IX3 X1-X2 IN-OUT
- NZ X3,PTF2 IF TCF FILE NOT EMPTY
- SB5 PTFE
- EQ ERR ERROR - TCF FILE EMPTY
- * SET DEFAULT *TAF* CONFIGURATION VALUES.
- PTF2 SX6 B0+
- SA1 DFNM DEFAULT *NM*
- SA2 DFMS DEFAULT *MS*
- SA6 ID CLEAR *ID*
- BX6 X1
- BX7 X2
- SA6 A6+B1
- SA7 A6+B1
- READC TCF,PTFB,16 READ DIRECTIVE IMAGE
- NZ X1,PTF6 IF NO MORE ENTRIES
- SB2 B1
- RJ ALC ADVANCE LINE COUNT
- WRITEW R,BLNK,2
- WRITEC R,PTFB WRITE DIRECTIVE TO REPORT FILE
- SB7 PTFC FWA TO UNPACK INTO
- SA5 PTFB FIRST WORD TO UNPACK
- RJ UPC UNPACK DIRECTIVE IMAGE
- ZR X6,PTF3 IF NO UNPACK ERRORS
- SA0 PTFF * INCORRECT TCF ENTRIES*
- EQ PTF5 REPORT ERROR
- PTF3 MX0 42
- SA1 PTFC
- SA4 PTFA FWA OF KEYWORD TABLE
- SA0 PTFH
- PTF4 ZR X4,PTF5 IF INCORRECT KEYWORD
- BX5 X1-X4
- BX2 X0*X5
- SB3 X4
- SA4 A4+B1
- NZ X2,PTF4 IF NO MATCH
- JP B3 PROCESS KEYWORD
- * ENTRY FROM *SKD*.
- * WRITE ERROR MESSAGE TO RECOVERY REPORT.
- PTF5 WRITEW R,PTFG,PTFGL WRITE GENERAL ERROR MESSAGE
- WRITEC R,A0 WRITE DETAILED ERROR MESSAGE
- MESSAGE PTFB,3 WRITE STATEMENT IN ERROR
- MESSAGE A0,3 WRITE ERROR MESSAGE
- SA1 PTFN
- SX6 X1+B1 INCREMENT NUMBER OF ERRORS
- SA6 A1
- EQ PTF2 PROCESS NEXT DIRECTIVE
- PTF6 SX6 B0 CLEAR TCF ORIGIN
- SA6 KCOF
- SA1 PTFZ *K.* ERROR COUNT
- SA3 PTFN TOTAL ERROR COUNT
- IX6 X3-X1 GET FATAL ERROR COUNT
- SA6 PTFN
- NZ X6,PTF7 IF FATAL ERRORS
- ZR X1,PTF7 IF NO *K.* ERRORS
- SA6 PTFU CLEAR *K-DISPLAY* STATUS FLAG
- RJ SKD DISPLAY
- PTF7 WRITEW R,PTFY,B1 BLANK LINE
- SA3 PTFN ERROR COUNT
- SA2 PTFAA MUST HAVE A *USER* COMMAND
- SA4 PTFO CHECK MATCH OF *NETWORK* AND *RECOVER*
- IX6 X4+X3
- IX6 X6+X2
- SA2 PTFU
- SA1 PTFR *TAFNAM* MUST HAVE A *NETWORK* DIRECTIVE
- IX6 X6+X1
- SA5 PTFS RECOVERY MUST HAVE A *RECOVER* DIRECTIVE
- IX6 X6+X5
- ZR X6,PTFX IF NO ERRORS
- ZR X1,PTF8 IF *NETWORK* DIRECTIVE PRESENT
- SA0 X4 SAVE X4
- SB2 B1+B1
- RJ ALC ADVANCE LINE COUNT
- WRITEC R,PTFV *NETWORK* DIRECTIVE(S) REQUIRED
- SX4 A0 RESTORE X4
- PTF8 ZR X5,PTF8.1 IF *RECOVER* DIRECTIVE PRESENT
- BX5 X4 SAVE X4
- SB2 B1+B1
- RJ ALC ADVANCE LINE COUNT
- WRITEC R,PTFW *RECOVER* DIRECTIVE(S) REQUIRED
- BX4 X5 RESTORE X4
- PTF8.1 SA2 PTFAA
- ZR X2,PTF9 IF *USER* COMMAND PRESENT
- BX5 X4 SAVE *PTFO* FLAGS FOR *NETWORK/RECOVER*
- SB2 B1+B1
- RJ ALC ADVANCE LINE COUNT
- WRITEC R,PTFAC * USER COMMAND REQUIRED.*
- BX4 X5 RESTORE *PTFO* FLAGS FOR *NETWORK/RECOVER*
- PTF9 ZR X4,PTF10 IF *RECOVER* AND *NETWORK* ID-S MATCH
- SB2 B1+B1
- RJ ALC ADVANCE LINE COUNT
- WRITEC R,PTFP *RECOVER* AND *NETWORK* ID-S DO NOT MATCH
- PTF10 SB5 PTFF
- EQ ERR ERROR - INCORRECT TCF ENTRIES
- * PROCESS *DISPLAY*.
- PTF11 SA1 PTFC+1 GET PARAMETER
- RJ DSP PROCESS *DISPLAY* DIRECTIVE
- SA0 PTFI
- NZ X3,PTF5 IF ERROR IN DIRECTIVE
- SA6 PTFU INDICATE *K-DISPLAY* STATUS
- MX6 12
- SA6 PTFA INHIBIT MORE *DISPLAY* DIRECTIVES
- EQ PTF2 PROCESS NEXT DIRECTIVE
- * PROCESS *NETWORK*.
- PTF12 SB4 B6-1 ARGUMENT COUNT
- SA4 PTFC+1 FIRST ARGUMENT
- RJ NET PROCESS *NETWORK* DIRECTIVE
- SB4 A0
- NE B4,PTF5 IF DIRECTIVE ERROR
- BX6 X6-X6
- SA6 PTFR INDICATE *NETWORK* DIRECTIVE PRESENT
- SX1 IPTAR
- ZR X1,PTF2 IF AUTO RECOVERY NOT ENABLED
- SA1 PTFO
- SX2 B1
- LX2 X2,B5
- BX6 X1-X2 SET/CLEAR BIT FOR THIS *ID*
- SA6 A1
- EQ PTF2 PROCESS NEXT DIRECTIVE
- * PROCESS *RECOVER*.
- PTF13 SX1 IPTAR-1
- SA0 PTFK * RECOVERY DISABLED.*
- NZ X1,PTF5 IF *RECOVER* INCORRECT
- SA4 PTFC+1 FIRST ARGUMENT
- SB4 B6-1 ARGUMENT COUNT
- RJ RCV PROCESS *RECOVER* DIRECTIVE
- SB4 A0+
- NE B4,PTF5 IF DIRECTIVE ERROR
- SA1 PTFO
- SX2 B1
- LX2 X2,B6
- BX6 X1-X2 SET/CLEAR BIT FOR THIS ID
- SA6 A1
- SX6 B0+
- SA6 PTFS INDICATE *RECOVER* DIRECTIVE PRESENT
- EQ PTF2 PROCESS NEXT DIRECTIVE
- * PROCESS *DMS*.
- PTF14 SA1 PTFC FWA OF UNPACKED DIRECTIVE BUFFER
- RJ DMS PROCESS *DMS*
- SA0 PTFI * PARAMETER ERROR.*
- NZ X5,PTF5 IF ERROR
- EQ PTF2 PROCESS NEXT DIRECTIVE
- * PROCESS BATCH CONCURRENCY COMMAND *TBCON,N.*
- PTF15 SA5 PTFC+B1 NUMBER OF BATCH CONCURRENCY JOBS
- SA0 PTFI *PARAMETER ERROR*
- RJ DXB CONVERT NUMBER
- NZ X4,PTF5 IF CONVERSION ERROR
- EQ PTF2 PROCESS NEXT DIRECTIVE
- * PROCESS *K.COMMAND*
- PTF16 SA1 B0
- LX1 59-8 POSITION TO SENSE SWITCH 3
- NG X1,PTF2 IF RECOVERY MODE SELECTED
- SA1 PTFB FIRST PARAMETER
- SX6 B1 SET *K.COMMAND* MODE
- SA6 KCOF
- RJ SKD PROCESS *K.COMMAND*
- * ENTRY POINT FROM *SKD*.
- PTF17 ZR X2,PTF2 IF NO ERROR
- SA1 PTFZ *K.* ERROR COUNT
- SX6 X1+B1 INCREMENT ERROR COUNT
- SA6 A1
- EQ PTF5 RECORD COUNT ERROR IN REPORT
- * PROCESS *USER* COMMAND.
- PTF18 SA5 PTFAA MUST HAVE ONLY ONE *USER* COMMAND
- SA0 PTFAD
- SB2 X5
- NE B1,B2,PTF5 IF NOT FIRST *USER* COMMAND
- SX6 B0 INDICATE AT LEAST ONE *USER* COMMAND
- SA6 A5
- RJ USR PROCESS *USER* COMMAND
- SX6 A0
- NZ X6,PTF5 IF ERROR OCCURRED
- EQ PTF2 PROCESS NEXT COMMAND
- * TABLE OF VALID DIRECTIVE KEYWORDS.
- PTFA VFD 42/0LDISPLAY,18/PTF11
- VFD 42/0LNETWORK,18/PTF12
- VFD 42/0LRECOVER,18/PTF13
- VFD 42/0LDMS,18/PTF14
- VFD 42/0LK,18/PTF16
- VFD 42/0LTBCON,18/PTF15
- VFD 42/0LACCOUNT,18/PTF18 *ACCOUNT* COMMAND
- VFD 42/0LUSER,18/PTF18 *USER* COMMAND
- CON 0 TABLE TERMINATOR
- PTFB BSSZ 16 BUFFER FOR DIRECTIVE IMAGE
- PTFC BSSZ 80 BUFFER FOR UNPACKED DIRECTIVE
- PTFD DATA C* FILE TCF NOT FOUND.*
- PTFE DATA C* TCF FILE EMPTY.*
- PTFF DATA C* INCORRECT TCF ENTRY.*
- PTFG DATA 40H *** ERROR IN ABOVE DIRECTIVE ***
- PTFGL EQU *-PTFG
- PTFH DATA C* UNKNOWN DIRECTIVE.*
- PTFI DATA C* PARAMETER ERROR.*
- PTFK DATA C* RECOVERY DISABLED.*
- PTFL DATA C* DUPLICATE RECOVER ID.*
- PTFM DATA C* DUPLICATE NETWORK ID.*
- PTFN CON 0 NUMBER OF DIRECTIVE ERRORS
- PTFO CON 0 FLAGS FOR *NETWORK*/*RECOVER* DIRECTIVES
- PTFP DATA 10H
- DATA C* NONMATCHING NETWORK AND RECOVER ID-S*
- PTFQ DATA 20H
- DATA C*TAF CONFIGURATION FILE*
- DATA 1L
- PTFQL EQU *-PTFQ
- PTFR CON 1 MUST BE AT LEAST ONE *NETWORK* DIRECTIVE
- .A IFEQ IPTAR,1
- PTFS CON 1 MUST BE AT LEAST ONE *RECOVER* DIRECTIVE
- .A ELSE
- PTFS CON 0 NO *RECOVER* DIRECTIVES
- .A ENDIF
- PTFU CON 0 SET *K-DISPLAY* IF NONZERO
- PTFV DATA 10H
- DATA C* NETWORK DIRECTIVE(S) REQUIRED.*
- PTFW DATA 10H
- DATA C* RECOVER DIRECTIVE(S) REQUIRED.*
- PTFY DATA 1L
- PTFZ CON 0 *K-COMMAND* ERROR COUNT
- PTFAA CON 1 MUST BE ONLY ONE *USER* COMMAND
- PTFAB DATA C* USER COMMAND NOT VALID ON FAMILY.*
- PTFAC DATA C* USER COMMAND DOES NOT APPEAR IN TCF.*
- PTFAD DATA C* MORE THAN ONE USER COMMAND IN TCF.*
- DSP SPACE 4,10
- ** DSP - PROCESS *DISPLAY* DIRECTIVE.
- *
- * ENTRY (X1) = DISPLAY STATUS.
- *
- * EXIT (X6) = NONZERO IF *K-DISPLAY* TO BE SET.
- * (X3) = 0 IF NO ERROR IN DIRECTIVE.
- *
- * USES X - 2, 3, 6.
- * A - 2.
- DSP SUBR ENTRY/EXIT
- BX6 X6-X6 PRESET DISPLAY OFF
- SA2 DSPA
- BX3 X2-X1
- ZR X3,DSPX IF *OFF*
- SA2 A2+B1
- BX3 X2-X1
- NZ X3,DSPX IF NOT *ON*
- SX6 DSP
- EQ DSPX RETURN
- * TABLE OF VALID DISPLAY STATUSES.
- DSPA VFD 42/0LOFF,18/0
- VFD 42/0LON,18/0
- DSP SPACE 4,20
- ** NET - PROCESS *NETWORK* DIRECTIVE.
- *
- * ENTRY (A4) = ADDRESS OF FIRST ARGUMENT.
- * (B4) = ARGUMENT COUNT.
- *
- * EXIT (A0) = FWA OF ERROR MESSAGE IF ERROR.
- * = 0 IF NO ERROR.
- * (B5) = NETWORK ID.
- *
- * USES X - 1, 2, 5, 6, 7.
- * A - 0, 1, 2, 5, 7.
- * B - 5, 6, 7.
- *
- * CALLS ARG, DXB.
- *
- * MACROS SYSTEM.
- NET SUBR ENTRY/EXIT
- SA0 PTFI * PARAMETER ERROR.*
- SB5 NETA ARGUMENT TABLE
- RJ ARG PROCESS ARGUMENTS
- NZ X1,NETX IF ERRORS
- SA5 ID
- SB7 B1+
- RJ DXB DISPLAY TO BINARY
- NZ X4,NETX IF INCORRECT ID
- SX7 X6-MAXNF
- PL X7,NETX IF INCORRECT ID
- SB5 X6
- SX7 B1+B1
- IX6 X7*X6
- SA1 TFAM+X6+1
- SA0 PTFM * DUPLICATE NETWORK ID.*
- NZ X1,NETX IF ID ALREADY USED
- SB6 X6+
- SYSTEM CPM,R,FM,56B*100B VALIDATE FAMILY/USER NAME
- SA1 UN
- SA0 PTFAB * USER NOT VALID ON FAMILY.*
- SX6 X1+
- ZR X6,NETX IF INCORRECT FAMILY/ USER NAME
- SA2 FM SAVE FAMILY NAME
- BX7 X2
- SA0 B0 INDICATE NO ERROR
- SA7 TFAM+B6
- BX7 X1
- SA7 A7+1 SAVE USER INDEX
- EQ NETX RETURN
- * ARGUMENT TABLE FOR *NETWORK* DIRECTIVE.
- NETA BSS 0
- ID ARG NETB,ID,400B
- FM ARG NETB,FM
- UN ARG NETB,UN
- CON 0 TABLE TERMINATOR
- NETB CON 0 FLAG NONEQUIVALENCED PARAMETERS
- RCV SPACE 4,15
- ** RCV - PROCESS *RECOVER* DIRECTIVE.
- *
- * ENTRY (A4) = ADDRESS OF FIRST ARGUMENT.
- * (B4) = ARGUMENT COUNT.
- *
- * EXIT (A0) = FWA OF ERROR MESSAGE IF ERROR.
- * = 0 IF NO ERROR.
- * (B6) = RECOVER ID.
- *
- * USES X - 1, 4, 5, 6, 7.
- * A - 0, 1, 5, 6.
- * B - 5, 6, 7.
- *
- * CALLS ARG, DXB.
- RCV SUBR ENTRY/EXIT
- SA0 PTFI * PARAMETER ERROR.*
- SB5 RCVA ARGUMENT TABLE
- RJ ARG PROCESS ARGUMENTS
- NZ X1,RCVX IF ERRORS
- SA5 ID
- SB7 B1
- RJ DXB DISPLAY TO BINARY
- SB6 X6
- NZ X4,RCVX IF INCORRECT ID
- SX7 X6-MAXRC
- PL X7,RCVX IF INCORRECT ID
- SA5 NM
- RJ DXB DISPLAY TO BINARY
- NZ X4,RCVX IF INCORRECT *NM*
- SX7 X6-TRMM-1
- PL X7,RCVX IF INCORRECT *NM*
- SA1 TREC+B6
- SA0 PTFL * DUPLICATE RECOVER ID.*
- NZ X1,RCVX IF ID ALREADY USED
- LX6 24
- BX6 X6+X1
- SA6 A1+ SAVE NUMBER OF USER MESSAGES
- SA5 MS
- RJ DXB DISPLAY TO BINARY
- SA0 PTFI * PARAMETER ERROR.*
- NZ X4,RCVX IF INCORRECT *MS*
- SX7 X6-MAXMS
- PL X7,RCVX IF INCORRECT *MS*
- SA1 TREC+B6
- SX4 X6+TRMWL+77B
- AX4 6 PRU-S PER MESSAGE RECORD
- LX4 36
- LX6 12
- BX6 X6+X1
- BX6 X6+X4
- SA6 A1 SAVE MAXIMUM MESSAGE SIZE
- SA0 B0+ SET NO ERROR
- EQ RCVX RETURN
- * ARGUMENT TABLE FOR *RECOVER* DIRECTIVE.
- RCVA BSS 0
- ID ARG RCVB,ID,400B
- NM ARG RCVB,NM
- MS ARG RCVB,MS
- CON 0 TABLE TERMINATOR
- RCVB CON 0 FLAG NON EQUIVALENCED PARAMETERS
- DMS SPACE 4,10
- ** DMS - PROCESS *DMS* DIRECTIVE.
- *
- * ENTRY (A1) = FWA OF UNPACKED DIRECTIVE BUFFER.
- *
- * EXIT (X5) = 0 IF NO ERROR.
- * TO *ERR* IF DB-NAME ERROR.
- *
- * USES X - 0, 1, 2, 4, 5.
- * A - 1, 2.
- * B - 5.
- DMS SUBR ENTRY/EXIT
- MX0 42 MASK FOR PARAMETERS
- SA1 A1+B1
- SA2 DMSA
- DMS1 ZR X2,DMSX IF INCORRECT DATA MANAGER
- BX4 X1-X2
- SA2 A2+B1
- BX5 X0*X4
- NZ X5,DMS1 IF NO MATCH
- SA1 A1+B1 SECOND ARGUMENT (DATA MANAGER STATUS)
- SA2 DMSB
- DMS2 ZR X2,DMSX IF INCORRECT STATUS
- BX4 X1-X2
- SA2 A2+B1
- BX5 X0*X4
- NZ X5,DMS2 IF NO MATCH
- MX0 6
- SX2 1RZ
- LX2 -6
- DMS3 SA1 A1+B1
- SX5 B0
- ZR X1,DMSX IF END OF STATEMENT
- BX4 X0*X1
- BX5 X4-X2
- NZ X5,DMS3 IF *DB-NAME* DOES NOT START WITH *Z*
- SB5 MZDB ISSUE ERROR MESSAGE
- EQ ERR PROCESS ERROR
- * TABLE OF VALID DATA MANAGERS.
- DMSA VFD 42/0LCRM,18/0
- VFD 42/0LTOTAL,18/0
- VFD 42/0LOTHER,18/0
- CON 0 TABLE TERMINATOR
- * TABLE OF VALID STATUS SWITCHES.
- DMSB VFD 42/0LOFF,18/0
- VFD 42/0LON,18/0
- CON 0 TABLE TERMINATOR
- USR SPACE 4,25
- ** USR - PROCESS *USER* COMMAND.
- *
- * THE *USER* COMMAND IS USED TO INDICATE WHICH USER NAME
- * TAF IS TO RUN UNDER. THIS USER NAME MUST BE ASSIGNED THE
- * USER INDEX SPECIFIED BY *TRUI*.
- *
- * USER(UN,PW,FM)
- * ACCOUNT(UN,PW,FM)
- *
- * WHERE UN = USER NAME.
- * PW = PASSWORD.
- * FM = FAMILY.
- *
- * ENTRY (A1) = FWA OF PARAMETER TO CHECK.
- *
- * EXIT (A0) = 0, IF NO ERROR.
- * = FWA OF ERROR MESSAGE, IF ERROR.
- *
- * USES X - 1, 3, 7.
- * A - 0, 1, 7.
- * B - 3, 4.
- *
- * MACROS SETPFP, SYSTEM.
- USR SUBR ENTRY/EXIT
- MX3 42 MASK FOR PARAMETER
- SA1 A1+1 USER NAME
- BX7 X3*X1
- SA7 VUSN
- SA7 USRC
- SA7 UN
- SA1 A1+B1 PASSWORD
- BX7 X3*X1
- SA7 USRB
- SA1 A1+B1 FAMILY NAME
- BX7 X3*X1
- SA7 VFMN
- SA7 USRA
- SA7 FM
- * VALIDATE USER.
- SYSTEM CPM,R,USRA,56B*100B VALIDATE USER NAME
- SA1 USRC GET USER INDEX
- SB3 X1+
- SB4 TRUI USER INDEX TAF MUST RUN UNDER
- SA0 PTFAB *USER* NOT VALID ON FAMILY
- ZR B3,USRX IF INCORRECT USER
- SA1 VFMN RESET FAMILY NAME
- BX7 X1
- SA7 USRA
- SX0 10B *SETPFP* FLAGS
- BX7 X0+X7
- SA7 PFPA *SETPFP* CALL BLOCK
- SETPFP PFPA SET FAMILY
- SA0 B0 NO ERRORS
- EQ USRX EXIT
- USRA VFD 42/0,18/0 FAMILY NAME
- USRB VFD 42/0,18/0 PASSWORD
- USRC VFD 42/0,18/0 USER NAME
- BSSZ 10 PARAMETERS
- PNF SPACE 4,25
- ** PNF - PROCESS NETWORK FILE.
- *
- * READ THE NETWORK DESCRIPTION FILE AND BUILD THE TST.
- * TERMINALS ENTRIES REMAIN IN THE ORDER THEY APPEAR IN THE
- * NETWORK FILE. FOR MULTIPLE NETWORK FILES, THE TERMINALS
- * WILL BE GROUPED BY NETWORK FILE.
- *
- * REFERENCE TO RECOVERY IN THIS ROUTINE DOES NOT RELATE
- * TO AUTOMATIC RECOVERY, BUT RATHER TO THE *K.REC* COMMAND.
- *
- * ENTRY (CUID) = CURRENT ID.
- *
- * EXIT (B5) = FWA OF ERROR MESSAGE.
- * TST BUILT FOR THE NETWORK FILE.
- * TO *ERR* IF ERRORS IN TERMINAL DESCRIPTIONS.
- *
- * USES X - ALL.
- * A - 0, 1, 2, 3, 4, 6, 7.
- * B - 2, 3, 4, 5, 7.
- *
- * CALLS ANF, ATD, SNM, STB.
- *
- * MACROS MESSAGE, READ, RETURN.
- PNF SUBR ENTRY/EXIT
- RJ ANF ATTACH NETWORK FILE
- BX6 X1
- SA6 PNFG SAVE NETWORK FILE NAME
- READ N INITIATE READ
- PNF1 SX5 N FET ADDRESS
- SA0 PNFA SCRATCH TABLE POINTER
- RJ ATD ASSEMBLE TERMINAL DESCRIPTION
- SA3 PNFF ADDRESS OF NEXT ENTRY
- SA0 X3+
- ZR X1,PNF3 IF NO ERROR
- NG X4,PNF6 IF EOR/EOF ENCOUNTERED
- SX5 X2+
- NZ X4,PNF2 IF NOT NULL FILE
- SX5 PNFC * NULL DESCRIPTION FILE.*
- PNF2 SB2 1RX
- SB5 PNFB * FORMAT ERROR IN NETWORK FILE.*
- SA1 PNFG
- RJ SNM SET NAME IN MESSAGE
- MESSAGE PNFB FORMAT ERROR IN TERMINAL DESCRIPTION FILE
- SB5 X5
- EQ ERR PROCESS ERROR
- * BUILD TERMINAL STATUS TABLE FROM NETWORK FILE.
- PNF3 SA1 /COMCRTN/TT. TERMINAL TYPE
- SA3 /COMCRTN/DB. DATA BASE NAME
- SX2 1RZ
- MX0 6
- LX2 -6
- BX4 X0*X3
- BX6 X4-X2
- NZ X6,PNF5 IF VALID *DB-NAME*
- SB5 MZDB ISSUE ERROR MESSAGE
- EQ ERR PROCESS ERROR
- PNF5 LX1 59-11
- PL X1,PNF1 IF NOT A TRANSACTION TERMINAL
- LX3 TSDBS-59
- SA1 /COMCRTN/RS. DATA BASE READ SECURITY LEVEL
- SA2 /COMCRTN/US. DATA BASE UPDATE SECURITY LEVEL
- LX1 TSRSS-TSRSN+1
- SA4 /COMCRTN/TN. TERMINAL NAME
- BX1 X1+X3
- BX6 X4
- SA3 /COMCRTN/UA. USER ARGUMENTS
- LX2 TSUSS-TSUSN+1
- BX7 X1+X2
- SA6 A0+1 SECOND WORD OF TST ENTRY
- BX7 X7+X3
- SA1 /COMCRTN/IS. ON/OFF
- LX1 TSTOS-TSTON+1
- BX7 X7+X1
- SX6 A0+TSTLLE ADVANCE TST POINTER
- SA6 PNFF
- SA1 PRSA
- SA2 VREC *K-DISPLAY* RECOVERY
- MX6 -1
- BX6 -X6*X2
- LX6 TSRBS-0 SET USER RECOVERY BIT IN TST
- BX7 X7+X6
- SA7 A0+
- LX1 59-0
- LX2 59-0
- NG X1,PNF1 IF SENSE SWITCH 3 IS SET
- NG X2,PNF1 IF RECOVERY MODE SELECTED
- SA1 PNFI
- SX6 X1+B1 INCREMENT NUMBER OF ENTRIES
- SA6 A1
- SX6 X6-IPTST-1
- NG X6,PNF1 IF MAXIMUM NOT EXCEEDED
- SB5 PNFJ * MAXIMUM TERMINALS EXCEEDED.*
- EQ ERR PROCESS ERROR
- * SORT TST ON MUX CHANNEL/EQUIPMENT/PORT KEY FOR *TAFTS*.
- PNF6 RETURN N RETURN NETWORK FILE
- SA1 PNFE
- SX6 A0
- SA6 A1 SET FWA OF TST FOR NEXT NETWORK FILE
- IX7 X6-X1 LENGTH OF TST
- SA1 TSTLW
- IX6 X7+X1
- SA6 A1 ADJUST CUMULATIVE LENGTH
- SX2 TSTLLE
- IX7 X7/X2 NUMBER OF TST ENTRIES
- SA3 PNFH
- IX7 X3+X7 UPDATE HIGHEST ORDINAL
- SA7 A3
- LX7 48
- SA1 CUID ID
- SX2 TTFTE
- IX1 X2*X1
- SA7 TSTHD+X1
- SX6 B0+
- SA6 /COMCRTN/ST CLEAR COMCRTN FLAGS FOR NEXT NETWORK FILE
- SA6 /COMCRTN/ATDA
- NZ X7,PNFX IF TRANSACTION TERMINALS DEFINED
- SB2 1RX
- SB5 PNFD * NO TERMINALS IN NETWORK FILE.*
- SA1 PNFG
- RJ SNM SET NAME IN MESSAGE
- EQ ERR PROCESS ERROR
- PNFA VFD 12/0,18/BRTNL,30/BRTN SCRATCH TABLE POINTER
- PNFB DATA C* FORMAT ERROR IN NETWORK FILE - XXXXXXX.*
- PNFC DATA C* NULL DESCRIPTION FILE.*
- PNFD DATA C* NO TERMINALS IN NETWORK FILE - XXXXXXX.*
- PNFE CON TST INITIAL TST ENTRY
- PNFF CON TST+TSTLLE CURRENT TST ENTRY
- PNFG CON 0 NETWORK FILE NAME
- PNFH CON -1 CURRENT HIGHEST TST ORDINAL
- PNFI CON 0 NUMBER OF TERMINAL ENTRIES
- PNFJ DATA C* MAXIMUM TERMINALS EXCEEDED.*
- PNFK DATA C* NO DATA BASE NAME TERMINAL - XXXXXXX.*
- ANF SPACE 4,30
- ** ANF - ATTACH NETWORK DESCRIPTOR FILE.
- *
- * THIS ROUTINE ATTACHES THE NETWORK DESCRIPTION FILE *NCTFI*
- * WHERE THE *I* WAS SPECIFIED BY THE *ID* PARAMETER ON THE
- * *NETWORK* STATEMENT. THE FILE RESIDES UNDER THE FAMILY AND
- * USER NAME SPECIFIED ON THIS *NETWORK* STATEMENT.
- *
- * ENTRY (CUID) = CURRENT ID.
- *
- * EXIT (X1) = NETWORK FILE NAME.
- * (B5) = FWA OF ERROR MESSAGE.
- * TO *ERR* IF NETWORK FILE NOT FOUND.
- *
- * USES X - 1, 2, 3, 5, 6.
- * A - 1, 2, 3, 6.
- * B - 2, 5.
- *
- * CALLS SNM.
- *
- * MACROS ATTACH, SETPFP.
- ANF SUBR ENTRY/EXIT
- SX2 1R0
- SA1 CUID ID
- IX2 X1+X2 BINARY TO DISPLAY
- LX1 1 OFFSET INTO *TFAM*
- SA1 TFAM+X1 FAMILY NAME
- SA3 A1+B1 USER INDEX
- BX6 X1
- SA6 ANFG SAVE FAMILY NAME
- SX5 13B *SETPFP* FLAGS
- BX6 X5+X6
- SA6 PFPA *SETPFP* CALL BLOCK
- BX6 X3
- SA6 PFPA+2
- SA1 ANFA
- LX2 35-5
- BX6 X1+X2 NETWORK FILE NAME
- SA6 ANFF
- SX2 PTRD
- BX6 X6+X2
- SA6 N+CFPN SET NAME IN FET
- SETPFP PFPA SET PERMANENT FILE PARAMETERS
- ATTACH N ATTACH NETWORK FILE
- SA1 N
- MX2 8
- LX1 59-17
- BX2 X2*X1
- SA1 ANFF GET NETWORK FILE NAME
- ZR X2,ANFX IF FILE AVAILABLE
- SB2 1RX
- SB5 ANFE * NETWORK FILE NOT FOUND.*
- RJ SNM SET NAME IN MESSAGE
- EQ ERR PROCESS ERROR
- ANFA VFD 42/0LNCTF,18/0
- ANFD CON 0 MACHINE ID
- ANFE DATA C* NETWORK FILE NOT FOUND - XXXXXXX.*
- ANFF BSS 1 NETWORK FILE BEING PROCESSED
- ANFG BSS 1 FAMILY NAME OF CURRENT NETWORK FILE
- RKD SPACE 4,15
- ** RKD - RESTART *K-DISPLAY*.
- *
- * RECOVER PARAMETERS ENTERED FROM THE *K-DISPLAY* AT
- * *TAF* INITIALIZATION AND STORE THEM IN THE *K-DISPLAY*
- * BUFFER AND REPORT FILE BUFFER.
- *
- * ENTRY LOW CM POINTERS AVAILABLE.
- *
- * USES X - ALL.
- * A - 1, 6, 7.
- * B - 2.
- *
- * CALLS CDD, COD, SFN.
- RKD SUBR ENTRY/EXIT
- SA1 VNSCP SUB CONTROL POINTS
- LX1 -24
- RJ CDD CONVERT TO DISPLAY
- MX0 18
- LX4 -18
- SA1 RKDA
- BX6 -X0*X4
- BX6 X1+X6
- SA6 KSCP+B1
- SA6 DIS1+B1
- SA1 VNCMB COMMUNICATION BLOCKS
- LX1 -24
- RJ CDD
- LX4 -18
- BX6 -X0*X4
- SA1 RKDA
- BX6 X1+X6
- SA6 KCMB+B1
- SA6 DIS2+B1
- SA1 VREC USER RECOVERY
- LX1 -24
- SA1 RKDB+X1
- BX6 X1
- SA6 KREC+B1
- SA6 DIS4+B1
- SA1 VMFL MAXIMUM FL
- RJ COD CONVERT TO OCTAL DISPLAY
- MX3 -6
- SB2 60
- SX2 1R
- SX1 1RB ADD -B- TO NUMBER
- RKD1 LX4 6
- SB2 B2-6
- BX5 -X3*X4
- IX5 X5-X2
- NZ X5,RKD1 IF NOT BLANK
- BX4 X3*X4
- BX4 X4+X1 MERGE IN -B-
- LX4 B2 REPOSITION
- LX4 -18
- BX6 -X0*X4
- SA1 RKDA
- BX6 X1+X6
- SA6 KMFL+B1
- SA6 DIS5+B1
- SA1 VECS MAXIMUM EXTENDED MEMORY
- LX1 -9
- RJ COD CONVERT TO OCTAL DISPLAY
- MX3 -6
- SB2 60
- SX2 1R
- SX1 1RK ADD -K- TO NUMBER
- RKD2 LX4 6
- SB2 B2-6
- BX5 -X3*X4
- IX5 X5-X2
- NZ X5,RKD2 IF NOT BLANK
- BX4 X3*X4
- BX4 X4+X1 MERGE IN -K-
- LX4 B2 REPOSITION
- LX4 -18
- SA1 RKDA
- BX6 -X0*X4
- BX6 X1+X6
- SA6 KECS+B1
- SA6 DIS6+B1
- SA1 VTFL TASK LIBRARY FILE
- MX2 -1
- BX1 X2*X1
- RJ SFN SPACE FILL NAME
- LX6 -18
- BX6 -X0*X6
- SA1 RKDA
- BX6 X1+X6
- SA6 KTLF+B1
- SA6 DIS7+B1
- SA1 BLNK UPDATE REPORT FILE HEADER
- SA2 RKDC
- BX6 X1
- BX7 X2
- SA6 SKDE+1
- SA7 A6+1
- EQ RKDX RETURN
- RKDA VFD 60/3L =
- RKDB DATA 10H = NO
- DATA 10H = YES
- RKDC DATA 10H RESTART
- SRS SPACE 4,25
- ** SRS - SET RECOVERY STATUS.
- *
- * ATTEMPT TO ATTACH THE *CRF* FROM THE FAMILY/USERNAME
- * SPECIFIED ON THE NETWORK DIRECTIVE. IF NOT FOUND, ATTEMPT
- * TO ATTACH THE ALTERNATE *CRF* (CRFAI). IF *CRFAI* FOUND,
- * CHANGE ITS NAME TO *CRFI*. IF NEITHER *CRFI* OR *CRFAI* ARE
- * FOUND BUT INITIALIZE STATUS WAS SET VIA THE *K.INT* COMMAND,
- * THEN DEFINE *CRFI*.
- *
- * ENTRY (CUID) = CURRENT ID.
- *
- * EXIT *CRF* LOCAL.
- * (B5) = FWA OF ERROR MESSAGE.
- * TO *ERR* IF CRF NOT FOUND AND INITIALIZE FLAG NOT SET.
- *
- * USES X - 1, 2, 5, 6.
- * A - 1, 6.
- * B - 2, 5.
- *
- * CALLS SNM.
- *
- * MACROS ATTACH, CHANGE, DEFINE.
- SRS SUBR ENTRY/EXIT
- SA1 CUID CURRENT ID
- SX2 1R0
- IX5 X2+X1 BINARY TO DISPLAY
- LX5 29-5
- SA1 RFN
- SX2 B1
- BX6 X1+X5 *CRFI*
- SA6 CRF+CFPN
- SA6 CRF+CFNF
- BX6 X6+X2 COMPLETE BIT
- SA6 CRF STORE IN FET
- ATTACH CRF ATTACH *CRF*
- SA1 CRF
- MX2 8
- LX1 59-17
- BX2 X2*X1
- ZR X2,SRSX IF FILE FOUND
- SA1 RFNA
- LX5 35-41
- BX6 X1+X5 *CRFAI*
- SA6 CRF+CFPN
- ATTACH CRF ATTACH ALTERNATE *CRF*
- MX2 8
- SA1 CRF
- LX1 59-17
- BX2 X2*X1
- NZ X2,SRS1 IF FILE NOT FOUND
- CHANGE CRF CHANGE NAME TO *CRFI*
- EQ SRSX RETURN
- * RECOVERY FILE WAS NOT FOUND. IF INITIALIZE WAS SPECIFIED
- * DEFINE THE RECOVERY FILE.
- SRS1 SA1 CUID
- SA1 TREC+X1
- MX6 -3
- BX6 -X6*X1 STATUS
- SX6 X6-IST
- NZ X6,SRS2 IF NOT INITIALIZE
- SA1 CRF+CFNF
- BX6 X1 CORRECT FILE NAME
- SA6 CRF+CFPN
- DEFINE CRF
- EQ SRSX RETURN
- * ABORT *TAFREC* WHEN THE RECOVERY FILE NOT FOUND AND
- * INITIALIZATION NOT SPECIFIED.
- SRS2 SA1 CRF
- MX2 42
- BX1 X2*X1
- SB2 1RX
- SB5 SRSA * COMMUNICATIONS RECOVERY FILE NOT FOUND.*
- RJ SNM SET NAME IN MESSAGE
- EQ ERR PROCESS ERROR
- SRSA DATA C* TAF COMM. RECOVERY FILE NOT FOUND - XXXXXXX.*
- PKC SPACE 4,20
- SKD SPACE 4,25
- ** SKD - SET *K-DISPLAY*.
- *
- * FORMAT AND DIPLAY THE INITIAL *K-DISPLAY* AND ACCEPT
- * OPERATOR ENTERED CHANGES AND/OR COMMANDS AND *K.COMMANDS*
- * FROM THE *TCF* FILE.
- *
- * COMMANDS ARE OF THE FORM -
- * K.CMD = PARAMETERS.
- *
- * WHERE CMD = A THREE CHARACTER COMMAND.
- * PARAMETERS = 1-15 CHARACTERS ( A-Z 0-9 , )
- * TERMINATED BY A PERIOD.
- *
- * IF A VALID COMMAND IS ENTERED, *SKD* JUMPS TO THE
- * COMMAND PROCESSOR.
- *
- * ENTRY (A1) = FWA OF STATEMENT BUFFER, IF (KCOF) .NE. 0.
- *
- * EXIT TO *PTF17* IF CONSOLE COMMAND.
- * TO *PTF5* IF UNPACK ERRORS ON TCF FILE DATA.
- *
- * USES X - ALL.
- * A - 0, 1, 2, 3, 5, 6, 7.
- * B - 2, 3, 4, 5, 6, 7.
- *
- * CALLS UPC, ZTB.
- *
- * MACROS CONSOLE, RECALL, WRITEW.
- SKD SUBR ENTRY/EXIT
- SA2 KCOF CHECK COMMAND ORIGIN
- NZ X2,SKD4 IF NOT CONSOLE MODE
- SX6 SKDE
- SX7 SKDEL
- SA6 SBHD SUB HEADING ADDRESS
- SA7 A6+B1 LENGTH
- SX6 B1+B1 SUBHEADING LINE COUNT
- SA6 A7+B1
- SX6 LINP
- SA6 LCNT FORCE NEW PAGE
- SB7 5 ASSUME DECIMAL BASE FOR DXB,ALSO CNSTNT 5
- CONSOLE KCTRL SET *K-DISPLAY* REQUEST
- SKD1 SA1 KCOF COMMAND ORIGIN
- SX2 B0+
- NZ X1,PTF17 IF NOT CONSOLE COMMAND
- SX6 B0+
- SA6 KBUF SET INPUT PROCESSED INDICATOR
- SA6 KILL TURN OFF ERROR MESSAGE
- SA6 KILL1
- SA6 SKDD
- SKD2 SA1 KBUF
- NZ X1,SKD3 IF INPUT TO PROCESS
- RECALL
- EQ SKD2 LOOP
- * PROCESS CONSOLE INPUT.
- SKD3 SB2 B0+
- SB3 5
- SKD3.1 SA1 KBUF+B2
- RJ ZTB CONVERT TRAILING ZEROES TO BLANKS
- SB2 B2+B1
- SA6 A1 ALLOW MISSING TERMINATOR TO BE LEGAL
- SA6 KBUF1+B2 ECHO DSD INPUT TO K-DISPLAY
- LT B2,B3,SKD3.1 IF NOT END OF INPUT BUFFER
- SA5 KBUF UNPACK STATEMENT
- SB7 PTFC
- RJ UPC UNPACK
- SA1 PTFC-1
- ZR X6,SKD8 IF NO UNPACK ERRORS
- EQ SKD14 UNPACK ERRORS
- * PROCESS *TCF* *K.COMMANDS*
- SKD4 MX4 6
- SB3 B0
- SX2 1R. SET *.* AS SEARCH CHARACTER
- LX2 59-5
- SA0 PTFF *INCORRECT TCF ENTRIES.*
- SKD5 SA1 A1+B3 FETCH BUFFER BLOCK
- SB3 B3+B1 INCREMENT WORD COUNT
- SB4 B3-16
- ZR B4,PTF5 IF NO PERIOD IN STATEMENT
- SB5 B0+ CLEAR SHIFT COUNT
- SKD6 BX3 X4*X1 CHECK FOR *.*
- IX3 X3-X2
- ZR X3,SKD7 IF FOUND
- SB5 B5+6 SHIFT COUNT
- SB4 B5-60
- ZR B4,SKD5 IF NOT FOUND
- LX1 6
- EQ SKD6 CHECK NEXT CHARACTER
- SKD7 MX0 -54 MASK OUT THE *.*
- BX1 -X0*X1
- SX2 1R, *,* TO INSERT FOR UPC CALL
- LX2 59-5
- BX1 X1+X2
- SB3 60
- SB5 B3-B5
- LX6 X1,B5 SHIFT BACK TO ORIGINAL POSITION
- SA6 A1+ RESTORE WORD IN BUFFER
- SA5 PTFB FIRST WORD TO UNPACK
- SB7 PTFC FWA TO UNPACK INTO
- RJ UPC UNPACK
- SA1 PTFC
- ZR X6,SKD8 IF NO UNPACK ERRORS
- SA0 PTFF *INCORRECT TCF ENTRIES*
- EQ PTF5 REPORT ERROR
- SKD8 SA1 A1+B1
- MX0 42
- BX1 X0*X1 MASK OUT THE SEPERATOR
- SA2 SKDC-1 VALID COMMAND TABLE
- SKD9 SA2 A2+B1 GET NEXT *K.COMMAND*
- ZR X2,SKD14 IF END OF TABLE
- BX3 X0*X2
- IX4 X1-X3
- NZ X4,SKD9 IF NO MATCH
- SA3 A1+B1 GET SECOND PARAMETER
- BX3 X0*X3
- BX7 X3
- ZR X3,SKD13 IF SECOND PARAMETER ZERO
- SA1 A3+B1 GET THIRD PARAMETER
- BX1 X0*X1
- BX6 X1
- MX0 6
- ZR X6,SKD13 IF NEXT PARAMETER ZERO
- SB2 B0
- BX4 X7
- SKD10 SB2 B2+6 COUNT CHARACTERS IN SECOND PARAMETER
- ZR X4,SKD11 IF NEXT CHARACTER IS ZERO
- LX7 6
- BX4 X0*X7
- EQ SKD10 CHECK NEXT CHARACTER
- SKD11 AX6 B2,X6
- MX4 1 REMOVE SIGN EXTENSION
- SB3 B2-1
- AX4 X4,B3 VARIABLE MASK
- PL X6,SKD12 IF SIGN EXTEND IS ZEROS
- BX6 -X4*X6
- SKD12 BX7 X6+X3
- SB3 60
- SB3 B3-B2
- LX6 X1,B3
- BX6 X4*X6
- SX1 1R, ADD A *,* FOR RECEIVING ROUTINES
- LX1 53-5
- SB2 B2-12
- AX1 X1,B2
- IX7 X7+X1
- SKD13 SB3 X2
- JP B3 PROCESS THE *K.COMMAND*
- * SET INCORRECT INPUT MESSAGE ON SCREEN.
- SKD14 SA2 KCOF
- SA0 KCNV * K.COMMAND NOT VALID.*
- NZ X2,PTF17 IF NOT CONSOLE COMMAND
- SA1 KILL2 FIRST LINE OF ERROR MESSAGE
- MX7 0
- BX6 X1
- SA6 KILL SET INTO ERROR LINE POSITION
- SA7 KBUF
- SA7 SKDD
- EQ SKD2 WAIT FOR NEXT INPUT
- * IF END OF *K-DISPLAY* WRITE IT TO REPORT FILE.
- SKD15 SA1 KCOF
- ZR X1,SKD16 IF CONSOLE ORIGIN
- SX2 B0+ CLEAR ERROR FLAG
- EQ SKDX RETURN
- SKD16 CONSOLE SKDB TURN OFF *K-DISPLAY*
- SB2 30
- RJ ALC ADVANCE LINE COUNT
- WRITEW R,DISP,DISPL WRITE *K-DISPLAY* TO REPORT FILE
- EQ SKDX RETURN
- SKDA VFD 6/1R0,54/0 UPPER DISPLAY CODE LIMIT FOR COMMAND CHARS
- SKDB CON 0 ZERO WORD TO TURN OFF *K-DISPLAY*
- * TABLE OF VALID *K-DISPLAY* COMMANDS.
- SKDC VFD 42/0LSCP,18/SCP
- VFD 42/0LCMB,18/CMB
- VFD 42/0LREC,18/REC
- VFD 42/0LMFL,18/MFL
- VFD 42/0LECS,18/ECS
- VFD 42/0LTLF,18/TLF
- VFD 42/0LINT,18/INT
- VFD 42/0LERO,18/ERO
- VFD 42/0LBFL,18/BFL
- VFD 42/0LEFL,18/EFL
- VFD 42/0LTFL,18/TFL
- VFD 42/0LSTOP,18/STP
- VFD 42/0LEND,18/SKD15
- VFD 42/0LGO,18/SKD15
- CON 0 TABLE TERMINATOR
- SKDD BSSZ 1 FIRST 10 CHARACTERS OF PARAMETER
- SKDE DATA 10H
- DATA C* INITIALIZATION K-DISPLAY*
- DATA 1L
- SKDEL EQU *-SKDE
- SPACE 4,10
- ** INITIALIZATION *K-DISPLAY* COMMANDS.
- *
- * THE FOLLOWING COMMANDS CAN BE USED TO CHANGE PARAMETERS
- * USED BY *TAF* AND THE DATA MANAGER FOR INITIALIZATION, AND
- * TO INITIALIZE VARIOUS FILES USED BY *TAF*.
- SCP SPACE 4,20
- ** K.SCP=N.
- *
- * CHANGE THE NUMBER OF SUBCONTROL POINTS.
- *
- * ENTRY (X7) = NUMBER OF SUBCONTROL POINTS IN DISPLAY CODE.
- *
- * EXIT TO *SKD1*. *K-DISPLAY* AND REPORT UPDATED.
- * TO *SKD14* IF ERROR IN PARAMETER.
- *
- * USES X - 1, 2, 3, 4, 5, 6, 7.
- * A - 2, 6, 7.
- * B - 2.
- *
- * CALLS CDD, DXB, UKD.
- SCP BSS 0 ENTRY
- BX5 X7
- RJ DXB CONVERT EQUIVALENCED FIELD TO NUMBER
- NZ X5,SKD14 IF ERROR IN NUMBER
- SX2 X6-MINSCP
- NG X2,SKD14 IF INCORRECT SUBCP COUNT
- SB2 X6-MAXSCP
- GT B2,SKD14 IF INCORRECT SUBCP
- BX1 X6
- LX6 24
- SA6 VNSCP RESET SUBCP COUNT FOR INITIALIZATION
- RJ CDD CONVERT DECIMAL TO DISPLAY CODE
- SA2 KSCP+1 *SCP* WORD IN DISPLAY
- SB5 DIS1+1 UPDATE REPORT
- SB6 B1
- RJ UKD UPDATE THE *K-DISPLAY* AND REPORT
- EQ SKD1 PROCESS NEXT INPUT
- CMB SPACE 4,20
- ** K.CMB=N.
- *
- * CHANGE THE NUMBER OF COMMUNICATION BLOCKS.
- *
- * ENTRY (X7) = NUMBER OF COMMUNICATION BLOCKS IN DISPLAY
- * CODE.
- *
- * EXIT TO *SKD1*. *K-DISPLAY* AND REPORT UPDATED.
- * TO *SKD14* IF ERROR IN PARAMETER.
- *
- * USES X - 1, 2, 3, 4, 5, 6, 7.
- * A - 2, 6, 7.
- * B - 2.
- *
- * CALLS CDD, DXB, UKD.
- CMB BSS 0 ENTRY
- BX5 X7
- RJ DXB CONVERT DISPLAY CODE TO BINARY
- NZ X4,SKD14 IF ERROR IN NUMBER
- SX2 X6-MINCMB
- NG X2,SKD14 IF INCORRECT C.B. COUNT
- SB2 X6-MAXCMB
- GT B2,SKD14 IF INCORRECT C.B. COUNT
- BX1 X6
- LX6 24
- SA6 VNCMB RESET C.B. COUNT
- RJ CDD LEFT JUSTIFY NUMBER
- SA2 KCMB+1 *CMB* WORD IN DISPLAY
- SB5 DIS2+1 UPDATE REPORT
- SB6 B1
- RJ UKD UPDATE THE *K-DISPLAY* AND REPORT
- EQ SKD1 PROCESS NEXT INPUT
- REC SPACE 4,15
- ** K.REC=AA.
- *
- * SET USER RECOVERY, *CRM* RECOVERY, OR BOTH.
- *
- * ENTRY (X7) = USER RECOVERY OPTION.
- *
- * EXIT TO *SKD1*. *K-DISPLAY* AND REPORT UPDATED.
- * TO *SKD14* IR ERROR IN PARAMETER.
- *
- * USES X - 1, 2, 3, 7.
- * A - 1, 2, 6, 7.
- *
- * CALLS SFN.
- REC BSS 0 ENTRY
- BX1 X7
- RJ SFN SPACE FILL ANSWER
- SA1 RECA *YES*
- SA2 A1+B1 *NO*
- BX3 X1-X6
- SA1 RECB *CRM*
- SX7 1 SET USER RECOVERY FLAG
- ZR X3,REC1 IF *YES*
- BX3 X2-X6
- SX7 B0 TURN OFF USER RECOVERY FLAG
- ZR X3,REC2 IF *NO*
- BX3 X1-X6
- NZ X3,SKD14 IF INCORRECT INPUT
- EQ SKD1 PROCESS NEXT INPUT
- REC1 SA1 VREC
- BX7 X7+X1
- REC2 SA6 KREC+1
- SA7 VREC SET USER RECOVERY FLAG
- SA6 DIS4+1 UPDATE REPORT
- EQ SKD1 PROCESS NEXT INPUT
- RECA DATA 10HYES
- DATA 10HNO
- RECB DATA 10HCRM
- MFL SPACE 4,20
- ** K.MFL=NNNNNN.
- *
- * CHANGE THE MAXIMUM FIELD LENGTH THAT *TAF* IS TO USE. THIS
- * PARAMETER IS ALSO DYNAMICALLY CHANGEABLE WHILE *TAF* IS
- * RUNNING.
- *
- * ENTRY (X7) = FIELD LENGTH IN DISPLAY CODE.
- *
- * EXIT TO *SKD1*. *K-DISPLAY* AND REPORT UPDATED.
- * TO *SKD14* IF ERROR IN PARAMETER.
- *
- * USES X - 1, 2, 3, 4, 5, 6, 7.
- * A - 2, 6, 7.
- * B - 2, 3, 4, 7.
- *
- * CALLS COD, DXB, UKD.
- MFL BSS 0 ENTRY
- BX5 X7
- SB7 B0 ASSUME OCTAL CONVERSION
- RJ DXB CONVERT DISPLAY CODE TO BINARY
- SB7 5
- NZ X4,SKD14 IF ERROR IN NUMBER
- SX3 MAXMFL+1 MAXIMUM FIELD LENGTH ALLOWED
- NO
- IX4 X6-X3
- PL X4,SKD14 IF INCORRECT FILED LENGTH COUNT
- SX2 X6-MINMFL
- NG X2,SKD14 IF INCORRECT FIELD LENGTH COUNT
- SA6 VMFL RESET FIELD LENGTH VALUE
- BX1 X6
- RJ COD LEFT JUSTIFY NUMBER
- SA2 KMFL+1 *MFL* WORD IN DISPLAY
- SX3 1RB ADD *B*
- SB5 DIS5+1 UPDATE REPORT
- SB6 B0
- RJ UKD UPDATE THE *K-DISPLAY* AND REPORT
- EQ SKD1 PROCESS NEXT INPUT
- ECS SPACE 4,15
- ** K.ECS=NNNNN.
- *
- * CHANGE THE EXTENDED MEMORY LENGTH REQUIRED FOR *TAF*.
- *
- * ENTRY (X7) = EXTENDED MEMORY FIELD LENGTH IN DISPLAY CODE.
- *
- * EXIT TO *SKD1*. *K-DISPLAY* AND REPORT UPDATED.
- * TO *SKD14* IF ERROR IN PARAMETER.
- *
- * USES X - 1, 2, 3, 4, 5, 6, 7.
- * A - 2, 6, 7.
- * B - 2, 3, 4, 7.
- *
- * CALLS COD, DXB, UKD.
- ECS BSS 0 ENTRY
- BX5 X7
- SB7 B0 ASSUME OCTAL CONVERSION
- RJ DXB CONVERT DISPLAY TO BINARY
- SB7 5
- NZ X4,SKD14 IF ERROR IN NUMBER
- SX3 MAXECS+1 MAXIMUM ECS FIELD LENGTH ALLOWED
- IX4 X6-X3
- PL X4,SKD14 IF MORE THAN MAXIMUM REQUESTED
- SX2 X6-MINECS
- NG X2,SKD14 IF LESS THAN MINIMUM REQUESTED
- LX6 9
- SA6 VECS SET EXTENDED MEMORY FIELD LENGTH
- LX6 -9
- BX1 X6
- RJ COD CONVERT OCTAL TO DISPLAY
- SA2 KECS+1 *EXTENDED MEMORY* WORD IN DISPLAY
- SX3 1RK ADD *K*
- SB5 DIS6+1 UPDATE REPORT
- SB6 B0
- RJ UKD UPDATE THE *K-DISPLAY* AND REPORT
- EQ SKD1 PROCESS NEXT INPUT
- TLF SPACE 4,15
- ** K.TLF=FILE NAME.
- *
- * CHANGE THE NAME OF THE TASK LIBRARY FILE.
- *
- * ENTRY (X7) = TASK LIBRARY FILE NAME.
- *
- * EXIT TO *SKD1*. *K-DISPLAY* AND REPORT UPDATED.
- *
- * USES X - 1, 2, 3, 6, 7.
- * A - 2, 6, 7.
- *
- * CALLS SFN, UKD.
- TLF BSS 0
- SX6 B1
- BX6 X6+X7 SET STATUS OF ONE
- SA6 VTFL
- BX1 X7
- RJ SFN SPACE FILL NAME
- SA2 KTLF+1 FILE NAME IN DISPLAY
- BX4 X6
- SB5 DIS7+1 UPDATE REPORT
- SB6 1
- RJ UKD UPDATE THE *K-DISPLAY* AND REPORT
- EQ SKD1 PROCESS NEXT INPUT
- INT SPACE 4,30
- ** K.INT=P1,P2.
- *
- * INITIALIZE FILE COMMAND.
- *
- * P1 = CRF - COMMUNICATIONS RECOVERY FILE.
- * CRM - *CRM* RECOVERY FILES.
- *
- * P2 = ALL - INITIALIZE ALL.
- * NONE - INITIALIZE NONE (RECOVER).
- * IJKLMNO - INITIALIZE THOSE DEFINED BY THE
- * OCTAL DIGITS IN *IJKLMNO*.
- * THIS OPTION NOT VALID FOR P1=CRM.
- * REPEATED USE OF THIS OPTION HAS
- * CUMULATIVE AFFECT IF DIFFERENT
- * DIGITS ARE USED.
- *
- * ENTRY (X7) = FIRST TEN CHARACTERS.
- * (X6) = LAST CHARACTER.
- *
- * EXIT TO *SKD1*. *K-DISPLAY* AND REPORT UPDATED.
- * TO *SKD14* IF ERROR IN PARAMETER.
- *
- * USES X - ALL.
- * A - 1, 2, 3, 4, 6, 7.
- * B - 2, 3, 5, 6.
- *
- * CALLS SFN.
- INT BSS 0 ENTRY
- SA7 INTD SAVE PARAMETERS
- SA6 INTE
- MX0 24
- BX4 X0*X7 EXTRACT FILE TYPE
- SA1 INTA-1
- INT1 SA1 A1+B1
- ZR X1,SKD14 IF INCORRECT FILE TYPE
- BX2 X0*X1
- BX2 X4-X2
- NZ X2,INT1 IF NO MATCH
- SB3 X1
- JP B3 JUMP TO PROCESSOR
- * PROCESS *CRF*.
- INT2 SX2 IPTAR
- SB2 MAXRC-1
- SB3 INTH
- NZ X2,INT3 IF AUTOMATIC RECOVERY DEFINED
- SA1 INTF
- SA2 A1+B1
- BX6 X1
- BX7 X2
- SA6 KILL1 ADD SPECIFIC ERROR MESSAGE
- SA7 A6+B1
- EQ SKD14 DISPLAY ERROR MESSAGE
- INT3 LT B2,INT4 IF ALL ID-S DONE
- SA4 TREC+B2
- MX3 59
- BX6 X3*X4 CLEAR RECOVERY BIT
- SA6 B3+B2
- SB2 B2-B1
- EQ INT3 NEXT ID
- INT4 SA4 INTE
- BX6 X4
- BX4 -X0*X7 FIRST WORD OF PARAMETER
- LX4 24
- LX6 24
- LX0 24
- BX5 X0*X6
- BX5 X4+X5 NEXT TWO CHARACTERS
- SA1 INTB-1
- BX6 X5 SAVE FOR DAYFILE MESSAGE
- SA6 INTG
- MX0 42
- SB5 KINT+1 DISPLAY BUFFER ADDRESS TO ALTER
- SB6 DIS8+1 REPORT FILE BUFFER ADDRESS TO ALTER
- INT5 SA1 A1+B1
- ZR X1,INT10 IF END OF LIST
- BX2 X0*X1
- BX2 X5-X2
- NZ X2,INT5 IF NO MATCH
- SX2 X1 STATUS (INITIALIZE OR RECOVER)
- SB2 MAXRC-1
- INT6 LT B2,INT7 IF ALL ID-S DONE
- SA1 B3+B2
- SB2 B2-B1
- ZR X1,INT6 IF NO *CRF* THIS ID
- BX6 X1+X2 SET STATUS
- SA6 A1
- EQ INT6 NEXT ID
- INT7 SB2 MAXRC-1
- INT8 LT B2,INT9 IF END OF LIST
- SA3 INTH+B2
- BX6 X3
- SA6 TREC+B2
- SB2 B2-B1
- EQ INT8 NEXT ENTRY
- INT9 SA1 INTD
- RJ SFN SPACE FILL NAME
- SA6 B5 UPDATE *K-DISPLAY*
- SA6 B6 UPDATE REPORT
- SA1 INTE SEVENTH CHARACTER OF PARAMETER STRING
- ZR X1,INT9.1 IF STRING IS LESS THAN 7 CHARACTERS
- SA2 B6+B1 *DIS8*+2
- MX0 -54
- BX2 -X0*X2
- BX6 X1+X2
- SA6 A2+
- INT9.1 RJ SFN SPACE FILL FILE NAME
- SA6 B5+B1
- EQ SKD1 PROCESS NEXT COMMAND
- INT10 MX0 -6
- SB2 7 MAXIMUM DIGITS IN STRING
- INT11 EQ B2,INT12 IF MAXIMUM DIGITS PROCESSED
- LX5 6
- BX2 -X0*X5 EXTRACT DIGIT
- ZR X2,INT7 IF ALL DIGITS PROCESSED
- SX3 X2-1R0
- NG X3,SKD14 IF NOT NUMERIC
- SX3 X2-1R8
- PL X3,SKD14 IF NOT OCTAL OR NUMERIC
- SX2 X2-1R0 DISPLAY TO BINARY
- SB2 B2-B1
- SA3 TREC+X2
- ZR X3,INT11 IF NO *CRF* FOR THIS ID
- SX4 IST INITIALIZE STATUS
- BX6 X3+X4
- SA6 INTH+X2
- EQ INT11 NEXT DIGIT
- INT12 LX5 6
- BX2 -X0*X5
- NZ X2,SKD14 IF GREATER THAN SEVEN DIGITS
- EQ INT7 MOVE DATA TO BUFFER
- * PROCESS CRM.
- INT13 BX4 -X0*X7
- LX4 24 NEXT PARAMETER
- SA1 INTB-1
- MX0 42
- INT14 SA1 A1+B1
- ZR X1,SKD14 IF END OF LIST
- BX2 X0*X1
- BX2 X4-X2
- NZ X2,INT14 IF NO MATCH
- SA2 PRSA FLAG WORD
- SX1 X1
- LX1 TICRS
- MX3 59
- LX3 TICRS
- BX6 X3*X2 CLEAR CRM RECOVERY BIT
- BX6 X6+X1 ADD NEW *CRM* RECOVERY STATUS
- SA6 A2
- SB5 KINC+1 *K-DISPLAY* BUFFER TO ALTER
- SB6 DIS9+1 REPORT BUFFER ADDRESS TO ALTER
- EQ INT9 UPDATE *K-DISPLAY* AND REPORT
- * TABLE OF VALID FIRST PARAMETERS.
- INTA VFD 42/4LCRF,,18/INT2
- VFD 42/4LCRM,,18/INT13
- CON 0 TABLE TERMINATOR
- * TABLE OF VALID STATIC SECOND PARAMETERS.
- INTB VFD 42/0LALL,18/IST
- VFD 42/0LNONE,18/RST
- CON 0 TABLE TERMINATOR
- INTD CON 0 FIRST TEN CHARACTERS OF PARAMETER
- INTE CON 0 LAST CHARACTER OF PARAMETER STRING
- INTF DATA 20HRECOVERY DISABLED.
- INTG DATA 4LNONE P2 FOR P1 = *CRF*
- INTH BSSZ MAXRC TEMPORARY BUFFER
- ERO SPACE 4,20
- ** K.ERO=P1,P2.
- *
- * WHERE P1 = CRF COMMAND RELATES TO COMMUNICATIONS RECOVERY
- * P2 = YES OVERRIDE FILE ERRORS.
- * = NO DO NOT OVERRIDE FILE ERRORS.
- *
- * THIS COMMAND PROVIDES THE CAPABILITY TO OVERRIDE I/O OR
- * LOGICAL ERRORS IN THE *CRF* RECOVERY UNITS.
- *
- * ENTRY (X7) = OVERRIDE OPTION.
- *
- * EXIT TO *SKD1*. *K-DISPLAY* AND REPORT UPDATED.
- * TO *SKD14* IF ERROR IN PARAMETER.
- *
- * USES X - 0, 1, 2, 4, 6, 7.
- * A - 1, 2, 6, 7.
- * B - 3, 5, 6.
- ERO BSS 0 ENTRY
- SA7 EROA SAVE COMMAND PARAMETERS
- MX0 24
- BX4 X0*X7 EXTRACT P1
- SA1 EROB-1
- ERO1 SA1 A1+B1 NEXT FILE TYPE
- ZR X1,SKD14 IF END OF LIST
- BX2 X0*X1
- BX2 X4-X2
- NZ X2,ERO1 IF NO MATCH
- SB3 X1
- JP B3 JUMP TO PROCESSOR
- * PROCESS *CRF*.
- ERO2 SX2 IPTAR
- NZ X2,ERO3 IF AUTOMATIC RECOVERY ENABLED
- SA1 EROD
- SA2 A1+B1
- BX6 X1
- BX7 X2
- SA6 KILL1 ADD SPECIFIC ERROR MESSAGE
- SA7 A6+B1
- EQ SKD14 DISPLAY SPECIFIC ERROR MESSAGE
- ERO3 BX4 -X0*X7 EXTRACT P2
- LX4 24
- SA1 EROC-1
- ERO4 SA1 A1+B1 NEXT OPTION
- ZR X1,SKD14 IF END OF LIST
- BX2 X0*X1
- BX2 X4-X2
- NZ X2,ERO4 IF NO MATCH
- SX6 X1
- SA6 OVRD SET OVERRIDE FLAG
- SB5 KERO+1 *K-DISPLAY* BUFFER ADDRESS TO ALTER
- SB6 DIS10+1 REPORT FILE BUFFER ADDRESS TO ALTER
- SA1 EROA GET COMMAND PARAMETERS
- BX6 X1
- SA6 B5+ UPDATE *K-DISPLAY*
- SA6 B6 UPDATE REPORT
- EQ SKD1 PROCESS NEXT COMMAND
- EROA CON 0 COMMAND PARAMETERS
- * TABLE OF VALID FIRST PARAMETERS.
- EROB VFD 42/4LCRF,,18/ERO2
- CON 0 TABLE TERMINATOR
- * TABLE OF VALID SECOND PARAMETERS FOR P1 = *CRF*.
- EROC VFD 42/0LYES,18/1
- VFD 42/0LNO,18/0
- CON 0 TABLE TERMINATOR
- EROD DATA 20HRECOVERY DISABLED.
- TITLE DISPLAY FORMATS.
- BFL SPACE 4,15
- *** K.BFL=N.
- *
- * CHANGE THE BASE FL FOR CMM.
- *
- * EXIT (VCMM) = 6/0,18/CMMTFL,18/CMMEFL,18/CMMBFL.
- * TO *SKD1* TO PROCESS NEXT INPUT.
- *
- * USES A - 1, 2, 6, 7.
- * B - 2, 3, 7.
- * X - ALL.
- *
- * CALLS COD, DXB, UKD.
- BFL BSS 0 ENTRY
- BX5 X7
- SB7 B0 ASSUME OCTAL CONVERSION
- RJ DXB CONVERT TO BINARY
- SB7 5
- NZ X4,SKD14 IF ERROR IN NUMBER
- SX2 X6-MINCMM
- NG X2,SKD14 IF LESS THAN MINIMUM
- SX4 MAXCMM
- IX2 X4-X6
- BX1 X6
- NG X2,SKD14 IF GREATER THAN MAXIMUM
- SA2 VCMM UPDATE BASE CMM FL
- MX0 42
- BX2 X0*X2
- BX6 X2+X6 ADD NEW BASE CMM FL
- SA6 A2
- RJ COD CONVERT OCTAL TO DISPLAY
- SA2 KBFL+1 *BFL* WORD IN DISPLAY
- SB5 DIS11+1 UPDATE REPORT
- SX3 1RB ADD *B*
- SB6 B0
- RJ UKD UPDATE THE *K-DISPLAY* AND REPORT
- EQ SKD1 PROCESS NEXT INPUT
- EFL SPACE 4,15
- *** K.EFL=N.
- *
- * CHANGE THE EXPANDABLE FL FOR CMM.
- *
- * EXIT (VCMM) = 6/0,18/CMMTFL,18/CMMEFL,18/CMMBFL.
- * TO *SKD1* TO PROCESS NEXT INPUT.
- *
- * USES A - 1, 2, 6, 7.
- * B - 2, 3, 7.
- * X - ALL.
- *
- * CALLS COD, DXB, UKD.
- EFL BSS 0 ENTRY
- BX5 X7
- SB7 B0 ASSUME OCTAL CONVERSION
- RJ DXB CONVERT TO BINARY
- SB7 5
- NZ X4,SKD14 IF ERROR IN NUMBER
- NG X2,SKD14 IF LESS THAN MINIMUM
- SX4 MAXCME
- IX2 X4-X6
- BX1 X6
- NG X2,SKD14 IF GREATER THAN MAXIMUM
- SA2 VCMM UPDATE BASE CMM FL
- MX0 42
- LX0 18
- BX0 X0*X2
- LX6 18
- BX6 X0+X6 ADD NEW EXPANDABLE CMM FL
- SA6 A2
- RJ COD CONVERT OCTAL TO DISPLAY
- SA2 KEFL+1 *EFL* WORD IN DISPLAY
- SX3 1RB ADD *B*
- SB5 DIS12+1 UPDATE REPORT
- SB6 B0
- RJ UKD UPDATE THE *K-DISPLAY* AND REPORT
- EQ SKD1 PROCESS NEXT INPUT
- TFL SPACE 4,15
- *** K.TFL=N.
- *
- * CHANGE THE TARGET FL FOR CMM.
- *
- * EXIT (VCMM) = 6/0,18/CMMTFL,18/CMMEFL,18/CMMBFL.
- * TO *SKD1* TO PROCESS NEXT INPUT.
- *
- * USES X - ALL.
- * A - 1, 2, 6, 7.
- * B - 2, 3, 7.
- *
- * CALLS COD, DXB, UKD.
- TFL BSS 0 ENTRY
- BX5 X7
- SB7 B0 ASSUME OCTAL CONVERSION
- RJ DXB CONVERT TO BINARY
- SB7 5
- NZ X4,SKD14 IF ERROR IN NUMBER
- SX4 MINCMT
- IX2 X6-X4
- NG X2,SKD14 IF LESS THAN MINIMUM
- SX4 MAXCMT
- IX2 X4-X6
- BX1 X6
- NG X2,SKD14 IF GREATER THAN MAXIMUM
- SA2 VCMM UPDATE TARGET CMM FL
- MX0 -36
- LX6 36
- BX0 -X0*X2
- BX6 X0+X6
- SA6 A2
- RJ COD CONVERT OCTAL TO DISPLAY
- SA2 KTFL+1 *TFL* WORD IN DISPLAY
- SX3 1RB ADD *B*
- SB5 DIS13+1 UPDATE REPORT
- SB6 B0
- RJ UKD UPDATE THE *K-DISPLAY* AND REPORT
- EQ SKD1 PROCESS NEXT INPUT
- STP SPACE 4,10
- *** K.STOP.
- *
- * PROCESS *K.STOP* COMMAND.
- *
- * EXIT (B5) = ADDRESS OF MESSAGE.
- * EXIT TO ERR SUBROUTINE TO ABORT *TAFREC*.
- *
- * USES B - 5.
- STP BSS 0 ENTRY
- SA2 KCOF COMMAND ORIGIN
- NZ X2,STP1 IF NOT CONSOLE ORIGIN
- CONSOLE SKDB TURN OFF *K-DISPLAY*
- STP1 SB5 STPA *OPERATOR TERMINATION.*
- EQ ERR ABORT
- STPA DATA C* OPERATOR TERMINATION.*
- UKD SPACE 4,15
- ** UKD UPDATE THE *K-DISPLAY* AND REPORT.
- *
- * ENTRY (X2) = DISPLAY WORD.
- * (X3) = INSERT CHARACTER, IF (B6).EQ.0.
- * (X4) = DISPLAY CODE CONVERSION LEFT JUSTIFIED.
- * (A2) = ADDRESS OF WORD IN DISPLAY.
- * (B2) = 6*COUNT OF DIGITS CONVERTED.
- * (B5) = ADDRESS OF THE DISPLAY WORD.
- * (B6) = 1 IF WORD ALREADY PARTIALLY FORMATTED.
- * = 0 IF WORD NOT FORMATTED.
- *
- * EXIT *K-DISPLAY* AND REPORT UPDATED.
- *
- * USES X - 1, 2, 3, 4, 5, 6, 7.
- * A - 7.
- * B - 2, 3, 4.
- UKD SUBR
- NZ B6,UKD1 IF PARTIALLY FORMATTED
- MX5 1
- SB3 B2-B1
- SB4 B3+6
- AX6 X5,B3 MASK FOR NUMBER
- AX5 X5,B4 MASK FOR BLANKS LESS ONE
- SB2 -B2
- SB4 54+B2 SHIFT COUNT TO POSITION THE CHARACTER
- LX3 X3,B4
- BX1 X6*X4 NUMBER
- IX1 X1+X3 ADD CHARACTER
- BX2 -X5*X4
- BX4 X1+X2 ADD IN BLANKS
- UKD1 BX7 X4
- SA7 A2 UPDATE *K-DISPLAY*
- SA7 B5+ UPDATE REPORT
- EQ UKDX RETURN
- SPACE 4,10
- * DEFINE INITIAL *K-DISPLAY* BY MICROS.
- HHED MICRO 1,,*TRANSACTION EXECUTIVE INITIALIZATION OPTIONS*
- HHEC MICRO 1,,*TAF INITIALIZATION OPTIONS*
- HOPD MICRO 1,,*OPTION DESCRIPTION*
- MSCP MICRO 1,17,*SCP = "NSCPM" *
- HSCP MICRO 1,,*SUB CONTROL POINTS ("MINSCPM" - "MAXSCPM").*
- MCMB MICRO 1,17,*CMB = "NCMBM" *
- HCMB MICRO 1,,*COMMUNICATION BLOCKS ("MINCMBM" - "MAXCMBM").*
- MREC MICRO 1,,*REC = NO *
- HREC MICRO 1,,*RECOVERY MODE (YES OR NO).*
- MMFL MICRO 1,17,*MFL = "SCMFLM"B *
- HMFL MICRO 1,,*MAXIMUM FIELD LENGTH ("MINMFLM"B - "MAXMFLM"B).*
- MECS MICRO 1,17,*ECS = "ECSFLM"K *
- HECS MICRO 1,,*EXTENDED MEMORY FIELD LENGTH ("MINECSM"K - "MAXECSM
- ,"K).*
- MTLF MICRO 1,17,*TLF = "TLFM" *
- HTLF MICRO 1,,*TASK LIBRARY FILE (1-7 CHARACTERS).*
- MINT MICRO 1,,*INT = CRF,NONE *
- HINT MICRO 1,,*INITIALIZE CRF RECOVERY FILES [NONE,ALL OR*
- AINT MICRO 1,,*1-7 DIGITS].*
- MINC MICRO 1,,*INT = CRM,NONE *
- HINC MICRO 1,,*INITIALIZE CRM RECOVERY FILES (NONE OR ALL).*
- MERO MICRO 1,,*ERO = CRF,NO *
- HERO MICRO 1,,*ERROR OVERRIDE (YES OR NO).*
- MBFL MICRO 1,17,*BFL = "CMMBFLM"B *
- HBFL MICRO 1,,*CMM BASE FL ("MINCMMM"B - "MAXCMMM"B).*
- MEFL MICRO 1,17,*EFL = "CMMEFLM"B *
- HEFL MICRO 1,,*CMM EXPANDABLE FL (0 - "MAXCMEM"B).*
- MTFL MICRO 1,17,*TFL = "CMMTFLM"B *
- HTFL MICRO 1,,*CMM TARGET FL ("MINTMEM"B - "MAXTMEM"B).*
- SPACE 4,10
- * *K-DISPLAY* BUFFER FOR THE OPERATOR CONSOLE.
- KCTRL VFD 24/KBUF,18/0,18/KDIS
- KBUF BSS 5 KEYBOARD BUFFER
- DATA 1L. ALLOW COMMANDS WITHOUT TERMINATOR
- KDIS VFD 12/0,36/0,12/2
- KDL 20,T,("HHEC")
- KDL 6,H,("HOPD")
- KSCP KDL 1,,("MSCP")
- KDL 21,K,("HSCP")
- KCMB KDL 1,,("MCMB")
- KDL 21,K,("HCMB")
- KREC KDL 1,,("MREC")
- KDL 21,K,("HREC")
- KMFL KDL 1,,("MMFL")
- KDL 21,K,("HMFL")
- KECS KDL 1,,("MECS")
- KDL 21,K,("HECS")
- KTLF KDL 1,,("MTLF")
- KDL 21,H,("HTLF")
- KINT KDL 1,,("MINT")
- CHAR 1R[,1R(
- CHAR 1R],1R)
- CODE O
- KDL 21,K,("HINT")
- KDL 21,K,("AINT")
- CODE *
- KINC KDL 1,,("MINC")
- KDL 21,K,("HINC")
- KERO KDL 1,,("MERO")
- KDL 21,H,("HERO")
- KBFL KDL 1,,("MBFL")
- KDL 21,K,("HBFL")
- KEFL KDL 1,,("MEFL")
- KDL 21,K,("HEFL")
- KTFL KDL 1,,("MTFL")
- KDL 21,K,("HTFL")
- KBUF1 KDL 1,I,(
- , )
- KILL KDL 7,M,(FORMAT ERROR. )
- KILL1 BSSZ 2 SPECIFIC ERROR MESSAGE
- BSSZ 1
- KILL2 KDL 7,M,(FORMAT ) DUPLICATE FIRST LINE OF ERROR MESSAGE
- * Y-COORDINATE TABLE.
- KPRS KDL *
- SPACE 4,10
- PRK HERE REMOTE BLOCK FROM *COMCDCP*
- SPACE 4,10
- * *K-DISPLAY* BUFFER FOR REPORT FILE.
- CHAR 1R[,1R(
- CHAR 1R],1R)
- CODE O
- DISP DATA C* "HHEC"*
- DATA 1L
- DATA C* "HOPD"*
- DATA 1L
- DIS1 DATA C* "MSCP" "HSCP"*
- DIS2 DATA C* "MCMB" "HCMB"*
- DIS4 DATA C* "MREC" "HREC"*
- DIS5 DATA C* "MMFL" "HMFL"*
- DIS6 DATA C* "MECS" "HECS"*
- DIS7 DATA C* "MTLF" "HTLF"*
- DATA 1L
- CHAR 1R[,1R(
- CHAR 1R],1R)
- CODE O
- DIS8 DATA C* "MINT" "HINT"*
- DATA C* "AINT"*
- CODE *
- DIS9 DATA C* "MINC" "HINC"*
- DIS10 DATA C* "MERO" "HERO"*
- DATA 1L
- DIS11 DATA C* "MBFL" "HBFL"*
- DIS12 DATA C* "MEFL" "HEFL"*
- DIS13 DATA C* "MTFL" "HTFL"*
- DISPL EQU *-DISP
- TITLE FETS AND COMMON DECKS.
- * FETS USED IN *PRESET*.
- TCF BSS 0 *TAF* CONFIGURATION FILE
- TCF FILEB TCBUF,TCBUFL,EPR,FET=13
- N BSS 0 NETWORK FILE
- NETWORK FILEB NBUF,NBUFL,EPR,FET=12
- * TAGS NEEDED FOR ASSEMBLY OF *COMCRTN*.
- VBPT EQU 3 ADDITIONAL PLT WORDS FOR HIGH SPEED LINES
- ABMA CON 0 NUMBER OF ADDITIONAL HIGH SPEED LINES
- SPACE 4,10
- * COMMON DECKS USED IN *PRESET*.
- *CALL COMSNET
- *CALL COMCARG
- *CALL COMCRDC
- *CALL COMCRDS
- *CALL COMCRTN
- *CALL COMCUPC
- SPACE 4,10
- ENDP EQU * END OF PRESET CODE
- BUFFERS TITLE BUFFERS.
- * BUFFERS.
- TRBUF EQU PRS COMMUNICATIONS RECOVERY FILE
- TRBUFL EQU 7*64+2
- TABUF EQU TRBUF+TRBUFL ALTERNATE RECOVERY FILE
- TABUFL EQU 7*64+1
- PBUF EQU TABUF+TABUFL PRU BUFFER
- PBUFL EQU 7*64
- DIR EQU PBUF+PBUFL DIRECTORY OF RECOVERY UNITS
- DIRL EQU RUDL*IPTST
- TCBUF EQU ENDP *TAF* CONFIGURATION FILE
- TCBUFL EQU 2*64+1
- NBUF EQU TCBUF+TCBUFL NETWORK FILE
- NBUFL EQU 4*64+1
- BRTN EQU NBUF+NBUFL SCRATCH AREA FOR *COMCRTN*
- BRTNL EQU IPTST
- TBUF EQU BRTN+BRTNL TAF INITIALIZATION FILE
- TBUFL EQU 3*64+1
- RBUF EQU TBUF+TBUFL RECOVERY REPORT FILE
- RBUFL EQU 4*64+1
- RWSA EQU RBUF+RBUFL *WSA* FOR REPORT FILE
- RWSAL EQU 8
- TSTLW EQU RWSA+RWSAL TERMINAL STATUS TABLE LENGTH WORD
- TSTHD EQU TSTLW+1 TST HEADER
- TST EQU TSTHD+TTFTL START OF TST
- TSTL EQU TSTLLE*IPTST STORAGE FOR TST
- RFL= EQU TST+TSTL
- END
cdc/nos2.source/opl871/tafrec.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator