*DECK DLSM USETEXT DLFPDEF USETEXT ABH USETEXT DIRTBL USETEXT DIRTBLS USETEXT ERRMSG USETEXT NHEADER USETEXT ZHRCD PROC DLSM(TEMPB2); # SELECT SUPERVISORY MSG # *IF DEF,IMS # *1DC DLSM * * 1. PROC NAME AUTHOR DATE * DLSM P.C.TAM 79/01/09 * * 2. FUNCTIONAL DESCRIPTION * SELECT SUPERVISORY MESSAGES FOR OUTPUT * * 3. METHOD USED * IF AIP LOG FILE AND BLOCK TYPE IS LESS THAN * APPCMD, CLEAR CHOSEN FLAG. * IF NIP LOG FILE AND BLOCK TYPE IS NETCMD, CLEAR CHOSEN FLAG. * LOOP THROUGH SUPMSG PROCESSING TABLE, PROCESS EACH ENTRY. * AS FOLLOWS WHILE THE SELECT$ FLAG IS STILL SET OR * UNTIL EVERY ENTRY HAS BEEN PROCESSED. * E CHECK IF ERROR BIT IS SET IN SUPERVISORY MESSAGE * OF CURRENT MESSAGE, OTHERWISE CLEAR CHOSEN FLAG. * R CHECK IF RESPONSE BIT IS SET IN SUPERVISORY * MESSAGE OF CURRENT MESSAGE, OTHERWISE CLEAR CHOSEN * FLAG. * CN COMPARE THE CONNECTION NUMBER IN THE SUPERVISORY * MESSAGE PROCESSING TABLE WITH ONE IN CURRENT TABLE. * IF NOT MATCH, CLEAR CHOSEN FLAG. * PF COMPARE THE PFC IN TABLE WITH ONE IN MESSAGE. IF * NOT MATCH, CLEAR CHOSEN FLAG. * PS COMPARE THE PFC/SFC IN TABLE WITH ONE IN MESSAGE. IF * NOT MATCH, CLEAR CHOSEN FLAG. * * 4. ENTRY PARAMETERS. * DIRTBLS COMMON BLOCK WITH ALL SELECTION * CRITERIA. * TEMPB2 CONTAINS TEXT * ZHRCD COMMON BLOCK WHERE THE INPUT RECORD IS. * * 5. EXIT PARAMETERS. * CHOSEN IN ZHRCD COMMON BLOCK * * 6. COMDECKS CALLED AND SYMPL TEXTS CALLED. * ABH DIRTBL DIRTBLS DLFPDEF * ERRMSG NP$DLA NHEADER SUPMSG * ZHRCD * * 7. ROUTINES CALLED. * DLABEND ABORT PROGRAM * DLDFM ISSUE DAYFILE MESSAGE * * 8. DAYFILE MESSAGES. * BAD DIRECTIVE TABLE ENTRY. * # *ENDIF # FORMAL PARAMETER # ARRAY TEMPB2; ; # CONTAINS MESSAGE TEXT # # EXTERNAL PROCEDURES # XREF BEGIN PROC DLABEND; # ABORT PROGRAM # PROC DLDFM; # ISSUE DAYFILE MESSAGE # END # LOCAL VARIABLES # BASED ARRAY DATLINE P(4); # AIP ENTRY TEMPLATE # *CALL NP$DLA BASED ARRAY SUPMS; BEGIN *CALL SUPMSG ITEM SUPCN U(0,24,12);# CONNECTION NUMBER IN SUP MSG # END SWITCH CRIT ERR, ERR, ERR, ERR, ERR, ERR, ERR, ERR, ERR, ERR, ERR,ERR, ERR, ERR, ERR, ERR, CN$PROC, E$PROC, R$PROC, PF$PROC, PS$PROC, ERR, ERR; ITEM I, # TEMPORARY VARIABLE # TEMP1; # TEMPORARY VARIABLE # # ******************************************************************** # BEGIN P = LOC(ZHWD1[0]) + BLKHSIZE; P = P + 1; P = LOC(TEMPB2); IF NOT NIP THEN BEGIN # AIP LOG FILE # P = LOC(TEMPB1); IF DL$OPC[0] GQ OP$GETF AND DL$OPC[0] LQ OP$GTFL THEN P = P + 1; IF ABHABT[0] LS APPCMD THEN IF DIRNUMS GR 1 OR DIRSID[1] NQ ID$CN THEN CHOSEN = FALSE; ELSE GOTO DLSMX; END ELSE BEGIN # NIP LOG FILE # IF BT[0] NQ NETCMD THEN IF DIRNUMS GR 1 OR DIRSID[1] NQ ID$CN THEN # ENTRY MUST BE SUP MSG # CHOSEN = FALSE; # CURRENT ENTRY IS NOT SUP MSG # ELSE # DO NOT CHECK FOR VALID CN # GOTO DLSMX; END # LOOP TO PROCESS ALL SELECTION REQUIREMENTS # FOR I = 1 STEP 1 WHILE CHOSEN AND I LQ DIRNUMS DO BEGIN GOTO CRIT[DIRSID[I]]; E$PROC: # ERROR BIT PROCESSING # CHOSEN = EB[0]; GOTO NEXT; R$PROC: # RESPONSE BIT PROCESSING # CHOSEN = RB[0]; GOTO NEXT; CN$PROC: # CONNECTION NUMBER PROCESSING # IF (ABHADR[0] EQ 0 AND SUPCN[0] NQ DIRSVAL[I] AND NOT NIP) OR (CN[0] EQ 0 AND SUPCN[0] NQ DIRSVAL[I] AND NIP) THEN CHOSEN = FALSE; GOTO NEXT; PF$PROC: # PFC PROCESSING # IF PFC[0] NQ DIRSVAL[I] THEN CHOSEN = FALSE; GOTO NEXT; PS$PROC: # PFC/SFC PROCESSING # TEMP1 = DIRSVAL[I]; IF B<54,6>TEMP1 NQ SFC[0] OR B<44,8>TEMP1 NQ PFC[0] THEN CHOSEN = FALSE; GOTO NEXT; ERR: DLDFM(BAD$DNTRY); # BAD DIRECTIVE TABLE ENTRY # DLABEND; # ABORT PROGRAM # NEXT: END DLSMX: END TERM