cdc:nos2.source:nam5871:np_smsg
Table of Contents
NP$SMSG
Table Of Contents
- [00007] PROC NP$SMSG
- [00067] PROC NP$STPR
- [00068] PROC NP$MSG
Source Code
- NP$SMSG.txt
- *DECK,NP$SMSG
- *IF,DEF,XFR
- USETEXT AIPDEF
- USETEXT NX$ACBX
- USETEXT HEADER
- USETEXT NP$NWL
- PROC NP$SMSG;
- BEGIN
- #
- *1DC NP$SMSG
- *
- * 1. PROC NAME AUTHOR DATE
- * NP$SMSG Y. C. YIP 02/19/1985
- *
- * 2. FUNCTIONAL DESCRIPTION
- *
- * GENERATES A LEGAL OR ILLEGAL TRIGGER BY DOING A
- * A TABLE LOOKUP FOR THE TRIGGER VALUE ASSOCIATED
- * WITH THAT ASYNC MESSAGE.
- *
- * 3. METHOD USED
- * FIRST A TABLE LOOKUP USING AN ARRAY PRESET WITH PFCSFC
- * VALUES AND THE ASSOCIATED TRIGGER VALUES IS PERFORMED.
- * THE LAST ENTRY OF THE ARRAY FOR EACH RESPECTIVE TABLE
- * (PRU SEND, PRU RECEIVE, CHARACTER SEND AND CHARACTER
- * RECEIVE) IS RESERVED FOR STORING THE ASSOCIATED VALUE
- * OF THE ILLEGAL TRIGGER. THE INCOMING PFCSFC IS FIRST
- * LOADED AT THE LAST ENTRY OF THE ARRAY PAIRED WITH THE
- * ILLEGAL TRIGGER VALUE ENTRY. IF THE SEARCH SUCCEEDS AT
- * AN ENTRY PRIOR TO THE LAST ENTRY THEN WE GET A SUCCESSFUL
- * MATCH, ELSE IT WILL MATCH WITH ITSELF LOADED EARLIER AT THE
- * LAST ENTRY OF THE TABLE, HENCE RETURNING THE ILLEGAL TRIGGER
- * IT THEN CALLS THE FILE TRANSFER ACTION PROCESSOR, NP$STPR.
- * XFT/IER HAS DIFFERENT TRIGGER VALUES FOR DIFFERENT REASON
- * CODES. A SEPARATE BLOCK IS USED TO MAP THE REASON CODE TO
- * THE CORRESPONDING TRIGGERS USING A SIMILAR SCHEME AS WITH
- * THE PFCSFC.
- *
- * 4. ENTRY CONDITIONS
- * FTTINDEX IS THE INDEX OF THE FILE TRANSFER CONTROL
- * BLOCK, FTT.
- * LOC$TA POINTS TO THE ADDRESS OF THE LOCATION, THE
- * ASYNC MESSAGE IS STORED.
- *
- * 5. EXIT CONDITONS
- * FTTINDEX - UNCHANGED.
- * A TRIGGER VALUE CONTRIG IS PRODUCED ( LEGAL OR ILLEGAL)
- * AND IS USED IN CALLING NP$STPR.
- *
- * 6. COMDECKS CALLED AND SYMPL TEXTS USED.
- * NP$NWL, NX$ACBX
- *
- * 7. ROUTINES CALLED
- * NP$STPR - FILE TRANSFER TABLE ACTION PROCESSOR.
- * NP$MSG - DAYFILE MESSAGE PROCESSOR.
- *
- * 8. DAYFILE MESSAGES
- * ILLEGAL TRIGGER RECEIVED.
- #
- #
- **** PROC NP$SMSG - XREF LIST.
- #
- XREF # EXTERNAL REFERENCE TABLE #
- BEGIN
- PROC NP$STPR; # STATE TABLE PROCESSOR #
- PROC NP$MSG; # DAYFILE MESSAGE GENERATOR #
- END
- #
- ****
- #
- DEF PRTBLMT # 64 #; # TABLE SIZE FOR THE 4 TABLES #
- DEF PRSPLOWER # 1 #; # LOWER BOUND OF PRU SENDER TABLE #
- DEF PRSPUPPER # 16 #; # UPPER BOUND OF PRU SENDER TABLE #
- DEF PRRPLOWER # 17 #; # LOWER BOUND OF PRU RECEIVER TABLE #
- DEF PRRPUPPER # 32 #; # UPPER BOUND OF PRU RECEIVER TABLE #
- DEF PRSCLOWER # 33 #; # LOWER BOUND OF CHAR SENDER TABLE #
- DEF PRSCUPPER # 41 #; # UPPER BOUND OF CHAR SENDER TABLE #
- DEF PRRCLOWER # 49 #; # LOWER BOUND OF CHAR RECEIVER TABLE#
- DEF PRRCUPPER # 58 #; # UPPER BOUND OF CHAR RECEIVER TABLE#
- DEF XFTLMT # 16 #; # SIZE OF THE XFT TABLE #
- DEF XFTSPLOWER # 1 #; # LOWER BOUND FOR XFT PRU SENDER #
- # REASON CODE TABLE #
- DEF XFTSPUPPER # 8 #; # UPPER BOUND FOR XFT PRU SENDER #
- # REASON CODE TABLE #
- DEF XFTRPLOWER # 9 #; # LOWER BOUND FOR XFT PRU RECEIVER #
- # REASON CODE TABLE #
- DEF XFTRPUPPER # 16 #; # UPPER BOUND FOR XFT PRU RECEIVER #
- # REASON CODE TABLE #
- ITEM CRNT$ORD; # TABLE ORDINAL #
- ITEM CONTRIG; # TRIGGER VALUE RESULTING FROM TABLE#
- ITEM RCORD; # TABLE ORDINAL FOR REASON CODE #
- # TABLE #
- # SEARCH #
- ITEM BACKTRIG; # RETURN TRIGGER BY CALLING NP$STPR #
- ARRAY ILLTRIG[0:0] S(3); # WARNING FOR ILLEGAL TRIGGER #
- BEGIN
- ITEM ILLTRIGC C(00,00,24) = ["ILLEGAL TRIGGER RECEIVED"];
- ITEM ILLTRIGZ U(02,24,36) = [0];
- END
- ARRAY PFCSFCTAB[1:PRTBLMT] S(1); # PFCSFC VS TRIGGER TABLE #
- BEGIN
- # START OF PRU SENDER TABLE #
- ITEM PFSFV U(00,00,16) =[ FCACK, # FOR TRIGGER NSPTFAK #
- FCNAK, # FOR TRIGGER NSPTFNK #
- CONCB, # FOR TRIGGER NSPTNCB #
- SHUINS, # FOR TRIGGER NSPTHSD #
- SHISD, # FOR TRIGGER NSPTNSL #
- PRUONN, # FOR TRIGGER NSPTPRN #
- PRUONA, # FOR TRIGGER NSPTPRA #
- OFTEND, # FOR TRIGGER NSPTOFN #
- XFTIER, # FOR TRIGGER NSPTXFR #
- OFTOFFN, # FOR TRIGGER NSPTOFF #
- INTRUSR, # FOR TRIGGER NSPTINT #
- INTRAPP, # FOR TRIGGER NSPTINT #
- FTON, # FOR TRIGGER NSPTFT #
- FTOFF, # FOR TRIGGER NSPTFT #
- FCBRK, # FOR TRIGGER NSPTBRK #
- , # FOR TRIGGER NRSTILL #
- # START OF PRU RECEIVER TABLE #
- FCACK, # FOR TRIGGER NRPTFAK #
- FCNAK, # FOR TRIGGER NRPTNAK #
- CONCB, # FOR TRIGGER NRPTNCB #
- SHUINS, # FOR TRIGGER NRPTHSD #
- SHISD, # FOR TRIGGER NRPTNSL #
- ESXOKR, # FOR TRIGGER NRPTESK #
- PRUONN, # FOR TRIGGER NRPTPRN #
- PRUONA, # FOR TRIGGER NRPTPRA #
- IFTEND, # FOR TRIGGER NRPTIFN #
- XFTIER, # FOR TRIGGER NRPTXFR #
- IFTOFFN, # FOR TRIGGER NRPTIFF #
- FCRST, # FOR TRIGGER NRPTFRT #
- INTRUSR, # FOR TRIGGER NRPTINT #
- INTRAPP, # FOR TRIGGER NRPTINT #
- FCBRK, # FOR TRIGGER NRPTBRK #
- , # FOR TRIGGER NRSTILL #
- # START OF CHAR SENDER TABLE #
- FCACK, # FOR TRIGGER NSCTFAK #
- FCNAK, # FOR TRIGGER NSCTFNK #
- FCBRK, # FOR TRIGGER NSCRBRK #
- CONCB, # FOR TRIGGER NSCTNCB #
- SHUINS, # FOR TRIGGER NSCTHSD #
- SHISD, # FOR TRIGGER NSCTNSL #
- INTRUSR, # FOR TRIGGER NSCTINT #
- INTRAPP, # FOR TRIGGER NSCTINT #
- , # FOR TRIGGER NSCTILL #
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- # START OF CHAR RECEIVER TABLE #
- FCACK,# FOR TRIGGER NRCTFAK #
- FCNAK,# FOR TRIGGER NRCTNAK #
- FCBRK,# FOR TRIGGER NRCTBRK #
- FCRST,# FOR TRIGGER NRCTRST #
- CONCB,# FOR TRIGGER NRCTNCB #
- SHUINS,# FOR TRIGGER NRCTHSD #
- SHISD,# FOR TRIGGER NRCTNSL #
- INTRUSR,# FOR TRIGGER NRCTINT #
- INTRAPP,# FOR TRIGGER NRCTINT #
- ,# FOR TRIGGER NRCTILL #
- ,
- ,
- ,
- ,
- ,
- ];
- ITEM PFSFTRIG U(00,30,30) = # START OF PRU SENDER TABLE #
- [ NSPTFAK, # FCACK #
- NSPTFNK, # FCNAK #
- NSPTNCB, # CONCB #
- NRSTHSD, # SHUINS #
- NRSTNSL, # SHISD #
- NSPTPRN, # PRUONN #
- NSPTPRA, # PRUONA #
- NSPTOFN, # OFTEND #
- NSPTXFR, # XFTIER #
- NSPTOFF, # OFTOFFN #
- NSPTINT, # INTRUSR #
- NSPTINT, # INTRAPP #
- NSPTFT , # FTON #
- NSPTFT , # FTOFF #
- NSPTBRK, # FCBRK #
- NRSTILL, # ILLEGAL TRIGGER #
- # START OF PRU RECEIVER#
- # TABLE #
- NRPTFAK, # FCACK #
- NRPTNAK, # FCNAK #
- NRPTNCB, # CONCB #
- NRSTHSD, # SHUINS #
- NRSTNSL, # SHISD #
- NRPTESK, # ESXOKR #
- NRPTPRN, # PRUONN #
- NRPTPRA, # PRUONA #
- NRPTIFN, # IFTEND #
- NRPTXFR, # XFTIER #
- NRPTIFF, # IFTOFFN #
- NRPTFRT, # FCRST #
- NRPTINT, # INTRUSR #
- NRPTINT, # INTRAPP #
- NRPTBRK, # FCBRK #
- NRSTILL, # ILLEGAL TRIGGER #
- # START OF CHAR SENDER #
- # TABLE #
- NSCTACK, # FCACK #
- NSCTNAK, # FCNAK #
- NSCTBRK, # FCBRK #
- NSCTNCB, # CONCB #
- NSCTHSD, # SHUINS #
- NSCTNSL, # SHISD #
- NSCTINT, # INTRUSR #
- NSCTINT, # INTRAPP #
- NSCTILL, # ILLEGAL TRIGGER #
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- # START OF CHAR RECVER #
- # TABLE #
- NRCTACK, # FCACK #
- NRCTNAK, # FCNAK #
- NRCTBRK, # FCBRK #
- NRCTRST, # FCRST #
- NRCTNCB, # CONCB #
- NRCTHSD, # SHUINS #
- NRCTNSL, # SHISD #
- NRCTINT, # INTRUSR #
- NRCTINT, # INTRAPP #
- NRCTILL, # ILLEGAL TRIGGER #
- ,
- ,
- ,
- ,
- ,
- ];
- END
- ARRAY BLKPTR [ 0:3] S(1); # CONTROL BLOCK FOR INDEXES INTO #
- BEGIN
- # THE FOUR PFCSFC TABLES #
- ITEM BLKLOWER U(00,00,30) = [ PRSPLOWER, # LOWER BOUND OF PRU #
- # SENDER #
- PRRPLOWER, # LOWER BOUND OF PRU #
- # RECEIVER #
- PRSCLOWER, # LOWER BOUND OF CHAR#
- # SENDER #
- PRRCLOWER # LOWER BOUND OF CHAR#
- # RECEIVER #
- ];
- ITEM BLKUPPER U(00,30,30) = [ PRSPUPPER, # UPPER BOUND OF PRU #
- # SENDER #
- PRRPUPPER, # UPPER BOUND OF PRU #
- # RECEIVER #
- PRSCUPPER, # UPPER BOUND OF CHAR#
- # SENDER #
- PRRCUPPER # UPER BOUND OF CHAR #
- # RECEIVER #
- ];
- END
- ARRAY XFTRCTRIG [1:XFTLMT] S(1); # RC - TRIGGER VALUE TABLE #
- BEGIN # PRU SENDER XFTIER RC TABLE #
- ITEM XFTRC U(00,00,30) = [ RC2, # REASON CODE 2 #
- RC3, # REASON CODE 3 #
- RC4, # REAOSN CODE 4 #
- RC9, # REASON CODE 9 #
- RC6, # REASON CODE 6 #
- RC10, # REASON CODE 10 #
- RC8, # REASON CODE 8 #
- , # PRU RECEIVER #
- RC1, # REASON CODE 1 #
- RC10, # REASON CODE 10 #
- RC8, # REASON CODE 8 #
- RC3, # REASON CODE 3 #
- RC5, # REASON CODE 5 #
- RC7, # REASON CODE 7 #
- RC9, # REASON CODE 9 #
- ];
- ITEM XFTRIGV U(00,30,30) = [ # PRU SENDER #
- NSPTQRE, # FOR RC=2 #
- NSPTXFR, # FOR RC=3 #
- NSPTQRE, # FOR RC=4 #
- NSPTRCT, # FOR RC=9 #
- NSPTIO7, # FOR RC=6 #
- NSPTQRE, # FOR RC=10 #
- NSPTQRE, # FOR RC = 8 #
- NRSTILL, # ILLEGL TRIGGER #
- # PRU RECEIVER #
- NRPTXFR, # FOR RC=1 #
- NRPTXFR, # FOR RC=10 #
- NRPTIO7, # FOR RC=8 #
- NRPTBR3, # FOR RC=3 #
- NRPTES5, # FOR RC=5 #
- NRPTIO7, # FOR RC=7 #
- NRPTTM9, # FOR RC=9 #
- NRSTILL # FOR ILLEGAL TRIGGER #
- ];
- END
- ARRAY RCPTR[0:1] S(1); # REASON CODE INDEX CONTROL BLOCK #
- BEGIN
- ITEM RCLOWER U(00,00,30) = [ XFTSPLOWER, # LOWER BOUND FOR PRU #
- # SENDER #
- XFTRPLOWER, # UPPER BOUND FOR PRU #
- # RECIVER #
- ];
- ITEM RCUPPER U(00,30,30) = [ XFTSPUPPER, # UPPER BOUND FOR PRU #
- # SENDER #
- XFTRPUPPER, # UPPER BOUND FOR PRU#
- # RECEIVER #
- ];
- END
- ITEM INDEX; # LOOP INDEX #
- ITEM LEVLOP B; # FLAG TO LEAVE LOOP #
- CONTROL EJECT;
- # #
- # #
- # CODE OF PROC NP$SMSG BEGINS HERE #
- # #
- # #
- P<SUPMSG> = LOC$TA; # PULL TEMPLATE OVER MESSAGE #
- PRERC = RC; # SAVE REASON CODE #
- CRNT$ORD = FTTSTORD[FTTINDEX];#PICKS UP TABLE ORDINAL FROM FTT #
- IF PFCSFC NQ FCINA # SKIP FCINA #
- THEN
- BEGIN
- LEVLOP = FALSE; # SET FLAG TO FALSE #
- PFSFV[BLKUPPER[CRNT$ORD]] = PFCSFC; # LOAD PFCSFC AT ILLEGAL #
- # TRIGGER ENTRY #
- FOR INDEX = BLKLOWER[CRNT$ORD] STEP 1 WHILE NOT LEVLOP
- DO
- BEGIN
- IF PFCSFC EQ PFSFV[INDEX] # IF MATCH FOUND #
- THEN
- BEGIN
- CONTRIG = PFSFTRIG[INDEX]; # SAVE TRIGGER VALUE #
- LEVLOP = TRUE; # SET FLAG TO EXIT LOOP #
- IF INDEX EQ BLKUPPER[CRNT$ORD]
- THEN
- BEGIN
- NP$MSG(ILLTRIG,XFRDTYPE); # ILLEGAL TRIGGER RECEIVED #
- END # TO DAYFILE #
- END
- END
- IF CONTRIG EQ NSPTXFR AND CRNT$ORD EQ NETSPOD #SPECIAL CASE #
- # XFTIER #
- OR CONTRIG EQ NRPTXFR AND CRNT$ORD EQ NETRPOD
- THEN
- BEGIN
- RCORD = CRNT$ORD;
- LEVLOP = FALSE;
- XFTRC[RCUPPER[RCORD]] = RC; # LOAD RC INTO TABLE #
- FOR INDEX = RCLOWER[RCORD] STEP 1 WHILE NOT LEVLOP
- # SCAN REASON CODE TABLE #
- DO
- BEGIN
- IF RC EQ XFTRC[INDEX] # IF MATCH FOUND #
- THEN
- BEGIN
- CONTRIG = XFTRIGV[INDEX]; # SAVE TRIGGER VALUE #
- LEVLOP = TRUE; # SET FLAG TO LEAVE LOOP #
- IF INDEX EQ RCUPPER[RCORD] # IF UPPER BOUND REACHED #
- THEN
- BEGIN
- NP$MSG(ILLTRIG,XFRDTYPE); # ILLEGAL TRIGGER RECEIVED #
- END # TO DAYFILE #
- ELSE
- BEGIN
- FTTICKVAL[FTTINDEX] = SPMCKMS[0]; # UPDATE LAST CHECK#
- # MARK NUMBER ACKNOWLEDGED #
- FTTCURPRU[FTTINDEX] = SPMCKMP[0]; # UPDATE CURRENT #
- END # PRU POSITION #
- # ASSOCIATED WITH #
- END # LAST CHECKMARK #
- END
- END
- BACKTRIG = CONTRIG; # SET BACKTRIG TO TRIGGER #
- FOR INDEX = 0 WHILE BACKTRIG NQ NIL# REPEAT UNTIL BACKTRIG IS #
- DO # NIL #
- BEGIN
- CONTRIG = BACKTRIG; # SET CONTRIG TO BACKTRIG #
- NP$STPR(FTTINDEX,CONTRIG,BACKTRIG);# CALL NP$STPR #
- END
- END
- RETURN; # RETURN FROM CALLER #
- END # END OF PROC NP$SMSG #
- TERM
- *ENDIF
cdc/nos2.source/nam5871/np_smsg.txt ยท Last modified: 2023/08/05 17:22 by Site Administrator