IDENT DAYFILE,FETS ABS SST SYSCOM B1 ENTRY AFD ENTRY DAYFILE ENTRY DFD ENTRY ELD ENTRY GETLOG ENTRY MAINLOG ENTRY ARG= ENTRY RFL= ENTRY SSJ= ENTRY UTL= *COMMENT DAYFILE - DUMP DAYFILES. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. TITLE DAYFILE - DUMP DAYFILES. SPACE 4 *** DAYFILE - DUMP DAYFILES. * J. C. BOHNHOFF. 75/02/15. * S. L. KSANDER. 75/08/16. * P. L. VERELL. 79/11/07. SPACE 4 *** *DAYFILE* ACCESSES THE INDICATED DAYFILE AND COPIES * IT TO THE REQUESTED FILE. CERTAIN PORTIONS OF DAYFILES MAY * BE SELECTIVELY COPIED. SPACE 4 *** THE COMMAND - * * AFD(OPT) DUMP ACCOUNT DAYFILE. ** * DAYFILE(OPT) DUMP USER JOB DAYFILE. * DFD(OPT) DUMP SYSTEM DAYFILE. ** * ELD(OPT) DUMP ERROR LOG DAYFILE. ** * GETLOG(OPT) DUMP ERROR LOG AND BML FOR *HPA*. ** * MAINLOG(OPT) DUMP MAINTENANCE LOG. ** * * ** THESE CALLS ARE ALLOWED ONLY IF - * CALLER HAS SYSTEM ORIGIN, OR CALLER HAS SYSTEM * ORIGIN PRIVILEGES AND SYSTEM IS IN DEBUG MODE. * * WHERE OPT = OPTIONS. ANY OF THE FOLLOWING - * * L FILE TO WHICH DAYFILE IS DUMPED. FOR * *GETLOG*, THIS IS THE *ERRLOG* FILE. THE * DEFAULT IS *ERR* FOR *GETLOG* AND IS * *OUTPUT* FOR ALL OTHER ENTRY POINTS. IF * EQUATED THEN THE FILE NAME MAY BE ANY * VALID FILE NAME. IF, BY ONE OF THE ABOVE * MEANS, THE FILE NAME IS SET TO *OUTPUT*, * PAGINATION OCCURS. THE TITLE LINE OF * EACH PAGE CONTAINS THE TIME AND DATE OF * THE DUMP, THE TIME FIELD OF THE FIRST * DAYFILE ENTRY ON THE PAGE, AND THE PAGE * NUMBER. IF EITHER OR BOTH OF THE PD OR * PL ARGUMENTS ARE SPECIFIED, PAGINATION * ALWAY OCCURS, REGARDLESS OF THE OUTPUT * FILE NAME. PAGES ARE NEVER GIVEN IF THE * OUTPUT FILE IS ASSIGNED TO AN INTERACTIVE * TERMINAL. * * FR SELECT PARTIAL DUMP FROM SPECIFIED LINE. * IF FR IS EQUATED TO A LITERAL VALUE, THE * DUMP WILL BEGIN AT THE LINE CONTAINING * THE LAST OCCURRENCE OF THE LITERAL. * DAYFILE LINES ARE EXAMINED BY COMPARING * THE FIRST CHARACTERS OF THE FIELD * SPECIFIED BY OP WITH THE LITERAL. THE * LITERAL MAY BE UP TO 30 CHARACTERS. THE * LITERAL IS DELIMITED BY DOLLAR SIGNS. A * LITERAL DOLLAR SIGN IS REPRESENTED BY TWO * CONSECUTIVE DOLLAR SIGNS. FR NEED NOT BE * A LITERAL IF THE STRING BEING SEARCHED * FOR IS ALSO A LEGITIMATE FILE NAME. * * OP SELECT DAYFILE FIELD FOR SEARCH. * THE DEFAULT IS *OP = I* FOR TERMINAL * OUTPUT FILES, *OP = F* FOR OTHER FILES. * IF *FR* IS SPECIFIED, THE DEFAULT IS * *OP = M*. * OP MAY BE EQUATED TO ANY OF THE FOLLOWING * SINGLE CHARACTERS - * T FOR TIME FIELD * J FOR JOB NAME FIELD * (INCORRECT FOR USER DAYFILE) * M FOR MESSAGE FIELD * (INCORRECT FOR MAINTENANCE * LOG) * I FROM LAST DUMP * P FROM LAST DUMP BY THIS JOB * (INCORRECT FOR USER DAYFILE) * F FULL DUMP * OP SELECTS ONLY THE STARTING POSITION OF * THE SEARCH IN EACH LINE. THEREFORE, THE * FIELD TO BE SEARCHED FOR MAY CROSS T,J,M * BOUNDARIES. FOR EXAMPLE - * DAYFILE(FR=$ 11.03.21.COMPASS$,OP=T) * IS PROPER. * * PD SELECT PRINT DENSITY. IF PD IS ABSENT, * SET PRINT DENSITY TO A VALUE DETERMINED * BY THE JOB DEFAULT PRINT DENSITY (PD). * PD MAY BE EQUATED TO 3, 4, 6 OR 8. VALUES * OF 4 AND 8 ARE NOT INTENDED FOR USE WITH * DEVICES NOT SUPPORTING 8 LPI. THIS * PARAMETER HAS NO MEANING, AND IS NOT * CHECKED, IF THE OUTPUT IS TO A TIME- * SHARING TERMINAL. THIS OPTION IS NOT * VALID FOR *GETLOG* OR *MAINLOG* CALLS. * * PL SELECT PAGE SIZE. IF PL IS ABSENT, SIZE * IS DETERMINED FROM THE JOB DEFAULT PAGE * SIZE (PS) AS FOLLOWS - * PD PL (IN LINES) * -- -- * 3 PS/2 * 4 PS/2 * 6 PS * 8 PS * IF PL IS EQUATED TO A NUMERIC VALUE, THE * PAGE SIZE IS SET ACCORDINGLY. IF THE * VALUE IS ZERO, THE PAGE SIZE IS SELECTED * ACCORDING TO THE ABOVE TABLE. PL * SPECIFIES THE NUMBER OF DAYFILE LINES TO * BE PRINTED PER PAGE, NOT NUMBER OF TOTAL * LINES. THE PAGE TITLE IS TWO LINES. * THIS PARAMETER HAS NO MEANING, AND IS * NOT CHECKED, IF THE OUTPUT IS TO A TIME- * SHARING TERMINAL. THIS OPTION IS NOT * VALID FOR *GETLOG* OR *MAINLOG* CALLS. * * I FILE FROM WHICH DAYFILE IS READ. IF * ABSENT, THE FILE IS THE RESPECTIVE * DAYFILE CURRENTLY MANAGED BY THE SYSTEM. * FOR *GETLOG*, THIS APPLIES ONLY TO THE * *BML* FILE. * * B BINARY FILE RECEIVING THE REFORMATTED * MAINTENANCE LOG. IF ABSENT, THE FILE * IS *BML*. THIS OPTION IS APPLICABLE * ONLY TO *MAINLOG* AND *GETLOG* CALLS. * * JT JOB TERMINATION OPTION. * D IF SPECIFIED, A DEFFERRED ROUTE * WILL BE PERFORMED ON THE FILE * TO WHICH THE DAYFILE IS TO BE * COPIED, AND PAGINATION WILL BE * PERFORMED. * THIS OPTION IS VALID ONLY FOR * THE *DAYFILE* COMMAND. * * E FILE TO WHICH THE EST IS WRITTEN, FOR * *GETLOG* ONLY. * * * OP=I, OP=P PROCESSING. * TO LOCATE THE LAST DUMP ENTRY, THE DAYFILE IS SEARCHED FOR * ONE OF THE NORMAL COMPLETION MESSAGES LISTED BELOW DEPENDING * UPON WHICH DAYFILE IS TO BE ACCESSED. * * INTERACTIVE TERMINATION OF *DAYFILE,FR[=XXXX].* * WHENEVER AN INTERRUPT IS RECEIVED FROM AN INTERACTIVE TERMINAL * OUTPUT IS STOPPED AND A COMPLETION MESSAGE IS ISSUED TO THE * APPROPRIATE DAYFILES. THIS ALLOWS THE USER TO SUPPRESS THE * LISTING OF A LONG DUMP WHILE RETAINING THE CAPABILITY TO DUMP * FROM THE LAST PREVIOUS DUMP (THE ONE THAT WAS INTERRUPTED). * * POSITIONAL ARGUMENT PROCESSING. * IT IS NOT NECESSARY TO SPECIFY THE ABOVE KEYWORDS (L,FR,OP,..) * ARGUMENT VALUES MAY ASSUME THEIR ASSOCIATION WITH THESE KEY- * WORDS BY THEIR POSITION ON THE COMMAND. * FOR EXAMPLE - * DAYFILE(SAM,ERROR,M) * IS EQUIVALENT TO - * DAYFILE(L=SAM,FR=ERROR,OP=M) * THE ORDER OF THE ARGUMENTS MUST BE - * 1) L VALUE * 2) FR VALUE (MAY BE A LITERAL) * 3) OP VALUE * 4) PD VALUE * 5) PL VALUE * 6) I VALUE * 7) B VALUE * 8) D OPTION * VALUES MAY BE LEFT UNSPECIFIED AS - * DAYFILE(,,,8) * ( SAME AS DAYFILE(PD=8) ) * KEYWORD TYPE ARGUMENTS MAY BE INTERMIXED WITH POSITIONAL * ARGUMENTS. FOR EXAMPLE - * DAYFILE(SAM,PD=8,10) * IS EQUIVALENT TO - * DAYFILE(L=SAM,PD=8,PL=10) * * NUMERIC ARGUMENT VALUES. * NUMERIC ARGUMENTS MAY BE SPECIFIED IN EITHER OCTAL OR DECIMAL * BASE. A RADIX SYMBOL *B* OR *D* MAY IMMEDIATELY FOLLOW THE * NUMBER TO SPECIFY OCTAL OR DECIMAL BASE RESPECTIVELY. IF * THE RADIX SYMBOL IS ABSENT, DECIMAL IS ASSUMED. THE SINGLE * CHARACTER *B* OR *D* IS TAKEN TO MEAN ZERO, SO - * DFD(PL=B) * IS EQUIVALENT TO - * DFD(PL=0B) OR DFD(PL=D) OR DFD(PL=0D) OR DFD(PL=0) * * FILES *SCR* AND *SCR1* ARE USED INTERNALLY. SPACE 4 *** DAYFILE MESSAGES ISSUED. * * NORMAL COMPLETION. * * *SIAD.* (ACCOUNT DAYFILE ONLY) * * * ACCOUNT DAYFILE PROCESSED.* * * * USER DAYFILE PROCESSED.* * * * SYSTEM DAYFILE PROCESSED.* * * * ERROR LOG PROCESSED.* * * * GETLOG PROCESSED.* (ALSO WRITTEN TO *ERRLOG*). * * * MAINTENANCE LOG PROCESSED.* * * * ENTRYPT - LOCAL DAYFILE PROCESSED.* * *I=LFN* PROCESSING COMPLETED NORMALLY. * * THE ABOVE MESSAGE DESCRIPTIONS ARE GIVEN WHEN * A DAYFILE DUMP HAS BEEN PERFORMED ON THE SPECIFIED * DAYFILE. IF NO ADDITIONAL DAYFILE MESSAGES WERE ISSUED, * THE DUMP WAS SUCCESSFUL. * * * IN THE FOLLOWING MESSAGE DESCRIPTIONS, THE GENERIC LABEL * *ENTRYPT* REFERS TO THE ENTRY POINT NAME (AFD, DAYFILE, * DFD, ELD, OR MAINLOG) DISPLAYED IN EACH MESSAGE. * * INFORMATIVE MESSAGES. * * * ENTRYPT - DATA LOST.* * INDICATES THAT A DAYFILE READ ERROR HAS OCCURRED. * PROCESSING CONTINUES WITH THE FIRST AVAILABLE GOOD * DAYFILE MESSAGE. * * * ENTRYPT - RECOVERY SECTOR ENCOUNTERED.* * INDICATES THAT A RECOVERY SECTOR HAS BEEN * ENCOUNTERED, DENOTING THE BOUNDARY OF A DEADSTART * RECOVERY. ANY DAYFILE MESSAGE FRAGMENT PRECEEDING * THIS BOUNDARY IS DISCARDED. PROCESSING CONTINUES * WITH THE FIRST MESSAGE AFTER THE BOUNDARY. * * * ABNORMAL COMPLETION. * * * DAYFILE - INPUT FILE CANNOT BE EXECUTE ONLY.* * THE FILE SPECIFIED AS CONTAINING THE DAYFILE TO * PROCESS IS AN EXECUTE ONLY TYPE FILE, AND CANNOT * BE READ. * * * ENTRYPT - INPUT FILE NOT FOUND.* * THE FILE SPECIFIED BY THE *I=FILENAME* PARAMETER IS NOT * A LOCAL FILE. * * * DAYFILE - JOB FIELD DISALLOWED ON USER DAYFILE.* * OP=J OR OP=P IS SPECIFIED. JOB NAMES DO NOT APPEAR * IN THE USER DAYFILE. * * * DAYFILE - INTERACTIVE INPUT FILE NOT ALLOWED.* * *I=* SPECIFIES A TERMINAL INPUT FILE, WHICH IS NOT * ALLOWED. * * * ENTRYPT - ARGUMENT ERROR.* * AN UNKNOWN KEYWORD WAS ENCOUNTERED OR COMMAND * WAS ILL-FORMATTED. * * * ENTRYPT - BUFFER TOO SMALL.* * THE AMOUNT OF *CM RESIDENT* DAYFILE RETURNED BY *SFM* * IS LARGER THAN THE ALLOWED INTERNAL BUFFER. * RECOMMEND CHANGING VALUE OF *CBUFL*, IF THIS * MESSAGE OCCURS. * * * ENTRYPT - *FR* INCORRECT FOR THIS OPTION.* * OP=I OR OP=P IS SPECIFIED. INCREMENTAL DAYFILE DUMPS * HAVE A PREDETERMINED SEARCH VALUE, THUS *FR* IS NOT * NEEDED. * * * ENTRYPT - INCORRECT PAGE SIZE FORMAT.* * THE VALUE ASSOCIATED WITH THE PL ARGUMENT IS NOT * NUMERIC. * * * ENTRYPT - INCORRECT PRINT DENSITY.* * PD IS NOT 3, 4, 6 OR 8. * * * ENTRYPT - INCORRECT PRINT DENSITY FORMAT.* * THE VALUE ASSOCIATED WITH THE PD ARGUMENT IS NOT * NUMERIC. * * * DAYFILE - INCORRECT JOB TERMINATION OPTION.* * THE VALUE OF THE *JT* OPTION SPECIFIED IS * NOT VALID. * * * ENTRYPT - RESERVED FILE NAME.* * THE FILE NAME SPECIFIED FOR THE B, I OR L PARAMETER * IS A RESERVED FILE NAME. * * * ENTRYPT - UNABLE TO ACCESS DAYFILE.* * THE SYSTEM DAYFILE THAT IS TO BE PROCESSED COULD NOT * BE ACCESSED DUE TO AN ERROR ENCOUNTERED BY *SFM*. * * * ENTRYPT - UNKNOWN *OP* FIELD.* * *OP* IS NOT EQUATED TO A VALID OPTION CHARACTER. * * * *FR* NOT FOUND.* * THE *FR* ARGUMENT WAS SELECTED, BUT THE DAYFILE SEARCH * WAS UNSATISFIED. THIS IS ONLY INFORMATIVE. THE FULL * DUMP IS GIVEN IN PLACE OF STARTING AT THE *FR*. * IF THIS CONDITION IS PRESENT, IT IS LISTED AS THE * FIRST LINE OF OUTPUT TO AN INTERACTIVE TERMINAL. * * * ENTRYPT - INTERACTIVE BINARY OUT-FILE NOT ALLOWED.* * *B=* SPECIFIES A TERMINAL FILE, WHICH IS NOT * ALLOWED. * * * MAINLOG - *FR* TIME VALUE INCORRECT.* * ERROR OCCURRED WHILE CONVERTING A DATE SUBMITTED IN * DISPLAY CODE TO A PACKED DATE IN BINARY FOR SEARCHING * ON A BINARY FILE. * * * MAINLOG - *OP* OPTION INCORRECT.* * THE OPTION SPECIFIED THOUGH VALID FOR CODED DAYFILES * IS INCORRECT FOR BINARY DAYFILES. * * * UNEXPECTED EOF/EOI ENCOUNTERED. * AN EOF OR EOI WAS ENCOUNTERED BEFORE THE PRU * COUNT HAD BEEN DEPLETED ON THE INPUT FILE. * * * MAINLOG - *BML* FORMAT INCORRECT. * AN INCORRECT RECOVERY SECTOR WORD WAS DETECTED WHILE * PROCESSING THE *BML* FILE. SPACE 4 *** ERROR MESSAGES ISSUED TO OUTPUT. * * *NOTICE*** DATA READ ERROR. * INDICATES MESSAGE(S) LOST DUE TO A DAYFILE * READ ERROR. * * *NOTICE*** RECOVERY BOUNDARY. * INDICATES MESSAGE(S) LOST DUE TO CROSSING A * DEADSTART RECOVERY BOUNDARY. ESTFILE SPACE 4,10 *** EST FILE FORMAT (*GETLOG* ONLY). * * THE ENTIRE EST IS WRITTEN TO THE SPECIFIED FILE, TOGETHER * WITH THE FOLLOWING HEADER INFORMATION. * *T WD00 36/,12/ ESTSIZE,12/ ENTRYSIZE *T,WD01 60/ UNUSED *T,WD02 24/,36/ PACKED DATE AND TIME *T,WD03 60/ SYSTEM TITLE LINE *T,WD04 60/ *T,WD05 60/ *T,WD06 60/ *T,WD07 60/ SYSTEM VERSION *T,WD10 60/ *T,WD11-N 60/ (EST ENTRIES) * * ESTSIZE = NUMBER OF ENTRIES (LAST ORDINAL + 1). * ENTRYSIZE = NUMBER OF CM WORDS PER EST ENTRY. MACROS SPACE 4,20 TITLE MACRO DEFINITIONS. INPUTC SPACE 4,20 ** INPUTC - READ CODED MESSAGE FROM CONTROL WORD BLOCKS. * * INPUTC FET,FWA,LEN * * ENTRY *FET* = FWA OF FET TO READ. * *FWA* = FWA OF WORKING STORAGE BUFFER. * *LEN* = LENGTH OF WORKING STORAGE BUFFER. * * USES X - 2. * B - 6, 7. * * CALLS RDC. PURGMAC INPUTC INPUTC MACRO F,S,N MACREF INPUTC R= B6,S R= B7,N R= X2,F RJ RDC INPUTC ENDM INPUTW SPACE 4,20 ** INPUTW - READ BINARY MESSAGE FROM CONTROL WORD BLOCKS. * * INPUTW FET,FWA,LEN * * ENTRY *FET* = FWA OF FET TO READ. * *FWA* = FWA OF WORKING STORAGE BUFFER. * *LEN* = LENGTH OF WORKING STORAGE BUFFER. * * USES X - 2. * B - 6, 7. * * CALLS RDW. PURGMAC INPUTW INPUTW MACRO F,S,N MACREF INPUTW R= B6,S R= B7,N R= X2,F RJ RDW INPUTW ENDM SPACE 4,10 ** COMMON DECKS. *CALL COMCMAC *CALL COMCCMD *CALL COMSDFS *CALL COMSMSC *CALL COMSMSC *CALL COMSSFM *CALL COMSSSJ TITLE SYMBOL DEFINITIONS. * SSJ CONTROL. SSJ= EQU SSJP SYSTEM PRIVILEGES ONLY UTL= BSS 0 SYSTEM UTILITY SPECIAL ENTRY POINT * SYMBOL DEFINITIONS. MAXZ MAX MXML,MBML,MCML FIND LARGEST MESSAGE SIZE WBUFL EQU MAXZ+5 WORKING BUFFER LENGTH CBUFL EQU MXDB+MBML+2 LENGTH OF CM HOLD AREA EBUFL EQU ESMX*ESTE+11B+1 EST BUFFER (*GETLOG* ONLY) BUFML MAX 2001B,CBUFL+1 IBUFL EQU BUFML DAYFILE BUFFER LENGTH OBUFL EQU 20001B OUTPUT BUFFER LENGTH SBUFL EQU 2001B SCRATCH BUFFER LENGTH DFDF EQU 1RS DEFAULT DENSITY FORMAT CHARACTER FETL EQU 10B FET LENGTH PLEN EQU 1000 START PAGE LINE NUMBER SPACE 4,10 * DAYFILE TYPE CODES. GLTY EQU 0 *GETLOG* - ERRLOG (CODED), BML (BINARY) ACTY EQU 1 ACCOUNT (CODED FILE) UDTY EQU 2 USER DAYFILE (CODED FILE) SDTY EQU 3 SYSTEM DAYFILE (CODED FILE) ELTY EQU 4 ERROR LOG (CODED FILE) MLTY EQU 5 MAINTENANCE LOG (BINARY FILE) SPACE 4,10 * NOTICE MESSAGE CODES. REMC EQU 1 READ ERROR RSMC EQU 2 RECOVERY SECTOR SPACE 4,10 * FET INDEX DEFINITIONS TO CONTROL WORD PROCESSING INFORMATION. WRD EQU 1 INDEX OF WORDS BEFORE CONTROL WORD ERF EQU 2 INDEX TO EOR FLAG LWP EQU 3 INDEX TO REMAINING MESSAGE SPACE 4,10 * *SFM* ERROR CODES. DFB EQU 1 DAYFILE BUSY TITLE FETS AND GLOBAL STORAGE. * FETS. ORG 113B FETS BSS 0 E BSS 0 EST FILE (*GETLOG* ONLY) EST FILEB EBUF,EBUFL CON 0 WORDS LEFT IN CURRENT MESSAGE CON -1 EOR FLAG CON -1 NUMBER OF WORDS BEFORE CONTROL WORD I BSS 0 DAYFILE SCR FILEB IBUF,IBUFL,FET=FETL,EPR O BSS 0 OUTPUT OUTPUT RFILEB OBUF,OBUFL,FET=FETL S BSS 0 SCRATCH SCR1 FILEB SBUF,SBUFL,FET=FETL B BSS 0 BINARY BML FILEB OBUF,OBUFL,FET=FETL SPACE 4,10 * *DSP* PARAMETER BLOCK. PDRA VFD 60/0 FILE NAME AND STATUS VFD 12/5000B,12/0,12/2LLP,6/0,18/121B ROUTING CONTROL BSSZ 13 SPACE 4,10 * GLOBAL STORAGE. BNAM BSSZ 1 BINARY FILE NAME CMFG BSSZ 1 CM BUFFER PROCESSING FLAG DFTY BSSZ 1 DAYFILE TYPE EFFG BSSZ 1 CHECKPOINT EOR/EOF IN-PROCESS FLAG ENPT CON 0 ENTRY POINT IDENTIFIER INAM BSSZ 1 IN FILE NAME OMCA CON WBUF OUTSTANDING MESSAGE CONTINUATION ADDRESS PRUS CON 377777B NUMBER OF PRU-S TO READ WCCM CON 0 NUMBER OF WORDS IN CM BUFFER PORTION * OF DAYFILE PAGE CON 0 CURRENT PAGE NUMBER LINE CON PLEN CURRENT LINE NUMBER LISF CON 0 LIST FILE FLAG - =0 IF FILE IS TO BE * PAGINATED LISV CON 0 (LISF) IF *FR* OPTION SELECTED FROM CON 0 =0 IF FULL DUMP, ELSE PARTIAL DUMP SEMS CON 0,0,0 SEARCH MESSAGE CON 0 MESSAGE TERMINATOR SEMA CON 0,0,0 SEARCH MESSAGE MASK CON 0 MASK TERMINATOR SEJN CON 0 SEARCH JOB NAME SFOP VFD 6/1RF,54/1 SEARCH FIELD OPTION / CHANGE FLAG FRFO CON 1 =0 IF *FR* MESSAGE NOT FOUND SEWI CON 2 STARTING MESSAGE SEARCH WORD INDEX PDEN CON 1 PRINT DENSITY PLPP CON 0L0+1 LINES PER PAGE DURING PRESET, OTHERWISE - PLPO CON 0L0+1 ALTERNATE LINES PER PAGE FOR SEARCH FILE * FORMAT AS DESCRIBED FOR *TPAS*. RFMT VFD 6/DFDF,6/1R ,48/0 RESET FORMAT LINE IOUT CON 1 =0 IF TERMINAL OUTPUT INTR CON 0 NONZERO IF TERMINAL INTERRUPT JTOP CON 0 JOB TERMINATION OPTION SPACE 4,10 * PAGE TITLE LINE. HDR2 BSS 0 JSNP BSS 1 JSN FOR END OF JOB HEADER TITL DATA -0 TITLE AND VERSION FOR END OF JOB HEADER DENF VFD 6/DFDF,54/0 DENSITY FORMAT CONTROL DENC CON 1 PRINT DENSITY CONTROL WORD HEDR BSS 0 MODE DATA 10H1 FULL TYPE DATA 10HDAYFILE. DATE DATA 0 DATE DAT2 BSS 0 DATE FOR END OF JOB HEADER TIME DATA 0 TIME TIM2 BSS 0 TIME FOR END OF JOB HEADER INDX DATA 10H* * TIME OF FIRST ENTRY ON PAGE PGNO DATA 0 PAGE NUMBER DATA 0 DATA 2L HEDRL EQU *-HEDR LENGTH OF TITLE LINE HDR2L EQU *-HDR2 LENGTH OF END OF JOB HEADER TITLE ENTRIES. ** ENTRY PROCESSORS. AFD SPACE 4,10 ** AFD - DUMP ACCOUNT DAYFILE. AFD BSS 0 ENTRY SX6 ACTY SET DAYFILE TYPE = ACCOUNT SA6 DFTY SA6 ENPT SET ENTRY POINT = *AFD* SX4 AFDA SET SEARCH STRING FOR PARTIAL DUMP RJ PRS PRESET PROGRAM SA1 =10H ACCOUNT. SET TITLE SX4 =C*SIAD. * SET TERMINATION MESSAGE RJ DAF PROCESS DUMP SX2 AFDB ISSUE TERMINATION MESSAGE EQ TRM EXIT AFDA DATA C*SIAD.* ACCOUNT FILE MESSAGE AFDB DATA C* ACCOUNT DAYFILE PROCESSED.* DAYFILE SPACE 4,10 ** DAYFILE - DUMP USER DAYFILE. DAYFILE BSS 0 ENTRY SX6 UDTY SET DAYFILE TYPE = USER DAYFILE SA6 DFTY SA6 ENPT SET ENTRY POINT = *DAYFILE* SX7 1 SET SEARCH INDEX SA7 SEWI SX4 DAYA SET SEARCH STRING FOR PARTIAL DUMP RJ PRS PRESET PROGRAM SA1 =10H DAYFILE. SET TITLE RJ DAF PROCESS DUMP SX2 DAYA ISSUE TERMINATION MESSAGE EQ TRM EXIT DAYA DATA C* USER DAYFILE PROCESSED.* DFD SPACE 4,10 ** DFD - DUMP SYSTEM DAYFILE. DFD BSS 0 ENTRY SX6 SDTY SET DAYFILE TYPE = SYSTEM DAYFILE SA6 DFTY SA6 ENPT SET ENTRY POINT = *DFD* SX4 DFDA SET SEARCH STRING FOR PARTIAL DUMP RJ PRS PRESET PROGRAM SA1 =10H DAYFILE. SET TITLE RJ DAF PROCESS DUMP SX2 DFDA ISSUE TERMINATION MESSAGE SB7 3 SET LOCAL DAYFILE ONLY OPTION EQ TRM1 EXIT DFDA DATA C* SYSTEM DAYFILE PROCESSED.* ELD SPACE 4,10 ** ELD - DUMP ERROR LOG. ELD BSS 0 ENTRY SX6 ELTY SET DAYFILE TYPE = ERRLOG SA6 DFTY SA6 ENPT SET ENTRY POINT = *ELD* SX4 ELDA SET SEARCH STRING FOR PARTIAL DUMP RJ PRS PRESET PROGRAM SA1 =10H ERRLOG. SET TITLE RJ DAF PROCESS DUMP SX2 ELDA ISSUE TERMINATION MESSAGE EQ TRM EXIT ELDA DATA C* ERROR LOG PROCESSED.* GETLOG SPACE 4,10 ** GETLOG - DUMP ERROR LOG AND BML FOR *HPA*. GETLOG BSS 0 ENTRY SA1 GTLC CHANGE *L* DEFAULT TO *ERR* BX6 X1 SA6 O SX6 GLTY SET ENTRY POINT = *GETLOG* SA6 ENPT * PROCESS MAINTENANCE LOG. SX6 MLTY SET DAYFILE TYPE = BML SA6 DFTY SX4 GTLA SET SEARCH STRING FOR PARTIAL DUMP RJ PRS PRESET PROGRAM SA1 =10H GETLOG. SET TITLE RJ DAF PROCESS DUMP * RESET PARAMETERS. MX7 0 CLEAR LOCAL FILE FLAG SA7 INAM SA7 CMFG CLEAR *CM BUFFER* FLAG SA1 GTLD RESTORE *SCR* FILENAME BX6 X1 SX7 IBUF RESTORE FIRST/IN/OUT/LIMIT MX0 42 SA6 I SA1 A6+B1 MX6 59 INITIALIZE CONTROL WORDS BX1 X0*X1 BX7 X1+X7 SA7 A6+B1 ERRNZ WRD-1 CANNOT USE *B1* ERRNZ ERF-WRD-1 CANNOT USE *B1* SA6 A6-B1 SX7 X7 SA7 A7+B1 SA6 A6-B1 SX6 X7+IBUFL SA7 A7+B1 SA6 A7+B1 * PROCESS ERROR LOG. SX6 ELTY SET DAYFILE TYPE = ERRLOG SA6 DFTY MOVE 3,GTLB,IBUF SET SEARCH STRING FOR PARTIAL DUMP MOVE 3,GTLB,SEMS MX6 48 SET SEARCH MASK BX7 X4-X4 SA6 SEMA+1 AX6 12 SA7 A6+B1 SA6 A6-B1 SA1 =10H GETLOG. SET TITLE RJ DAF PROCESS DUMP SX2 GTLB ISSUE TERMINATION MESSAGE EQ TRM EXIT GTLA VFD 12/2,48/0 BML MESSAGE FOR *GETLOG* EXECUTION VFD 12/DM0406,12/DS0113,36/0 VFD 60/0 GTLB DATA C* GETLOG PROCESSED.* GTLC VFD 42/0LERR,18/3 *L* DEFAULT FILENAME GTLD VFD 42/0LSCR,18/3 *I* FILENAME AFTER *BML* DUMPED MAINLOG SPACE 4,10 ** MAINLOG - DUMP BINARY MAINTENANCE LOG. MAINLOG BSS 0 ENTRY SX6 MLTY SET DAYFILE TYPE = MAINLOG SA6 DFTY SA6 ENPT SET ENTRY POINT = *MAINLOG* SX4 MLDA SET SEARCH STRING FOR PARTIAL DUMP RJ PRS PRESET PROGRAM SA1 =10H MAINLOG. SET TITLE RJ DAF PROCESS DUMP SX2 MLDB ISSUE TERMINATION MESSAGE EQ TRM EXIT MLDA VFD 12/2,48/0 VFD 12/DM0406,12/DS0102,36/0 VFD 60/0 MLDB DATA C* MAINTENANCE LOG PROCESSED.* TRM SPACE 4,10 ** TRM - COMMON TERMINATION ROUTINE. * * ENTRY (X2) = ADDRESS OF TERMINATION MESSAGE. * (B7) = DAYFILE OPTION, IF ENTERED AT *TRM1*. * * MACROS MESSAGE. TRM SB7 0 ISSUE MESSAGE TO USER/SYSTEM DAYFILES * ENTER WITH (B7) = DAYFILE OPTION. TRM1 SA1 INAM CHECK DAYFILE TYPE ZR X1,TRM2 IF ACTIVE DAYFILE PROCESSED SA1 ENPT SA1 NTAB+X1-GLTY SET ENTRY POINT IN MESSAGE BX6 X1 SA6 TRMA SX2 A6 TRM2 MESSAGE X2,B7 ISSUE TERMINATION MESSAGE ENDRUN TRMA DATA C* ENTRYPT - LOCAL DAYFILE PROCESSED.* DAF TITLE MAIN PROGRAM. ** DAF - PROCESS DAYFILE DUMP. * * MAIN LOOP. * * ENTRY (DFTY) = DAYFILE DUMP TYPE. * (X1) = DAYFILE NAME. * * EXIT DAYFILE DUMPED. * * USES X - 1, 2, 6. * A - 1, 6. * * CALLS OPN, RIF, TSF, WOF, WUP. * * MACROS MESSAGE, RECALL, ROUTE, WRITER. DAF SUBR ENTRY/EXIT BX6 X1 STORE DAYFILE NAME SA6 TYPE * PROCESS DAYFILE. RJ OPN OPEN DAYFILE SA1 TYPE SET DAYFILE TYPE IN MESSAGE BX6 X1 SA6 DAFA+1 MESSAGE DAFA,2 * COPYING - DAYFILE.* DAF1 RJ RIF READ IN-FILE NG X1,DAF2 IF EOF/EOI RJ WOF WRITE OUT-FILE SA1 INTR NZ X1,DAF5 IF TERMINAL INTERRUPT EQ DAF1 PROCESS NEXT RECORD * CHECK SEARCH FILE. DAF2 SA1 FROM ZR X1,DAF3 IF FULL DUMP RJ TSF TERMINATE SEARCH FILE SA1 DFTY SX1 X1-MLTY ZR X1,DAF3 IF PROCESSING BINARY FILE * MARK END OF TERMINAL OUTPUT. SA1 LISF NZ X1,DAF3 IF NOT PAGINATED OUTPUT SA1 RFMT RESET PRINT FORMAT BX6 X1 SA6 WBUF SA6 LISF SET *NO FORMAT* BX6 X6-X6 SET FULL DUMP SB7 B1 INDICATE MESSAGE PRESENT SA6 FROM RJ WOF WRITE OUT-FILE * WRAP UP TERMINATION. DAF3 RJ WUP WRAP UP PROCESSING MESSAGE (=C* *),2 SX2 O FLUSH OUT-FILE SA1 DFTY SX1 X1-MLTY NZ X1,DAF4 IF NOT PROCESSING BINARY FILE SX2 B DAF4 WRITER X2 SA1 JTOP CHECK IF JOB TERMINATION ENTERED ZR X1,DAFX IF NOT ENTERED RECALL X2 ROUTE PDRA,R ISSUE *DSP* REQUEST EQ DAFX RETURN DAF5 RJ WUP WRAP UP PROCESSING EQ DAFX RETURN DAFA DATA C* COPYING - DAYFILE. * TITLE SUBROUTINES. ERR SPACE 4,10 ** ERR - PROCESS ERROR. * * ENTRY (A0) = ADDRESS OF ERROR MESSAGE. * * EXIT ABORTS. * (ENPT) = ENTRY POINT NAME. * B = BINARY OUT-FILE FET. * O = CODED OUT-FILE FET. * * USES X - 0, 1, 2, 6. * A - 1, 2, 6. * * MACROS ABORT, MESSAGE, RECALL, ROUTE, WRITER. ERR SA1 ENPT SET ENTRY POINT NAME SA2 NTAB+X1-GLTY BX6 X2 SA6 ERRA MX0 -12 GET MESSAGE TEXT SA1 A0 ERR1 BX6 X1 SA6 A6+B1 BX2 -X0*X1 SA1 A1+B1 NZ X2,ERR1 IF MORE SX2 O FLUSH OUT-FILE SA1 DFTY SX1 X1-MLTY NZ X1,ERR2 IF NOT PROCESSING BINARY FILE SX2 B ERR2 WRITER X2 MESSAGE ERRA,,R ISSUE ERROR MESSAGE MESSAGE (=C* *),2 SA1 JTOP ZR X1,ERR3 IF NOT JOB TERMINATION SA1 PDRA ZR X1,ERR3 IF NO FILE NAME IN *DSP* PARAMETER BLOCK RECALL X2 ROUTE PDRA,R ISSUE *DSP* CALL ERR3 ABORT ERRA BSSZ 10B MESSAGE BUILD AREA GEM SPACE 4,20 ** GEM - GENERATE ERROR MESSAGE. * * ENTRY (B2) = ERROR MESSAGE CODE. * (DFTY) = DAYFILE TYPE. * (ENPT) = ENTRY POINT IDENTIFIER. * * EXIT ERROR MESSAGES ISSUED TO OUTPUT FILE AND DAYFILE. * * USES X - 1, 2, 5, 6, 7. * A - 1, 2, 5, 6, 7. * B - 2, 3, 7. * * CALLS WOF. * * MACROS MESSAGE. * * NOTE PRESERVES (X2) GEM SUBR ENTRY/EXIT BX7 X2 SAVE FET ADDRESS SX6 B2 SAVE MESSAGE CODE SA6 GEMA SA7 GEMB * GENERATE OUT-FILE ERROR MESSAGE. GEM1 SA2 DFTY SET ERROR MESSAGE PARAMETERS SA1 ETAB+X2-GLTY SA2 X1+B2 SB2 B0 TRANSFER MESSAGE TO WORKING BUFFER SB3 X2 START ADDRESS AX2 18 SB7 X2 LENGTH OF MESSAGE GEM2 SA5 B3+B2 BX6 X5 SA6 WBUF+B2 SB2 B2+B1 LT B2,B7,GEM2 IF NOT END OF MESSAGE RJ WOF WRITE MESSAGE TO OUTPUT FILE * ISSUE DAYFILE VERSION OF ERROR MESSAGE. SA1 GEMA GET MESSAGE CODE SB2 X1+ SA1 ENPT SET ENTRY POINT NAME SA1 NTAB+X1 BX6 X1 SA2 DTAB+B2 GET MESSAGE TEXT SA6 X2 INSERT ENTRY POINT NAME INTO TEXT MESSAGE X2 SA2 GEMB REPLACE FET ADDRESS EQ GEMX RETURN GEMA BSSZ 1 MESSAGE CODE HOLD GEMB BSSZ 1 FET ADDRESS NTAB BSS 0 ENTRY POINT NAME TABLE LOC GLTY GLTY DATA 10H GETLOG - ACTY DATA 10H AFD - UDTY DATA 10H DAYFILE - SDTY DATA 10H DFD - ELTY DATA 10H ELD - MLTY DATA 10H MAINLOG - LOC *O SPACE 4,10 ** NOTE: * THE MESSAGES REFERENCED BY THE FOLLOWING TABLES ARE * ORDERED ONE-FOR-ONE AND MUST BE MAINTAINED THAT WAY. * * *DTAB* - LIST OF THE DAYFILE VERSIONS OF THE MESSAGES. * *CFTB* - LIST OF THE CODED OUT-FILE VERSIONS OF THE * MESSAGES. * *BFTB* - LIST OF THE BINARY OUT-FILE VERSIONS OF THE * MESSAGES. DTAB BSS 1 DAYFILE MESSAGE TEXT ADDRESS TABLE CON DFRE CON DFSE * TEXT TABLE FOR DAYFILE VERSION OF NOTICE MESSAGES. DFRE DATA 40C XXXXXXX - DATA LOST. DFSE DATA 40C XXXXXXX - RECOVERY SECTOR ENCOUNTERED. ETAB BSS 1 DAYFILE TYPE TO MESSAGE SET - MAP TABLE CON CFTB ACCOUNT CON CFTB USER DAYFILE CON CFTB SYSTEM DAYFILE CON CFTB ERROR LOG CON BFTB MAINTENANCE LOG CFTB BSS 1 CODED FILE MESSAGE ADDRESS TABLE VFD 12/2000B+CREI,12/0,18/CREL,18/CFRE * TEXT TABLE FOR CODED FILE NOTICE MESSAGES. CFRE DATA 30H NOTICE*** DATA READ ERROR - CREI EQU *-CFRE CREL EQU *-CFRE BFTB BSS 1 BINARY FILE MESSAGE ADDRESS TABLE. VFD 12/2000B+BREI,12/0,18/BREL,18/BFRE VFD 12/2000B+BRSI,12/0,18/BRSL,18/BFRS * TEXT TABLE FOR BINARY FILE NOTICE MESSAGES. BFRE VFD 12/BREL,48/0 VFD 12/2H ,24/0,24/4HS. VFD 12/DM0406,12/DS0105,36/0 BREI EQU *-BFRE VFD 60/0 BREL EQU *-BFRE BFRS VFD 12/BRSL,48/0 VFD 12/2H ,24/0,24/4HS. VFD 12/DM0406,12/DS0107,36/0 BRSI EQU *-BFRS VFD 60/0 BRSL EQU *-BFRS ICP SPACE 4,20 ** ICP - INITIALIZE CM BUFFER PROCESSING. * * ENTRY (CMFG) = 0, IF *ICP* NOT PREVIOUSLY CALLED. * (CMFG) = 1, IF *ICP* PREVIOUSLY CALLED. * (INAM) .NE. 0, IF READ ALTERNATE INPUT FILE. * (WCCM) = NUMBER OF WORDS IN *CBUF*. * (X2) = FET ADDRESS. * * EXIT FET POINTERS POINTING TO *CBUF* DATA. * (X1) .LT. 0 IF NO DATA IN *CBUF*. * (X2) = FET ADDRESS. * * USES X - 0, 1, 3, 4, 5, 6, 7. * A - 1, 3, 5, 6, 7. ICP2 SX1 -2 SET EOI STATUS ICP SUBR ENTRY/EXIT SA1 CMFG NZ X1,ICP2 IF NOT FIRST CALL TO *ICP* SX6 B1 SA6 A1 SA3 INAM NZ X3,ICP2 IF READING ALTERNATE INPUT FILE RECALL X2 SA5 DFTY CHECK MESSAGE TYPE MX0 42 SX5 X5-MLTY SA3 X2+B1 SET FIRST SA1 WCCM SX6 CBUF NZ X5,ICP1 IF NOT PROCESSING BML SX6 BCWD START OF BUFFER FOR BML SX1 X1+B1 CONTROL WORD ICP1 BX3 X0*X3 BX7 X6+X3 SA7 A3 BX3 X1 CONVERT TO PP WORDS IX7 X6+X1 SET IN SX3 X3-1 REMOVE CONTROL WORD SA7 A7+B1 BX4 X3 LX3 2 SA6 A7+B1 SET OUT SX7 CBUF+CBUFL SET LIMIT SA7 A6+B1 BX7 X1 SET NUMBER OF WORDS BEFORE CONTROL WORD SA7 X2-WRD SX6 B1 SET EOR FLAG IX7 X4+X3 SA6 X2-ERF SA7 BCWD SET FOR BML EQ ICPX RETURN OPN SPACE 4,20 ** OPN - OPEN RESPECTIVE DAYFILE. * * ENTRY (BNAM) = 0, IF BINARY OUT-FILE NAME DEFAULTED. * .NE. 0, IF NAME SPECIFIED. * (DFTY) = DAYFILE TYPE. * * EXIT RESPECTIVE DAYFILE ACCESSED. * BINARY FILE OPENED, IF MAINTENANCE LOG ACCESSED. * (BFCW) = BINARY FILE CONTROL WORD. * (WCDF) = DISK FILE WORD COUNT. * (WCCM) = CM BUFFER WORD COUNT. * EXITS TO SUBROUTINE *ERR*, IF ERROR DETECTED. * * USES X - 0, 1, 2, 5, 6, 7. * A - 0, 1, 2, 6, 7. * B - 4. * * CALLS STF. * * MACROS DAYFILE, GETJN, MESSAGE, PDATE, READCW, READW * RECALL. OPN SUBR ENTRY/EXIT SA1 INAM ZR X1,OPN2 IF IN-FILE DEFAULTED * CHECK INPUT FILE FILE NAME. MX0 42 SA2 OPNB SET FILE NAME IN *FILINFO* BLOCK BX5 X0*X1 BX2 -X0*X2 BX6 X5+X2 SA6 A2+ SA0 =C* INPUT FILE NOT FOUND.* FILINFO OPNB GET INFORMATION ON INPUT FILE SA2 OPNB+1 MX1 -6 ZR X2,ERR IF FILE NOT FOUND AX2 6 SA0 =C* INPUT FILE CANNOT BE EXECUTE ONLY.* BX2 -X1*X2 ZR X2,ERR IF INPUT FILE IS EXECUTE ONLY * SET SPECIFIED IN-FILE FILE NAME. SA2 I BX2 -X0*X2 BX6 X5+X2 SA6 A2+ SX2 I RJ STF SET TERMINAL FILE SA0 =C* INTERACTIVE INPUT FILE NOT ALLOWED.* ZR X6,ERR IF TERMINAL FILE EQ OPN11 INITIATE READ * ACCESS RESPECTIVE DAYFILE. OPN2 SA1 DFTY SB4 X1-ACTY NZ B4,OPN3 IF NOT ACCOUNT DAYFILE I,ACCOUNT EQ OPN7 CHECK CM BUFFER OPN3 SB4 X1-UDTY NZ B4,OPN4 IF NOT USER DAYFILE DAYFILE I,USER EQ OPN7 CHECK CM BUFFER OPN4 SB4 X1-SDTY NZ B4,OPN5 IF NOT SYSTEM DAYFILE DAYFILE I,DAYFILE EQ OPN7 CHECK CM BUFFER OPN5 SB4 X1-ELTY NZ B4,OPN6 IF NOT ERROR LOG DAYFILE I,ERRLOG EQ OPN7 CHECK CM BUFFER OPN6 DAYFILE I,MAINLOG OPN7 SA1 X2 CHECK ERROR STATUS MX0 -4 LX1 -10 BX2 -X0*X1 ZR X2,OPN8 IF DAYFILE ATTACHED SX2 X2-DFB SA0 =C* UNABLE TO ACCESS DAYFILE.* NZ X2,ERR IF NOT *DAYFILE BUSY* ERROR RECALL MESSAGE OPNA,2 *WAITING FOR DAYFILE.* EQ OPN2 LOOP FOR RETRY OPN8 SA1 I+2 DETERMINE AMOUNT OF DATA IN CM BUFFER SA2 A1+B1 IX6 X1-X2 SA6 WCCM SA2 I+6 DETERMINE AMOUNT IN DISK FILE BX7 X2 SA7 PRUS SX1 X6-CBUFL-1 ZR X6,OPN10 IF CM BUFFER EMPTY NG X1,OPN9 IF CM BUFFER WILL FIT IN HOLD AREA SA0 =C* BUFFER TOO SMALL.* EQ ERR PROCESS ERROR OPN9 SX5 X6+ SAVE CM BUFFER LENGTH READW I,CBUF,X5 SAVE CM BUFFER IMAGE OPN10 SA1 PRUS ZR X1,OPN12 IF DISK FILE EMPTY OPN11 READCW I INITIATE DISK FILE READ OPN12 SA1 DFTY SX1 X1-MLTY NZ X1,OPNX IF NOT MAINTENANCE LOG * OBTAIN THE CURRENT PACKED DATE/TIME AND THIS JOB-S JSN, AND * MERGE THESE FIELDS INTO THE BML ERROR MESSAGES, SHOULD AN * ERROR BE DETECTED. PDATE OPNC GET PACKED DATE/TIME GETJN OPND GET JSN SA1 OPNC MERGE PACKED DATE/TIME INTO MESSAGES SA2 BFRE BX6 X1+X2 SA6 A2 SA6 BFRS ERRNZ BREL-BRSL ERROR IF MESSAGE LENGTHS DIFFER SA1 A1+B1 JSN ERRNZ OPND-OPNC-1 ERROR IF FIELDS NOT ADJACENT MX0 24 SA2 BFRE+1 BX1 X0*X1 LX1 -12 POSITION JSN BX6 X2+X1 MERGE JSN INTO MESSAGE SA6 A2 SA6 BFRS+1 * INITIATE BINARY FILE WRITE. SA1 BNAM ZR X1,OPN13 IF FILE NAME DEFAULTED SA2 B MX0 42 SET FILE NAME BX1 X0*X1 BX2 -X0*X2 BX6 X1+X2 SA6 A2+ OPN13 SX2 B RJ STF SET TERMINAL FILE SA0 =C* INTERACTIVE BINARY OUT-FILE NOT ALLOWED.* ZR X6,ERR IF TERMINAL FILE EQ OPNX RETURN OPNA DATA C* WAITING FOR DAYFILE.* OPNB VFD 42/0,6/5,11/0,1/1 BUFFER FOR *FILINFO* CALL BSS 4 OPNC VFD 60/0 PACKED DATE/TIME OPND VFD 60/0 JSN RDC SPACE 4,20 ** RDC - READ CODED LINE. * * PROCESSES CALLS TO READ CODED LINE (*RDC=*). * DEBLOCKS DATA IF CONTROL WORD READS. * * ENTRY (X2) = FET ADDRESS. * (B6) = FWA OF WORKING STORAGE BUFFER. * (B7) = WORKING STORAGE BUFFER LENGTH. * (INAM) = .NE. 0, IF READING ALTERNATE INPUT FILE. * (PRUS) = NUMBER OF SECTORS REMAINING TO BE READ. * * EXIT (X1) = STATUS RETURNED FROM RDC=. * (X2-LWP) = LWA+1 OF DATA TRANSFERRED. * (B6) = LWA+1 OF DATA TRANSFERRED. * * USES X - 1, 3, 4, 6, 7. * A - 0, 1, 3, 6, 7. * B - 2, 5, 6, 7. * * CALLS GEM, ICP, RDC=, RDW=, UOP. RDC9 SA3 RDCE CHECK READ ERROR STATUS NG X3,RDC7 IF READ ERROR ENCOUNTERED RDC SUBR ENTRY/EXIT SX6 B6 SAVE FWA OF WORKING STORAGE BUFFER SX7 B7 SAVE LENGTH OF WORKING STORAGE BUFFER SA6 RDCC SA7 RDCD SA6 RDCB RDC1 SA1 X2-WRD GET NUMBER OF WORDS BEFORE CONTROL WORD SB5 X1 SX7 B7 SAVE LENGTH OF WORKING STORAGE BUFFER SA7 RDCA SA7 RDCE SET NO READ ERROR ENCOUNTERED NG X1,RDC4 IF FIRST READ GE B5,B7,RDC2 IF ENOUGH DATA TO FILL BUFFER SB7 B5 SET WORDS TO READ ZR B5,RDC3 IF NO DATA RDC2 RJ RDC= READ CODED LINE SA3 RDCB DETERMINE NUMBER OF WORDS TRANSFERRED SX6 B6 SA6 A3 UPDATE FWA OF WORKING BUFFER IX6 X6-X3 SA3 RDCA UNUSED WORDS IN WORKING STORAGE BUFFER IX7 X3-X6 SA7 A3 SA3 X2-WRD UPDATE WORDS LEFT IN PRU (NOT TRANSFERRED) IX6 X3-X6 SA6 A3 SA3 B6-B1 GET LAST WORD TRANSFERRED BX6 X4 SA6 A3 BX6 X3-X4 ZR X6,RDC9 IF COMPLETE MESSAGE ZR X7,RDC9 IF WORKING STORAGE BUFFER FULL * PROCESS *CIO* TRAILING CONTROL WORD. RDC3 SB7 B1 READ TRAILING CONTROL WORD RJ RDW= SB6 B6-B1 BACK UP LWA TO ALLOW FOR CONTROL WORD SA3 X2-ERF CHECK EOR FLAG PL X3,RDC4 IF NOT EOR BLOCK MX6 1 SET NEW READ FLAG SA6 X2-ERF SA6 X2-WRD NG X1,RDC9 IF EOF/EOI ENCOUNTERED SX1 B6 SET EOR EXIT CONDITION EQ RDC9 RETURN * CHECK SECTOR COUNT TO DETERMINE IF DATA SHOULD BE READ * FROM THE DISK FILE OR FROM *CBUF*. RDC4 SA1 PRUS CHECK PRU COUNT SX6 B1 IX6 X1-X6 NZ X1,RDC5 IF MORE PRU-S TO READ FROM DISK RJ ICP INITIALIZE CM BUFFER PROCESSING NG X1,RDCX IF EOF/EOI ENCOUNTERED EQ RDC1 LOOP RDC5 SA6 A1 UPDATE SECTOR COUNT * PROCESS *CIO* HEADER CONTROL WORD. SB7 B1 READ CONTROL WORD RJ RDW= PL X1,RDC6 IF NOT EOF/EOI SA3 INAM NZ X3,RDCX IF EOF/EOI ON ALTERNATE INPUT FILE SA0 =C* UNEXPECTED EOF/EOI ENCOUNTERED.* EQ ERR PREMATURE EOF/EOI RDC6 SB6 B6-B1 BACK UP WORKING BUFFER SA1 B6 SET BLOCK SIZE FROM CONTROL WORD SX7 5 BX3 X1 SX4 X1+4 ROUND UP AX1 36 SX6 X1 IX7 X4/X7 SET NUMBER OF WORDS BEFORE CONTROL WORD IX6 X7-X6 SET EOR FLAG SA7 X2-WRD SA6 X2-ERF PL X3,RDC8 IF NO ERRORS * THE READ ERROR PROCESS IGNORES ALL MESSAGES WHICH MAY * CONSIST OF ANY BAD SECTOR DATA. SX7 X7+B1 RJ UOP UPDATE OUT POINTER MX6 1 SET NEW READ FLAGS SA6 X2-ERF SA6 A6+B1 SA6 RDCE FLAG READ ERROR SB2 REMC *DATA LOST.* RJ GEM GENERATE ERROR MESSAGE RDC7 SA1 RDCC RESET FWA OF WORKING STORAGE BUFFER SA3 RDCD SET LENGTH OF REQUESTED TRANSFER SB6 X1 BX6 X3 SA6 RDCA RDC8 SA1 RDCA RESET WORDS NEEDED SB7 X1 EQ RDC1 LOOP RDCA CON 0 NUMBER OF WORDS LEFT TO TRANSFER RDCB CON 0 UPDATE WORKING STORAGE BUFFER RDCC CON 0 FWA OF WORKING STORAGE BUFFER RDCD CON 0 LENGTH OF REQUESTED TRANSFER RDCE CON 0 READ ERROR ENCOUNTERED RDW SPACE 4,20 ** RDW - READ DATA. * * PROCESSES CALLS THAT ARE FOR READ WORDS (*RDW=*). * DEBLOCKS DATA THAT ARE IN CONTROL WORD READS. * * ENTRY (X2) = FET ADDRESS. * (B6) = FWA OF WORKING STORAGE BUFFER. * (B7) = WORKING STORAGE BUFFER LENGTH. * (INAM) = .NE. 0, IF READING ALTERNATE INPUT FILE. * (PRUS) = NUMBER OF SECTORS REMAINING TO BE READ. * * EXIT (X1) = STATUS RETURNED FROM RDW=. * (X2-LWP) = LWA+1 OF DATA TRANSFERRED. * (B6) = LWA+1 OF DATA TRANSFERRED. * * USES X - 0, 1, 3, 4, 5, 6, 7. * A - 0, 1, 3, 4, 5, 6, 7. * B - 2, 6, 7. * * CALLS GEM, ICP, RDW=, UOP. RDW10 SA6 A1 UPDATE WORDS LEFT IN PRU RJ RDW= READ WORDS RDW SUBR ENTRY/EXIT SX6 B6 SAVE FWA OF WORKING STORAGE BUFFER SX7 B7 SAVE LENGTH OF WORKING STORAGE BUFFER SA6 RDWB SA7 RDWC RDW1 SA1 X2-WRD GET NUMBER OF WORDS BEFORE CONTROL WORD ZR X1,RDW3 IF LAST WORD OF BLOCK PL X1,RDW2 IF NOT FIRST READ SX7 B7 SET WORDS LEFT IN WORKING STORAGE BUFFER SA7 RDWA EQ RDW4 CHECK DISK COUNT * DETERMINE SIZE OF NEXT BML MESSAGE. RDW2 SB7 B1 SET WORDS TO READ RJ RDW= READ WORDS SA3 B6-B1 LWA (BML MESSAGE HEADER WORD) MX0 12 GET MESSAGE LENGTH BX6 X0*X3 LX6 11-59 SB7 X6-1 SA6 RDWD SAVE FOR ERROR RECOVERY BX4 X6 SA1 X2-WRD IX6 X1-X6 PL X6,RDW10 IF ENOUGH WORDS LEFT IN BLOCK IX6 X4-X1 SET WORDS LEFT TO TRANSFER BX7 X7-X7 CLEAR WORDS LEFT IN PRU SA6 X2-LWP SA7 A1 SX1 X1-1 REMOVE FIRST WORD READ * READ FIRST PART OF MESSAGE IN CURRENT BLOCK AND * PROCESS *CIO* TRAILING CONTROL WORD. RDW3 SB7 X1+B1 RJ RDW= READ WORDS SB6 B6-1 BACK UP OVER LAST CONTROL WORD * CHECK SECTOR COUNT TO DETERMINE IF DATA SHOULD BE READ * FROM THE DISK FILE OR FROM *CBUF*. RDW4 SA1 PRUS SX6 B1 IX6 X1-X6 NZ X1,RDW5 IF MORE PRUS TO READ RJ ICP INITIALIZE CM BUFFER PROCESSING NG X1,RDWX IF EOF/EOI ENCOUNTERED - NO DATA LEFT RDW5 SB7 2 READ CONTROL WORDS SA6 A1+ RJ RDW= PL X1,RDW6 IF NOT EOF/EOI SA3 INAM NZ X3,RDWX IF EOF/EOI ON ALTERNATE INPUT FILE SA0 =C* UNEXPECTED EOF/EOI ENCOUNTERED.* EQ ERR PREMATURE EOF/EOI RDW6 SB6 B6-2 BACK UP WORKING BUFFER SA1 B6 SET BLOCK SIZE FROM *CIO* CONTROL WORD BX3 X1 SX7 5 SX4 X1+4 ROUND UP AX1 36 SX6 X1 IX7 X4/X7 SET NUMBER OF WORDS BEFORE CONTROL WORD IX6 X7-X6 SET EOR FLAG SX7 X7-1 CONTROL WORDS SA4 A1+B1 SA7 X2-WRD SAVE PRU CONTROL WORD SA5 X2-LWP SA6 X2-ERF BX6 X6-X6 CLEAR WORDS LEFT FROM PREVIOUS PRU BX7 X4 SA6 A5 NG X3,RDW9 IF READ ERRORS SA7 RDWF NG X7,RDW7 IF RECOVERY SECTOR SA1 EFFG NZ X1,RDW8 IF RECOVERING AN ERROR ON PREVIOUS PRU SA1 RDWA SB7 X1 ZR X5,RDW1 IF NO WORDS TO DEBLOCK FROM LAST PRU SA1 X2-WRD WORDS IN BLOCK IX6 X1-X5 SB7 X5 RESET WORDS NEEDED EQ RDW10 COMPLETE MESSAGE * PROCESS READ ERRORS BY IGNORING THE BEGINNING OF AN * INCOMPLETE MESSAGE, THE SECTOR WITH THE READ * ERROR AND THE END OF A MESSAGE WHICH STARTS IN THE * BAD SECTOR. * PROCESS A RECOVERY SECTOR. RDW7 SA1 RDWE SB2 RSMC *RECOVERY SECTOR.* BX7 X7-X7 SA7 A1 NZ X1,RDW8 IF BEGINNING SECTOR RJ GEM GENERATE ERROR MESSAGE RDW8 SA1 RDWF RESET POINTERS TO FIRST MESSAGE BX7 X7-X7 CLEAR READ ERROR FLAG MX0 12 BX3 X0*X1 CHECK RECOVERY WORD FORMAT LX3 12 SA0 =C$ MAINLOG - *BML* FORMAT INCORRECT.$ SX3 X3-4000B NZ X3,ERR IF FORMAT INCORRECT SA7 EFFG LX0 12 DECREMENT WORD COUNT SA5 X2-WRD BX3 X0*X1 SX7 X3-1 IX6 X5-X7 SA6 A5 RJ UOP SA1 RDWB RESET START CONDITIONS SA5 RDWC SB6 X1 SB7 X5 EQ RDW1 START NEW MESSAGE * PROCESS READ ERROR. RDW9 SX7 B1 SET READ ERROR FLAG SA3 RDWC RESET WORKING BUFFER SA7 EFFG SB7 X3 SA1 X2-WRD SX7 X1+B1 RJ UOP UPDATE OUT POINTER SB2 REMC *DATA LOST.* RJ GEM GENERATE ERROR MESSAGE EQ RDW4 RETRY RDWA CON 0 NUMBER OF WORDS LEFT TO TRANSFER RDWB CON 0 FWA OF WORKING STORAGE BUFFER RDWC CON 0 LENGTH OF WORKING STORAGE BUFFER RDWD CON 0 MESSAGE WORD LENGTH RDWE CON 1 SKIP FIRST RECOVERY SECTOR RDWF CON 0 PRU LINKAGE WORD RIF SPACE 4,15 ** RIF - READ INPUT FILE FOR NEXT MESSAGE. * * ENTRY (DFTY) = DAYFILE TYPE. * * EXIT (X1) = 0, IF MESSAGE READ. * (X1) .LT. 0, IF EOF/EOI ENCOUNTERED. * (B6) = FWA OF MESSAGE READ. * (B7) = LENGTH OF MESSAGE READ. * * USES X - 2. * A - 2. * B - 6, 7. * * MACROS INPUTC, INPUTW. RIF SUBR ENTRY/EXIT SA2 DFTY CHECK MESSAGE TYPE SX2 X2-MLTY ZR X2,RIF1 IF PROCESSING BML INPUTC I,WBUF,WBUFL READ ONE CODED MESSAGE EQ RIF2 SET EXIT CONDITIONS RIF1 INPUTW I,WBUF,WBUFL READ ONE BML MESSAGE RIF2 SB7 B6-WBUF SET MESSAGE LENGTH SB6 WBUF SET FWA OF MESSAGE EQ RIFX EXIT SRM SPACE 4,20 ** SRM - SEARCH FOR MESSAGE. * THREE WORDS ARE EXAMINED. * * ENTRY CURRENT MESSAGE IN WORKING BUFFER. * (WBUF) = FWA OF CURRENT MESSAGE. * (SEMS - SEMS+2) = CRITERION MESSAGE. * (SEMA - SEMA+2) = CRITERION MESSAGE MASK. * (SEWI) = STARTING MESSAGE SEARCH WORD INDEX. * I = IN FET. * * EXIT (X4) = 0, IF MESSAGE FOUND. * .NE. 0, IF NOT FOUND. * * USES X - 1, 2, 3, 4, 6. * A - 1, 2, 3. SRM SUBR ENTRY/EXIT SA1 SEWI READ STARTING SEARCH INDEX SA1 X1+WBUF COMPARE LINE SA2 SEMS SA3 SEMA BX1 X1-X2 BX4 X3*X1 SA1 A1+B1 SA2 A2+B1 NZ X4,SRMX IF NO COMPARE ZR X2,SRM1 IF END OF MESSAGE SA3 A3+B1 BX1 X1-X2 BX4 X3*X1 SA1 A1+B1 NZ X4,SRMX IF NO COMPARE SA2 A2+B1 SA3 A3+B1 ZR X2,SRM1 IF END OF MESSAGE BX1 X1-X2 BX4 X3*X1 NZ X4,SRMX IF NO COMPARE SRM1 SA1 SEJN CHECK JOB NAME ZR X1,SRMX IF NO JOB NAME SET SA2 WBUF+1 CHECK JOBNAME FIELD OF DAYFILE MX6 24 LX6 48 BX3 X1-X2 BX4 X6*X3 ZR X4,SRMX IF NAMES MATCH SX4 B1 INDICATE MESSAGE NOT FOUND EQ SRMX RETURN TSF SPACE 4,15 ** TSF - TERMINATE SEARCH FILE. * * SET PROPER PAGINATION FLAG, ISSUE MESSAGE IF *FROM NOT * FOUND*, DUMP TO OUTPUT FILE FROM *SCR1*. * * USES X - 1, 2, 5. * A - 1. * B - 7. * * MACROS READEI, READW, REWIND, WRITEC, WRITER, WRITEW. TSF SUBR ENTRY/EXIT WRITER S INITIATE SEARCH FILE READ PROCESSING REWIND X2 TSF1 SA1 DFTY SX5 B SX1 X1-MLTY ZR X1,TSF2 IF BINARY FILE SX5 O SA1 JTOP NZ X1,TSF2 IF JOB TERMINATION SPECIFIED SA1 SFOP DETERMINE IF OP=I SPECIFIED SA2 =1LI BX2 X1-X2 ZR X2,TSF2 IF OP=I SPECIFIED SA1 FRFO NZ X1,TSF2 IF *FR* FOUND SA1 IOUT NZ X1,TSFX IF NOT TERMINAL OUTPUT WRITEC X5,(=C/ *FR* NOT FOUND./) TSF2 READEI S TSF2.1 SA1 INTR NZ X1,DAF5 IF TERMINAL INTERRUPT READW S,WBUF,WBUFL NG X1,TSF3 IF EOF WRITEW X5,WBUF,WBUFL EQ TSF2.1 CONTINUE READING TSF3 SB7 B6-WBUF WRITEW X5,WBUF,B7 EQ TSFX RETURN UOP SPACE 4,20 ** UOP - UPDATE OUT POINTER. * * ENTRY (X7) = NUMBER OF WORDS TO UPDATE OUT POINTER BY. * (X2) = FET ADDRESS. * * EXIT OUT POINTER IN FET UPDATED. * * USES X - 0, 1, 3, 6. * A - 1, 3, 6. UOP SUBR ENTRY/EXIT MX0 18 SA1 X2+3 READ OUT POINTER LX0 18 SA3 A1+B1 READ LIMIT IX6 X1+X7 BX3 X0*X3 IX1 X6-X3 NG X1,UOP1 IF NO WRAP AROUND SA3 X2+B1 READ FIRST BX3 X0*X3 IX6 X3+X1 UOP1 SA6 A1 EQ UOPX RETURN WBF SPACE 4,15 ** WBF - WRITE BINARY FILE. * * ENTRY (X0) = NUMBER OF WORDS IN BINARY MESSAGE. * (X5) = FET ADDRESS. * * EXIT BINARY MESSAGE WRITTEN TO INDICATED FILE. * CYBER RECORD MANAGER *W-WORD* PREFIXED TO MESSAGE, * IF NOT WRITTEN TO SEARCH FILE. * * USES X - 1, 2, 3, 6. * A - 1, 6. * * MACROS WRITEW. WBF SUBR ENTRY/EXIT * BUILD *W-WORD*. SA1 WCWD SET BACKWARD LINK = OLD FORWARD LINK + 1 SX2 X1+B1 LX2 41-17 SA1 WBUF SET FORWARD LINK = LENGTH FROM HEADER WORD MX3 12 BX6 X3*X1 LX6 11-59 BX6 X2+X6 CX1 X6 SET PARITY BIT MX3 1 LX1 59-0 BX1 X3*X1 BX1 X3-X1 BX6 X1+X6 SA6 WCWD INCLUDE NEW *W-WORD* IN RECORD WRITTEN * WRITE BINARY MESSAGE. WRITEW X5,WBUF-1,B7+1 EQ WBFX RETURN WCF SPACE 4,15 ** WCF - WRITE CODED FILE. * * ENTRY (X5) = FET ADDRESS. * * EXIT CODED LINE WRITTEN TO INDICATED FILE. * PAGINATION SUPPLIED IF NEEDED. * * USES X - 0, 1, 2, 3, 6, 7. * A - 1, 2, 3, 6, 7. * * CALLS CDD, SFN. * * MACROS WRITEC, WRITEW. WCF SUBR ENTRY/EXIT * PROCESS DOUBLE SPACE CONTROL. SA1 JTOP NZ X1,WCF2 IF JOB TERMINATION SPECIFIED SA1 LISF NZ X1,WCF2 IF OUTPUT NOT PAGINATED SA1 SFOP CHECK FOR *OP=I* SA2 =1LI BX2 X1-X2 ZR X2,WCF0 IF *OP=I* SA1 FRFO ZR X1,WCFX IF *FR* NOT FOUND WCF0 SA1 PLPP PL X1,WCF1 IF SPACE CONTROL NOT REQUIRED SA2 WBUF INSERT DOUBLE SPACE SA3 WCFA MX0 6 BX6 -X0*X2 BX6 X6+X3 SA6 A2 * PROCESS PAGE EJECT. WCF1 SA2 LINE ADVANCE LINE NUMBER SX3 X1 LINE LIMIT SX6 X2+B1 IX7 X3-X6 SA6 A2 PL X7,WCF2 IF NOT END OF PAGE SX6 3 RESET LINE NUMBER SA1 PAGE ADVANCE PAGE NUMBER SA6 A2 SX6 X1+B1 SX1 X1+B1 SA6 PAGE RJ CDD CONVERT PAGE NUMBER SA2 WCFB SA1 WBUF SET PAGE INDEX MX0 2*6 BX6 X2-X6 SA2 INDX LX0 6 SA6 PGNO BX7 -X0*X1 BX2 X0*X2 BX1 X7+X2 RJ SFN SA6 INDX SA3 DENC BX6 X6-X6 SA1 PLPP LX1 59-35 SET DENSITY CONTROL SA6 A3 DISABLE USE OF PRINT DENSITY MX0 2*6 BX7 X0*X1 SA7 DENF WRITEW X5,DENF,X3 CONDITIONALLY WRITE PRINT DENSITY WRITEW X5,HEDR,HEDRL WRITE TITLE * LIST DAYFILE LINE. WCF2 WRITEC X5,WBUF WRITE CODED LINE EQ WCFX RETURN WCFA CON 1L0 WCFB CON 6L PAGE &6L WOF SPACE 4,30 ** WOF - WRITE MESSAGE TO OUTPUT FILE. * * ENTRY (B6) = FWA OF MESSAGE. * (B7) = LENGTH OF MESSAGE. * (DFTY) = DAYFILE TYPE. * (FROM) .EQ. 0 IF FULL DUMP BEING PROCESSED. * (FROM) .NE. 0 IF PARTIAL DUMP. (SEARCH MESSAGE FOR * MESSAGE STRING.) * * EXIT MESSAGE WRITTEN TO OUTPUT FILE. * (FRFO) = 1, IF MESSAGE SEARCH STRING FOUND IN CURRENT * MESSAGE. OTHERWISE, (FRFO) IS UNCHANGED * FROM ENTRY. * * USES X - 1, 4, 5, 6, 7. * A - 1, 4, 6, 7. * * CALLS SRM, WBF, WCF. * * MACROS REWIND. WOF SUBR ENTRY/EXIT SA1 INTR NZ X1,DAF5 IF TERMINAL INTERRUPT ZR B7,WOFX IF NO MESSAGE SA1 DFTY SX1 X1-MLTY SX5 O SET FET = CODED OUT-FILE NZ X1,WOF1 IF NOT BINARY FILE SX5 B SET FET = BINARY OUT-FILE WOF1 SA1 FROM ZR X1,WOF3 IF SEARCH NOT NEEDED RJ SRM SEARCH FOR MESSAGE SX5 S SET FET = SEARCH FILE NZ X4,WOF3 IF SEARCH FILE NOT FOUND SA1 CMFG SA4 I-WRD ZR X1,WOF2 IF NOT PROCESSING CM BUFFER ZR X4,WOF3 IF NO MORE DATA IN BUFFER WOF2 REWIND X5,R SA1 LISV RESTORE LIST FLAG SX6 B1 SET *FOUND* BX7 X1 SA6 DENC SA6 FRFO SA1 WCWC BML LINK RECOVERY SA7 LISF SX6 PLEN RESET LINE COUNT BX7 X7-X7 RESET PAGE COUNT SA6 LINE SA7 PAGE BX6 X1 SA6 WCWD WOF3 SA1 DFTY SX1 X1-MLTY NZ X1,WOF4 IF NOT BINARY FILE RJ WBF WRITE BINARY FILE EQ WOFX RETURN WOF4 RJ WCF WRITE CODED FILE EQ WOFX RETURN WUP SPACE 4,20 ** WUP - WRAP UP PROCESSING. * * ENTRY (INAM) = 0, IF PROCESSING ACTIVE DAYFILE. * .NE. 0, IF PROCESSING LOCAL FILE. * (FRFO) = 0, IF *FR* MESSAGE NOT FOUND. * .NE. 0, IF FOUND. * (INAM) = 0, IF PROCESSING ACTIVE DAYFILE. * .NE. 0, IF PROCESSING LOCAL COPY OF DAYFILE. * * EXIT FILES RETURNED. * *NOT FOUND* MESSAGE ISSUED IF NECESSARY. * * USES X - 1, 2, 5, 6. * A - 1, 2, 5, 6. * B - 7. * * MACROS RETURN. WUP SUBR ENTRY/EXIT SA1 FRFO NZ X1,WUP1 IF STRING FOUND SA1 SFOP SUPPRESS *NOT FOUND* MESSAGE IF OP=I SET LX1 5-59 SX1 X1-1RI ZR X1,WUP1 IF OP=I SET MESSAGE (=C/ *FR* NOT FOUND./) WUP1 RETURN S SA1 INAM NZ X1,WUPX IF I=LFN SPECIFIED RETURN I EQ WUPX RETURN SPACE 4,10 ** COMMON DECKS. *CALL COMCCDD *CALL COMCCIO *CALL COMCLFM *CALL COMCMVE *CALL COMCRDC *CALL COMCRDO *CALL COMCRDW *CALL COMCSFM *CALL COMCSFN *CALL COMCSTF *CALL COMCSYS *CALL COMCWTC *CALL COMCWTO *CALL COMCWTW TITLE SPECIAL ENTRIES AND BUFFERS. * SPECIAL ENTRY POINTS. ARG= BSS 0 DISABLE ARGUMENT CRACKING * BUFFERS. USE BUFFERS SEG SPACE 4,15 ** *W* CONTROL WORD. * *T W-WORD 1/P,1/F,1/D,13/,2/C,18/ B-LINK,6/,18/ F-LINK * * P = PARITY BIT (MAINTAINS ODD PARITY OF WORD). * F = RECORD FLAG (0 = NORMAL RECORD). * D = DELETE BIT (0 = ACTIVE RECORD). * C = CONTINUATION FLAGS (0 = COMPLETE RECORD). * B-LINK = BACKWARD LINK (WORD COUNT OF PREVIOUS RECORD + 1). * F-LINK = FORWARD LINK (WORD COUNT NOT INCLUDING *W* WORD). WCWC VFD 1/0,1/0,1/0,13/0,2/0,18/0,6/0,18/-1 RECOVERY WCWD VFD 1/0,1/0,1/0,13/0,2/0,18/0,6/0,18/-1 WBUF EQU WCWD+1 WORKING BUFFER (MUST FOLLOW W-WORD) SBUF EQU WBUF+WBUFL SCRATCH BUFFER RBUF EQU SBUF+SBUFL REMAINDER CONCATINATION BUFFER BCWD EQU RBUF+WBUFL CIO CONTROL WORD FOR BML PRU-S CBUF EQU BCWD+1 BUFFER FOR CM PORTION OF DAYFILE IBUF EQU CBUF+CBUFL IN BUFFER OBUF EQU IBUF+IBUFL OUTPUT BUFFER EBUF EQU OBUF EST BUFFER - USED IN PRESET ONLY .RFL MAX OBUF+OBUFL,EBUF+EBUFL RFL= EQU .RFL REQUIRED FIELD LENGTH SPACE 4,10 ERRNG JTFL*100B-RFL= IF OVERFLOW MAXIMUM JOB TERMINATION FL PRS TITLE PRESET. ** PRS - PRESET. * 1. SET TERMINATION MESSAGE, PAGE TITLE. * 2. VALIDATE ACCESS TO DAYFILE. * 3. PROCESS THE COMMAND ARGUMENTS. * 4. DISABLE TERMINAL CONTROL IF NEEDED. * 5. SET PAGE TITLE INFORMATION IF NEEDED. * * ENTRY (X4) = ADDRESS OF SEARCH STRING FOR PARTIAL DUMP. * (DFTY) = DAYFILE TYPE. * (ENPT) = ENTRY POINT NAME. * * EXIT TO *ERR* IF ARGUMENT OR FORMAT ERROR. * * USES X - ALL. * A - 0, 1, 2, 3, 5, 6, 7. * B - 1, 2, 3, 4, 6, 7. * * CALLS ARM, CPA, CRN, DXB, FNB, IPP, OPN, PDR, SDO, * SSM, STF, USB. * * MACROS CLOCK, DATE, DISTC, EVICT, GETJN, MOVE, SYSTEM, * WRITEW. PRS SUBR ENTRY/EXIT SB1 1 SET CONSTANT MOVE 3,X4,IBUF * GET PAGE PARAMETERS. RJ IPP * PROCESS ARGUMENTS. PRS1 SB2 CCDR UNPACK COMMAND RJ USB SA1 A6+ ASSURE TERMINATION SX6 1R. SA3 B6 CHECK COMMAND LABEL PRESENT SA6 X1+B1 SA0 =C* ARGUMENT ERROR.* SA2 PRSB SET SEPARATOR MASK SB2 60 SET MAXIMUM NON-DELIMITER DISPLAY CODE SB7 ERR SET EXIT FOR TERMINATOR CHARACTER RJ FNB FIND NON-BLANK CHARACTER SX4 X1-1R0 MI X4,PRS3 IF NON-NUMERIC CHARACTER SX4 X1-1R9-1 PL X4,PRS3 IF NON-NUMERIC CHARACTER * SKIP *KCL* TAG. PRS2 RJ FNB FIND NON-BLANK CHARACTER SB4 B5-B2 LX4 X2,B5 PL B4,PRS3 IF SEPARATOR CHARACTER PL X4,PRS2 IF NOT SEPARATOR CHARACTER * SKIP POSSIBLE INITIAL SPECIAL CHARACTER OR DELIMITER. PRS3 RJ FNB FIND NON-BLANK CHARACTER * SKIP PROGRAM NAME. SB7 PRS8 SET EXIT FOR TERMINATOR CHARACTER PRS4 RJ FNB FIND NON-BLANK CHARACTER SB4 B5-B2 LX4 X2,B5 PL B4,PRS5 IF SEPARATOR CHARACTER PL X4,PRS4 IF NOT SEPARATOR CHARACTER * PROCESS ARGUMENTS. PRS5 SA1 ENPT SET ARGUMENT TABLE ADDRESS AND LENGTH SA1 PRSD+X1-GLTY UX1,B2 X1 UNPACK ARGUMENT TABLE VALUES SB3 X1 SB4 PRSA CONVERT POSITIONAL ARGUMENTS RJ CPA SA0 =C* ARGUMENT ERROR.* NG B5,ERR IF ERROR PL X1,PRS8 IF NO ARGUMENTS PROCESSED SX6 B5 SET LWA OF ARGUMENTS SB6 PRSA SET FWA OF ARGUMENTS SA6 USBC RJ ARM PROCESS ARGUMENTS NZ X1,ERR IF ERROR MX0 42 CHECK FOR RESERVED FILE SA0 =C* RESERVED FILE NAME.* SA3 O BX4 X3*X0 RJ CRN ZR X7,ERR IF RESERVED FILE NAME * SET DEFAULT *OP*. PRS8 SA1 JTOP NZ X1,PRS9 IF JOB TERMINATION OPTION SPECIFIED SX2 O CHECK FOR TERMINAL OUTPUT FILE RJ STF SA6 IOUT SAVE OUTPUT FILE TYPE SX7 B1 NZ X6,PRS9 IF NOT TERMINAL OUTPUT FILE SA7 LISF SET NON-PAGINATED OUTPUT FLAG SA7 PLPP SET PAGE SIZE SA1 SEMS NZ X1,PRS9 IF *FR* OPTION SPECIFIED SA1 SFOP LX1 59-0 PL X1,PRS9 IF *OP* OPTION SPECIFIED SX6 1RI SET *OP=I* AS DEFAULT LX6 -6 SA6 A1 * PROCESS SEARCH OPTION. PRS9 RJ SDO SET DUMP OPTIONS ZR X5,PRS12 IF NOT PARTIAL DUMP SX6 B1 SET PARTIAL DUMP AX5 1 CHECK FOR INCREMENTAL DUMP SA6 FROM NZ X5,PRS11 IF NOT INCREMENTAL DUMP SA1 DFTY SX1 X1-MLTY ZR X1,PRS10 IF PROCESSING MAINTENANCE LOG MOVE 3,IBUF,SEMS SET SEARCH MESSAGE EQ PRS11 SET SEARCH MASK PRS10 SA1 IBUF+1 SET MAINTENANCE LOG SEARCH MESSAGE BX6 X1 SA6 SEMS PRS11 RJ SSM SET SEARCH MASK SA1 SFOP DETERMINE IF OP=J SPECIFIED SA2 =1LJ BX2 X1-X2 NZ X2,PRS12 IF NOT SPECIFIED SA1 SEMA ADJUST MASK LX1 48 BX6 X1 SA6 A1 SA1 SEMS ADJUST SEARCH STRING LX1 48 RJ SFN SA6 A1 * DISABLE TERMINAL CONTROL. PRS12 SA5 JOPR CHECK JOB ORIGIN MX0 -12 LX5 -24 BX5 -X0*X5 SB7 X5-IAOT NZ B7,PRS13 IF NOT TERMINAL ORIGIN DISTC ON,INTR PRS13 SA1 IOUT ZR X1,PRS17 IF INTERACTIVE TERMINAL OUTPUT * PROCESS PAGINATION ARGUMENTS. SA5 PDEN CONVERT PRINT DENSITY SB7 B1 ASSUME DECIMAL BASE SX6 X5 SAVE *ARGUMENT GIVEN* FLAG BX5 X5-X6 SB6 X6 RJ DXB SA0 =C* INCORRECT PRINT DENSITY FORMAT.* NZ X4,ERR IF FORMAT ERROR SA0 =C* INCORRECT PRINT DENSITY.* SB2 X6-3 SB3 X6-4 ZR B2,PRS14 IF 3 LPI SB2 X6-6 ZR B3,PRS14 IF 4 LPI SB3 X6-8 ZR B2,PRS14 IF 6 LPI NZ B3,ERR IF NOT 8 LPI PRS14 SA5 PLPP CONVERT PAGE SIZE SA6 PDEN STORE PRINT DENSITY SX7 X5+ UPDATE *ARGUMENT GIVEN* FLAG BX5 X5-X7 SB6 B6+X7 RJ DXB SA1 PDEN FIND SPACING CHARACTERISTICS SA0 =C* INCORRECT PAGE SIZE FORMAT.* SA2 TPAS-1+X1 NZ X4,ERR IF FORMAT ERROR BX7 X2 ZR X6,PRS15 IF PAGE SIZE NOT SPECIFIED MX1 -17 BX6 -X1*X6 REPLACE PAGE SIZE BX7 X1*X7 PL X7,PRS14.1 IF NOT DOUBLE SPACE AX6 1 DIVIDE PAGE SIZE BY 2 FOR DOUBLE SPACE PRS14.1 BX7 X6+X7 PRS15 SA7 PLPP SET PAGE SIZE SB6 B6-2 CHECK *PD* OR *PL* SPECIFIED ZR B6,PRS16 IF NEITHER *PD* NOR *PL* SPECIFIED SX6 0 SET PAGINATION SA6 LISF EQ PRS17 SET UP TITLE INFORMATION PRS16 SA1 O CHECK IF OUTPUT SA2 =0LOUTPUT MX0 42 BX6 X1-X2 BX7 X0*X6 SA7 LISF SET LIST FLAG * SET PAGE TITLE INFORMATION. PRS17 SA1 FROM SET DUMP MODE ZR X1,PRS18 IF FULL DUMP SA1 =10H1 PARTIAL SA2 LISF SAVE LIST FLAG BX6 X1 BX7 X2 SA6 MODE SA7 LISV BX7 X7-X7 SET *NOT FOUND* SA7 FRFO PRS18 DATE DATE SET DATE CLOCK TIME SET TIME EVICT S EVICT SCRATCH FILES SA1 INAM NZ X1,PRS19 IF I=LFN SPECIFIED EVICT I,R * PROCESS JOB TERMINATION OPTION. PRS19 SA1 JTOP CHECK JOB TERMINATION FLAG ZR X1,PRS21 IF NOT ENTERED FILINFO PRSE CHECK FILE TYPE OF *OUTPUT* SA1 PRSE+1 MX0 -6 BX1 -X0*X1 ZR X1,PRS19.3 IF LOCAL FILE TYPE SX2 X1-2 ZR X2,PRS19.3 IF QUEUED FILE TYPE SX2 X1-6 ZR X2,PRS19.3 IF PRIMARY FILE TYPE RETURN O,R RETURN *OUTPUT* PRS19.3 GETJN JSNP SET JSN IN END OF JOB HEADER SX2 O RJ STF CHECK RESIDENCY OF OUTPUT FILE NZ X6,PRS19.5 IF NOT TERMINAL FILE RETURN X2,R SETFET X2,(DTY==2ROT) REQUEST X2,U,N MAKE SURE OUTPUT GOES TO DISK PRS19.5 SYSTEM RSB,R,PRSC SET TITLE AND VERSION IN END OF JOB HEADER SA1 JSNP SA2 =2L1 LX1 60D-12D RJ SFN BX6 X6+X2 SA6 JSNP DATE DAT2 PUT DATE IN END OF JOB HEADER CLOCK TIM2 SET END OF JOB TIME SX0 TITL SPACE FILL TITLE AND VERSION DATA SX5 6 PRS20 SA1 X0 READ NEXT WORD OF TITLE RJ SFN SPACE FILL WORD SX0 X0+B1 SA6 A1 SX5 X5-1 NZ X5,PRS20 IF NOT ALL WORDS SPACE FILLED YET WRITEW O,HDR2,HDR2L WRITE END OF JOB HEADER SA1 JTOP RESTORE *JT* OPTION TO REGISTER RJ PDR PROCESS DEFERRED ROUTE * WRITE *EST* FILE, IF *GETLOG* RUN. PRS21 SA1 ENPT CHECK ENTRY POINT SX1 X1-GLTY NZ X1,PRS22 IF NOT *GETLOG* RJ WEF WRITE EST TO FILE PRS22 EQ PRSX RETURN PRSA BSS 200 PRSB CON 40000000000033127777B SEPARATOR CHARACTER MASK PRSC VFD 12/0,12/6,18/SYTL,18/TITL PARAMETERS FOR RSB CALL PRSD BSS 0 ARGUMENT TABLE PARAMETERS LOC GLTY GLTY VFD 12/2000B+TGTLL,48/TGTL *GETLOG* ACTY VFD 12/2000B+TCODL,48/TCOD *AFD* UDTY VFD 12/2000B+TCODL,48/TCOD *DAYFILE* SDTY VFD 12/2000B+TCODL,48/TCOD *DFD* ELTY VFD 12/2000B+TCODL,48/TCOD *ELD* MLTY VFD 12/2000B+TMLGL,48/TMLG *MAINLOG* LOC *O PRSE VFD 42/6LOUTPUT,6/5,11/0,1/1 BSS 4 TGTL SPACE 4,10 ** TGTL - *GETLOG* PARAMETERS. TGTL BSS 0 L ARG ST,O,0,0 *ERRLOG* FILENAME OP ARG 0,SFOP,0,1 OPTIONS I ARG ST,INAM,0,0 *BML* INPUT FILENAME B ARG ST,BNAM,0,0 *BML* FILENAME E ARG ST,E,0,0 *EST* FILENAME ARG TERMINATOR TGTLL EQU *-TGTL-1 LENGTH OF ARGUMENT TABLE TMLG SPACE 4,10 ** TMLG - *MAINLOG* PARAMETERS. TMLG BSS 0 VFD 6/1R ,54/ NO ARGUMENT - PLACE HOLDER FR ARG 0,SEMS,400B,3 *FROM* OPTION OP ARG 0,SFOP,0,1 OPTIONS VFD 6/1R ,54/0 NO ARGUMENT - PLACE HOLDER VFD 6/1R ,54/0 NO ARGUMENT - PLACE HOLDER I ARG ST,INAM,0,0 *BML* INPUT FILENAME B ARG ST,BNAM,0,0 *BML* FILENAME ARG TERMINATOR TMLGL EQU *-TMLG-1 LENGTH OF ARGUMENT TABLE TCOM SPACE 4,10 ** TCOD - CODED PARAMETERS. * * THIS TABLE IS USED BY THE CODED DAYFILE PROCESSORS. TCOD BSS 0 L ARG ST,O,0,0 OUTPUT FILENAME FR ARG 0,SEMS,400B,3 *FROM* OPTION OP ARG 0,SFOP,0,1 OPTIONS PD ARG 0,PDEN,0,1 PRINT DENSITY PL ARG 0,PLPP,400B,1 PAGE LENGTH I ARG ST,INAM,0,0 INPUT FILENAME JT ARG JTOP,JTOP,0,0 JOB TERMINATION OPTION ARG TERMINATOR TCODL EQU *-TCOD-1 LENGTH OF ARGUMENT TABLE ST CON 3 DEFAULT FET STATUS TPAS SPACE 4,10 ** TPAS - TABLE OF PAGE SIZE PARAMETERS. * INDEXED BY PRINT DENSITY VALUE. * ONE WORD ENTRY IN FORM - * *T 1/A,23/ ,18/ FMT,18/ DIV INITIAL FORM * *T 1/A,23/ ,18/ FMT,18/ PAGE FINAL FORM * * WHERE A = 1 IF DOUBLE SPACING IS NEEDED. * FMT = PRINT DENSITY FORMAT CONTROL CHARACTER. * PAGE = NUMBER OF LINES PER PAGE FOR THIS DENSITY. * DIV = DIVISOR FOR JOB DEFAULT PAGE SIZE. TPAS BSS 0 LOC 1 CON 0 CON 0 VFD 1/1,23/0,18/2LS ,18/2 VFD 1/1,23/0,18/2LT ,18/2 CON 0 VFD 1/0,23/0,18/2LS ,18/1 CON 0 VFD 1/0,23/0,18/2LT ,18/1 LOC *O CON -0 END OF LIST CDP SPACE 4,15 ** CDP - CONVERT DISPLAY TIME TO PACKED TIME. * * ENTRY (SEMS) = DISPLAY TIME (10H HH.MM.SS.). * * EXIT (SEMS) = PACKED TIME (VFD 42/0,18/HHMMSS). * TO *ERR* IF CONVERSION ERROR. * * USES X - 1, 2, 3, 5, 6. * A - 0, 1, 2, 3, 6. * B - 4, 6, 7. * * CALLS DXB. CDP SUBR ENTRY/EXIT SB6 3 INITIALIZE TABLE INDEX SB7 1 SET DECIMAL CONVERSION FLAG CDP1 SB6 B6-1 EXTRACT 2 DISPLAY DIGITS SA1 SEMS SA2 CDPA+B6 SA3 CDPB+B6 BX5 X2*X1 SB4 X3+ LX5 B4,X5 RJ DXB CONVERT DISPLAY CODE TO BINARY SA0 =C/ *FR* TIME VALUE INCORRECT./ NZ X4,ERR IF CONVERSION ERROR SA1 CDPC MERGE CONVERTED DIGITS LX1 6 BX6 X1+X6 SA6 A1+ NZ B6,CDP1 IF MORE SA6 SEMS SET PACKED TIME EQ CDPX RETURN CDPA VFD 42/0,12/7777B,6/0 MASK TABLE VFD 24/0,12/7777B,24/0 VFD 6/0,12/7777B,42/0 CDPB CON 42D SHIFT TABLE CON 24D CON 6D CDPC BSSZ 1 CONVERSION AREA CRN SPACE 4,15 ** CRN - CHECK RESERVED NAME. * * ENTRY (X4) = LEFT JUSTIFIED FILE NAME. * (A3) = FET ADDRESS OF FILE BEING CHECKED. * * EXIT (X7) = 0, IF RESERVED NAME. * * USES X - 1, 2, 3, 7. * A - 1. * B - 2, 3, 5. CRN SUBR SB2 I-FETL SB5 A3 SB3 S MX3 42 SX7 B1 INDICATE NOT RESERVED BX4 X3*X4 ZR X4,CRNX IF ZERO FILE NAME SPECIFIED CRN1 SB2 B2+FETL INCREMENT FET ADDRESS EQ B2,B5,CRN1 IF FET BEING CHECKED GT B2,B3,CRNX IF SEARCH COMPLETE SA1 B2 SET FET FILENAME BX2 X3*X1 BX7 X2-X4 NZ X7,CRN1 IF NOT A MATCH EQ CRNX RETURN FNB SPACE 4,20 ** FNB - FIND NON-BLANK CHARACTER. * * ENTRY (B6) = NEXT CHARACTER ADDRESS. * (B7) = EXIT ADDRESS, IF TERMINATOR ENCOUNTERED. * * EXIT (X1) = (B5) = NEXT NON-BLANK CHARACTER. * (B6) = NEXT CHARACTER ADDRESS (UPDATED). * EXIT IS MADE TO (B7), IF TERMINATOR ENCOUNTERED. * * USES X - 1, 4. * A - 1. * B - 5, 6. FNB SUBR ENTRY/EXIT FNB1 SA1 B6 GET NEXT CHARACTER SB6 B6+B1 SX4 X1-1R ZR X4,FNB1 IF BLANK CHARACTER SB5 X1+ SX4 X1-1R. ZR X4,FNB2 IF TERMINATOR CHARACTER SX4 X1-1R) NZ X4,FNBX IF NOT TERMINATOR CHARACTER, RETURN FNB2 JP B7 TERMINATOR CHARACTER IPP SPACE 4,20 ** IPP - INITIALIZE PAGE PARAMETERS. * * ENTRY NONE. * * EXIT TABLE *TPAS* SET UP WITH JOB PAGE SIZE. * (PDEN) = JOB DEFAULT PRINT DENSITY. * (RFMT) = JOB DEFAULT PRINT DENSITY. * * USES A - 1, 2, 6, 7. * B - 6. * X - 0, 1, 2, 6, 7. * * MACROS GETPP. IPP SUBR ENTRY/EXIT GETPP IPPA,IPPB,PDEN GET PAGE PARAMETERS SA1 PDEN PRINT DENSITY SYMBOL SX6 1R LX6 54-6 BX6 X1+X6 SA6 RFMT SET RESTORE DENSITY LX1 6 SX1 X1-1RS+6/2 NUMERIC PRINT DENSITY LX1 1 SX7 X1+1BS6+1R6-6 FORM DISPLAY CODE EQUIVALENT LX7 59-5 SA7 A1 SA2 IPPB GET JOB PAGE SIZE SA1 TPAS SET UP PAGE SIZE TABLE MX0 42 IPP1 SB6 X1-1 DIVISOR - 1 = SHIFT COUNT NG B6,IPP2 IF UNUSED WORD BX1 X0*X1 AX6 B6,X2 BX6 X1+X6 SA6 A1 STORE ACTUAL LINE COUNT IPP2 SA1 A1+B1 GET NEXT WORD IN TABLE NZ X1,IPP1 IF WORD IN USE PL X1,IPP2 IF UNUSED WORD EQ IPPX RETURN IPPA BSSZ 2 GETPAGE RESPONSE BLOCK IPPB CON 0 TEMPORARY STORAGE FOR PAGE SIZE PDR SPACE 4,20 ** PDR - PROCESS DEFERRED ROUTE OF FILE. * * POSITIONS FILE TO *EOI* IF JOB TERMINATION IN * PROGRESS. SETS RANDOM ADDRESS IN *DSP* PARAMETER * BLOCK. * * ENTRY (X1) = *JT* PARAMETER OPTION. * * EXIT TO ERR IF PARAMETER ERROR. * * USES X - 1, 2, 6. * A - 0, 1, 2, 6. * * MACROS GETEOJS, SKIPEI. PDR SUBR ENTRY/EXIT SA2 DFTY GET DAYFILE PROGRAM CALL CODE SA0 =C* ARGUMENT ERROR.* PRESET ERROR MESSAGE SX2 X2-UDTY NZ X2,ERR IF NOT USER DAYFILE CALL LX1 6 SX2 1RD CHECK OPTION DEFINED BX2 X2-X1 SA0 =C* INCORRECT JOB TERMINATION OPTION.* NZ X2,ERR IF NOT *D* OPTION * CHECK IF END OF JOB PROCESSING. GETEOJS PDRB GET END OF JOB STATUS SA1 PDRB READ REPLY WORD SA2 PDRA+1 SX6 X1-100B CHECK FOR TERMINATION IN PROGRESS NG X6,PDR1 IF TERMINATION NOT IN PROGRESS MX6 -12 CLEAR DISPOSITION CODE AND ASSOCIATED BIT SX1 21B LX6 24 BX6 X6*X2 BX6 X6-X1 SA6 A2 RESET ROUTING INFORMATION * SET UP *DSP* BLOCK FOR *ROUTE* REQUEST. PDR1 SA1 O GET FILE NAME MX6 -18 SET NAME IN PARAMETER BLOCK BX6 X6*X1 SA6 PDRA SKIPEI O,R SKIP TO END OF INFORMATION SA1 O+6 SET CURRENT RANDOM INDEX IN *DSP* BLOCK MX0 30 BX6 X0*X1 LX6 -6 SA6 PDRA+7 * CLEAR PAGINATION AS DEFAULT. SX6 -1 CLEAR PAGINATION SA6 LISF EQ PDRX RETURN PDRB CON 0 *GETEOJS* REPLY WORD SDO SPACE 4,25 ** SDO - SET DUMP OPTIONS. * * ENTRY (SFOP) = OPTION. * (DFTY) = DAYFILE TYPE. * (EMSG) = SET WITH DAYFILE CODE. * (SEWI) = WORD INDEX OF MESSAGE FIELD FOR THIS DAYFILE. * (SEMS) = SEARCH MESSAGE OPTION. * * EXIT (SEWI) = SEARCH WORD INDEX. * (SFOP) = DUMP OPTION. * (X5) .EQ. 0, IF FULL DUMP. * .EQ. 1, IF INCREMENTAL DUMP. * .GT. 1, IF PARTIAL DUMP. * TO ERR IF DUMP OPTION ERRORS. * * USES X - 0, 1, 2, 5, 6. * A - 0, 1, 2, 5, 6. * B - 7. * * MACROS GETJN. SDO SUBR ENTRY/EXIT SA1 SFOP CHECK ENTRERED OPTION SA0 =C/ UNKNOWN *OP* FIELD./ MX0 42 SA2 ENPT SX6 X2-GLTY ZR X6,SDO0.1 IF *GETLOG* SX2 X2-MLTY NZ X2,SDO0 IF PROCESSING CODED FILE SA5 SDOB-1 SET INDEX FOR BINARY FILE OPTION TABLE EQ SDO1 SEARCH TABLE SDO0 SA5 SDOA-1 SET INDEX FOR CODED FILE OPTION TABLE EQ SDO1 CONTINUE SDO0.1 SA5 SDOC-1 SET INDEX FOR *GETLOG* OPTION TABLE SDO1 SA5 A5+B1 SEARCH TABLE BX6 X5-X1 ZR X5,ERR IF INCORRECT OPTION BX6 X0*X6 NZ X6,SDO1 IF NO COMPARE BX6 -X0*X5 SET PROCESSOR ADDRESS SB7 X6+ SA5 SEMS SET *FR* OPTION JP B7 JUMP TO PROCESSOR SDO2 SX6 B0+ PROCESS T OPTION SA6 SEWI SET SEARCH WORD INDEX EQ SDO4 SDO3 SA1 SEWI PROCESS J OPTION SA0 =C* JOB FIELD DISALLOWED ON USER DAYFILE.* SX6 X1-1 ZR X6,ERR IF USER DAYFILE SA6 A1+ SDO4 SX5 B1+B1 SET PARTIAL DUMP EQ SDOX PROCESS M OPTION SDO5 SA0 =C/ *FR* INCORRECT FOR THIS OPTION./ PROCESS I OPTION NZ X5,ERR IF *FR* SPECIFIED SX5 B1 SET INCREMENTAL DUMP EQ SDOX SDO6 SA1 SEWI PROCESS P OPTION SA0 =C* JOB FIELD DISALLOWED ON USER DAYFILE.* SX1 X1-1 ZR X1,ERR IF USER DAYFILE GETJN SEJN SET JOBNAME SA1 SEJN SET JOBNAME TO CORRECT FORMAT LX1 48 BX6 X1 SA6 SEJN SDO6.1 SX6 1RI SET INCREMENTAL DUMP LX6 -6 SA6 SFOP EQ SDO5 PROCESS AS INCREMENTAL DUMP SDO7 ZR X5,SDOX IF *FR* NOT SELECTED SX6 1RM SET DEFAULT *OP* OPTION LX6 -6 SA6 SFOP EQ SDO4 SET PARTIAL DUMP OPTION SDO8 SA0 =C/ *OP* OPTION INCORRECT./ EQ ERR PROCESS ERROR SDO9 ZR X5,SDOX IF *FR* NOT SELECTED SA0 =C/ *FR* INCORRECT FOR THIS OPTION./ EQ ERR PROCESS ERROR * TABLE OF CODED FILE OPTION PROCESSORS. SDOA VFD 42/0LT,18/SDO2 T OPTION VFD 42/0LJ,18/SDO3 J OPTION VFD 42/0LM,18/SDO4 M OPTION VFD 42/0LI,18/SDO5 I OPTION VFD 42/0LP,18/SDO6 P OPTION VFD 42/0LF,18/SDO7 F OPTION CON 0 * TABLE OF BINARY FILE OPTION PROCESSORS. SDOB VFD 42/0LT,18/SDO2 T OPTION VFD 42/0LJ,18/SDO3 J OPTION VFD 42/0LM,18/SDO8 M OPTION VFD 42/0LI,18/SDO5 I OPTION VFD 42/0LP,18/SDO6 P OPTION VFD 42/0LF,18/SDO9 F OPTION CON 0 * TABLE OF *GETLOG* FILE OPTION PROCESSORS. SDOC VFD 42/0LF,18/SDO9 F OPTION VFD 42/0LP,18/SDO6.1 P OPTION CON 0 SSM SPACE 4,20 ** SSM - SET SEARCH MASK. * * ENTRY (SEMS - SEMS+2) = SEARCH CHARACTERS. * (DFTY) = DAYFILE TYPE. * (SFOP) = DUMP OPTION (*OP=*). * * EXIT (SEMA - SEMA+2) = SEARCH MASK. * * USES X - 1, 2, 3, 6, 7. * A - 1, 2, 3, 6, 7. * B - 2. * * CALLS CDP, SFN. SSM SUBR ENTRY/EXIT SA1 SEMS SA2 SFOP SA3 SSMA BX2 X2-X3 ZR X2,SSM3 IF OP=T OPTION SSM1 RJ SFN FIND MASK SA7 A1+SEMA-SEMS STORE MASK WORD SA1 A1+1 READ NEXT MESSAGE WORD NZ X7,SSM2 IF END OF MESSAGE NG X7,SSM1 IF NOT ZERO WORD EQ SSMX RETURN SSM2 BX6 X6-X6 TERMINATE MESSAGE SA6 A1 EQ SSMX RETURN SSM3 SA2 DFTY SX2 X2-MLTY NZ X2,SSM1 IF NOT DUMPING MAINTENANCE LOG RJ CDP CONVERT SEARCH DISPLAY TIME TO PACKED TIME SA1 SEMS BUILD MASK FOR PACKED TIME SB2 6 MX7 3 SSM4 LX7 3 BX2 X7*X1 SB2 B2-1 ZR B2,SSMX IF PACKED TIME FIELD EXHAUSTED ZR X2,SSM4 IF RIGHTMOST DIGIT NOT FOUND BX6 X6-X6 SSM5 BX6 X7+X6 LX7 3 SB2 B2-1 NZ B2,SSM5 IF PACKED TIME FIELD NOT EXHAUSTED SA6 SEMA EQ SSMX RETURN SSMA DATA 1LT OP=T TEST CHARACTER WEF SPACE 4,10 ** WEF - WRITE EST TO FILE. * * ENTRY FILENAME INSERTED IN FET. * * EXIT EST WRITTEN TO FILE. * * CALLS RSB=. * * MACROS PDATE, SYSTEM, WRITER. WEF SUBR SA1 E ZR X1,WEFX IF *E=0* SPECIFIED * READ EST INTO *EBUF*. SYSTEM RSB,R,WEFA READ *ESTP* SA2 WEFA+1 SET *COMCRSB* ENTRY CONDITIONS MX3 -12 SX1 EBUF+11B (X1) = ADDRESS TO TRANSFER TO AX2 24 BX3 -X3*X2 SX7 X3 AX2 12 (X2) = ADDRESS TO TRANSFER FROM SA7 WEFB SAVE LAST EST ORDINAL + 1 R= X6,ESTE IX3 X3*X6 (X3) = WORD COUNT SX4 B0 (X4) = SUBSYSTEM (= *CMR*) MX6 1 SA6 X1 RJ RSB= READ EST * SET HEADER INFORMATION. SA1 WEFB WORD 0 - EST LENGTH, ENTRY SIZE R= X6,ESTE IX5 X1*X6 SAVE EST LENGTH (WORDS) MX7 1 LX1 12 BX6 X6+X1 SA6 EBUF PDATE EBUF+2 WORD 2 - PACKED DATE/TIME SA7 EBUF+3 SYSTEM RSB,R,WEFC READ SYSTEM TITLE/VERSION INTO WORDS 3-10 * WRITE COMPLETED BUFFER TO *EST* FILE. SX6 X5+11B+EBUF SET EFFECTIVE *IN* VALUE IN FET SA6 E+2 WRITER E,R WRITE *EST* FILE EQ WEFX RETURN WEFA VFD 12/0,12/1,18/ESTP,18/*+1 *RSB* FOR *ESTP* VFD 1/1,59/ ESTP WEFB BSS 1 NUMBER OF EST ENTRIES WEFC VFD 12/0,12/6,18/SYTL,18/EBUF+3 *RSB* FOR TITLE/VERSION TITLE PRESET COMMON DECKS. ** COMMON DECKS. LIT CON 1 ALLOW LITERALS ON COMMAND QUAL$ EQU 1 DO NOT QUAL COMMON DECKS *CALL COMCARM *CALL COMCCPA *CALL COMCCPM *CALL COMCDXB *CALL COMCPOP *CALL COMCRSB *CALL COMCUSB ERRNG CBUF-*-1 IF *PRESET* OVERLAYS *CM BUFFER* END DAYFILE