cdc:nos2.source:nam5871:nphecp
Table of Contents
NPHECP
Table Of Contents
- [00012] PRGM NPHECP
- [00069] PROC XTRACE
- [00070] PROC OMSG
- [00071] PROC MSETIL
- [00072] PROC MCLRIL
- [00073] PROC MRELS
- [00074] FUNC XCDD C(10)
Source Code
- NPHECP.txt
- *DECK NPHECP
- USETEXT NIPDEF
- USETEXT BACKBUF
- USETEXT NBT
- USETEXT PT
- USETEXT PARAMP
- USETEXT NHEADER
- USETEXT NCNT
- USETEXT PCNB
- USETEXT DRHDR
- USETEXT SUPMSG
- PRGM NPHECP;
- STARTIMS;
- #
- *1DC NPHECP
- *
- *
- * 1. PROC NAME AUTHOR DATE
- * NPHECP A. BEN-ARTZI 82/09/14
- *
- * 2. FUNCTIONAL DESCRIPTION
- * PROCESS HE/CP FROM PIP
- *
- * 3. METHOD USED
- * CLEAR NBT DOWN LINE BLOCKS QUEUED
- *
- * 4. ENTRY PARAMETERS
- * PARAMP1 - SM BUFFER (HE/CP)
- *
- * 5. EXIT PARAMETERS
- * PARAMP2 - IF NON-ZERO THEN BAD BLOCK
- *
- * 6. SYMPL TEXTS USED
- * NIPDEF
- * BACKBUF SPECIAL BUFFER FOR DOWNLINE BACKS
- * NBT
- * SUPMSG PARAMP OPSIZE
- * NHEADER DRHDR
- *
- * 7. ROUTINES CALLED
- * XTRACE - TRACE PROCEDURE CALL
- * OMSG - SEND MESSAGE TO DAYFILE
- * MSETIL - SET INTERLOCK TO PIP
- * MCLRIL - CLEAR PIP INTERLOCK
- * OCTCON - CONVERT TO OCTAL DISPLAY CODE
- * XCDD - CONVERT TO DECIMAL DISPLAY CODE
- * MRELS - RELEASE BUFFER
- *
- * 8. DAYFILE MESSAGES AND OTHER IMPORTANT INFORMATION
- * THIS PRIMARY OVERLAY IS CALLED BY NPNIPSM.
- * W A R N I N G - THIS PROGRAM CANNOT EXCEED THE PRIMARY
- *CALL OPSIZE
- *
- #
- STOPIMS;
- #
- PARAMP1 - SM BUFFER (HE/CP)
- EXIT PARAMETER
- PARAMP2 - IF NON-ZERO THEN BAD BLK
- #
- #
- EXTERNAL VARIABLES
- #
- XREF
- BEGIN
- PROC XTRACE; # TRACE PROCEDURE CALL #
- PROC OMSG ;
- PROC MSETIL ;
- PROC MCLRIL ;
- PROC MRELS ;
- FUNC XCDD C(10) ;
- LABEL RJMAIN; # RETURN ADDRESS IN OVLCALL #
- END
- #
- INTERNAL VARIABLES
- #
- ITEM NBTIND; # CURRENT INDEX INTO NBT INPUT FET #
- ITEM FOUND B; # CET ENTRY FOUND FLAG #
- ITEM TEMP ; # LOOP VARIABLE #
- ITEM I; # LOOP VARIABLE #
- ITEM CNXX; # TEMPORARY VARIABLE FOR CONNECTION NUMBER#
- ARRAY TWORD S(2) ;
- BEGIN
- ITEM TWORD1 U(0,0,60) ;
- ITEM TWORD2 U(1,0,60) ;
- END
- ARRAY HECPMS S(4) ;
- BEGIN
- ITEM HECPM0 C(0,0,30) = ["EST XXX - FRONT END INTERFACE "];
- ITEM HECPM2 C(2,0,10) = ["ERROR EE. "];
- ITEM HECPM3 U(3,0,60) = [0]; # END OF MESSAGE #
- ITEM HE$XXX1 C(0,24,1); # 1ST DIGIT OF THE FRONT END EST #
- ITEM HE$XXX2 C(0,30,1); # 2ND DIGIT OF THE FRONT END EST #
- ITEM HE$XXX3 C(0,36,1); # 3RD DIGIT OF THE FRONT END EST #
- ITEM HE$EE C(2,36,2) = [0]; # ERROR CODE #
- END
- ARRAY EHECPMS S(3) ;
- BEGIN
- ITEM EHECPM0 C(0,0,25)=["NW01, NNN,FFEE, CCC ."];
- ITEM EHECPM2 U(2,6,54)=[0]; # END OF MESSAGE #
- ITEM EHE$NNN C(0,36,3); # COUPLER NODE NUMBER #
- ITEM EHE$EE1 C(1,12,1); #FIRST DIGIT OF COUPLER STATUS WORD #
- ITEM EHE$EE2 C(1,18,1); #SECOND DIGIT OF COUPLER STATUS WORD#
- ITEM EHE$CCC1 C(1,36,1);
- ITEM EHE$CCC2 C(1,42,1);
- ITEM EHE$CCC3 C(1,48,1);
- END
- ARRAY HEXCONP [0:15] P(1) ;
- BEGIN
- ITEM V C(0,0,1) = ["0","1","2","3","4","5","6","7",
- "8","9","A","B","C","D","E","F"];
- END
- #**********************************************************************#
- BEGIN
- CONTROL IFEQ DEBUG,1;
- XTRACE("NHECP");
- CONTROL FI;
- P<NHEADER> = PARAMP1 + BLKHSIZE;
- FOUND = FALSE;
- FOR I = 0 STEP NBTFETNO WHILE NOT FOUND AND I LQ NBTMAXID
- DO # SEARCH NBT FOR MATCHING COUPLER NODE #
- BEGIN
- IF NBTIUF[I] AND NBTHN[I] EQ DN[0]
- THEN
- BEGIN # FOUND NBT ENTRY #
- FOUND = TRUE;
- NBTIND = I; # SAVE NBT INDEX #
- END
- END
- IF FOUND
- THEN
- BEGIN # NBT FOUND #
- HE$XXX1[0] = V [ NBTEST1[NBTIND] ]; #1ST DIGIT OF FRONT END EST#
- HE$XXX2[0] = V [ NBTEST2[NBTIND] ]; #2ND DIGIT OF FRONT END EST#
- HE$XXX3[0] = V [ NBTEST3[NBTIND] ]; #3RD DIGIT OF FRONT END EST#
- P<SMNIP> = P<NHEADER> + NBHSIZE;
- I = HEEC[0]; #COUPLER ERROR CODE FROM PIP#
- TEMP = XCDD(I); #CONVERT ERROR CODE TO DECIMAL DISPLAY CODE#
- HE$EE[0] = C<8,2>TEMP;
- OMSG(HECPMS,0); #DAYFILE COUPLER ERROR MESSAGE#
- I = DN[0]; #HOST NODE NUMBER OF COUPLER#
- TEMP = XCDD(I); #CONVERT ERROR CODE TO DECIMAL DISPLAY CODE#
- EHE$NNN[0] = C<7,3>TEMP;
- EHE$EE1[0] = V [ HEEC1[0] ]; #FORMAT HEXADECIMAL ERROR CODE#
- EHE$EE2[0] = V [ HEEC2[0] ];
- EHE$CCC1[0] = V [ HECSR1[0] ]; #COUPLER STATUS WORD, DIGIT 1#
- EHE$CCC2[0] = V [ HECSR2[0] ]; #COUPLER STATUS WORD, DIGIT 2#
- EHE$CCC3[0] = V [ HECSR3[0] ]; #COUPLER STATUS WORD, DIGIT 3#
- OMSG(EHECPMS,4) ; # SEND MESSAGE TO ERROR LOG FILE #
- # UPDATE NBT #
- #
- RELEASE ALL DOWN LINE MESSAGES (ALWAYS AT LEAST ONE)
- #
- IF NOT HEMDI[0] # IF SOFT ERROR FLAG NOT SET #
- THEN
- BEGIN
- MSETIL(0) ;
- FOR I = NBTIND+2 STEP 1 UNTIL NBTIND+4 DO
- BEGIN
- P<DRHDRWD> = NBTFIRST[I];
- FOR TEMP = TEMP WHILE P<DRHDRWD> NQ 0 # WE DID NOT PASS #
- DO
- BEGIN
- IF BLKID[0] EQ PRUSPECID
- THEN
- BEGIN # SPECIAL OUTBOUND BLK FOR PCNB #
- P<NHEADER> = P<DRHDRWD> + BLKHSIZE ;
- P<PCNB> = NHWORD[0] ; #CAN NOW CONVERT NCNB TO PCNB#
- CNXX = PCNBCN[0] ; # SAVE CONNECTION NUMBER #
- # SET BATCH STREAM STATE AND BLOCK HANDLER STATE #
- P<NCNT> = PCNBCTAD[0] ;
- NCNTBSS[CNXX + NCNTHSIZE] = BSSI ;
- IF PCNBDT[0] EQ DT$CR
- OR ( PCNBXFR[0] # FILE TRANSFER CONN #
- AND PCNBREC[0] ) # RECEIVING #
- THEN
- BEGIN
- NCNTBHS[CNXX + NCNTHSIZE] = BHSPRUI ; # INPUT PRU #
- END
- ELSE
- BEGIN
- NCNTBHS[CNXX + NCNTHSIZE] = BHSPRUO ; # PRU OUTPUT #
- END
- PCNBID[0] = PCNBIDVALUE ; # ID NOW IS PCNB #
- BLKID[0] = POBIDVALUE; # CONVERT TO REGULAR ID #
- END
- TEMP = NEXTPTR[0] ; # NEXT DOWN-LINE MESSAGE #
- IF (P<DRHDRWD> LS BACKBLWA) AND
- (P<DRHDRWD> GQ BACKBFWA)
- THEN # THIS IS BACK ENTRY IN BACK BUFFER #
- BEGIN
- P<DRHDRWD> = P<DRHDRWD> - 1; # 1ST WD OF BCK BUF ENTRY#
- CMWORD[0] = BACKFFREE; # PTR TO NEXT FREE ENTRY #
- BACKFFREE = P<DRHDRWD>; # NEW FIRST FREE ENTRY #
- END
- ELSE # THIS IS REGULAR DYNAMIC BUFFER #
- BEGIN
- MRELS(P<DRHDRWD>); # RELEASE BUFFER #
- END
- P<DRHDRWD> = TEMP ;
- END
- NBTOUT[I] = 0 ;
- NBTIN [I] = 0 ;
- NBTFIRST[I] = 0 ;
- END
- MCLRIL ;
- END # END OF SOFT ERROR FLAG #
- END # END OF FOUND #
- GOTO RJMAIN ;
- END
- TERM
cdc/nos2.source/nam5871/nphecp.txt ยท Last modified: 2023/08/05 17:22 by Site Administrator