*DECK DLFP
PRGM DLFP; # POST PROCESSOR FOR ZZZZZDN FILE FROM NAM#
*IF DEF,IMS
#
* DDDDDDDD LL FFFFFFFFFF PPPPPPPP
* DDDDDDDDD LL FFFFFFFFFF PPPPPPPPP
* DD DD LL FF PP PP
* DD DD LL FF PP PP
* DD DD LL FFFFFFFF PPPPPPPPP
* DD DD LL FFFFFFFF PPPPPPPP
* DD DD LL FF PP
* DD DD LL FF PP
* DDDDDDDDD LLLLLLLLLL FF PP
* DDDDDDDD LLLLLLLLLL FF PP
*
*
* DLFP IS A NETWORK PRODUCTS UTILITY PROGRAM. IT IS USED TO LIST
* THE CONTENT OF THE LOG FILE FROM NIP (ZZZZZDN) AND THE DEBUG TRACE
* FILE FROM AIP, ALSO NAMED ZZZZZDN. IT IS POSSIBLE TO REQUEST DLFP
* TO ANALYSE THE LOG FILE BY SPECIFYING THAT ONLY A CERTAIN SET OF
* MESSAGES BE SELECTED FOR OUTPUT. THAT IS DONE BY DIRECTIVES IN THE
* DIRECTIVE FILE INPUT BY NIP. ERROR MESSAGES ARE OUTPUT TO LOCAL
* DAYFILE OR OUTPUT FILE IF ERROR CONDITIONS ARE ENCOUNTERED. THE
* ERROR CONDITION CAN BE A BAD PROGRAM CALL CARD OR, A BAD DIRECTIVE,
* OR CAN BE A BAD LOG FILE.
*
* FORMAT OF THE PROGRAM CALL CARD IS
*
* DLFP [,P1] [,P2] [,P3] [,P4] [,P5] .
*
* P1, P2, P3, P4, P5 CAN BE ONE OF THE FOLLOWING:
*
* 1. I = 0 NO INPUT DIRECTIVE FILE
* I = FILEN FILEN IS THE NAME OF THE INPUT DIRECTIVE
* FILE.
* OMITTED INPUT IS THE NAME OF THE INPUT
*
* 2. B = FILEN FILEN IS THE NAME OF THE LOG FILE.
* OMITTED ZZZZZDN IS THE NAME OF THE LOG FILE
*
* 3. L = FILEN FILEN IS THE NAME OF THE OUTPUT FILE NAME
* OMITTED OUTPUT IS THE NAME OF THE OUTPUT FILE.
*
* 4. N = FILEN NEW DEBUG LOG FILE GENERATED WITH
* FILE NAME = FILEN ACCORDING TO THE
* SELECTION DIRECTIVES. NORMAL OUTPUT
* WILL NOT BE PRODUCED.
* OMITTED NORMAL OUTPUT PRODUCED.
*
* 5. D IGNORED ERRORS
* OMITTED DO NOT IGNORE ERRORS
*
* DLFP READS THE INPUT DIRECTIVE FILE IF AVAILABLE FOR DIRECTIONS.
* FOR A NIP LOG FILE, ONLY ON DIRECTIVE (CN) IS VALID, WHILE ALL
* DIRECTIVES LISTED BELOW ARE AVAILABLE FOR AN AIP LOG FILE.
*
* DIRECTION VALUE
* KEYWORD POSSIBLE ACTION
*
* B SPECIFIES A SEARCH FOR MESSAGES WITH
* THE USER BREAK FLAG SET IN THE APPLI-
* ATION BLOCK HEADER.
*
* BD= YYMMDD SPECIFIED A SEARCH FOR MESSAGES WHICH
* WERE LOGGED ON OR AFTER THIS DATE.
* MESSAGES BEFORE THIS DATE ARE NOT OUT-
* PUT. YY IS THE RIGHTMOST 2 DIGITS OF
* THE YEAR, MM IS THE MONTH, AND DD IS
* THE DAY OF THE MONTH TO BEGIN
* SEARCHING.
*
* BT= HHMMSS SPECIFIES A SEARCH FOR MESSAGES WHICH
* WERE LOGGED ON OR AFTER THIS TIME.
* MESSAGES BEFORE THIS TIME ARE NOT
* OUTPUT. NOTE THAT IF THE DEBUG LOG
* FILE CONTAINS MORE THAN ONE DAY'S
* MESSAGES, SEARCHING WILL BEGIN AFTER
* THE FIRST OCCURRENCE OF THIS TIME IF
* BD IS NOT SPECIFIED. HH IS THE HOUR,
* MM IS THE MINUTE, AND SS IS THE
* SECOND TO BEGIN SEARCHING.
*
* CN= N SPECIFIES A SEARCH FOR MESSAGES ON THE
* CONNECTION NUMBER N. ALL SYNCHRONOUS
* AND ASYNCHRONOUS SUPERVISORY MESSAGES
* AND DATA BLOCKS ON CONNECTION NUMBER
* N ARE OUTPUT.
*
* E SPECIFIES SCAN FOR ERROR BIT SET IN
* THE SUPERVISORY MESSAGE.
*
* ED= YYMMDD SPECIFIES THAT MESSAGES ON OR AFTER
* THIS DATE ARE NOT TO BE OUTPUT. YY IS
* THE RIGHTMOST 2 DIGITS OF THE YEAR,
* MM IS THE MONTH, AND DD IS THE DAY OF
* THE MONTH TO END SEARCHING.
*
* ET= HHMMSS SPECIFIES THAT MESSAGES ON OR AFTER
* THIS TIME ARE NOT TO BE OUTPUT. NOTE
* THAT IF THE DEBUG LOG FILE CONTAINS
* MORE THAN ONE DAY'S MESSAGES, SEARCHING
* WILL TERMINATE AFTER THE FIRST
* OCCURRENCE OF THIS TIME ED IS NOT
* SPECIFIED. HH IS THE HOUR, MM IS
* THE MINUTE, AND SS IS THE SECOND TO
* END SEARCHING.
*
* LE= N SPECIFIES MAX LENGTH OF EACH MESSAGE
* TO BE OUTPUT IN THE CM WORDS. 1 @ N @
* 410 (DEFAULT=10)
*
* F SPECIFIES SCAN FOR A MESSAGE(S) WITH
* THE NO FORMAT EFFECTOR BIT SET IN
* APPLICATION BLOCK HEADER.
*
* N WHEN SPECIFIED, ALL NETLOG ENTRIES
* IN THE DEBUG LOG FILE ARE IGNORED
* ON THE OUTPUT.
*
* NM= N SPECIFIED THAT ONLY N MESSAGES WILL
* BE OUTPUT.
*
* P SPECIFIES SCAN FOR MESSAGE(S) WITH THE
* PARITY ERROR FLAG BIT SET APPLICATION
* BLOCK HEADER.
*
* PF= SYMBOL SPECIFIES A SEARCH FOR SUPERVISORY
* MESSAGES WITH PFC EQUAL TO SYMBOL.
* SYMBOL MUST BE A VALID PFC (DEFINED
* IN APPENDIX F OF NAM RM).
*
* PS= SYMBOL SPECIFES A SEARCH FOR A MESSAGE WITH
* PFC/SFC EQUAL TO SYMBOL. SYMBOL MUST
* BE A VALID SFC (DEFINED IN
* APPENDIX F OF NAM REFERENCE MANUAL)
*
* R SPECIFIES A SEARCH FOR MESSAGES WITH
* THE RESPONSE BIT SET IN A SUPERVISORY
* MESSAGE.
*
* SM= N SPECIFIES THAT NO MESSAGES WILL BE
* OUTPUT UNTIL AFTER THE NTH MESSAGE,
* WHICH SATISFIES ALL THE OTHER KEYWORD
* OPTIONS, HAD BEEN FOUND.
*
* T SPECIFIES A SEARCH FOR MESSAGES WITH
* THE TRUNCATED DATA BIT SET IN THE
* APPLICATION BLOCK HEADER.
*
* U SPECIFIES SCAN FOR MESSAGE(S) WITH
* THE INPUT BLOCK UNDELIVERABLE (IBU)
* BIT SET IN THE APPLICATION BLOCK
* HEADER.
*
* X SPECIFIES A SEARCH FOR MESSAGE(S) WITH
* THE TRANSPARENT BIT SET IN APPLICATION
* BLOCK HEADER.
*
* THE SAME KEYWORD CAN APPEAR MORE THAN ONCE IN A DIRECTIVE RECORD.
* IF THERE IS A VALUE ASSOCIATED WITH THIS KEYWORD, THE VALUE IN THE
* LAST OCCURRENCE OF THE KEYWORD WILL BE THE ONE USED FOR THE
* SEARCH.
*
#
*ENDIF
CONTROL PRESET;
# * * * * * * * * * * * * * * * --- CRCOM --- * * * * * * * * * * * * *#
*IF DEF,IMS
#
*
* DC CRCOM
* COPYRIGHT INFORMATION
#
*ENDIF
*CALL CRCOM
#* * * * * * * * * * * * * * * --- CYBERDEFS --- * * * * * * * * * * *#
*IF DEF,IMS
#
*
* DC CYBERDEFS
* COMMON DEFS TO DEFNE CYBER MACHINES CHARACTERISTICS.
#
*ENDIF
*CALL CYBERDEFS
# * * * * * * * * * * * * * * * --- ARGERR --- * * * * * * * * * * * * #
*IF DEF,IMS
#
*
* DC ARGERR
* COMMON DECK CONTAINING ALL ERROR MESSAGES ISSUED BY
* DLARG.
#
*ENDIF
*CALL ARGERR
# * * * * * * * * * * * * * --- ARGTBL --- * * * * * * * * * * * * * *#
*IF DEF,IMS
#
*
* DC ARGTBL
* COMMON BLOCK TO PASS INPUTS FROM PROGRAM CALL CARD
* TO VARIOUS MODULES IN DLFP.
#
*ENDIF
*CALL ARGTBL
# * * * * * * * * * * * * --- AWLDEFS --- * * * * * * * * * * * * * * *#
*IF DEF,IMS
#
*
* DC AWLDEFS
* MISCELLANEOUS DEFINITIONS USED BY DLFP.
#
*ENDIF
*CALL AWLDEFS
# * * * * * * * * * * * * --- DEQCOM --- * * * * * * * * * * * * * * * #
*IF DEF,IMS
#
*
* DC DEQCOM
* COMMON DECK CONTAINING DEFINITIONS USED BY DLFP.
#
*ENDIF
*CALL DEQCOM
# * * * * * * * * * * * * --- DIERR --- * * * * * * * * * * * * * * * *#
*IF DEF,IMS
#
*
* DC DIERR
* COMMON DECK CONTAINING ERROR CODES AND ERROR MESSAGES
* USED BY DLDIRP.
#
*ENDIF
*CALL DIERR
# * * * * * * * * * * * * --- DIRTBL --- * * * * * * * * * * * * * * * #
*IF DEF,IMS
#
*
* DC DIRTBL
* COMMON BLOCK SAVING SELECTED VALUES FOR DIRECTIVE
*
* THE TABLE DIRTBL RECEIVES THE VALUES OF THE INPUT DIRECTIVES.
* IF A DIRECTIVE HAS NOT BEEN SELECTED, THEN A ZERO VALUE
* IS PLACED IN THE TABLE SELECTED DIRECTIVES HAVE THE FOLLOWING
* FORMAT:
* 4
* 0 2
* I--------------------------I-----------------I
* I I I
* I DIRVALU I DIRID I
* I I I
* I--------------------------I-----------------I
*
* DIRVALU - VALUE OF THE DIRECTIVE
* DIRID - IDENTIFICATION CODE FOR THE SELECTED DIRECTIVES
*
* THE IDENTIFICATION CODES HAVE BEEN GROUPED FOR EFFICIENCY
* ACCORDING TO THE TYPE OF INFORMATION TO BE READ FROM THE
* ZZZZZDN FILE. THE PROCEDURE DLREP COPIES NON-ZERO VALUES
* INTO THREE CONDENSED TABLES SO THAT ALL DIRECTIVES WILL
* NOT HAVE TO BE EXAMINED FOR EVERY MESSAGE.
* NOTE THAT SINCE DLREP COPIES A RANGE OF VALUES TO EACH
* TABLE, THE DIRECTIVE GROUPINGS MUST REMAIN INTACT. THE
* CN DIRECTIVE IS USED IN TWO TABLES. A CHANGE IN THE ID$
* VALUE MUST ALSO CHANGE THE CORRESPONDING SWITCH DEFINITIONS
* IN PROCEDURES DLABH,DLMSG,DLNBH,DLSM.
*
#
*ENDIF
*CALL DIRDEFS
*CALL DIRTBL
# * * * * * * * * * * * * --- DIRTBLH --- * * * * * * * * * * * * * * *#
*IF DEF,IMS
#
*
* DC DIRTBLH
* SUBSET OF DIRECTIVE VALUE TABLE FOR HEADER PROCESSING
*
* DIRTBLH IS A SUBSET OF DIRTBL CREATED BY THE PROCEDURE
* DLREP FOR USE BY DLABH FOR AN APPLICATION ZZZZZDN FILE
* OF FOR USE BY DLNBH FOR A NIP ZZZZZDN FILE. DLABH AND
* DLNBH ARE NOT CALLED IF THERE ARE NO DIRECTIVES IN
* DIRTBLH (DIRNUMH EQ 0). ONLY APPLICATION BLOCK HEADERS
* MAY BE EXAMINED FOR CONNECTION NUMBER (CN) AND/OR THE
* DATA BLOCK CLARIFIER BITS BREAK FLAG(B), CANCEL FLAG(C),
* NO FORMAT EFFECTOR FLAG(F), PARITY ERROR FLAG(P),
* TRUNCATED DATA FLAG(T), UNDELIVERABLE INPUT BLOCK(U),
* OR TRANSPARENT BIT(X). THE NETWORK BLOCK HEADER MAY BE
* EXAMINED FOR DESTINATION NODE(DN), SOURCE NODE(SN),
* CONNECTION NUMBER(CN), AND/OR THE BITS CANCEL FLAG(C),
* NO FORMAT EFFECTOR FLAG(F), PARITY ERROR FLAG(P), OR
* TRUNCATED DATA FLAG(T).
*
#
*ENDIF
*CALL DIRTBLH
# * * * * * * * * * * * * --- DIRTBLM --- * * * * * * * * * * * * * *#
*IF DEF,IMS
#
*
* DC DIRTBLM
* SUBSET OF DIRECTIVE VALUE TABLE FOR DATA MESSAGE PROCESSING
*
* DIRTBLM IS A SUBSET OF DIRTBL CREATED BY DLREP FOR
* USE BY DLMSG. DLMSG IS NOT CALLED IF THERE ARE NO
* DIRECTIVES IN DIRTBLM (DIRNUMM EQ 0). IF SELECTED,
* NUMBER OF ENTRIES WRITTEN TO OUTPUT(NM), BEGINNING
* TIME(BT), ENDING TIME(ET), AND NETLOG ENTRIES
* NOT SELECTED (N) DIRECTIVES WILL BE
* EXAMINED FOR EACH MESSAGE ON THE ZZZZZDN FILE.
* BT DIRECTIVE MUST BE THE LAST ENTRY IN THE DIRTBLM TABLE
*
#
*ENDIF
*CALL DIRTBLM
# * * * * * * * * * * * * --- DIRTBLS --- * * * * * * * * * * * * * *#
*IF DEF,IMS
#
*
* DC DIRTBLS
* SUBSET OF DIRECTIVE VALUE TABLE FOR SUPERVISORY MESSAGE
* PROCESSING
*
* DIRTBLS IS A SUBSET OF DIRTBL CREATED BY DLREP FOR USE
* BY DLSM. DLSM IS NOT CALLED BY DLSCAN IF THERE ARE NO
* ENTRIES IN DIRTBLS (DIRNUMS EQ 0). IF SELECTED, THE
* ERROR BIT(E), RESPONSE BIT(R), CONNECTION NUMBER(CN),
* PFC(PF), OR PFCSFC(PS) FIELDS ARE EXAMINED.
*
#
*ENDIF
*CALL DIRTBLS
# * * * * * * * * * * * * --- DLONEL --- * * * * * * * * * * * * * * * #
*IF DEF,IMS
#
*
* DC DLONEL
* COMMON BLOCK CONTAINING THE FORMAT FOR ONE BLANK LINE
#
*ENDIF
*CALL DLONEL
# * * * * * * * * * * * * --- DLNOD --- * * * * * * * * * * * * * * * *#
*IF DEF,IMS
#
*
* DC DLNOD
* ARRAY TO STORE NUMBER OF DAYS IN EACH MONTH
#
*ENDIF
*CALL DLNOD
# * * * * * * * * * * * * --- DLTLC --- * * * * * * * * * * * * * * * *#
*IF DEF,IMS
#
*
* DC DLTLC
* TEXT LENGTH IN CHARACTERS OF SELECTED MESSAGE
#
*ENDIF
*CALL DLTLC
*CALL DRHDIMS
*CALL DRHDR
# * * * * * * * * * * * * --- ERRMSG --- * * * * * * * * * * * * * * * #
*IF DEF,IMS
#
*
* DC ERRMSG
* COMMON BLOCK CONTAINING ALL ERROR OR INFORMATIVE MESSAGES
* USED IN DLFP.
#
*ENDIF
*CALL ERRMSG
# * * * * * * * * * * * * * * --- FETDEFS --- * * * * * * * * * * * * #
*IF DEF,IMS
#
*
* DC FETDEFS
* BASED ARRAY TO DEFINE DIFFERENT FIELDS IN FET AREA
*
* WORD 0
* 4 5 5 5 5 5
* 0 2 0 1 5 6 9
* I------------------------------I------I---I-I---I--I
* I I I I I I I
* I FETNAM I IEOII IEORI I
* I I I I I I I
* I------------------------------I------I---I-I---I--I
*
* FETNAM - FILE NAME
* EOI - END OF INFORMATION FLAG
* EOR - END OF RECORD OR END OF FILE FLAG
*
* WORD 1
* 4 5
* 4 5
* 0 2 9
* I------------------------------I------------------I
* I I I
* I I FET1ST I
* I I I
* I------------------------------I------------------I
*
* FET1ST - FET FIRST POINTER
*
* WORD 2
* 4 5
* 0 2 9
* I-----------------------------I--------------------I
* I I I
* I I FETIN I
* I I I
* I-----------------------------I--------------------I
*
* FETIN - FET IN POINTER
*
* WORD 3
* 4 5
* 0 2 9
* I-----------------------------I--------------------I
* I I I
* I I FETOUT I
* I I I
* I-----------------------------I--------------------I
*
* FETOUT - FET OUT POINTER
*
* WORD 4
* 4 5
* 0 2 9
* I-----------------------------I--------------------I
* I I I
* I I FETLMT I
* I I I
* I-----------------------------I--------------------I
*
* FETLMT - FET LIMIT POINTER
*
#
*ENDIF
*CALL FETDEFS
# * * * * * * * * * * * * * * --- ICIOBB --- * * * * * * * * * * * * * #
*IF DEF,IMS
#
*
* DC ICIOBB
* COMMON BLOCK RESERVING SPACE FOR DIRECTIVE FILE CIO BUFFER
#
*ENDIF
*CALL ICIOBB
# * * * * * * * * * * * * * --- IFETB --- * * * * * * * * * * * * * * *#
*IF DEF,IMS
#
*
* DC IFETB
* COMMON BLOCK RESERVING SPACE FOR FET AREA OF DIRECTIVE FILE
#
*ENDIF
*CALL IFETB
# * * * * * * * * * * * * * --- MISCOM --- * * * * * * * * * * * * * * #
*IF DEF,IMS
#
*
* DC MISCOM
* COMMON DECK HOLDING DEFINITIONS FOR DIFFERENT CHARACTER TYPES
#
*ENDIF
*CALL MISCOM
# * * * * * * * * * * * * * --- MISDEF --- * * * * * * * * * * * * * * #
*IF DEF,IMS
#
*
* DC MISDEF
* MISCELLANEOUS DEFINITIONS USED BY NIP AND DLFP.
#
*ENDIF
*CALL MISDEF
# * * * * * * * * * * * * * --- MISDEFX --- * * * * * * * * * * * * * *#
*IF DEF,IMS
#
*
* DC MISDEFX
* MISCELLANEOUS DEFINITIONS
#
*ENDIF
*CALL MISDEFX
# * * * * * * * * * * * * --- MISRES --- * * * * * * * * * * * * * * * #
*IF DEF,IMS
#
*
* DC MISRES
* COMMON BLOCK TO HOLD NIP RESPONSE TIME AVERAGES FOR EACH
* CONNECTION
*
* WORD 0
* 5
* 0 1 2 9
* I------I-------I-----------------------------------I
* I I I I
* I INPF I EXTF I CNCTR I
* I I I I
* I------I-----I-------------------------------------I
*
* INPF - INPUT BLOCK EXISTS FLAG
* EXTF - CONNECTION NUMBER EXISTS FLAG
* CNCTR - NUMBER OF RESPONSES
*
* WORD 1
*
* CNSUM - ACCUMULATOR
*
* WORD 2
*
* CNINPTM - INPUT BLOCK CLOCK TIME
*
#
*ENDIF
*CALL MISRES
*CALL NCIOBB
*CALL NFETB
*CALL NHIMS
*CALL NHEADER
# * * * * * * * * * * * --- NP$NWNC --- * * * * * * * * * * * * * * * *#
*IF DEF,IMS
#
* DC NP$NWNC
* COMMON BLOCK TO HOLD COEFFICIENTS FOR EQUATIONS TO CALCULATE
* THE NUMBER OF WORDS AND CHARACTES IN A DATA BLOCK
#
*ENDIF
*CALL NP$NWN1
# * * * * * * * * * * * * * * * --- OCIOBB --- * * * * * * * * * * * * #
*IF DEF,IMS
#
*
* DC OCIOBB
* COMMON BLOCK TO HOLD THE CIO BUFFER FOR OUTPUT FILE
#
*ENDIF
*CALL OCIOBB
# * * * * * * * * * * * * * * --- OFETB --- * * * * * * * * * * * * * *#
*IF DEF,IMS
#
*
* DC OFETB
* COMMON BLOCK TO HOLD THE FET AREA FOR OUTPUT FILE
#
*ENDIF
*CALL OFETB
# * * * * * * * * * * * * * * * --- OUTCDA --- * * * * * * * * * * * * #
*IF DEF,IMS
#
*
* DC OUTCDA
* COMMON DECK FOR OUTPUT REPORT AS USED IN DLREP AND ITS
* SUBORDINATE ROUTINES.
#
*ENDIF
*CALL OUTCDA
# * * * * * * * * * * * * * * * --- SYSDATEX --- * * * * * * * * * * * #
*IF DEF,IMS
#
*
* DC SYSDATEX
* COMMON BLOCK TO STORE CURRENT DATE FROM SYSTEM
*
* 5
* 0 6 9
* I---------I----------------------------------------I
* I I I
* I I YYMMDD I
* I I I
* I---------I----------------------------------------I
*
* YYMMDD - CURRENT DATE
*
#
*ENDIF
*CALL SYSDATEX
# * * * * * * * * * * * * * * * --- VDDIR --- * * * * * * * * * * * * *#
*IF DEF,IMS
#
*
* DC VDDIR
* COMMON BLOCK OF VALID DIRECTIVE KEYWORDS.
*
* VDDR ENTRIES HAVE THE FOLLOWING FORMAT:
*
* 4 5
* 0 2 9
* I-----------------------------I--------------------I
* I I I
* I VDENTR I VDLEN I
* I I I
* I-----------------------------I--------------------I
*
* VDENTR - THE DISPLAY CODE VALUE OF A VALID ENTRY
* VDLEN - =3, FOR TWO LETTER INPUT DIRECTIVES
* =1, FOR ONE LETTER INPUT DIRECTIVES
*
#
*ENDIF
*CALL VDDIR
# * * * * * * * * * * * * * * * --- VDPARM --- * * * * * * * * * * * * #
*IF DEF,IMS
#
*
* DC VDPARM
* COMMON BLOCK TO LIST ALL VALID PARAMETERS FROM PRGM CALL CARD
#
*ENDIF
*CALL VDPARM
# * * * * * * * * * * * * * * * --- WRDPAIR --- * * * * * * * * * * * *#
*IF DEF,IMS
#
*
* DC WRDPAIR
* COMMON BLOCK CONTAINING PARAMETERS USED BY DLDIS ROUTINE.
#
*ENDIF
*CALL WRDPAIR
# * * * * * * * * * * * * * * --- ZCIOBB --- * * * * * * * * * * * * * #
*IF DEF,IMS
#
*
* DC ZCIOBB
* COMMON BLOCK TO HOLD CIO BUFFER AREA FOR ZZZZZDN FILE
#
*ENDIF
*CALL ZCIOBB
# * * * * * * * * * * * * * --- ZFETB --- * * * * * * * * * * * * * * *#
*IF DEF,IMS
#
*
* DC ZFETB
* COMMON BLOCK TO HOLD FET AREA FOR THE ZZZZZDN FILE
#
*ENDIF
*CALL ZFETB
# * * * * * * * * * * * * * * --- ZHRCD --- * * * * * * * * * * * * * *#
*IF DEF,IMS
#
*
* DC ZHRCD
* COMMON BLOCK HOLDING TEMPLATE FOR THE HEADER RECORD OF ZZZZZDN
* FILE.
* INTERNAL FORMAT OF ZZZZZDN -
*
* HEADER WORD 0 -
* W 7
* 4
* 0 2
* I----------------------------I
* I I
* I NIP I
* I I
* I----------------------------I
*
* WHERE
* THE LEFTMOST 42 BITS CONTAINS DISPLAY CODE LITERALS NIP WITH
* ZERO FILL.
*
* HEADER WORD 1 -
* W 7
* 2
* 0 4
* I----------------------I-----------------------I
* I I I
* I SECONDS I MILLISECONDS I
* I I I
* I---------------------I-----------------------I
*
* WHERE
*
*
* SECONDS = ELAPSED TIME SINCE DEADSTART IN SECS.
* MILLISECONDS = ELAPSED TIME SINCE DEADSTART IN MILLISECONDS.
*
* HEADER WORD 2 -
*
* W 7
* 1 2 3 4 5
* 6 8 4 6 2 4
* I----I-----I-----I------I-----I------I-----I
* I I I I I I I I
* I I HH I . I MM I . I SS I . I
* I I I I I I I I
* I----I-----I-----I------I-----I------I-----I
*
*
* WHERE
*
* HH = HOUR IN DISPLAY CODE.
* MM = MINUTE IN DISPLAY CODE.
* SS = SECONDS IN DISPLAY CODE.
*
*
* HEADER WORD 3 -
* W 7
* 1 2 3 4 5
* 6 8 4 6 2 4
* I----I------I-----I------I-----I------I-----I
* I I I I I I I I
* I I YY I / I MM I / I DD I / I
* I I I I I I I I
* I----I------I-----I------I-----I------I-----I
*
*
* WHERE
*
* YY = YEAR IN DISPLAY CODE.
* EG. 1978 WILL BE EXPRESSED AS 4243B.
* MM = MONTH IN DISPLAY CODE.
* DD = DATE OF THE MONTH IN DISPLAY CODE.
*
*
* THE HEADER RECORD IS FOLLOWED BY INDIVIDUAL ZZZZZDN ENTRY
* CONTAINING AN INBOUND OR OUTBOUND MESSAGE.
* INTERNAL FORMAT OF EACH ZZZZZDN ENTRY -
*
*
* WORD 0 -
*
* W 7
* 2
* 0 4
* I---------------------I-----------------------I
* I I I
* I SECONDS I MILLISECONDS I
* I I I
* I---------------------I-----------------------I
*
* WHERE
*
*
* SECONDS = ELAPSED TIME SINCE DEADSTART IN SECS.
* MILLISECONDS = ELAPSED TIME SINCE DEADSTART IN MILLISECONDS.
*
*
* WORD 1 -
*
* W 7
* 2
* 6 3
* I----------I----------I
* I I I
* I BPIPID I BPIPBS I
* I I I
* I----------I----------I
*
*
* WHERE
*
* BPIPID = BLOCK ID.
* 14 FOR INBOUND, 15 FOR OUTBOUND.
* BPIPBS = BLOCK SIZE. SIZE OF ZZZZZDN ENTRY MINUS ONE.
*
*
* WORD 2 -
*
* W 5
* 1 2 2 2 3 4 4 4
* 0 8 6 4 5 8 2 0 4 8
* I--I--I--I-----I-----I--I-----I-----I-I--I
* IDNISNICNINHPRIINHBSNIBTINHDBCINHACTIBICCI
* I--I--I--I-----I-----I--I-----I-----I-I--I
*
* SEE NHEADER FOR EXPLANATION OF THE ABOVE FIELDS.
* MESSAGE TEXT WILL FOLLOW THIS WORD.
*
#
*ENDIF
*CALL ZHRCD
*IF DEF,IMS
#
*1DC DLFP
*
* 1. PROC NAME AUTHOR DATE.
* DLFP P.C.TAM 78/09/15
*
* 2. FUNCTIONAL DESCRIPTION.
* MAIN PROGRAM.
* CALL DLARG TO PROCESS ARGUMENT FROM PROGRAM CALL CARD,
* CALL DLDIRP TO SCAN DIRECTIVES
* CALL DLREP TO GENERATE OUTPUT
*
* 3. METHOD USED.
* SAME AS 2.
*
* 4. ENTRY PARAMETERS.
* NONE.
*
* 5. EXIT PARAMETERS.
* NONE.
*
* 6. COMMON DECKS CALLED.
* CRCOM CYBERDEFS ARGERR ARGTBL AWLDEFS
* DEQCOM DIERR DIRTBL DIRTBLH DIRTBLM
* DIRTBLS DLONEL DLNOD DLTLC DRHDR
* ERRMSG FETDEFS ICIOBB IFETB MISCOM
* MISDEF MISDEFX MISRES NCIOBB NFETB
* NHEADER OCIOBB OFETB OUTCDA SYSDATEX
* VDDIR VDPARM WRDPAIR ZCIOBB ZFETB
* ZHRCD
*
* 7. ROUTINES CALLED.
* DLABEND ABORT MAIN LINE
* DLARG PROCESS ARGUMENTS FROM PROGRAM CALL CARD
* DLDT GET CURRENT DATE
* DLDIRP SCAN DIRECTIVE FILE
* DLDFM LOG DAYFILE MESSAGE
* DLENDPR TERMINATION PROCESSING
* DLINT INITIATE READ/WRITE ON FILE
* DLOPEN OPEN FILE
* DLPSIN BUBBLE SORT VALUES OF PFC/SFC
* DLRDW READ A RECORD FROM FILE
* DLRECL WAIT FOR EVENT COMPLETION
* DLREP REPORT GENERATOR
* DLRWD REWIND FILE BACK TO BOI
*
* 8. DAYFILE MESSGES.
* NONE.
*
#
*ENDIF
#
EXTERNAL VARIABLES
#
XREF
BEGIN
PROC DLABEND; # ABORT MAIN LINE #
PROC DLARG; # SCAN FOR PARAMETERS IN PROGRAM CALL #
PROC DLCLOSE; # CLOSE FILE #
PROC DLDT; # GET CURRENT DATE #
PROC DLDIRP; # SCAN DIRECTIVE FILE #
PROC DLDFM; # LOG DAYFILE MESSAGE PROCESSOR #
PROC DLENDPR; # TERMINATION PROCESSING #
PROC DLINT; # INITIATE READ/WRITE ON FILE #
PROC DLOPEN; # OPEN FILE #
PROC DLPSIN; # BUBBLE SORT VALUES OF PFC/SFC #
PROC DLRDW; # READ RECORD FROM FILE #
PROC DLRECL; # WAIT FOR EVENT COMPLETION #
PROC DLREP; # OUTPUT FILE GENERATOR #
PROC DLRWD; # REWIND FILE TO BOI #
END
#
LOCAL VARIABLES
#
ITEM
ERRCODE I, # ERROR RETURN CODE FROM SUBMODULES #
RSIZE I, # REAL RECORD SIZE #
I I, # TEMPORARY VARIABLE #
UNPTR B, # FLAG FOR DLDIRP MODULE #
IEOF B = FALSE; # END OF FILE FLAG #
BASED ARRAY PRODID[0:0] S(1);
BEGIN
ITEM PROD$ID C(00,00,03);
END
#**********************************************************************#
BEGIN
#
SCAN PARAMETERS TO DETERMINE INPUT, OUTPUT, AND DIRECTIVE
FILE NAMES
#
NTOFF = FALSE;
DLARG; # PROCESS CONTROL CARD PARAMETERS #
DLPSIN; # BUBBLE SORT VALUES OF PFC/SFC #
DLDT(SYSDATEY); # GET DATE #
P<FETDEFS> = LOC(OFET0[0]); # INITIALIZE OUTPUT FILE NAME #
FETNAM[0] = ARGENTR[OFILE]; # SET OUTPUT FILE NAME #
DLOPEN(OFET, WRITENR); # OPEN OUTPUT FILE #
DLINT(OFET, WRITENR); # INITIALIZE WRITE OPERATION #
IF ARGFLAG[NFILE]
THEN
BEGIN # INITIALIZE NEW DEBUG LOG FILE FETS #
P<FETDEFS> = LOC(NFET);
FETNAM[0] = ARGENTR[NFILE];
DLOPEN(NFET, WRITENR);
DLINT(NFET, WRITENR);
END
P<FETDEFS> = LOC(ZFET0[0]); # INITIALIZE ZZZZZDN FILE NAME #
FETNAM[0] = ARGENTR[ZFILE]; # SET ZZZZZDN FILE NAME #
DLOPEN(ZFET, READNR); # OPEN ZFILE #
DLRWD(ZFET); # REWIND ZZZZZDN FILE TO BOI #
DLINT(ZFET, READNR); # INITIATE FILE FOR READING #
DLRDW(ZFET, ZHSIZE, TEMPB1, RSIZE); # READ FILE HEADER #
P<PRODID> = LOC(TEMPB1);
IF RSIZE LS 0 # (EOF) OR (EOI) #
THEN # ZZZZZDN FILE EMPTY #
BEGIN
DLDFM(EMP$ZFILE); # EMPTY ZZZZZDN FILE #
END
ELSE
BEGIN
IF RSIZE NQ ZHSIZE OR PROD$ID[0] EQ " "
THEN
BEGIN # BAD ZZZZZDN FILE CONTENT #
DLDFM(BAD$ZFILE);
DLABEND;
END
#
SCAN DIRECTIVE FILE AND GENERATE REPORT
#
IF ARGENTR[INFILE] NQ O"33000000000000000000"# I=0, NO DIR FILE #
THEN # INPUT DIRECTIVE FILE EXISTS #
BEGIN
P<FETDEFS> = LOC(IFET0[0]);# INITIALIZE INPUT FILE #
FETNAM[0] = ARGENTR[INFILE];# SET INPUT FILE NAME #
DLOPEN(IFET, READNR); # OPEN FILE #
DLINT(IFET, READNR); # INITIALIZE READ #
DLRECL(IFET); # WAIT FOR INITIALIZE READ TO FIN #
#
LOOP TO READ EACH DIRECTIVE RECORD, AND PROCESS IT
#
FOR I = 0 STEP 1 WHILE NOT IEOF
DO
BEGIN
ERRCODE = 0;
IF FETIN[0] EQ FETOUT[0] AND # CIO BUFFER EMPTY #
(FETEOI[0] EQ 1 OR # FILE AT EOI #
FETEOF[0] EQ 3 OR # FILE AT EOF #
(FETEOR[0] EQ 2 AND # FILE AT EOR AND #
FETDT[0] NQ "TT")) # NOT A TERMINAL INPUT #
THEN
IEOF = TRUE;
ELSE # DIRECTIVES AVAILABLE #
BEGIN
DLDIRP(UNPTR,ERRCODE);# FILE DIRECTIVE SCANNER #
IF FETDT[0] EQ "TT" # IT IS A TERMINAL JOB #
THEN
BEGIN
IF UNPTR AND # EMPTY LINE INPUT #
I NQ 0 # NOT 1ST TIMER #
THEN
IEOF = TRUE;
END
END
IF (NOT IEOF OR
(IEOF AND I EQ 0)) AND
ERRCODE EQ 0
THEN # INPUT AVAILABLE, OR INPUT FILE EMPTY #
BEGIN
DLRWD(ZFET); # REWIND FILE TO BOI #
DLINT(ZFET, READNR);# INITIATE FILE FOR READ #
DLREP; # REPORT GENERATOR #
IF FETEOR[0] EQ 2 AND FETDT[0] EQ "TT"
THEN # RE-INITIALIZE READ #
DLINT(IFET,READNR);
END
END
END
ELSE # NO INPUT DIRECTIVE FILE #
BEGIN
DLRWD(ZFET); # REWIND FILE TO BOI #
DLINT(ZFET, READNR); # INITIATE FILE FOR READ #
DLREP; # REPORT GENERATOR #
END
END
DLDFM(DL$COMP); # DLFP COMPLETE #
DLENDPR; # TERMINATION PROCESSING #
STOP;
END
TERM