*DECK DLNBH USETEXT DLFPDEF USETEXT ABH USETEXT DIRTBLH USETEXT ERRMSG USETEXT OUTCDA USETEXT NHEADER USETEXT ZHRCD PROC DLNBH; # SELECT NETWORK MESSAGES FOR OUTPUT # *IF DEF,IMS # *1DC DLNBH * * 1. PROC NAME AUTHOR DATE * DLNBH P.C.TAM 79/01/10 * * 2. FUNCTIONAL DESCRIPTION * SELECT NETWORK MESSAGES FOR OUTPUT * * 3. METHOD USED * LOOP THROUGH NETWORK BLOCK PROCESSING TABLE. PROCESS * EACH ENTRY AS FOLLOWS UNTIL EITHER THE CHOSEN FLAG * IS CLEARED OR ALL ENTRIES ARE PROCESSED. * C CHECK IF CANCEL FLAG IS SET IN DBC. * IF NOT SET, CLEAR CHOSEN FLAG. * F CHECK IF NO FORMAT EFFECTOR FLAG IS SET IN * DBC. IF NOT SET, CLEAR CHOSEN FLAG. * P CHECK IF PARITY/AUTO INPUT FLAG IS SET IN * DBC. IF NOT SET, CLEAR CHOSEN FLAG. * X CHECK IF TRANSPARENT DATA FLAG IS SET IN DBC. * IF NOT SET, CLEAR CHOSEN FLAG. * DN COMPARE NODE NUMBER IN NETWORK BLOCK PROCESSING * TABLE WITH DN IN MESSAGE. IF NO MATCH, * CLEAR CHOSEN FLAG. * SN COMPARE SOURCE NODE IN NETWORK BLOCK PROCESSING * TABLE WITH SN IN MESSAGE. IF NO MATCH, * CLEAR CHOSEN FLAG. * CN COMPARE CONNECTION NUMBER IN NETWORK BLOCK * PROCESSING TABLE WITH CN IN MESSAGE. IF NO MATCH, * CLEAR CHOSEN FLAG. * * 4. ENTRY PARAMETER. * DIRTBLH COMMON BLOCK CONTAINING SELECTION CRITERIA * ZHRCD COMMON BLOCK HOLDING THE NETWORK BLOCK HEADER * * 5. EXIT PARAMETER. * CHOSEN IN ZHRCD, SET IF MESSAGE IS SELECTED. * * 6. COMDECKS CALLED AND SYMPL TEXTS USED. * ABH DIRTBLH DLFPDEF ERRMSG * OUTCDA NHEADER ZHRCD * * 7. ROUTINES CALLED * DLABEND ABORT PROGRAM * DLDFM ISSUE DAYFILE MESSAGE * * 8. DAYFILE MESSAGES * BAD DIRECTIVE TABLE ENTRY. * # *ENDIF # EXTERNAL VARIABLES # XREF BEGIN PROC DLABEND; # ABORT PROGRAM # PROC DLDFM; # ISSUE DAYFILE MESSAGE # END # LOCAL VARIABLES # SWITCH CRIT ERR, ERR, ERR, ERR, ERR, ERR, ERR,ERR,L$C, L$F, L$P, ERR, ERR, L$X, L$DN, L$SN, L$CN, ERR, ERR, ERR, ERR, ERR, ERR; ITEM I, # INDEX VARIABLE # K, # TEMPORARY VARIABLE # TEMPABH; # TEMPORARY ABH # # ******************************************************************** # BEGIN P = LOC(ZHWD1[0]) + BLKHSIZE; P = LOC(TEMPABH); ABHDBC[0] = NHDBC[0]; FOR I = 1 STEP 1 WHILE I LQ DIRNUMH AND CHOSEN DO BEGIN GOTO CRIT[DIRHID[I]]; L$C: # CANCEL FLAG PROCESSING # IF ABHCAN[0] NQ 1 THEN CHOSEN = FALSE; GOTO NEXT; L$F: # NO FORMAT EFFECTOR PROCESSING # IF ABHNFE[0] NQ 1 THEN CHOSEN = FALSE; GOTO NEXT; L$P: # PARITY / AUTO INPUT FLAG PROCESSING # IF ABHBIT[0] NQ 1 THEN CHOSEN = FALSE; GOTO NEXT; L$X: # TRANSPARENT BIT PROCESSING # IF ABHXPT[0] NQ 1 THEN CHOSEN = FALSE; GOTO NEXT; L$DN: # DESTINATION NODE PROCESSING # IF DIRHVAL[I] NQ DN[0] THEN CHOSEN = FALSE; GOTO NEXT; L$SN: # SOURCE NODE PROCESSING # IF DIRHVAL[I] NQ SN[0] THEN CHOSEN = FALSE; GOTO NEXT; L$CN: # CONNECTION NUMBER PROCESSING # IF DIRHVAL[I] NQ CN[0] THEN CHOSEN = FALSE; GOTO NEXT; ERR: DLDFM(BAD$DNTRY); # BAD DIRECTIVE TABLE ENTRY # DLABEND; # ABORT PROGRAM # NEXT: END END TERM