*DECK DLABH USETEXT DLFPDEF USETEXT ABH USETEXT DIRTBLH USETEXT ERRMSG USETEXT OUTCDA USETEXT ZHRCD PROC DLABH; # SELECT APPLICATION BLOCK HEADER # *IF DEF,IMS # *1DC DLABH * * 1. PROC NAME AUTHOR DATE * DLABH P.C.TAM 79/01/10 * * 2. FUNCTIONAL DESCRIPTION * SELECT APPLICATION BLOCKS FOR OUTPUT * * 3. METHOD USED * LOOP THROUGH APPLICATION BLOCK PROCESSING TABLE, PROCESS * EACH ENTRY AS FOLLOWS UNTIL EITHER THE CHOSEN FLAG IS CLEARED * OR ALL ENTRIES PROCESSED. * B IF BREAK FLAG IN ABH WORD IS NOT SET, CLEAR * CHOSEN FLAG * C IF CANCEL FLAG IN ABH WORD IS NOT SET, CLEAR * CHOSEN FLAG * F IF NO FORMAT EFFECTOR IN ABH WORD IS NOT SET, * CLEAR CHOSEN FLAG * P IF PARITY/AUTO INPUT FLAG IS NOT SET, CLEAR * CHOSEN FLAG * T IF TRUNCATED DATA FLAG IS NOT SET, CLEAR * CHOSEN FLAG * U IF IBU FLAG IS NOT SET, CLEAR CHOSEN FLAG. * X IF TRANSPARENT DATA FLAG IS NOT SET, CLEAR * CHOSEN FLAG * CN IF CN IN MESSAGE IS NOT ZERO AND IT DOES NOT * MATCH ONE IN PROCESSING TABLE, CLEAR CHOSEN * FLAG. * * 4. ENTRY PARAMETERS * DIRTBLH COMMON BLOCK CONTAINING THE SELECTION * CRITERION * ZHRCD COMMON BLOCK CONTAINING THE INPUT * RECORD HEADER * * 5. EXIT PARAMETERS * CHOSEN IN ZHRCD COMMON DECK, CLEARED IF * RECORD NOT SELECTED * * 6. COMDECKS CALLED AND SYMPL TEXTS USED. * ABH DIRTBLH DLFPDEF ERRMSG * OUTCDA 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 # INTERNAL VARIABLES # SWITCH CRIT ERR, ERR, ERR, ERR, ERR, ERR, ERR, L$B, L$C, L$F, L$P, L$T, L$U, L$X, ERR, ERR, L$CN, ERR, ERR, ERR, ERR, ERR, ERR; ITEM I; # TEMPORARY VARIABLE # # ******************************************************************** # BEGIN # THE ABH IS IN THE 4TH WORD OF ARRAY TEMPB1 IN COMMON BLOCK ZHRCD. RTIME(IN ZHWD0), OPCODE, AND TA WORDS PRECEDE THE ABH. # P = LOC(ZHWD3[0]); FOR I = 1 STEP 1 WHILE CHOSEN AND I LQ DIRNUMH DO BEGIN GOTO CRIT[DIRHID[I]]; L$B: # BREAK FLAG PROCESSING # IF ABHBRK[0] NQ 1 THEN CHOSEN = FALSE; GOTO NEXT; L$C: # CANCEL BIT 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$T: # TRUNCATED DATA FLAG PROCESSING # IF ABHTRU[0] NQ 1 THEN CHOSEN = FALSE; GOTO NEXT; L$U: # IBU BIT PROCESSING # IF ABHIBU[0] NQ 1 THEN CHOSEN = FALSE; GOTO NEXT; L$X: # TRANSPARENT BIT PROCESSING # IF ABHXPT[0] NQ 1 THEN CHOSEN = FALSE; GOTO NEXT; L$CN: # CONNECTION NUMBER PROCESSING # IF ABHADR[0] NQ 0 AND ABHADR[0] NQ DIRHVAL[I] THEN CHOSEN = FALSE; GOTO NEXT; ERR: DLDFM(BAD$DNTRY); # BAD DIRECTIVE TABLE ENTRY # DLABEND; # ABORT PROGRAM # NEXT: END END TERM