cdc:nos2.source:nam5871:ns_n04
Table of Contents
NS$N04
Table Of Contents
- [00011] PROC NS$N04(ERRCODE)
- [00013] NS$N04 - PROCESS NPU/DT/N (DUMP NDCB).
- [00017] PROCESS NPU/DT/N (DUMP NDCB).
- [00065] PROC NS$DBG
- [00071] PROC MOVE
- [00072] PROC MOVEOK
- [00073] PROC NS$GNW
- [00074] PROC NS$IND
- [00075] PROC NS$INL
- [00076] PROC NS$MSG
- [00077] PROC NS$XPD
- [00078] PROC REQTSB
- [00079] PROC TSBINFO
- [00080] FUNC NS$CHD C(4)
Source Code
- NS$N04.txt
- *DECK NS$N04
- USETEXT COM$NS
- USETEXT DEF$NS
- USETEXT NAT$NS
- USETEXT NDCB$NS
- USETEXT NPT$NS
- USETEXT NST$NS
- USETEXT SMB$NS
- USETEXT SMD$NS
- PROC NS$N04(ERRCODE); # PROCESS NPU/DT/N (DUMP NDCB) #
- # TITLE NS$N04 - PROCESS NPU/DT/N (DUMP NDCB). #
- BEGIN # NS$N04 #
- #
- ** NS$N04 - PROCESS NPU/DT/N (DUMP NDCB).
- *
- * J.C. LEE 1981
- *
- * THIS ROUTINE PROCESSES NPU/DT/N (DUMP NDCB).
- *
- * PROC NS$N04(ERRCODE)
- *
- * ENTRY:
- * NONE.
- *
- * EXIT:
- * ERRCODE.
- *
- * METHOD:
- * RESET RETRY COUNT TO 0.
- * IF LONG-TERM-DUMP FLAG = "YY", SET FLAG IN NPT.
- * IF LONG-TERM-DUMP FLAG = "NN", CLEAR FLAG IN NPT.
- * ELSE, SET FLAG TO DEFAULT-DUMP FLAG.
- * CALCULATE TSB SIZE AND ALLOCATE TSB FOR NDCB.
- * MOVE NDCB DATA TO TSB.
- * FORMAT NETWORK LOG FILE MESSAGE TO INFORM THE NOP
- * THE HALT CODE AND P-REGISTER CONTENT.
- * DETERMINATE IF NPU IS DUMPED.
- * IF RELOAD DUMP FLAG IS GARBAGE:
- * IF NPU LOADED TOO OFTEN:
- * INHIBIT NPU DUMP.
- * IF NS NOT IN NORMAL MODE:
- * SET NS TO START UP MODE.
- * ELSE
- * IF LONG-TERM-DUMP FLAG IS GARBAGE:
- * SET DUMP-NPU TO "YY".
- * ELSE, SET DUMP-NPU TO LONG-TERM-DUMP FLAG.
- * ELSE:
- * SET DUMP-NPU TO RELOAD-DUMP FLAG.
- * IF IN DEBUG MODE, SET DUMP-NPU TO "YY".
- * IF DUMP-NPU EQ "YY", INITIATE NPU DUMP.
- * ELSE, INITIATE NPU LOAD.
- * IF NO ERROR FROM DUMP/LOAD, PROCESS NEXT
- * NEXT XPCB DIRECTIVE.
- *
- #
- ITEM ERRCODE U; # ERROR CODE #
- $BEGIN
- XREF
- BEGIN
- PROC NS$DBG; # TRACE PROCEDURE CALL #
- END
- $END
- XREF
- BEGIN
- PROC MOVE; # MOVE DATA #
- PROC MOVEOK; # ALLOW TSB TO MOVE #
- PROC NS$GNW; # GET NPU WORD #
- PROC NS$IND; # INITIATE NPU DUMP PROCEDURE #
- PROC NS$INL; # INITIATE NPU LOAD PROCEDURE #
- PROC NS$MSG; # DISPATCH MESSAGE #
- PROC NS$XPD; # PROCESS NEXT XPCB DIRECTIVE #
- PROC REQTSB; # REQUEST TSB #
- PROC TSBINFO; # LOCATE TSB #
- FUNC NS$CHD C(4); # CONVERT HEX CHARACTER TO DISPLAY-CODED #
- END
- ITEM DUMPNPU U; # DUMP NPU SETTING #
- ITEM FLAG B; # LONG TERM DUMP FLAG IN NPT #
- ITEM LTDF U; # LONG TERM DUMP FLAG IN NDCB #
- ITEM NHC U; # NPU HALT CODE #
- ITEM NPR U; # NPU P-REGISTER #
- ITEM RDF U; # RELOAD DUMP FLAG IN NDCB #
- ITEM TSBFWA U; # TSB FWA #
- ITEM TSBN U; # TSB NUMBER #
- ITEM TSBSIZE U; # TSB SIZE #
- DEF L$M04 # 3 #;
- DEF DM$M04 # DM$LOCAL+DM$NAMLOG #; # ROUTING OPTION #
- ARRAY MSG$M04 [0:0] S(L$M04);
- BEGIN
- ITEM M04$TEXT C(0,0,27) = # MESSAGE TEXT #
- ["NPUNAME, HALT XXXX AT AAAA."];
- ITEM M04$NPNAM C(0,00,7); # NPU NAME #
- ITEM M04$NHC C(1,24,04); # NPU HALT CODE #
- ITEM M04$NPR C(2,12,04); # NPU P-REGISTER #
- ITEM M04$END U(2,42,18) = [0]; # END OF TEXT #
- END
- CONTROL EJECT;
- $BEGIN
- NS$DBG("N04"); # TRACE CALL #
- $END
- ERRCODE = 0;
- NAT$RETRYS[0] = 0;
- NS$GNW(SMB$BUFFER,LNPUDTDN,NDCBINDEX"NDCB$RDF",RDF);
- NS$GNW(SMB$BUFFER,LNPUDTDN,NDCBINDEX"NDCB$LTDF",LTDF);
- IF LTDF EQ ASC$YY
- THEN # LONG TERM DUMP FLAG SET #
- FLAG = TRUE;
- ELSE
- BEGIN
- IF LTDF EQ ASC$NN
- THEN # LONG TERM DUMP FLAG CLEARED #
- FLAG = FALSE;
- ELSE
- FLAG = NPT$F$DFDM[NTORD]; # SET TO DEFAULT DUMP FLAG #
- END
- NPT$F$LTDF[NTORD] = FLAG; # UPDATE NPT LONG TERM LTDF FLAG#
- TSBSIZE = (2*ABHTLC[0] + 14) / 15; # TSB SIZE FOR NDCB #
- REQTSB(TSBSIZE,TSBFWA,TSBN); # ALLOCATE TSB FOR NDCB #
- P<NDCB> = TSBFWA; # NDCB TSB FWA #
- MOVE(TSBSIZE,SMB$BUFFER,NDCB); # MOVE NDCB DATA TO TSB #
- NDCB$WORD[0] = 0; # CLEAR NDCB TSB HEADER WORD #
- NDCB$ID[0] = NDCB$IDENT; # NDCB IDENTIFIER #
- NDCB$BS[0] = TSBSIZE; # NDCB TSB SIZE #
- NAT$SMTSBN[0] = TSBN; # SAVE NDCB TSB NUMBER IN NAT #
- MOVEOK(TSBN); # ALLOW NDCB TSB TO MOVE #
- NS$GNW(SMB$BUFFER,LNPUDTDN,NDCBINDEX"NDCB$HALTC",NHC);
- NS$GNW(SMB$BUFFER,LNPUDTDN,NDCBINDEX"NDCB$PREG",NPR);
- #
- FORMAT NETWORK LOG FILE MESSAGE TO INFORM THE NPU
- HALT CODE AND P-REGISTER CONTENT
- #
- M04$NPNAM[0] = NPNAM; # SET NPU NAME #
- M04$NHC[0] = NS$CHD(NHC); # DISPLAY-CODED HEX HALT CODE #
- M04$NPR[0] = NS$CHD(NPR); # DISPLAY-CODED HEX P-REGISTER #
- NS$MSG(MSG$M04,L$M04,DM$M04); # DISPATCH MESSAGE #
- #
- DETERMINE IF NPU IS TO BE DUMPED
- #
- TSBN = NPT$NSTTSB[NTORD]; # TSB NUMBER OF NST #
- TSBINFO(TSBSIZE,TSBFWA,TSBN); # LOCATE NST #
- P<NST> = TSBFWA; # FWA OF NST #
- IF RDF NQ ASC$YY
- AND RDF NQ ASC$NN
- THEN # RELOAD DUMP FLAG IS GARBAGE #
- BEGIN
- IF CURTIME LS NST$DTIMER[0]
- AND NST$LCOUNT[0] GQ MAX$LC
- THEN # NPU LOADED TOO OFTEN #
- DUMPNPU = ASC$NN; # INHIBIT NPU DUMP #
- ELSE
- BEGIN
- IF NSM NQ M$NORMAL # NS STARTED UP FOR LESS THAN 10 MIN #
- AND NST$LC[0] EQ 0 # INITIAL LOAD REQUEST FOR THIS NPU #
- THEN # THE SPECIFIED FDP DICTATES WHETHER TO DUMP NPU #
- DUMPNPU = NSM; # SET TO NS START-UP MODE #
- ELSE
- BEGIN
- IF LTDF NQ ASC$YY
- AND LTDF NQ ASC$NN
- THEN # LONG TERM DUMP FLAG IS GARBAGE#
- DUMPNPU = ASC$YY; # DUMP NPU #
- ELSE
- DUMPNPU = LTDF; # SET TO LONG TERM DUMP SETTING #
- END
- END
- END
- ELSE
- DUMPNPU = RDF; # SET TO RELOAD DUMP SETTING #
- IF NST$SLFC[0] GR 1
- THEN # SUCCESSIVE LOAD FAILURE #
- DUMPNPU = ASC$NN; # INHIBIT NPU DUMP #
- MOVEOK(TSBN); # ALLOW NST TO MOVE #
- IF MODE$DEBUG
- THEN # DEBUG MODE ACTIVATED, DUMP NPU #
- DUMPNPU = ASC$YY;
- IF DUMPNPU EQ ASC$YY
- THEN # TAKE NPU DUMP #
- NS$IND(ERRCODE); # INITIATE NPU DUMP PROCEDURE #
- ELSE # INHIBIT NPU DUMP #
- NS$INL(ERRCODE); # INITIATE NPU LOAD PROCEDURE #
- IF ERRCODE EQ 0
- THEN # PROCESS PROCEDURE DIRECTIVES #
- NS$XPD(ERRCODE);
- RETURN;
- END # NS$N04 #
- TERM
cdc/nos2.source/nam5871/ns_n04.txt ยท Last modified: 2023/08/05 17:22 by Site Administrator