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