*DECK NGIGO USETEXT NIPDEF USETEXT NBT USETEXT OVERLAY USETEXT PARAMP USETEXT PARAMS USETEXT PT USETEXT PWL PRGM NGIGO; # DAYFILE NETWORK RELATED MESSAGES # STARTIMS; # *1DC NGIGO * * 1. PROC NAME AUTHOR DATE * NGIGO E. GEE 86/09/23 * * 2. FUNCTIONAL DESCRIPTION. * DAYFILE NETWORK RELATED MESSAGES. * * 3. METHOD USED. * IF DISCARDING INTRAHOST MSG, * CALL OMSG TO ISSUE DAYFILE MESSAGE. * CALL OVERLAY ODAYFL TO DAYFILE CONTENTS OF WORKLIST. * ELSE (PROCESSING NETWORK MSG), * IF PIP RELATED DAYFILE MESSAGE CODE, * ADD PIP ORDINAL TO DAYFILE MESSAGE. * CALL OMSG TO ISSUE DAYFILE MESSAGE. * IF PIP MESSAGE FOR DAYFILE, * CALL OMSG TO ISSUE PIP DAYFILE MESSAGE. * ELSE (EST RELATED DAYFILE MESSAGE CODE), * ADD EST ORDINAL TO DAYFILE MESSAGE. * CALL OMSG TO ISSUE DAYFILE MESSAGE. * IF ASSOCIATED WORKLIST IS TO BE DAYFILED, * CALL OVERLAY ODAYFL TO DAYFILE CONTENTS OF WORKLIST. * IF NIP IS TO BE ABORTED, * CALL ABORT TO ABORT NIP. * ELSE (NIP DOES NOT NEED TO BE ABORTED), * IF HOST CONSOLE OPERATOR NEEDS TO BE ALERTED, * CALL KHOPMSG TO SEND MSG TO NIP K-DISPLAY. * * 4. ENTRY PARAMETERS. * NBTIDX NBT INDEX OF NBT CURRENTLY BEING PROCESSED * = NBTMAXID + 1 IF PROCESSING INTRAHST QUEUE * PARAMP1 WORKLIST ASSOCIATED WITH DAYFILE MSG CODE * PARAMP4 DAYFILE MESSAGE CODE * * 5. EXIT PARAMETERS. * NONE * * 6. COMDECKS CALLED AND SYMPL TEXTS USED. * NBT NETWORK BUFFER TABLE * NIPDEF CONSTANT DEFINITIONS * OVERLAY TABLE FOR CALLING OVERLAYS * PARAMP BUFFER FOR PASSING PARAMS TO PRIMARY OVLS * PARAMS BUFFER FOR PASSING PARAMS TO SECONDARY OVLS * PT MISCELLANEOUS GLOBAL VARIABLES * PWL PRU WORKLIST TEMPLATE * * 7. ROUTINES AND OVERLAYS CALLED. * ABORT ISSUE DAYFILE MSG, IF ANY, AND THEN ABORT * KHOPMSG SEND MSG TO NAM K-DISPLAY * ODAYFL OVL DISPLAY TEXT IN DAYFILE * OMSG ISSUE DAYFILE MESSAGE * OVLCALL LOAD AND EXECUTE OVERLAY * XTRACE RECORD PROCEDURE CALLS * * 8. DAYFILE MESSAGES AND OTHER IMPORTANT INFORMATION. * *** PIP X ISSUED THE FOLLOWING MESSAGE. *** * *** PIP X SENT MSG WITH BAD BLOCK TYPE. *** * *** PIP X SENT PRU WORKLIST WITH BAD ADDR. *** * *** PIP X SENT PRU WORKLIST FOR NONPRU CON. *** * *** PIP X SENT WORKLIST WITH BAD OPCODE. *** * *** PIP X SENT PRU WORKLIST WITH BAD SM. *** * *** PIP X SENT PRU WORKLIST WITH BAD LENGTH. *** * *** PIP X SENT REL WORKLIST WITH BAD LEVEL. *** * *** PIP X SENT UNEXPECTED RELEASE WORKLIST. *** * *** PIP X SENT TERM WORKLIST WITH BAD RC. *** * *** PIP X REJECTED DOWNLINE MSG. *** * *** EST XXX - BAD NODE NUMBER IN UPLINE MSG. *** * *** EST XXX - UNSUPPORTED CHANNEL PROTOCOL. *** * *** EST XXX - BAD NETWORK BLOCK DISCARDED. *** * *** EST XXX - BAD NBSTTP TRIGGER FROM NETWK. *** * *** EST XXX - MDI ERROR STATUS MESSAGE. *** * *** UNEXPECTED INTRAHOST MSG DISCARDED. *** * * THIS PROGRAM IS A PRIMARY OVERLAY LOADED BY SUBROUTINE OVLCALL. * WHEN EXECUTION HAS COMPLETED, A JUMP IS MADE TO LOCATION RJMAIN * TO RETURN TO THE CALLING PROGRAM. * * W A R N I N G - THIS PROGRAM CANNOT EXCEED THE PRIMARY OVERLAY * BUFFER SIZE MINUS 5 (313B WORDS). * * THIS OVERLAY IS CALLED BY NBSTTP, NEIB1, AND NPPWL. * # STOPIMS; # INPUT PARAMETERS. # # NONE # # OUTPUT PARAMETERS. NONE EXTERNAL VARIABLES # XREF BEGIN PROC ABORT; # ABORT NIP # PROC KHOPMSG ; # SEND MSG TO K-DISPLAY BUFFER # PROC OMSG ; # ISSUE DAYFILE MESSAGE # PROC OVLCALL; # LOAD AND EXECUTE OVERLAY # PROC XTRACE; # TRACE CALLS # LABEL RJMAIN; # RETURN ADDRESS IN OVLCALL # END # INTERNAL VARIABLES # # ARRAY PDAYMSG CONTAINS ALL THE PIP RELATED DAYFILE MESSAGES. THE DMP FIELD IN THE ARRAY IS USED TO DETERMINE IF THE ASSOCIATED WORKLIST IS ALSO TO BE DUMPED. THE ABT FIELD IN THE ARRAY IS USED TO DETERMINE IF NIP SHOULD ABORT AS A RESULT OF THE DAYFILE MESSAGE. THE HOP FIELD IN THE ARRAY IS USED TO DETERMINE IF THE HOP (HOST CONSOLE OPERATOR) NEEDS TO BE ALERTED TO SEE THE DAYFILE MESSAGE. # ARRAY PDAYMSG [DMCMINPIP:DMCMAXPIP] S(5); BEGIN ITEM PDAYTXT C(0,0,40) = ["PIP X ISSUED THE FOLLOWING MESSAGE. ", "PIP X SENT MSG WITH BAD BLOCK TYPE. ", "PIP X SENT PRU WORKLIST WITH BAD ADDR. ", "PIP X SENT PRU WORKLIST FOR NONPRU CON. ", "PIP X SENT WORKLIST WITH BAD OPCODE. ", "PIP X SENT PRU WORKLIST WITH BAD SM. ", "PIP X SENT PRU WORKLIST WITH BAD LENGTH.", "PIP X SENT REL WORKLIST WITH BAD LEVEL. ", "PIP X SENT UNEXPECTED RELEASE WORKLIST. ", "PIP X SENT TERM WORKLIST WITH BAD RC. ", "PIP X REJECTED DOWNLINE MSG. " ]; ITEM PSOURCE C(0,0,5); ITEM PDAYORD U(0,24,6); ITEM PDAYFIL U(4,0,12); ITEM PDAYDMP B(4,23,1) = [FALSE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE]; ITEM PDAYABT B(4,35,1) = [FALSE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, FALSE]; ITEM PDAYHOP B(4,47,1) = [FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE]; END # ARRAY EDAYMSG CONTAINS ALL THE EST RELATED DAYFILE MESSAGES. THE DMP FIELD IN THE ARRAY IS USED TO DETERMINE IF THE ASSOCIATED WORKLIST IS ALSO TO BE DUMPED. THE ABT FIELD IN THE ARRAY IS USED TO DETERMINE IF NIP SHOULD ABORT AS A RESULT OF THE DAYFILE MESSAGE. THE HOP FIELD IN THE ARRAY IS USED TO DETERMINE IF THE HOP (HOST CONSOLE OPERATOR) NEEDS TO BE ALERTED TO SEE THE DAYFILE MESSAGE. # ARRAY EDAYMSG [DMCMINEST:DMCMAXEST] S(5); BEGIN ITEM EDAYTXT C(0,0,40) = ["EST XXX - BAD NODE NUMBER IN UPLINE MSG.", "EST XXX - UNSUPPORTED CHANNEL PROTOCOL. ", "EST XXX - BAD NETWORK BLOCK DISCARDED. ", "EST XXX - BAD NBSTTP TRIGGER FROM NETWK.", "EST XXX - MDI ERROR STATUS MESSAGE. ", "EST XXX - PRU BLOCK PROTOCOL ERROR. " ]; ITEM ESOURCE C(0,0,7); ITEM EDAYORD U(0,24,18); ITEM EDAYFIL U(4,0,12) ; ITEM EDAYDMP B(4,23,1) = [TRUE, TRUE, TRUE, TRUE, TRUE, TRUE]; ITEM EDAYABT B(4,35,1) = [FALSE, FALSE, FALSE, FALSE, FALSE, FALSE]; ITEM EDAYHOP B(4,47,1) = [TRUE, TRUE, FALSE, FALSE, FALSE, FALSE]; END ARRAY INTRAMSG S(4); BEGIN ITEM INTRATXT C(0,00,35) = ["UNEXPECTED INTRAHOST MSG DISCARDED."]; ITEM INTRAFIL U(3,30,30) = [0]; END CONTROL IFEQ DEBUG,1 ; # DAYFILE MESSAGE TO ISSUE IF # ARRAY ABTMSG S(4); # DAYFILE MESSAGE CODE IS BAD # BEGIN ITEM ABTTXT C(0,0,32) = ["BAD DMC PASSED TO OVERLAY NGIGO."]; ITEM ABTFIL U(3,12,48) = [0]; END CONTROL FI; ITEM ABTNIP B; # ABORT NIP FLAG # ITEM ALTHOP B; # ALERT CONSOLE OPERATOR FLAG # ITEM DMC; # DAYFILE MESSAGE CODE # ITEM DMPWL B; # DUMP WORKLIST TO DAYFILE FLAG # #**********************************************************************# BEGIN CONTROL IFEQ DEBUG,1 ; XTRACE("NGIGO") ; # CHECK FOR VALID DAYFILE MESSAGE CODE # IF (PARAMP4 LS DMCMINPIP ) OR ( (PARAMP4 GR DMCMAXPIP) AND (PARAMP4 LS DMCMINEST) ) OR (PARAMP4 GR DMCMAXEST ) THEN # BAD DAYFILE MESSAGE CODE # BEGIN ABORT(ABTMSG,0); # ABORT NIP # END CONTROL FI ; P = PARAMP1; # PRU WORKLIST POINTER # IF NBTIDX EQ NBTMAXID + 1 THEN # WAS PROCESSING INTRAHOST MSG # BEGIN # DISCARDING INTRAHOST MSG # OMSG(INTRAMSG,0); # ISSUE DAYFILE MESSAGE # PARAMS1 = P; # ADDR OF WORKLIST TO DUMP # PARAMS2 = PWLBS[0]; # SIZE OF WORKLIST TO DUMP # OVLNAME = ODAYFLP; # NAME OF OVERLAY TO LOAD # OVLCALL; # LOAD AND EXECUTE OVERLAY # END ELSE # WAS PROCESSING NETWORK MSG # BEGIN DMC = PARAMP4; # DAYFILE MESSAGE CODE # IF DMC LQ DMCMAXPIP THEN # DAYFILE MSG IS PIP RELATED # BEGIN # DISCARDING PIP RELATED MSG # ALTHOP = PDAYHOP[DMC]; # ALERT CONSOLE OPERATOR FLAG # ABTNIP = PDAYABT[DMC]; # ABORT NIP FLAG # DMPWL = PDAYDMP[DMC]; # DUMP CONTENTS OF WORKLIST FLAG# PDAYORD[DMC] = NBTPIP[NBTIDX]+27; # ADD PIP ORD TO DAY MSG # PDAYFIL[DMC] = 0; # ADD ZERO BYTE TERMINATOR # OMSG(PDAYMSG[DMC],0); # ISSUE DAYFILE MESSAGE # IF DMC EQ DMCPDM THEN # PIP SENT MSG FOR DAYFILE # BEGIN OMSG(P+BLKHSIZE+PWLHSIZE,0); # ISSUE PIP DAY MSG # END END ELSE # MUST BE EST RELATED DAY MSG # BEGIN # DISCARDING EST RELATED MSG # ALTHOP = EDAYHOP[DMC]; # ALERT CONSOLE OPERATOR FLAG # ABTNIP = EDAYABT[DMC]; # ABORT NIP FLAG # DMPWL = EDAYDMP[DMC]; # DUMP CONTENTS OF WORKLIST FLAG# # ADD EST ORDINAL TO DAYFILE MSG# EDAYORD[DMC] = (NBTEST1[NBTIDX]+27)*64*64 + (NBTEST2[NBTIDX]+27)*64 + NBTEST3[NBTIDX]+27; # CONVERT TO DISPLAY CODE# EDAYFIL[DMC] = 0; # ADD ZERO BYTE TERMINATOR # OMSG(EDAYMSG[DMC],0); # ISSUE DAYFILE MESSAGE # END # DAYFILE CONTENTS OF WORKLIST IF NECESSARY # IF DMPWL THEN # NEED TO DAYFILE CONTENTS OF WL# BEGIN PARAMS1 = P; # ADDR OF WORKLIST TO DUMP # PARAMS2 = PWLBS[0]; # SIZE OF WORKLIST TO DUMP # OVLNAME = ODAYFLP; # NAME OF OVERLAY TO LOAD # OVLCALL; # LOAD AND EXECUTE OVERLAY # END # ABORT NIP IF NECESSARY # IF ABTNIP THEN # NEED TO ABORT NIP # BEGIN ABORT(0,0); # ABORT NIP # END ELSE # DO NOT NEED TO ABORT NIP # BEGIN # ALERT HOP IF NECESSARY # IF ALTHOP THEN # CONSOLE OPERATOR NEEDS TO BE # BEGIN # INFORMED ABOUT ERROR CONDITION# IF DMC LQ DMCMAXPIP THEN # PIP RELATED DAYFILE MSG # BEGIN KHOPMSG(LOC(PDAYMSG[DMC]));# SEND DAY MSG TO NAM K-DISPLY# END ELSE # EST RELATED DAYFILE MSG # BEGIN KHOPMSG(LOC(EDAYMSG[DMC]));# SEND DAY MSG TO NAM K-DISPLY# END END END END GOTO RJMAIN; # RETURN TO CALLING PROGRAM # END TERM