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