User Tools

Site Tools


cdc:nos2.source:nam5871:npnipsm

NPNIPSM

Table Of Contents

  • [00013] PROC NPNIPSM(BUFADDR,ERROR)
  • [00065] PROC LOCLLCB
  • [00066] PROC NCSTTP
  • [00067] PROC OMSG
  • [00068] PROC OVLCALL
  • [00069] PROC XTRACE

Source Code

NPNIPSM.txt
  1. *DECK NPNIPSM
  2. USETEXT NIPDEF
  3. USETEXT DRHDR
  4. USETEXT MSGIDX
  5. USETEXT OVERLAY
  6. USETEXT PARAMP
  7. USETEXT PARAMS
  8. USETEXT SUPMSG
  9. USETEXT PT
  10. USETEXT LLCB
  11. USETEXT NHEADER
  12. USETEXT NBT
  13. PROC NPNIPSM(BUFADDR,ERROR);
  14. STARTIMS;
  15. #
  16. *1DC NPNIPSM
  17. *
  18. * 1. PROC NAME AUTHOR DATE
  19. * NPNIPSM C. BITTNER 82/06/18
  20. *
  21. * 2. FUNCTIONAL DESCRIPTION
  22. * PROCESS MESSAGES FOR NIP FROM PIP INBOUND BUFFER
  23. * AND A-A MESSAGE QUEUE.
  24. *
  25. * 3. METHOD USED
  26. * MATCH PFCSFC AND JUMP TO CORRESPONDING ACTION
  27. * ORDINAL.
  28. *
  29. * 4. ENTRY PARAMETERS
  30. * BUFADDR - ADDRESS OF MESSAGE BLOCK
  31. *
  32. * 5. EXIT PARAMETERS
  33. * ERROR - FLAG SET TO TRUE IF GARBAGE MESSAGE
  34. *
  35. * 6. SYMPL TEXTS USED
  36. * NIPDEF DRHDR
  37. * PARAMP PARAMS
  38. * OVERLAY SUPMSG
  39. * LLCB NHEADER
  40. *
  41. * 7. ROUTINES CALLED
  42. * LOCLLCB - LOCATE LLCB
  43. * NCSTTP - NETWORK CONNECTION STATE TABLE
  44. * OVLCALL - LOAD AND EXECUTE OVERLAY
  45. * XTRACE - TRACE PROCEDURE CALL
  46. *
  47. *
  48. * 8. DAYFILE MESSAGES AND OTHER IMPORTANT INFORMATION
  49. * THIS PROCEDURE IS CALLED BY NEIB1.
  50. *
  51.  #
  52. STOPIMS;
  53.  
  54. #
  55.   INPUT PARAMETERS
  56. #
  57. ITEM BUFADDR; # ADDRESS OF MESSAGE BLOCK #
  58. ITEM ERROR B; # GARBAGE MESSAGE FLAG RETURNED #
  59.  
  60. #
  61.   EXTERNAL VARIABLES
  62. #
  63. XREF
  64. BEGIN
  65. PROC LOCLLCB; # LOCATE LLCB #
  66. PROC NCSTTP; # NETWORK CONNECTION STATE TABLE #
  67. PROC OMSG; # ISSUE DAYFILE MESSAGE #
  68. PROC OVLCALL; # LOAD AND EXECUTE OVERLAY #
  69. PROC XTRACE; # TRACE PROCEDURE CALL #
  70. END
  71.  
  72. #
  73.   INTERNAL VARIABLES
  74. #
  75.  
  76. DEF ENDTAB #19#; # SIZE OF PFC/SFC TABLE #
  77.  
  78. ITEM NCSTRIG; # NCSTTP TRIGGER #
  79. ITEM I; # INDEX INTO PFC/SFC JUMP TABLE #
  80. ITEM NCN; # CONNECTION NUMBER #
  81. ITEM BADNBLK B; # FLAG FOR BAD NETWORK BLOCK #
  82. ITEM FOUND B; # FLAG FOR LOCATING THE NBT ENTRY #
  83. ITEM INDIX; # LOOP INDEX #
  84.  
  85. ARRAY PFCSFCTAB [0:ENDTAB];
  86. BEGIN
  87. ITEM NIPSMFC U(00,00,16) =
  88. [ICNTE,TCNTAN,TCNTA,ICNAP,ICNEX,ICNAPN,
  89. REGLL,REGCP,REGST,ESTOFF,CHCTE,NPIDD,NPIPP,
  90. TOTBTS,HOPSEND,REGHH,ICNAPA,HECP,INIDMDI,
  91. 0];
  92. ITEM OVL$TRIG U(0,16,12) =
  93. [RICNTER,RTCNTAN,RTCNTAR,RICNAPR,RICNAPR,RICNAPN,
  94. ,,,,RCHCTEU,,,
  95. ,,,RICNAPA,,,
  96. 0];
  97. END
  98.  
  99. SWITCH SMCASEJT C1,C1,C1,C1,C1,C1,
  100. C01,C02,C03,C06,C1,C09,C09,
  101. C07,C08,C04,C1,C05,C10,
  102. C3;
  103.  
  104.  
  105.  
  106.  
  107. BEGIN
  108.  
  109. CONTROL IFEQ DEBUG,1;
  110. XTRACE("NIPSM");
  111. CONTROL FI;
  112.  
  113. ERROR = FALSE;
  114. P<DRHDRWD> = BUFADDR;
  115. P<SUPMSG> = P<DRHDRWD> + BLKHSIZE + NBHSIZE;
  116. NIPSMFC[ENDTAB] = PFCSFC[0]; # GUARANTEE A MATCH #
  117. FOR I=0 WHILE NIPSMFC[I] NQ PFCSFC[0]
  118. DO # FIND MATCHING PFCSFC #
  119. BEGIN
  120. I = I + 1;
  121. END
  122. GOTO SMCASEJT[I]; # JUMP ON ACTION ORDINAL #
  123.  
  124.  
  125. C01:
  126. OVLNAME = NPREGLLP; # OVERLAY NAME #
  127. PARAMS5 = FALSE; # FLAG FOR ERROR #
  128. PARAMP1 = P<DRHDRWD>;
  129. OVLCALL; # LOAD AND EXECUTE OVERLAY #
  130. IF PARAMS5 # IF ERROR OCCURS #
  131. THEN
  132. GOTO C3; # DISCARD REGLL #
  133. ELSE
  134. GOTO EXIT; # NORMAL EXIT #
  135.  
  136. C02:
  137. OVLNAME = NPREGCPP; # OVERLAY NAME #
  138. GOTO C0;
  139.  
  140. C03:
  141. OVLNAME = NPREGSTP;
  142. GOTO C0;
  143.  
  144. C04:
  145. OVLNAME = NPREGHHP;
  146. GOTO C0;
  147.  
  148. C05:
  149. OVLNAME = NPHECPP;
  150. GOTO C0;
  151.  
  152. C06:
  153. OVLNAME = NPESTOFP;
  154. PARAMP2 = 0;
  155. GOTO C0;
  156.  
  157. C07:
  158. OVLNAME = NTOTBTSP;
  159. GOTO C0;
  160.  
  161. C08:
  162. OVLNAME = NPHOPMSP;
  163. GOTO C0;
  164.  
  165. C09:
  166. OVLNAME = NPNPIDDP ;
  167. GOTO C0;
  168.  
  169. C10:
  170. OVLNAME = NPININDP;
  171. GOTO C0;
  172. C0:
  173. #
  174.   CALL PRIMARY OVERLAY TO PROCESS SM
  175. #
  176.  
  177. PARAMP1 = P<DRHDRWD>;
  178. OVLCALL; # LOAD AND EXECUTE OVERLAY #
  179. GOTO EXIT;
  180.  
  181. C1:
  182. #
  183.   CALL NCSTTP
  184. #
  185.  
  186. P<NHEADER> = P<DRHDRWD> + BLKHSIZE;
  187. LOCLLCB(DN[0],SN[0],P<LLCB>); # LOCATE LLCB #
  188. IF P<LLCB> NQ 0
  189. THEN
  190. BEGIN
  191. P<SMNIP> = P<SUPMSG>; # BASE SM #
  192. NCN = ICNCN[0]; # CN FOR ICN/TCN/CHC #
  193. IF PFCSFC[0] EQ TCNTA
  194. THEN
  195. BEGIN
  196. RCBRK = TCNRC[0]; # SAVE REASON CODE #
  197. END
  198. IF PFCSFC[0] EQ ICNTE # ICNTE MESSAGE #
  199. THEN
  200. BEGIN
  201. FOUND = FALSE;
  202. FOR INDIX = 0 STEP NBTFETNO WHILE NOT FOUND AND INDIX LQ
  203. NBTMAXID
  204. DO
  205. BEGIN
  206. IF NBTIUF[INDIX] AND NBTHN[INDIX] EQ DN[0]
  207. THEN
  208. BEGIN
  209. FOUND = TRUE;
  210. IF NBTET[INDIX] EQ "ND" # IF MDI #
  211. THEN
  212. BEGIN
  213. ICNNET[0] = TRUE; # SET CDCNET FLAG #
  214. END
  215. END
  216. END
  217. END
  218. NCSTRIG = OVL$TRIG[I]; # SET NCSTTP TRIGGER #
  219. NCSTTP(P<LLCB>,NCN,NCSTRIG,P<DRHDRWD>);
  220. GOTO EXIT;
  221. END
  222. ELSE
  223. GOTO C3; # PROCESS GARBAGE MESSAGE #
  224.  
  225.  
  226.  
  227.  
  228. C3:
  229. #
  230.   PROCESS GARBAGE MESSAGE
  231. #
  232.  
  233. ERROR = TRUE;
  234.  
  235. EXIT:
  236.  
  237. RETURN;
  238.  
  239.  
  240. END
  241. TERM
cdc/nos2.source/nam5871/npnipsm.txt ยท Last modified: 2023/08/05 17:22 by Site Administrator