*DECK NS$IMS
PROC NS$IMS;
# TITLE NS$IMS - NS INTERNAL MAINTAINENCE SPECIFICATION.               #
  
      BEGIN    # NS$IMS # 
# 
**    NS$IMS - NS INTERNAL MAINTAINENCE SPECIFICATION(IMS). 
* 
*     A. LIM    83/01/05
* 
*     THIS PROCEDURE CONTAINS NO EXECUTABLE CODE.  IT IS AN IMS.
* 
*     PROC NS$IMS 
* 
*     ENTRY    NONE 
* 
*     EXIT     NONE 
* 
*E
*     1.0  INTRODUCTION 
*     2.0  OVERLAY STRUCTURES 
*        2.1  OVERLAY LOADING 
*     3.0  TABLE STRUCTURES 
*        3.1  NPU TABLE (NPT) 
*        3.2  NPU ACTIVITY TABLE (NAT)
*        3.3  NPU STATUS TABLE (NST)
*        3.4  NODE CONNECTION TABLE (NCT) 
*        3.5  HISTORY BUFFER
*        3.6  K-DISLPAY BUFFER
*        3.7  PAGE-WAIT BUFFER
*        3.8  NETWORK CONFIGURATION FILE
*           3.8.1  NPU CROSS REFERENCE TABLE
*           3.8.2  PHYSICAL LINK CROSS REFERENCE TABLE
*        3.9  NETWORK DUMP FILE (NDF) 
*        3.10  NETWORK LOAD FILE (NLF)
*     4.0  OVERVIEW 
*        4.1  INITIATION OF LOCAL NPU DUMP/LOAD PROCESS BY SAM
*        4.2  INITIATION OF LOCAL NPU DUMP/LOAD PROCESS BY PIP
*        4.3  REMOTE NPU DUMP/LOAD PROCESS
*        4.4  DUMP PROCEDURE
*           4.4.1  DUMP DECISION
*           4.4.2  DUMP SM SEQUENCE 
*        4.5  LOAD PROCEDURE
*           4.5.1  LOAD SM SEQUENCE 
*        4.6  NS STATE TABLE
*           4.6.1  NS STATE DIAGRAM 
*           4.6.2  NOTES ON NS STATE DIAGRAM
*        4.7  STRUCTURE CHARTS
*           4.7.1  NS EXECUTIVE 
*           4.7.2  SM PROCESSOR 
*                4.7.2.1  NETWORK SM PROCESSOR
*                4.7.2.2  HOST SM PROCESSOR 
*     5.0  MISCELLANEOUS
*        5.1  NS CONTROL STATEMENT PARAMETERS 
*        5.2  TSB MANAGER 
*        5.3  MACREL INTERFACE
*        5.4  HOST OPERATOR COMMANDS
*     6.0  MODULE DESCRIPTIONS
* 
* 
* 
* 
* 
*E
*     1.0  INTRODUCTION 
* 
*     THE NETWORK SUPERVISOR (NS) EXECUTES AS A NAM APPLICATION 
*     WITH SPECIAL PRIVILEGES AND RESPONDS TO REQUESTS TO 
*     PERFORM THE FOLLOWING PROCEDURE:  
* 
*     (1)  DUMP NPU MEMORY INTO A HOST PERMANENT FILE AS
*          DIRECTED BY THE DUMP PROCEDURE CONTROL BLOCK 
*          DIRECTIVES OF THE PROGRAM INITIATION CONTROL 
*          BLOCK (PICB) THAT RESIDES ON THE NETWORK LOAD
*          FILE (NLF).
* 
*     (2)  LOAD CCP SOFTWARE FROM NETWORK LOAD FILE (NLF),
*          AND NPU CONFIGURATION BLOCK (NCB) FROM THE 
*          NETWORK CONFIGURATION FILE (NCF) INTO NPU
*          MEMORY AS DIRECTED BY THE LOAD PROCEDURE 
*          CONTROL BLOCK (LPCB) DIRECTIVES OF THE PICB
*          THAT RESIDES ON NLF. 
* 
*     (3)  SUPPORT NAM K-DISPLAY COMMANDS.
* 
* 
* 
* 
*E
*     2.0  OVERLAY STRUCTURES 
* 
*     NS IS COMPOSED OF A MAIN OVERLAY AND SEVEN PRIMARY
*     OVERLAYS, WITH SOME PRIMARY OVERLAYS CONSIST OF 
*     SECONDARY OVERLAYS. 
*     THE FOLLOWING IS A GENERAL MEMORY LAYOUT OF NS. 
*     THE FIELD LENGTH, AND THE LENGTH OF THE VARIOUS 
*     OVERLAYS ARE SUBJECT TO CHANGE IF FUTURE ENHANCEMENT
*     OR MODIFICATION IS SO DECIDED TO BE NECESSARY.
*     THE FIELD LENGTH SHOWS IN THIS DIAGRAM IS JUST
*     AN APPROXIMATION. 
*     DUE TO PAGE SIZE CONTRAINT, NOT ALL THE SECONDARY 
*     OVERLAYS ARE SHOWN IN THE DIAGRAM.
* 
* 
*      0 +-----------------------------------------------------------+
*        I                                                           I
*        I                                                           I
*        I                                                           I
*        I                                                           I
*        I                                                           I
*        I                          0,0                              I
*        I                                                           I
*        I                                                           I
*        I                                                           I
*        I                                                           I
*        I                                                           I
* 15000  +-----------------------------------------------------------+
*        I            I                I     I 4,0 I     I     I     I
*        I            I       2,0      I 3,0 I     I     I 6,0 I     I
*        I            I                I     I-----I 5,0 I     I     I
*        I    1,0     I----------------+-----+     I     I-----I 7,0 I
*        I            I   I   I   I    I           I     I     I     I
*        I            I2,1I2,2I...I2,13I           +-----+     I     I
*        I            I   I---+   I    I                       I     I
*        +------------+---+       +----+                       +-----+
*        I    I   I   I 
*        I    I   I1,5I 
*        I 1,1I...I   I 
*        I    I   I   I 
*        I    I   +---+ 
*        I    I 
* 16500  +----+ 
* 
* 
*     OVERLAY NUMBER    DESCRIPTIONS
*     --------------    ------------
* 
*     0,0               NS MAIN/RESIDENT OVERLAY
*                       NS EXECUTIVE
*                       UTILITY ROUTINES
* 
*     1,0               NS INITIALIZATION OVERLAY 
* 
*     1,2               NS NETON PROCESSOR OVERLAY
* 
*     1,3               NS BUILD NODE CONNECTION TABLE(NCT) OVERLAY 
* 
*     1,4               NS BUILD NPU TABLE(NPT) OVERLAY 
* 
*     1,5               NS NPU DUMP INDEX INITIALIZER OVERLAY 
* 
*     2,0               NS HOST INTERFACE OVERLAY 
* 
*     2,1               NS HOP/BREAK PROCESSOR OVERLAY
* 
*     2,2               NS HOP/END PROCESSOR OVERLAY
* 
*     2,3               NS HOP COMMAND CRACKER OVERLAY
* 
*     2,4               NS FILE COMMAND PROCESSOR OVERLAY 
* 
*     2,5               NS HISTORY COMMAND PROCESSOR OVERLAY
* 
*     2,6               NS NOFILE COMMAND PROCESSOR OVERLAY 
* 
*     2,7               NS STATUS COMMMAND PROCESSOR OVERLAY
* 
*     2,10              NS K-DISPLAY DIAGNOSTIC OVERLAY 
* 
*     2,11              NS HOP/PAGE PROCESSOR OVERLAY 
* 
*     2,12              NS PROGRAM COMMAND PROCESSOR OVERLAY
* 
*     2,13              NS HOP/START PROCESSOR OVERLAY
* 
*     3,0               NS K-DISLPAY MANAGER OVERLAY
* 
*     4,0               NS NPU ABNORMAL RESPONSE PROCESSOR OVERLAY
* 
*     5,0               NS ERROR PROCESSOR OVERLAY
* 
*     6,0               NS LOAD REQUEST PROCESSOR OVERLAY 
* 
*     7,0               NS NDCB RESPONSE PROCESSOR OVERLAY
* 
* 
*E
*     2.1  OVERLAY LOADING
* 
*     OVERLAY LOADING IS DONE VIA SUBROUTINE CALL TO NETWORK
*     DEFINITION LANGUAGE PROCESSOR (NDLP) ROUTINE *NDLOVLD*. 
*     NDLOVLD-S MAJOR FUNCTION IS TO LOAD OVERLAYS. 
*     IT DETERMINES IF PRIMARY OR SECONDARY OVERLAY IS
*     REQUESTED.  IF THE OVERLAY HAS ALREADY BEEN LOADED
*     JUST SET UP THE RJ AND JUMP TO IT.  OTHERWISE, LOAD 
*     IT.  OVERLAY LOAD ERRORS CAUSE NS TO ABORT.  CLEAR
*     THE SECONDARY DATA WORDS TO ZERO WHEN LOADING A NEW 
*     PRIMARY.  ALSO SAVE THE PRIMARY RETURN ADDRESS
*     TO PRESERVE IT IF SECONDARIES ARE LATER LOADED. 
*     UPON RETURN FROM TEH OVERLAY, FOR PRIMARIES, RESTORE
*     THE RETURN ADDRESS IN CASE IT HAS BEEN CLOBBERED BY 
*     SECONDARY OVERLAY LOADS.  FOR SECONDARIES, RESTORE
*     THE PRIMARY NAME IN CUROVL.  RETURN.
* 
*     ENTRY PARAMETERS:  42/OVL-NAME,6/0,6/PRI,6/SEC
*     OVL-NAME = 7-CHARACTERS OR LESS OVERLAY NAME
*     PRI      = PRIMARY OVERLAY NUMBER 
*     SEC      = SECONDARY OVERLAY NUMBER 
* 
*     EXIT PARAMETERS:   CUROVL - CURRENT OVERLAY SET IN
*                                 EXTERNAL REFERENCE AREA.
* 
* 
* 
* 
*E
*     3.0  TABLE STRUCTURES 
* 
*     THE TABLES DESCRIBED IN THE FOLLOWING SUBSECTIONS ARE 
*     MAJOR TABLES USED BY NS.
* 
* 
*E
*     3.1  NPU TABLE (NPT)
* 
*     THE NPU-TABLE(NPT) CONSISTS OF A ONE-WORD HEADER AND
*     A FIVE-WORD ENTRY FOR EACH NPU DEFINED IN THE NETWORK 
*     CONFIGURATION FILE.  IT HAS THE FOLLOWING FORMAT: 
* 
*     HEADER FORMAT:  
* 
*TEXT 
*T    6/ID,12/EC,18/0,12/NLTAIL,12/NLHEAD 
*ENDTEXT
* 
*     ID     = NPU TABLE ID (5) 
*     EC     = NPU TABLE ENTRY COUNT
*     NLTAIL = NAT LIST TAIL PTR
*     NLHEAD = NAT LIST HEAD PTR
* 
* 
*     NPT FORMAT: 
* 
*TEXT 
*T WORD+0 42/NPU-NAME,2/-,1/L,1/D,1/F,1/S,4/PEC,8/NPUNN 
*T WORD+1 36/VAR-NAME,8/NCTOR,4/LSN,12/NSTTSB 
*T WORD+2 12/NATTSB,48/N-NODE-NUMBERS 
*T WORD+3 30/NCB-LENGTH,30/NCB-RSA
*T WORD+4 42/ALF-PFN,6/-,12/DIR-TSB 
*ENDTEXT
* 
*     NPU-NAME = NPU NAME 
*     -        = UNUSED 
*     L        = LAST LOAD FILE FAILED FLAG 
*     D        = DEFAULT DUMP FLAG
*     F        = LONG TERM DUMP FLAG
*     S        = SUD BYPASS FLAG
*     PEC      = PROTOCOL ERROR COUNT 
*     NPUNN    = NPU NODE NUMBER
*     VAR-NAME = NPU VARIANT NAME 
*     NCTOR    = NODE CONNECTION TABLE ORDINAL
*     LSN      = LOAD SEQUENCE NUMBER 
*     NSTTSB   = NPU STATUS TABLE TSB NUMBER
*     NATTSB   = NPU ACTIVITY TABLE TSB NUMBER
*     N-NODE-NUMBERS = NEIGHBOR NODE NUMBERS
*     NCB-LENGTH = LENGTH OF NCB IN NPU WORDS 
*     NCB-RSA  = NCB RELATIVE SECTOR ADDRESS
*     ALF-PFN  = ALTERNATE NLF PFN
*     DIR-TSB  = ALTERNATE NLF DIRECTORY TSB NUMBER 
* 
* 
*E
*     3.2  NPU ACTIVITY TABLE (NAT) 
* 
*     NAT IS A DYNAMIC TABLE USED BY NS TO CO-ORDINATE
*     AND CONTROL ACTIVITY ON AN NPU.  IT IS CREATED
*     WHEN AN ACTIVITY(NPU DUMP, NPU LOAD, OR SAM LOAD
*     BEGINS AND IS RELEASED WHEN THE ACTIVITY TERMINATES.
*     IT HAS THE FOLLOWING FORMAT:  
* 
*TEXT 
*T WORD+0 6/ID,12/S,12/NCT-ORD,3/-,3/EC,12/BPTR,12/FPTR 
*T WORD+1 8/RN,8/CN,8/PN,8/SPN,4/LSN,8/NO,1/-,1/N,1/L,1/R,3/RTC,1/-,7/ST
*T WORD+2 4/-,8/BC,12/NDTSBN,12/PITSBN,12/PENDI,12/XPCBI
*T WORD+3 4/DC,3/-,1/P,3/DBT,1/S,24/DIRP1,24/DIRP2
*T WORD+4 30/CCRI,30/NCRI 
*T WORD+5 24/LTIMER,24/GTIMER,12/SMTSBN 
*T WORD+6 18/LDATE,18/LTIME,24/NDCB-FWA 
*ENDTEXT
* 
*     ID       = NAT ID (3) 
*     S        = NAT SIZE 
*     -        = UNUSED 
*     NCT-ORD  = NODE CONNECTION TABLE ENTRY ORDINAL
*     EC       = XPCB DIRECTIVE ERROR COUNT 
*     BPTR     = NAT LIST BACKWARD PTR
*     FPTR     = NAT LIST FORWARD PTR 
*     RN       = LOAD REQUESTOR NODE NUMBER 
*     CN       = COUPLER NODE NUMBER
*     PN       = PORT NUMBER
*     SPN      = SUB PORT NUMBER
*     LSN      = LOAD SEQUENCE NUMBER 
*                A SEQUENCE NUMBER MAINTAINED BY NS 
*                (USING MODULO 15) FOR EACH REMOTE NPU, 
*                AND INCLUDED IN NPU/DT SUPERVISORY 
*                MESSAGES OF A REMOTE NPU DUMP/LOAD SEQUENCE. 
*                IT SERVES TO PREVENT RESPONSE SUPERVISORY
*                MESSAGES OF AN EARLIER ABORTED SEQUENCE
*                FROM INTERFERING WITH THE CURRENT ONE. 
*     NO       = NPU TABLE ENTRY ORDINAL FOR THE ACTIVE NPU 
*     -        = UNUSED 
*     N        = SAVE NPU DUMP FILE FLAG
*     L        = SELF LOADING FLAG
*     R        = REMOTE LOAD FLAG 
*     RTC      = NPU/DT/R RETRY COUNT 
*     ST       = NPU STATE
*                PRIMARY NPU STATE: 
*                  1- LOADING SAM 
*                  2- DUMPING NPU 
*                  3- LOADING NPU 
*                  4- DUMPING NDCB
*                SECONDARY NPU STATE: 
*                  1- WAITING FOR LOAD RESPONSE 
*                  2- WAITING FOR DUMP RESPONSE 
*                  3- WAITING FOR START RESPONSE
*                  4- WAITING FOR LOAD NDCB RESPONSE
*     BC       = BATCH COUNT
*     NDTSBN   = TSB NUMBER OF DUMP TSB 
*     PITSBN   = TSB NUMBER OF PICB 
*     PENDI    = PICB INDEX OF END DIRECTIVE
*     XPCBI    = CURRENT PICB DIRECTIVE INDEX 
*     DC       = DIRECTIVE CODE 
*     P        = SET IF DIRECTIVE IS PROCESSED
*     DBT      = DUMP BLOCK TYPE
*     DIRP1    = DIRECTIVE PARAMETER 1
*     DIRP2    = DIRECTIVE PARAMETER 2
*     CCRI     = CURRENT-RANDOM-INDEX OF CURRENT
*                RECORD BEING READ
*     NCRI     = CURRENT-RANDOM-INDEX OF NEXT 
*                READ TO BE READ
*     LTIMER   = LOCAL RESPONSE TIMER (IN SECONDS)
*     GTIMER   = GLOBAL RESPONSE TIMER (IN SECONDS) 
*     SMTSBN   = TSB NUMBER OF DUMP NDCB RESPONSE 
*     LDATE    = LOAD DATE IN PACKED BINARY 
*     LTIME    = LOAD TIME IN PACKED BINARY 
*     NDCB-FWA = NDCB FWA IN NPU
* 
* 
*E
*     3.3  NPU STATUS TABLE (NST) 
* 
*     THE NPU STATUS TABLE(NST) IS A VARIABLE-LENGTH DYNAMIC TABLE
*     CONTAINING THE MOST RECENT DUMP/LOAD STATUS OF AN NPU WHICH 
*     HAS BEEN SERVICED BY NS.  IT IS CREATED WHEN AN NPU ACTIVITY
*     IS INITIATED AND STAYS PERMANENTLY TO LOG ALL RELEVANT STATUS 
*     INFORMATION ASSOCIATED WITH AN NPU ACTICITY.  IT HAS THE
*     FOLLOWING FORMAT: 
* 
*TEXT 
*T WORD+0 6/NSTID,12/NST-SIZE,24/TIMER,2/L,8/NN,8/NORD
*T WORD+1 36/L-DATE-TIME,24/- 
*T WORD+2 36/D-DATE-TIME,8/LC,16/NHALTC 
*T WORD+3 42/NDF-PFN,2/F,16/P-CONTENT 
*T WORD+4 60/EVENT-MESSAGE
*ENDTEXT
* 
*     NSTID           = NST ID (6)
*     NST-SIZE        = NST SIZE
*     TIMER           = TIMER FOR CHECKING MULTI LOADS
*     NN              = NPU NODE NO 
*     L-DATE-TIME     = PACKED BINARY LOAD DATE/TIME
*     -               = UNUSED
*     D-DATE-TIME     = PACKED BINARY DUMP DATE/TIME
*     LC              = LOAD COUNT
*     NHALTC          = NPU HALT CODE IN HEX
*     NDF-PFN         = NAME OF MOST RECENT DUMP FILE 
*     F               = LOAD FAILURE COUNT
*     P-CONTENT       = NPU P-REGISTER CONTENTS 
*     EVENT-MESSAGE   = EVENT-MESSAGE TEXT(UP TO 6 WORDS) 
* 
* 
*E
*     3.4  NODE CONNECTION TABLE (NCT)
* 
*     NCT IS NON-REMOVABLE AND IS BUILT AT NS INITIALIZATION
*     TIME FROM THE NCF-S PHYSICAL LINK CROSS REFERENCE 
*     TABLE AND IS USED TO IDENTIFY AS
*     TO WHICH NPU AN INCOMING SM FOR AN NPU
*     DUMP/LOAD ACTIVITY RELATES.  THE ADDRESSING INFORMATION 
*     IN THE SM I.E. SOURCE NODE NUMBER IN APPLICATION BLOCK
*     HEADER AND PORT NUMBER IN SM, IS USED TO SEARCH THE 
*     NCT TO IDENTIFY THE "ACTIVE" NEIGHBOR NPU NODE.  NCT
*     ENTRIES CONTAINING A CURRENTLY "ACTIVE" NPU NODE ARE
*     QUEUED TO THE TOP OF THE LIST TO SPEED UP IDENTIFYING 
*     TO WHICH "ACTIVE" NPU A RESPONSE SM RELATES.  THE 
*     ENTRIES ARE DEQUEUED FROM THE LIST AND
*     QUEUED TO THE BOTTOM OF THE LIST WHEN THE ACTIVITY TERMINATES.
*     THE NCT IS COMPRISED OF A 1-WORD HEADER AND 1-WORD
*     ENTRIES WHICH CAN BE EITHER A COUPLER-NODE ENTRY OR 
*     AN NPU NODE ENTRY.
* 
*     NCT HEADER WORD FORMAT: 
* 
*TEXT 
*T    6/ID,12/EC,18/-,12/LISTTP,12/LISTHP 
*ENDTEXT
* 
*     ID     = NCT ID 
*     EC     = NCT ENTRY COUNT
*     -      = UNUSED 
*     LISTTP = LIST TAIL POINTER
*     LISTHP = LIST HEAD POINTER
* 
* 
*     NCT ENTRY FORMAT: 
* 
*TEXT 
*T    8/NN,8/PN,8/SPN,8/NNN,3/-,1/N,12/LISTBP,12/LISTFP 
*ENDTEXT
* 
*     NN     = NETWORK NODE NUMBER
*              COUPLER NODE NUMBER IF A COUPLER NODE ENTRY, 
*              AND NPU NODE NUMBER IF A NPU NODE ENTRY. 
*     PN     = PORT NUMBER (NON-ZERO FOR NPU NODE ENTRY ONLY) 
*     SPN    = SUBPORT NUMBER 
*     NNN    = NEIGHBOR NPU NODE NUMBER 
*     -      = UNUSED 
*     N      = NEIGHBOR NPU ACTIVE FLAG 
*     LISTBP = LIST BACKWARD POINTER
*     LISTFP = LIST FORWARD POINTER 
* 
* 
*     APPLICATION BLOCK HEADER(ABH) FORMAT FOR NETWORK SM:  
* 
*TEXT 
*T    6/ABT,8/DN,8/SN,8/CN,4/BT,18/ ,8/CC 
*ENDTEXT
* 
*     ABT = SPECIAL APPLICATION BLOCK TYPE FOR NETWORK
*           SERVICE MESSAGES EXCHANGED BETWEEN CCP AND
*           CS/NS.  VALUE  = 4. 
*     DN  = DESTINATION NODE
*     SN  = SOURCE NODE 
*     CN  = CONNECTION NUMBER 
*     BT  = BLOCK TYPE
*     CC  = CHARCTER COUNT OF THE SERVICE MESSAGE TEXT
* 
* 
*E
*     3.5  HISTORY BUFFER 
* 
*     HISTORY BUFFER IS A VARIABLE-LENGTH DYNAMIC FIFO BUFFER 
*     USED BY NS TO LOG THE RECENT EVENT MESSAGES.  IT IS 
*     ALLOCATED AT NS INITIALIZATION TIME TO LOG THE
*     HEADLINES OF HISTORY DISPLAY, AND EXPANDS AS
*     HISTORY LINES ARE ADDED TO IT.  UP TO 124 LINES 
*     ARE ALLOWED IN THIS BUFFER. 
* 
*     HEADER FORMAT:  
* 
*TEXT 
*T    6/ID,12/WC,12/LC,30/0 
*ENDTEXT
* 
*     ID = HISTORY BUFFER IDENTIFIER (2)
*     WC = NUMBER OF WORDS IN HISTORY BUFFER
*     LC = NUMBER OF LINES IN HISTORY BUFFER
* 
* 
*     HEADLINE 1: NAME AND VERSION OF NS IN DISPLAY CODE. 
*     HEADLINE 2: VERSION (CREATION DATE AND TIME) OF NLF 
*                 IN DISPLAY CODE 
*     HEADLINE 3: VERSION (CREATION DATE AND TIME) OF NCF 
*                 IN DISPLAY CODE.
* 
*     EACH EVENT MESSAGE (AND HEADLINE) IN THE HISTORY-BUFFER 
*     IS COMPRISED OF A LINE HEADER, AND UP TO 58 DISPLAY CODE
*     CHARACTERS PLUS THE ZERO-BYTE LINE TERMINATOR.
* 
* 
*E
*     3.6  K-DISPLAY BUFFER 
* 
*     K-DISPLAY BUFFER IS A VARIABLE LENGTH DYNAMIC 
*     BUFFER USED BY NS TO STORE ANY OUTGOING MESSAGE 
*     FOR THE NAM K-DISPLAY.  A HEADER IS ALLOCATED AT
*     INITIALIZATION TIME AND THE BUFFER EXPANDS AS 
*     OUTGOING MESSAGES ARE ADDED TO IT AND SHRINKS 
*     AS THESE MESSAGES ARE SENT.  A MAXIMUM OF 30
*     LINES (ONE K-DISPLAY PAGE) IS ALLOWED IN THE BUFFER.
*     EACH LINE IN THE K-DISPLAY BUFFER IS COMPRISED OF 
*     A LINE HEADER AND UP TO 58 DIPLAY CODE CHARACTERS 
*     PLUS THE ZERO-BYTE TERMINATOR.
* 
*     ITS HEADER FORMAT:  
* 
*TEXT 
*T    6/ID,12/WC,12/LC,30/- 
*ENDTEXT
* 
*     ID = IDENTIFIER (1) 
*     WC = WORD COUNT 
*     LC = LINE COUNT 
*     -  = UNUSED 
* 
* 
*E
*     3.7  PAGE WAIT BUFFER 
* 
* 
*     PAGE-WAIT-BUFFER IS A VARIABLE-LENGTH DYNAMIC FIFO
*     BUFFER USED BY NS TO STORE K-DISPLAY OUTPUT LINES 
*     WHEN THE NAM K-DISPLAY IS IN PAGE-WAIT MODE.
*     IT IS INITIALLY ALLOCATED AS A ONE-WORD TSB 
*     CONTAINING ONLY THE PAGE-WAIT-BUFFER HEADER WORD
*     WHEN NAM K-DISPLAY IS ASSIGNED TO NS, AND EXPANDS 
*     AS K-DISPLAY OUTPUT LINES ARE ADDED TO IT.  UP TO 
*     160 LINES IS ALLOWED.  PAGE-WAIT BUFFER 
*     IS RELEASED WHEN NS NO LONGER HAS THE NAM K-DISPLAY 
*     ASSIGNED TO IT. 
*     EACH LINE IN THE PAGE WAIT BUFFER IS COMPRISED OF 
*     A LINE HEADER AND UP TO 58 DISPLAY CODE CHARACTERS
*     PLUS THE ZERO-BYTE TERMINATOR.
* 
*     ITS HEADER FORMAT:  
* 
*TEXT 
*T    6/ID,12/WC,12/LC,30/- 
*ENDTEXT
* 
*     ID = IDENTIFIER (7) 
*     WC = CURRENT WORD COUNT 
*     LC = CURRENT LINE COUNT 
*     -  = UNUSED 
* 
* 
*E
*     3.8  NETWORK CONFIGURATION FILE (NCF) 
* 
*     THE NCF IS A DIRECT ACCESS PERMANENT FILE USED BY NS. 
*     ONLY THREE RECORDS FROM THE NCF ARE USED BY NS.  AND
*     THEY ARE:  1) THE NPU CROSS REFERENCE TABLE,
*                2) THE PHYSICAL LINK CROSS REFERENCE TABLE, AND
* 
*                3) THE NETWORK CONFIGURATION BLOCK (NCB).
* 
*E
*     3.8.1  NPU CROSS REFERENCE TABLE
* 
*     THE NPU CROSS REFERENCE TABLE IS A RECORD ON THE
*     NETWORK CONFIGURATION FILE WHICH IS USED TO ASSOCIATE AN
*     NPU NAME WITH ITS NODE NUMBER AND VARIANT NAME.  THERE
*     IS A 2-WORD ENTRY IN THE TABLE FOR EACH NPU.
* 
*TEXT 
*T WORD+0 42/"NPUXREF",18/0 
*T WORD+1 48/-,12/WC
*T WORD+2 42/NPUNAME,1/G,1/D,8/-,8/NID
*T WORD+3 36/VNAME,24/- 
*ENDTEXT
* 
*     -       = UNUSED
*     WC      = NUMBER OF WORDS IN THIS TABLE 
*     NPUNAME = NPU NAME
*     G       = OPERATOR GO REQUIRED FLAG 
*     D       = LONG TERM NPU DUMP FLAG 
*     NID     = NPU NODE ID 
*     VNAME   = NPU VARIANT NAME
* 
* 
*E
*     3.8.2  PHYSICAL LINK CROSS REFERENCE TABLE
* 
* 
*     THE PHYSICAL LINK CROSS REFERENCE TABLE IS A
*     RECORD ON THE NETWORK CONFIGURATION FILE WHICH IS 
*     USED TO INDICATE THE PHYSICAL ELEMENTS(COUPLER AND
*     TRUNK) OF A NETWORK.  THERE IS A 2-WORD ENTRY IN THE
*     TABLE FOR EACH COUPLER OR TRUNK.
*     THE TABLE HAS THE FOLLOWING FORMAT: 
* 
*TEXT 
*T WORD+0 42/"PHYLINK",18/0 
*T WORD+1 48/-,12/WC
*T WORD+2 42/PLNAME,1/T,1/E,8/NUMBER,8/NID
*T WORD+3 42/PLHNAME,1/S,1/L,8/P2PN,8/N2NID 
*ENDTEXT
* 
*     WC      = NUMBER OF WORDS IN TABLE
*     PLNAME  = COUPLER/TRUNK NAME
*     T       = LINK TYPE: 0=COUPLER, 1=TRUNK 
*     E       = ENTRY STATE.
*               FOR COUPLER ENTRY:  
*                 0 - PRIMARY COUPLER 
*                 1 - SECONDARY COUPLER 
*               FOR TRUNK ENTRY:  
*                 0 - NOLOAD NOT SPECIFIED
*                 1 - NOLOAD SPECIFIED
*     NUMBER  = FOR COUPLER ENTRY:  
*                 HOST NODE NUMBER
*               FOR TRUNK ENTRY:  
*                 N1 NODE NUMBER
*     NID     = NODE ID/NUMBER
*     PLHNAME = HOST NUMBER OF THIS COUPLER 
*     S       = TRUNK STATUS: 0-ENABLED, 1-DISABLED 
*     P2PN    = P2 PORT NUMBER
*     N2NID   = N2 NODE ID/NUMBER 
* 
* 
*E
*     3.9  NETWORK DUMP FILE (NDF)
* 
*     THE NPU-DUMP-FILE (NDF) IS A SINGLE-RECORD SEQUENTIAL FILE
*     CREATED BY NS AS A DIRECT ACCESS PERMANENT FILE DURING AN 
*     NPU DUMP PROCEDURE.  NS USES THE FOLLOWING CONSTRAINED
*     NAMING SCHEME TO GENERATE A 7-CHARACTER PERMANENT FILE
*     NAME FOR THE NPU DUMP FILE: 
* 
*     NP(DN)(NIN) 
* 
*     DN  = A 2-DIGIT HEXADECIMAL DUMP NUMBER WHOSE INITIAL 
*           VALUE IS DETERMINED BY NS AT INITIALIZATION TIME
*           BY SEARCHING THE PERMANENT FILE CATALOG FOR THE 
*           FIRST AVAILABLE DUMP NUMBER.
*           THE NUMBER IS CONSECUTIVELY ASSIGNED WHEN 
*           NPU DUMP FILES ARE CREATED. 
*     NIN = A 3-DIGIT DECIMAL NETWORK INVOCATION NUMBER 
*           WHICH IS PASSED TO NS AS A CONTROL STATEMENT
*           PARAMETER.
* 
*     THE NDF IS WRITTEN AS A SINGLE-RECORD SEQUENTIAL FILE 
*     WITH A PREFIX TABLE FOLLOWED BY MULTIPLE CONTIGUOUS 
*     NPU DUMP BLOCKS(NDB).  EACH NDB MAY CONSIST OF UP TO
*     64 DUMP PACKETS EACH OF WHICH MAY CONTAIN UP TO 105 NPU 
*     WORDS.  THE DUMP-PACKETS WITHIN AN NDB ARE NOT NECESSARILY
*     ARRANGED IN ASCENDING ORDER.
* 
*     THE NDF FORMAT: 
* 
*TEXT 
*T    60/         PREFIX TABLE
*T    60/         DUMP BLOCK HEADER 
*T    60/         DUMP PACKET 1 
*T    60/                  .
*T    60/                  .
*T    60/                  .
*T    60/                  .
*T    60/         DUMP PACKET N (UP TO 64)
*T    60/                  .
*T    60/                  .
*T    60/                  .
*T    60/                  .
*T    60/           NPU DUMP BLOCK M
*T    60/                 EOR 
*T    60/                 EOF 
*ENDTEXT
* 
* 
* 
*     THE PREFIX TABLE HAS THE FOLLOWING FORMAT:  
* 
*TEXT 
*T WORD+0 12/"7700",12/"0020",36/0
*T WORD+1 42/NDFPFN,18/0
*T WORD+2 60/         DATE
*T WORD+3 60/         TIME
*T WORD+4 60/         OPS 
*T WORD+5 42/         PRNAME,18/    PRVER 
*T WORD+6 30/      PRLEV,30/- 
*T WORD+7 60/ 
*T WORD+8 60/         TITLE 
*T WORD+15 42/        NPUNAME,1/0,17/NPUPREG
*T WORD+16 36/      NPUVAR,12/NPUID,12/NPUHALT
*ENDTEXT
* 
*     NDFPFN  = NDF PERMANENT FILE NAME 
*     DATE    = DATE THE FILE WAS CREATED, LEFT JUSTIFIED 
*               WITH BLANK FILLED 
*     TIME    = TIME THE FILE WAS CREATED, LEFT JUSTIFIED 
*               WITH BLANK FILLED 
*     OPS     = NAME AND VERSION NUMBER OF THE OPERATING
*               SYSTEM UNDER WHICH THE FILE WAS CREATED 
*     PRNAME  = NAME OF THE PROGRAM THAT CREATED THE FILE 
*     PRVER   = VERSION OF THE PROGRAM THAT CREATED THE FILE
*     PRLEV   = MODIFICATION LEVEL OF THE PROGRAM THAT CREATED
*               THE FILE
*     TITLE   = TITLE FO THE FILE.  70 CHARACTERS OR LESS.
*     NPUNAME = NPU NAME
*     NPUPREG = CONTENT OF NPU P-REGISTER 
*     NPUVAR  = NPU VARIANT NAME
*     NPUID   = NPU NODE ID 
*     NPUHALT = NPU HALT CODE IN HEXADECIMAL DIGIT
* 
*     EACH NPU DUMP BLOCK(NDB) HAS A HEADER WITH THE FOLLOWING
*     FORMAT: 
* 
*TEXT 
*T    3/BT,9/BC,24/BA,24/EA 
*ENDTEXT
* 
*     BT = DUMP BLOCK TYPE
*            1- BASE FILE 1 REGISTERS 
*            2- BASE FILE 2 REGISTERS 
*            4- MACROMEMORY 
*     BC = BATCH COUNT
*          NUMBER OF DUMP PACKETS IN NPU DUMP BLOCK 
*     BA = FWA OF NPU MEMORY DUMP BLOCK 
*     EA = LWA OF NPU MEMORY DUMP BLOCK 
* 
*     NPU DUMP PACKET FORMAT: 
* 
*TEXT 
*T    12/WC,12/HC,12/0,24/BA
*T    16/NPU WORD 0,16/NPU WORD 1,16/NPU WORD 2,12/ETC
*T    60/               . 
*T    60/               . 
*T    60/          UP TO 105 WORDS
*T    60/               . 
*T    60/               . 
*ENDTEXT
* 
*     WC = NUMBER OF WORDS IN PACKET
*     HC = NUMBER OF HEX WORDS IN PACKET
*     BA = FWA OF NPU MEMORY IN PACKET
* 
* 
*E
*     3.10  NETWORK LOAD FILE (NLF) 
* 
*     THE NLF CONTAINS ONE OR MORE LOGICAL RECORDS OF THE 
*     FOLLOWING CCP CODE ENTITIES FOR ALL THE NPUS IN THE 
*     NETWORK THAT CAN BE LOADED BY A GIVEN NS: 
* 
*     - PICB(S)                  PROGRAM INITIATION CONTROL 
*                                BLOCK WHICH CONTAINS DIRECTIVES
*                                FOR NPU DUMP/LOAD PROCEDURE. 
* 
*     - CCP LOAD MODULE(S)       MICROMEMORY CODE, MACROMEMORY
*                                CODE, STARTUP DIAGNOSTIC, SYSTEM 
*                                AUTOSTART MODULE OR DUMP BOOTSTRAP.
* 
*     - CCP OVERLAY MODULE(S)    DUMP/LOAD OVERLAY FOR REMOTE 
*                                NPU DUMP/LOAD OR DIAGNOSTIC OVERLAYS.
* 
*     THE NLF IS ORGANIZED AS A RANDOM ACCESS FILE WITH AN OPLD.
*     THE FIRST RECORD OF EACH CCP CODE ENTITY HAS AN ENTRY IN
*     THE OPLD, WHILE THE REMAINING RECORDS, IF ANY, ARE ACCESSED 
*     SEQUENTIALLY AND DO NOT HAVE CORRESPONDING ENTRIES IN THE OPLD. 
* 
* 
*             NLF                               OPLD
* 
*     +-----------------+                    +------------+ 
*     I  HEADER RECORD  I                    I   HEADER   I 
*     +-----------------+                    +------------+ 
*     I       EOR       I           +--------+   ENTRY 1  I 
*     +-----------------+           I        +------------+ 
*     ICCP CODE ENTITY 1I<----------+  I-----+  ENTRY 2  I
*     I    RECORD 1     I              I     +------------+ 
*     +-----------------+              I     I      .     I 
*     I       EOR       I              I     I      .     I 
*     +-----------------+              I     I      .     I 
*     I        .        I              I     +------------+ 
*     I        .        I              I   +-+  ENTRY N   I 
*     I        .        I              I   I +------------+ 
*     +-----------------+              I   I I            I 
*     ICCP CODE ENTITY 1I              I   I +------------+ 
*     I    RECORD N     I              I   I
*     +-----------------+              I   I
*     I      EOR        I              I   I
*     +-----------------+              I   I
*     I     PICB X      I<-------------+   I
*     I  FOR NPU LOAD   I                  I
*     I  VARIANT X      I                  I
*     +-----------------+                  I
*     I      EOR        I                  I
*     +-----------------+                  I
*     ICCP CODE ENTITY NI<-----------------+
*     I    RECORD 1     I 
*     +-----------------+ 
*     I       .         I 
*     I       .         I 
*     I       .         I 
*     +-----------------+ 
*     I      OPLD       I 
*     +-----------------+ 
*     I      EOR        I 
*     +-----------------+ 
*     I      EOF        I 
*     +-----------------+ 
*     I      EOI        I 
*     +-----------------+ 
* 
*     THE HEADER RECORD CONTAINS THE "7700" TABLE.  FOR 
*     THE LAYOUT OF IT, REFER TO THE NDF. 
* 
*     NS READS THE PICB DIRECTIVES. 
*     EACH PICB HAS THE FOLLOWING FORMAT: 
* 
* 
*      5                   2
*      9                   4              0 
*     +---------------------+--------------+
*     I       RNAME         I       0      I
*     +---------------------+--------------+
*     I LSPCB  I LLPCB  I LDPCB  I NDCB ADRI
*     +------------------------------------+
*     I "DPCB"                             I
*     +------------------------------------+
*     I       DPCB DIRECTIVES              I
*     I                                    I
*     I                                    I
*     I                                    I
*     I                                    I
*     I                                    I
*     +------------------------------------+
*     I        END DIRECTIVE               I
*     +------------------------------------+
*     I "LPCB"                             I
*     +------------------------------------+
*     I       LPCB DIRECTIVES              I
*     I                                    I
*     I                                    I
*     I                                    I
*     I                                    I
*     +------------------------------------+
*     I        END DIRECTIVE               I
*     +------------------------------------+
*     I "SPCB"                             I
*     +------------------------------------+
*     I       SPCB DIRECTIVES              I
*     I                                    I
*     I                                    I
*     I                                    I
*     I                                    I
*     +------------------------------------+
*     I        END DIRECTIVE               I
*     +------------------------------------+
* 
*     RNAME = RECORD NAME, SAME AS NPU LOAD VARIANT NAME, 
*             DISPLAY-CODED, LEFT-JUSTIFIED AND ZERO-FILLED.
*     LSPCB = SIZE OF SPCB
*     LLPCB = SIZE OF LPCB
*     LDPCB = SIZE OF DPCB
*     NDCB  = ADDRESS OF NPU DUMP CONTROL BLOCK IN NPU MEMORY 
*     DPCB  = DUMP PROCEDURE CONTROL BLOCK
*     LPCB  = LOAD PROCEDURE CONTROL BLOCK
*     SPCB  = SAM-LOAD PROCEDURE CONTROL BLOCK
* 
* 
*E
*     4.0  OVERVIEW 
* 
*     A SMALL BOOTSTRAP PROGRAM (SAM-P) IS INITIATED IN THE NPU 
*     TO COMMUNICATE THE REQUEST FOR INITIALIZATION TO A NETWORK
*     NEIGHBOR COMPONENT (NPU OR PIP).  A NEIGHBOR NPU OR PIP 
*     SENDS A REQUEST FOR NPU INITIALIZATION (NPU/IN) TO THE NS 
*     PROGRAM OF ANY ACCESSIBLE HOST. 
* 
*     NS DETERMINES IF A DUMP IS TO BE TAKEN, CONTROLS THE DUMP 
*     PROCESS IF REQUESTED, CONTROLS THE LOAD PROCESS AND ISSUES
*     THE ORDER TO START THE NEWLY LOADED SOFTWARE. 
* 
*     DUMP AND LOAD DATA IS EXCHANGED BETWEEN NS AND SAM-P BY 
*     MEANS OF NPU DATA SERVICE MESSAGES (NPU/DT).  NS WRITES 
*     THE DUMP DATA TO A NETWORK DUMP FILE (NDF) AND READS LOAD 
*     DATA FROM THE NETWORK LOAD FILE (NLF).  NDF AND NLF ARE 
*     PERMANENT FILES ON THE HOST-S MASS STORAGE DEVICE. NDF IS 
*     LATER PROCESSED BY THE NETWORK DUMP ANALYZER (NDA) WHILE
*     NLF MUST HAVE BEEN CREATED PREVIOUSLY BY THE NETWORK LOAD 
*     FILE GENERATOR (LFG).  NDA AND LFG ARE BATCH UTILITY
*     PROGRAMS PROVIDED FOR NETWORK SUPPORT.
* 
*     ALSO GENERATED BY A BATCH RUN OF THE NETWORK DEFINITION 
*     LANGUAGE (NDL) PROCESSOR IS THE NETWORK CONFIGURATION FILE
*     (NCF).  BESIDES OTHER INFORMATION USED BY THE COMMUNICATION 
*     SUPERVISOR (CS), IT CONTAINS A PREFORMATTED NPU CONFIGURATION 
*     BLOCK (NCB) FOR EACH NPU TO BE LOADED.  THE PROPER NCB IS 
*     SELECTED AND APPENDED TO THE LOAD DATA BY NS DURING THE 
*     LOAD PROCESS.  SEE NDLP IMS FOR A DESCRIPTION OF THE NCB. 
* 
*     ONCE SUCCESSFULLY LOADED, THE NEWLY LOADED NPU IS STARTED.
*     THE NPU USES THE NCB INFORMATION TO SET ITS NODE NUMBER AND 
*     TO CREATE VARIOUS CONTROL BLOCKS AND ROUTING TABLES WHICH 
*     DEFINE THE LINKS TO THE HOST(S) AND TO THE OTHER NPUS AS
*     WELL AS THE PATH(S) TO A CS.
* 
* 
*E
*     4.1  INITIATION OF LOCAL NPU DUMP/LOAD PROCESS BY SAM 
* 
*     IF THE NPU IS EQUIPPED WITH A SAM-C BOARD, ALL LOAD/DUMP
*     REQUESTS MUST BE INITIATED BY THE SAM BOOTSTRAP PROGRAM.
*     REQUESTS VIA A COUPLER ARE MADE BY SETTING THE
*     "INITIALIZATION" STATUS CODE INTO THE NPU STATUS WORD 
*     REGISTER OF THE COUPLER.  THE NEIGHBOR COMPONENT IS THE 
*     PERIPHERAL PROCESSOR INTERFACE PROGRAM (PIP). 
*     A PIP, SENSING SUCH AN NPU REQUEST FOR INITIALIZATION,
*     FORWARDS THE REQUEST TO NS IN THE FORM OF AN NPU/IN/C 
*     (NPU INITIALIZATION SM COMMAND).
* 
* 
*E
*     4.2  INITIATION OF LOCAL NPU DUMP/LOAD PROCESS BY PIP 
* 
*     FOR NPUS WITHOUT SAM-C BOARDS, PIP MAINTAINS AN NPU DEAD
*     TIMER.  THIS TIMER IS RESTARTED AFTER EVERY SUCCESSFUL
*     DIALOGUE WITH THE NPU.  A PERIODIC "IDLE" DIALOGUE IS FORCED
*     IN ABSENCE OF ANY DATA EXCHANGES.  IF THE DEAD TIMER EXCEEDS
*     20 SECONDS, PIP ASSUMES THE NPU HAS FAILED.  IT ISSUES AN 
*     NPU/IN/C (B) (NPU INITIALIZATION SM REQUEST FOR SAM-P 
*     BOOTSTRAP) TO NS. 
* 
*     THE NPU/IN/C (B) CAUSES NS TO INITIATE THE LOAD OF THE SAM-P
*     BOOTSTRAP INTO THE NPU.  THE BOOTSTRAP IS FOUND ON THE NLF
*     AS PREFORMATTED 105-NPU-WORD SEGMENTS WHICH ARE SENT TO PIP 
*     AS NPU/DT/R (L) SERVICE MESSAGES.  THESE SEGMENTS ARE SENT
*     IN BATCHES, WHERE THE BATCH COUNT PARAMETER IN THE LAST 
*     SEGMENT CAUSES AN NPU/DT/N (L) RESPONSE FROM PIP. 
* 
*     LOADING OF SAM-P BY NS IS CONTROLLED BY THE SPCB (SAM-LOAD
*     PROCEDURE CONTROL BLOCK).  THIS SPCB IS CONTAINED IN THE
*     PICB (PROGRAM INITIATION CONTROL BLOCK) FOR THE NPU IN
*     THE NETWORK LOAD FILE (NLF).
* 
* 
*E
*     4.3  REMOTE NPU DUMP/LOAD PROCESS 
* 
*     A NEIGHBOR NPU, SENSING A REMOTE NPU REQUEST FOR
*     INITIALIZATION VIA THE CDCCP TRUNK PROTOCOL, SENDS
*     AN NPU/IN/R (NPU INITIALIZATION SM REQUEST) TO NS.
*     NS DISTINGUISHES A REMOTE NPU DUMP/LOAD REQUEST FROM
*     A LOCAL NPU DUMP/LOAD REQUEST VIA THE APPLICATION 
*     BLOCK HEADE ID R WORD OF THE NPU/IN.  A SOURCE NODE ID (SN) 
*     EQUALS THE DESTINATION NODE ID (DN) WOULD INDICATE
*     A REQUEST FOR A LOCAL NPU DUMP/LOAD.  NS DETERMINES 
*     THE REMOTE NPU THAT NEEDS THE INITIALIZATION FROM THE 
*     SOURCE NODE ID OF THE APPLICATION BLOCK HEADER OF 
*     NPU/IN/R AND FROM THE PORT NUMBER SPECIFIED AS A PARAMETER
*     IN NPU/IN/R.  THIS DETERMINATION IS ACCOMPLISHED BY 
*     SEARCHING THE NODE CONNECTION TABLE (NCT).
* 
*     NS THEN MAKES SURE THAT IT DOES NOT ALREADY HAVE AN NPU 
*     ACTIVITY CONTROL BLOCK (NAT) FOR THIS NPU.  IF THERE IS 
*     ALREADY AN NAT, THE PREVIOUS ACTIVITY IS ABORTED.  NS 
*     THEN INCREMENTS THE LOAD SEQUENCE NUMBER (LSN) IT MAINTAINS 
*     FOR THIS NPU.  THE LSN IS INCLUDED IN NPU/DT MESSAGES AND 
*     SERVES TO PREVENT MESSAGES OF AN EARLIER LOAD SEQUENCE FROM 
*     INTERFERING WITH A CURRENT ONE. 
* 
*     THE PROCESS CONTINUES WITH THE DETERMINATION OF WHETHER OR
*     NOT A DUMP SHALL BE TAKEN, FOLLOWED BY THE DUMP SM SEQUENCE 
*     IF APPLICABLE AND WITH THE LSN.  ALL ACTIONS ARE DICTATED BY
*     NS, THE NEIGHBOR NPU MUST ONLY PASS THE VARIOUS NPU/DT/R
*     (NPU DATA SM REQUESTS) TO SAM IN THE REMOTE NPU AND PASS
*     NPU/DT/N RESPONSES FROM SAM IN THE REMOTE NPU TO NS AS
*     DESCRIBED IN MORE DETAIL IN SECTIONS 4.4 AND 4.5. 
* 
*     THE LOAD/DUMP PROCESS IS TERMINATED BY NS ONCE THE NPU
*     SOFTWARE HAS BEEN SUCCESSFULLY LOADED AND STARTED OR
*     WHEN, DUE TO AN UNRECOVERABLE FAILURE, IS UNABLE TO 
*     CONTINUE.  IN BOTH TERMINATION CASES, THE NAT IS RELEASED 
*     AND THE NEIGHBOR NPU IS NOTIFIED BY A NPU/IN/N (NPU 
*     INITIALIZATION SM NORAML RESPONSE). 
* 
* 
*E
*     4.4  DUMP PROCEDURE 
* 
*     4.4.1  DUMP DECISION
* 
*     THE FIRST DECISION NS MUST MAKE AFTER IT HAS RECEIVED AN
*     NPU/IN/R IS TO DETERMINE WHETHER OR NOT A DUMP SHALL BE 
*     TAKEN.  THIS DECISION IS DEPENDANT ON FOUR VARIABLE:  
* 
*     1)  THE "RELOAD DUMP FLAG" OBTAINED FROM THE NDCB IN NPU
*         MEMORY.  WHENEVER THIS FLAG IS SET TO EITHER "YY" OR
*         "NN", NS CAN ASSUME IT IS OBEYING AN OPERATOR "LOAD"
*         COMMAND, AND WILL THEREFORE OBEY THE "YY" OR "NN" 
*         DIRECTION WITHOUT FURTHER CONSIDERATIONS. 
* 
*     2)  THE LENGTH OF TIME SINCE THE NEXT-TO-LAST LOAD OF THIS
*         NPU BY THIS NS.  EXCEPT FOR THE OPERATOR "LOAD" COMMANDS, 
*         NS WILL ATTEMPT TO PREVENT FLOODS OF DUMPS FROM AN
*         OSCILLATING NPU.  THIS WILL BE ACCOMPLISHED BY INHIBITING 
*         DUMPS AFTER MORE THAN TWO LOAD REQUESTS ARE RECEIVED FROM 
*         AN NPU IN 8 MINUTES.  THIS WILL STILL GIVE OPPORTUNITY TO 
*         OBTAIN ONE DUMP FROM AN NPU THAT COMES DOWON AS SOON AS 
*         IT IS LOADED, WHILE STOPPING THE SUBSEQUENT FLOOD THAT CAN
*         OCCUR UNTIL AN OPERATOR DISABLES A COUPLER OR A TRUNK.
* 
*     3)  A "NETWORK STARTUP MODE" PARAMETER (FDP) THAT IS ENTERED
*         BY THE HOST OPERATOR WHEN THE HOST NETWORK SOFTWAE IS 
*         STARTED.  IN ADDITION TO THE "NORMAL" MODE OF OPERATION,
*         NS WILL RECOGNIZE "FORCE DUMP" AND "INHIBIT DUMP" MODES,
*         WHEN IT IS STARTED.  (THESE ARE GLOBAL FOR NS, AND NOT
*         ON AN INDIVIDUAL NPU BASIS).  NS WILL RESET THE MODE BACK 
*         TO "NORMAL" 10 MINUTES AFTER IT IS STARTED. 
* 
*     4)  THE "LONG TERM DUMP FLAG" OBTAINED FROM THE NDCB IN 
*         NPU MEMORY. 
* 
*     THE RULES BY WHICH NS WILL MAKE THE DECISION ON WHETHER OR
*     NOT TO DUMP ARE SUMMARIZED IN THE FOLLOWING DECISION TABLE: 
* 
* 
*                        NS RULES FOR NPU DUMPING 
*                        ------------------------ 
* 
*     CONDITIONS               I1  2  3  4  5  6  7  8  9  10 11 12 
*     -------------------------+----------------------------------- 
*     "RELOAD" DUMP FLAG       IYY NN G  G  G  G  0  0  0  0  0  0
*                              I
*     -------------------------+----------------------------------- 
*     THIS NPU LOADED TWICE BY I-  -  Y  N  N  N  Y  N  N  N  N  N
*     THIS NS IN LAST 8 MIN    I
*     -------------------------+----------------------------------- 
*     STARTUP MODE             I-  -  -  D  ND NM -  D  ND NM NM NM 
*                              I
*     -------------------------+----------------------------------- 
*     LONG TERM DUMP FLAG      I-  -  -  -  -  -  -  -  -  YY  NN G 
*                              I
*     -------------------------+----------------------------------- 
*     ACTION:  DUMP            IY  N  N  Y  N  Y  N  Y  N  Y  N  Y
* 
*     -  = ANY VALUE
*     G  = GARBAGE
*     NM = NORMAL MODE
*     D  = FORCED DUMP MODE 
*     ND = INHIBIT DUMP MODE
* 
*E
*     4.4.2  DUMP SM SEQUENCE 
* 
*     AN NPU DUMP PROCEDURE IS DICTATED BY DIRECTIVES SPECIFIED 
*     IN THE DUMP PROCEDURE CONTROL BLOCK (DPCB).  NS WOULD 
*     ISSUE NPU/DT/R (D) (NPU DUMP DATA SM REQUESTS) AS SPECIFIED 
*     IN THE DPCB.
* 
*     EACH ENTRY IN THE DPCB REQUESTING THE TRANSMITTAL OF A
*     BLOCK WHICH EXCEEDS 105 NPU WORDS (OF 16 BITS) IS DIVIDED 
*     INTO A BATCH OF NPU/DT/R (D) SERVICE MESSAGES.  EACH OF 
*     THESE SERVICE MESSAGES EITHER CARRIES UP TO 105 WORDS OF
*     LOAD DATA OR REQUESTS A DUMP OF 105 WORDS OR LESS.  THUS
*     A DPCB REQUEST FOR A LARGE DUMP DATA BLOCK WILL CAUSE NS
*     TO GENERATE MULTIPLE NPU/DT/R (D) REQUESTS, EACH ASKING 
*     FOR A MAXIMUM OF 105 WORDS TO BE RETURNED IN AN NPU/DT/N
*     (D) RESPONSE. 
* 
*     AN ABNORMAL RESPONSE FROM THE NPU FOR A LOAD BATCH OR DUMP
*     SERVICE MESSAGE WILL CAUSE NS TO ABORT THE DUMP PROCEDURE.
* 
*     A DPCB DIRECTIVE CAN BE USED TO INDICATE TO NS WHEN ENOUGH
*     OF THE DUMP PROCESS HAS BEEN COMPLETED TO MAKE IT WORTH 
*     WHILE TO SAVE THE DUMP FILE BEING CREATED.  THIS INDICATION 
*     IS FLAGGED BY NS IN THE NAT.  ANY UNRECOVERABLE FAILURE OR
*     A REPEATED NPU/IN/R BEFORE THE FLAG IS SET CAUSES NS TO EVICT 
*     THE PARTIAL NDF.  ANY SUCH INTERRUPTION AFTER THE FLAG HAS SET
*     OR SUCCESSFUL COMPLETION OF THE FULL DUMP PROCEDURE CAUSES
*     NS TO DISPOSE THE NDF AS A PERMANENT FILE.
* 
*                        DUMP SM SEQUENCE 
*                        ---------------- 
* 
*           CCP/PIP                             NS
*                                       (FETCH/CHOOSE DPCB) 
* 
*           ->     N * NPU/DT/R (D) 
*           I    ------------------<--<--<--<--<--
*           I                                    I
*     PHASE I      N * NPUIDTIN (D)              I
*       1   I    <----------------->-->-->-->-->------> TO NDF
*           I                                    I
*           I                                    I
*           ->                                   I
*           I      N *  NPU/DT/R (L)             I
*           I    <-----------------<--<--<--<--<--<---- FROM NLF
*           I                                    I
*           I          NPU/DT/N (L)              I
*           I    -------------------------------->
*           I                                    I
*     PHASE I                                    I
*       2   I          NPU/DT/R (S)              I
*           I    <--------------------------------
*           I 
*           I          NPU/DT/N (S) 
*           I    -------------------------------->
*           I                                    I
*           ->                                   I
*           I      N * NPU/DT/R (D)              I
*           I    <-----------------<--<--<--<--<--
*           I                                    I
*     PHASE I      N * NPUIDTIN (D)              I
*       3   I    ------------------>-->-->-->-->------> TO NDF
*           I                                    I
*           I                                    I
*           I                                    I
*           ->                                   I
*                                                V
* 
*     WHERE:    0<N<=64 
*     PHASE 1 = MACROMEMORY DUMP
*     PHASE 2 = DUMP BOOTSTRAP LOAD 
*     PHASE 3 = MICROMEMORY DUMP
* 
* 
*E
*     4.5  LOAD PROCEDURE 
* 
*     THE LOAD PROCEDURE IS STARTED EITHER DIRECTLY AFTER NS
*     HAS RECEIVED A NPU/IN/R AND HAS DETERMINED THAT NO DUMP 
*     SHALL BE TAKEN OR AFTER THE DUMP PROCEDURE HAS
*     TERMINATED, SUCCESSFULL OR NOT. 
* 
*     A TYPICAL LOAD PROCEDURE IN ITSELF CONSISTS OF THREE
*     DISTINCT ACTIVITIES:  
* 
*     1)  LOADING THE CCP SOFTWARE.  (THIS PART MAY BE OMITTED
*         FOR SELF-LOADING NPUS). 
* 
*     2)  LOADING THE NPU-CONFIGURATION-BLOCK (NCB) FROM THE NCF
*         INTO NPU MEMORY.  (MAY OMITTED FOR SELF-CONFIGURING NPUS) 
* 
*     3)  RE-WRITING THE NDCB BACK INTO NPU MEMORY, AND STARTING
*         THE NPU.
* 
*E
*     4.5.1  LOAD SM SEQUENCE 
* 
*     NS CONTROLS THE LOAD SM SEQUENCE AS SPECIFIED IN THE LPCB,
*     NPU/DT/R (NPU DATA SM REQUESTS) ARE USED FOR ALL DATA 
*     COMMUNICATIONS AND TO TRANSMIT THE START COMMANDS.
* 
*     LOAD DATA IS SENT IN SEGMENTS OF MAXIMUM 105 NPU WORDS AS 
*     PREFORMATTED ON THE NLF.  MANY SEGMENTS, EACH CONTAINED IN
*     AN NPU/DT/R (L) SERVICE MESSAGE MAY BE SENT AS A BATCH. 
*     THE LAST NPU/DT/R (L) SEGMENT OF THE BATCH MUST CONTAIN 
*     THE BATCH COUNT (BC) PARAMETER WHICH CAUSES THE NPU TO
*     RETURN AN NPU/DT/N (L) OR AN NPU/DT/A (L) RESPONSE.  BATCH
*     COUNT VALUE IS CURRENTLY SET AT 64.  NS WILL ABORT THE LOAD 
*     PROCEDURE IF THE RESPONSE IS ABNORMAL.
* 
*     AFTER ALL LOAD DATA ENTRIES AND BEFORE THE ENTRY REQUESTING 
*     THAT CCP BE STARTED, THE LPCB FOR A NON-SELF-CONFIGURING NPU
*     MUST CONTAIN AN ENTRY THAT REQUESTS A LOAD OF THE NCB FROM
*     THE NCF.  THIS ENTRY ALSO CONTAINS THE MAXIMUM ALLOWABLE
*     NCB SIZE IN 16-BIT WORDS, WHICH NS USES TO CHECK THE SIZE OF
*     THE NCB.  THE LOAD IS ABORTED IF THE NCB IS TOO LARGE,
*     OTHERWISE IT IS LOADED VIA AN NPU/DT/R (L) AND WHEN THIS
*     IS ACKNOWLEDGED, THE START COMMAND IS TRANSMITTED.  THE 
*     STARTED CCP BEGINS ITS INITIALIZATION.  NS DOES NOT EXPECT
*     A RESPONSE TO THIS START MESSAGE.  THE LOAD PROCEDURE IS
*     NOW COMPLETED AND NAT IS RELEASED.
* 
*                           LOAD SM SEQUENCE
*                           ----------------
* 
*                  CCP/PIP                        NS
*                                         (FETCH/CHOOSE LPCB) 
* 
* 
*           ->       N * NPU/DT/R (L) 
*           I      <-----------------<--<--<--<--<-+<---- FROM NLF
*           I                                      I
*           I                                      I
*           I            NPU/DT/N (L)              I
*           I      -------------------------------->
*           I                                      I
*     PHASE I            NPU/DT/R (S)              I
*       1   I      <--------------------------------
*           I                                      I
*           I            NPU/DT/N (S)              I
*           I      -------------------------------->
*           I                                      I
*           ->                                     I
*           I        N * NPU/DT/R (L)              I
*           I      <-----------------<--<--<--<--<--<---- FROM NLF
*           I                                      I
*           I            NPU/DT/N (L)              I
*           I      -------------------------------->
*           I                                      I
*           I                                      I
*           I        N * NPU/DT/R (L)              I
*           I      <-----------------<--<--<--<--<--<---- FROM NCF
*           I 
*     PHASE I            NPU/DT/N (L) 
*       2   I      -------------------------------->
*           I                                      I
*           I                                      I
*           I            NPU/DT/R (L)              I
*           I      <--------------------------------<---- NDCB IMAGE
*           I 
*           I            NPU/DT/N (L) 
*           I      -------------------------------->
*           I                                      I
*           I            NPU/DT/R (S)              I
*           ->     <--------------------------------
* 
*     WHERE:    0<N<=64 
*     PHASE 1 = MICROMEMORY LOAD
*     PHASE 2 = MACROMEMORY LOAD
* 
* 
*E
*     4.6  NS STATE TABLE (DUMP/LOAD) 
* 
*     THE NPU DUMP/LOAD ACTIVITY IS STATE TABLE DRIVEN. 
* 
* 
*     4.6.1  NS STATE DIAGIAM 
* 
*                     NS STATE DIAGIAM
*                     ----------------
* 
* 
*     ---------------------+----------+----------+----------+----------+
*     STIMULUS (CODE)      I       (0)I       (1)I       (2)I       (3)I
*     _____________________I NPU/IN/C INPU/IN/R,CI NPU/DT/N I NPU/DT/A I
*     NPU-STATE            I  (SAM    I  (NPU    I  (DUMP)  I  (DUMP)  I
*     (PRIMARY STATE)      I   LOAD)  I   LOAD)  I          I          I
*     SECONDARY STATE)     I          I          I          I          I
*     ---------------------+----------+----------+----------+----------+
*     IDLE               0 I NS$N00   I NS$N00   I     E    I     E    I
*                          I          I          I          I          I
*     ---------------------+----------+----------+----------+----------+
*     WAITING FOR DUMP   1 I PCA      I PCA      I NS$N04   I NS$DAR   I
*     NDCB RESPONSE        I          I          I          I          I
*     ---------------------+----------+----------+----------+----------+
*            (LOAD)      2 I PCA      I PCA      I     E    I     E    I
*     WAITING FOR LOAD     I          I          I          I          I
*     SUD RESPONSE         I          I          I          I          I
*     ---------------------+----------+----------+----------+----------+
*            (LOAD)      3 I PCA      I PCA      I     E    I     E    I
*     WAITING FOR START    I          I          I          I          I
*     SUD RESPONSE         I          I          I          I          I
*     ---------------------+----------+----------+----------+----------+
*            (LOAD)      4 I PCA      I PCA      I NS$N05   I NS$DAR   I
*     WAITING FOR DUMP     I          I          I          I          I
*     SUD RESPONSE         I          I          I          I          I
*     ---------------------+----------+----------+----------+----------+
*            (LOAD)      5 I PCA      I PCA      I     E    I     E    I
*     WAITING FOR LOAD     I          I          I          I          I
*     RESPONSE             I          I          I          I          I
*     ---------------------+----------+----------+----------+----------+
*            (LOAD)      6 I PCA      I PCA      I     E    I     E    I
*     WAITING FOR START    I          I          I          I          I
*     RESPONSE             I          I          I          I          I
*     ---------------------+----------+----------+----------+----------+
*            (LOAD)      7 I PCA      I PCA      I     E    I     E    I
*     WAITING FOR LOAD     I          I          I          I          I
*     NDCB RESPONSE        I          I          I          I          I
*     ---------------------+----------+----------+----------+----------+
*            (DUMP)      8 I PCA      I PCA      I NS$N06   I NS$DAR   I
*     WAITING FOR DUMP     I          I          I          I          I
*     RESPONSE             I          I          I          I          I
*     ---------------------+----------+----------+----------+----------+
*            (DUMP)      9 I PCA      I PCA      I     E    I     E    I
*     WAITING FOR LOAD     I          I          I          I          I
*     RESPONSE             I          I          I          I          I
*     ---------------------+----------+----------+----------+----------+
*            (DUMP)     10 I PCA      I PCA      I     E    I     E    I
*     WAITING FOR START    I          I          I          I          I
*     RESPONSE             I          I          I          I          I
*     ---------------------+----------+----------+----------+----------+
*            (SAM)      11 I PCA      I     E    I     E    I     E    I
*     WAITING FOR LOAD     I          I          I          I          I
*     RESPONSE             I          I          I          I          I
*     ---------------------+----------+----------+----------+----------+
* 
* 
* 
*E
*     ---------------------+----------+----------+----------+----------+
*     STIMULUS (CODE)      I        4 I        5 I        6 I        7 I
*     _____________________I NPU/DT/N I NPU/DT/A I NPU/DT/N I NPU/DT/A I
*     NPU-STATE            I (LOAD)   I (LOAD)   I (START)  I (START)  I
*                          I          I          I          I          I
*                          I          I          I          I          I
*     ---------------------+----------+----------+----------+----------+
*                        0 I     E    I     E    I     E    I     E    I
*                          I          I          I          I          I
*     ---------------------+----------+----------+----------+----------+
*                        1 I     E    I     E    I     E    I     E    I
*                          I          I          I          I          I
*     ---------------------+----------+----------+----------+----------+
*                        2 I NS$N08   I NS$DAR   I    E     I     E    I
*                          I          I          I          I          I
*     ---------------------+----------+----------+----------+----------+
*                        3 I     E    I     E    I NS$N13   I NS$DAR   I
*                          I          I          I          I          I
*     ---------------------+----------+----------+----------+----------+
*                        4 I    E     I    E     I     E    I     E    I
*                          I          I          I          I          I
*     ---------------------+----------+----------+----------+----------+
*                        5 I NS$N08   I NS$DAR   I     E    I     E    I
*                          I          I          I          I          I
*     ---------------------+----------+----------+----------+----------+
*                        6 I     E    I     E    I NS$N13   I NS$DAR   I
*                          I          I          I          I          I
*     ---------------------+----------+----------+----------+----------+
*                        7 I NS$N09   I NS$DAR   I     E    I     E    I
*                          I          I          I          I          I
*     ---------------------+----------+----------+----------+----------+
*                        8 I     E    I     E    I     E    I     E    I
*                          I          I          I          I          I
*     ---------------------+----------+----------+----------+----------+
*                        9 I NS$N08   I NS$DAR   I     E    I     E    I
*                          I          I          I          I          I
*     ---------------------+----------+----------+----------+----------+
*                       10 I     E    I     E    I NS$N13   I NS$DAR   I
*                          I          I          I          I          I
*     ---------------------+----------+----------+----------+----------+
*                       11 I NS$N08   I NS$DAR   I     E    I     E    I
*                          I          I          I          I          I
*     ---------------------+----------+----------+----------+----------+
* 
* 
*     E      = SET ERROR-CODE TO "PROTOCOL ERROR" 
*     PCA    = SET ERROR-CODE TO "PREEMPTED"
*     NS$N00 = PROCESS LOAD REQUEST 
*     NS$N04 = PROCESS NPU/DT/N (DUMP NDCB) 
*     NS$N05 = PROCESS NPU/DT/N (DUMP SUD) (NOT IMPLEMENTED FOR 6.1)
*     NS$N06 = PROCESS NPU/DT/N (DUMP)
*     NS$N08 = PROCESS NPU/DT/N (LOAD)
*     NS$N09 = PROCESS NPU/DT/N (LOAD NDCB) 
*     NS$N13 = PROCESS NPU/DT/N (START) 
*     NS$DAR = PROCESS NPU/DT/A 
* 
* 
*E
*     4.6.2  NOTES ON NS STATE TABLE
* 
*     . NS KEEPS AN ENTRY IN THE NPU TABLE (NPT) FOR EACH NPU 
*       THAT IS DEFINED IN THE NCF. 
* 
*     . A "STATE" WILL ALWAYS BE DEFINED FOR EVERY NPU.  NPUS 
*       WILL INITIALLY BE IN "IDLE" STATE.
* 
*     . WHEN AN NPU REQUESTS NS SERVICE (LOAD SAM, DUMP/LOAD NPU) 
*       NS CREATES AN NPU ACTIVITY TABLE (NAT) WHICH WILL BE DISCARDED
*       WHEN THE ACTIVITY TERMINATES. 
* 
*     . AN NPU WILL BE IN SOME "NON-IDLE" STATE WHEN IT IS BEING
*       SERVICED BY NS. 
* 
*     . FOR EACH NPU BEING SERVICED, NS KEEPS A 30-SECOND LOCAL 
*       RESPONSE TIMER AND A 2-MINUTE GLOBAL ACTIVITY TIMER TO
*       ALLOW IT TO TIMEOUT AN ACTIVITY ON A "MISBEHAVING" NPU. 
*       THE RESPONSE TIMER IS STARTED WHENEVER NS SENDS OUT 
*       SERVICE MESSAGES WHICH WOULD REQUIRE A RESPONSE FROM A
*       NPU/PIP.  THE ACTIVITY TIMER IS STARTED WHEN NS INITIATES 
*       EITHER AN NPU DUMP PROCEDURE OR AN NPU LOAD PROCEDURE.
* 
*     . EVENTS THAT TRIGGER ACTIVITY ON AN NPU ARE SERVICE MESSAGES 
*       FROM NPU/PIP, OR EXPIRATION OF EITHER THE LOCAL RESPONSE
*       TIMER OR THE GLOBAL ACTIVITY TIMER. 
* 
*     . TRIGGER TO THE STATE TABLE ARE THE INCOMING SERVICE 
*       MESSAGES MENTIONED ABOVE.  NS USES THE ADDRESSING 
*       INFORMATION IN THE SERVICE MESSAGE TEXT TO SEARCH THE 
*       NODE CONNECTION TABLE (NCT) WHICH IS DERIVED FROM THE 
*       PHYSICAL LINK CROSS REFERENCE TABLE ON NCF, TO IDENTIFY 
*       WHICH NPU THE SERVICE MESSAGE RELATES.  IF THE SERVICE
*       MESSAGE IS A RESPONSE FROM THE NPU/PIP, THEN NS CHECKS
*       IF THE LOAD PATH AND LOAD SEQUENCE NUMBER IN THE SM 
*       MATCHES THE SETTING IN THE NAT.  A NON-MATCH WOULD
*       INDICATE THE MESSAGE TO BE A RESPONSE TO AN ACTIVITY
*       PREVIOUSLY ABORTED BY NS. 
* 
*     . CONTROL IS PASSED TO STATE TABLE PROCESSOR TO PERFORM THE 
*       ACTION APPROPRIATE FOR THAT STIMULUS/STATE. 
* 
*     . NS OPERATES UNDER THE ASSUMPTION THAT AN NPU/PIP KNOWS
*       WHAT IT IS DOING, THAT IS, IF A REQUEST IS RECEIVED FROM
*       AN NPU THAT IS CURRENTLY BEING SERVICED, THE CURRENT
*       ACTIVITY IS ABORTED, AND THE NEW REQUEST WILL BE HONORED. 
* 
*     . ALL NS DUMP/LOAD ACTIVITY IS DICTATED BY PROCEDURE CONTROL
*       BLOCKS (SPCB/DPCB/LPCB) IN THE PICB WHICH RESIDES IN THE
*       NLF AND IDENTIFIED BY THE NPU VARIANT NAME.  NS MAKES NO
*       ASSUMPTIONS ABOUT THE ORDER IN WHICH IT WILL FIND DIRECTIVES
*       IN A PROCEDURE CONTROL BLOCK.  IT WILL SIMPLY DO WHATEVER 
*       ACTION IS DICTATED BY A PROCEDURE CONTROL BLOCK DIRECTIVE.
*       A BAD PICB WITH DIRECTIVES OUT OF PROPER SEQUENCE WILL
*       THEREFORE RESULT IN A BAD NPU DUMP/LOAD AND RESULTS ARE 
*       UNPREDICTABLE, BUT NO DIAGNOSTICS WILL BE ISSUED BY NS. 
* 
* 
*E
*     4.7  STRUCTURED CHARTS
* 
*     THE FOLLOWING ARE STRUCTURED CHARTS FOR NS. 
*     NOT ALL ROUTINES ARE SHOWN, ONLY THE HIGH LEVEL CALLS 
*     ARE SHOWN.  AND ALSO, UTILITY ROUTINES (E.G. TSB MANAGER
*     ROUTINES, CHARACTER CONVERSION ROUTINES, ETC.) ARE NOT
*     SHOWN.
* 
* 
*     4.7.1  NS EXECUTIVE 
* 
* 
*                      +---------> NDLOVD 
*                      I
*                      I
*                      +---------> NETCHECK 
*                      I
*                      I
*                      +---------> NETWAIT
*                      I
*                      I
*                      +---------> RTIME
*                      I
*                      I
*     NS$EXC  ---------+---------> NS$SMP 
*                      I
*                      I
*                      +---------> NS$OFF 
*                      I
*                      I
*                      +---------> NS$SHD 
*                      I
*                      I
*                      +---------> NS$FEC 
*                      I
*                      I
*                      +---------> NS$MSG 
* 
* 
*     NS$EXC   - NS EXECUTIVE 
*     NDLOVLD  - OVERLAY LOADER 
*     NETCHECK - UPDATE NSUP WORD (AIP) 
*     NETWAIT  - REQUEST NAM TO ROLLOUT PROGRAM (AIP) 
*     RTIME    - GET REAL TIME CLOCK READING
*     NS$SMP   - SM PROCESSOR 
*     NS$OFF   - DISCONNECT FROM NETWORK (NETOFF) 
*     NS$SHD   - SHUTDOWN PROCESSOR 
*     NS$FEC   - FORMAT ERROR CODE
*     NS$MSG   - MESSAGE DISPATCHER 
* 
* 
*E
*     4.7.2  SM PROCESSOR 
* 
* 
*                      +---------> NETGET 
*                      I
*                      I
*                      +---------> NETREL 
*                      I
*                      I
*     NS$SMP  ---------+---------> NS$NSM 
*                      I
*                      I
*                      +---------> NS$HSM 
*                      I
*                      I
*                      +---------> NS$FEC 
* 
* 
*     NS$SMP   - SM PROCESSOR 
*     NETGET   - RECEIVE NETWORK TRAFFIC (AIP)
*     NETREL   - RELEASE DEBUG TRACE FILE (AIP) 
*     NS$NSM   - NETWORK SM PROCESSOR 
*     NS$HSM   - HOST SM PROCESSOR
*     NS$FEC   - FORMAT ERROR CODE
* 
* 
*E
*     4.7.2.1  NETWORK SM PROCESSOR 
* 
* 
*                      +---------> NS$NSS ---------> (1), (2), (3), (4),
*                      I                             (5), (6), (7), (8) 
*                      I
*     NS$NSM  ---------+---------> NS$FEC 
*                      I
*                      I
*                      +---------> NS$MSG 
* 
* 
*     NS$NSM   - NETWORK SM PROCESSOR 
*     NS$NSS   - NPU STATE TABLE PROCESSOR
*     NS$FEC   - FORMAT ERROR CODE
*     NS$MSG   - MESSAGE DISPATCHER 
* 
* 
*     (1) - PROCESS NPU LOAD REQUEST
* 
*                      +---------> NS$FLR 
*                      I
*                      I
*                      +---------> NS$INL 
*                      I
*                      I
*                      +---------> NS$LSN 
*                      I
*                      I
*                      +---------> NS$MSG 
*                      I
*                      I
*                      +---------> NS$NAI 
*                      I
*     NS$N00  ---------I
*                      +---------> NS$SGT 
*                      I
*                      I
*                      +---------> NS$SLT 
*                      I
*                      I
*                      +---------> NS$XPD 
*                      I
*                      I
*                      +---------> NS$FEC 
*                      I
*                      I
*                      +---------> NETPUT 
* 
* 
*     NS$N00   - PROCESS NPU LOAD REQUEST 
*     NS$FLR   - FIND LOAD RECORD 
*     NS$INL   - INITIATE NPU LOAD
*     NS$LSN   - INCREMENT LOAD SEQUENCE NUMBER 
*     NS$MSG   - MESSAGE DISPATCHER 
*     NS$NAI   - INITIALIZE NPU ACTIVITY
*     NS$SGT   - START ACTIVITY TIMER 
*     NS$SLT   - START RESPONSE TIMER 
*     NS$XPD   - START NEXT XPCB DIRECTIVE
*     NS$FEC   - FORMAT ERROR CODE
*     NETPUT   - SEND NETWORK TRAFFIC 
* 
* 
*     (2) - PROCESS NPU/DT/N (DUMP NDCB)
* 
*                      +---------> NS$IND 
*                      I
*                      I
*                      +---------> NS$INL 
*                      I
*     NS$N04  ---------I
*                      +---------> NS$MSG 
*                      I
*                      I
*                      +---------> NS$XPD 
* 
* 
*     NS$N04   - PROCESS NPU/DT/N (DUMP NDCB) 
*     NS$IND   - INITIATE NPU DUMP
*     NS$INL   - INITIATE NPU LOAD
*     NS$MSG   - MESSAGE DISPATCHER 
*     NS$XPD   - PROCESS NEXT XPCB DIRECTIVE
* 
* 
*     (3) - PROCESS NPU/DT/N (DUMP SUD) 
* 
*     ****NOT IMPLEMENTED FOR R6.1****
* 
* 
*     (4) - PROCESS NPU/DT/N (DUMP) 
* 
*                      +---------> NS$SDB 
*                      I
*                      I
*                      +---------> NS$SLT 
*                      I
*     NS$N06  ---------I
*                      +---------> NS$XPD 
*                      I
*                      I
*                      +---------> NS$FEC 
* 
* 
*     NS$N06   - PROCESS NPU/DT/N (DUMP)
*     NS$SDB   - SEND DUMP BATCH
*     NS$SLT   - START RESPONSE TIMER 
*     NS$XPD   - PROCESS NEXT XPCB DIRECTIVE
*     NS$FEC   - FORMAT ERROR CODE
* 
* 
*     (5) - PROCESS NPU/DT/N (LOAD) 
* 
*                      +---------> NS$SLB 
*                      I
*                      I
*     NS$N08  ---------+---------> NS$SLT 
*                      I
*                      I
*                      +---------> NS$XPD 
* 
* 
*     NS$N08   - PROCESS NPU/DT/N (LOAD)
*     NS$SLB   - SEND LOAD BATCH
*     NS$SLT   - START RESPONSE TIMER 
*     NS$XPD   - PROCESS NEXT XPCB DIRECTIVE
* 
* 
*     (6) - PROCESS NPU/DT/N (LOAD NDCB)
* 
*                      +---------> NETPUT 
*                      I
*                      I
*     NS$N09  ---------+---------> NS$FBH 
*                      I
*                      I
*                      +---------> NS$XPD 
* 
* 
*     NS$N09   - PROCESS NPU/DT/N (LOAD NDCB) 
*     NETPUT   - SEND NETWORK TRAFFIC 
*     NS$FBH   - FORMAT ABH 
*     NS$XPD   - PROCESS NEXT XPCB DIRECTIVE
* 
* 
*     (7) - PROCESS NPU/DT/N (START)
* 
*     NS$N13  ---------> NS$XPD 
* 
* 
*     NS$N13   - PROCESS NPU/DT/N (START) 
*     NS$XPD   - PROCESS NEXT XPCD DIRECTIVE
* 
* 
*     (8) - PROCESS NPU/DT/A
* 
*                      +---------> NS$FBH 
*                      I
*                      I
*                      +---------> NS$FEC 
*                      I
*     NS$DAR  ---------I
*                      +---------> NS$MSG 
*                      I
*                      I
*                      +---------> NETPUT 
* 
* 
*     NS$DAR   - PROCESS NPU/DT/A 
*     NS$FBH   - FORMAT ABH 
*     NS$FEC   - FORMAT ERROR CODE
*     NS$MSG   - MESSAGE DISPATCHER 
*     NETPUT   - SEND NETWORK TRAFFIC 
* 
* 
*E
*     4.7.2.2  HOST SM PROCESSOR
* 
*                      +---------> NS$HCP 
*                      I
*                      I
*                      +---------> NS$STR 
*                      I
*                      I
*                      +---------> NS$PAG 
*                      I
*                      I
*                      +---------> NS$BRK 
*                      I
*                      I
*                      +---------> NS$END 
*                      I
*     NS$HSM  ---------I
*                      +---------> NS$PCM 
*                      I
*                      I
*                      +---------> NS$HHI 
*                      I
*                      I
*                      +---------> NS$HST 
*                      I
*                      I
*                      +---------> NS$HFI 
*                      I
*                      I
*                      +---------> NS$HNO 
* 
* 
*     NS$HSM   - HOST SM PROCESSOR
*     NS$HCP   - HOP COMMAND PROCESSOR
*     NS$STR   - PROCESS HOP/START
*     NS$PAG   - PROCESS HOP/PAGE 
*     NS$BRK   - PROCESS HOP/BRK
*     NS$END   - PROCESS HOP/END
*     NS$PCM   - PROGRAM COMMAND PROCESSOR
*     NS$HHI   - HISTORY COMMAND PROCESSOR
*     NS$HST   - STATUS COMMAND PROCESSOR 
*     NS$HFI   - FILE COMMAND PROCESSOR 
*     NS$HNO   - NO FILE COMMAND PROCESSOR
* 
* 
*E
*     5.0  MISCELLANOUS 
* 
*     5.1  NS CONTROL STATEMENT PARAMETERS
* 
*     NS CONTROL CARD HAS THE FOLLOWING FORMAT: 
* 
*     NS(NIN=NN,FDP=OPTIONS,RT=OPTIONS,MC=NN) 
* 
* 
*     NIN = NN    A ONE TO THREE DIGIT DECIMAL NETWORK
*                 -INVOCATION-NUMBER ASSIGNED BY NAMI 
*                 AT NETWORK STARTUP TIME.  THIS PARAMETER
*                 IS REQUIRED.
* 
*     FDP=OPTIONS IS THE FORCED DUMP OPTION.  IF YES IS 
*                 SPECIFIED THEN, WITHIN THE FIRST 10-MINUTES 
*                 IN THE ABSENCE OF OTHER NPU DUMPING 
*                 CONDITIONS, NPUS WILL BE DUMPED BEFORE LOADING
*                 TAKES PLACE.  LEGAL VALUES ARE: YES OR NO.
*                 IF NOT SPECIFIED, NO WILL BE ASSUMED. 
* 
*     RT =OPTIONS IS THE RELEASE TRACE FILE OPTION.  IF YES 
*                 SPECIFIED, NPD/REL/R WILL BE SENT TO NAM
*                 TO REQUEST ALL NETWORK PROGRAMS TO RELEASE
*                 THEIR TRACE FILES WHENEVER NS DUMPS AN NPU. 
*                 LEGAL VALUES ARE YES OR NO.  DEFAULT IS YES.
* 
*     MC = NN      A ONE TO THREE DIGIT DECIMAL MESSAGE COUNT.
*                  THIS PARAMETER IS OPTIONAL.
* 
* 
*E
*     5.2  TSB MANAGER
* 
*     NS CALLS TSB MANAGER (TASK SEQUENCE BLOCK MANAGER) ROUTINES 
*     TO MANAGE ITS DYNAMIC MEMORY AREA.  THE TSB-MANAGER IS A
*     SET OF MEMORY MANAGEMENT ROUTINES TO ALLOCATE AND RELEASE 
*     BLOCKS OF MEMORY.  EACH BLOCK IS CALLED A TASK SEQUENCE 
*     BLOCK (TSB) AND MAY BE A MOVABLE OR NON-MOVABLE BLOCK OF
*     VARIABLE LENGTH.  ASSOCIATED WITH EACH TSB IS A ONE WORD
*     HEADER THAT DESCRIBES THE CURRENT STATE OF THE TSB AND
*     OTHER INFORMATION FOR THAT TSB.  EACH ACTIVE OR BUSY TSB
*     ASLO HAS AN ENTRY IN THE TSB INFORMATION TABLE (TSBIT)
*     THAT KEEPS TRACK OF ASSIGNED BLOCKS.
* 
*     THE FOLLOWING TSB MANAGER ROUTINES ARE USED:  
* 
*     ROUTINE NAME    DESCRIPTIONS/PARAMETERS 
*     ------------    ----------------------- 
* 
*     REQTSB          ASSIGN A MOVABLE/UNIQUE TSB.
*                     INPUT PARAMETERS: 
*                       - TSB-SIZE REQUESTED IN WORDS.
*                     OUTPUT PARAMETERS:  
*                       - TSB-NUMBER OF ASSIGNED TSB. 
*                       - FWA OF ASSIGNED TSB.
* 
*     RETTSB          RELEASE ASSIGNED TSB AND TSB-NUMBER 
*                     INPUT PARAMETERS: 
*                       - TSB-NUMBER OF TSB TO BE RELEASED. 
* 
*     EXINCSZ         INCREASE SIZE OF AN ASSIGNED TSB
*                     INPUT PARAMETERS: 
*                       - TSB-NUMBER OF TSB TO HAVE SIZE INCREASED
*                       - ADDITIONAL SIZE REQUESTED IN WORDS
*                     OUTPUT PARAMETERS:  
*                       - FWA OF TSB. 
* 
*     EXREDUC         REDUCE THE SIZE OF AN ASSIGNED TSB. 
*                     INPUT PARAMETERS: 
*                       - TSB-NUMBER OF TSB TO HAVE SIZE REDUCED
*                       - NUMBER OF WORDS TO BE REDUCED 
*                       - FIFO-INDICATOR, IF SET TO TRUE, RELEASE 
*                         SPECIFIED NUMBER OF WORDS STARTING FROM 
*                         FWA OF TSB, OTHERWISE THE LOWER PORTION 
*                         OF TSB IS RELEASED. 
*                     OUTPUT PARAMETERS:  
*                       - FWA OF TSB
* 
*     TSBINFO         RETURN SIZE AND FWA OF AN ASSIGNED TSB AND
*                     AND TSB BECOMES NON-REMOVABLE.
*                     INPUT PARAMETERS: 
*                       - TSB NUMBER OF ASSIGNED TSB
*                     OUTPUT PARAMETERS:  
*                       - TSB-SIZE IN WORDS 
*                       - FWA OF TSB
* 
* 
*     MOVEOK           MAKE TSB MOVABLE 
*                      INPUT PARAMETERS:  
*                        - TSB-NUMBER OF ASSIGNED TSB 
*                      OUTPUT PARAMETERS: 
*                        - NONE 
* 
*     XFLMGR           PERFORM GARBAGE COLLECTION TO
*                      ELIMINATE MEMORY FRAGMENTATION IN
*                      DYNAMIC MEMORY AREA OF NS FIELD LENGTH.
* 
* 
*E
*     5.3  MACREL INTERFACE 
* 
*     MACREL IS A COLLECTION OF RELOCATABLE MODULES THAT
*     PROVIDES THE INTERFACE BETWEEN HIGHER LEVEL LANGUAGE
*     (SYMPL/FORTRAN) AND THE NOS SYSTEM MACROS.  NS CALLS
*     THE FOLLOWING LIST OF MACREL ROUTINES:  
* 
* 
*     OPEN
*     READ
*     RETURN
*     REWIND
*     WRITEF
*     WRITER
*     READW 
*     WRITEW
*     MOVE
*     ABORT 
*     CLOCK 
*     DATE
*     EREXIT
*     MEMORY
*     MESSAGE 
*     PDATE 
*     RECALL
*     RTIME 
*     DEFINE
*     PURGE 
* 
* 
*E
*     5.4  HOST OPERATOR COMMANDS 
* 
*     NS SUPPORTS THE NAM K-DISPLAY, COMMANDS PROCESSED BY
*     NS ARE: 
* 
*     1)  NPU LOAD STATUS COMMAND - 
*         THIS COMMAND DISPLAYS A SPECIFIED NPU-S CURRENT DUMP/LOAD 
*         STATUS THAT THIS NS KNOWS ABOUT.
* 
*     2)  HISTORY COMMAND - 
*         THIS COMMAND DISPLAYS THE ENTIRE HISTORY BUFFER, OR 
*         JUST THE LAST PAGE OF THE HISTORY BUFFER DEPENDING
*         ON THE CONTEXT OF THE COMMAND.  THE HISTORY BUFFER
*         CONTAINS THE MOST SIGNIFICANT EVENTS PERFORMED BY 
*         NS (LIKE LOAD REQUESTED/COMPLETED/ABORTED). 
* 
*     3)  FILE COMMAND -
*         THIS COMMAND ALLOWS THE HOP TO ASSIGN AN ALTERNATE
*         LOAD FILE TO NS FOR LOADING A SPECIFIC NPU. 
* 
*     4)  NOFILE COMMAND -
*         THIS COMMAND ALLOWS THE HOP TO CANCEL THE ALTERNATE 
*         LOAD FILE ASSIGNED TO AN NPU (VIA THE FILE COMMAND) 
*         AND RETURN TO USING THE DEFAULT LOAD FILE FOR LOADING 
*         ALL NPUS. 
* 
* 
*E
*     6.0  MODULE DESCRIPTIONS
* 
# 
  
      END    # NS$IMS # 
  
      TERM
