User Tools

Site Tools


cdc:nos2.source:nam5871:ns_err

NS$ERR

Table Of Contents

  • [00015] PROC NS$ERR(ERRCODE)
  • [00017] NS$ERR - ERROR PROCESSOR.
  • [00021] ERROR PROCESSOR.
  • [00048] PROC NS$DBG
  • [00054] PROC NETPUT
  • [00055] PROC NS$DFT
  • [00056] PROC NS$FBH
  • [00057] PROC NS$FLN
  • [00058] PROC NS$GNW
  • [00059] PROC NS$INL
  • [00060] PROC NS$MSG
  • [00061] PROC NS$TNA
  • [00062] PROC NS$XPD
  • [00063] PROC MOVEOK
  • [00064] PROC PURGE
  • [00065] PROC RECALL
  • [00066] PROC RETERN
  • [00067] PROC RETTSB
  • [00068] PROC TSBINFO
  • [00069] PROC WRITEF

Source Code

NS$ERR.txt
  1. *DECK NS$ERR
  2. USETEXT COM$NS
  3. USETEXT DEF$NS
  4. USETEXT DTSB$NS
  5. USETEXT ERR$NS
  6. USETEXT NAT$NS
  7. USETEXT NDF$NS
  8. USETEXT NDCB$NS
  9. USETEXT NPT$NS
  10. USETEXT NST$NS
  11. USETEXT PFC$NS
  12. USETEXT SMB$NS
  13. USETEXT SMD$NS
  14. USETEXT STC$NS
  15. PROC NS$ERR(ERRCODE); # ERROR PROCESSOR #
  16.  
  17. # TITLE NS$ERR - ERROR PROCESSOR. #
  18.  
  19. BEGIN # NS$ERR #
  20. #
  21. ** NS$ERR - ERROR PROCESSOR.
  22. *
  23. * J.C. LEE 1981
  24. *
  25. * THIS ROUTINE PERFORMS ERROR PROCESSING.
  26. *
  27. *
  28. * PROC NS$ERR(ERRCODE)
  29. *
  30. * ENTRY:
  31. * ERROR PARAMETER.
  32. *
  33. * EXIT:
  34. * NONE.
  35. *
  36. * METHOD:
  37. * USE ERROR CODE TO SWITCH TO THE APPROPRIATE ERROR
  38. * PROCESSING PARAGRAPH. SEND APPROPRIATE ERROR MESSAGE
  39. * TO DAYFILE.
  40. *
  41. #
  42.  
  43. ITEM ERRCODE U; # ERROR CODE #
  44.  
  45. $BEGIN
  46. XREF
  47. BEGIN
  48. PROC NS$DBG; # TRACE PROCEDURE CALL #
  49. END
  50. $END
  51.  
  52. XREF
  53. BEGIN
  54. PROC NETPUT; # NETPUT #
  55. PROC NS$DFT; # DAYFILE TEXT #
  56. PROC NS$FBH; # FORMAT BLOCK HEADER #
  57. PROC NS$FLN; # FORMAT/LOAD NDCB #
  58. PROC NS$GNW; # GET NPU WORD #
  59. PROC NS$INL; # INITIATE NPU LOAD #
  60. PROC NS$MSG; # DISPATCH MESSAGE #
  61. PROC NS$TNA; # TERMINATE NPU ACTIVITY #
  62. PROC NS$XPD; # PROCESS NEXT PCB DIRECTIVE #
  63. PROC MOVEOK; # ALLOW TSB TO MOVE #
  64. PROC PURGE; # PURGE PERMANENT FILE #
  65. PROC RECALL; # RECALL #
  66. PROC RETERN; # RETURN #
  67. PROC RETTSB; # RELEASE TSB #
  68. PROC TSBINFO; # LOCATE TSB #
  69. PROC WRITEF; # WRITE EOF TO FILE #
  70. END
  71.  
  72. DEF L$DFTEXT # 6 #; # LENGTH OF DAYFILE TEXT ALLOWED #
  73.  
  74. ITEM DEC U; # DETAIL ERROR CODE #
  75. ITEM DISCTAB C(10) = "0123456789"; # DISPLAY CODE CONVERSION #
  76. ITEM DISPLAYDEC C(2); # DEC IN DISPLAY-CODED DECIMAL #
  77. ITEM ERC S:EC; # ERROR CODE #
  78. ITEM ERRORCODE U; # ERROR CODE #
  79. ITEM NDTSBN U; # TSB NUMBER OF NDCB DUMP RESPONSE #
  80. ITEM PSTATE U; # PRIMARY NPU STATE #
  81. ITEM ROPTIONS U; # MESSAGE ROUTING OPTIONS #
  82. ITEM TEMP U; # TEMPORARY VARIABLE #
  83. ITEM TLC U; # TEXT LENGTH IN CM WORDS #
  84. ITEM TSBFWA U; # TSB FWA #
  85. ITEM TSBSIZE U; # TSB SIZE #
  86.  
  87. DEF L$EM23 # 3 #;
  88. DEF DM$EM23 # DM$LOCAL+DM$EVENT+DM$NAMLOG #; # ROUTING OPTIONS#
  89. ARRAY MSG$EM23 [0:0] S(L$EM23);
  90. BEGIN
  91. ITEM EM23$TEXT C(0,0,28) = # MESSAGE TEXT #
  92. ["NPUNAME, DUMP XXXXXXX SAVED."];
  93. ITEM EM23$NPNAM C(0,00,7); # NPU NAME #
  94. ITEM EM23$NDPFN C(1,24,7); # NPU DUMP FILE PFN #
  95. ITEM EM23$END U(2,48,12) = [0]; # END OF TEXT #
  96. END
  97.  
  98. DEF L$FAIL # 5 #;
  99. DEF DM$FAIL # DM$LOCAL+DM$SEVENT+DM$NAMLOG #; # ROUTE OPTIONS #
  100. ARRAY MSG$FAIL [0:0] S(L$FAIL);
  101. BEGIN
  102. ITEM FAIL$TEXT C(0,0,47) = # MESSAGE TEXT #
  103. ["NPUNAME, AAAAAAAA ABORTED - EEEEEEEEEEEEEEEEEEE"];
  104. ITEM FAIL$NPNAM C(0,00,7); # NPU NAME #
  105. ITEM FAIL$ATYPE C(0,54,8); # ACTIVITY TYPE #
  106. ITEM FAIL$ERROR C(2,48,19); # ACTIVITY ERROR TYPE #
  107. ITEM FAIL$END U(4,42,18) = [0]; # END OF MESSAGE TEXT #
  108. END
  109.  
  110. DEF L$LGLERR # 3 #;
  111. DEF DM$LGLERR # DM$LOCAL+DM$NAMLOG #; # ROUTING OPTIONS #
  112. ARRAY MSG$LGLERR [0:0] S(L$LGLERR);
  113. BEGIN
  114. ITEM LGL$TEXT C(0,0,25) = # MESSAGE TEXT #
  115. ["SM LOGICAL ERROR RC = NN."];
  116. ITEM LGL$RC C(2,12,2); # REASON CODE #
  117. ITEM LGL$END U(2,30,30) = [0]; # END OF TEXT #
  118. END
  119.  
  120. DEF L$NPERR # 5 #;
  121. DEF DM$NPERR # DM$LOCAL+DM$EVENT+DM$NAMLOG #; # ROUTING OPTION#
  122. ARRAY MSG$NPERR [0:0] S(L$NPERR);
  123. BEGIN
  124. ITEM NPE$TEXT C(0,0,40) = # MESSAGE TEXT #
  125. ["NPUNAME, SM PROTOCOL ERROR AT STATE XXX."];
  126. ITEM NPE$NPNAM C(0,00,7); # NPU NAME #
  127. ITEM NPE$STATE C(3,36,3); # CURRENT NPU STATE #
  128. ITEM NPE$PSTATE U(3,36,6); # NPU PRIMARY STATE #
  129. ITEM NPE$SSTATE U(3,42,6); # NPU SECONDARY STATE #
  130. ITEM NPE$SUDBIT U(3,48,6); # SUD INDICATOR #
  131. ITEM NPE$END U(4,00,60) = [0]; # END OF TEXT #
  132. END
  133.  
  134. DEF L$SMERR # 4 #;
  135. DEF DM$SMERR # DM$LOCAL+DM$NAMLOG #; # ROUTE OPTIONS #
  136. ARRAY MSG$SMERR [SMEC"NSM$ABH":SMEC"HSM$HOPSM"] S(L$SMERR);
  137. BEGIN # SM ERROR DIAGNOSTICS #
  138. ITEM SME$ERROR C(00,00,35) = [
  139. "SM NETWORK ABH ERROR.",
  140. "SM NETWORK ADDRESS ERROR.",
  141. "SM NETWORK PFC/SFC/LT/CC ERROR.",
  142. "SM NETWORK DUMP RESPONSE ERROR.",
  143. "SM ABH ERROR.",
  144. "SM PFC/SFC ERROR.",
  145. "ILLEGAL HOP SM.",
  146. ];
  147. ITEM SME$END U(03,30,30) = [7(0)]; # END OF TEXT #
  148. END
  149.  
  150. ARRAY ACTIVITYTB [PRISTATE"NPS$LSAM":PRISTATE"NPS$DNDCB"] S(1);
  151. BEGIN
  152. ITEM ACTIVITY C(0,0,8) = [ # ACTIVITY TYPE #
  153. "SAM LOAD", # LOADING SAM #
  154. "DUMP", # DUMPING NPU #
  155. "LOAD", # LOADING NPU #
  156. "DUMP", # DUMPING NDCB #
  157. ];
  158. END
  159.  
  160. ARRAY ACTIVERRTB [EC"ERR$TIMER":EC"ERR$SUDL"] S(2);
  161. BEGIN
  162. ITEM ACTERROR C(0,0,19) = [ # NPU ACTIVITY ERROR #
  163. "TIMEOUT.", # TIMER TIMEOUT #
  164. "FILE ERROR NN.", # FILE FORMAT ERROR NN#
  165. "DUMP INDEX FULL.", # NDF INDEX FULL #
  166. "PREEMPTED.", # ACTIVITY PREEMPTED #
  167. "RETRY LIMIT.", # RETRY LIMIT REACHED #
  168. "ABNORMAL RESPONSE", # ABNORMAL RESPONSE #
  169. "TEST FAILED.", # SUD TEST FAILED #
  170. "CANNOT LOAD TEST.", # SUD LOAD FAILED #
  171. ];
  172. END
  173.  
  174. ARRAY FILERRTEXT [FEC"ERR$DPCB":FEC"ERR$PICBD"] S(2);
  175. BEGIN # FILE ERROR DIAGNOSTICS #
  176. ITEM FILE$ERROR C(00,00,19) = [
  177. "BAD DPCB.",
  178. "BAD LPCB.",
  179. "BAD SPCB.",
  180. "BAD PICB.",
  181. "PICB NOT FOUND.",
  182. "LOAD MOD NOT FOUND.",
  183. "BAD LOAD MODULE.",
  184. "BAD NCB SIZE.",
  185. "BAD PICB DIRECTIVE.",
  186. ];
  187. END
  188. CONTROL EJECT;
  189.  
  190. SWITCH ERRORCASE:EC # STATUS SWITCH FOR ERROR CODE #
  191. LB$NP:ERR$NP, # NETWORK PROTOCAL ERROR #
  192. LB$SM:ERR$SM, # SUPERVISORY MESSAGE ERROR #
  193. LB$LGL:ERR$LGL, # SM LOGICAL ERROR #
  194. LB$NPUACT:ERR$TIMER, # ACTIVITY TIMER EXPIRED #
  195. LB$NPUACT:ERR$FILE, # ACTIVITY FILE FORMAT ERROR #
  196. LB$NPUACT:ERR$DN, # ACTIVITY DUMP INDEX FULL #
  197. LB$NPUACT:ERR$PREEM, # ACTIVITY PREEMPTED #
  198. LB$NPUACT:ERR$RETRYS, # RETRY LIMIT REACHED #
  199. LB$NPUACT:ERR$ABRESP, # ABNORMAL RESPONSE FROM NPU #
  200. LB$NPUACT:ERR$SUDTST, # ACTIVITY SUD TEST FAILED #
  201. LB$NPUACT:ERR$SUDL; # ACTIVITY SUD LOAD FAILED #
  202.  
  203. CONTROL EJECT;
  204.  
  205. #
  206.   ACTIVITY ERROR STATUS SWITCH FOR VALID NPU PRIMARY STATE
  207. #
  208. SWITCH ERRSCASE:PRISTATE
  209. ERRS$LSAM:NPS$LSAM, # LOADING SAM #
  210. ERRS$DNPU:NPS$DNPU, # DUMPING NPU #
  211. ERRS$LNPU:NPS$LNPU, # LOADING NPU #
  212. ERRS$DNDCB:NPS$DNDCB; # DUMPING NDCB #
  213.  
  214. #
  215.   STATUS SWITCH FOR ACTIVITY ERROR DURING SAM LOAD
  216. #
  217. SWITCH LSAMCASE:EC
  218. A$TNA:ERR$TIMER, # TIMER/RETRY TIMEOUT #
  219. A$IDN:ERR$FILE, # NLF FILE FORMAT ERROR #
  220. A$RSM:ERR$PREEM, # PREEMPTED SAM LOAD #
  221. A$IDN:ERR$RETRYS, # RETRY LIMIT REACHED #
  222. A$IDN:ERR$ABRESP; # ABNORMAL RESPONSE FROM NPU #
  223.  
  224. #
  225.   STATUS SWITCH FOR ACTIVITY ERROR DURING NPU DUMPING
  226. #
  227. SWITCH DNPUCASE:EC
  228. A$INL:ERR$TIMER, # TIMER/RETRY TIMEOUT #
  229. A$IDN:ERR$FILE, # NLF FILE FORMAT ERROR #
  230. A$IDN:ERR$DN, # NPU DUMP FILE INDEX #
  231. A$RSM:ERR$PREEM, # PREEMPT NPU DUMPING #
  232. A$INL:ERR$RETRYS, # RETRY LIMIT REACHED #
  233. A$INL:ERR$ABRESP; # ABNORMAL RESPONSE FROM NPU #
  234.  
  235. #
  236.   STATUS SWITCH FOR ACTIVITY ERROR DURING NPU LOAD
  237. #
  238. SWITCH LNPUCASE:EC
  239. A$IDN:ERR$TIMER, # TIMER/RETRY TIMEOUT #
  240. A$IDN:ERR$FILE, # NLF FILE FORMAT ERROR #
  241. A$RSM:ERR$PREEM, # PREEMPT NPU LOAD #
  242. A$IDN:ERR$RETRYS, # RETRY LIMIT REACHED #
  243. A$IDN:ERR$ABRESP, # ABNORMAL RESPONSE FROM NPU #
  244. A$IDN:ERR$SUDTST, # SUD TEST FAILED #
  245. A$IDN:ERR$SUDL; # SUD LOAD FAILED #
  246.  
  247. #
  248.   STATUS SWITCH FOR ACTIVITY ERROR DURING DUMPING NDCB
  249. #
  250. SWITCH DNDCBCASE:EC
  251. A$INL:ERR$TIMER, # TIMER/RETRY TIMEOUT #
  252. A$IDN:ERR$FILE, # NLF FILE FORMAT ERROR #
  253. A$RSM:ERR$PREEM, # PREEMPT NPU LOADING #
  254. A$INL:ERR$RETRYS; # RETRY LIMIT REACHED #
  255.  
  256. CONTROL EJECT;
  257.  
  258. $BEGIN
  259. NS$DBG("ERR"); # TRACE CALL #
  260. $END
  261.  
  262. ERR$START:
  263. P<ERRORWORD> = LOC(ERRCODE); # FWA OF ERROR CODE #
  264. ERC = ERRW$EC[0]; # ERROR CODE #
  265. DEC = ERRW$DEC[0]; # DETAIL ERROR CODE #
  266. ERRCODE = 0; # RESET ERRCODE TO ZERO #
  267.  
  268. IF DEC NQ 0
  269. THEN # DEC SPECIFIED #
  270. BEGIN # CONVERT DEC TO 2 DISPLAY-CODED DECIMAL CHARS #
  271. DISPLAYDEC = " "; # CLEAR DISPLAY CODED DEC #
  272. C<0,1>DISPLAYDEC = C<DEC/10,1>DISCTAB;
  273. C<1,1>DISPLAYDEC = C<DEC-DEC/10*10,1>DISCTAB;
  274. END
  275.  
  276. GOTO ERRORCASE[ERC]; # CASE ON ERROR CODE ERC #
  277.  
  278. LB$NP: # PROCESS NETWORK PROTOCAL ERROR #
  279. NPT$PECNT[NTORD] = NPT$PECNT[NTORD] + 1; # INCREMENT PEC #
  280. NPE$NPNAM[0] = NPNAM; # SET NPU NAME #
  281. TEMP = NAT$PSTATE[0]; # PRIMARY NPU STATE #
  282. NPE$PSTATE[0] = C<TEMP,1>DISCTAB;
  283. TEMP = NAT$SSTATE[0]; # SECONDARY NPU STATE #
  284. NPE$SSTATE[0] = C<TEMP,1>DISCTAB;
  285. TEMP = NAT$SUD[0]; # SUD INDICATOR #
  286. NPE$SUDBIT[0] = C<TEMP,1>DISCTAB;
  287. NS$MSG(MSG$NPERR,L$NPERR,DM$NPERR); # DISPATCH MESSAGE #
  288. GOTO LB$LOG; # LOG IN TRACE FILE/DAYFILE #
  289.  
  290. LB$SM: # PROCESS SUPERVISORY MESSAGE ERROR #
  291. IF DEC EQ SMEC"HSM$ABH"
  292. THEN # NAM ERROR #
  293. BEGIN
  294. ROPTIONS = DM$NAMERR + DM$SMERR; # SET NAM ERROR INDICATOR #
  295. END
  296.  
  297. ELSE # NPU ERROR #
  298. BEGIN
  299. ROPTIONS = DM$SMERR;
  300. END
  301.  
  302. NS$MSG(MSG$SMERR[DEC],L$SMERR,ROPTIONS); # DISPATCH MESSAGE #
  303. GOTO LB$LOG; # LOG IN TRACE FILE/DAYFILE #
  304.  
  305. LB$LGL: # PROCESS SM LOGICAL ERROR #
  306. LGL$RC[0] = DISPLAYDEC; # SET LOGICAL ERROR RC #
  307. NS$MSG(MSG$LGLERR,L$LGLERR,DM$LGLERR); # DISPATCH MESSAGE #
  308. GOTO LB$LOG; # LOG IN TRACE FILE/DAYFILE #
  309.  
  310. LB$LOG:
  311. IF ABHABT[0] EQ APPCMD
  312. THEN # SM ORIGINATED AT HOST #
  313. TLC = ABHTLC[0]; # SM TEXT IN CM WORDS #
  314.  
  315. ELSE # SM ORIGINATED AT NPU #
  316. TLC = (2*ABHTLC[0] + 14) / 15; # SM TEXT IN CM WORDS #
  317.  
  318. TLC = TLC + 1; # ADD ONE FOR ABH #
  319.  
  320. IF TLC GR L$DFTEXT
  321. THEN # TLC EXCEEDS ALLOWED DAYFILE TEXT LENGTH #
  322. TLC = L$DFTEXT;
  323.  
  324. NS$DFT(LOC(ABH$WORD),TLC); # DAYFILE BAD SM TEXT #
  325. GOTO ERR$EXIT; # RETURN #
  326.  
  327. CONTROL EJECT;
  328. #
  329.   PROCESS NPU ACTIVITY ERRORS
  330. #
  331. LB$NPUACT:
  332. NPNAM = NPT$NPNAME[NTORD]; # GET NPU NAME #
  333. NATTSBN = NPT$NATTSB[NTORD]; # GET NAT TSB NUMBER #
  334. TSBINFO(TSBSIZE,TSBFWA,NATTSBN); # LOCATE NAT #
  335. P<NAT> = TSBFWA; # FWA OF NAT #
  336. PSTATE = NAT$PSTATE[0]; # CURRENT PRIMARY STATE #
  337. FAIL$NPNAM[0] = NPNAM; # SET NPU NAME #
  338. FAIL$ATYPE[0] = ACTIVITY[PSTATE]; # SET ACTIVITY TYPE #
  339. IF ERC EQ S"ERR$FILE"
  340. THEN # NLF/NCF FORMAT ERROR #
  341. ACTERROR[ERC] = FILE$ERROR[DEC]; # FILE ERROR TEXT #
  342. FAIL$ERROR[0] = ACTERROR[ERC]; # SET NPU ACTIVITY ERROR #
  343. NS$MSG(MSG$FAIL,L$FAIL,DM$FAIL); # DISPATCH MESSAGE #
  344.  
  345. GOTO ERRSCASE[PSTATE]; # CASE ON NPU PRIMARY STATE #
  346.  
  347. ERRS$LSAM: # LOADING SAM #
  348. IF ERC EQ EC"ERR$PREEM"
  349. THEN # SAM LOAD PREEMPTED #
  350. BEGIN # INCREMENT CONSECUTIVE SAM LOAD PREEMPTION COUNT #
  351. TSBINFO(TSBSIZE,TSBFWA,NPT$NSTTSB[NTORD]); # LOCATE NST #
  352. P<NST> = TSBFWA;
  353. NST$SAMSPC[0] = NST$SAMSPC[0] + 1;
  354. MOVEOK(NPT$NSTTSB[NTORD]); # ALLOW NST TO MOVE #
  355. IF NST$SAMSPC[0] GR 2
  356. THEN # DO NOT PREEMPT CURRENT SAM LOAD #
  357. GOTO ERR$EXIT;
  358. END
  359. GOTO LSAMCASE[ERC]; # SWITCH ON VALID ERROR CODE #
  360.  
  361. ERRS$DNPU: # DUMPING NPU #
  362. NDTSBN = NAT$NDTSBN[0]; # DUMP TSB NUMBER #
  363. IF NDTSBN NQ 0
  364. THEN # DUMP TSB EXISTS #
  365. BEGIN
  366. TSBINFO(TSBSIZE,TSBFWA,NDTSBN);# LOCATE DUMP TSB #
  367. P<DTSB$HDR> = TSBFWA;
  368. P<DTSB$FET> = TSBFWA + L$DTSBHDR; # FWA OF NDF FET #
  369. WRITEF(DTSB$FET); # FLUSH CIO BUFFER/WRITE EOF #
  370. RECALL(DTSB$FET); # WAIT TILL I/O COMPLETES #
  371. RETERN(DTSB$FET); # RETURN NDF #
  372. RECALL(DTSB$FET); # WAIT TILL RETURN COMPLETES #
  373.  
  374. IF NAT$F$SNDF[0]
  375. THEN # SAVE INCOMPLETE DUMP FILE #
  376. BEGIN
  377. EM23$NPNAM[0] = NPNAM; # SET NPU NAME #
  378. EM23$NDPFN[0] = DFET$LFN[0]; # SET PFN OF NPU DUMP FILE #
  379. NS$MSG(MSG$EM23,L$EM23,DM$EM23); # DISPATCH MESSAGE #
  380. STC$DUMPS = STC$DUMPS + 1; # INCREMENT DUMPS GENERATED #
  381. TSBINFO(TSBSIZE,TSBFWA,NPT$NSTTSB[NTORD]); # LOCATE NST #
  382. P<NST> = TSBFWA; # FWA OF NST #
  383. TSBINFO(TSBSIZE,TSBFWA,NAT$SMTSBN[0]); # LOCATE NDCB TSB #
  384. P<NDCB> = TSBFWA; # FWA OF NDCB DUMP RESP #
  385. NST$DPDATE[0] = DTSB$PDATE[0]; # MOST RECENT DUMP DATE/TIME #
  386. NST$NDFPFN[0] = DFET$LFN[0]; # MOST RECENT DUMP FILE PFN #
  387. NS$GNW(NDCB,LNPUDTDN,NDCBINDEX"NDCB$HALTC",TEMP);
  388. NST$NHC[0] = TEMP; # SET NPU HALT CODE #
  389. NS$GNW(NDCB,LNPUDTDN,NDCBINDEX"NDCB$PREG",TEMP);
  390. NST$NPR[0] = TEMP; # SET NPU P-REGISTER CONTENT #
  391. MOVEOK(NPT$NSTTSB[NTORD]); # ALLOW NST TO MOVE #
  392. MOVEOK(NAT$SMTSBN[0]); # ALLOW NDCB TSB TO MOVE #
  393. NAT$F$SNDF[0] = FALSE; # CLEAR SAVE DUMP FLAG #
  394. END
  395.  
  396. ELSE # DO NOT SAVE INCOMPLETE NDF #
  397. BEGIN
  398. PURGE(DFET$LFN[0],NDF$UN,NDF$PW); # PURGE INCOMPLETE NDF #
  399. DN = DN - 1; # DECREMENT DUMP NUMBER #
  400. END
  401.  
  402. RETTSB(NDTSBN); # RELEASE DUMP TSB #
  403. NAT$NDTSBN[0] = 0; # CLEAR DUMP TSB NUMBER #
  404. END
  405.  
  406. GOTO DNPUCASE[ERC]; # SWITCH ON ERROR CODE #
  407.  
  408. ERRS$LNPU: # LOADING NPU #
  409. TSBINFO(TSBSIZE,TSBFWA,NPT$NSTTSB[NTORD]); # LOCATE NST #
  410. P<NST> = TSBFWA; # FWA OF NST #
  411. NST$SLFC[0] = NST$SLFC[0] + 1; # INCREMENT SLFC COUNT #
  412. MOVEOK(NPT$NSTTSB[NTORD]); # ALLOW NST TO MOVE #
  413. GOTO LNPUCASE[ERC]; # SWITCH ON ERROR CODE #
  414.  
  415. ERRS$DNDCB: # DUMPING NDCB #
  416. GOTO DNDCBCASE[ERC]; # SWITCH ON ERROR CODE #
  417.  
  418. CONTROL EJECT;
  419. #
  420.   ACTIVITY TERMINATION CASES
  421. #
  422. A$INL: # INITIATE NPU LOADING #
  423. NS$INL(ERRORCODE); # INITIATE NPU LOAD #
  424.  
  425. IF ERRORCODE EQ 0
  426. THEN # NO ERROR ENCOUNTERED #
  427. BEGIN
  428. NS$XPD(ERRORCODE); # PROCESS NEXT PCB DIRECTIVE #
  429. END
  430.  
  431. IF ERRORCODE NQ 0
  432. THEN # ERROR OCCURRED #
  433. BEGIN
  434. ERRCODE = ERRORCODE;
  435. GOTO ERR$START; # PROCESS NPU LOAD ERROR #
  436. END
  437.  
  438. ELSE # NO ERROR #
  439. BEGIN
  440. MOVEOK(NATTSBN); # ALLOW NAT TO MOVE #
  441. GOTO ERR$EXIT; # RETURN #
  442. END
  443.  
  444. A$RSM: # REISSUE SM TO NS #
  445. SM$REISSUE = TRUE;
  446. GOTO A$TNA; # TERMINATE CURRENT ACTIVITY #
  447.  
  448. A$IDN: # TERMINATE CURRENT ACTIVITY #
  449. IF NAT$F$RMTL[0]
  450. THEN # A REMOTE NPU LOAD GOING #
  451. BEGIN
  452. NS$FBH(LNPUIN,TRUE); # FORMAT ABH #
  453. PFCSFC[0] = NPUINN; # SET PFC/SFC #
  454. NPUPO[0] = NAT$PN[0]; # SET PORT NUMBER #
  455. NPUSP[0] = NAT$SPN[0]; # SET SUBPORT NUMBER #
  456. NPULT[0] = LOADTYPE"LT$REMOT"; # SET LOAD TYPE #
  457. NETPUT(ABH$WORD,SMB$BUFFER); # SEND NPU/IN/N #
  458. END
  459.  
  460. IF NAT$SMTSBN[0] NQ 0
  461. THEN # TSB FOR NDCB EXISTS #
  462. BEGIN
  463. NPT$F$LF[NTORD] = TRUE; # SET LOAD FAILURE FLAG #
  464. NS$FLN(TRUE); # RELOAD NDCB INTO NPU #
  465. RETTSB(NAT$SMTSBN[0]); # RELEASE NDCB TSB #
  466. NAT$SMTSBN[0] = 0;
  467. END
  468.  
  469. A$TNA: # CLEANUPS #
  470. NS$TNA;
  471.  
  472. ERR$EXIT:
  473. RETURN;
  474. END # NS$ERR #
  475. TERM
cdc/nos2.source/nam5871/ns_err.txt ยท Last modified: 2023/08/05 17:22 by Site Administrator