Google
 

Trailing-Edge - PDP-10 Archives - BB-H348C-RM_1982 - swskit-v21/listings/utilities/ncp.list
There are no other files named ncp.list in the archive.
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 1
NCP	MAC	 5-Oct-81 16:46	

     1					;<JENNESS.NETCON>NCP.MAC.2, 31-Jan-80 13:27:46, Edit by JENNESS
     2					; Update copyright date
     3					;<JENNESS>NCP.MAC.3, 19-Dec-79 09:25:32, Edit by PLATUKIS
     4					; Fix STATUS/STATE keyword conflict in SET/SHOW commands.
     5					;<JENNESS>NCP.MAC.17, 16-Nov-79 15:13:43, Edit by JENNESS
     6					; Change "FROM" keyword in LOAD CONTROLLER kdp_0 FROM to a guide word.
     7					;<JENNESS>NCP.MAC.15,  7-Nov-79 11:58:05, Edit by JENNESS, PLATUKIS
     8					; Fix RCVTOP to call UPDNOD to remove deleted nodes from monitor node list.
     9					;<JENNESS>NCP.MAC.14,  1-Nov-79 10:54:40, Edit by JENNESS, PLATUKIS
    10					; Fix to SETNOD to release the node name block after used.
    11					;<JENNESS>NCP.MAC.11, 30-Oct-79 10:40:35, Edit by JENNESS
    12					; Add code to release topology table if a new one is made (call to ADVTOP).
    13					;<JENNESS>NCP.MAC.10, 22-Oct-79 14:02:29, Edit by JENNESS
    14					; Add code to GETFRE and RELFRE to record in an extra word (allocated before
    15					; block) the address of who allocated it.
    16					;<JENNESS>NCP.MAC.9, 12-Oct-79 11:16:21, Edit by JENNESS
    17					; Fix PRSNOD to give an error return if the node name string has no characters
    18					;  in it.
    19					;<JENNESS>NCP.MAC.7, 11-Oct-79 15:47:34, Edit by JENNESS
    20					; Add code in CHKNIC, QUENCU and DEQNIC to destroy a request that hangs
    21					;  around too long.
    22					;<JENNESS>NCP.MAC.4,  2-Oct-79 11:32:18, Edit by JENNESS
    23					; Add the code to do TOPOLOGY updates every once in a while, when a TIMER
    24					;  interrupt goes off.
    25					;<JENNESS>NCP.MAC.3,  2-Oct-79 10:35:52, Edit by JENNESS
    26					; Fix DOJFD so that it properly checks for an error code before going to the
    27					;  service routine for a message.  Formerly it was just checking to see if
    28					;  there were anymore bytes in the header string (of course there were).
    29					;<JENNESS>NCP.MAC.2,  1-Oct-79 15:00:45, Edit by JENNESS
    30					; Fix PIDINT to release the page and queue entry if no IPCF message was
    31					;  found after MRECV was executed.
    32					;<SROBINSON.NETCON>NCP.MAC.21, 26-Sep-79 18:13:24, Edit by JENNESS
    33					; Fix REQLST routine to know about loopback line status'.
    34					;<SROBINSON.NETCON>NCP.MAC.17, 26-Sep-79 15:30:24, Edit by JENNESS
    35					; TCO 4.2488  Remove AOBJP at PRSPRT.  The routines such as PRSLID
    36					; already increment automatically along the ORION command message.
    37					; This now allows the "SET LOCAL LOOPBACK ENABLE/DISABLE line-id" to work.
    38					;<SROBINSON.NETCON>NCP.MAC.15, 20-Sep-79 14:00:39, Edit by JENNESS
    39					; TCO 4.2478  Fix TOPINI for 2020 to ignore lines that are "ON" but
    40					;   don't go anywhere.
    41					;<SROBINSON.NETCON>NCP.MAC.12,  7-Sep-79 14:21:54, Edit by JENNESS
    42					; Another superficial fix to RELFRE.
    43					;<4.UTILITIES>NCP.MAC.176, 27-Aug-79 17:08:51, Edit by JENNESS
    44					; Fix RELRQI to release links that have been aborted.
    45					;<4.UTILITIES>NCP.MAC.175, 26-Aug-79 12:28:11, Edit by JENNESS
    46					; Add recording for free page allocation/deallocation.
    47					;<4.UTILITIES>NCP.MAC.174, 8-Aug-79 10:40:14, Edit by JENNESS
    48					; Change any error returned from RELFRE to be fatal.
    49					;<4.UTILITIES>NCP.MAC.173, 1-Aug-79 15:51:25, Edit by JENNESS
    50					; Clean up readability of block memory managment code, add sequence checking.
    51					;<4.UTILITIES>NCP.MAC.172, 24-Jul-79 15:37:05, Edit by SROBINSON
    52					;<4.UTILITIES>NCP.MAC.171, 23-Jul-79 15:32:25, Edit by JENNESS
    53					;Change CPYASC to always shift to upper case during string copy.
    54					;<4.UTILITIES>NCP.MAC.170, 22-Jul-79 13:08:22, Edit by SROBINSON
    55					;ADD CODE TO PROCESS DISCONNECTS ON THE NCP LINKS CORRECTLY
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 1-1
NCP	MAC	 5-Oct-81 16:46	

    56					;<4.UTILITIES>NCP.MAC.169, 22-Jul-79 09:06:44, Edit by SROBINSON
    57					;ADD CODE TO SET PAGE ACCESSES TO READ/EXECUTE ONLY
    58					;<4.UTILITIES>NCP.MAC.168, 15-Jul-79 14:40:13, Edit by SROBINSON
    59					;ADD CODE TO REESTABLISH NODE LIST UPON INITIALIZATION
    60					;<4.UTILITIES>NCP.MAC.167, 20-Jun-79 16:08:16, EDIT BY KIRSCHEN
    61					;ADD EVENT LOGGING COMMANDS
    62					;<4.UTILITIES>NCP.MAC.166, 16-May-79 08:25:55, EDIT BY KIRSCHEN
    63					;USE CORRECT SYMBOL IN PREVIOUS EDIT
    64					;<4.UTILITIES>NCP.MAC.165, 14-May-79 13:22:51, EDIT BY KIRSCHEN
    65					;DISCARD SPURIOUS IPCF MESSAGES FROM ORION SAYING OPR DISAPPEARED
    66					;<4.UTILITIES>NCP.MAC.164, 17-Mar-79 14:52:03, EDIT BY KIRSCHEN
    67					;ADD .ERR29
    68					;<4.UTILITIES>NCP.MAC.163, 10-Mar-79 14:30:22, EDIT BY KONEN
    69					;UPDATE COPYRIGHT FOR RELEASE 4
    70					;<4.UTILITIES>NCP.MAC.162,  4-Mar-79 08:37:27, EDIT BY ENGEL
    71					;FIX AUTO DUMP/LOAD WHEN EXECUTOR SET INCORRECTLY
    72					;<4.UTILITIES>NCP.MAC.160,  4-Feb-79 22:05:35, EDIT BY KIRSCHEN
    73					;FIX SPURIOUS "?INTERNAL NETCON ERROR" MESSAGE
    74					;<4.UTILITIES>NCP.MAC.159, 31-Jan-79 11:05:27, EDIT BY KIRSCHEN
    75					;FIX TOPOLOGY REPORTING BUGS AT TOPINT AND UPDNOD
    76					;<4.UTILITIES>NCP.MAC.158, 30-Jan-79 16:41:53, EDIT BY KIRSCHEN
    77					;FIX SETUP FOR NODE JSYS IN MONDEL
    78					;<4.UTILITIES>NCP.MAC.157, 30-Jan-79 16:25:33, EDIT BY KIRSCHEN
    79					;FIX OBTAINING NODE NAME IN UPDNOD
    80					;<4.UTILITIES>NCP.MAC.156, 30-Jan-79 09:09:27, EDIT BY KIRSCHEN
    81					;ADD CODE TO STORE KDP REGISTERS ON EVENT LOG MESSAGES
    82					;<4.UTILITIES>NCP.MAC.155, 19-Jan-79 20:42:10, EDIT BY KIRSCHEN
    83					;STORE EXECUTOR NODE CORRECTLY IN SNDNIC
    84					;<4.UTILITIES>NCP.MAC.154, 19-Jan-79 15:55:32, EDIT BY KIRSCHEN
    85					;RELEASE PAGE BY ADDRESS NOT PAGE NUMBER AT RTPINX
    86					;<4.UTILITIES>NCP.MAC.153, 14-Jan-79 21:18:48, EDIT BY KIRSCHEN
    87					;<4.UTILITIES>NCP.MAC.152, 14-Jan-79 20:45:02, EDIT BY KIRSCHEN
    88					;UPDATE NODE JSYS SYMBOLS; RELEASE OLD JFN AT TOPINX
    89					;<4.UTILITIES>NCP.MAC.151, 12-Jan-79 21:12:48, EDIT BY KIRSCHEN
    90					;PROCESS ENTIRE NICE QUEUE ON EVERY PASS
    91					;<4.UTILITIES>NCP.MAC.150,  8-Jan-79 22:02:08, EDIT BY KIRSCHEN
    92					;remove initiate monitoring command; automate topology reporting
    93					;<4.UTILITIES>NCP.MAC.149,  4-Jan-79 13:07:46, EDIT BY KIRSCHEN
    94					;PASS NODE NAME AND HOST ON DOWN LINE LOADS
    95					;<4.UTILITIES>NCP.MAC.148, 27-Dec-78 10:24:02, EDIT BY ENGEL
    96					;FIX SET EXECUTOR BUG
    97					;<4.UTILITIES>NCP.MAC.147, 22-Dec-78 10:13:29, EDIT BY ENGEL
    98					;ADD AUTO DUMP/LOAD CODE
    99					;<4.UTILITIES>NCP.MAC.146, 21-Dec-78 11:08:17, EDIT BY ENGEL
   100					;add .err26
   101					;<4.UTILITIES>NCP.MAC.145, 20-Dec-78 12:10:51, EDIT BY KIRSCHEN
   102					;<4.UTILITIES>NCP.MAC.144, 18-Dec-78 22:33:16, EDIT BY KIRSCHEN
   103					;<4.UTILITIES>NCP.MAC.143, 18-Dec-78 22:16:10, EDIT BY KIRSCHEN
   104					;<4.UTILITIES>NCP.MAC.142, 18-Dec-78 21:43:49, EDIT BY KIRSCHEN
   105					;<4.UTILITIES>NCP.MAC.141, 18-Dec-78 21:37:41, EDIT BY KIRSCHEN
   106					;<4.UTILITIES>NCP.MAC.140, 18-Dec-78 21:04:02, EDIT BY KIRSCHEN
   107					;<4.UTILITIES>NCP.MAC.139, 18-Dec-78 21:01:17, EDIT BY KIRSCHEN
   108					;ADD SET LINE STATE USING NICE PROTOCOL
   109					;<4.UTILITIES>NCP.MAC.138,  5-Dec-78 14:02:59, EDIT BY KIRSCHEN
   110					;<4.UTILITIES>NCP.MAC.137,  5-Dec-78 11:31:05, EDIT BY KIRSCHEN
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 1-2
NCP	MAC	 5-Oct-81 16:46	

   111					;<4.UTILITIES>NCP.MAC.136,  5-Dec-78 09:32:41, EDIT BY KIRSCHEN
   112					;<4.UTILITIES>NCP.MAC.135,  1-Dec-78 10:50:32, EDIT BY KIRSCHEN
   113					;FIX OUTPUT FORMATTING BUG
   114					;<4.UTILITIES>NCP.MAC.134,  1-Dec-78 09:44:18, EDIT BY KIRSCHEN
   115					;<4.UTILITIES>NCP.MAC.133, 27-Nov-78 14:39:25, EDIT BY KIRSCHEN
   116					;<4.UTILITIES>NCP.MAC.132, 22-Nov-78 16:17:55, EDIT BY ENGEL
   117					;<4.UTILITIES>NCP.MAC.131, 15-Nov-78 10:14:47, EDIT BY ENGEL
   118					;FIX ERROR RETURNS IN DOJFD'S CALL TO SHOTAB
   119					;<4.UTILITIES>NCP.MAC.130, 15-Nov-78 08:44:42, EDIT BY ENGEL
   120					;ELIMINATE BKJFN IN SHOW STATE KNOWN LINES 
   121					;<4.UTILITIES>NCP.MAC.129, 13-Nov-78 14:24:21, EDIT BY ENGEL
   122					;ADD SHOW STATE KNOWN LINES
   123					;<4.UTILITIES>NCP.MAC.128, 10-Nov-78 11:23:20, EDIT BY KIRSCHEN
   124					;FIX TOPOLOGY NOTIFICATION BUGS
   125					;<4.UTILITIES>NCP.MAC.127,  9-Nov-78 08:51:07, EDIT BY KIRSCHEN
   126					;<4.UTILITIES>NCP.MAC.126,  9-Nov-78 08:46:46, EDIT BY KIRSCHEN
   127					;DON'T GET NEW SERVER LINK IN MONINI
   128					;<4.UTILITIES>NCP.MAC.125,  8-Nov-78 20:58:01, EDIT BY KIRSCHEN
   129					;DO NOT RELEASE BLOCK CONTAINING NODE NAME IN INIMON
   130					;<4.UTILITIES>NCP.MAC.124,  7-Nov-78 15:55:30, EDIT BY KIRSCHEN
   131					;BUG FIXES
   132					;<4.UTILITIES>NCP.MAC.123,  6-Nov-78 16:12:05, EDIT BY KIRSCHEN
   133					;WAIT FOR CONNECT ACCEPT IN TOPLNK
   134					;<4.UTILITIES>NCP.MAC.122,  3-Nov-78 10:52:18, EDIT BY ENGEL
   135					;MAKE SAVT GLOBAL
   136					;<4.UTILITIES>NCP.MAC.121,  2-Nov-78 13:21:07, EDIT BY ENGEL
   137					;MAKE SAVQ GLOBAL
   138					;<4.UTILITIES>NCP.MAC.120,  2-Nov-78 10:11:17, EDIT BY KIRSCHEN
   139					;FIX OUTPUT FORMATS
   140					;<4.UTILITIES>NCP.MAC.118,  1-Nov-78 16:28:09, EDIT BY ENGEL
   141					;FIX  LOOP WITH XXX 
   142					;<4.UTILITIES>NCP.MAC.117,  1-Nov-78 14:23:06, EDIT BY KIRSCHEN
   143					;FIX FORMATTING OF OUTPUT TO OPR
   144					;<4.UTILITIES>NCP.MAC.116,  1-Nov-78 10:12:58, EDIT BY ENGEL
   145					;FIX COUNT REPORTING IN LOPTST:
   146					;<4.UTILITIES>NCP.MAC.115, 31-Oct-78 09:46:49, EDIT BY KIRSCHEN
   147					;<4.UTILITIES>NCP.MAC.114, 31-Oct-78 09:06:05, EDIT BY KIRSCHEN
   148					;ADD CODE TO HANDLE ERROR MESSAGES FROM ORION
   149					;<4.UTILITIES>NCP.MAC.113, 30-Oct-78 11:53:27, EDIT BY KIRSCHEN
   150					;MAKE OPRMES EXTERNAL
   151					;<4.UTILITIES>NCP.MAC.112, 25-Oct-78 11:00:56, EDIT BY ENGEL
   152					;ADD LOOP COMMAND
   153					;<4.UTILITIES>NCP.MAC.111, 25-Oct-78 09:37:22, EDIT BY KIRSCHEN
   154					;USE HEADER INSTEAD OF TEXT WHEN ADVISING OPR OF FORK TERMINATIONS
   155					;<4.UTILITIES>NCP.MAC.110, 24-Oct-78 09:17:01, EDIT BY KIRSCHEN
   156					;<4.UTILITIES>NCP.MAC.109, 23-Oct-78 18:02:00, EDIT BY KIRSCHEN
   157					;<4.UTILITIES>NCP.MAC.108, 23-Oct-78 17:45:08, EDIT BY KIRSCHEN
   158					;<4.UTILITIES>NCP.MAC.107, 19-Oct-78 12:06:22, EDIT BY KIRSCHEN
   159					;FIX SHOTAB - SHOULD HAVE ADDRESSES, NOT RETS
   160					;<4.UTILITIES>NCP.MAC.106, 18-Oct-78 12:11:24, EDIT BY KIRSCHEN
   161					;<4.UTILITIES>NCP.MAC.105, 18-Oct-78 11:10:56, EDIT BY ENGEL
   162					;FIX ERROR IN COMMUNICATION VERSIONS
   163					;<4.UTILITIES>NCP.MAC.104, 16-Oct-78 13:21:59, EDIT BY KIRSCHEN
   164					;<4.UTILITIES>NCP.MAC.103, 16-Oct-78 11:55:05, EDIT BY KIRSCHEN
   165					;<4.UTILITIES>NCP.MAC.102, 16-Oct-78 10:23:52, EDIT BY KIRSCHEN
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 1-3
NCP	MAC	 5-Oct-81 16:46	

   166					;<4.UTILITIES>NCP.MAC.101, 16-Oct-78 10:07:15, EDIT BY KIRSCHEN
   167					;PROVIDE RESOURCE MASK IN CALL TO EDLOCK
   168					;<4.UTILITIES>NCP.MAC.100, 13-Oct-78 21:45:16, EDIT BY KIRSCHEN
   169					;<4.UTILITIES>NCP.MAC.99, 13-Oct-78 15:23:08, EDIT BY KIRSCHEN
   170					;
   171					; GENERATIONS NCP.MAC.59 THRU NCP.MAC.99 WERE CONTINUING EDITS
   172					; TO IMPLEMENT THE TOPOLOGY CHANGE MECHANISM
   173					;CODE TO PROCESS TOPOLOGY CHANGE MESSAGES
   174					;<4.UTILITIES>NCP.MAC.58, 19-Sep-78 15:20:58, EDIT BY KIRSCHEN
   175					;<4.UTILITIES>NCP.MAC.57, 19-Sep-78 13:40:36, EDIT BY KIRSCHEN
   176					;<4.UTILITIES>NCP.MAC.56, 19-Sep-78 11:42:55, EDIT BY KIRSCHEN
   177					;<4.UTILITIES>NCP.MAC.55, 19-Sep-78 11:29:14, EDIT BY KIRSCHEN
   178					;<4.UTILITIES>NCP.MAC.54, 19-Sep-78 10:31:11, EDIT BY KIRSCHEN
   179					;ADD CODE TO INITIALIZE TOPOLOGY MONITORING
   180					;<4.UTILITIES>NCP.MAC.52, 18-Sep-78 16:17:39, EDIT BY KIRSCHEN
   181					;ADD CODE TO PARSE INITIATE MONITORING
   182					;<4.UTILITIES>NCP.MAC.51,  6-Sep-78 13:46:33, EDIT BY KIRSCHEN
   183					;FIX BUG IN DMPRMD CODE
   184					;<4.UTILITIES>NCP.MAC.49,  5-Sep-78 16:50:12, EDIT BY KIRSCHEN
   185					;CHANGE ALL .KY SYMBOLS TO .DN SYMBOLS
   186					;<4.UTILITIES>NCP.MAC.48,  5-Sep-78 14:29:29, EDIT BY KIRSCHEN
   187					;UPDATE MESSAGE FORMATS FOR RELEASE 4 ORION
   188					;<4.UTILITIES>NCP.MAC.46, 16-Aug-78 11:10:30, Edit by KIRSCHEN
   189					;<4.UTILITIES>NCP.MAC.45, 16-Aug-78 11:04:04, Edit by KIRSCHEN
   190					;<4.UTILITIES>NCP.MAC.44, 16-Aug-78 09:11:11, Edit by KIRSCHEN
   191					;BEGIN EDITS TO UPGRADE TO RELEASE 4 OPR
   192					;<4.UTILITIES>NCP.MAC.43,  3-Aug-78 14:17:28, Edit by KIRSCHEN
   193					;MAKE PSIINI ACCEPTS CHANNELS AS ARGUMENT
   194					;<4.UTILITIES>NCP.MAC.42, 21-Jul-78 13:08:51, Edit by KIRSCHEN
   195					;<4.UTILITIES>NCP.MAC.41, 21-Jul-78 10:09:50, Edit by KIRSCHEN
   196					;<4.UTILITIES>NCP.MAC.40, 21-Jul-78 10:01:06, Edit by KIRSCHEN
   197					;<4.UTILITIES>NCP.MAC.39, 21-Jul-78 09:49:07, Edit by KIRSCHEN
   198					;<4.UTILITIES>NCP.MAC.38, 21-Jul-78 09:45:40, Edit by KIRSCHEN
   199					;GET SYSTEM NAME ON STARTUP
   200					;<4.UTILITIES>NCP.MAC.37, 21-Jul-78 08:58:56, Edit by KIRSCHEN
   201					;<4.UTILITIES>NCP.MAC.36, 20-Jul-78 15:42:40, Edit by KIRSCHEN
   202					;<4.UTILITIES>NCP.MAC.35, 20-Jul-78 14:49:14, Edit by KIRSCHEN
   203					;<4.UTILITIES>NCP.MAC.34, 20-Jul-78 13:50:48, Edit by KIRSCHEN
   204					;<4.UTILITIES>NCP.MAC.33, 20-Jul-78 10:06:20, Edit by KIRSCHEN
   205					;<4.UTILITIES>NCP.MAC.31, 19-Jul-78 11:07:28, Edit by KIRSCHEN
   206					;<4.UTILITIES>NCP.MAC.30, 19-Jul-78 09:10:19, Edit by KIRSCHEN
   207					;<4.UTILITIES>NCP.MAC.29, 18-Jul-78 16:51:21, Edit by KIRSCHEN
   208					;<4.UTILITIES>NCP.MAC.28, 18-Jul-78 11:26:55, Edit by KIRSCHEN
   209					;<4.UTILITIES>NCP.MAC.27, 18-Jul-78 11:25:46, Edit by KIRSCHEN
   210					;<4.UTILITIES>NCP.MAC.26, 18-Jul-78 11:13:34, Edit by KIRSCHEN
   211					;<4.UTILITIES>NCP.MAC.25, 17-Jul-78 13:37:45, Edit by KIRSCHEN
   212					;<4.UTILITIES>NCP.MAC.24, 17-Jul-78 13:24:25, Edit by KIRSCHEN
   213					;<4.UTILITIES>NCP.MAC.23, 17-Jul-78 12:01:30, Edit by KIRSCHEN
   214					;<4.UTILITIES>NCP.MAC.22, 17-Jul-78 11:50:41, Edit by KIRSCHEN
   215					;<4.UTILITIES>NCP.MAC.21, 17-Jul-78 11:09:32, Edit by KIRSCHEN
   216					;<4.UTILITIES>NCP.MAC.20, 17-Jul-78 09:21:29, Edit by KIRSCHEN
   217					;<4.UTILITIES>NCP.MAC.19, 17-Jul-78 09:12:41, Edit by KIRSCHEN
   218					;PROVIDE POINTER ON CALL TO GET NODE NAME IN REMSTS
   219					;<4.UTILITIES>NCP.MAC.18, 14-Jul-78 14:45:54, Edit by KIRSCHEN
   220					;<4.UTILITIES>NCP.MAC.17, 14-Jul-78 11:47:44, Edit by KIRSCHEN
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 1-4
NCP	MAC	 5-Oct-81 16:46	

   221					;<4.UTILITIES>NCP.MAC.16, 14-Jul-78 11:38:28, Edit by KIRSCHEN
   222					;<4.UTILITIES>NCP.MAC.15, 13-Jul-78 15:12:04, Edit by KIRSCHEN
   223					;<4.UTILITIES>NCP.MAC.14, 13-Jul-78 13:47:24, Edit by KIRSCHEN
   224					;<4.UTILITIES>NCU.MAC.12, 13-Jul-78 13:26:22, Edit by KIRSCHEN
   225					;<4.UTILITIES>NCP.MAC.12, 13-Jul-78 11:45:33, Edit by KIRSCHEN
   226					;ADD SHOW STATE NODE NODE-NAME
   227					;<4.UTILITIES>NCP.MAC.11, 13-Jul-78 11:09:51, Edit by KIRSCHEN
   228					;<4.UTILITIES>NCP.MAC.10, 13-Jul-78 10:57:20, Edit by KIRSCHEN
   229					;<4.UTILITIES>NCP.MAC.9, 13-Jul-78 10:48:20, Edit by KIRSCHEN
   230					;<4.UTILITIES>NCP.MAC.8, 13-Jul-78 10:35:17, Edit by KIRSCHEN
   231					;<4.UTILITIES>NCP.MAC.7, 13-Jul-78 10:33:27, Edit by KIRSCHEN
   232					;<4.UTILITIES>NCP.MAC.6, 13-Jul-78 10:02:26, Edit by KIRSCHEN
   233					;<4.UTILITIES>NCP.MAC.5, 13-Jul-78 09:54:39, Edit by KIRSCHEN
   234					;<4.UTILITIES>NCP.MAC.4, 13-Jul-78 09:44:50, Edit by KIRSCHEN
   235					;<4.UTILITIES>NCP.MAC.3, 13-Jul-78 09:35:21, Edit by KIRSCHEN
   236					;<4.UTILITIES>NCP.MAC.2, 13-Jul-78 09:24:06, Edit by KIRSCHEN
   237					;THE NEXT SEVERAL EDITS REFLECT CONTINUED ATTEMPTS TO RESOLVE THE
   238					; VARIOUS SYMBOL CONFLICTS DUE TO BREAKING APART THE SOURCE CODE.
   239					;<4.UTILITIES>NCP.MAC.1, 13-Jul-78 09:15:07, Edit by KIRSCHEN
   240					;BREAK NETCON INTO TWO MODULES, NCU.MAC AND THIS MODULE, NCP.MAC
   241					;<4.UTILITIES>NETCON.MAC.28, 13-Jul-78 09:05:55, Edit by KIRSCHEN
   242					;<4.UTILITIES>NETCON.MAC.27, 12-Jul-78 16:03:44, Edit by KIRSCHEN
   243					;<4.UTILITIES>NETCON.MAC.26, 12-Jul-78 15:56:10, Edit by KIRSCHEN
   244					;<4.UTILITIES>NETCON.MAC.25, 12-Jul-78 15:40:32, Edit by KIRSCHEN
   245					;<4.UTILITIES>NETCON.MAC.24, 12-Jul-78 15:13:55, Edit by KIRSCHEN
   246					;<4.UTILITIES>NETCON.MAC.23, 12-Jul-78 15:01:17, Edit by KIRSCHEN
   247					;<4.UTILITIES>NETCON.MAC.21, 12-Jul-78 11:40:36, Edit by KIRSCHEN
   248					;<4.UTILITIES>NETCON.MAC.20, 12-Jul-78 11:19:08, Edit by KIRSCHEN
   249					;<4.UTILITIES>NETCON.MAC.19, 12-Jul-78 11:03:54, Edit by KIRSCHEN
   250					;<4.UTILITIES>NETCON.MAC.18, 12-Jul-78 10:55:54, Edit by KIRSCHEN
   251					;<4.UTILITIES>NETCON.MAC.16, 12-Jul-78 09:34:29, Edit by KIRSCHEN
   252					;COMPLETE SHOW STATE LINE
   253					;<4.UTILITIES>NETCON.MAC.15, 12-Jul-78 08:44:43, Edit by KIRSCHEN
   254					;<4.UTILITIES>NETCON.MAC.14, 12-Jul-78 08:19:01, Edit by KIRSCHEN
   255					;<4.UTILITIES>NETCON.MAC.13, 12-Jul-78 08:14:46, Edit by KIRSCHEN
   256					;<4.UTILITIES>NETCON.MAC.21, 12-Jul-78 08:10:12, Edit by KIRSCHEN
   257					;BREAK OUT DEFINITIONS INTO NCPPAR.MAC
   258					;<4.UTILITIES>NETCON.MAC.20, 11-Jul-78 16:45:55, Edit by KIRSCHEN
   259					; ADD SHOW STATE
   260					;<4.UTILITIES>NETCON.MAC.19, 11-Jul-78 16:18:33, Edit by KIRSCHEN
   261					;<4.UTILITIES>NETCON.MAC.18, 11-Jul-78 16:05:03, Edit by KIRSCHEN
   262					;ADD LINE STATUS SERVER
   263					;<4.UTILITIES>NETCON.MAC.17, 11-Jul-78 15:17:10, Edit by KIRSCHEN
   264					;<4.UTILITIES>NETCON.MAC.16, 11-Jul-78 14:23:38, Edit by KIRSCHEN
   265					;<4.UTILITIES>NETCON.MAC.15, 11-Jul-78 13:32:34, Edit by KIRSCHEN
   266					;<4.UTILITIES>NETCON.MAC.14, 11-Jul-78 13:20:26, Edit by KIRSCHEN
   267					;<4.UTILITIES>NETCON.MAC.13, 11-Jul-78 13:13:05, Edit by KIRSCHEN
   268					;SAVE NICE FUNCTION AND OPTION CODES ACROSS THE COMMAND
   269					;<4.UTILITIES>NETCON.MAC.11, 11-Jul-78 09:49:43, Edit by KIRSCHEN
   270					;<4.UTILITIES>NETCON.MAC.10, 29-Jun-78 12:03:14, Edit by KIRSCHEN
   271					;<4.UTILITIES>NETCON.MAC.9, 29-Jun-78 09:18:16, Edit by KIRSCHEN
   272					;<4.UTILITIES>NETCON.MAC.8, 28-Jun-78 14:48:03, Edit by KIRSCHEN
   273					;SUBROUTINIZE RETURNING LINE COUNTERS AT DOJFD
   274					;<4.UTILITIES>NETCON.MAC.7, 27-Jun-78 11:29:18, Edit by KIRSCHEN
   275					;<4.UTILITIES>NETCON.MAC.6, 27-Jun-78 11:13:28, Edit by KIRSCHEN
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 1-5
NCP	MAC	 5-Oct-81 16:46	

   276					;<4.UTILITIES>NETCON.MAC.5, 27-Jun-78 11:11:09, Edit by KIRSCHEN
   277					;ADD SHOW EXECUTOR COMMAND
   278					;<3A.UTILITIES>NETCON.MAC.22, 22-Jun-78 10:29:27, Edit by KIRSCHEN
   279					;<3A.UTILITIES>NETCON.MAC.21, 22-Jun-78 10:15:02, Edit by KIRSCHEN
   280					;<3A.UTILITIES>NETCON.MAC.20, 21-Jun-78 10:12:30, Edit by KIRSCHEN
   281					;FIX LINE STATISTICS ENTRIES
   282					;<4.UTILITIES>NETCON.MAC.3, 16-Jun-78 11:05:14, Edit by KIRSCHEN
   283					;CHECK FOR ANOTHER NETCON ALREADY RUNNING
   284					;<3A.UTILITIES>NETCON.MAC.19, 12-Jun-78 13:09:55, Edit by KIRSCHEN
   285					;FIX PIDINT TO UNDERSTAND ABOUT SPURIOUS INTERRUPTS
   286					;<3A.UTILITIES>NETCON.MAC.18,  7-Jun-78 14:57:08, Edit by KIRSCHEN
   287					;FIX BUG IN LIDPRT
   288					;<3A.UTILITIES>NETCON.MAC.17,  6-Jun-78 11:21:05, Edit by KIRSCHEN
   289					;<3A.UTILITIES>NETCON.MAC.16,  6-Jun-78 10:54:07, Edit by KIRSCHEN
   290					;<3A.UTILITIES>NETCON.MAC.15,  6-Jun-78 10:09:03, Edit by KIRSCHEN
   291					;LINE STATISTICS SYSERR ENTRY FIXES
   292					;<3A.UTILITIES>NETCON.MAC.14,  2-Jun-78 10:05:44, Edit by KIRSCHEN
   293					;<3A.UTILITIES>NETCON.MAC.13,  2-Jun-78 09:37:46, Edit by KIRSCHEN
   294					;USE ASCLIN INSTEAD OF MAKLID ROUTINE TO CONVERT LINE ID TO TEXT
   295					;<3A.UTILITIES>NETCON.MAC.12, 31-May-78 15:44:10, Edit by KIRSCHEN
   296					;MORE SET EXECUTOR FIXES
   297					;<3A.UTILITIES>NETCON.MAC.11, 31-May-78 15:15:30, Edit by KIRSCHEN
   298					;PARSE NODE NAME NOT FIELD IN SET EXECUTOR
   299					;<3A.UTILITIES>NETCON.MAC.10, 31-May-78 14:29:52, Edit by KIRSCHEN
   300					;CLEAN UP LISTING
   301					;<3A.UTILITIES>NETCON.MAC.9, 30-May-78 12:00:16, Edit by KIRSCHEN
   302					;<3A.UTILITIES>NETCON.MAC.8, 30-May-78 11:47:21, Edit by KIRSCHEN
   303					;CAUSE LOGGING-INTERVAL CHANGE TO TAKE EFFECT IMMEDIATELY
   304					;<3A.UTILITIES>NETCON.MAC.7, 26-May-78 09:19:26, Edit by KIRSCHEN
   305					;UPDATE SYSERR ENTRY FORMATS FOR RELEASE 3A
   306					;<KIRSCHEN>NETCON.MAC.6, 15-May-78 13:40:18, Edit by KIRSCHEN
   307					;<3A.UTILITIES>NETCON.MAC.6,  8-May-78 13:16:08, Edit by MCCLURE
   308					; Zero counters for 2020 KDP's
   309					;<3A.UTILITIES>NETCON.MAC.5,  4-May-78 23:47:50, Edit by MCCLURE
   310					; Add CABLE-LOOPBACK & CONTROLLER-LOOPBACK
   311					;<3A.UTILITIES>NETCON.MAC.4, 19-Apr-78 11:11:08, Edit by KIRSCHEN
   312					;REDUCE WAIT TIME FOR PROTOCOL INIT ON DTE20; ADD NEW ERROR CODES
   313					;<3A.UTILITIES>NETCON.MAC.3, 13-Apr-78 08:52:38, Edit by MCCLURE
   314					; Add 2020 stuff
   315					;<4.UTILITIES>NETCON.MAC.36, 20-Mar-78 12:35:08, Edit by KIRSCHEN
   316					;TERMINATE PROTOCOL BEFORE INITIATING A DUMP OVER A DTE20
   317					;<4.UTILITIES>NETCON.MAC.35,  7-Mar-78 15:07:58, Edit by KIRSCHEN
   318					;<4.UTILITIES>NETCON.MAC.34,  7-Mar-78 12:49:01, Edit by KIRSCHEN
   319					;<4.UTILITIES>NETCON.MAC.33,  6-Mar-78 16:44:16, Edit by KIRSCHEN
   320					;<4.UTILITIES>NETCON.MAC.32,  6-Mar-78 14:50:01, Edit by KIRSCHEN
   321					;<4.UTILITIES>NETCON.MAC.31,  6-Mar-78 09:30:13, Edit by KIRSCHEN
   322					;PERMIT LOGGING OF LINE COUNTERS WITHOUT HAVING DONE A DOWN LINE LOAD
   323					;<4.UTILITIES>NETCON.MAC.30,  1-Mar-78 15:09:10, Edit by KIRSCHEN
   324					;<4.UTILITIES>NETCON.MAC.29,  1-Mar-78 10:27:33, Edit by KIRSCHEN
   325					;ZERO COUNTERS AFTER LOGGING THEM
   326					;<4.UTILITIES>NETCON.MAC.27, 28-Feb-78 09:08:26, Edit by KIRSCHEN
   327					;<4.UTILITIES>NETCON.MAC.25,  6-Feb-78 12:06:22, Edit by KIRSCHEN
   328					;<4.UTILITIES>NETCON.MAC.24,  6-Feb-78 11:54:57, Edit by KIRSCHEN
   329					;<4.UTILITIES>NETCON.MAC.23,  6-Feb-78 11:41:59, Edit by KIRSCHEN
   330					;<4.UTILITIES>NETCON.MAC.22,  6-Feb-78 11:33:40, Edit by KIRSCHEN
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 1-6
NCP	MAC	 5-Oct-81 16:46	

   331					;<4.UTILITIES>NETCON.MAC.21,  3-Feb-78 12:07:19, Edit by KIRSCHEN
   332					;<4.UTILITIES>NETCON.MAC.20,  3-Feb-78 11:56:52, Edit by KIRSCHEN
   333					;<4.UTILITIES>NETCON.MAC.19,  2-Feb-78 16:24:48, Edit by KIRSCHEN
   334					;<4.UTILITIES>NETCON.MAC.18,  2-Feb-78 15:48:51, Edit by KIRSCHEN
   335					;<4.UTILITIES>NETCON.MAC.17,  2-Feb-78 13:05:51, Edit by KIRSCHEN
   336					;<4.UTILITIES>NETCON.MAC.16,  1-Feb-78 14:41:50, Edit by KIRSCHEN
   337					;<4.UTILITIES>NETCON.MAC.15,  1-Feb-78 14:27:16, Edit by KIRSCHEN
   338					;<4.UTILITIES>NETCON.MAC.14,  1-Feb-78 14:12:23, Edit by KIRSCHEN
   339					;<4.UTILITIES>NETCON.MAC.13, 23-Jan-78 11:59:52, EDIT BY KIRSCHEN
   340					;<4.UTILITIES>NETCON.MAC.12, 23-Jan-78 09:47:54, EDIT BY KIRSCHEN
   341					;<4.UTILITIES>NETCON.MAC.11, 19-Jan-78 16:25:00, EDIT BY KIRSCHEN
   342					;<4.UTILITIES>NETCON.MAC.10, 19-Jan-78 12:14:14, EDIT BY KIRSCHEN
   343					;<4.UTILITIES>NETCON.MAC.9, 19-Jan-78 12:07:58, EDIT BY KIRSCHEN
   344					;<4.UTILITIES>NETCON.MAC.8, 19-Jan-78 11:00:33, EDIT BY KIRSCHEN
   345					;FIX FAILURE TO RELEASE LOGICAL LINK ON FAILING TO GET LINE COUNTERS
   346					;<4.UTILITIES>NETCON.MAC.7, 11-Jan-78 14:33:46, EDIT BY KIRSCHEN
   347					;ADD CODE TO NOTE THAT LOGGING IS REQUIRED FOR A LINE
   348					;<4.UTILITIES>NETCON.MAC.3, 10-Jan-78 10:33:23, EDIT BY KIRSCHEN
   349					;RELEASE JFN IF OPENF FAILS IN GETLNK ROUTINE
   350					;<4.UTILITIES>NETCON.MAC.2,  5-Jan-78 16:33:49, EDIT BY KIRSCHEN
   351					;SET UP SCRATCH AREA FOR LOGGING PROCESS
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 2
NCP	MAC	 5-Oct-81 16:46	

   352					TITLE NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)
   353					SUBTTL	D. KIRSCHEN/P. HURLEY	FEBRUARY, 1977
   354
   355
   356						SEARCH NETPAR
   357						SEARCH MONSYM,MACSYM,ORNMAC,GLXMAC,MACTEN
   358						.REQUIRE SYS:MACREL
   359					;	SALL
   360
   361
   362					;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
   363					;  OR COPIED IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE.
   364					;
   365					;COPYRIGHT (C) 1976,1977,1978,1979,1980 BY DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
   366
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 3
NCP	MAC	 5-Oct-81 16:46		EXTERNAL Definitions

   367					SUBTTL	EXTERNAL Definitions
   368
   369					; ALL OF THE FOLLOWING SYMBOLS ARE DEFINED IN THE MODULE NCU.MAC
   370
   371					EXTERN	LEV1PC, LEV2PC, LEV3PC
   372					EXTERN	L1SAV1, L1SAV2, L1SAV3, L1SAV4, L1SAVC
   373					EXTERN	L2SAV1, L2SAV2, L2SAV3, L2SAV4, L2SAVC
   374					EXTERN	L3SAV1, L3SAV2, L3SAV3, L3SAV4, L3SAVC
   375					EXTERN	EXCUTR, LOGTIM, ERRSTR, OURNAM, OURNUM, PGMTAB
   376					EXTERN	BEGFRE, LSTFRE, NODTAB, NXTNIB, NXTLIN
   377					EXTERN	GETNIB, CVTDEV, NCU, ASCLIN, SYRNCU, LOGGER, ADVTOP
   378					EXTERN	MAKTWO, MAKIMB, MAKIMA, MAKNAM, MAKNUM, MAKNOD, MAKLIN
   379					EXTERN	MAKSLN, MAKHST, MAKENA, MAKENL, MAKDSL, MAKDIS
   380					EXTERN	GETTWO, GETLIN, GETEXB, GETNUM, GETNOD, GETIMA, TOPFRE
   381
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 4
NCP	MAC	 5-Oct-81 16:46		Table of Contents

   382					SUBTTL	Table of Contents
   383					;
   384					;
   385					;               TABLE OF CONTENTS FOR NETCON
   386					;
   387					;
   388					;                        SECTION                                   PAGE
   389					;    1. Table of Contents.........................................   3
   390					;    2. Macro Definitions.........................................   4
   391					;    3. NICE Process Data Area Offset Definitions.................   7
   392					;    4. Symbol Definitions........................................   8
   393					;    5. Data Structure Definitions................................  13
   394					;    6. Network Control Program (NCP).............................  17
   395					;    7. NCP
   396					;         7.1   SET Command.......................................  22
   397					;         7.2   LOAD Command......................................  33
   398					;         7.3   DUMP Command......................................  43
   399					;         7.4   SHOW Command......................................  49
   400					;         7.5   INITIATE and TERMINATE Commands...................  52
   401					;         7.6   Miscellaneous Routines............................  58
   402					;    8. Network Information and Control Exchange (NICE) Process... 104
   403					;    9. NICE Process
   404					;         9.1   Down-Line Load.................................... 107
   405					;         9.2   Up Line Dump...................................... 118
   406					;         9.3   Return Line Counts................................ 121
   407					;         9.4   Zero Line Counters................................ 122
   408					;         9.5   Line Service Handler.............................. 123
   409					;   10. Routines to Default Information from the Configuration Database 139
   410					;   11. Routines to Extract Fields from NICE Messages............. 144
   411					;   12. Routines to Assemble NICE Messages........................ 162
   412					;   13. Routines to Manipulate DTE-20's........................... 181
   413					;   14. I/O Subroutines........................................... 186
   414					;   15. SYSERR Routines........................................... 198
   415					;   16. Utility Routines.......................................... 212
   416					;   17. Constants and Tables...................................... 224
   417					;   18. Variable Data Storage..................................... 225
   418
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 5
NCP	MAC	 5-Oct-81 16:46		Table of Contents

   419					;Assembly switches
   420
   421						ND TRACE,0		^; Memory pool tracing normally off (0)
   422
   423					;FREE PAGES - THESE ARE UNMAPPED AT PROGRAM START UP
   424
   425			000400			NCUFFP==400		;FIRST PAGE OF NCU LOCAL STORAGE AREA
   426			000010			NNCUPG==10		;NUMBER OF PAGES PER NCU
   427			000040			NCUNFP==NJFN*NNCUPG	;NUMBER OF PAGES FOR NCU STORAGE SPACE
   428
   429			000500			FFP==500		;FIRST FREE PAGE IN POOL
   430			000100			NFP==100		;NUMBER OF FREE PAGES
   431			477000			FPRCD==477000		;Base address of free pool recording page
   432
   433
   434					;FREE SPACE POOL
   435
   436			000600			FSP==600		;FIRST FREE SPACE PAGE
   437			000100			NFSP==100		;SIZE OF FREE SPACE POOL
   438			600000			FSADR==600*1000		;FREE SPACE ADR
   439			100000			FSLEN==100*1000		;LENGTH OF FREE SPACE POOL
   440
   441					;Offsets into free space pool header
   442
   443			000000			.FHFFB==0		; LH points to first free block
   444			000001			.FHCNT==1		; Count of free words in pool
   445			000002			.FHCBS==2		; Most common block size in pool
   446			000003			.FHADR==3		; Pool addresses (top,,bottom)
   447			000004			.FHBFS==4		; Best fit size (so far) during allocation
   448			000005			.FHBFA==5		; Address of best fit block
   449
   450					;	Each block on the free chain (list) has a header of:
   451					;
   452					;	Word 0/	Next-block,,length
   453					;
   454					;	If the next-block link is zero then the end of the free chain has
   455					;	been found.  All of the blocks on the free pool chain are sorted
   456					;	by ascending address.  When a block is freed it is checked for
   457					;	continguousness with previous and next blocks on the chain.  If
   458					;	so they are compressed into a single block.
   459
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 6
NCP	MAC	 5-Oct-81 16:46		Variable Data Storage

   460					SUBTTL	Variable Data Storage
   461
   462	000000'				PDL:	BLOCK PDLEN		;TOP FORK PUSH DOWN LIST
   463	002000'				REQADR:	BLOCK 1			;ADDRESS OF CURRENT REQUEST
   464	002001'				REQCOD:	BLOCK 1			;CODE USED IN RETURNING ACK TO OPR
   465	002002'				QUEUE:	BLOCK 1			;POINTER TO THE FIRST ITEM ON QUEUE
   466	002003'				NICQUE:	BLOCK 1			;POINTER TO FIRST ITEM ON NICE QUEUE
   467	002004'				LOGFRK:	BLOCK 1			;HANDLE OF LOGGING FORK
   468	002005'				TOPTAB:	BLOCK 1			;TOPOLOGY TABLE
   469	002006'				TOPSRV:	BLOCK 1			;TOPOLOGY SERVER LINK JFN
   470	002007'				JFNTAB:	BLOCK NJFN		;TABLE OF OPEN NCU JFNS
   471	002013'				FRKTAB:	BLOCK NJFN		;TABLE OF PROCESS HANDLES
   472	002017'				FRKFLG:	BLOCK NJFN		;FLAGS PER FORK
   473	002023'				REQTAB:	BLOCK NJFN		;REQUEST NUMBERS
   474	002027'				JFDTAB:	BLOCK NJFN		;JFN'S FOR SENDING NICE MESSAGES
   475	002033'				REQMES:	BLOCK NJFN		;POINTERS TO MESSAGES
   476	002037'				REQXTR:	BLOCK NJFN		;EXECUTOR STRING ADDRESSES
   477	002043'				FCNTAB:	BLOCK NJFN		;NICE FUNCTION,,OPTION CODES
   478
   479	002047'	000000	000000		REQNUM:	0			;NEXT REQUEST NUMBER
   480
   481	002050'	000000	000000		PID:	0			;OUR PID FOR ORION COMMUNICATION
   482	002051'	000000	000000		OPRPID:	0			;PID OF ORION
   483
   484	002052'	000000	000000		FRELOK:	0			;GETFRE/RELFRE LOCK WORD
   485	002053'	000000	000000		PAGLOK:	0			;ASGPAG/RELPAG LOCK WORD
   486
   487	002054'				FRSHDR:	BLOCK 6			;FREE SPACE HEADER
   488	002062'				FPTBL:	BLOCK <NFP+^D35>/^D36	;FREE PAGE TABLE - BIT=1 MEANS PAGE FREE
   489
   490	002064'				SYSNAM::BLOCK 100		;SYSTEM NAME TEXT
   491
   492	002164'				NIBTAB::BLOCK NIBSIZ*MAXNOD	;ALLOCATE ONE NIB PER NODE
   493	003770'				ADJTAB:	BLOCK MAXNOD*LINSIZ	;MAX # OF NODES * SIZE OF EACH LINE TABLE
   494
   495
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 7
NCP	MAC	 5-Oct-81 16:46		Variable Data Storage

   496	005740'				START:
   497	005740'	104 00 0 00 000147 	NETCON::RESET			;START FRESH
   498	005741'	200 17 0 00 016620'		MOVE P,[IOWD PDLEN,PDL]	;INIT THE PUSH DOWN POINTER
   499	005742'	260 17 0 00 015114'		CALL DUPTST		;ANOTHER NETCON ALREADY RUNNING ?
   500						 JRST [	HALTF		;YES, GIVE UP.
   501	005743'	254 00 0 00 016621'			JRST START ]	;IF CONTINUED, START OVER
   502	005744'	260 17 0 00 014701'		CALL NETINI		;INITIALIZE EVERYTHING
   503						 FATAL.ERROR		^;FAILED, GO TYPE OUT REASON FOR FAILURE
   504							CALL ERROR
   505							HALTF
   506	005745'	254 00 0 00 016623'			JRST NETCON]
   507
   508					;BACKGROUND LOOP - EXECUTES REQUESTS FROM ORION
   509
   510	005746'	201 01 0 00 165140 	BGLOOP:	MOVEI T1,^D60*^D1000	;SET UP FOR A 1 MINUTE DISMS
   511	005747'	201 02 0 00 000000 		MOVEI T2,0		;ASSUME WAIT JSYS
   512	005750'	332 00 0 00 002003'		SKIPE NICQUE		;ANYTHING IN THE NICE MSSAGE QUEUE?
   513	005751'	201 02 0 00 000001 		MOVEI T2,1		;YES, USE A DISMS JSYS
   514	005752'	336 00 0 00 002002'		SKIPN QUEUE		;ANYTHING TO DO?
   515	005753'	256 00 0 02 005774'	BGWAIT:	XCT WATINS(T2)		;NO, WAIT UNTIL SOMETHING COMES ALONG
   516	005754'	255 00 0 00 000000 	BGWTPC:	 JFCL			;PC OF WAIT STATE IS HERE
   517						PIOFF	^		;TURN OFF INTERRUPTS WHILE TOUCHING QUEUE
   518	005755'	260 17 0 00 014406'		CALL PIOFF.
   519	005756'	200 01 0 00 002002'		MOVE T1,QUEUE		;GET FIRST ENTRY ON THE QUEUE
   520						JUMPE T1,[PION	^
   521						CALL PION.^	;NOTHING TO BE DONE
   522	005757'	322 01 0 00 016626'			JRST BGLOP1]	;GO WAIT FOR SOMETHING TO DO
   523						LOAD T2,QUEPNT,(T1)	^;GET ADDRESS OF NEXT ENTRY ON QUEUE
   524	005760'	550 02 0 01 000000 			HRRZ T2,0(T1)^
   525	005761'	202 02 0 00 002002'		MOVEM T2,QUEUE		;TAKE THE TOP ENTRY OFF QUEUE
   526						PION	^		;QUEUE ENTRY IS NOW IN AC T1
   527	005762'	260 17 0 00 014413'		CALL PION.
   528	005763'	202 01 0 00 002000'		MOVEM T1,REQADR		;SAVE THIS FOR LATER
   529	005764'	260 17 0 00 006017'		CALL DOREQ		;GO PROCESS THIS REQUEST
   530	005765'	634 02 0 00 000002 		 TDZA T2,T2		;FAILED
   531	005766'	474 02 0 00 000000 		SETO T2,		;SUCCESS
   532	005767'	200 03 0 00 002000'		MOVE T3,REQADR		;GET ADDRESS OF REQUEST AGAIN
   533	005770'	260 17 0 00 013100'		CALL FINREQ		;FINISH THIS REQUEST
   534						 NON.FATAL.ERROR	^;FAILED, TYPE OUT MESSAGE
   535	005771'	260 17 0 00 014473'	IFB <>,<	CALL WRNING>
   536	005772'	260 17 0 00 013156'	BGLOP1:	CALL CHKNIC		;SEE IF ANY NICE MESSAGES TO BE SENT
   537	005773'	254 00 0 00 005746'		JRST BGLOOP		;GO GET NEXT REQUEST TO BE DONE
   538
   539
   540	005774'	104 00 0 00 000306 	WATINS:	WAIT			;INIFINITE BLOCK
   541	005775'	104 00 0 00 000167 		DISMS			;SLEEP FOR 1 MINUTE
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 8
NCP	MAC	 5-Oct-81 16:46		Variable Data Storage

   542
   543					;ROUTINE TO WAKE UP THE BACKGROUND LEVEL
   544					;CAN BE CALLED FROM ANY INTERRUPT LEVEL
   545
   546	005776'	201 01 0 00 400000 	WAKBKG:	MOVEI T1,.FHSLF		;GET THE ACTIVE LEVELS
   547	005777'	104 00 0 00 000135 		RWM
   548	006000'	612 02 0 00 016630'		TDNE T2,[40000,,40000] ;LEVEL 3 ACTIVE?
   549						JRST [	MOVEI T1,LEV3PC	;YES, USE THIS PC
   550	006001'	254 00 0 00 016631'			JRST WAKBK1]
   551	006002'	612 02 0 00 016633'		TDNE T2,[100000,,100000] ;LEVEL 2 ACTIVE
   552						JRST [	MOVEI T1,LEV2PC	;YES
   553	006003'	254 00 0 00 016634'			JRST WAKBK1]
   554	006004'	616 02 0 00 016636'		TDNN T2,[200000,,200000] ;LEVEL 1 ACTIVE?
   555	006005'	263 17 0 00 000000 		RET			;NO, MUST BE BACKGROUND
   556	006006'	201 01 0 00 000000*		MOVEI T1,LEV1PC		;YES
   557	006007'	550 02 0 01 000000 	WAKBK1:	HRRZ T2,0(T1)		;GET ADDRESS OF BACKGROUND PROCESS
   558	006010'	302 02 0 00 005753'		CAIE T2,BGWAIT		;IS THIS IN THE WAIT STATE?
   559	006011'	306 02 0 00 005754'		CAIN T2,BGWTPC		;...
   560	006012'	334 00 0 00 000000 		SKIPA			;YES, WAKE IT UP
   561	006013'	263 17 0 00 000000 		RET			;NO, NO NEED TO WAKE IT NOW
   562	006014'	201 02 0 00 005746'		MOVEI T2,BGLOOP		;CAUSE IT TO WAKE UP
   563	006015'	202 02 0 01 000000 		MOVEM T2,0(T1)		;STORE NEW PC IN DISMS ADDRESS
   564	006016'	263 17 0 00 000000 		RET			;DONE
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 9
NCP	MAC	 5-Oct-81 16:46		Variable Data Storage

   565					;ROUTINE TO PARSE COMMANDS FROM OPR
   566					;ACCEPTS IN T1/	ADR OF THE QUEUE ENTRY
   567					;	CALL DOREQ
   568					;RETURNS +1:	ERROR IN REQUEST
   569					;	 +2:	SUCCESSFULLY PARSED AND EXECUTED
   570
   571	006017'				DOREQ:	SAVEPQ	^		;SAVE THE PERMANENT ACS
   572	006017'	265 16 0 00 014444'		JSP CX,SAVPQ
   573						LOAD T2,QUETYP,(T1)	^;GET TYPE OF THIS QUEUE ENTRY
   574	006020'	554 02 0 01 000001 			HLRZ T2,1(T1)^
   575	006021'	301 02 0 00 000004 		CAIL T2,DODSPL		;LEGAL VALUE?
   576						FATAL.ERROR (.ERR14)^	;NO
   577					IFNB <.ERR14>,<	MOVEI T1,.ERR14>
   578							CALL ERROR
   579							HALTF
   580	006022'	254 00 0 00 016637'			JRST NETCON]
   581	006023'	200 02 0 02 006025'		MOVE T2,DODSP(T2)	;GET DISPATCH ADDRESS
   582	006024'	254 00 0 02 000000 		JRST (T2)		;DISPATCH...
   583
   584	006025'	000000	006031'		DODSP:	DOMES			;MESSAGE
   585	006026'	000000	011233'			DOFKT			;FORK TERMINATION
   586	006027'	000000	011304'			DOJFD			;NCP DATA OR DISCONNECT
   587	006030'	000000	015765'			DMPLOD			;TOPOLOGY CHANGE INTERRUPT
   588			000004		DODSPL==.-DODSP
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 10
NCP	MAC	 5-Oct-81 16:46		IPCF message proccessing routine

   589						SUBTTL	IPCF message proccessing routine
   590
   591	006031'				DOMES:	LOAD P1,QUEMES,(T1)	^;KEEP THE ADDRESS OF THE MESSAGE IN P1
   592	006031'	554 10 0 01 000000 			HLRZ P1,0(T1)^
   593						LOAD T2,MS.TYP,.MSTYP(P1) ^;GET MESSAGE TYPE
   594	006032'	550 02 0 10 000000 			HRRZ T2,.MSTYP(P1)^
   595	006033'	306 02 0 00 700000 		CAIN T2,MT.TXT		;IS THIS SOME TYPE OF ERROR ?
   596						JRST [	LOAD T1,MF.SUF,.MSFLG(P1) ^
   597							HRRZ T1,.MSFLG(P1)^
   598							CAIN T1,'ODE'	;DID OPR DISAPPEAR ?
   599							RETSKP	^JRST RSKP^	;YES, ALL DONE
   600							HRROI T1,[ASCIZ/
   601					? NETCON: Error message received from ORION:
   602						/]			;GET INITIAL PART OF ERROR STRING
   603							PSOUT		;OUTPUT FIRST PART OF STRING
   604							HRROI T1,.OHDRS+ARG.DA(P1) ;GET POINTER TO ERROR TEXT
   605							PSOUT		;OUTPUT ERROR TEXT
   606							HRROI T1,[ASCIZ/
   607					/]				;GET FINAL CRLF
   608							PSOUT		;AND TYPE ON TERMINAL
   609	006034'	254 00 0 00 016656'			RETSKP ^JRST RSKP^]	;IGNORE THIS COMMAND
   610	006035'	306 02 0 00 200020 		CAIN T2,.OMHAC		;ACK OF INITIAL HELLO MESSAGE ?
   611						JRST [	MOVX T4,QF%NOA	^
   612						  MOVEI T4,..MX1>	
   613							STOR T4,QUEFLG,(T1) ^
   614							HRRM T4,1(T1)^
   615	006036'	254 00 0 00 016670'			RETSKP ^JRST RSKP^]	;AND DONE
   616	006037'	302 02 0 00 200050 		CAIE T2,.OMCMD		;LOOKING FOR A COMMAND FROM OPR
   617						JRST [	NON.FATAL.ERROR (.ERR18)^
   618						JRST [	MOVEI T1,.ERR18
   619							CALL WRNING
   620							JRST .+1]>^
   621							RETBAD (.ERR18)^
   622					IFNB <.ERR18>,<	JRST [	MOVEI T1,.ERR18
   623								RET]>>
   624	006040'	254 00 0 00 016700'				RETBAD (.ERR18)]>^]
   625	006041'	200 01 0 10 000002 		MOVE T1,.MSCOD(P1)	;GET CODE NEEDED TO RETURN ACK TO OPR
   626	006042'	202 01 0 00 002001'		MOVEM T1,REQCOD		;SAVE REQUEST CODE
   627	006043'	200 01 0 10 000007 		MOVE T1,COM.PB(P1)	;GET ADDRESS OF PARSER BLOCK
   628	006044'	200 11 0 00 000010 		MOVE P2,P1		;GET BASE ADDRESS OF IPCF MESSAGE
   629	006045'	270 11 0 00 000001 		ADD P2,T1		;COMPUTE ADDRESS OF PARSER BLOCK
   630	006046'	260 17 0 00 012326'		CALL PRSKEY		;GO GET FIRST KEYWORD
   631						 RETBAD (.ERR14)^	;FAILED
   632					IFNB <.ERR14>,<	JRST [	MOVEI T1,.ERR14
   633	006047'	254 00 0 00 016702'				RET]>>
   634	006050'	201 02 0 00 006056'		MOVEI T2,LV1REQ		;LOOK UP THE DISPATCH ADDRESS
   635	006051'	201 03 0 00 000011 		MOVEI T3,LV1RQL		;  IN THE FIRST LEVEL DISPATCH TABLE
   636	006052'	260 17 0 00 006067'		CALL FNDDSP		;GET NEXT PHASE OF THE COMMAND
   637	006053'	254 00 0 00 006055'		 JRST DOREQE		;UNKNOWN KEYWORD TYPE
   638	006054'	254 00 0 01 000000 		JRST (T1)		;DISPATCH...
   639
   640	006055'				DOREQE:	RETBAD (.ERR13)^		;ILLEGAL NETCON COMMAND
   641					IFNB <.ERR13>,<	JRST [	MOVEI T1,.ERR13
   642	006055'	254 00 0 00 016704'				RET]>>
   643
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 10-1
NCP	MAC	 5-Oct-81 16:46		IPCF message proccessing routine

   644	006056'	000077	006320'		LV1REQ:	.DNSET,,SETREQ		;SET
   645	006057'	000021	007514'			.DNDMP,,DMPREQ		;DUMP
   646	006060'	000034	010623'			.DNINI,,INIREQ		;INITIATE
   647	006061'	000042	007042'			.DNLOA,,LOAREQ		;LOAD
   648	006062'	000136	010440'			.DNLOP,,LOPREQ		;LOOP
   649	006063'	000100	010034'			.DNSHW,,SHOREQ		;SHOW
   650	006064'	000120	010613'			.DNTRM,,TRMREQ		;TERMINATE
   651	006065'	000150	006210'			.DNDSL,,DISREQ		;DISABLE
   652	006066'	000025	006104'			.DNENA,,ENAREQ		;ENABLE
   653			000011		LV1RQL==.-LV1REQ
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 11
NCP	MAC	 5-Oct-81 16:46		IPCF message proccessing routine

   654					;ROUTINE TO SEARCH A DISPATCH TABLE LOOKING FOR A KEYWORD VALUE
   655					;ACCEPTS IN T1/	KEYWORD VALUE FROM MESSAGE
   656					;	    T2/	ADDRESS OF THE DISPATCH TABLE
   657					;	    T3/	LENGTH OF THE DISPATCH TABLE
   658					;	CALL FNDDSP
   659					;RETURNS +1:	NOT FOUND
   660					;	 +2:	T1/	ADR TO DISPATCH TO
   661
   662	006067'	554 04 0 02 000000 	FNDDSP::HLRZ T4,0(T2)		;GET THE NEXT ENTRY VALUE FROM TABLE
   663	006070'	316 01 0 00 000004 		CAMN T1,T4		;FOUND A MATCH?
   664	006071'	254 00 0 00 006075'		JRST FNDDS1		;YES
   665	006072'	350 00 0 00 000002 		AOS T2			;NO, STEP TO THE NEXT ENTRY
   666	006073'	367 03 0 00 006067'		SOJG T3,FNDDSP
   667	006074'	263 17 0 00 000000 		RET			;RAN OUT OF ENTRIES, NOT FOUND
   668
   669	006075'	550 01 0 02 000000 	FNDDS1:	HRRZ T1,0(T2)		;GET THE DISPATCH ADDRESS INTO T1
   670						RETSKP	^		;AND GIVE SUCCESSFUL RETURN
   671	006076'	254 00 0 00 000000*	JRST RSKP
   672
   673
   674					;ROUTINE TO FIND A "NIB" FOR A NODE OR CREATE ONE IF ONE DOESNT EXIST
   675
   676					;ACCEPTS IN T1/	POINTER TO ASCIZ NODE NAME
   677					;	CALL FOCNIB
   678					;RETURNS +1:	COULD NOT CREATE A NIB
   679					;	 +2:	T1/	ADR OF NIB
   680
   681	006077'				FOCNIB:	ASUBR <FOCNAM>^
   682	006077'	265 16 0 00 000000*		JSP .A16,.ASSET		
   683	006100'	260 17 0 00 000000*		CALL GETNIB		;GO LOOK FOR NODE NAME
   684	006101'	334 01 0 15 000001 		 SKIPA T1,FOCNAM	^^O1(.FP)^;DID NOT FIND IT
   685	006102'	254 00 0 00 006076*		RETSKP^JRST RSKP^
   686	006103'	254 00 0 00 015607'		CALLRET ADDNOD		;GO ADD NODE NAME AND CREATE A NIB
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 12
NCP	MAC	 5-Oct-81 16:46		NCP -- ENABLE Command

   687					SUBTTL	NCP -- ENABLE Command
   688
   689	006104'				ENAREQ:	STKVAR <<ENALID,2>,ENAKEY,<ENAMSG,20>>^
   690	006104'	265 16 0 00 000000*		JSP .A16,.STKST
   691	006105'	000023	000023			 ..STKN,,..STKN
   692	006106'	260 17 0 00 012326'		CALL PRSKEY		;PARSE A KEYWORD
   693	006107'	263 17 0 00 000000 		 RET			;FAILED
   694	006110'	201 02 0 00 006115'		MOVEI T2,ENARTB		;GET ADDRESS OF DISPATCH TABLE
   695	006111'	201 03 0 00 000001 		MOVEI T3,ENARTL		;GET LENGTH OF DISPATCH TABLE
   696	006112'	260 17 0 00 006067'		CALL FNDDSP		;GET DISPATCH ADDRESS
   697	006113'	263 17 0 00 000000 		 RET			;FAILED
   698	006114'	254 00 0 01 000000 		JRST (T1)		;DISPATCH TO PROPER PARSING ROUTINE
   699
   700	006115'	000147	006116'		ENARTB:	.DNELG,,EVTLOG		;EVENT-LOGGING
   701
   702			000001		ENARTL==.-ENARTB
   703
   704
   705
   706					; ENABLE EVENT-LOGGING
   707
   708	006116'	260 17 0 00 012335'	EVTLOG:	CALL PRSCFM		;END OF COMMAND AT THIS POINT ?
   709	006117'	254 00 0 00 006121'		 JRST EVTRQ1		;NO, SEE IF PROPER KEYWORD FOLLOWS
   710	006120'	254 00 0 00 006172'		JRST ENANOD		;YES, ENABLE FOR ENTIRE NODE
   711
   712	006121'	260 17 0 00 012326'	EVTRQ1:	CALL PRSKEY		;PARSE NEXT KEYWORD
   713	006122'	263 17 0 00 000000 		 RET			;FAILED
   714	006123'	201 02 0 00 006130'		MOVEI T2,ENALTB		;GET ADDRESS OF DISPATCH TABLE
   715	006124'	201 03 0 00 000002 		MOVEI T3,ENALTL		;GET LENGTH OF DISPATCH TABLE
   716	006125'	260 17 0 00 006067'		CALL FNDDSP		;GET DISPATCH ADDRESS
   717	006126'	263 17 0 00 000000 		 RET			;FAILED
   718	006127'	254 00 0 01 000000 		JRST (T1)		;DISPATCH TO PROPER PARSING ROUTINE
   719
   720
   721	006130'	000040	006132'		ENALTB:	.DNSLI,,ENALIN		;LINE line-id
   722	006131'	000131	006136'			.DNKNO,,ENAKNO		;KNOWN LINES
   723
   724			000002		ENALTL==.-ENALTB
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 13
NCP	MAC	 5-Oct-81 16:46		NCP -- ENABLE Command

   725
   726	006132'	260 17 0 00 012436'	ENALIN:	CALL PRSLID		;PARSE A LINE ID
   727	006133'	263 17 0 00 000000 		 RET			;FAILED
   728	006134'	124 01 0 17 777775 		DMOVEM T1,ENALID	^-^O3(P)^;SAVE LINE ID
   729	006135'	254 00 0 00 006150'		JRST ENAFIN		;GO FINISH PARSING COMMAND
   730
   731	006136'	260 17 0 00 012326'	ENAKNO:	CALL PRSKEY		;PARSE A KEYWORD
   732	006137'	263 17 0 00 000000 		 RET			;FAILED
   733	006140'	201 02 0 00 006145'		MOVEI T2,ENAKTB		;GET ADDRESS OF DISPATCH TABLE
   734	006141'	201 03 0 00 000001 		MOVEI T3,ENAKTL		;GET LENGTH OF DISPATCH TABLE
   735	006142'	260 17 0 00 006067'		CALL FNDDSP		;GET DISPATCH ADDRESS
   736	006143'	263 17 0 00 000000 		 RET			;FAILED
   737	006144'	254 00 0 01 000000 		JRST (T1)		;DISPATCH TO PROPER PARSING ROUTINE
   738
   739
   740	006145'	000041	006146'		ENAKTB:	.DNSKL,,ENALNS		;KNOWN LINES
   741
   742			000001		ENAKTL==.-ENAKTB
   743
   744
   745	006146'	476 00 0 17 777775 	ENALNS:	SETOM ENALID	^-^O3(P)^	;INDICATE KNOWN LINES
   746	006147'	254 00 0 00 006150'		JRST ENAFIN		;GO FINISH PARSING COMMAND
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 14
NCP	MAC	 5-Oct-81 16:46		NCP -- ENABLE Command

   747
   748					; HERE TO FINISH PARSING COMMAND LINE
   749
   750	006150'	260 17 0 00 012335'	ENAFIN:	CALL PRSCFM		;PARSE CONFIRMATION
   751	006151'	263 17 0 00 000000 		 RET			;FAILED
   752	006152'	120 01 0 17 777775 		DMOVE T1,ENALID	^-^O3(P)^	;GET LINE ID
   753	006153'	201 03 0 17 777754 		MOVEI T3,ENAMSG	^-^O24(P)^	;GET DESTINATION ADDRESS FOR MESSAGE
   754	006154'	260 17 0 00 000000*		CALL MAKENL		;ASSEMBLE A NICE SET PARAMETERS MESSAGE
   755						 RETBAD ()^		;FAILED
   756	006155'	263 17 0 00 000000 	IFB <>,<	RET>
   757	006156'	200 04 0 00 016706'		MOVE T4,[.NCSET,,.NCNLS] ;GET NICE FUNCTION CODE,,OPTION CODE
   758	006157'	200 03 0 00 000002 		MOVE T3,T2		;COPY COUNT
   759	006160'	200 02 0 00 000001 		MOVE T2,T1		;COPY POINTER TO START OF MESSAGE
   760	006161'	200 01 0 00 000010 		MOVE T1,P1		;GET ADR OF MESSAGE
   761	006162'	504 01 0 00 000003 		HRL T1,T3		;MOVE COUNT INTO PARAM REG
   762	006163'	200 03 0 00 000000*		MOVE T3,EXCUTR		;SHOW WHAT EXECUTOR WE WANT
   763	006164'	260 17 0 00 011050'		CALL STONIC		;STORE THIS MESSAGE ON NICE QUEUE
   764						 RETBAD ()^		;FAILED
   765	006165'	263 17 0 00 000000 	IFB <>,<	RET>
   766	006166'	200 01 0 00 002000'		MOVE T1,REQADR		;GET ADR OF THIS QUEUE ENTRY
   767						MOVX T2,QF%NOA		^;MARK THAT THIS MESSAGE NOT TO BE ACK'D YET
   768	006167'	201 02 0 00 000001 		  MOVEI T2,..MX1>	
   769						STOR T2,QUEFLG,(T1)^
   770	006170'	542 02 0 01 000001 			HRRM T2,1(T1)^
   771						RETSKP	^		;DONE, RETURN SUCCESS
   772	006171'	254 00 0 00 006102*	JRST RSKP
   773
   774
   775					; NOW ASSEMBLE THE NICE "SET" MESSAGE TO DO THE ENABLE
   776
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 15
NCP	MAC	 5-Oct-81 16:46		NCP -- ENABLE Command

   777					; HERE ON "ENABLE EVENT-LOGGING" COMMAND FOR ENTIRE NODE
   778
   779	006172'	260 17 0 00 000000*	ENANOD:	CALL MAKENA		;GO ASSEMBLE NICE "SET PARAMETER" MSG
   780						 RETBAD ()^		;FAILED
   781	006173'	263 17 0 00 000000 	IFB <>,<	RET>
   782	006174'	200 04 0 00 016706'		MOVE T4,[.NCSET,,.NCNLS] ;GET NICE FUNCTION CODE,,OPTION CODE
   783	006175'	200 03 0 00 000002 		MOVE T3,T2		;COPY COUNT
   784	006176'	200 02 0 00 000001 		MOVE T2,T1		;COPY POINTER TO START OF MESSAGE
   785	006177'	200 01 0 00 000010 		MOVE T1,P1		;GET ADR OF MESSAGE
   786	006200'	504 01 0 00 000003 		HRL T1,T3		;MOVE COUNT INTO PARAM REG
   787	006201'	200 03 0 00 006163*		MOVE T3,EXCUTR		;SHOW WHAT EXECUTOR WE WANT
   788	006202'	260 17 0 00 011050'		CALL STONIC		;STORE THIS MESSAGE ON NICE QUEUE
   789						 RETBAD ()^		;FAILED
   790	006203'	263 17 0 00 000000 	IFB <>,<	RET>
   791	006204'	200 01 0 00 002000'		MOVE T1,REQADR		;GET ADR OF THIS QUEUE ENTRY
   792						MOVX T2,QF%NOA		^;MARK THAT THIS MESSAGE NOT TO BE ACK'D YET
   793	006205'	201 02 0 00 000001 		  MOVEI T2,..MX1>	
   794						STOR T2,QUEFLG,(T1)^
   795	006206'	542 02 0 01 000001 			HRRM T2,1(T1)^
   796						RETSKP	^		;DONE, RETURN SUCCESS
   797	006207'	254 00 0 00 006171*	JRST RSKP
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 16
NCP	MAC	 5-Oct-81 16:46		NCP -- DISBLE Command

   798					SUBTTL	NCP -- DISBLE Command
   799
   800	006210'				DISREQ:	STKVAR <<DISLID,2>,DISKEY,<DISMSG,20>>^
   801	006210'	265 16 0 00 006104*		JSP .A16,.STKST
   802	006211'	000023	000023			 ..STKN,,..STKN
   803	006212'	260 17 0 00 012326'		CALL PRSKEY		;PARSE A KEYWORD
   804	006213'	263 17 0 00 000000 		 RET			;FAILED
   805	006214'	201 02 0 00 006221'		MOVEI T2,DISRTB		;GET ADDRESS OF DISPATCH TABLE
   806	006215'	201 03 0 00 000001 		MOVEI T3,DISRTL		;GET LENGTH OF DISPATCH TABLE
   807	006216'	260 17 0 00 006067'		CALL FNDDSP		;GET DISPATCH ADDRESS
   808	006217'	263 17 0 00 000000 		 RET			;FAILED
   809	006220'	254 00 0 01 000000 		JRST (T1)		;DISPATCH TO PROPER PARSING ROUTINE
   810
   811	006221'	000147	006222'		DISRTB:	.DNELG,,DISLOG		;EVENT-LOGGING
   812
   813			000001		DISRTL==.-DISRTB
   814
   815
   816
   817					; DISBLE EVENT-LOGGING
   818
   819	006222'	260 17 0 00 012335'	DISLOG:	CALL PRSCFM		;END OF COMMAND AT THIS POINT ?
   820	006223'	254 00 0 00 006225'		 JRST EVTRQ2		;NO, SEE IF PROPER KEYWORD FOLLOWS
   821	006224'	254 00 0 00 006302'		JRST DISNOD		;YES, DISBLE FOR ENTIRE NODE
   822
   823	006225'	260 17 0 00 012326'	EVTRQ2:	CALL PRSKEY		;PARSE NEXT KEYWORD
   824	006226'	263 17 0 00 000000 		 RET			;FAILED
   825	006227'	201 02 0 00 006234'		MOVEI T2,DISLTB		;GET ADDRESS OF DISPATCH TABLE
   826	006230'	201 03 0 00 000002 		MOVEI T3,DISLTL		;GET LENGTH OF DISPATCH TABLE
   827	006231'	260 17 0 00 006067'		CALL FNDDSP		;GET DISPATCH ADDRESS
   828	006232'	263 17 0 00 000000 		 RET			;FAILED
   829	006233'	254 00 0 01 000000 		JRST (T1)		;DISPATCH TO PROPER PARSING ROUTINE
   830
   831
   832	006234'	000040	006236'		DISLTB:	.DNSLI,,DISLIN		;LINE line-id
   833	006235'	000131	006242'			.DNKNO,,DISKNO		;KNOWN LINES
   834
   835			000002		DISLTL==.-DISLTB
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 17
NCP	MAC	 5-Oct-81 16:46		NCP -- DISBLE Command

   836
   837	006236'	260 17 0 00 012436'	DISLIN:	CALL PRSLID		;PARSE A LINE ID
   838	006237'	263 17 0 00 000000 		 RET			;FAILED
   839	006240'	124 01 0 17 777775 		DMOVEM T1,DISLID	^-^O3(P)^;SAVE LINE ID
   840	006241'	254 00 0 00 006260'		JRST DISFIN		;GO FINISH PARSING COMMAND
   841
   842	006242'	260 17 0 00 012326'	DISKNO:	CALL PRSKEY		;PARSE A KEYWORD
   843	006243'	263 17 0 00 000000 		 RET			;FAILED
   844	006244'	202 01 0 17 777774 		MOVEM T1,DISKEY	^-^O4(P)^	;SAVE KEYWORD CODE
   845	006245'	260 17 0 00 012335'		CALL PRSCFM		;PARSE END OF COMMAND
   846	006246'	263 17 0 00 000000 		 RET			;FAILED
   847	006247'	200 01 0 17 777774 		MOVE T1,DISKEY	^-^O4(P)^	;RESTORE KEYWORD CODE
   848	006250'	201 02 0 00 006255'		MOVEI T2,DISKTB		;GET ADDRESS OF DISPATCH TABLE
   849	006251'	201 03 0 00 000001 		MOVEI T3,DISKTL		;GET LENGTH OF DISPATCH TABLE
   850	006252'	260 17 0 00 006067'		CALL FNDDSP		;GET DISPATCH ADDRESS
   851	006253'	263 17 0 00 000000 		 RET			;FAILED
   852	006254'	254 00 0 01 000000 		JRST (T1)		;DISPATCH TO PROPER PARSING ROUTINE
   853
   854
   855	006255'	000041	006256'		DISKTB:	.DNSKL,,DISLNS		;KNOWN LINES
   856
   857			000001		DISKTL==.-DISKTB
   858
   859
   860	006256'	476 00 0 17 777775 	DISLNS:	SETOM DISLID	^-^O3(P)^	;INDICATE KNOWN LINES
   861	006257'	254 00 0 00 006260'		JRST DISFIN		;GO FINISH PARSING COMMAND
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 18
NCP	MAC	 5-Oct-81 16:46		NCP -- DISBLE Command

   862
   863					; HERE TO FINISH PARSING COMMAND LINE
   864
   865	006260'	260 17 0 00 012335'	DISFIN:	CALL PRSCFM		;PARSE CONFIRMATION
   866	006261'	263 17 0 00 000000 		 RET			;FAILED
   867	006262'	120 01 0 17 777775 		DMOVE T1,DISLID	^-^O3(P)^	;GET LINE ID
   868	006263'	201 03 0 17 777754 		MOVEI T3,DISMSG	^-^O24(P)^	;GET DESTINATION ADDRESS FOR MESSAGE
   869	006264'	260 17 0 00 000000*		CALL MAKDSL		;ASSEMBLE A NICE SET PARAMETERS MESSAGE
   870						 RETBAD ()^		;FAILED
   871	006265'	263 17 0 00 000000 	IFB <>,<	RET>
   872	006266'	200 04 0 00 016706'		MOVE T4,[.NCSET,,.NCNLS] ;GET NICE FUNCTION CODE,,OPTION CODE
   873	006267'	200 03 0 00 000002 		MOVE T3,T2		;COPY COUNT
   874	006270'	200 02 0 00 000001 		MOVE T2,T1		;COPY POINTER TO START OF MESSAGE
   875	006271'	200 01 0 00 000010 		MOVE T1,P1		;GET ADR OF MESSAGE
   876	006272'	504 01 0 00 000003 		HRL T1,T3		;MOVE COUNT INTO PARAM REG
   877	006273'	200 03 0 00 006201*		MOVE T3,EXCUTR		;SHOW WHAT EXECUTOR WE WANT
   878	006274'	260 17 0 00 011050'		CALL STONIC		;STORE THIS MESSAGE ON NICE QUEUE
   879						 RETBAD ()^		;FAILED
   880	006275'	263 17 0 00 000000 	IFB <>,<	RET>
   881	006276'	200 01 0 00 002000'		MOVE T1,REQADR		;GET ADR OF THIS QUEUE ENTRY
   882						MOVX T2,QF%NOA		^;MARK THAT THIS MESSAGE NOT TO BE ACK'D YET
   883	006277'	201 02 0 00 000001 		  MOVEI T2,..MX1>	
   884						STOR T2,QUEFLG,(T1)^
   885	006300'	542 02 0 01 000001 			HRRM T2,1(T1)^
   886						RETSKP	^		;DONE, RETURN SUCCESS
   887	006301'	254 00 0 00 006207*	JRST RSKP
   888
   889
   890					; NOW ASSEMBLE THE NICE "SET" MESSAGE TO DO THE ENABLE
   891
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 19
NCP	MAC	 5-Oct-81 16:46		NCP -- DISBLE Command

   892					; HERE ON "DISBLE EVENT-LOGGING" COMMAND FOR ENTIRE NODE
   893
   894	006302'	260 17 0 00 000000*	DISNOD:	CALL MAKDIS		;GO ASSEMBLE NICE "SET PARAMETER" MSG
   895						 RETBAD ()^		;FAILED
   896	006303'	263 17 0 00 000000 	IFB <>,<	RET>
   897	006304'	200 04 0 00 016706'		MOVE T4,[.NCSET,,.NCNLS] ;GET NICE FUNCTION CODE,,OPTION CODE
   898	006305'	200 03 0 00 000002 		MOVE T3,T2		;COPY COUNT
   899	006306'	200 02 0 00 000001 		MOVE T2,T1		;COPY POINTER TO START OF MESSAGE
   900	006307'	200 01 0 00 000010 		MOVE T1,P1		;GET ADR OF MESSAGE
   901	006310'	504 01 0 00 000003 		HRL T1,T3		;MOVE COUNT INTO PARAM REG
   902	006311'	200 03 0 00 006273*		MOVE T3,EXCUTR		;SHOW WHAT EXECUTOR WE WANT
   903	006312'	260 17 0 00 011050'		CALL STONIC		;STORE THIS MESSAGE ON NICE QUEUE
   904						 RETBAD ()^		;FAILED
   905	006313'	263 17 0 00 000000 	IFB <>,<	RET>
   906	006314'	200 01 0 00 002000'		MOVE T1,REQADR		;GET ADR OF THIS QUEUE ENTRY
   907						MOVX T2,QF%NOA		^;MARK THAT THIS MESSAGE NOT TO BE ACK'D YET
   908	006315'	201 02 0 00 000001 		  MOVEI T2,..MX1>	
   909						STOR T2,QUEFLG,(T1)^
   910	006316'	542 02 0 01 000001 			HRRM T2,1(T1)^
   911						RETSKP	^		;DONE, RETURN SUCCESS
   912	006317'	254 00 0 00 006301*	JRST RSKP
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 20
NCP	MAC	 5-Oct-81 16:46		NCP -- SET Command

   913					SUBTTL 	NCP -- SET Command
   914
   915	006320'	260 17 0 00 012326'	SETREQ:	CALL PRSKEY		;PARSE A KEYWORD
   916	006321'	254 00 0 00 006055'		 JRST DOREQE		;WRONG TYPE
   917	006322'	201 02 0 00 006327'		MOVEI T2,SETRTB		;GET ADR OF DISPATCH TABLE
   918	006323'	201 03 0 00 000014 		MOVEI T3,SETRTL		;AND LENGTH OF TABLE
   919	006324'	260 17 0 00 006067'		CALL FNDDSP		;GET THE DISPATCH ADR
   920	006325'	254 00 0 00 006055'		 JRST DOREQE		;NOT FOUND, UNKNOWN KEYWORD
   921	006326'	254 00 0 01 000000 		JRST (T1)		;DISPATCH
   922
   923	006327'	000026	006343'		SETRTB:	.DNSEX,,SETEX		;SET EXECUTOR
   924	006330'	000045	006406'			.DNLGI,,SETLGI		;SET LOGGING-INTERVAL
   925	006331'	000033	006353'			.DNLPH,,SETHST		;SET HOST
   926	006332'	000044	006354'			.DNSLO,,SETLCL		;SET LOCAL
   927	006333'	000047	011231'			.DNSMO,,SETMON		;SET MONITORING
   928	006334'	000055	006422'			.DNNOD,,SETNOD		;SET NODE
   929	006335'	000064	011232'			.DNSPW,,SETPSW		;SET PASSWORD
   930	006336'	000074	006635'			.DNSSD,,SETSDF		;SET SECONDARY-DUMP-FILE
   931	006337'	000075	006637'			.DNSSL,,SETSLF		;SET SECONDARY-LOAD-FILE
   932	006340'	000103	006731'			.DNSST,,SETSTA		;SET STATE
   933	006341'	000110	006641'			.DNSTD,,SETTDF		;SET TERTIARY-DUMP-FILE
   934	006342'	000111	006643'			.DNSTL,,SETTLF		;SET TERTIARY-LOAD-FILE
   935			000014		SETRTL==.-SETRTB
   936
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 21
NCP	MAC	 5-Oct-81 16:46		NCP -- SET Command

   937
   938					;SET EXECUTOR
   939
   940	006343'	260 17 0 00 012341'	SETEX:	CALL PRSNOD		;PARSE A NODE NAME
   941	006344'	254 00 0 00 006055'		 JRST DOREQE		;FAILED
   942	006345'	550 04 0 00 006311*		HRRZ T4,EXCUTR		;GET CURRENT EXECUTOR
   943	006346'	202 01 0 00 006345*		MOVEM T1,EXCUTR		;SAVE STRING POINTER TO EXECUTOR
   944	006347'	200 01 0 00 000004 		MOVE T1,T4		;GET POINTER TO PREVIOUS EXECUTOR
   945	006350'	260 17 0 00 014115'		CALL RELFRE		;RELEASE OLD STRING BLOCK
   946						 FATAL.ERROR		^;ISSUE ERROR MESSAGE
   947							CALL ERROR
   948							HALTF
   949	006351'	254 00 0 00 016623'			JRST NETCON]
   950	006352'	254 00 0 00 006317*		RETSKP^JRST RSKP^
   951
   952
   953
   954
   955
   956					;SET HOST
   957
   958	006353'	254 00 0 00 006055'	SETHST:	JRST DOREQE
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 22
NCP	MAC	 5-Oct-81 16:46		NCP -- SET Command

   959					;SET LOCAL LOOPBACK ENABLED/DISABLED LINE-ID
   960
   961	006354'				SETLCL:	STKVAR <LCLSCD,LCLPRT>^
   962	006354'	265 16 0 00 006210*		JSP .A16,.STKST
   963	006355'	000002	000002			 ..STKN,,..STKN
   964	006356'	260 17 0 00 012326'		CALL PRSKEY		;PARSE A KEYWORD
   965	006357'	254 00 0 00 006055'		 JRST DOREQE		;WRONG TYPE
   966	006360'	302 01 0 00 000123 		CAIE T1,.DNLPB		;WAS IT LOOPBACK ?
   967	006361'	254 00 0 00 006055'		JRST DOREQE		;NO SO REJECT
   968	006362'	260 17 0 00 012326'		CALL PRSKEY		;PARSE A KEYWORD
   969	006363'	254 00 0 00 006055'		 JRST DOREQE		;WRONG TYPE
   970	006364'	201 02 0 00 000004 		MOVEI T2,.NDSLP		;IN CASE ENABLING
   971	006365'	306 01 0 00 000122 		CAIN T1,.DNEAB		;WANT TO ENABLE LINE ?
   972	006366'	254 00 0 00 006372'		JRST DOLPB		;ENABLE THE LINE
   973	006367'	201 02 0 00 000005 		MOVEI T2,.NDCLP		;CODE TO CLEAR ENABLE
   974	006370'	302 01 0 00 000121 		CAIE T1,.DNDAB		;WANT TO DISABLE LINE ?
   975	006371'	254 00 0 00 006055'		JRST DOREQE		;NO FAIL
   976	006372'	202 02 0 17 777776 	DOLPB:	MOVEM T2,LCLSCD	^-^O2(P)^	;SAVE CODE
   977	006373'	260 17 0 00 010724'		CALL PRSPRT		;PARSE THE LINE-ID INTO NSP PORT
   978						 RETBAD (.ERR23)^	;<Invalid line-id>
   979					IFNB <.ERR23>,<	JRST [	MOVEI T1,.ERR23
   980	006374'	254 00 0 00 016707'				RET]>>
   981	006375'	202 01 0 17 777775 		MOVEM T1,LCLPRT	^-^O3(P)^	;SAVE PORT #
   982	006376'	260 17 0 00 012335'		CALL PRSCFM		;PARSE END OF COMMAND
   983	006377'	254 00 0 00 006055'		 JRST DOREQE		;LOSE
   984	006400'	200 01 0 17 777776 		MOVE T1,LCLSCD	^-^O2(P)^	;GET ENABLE/DISABLE CODE
   985	006401'	201 02 0 00 000003 		MOVEI T2,T3		;POINT TO ARGUMENT BLOCK
   986	006402'	200 03 0 17 777775 		MOVE T3,LCLPRT	^-^O3(P)^	;GET PORT #
   987	006403'	104 00 0 00 000567 		NODE			;SET/CLEAR LOOPBACK
   988						 ERJMP [MOVEI T1,.ERR19	;JSYS error
   989	006404'	320 16 0 00 016711'			RET ]
   990						RETSKP	^		;DONE
   991	006405'	254 00 0 00 006352*	JRST RSKP
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 23
NCP	MAC	 5-Oct-81 16:46		NCP -- SET Command

   992					;SET LOGGING INTERVAL
   993
   994	006406'	260 17 0 00 012407'	SETLGI:	CALL PRSNOI		;PARSE NOISE WORD
   995	006407'	260 17 0 00 012326'		CALL PRSKEY		;PARSE KEYWORD
   996	006410'	254 00 0 00 006055'		 JRST DOREQE		;FAILED, RETURN ERROR
   997	006411'	302 01 0 00 000117 		CAIE T1,.DNLCT		;LINE-COUNTERS ?
   998	006412'	254 00 0 00 006055'		JRST DOREQE		;NO, FAIL
   999	006413'	260 17 0 00 012400'		CALL PRSNUM		;GET # OF MINUTES
  1000	006414'	254 00 0 00 006055'		 JRST DOREQE		;FAILED
  1001	006415'	221 01 0 00 165140 		IMULI T1,^D60*^D1000	;CONVERT MINUTES TO MILLISECONDS
  1002	006416'	202 01 0 00 000000*		MOVEM T1,LOGTIM		;SAVE NEW LOGGING INTERVAL
  1003	006417'	260 17 0 00 014725'		CALL LOGINI		;GO START LOGGING WITH NEW INTERVAL
  1004	006420'	254 00 0 00 006055'		 JRST DOREQE		;FAILED, ISSUE ERROR MESSAGE
  1005						RETSKP	^		;DONE, RETURN
  1006	006421'	254 00 0 00 006405*	JRST RSKP
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 24
NCP	MAC	 5-Oct-81 16:46		NCP -- SET Command

  1007					;SET NODE
  1008
  1009	006422'	260 17 0 00 012341'	SETNOD:	CALL PRSNOD		;PARSE A NODE NAME
  1010	006423'	254 00 0 00 006055'		 JRST DOREQE		;FAILED, NOT A NODE NAME
  1011	006424'	200 12 0 00 000001 		MOVE P3,T1		;Save address of node name block
  1012	006425'	260 17 0 00 006077'		CALL FOCNIB		;FIND OR CREATE THE ASSOCIATED NIB
  1013						 JRST [MOVE T1,P3	;Failed to create a NIB
  1014						       CALL RELFRE	; Release node name block
  1015							FATAL.ERROR^
  1016							CALL ERROR
  1017							HALTF
  1018							JRST NETCON]^
  1019	006426'	254 00 0 00 016713'		       JRST DOREQE]
  1020	006427'	250 12 0 00 000001 		EXCH P3,T1		;Swap node name block for NIB address
  1021	006430'	260 17 0 00 014115'		CALL RELFRE		;Release node name block
  1022						 FATAL.ERROR		^; Can't release it .. die.
  1023							CALL ERROR
  1024							HALTF
  1025	006431'	254 00 0 00 016623'			JRST NETCON]
  1026	006432'	260 17 0 00 012326'		CALL PRSKEY		;PARSE A KEYWORD
  1027	006433'	254 00 0 00 006055'		 JRST DOREQE		;WRONG TYPE
  1028	006434'	201 02 0 00 006441'		MOVEI T2,SETNTB		;SET UP TO FIND DISPATCH ADR
  1029	006435'	201 03 0 00 000010 		MOVEI T3,SETNTL		;GET LENGTH OF DISPATCH TABLE
  1030	006436'	260 17 0 00 006067'		CALL FNDDSP		;GET DISPATCH ADR
  1031	006437'	254 00 0 00 006055'		 JRST DOREQE		;NOT FOUND, UNKNOWN COMMAND
  1032	006440'	254 00 0 01 000000 		JRST (T1)		;DISPATCH
  1033
  1034	006441'	000001	006521'		SETNTB:	.DNSNB,,SETNBP		;SET NODE BOOT-PASSWORD
  1035	006442'	000022	006465'			.DNSNF,,SETNDF		;SET NODE DUMP-FILE
  1036	006443'	000043	006503'			.DNSNL,,SETNLF		;SET NODE LOAD-FILE
  1037	006444'	000063	006550'			.DNPRM,,SETNLP		;SET NODE LOAD-PARAMETERS
  1038	006445'	000076	006522'			.DNSNS,,SETNSV		;SET NODE SERVER
  1039	006446'	000067	006451'			.DNSNT,,SETNPT		;SET NODE PROTOCOL-TYPE
  1040	006447'	000144	006763'			.DNADM,,SETADM		;SET NODE AUTO-DUMP
  1041	006450'	000145	007002'			.DNALD,,SETALD		;SET NODE AUTO-LOAD
  1042			000010		SETNTL==.-SETNTB
  1043
  1044
  1045					; SET NODE PROTOCOL-TYPE
  1046
  1047	006451'	260 17 0 00 012326'	SETNPT:	CALL PRSKEY		;PARSE A KEYWORD
  1048	006452'	254 00 0 00 006055'		 JRST DOREQE		;WRONG TYPE
  1049	006453'	201 02 0 00 006463'		MOVEI T2,SETPTB		;GET PROTOCOL TABLE ADDRESS
  1050	006454'	201 03 0 00 000002 		MOVEI T3,SETPTL		;AND TABLE LENGTH
  1051	006455'	260 17 0 00 006067'		CALL FNDDSP		;FIND PROTOCOL IN TABLE
  1052	006456'	254 00 0 00 006055'		 JRST DOREQE		;FAILED, NOTE ERROR
  1053						STOR T1,NDPRO,(P3)	^;STORE PROTOCOL VERSION TYPE
  1054	006457'	542 01 0 12 000010 			HRRM T1,10(P3)^
  1055						SETONE NDPST,(P3)	^;NOTE THAT PROTOCOL TYPE HAS BEEN SET
  1056	006460'	205 16 0 00 010000 		  MOVSI .SAC,(..MX1)>>	
  1057	006461'	436 16 0 12 000000 			IORM .SAC,0(P3)
  1058						RETSKP	^		;DONE, RETURN
  1059	006462'	254 00 0 00 006421*	JRST RSKP
  1060
  1061
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 24-1
NCP	MAC	 5-Oct-81 16:46		NCP -- SET Command

  1062	006463'	000072	000000		SETPTB:	.DNRQP,,.VN20F		;RSX20F QUEUED PROTOCOL
  1063	006464'	000053	000001			.DNNSP,,.VNMCB		;NETWORK SERVICES PROTOCOL (NSP)
  1064
  1065			000002		SETPTL==.-SETPTB		;LENGTH OF TABLE
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 25
NCP	MAC	 5-Oct-81 16:46		NCP -- SET Command

  1066					;SET NODE DUMP/LOAD FILE
  1067
  1068	006465'				SETNDF:	STKVAR <SDFFIL>^
  1069	006465'	265 16 0 00 006354*		JSP .A16,.STKST
  1070	006466'	000001	000001			 ..STKN,,..STKN
  1071	006467'	260 17 0 00 012362'		CALL PRSOFI		;PARSE AN OUTPUT FILE SPEC
  1072	006470'	254 00 0 00 006055'		 JRST DOREQE		;FAILED
  1073	006471'	202 01 0 17 777776 		MOVEM T1,SDFFIL	^-^O2(P)^	;SAVE POINTER TO OUTPUT FILE SPEC
  1074	006472'	260 17 0 00 012335'		CALL PRSCFM		;PARSE END OF COMMAND
  1075	006473'	254 00 0 00 006055'		 JRST DOREQE		;FAILED
  1076						LOAD T1,NDDMP,(P3)	^;GET POINTER TO OLD FILE
  1077	006474'	200 01 0 12 000004 			MOVE T1,4(P3)^
  1078						JUMPN T1,[CALL RELFRE	;RELEASE THE OLD BLOCK
  1079							   FATAL.ERROR	^
  1080							CALL ERROR
  1081							HALTF
  1082							JRST NETCON]^;FAILED, ISSUE MESSAGE AND CONTINUE
  1083	006475'	326 01 0 00 016717'			  JRST .+1]	;CONTINUE
  1084						SETONE NDDOK,(P3)	^;TELL AUTO DUMP - WE CONTROL THIS NIB
  1085	006476'	205 16 0 00 000400 		  MOVSI .SAC,(..MX1)>>	
  1086	006477'	436 16 0 12 000000 			IORM .SAC,0(P3)
  1087	006500'	200 01 0 17 777776 		MOVE T1,SDFFIL	^-^O2(P)^	;GET NEW FILE SPEC POINTER
  1088						STOR T1,NDDMP,(P3)	^;SAVE POINTER TO NEW FILE SPEC
  1089	006501'	202 01 0 12 000004 			MOVEM T1,4(P3)^
  1090						RETSKP	^		;DONE, RETURN SUCCESS
  1091	006502'	254 00 0 00 006462*	JRST RSKP
  1092
  1093
  1094
  1095	006503'				SETNLF:	STKVAR <SLFFIL>^
  1096	006503'	265 16 0 00 006465*		JSP .A16,.STKST
  1097	006504'	000001	000001			 ..STKN,,..STKN
  1098	006505'	260 17 0 00 012363'		CALL PRSIFI		;PARSE AN INPUT FILE SPEC
  1099	006506'	254 00 0 00 006055'		 JRST DOREQE		;FAILED
  1100	006507'	202 01 0 17 777776 		MOVEM T1,SLFFIL	^-^O2(P)^	;SAVE POINTER TO INPUT FILE SPEC
  1101	006510'	260 17 0 00 012335'		CALL PRSCFM		;PARSE END OF COMMAND
  1102	006511'	254 00 0 00 006055'		 JRST DOREQE		;FAILED
  1103						LOAD T1,NDLOD,(P3)	^;GET POINTER TO OLD FILE
  1104	006512'	200 01 0 12 000003 			MOVE T1,3(P3)^
  1105						JUMPN T1,[CALL RELFRE	;RELEASE THE OLD BLOCK
  1106							   FATAL.ERROR	^
  1107							CALL ERROR
  1108							HALTF
  1109							JRST NETCON]^;FAILED, ISSUE MESSAGE AND CONTINUE
  1110	006513'	326 01 0 00 016722'			  JRST .+1]	;CONTINUE
  1111						SETONE NDLOK,(P3)	^;TELL AUTO LOAD - WE CONTROL THIS NIB
  1112	006514'	205 16 0 00 000200 		  MOVSI .SAC,(..MX1)>>	
  1113	006515'	436 16 0 12 000000 			IORM .SAC,0(P3)
  1114	006516'	200 01 0 17 777776 		MOVE T1,SLFFIL	^-^O2(P)^	;GET NEW FILE SPEC POINTER
  1115						STOR T1,NDLOD,(P3)	^;SAVE POINTER TO NEW FILE SPEC
  1116	006517'	202 01 0 12 000003 			MOVEM T1,3(P3)^
  1117						RETSKP	^		;DONE, RETURN SUCCESS
  1118	006520'	254 00 0 00 006502*	JRST RSKP
  1119
  1120
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 25-1
NCP	MAC	 5-Oct-81 16:46		NCP -- SET Command

  1121					; SET NODE BOOT PASSWORD
  1122
  1123	006521'	254 00 0 00 006055'	SETNBP:	JRST DOREQE		;NOT SUPPORTED YET
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 26
NCP	MAC	 5-Oct-81 16:46		NCP -- SET Command

  1124					;SET NODE SERVER
  1125
  1126	006522'				SETNSV:	STKVAR <SNSNOD>^
  1127	006522'	265 16 0 00 006503*		JSP .A16,.STKST
  1128	006523'	000001	000001			 ..STKN,,..STKN
  1129						LOAD T1,NDSRV,(P3)	^;GET POINTER TO SERVER NODE NAME
  1130	006524'	200 01 0 12 000011 			MOVE T1,11(P3)^
  1131						JUMPN T1,[CALL RELFRE	;RELEASE THE OLD BLOCK
  1132							   FATAL.ERROR	^
  1133							CALL ERROR
  1134							HALTF
  1135							JRST NETCON]^;FAILED, ISSUE MESSAGE AND CONTINUE
  1136	006525'	326 01 0 00 016725'			  JRST .+1]	;CONTINUE
  1137	006526'	260 17 0 00 012341'		CALL PRSNOD		;PARSE NODE NAME
  1138	006527'	254 00 0 00 006055'		 JRST DOREQE		;FAILED, RETURN ERROR
  1139	006530'	202 01 0 17 777776 		MOVEM T1,SNSNOD	^-^O2(P)^	;SAVE POINTER TO NODE NAME
  1140	006531'	260 17 0 00 012436'		CALL PRSLID		;PARSE A LINE ID
  1141	006532'	254 00 0 00 006055'		 JRST DOREQE		;FAILED
  1142						STOR T1,NDSL1,(P3)	^;STORE SERVER LINE ID IN
  1143	006533'	202 01 0 12 000012 			MOVEM T1,12(P3)^
  1144						STOR T2,NDSL2,(P3)	^; TARGET NODE NIB
  1145	006534'	202 02 0 12 000013 			MOVEM T2,13(P3)^
  1146	006535'	200 01 0 17 777776 		MOVE T1,SNSNOD	^-^O2(P)^	;GET POINTER TO NODE NAME
  1147						STOR T1,NDSRV,(P3)	^;PUT POINTER TO STRING IN NIB
  1148	006536'	202 01 0 12 000011 			MOVEM T1,11(P3)^
  1149						LOAD T1,NDSRV,(P3)	^;GET POINTER TO ASCIZ SERVER NODE NAME
  1150	006537'	200 01 0 12 000011 			MOVE T1,11(P3)^
  1151	006540'	260 17 0 00 006077'		CALL FOCNIB		;GO GET ADDRESS OF SERVER'S NIB
  1152	006541'	254 00 0 00 006055'		 JRST DOREQE		;FAILED
  1153						LOAD T2,NDSL1,(P3)	^;GET FIRST PART OF SERVER LINE ID
  1154	006542'	200 02 0 12 000012 			MOVE T2,12(P3)^
  1155						LOAD T3,NDSL2,(P3)	^;GET SECOND PART OF SERVER LINE ID
  1156	006543'	200 03 0 12 000013 			MOVE T3,13(P3)^
  1157	006544'	260 17 0 00 015641'		CALL FOCLIN		;FIND OR CREATE ENTRY FOR THIS LINE
  1158	006545'	254 00 0 00 006055'		 JRST DOREQE		;FAILED
  1159						STOR P3,LTNIB,(T1)	^;STORE NIB ADR OF TARGET NODE IN LINE TABLE
  1160	006546'	542 12 0 01 000002 			HRRM P3,2(T1)^
  1161	006547'	254 00 0 00 006520*		RETSKP^JRST RSKP^
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 27
NCP	MAC	 5-Oct-81 16:46		NCP -- SET Command

  1162					;SET NODE LOAD-PARAMETERS
  1163
  1164	006550'	260 17 0 00 012427'	SETNLP:	CALL PRSCMA		;PARSED A COMMA ?
  1165	006551'	255 00 0 00 000000 		 JFCL			;NO, TRY NEXT ARG TYPE
  1166	006552'	260 17 0 00 012335'		CALL PRSCFM		;PARSE END OF COMMAND
  1167						RETSKP	^		;YES, DONE
  1168	006553'	254 00 0 00 006547*	JRST RSKP
  1169	006554'	260 17 0 00 012326'		CALL PRSKEY		;PARSE A KEYWORD
  1170	006555'	254 00 0 00 006055'		JRST DOREQE		;NOT FOUND
  1171	006556'	201 02 0 00 006563'		MOVEI T2,SETLPT		;GET ADR OF THE DISPATCH TABLE
  1172	006557'	201 03 0 00 000004 		MOVEI T3,SETLPL		;AND ITS LENGTH
  1173	006560'	260 17 0 00 006067'		CALL FNDDSP		;FIND THE DISPATCH ADDRESS
  1174	006561'	254 00 0 00 006055'		 JRST DOREQE		;FAILED TO FIND IT
  1175	006562'	254 00 0 01 000000 		JRST (T1)		;DISPATCH
  1176
  1177	006563'	000033	006617'		SETLPT:	.DNLPH,,SETNHS		;SET NODE LOAD-PARAMETERS HOST
  1178	006564'	000050	006605'			.DNLPN,,SETNNM		;SET NODE LOAD-PARAMETERS NAME
  1179	006565'	000057	006631'			.DNLP1,,SETNNU		;SET NODE LOAD-PARAMETERS NUMBER
  1180	006566'	000056	006567'			.DNNON,,SETNON		;SET NODE LOAD-PARAMETERS NONE
  1181			000004		SETLPL==.-SETLPT
  1182
  1183
  1184					;SET NODE LOAD-PARAMETERS NONE
  1185
  1186	006567'				SETNON:	LOAD T1,NDPNA,(P3)	^;GET POINTER TO NODE NAME
  1187	006567'	200 01 0 12 000014 			MOVE T1,14(P3)^
  1188						SETZRO NDPNA,(P3)	^;CLEAR IT
  1189	006570'	402 00 0 12 000014 			SETZM 14(P3)^
  1190	006571'	553 00 0 00 000001 		HRRZS T1		;GET ADR OF STRING
  1191	006572'	322 01 0 00 006575'		JUMPE T1,SETNO1		;ANYTHING THERE?
  1192	006573'	260 17 0 00 014115'		CALL RELFRE		;YES, RELEASE THE SPACE
  1193						 FATAL.ERROR^
  1194							CALL ERROR
  1195							HALTF
  1196	006574'	254 00 0 00 016623'			JRST NETCON]^
  1197	006575'				SETNO1:	LOAD T1,NDPHT,(P3)	^;GET POINTER TO HOST NAME
  1198	006575'	200 01 0 12 000016 			MOVE T1,16(P3)^
  1199						SETZRO NDPHT,(P3)	^;ZERO THE ENTRY
  1200	006576'	402 00 0 12 000016 			SETZM 16(P3)^
  1201	006577'	553 00 0 00 000001 		HRRZS T1		;GET JUST THE ADDRESS
  1202	006600'	322 01 0 00 006603'		JUMPE T1,SETNO2		;ANYTHING THERE?
  1203	006601'	260 17 0 00 014115'		CALL RELFRE		;YES, RELEASE THE SPACE
  1204						 FATAL.ERROR^
  1205							CALL ERROR
  1206							HALTF
  1207	006602'	254 00 0 00 016623'			JRST NETCON]^
  1208	006603'				SETNO2:	SETZRO NDPNU,(P3)	^;CLEAR THE NUMBER
  1209	006603'	402 00 0 12 000015 			SETZM 15(P3)^
  1210						RETSKP	^		;RETURN
  1211	006604'	254 00 0 00 006553*	JRST RSKP
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 28
NCP	MAC	 5-Oct-81 16:46		NCP -- SET Command

  1212					;SET NODE LOAD-PARAMETERS NAME
  1213
  1214	006605'				SETNNM:	STKVAR <NNMNOD>^
  1215	006605'	265 16 0 00 006522*		JSP .A16,.STKST
  1216	006606'	000001	000001			 ..STKN,,..STKN
  1217	006607'	260 17 0 00 012341'		CALL PRSNOD		;PARSE A NODE NAME
  1218						 RETBAD ()^		;FAILED
  1219	006610'	263 17 0 00 000000 	IFB <>,<	RET>
  1220	006611'	202 01 0 17 777776 		MOVEM T1,NNMNOD	^-^O2(P)^	;SAVE POINTER TO NODE NAME
  1221						LOAD T1,NDPNA,(P3)	^;GET PREVIOUS NAME
  1222	006612'	200 01 0 12 000014 			MOVE T1,14(P3)^
  1223						JUMPN T1,[CALL RELFRE	;RELEASE THE OLD BLOCK
  1224							   FATAL.ERROR	^
  1225							CALL ERROR
  1226							HALTF
  1227							JRST NETCON]^;FAILED, ISSUE MESSAGE AND CONTINUE
  1228	006613'	326 01 0 00 016730'			  JRST .+1]	;CONTINUE
  1229	006614'	200 01 0 17 777776 		MOVE T1,NNMNOD	^-^O2(P)^	;GET NEW NODE NAME
  1230						STOR T1,NDPNA,(P3)	^;STORE NEW NAME IN NIB
  1231	006615'	202 01 0 12 000014 			MOVEM T1,14(P3)^
  1232	006616'	254 00 0 00 006550'		JRST SETNLP		;LOOP BACK FOR ANY OTHER PARAMETERS
  1233
  1234
  1235
  1236					;SET NODE LOAD-PARAMETERS HOST
  1237
  1238	006617'				SETNHS:	STKVAR <NHSNOD>^
  1239	006617'	265 16 0 00 006605*		JSP .A16,.STKST
  1240	006620'	000001	000001			 ..STKN,,..STKN
  1241	006621'	260 17 0 00 012341'		CALL PRSNOD		;PARSE A NODE NAME
  1242						 RETBAD ()^		;FAILED
  1243	006622'	263 17 0 00 000000 	IFB <>,<	RET>
  1244	006623'	202 01 0 17 777776 		MOVEM T1,NHSNOD	^-^O2(P)^	;SAVE POINTER TO NODE NAME
  1245						LOAD T1,NDPHT,(P3)	^;GET POINTER TO SERVER NODE NAME
  1246	006624'	200 01 0 12 000016 			MOVE T1,16(P3)^
  1247						JUMPN T1,[CALL RELFRE	;RELEASE THE OLD BLOCK
  1248							   FATAL.ERROR	^
  1249							CALL ERROR
  1250							HALTF
  1251							JRST NETCON]^;FAILED, ISSUE MESSAGE AND CONTINUE
  1252	006625'	326 01 0 00 016733'			  JRST .+1]	;CONTINUE
  1253	006626'	200 01 0 17 777776 		MOVE T1,NHSNOD	^-^O2(P)^	;GET NEW NODE NAME
  1254						STOR T1,NDPHT,(P3)	^;PUT POINTER TO STRING IN NIB
  1255	006627'	202 01 0 12 000016 			MOVEM T1,16(P3)^
  1256	006630'	254 00 0 00 006550'		JRST SETNLP		;LOOP BACK FOR ANY OTHER PARAMETERS
  1257
  1258
  1259
  1260					;SET NODE LOAD-PARAMETERS NUMBER
  1261
  1262	006631'	260 17 0 00 012400'	SETNNU:	CALL PRSNUM		;PARSE NODE NUMBER
  1263						 RETBAD ()^		;FAILED
  1264	006632'	263 17 0 00 000000 	IFB <>,<	RET>
  1265						STOR T1,NDPNU,(P3)	^;STORE THE NUMBER
  1266	006633'	202 01 0 12 000015 			MOVEM T1,15(P3)^
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 28-1
NCP	MAC	 5-Oct-81 16:46		NCP -- SET Command

  1267	006634'	254 00 0 00 006550'		JRST SETNLP		;LOOP BACK FOR ANY OTHER PARAMETERS
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 29
NCP	MAC	 5-Oct-81 16:46		NCP -- SET Command

  1268
  1269	006635'				SETSDF:	MOVX Q1,.PTSDM		^;SET SECONDARY-DUMP-FILE
  1270	006635'	201 05 0 00 000003 		  MOVEI Q1,..MX1>	
  1271	006636'	254 00 0 00 006645'		JRST SETFIL		;GO STORE FILESPEC
  1272
  1273	006637'				SETSLF:	MOVX Q1,.PTSLD		^;SET SECONDARY-LOAD-FILE
  1274	006637'	201 05 0 00 000000 		  MOVEI Q1,..MX1>	
  1275	006640'	254 00 0 00 006645'		JRST SETFIL		;GO STORE FILESPEC
  1276
  1277	006641'				SETTDF:	MOVX Q1,.PTTDM		^;SET TERTIARY-DUMP-FILE
  1278	006641'	201 05 0 00 000004 		  MOVEI Q1,..MX1>	
  1279	006642'	254 00 0 00 006645'		JRST SETFIL		;GO STORE FILESPEC
  1280
  1281	006643'				SETTLF:	MOVX Q1,.PTTLD		^;SET TERTIARY-LOAD FILE
  1282	006643'	201 05 0 00 000001 		  MOVEI Q1,..MX1>	
  1283	006644'	254 00 0 00 006645'		JRST SETFIL		;GO STORE FILESPEC
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 30
NCP	MAC	 5-Oct-81 16:46		NCP -- SET Command

  1284					; SETFIL - ROUTINE TO SET UP DUMP OR LOAD FILE SPECS
  1285					;
  1286					;ACCEPTS IN Q1/	PROGRAM TYPE
  1287
  1288	006645'				SETFIL:	STKVAR <SFLFIL>^
  1289	006645'	265 16 0 00 006617*		JSP .A16,.STKST
  1290	006646'	000001	000001			 ..STKN,,..STKN
  1291	006647'	260 17 0 00 012326'		CALL PRSKEY		;PARSE A KEYWORD
  1292	006650'	254 00 0 00 006055'		 JRST DOREQE		;WRONG TYPE
  1293	006651'	201 02 0 00 006711'		MOVEI T2,SETDVT		;GET POINTER TO DEVICE TABLE
  1294	006652'	201 03 0 00 000015 		MOVEI T3,SETDVL		;AND LENGTH OF TABLE
  1295	006653'	260 17 0 00 006067'		CALL FNDDSP		;FIND DEVICE TYPE
  1296	006654'	254 00 0 00 006055'		 JRST DOREQE		;NOT FOUND
  1297	006655'	200 06 0 00 000001 		MOVE Q2,T1		;SAVE DEVICE TYPE
  1298	006656'	260 17 0 00 012326'		CALL PRSKEY		;PARSE A KEYWORD
  1299	006657'	254 00 0 00 006055'		 JRST DOREQE		;WRONG TYPE
  1300	006660'	201 02 0 00 006726'		MOVEI T2,SETCPT		;GET POINTER TO CPU TABLE
  1301	006661'	201 03 0 00 000003 		MOVEI T3,SETCPL		;AND ITS LENGTH
  1302	006662'	260 17 0 00 006067'		CALL FNDDSP		;GET CPU TYPE CODE
  1303	006663'	254 00 0 00 006055'		 JRST DOREQE		;NOT FOUND
  1304	006664'	200 07 0 00 000001 		MOVE Q3,T1		;SAVE CPU TYPE
  1305	006665'	200 01 0 00 000006 		MOVE T1,Q2		;NOW FIND THE PGM TABLE ENTRY FOR THIS
  1306	006666'	200 02 0 00 000007 		MOVE T2,Q3		;SET UP DEVICE TYPE AND CPU TYPE
  1307	006667'	200 03 0 00 000005 		MOVE T3,Q1		;AND PROGRAM TYPE
  1308	006670'	260 17 0 00 015666'		CALL FOCPGM		;GO GET A PGM TABLE ENTRY
  1309						 RETBAD (.ERR15)^	;NO MORE SPACE FOR A NEW ENTRY
  1310					IFNB <.ERR15>,<	JRST [	MOVEI T1,.ERR15
  1311	006671'	254 00 0 00 016736'				RET]>>
  1312	006672'	200 06 0 00 000001 		MOVE Q2,T1		;SAVE THE ADDRESS OF THE ENTRY
  1313	006673'	260 17 0 00 012357'		CALL PRSFIL		;PARSE A FILE-SPEC
  1314						 RETBAD ()^		;FAILED, RETURN ERROR
  1315	006674'	263 17 0 00 000000 	IFB <>,<	RET>
  1316	006675'	202 01 0 17 777776 		MOVEM T1,SFLFIL	^-^O2(P)^	;SAVE FILE SPEC
  1317	006676'	260 17 0 00 012335'		CALL PRSCFM		;PARSE COMMAND CONFIRMATION
  1318						 RETBAD ()^		;FAILED
  1319	006677'	263 17 0 00 000000 	IFB <>,<	RET>
  1320						LOAD T1,PGFIL,(Q2)	^;GET OLD FILE SPEC
  1321	006700'	200 01 0 06 000002 			MOVE T1,2(Q2)^
  1322						JUMPN T1,[CALL RELFRE	;RELEASE THE OLD BLOCK
  1323							   FATAL.ERROR	^
  1324							CALL ERROR
  1325							HALTF
  1326							JRST NETCON]^;FAILED, ISSUE MESSAGE AND CONTINUE
  1327	006701'	326 01 0 00 016740'			  JRST .+1]	;CONTINUE
  1328	006702'	200 01 0 17 777776 		MOVE T1,SFLFIL	^-^O2(P)^	;GET FILE SPEC
  1329						STOR T1,PGFIL,(Q2)	^;STORE THE NEW FILE SPEC
  1330	006703'	202 01 0 06 000002 			MOVEM T1,2(Q2)^
  1331						RETSKP	^		;DONE
  1332	006704'	254 00 0 00 006604*	JRST RSKP
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 31
NCP	MAC	 5-Oct-81 16:46		NCP -- SET Command

  1333	006705'	000074	000003		SETFTB:	.DNSSD,,.PTSDM		;SET SECONDARY-DUMP-FILE
  1334	006706'	000075	000000			.DNSSL,,.PTSLD		;SET SECONDARY-LOAD-FILE
  1335	006707'	000110	000004			.DNSTD,,.PTTDM		;SET TERTIARY-DUMP-FILE
  1336	006710'	000111	000001			.DNSTL,,.PTTLD		;SET TERTIARY-LOAD-FILE
  1337			000004		SETFTL==.-SETFTB
  1338
  1339	006711'	000014	000000		SETDVT:	.DND11,,.DTP11		;DP11
  1340	006712'	000036	000034			.DNKDP,,.DTKDP		;KMC-DUP
  1341	006713'	000037	000036			.DNKDZ,,.DTKDZ		;KMC-DZ
  1342	006714'	000017	000002			.DNU11,,.DTU11		;DU11
  1343	006715'	000011	000004			.DNL1E,,.DTL1E		;DL11E
  1344	006716'	000015	000006			.DNQ11,,.DTQ11		;DQ11
  1345	006717'	000006	000010			.DNA11,,.DTA11		;DA11A
  1346	006720'	000020	000012			.DNDUP,,.DTDUP		;DUP11
  1347	006721'	000013	000014			.DNDMC,,.DTDMC		;DMC11
  1348	006722'	000012	000016			.DNDLV,,.DTDLV		;DLV11
  1349	006723'	000010	000020			.DNL1A,,.DTL1A		;DL11A
  1350	006724'	000016	000024			.DNDTE,,.DTDTE		;DTE-20
  1351	006725'	000024	000026			.DNDV1,,.DTDV1		;DV11
  1352			000015		SETDVL==.-SETDVT
  1353
  1354	006726'	000066	000000		SETCPT:	.DNP8,,.CP8		;PDP-8
  1355	006727'	000065	000001			.DNP11,,.CP11		;PDP-11
  1356	006730'	000007	000002			.DND20,,.CP20		;DEC-20
  1357			000003		SETCPL==.-SETCPT
  1358
  1359
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 32
NCP	MAC	 5-Oct-81 16:46		NCP -- SET Command

  1360
  1361					;SET STATE LINE LINE-ID OFF/ON
  1362
  1363	006731'	260 17 0 00 012326'	SETSTA:	CALL PRSKEY		;PARSE A KEYWORD
  1364	006732'	254 00 0 00 006055'		 JRST DOREQE		;FAILED, NOT A KEYWORD
  1365	006733'	302 01 0 00 000040 		CAIE T1,.DNSLI		;IS THIS LINE ?
  1366	006734'	254 00 0 00 006055'		JRST DOREQE		;NOT FOUND
  1367	006735'	260 17 0 00 012436'		CALL PRSLID		;PARSE THE LINE-ID
  1368						 RETBAD (.ERR23)^	;<Invalid line-id>
  1369					IFNB <.ERR23>,<	JRST [	MOVEI T1,.ERR23
  1370	006736'	254 00 0 00 016707'				RET]>>
  1371	006737'	120 05 0 00 000001 		DMOVE Q1,T1		;SAVE LINE ID
  1372	006740'	260 17 0 00 012326'		CALL PRSKEY		;PARSE A KEYWORD
  1373	006741'	254 00 0 00 006055'		 JRST DOREQE		;FAILED, NOT A KEYWORD
  1374	006742'	200 07 0 00 000001 		MOVE Q3,T1		;COPY LINE STATE KEYWORD
  1375	006743'	260 17 0 00 012335'		CALL PRSCFM		;PARSE CONFIRMATION
  1376	006744'	254 00 0 00 006055'		 JRST DOREQE		;FAILED
  1377	006745'	200 01 0 00 000007 		MOVE T1,Q3		;GET LINE STATE CODE FROM COMMAND
  1378	006746'	201 02 0 00 006756'		MOVEI T2,LSTTAB		;GET ADDRESS OF LINE STATE TABLE
  1379	006747'	201 03 0 00 000005 		MOVEI T3,LSTLEN		;GET LENGTH OF TABLE
  1380	006750'	260 17 0 00 006067'		CALL FNDDSP		;GET NICE PROTOCOL LINE STATE CODE
  1381						 RETBAD ()^		;FAILED
  1382	006751'	263 17 0 00 000000 	IFB <>,<	RET>
  1383	006752'	120 02 0 00 000005 		DMOVE T2,Q1		;GET LINE ID
  1384	006753'	260 17 0 00 007021'		CALL LINSET		;GO SEND MSG TO SET LINE STATE
  1385						 RETBAD ()^		;FAILED
  1386	006754'	263 17 0 00 000000 	IFB <>,<	RET>
  1387						RETSKP	^		;DONE
  1388	006755'	254 00 0 00 006704*	JRST RSKP
  1389
  1390
  1391					; TABLE OF LINE STATE CODE MAPPINGS
  1392
  1393	006756'	000061	000000		LSTTAB:	.DNSSO,,.LSTON
  1394	006757'	000060	000001			.DNSSF,,.LSTOF
  1395	006760'	000127	000005			.DNCNL,,.LSTCN
  1396	006761'	000130	000006			.DNCBL,,.LSTCB
  1397	006762'	000146	000004			.DNMNT,,.LSTMN
  1398
  1399			000005		LSTLEN==.-LSTTAB
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 33
NCP	MAC	 5-Oct-81 16:46		NCP -- SET Command

  1400
  1401					;SET NODE node AUTO-DUMP 
  1402
  1403	006763'	260 17 0 00 012326'	SETADM:	CALL PRSKEY		;GET THE NEXT KEYWORD
  1404	006764'	254 00 0 00 006055'		 JRST DOREQE		;WRONG TYPE
  1405	006765'	201 02 0 00 006772'		MOVEI T2,SETDDL		;GET DISPATCH TABLE ADDRESS
  1406	006766'	201 03 0 00 000002 		MOVEI T3,SETDLN		; AND LENGTH OF TABLE
  1407	006767'	260 17 0 00 006067'		CALL FNDDSP		;GET DISPATCH ADDRESS
  1408	006770'	254 00 0 00 006055'		 JRST DOREQE		;WRONG TYPE
  1409	006771'	254 00 0 01 000000 		JRST (T1)
  1410
  1411	006772'	000122	006774'		SETDDL:	.DNEAB,,SETDEN		;SET NODE node AUTO-DUMP ENABLED
  1412	006773'	000121	006777'			.DNDAB,,SETDDA		;SET NODE node AUTO-DUMP DISABLED
  1413			000002		SETDLN==.-SETDDL
  1414
  1415					; SET NODE node AUTO-DUMP ENABLED
  1416
  1417	006774'				SETDEN:	SETONE NDFRD,(P3)	^;TURN ON AUTO DUMPING
  1418	006774'	205 16 0 00 040000 		  MOVSI .SAC,(..MX1)>>	
  1419	006775'	436 16 0 12 000000 			IORM .SAC,0(P3)
  1420	006776'	254 00 0 00 006755*		RETSKP^JRST RSKP^
  1421
  1422					;SET NODE node AUTO-DUMP DISABLED
  1423
  1424	006777'				SETDDA:	SETZRO NDFRD,(P3)	^;TURN OFF AUTO DUMPING
  1425	006777'	205 16 0 00 040000 		  MOVSI .SAC,(..MX1)>>	
  1426	007000'	412 16 0 12 000000 			ANDCAM .SAC,0(P3)
  1427	007001'	254 00 0 00 006776*		RETSKP^JRST RSKP^
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 34
NCP	MAC	 5-Oct-81 16:46		NCP -- SET Command

  1428
  1429					;SET NODE node AUTO-LOAD 
  1430
  1431	007002'	260 17 0 00 012326'	SETALD:	CALL PRSKEY		;GET THE NEXT KEYWORD
  1432	007003'	254 00 0 00 006055'		 JRST DOREQE		;WRONG TYPE
  1433	007004'	201 02 0 00 007011'		MOVEI T2,SETLDL		;GET DISPATCH TABLE ADDRESS
  1434	007005'	201 03 0 00 000002 		MOVEI T3,SETLLN		; AND LENGTH OF TABLE
  1435	007006'	260 17 0 00 006067'		CALL FNDDSP		;GET DISPATCH ADDRESS
  1436	007007'	254 00 0 00 006055'		 JRST DOREQE		;WRONG TYPE
  1437	007010'	254 00 0 01 000000 		JRST (T1)
  1438
  1439	007011'	000122	007013'		SETLDL:	.DNEAB,,SETLEN		;SET NODE node AUTO-LOAD ENABLED
  1440	007012'	000121	007016'			.DNDAB,,SETLDA		;SET NODE node AUTO-LOAD DISABLED
  1441			000002		SETLLN==.-SETLDL
  1442
  1443					; SET NODE node AUTO-LOAD ENABLED
  1444
  1445	007013'				SETLEN:	SETONE NDFRL,(P3)	^;TURN ON AUTO LOADING
  1446	007013'	205 16 0 00 020000 		  MOVSI .SAC,(..MX1)>>	
  1447	007014'	436 16 0 12 000000 			IORM .SAC,0(P3)
  1448	007015'	254 00 0 00 007001*		RETSKP^JRST RSKP^
  1449
  1450					;SET NODE node AUTO-LOAD DISABLED
  1451
  1452	007016'				SETLDA:	SETZRO NDFRL,(P3)	^;TURN OFF AUTO LOADING
  1453	007016'	205 16 0 00 020000 		  MOVSI .SAC,(..MX1)>>	
  1454	007017'	412 16 0 12 000000 			ANDCAM .SAC,0(P3)
  1455	007020'	254 00 0 00 007015*		RETSKP^JRST RSKP^
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 35
NCP	MAC	 5-Oct-81 16:46		NCP -- SET Command

  1456					;LINSET - ROUTINE TO ASSEMBLE AND SEND A NICE "SET PARAMETERS" MSG
  1457					;	    TO SET A LINE STATE
  1458					;
  1459					;ACCEPTS IN T1/	LINE STATE
  1460					;	    T2-T3/ STANDARD NICE LINE ID
  1461					;		CALL LINSET
  1462					;RETURNS: +1	 FAILED
  1463					;	  +2	SUCCESS, MESSAGE SENT
  1464
  1465	007021'				LINSET:	STKVAR <<LNSMSG,50>>^
  1466	007021'	265 16 0 00 006645*		JSP .A16,.STKST
  1467	007022'	000050	000050			 ..STKN,,..STKN
  1468	007023'	201 04 0 17 777727 		MOVEI T4,LNSMSG	^-^O51(P)^	;GET ADDRESS WHERE MESSAGE IS TO GO
  1469	007024'	260 17 0 00 000000*		CALL MAKSLN		;GO ASSEMBLE A NICE "SET PARAMETER" MESSAGE
  1470						 RETBAD ()^		;FAILED, RETURN ERROR
  1471	007025'	263 17 0 00 000000 	IFB <>,<	RET>
  1472	007026'	200 04 0 00 016743'		MOVE T4,[.NCSET,,.NCSLN] ;GET NICE FUNCTION CODE,,OPTION CODE
  1473	007027'	200 03 0 00 000002 		MOVE T3,T2		;COPY COUNT
  1474	007030'	200 02 0 00 000001 		MOVE T2,T1		;COPY POINTER TO START OF MESSAGE
  1475	007031'	200 01 0 00 000010 		MOVE T1,P1		;GET ADR OF MESSAGE
  1476	007032'	504 01 0 00 000003 		HRL T1,T3		;MOVE COUNT INTO PARAM REG
  1477	007033'	200 03 0 00 006346*		MOVE T3,EXCUTR		;SHOW WHAT EXECUTOR WE WANT
  1478	007034'	260 17 0 00 011050'		CALL STONIC		;STORE THIS MESSAGE ON NICE QUEUE
  1479						 RETBAD ()^		;FAILED
  1480	007035'	263 17 0 00 000000 	IFB <>,<	RET>
  1481	007036'	200 01 0 00 002000'		MOVE T1,REQADR		;GET ADR OF THIS QUEUE ENTRY
  1482						MOVX T2,QF%NOA		^;MARK THAT THIS MESSAGE NOT TO BE ACK'D YET
  1483	007037'	201 02 0 00 000001 		  MOVEI T2,..MX1>	
  1484						STOR T2,QUEFLG,(T1)^
  1485	007040'	542 02 0 01 000001 			HRRM T2,1(T1)^
  1486						RETSKP	^		;DONE, RETURN SUCCESS
  1487	007041'	254 00 0 00 007020*	JRST RSKP
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 36
NCP	MAC	 5-Oct-81 16:46		NCP -- LOAD Command

  1488					SUBTTL	NCP -- LOAD Command
  1489
  1490	007042'	260 17 0 00 012326'	LOAREQ:	CALL PRSKEY		;PARSE A KEYWORD
  1491	007043'	254 00 0 00 006055'		 JRST DOREQE		;FAILED, NOT A KEYWORD
  1492	007044'	201 02 0 00 007051'		MOVEI T2,LOARTB		;GET DISPATCH ADDRESS
  1493	007045'	201 03 0 00 000003 		MOVEI T3,LOARTL		;GET LENGTH OF DISPATCH TABLE
  1494	007046'	260 17 0 00 006067'		CALL FNDDSP		;GET ADDRESS TO DISPATCH TO
  1495	007047'	254 00 0 00 006055'		 JRST DOREQE		;NOT FOUND
  1496	007050'	254 00 0 01 000000 		JRST (T1)		;DISPATCH
  1497
  1498	007051'	000040	007054'		LOARTB:	.DNSLI,,LOALIN		;LOAD LINE
  1499	007052'	000055	007266'			.DNNOD,,LOAREM		;LOAD REMOTE
  1500	007053'	000115	007265'			.DNVIA,,LOAVIA		;LOAD VIA
  1501			000003		LOARTL==.-LOARTB
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 37
NCP	MAC	 5-Oct-81 16:46		NCP -- LOAD Command

  1502
  1503					;LOAD LINE-ID (from) FILESPEC
  1504	007054'				LOALIN:	STKVAR <<BTLBLK,14>,<BTLPAG,2>,BTLFIL>^
  1505	007054'	265 16 0 00 007021*		JSP .A16,.STKST
  1506	007055'	000017	000017			 ..STKN,,..STKN
  1507	007056'	260 17 0 00 007722'		CALL PRSKDP		;GET KMC11 ADR
  1508						 RETBAD (.ERR23)^	;<Invalid line-id>
  1509					IFNB <.ERR23>,<	JRST [	MOVEI T1,.ERR23
  1510	007057'	254 00 0 00 016707'				RET]>>
  1511	007060'	202 01 0 17 777763 		MOVEM T1,.BTKMC+BTLBLK	^-^O15(P)^;SAVE ADR OF KMC11 TO LOAD
  1512					;	CALL PRSKEY		;PARSE KEYWORD
  1513					;	 RETBAD ()		;FAILED
  1514					;	CAIE T1,.DNLFR		;KEYWORD "FROM" ?
  1515					;	JRST DOREQE		;NO, UNIMPLEMENTED COMMAND
  1516	007061'	260 17 0 00 012363'		CALL PRSIFI		;PARSE AN INPUT FILE
  1517						 RETBAD ()^		;FAILED
  1518	007062'	263 17 0 00 000000 	IFB <>,<	RET>
  1519	007063'	202 01 0 17 777760 		MOVEM T1,BTLFIL	^-^O20(P)^	;SAVE POINTER TO FILE SPEC FOR LATER
  1520	007064'	260 17 0 00 012335'		CALL PRSCFM		;PARSE END OF COMMAND
  1521						 RETBAD ()^		;FAILED
  1522	007065'	263 17 0 00 000000 	IFB <>,<	RET>
  1523	007066'	200 02 0 17 777760 		MOVE T2,BTLFIL	^-^O20(P)^	;COPY POINTER TO FILESPEC
  1524						MOVX T1,GJ%OLD!GJ%SHT	^;FILE FOR INPUT USE, SHORT CALL
  1525	007067'	205 01 0 00 100001 		  MOVSI T1,(..MX1)>>	
  1526	007070'	104 00 0 00 000020 		GTJFN			;GET A JFN FOR INPUT FILE
  1527						 RETBAD (.ERR24)^	;<Could not open file>
  1528					IFNB <.ERR24>,<	JRST [	MOVEI T1,.ERR24
  1529	007071'	254 00 0 00 016744'				RET]>>
  1530	007072'	552 01 0 17 777760 		HRRZM T1,BTLFIL	^-^O20(P)^	;SAVE JFN
  1531	007073'	200 02 0 00 016746'		MOVE T2,[070000,,OF%RD]	;7-BIT BYTES, READ ACCESS ONLY
  1532	007074'	104 00 0 00 000021 		OPENF			;OPEN THE FILE
  1533						 JRST [	MOVEI T4,.ERR24 ;<Could not open file>
  1534	007075'	254 00 0 00 016747'			JRST LOAKD6 ]
  1535	007076'	260 17 0 00 014234'		CALL ASGPAG		;GET A PAGE ADR FOR CRAM DATA
  1536						 JRST [	MOVE T4,T1	;COPY ERROR CODE
  1537	007077'	254 00 0 00 016751'			JRST LOAKD6 ]
  1538	007100'	202 02 0 17 777761 		MOVEM T2,BTLPAG	^-^O17(P)^	;SAVE ADR OF FIRST WORD IN PAGE
  1539	007101'	402 00 0 02 000000 		SETZM (T2)		;CLEAR FIRST WORD IN PAGE
  1540	007102'	505 01 0 02 000000 		HRLI T1,(T2)		;MAKE BLT POINTER
  1541	007103'	541 01 0 02 000001 		HRRI T1,1(T2)
  1542	007104'	251 01 0 02 000777 		BLT T1,777(T2)		;CLEAR THE PAGE
  1543	007105'	260 17 0 00 014234'		CALL ASGPAG		;GET A PAGE ADR FOR DRAM DATA
  1544						 JRST [	MOVE T4,T1	;COPY ERROR CODE
  1545	007106'	254 00 0 00 016753'			JRST LOAKD5 ]
  1546	007107'	202 02 0 17 777762 		MOVEM T2,1+BTLPAG	^-^O17(P)^;SAVE ADR OF FIRST WORD IN PAGE
  1547	007110'	402 00 0 02 000000 		SETZM (T2)		;CLEAR FIRST WORD IN PAGE
  1548	007111'	505 01 0 02 000000 		HRLI T1,(T2)		;MAKE BLT POINTER
  1549	007112'	541 01 0 02 000001 		HRRI T1,1(T2)
  1550	007113'	251 01 0 02 000777 		BLT T1,777(T2)		;CLEAR THE PAGE
  1551	007114'	402 00 0 17 777773 		SETZM .BTKSA+BTLBLK	^-^O15(P)^;NO STARTING ADDRESS YET
  1552	007115'	200 01 0 17 777760 		MOVE T1,BTLFIL	^-^O20(P)^	;GET FILE JFN
  1553	007116'	104 00 0 00 000050 	LOAKD1:	BIN			;GET NEXT BYTE
  1554	007117'	320 16 0 00 007141'		ERJMP LOAKD3		;IN CASE EOF
  1555	007120'	306 02 0 00 000103 		CAIN T2,"C"		;IS THIS CRAM DATA ?
  1556	007121'	254 00 0 00 007177'		JRST LDKMC1		;LOADING THE CRAM
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 37-1
NCP	MAC	 5-Oct-81 16:46		NCP -- LOAD Command

  1557	007122'	306 02 0 00 000104 		CAIN T2,"D"		;IS THIS DRAM DATA ?
  1558	007123'	254 00 0 00 007206'		JRST LDKMD1		;LOADING THE DRAM
  1559	007124'	302 02 0 00 000015 		CAIE T2,15		;IS THIS A CARRIAGE RETURN ?
  1560	007125'	306 02 0 00 000012 		CAIN T2,12		;OR A LINE FEED ?
  1561	007126'	254 00 0 00 007116'		JRST LOAKD1		;YES SO LOOK FOR COMMAND TYPE
  1562	007127'	306 02 0 00 000014 		CAIN T2,14		;OR A FORM FEED ?
  1563	007130'	254 00 0 00 007116'		JRST LOAKD1		;YES SO LOOK FOR TYPE OF COMMAND
  1564	007131'	302 02 0 00 000073 		CAIE T2,";"		;IS THIS A COMMENT LINE ?
  1565	007132'	254 00 0 00 007213'		JRST LOAKMX		;Bad data in load file
  1566	007133'	104 00 0 00 000050 	LOAKD2:	BIN			;GET NEXT CHARACTER
  1567	007134'	320 16 0 00 007141'		ERJMP LOAKD3
  1568	007135'	302 02 0 00 000012 		CAIE T2,12		;IS THIS A LINE FEED ?
  1569	007136'	306 02 0 00 000014 		CAIN T2,14		;OR A FORM FEED
  1570	007137'	254 00 0 00 007116'		JRST LOAKD1		;YES SO LOOK FOR COMMAND CHARACTER
  1571	007140'	254 00 0 00 007133'		JRST LOAKD2		;KEEP FLUSHING LINE
  1572
  1573	007141'	402 00 0 17 777764 	LOAKD3:	SETZM .BTKER+BTLBLK	^-^O15(P)^;INITIALIZE FLAGS
  1574	007142'	200 01 0 17 777761 		MOVE T1,BTLPAG	^-^O17(P)^	;GET ADR OF PAGE
  1575	007143'	505 01 0 00 442000 		HRLI T1,(POINT 16,)	;MAKE INTO BYTE POINTER
  1576	007144'	202 01 0 17 777766 		MOVEM T1,.BTKCP+BTLBLK^-^O15(P)^
  1577	007145'	201 01 0 00 002000 		MOVEI T1,2000		;COUNT FOR CRAM
  1578	007146'	202 01 0 17 777765 		MOVEM T1,.BTKCC+BTLBLK^-^O15(P)^
  1579	007147'	200 01 0 17 777762 		MOVE T1,1+BTLPAG	^-^O17(P)^;GET ADR OF PAGE
  1580	007150'	505 01 0 00 441000 		HRLI T1,(POINT 8,)	;MAKE INTO BYTE POINTER
  1581	007151'	202 01 0 17 777770 		MOVEM T1,.BTKDP+BTLBLK^-^O15(P)^
  1582	007152'	201 01 0 00 002000 		MOVEI T1,2000		;COUNT FOR DRAM
  1583	007153'	202 01 0 17 777767 		MOVEM T1,.BTKDC+BTLBLK^-^O15(P)^
  1584	007154'	402 00 0 17 777771 		SETZM .BTKRC+BTLBLK	^-^O15(P)^;NOT LOADING REGISTERS
  1585	007155'	201 01 0 00 000011 		MOVEI T1,.BTKML		;WANT TO LOAD THE KMC11
  1586	007156'	201 02 0 17 777763 		MOVEI T2,BTLBLK	^-^O15(P)^	;POINT TO BLOCK
  1587	007157'	104 00 0 00 000562 		BOOT
  1588						 ERJMP [MOVEI T4,.ERR19	;JSYS error
  1589	007160'	320 16 0 00 016755'			JRST LOAKD4 ]
  1590	007161'	400 04 0 00 000000 		SETZ T4,		;LOAD WON
  1591	007162'	200 01 0 17 777762 	LOAKD4:	MOVE T1,1+BTLPAG	^-^O17(P)^;GET ADR OF FIRST WORD IN PAGE
  1592	007163'	260 17 0 00 014267'		CALL RELPGA		;RELEASE THE PAGE
  1593	007164'	200 04 0 00 000001 		 MOVE T4,T1		;COPY ERROR CODE
  1594	007165'	200 01 0 17 777761 	LOAKD5:	MOVE T1,BTLPAG	^-^O17(P)^	;GET ADR OF FIRST WORD IN PAGE
  1595	007166'	260 17 0 00 014267'		CALL RELPGA		;RELEASE THE PAGE
  1596	007167'	200 04 0 00 000001 		 MOVE T4,T1		;COPY ERROR CODE
  1597	007170'	200 01 0 17 777760 	LOAKD6:	MOVE T1,BTLFIL	^-^O20(P)^	;GET FILE JFN
  1598	007171'	104 00 0 00 000023 		RLJFN			;RELEASE THE JFN
  1599	007172'	320 16 0 00 007173'		 ERJMP .+1
  1600	007173'	332 01 0 00 000004 		SKIPE T1,T4		;WAS THERE AN ERROR ?
  1601	007174'	263 17 0 00 000000 		 RET			;YES SO LOSE RETURN
  1602	007175'	254 00 0 00 007041*		RETSKP^JRST RSKP^
  1603	007176'	254 00 0 00 006055'		JRST DOREQE		;CAN'T DO IT
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 38
NCP	MAC	 5-Oct-81 16:46		NCP -- LOAD Command

  1604					;HERE TO READ CRAM DATA TO LOAD IN KMC11
  1605	007177'	200 02 0 17 777761 	LDKMC1:	MOVE T2,BTLPAG	^-^O17(P)^	;GET ADR OF PAGE
  1606	007200'	505 02 0 00 442000 		HRLI T2,(POINT 16,)	;MAKE POINTER TO AREA
  1607	007201'	260 17 0 00 007215'		CALL LDKMCX		;GET THE DATA
  1608	007202'	254 00 0 00 007213'		 JRST LOAKMX		;LOST
  1609	007203'	332 00 0 00 000002 		SKIPE T2		;WAS THIS A STARTING ADDRESS ?
  1610	007204'	202 02 0 17 777773 		MOVEM T2,.BTKSA+BTLBLK	^-^O15(P)^;SAVE STARTING ADDRESS
  1611	007205'	254 00 0 00 007116'		JRST LOAKD1		;ON TO NEXT LINE
  1612
  1613					;HERE TO READ DRAM DATA TO LOAD IN KMC11
  1614	007206'	200 02 0 17 777762 	LDKMD1:	MOVE T2,1+BTLPAG	^-^O17(P)^;GET ADR OF PAGE
  1615	007207'	505 02 0 00 441000 		HRLI T2,(POINT 8,)	;MAKE POINTER TO DATA
  1616	007210'	260 17 0 00 007215'		CALL LDKMCX		;GET THE DATA
  1617	007211'	254 00 0 00 007213'		 JRST LOAKMX		;LOST
  1618	007212'	322 02 0 00 007116'		JUMPE T2,LOAKD1		;ON TO NEXT LINE
  1619	007213'	201 04 0 00 500030 	LOAKMX:	MOVEI T4,.ERR25		;Bad data in load file
  1620	007214'	254 00 0 00 007162'		JRST LOAKD4
  1621
  1622	007215'				LDKMCX:	SAVEQ	^		;SAVE THE Q REGISTERS
  1623	007215'	265 16 0 00 014432'		JSP CX,SAVQ
  1624	007216'	200 05 0 00 000002 		MOVE Q1,T2		;SAVE POINTER
  1625	007217'	104 00 0 00 000050 		BIN			;GET SPACE
  1626	007220'	320 16 0 00 000000*		ERJMP R			;LOSE ON EOF
  1627	007221'	400 04 0 00 000000 		SETZ T4,		;ACCUMULATE THE CHECKSUM HERE
  1628	007222'	306 02 0 00 000040 		CAIN T2,40		;IS THIS A SPACE ?
  1629	007223'	260 17 0 00 007251'		CALL LOAKMN		;GET WORD COUNT FROM THE FILE
  1630	007224'	263 17 0 00 000000 		 RET			;LOST
  1631	007225'	331 06 0 00 000002 		SKIPL Q2,T2		;SAVE COUNT
  1632	007226'	260 17 0 00 007251'		CALL LOAKMN		;GET ADDRESS FROM THE FILE
  1633	007227'	263 17 0 00 000000 		 RET			;LOST
  1634	007230'	337 03 0 00 000006 		SKIPG T3,Q2		;COPY COUNT
  1635						JRST [	MOVEM T2,Q1	;SAVE STARTING ADDRESS
  1636							CALL LOAKMN	;GET THE CHECKSUM
  1637							 RET		;LOST
  1638							MOVE T2,Q1	;PICK UP STARTING ADDRESS
  1639							HRLI T2,(BT%KSA) ;THIS IS A STARTING ADDRESS
  1640							JUMPE T4,RSKP	;IF CHECKSUM OK WE WON
  1641	007231'	254 00 0 00 016757'			RET ]
  1642	007232'	271 03 0 00 000002 		ADDI T3,T2
  1643	007233'	303 03 0 00 002000 		CAILE T3,2000		;IS THIS REASONABLE ?
  1644	007234'	263 17 0 00 000000 		RET
  1645	007235'	304 00 0 00 000000 		CAIA
  1646	007236'	133 00 0 00 000005 		IBP Q1			;ADVANCE BYTE POINTER
  1647	007237'	365 02 0 00 007236'		SOJGE T2,.-1		;LOOP TILL HIT RIGHT BYTE
  1648	007240'	260 17 0 00 007251'		CALL LOAKMN		;GET NEXT DATA BYTE
  1649	007241'	263 17 0 00 000000 		 RET
  1650	007242'	136 02 0 00 000005 		IDPB T2,Q1		;PUT BYTE INTO DATA
  1651	007243'	367 06 0 00 007240'		SOJG Q2,.-3
  1652	007244'	260 17 0 00 007251'		CALL LOAKMN		;GET THE CHECKSUM
  1653	007245'	263 17 0 00 000000 		 RET
  1654	007246'	400 02 0 00 000000 		SETZ T2,
  1655	007247'	322 04 0 00 007175*		JUMPE T4,RSKP		;IF CHKSUM IS 0 WE WON
  1656	007250'	263 17 0 00 000000 		RET
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 39
NCP	MAC	 5-Oct-81 16:46		NCP -- LOAD Command

  1657					;HERE TO GET A NUMBER FROM A LOAD FILE
  1658	007251'				LOAKMN:	SAVEQ	^		;SAVE THE Q REGISTERS
  1659	007251'	265 16 0 00 014432'		JSP CX,SAVQ
  1660	007252'	403 06 0 00 000007 		SETZB Q2,Q3		;BUILD NUMBER HERE
  1661	007253'	104 00 0 00 000050 	LOAKM2:	BIN			;GET 
  1662	007254'	320 16 0 00 007220*		ERJMP R
  1663	007255'	301 02 0 00 000075 		CAIL T2,75		;IS THIS ENCODED DATA ?
  1664	007256'	303 02 0 00 000174 		CAILE T2,174
  1665						JRST [	IMULI Q3,6	;MAKE HOW MUCH TO ROTATE BACK
  1666							ROTC Q1,(Q3)
  1667							MOVE T2,Q2	;COPY DATA
  1668							ADD T4,Q2	;INCLUDE IN CHECKSUM
  1669							ANDI T4,177777	;STRIP OVERFLOW
  1670	007257'	254 00 0 00 016766'			RETSKP ^JRST RSKP^]
  1671	007260'	405 02 0 00 000077 		ANDI T2,77		;STRIP EXTRA BITS
  1672	007261'	271 06 0 02 000000 		ADDI Q2,(T2)		;INCLUDE IN NUMBER
  1673	007262'	245 05 0 00 777772 		ROTC Q1,-6		;POSITION OLD BITS
  1674	007263'	344 07 0 00 007253'		AOJA Q3,LOAKM2		;GET NEXT CHARACTER
  1675	007264'	263 17 0 00 000000 		RET
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 40
NCP	MAC	 5-Oct-81 16:46		NCP -- LOAD Command

  1676	007265'	254 00 0 00 006055'	LOAVIA:	JRST DOREQE		;LOAD VIA NOT YET SUPPORTED
  1677
  1678
  1679
  1680
  1681
  1682	007266'				LOAREM:	STKVAR <<LOARMS,24>,<LOARBP,2>,LOARMC,LOARFS,LOARHO,LOARSV,LOARSL,LOARNM,LOARNU,LOAR
  1683					NO,LOARCT,LOARSP>^
  1684	007266'	265 16 0 00 007054*		JSP .A16,.STKST
  1685	007267'	000040	000040			 ..STKN,,..STKN
  1686	007270'	402 00 0 17 777751 		SETZM LOARBP	^-^O27(P)^	;NO BOOT
  1687	007271'	402 00 0 17 777752 		SETZM 1+LOARBP	^-^O27(P)^	; PASSWORD YET
  1688	007272'	402 00 0 17 777746 		SETZM LOARHO	^-^O32(P)^	;NO HOST YET
  1689	007273'	402 00 0 17 777743 		SETZM LOARNM	^-^O35(P)^	;NO NAME YET
  1690	007274'	402 00 0 17 777741 		SETZM LOARNO	^-^O37(P)^	;HAVE NOT SEEN "NONE" YET
  1691	007275'	476 00 0 17 777742 		SETOM LOARNU	^-^O36(P)^	;NO NUMBER YET
  1692	007276'	402 00 0 17 777747 		SETZM LOARFS	^-^O31(P)^	;NO FILE SPEC YET
  1693	007277'	402 00 0 17 777745 		SETZM LOARSV	^-^O33(P)^	;NO SERVER SPECIFICATION
  1694	007300'	402 00 0 17 777744 		SETZM LOARSL	^-^O34(P)^	;NOR A SERVER LINE
  1695	007301'	260 17 0 00 012341'		CALL PRSNOD		;PARSE A NODE NAME
  1696	007302'	254 00 0 00 006055'		 JRST DOREQE		;FAILED, NOT A NODE NAME
  1697	007303'	260 17 0 00 006077'		CALL FOCNIB		;GET A NIB ADDRESS FOR THIS NODE
  1698						 RETBAD ()^		;NOT FOUND
  1699	007304'	263 17 0 00 000000 	IFB <>,<	RET>
  1700	007305'	200 06 0 00 000001 		MOVE Q2,T1		;SAVE THE ADDRESS OF THE NODE NIB
  1701	007306'	260 17 0 00 012335'	LOARML:	CALL PRSCFM		;END OF COMMAND ?
  1702	007307'	334 00 0 00 000000 		SKIPA			;NO, GO ON
  1703	007310'	254 00 0 00 007376'		JRST LOARMD		;YES, GO SEND NICE LOAD REQ MESSAGE
  1704	007311'	260 17 0 00 012326'		CALL PRSKEY		;PARSE A KEYWORD
  1705						 RETBAD ()^		;FAILED
  1706	007312'	263 17 0 00 000000 	IFB <>,<	RET>
  1707	007313'	201 02 0 00 007320'		MOVEI T2,LORMTB		;GET DISPATCH TABLE ADDRESS
  1708	007314'	201 03 0 00 000003 		MOVEI T3,LORMTL		;AND ITS LENGTH
  1709	007315'	260 17 0 00 006067'		CALL FNDDSP		;GET DISPATCH ADDRESS
  1710	007316'	254 00 0 00 006055'		 JRST DOREQE		;UNKNOWN KEYWORD
  1711	007317'	254 00 0 01 000000 		JRST 0(T1)		;DISPATCH
  1712
  1713	007320'	000032	007323'		LORMTB:	.DNLFR,,LOARFR		;LOAD REMOTE FROM
  1714	007321'	000115	007327'			.DNVIA,,LOARVI		;LOAD REMOTE VIA
  1715	007322'	000063	007330'			.DNPRM,,LOARPR		;LOAD REMOTE PARAMETERS
  1716			000003		LORMTL==.-LORMTB
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 41
NCP	MAC	 5-Oct-81 16:46		NCP -- LOAD Command

  1717					;LOAD REMOTE <NODE> FROM
  1718
  1719	007323'	260 17 0 00 012363'	LOARFR:	CALL PRSIFI		;PARSE AN INPUT FILE SPEC
  1720						 RETBAD ()^		;FAILED
  1721	007324'	263 17 0 00 000000 	IFB <>,<	RET>
  1722	007325'	202 01 0 17 777747 		MOVEM T1,LOARFS	^-^O31(P)^	;SAVE POINTER TO FILE SPEC FOR LATER
  1723	007326'	254 00 0 00 007306'		JRST LOARML		;LOOP BACK TIL <CR>
  1724
  1725
  1726					;LOAD REMOTE <NODE> VIA
  1727
  1728	007327'	254 00 0 00 006055'	LOARVI:	JRST DOREQE		;NOT SUPPORTED YET
  1729
  1730
  1731					;LOAD REMOTE <NODE> PARAMETERS
  1732
  1733	007330'	260 17 0 00 012326'	LOARPR:	CALL PRSKEY		;PARSE A KEYWORD
  1734	007331'	254 00 0 00 006055'		 JRST DOREQE		;FAILED, NOT A KEYWORD
  1735	007332'	201 02 0 00 007337'		MOVEI T2,LOARPT		;GET ADR OF DISPATCH TABLE
  1736	007333'	201 03 0 00 000004 		MOVEI T3,LOARPL		;AND ITS LENGTH
  1737	007334'	260 17 0 00 006067'		CALL FNDDSP		;GET DISPATCH
  1738	007335'	254 00 0 00 006055'		 JRST DOREQE		;UNKNOWN KEYWORD
  1739	007336'	254 00 0 01 000000 		JRST (T1)		;DISPATCH
  1740
  1741	007337'	000033	007343'		LOARPT:	.DNLPH,,LORPHO		;LOAD REMOTE PARAM HOST
  1742	007340'	000050	007354'			.DNLPN,,LORPNM		;LOAD REMOTE PARAM NAME
  1743	007341'	000057	007365'			.DNLP1,,LORPNU		;LOAD REMOTE PARAM NUMBER
  1744	007342'	000056	007371'			.DNNON,,LORPNO		;LOAD REMOTE PARAM NONE
  1745			000004		LOARPL==.-LOARPT
  1746
  1747
  1748					;LOAD REMOTE <NODE> PARAMETERS HOST
  1749
  1750	007343'	260 17 0 00 012341'	LORPHO:	CALL PRSNOD		;PARSE A NODE NAME
  1751						 RETBAD ()^		;FAILED
  1752	007344'	263 17 0 00 000000 	IFB <>,<	RET>
  1753	007345'	202 01 0 17 777746 		MOVEM T1,LOARHO	^-^O32(P)^	;SAVE NODE NAME POINTER
  1754	007346'	260 17 0 00 006077'		CALL FOCNIB		;GET POINTER TO NIB FOR THIS NODE
  1755						 JRST [	MOVE T1,LOARHO	^-^O32(P)^;FAILED, GET NODE NAME POINTER
  1756							CALL RELFRE	;RELEASE FREE SPACE
  1757							 FATAL.ERROR	^
  1758							CALL ERROR
  1759							HALTF
  1760							JRST NETCON]^;IGNORE FAILURE
  1761							RETBAD ()^
  1762					IFB <>,<	RET>
  1763	007347'	254 00 0 00 016774'				RETBAD ()]>^ ]	;RETURN ERROR
  1764	007350'	250 01 0 17 777746 		EXCH T1,LOARHO	^-^O32(P)^	;SAVE ADR OF NIB OF HOST
  1765	007351'	260 17 0 00 014115'		CALL RELFRE		;RELEASE FREE BLOCK
  1766						 FATAL.ERROR		^;RELEASE FAILED, GO ON
  1767							CALL ERROR
  1768							HALTF
  1769	007352'	254 00 0 00 016623'			JRST NETCON]
  1770	007353'	254 00 0 00 007306'		JRST LOARML		;LOOP BACK FOR OTHER KEYWORDS
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 42
NCP	MAC	 5-Oct-81 16:46		NCP -- LOAD Command

  1771					;LOAD REMOTE <NODE> PARAMETERS NAME
  1772
  1773	007354'	260 17 0 00 012341'	LORPNM:	CALL PRSNOD		;PARSE A NODE NAME
  1774						 RETBAD ()^		;FAILED
  1775	007355'	263 17 0 00 000000 	IFB <>,<	RET>
  1776	007356'	202 01 0 17 777743 		MOVEM T1,LOARNM	^-^O35(P)^	;SAVE NODE NAME POINTER
  1777	007357'	260 17 0 00 006077'		CALL FOCNIB		;GET POINTER TO NIB FOR THIS NODE
  1778						 JRST [	MOVE T1,LOARNM	^-^O35(P)^;FAILED, GET NODE NAME POINTER
  1779							CALL RELFRE	;RELEASE FREE SPACE
  1780							 FATAL.ERROR	^
  1781							CALL ERROR
  1782							HALTF
  1783							JRST NETCON]^;IGNORE FAILURE
  1784							RETBAD ()^
  1785					IFB <>,<	RET>
  1786	007360'	254 00 0 00 017000'				RETBAD ()]>^ ]	;RETURN ERROR
  1787	007361'	250 01 0 17 777743 		EXCH T1,LOARNM	^-^O35(P)^	;SAVE ADR OF NIB OF HOST
  1788	007362'	260 17 0 00 014115'		CALL RELFRE		;RELEASE FREE BLOCK
  1789						 FATAL.ERROR		^;RELEASE FAILED, GO ON
  1790							CALL ERROR
  1791							HALTF
  1792	007363'	254 00 0 00 016623'			JRST NETCON]
  1793	007364'	254 00 0 00 007306'		JRST LOARML		;LOOP BACK FOR OTHER KEYWORDS
  1794
  1795
  1796					;LOAD REMOTE <NODE> PARAMETERS NUMBER
  1797
  1798	007365'	260 17 0 00 012400'	LORPNU:	CALL PRSNUM		;PARSE A NUMBER
  1799						 RETBAD ()^		;FAILED
  1800	007366'	263 17 0 00 000000 	IFB <>,<	RET>
  1801	007367'	202 01 0 17 777742 		MOVEM T1,LOARNU	^-^O36(P)^	;SAVE THE NUMBER
  1802	007370'	254 00 0 00 007306'		JRST LOARML		;LOOP BACK TIL CONFIRMATION
  1803
  1804
  1805					;LOAD REMOTE <NODE> PARAMETERS NONE
  1806
  1807	007371'	402 00 0 17 777742 	LORPNO:	SETZM LOARNU	^-^O36(P)^	;ZERO NUMBER
  1808	007372'	402 00 0 17 777743 		SETZM LOARNM	^-^O35(P)^	;ZERO THE NMAE
  1809	007373'	402 00 0 17 777746 		SETZM LOARHO	^-^O32(P)^	;ZERO THE HOST
  1810	007374'	476 00 0 17 777741 		SETOM LOARNO	^-^O37(P)^	;MARK THAT "NONE" WAS SPECIFIED
  1811	007375'	254 00 0 00 007306'		JRST LOARML		;LOOP BACK TIL <CR> SEEN
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 43
NCP	MAC	 5-Oct-81 16:46		NCP -- LOAD Command

  1812					;LOAD REMOTE COMMAND FINISHED
  1813
  1814	007376'	505 01 0 00 441000 	LOARMD:	HRLI T1,(POINT 8,)	;FORM POINTER TO WHERE
  1815	007377'	541 01 0 17 777753 		HRRI T1,LOARMS	^-^O25(P)^	; MESSAGE IS TO BE ASSEMBLED
  1816	007400'	402 00 0 00 000002 		SETZM T2		;ZERO COUNT OF CHARACTERS IN NICE MESSAGE
  1817	007401'	201 04 0 00 000002 		MOVEI T4,.NCRQL		;START BY MARKING THIS AS A "LOAD" 
  1818	007402'	136 04 0 00 000001 		IDPB T4,T1		;   REQUEST MESSAGE
  1819	007403'	271 02 0 00 000001 		ADDI T2,1		;INCREMENT COUNT OF CHARS IN MESSAGE
  1820	007404'	201 04 0 00 000000 		MOVEI T4,0		;START WITH NO OPTIONS
  1821						MOVX T3,.LOPTH		^;ASSUME SERVER SPECIFICATION GIVEN IN COMMAND
  1822	007405'	201 03 0 00 000002 		  MOVEI T3,..MX1>	
  1823	007406'	336 00 0 17 777745 		SKIPN LOARSV	^-^O33(P)^	;ANY SERVER SPECIFIED?
  1824						MOVX T3,.LOTGT		^;NO SERVER, BUT TARGET GIVEN IN COMMAND
  1825	007407'	201 03 0 00 000000 		  MOVEI T3,..MX1>	
  1826						STOR T3,LO%TGT,T4	^;ADD TARGET SPECIFICATION TO OPTION FIELD
  1827	007410'	137 03 0 00 017004'	>>^,T4,POS(LO%TGT)^<^L<<LO%TGT>&<-<LO%TGT>>>>^>^]^
  1828						MOVX T3,.LOTBD		^;TRIGGER BOOTSTRAP, ASSUME DEFAULT BOOT PASSWORD
  1829	007411'	201 03 0 00 000001 		  MOVEI T3,..MX1>	
  1830	007412'	336 00 0 17 777751 		SKIPN LOARBP	^-^O27(P)^	;BOOT PASSWORD GIVEN IN COMMAND ?
  1831	007413'	332 00 0 17 777752 		SKIPE 1+LOARBP	^-^O27(P)^	;...
  1832						MOVX T3,.LOTBP		^;YES, USE PASSWORD FROM COMMAND
  1833	007414'	201 03 0 00 000003 		  MOVEI T3,..MX1>	
  1834						STOR T3,LO%ROM,T4	^;STORE ROM BOOT FIELD IN OPTIONS
  1835	007415'	137 03 0 00 017005'	>>^,T4,POS(LO%ROM)^<^L<<LO%ROM>&<-<LO%ROM>>>>^>^]^
  1836	007416'	332 00 0 17 777747 		SKIPE LOARFS	^-^O31(P)^	;IS THERE A FILE SPEC?
  1837						TXO T4,LO%OPS		^;YES, REMEMBER THAT
  1838	007417'	660 04 0 00 000020 		  TRO T4,..TX1>
  1839						TXO T4,LO%PAR		^;at least host and node name parameters
  1840	007420'	660 04 0 00 000040 		  TRO T4,..TX1>
  1841									;  are always specified in message
  1842	007421'	136 04 0 00 000001 		IDPB T4,T1		;STORE OPTION BITS
  1843	007422'	271 02 0 00 000001 		ADDI T2,1		;INCREMENT COUNT OF CHARS IN MESSAGE
  1844						; ..
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 44
NCP	MAC	 5-Oct-81 16:46		NCP -- LOAD Command

  1845						; ..
  1846
  1847					; ADD TARGET AND SERVER INFORMATION TO MESSAGE
  1848
  1849						LOAD T3,NDNAM,(Q2)	^;GET POINTER TO ASCIZ NAME OF TARGET NODE
  1850	007423'	200 03 0 06 000007 			MOVE T3,7(Q2)^
  1851	007424'	260 17 0 00 000000*		CALL MAKNOD		;GO ADD TARGET NODE NAME TO MESSAGE
  1852	007425'	254 00 0 00 006055'		 JRST DOREQE		;FAILED, PUNT
  1853	007426'	332 00 0 17 777745 		SKIPE LOARSV	^-^O33(P)^	;SERVER NODE SPECIFIED IN COMMAND ?
  1854						JRST [	MOVE T3,LOARSV	^-^O33(P)^;YES, GET POINTER TO ASCIZ SERVER NODE NAME
  1855							CALL MAKNOD	;GO ASSEMBLE NODE NAME IN MESSAGE
  1856							 JRST DOREQE	;FAILED, PUNT
  1857					;**** WHEN LOAD REMOTE VIA IS DONE, ADD LINE TO MESSAGE HERE
  1858	007427'	254 00 0 00 017006'			JRST .+1]	;DONE WITH SERVER, GO DO NEXT FIELD
  1859	007430'	336 00 0 17 777751 		SKIPN LOARBP	^-^O27(P)^	;BOOT PASSWORD GIVEN IN COMMAND ?
  1860	007431'	332 00 0 17 777752 		SKIPE 1+LOARBP	^-^O27(P)^	;...
  1861						JRST [	MOVEM T2,LOARMC	^-^O30(P)^;YES, SAVE CURRENT BYTE COUNT
  1862							MOVX T2,MBPWSZ	^
  1863						  MOVEI T2,..MX1>	
  1864							DMOVE T3,LOARBP	^-^O27(P)^;GET BOOT PASSWORD TO ADD TO MESSAGE
  1865							CALL MAKIMB	;GO ADD IMAGE BINARY FIELD TO MESSAGE
  1866							MOVE T2,LOARMC	^-^O30(P)^;RESTORE MESSAGE SIZE
  1867							ADDI T2,MBPWSZ	;ACCOUNT FOR BOOT PASSWORD
  1868	007432'	254 00 0 00 017012'			JRST .+1]	;GO ON TO NEXT FIELD IN MESSAGE
  1869
  1870	007433'	332 00 0 17 777747 		SKIPE LOARFS	^-^O31(P)^	;FILE TO LOAD GIVEN IN COMMAND ?
  1871						JRST [	MOVEM T2,LOARMC	^-^O30(P)^	;SAVE CURRENT MESSAGE SIZE
  1872							MOVE T3,LOARFS	^-^O31(P)^;YES, GET POINTER TO FILESPEC
  1873							MOVEI T2,^D255	;FILESPEC CAN BE AS LONG AS LARGEST IMAGE FIELD
  1874							CALL MAKIMA	;GO ADD IMAGE ASCII FIELD TO MESSAGE
  1875							 JRST DOREQE	;FAILED, PUNT
  1876							ADD T2,LOARMC	^-^O30(P)^;GET UPDATED MESSAGE SIZE
  1877	007434'	254 00 0 00 017021'			JRST .+1]	;RETURN TO MAINLINE CODE
  1878						; ..
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 45
NCP	MAC	 5-Oct-81 16:46		NCP -- LOAD Command

  1879						; ..
  1880	007435'	332 00 0 17 777741 		SKIPE LOARNO	^-^O37(P)^	;parameters "none" specified ?
  1881	007436'	254 00 0 00 007472'		JRST LOD100		;YES, GO SEND NICE LOAD REQUEST MESSAGE
  1882	007437'	202 02 0 17 777740 		MOVEM T2,LOARCT	^-^O40(P)^	;SAVE CURRENT BYTE COUNT
  1883	007440'	402 00 0 00 000002 		SETZM T2		;INITIALIZE COUNT OF BYTES IN PARAMETERS
  1884	007441'	202 01 0 17 777737 		MOVEM T1,LOARSP	^-^O41(P)^	;SAVE POINTER TO WHERE PARAMETER COUNT GOES
  1885	007442'	133 00 0 00 000001 		IBP T1			;SKIP OVER PARAMETER COUNT BYTE
  1886						LOAD T3,NDPNA,(Q2)	^;GET POINTER TO DEFAULT NAME PARAM
  1887	007443'	200 03 0 06 000014 			MOVE T3,14(Q2)^
  1888	007444'	332 00 0 17 777743 		SKIPE LOARNM	^-^O35(P)^	;WAS NAME PARAMETER GIVEN IN COMMAND ?
  1889	007445'	200 03 0 17 777743 		MOVE T3,LOARNM	^-^O35(P)^	;YES, GET POINTER TO NAME IN LOAD CMD
  1890	007446'	322 03 0 00 007451'		JUMPE T3,LOD010		;IF NO NAME, GO CHECK DEFAULT HOST
  1891	007447'	260 17 0 00 000000*		CALL MAKNAM		;GO ADD NODE NAME PARAMETER TO MESSAGE
  1892	007450'	254 00 0 00 006055'		 JRST DOREQE		;FAILED
  1893	007451'				lod010:	LOAD T3,NDPHT,(Q2)	^;GET POINTER TO DEFAULT HOST
  1894	007451'	200 03 0 06 000016 			MOVE T3,16(Q2)^
  1895	007452'	332 00 0 17 777746 		SKIPE LOARHO	^-^O32(P)^	;HOST SPECIFIED IN LOAD COMMAND ?
  1896	007453'	200 03 0 17 777746 		MOVE T3,LOARHO	^-^O32(P)^	;YES, USE SPECIFIED HOST
  1897	007454'	322 03 0 00 007457'		jumpe t3,lod020		;if no host, go check node number
  1898	007455'	260 17 0 00 000000*		CALL MAKhst		;GO ADD HOST NODE NAME TO MESSAGE
  1899	007456'	254 00 0 00 006055'		 JRST DOREQE		;FAILED
  1900	007457'				lod020:	LOAD T3,NDPNU,(Q2)	^;GET DEFAULT NODE NUMBER PARAMETER
  1901	007457'	200 03 0 06 000015 			MOVE T3,15(Q2)^
  1902	007460'	331 00 0 17 777742 		SKIPL LOARNU	^-^O36(P)^	;NODE NUMBER GIVEN IN COMMAND ?
  1903	007461'	200 03 0 17 777742 		MOVE T3,LOARNU	^-^O36(P)^	;YES, USE VALUE IN LOAD COMMAND
  1904	007462'	331 00 0 00 000003 		SKIPL T3		;IF NO NUMBER DO NOT ADD TO MESSAGE
  1905	007463'	260 17 0 00 000000*		CALL MAKNUM		;GO ASSEMBLE NODE NUMBER PARAMETER
  1906						MOVX T3,.PVEND		^;GET "END OF PARAMETERS" MARK
  1907	007464'	201 03 0 00 000000 		  MOVEI T3,..MX1>	
  1908	007465'	136 03 0 00 000001 		IDPB T3,T1		;ADD END MARK TO MESSAGE
  1909	007466'	271 02 0 00 000001 		ADDI T2,1		;ACCOUNT FOR END MARK IN BYTE COUNT
  1910	007467'	136 02 0 17 777737 		IDPB T2,LOARSP	^-^O41(P)^	;STORE TOTAL BYTE COUNT FOR PARAMETERS
  1911	007470'	271 02 0 00 000001 		ADDI T2,1		;ACCOUNT FOR PARAMETER COUNT BYTE
  1912	007471'	270 02 0 17 777740 		ADD T2,LOARCT	^-^O40(P)^	;compute total byte count for message
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 46
NCP	MAC	 5-Oct-81 16:46		NCP -- LOAD Command

  1913					; here when message completely assembled - send to nice process
  1914
  1915	007472'				LOD100:	SETONE NDLIP,(Q2)	^;SET  LOAD IN PROGRESS
  1916	007472'	205 16 0 00 001000 		  MOVSI .SAC,(..MX1)>>	
  1917	007473'	436 16 0 06 000000 			IORM .SAC,0(Q2)
  1918	007474'	200 03 0 00 000002 		MOVE T3,T2		;COPY COUNT
  1919	007475'	200 01 0 00 000010 		MOVE T1,P1		;GET ADR OF MESSAGE
  1920	007476'	201 02 0 17 777753 		MOVEI T2,LOARMS	^-^O25(P)^	;GET POINTER TO NICE MESSAGE
  1921	007477'	505 02 0 00 441000 		HRLI T2,(POINT 8,0)	;SET UP BYTE POINTER
  1922	007500'	505 01 0 00 007033*		HRLI T1,EXCUTR		;SHOW WHAT EXECUTOR WE WANT
  1923						JE NDLOK,(Q2),LOD200	^;JUMP IF NOT IN CHARGE OF LOADING THIS NODE
  1924	007501'	200 16 0 06 000000 			MOVE .SAC,0(Q2)	
  1925	007502'	607 16 0 00 000200 		  TLNN .SAC,(..TX1)>>
  1926	007503'	254 00 0 00 007506'			JRST LOD200>^^^^
  1927	007504'	504 01 0 00 000003 		HRL T1,T3		;MOVE COUNT INTO PARAM REG
  1928	007505'	561 03 0 00 000000*		HRROI T3,OURNAM		;SHOW WHAT EXECUTOR WE WANT
  1929	007506'	260 17 0 00 011050'	LOD200:	CALL STONIC		;STORE THIS MESSAGE ON NICE QUEUE
  1930						 RETBAD ()^		;FAILED
  1931	007507'	263 17 0 00 000000 	IFB <>,<	RET>
  1932	007510'	200 01 0 00 002000'		MOVE T1,REQADR		;GET ADR OF THIS QUEUE ENTRY
  1933						MOVX T2,QF%NOA		^;MARK THAT THIS MESSAGE NOT TO BE ACK'D YET
  1934	007511'	201 02 0 00 000001 		  MOVEI T2,..MX1>	
  1935						STOR T2,QUEFLG,(T1)^
  1936	007512'	542 02 0 01 000001 			HRRM T2,1(T1)^
  1937						RETSKP	^		;ALL DONE
  1938	007513'	254 00 0 00 007247*	JRST RSKP
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 47
NCP	MAC	 5-Oct-81 16:46		NCP -- DUMP Command

  1939					SUBTTL	NCP -- DUMP Command
  1940
  1941					; DUMP NODE NODE-NAME
  1942
  1943	007514'	260 17 0 00 012326'	DMPREQ:	call prskey		;parse a keyword
  1944	007515'	254 00 0 00 006055'		 jrst doreqe		;failed, not a keyword
  1945	007516'	201 02 0 00 007523'		MOVEI T2,DMPRTB		;GET DISPATCH ADDRESS
  1946	007517'	201 03 0 00 000003 		MOVEI T3,DMPRTL		;GET LENGTH OF DISPATCH TABLE
  1947	007520'	260 17 0 00 006067'		CALL FNDDSP		;GET ADDRESS TO DISPATCH TO
  1948	007521'	254 00 0 00 006055'		 JRST DOREQE		;NOT FOUND
  1949	007522'	254 00 0 01 000000 		JRST (T1)		;DISPATCH
  1950
  1951	007523'	000040	007527'		DMPRTB:	.DNSLI,,DMPLIN		;DUMP LINE
  1952	007524'	000055	007740'			.DNNOD,,DMPREM		;DUMP REMOTE
  1953	007525'	000115	007526'			.DNVIA,,DMPVIA		;DUMP VIA
  1954			000003		DMPRTL==.-DMPRTB
  1955
  1956	007526'	254 00 0 00 006055'	DMPVIA:	JRST DOREQE		;DUMP VIA NOT YET SUPPORTED
  1957
  1958
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 48
NCP	MAC	 5-Oct-81 16:46		NCP -- DUMP Command

  1959
  1960					;DUMP LINE-ID TO FILESPEC
  1961	007527'				DMPLIN:	TRVAR <<BTDBLK,14>,<BTDPAG,2>,BTDFIL>^
  1962	007527'	265 16 0 00 000000*		JSP .A16,.TRSET		
  1963	007530'	000017	000017			 ..NV-1,,..NV-1
  1964	007531'	260 17 0 00 007722'		CALL PRSKDP		;GET KMC11 ADR
  1965						 RETBAD (.ERR23)^	;<Invalid line-id>
  1966					IFNB <.ERR23>,<	JRST [	MOVEI T1,.ERR23
  1967	007532'	254 00 0 00 016707'				RET]>>
  1968	007533'	202 01 0 15 000001 		MOVEM T1,.BTKMC+BTDBLK	^^O1(.FP)^;SAVE ADR OF KMC11
  1969	007534'	260 17 0 00 012326'		CALL PRSKEY		;PARSE KEYWORD
  1970						 RETBAD ()^		;FAILED
  1971	007535'	263 17 0 00 000000 	IFB <>,<	RET>
  1972	007536'	302 01 0 00 000112 		CAIE T1,.DNDR2		;KEYWORD "TO" ?
  1973	007537'	254 00 0 00 006055'		JRST DOREQE		;NO, UNIMPLEMENTED COMMAND
  1974	007540'	260 17 0 00 012362'		CALL PRSOFI		;PARSE OUTPUT FILESPEC
  1975						 RETBAD ()^		;FAILED
  1976	007541'	263 17 0 00 000000 	IFB <>,<	RET>
  1977	007542'	202 01 0 15 000017 		MOVEM T1,BTDFIL	^^O17(.FP)^	;SAVE POINTER TO FILE SPEC FOR LATER
  1978	007543'	260 17 0 00 012335'		CALL PRSCFM		;PARSE CONFIRMATION
  1979						 RETBAD ()^		;FAILED
  1980	007544'	263 17 0 00 000000 	IFB <>,<	RET>
  1981	007545'	200 02 0 15 000017 		MOVE T2,BTDFIL	^^O17(.FP)^	;COPY POINTER TO FILESPEC
  1982						MOVX T1,GJ%FOU!GJ%SHT	^;FILE FOR OUTPUT USE, SHORT CALL
  1983	007546'	205 01 0 00 400001 		  MOVSI T1,(..MX1)>>	
  1984	007547'	104 00 0 00 000020 		GTJFN			;GET A JFN FOR OUTPUT FILE
  1985						 RETBAD (.ERR24)^	;<Could not open file>
  1986					IFNB <.ERR24>,<	JRST [	MOVEI T1,.ERR24
  1987	007550'	254 00 0 00 016744'				RET]>>
  1988	007551'	552 01 0 15 000017 		HRRZM T1,BTDFIL	^^O17(.FP)^	;SAVE JFN
  1989	007552'	200 02 0 00 017030'		MOVE T2,[070000,,OF%WR]	;7-BIT BYTES, WRITE ACCESS ONLY
  1990	007553'	104 00 0 00 000021 		OPENF			;OPEN THE FILE
  1991						 JRST [	MOVEI T4,.ERR24 ;<Could not open file>
  1992	007554'	254 00 0 00 017031'			JRST DMPLN9 ]
  1993	007555'	260 17 0 00 014234'		CALL ASGPAG		;GET A PAGE ADR FOR CRAM DUMP
  1994						 JRST [	MOVE T4,T1	;COPY ERROR CODE
  1995	007556'	254 00 0 00 017033'			JRST DMPLN9 ]	;CLEAN UP AND LEAVE
  1996	007557'	202 02 0 15 000015 		MOVEM T2,BTDPAG	^^O15(.FP)^	;SAVE ADR OF FIRST WORD IN PAGE
  1997	007560'	260 17 0 00 014234'		CALL ASGPAG		;GET A PAGE ADR FOR DRAM & REG DUMP
  1998						 JRST [	MOVE T4,T1	;COPY ERROR CODE
  1999	007561'	254 00 0 00 017035'			JRST DMPLN8 ]	;CLEAN UP AND LEAVE
  2000	007562'	202 02 0 15 000016 		MOVEM T2,1+BTDPAG	^^O15(.FP)^;SAVE ADR OF FIRST WORD IN PAGE
  2001	007563'	201 01 0 00 000020 		MOVEI T1,20		;NUMBER OF REGISTERS TO GET
  2002	007564'	202 01 0 15 000007 		MOVEM T1,.BTKRC+BTDBLK^^O1(.FP)^
  2003	007565'	270 02 0 00 017037'		ADD T2,[POINT 16,400]	;GET 16 BIT BYTES
  2004	007566'	202 02 0 15 000010 		MOVEM T2,.BTKRP+BTDBLK	^^O1(.FP)^;WHERE TO PUT REGISTERS
  2005	007567'	201 01 0 00 002000 		MOVEI T1,2000		;NUMBER OF DRAM BYTES TO GET
  2006	007570'	202 01 0 15 000005 		MOVEM T1,.BTKDC+BTDBLK^^O1(.FP)^
  2007	007571'	200 02 0 15 000016 		MOVE T2,1+BTDPAG	^^O15(.FP)^;GET ADR OF PAGE AGAIN
  2008	007572'	505 02 0 00 441000 		HRLI T2,(POINT 8,)	;8 BIT BYTES FOR DRAM
  2009	007573'	202 02 0 15 000006 		MOVEM T2,.BTKDP+BTDBLK^^O1(.FP)^
  2010	007574'	201 01 0 00 002000 		MOVEI T1,2000		;NUMBER OF CRAM LOCATIONS TO GET
  2011	007575'	202 01 0 15 000003 		MOVEM T1,.BTKCC+BTDBLK	^^O1(.FP)^;NUMBER OF CRAM WORDS TO GET
  2012	007576'	200 02 0 15 000015 		MOVE T2,BTDPAG	^^O15(.FP)^	;GET ADR OF PAGE
  2013	007577'	505 02 0 00 442000 		HRLI T2,(POINT 16,)	;16 BIT BYTES FOR CRAM
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 48-1
NCP	MAC	 5-Oct-81 16:46		NCP -- DUMP Command

  2014	007600'	202 02 0 15 000004 		MOVEM T2,.BTKCP+BTDBLK^^O1(.FP)^
  2015	007601'	201 01 0 00 000012 		MOVEI T1,.BTKMD		;WANT TO DUMP THE KMC11
  2016	007602'	201 02 0 15 000001 		MOVEI T2,BTDBLK	^^O1(.FP)^	;POINT TO ARGUMENT BLOCK
  2017	007603'	104 00 0 00 000562 		BOOT
  2018						 ERJMP [MOVEI T4,.ERR19	;<JSYS error>
  2019	007604'	320 16 0 00 017040'			JRST DMPLN8 ]	;NOW EXIT
  2020						;..
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 49
NCP	MAC	 5-Oct-81 16:46		NCP -- DUMP Command

  2021						;..
  2022	007605'	200 01 0 15 000017 		MOVE T1,BTDFIL^^O17(.FP)^
  2023	007606'	561 02 0 00 017042'		HRROI T2,[ASCIZ \	Register data\]
  2024	007607'	201 03 0 00 000020 		MOVEI T3,20		;NUMBER OF REGISTERS WE ASKED FOR
  2025	007610'	274 03 0 15 000007 		SUB T3,.BTKRC+BTDBLK	^^O1(.FP)^;MAKES NUMBER OF REGISTERS WE GOT
  2026	007611'	200 04 0 15 000016 		MOVE T4,1+BTDPAG	^^O15(.FP)^;POINT TO REGISTER DATA
  2027	007612'	270 04 0 00 017037'		ADD T4,[POINT ^D16,400]	;16 BIT BYTES
  2028	007613'	260 17 0 00 007645'		CALL DMPLDT		;DUMP THE REGISTERS
  2029	007614'	561 02 0 00 017045'		HRROI T2,[ASCIZ \	DRAM data\]
  2030	007615'	201 03 0 00 002000 		MOVEI T3,2000		;NUMBER OF DRAM WE ASKED FOR
  2031	007616'	274 03 0 15 000005 		SUB T3,.BTKDC+BTDBLK	^^O1(.FP)^;MAKES NUMBER OF DRAM WE GOT
  2032	007617'	200 04 0 15 000016 		MOVE T4,1+BTDPAG	^^O15(.FP)^;POINT TO DRAM DATA
  2033	007620'	505 04 0 00 441000 		HRLI T4,(POINT 8,)	;8 BIT BYTES
  2034	007621'	260 17 0 00 007645'		CALL DMPLDT		;DUMP THE DRAM
  2035	007622'	561 02 0 00 017050'		HRROI T2,[ASCIZ \	CRAM data\]
  2036	007623'	201 03 0 00 002000 		MOVEI T3,2000		;NUMBER OF CRAMS WE ASKED FOR
  2037	007624'	274 03 0 15 000003 		SUB T3,.BTKCC+BTDBLK	^^O1(.FP)^;MAKES NUMBER OF CRAMS WE GOT
  2038	007625'	200 04 0 15 000015 		MOVE T4,BTDPAG	^^O15(.FP)^	;POINT TO CRAM DATA
  2039	007626'	505 04 0 00 442000 		HRLI T4,(POINT 16,)	;16 BIT BYTES
  2040	007627'	260 17 0 00 007645'		CALL DMPLDT		;DUMP THE CRAMS
  2041	007630'	400 04 0 00 000000 		SETZ T4,		;DUMP WON
  2042	007631'	200 01 0 15 000016 	DMPLN7:	MOVE T1,1+BTDPAG	^^O15(.FP)^;ADR OF FIRST WORD IN PAGE
  2043	007632'	260 17 0 00 014267'		CALL RELPGA		;RELEASE THE PAGE
  2044	007633'	200 04 0 00 000001 		 MOVE T4,T1		;COPY THE ERROR CODE
  2045	007634'	200 01 0 15 000015 	DMPLN8:	MOVE T1,BTDPAG	^^O15(.FP)^	;ADR OF FIRST WORD IN PAGE
  2046	007635'	260 17 0 00 014267'		CALL RELPGA		;RELEASE THE PAGE
  2047	007636'	200 04 0 00 000001 		 MOVE T4,T1		;COPY THE ERROR CODE
  2048	007637'	550 01 0 15 000017 	DMPLN9:	HRRZ T1,BTDFIL	^^O17(.FP)^	;GET DUMP JFN
  2049	007640'	104 00 0 00 000022 		CLOSF			;CLOSE FILE
  2050						 RETBAD (.ERR24)^	;<Could not open file>
  2051					IFNB <.ERR24>,<	JRST [	MOVEI T1,.ERR24
  2052	007641'	254 00 0 00 016744'				RET]>>
  2053	007642'	332 01 0 00 000004 		SKIPE T1,T4		;WAS THERE AN ERROR ?
  2054	007643'	263 17 0 00 000000 		RET
  2055						RETSKP	^		;HAVE MADE DUMP
  2056	007644'	254 00 0 00 007513*	JRST RSKP
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 50
NCP	MAC	 5-Oct-81 16:46		NCP -- DUMP Command

  2057
  2058	007645'	202 03 0 15 000007 	DMPLDT:	MOVEM T3,.BTKRC+BTDBLK	^^O1(.FP)^;SAVE COUNT OF DATA
  2059	007646'	202 04 0 15 000010 		MOVEM T4,.BTKRP+BTDBLK	^^O1(.FP)^;SAVE POINTER TO DATA
  2060	007647'	202 02 0 15 000002 		MOVEM T2,.BTKERR+BTDBLK	^^O1(.FP)^;SAVE TYPE OF DATA
  2061	007650'	561 02 0 00 017053'		HRROI T2,[ASCIZ \Dump of KDP_\]
  2062	007651'	400 03 0 00 000000 		SETZ T3,
  2063	007652'	104 00 0 00 000053 		SOUT
  2064	007653'	200 02 0 15 000001 		MOVE T2,.BTKMC+BTDBLK	^^O1(.FP)^;GET KMC11 ADR
  2065	007654'	274 02 0 00 017056'		SUB T2,[3,,760540]	;MAKE RELATIVE KMC ADR
  2066	007655'	242 02 0 00 777775 		LSH T2,-3		;MAKE UNIT NUMBER
  2067	007656'	201 03 0 00 000010 		MOVEI T3,^D8		;OCTAL
  2068	007657'	104 00 0 00 000224 		NOUT
  2069	007660'	320 16 0 00 007661'		 ERJMP .+1
  2070	007661'	561 02 0 00 017057'		HRROI T2,[ASCIZ \ made on \]
  2071	007662'	400 03 0 00 000000 		SETZ T3,
  2072	007663'	104 00 0 00 000053 		SOUT
  2073	007664'	474 02 0 00 000000 		SETO T2,		;CURRENT DATE AND TIME
  2074	007665'	400 03 0 00 000000 		SETZ T3,		;FORMAT
  2075	007666'	104 00 0 00 000220 		ODTIM
  2076	007667'	200 02 0 15 000002 		MOVE T2,.BTKERR+BTDBLK	^^O1(.FP)^;GET TYPE OF DATA
  2077	007670'	400 03 0 00 000000 		SETZ T3,
  2078	007671'	104 00 0 00 000053 		SOUT
  2079	007672'	400 04 0 00 000000 		SETZ T4,		;FIRST ADR TO DUMP
  2080	007673'	602 04 0 00 000007 	DMPLD2:	TRNE T4,7		;TIME FOR A CR/LF ?
  2081	007674'	254 00 0 00 007706'		JRST DMPLD4		;NO
  2082	007675'	260 17 0 00 007716'		CALL DMPCRL		;PUT OUT A CR/LF
  2083	007676'	606 04 0 00 000037 		TRNN T4,37		;TIME FOR AN EXTRA CR/LF
  2084	007677'	260 17 0 00 007716'		CALL DMPCRL		;PUT OUT A CR/LF
  2085	007700'	200 02 0 00 000004 		MOVE T2,T4		;CURRENT LOCATION NUMBER
  2086	007701'	200 03 0 00 017061'		MOVE T3,[NO%LFL+6B17+10] ;OCTAL
  2087	007702'	104 00 0 00 000224 		NOUT			;PUT CURRENT LOCATION NUMBER
  2088	007703'	320 16 0 00 007704'		ERJMP .+1
  2089	007704'	201 02 0 00 000057 		MOVEI T2,"/"
  2090	007705'	104 00 0 00 000051 		BOUT
  2091	007706'	134 02 0 15 000010 	DMPLD4:	ILDB T2,.BTKRP+BTDBLK	^^O1(.FP)^;GET NEXT PIECE OF DATA
  2092	007707'	200 03 0 00 017062'		MOVE T3,[NO%LFL+10B17+^D8] ;LEADING FILLER
  2093	007710'	104 00 0 00 000224 		NOUT			;PRINT DATA
  2094	007711'	255 00 0 00 000000 		JFCL
  2095	007712'	373 00 0 15 000007 		SOSLE .BTKRC+BTDBLK	^^O1(.FP)^;ANY LEFT ?
  2096	007713'	344 04 0 00 007673'		AOJA T4,DMPLD2		;ON TO NEXT LOCATION
  2097	007714'	260 17 0 00 007715'		CALL .+1		;ADD CR/LF
  2098	007715'	260 17 0 00 007716'		CALL DMPCRL		;END WITH A CR/LF
  2099						;RET			;ALL DONE
  2100
  2101					;HERE TO PUT OUT A CR/LF
  2102	007716'	561 02 0 00 016655'	DMPCRL:	HRROI T2,[BYTE (7)15,12,0] ;CR/LF
  2103	007717'	400 03 0 00 000000 		SETZ T3,
  2104	007720'	104 00 0 00 000053 		SOUT
  2105	007721'	263 17 0 00 000000 		RET
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 51
NCP	MAC	 5-Oct-81 16:46		NCP -- DUMP Command

  2106
  2107					;HERE TO GET KDP_#
  2108	007722'	260 17 0 00 012326'	PRSKDP:	CALL PRSKEY		;PARSE A KEYWORD
  2109	007723'	254 00 0 00 006055'		 JRST DOREQE		;FAILED, NOT A KEYWORD
  2110	007724'	302 01 0 00 000036 		CAIE T1,.DNKDP		;AND IS IT KDP ?
  2111	007725'	263 17 0 00 000000 		 RET
  2112						MOVX T1,"_"		^;GET EXPECTED TOKEN
  2113	007726'	201 01 0 00 000137 		  MOVEI T1,..MX1>	
  2114	007727'	260 17 0 00 012415'		CALL PRSTOK		;PARSE THE TOKEN
  2115						 RETBAD ()^		;FAILED
  2116	007730'	263 17 0 00 000000 	IFB <>,<	RET>
  2117	007731'	260 17 0 00 012400'		CALL PRSNUM		;PARSE THE NUMBER
  2118						 RETBAD ()^		;FAILED
  2119	007732'	263 17 0 00 000000 	IFB <>,<	RET>
  2120	007733'	301 01 0 00 000003 		CAIL T1,3		;POSSIBLE ?
  2121	007734'	263 17 0 00 000000 		 RET
  2122	007735'	221 01 0 00 000010 		IMULI T1,10		;CONVERT UNIT NUMBER TO OFFSE
  2123	007736'	270 01 0 00 017056'		ADD T1,[3,,760540]	;MAKES ADR OF KMC11
  2124	007737'	254 00 0 00 007644*		RETSKP^JRST RSKP^
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 52
NCP	MAC	 5-Oct-81 16:46		NCP -- DUMP Command

  2125
  2126					; DUMP NODE NODE-NAME
  2127
  2128	007740'				DMPREM:	STKVAR <DMPRFS,<DMPRMS,100>,DMPRMC>^
  2129	007740'	265 16 0 00 007266*		JSP .A16,.STKST
  2130	007741'	000102	000102			 ..STKN,,..STKN
  2131	007742'	402 00 0 17 777776 		SETZM DMPRFS	^-^O2(P)^	;ASSUME NO FILESPEC GIVEN
  2132	007743'	260 17 0 00 012341'		CALL PRSNOD		;PARSE A NODE NAME
  2133						 RETBAD ()^		;FAILED
  2134	007744'	263 17 0 00 000000 	IFB <>,<	RET>
  2135	007745'	202 01 0 00 000006 		MOVEM T1,Q2		;SAVE ADDRESS OF BLOCK
  2136	007746'	260 17 0 00 006077'		CALL FOCNIB		;GET A NIB ADDRESS FOR THIS NODE
  2137						 JRST [	MOVE T1,Q2	;GET BLOCK ADDRESS
  2138							CALL RELFRE	;RELEASE THE BLOCK
  2139							 FATAL.ERROR^
  2140							CALL ERROR
  2141							HALTF
  2142							JRST NETCON]^
  2143							RETBAD ()^
  2144					IFB <>,<	RET>
  2145	007747'	254 00 0 00 017063'				RETBAD ()]>^]	;NOT FOUND
  2146	007750'	250 06 0 00 000001 		EXCH Q2,T1		;SAVE THE ADDRESS OF THE NODE NIB
  2147	007751'	260 17 0 00 014115'		CALL RELFRE		;RELEASE FREE BLOCK
  2148						 FATAL.ERROR		^;FAILED
  2149							CALL ERROR
  2150							HALTF
  2151	007752'	254 00 0 00 016623'			JRST NETCON]
  2152	007753'	260 17 0 00 012335'	DMPRML:	CALL PRSCFM		;END OF COMMAND ?
  2153	007754'	334 00 0 00 000000 		SKIPA			;NO, PARSE SOME MORE
  2154	007755'	254 00 0 00 007772'		JRST DMPRMD		;YES, DONE WITH THE PARSING
  2155	007756'	260 17 0 00 012326'		CALL PRSKEY		;PARSE A KEYWORD
  2156						 RETBAD ()^		;FAILED
  2157	007757'	263 17 0 00 000000 	IFB <>,<	RET>
  2158	007760'	201 02 0 00 007765'		MOVEI T2,DMRMTB		;GET DISPATCH TABLE ADDRESS
  2159	007761'	201 03 0 00 000001 		MOVEI T3,DMRMTL		;AND ITS LENGTH
  2160	007762'	260 17 0 00 006067'		CALL FNDDSP		;GET DISPATCH ADDRESS
  2161						 RETBAD ()^		;FAILED
  2162	007763'	263 17 0 00 000000 	IFB <>,<	RET>
  2163	007764'	254 00 0 01 000000 		JRST 0(T1)		;DISPATCH
  2164
  2165	007765'	000112	007766'		DMRMTB:	.DNDR2,,DMPRFR		;DUMP REMOTE FROM
  2166			000001		DMRMTL==.-DMRMTB
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 53
NCP	MAC	 5-Oct-81 16:46		NCP -- DUMP Command

  2167					;DUMP REMOTE <NODE> TO FILE-SPEC
  2168
  2169	007766'	260 17 0 00 012362'	DMPRFR:	CALL PRSOFI		;PARSE OUTPUT FILE
  2170						 RETBAD ()^		;FAILED
  2171	007767'	263 17 0 00 000000 	IFB <>,<	RET>
  2172	007770'	202 01 0 17 777776 		MOVEM T1,DMPRFS	^-^O2(P)^	;SAVE POINTER TO FILE SPEC FOR LATER
  2173	007771'	254 00 0 00 007753'		JRST DMPRML		;LOOP BACK TIL <CR>
  2174
  2175
  2176					; HERE ON END OF DUMP COMMAND
  2177
  2178	007772'	505 01 0 00 441000 	DMPRMD:	HRLI T1,(POINT 8,)	;FORM POINTER TO WHERE
  2179	007773'	541 01 0 17 777676 		HRRI T1,DMPRMS	^-^O102(P)^	; MESSAGE IS TO BE ASSEMBLED
  2180	007774'	402 00 0 00 000002 		SETZM T2		;ZERO COUNT OF CHARACTERS IN NICE MESSAGE
  2181	007775'	201 04 0 00 000003 		MOVEI T4,.NCRQD		;START BY MARKING THIS AS A "DUMP" 
  2182	007776'	136 04 0 00 000001 		IDPB T4,T1		;   REQUEST MESSAGE
  2183	007777'	271 02 0 00 000001 		ADDI T2,1		;INCREMENT COUNT OF CHARS IN MESSAGE
  2184	010000'	402 00 0 00 000004 		SETZM T4		;ASSUME NO OPTIONS
  2185	010001'	332 00 0 17 777776 		SKIPE DMPRFS	^-^O2(P)^	;WAS A FILESPEC SPECIFIED ?
  2186						TXO T4,DO%FIL		^;YES, SET OPTION BIT
  2187	010002'	660 04 0 00 000004 		  TRO T4,..TX1>
  2188	010003'	136 04 0 00 000001 		IDPB T4,T1		;STORE OPTION BITS
  2189	010004'	271 02 0 00 000001 		ADDI T2,1		;INCREMENT COUNT OF CHARS IN MESSAGE
  2190
  2191					; ADD TARGET AND FILESPEC INFORMATION TO MESSAGE
  2192
  2193						LOAD T3,NDNAM,(Q2)	^;GET POINTER TO ASCIZ NAME OF TARGET NODE
  2194	010005'	200 03 0 06 000007 			MOVE T3,7(Q2)^
  2195	010006'	260 17 0 00 007424*		CALL MAKNOD		;GO ADD TARGET NODE NAME TO MESSAGE
  2196	010007'	254 00 0 00 006055'		 JRST DOREQE		;FAILED, PUNT
  2197	010010'	332 00 0 17 777776 		SKIPE DMPRFS	^-^O2(P)^	;FILE TO LOAD GIVEN IN COMMAND ?
  2198						JRST [	MOVEM T2,DMPRMC	^-^O103(P)^	;SAVE CURRENT MESSAGE SIZE
  2199							MOVE T3,DMPRFS	^-^O2(P)^;YES, GET POINTER TO FILESPEC
  2200							MOVEI T2,^D255	;FILESPEC CAN BE AS LONG AS LARGEST IMAGE FIELD
  2201							CALL MAKIMA	;GO ADD IMAGE ASCII FIELD TO MESSAGE
  2202							 JRST DOREQE	;FAILED, PUNT
  2203							ADD T2,DMPRMC	^-^O103(P)^;GET UPDATED MESSAGE SIZE
  2204	010011'	254 00 0 00 017067'			JRST .+1]	;RETURN TO MAINLINE CODE
  2205						SETONE NDDIP,(Q2)	^;SET DUMP IN PROGRESS
  2206	010012'	205 16 0 00 002000 		  MOVSI .SAC,(..MX1)>>	
  2207	010013'	436 16 0 06 000000 			IORM .SAC,0(Q2)
  2208	010014'	200 03 0 00 000002 		MOVE T3,T2		;COPY COUNT
  2209	010015'	200 01 0 00 000010 		MOVE T1,P1		;GET ADR OF MESSAGE
  2210	010016'	201 02 0 17 777676 		MOVEI T2,DMPRMS	^-^O102(P)^	;GET POINTER TO NICE MESSAGE
  2211	010017'	505 02 0 00 441000 		HRLI T2,(POINT 8,0)	;SET UP BYTE POINTER
  2212	010020'	505 01 0 00 007500*		HRLI T1,EXCUTR		;SHOW WHAT EXECUTOR WE WANT
  2213						JE NDDOK,(Q2),DMP200	^;JUMP IF NOT IN CHARGE OF DUMPING THIS NODE
  2214	010021'	200 16 0 06 000000 			MOVE .SAC,0(Q2)	
  2215	010022'	607 16 0 00 000400 		  TLNN .SAC,(..TX1)>>
  2216	010023'	254 00 0 00 010026'			JRST DMP200>^^^^
  2217	010024'	504 01 0 00 000003 		HRL T1,T3		;MOVE COUNT INTO PARAM REG
  2218	010025'	561 03 0 00 007505*		HRROI T3,OURNAM		;SHOW WHAT EXECUTOR WE WANT
  2219	010026'	260 17 0 00 011050'	DMP200:	CALL STONIC		;STORE THIS MESSAGE ON NICE QUEUE
  2220						 RETBAD ()^		;FAILED
  2221	010027'	263 17 0 00 000000 	IFB <>,<	RET>
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 53-1
NCP	MAC	 5-Oct-81 16:46		NCP -- DUMP Command

  2222	010030'	200 01 0 00 002000'		MOVE T1,REQADR		;GET ADR OF THIS QUEUE ENTRY
  2223						MOVX T2,QF%NOA		^;MARK THAT THIS MESSAGE NOT TO BE ACK'D YET
  2224	010031'	201 02 0 00 000001 		  MOVEI T2,..MX1>	
  2225						STOR T2,QUEFLG,(T1)^
  2226	010032'	542 02 0 01 000001 			HRRM T2,1(T1)^
  2227						RETSKP	^		;ALL DONE
  2228	010033'	254 00 0 00 007737*	JRST RSKP
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 54
NCP	MAC	 5-Oct-81 16:46		NCP -- DUMP Command

  2229
  2230					SUBTTL	NCP -- SHOW Command
  2231
  2232	010034'	260 17 0 00 012326'	SHOREQ:	CALL PRSKEY		;PARSE A KEYWORD
  2233	010035'	254 00 0 00 006055'		 JRST DOREQE		;FAILED, RETURN ERROR
  2234	010036'	201 02 0 00 010043'		MOVEI T2,SHORTB		;GET DISPATCH TABLE ADR
  2235	010037'	201 03 0 00 000004 		MOVEI T3,SHORTL		;AND LENGTH
  2236	010040'	260 17 0 00 006067'		CALL FNDDSP		;GET DISPATCH ADR
  2237	010041'	254 00 0 00 006055'		 JRST DOREQE		;FAILED
  2238	010042'	254 00 0 01 000000 		JRST 0(T1)		;DISPATCH
  2239
  2240	010043'	000005	010067'		SHORTB:	.DNSCT,,SHOCNT		;SHOW COUNTS
  2241	010044'	000026	010047'			.DNSEX,,SHOEXE		;SHOW EXECUTOR
  2242	010045'	000070	010377'			.DNQUE,,SHOQUE		;SHOW QUEUE
  2243	010046'	000104	010131'			.DNSTS,,SHOSTA		;SHOW STATUS
  2244			000004		SHORTL==.-SHORTB
  2245
  2246
  2247
  2248
  2249					; SHOW EXECUTOR
  2250
  2251	010047'	260 17 0 00 012335'	SHOEXE:	CALL PRSCFM		;PARSE CONFIRMATION
  2252	010050'	254 00 0 00 006055'		 JRST DOREQE		;NO SO FAILED
  2253						STKVAR <<EXESTR,20>>^
  2254	010051'	265 16 0 00 007740*		JSP .A16,.STKST
  2255	010052'	000020	000020			 ..STKN,,..STKN
  2256	010053'	561 01 0 17 777757 		HRROI T1,EXESTR	^-^O21(P)^	;GET POINTER TO WHERE REPLY WILL GO
  2257	010054'	561 02 0 00 017076'		HRROI T2,[ASCIZ/	Current EXECUTOR is node /]
  2258	010055'	402 00 0 00 000003 		SETZM T3		;TERMINATE ON NULL
  2259	010056'	104 00 0 00 000053 		SOUT			;ASSEMBLE INITIAL PART OF REPLY
  2260	010057'	200 02 0 00 010020*		MOVE T2,EXCUTR		;GET POINTER TO CURRENT EXECUTOR
  2261	010060'	104 00 0 00 000053 		SOUT			;ADD NODE NAME
  2262	010061'	402 00 0 00 000001 		SETZM T1		;NO TEXT, JUST HEADER
  2263	010062'	541 02 0 17 777757 		HRRI T2,EXESTR	^-^O21(P)^	;GET ADDRESS OF REPLY MESSAGE
  2264	010063'	505 02 0 00 440700 		HRLI T2,(POINT 7,)	;FORM POINTER TO REPLY
  2265	010064'	260 17 0 00 014575'		CALL OPRMES		;SEND REPLY TO OPERATOR
  2266	010065'	254 00 0 00 006055'		 JRST DOREQE		;FAILED, ISSUE MESSAGE
  2267						RETSKP	^		;DONE, RETURN
  2268	010066'	254 00 0 00 010033*	JRST RSKP
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 55
NCP	MAC	 5-Oct-81 16:46		NCP -- SHOW Command

  2269					;SHOW COUNTS LINE LINE-ID
  2270	010067'	260 17 0 00 012326'	SHOCNT:	CALL PRSKEY		;PARSE A KEYWORD
  2271	010070'	254 00 0 00 006055'		 JRST DOREQE		;FAILED, NOT A KEYWORD
  2272	010071'	302 01 0 00 000040 		CAIE t1,.DNSLI		;WHICH SHOULD BE LINE
  2273	010072'	254 00 0 00 006055'		JRST DOREQE		;INVALID REQUEST
  2274	010073'	260 17 0 00 012436'		CALL PRSLID		;PARSE THE LINE-ID
  2275						 RETBAD (.ERR23)^	;<Invalid line-id>
  2276					IFNB <.ERR23>,<	JRST [	MOVEI T1,.ERR23
  2277	010074'	254 00 0 00 016707'				RET]>>
  2278						STKVAR <<CNTMSG,100>>^
  2279	010075'	265 16 0 00 010051*		JSP .A16,.STKST
  2280	010076'	000100	000100			 ..STKN,,..STKN
  2281	010077'	124 01 0 00 000003 		DMOVEM T1,T3		;SAVE LINE-ID
  2282	010100'	260 17 0 00 012335'		CALL PRSCFM		;PARSE CONFIRMATION
  2283						 RETBAD ()^		;FAILED
  2284	010101'	263 17 0 00 000000 	IFB <>,<	RET>
  2285
  2286					; COMMAND PARSED - SAVE REQUEST TYPE IN QUEUE ENTRY AND SEND NICE MESSAGE
  2287
  2288	010102'	200 01 0 00 002000'		MOVE T1,REQADR		;GET ADR OF THIS QUEUE ENTRY
  2289	010103'	201 01 0 17 777677 		MOVEI T1,CNTMSG	^-^O101(P)^	;ADR OF MESSAGE
  2290	010104'	505 01 0 00 441000 		HRLI T1,441000		;MAKE POINTER TO MESSAGE
  2291	010105'	201 02 0 00 000010 		MOVEI T2,.NCRED		;READ INFORMATION
  2292	010106'	136 02 0 00 000001 		IDPB T2,T1
  2293	010107'	201 02 0 00 000004 		MOVEI T2,.RDLCT		;GET LINE COUNTERS
  2294	010110'	136 02 0 00 000001 		IDPB T2,T1
  2295	010111'	201 02 0 00 000002 		MOVEI T2,2		;NUMBER OF BYTES IN MESSAGE SO FAR
  2296	010112'	260 17 0 00 000000*		CALL MAKLIN		;PUT LINE-ID INTO MESSAGE
  2297	010113'	200 01 0 00 000010 		MOVE T1,P1		;GET ADR OF MESSAGE
  2298	010114'	200 03 0 00 000002 		MOVE T3,T2		;COPY COUNT OF BYTES IN MESSAGE
  2299	010115'	201 02 0 17 777677 		MOVEI T2,CNTMSG	^-^O101(P)^	;ADR OF MESSAGE
  2300	010116'	505 02 0 00 441000 		HRLI T2,441000		;MAKE POINTER TO MESSAGE
  2301	010117'	505 04 0 00 000010 		HRLI T4,.NCRED		;GET NICE PROTOCOL "READ INFORMATION" FUNCTION
  2302	010120'	541 04 0 00 000004 		HRRI T4,.RDLCT		;GET OPTION FOR "READ LINE COUNTERS"
  2303	010121'	504 01 0 00 000003 		HRL T1,T3		;MOVE COUNT INTO PARAM REG
  2304	010122'	200 03 0 00 010057*		MOVE T3,EXCUTR		;SHOW WHAT EXECUTOR WE WANT
  2305	010123'	260 17 0 00 011050'		CALL STONIC		;STORE THIS MESSAGE ON NICE QUEUE
  2306						 RETBAD ()^		;FAILED
  2307	010124'	263 17 0 00 000000 	IFB <>,<	RET>
  2308	010125'	200 01 0 00 002000'		MOVE T1,REQADR		;GET ADR OF THIS QUEUE ENTRY
  2309						MOVX T2,QF%NOA		^;MARK THAT THIS MESSAGE NOT TO BE ACK'D YET
  2310	010126'	201 02 0 00 000001 		  MOVEI T2,..MX1>	
  2311						STOR T2,QUEFLG,(T1)^
  2312	010127'	542 02 0 01 000001 			HRRM T2,1(T1)^
  2313						RETSKP	^		;ALL DONE
  2314	010130'	254 00 0 00 010066*	JRST RSKP
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 56
NCP	MAC	 5-Oct-81 16:46		NCP -- SHOW Command

  2315					; SHOW STATE LINE LINE-ID
  2316
  2317	010131'	260 17 0 00 012326'	SHOSTA:	CALL PRSKEY		;PARSE A KEYWORD
  2318	010132'	254 00 0 00 006055'		 JRST DOREQE		;FAILED, NOT A KEYWORD
  2319	010133'	201 02 0 00 010140'		MOVEI T2,STATAB		;GET DISPATCH TABLE ADR
  2320	010134'	201 03 0 00 000004 		MOVEI T3,STALEN		;AND LENGTH
  2321	010135'	260 17 0 00 006067'		CALL FNDDSP		;GET DISPATCH ADR
  2322	010136'	254 00 0 00 006055'		 JRST DOREQE		;FAILED
  2323	010137'	254 00 0 01 000000 		JRST 0(T1)		;DISPATCH
  2324
  2325	010140'	000044	010144'		STATAB:	.DNSLO,,SHSLCL		;SHOW STATE LOCAL
  2326	010141'	000040	010307'			.DNSLI,,SHSLIN		;SHOW STATE LINE LINE-ID
  2327	010142'	000131	010174'			.DNKNO,,SHSKNO		;SHOW STATE KNOWN LINES/NODES
  2328	010143'	000055	010237'			.DNNOD,,SHSNOD		;SHOW STATE NODE NODE-NAME
  2329
  2330			000004		STALEN==.-STATAB
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 57
NCP	MAC	 5-Oct-81 16:46		NCP -- SHOW Command

  2331					; SHOW STATE LOCAL
  2332
  2333	010144'				SHSLCL:	STKVAR <<SLSMSG,50>>^
  2334	010144'	265 16 0 00 010075*		JSP .A16,.STKST
  2335	010145'	000050	000050			 ..STKN,,..STKN
  2336	010146'	260 17 0 00 012335'		CALL PRSCFM		;PARSE CONFIRMATION
  2337						 RETBAD ()^		;FAILED
  2338	010147'	263 17 0 00 000000 	IFB <>,<	RET>
  2339	010150'	541 01 0 17 777727 		HRRI T1,SLSMSG	^-^O51(P)^	;GET ADDRESS OF NICE MESSAGE
  2340	010151'	505 01 0 00 441000 		HRLI T1,(POINT 8,)	;FORM POINTER TO NICE MESSAGE
  2341						MOVX T4,.NCRED		^;GET NICE "READ INFORMATION" FUNCTION
  2342	010152'	201 04 0 00 000010 		  MOVEI T4,..MX1>	
  2343	010153'	136 04 0 00 000001 		IDPB T4,T1		;PUT FUNCTION CODE IN MESSAGE
  2344						MOVX T4,.RDLNS		^;GET "LOCAL NODE STATUS" OPTION CODE
  2345	010154'	201 04 0 00 000001 		  MOVEI T4,..MX1>	
  2346	010155'	136 04 0 00 000001 		IDPB T4,T1		;ADD OPTION TO MESSAGE
  2347	010156'	505 04 0 00 000010 		HRLI T4,.NCRED		;GET READ INFORMATION FUNCTION CODE
  2348	010157'	541 04 0 00 000001 		HRRI T4,.RDLNS		;GET "LOCAL NODE STATUS" OPTION
  2349						MOVX T3,2		^;GET NUMBER OF BYTES IN NICE MESSAGE
  2350	010160'	201 03 0 00 000002 		  MOVEI T3,..MX1>	
  2351	010161'	541 02 0 17 777727 		HRRI T2,SLSMSG	^-^O51(P)^	;GET ADDRESS OF NICE MESSAGE
  2352	010162'	505 02 0 00 441000 		HRLI T2,(POINT 8,)	;FORM POINTER TO NICE MESSAGE
  2353	010163'	200 01 0 00 000010 		MOVE T1,P1		;GET ADR OF ORION MESSAGE
  2354	010164'	504 01 0 00 000003 		HRL T1,T3		;MOVE COUNT INTO PARAM REG
  2355	010165'	200 03 0 00 010122*		MOVE T3,EXCUTR		;SHOW WHAT EXECUTOR WE WANT
  2356	010166'	260 17 0 00 011050'		CALL STONIC		;PUT MSG ON NICE QUEUE
  2357						 RETBAD ()^		;FAILED
  2358	010167'	263 17 0 00 000000 	IFB <>,<	RET>
  2359	010170'	200 01 0 00 002000'		MOVE T1,REQADR		;GET ADR OF THIS QUEUE ENTRY
  2360						MOVX T2,QF%NOA		^;MARK THAT THIS MESSAGE NOT TO BE ACK'D YET
  2361	010171'	201 02 0 00 000001 		  MOVEI T2,..MX1>	
  2362						STOR T2,QUEFLG,(T1)^
  2363	010172'	542 02 0 01 000001 			HRRM T2,1(T1)^
  2364						RETSKP	^		;DONE, RETURN SUCCESS
  2365	010173'	254 00 0 00 010130*	JRST RSKP
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 58
NCP	MAC	 5-Oct-81 16:46		NCP -- SHOW Command

  2366					; SHOW STATE KNOWN REMOTES
  2367
  2368	010174'	260 17 0 00 012326'	SHSKNO:	CALL PRSKEY		;PARSE A KEYWORD
  2369						 RETBAD ()^		;FAILED
  2370	010175'	263 17 0 00 000000 	IFB <>,<	RET>
  2371	010176'	201 02 0 00 010203'		MOVEI T2,KNOTAB		;GET DISPATCH TABLE ADR
  2372	010177'	201 03 0 00 000002 		MOVEI T3,KNOLEN		;AND LENGTH
  2373	010200'	260 17 0 00 006067'		CALL FNDDSP		;GET DISPATCH ADR
  2374	010201'	254 00 0 00 006055'		 JRST DOREQE		;FAILED
  2375	010202'	254 00 0 01 000000 		JRST 0(T1)		;DISPATCH
  2376
  2377
  2378	010203'	000132	010205'		KNOTAB:	.DNNDS,,SHNNDS		;SHOW STATE KNOWN NODES
  2379	010204'	000041	010345'			.DNskl,,SHNLNS		;SHOW STATE KNOWN LINES
  2380
  2381			000002		KNOLEN==.-KNOTAB
  2382
  2383
  2384
  2385
  2386					; SHOW STATE KNOWN NODES
  2387
  2388	010205'				SHNNDS:	STKVAR <<SHDMSG,50>>^
  2389	010205'	265 16 0 00 010144*		JSP .A16,.STKST
  2390	010206'	000050	000050			 ..STKN,,..STKN
  2391	010207'	260 17 0 00 012335'		CALL PRSCFM		;PARSE CONFIRMATION
  2392						 RETBAD ()^		;FAILED
  2393	010210'	263 17 0 00 000000 	IFB <>,<	RET>
  2394	010211'	541 01 0 17 777727 		HRRI T1,SHDMSG	^-^O51(P)^	;GET ADDRESS OF NICE MESSAGE
  2395	010212'	505 01 0 00 441000 		HRLI T1,(POINT 8,)	;FORM POINTER TO NICE MESSAGE
  2396						MOVX T4,.NCRED		^;GET NICE "READ INFORMATION" FUNCTION
  2397	010213'	201 04 0 00 000010 		  MOVEI T4,..MX1>	
  2398	010214'	136 04 0 00 000001 		IDPB T4,T1		;PUT FUNCTION CODE IN MESSAGE
  2399						MOVX T4,.RDRNS		^;GET "REMOTE NODE STATUS" OPTION CODE
  2400	010215'	201 04 0 00 000003 		  MOVEI T4,..MX1>	
  2401	010216'	136 04 0 00 000001 		IDPB T4,T1		;ADD OPTION TO MESSAGE
  2402						MOVX T4,0		^;USE A LENGTH OF 0 TO IMPLY READ STATE OF
  2403	010217'	201 04 0 00 000000 		  MOVEI T4,..MX1>	
  2404	010220'	136 04 0 00 000001 		IDPB T4,T1		;  ALL KNOWN NODES
  2405	010221'	505 04 0 00 000010 		HRLI T4,.NCRED		;GET READ INFORMATION FUNCTION CODE
  2406	010222'	541 04 0 00 000003 		HRRI T4,.RDRNS		;GET "REMOTE NODE STATUS" OPTION
  2407						MOVX T3,3		^;GET NUMBER OF BYTES IN NICE MESSAGE
  2408	010223'	201 03 0 00 000003 		  MOVEI T3,..MX1>	
  2409	010224'	541 02 0 17 777727 		HRRI T2,SHDMSG	^-^O51(P)^	;GET ADDRESS OF NICE MESSAGE
  2410	010225'	505 02 0 00 441000 		HRLI T2,(POINT 8,)	;FORM POINTER TO NICE MESSAGE
  2411	010226'	200 01 0 00 000010 		MOVE T1,P1		;GET ADR OF ORION MESSAGE
  2412	010227'	504 01 0 00 000003 		HRL T1,T3		;MOVE COUNT INTO PARAM REG
  2413	010230'	200 03 0 00 010165*		MOVE T3,EXCUTR		;SHOW WHAT EXECUTOR WE WANT
  2414	010231'	260 17 0 00 011050'		CALL STONIC		;PUT MSG ON NICE QUEUE
  2415						 RETBAD ()^		;FAILED
  2416	010232'	263 17 0 00 000000 	IFB <>,<	RET>
  2417	010233'	200 01 0 00 002000'		MOVE T1,REQADR		;GET ADR OF THIS QUEUE ENTRY
  2418						MOVX T2,QF%NOA		^;MARK THAT THIS MESSAGE NOT TO BE ACK'D YET
  2419	010234'	201 02 0 00 000001 		  MOVEI T2,..MX1>	
  2420						STOR T2,QUEFLG,(T1)^
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 58-1
NCP	MAC	 5-Oct-81 16:46		NCP -- SHOW Command

  2421	010235'	542 02 0 01 000001 			HRRM T2,1(T1)^
  2422						RETSKP	^		;DONE, RETURN SUCCESS
  2423	010236'	254 00 0 00 010173*	JRST RSKP
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 59
NCP	MAC	 5-Oct-81 16:46		NCP -- SHOW Command

  2424					; SHOW STATE NODE node
  2425
  2426	010237'				SHSNOD:	STKVAR <<SHNMSG,50>,SHNNOD>^
  2427	010237'	265 16 0 00 010205*		JSP .A16,.STKST
  2428	010240'	000051	000051			 ..STKN,,..STKN
  2429	010241'	260 17 0 00 012341'		CALL PRSNOD		;PARSE A NODE NAME
  2430						 RETBAD ()^		;FAILED
  2431	010242'	263 17 0 00 000000 	IFB <>,<	RET>
  2432	010243'	202 01 0 17 777726 		MOVEM T1,SHNNOD	^-^O52(P)^	;SAVE NODE NAME POINTER
  2433	010244'	260 17 0 00 012335'		CALL PRSCFM		;PARSE CONFIRMATION
  2434	010245'	254 00 0 00 010302'		 JRST SHSNDX		;FAILED, GO RELEASE FREE SPACE
  2435	010246'	541 01 0 17 777727 		HRRI T1,SHNMSG	^-^O51(P)^	;GET ADDRESS OF NICE MESSAGE
  2436	010247'	505 01 0 00 441000 		HRLI T1,(POINT 8,)	;FORM POINTER TO NICE MESSAGE
  2437						MOVX T4,.NCRED		^;GET NICE "READ INFORMATION" FUNCTION
  2438	010250'	201 04 0 00 000010 		  MOVEI T4,..MX1>	
  2439	010251'	136 04 0 00 000001 		IDPB T4,T1		;PUT FUNCTION CODE IN MESSAGE
  2440						MOVX T4,.RDRNS		^;GET "REMOTE NODE STATUS" OPTION CODE
  2441	010252'	201 04 0 00 000003 		  MOVEI T4,..MX1>	
  2442	010253'	136 04 0 00 000001 		IDPB T4,T1		;ADD OPTION TO MESSAGE
  2443	010254'	200 03 0 17 777726 		MOVE T3,SHNNOD	^-^O52(P)^	;GET POINTER TO NODE NAME
  2444						MOVX T2,NNAMSZ		^;MAX SIZE OF NODE NAMES
  2445	010255'	201 02 0 00 000006 		  MOVEI T2,..MX1>	
  2446	010256'	260 17 0 00 000000*		CALL MAKIMA		;ADD NODE NAME TO MESSAGE
  2447	010257'	254 00 0 00 010302'		 JRST SHSNDX		;FAILED, GO RELEASE FREE SPACE
  2448	010260'	271 02 0 00 000002 		ADDI T2,2		;ACCOUNT FOR FUNCTION AND OPTION CODES
  2449	010261'	505 04 0 00 000010 		HRLI T4,.NCRED		;GET READ INFORMATION FUNCTION CODE
  2450	010262'	541 04 0 00 000003 		HRRI T4,.RDRNS		;GET "REMOTE NODE STATUS" OPTION
  2451	010263'	200 03 0 00 000002 		MOVE T3,T2		;GET NUMBER OF BYTES IN NICE MESSAGE
  2452	010264'	541 02 0 17 777727 		HRRI T2,SHNMSG	^-^O51(P)^	;GET ADDRESS OF NICE MESSAGE
  2453	010265'	505 02 0 00 441000 		HRLI T2,(POINT 8,)	;FORM POINTER TO NICE MESSAGE
  2454	010266'	200 01 0 00 000010 		MOVE T1,P1		;GET ADR OF ORION MESSAGE
  2455	010267'	504 01 0 00 000003 		HRL T1,T3		;MOVE COUNT INTO PARAM REG
  2456	010270'	200 03 0 00 010230*		MOVE T3,EXCUTR		;SHOW WHAT EXECUTOR WE WANT
  2457	010271'	260 17 0 00 011050'		CALL STONIC		;PUT MSG ON NICE QUEUE
  2458	010272'	254 00 0 00 010302'		 JRST SHSNDX		;FAILED, GO RELEASE FREE SPACE
  2459	010273'	200 01 0 00 002000'		MOVE T1,REQADR		;GET ADR OF THIS QUEUE ENTRY
  2460						MOVX T2,QF%NOA		^;MARK THAT THIS MESSAGE NOT TO BE ACK'D YET
  2461	010274'	201 02 0 00 000001 		  MOVEI T2,..MX1>	
  2462						STOR T2,QUEFLG,(T1)^
  2463	010275'	542 02 0 01 000001 			HRRM T2,1(T1)^
  2464	010276'	200 01 0 17 777726 		MOVE T1,SHNNOD	^-^O52(P)^	;GET FREE BLOCK ADDRESS
  2465	010277'	260 17 0 00 014115'		CALL RELFRE		;RELEASE THE BLOCK
  2466						 FATAL.ERROR		^;FAILD
  2467							CALL ERROR
  2468							HALTF
  2469	010300'	254 00 0 00 016623'			JRST NETCON]
  2470						RETSKP	^		;DONE, RETURN SUCCESS
  2471	010301'	254 00 0 00 010236*	JRST RSKP
  2472
  2473					; HERE ON AN ERROR
  2474
  2475	010302'	250 01 0 17 777726 	SHSNDX:	EXCH T1,SHNNOD	^-^O52(P)^	;GET FREE BLOCK ADDRESS
  2476	010303'	260 17 0 00 014115'		CALL RELFRE		;RELEASE THE BLOCK
  2477						 FATAL.ERROR		^;FAILD
  2478							CALL ERROR
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 59-1
NCP	MAC	 5-Oct-81 16:46		NCP -- SHOW Command

  2479							HALTF
  2480	010304'	254 00 0 00 016623'			JRST NETCON]
  2481	010305'	200 01 0 17 777726 		MOVE T1,SHNNOD	^-^O52(P)^	;RESTORE ERROR CODE
  2482						RETBAD ()^		;FAIL
  2483	010306'	263 17 0 00 000000 	IFB <>,<	RET>
  2484
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 60
NCP	MAC	 5-Oct-81 16:46		NCP -- SHOW Command

  2485					; SHOW STATE LINE line-id
  2486
  2487	010307'				SHSLIN:	STKVAR <<SHOMSG,100>,<SHLLID,2>>^
  2488	010307'	265 16 0 00 010237*		JSP .A16,.STKST
  2489	010310'	000102	000102			 ..STKN,,..STKN
  2490	010311'	260 17 0 00 012436'		CALL PRSLID		;PARSE THE LINE-ID
  2491						 RETBAD (.ERR23)^	;<Invalid line-id>
  2492					IFNB <.ERR23>,<	JRST [	MOVEI T1,.ERR23
  2493	010312'	254 00 0 00 016707'				RET]>>
  2494	010313'	124 01 0 17 777675 		DMOVEM T1,SHLLID	^-^O103(P)^;SAVE LINE-ID
  2495	010314'	260 17 0 00 012335'		CALL PRSCFM		;PARSE END OF COMMAND
  2496						 RETBAD ()^		;FAILED
  2497	010315'	263 17 0 00 000000 	IFB <>,<	RET>
  2498
  2499					; COMMAND PARSED - SAVE REQUEST TYPE IN QUEUE ENTRY AND SEND NICE MESSAGE
  2500
  2501	010316'	201 01 0 17 777677 		MOVEI T1,SHOMSG	^-^O101(P)^	;ADR OF MESSAGE
  2502	010317'	505 01 0 00 441000 		HRLI T1,441000		;MAKE POINTER TO MESSAGE
  2503	010320'	201 02 0 00 000010 		MOVEI T2,.NCRED		;READ INFORMATION
  2504	010321'	136 02 0 00 000001 		IDPB T2,T1
  2505	010322'	201 02 0 00 000005 		MOVEI T2,.RDLST		;GET LINE STATE
  2506	010323'	136 02 0 00 000001 		IDPB T2,T1
  2507	010324'	201 02 0 00 000002 		MOVEI T2,2		;NUMBER OF BYTES IN MESSAGE SO FAR
  2508	010325'	120 03 0 17 777675 		DMOVE T3,SHLLID	^-^O103(P)^	;GET LINE ID
  2509	010326'	260 17 0 00 010112*		CALL MAKLIN		;PUT LINE-ID INTO MESSAGE
  2510	010327'	200 01 0 00 000010 		MOVE T1,P1		;GET ADR OF MESSAGE
  2511	010330'	200 03 0 00 000002 		MOVE T3,T2		;COPY COUNT OF BYTES IN MESSAGE
  2512	010331'	201 02 0 17 777677 		MOVEI T2,SHOMSG	^-^O101(P)^	;ADR OF MESSAGE
  2513	010332'	505 02 0 00 441000 		HRLI T2,441000		;MAKE POINTER TO MESSAGE
  2514	010333'	505 04 0 00 000010 		HRLI T4,.NCRED		;GET NICE PROTOCOL "READ INFORMATION" FUNCTION
  2515	010334'	541 04 0 00 000005 		HRRI T4,.RDLST		;GET OPTION FOR "READ LINE STATE"
  2516	010335'	504 01 0 00 000003 		HRL T1,T3		;MOVE COUNT INTO PARAM REG
  2517	010336'	200 03 0 00 010270*		MOVE T3,EXCUTR		;SHOW WHAT EXECUTOR WE WANT
  2518	010337'	260 17 0 00 011050'		CALL STONIC		;STORE THIS MESSAGE ON NICE QUEUE
  2519						 RETBAD ()^		;FAILED
  2520	010340'	263 17 0 00 000000 	IFB <>,<	RET>
  2521	010341'	200 01 0 00 002000'		MOVE T1,REQADR		;GET ADR OF THIS QUEUE ENTRY
  2522						MOVX T2,QF%NOA		^;MARK THAT THIS MESSAGE NOT TO BE ACK'D YET
  2523	010342'	201 02 0 00 000001 		  MOVEI T2,..MX1>	
  2524						STOR T2,QUEFLG,(T1)^
  2525	010343'	542 02 0 01 000001 			HRRM T2,1(T1)^
  2526						RETSKP	^		;ALL DONE
  2527	010344'	254 00 0 00 010301*	JRST RSKP
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 61
NCP	MAC	 5-Oct-81 16:46		NCP -- SHOW Command

  2528					; shnlns - show status known lines
  2529
  2530	010345'				shnlns:	stkvar <<snlmsg,100>>^
  2531	010345'	265 16 0 00 010307*		JSP .A16,.STKST
  2532	010346'	000100	000100			 ..STKN,,..STKN
  2533
  2534					; parse end of command
  2535
  2536	010347'	260 17 0 00 012335'		call prscfm		;parse end of command
  2537						 retbad ()^		;failed
  2538	010350'	263 17 0 00 000000 	IFB <>,<	RET>
  2539
  2540					; assemble nice protocol message to read information
  2541
  2542	010351'	201 01 0 17 777677 		MOVEI T1,snlMSG	^-^O101(P)^	;ADR OF MESSAGE
  2543	010352'	505 01 0 00 441000 		HRLI T1,441000		;MAKE POINTER TO MESSAGE
  2544	010353'	201 02 0 00 000010 		MOVEI T2,.NCRED		;READ INFORMATION
  2545	010354'	136 02 0 00 000001 		IDPB T2,T1
  2546	010355'	201 02 0 00 000005 		MOVEI T2,.RDLST		;GET LINE STATE
  2547	010356'	136 02 0 00 000001 		IDPB T2,T1
  2548						movx t2,.ltall		^;get "all lines" line id
  2549	010357'	201 02 0 00 000000 		  MOVEI t2,..MX1>	
  2550	010360'	136 02 0 00 000001 		idpb t2,t1		;add line id to message
  2551	010361'	200 01 0 00 000010 		MOVE T1,P1		;GET ADR OF MESSAGE
  2552						MOVx T3,3		^;there are three bytes in the message
  2553	010362'	201 03 0 00 000003 		  MOVEI T3,..MX1>	
  2554	010363'	201 02 0 17 777677 		MOVEI T2,SNLMSG	^-^O101(P)^	;ADR OF MESSAGE
  2555	010364'	505 02 0 00 441000 		HRLI T2,441000		;MAKE POINTER TO MESSAGE
  2556	010365'	505 04 0 00 000010 		HRLI T4,.NCRED		;GET NICE PROTOCOL "READ INFORMATION" FUNCTION
  2557	010366'	541 04 0 00 000005 		HRRI T4,.RDLST		;GET OPTION FOR "READ LINE STATE"
  2558	010367'	504 01 0 00 000003 		HRL T1,T3		;MOVE COUNT INTO PARAM REG
  2559	010370'	200 03 0 00 010336*		MOVE T3,EXCUTR		;SHOW WHAT EXECUTOR WE WANT
  2560	010371'	260 17 0 00 011050'		CALL STONIC		;STORE THIS MESSAGE ON NICE QUEUE
  2561						 RETBAD ()^		;FAILED
  2562	010372'	263 17 0 00 000000 	IFB <>,<	RET>
  2563	010373'	200 01 0 00 002000'		MOVE T1,REQADR		;GET ADR OF THIS QUEUE ENTRY
  2564						MOVX T2,QF%NOA		^;MARK THAT THIS MESSAGE NOT TO BE ACK'D YET
  2565	010374'	201 02 0 00 000001 		  MOVEI T2,..MX1>	
  2566						STOR T2,QUEFLG,(T1)^
  2567	010375'	542 02 0 01 000001 			HRRM T2,1(T1)^
  2568						RETSKP	^		;ALL DONE
  2569	010376'	254 00 0 00 010344*	JRST RSKP
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 62
NCP	MAC	 5-Oct-81 16:46		NCP -- SHOW Command

  2570					;SHOW QUEUE (OF) NCP-REQUESTS
  2571
  2572	010377'	260 17 0 00 012407'	SHOQUE:	CALL PRSNOI		;PARSE NOISE WORDS
  2573	010400'	260 17 0 00 012326'		CALL PRSKEY		;PARSE KEYWORD
  2574						 RETBAD ()^		;FAILED
  2575	010401'	263 17 0 00 000000 	IFB <>,<	RET>
  2576	010402'	201 02 0 00 010407'		MOVEI T2,SHOQTB		;GET ADR OF DISPATCH TABLE
  2577	010403'	201 03 0 00 000001 		MOVEI T3,SHOQTL		;AND ITS LENGTH
  2578	010404'	260 17 0 00 006067'		CALL FNDDSP		;GET DISPATCH
  2579	010405'	254 00 0 00 006055'		 JRST DOREQE		;NOT FOUND
  2580	010406'	254 00 0 01 000000 		JRST 0(T1)		;DISPATCH
  2581
  2582	010407'	000052	010410'		SHOQTB:	.DNNCR,,SHONCP		;SHOW QUEUE (OF) NCP-REQUESTS
  2583			000001		SHOQTL==.-SHOQTB
  2584
  2585	010410'				SHONCP:	STKVAR <SQNPAG>^
  2586	010410'	265 16 0 00 010345*		JSP .A16,.STKST
  2587	010411'	000001	000001			 ..STKN,,..STKN
  2588	010412'	260 17 0 00 014234'		CALL ASGPAG		;GET A PAGE TO USE FOR THE TEXT
  2589						 RETBAD ()^		;FAILED
  2590	010413'	263 17 0 00 000000 	IFB <>,<	RET>
  2591	010414'	202 01 0 17 777776 		MOVEM T1,SQNPAG	^-^O2(P)^	;SAVE PAGE NUMBER
  2592	010415'	242 01 0 00 000011 		LSH T1,9		;FORM ADDRESS OF TEXT DESTINATION
  2593	010416'	505 01 0 00 000700 		HRLI T1,(POINT 7,0,35)	;FORM DESTINATION POINTER
  2594	010417'	200 05 0 00 000001 		MOVE Q1,T1		;SAVE STARTING BYTE POINTER
  2595	010420'	260 17 0 00 010745'		CALL BLDACT		;LIST THE ACTIVE COMMANDS
  2596	010421'	260 17 0 00 011010'		CALL BLDQUE		;THEN THE QUEUED COMMANDS
  2597						 HRROI T2,[ASCIZ/	There are no outstanding NCP requests.
  2598	010422'	561 02 0 00 017104'	/]
  2599	010423'	402 00 0 00 000003 		SETZM T3		;TERMINATE ON NULL
  2600	010424'	316 01 0 00 000005 		CAMN T1,Q1		;DID THE BYTE POINTER CHANGE?
  2601	010425'	104 00 0 00 000053 		SOUT			;ADD STRING TO TEXT
  2602	010426'	200 01 0 17 777776 		MOVE T1,SQNPAG	^-^O2(P)^	;GET PAGE ADDRESS OF TEXT
  2603	010427'	242 01 0 00 000011 		LSH T1,9		;FORM ADDRESS
  2604	010430'	505 01 0 00 000700 		HRLI T1,(POINT 7,0,35)	;FORM POINTER TO TEXT TO BE OUTPUT
  2605	010431'	200 02 0 00 017115'		MOVE T2,[POINT 7,[ASCIZ//]]
  2606	010432'	260 17 0 00 014575'		CALL OPRMES		;TELL OPERATOR QUEUE IS EMPTY
  2607						 JRST [	EXCH T1,SQNPAG	^-^O2(P)^;GET PAGE ADDRESS
  2608							CALL RELPAG	;RELEASE THE PAGE
  2609							 NON.FATAL.ERROR^
  2610					IFB <>,<	CALL WRNING>
  2611							MOVE T1,SQNPAG	^-^O2(P)^;RESTORE ERROR CODE
  2612							RETBAD ()^
  2613					IFB <>,<	RET>
  2614	010433'	254 00 0 00 017116'				RETBAD ()]>^ ]	;FAILED
  2615	010434'	200 01 0 17 777776 		MOVE T1,SQNPAG	^-^O2(P)^	;GET PAGE ADDRESS
  2616	010435'	260 17 0 00 014270'		CALL RELPAG		;RELEASE THE PAGE
  2617						 NON.FATAL.ERROR^
  2618	010436'	260 17 0 00 014473'	IFB <>,<	CALL WRNING>
  2619						RETSKP	^		;AND EXIT
  2620	010437'	254 00 0 00 010376*	JRST RSKP
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 63
NCP	MAC	 5-Oct-81 16:46		NCP -- LOOP Command

  2621					SUBTTL 	NCP -- LOOP Command
  2622
  2623	010440'	260 17 0 00 012326'	LOPREQ:	CALL PRSKEY		;PARSE A KEYWORD
  2624	010441'	254 00 0 00 006055'		 JRST DOREQE		;WRONG TYPE
  2625	010442'	201 02 0 00 010447'		MOVEI T2,LOPRTB		;GET ADR OF DISPATCH TABLE
  2626	010443'	201 03 0 00 000001 		MOVEI T3,LOPRTL		;AND LENGTH OF TABLE
  2627	010444'	260 17 0 00 006067'		CALL FNDDSP		;GET THE DISPATCH ADR
  2628	010445'	254 00 0 00 006055'		 JRST DOREQE		;NOT FOUND, UNKNOWN KEYWORD
  2629	010446'	254 00 0 01 000000 		JRST (T1)		;DISPATCH
  2630
  2631	010447'	000040	010450'		LOPRTB:	.DNSLI,,LOPLIN		;LOOP LINE
  2632			000001		LOPRTL==.-LOPRTB
  2633
  2634					; LOOP LINE line-id
  2635
  2636	010450'				LOPLIN:	STKVAR <LOPBYT,<LOPMSG,50>,<LOPLID,2>,LOPCNT,LOPLNG,LOPWTH>^
  2637	010450'	265 16 0 00 010410*		JSP .A16,.STKST
  2638	010451'	000056	000056			 ..STKN,,..STKN
  2639	010452'	260 17 0 00 012436'		CALL PRSLID		;PARSE THE LINE-ID
  2640						 RETBAD (.ERR23)^	;<Invalid line-id>
  2641					IFNB <.ERR23>,<	JRST [	MOVEI T1,.ERR23
  2642	010453'	254 00 0 00 016707'				RET]>>
  2643	010454'	124 01 0 17 777724 		DMOVEM T1,LOPLID	^-^O54(P)^;SAVE LINE-ID
  2644	010455'	201 01 0 00 000001 		MOVEI T1,1		;DEFAULT COUNT
  2645	010456'	202 01 0 17 777723 		MOVEM T1,LOPCNT^-^O55(P)^
  2646	010457'	201 01 0 00 000200 		MOVEI T1,^D128		;DEFAULT LENGTH
  2647	010460'	202 01 0 17 777722 		MOVEM T1,LOPLNG^-^O56(P)^
  2648	010461'	201 01 0 00 000002 		MOVEI T1,.DOMXD		;DEFAULT DATA MODE
  2649	010462'	202 01 0 17 777721 		MOVEM T1,LOPWTH^-^O57(P)^
  2650	010463'	260 17 0 00 012335'	LOPLST:	CALL PRSCFM		;END OF COMMAND?
  2651	010464'	334 00 0 00 000000 		SKIPA			;NO - PARSE THE KEYWORD
  2652	010465'	254 00 0 00 010540'		JRST DOLOOP		;GO DO THE LOOP COMMAND
  2653	010466'	260 17 0 00 012326'		CALL PRSKEY		;PARSE A KEYWORD
  2654	010467'	254 00 0 00 006055'		 JRST DOREQE		;WRONG TYPE
  2655	010470'	201 02 0 00 010475'		MOVEI T2,LINRTB		;GET ADR OF DISPATCH TABLE
  2656	010471'	201 03 0 00 000003 		MOVEI T3,LINRTL		;AND LENGTH OF TABLE
  2657	010472'	260 17 0 00 006067'		CALL FNDDSP		;GET THE DISPATCH ADR
  2658	010473'	254 00 0 00 006055'		 JRST DOREQE		;NOT FOUND, UNKNOWN KEYWORD
  2659	010474'	254 00 0 01 000000 		JRST (T1)		;DISPATCH
  2660
  2661	010475'	000004	010500'		LINRTB:	.DNDRC,,LINDRC		;LOOP LINE line-id COUNT
  2662	010476'	000135	010507'			.DNLNG,,LINLNG		;LOOP LINE line-id LENGTH
  2663	010477'	000142	010522'			.DNWTH,,LINWTH		;LOOP LINE line-id WITH
  2664			000003		LINRTL==.-LINRTB
  2665
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 64
NCP	MAC	 5-Oct-81 16:46		NCP -- LOOP Command

  2666
  2667					; LOOP LINE line-id COUNT n
  2668
  2669	010500'	260 17 0 00 012335'	LINDRC::	CALL PRSCFM		;END OF COMMAND?
  2670	010501'	334 00 0 00 000000 		SKIPA			;NO - PARSE THE KEYWORD
  2671	010502'	254 00 0 00 010540'		JRST DOLOOP		;GO DO THE LOOP COMMAND
  2672	010503'	260 17 0 00 012400'		CALL PRSNUM		;GET THE BLOCK COUNT
  2673	010504'	254 00 0 00 006055'		JRST DOREQE		;FAILED
  2674	010505'	202 01 0 17 777723 		MOVEM T1,LOPCNT	^-^O55(P)^	;SAVE
  2675	010506'	254 00 0 00 010463'		JRST LOPLST		;GET MORE KEYWORDS
  2676
  2677					; LOOP LINE line-id LENGTH n
  2678
  2679	010507'	260 17 0 00 012335'	LINLNG:	CALL PRSCFM		;END OF COMMAND?
  2680	010510'	334 00 0 00 000000 		SKIPA			;NO - PARSE THE KEYWORD
  2681	010511'	254 00 0 00 010540'		JRST DOLOOP		;GO DO THE LOOP COMMAND
  2682	010512'	260 17 0 00 012400'		CALL PRSNUM		;GET THE BLOCK LENGTH
  2683	010513'	254 00 0 00 006055'		JRST DOREQE		;FAILED
  2684	010514'	337 00 0 00 000001 		SKIPG T1		;MUST >0 AND <256
  2685						RETBAD (ARGX04)^		;TELL USER BLOCK TOO SMALL
  2686					IFNB <ARGX04>,<	JRST [	MOVEI T1,ARGX04
  2687	010515'	254 00 0 00 017123'				RET]>>
  2688	010516'	301 01 0 00 000400 		CAIL T1,^D256
  2689						RETBAD (ARGX05)^		;TELL USER BLOCK TOO LONG
  2690					IFNB <ARGX05>,<	JRST [	MOVEI T1,ARGX05
  2691	010517'	254 00 0 00 017125'				RET]>>
  2692	010520'	202 01 0 17 777722 		MOVEM T1,LOPLNG	^-^O56(P)^	;SAVE
  2693	010521'	254 00 0 00 010463'		JRST LOPLST		;GET MORE KEYWORDS
  2694
  2695					; LOOP LINE line-id WITH [MIXED/ZEROES/ONES]
  2696
  2697	010522'	260 17 0 00 012335'	LINWTH:	CALL PRSCFM		;END OF COMMAND?
  2698	010523'	334 00 0 00 000000 		SKIPA			;NO - PARSE THE KEYWORD
  2699	010524'	254 00 0 00 010540'		JRST DOLOOP		;GO DO THE LOOP COMMAND
  2700	010525'	260 17 0 00 012326'		CALL PRSKEY		;PARSE A KEYWORD
  2701	010526'	254 00 0 00 006055'		 JRST DOREQE		;WRONG TYPE
  2702	010527'	201 02 0 00 010535'		MOVEI T2,WTHRTB		;GET ADR OF DISPATCH TABLE
  2703	010530'	201 03 0 00 000003 		MOVEI T3,WTHRTL		;AND LENGTH OF TABLE
  2704	010531'	260 17 0 00 006067'		CALL FNDDSP		;GET THE DISPATCH ADR
  2705	010532'	254 00 0 00 006055'		 JRST DOREQE		;NOT FOUND, UNKNOWN KEYWORD
  2706	010533'	202 01 0 17 777721 		MOVEM T1,LOPWTH	^-^O57(P)^	;SAVE THE CODE VALUE
  2707	010534'	254 00 0 00 010463'		JRST LOPLST		;KEEP PARSING
  2708
  2709	010535'	000137	000002		WTHRTB:	.DNMXD,,.DOMXD		;LOOP LINE line-id WITH MIXED
  2710	010536'	000140	000001			.DNONS,,.DOONS		;LOOP LINE line-id WITH ONES
  2711	010537'	000141	000000			.DNZRO,,.DOZRO		;LOOP LINE line-id WITH ZEROES
  2712			000003		WTHRTL==.-WTHRTB
  2713						;...
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 65
NCP	MAC	 5-Oct-81 16:46		NCP -- LOOP Command

  2714						;...
  2715
  2716	010540'	402 00 0 17 777776 	DOLOOP:	SETZM LOPBYT	^-^O2(P)^	;ZERO BYTE COUNT
  2717	010541'	541 01 0 17 777726 		HRRI T1,LOPMSG	^-^O52(P)^	;GET ADDRESS OF NICE MESSAGE
  2718	010542'	505 01 0 00 441000 		HRLI T1,(POINT 8,)	;FORM POINTER TO NICE MESSAGE
  2719						MOVX T4,.NCTST		^;GET NICE "DO LOOPBACK" FUNCTION
  2720	010543'	201 04 0 00 000006 		  MOVEI T4,..MX1>	
  2721	010544'	136 04 0 00 000001 		IDPB T4,T1		;PUT FUNCTION CODE IN MESSAGE
  2722	010545'	350 00 0 17 777776 		AOS LOPBYT	^-^O2(P)^	;BUMP BYTE COUNT
  2723						MOVX T4,.DOLIN		^;GET "LINE TYPE TEST" OPTION CODE
  2724	010546'	201 04 0 00 000001 		  MOVEI T4,..MX1>	
  2725	010547'	136 04 0 00 000001 		IDPB T4,T1		;ADD OPTION TO MESSAGE
  2726	010550'	350 00 0 17 777776 		AOS LOPBYT	^-^O2(P)^	;BUMP BYTE COUNT
  2727	010551'	201 02 0 00 000006 		MOVEI T2,6		;MOVE EXECUTOR NAME INTO NICE MSG
  2728	010552'	200 03 0 00 010370*		MOVE T3,EXCUTR
  2729	010553'	260 17 0 00 010256*		CALL MAKIMA		;PUT EXECUTOR IN IMAGE FIELD
  2730						 RETBAD			^;ERROR - FAIL
  2731	010554'	263 17 0 00 000000 	IFB <>,<	RET>
  2732	010555'	272 02 0 17 777776 		ADDM T2,LOPBYT	^-^O2(P)^	;ADD  COUNT TO TOTAL 
  2733	010556'	120 03 0 17 777724 		DMOVE T3,LOPLID	^-^O54(P)^	;PUT LINE ID INTO NICE MESSAGE
  2734	010557'	200 02 0 17 777776 		MOVE T2,LOPBYT	^-^O2(P)^	;GIVE IT COUNT
  2735	010560'	260 17 0 00 010326*		CALL MAKLIN		;ROUTINE PUTS LINE ID INTO NICE MESSAGE
  2736	010561'	202 02 0 17 777776 		MOVEM T2,LOPBYT	^-^O2(P)^	;STORE COUNT
  2737	010562'	200 02 0 17 777723 		MOVE T2,LOPCNT	^-^O55(P)^	;GET COUNT OF BLOCKS TO LOOP
  2738	010563'	260 17 0 00 000000*		CALL MAKTWO		;SAVE THE TWO BYTE NUMBER
  2739	010564'	350 00 0 17 777776 		AOS LOPBYT	^-^O2(P)^	;BUMP BYTE COUNT
  2740	010565'	350 00 0 17 777776 		AOS LOPBYT	^-^O2(P)^	;BUMP BYTE COUNT
  2741	010566'	200 02 0 17 777721 		MOVE T2,LOPWTH	^-^O57(P)^	;GET DATA TYPE
  2742	010567'	136 02 0 00 000001 		IDPB T2,T1		;AND MOVE INTO RECORD
  2743	010570'	350 00 0 17 777776 		AOS LOPBYT	^-^O2(P)^	;BUMP BYTE COUNT
  2744	010571'	200 02 0 17 777722 		MOVE T2,LOPLNG	^-^O56(P)^	;GET THE BLOCK LENGTH
  2745	010572'	260 17 0 00 010563*		CALL MAKTWO		;PUT TWO BYTE NUMBER IN MESSAGE
  2746	010573'	350 00 0 17 777776 		AOS LOPBYT	^-^O2(P)^	;BUMP BYTE COUNT
  2747	010574'	350 00 0 17 777776 		AOS LOPBYT	^-^O2(P)^	;BUMP BYTE COUNT
  2748	010575'	505 04 0 00 000006 		HRLI T4,.NCTST		;SET "TEST" FUNCTION
  2749	010576'	541 04 0 00 000001 		HRRI T4,.DOLIN		;GET "LOCAL NODE STATUS" OPTION
  2750	010577'	200 03 0 17 777776 		MOVE T3,LOPBYT	^-^O2(P)^	;GET NUMBER OF BYTES IN NICE MESSAGE
  2751	010600'	541 02 0 17 777726 		HRRI T2,LOPMSG	^-^O52(P)^	;GET ADDRESS OF NICE MESSAGE
  2752	010601'	505 02 0 00 441000 		HRLI T2,(POINT 8,)	;FORM POINTER TO NICE MESSAGE
  2753	010602'	200 01 0 00 000010 		MOVE T1,P1		;GET ADR OF ORION MESSAGE
  2754	010603'	504 01 0 00 000003 		HRL T1,T3		;MOVE COUNT INTO PARAM REG
  2755	010604'	200 03 0 00 010552*		MOVE T3,EXCUTR		;SHOW WHAT EXECUTOR WE WANT
  2756	010605'	260 17 0 00 011050'		CALL STONIC		;PUT MSG ON NICE QUEUE
  2757						 RETBAD ()^		;FAILED
  2758	010606'	263 17 0 00 000000 	IFB <>,<	RET>
  2759	010607'	200 01 0 00 002000'		MOVE T1,REQADR		;GET ADR OF THIS QUEUE ENTRY
  2760						MOVX T2,QF%NOA		^;MARK THAT THIS MESSAGE NOT TO BE ACK'D YET
  2761	010610'	201 02 0 00 000001 		  MOVEI T2,..MX1>	
  2762						STOR T2,QUEFLG,(T1)^
  2763	010611'	542 02 0 01 000001 			HRRM T2,1(T1)^
  2764						RETSKP	^		;DONE, RETURN SUCCESS
  2765	010612'	254 00 0 00 010437*	JRST RSKP
  2766
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 66
NCP	MAC	 5-Oct-81 16:46		NCP -- INITIATE and TERMINATE Commands

  2767					SUBTTL	NCP -- INITIATE and TERMINATE Commands
  2768
  2769	010613'	260 17 0 00 012326'	TRMREQ:	CALL PRSKEY		;PARSE A KEYWORD
  2770	010614'	254 00 0 00 006055'		 JRST DOREQE		;WRONG TYPE
  2771	010615'	201 02 0 00 010622'		MOVEI T2,TRMRTB		;GET ADR OF DISPATCH TABLE
  2772	010616'	201 03 0 00 000001 		MOVEI T3,TRMRTL		;AND LENGTH OF TABLE
  2773	010617'	260 17 0 00 006067'		CALL FNDDSP		;GET THE DISPATCH ADR
  2774	010620'	254 00 0 00 006055'		 JRST DOREQE		;NOT FOUND, UNKNOWN KEYWORD
  2775	010621'	254 00 0 01 000000 		JRST (T1)		;DISPATCH
  2776
  2777	010622'	000045	010634'		TRMRTB:	.DNLGI,,TRMLOG		;TERMINATE LOGGING
  2778
  2779			000001		TRMRTL==.-TRMRTB
  2780
  2781
  2782
  2783
  2784	010623'	260 17 0 00 012326'	INIREQ:	CALL PRSKEY		;PARSE A KEYWORD
  2785	010624'	254 00 0 00 006055'		 JRST DOREQE		;WRONG TYPE
  2786	010625'	201 02 0 00 010632'		MOVEI T2,INIRTB		;GET ADR OF DISPATCH TABLE
  2787	010626'	201 03 0 00 000001 		MOVEI T3,INIRTL		;AND LENGTH OF TABLE
  2788	010627'	260 17 0 00 006067'		CALL FNDDSP		;GET THE DISPATCH ADR
  2789	010630'	254 00 0 00 006055'		 JRST DOREQE		;NOT FOUND, UNKNOWN KEYWORD
  2790	010631'	254 00 0 01 000000 		JRST (T1)		;DISPATCH
  2791
  2792	010632'	000143	010633'		INIRTB:	.DNLOG,,INILOG		;INITIATE LOGGING
  2793
  2794			000001		INIRTL==.-INIRTB
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 67
NCP	MAC	 5-Oct-81 16:46		NCP -- INITIATE and TERMINATE Commands

  2795	010633'	634 04 0 00 000004 	INILOG:	TDZA T4,T4		;NOTE INITATE
  2796	010634'	476 00 0 00 000004 	TRMLOG:	SETOM T4		;NOTE TERMINATE
  2797						STKVAR <IRQERR,IRQFLG,IRQNOD>^
  2798	010635'	265 16 0 00 010450*		JSP .A16,.STKST
  2799	010636'	000003	000003			 ..STKN,,..STKN
  2800	010637'	202 04 0 17 777775 		MOVEM T4,IRQFLG	^-^O3(P)^	;SAVE INITIATE/TERMINATE FLAG
  2801	010640'	260 17 0 00 012407'		CALL PRSNOI		;SKIP NOISE FIELD
  2802	010641'	260 17 0 00 012326'		CALL PRSKEY		;PARSE KEYWORD
  2803						 RETBAD ()^		;FAILED
  2804	010642'	263 17 0 00 000000 	IFB <>,<	RET>
  2805	010643'	302 01 0 00 000117 		CAIE T1,.DNLCT		;LINE-COUNTERS ?
  2806	010644'	254 00 0 00 006055'		JRST DOREQE		;NO, FAIL
  2807	010645'	260 17 0 00 012407'		CALL PRSNOI		;SKIP NOISE
  2808	010646'	260 17 0 00 012436'		CALL PRSLID		;GO PARSE A LINE ID
  2809	010647'	254 00 0 00 006055'		 JRST DOREQE		;FAILED, NOTE ERROR
  2810	010650'	124 01 0 00 000005 		DMOVEM T1,Q1		;SAVE LINE ID
  2811	010651'	260 17 0 00 012407'		CALL PRSNOI		;PARSE NOISE FIELD
  2812	010652'	260 17 0 00 012341'		CALL PRSNOD		;PARSE NODE NAME
  2813						 RETBAD ()^		;FAILED
  2814	010653'	263 17 0 00 000000 	IFB <>,<	RET>
  2815	010654'	202 01 0 17 777774 		MOVEM T1,IRQNOD	^-^O4(P)^	;SAVE FREE BLOCK ADDRESS
  2816	010655'	260 17 0 00 006077'		CALL FOCNIB		;FIND OR CREATE THE ASSOCIATED NIB
  2817	010656'	254 00 0 00 010677'		 JRST INIRQX		;FAILED, RELEASE FREE SPACE
  2818	010657'	200 03 0 00 000001 		MOVE T3,T1		;GET THE NIB ADDRESS
  2819	010660'	120 01 0 00 000005 		DMOVE T1,Q1		;RESTORE LINE ID
  2820	010661'	402 00 0 17 777776 		SETZM IRQERR	^-^O2(P)^	;INITIALIZE ERROR CELL
  2821	010662'	200 04 0 00 017127'		MOVE T4,[SETLIN]	;GET ADDRESS OF ROUTINE TO CALL
  2822	010663'	332 00 0 17 777775 		SKIPE IRQFLG	^-^O3(P)^	;TERMINATING ?
  2823	010664'	200 04 0 00 017130'		MOVE T4,[CLRLIN]	;YES, USE THAT ROUTINE
  2824	010665'	260 17 0 04 000000 		CALL (T4)		;PERFORM THE FUNCTION
  2825	010666'	334 00 0 00 000000 		 SKIPA			;FAILED, ISSUE ERROR MESSAGE
  2826	010667'	254 00 0 00 010673'		JRST INIRQ5		;DONE, RELEASE FREE BLOCK
  2827						HRROI T1,[ASCIZ/? NETCON: Could not set logging for specified line
  2828	010670'	561 01 0 00 017131'	/]				;GET STRING POINTER
  2829	010671'	402 00 0 00 000002 		SETZM T2		;NO HEADER
  2830	010672'	260 17 0 00 014575'		CALL OPRMES		;SEND MESSAGE TO OPERATOR
  2831	010673'	200 01 0 17 777774 	INIRQ5:	MOVE T1,IRQNOD	^-^O4(P)^	;GET FREE BLOCK ADDRESS
  2832	010674'	260 17 0 00 014115'		CALL RELFRE		;RELEASE THE BLOCK
  2833						 FATAL.ERROR		^;FAILD
  2834							CALL ERROR
  2835							HALTF
  2836	010675'	254 00 0 00 016623'			JRST NETCON]
  2837						RETSKP	^		;DONE
  2838	010676'	254 00 0 00 010612*	JRST RSKP
  2839
  2840					; HERE ON AN ERROR
  2841
  2842	010677'	250 01 0 17 777774 	INIRQX:	EXCH T1,IRQNOD	^-^O4(P)^	;GET FREE BLOCK ADDRESS
  2843	010700'	260 17 0 00 014115'		CALL RELFRE		;RELEASE THE BLOCK
  2844						 FATAL.ERROR		^;FAILD
  2845							CALL ERROR
  2846							HALTF
  2847	010701'	254 00 0 00 016623'			JRST NETCON]
  2848	010702'	200 01 0 17 777774 		MOVE T1,IRQNOD	^-^O4(P)^	;RESTORE ERROR CODE
  2849						RETBAD ()^		;FAIL
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 67-1
NCP	MAC	 5-Oct-81 16:46		NCP -- INITIATE and TERMINATE Commands

  2850	010703'	263 17 0 00 000000 	IFB <>,<	RET>
  2851
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 68
NCP	MAC	 5-Oct-81 16:46		NCP -- INITIATE and TERMINATE Commands

  2852					;SETLIN/CLRLIN - ROUTINE TO MODIFY DATABASE TO NOTE THAT LOGGING SHOULD
  2853					;		 OR SHOULD NOT BE DONE FOR THE INDICATED LINE.
  2854					;	  FOR SPECIFIED LINE.
  2855					;
  2856					;ACCEPTS IN  T1-T2/ LINE ID
  2857					;		T3/ NIB ADDRESS
  2858					;		CALL SETLIN/CLRLIN
  2859					;RETURNS: +1	 FAILED, ERROR CODE IN T1
  2860					;	  +2	SUCCESS, DATABASE MODIFIED
  2861
  2862	010704'	634 04 0 00 000004 	SETLIN:	TDZA T4,T4		;NOTE THAT LOGGING SHOULD BE TURNED ON
  2863	010705'	476 00 0 00 000004 	CLRLIN:	SETOM T4		;NOTE THAT LOGGING SHOULD BE TURNED OFF
  2864						STKVAR <<STLLID,2>,STLFLG,STLNIB>^
  2865	010706'	265 16 0 00 010635*		JSP .A16,.STKST
  2866	010707'	000004	000004			 ..STKN,,..STKN
  2867	010710'	202 04 0 17 777774 		MOVEM T4,STLFLG	^-^O4(P)^	;SAVE FLAG TO NOTE ON OR OFF
  2868	010711'	124 01 0 17 777775 		DMOVEM T1,STLLID	^-^O3(P)^;SAVE LINE ID
  2869	010712'	202 03 0 17 777773 		MOVEM T3,STLNIB	^-^O5(P)^	;SAVE NIB ADDRESS
  2870	010713'	200 01 0 17 777773 		MOVE T1,STLNIB	^-^O5(P)^	;GET NIB ADDRESS
  2871	010714'	120 02 0 17 777775 		DMOVE T2,STLLID	^-^O3(P)^	;GET LINE ID
  2872	010715'	260 17 0 00 015641'		CALL FOCLIN		;FIND OR CREATE THE ENTRY FOR THIS LINE
  2873						 RETBAD ()^		;FAILED, RETURN ERROR
  2874	010716'	263 17 0 00 000000 	IFB <>,<	RET>
  2875	010717'	332 00 0 17 777774 		SKIPE STLFLG	^-^O4(P)^	;TURNING LOGGING OFF ?
  2876						JRST [SETZRO LTLOG,(T1)	^
  2877						  MOVSI .SAC,(..MX1)>>	
  2878							ANDCAM .SAC,2(T1)
  2879	010720'	254 00 0 00 017144'		      RETSKP ^JRST RSKP^]		;AND DONE. RETURN SUCCESS
  2880						SETONE LTLOG,(T1)	^;NOTE THAT LOGGING IS REQUIRED FOR THIS LINE
  2881	010721'	205 16 0 00 200000 		  MOVSI .SAC,(..MX1)>>	
  2882	010722'	436 16 0 01 000002 			IORM .SAC,2(T1)
  2883						RETSKP	^		;DONE, RETURN SUCCESS
  2884	010723'	254 00 0 00 010676*	JRST RSKP
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 69
NCP	MAC	 5-Oct-81 16:46		NCP -- INITIATE and TERMINATE Commands

  2885
  2886					;PRSPRT - ROUTINE TO PARSE A LINE-ID INTO A NSP PORT NUMBER
  2887					;
  2888					;ACCEPTS IN P2/	CURRENT POINTER INTO IPCF MESSAGE
  2889					;		CALL PRSPRT
  2890					;RETURNS: +1	LOST, INVALID LINE-ID
  2891					;	  +2	WIN, PORT NUMBER IN T1
  2892	010724'	260 17 0 00 012436'	PRSPRT:	CALL PRSLID		;GET LINE-ID
  2893	010725'	263 17 0 00 000000 		 RET			;LOST ALREADY
  2894	010726'				LIDPRT::STKVAR	<<PRTSAV,2>,<PRTLID,2>>^
  2895	010726'	265 16 0 00 010706*		JSP .A16,.STKST
  2896	010727'	000004	000004			 ..STKN,,..STKN
  2897	010730'	120 02 0 00 000001 		DMOVE T2,T1		;COPY LINE ID
  2898	010731'	201 01 0 17 777773 		MOVEI T1,PRTLID	^-^O5(P)^	;ADR OF ASCII DEVICE NAME
  2899	010732'	505 01 0 00 440700 		HRLI T1,440700		;MAKE INTO BYTE POINTER
  2900	010733'	260 17 0 00 000000*		CALL ASCLIN		;CONVERT LINE-ID TO TEXT STRING
  2901						 RETBAD (.NRILN)^	;INVALID LINE ID
  2902					IFNB <.NRILN>,<	JRST [	MOVEI T1,.NRILN
  2903	010734'	254 00 0 00 017147'				RET]>>
  2904	010735'	561 04 0 17 777773 		HRROI T4,PRTLID	^-^O5(P)^	;ADR OF ASCIZ LINE-ID
  2905	010736'	505 04 0 00 440700 		HRLI T4,440700		;TEMPORARY
  2906	010737'	201 01 0 00 000014 		MOVEI T1,.BTCLI		;CONVERT LINE-ID TO NSP PORT NUMBER
  2907	010740'	201 02 0 00 000003 		MOVEI T2,T3		;ARGUMENT BLOCK
  2908	010741'	104 00 0 00 000562 		BOOT
  2909						 ERJMP [RETBAD (.NRILN)^
  2910					IFNB <.NRILN>,<	JRST [	MOVEI T1,.NRILN
  2911								RET]>>
  2912	010742'	320 16 0 00 017151'				RETBAD (.NRILN)]>^] ;FAILED, RETURN INVALID LINE ID
  2913	010743'	550 01 0 00 000003 		HRRZ T1,T3		;GET PORT NUMBER FROM ARGUMENT BLOCK
  2914	010744'	254 00 0 00 010723*		RETSKP^JRST RSKP^
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 70
NCP	MAC	 5-Oct-81 16:46		NCP -- Miscellaneous Routines

  2915					SUBTTL	NCP -- Miscellaneous Routines
  2916
  2917					;ROUTINE TO BUILD A LIST OF THE ACTIVE REQUESTS
  2918					;ACCEPTS IN T1/	BYTE POINTER TO WHERE TO PUT THE LIST
  2919					;	CALL BLDACT
  2920					;RETURNS +1:	ALWAYS - UPDATED BYTE POINTER IN T1
  2921
  2922	010745'				BLDACT:	SAVEQ^
  2923	010745'	265 16 0 00 014432'		JSP CX,SAVQ^
  2924	010746'	205 05 0 00 777774 		MOVSI Q1,-NJFN		;SEE IF THERE ARE ANY ACTIVE REQUESTS
  2925	010747'	332 00 0 05 002023'	BLDAC0:	SKIPE REQTAB(Q1)	;THIS ONE ACTIVE?
  2926	010750'	254 00 0 00 010753'		JRST BLDAC2		;YES
  2927	010751'	253 05 0 00 010747'		AOBJN Q1,BLDAC0		;NO, LOOP BACK
  2928	010752'	263 17 0 00 000000 		RET			;NONE ACTIVE
  2929
  2930	010753'				BLDAC2:	HRROI T2,[ASCIZ/
  2931					NCP requests in progress:
  2932	010753'	561 02 0 00 017152'	/]
  2933	010754'	400 03 0 00 000000 		SETZ T3,
  2934	010755'	104 00 0 00 000053 		SOUT
  2935	010756'	205 05 0 00 777774 		MOVSI Q1,-NJFN		;SET UP TO LOOK AT ACTIVE REQUESTS
  2936	010757'	336 00 0 05 002023'	BLDACL:	SKIPN REQTAB(Q1)	;THIS ONE ACTIVE?
  2937	010760'	254 00 0 00 011006'		JRST BLDAC1		;NO
  2938	010761'	561 02 0 00 017160'		HRROI T2,[ASCIZ/   # /]
  2939	010762'	400 03 0 00 000000 		SETZ T3,
  2940	010763'	104 00 0 00 000053 		SOUT
  2941	010764'	200 02 0 05 002023'		MOVE T2,REQTAB(Q1)	;GET THE REQUEST NUMBER
  2942	010765'	201 03 0 00 000012 		MOVEI T3,^D10		;DECIMAL
  2943	010766'	104 00 0 00 000224 		NOUT
  2944	010767'	255 00 0 00 000000 		 JFCL
  2945	010770'	561 02 0 00 017162'		HRROI T2,[ASCIZ/ - /]
  2946	010771'	400 03 0 00 000000 		SETZ T3,
  2947	010772'	104 00 0 00 000053 		SOUT
  2948	010773'	200 02 0 05 002037'		MOVE T2,REQXTR(Q1)	;GET ADDRESS OF EXECUTOR NODE NAME
  2949	010774'	505 02 0 00 440700 		HRLI T2,(POINT 7,)	;FORM POINTER TO NAME STRING
  2950	010775'	104 00 0 00 000053 		SOUT			;ADD EXECUTOR NAME TO DISPLAY
  2951	010776'	561 02 0 00 017162'		HRROI T2,[ASCIZ/ - /]
  2952	010777'	400 03 0 00 000000 		SETZ T3,
  2953	011000'	104 00 0 00 000053 		SOUT
  2954	011001'	200 02 0 05 002033'		MOVE T2,REQMES(Q1)	;GET THE ADR OF THE ORION MESSAGE
  2955	011002'	260 17 0 00 012474'		CALL BLDCOM		;PUT IN THE REQUEST
  2956						HRROI T2,[ASCIZ/
  2957	011003'	561 02 0 00 016655'	/]
  2958	011004'	400 03 0 00 000000 		SETZ T3,
  2959	011005'	104 00 0 00 000053 		SOUT
  2960	011006'	253 05 0 00 010757'	BLDAC1:	AOBJN Q1,BLDACL		;LOOP FOR ALL REQUESTS
  2961	011007'	263 17 0 00 000000 		RET
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 71
NCP	MAC	 5-Oct-81 16:46		NCP -- Miscellaneous Routines

  2962					;ROUTINE TO BUILD A LIST OF THE QUEUED REQUESTS
  2963					;ACCEPTS IN T1/	BYTE POINTER TO WHERE TO STORE LIST
  2964					;	CALL BLDQUE
  2965					;RETURNS +1:	ALWAYS - UPDATED BYTE POINTER IN T1
  2966
  2967	011010'				BLDQUE:	SAVEQ^
  2968	011010'	265 16 0 00 014432'		JSP CX,SAVQ^
  2969	011011'	336 00 0 00 002003'		SKIPN NICQUE		;ANY REQUESTS ON QUEUE?
  2970	011012'	263 17 0 00 000000 		RET			;NO
  2971						HRROI T2,[ASCIZ/
  2972					NCP requests on the queue but not yet started:
  2973	011013'	561 02 0 00 017163'	/]
  2974	011014'	400 03 0 00 000000 		SETZ T3,
  2975	011015'	104 00 0 00 000053 		SOUT
  2976	011016'	201 05 0 00 002003'		MOVEI Q1,NICQUE		;GET POINTER TO START OF NICE QUEUE
  2977	011017'				BLDQUL:	LOAD Q1,NQPNT,(Q1)	^;STEP TO NEXT ENTRY ON QUEUE
  2978	011017'	550 05 0 05 000000 			HRRZ Q1,0(Q1)^
  2979	011020'	322 05 0 00 007254*		JUMPE Q1,R		;IF 0, THEN DONE
  2980	011021'	561 02 0 00 017160'		HRROI T2,[ASCIZ/   # /]
  2981	011022'	400 03 0 00 000000 		SETZ T3,
  2982	011023'	104 00 0 00 000053 		SOUT
  2983						LOAD T2,NQNUM,(Q1)	^;GET THE REQUEST NUMBER
  2984	011024'	554 02 0 05 000001 			HLRZ T2,1(Q1)^
  2985	011025'	201 03 0 00 000012 		MOVEI T3,^D10		;DECIMAL
  2986	011026'	104 00 0 00 000224 		NOUT
  2987	011027'	255 00 0 00 000000 		 JFCL
  2988	011030'	561 02 0 00 017162'		HRROI T2,[ASCIZ/ - /]
  2989	011031'	400 03 0 00 000000 		SETZ T3,
  2990	011032'	104 00 0 00 000053 		SOUT
  2991						LOAD T2,NQXTR,(Q1)	^;GET ADDRESS OF EXECUTOR STRING
  2992	011033'	550 02 0 05 000004 			HRRZ T2,4(Q1)^
  2993	011034'	505 02 0 00 440700 		HRLI T2,(POINT 7,)	;FORM POINTER TO NODE NAME STRING
  2994	011035'	402 00 0 00 000003 		SETZM T3		;TERMINATE ON NULL
  2995	011036'	104 00 0 00 000053 		SOUT			;ADD EXECUTOR NODE TO STRING
  2996	011037'	561 02 0 00 017162'		HRROI T2,[ASCIZ/ - /]
  2997	011040'	400 03 0 00 000000 		SETZ T3,
  2998	011041'	104 00 0 00 000053 		SOUT
  2999						LOAD T2,NQMES,(Q1)	^;GET ADR OF ORION MESSAGE
  3000	011042'	554 02 0 05 000000 			HLRZ T2,0(Q1)^
  3001	011043'	260 17 0 00 012474'		CALL BLDCOM		;THROW IN THE COMMAND
  3002						HRROI T2,[ASCIZ/
  3003	011044'	561 02 0 00 016655'	/]
  3004	011045'	400 03 0 00 000000 		SETZ T3,
  3005	011046'	104 00 0 00 000053 		SOUT
  3006	011047'	254 00 0 00 011017'		JRST BLDQUL		;LOOP BACK FOR ALL ENTRIES ON QUEUE
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 72
NCP	MAC	 5-Oct-81 16:46		NCP -- Miscellaneous Routines

  3007
  3008					;ROUTINE TO STORE A NICE MESSAGE ON THE NICE QUEUE
  3009					;ACCEPTS IN T1/ COUNT OF CHARS IN NICE MSG,,ADDRESS OF MESSAGE FROM ORION
  3010					;	    T2/	BYTE POINTER TO NICE MESSAGE
  3011					;	    T3/	BYTE POINTER OF EXECUTOR
  3012					;	    T4/	NICE FUNCTION CODE,,NICE SUB-OPTION
  3013					;	CALL STONIC
  3014					;RETURNS +1:	FAILED
  3015					;	 +2:	NICE MESSAGE IS ON REAR OF NICE QUEUE
  3016
  3017	011050'				STONIC:	ASUBR <STONIM,STONIT,STONIN,STONIF>^
  3018	011050'	265 16 0 00 006077*		JSP .A16,.ASSET		
  3019						LOAD T2,MS.CNT,.MSTYP(T1) ^;GET SIZE OF ORION MESSAGE
  3020	011051'	554 02 0 01 000000 			HLRZ T2,.MSTYP(T1)^
  3021	011052'	271 02 0 01 000000 		ADDI T2,.MSTYP(T1)	;GET ADDRESS OF END OF ORION MESSAGE
  3022	011053'	505 02 0 00 441000 		HRLI T2,(POINT 8,0)	;SET UP BYTE POINTER
  3023	011054'	200 01 0 15 000002 		MOVE T1,STONIT	^^O2(.FP)^	;GET POINTER TO NICE MESSAGE
  3024	011055'	202 02 0 15 000002 		MOVEM T2,STONIT	^^O2(.FP)^	;SAVE NEW POINTER TO NICE MESSAGE
  3025	011056'	554 03 0 15 000001 		HLRZ T3,STONIM	^^O1(.FP)^	;GET THE COUNT OF CHARACTERS
  3026	011057'	210 03 0 00 000003 		MOVN T3,T3		;GET NEG COUNT OF CHARS IN MESSAGE
  3027	011060'	104 00 0 00 000052 		SIN			;MOVE THE MESSAGE TO A PERMANENT PLACE
  3028	011061'	200 02 0 15 000002 		MOVE T2,STONIT	^^O2(.FP)^	;GET POINTER TO NICE MESSAGE
  3029	011062'	554 01 0 15 000001 		HLRZ T1,STONIM	^^O1(.FP)^	;GET NICE MESSAGE COUNT
  3030	011063'	350 00 0 00 000001 		AOS T1			;INSURE SPACING BETWEEN MESSAGES
  3031	011064'	133 01 0 00 000002 		ADJBP T1,T2		;POINT PAST END
  3032	011065'	350 00 0 00 000001 		AOS T1			;MOVE TO NEXT WORD
  3033	011066'	200 04 0 00 000001 		MOVE T4,T1		;SAVE THE ADDRESS
  3034	011067'	560 01 0 00 000001 		HRRO T1,T1		;MAKE INTO SEVEN BIT BYTE POINTER
  3035	011070'	200 02 0 15 000003 		MOVE T2,STONIN	^^O3(.FP)^	;GET THE EXECUTOR STRING
  3036	011071'	400 03 0 00 000000 		SETZ T3,		;COPY WHOLE STRING
  3037	011072'	104 00 0 00 000053 		SOUT
  3038	011073'	550 01 0 15 000001 		HRRZ T1,STONIM	^^O1(.FP)^	;GET ADR OF ORION MESSAGE AGAIN
  3039	011074'	504 01 0 00 000004 		HRL T1,T4		;ADD EXECUTOR STRING ADDRESS
  3040	011075'	550 02 0 15 000002 		HRRZ T2,STONIT	^^O2(.FP)^	;GET ADR OF NICE MESSAGE WITHIN ORION MESS
  3041	011076'	554 03 0 15 000001 		HLRZ T3,STONIM	^^O1(.FP)^	;AND GET COUNT OF CHARS IN NICE MESSAGE
  3042	011077'	350 04 0 00 002047'		AOS T4,REQNUM		;GET A REQUEST NUMBER FOR THIS REQUEST
  3043	011100'	504 03 0 00 000004 		HRL T3,T4		;GET REQ ,, COUNT
  3044	011101'	200 04 0 15 000004 		MOVE T4,STONIF	^^O4(.FP)^	;GET NICE FUNCTION CODE AND OPTION
  3045	011102'	260 17 0 00 013227'		CALL QUENCR		;QUEUE UP THIS MESSAGE
  3046						 RETBAD ()^		;FAILED
  3047	011103'	263 17 0 00 000000 	IFB <>,<	RET>
  3048	011104'	254 00 0 00 010744*		RETSKP^JRST RSKP^
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 73
NCP	MAC	 5-Oct-81 16:46		NCP -- Miscellaneous Routines

  3049
  3050					;ROUTINE TO SEND A NICE MESSAGE
  3051
  3052					;ACCEPTS IN T1/	ADDRESS OF EXECUTOR STRING,,ADDRESS OF ORION MESSAGE
  3053					;	    T2/	POINTER TO NICE MESSAGE
  3054					;	    T3/	REQ NUMBER ,, COUNT OF CHARACTERS IN NICE MESSAGE
  3055					;	    T4/	NICE FUNCTION CODE,,NICE OPTION
  3056					;	CALL SNDNIC
  3057					;RETURNS +1:	ERROR, MESSAGE NOT SENT
  3058					;	 +2:	SUCCESSFUL
  3059
  3060	011105'				SNDNIC:	SAVEQ	^		;SAVE SOME PERMANENT ACS
  3061	011105'	265 16 0 00 014432'		JSP CX,SAVQ
  3062						ASUBR <SNDNIM,SNDNIT,SNDNIN,SNDNIF>^
  3063	011106'	265 16 0 00 011050*		JSP .A16,.ASSET		
  3064	011107'	554 01 0 15 000003 		HLRZ T1,SNDNIN	^^O3(.FP)^	;GET REQUEST NUMBER
  3065	011110'	260 17 0 00 011133'		CALL GETRQI		;GET A REQUEST INDEX
  3066						 RETBAD ()^		;NONE LEFT
  3067	011111'	263 17 0 00 000000 	IFB <>,<	RET>
  3068	011112'	200 05 0 00 000001 		MOVE Q1,T1		;REMEMBER THE INDEX VALUE
  3069	011113'	550 02 0 15 000001 		HRRZ T2,SNDNIM	^^O1(.FP)^	;GET ORION MESSAGE POINTER
  3070	011114'	202 02 0 05 002033'		MOVEM T2,REQMES(Q1)	;SAVE IT FOR LATER
  3071	011115'	201 01 0 05 000001 		MOVEI T1,JFDCHN(Q1)	;GET CHANNEL NUMBER
  3072	011116'	554 02 0 15 000001 		HLRZ T2,SNDNIM	^^O1(.FP)^	;PASS EXECUTOR ADDRESS
  3073	011117'	202 02 0 05 002037'		MOVEM T2,REQXTR(Q1)	;SAVE ADDRESS OF EXECUTOR NODE NAME
  3074	011120'	260 17 0 00 011161'		CALL GETSRJ		;GET A JFN TO NCU
  3075						 JRST [	EXCH T1,Q1	;SAVE THE ERROR CODE
  3076							CALL RELRQI	;RELEASE THE INDEX
  3077							MOVE T1,Q1	;GET BACK THE ERROR CODE
  3078							RETBAD ()^
  3079					IFB <>,<	RET>
  3080	011121'	254 00 0 00 017176'				RETBAD ()]>^]
  3081	011122'	202 01 0 05 002027'		MOVEM T1,JFDTAB(Q1)	;SAVE THE JFN
  3082	011123'	200 02 0 15 000004 		MOVE T2,SNDNIF	^^O4(.FP)^	;GET NICE FUNCTION AND OPTION
  3083	011124'	202 02 0 05 002043'		MOVEM T2,FCNTAB(Q1)	;SAVE NICE FUNCTION AND OPTION
  3084	011125'	200 02 0 15 000002 		MOVE T2,SNDNIT	^^O2(.FP)^	;GET PONTER TO NICE MESSAGE
  3085	011126'	550 03 0 15 000003 		HRRZ T3,SNDNIN	^^O3(.FP)^	;GET COUNT
  3086	011127'	213 00 0 00 000003 		MOVNS T3		;NEED NEGATIVE COUNT FOR SOUTR
  3087	011130'	104 00 0 00 000532 		SOUTR			;OUTPUT THE MESSAGE
  3088						 ERJMP [MOVE T1,Q1	;RELEASE THE INDEX BLOCK
  3089							CALL RELRQI	;...
  3090							MOVEI T1,.FHSLF	;GET ERROR CODE
  3091							GETER
  3092							HRRZ T1,T2
  3093							RETER2()^
  3094					IFB <>,<	JRST STOERC>
  3095	011131'	320 16 0 00 017202'				RETER2 ()]>^]
  3096						RETSKP	^		;DONE
  3097	011132'	254 00 0 00 011104*	JRST RSKP
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 74
NCP	MAC	 5-Oct-81 16:46		NCP -- Miscellaneous Routines

  3098
  3099					;ROUTINE TO GET AN AVAILABLE REQUEST INDEX
  3100					;ACCEPTS IN T1/	REQUEST NUMBER
  3101
  3102	011133'	205 04 0 00 777774 	GETRQI:	MOVSI T4,-NJFN		;SET UP TO LOOP THROUGH ALL INDEXES
  3103	011134'	332 00 0 04 002023'	GETRQ0:	SKIPE REQTAB(T4)	;THIS SLOT FREE?
  3104	011135'	254 00 0 00 011141'		JRST GETRQ1		;NO
  3105	011136'	202 01 0 04 002023'		MOVEM T1,REQTAB(T4)	;SAVE NUMBER IN TABLE
  3106	011137'	550 01 0 00 000004 		HRRZ T1,T4		;RETURN THE INDEX IN T1
  3107	011140'	254 00 0 00 011132*		RETSKP^JRST RSKP^
  3108
  3109	011141'	253 04 0 00 011134'	GETRQ1:	AOBJN T4,GETRQ0		;LOOP BACK FOR ALL ENTRIES
  3110						RETBAD (.ERR16)^		;NO MORE SLOTS LEFT
  3111					IFNB <.ERR16>,<	JRST [	MOVEI T1,.ERR16
  3112	011142'	254 00 0 00 017210'				RET]>>
  3113
  3114
  3115					;ROUTINE TO RELEASE A REQUEST INDEX
  3116
  3117	011143'				RELRQI:	SAVEQ^
  3118	011143'	265 16 0 00 014432'		JSP CX,SAVQ^
  3119	011144'	200 05 0 00 000001 		MOVE Q1,T1		; Save index in permanent AC
  3120	011145'	336 01 0 05 002027'		SKIPN T1,JFDTAB(Q1)	; Any JFN here?
  3121	011146'	254 00 0 00 011156'		JRST RELRQ2		;  No .. just clear up and return
  3122	011147'	104 00 0 00 000022 		CLOSF			; Yes .. close it
  3123	011150'	334 01 0 05 002027'		 SKIPA T1,JFDTAB(Q1)	;  Close failed
  3124	011151'	254 00 0 00 011155'		JRST RELRQ1		; Success .. go clear stored JFN
  3125
  3126						TXO T1,CZ%ABT		^; Insure that link will go away
  3127	011152'	661 01 0 00 004000 		  TLO T1,(..TX1)>>
  3128	011153'	104 00 0 00 000022 		CLOSF			; by closing an aborted link properly
  3129	011154'	255 00 0 00 000000 		 JFCL			;  Should never fail here
  3130	011155'	402 00 0 05 002027'	RELRQ1:	SETZM JFDTAB(Q1)	; Clear the JFN for the DCN:
  3131
  3132	011156'	402 00 0 05 002033'	RELRQ2:	SETZM REQMES(Q1)
  3133	011157'	402 00 0 05 002023'		SETZM REQTAB(Q1)	; Clear this slot
  3134	011160'	263 17 0 00 000000 		RET			; Done
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 75
NCP	MAC	 5-Oct-81 16:46		NCP -- Miscellaneous Routines

  3135
  3136					;ROUTINE TO GET A JFN TO NCU
  3137					;ACCEPTS IN T1/	CHANNEL NUMBER TO PUT JFN ON
  3138					;	    T2/ ADDRESS OF EXECUTOR STRING
  3139					;	CALL GETSRJ
  3140					;RETURNS +1:	FAILED
  3141					;	 +2:	T1/	JFN
  3142
  3143	011161'				GETSRJ:	STKVAR <GETSRC,GETSRH,<GETSRT,20>>^
  3144	011161'	265 16 0 00 010726*		JSP .A16,.STKST
  3145	011162'	000022	000022			 ..STKN,,..STKN
  3146	011163'	202 01 0 17 777776 		MOVEM T1,GETSRC	^-^O2(P)^	;SAVE CHANNEL NUMBER
  3147	011164'	505 02 0 00 440700 		HRLI T2,(POINT 7,)	;MAKE EXECUTOR ADDRESS INTO BYTE POINTER
  3148	011165'	202 02 0 17 777775 		MOVEM T2,GETSRH	^-^O3(P)^	;SAVE
  3149	011166'	561 01 0 17 777755 		HRROI T1,GETSRT	^-^O23(P)^	;GET POINTER TO WHERE TO BUILD STRING
  3150	011167'	400 03 0 00 000000 		SETZ T3,
  3151	011170'	561 02 0 00 017212'		HRROI T2,[ASCIZ/DCN:/]	;BUILD GTJFN STRING TO DCN:NODE-NCU
  3152	011171'	104 00 0 00 000053 		SOUT			;PUT IN DEVICE NAME
  3153	011172'	332 02 0 17 777775 		SKIPE T2,GETSRH	^-^O3(P)^	;ANY EXECUTOR?
  3154	011173'	104 00 0 00 000053 		SOUT			;YES, ADD IN NODE NAME OF EXECUTOR
  3155	011174'	561 02 0 00 017213'		HRROI T2,[ASCIZ/-NCU;PASSWORD:NCU;CHARGE:NCU;USERID:NCU/] ;-NCU
  3156	011175'	104 00 0 00 000053 		SOUT
  3157						MOVX T1,GJ%SHT		^;NOW GET A LINK TO THAT NCU
  3158	011176'	205 01 0 00 000001 		  MOVSI T1,(..MX1)>>	
  3159	011177'	561 02 0 17 777755 		HRROI T2,GETSRT	^-^O23(P)^	;POINTER TO STRING JUST BUILT
  3160	011200'	104 00 0 00 000020 		GTJFN
  3161						 RETER2 ()^		;FAILED TO GET A JFN
  3162	011201'	254 00 0 00 014513'	IFB <>,<	JRST STOERC>
  3163	011202'	202 01 0 17 777775 		MOVEM T1,GETSRH	^-^O3(P)^	;SAVE JFN
  3164	011203'	200 02 0 00 017223'		MOVE T2,[^D8B5+OF%RD+OF%WR]
  3165	011204'	104 00 0 00 000021 		OPENF			;OPEN THE LINK
  3166	011205'	254 00 0 00 011220'		 JRST GETSR1		;FAILED, GO CLEAN UP
  3167	011206'	200 02 0 17 777776 		MOVE T2,GETSRC	^-^O2(P)^	;GET CHANNEL #
  3168						STOR T2,MO%DAV,T3	^;DATA AVAILABLE INTERRUPT
  3169	011207'	137 02 0 00 017224'	>>^,T3,POS(MO%DAV)^<^L<<MO%DAV>&<-<MO%DAV>>>>^>^]^
  3170	011210'	201 02 0 00 000776 		MOVEI T2,.MOCIA		;CLEAR INTERRUPT
  3171						STOR T2,MO%CDN,T3	^;FOR CONNECT
  3172	011211'	137 02 0 00 017225'	>>^,T3,POS(MO%CDN)^<^L<<MO%CDN>&<-<MO%CDN>>>>^>^]^
  3173						STOR T2,MO%INA,T3	^;AND INTERRUPT MESSAGE
  3174	011212'	137 02 0 00 017226'	>>^,T3,POS(MO%INA)^<^L<<MO%INA>&<-<MO%INA>>>>^>^]^
  3175	011213'	201 02 0 00 000024 		MOVEI T2,.MOACN		;SET UP INTERRUPT CONDITIONS
  3176	011214'	104 00 0 00 000077 		MTOPR
  3177	011215'	320 16 0 00 011220'		 ERJMP GETSR1		;FAILED
  3178	011216'	200 01 0 17 777775 		MOVE T1,GETSRH	^-^O3(P)^	;GET BACK THE JFN
  3179						RETSKP	^		;AND RETURN
  3180	011217'	254 00 0 00 011140*	JRST RSKP
  3181
  3182	011220'	202 01 0 17 777776 	GETSR1:	MOVEM T1,GETSRC	^-^O2(P)^	;SAVE THE ERROR CODE
  3183	011221'	200 01 0 17 777775 		MOVE T1,GETSRH	^-^O3(P)^	;GET JFN
  3184	011222'	104 00 0 00 000022 		CLOSF			;CLOSE IT
  3185	011223'	334 01 0 17 777775 		 SKIPA T1,GETSRH	^-^O3(P)^;FAILED, TRY TO RELEASE IT
  3186	011224'	334 00 0 00 000000 		SKIPA
  3187	011225'	104 00 0 00 000023 		RLJFN			;RELEASE JFN
  3188	011226'	255 00 0 00 000000 		 JFCL
  3189	011227'	200 01 0 17 777776 		MOVE T1,GETSRC	^-^O2(P)^	;GET ERROR CODE AGAIN
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 75-1
NCP	MAC	 5-Oct-81 16:46		NCP -- Miscellaneous Routines

  3190						RETER2 ()^
  3191	011230'	254 00 0 00 014513'	IFB <>,<	JRST STOERC>
  3192
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 76
NCP	MAC	 5-Oct-81 16:46		NCP -- Miscellaneous Routines

  3193
  3194					;SET MONITORING
  3195
  3196	011231'	254 00 0 00 006055'	SETMON:	JRST DOREQE
  3197
  3198					;SET PASSWORD
  3199
  3200	011232'	254 00 0 00 006055'	SETPSW:	JRST DOREQE
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 77
NCP	MAC	 5-Oct-81 16:46		NCP -- Miscellaneous Routines

  3201
  3202					;ROUTINE TO HANDLE FORK TERMINATIONS
  3203
  3204	011233'				DOFKT:	STKVAR <<DOFKTS,40>>^
  3205	011233'	265 16 0 00 011161*		JSP .A16,.STKST
  3206	011234'	000040	000040			 ..STKN,,..STKN
  3207	011235'	205 07 0 00 777774 		MOVSI Q3,-NJFN		;SET UP TO LOOK AT ALL FORKS
  3208	011236'	400 06 0 00 000000 		SETZ Q2,		;INITIALIZE ERROR REGISTER
  3209	011237'	336 01 0 07 002013'	DOFKTL:	SKIPN T1,FRKTAB(Q3)	;ANY FORK HERE?
  3210	011240'	254 00 0 00 011300'		JRST DOFKT1		;NO, SKIP IT
  3211	011241'	104 00 0 00 000156 		RFSTS			;YES, GET ITS STATUS
  3212	011242'	320 16 0 00 011262'		 ERJMP DOFKT0		;IF ERROR, GO DELETE THIS FORK
  3213	011243'	641 01 0 00 777777 		TLC T1,-1		;IS THE FORK EXISTENT?
  3214	011244'	647 01 0 00 777777 		TLCN T1,-1		;LH = -1 MEANS NOT EXISTENT
  3215	011245'	254 00 0 00 011262'		JRST DOFKT0		;NOT EXISTENT, GO DELETE IT
  3216	011246'	135 01 0 00 017227'		LDB T1,[POINT 17,T1,17]	;GET THE CODE
  3217	011247'	302 01 0 00 000005 		CAIE T1,.RFSLP		;SLEEPING?
  3218	011250'	306 01 0 00 000004 		CAIN T1,.RFWAT		;OR IO WAIT?
  3219	011251'	254 00 0 00 011300'		JRST DOFKT1		;YES, SKIP THIS ONE
  3220	011252'	302 01 0 00 000000 		CAIE T1,.RFRUN		;RUNNING
  3221	011253'	306 01 0 00 000001 		CAIN T1,.RFIO		;OR IO WAIT?
  3222	011254'	254 00 0 00 011300'		JRST DOFKT1		;YES, SKIP THIS ONE
  3223	011255'	306 01 0 00 000003 		CAIN T1,.RFFPT		;FORCED TERMINATION?
  3224						JRST [	MOVEI T1,.ERR17	;YES, FORK CRASHED
  3225							HRROI T2,DOFKTS	^-^O41(P)^;GET POINTER TO STRING TO GET ERROR MES
  3226							MOVE T3,FRKTAB(Q3)
  3227							CALL ERRORB	;BUILD ERROR STRING FOR THIS FORK'S ERROR
  3228							SETZM T1	;NO TEXT
  3229							HRROI T2,DOFKTS	^-^O41(P)^;NOW TELL THIS TO THE OPR
  3230							CALL OPRMES
  3231							 NON.FATAL.ERROR^
  3232					IFB <>,<	CALL WRNING>
  3233	011256'	254 00 0 00 017230'			JRST .+1]
  3234	011257'	200 01 0 07 002013'		MOVE T1,FRKTAB(Q3)	;FORK HAS STOPPED
  3235	011260'	104 00 0 00 000153 		KFORK			;KILL IT
  3236	011261'	320 16 0 00 011262'		 ERJMP .+1
  3237	011262'	402 00 0 07 002013'	DOFKT0:	SETZM FRKTAB(Q3)	;ZERO THE HALDLE
  3238	011263'	200 01 0 07 002007'		MOVE T1,JFNTAB(Q3)	;GET THE JFN
  3239	011264'	104 00 0 00 000022 		CLOSF			;CLOSE IT
  3240	011265'	334 01 0 07 002007'		 SKIPA T1,JFNTAB(Q3)	;FAILED, RELEASE IT
  3241	011266'	334 00 0 00 000000 		SKIPA
  3242	011267'	104 00 0 00 000023 		RLJFN
  3243	011270'	255 00 0 00 000000 		 JFCL
  3244	011271'	402 00 0 07 002007'		SETZM JFNTAB(Q3)	;NO MORE JFN
  3245						PIOFF^
  3246	011272'	260 17 0 00 014406'		CALL PIOFF.^
  3247	011273'	201 01 0 07 000027 		MOVEI T1,JFNCHN(Q3)	;GET CHANNEL NUMBER FOR THIS JFN
  3248	011274'	260 17 0 00 015214'		CALL GETJFN		;GO CREATE A NEW JFN
  3249						 JRST [	PION^
  3250						CALL PION.^
  3251							MOVEI T1,Q2	;SAVE THE ERROR CODE
  3252	011275'	254 00 0 00 017241'			JRST DOFKT1]	;LOOP FOR ALL OTHER FORKS
  3253	011276'	202 01 0 07 002007'		MOVEM T1,JFNTAB(Q3)	;SAVE THE JFN NUMBER
  3254						PION^
  3255	011277'	260 17 0 00 014413'		CALL PION.^
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 77-1
NCP	MAC	 5-Oct-81 16:46		NCP -- Miscellaneous Routines

  3256	011300'	253 07 0 00 011237'	DOFKT1:	AOBJN Q3,DOFKTL		;LOOP BACK FOR ALL FORKS
  3257	011301'	336 01 0 00 000006 		SKIPN T1,Q2		;ANY ERRORS HAPPEN?
  3258						RETSKP	^		;NO, DONE
  3259	011302'	254 00 0 00 011217*	JRST RSKP
  3260						RETBAD ()^		;YES
  3261	011303'	263 17 0 00 000000 	IFB <>,<	RET>
  3262
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 78
NCP	MAC	 5-Oct-81 16:46		NCP -- Miscellaneous Routines

  3263					;ROUTINE TO HANDLE A DATA INTERRUPT OR DISCONNECT INTERRUPT FROM
  3264					;	A JFN
  3265
  3266	011304'				DOJFD:	STKVAR <<DOJFDM,200>,DORMSG,DORCTr,dortxt,DOJHLD>^
  3267	011304'	265 16 0 00 011233*		JSP .A16,.STKST
  3268	011305'	000204	000204			 ..STKN,,..STKN
  3269						LOAD Q1,QUEMES,(T1)	^;GET THE JFN INDEX
  3270	011306'	554 05 0 01 000000 			HLRZ Q1,0(T1)^
  3271	011307'	336 01 0 05 002027'		SKIPN T1,JFDTAB(Q1)	;GET JFN
  3272						 RETSKP	^		;AND IGNORE THE REQUEST IF NO JFN ASSIGNED
  3273	011310'	254 00 0 00 011302*	JRST RSKP
  3274	011311'	104 00 0 00 000102 		SIBE			;ANY CHARACTERS THERE?
  3275	011312'	304 00 0 00 000000 		 CAIA			;YES
  3276						JRST [MOVE T1,JFDTAB(Q1) ;NO, CHECK FOR DISCONNECT OF LINK
  3277						      MOVX T2,.MORLS	^
  3278						  MOVEI T2,..MX1>	
  3279						      MTOPR
  3280						      ERJMP [SETZ Q2,	;ERROR FAILURE
  3281							     JRST DOJFD1] ;JOIN COMMON CODE
  3282						      TXNE T3,MO%CON	^
  3283						  TLNE T3,(..TX1)>>
  3284						      RETSKP	^JRST RSKP^	;YES, JUST IGNORE REQUEST
  3285						      MOVX Q2,.NRNCE	^
  3286						  HRROI Q2,<..MX1>>>	
  3287	011313'	254 00 0 00 017246'		      JRST DOJFD1]	;JOIN COMMON CODE
  3288		 
  3289	011314'	200 01 0 05 002027'		MOVE T1,JFDTAB(Q1)	;GET JFN
  3290	011315'	201 02 0 17 777576 		MOVEI T2,DORMSG	^-^O202(P)^	;ADR OF NICE MESSAGE BUFFER
  3291	011316'	505 02 0 00 441000 		HRLI T2,(POINT 8,)	;MAKE INTO BYTE POINTER
  3292	011317'	211 03 0 00 000003 		MOVNI T3,3		;MAXIMUM MESSAGE SIZE
  3293	011320'	104 00 0 00 000531 		SINR			;READ ANSWER BYTE INTO T4
  3294						 ERJMP [SETZ Q2,	;IF FAILED
  3295	011321'	320 16 0 00 017244'			JRST DOJFD1 ]	; SEND FAILURE CODE 0
  3296	011322'	201 03 0 03 000002 		MOVEI T3,2(T3)		;MAKES NUMBER OF BYTES IN MESSAGE
  3297	011323'	202 03 0 17 777575 		MOVEM T3,DORCTR	^-^O203(P)^	;REMEMBER HOW MANY BYTES LEFT
  3298	011324'	200 04 0 17 777576 		MOVE T4,DORMSG	^-^O202(P)^	;GET FIRST BYTE FROM MSCDGE(LEFT JUSTIFIED)
  3299	011325'	240 04 0 00 777744 		ASH T4,-^D28		;SIGN EXTEND THE ERROR CODE
  3300	011326'	200 06 0 00 000004 		MOVE Q2,T4		;SAVE THE ERROR CODE
  3301	011327'	561 01 0 17 777577 	DOJFD1:	HRROI T1,DOJFDM	^-^O201(P)^	;GET POINTER TO MESSAGE SPACE
  3302	011330'	561 02 0 00 017256'		HRROI T2,[ASCIZ/NCP request # /]
  3303	011331'	400 03 0 00 000000 		SETZ T3,
  3304	011332'	104 00 0 00 000053 		SOUT			;BUILD THE RESPONSE MESSAGE
  3305	011333'	200 02 0 05 002023'		MOVE T2,REQTAB(Q1)	;GET THE REQUEST NUMBER
  3306	011334'	201 03 0 00 000012 		MOVEI T3,^D10		;DECIMAL NUMBER
  3307	011335'	104 00 0 00 000224 		NOUT			;PUT NUMBER INTO STRING
  3308	011336'	255 00 0 00 000000 		 JFCL
  3309	011337'	561 02 0 00 017261'		HRROI T2,[ASCIZ/ [/]
  3310	011340'	400 03 0 00 000000 		SETZ T3,
  3311	011341'	104 00 0 00 000053 		SOUT			;NOW TYPE OUT THE OPR COMMAND
  3312	011342'	200 02 0 05 002033'		MOVE T2,REQMES(Q1)	;GET THE ADR OF THE ORION MESSAGE
  3313	011343'	260 17 0 00 012474'		CALL BLDCOM		;ADD THE OPR COMMAND TO THE STRING
  3314	011344'	561 02 0 00 017262'		HRROI T2,[ASCIZ/]/]
  3315	011345'	400 03 0 00 000000 		SETZ T3,
  3316	011346'	104 00 0 00 000053 		SOUT
  3317	011347'	133 00 0 00 000001 		IBP T1			;SKIP OVER THE NULL
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 78-1
NCP	MAC	 5-Oct-81 16:46		NCP -- Miscellaneous Routines

  3318	011350'	202 01 0 17 777574 		MOVEM T1,DORTXT	^-^O204(P)^	;SAVE POINTER TO START OF TEXT
  3319	011351'	200 03 0 17 777575 		MOVE T3,DORCTR	^-^O203(P)^	;Get count of bytes left in header string
  3320	011352'	321 06 0 00 011363'		JUMPL Q2,DOJFD6		;If an error code was found, go say so.
  3321	011353'	201 02 0 17 777576 		MOVEI T2,DORMSG	^-^O202(P)^	;GET ADDRESS OF MESSAGE
  3322	011354'	554 04 0 05 002043'		HLRZ T4,FCNTAB(Q1)	;GET NICE FUNCTION CODE
  3323	011355'	303 04 0 00 000011 		CAILE T4,SHOLEN		;WITHIN RANGE ?
  3324	011356'	254 00 0 00 011363'		JRST DOJFD6		;NO, JUST FINISH UP
  3325	011357'	550 07 0 05 002043'		HRRZ Q3,FCNTAB(Q1)	;GET NICE OPTION CODE
  3326	011360'	202 01 0 17 777573 		MOVEM T1,DOJHLD	^-^O205(P)^	;SAVE STRING POINTER IN CASE OF FAILURE
  3327						;..
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 79
NCP	MAC	 5-Oct-81 16:46		NCP -- Miscellaneous Routines

  3328						;..
  3329
  3330	011361'	260 17 1 04 011413'		CALL @SHOTAB(T4)	;GO DO REQUEST
  3331						 JRST [	MOVE T1,DOJHLD	^-^O205(P)^;GET STRING POINTER
  3332							SETZM DOJHLD	^-^O205(P)^;INDICATE WHICH ERROR MESSAGE
  3333	011362'	254 00 0 00 017263'			JRST .+1]
  3334					; HERE TO ASSEMBLE TEXT REPLY AND SEND IT TO OPR
  3335
  3336	011363'	561 02 0 00 017266'	DOJFD6:	HRROI T2,[ASCIZ/	  /] ;GET SPACING
  3337	011364'	402 00 0 00 000003 		SETZM T3		;TERMINATE ON NULL
  3338	011365'	104 00 0 00 000053 		SOUT			;ADD PUNCTUATION TO STRING
  3339	011366'	327 06 0 00 011372'		JUMPG Q2,DOJFD7		;SUCCESSFUL REQUEST ?
  3340	011367'	561 02 0 00 017267'		HRROI T2,[ASCIZ/? Request failed, /]
  3341	011370'	402 00 0 00 000003 		SETZM T3		;TERMINATE ON NULL
  3342	011371'	104 00 0 00 000053 		SOUT			;PRECEDE MESSAGE WITH ERROR INDICATION
  3343	011372'	271 06 0 00 000025 	DOJFD7:	ADDI Q2,JFDMSO		;ADD IN OFFSET 
  3344	011373'	331 00 0 00 000006 		SKIPL Q2		;LEGAL ERROR CODE
  3345	011374'	301 06 0 00 000027 		CAIL Q2,JFDMSL
  3346	011375'	334 02 0 00 017301'		SKIPA T2,[-1,,[ASCIZ/? Unknown NICE error code/]]
  3347	011376'	560 02 0 06 012140'		HRRO T2,JFDMES(Q2)	;GET THE ANSWER STRING
  3348	011377'	402 00 0 00 000003 		SETZM T3		;TERMINATE ON NULL
  3349	011400'	104 00 0 00 000053 		SOUT			;PUT THE TEXT STRING IN THE MESSAGE
  3350	011401'	561 02 0 17 777577 		HRROI T2,DOJFDM	^-^O201(P)^	;GET A POINTER TO THE MESSAGE
  3351	011402'	200 01 0 17 777574 		MOVE T1,DORTXT	^-^O204(P)^	;GET POINTER TO TEXT
  3352	011403'	260 17 0 00 014575'		CALL OPRMES		;SEND THE ANSWER BACK TO THE OPR
  3353						 NON.FATAL.ERROR^
  3354	011404'	260 17 0 00 014473'	IFB <>,<	CALL WRNING>
  3355	011405'	200 01 0 05 002033'		MOVE T1,REQMES(Q1)	;GET THE ADDRESS OF THE ORION MESSAGE
  3356	011406'	260 17 0 00 014267'		CALL RELPGA		;RELEASE IT
  3357						 NON.FATAL.ERROR^
  3358	011407'	260 17 0 00 014473'	IFB <>,<	CALL WRNING>
  3359	011410'	200 01 0 00 000005 		MOVE T1,Q1		;NOW RELEASE THE REQUEST BLOCK
  3360	011411'	260 17 0 00 011143'		CALL RELRQI		;...
  3361						RETSKP	^		;DONE
  3362	011412'	254 00 0 00 011310*	JRST RSKP
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 80
NCP	MAC	 5-Oct-81 16:46		NCP -- Miscellaneous Routines

  3363					; TABLE OF ROUTINES TO HANDLE REPLIES FROM NICE PROCESSES
  3364
  3365	011413'	000000000000#		SHOTAB:	R			;ILLEGAL
  3366	011414'	000000000000#			R			;ILLEGAL
  3367	011415'	000000000000#			R			;ILLEGAL
  3368	011416'	000000000000#			R			;ILLEGAL
  3369	011417'	000000000000#			R			;ILLEGAL
  3370	011420'	000000000000#			R			;ILLEGAL
  3371	011421'	000000	011432'			LOPTST			;.NCTST - RESPONSE TO A NICE TEST REQUEST
  3372	011422'	000000000000#			R			;ILLEGAL
  3373	011423'	000027	011424'			@REDTAB(Q3)		;READ INFORMATION BASED ON OPTION
  3374
  3375			000011		SHOLEN==.-SHOTAB
  3376
  3377
  3378					; TABLE OF ROUTINES TO HANDLE REPLIES TO READ INFORMATION REQUESTS
  3379
  3380	011424'	000000000000#		REDTAB:	R			;LOCAL NODE COUNTERS
  3381	011425'	000000	011463'			LCLSTS			;LOCAL NODE STATUS
  3382	011426'	000000000000#			R			;REMOTE NODE COUNTERS
  3383	011427'	000000	011703'			REMSTS			;REMOTE NODE STATUS
  3384	011430'	000000	012023'			LINCTR			;LINE COUNTERS
  3385	011431'	000000	012167'			LINSTS			;LINE STATUS
  3386
  3387			000006		REDLEN==.-REDTAB
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 81
NCP	MAC	 5-Oct-81 16:46		NCP -- Miscellaneous Routines

  3388					;LOPTST - ROUTINE TO SHOW EFFECTS OF LOOP COMMAND
  3389
  3390	011432'				LOPTST:	STKVAR <LOPHLD>^
  3391	011432'	265 16 0 00 011304*		JSP .A16,.STKST
  3392	011433'	000001	000001			 ..STKN,,..STKN
  3393	011434'	202 01 0 17 777776 		MOVEM T1,LOPHLD	^-^O2(P)^	;SAVE THE STRING POINTER
  3394	011435'	200 01 0 00 000002 		MOVE T1,T2		;T1<= NICE MESSAGE POINTER
  3395	011436'	505 01 0 00 441000 		HRLI T1,(POINT 8,)	;IT'S THE SECOND BYTE IN THE MESSAGE
  3396	011437'	133 00 0 00 000001 		IBP T1
  3397	011440'	200 02 0 00 000003 		MOVE T2,T3		;GET NUMBER OF BYTES LEFT IN NICE MSG
  3398	011441'	260 17 0 00 000000*		CALL GETTWO		;GET COUNT OF BLOCKS NOT PROCESSED
  3399						 RETBAD			^;ERROR - RETURN
  3400	011442'	263 17 0 00 000000 	IFB <>,<	RET>
  3401	011443'	200 01 0 17 777776 		MOVE T1,LOPHLD	^-^O2(P)^	;GET ANSWER STRING POINTER
  3402	011444'	202 03 0 17 777776 		MOVEM T3,LOPHLD	^-^O2(P)^	;SAVE THE BLOCK COUNT
  3403	011445'	561 02 0 00 017302'		HRROI T2,[ASCIZ\Count of blocks not looped = \]
  3404	011446'	400 03 0 00 000000 		SETZ T3,		;WRITE WHOLE STRING
  3405	011447'	104 00 0 00 000053 		SOUT
  3406						 ERJMP [RETBAD^
  3407					IFB <>,<	RET>
  3408	011450'	320 16 0 00 016677'				RETBAD ()]>^]		;ERROR RETURN	
  3409	011451'	200 02 0 17 777776 		MOVE T2,LOPHLD	^-^O2(P)^	;GET THE COUNT
  3410	011452'	201 03 0 00 000012 		MOVEI T3,^D10		;WRITE IT OUT IN  DECIMAL
  3411	011453'	104 00 0 00 000224 		NOUT
  3412						 ERJMP [RETBAD^
  3413					IFB <>,<	RET>
  3414	011454'	320 16 0 00 016677'				RETBAD ()]>^]
  3415						HRROI T2,[ASCIZ/.
  3416	011455'	561 02 0 00 017310'	/]
  3417	011456'	104 00 0 00 000053 		SOUT
  3418	011457'	200 02 0 00 000001 		MOVE T2,T1		;BACKUP POINTER 
  3419	011460'	561 01 0 00 777777 		HRROI T1,-1
  3420	011461'	133 01 0 00 000002 		ADJBP T1,T2
  3421	011462'	254 00 0 00 011412*		RETSKP^JRST RSKP^
  3422	
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 82
NCP	MAC	 5-Oct-81 16:46		NCP -- Miscellaneous Routines

  3423					;LCLSTS - ROUTINE TO RETURN LOCAL NODE STATUS
  3424
  3425	011463'				LCLSTS:	STKVAR <LNJPTR,LNJCTR,<LNRMSG,100>,LNRCTR,LNJNUM,<LNJSYS,10>,<LNJRVR,3>,<LNJCVR,3>,L
  3426					NJSTA,<LNJHST,2>,LNJLEN>^
  3427	011463'	265 16 0 00 011432*		JSP .A16,.STKST
  3428	011464'	000126	000126			 ..STKN,,..STKN
  3429	011465'	202 01 0 17 777776 		MOVEM T1,LNJPTR	^-^O2(P)^	;SAVE POINTER TO RESPONSE MESSAGE
  3430	011466'	200 01 0 00 000002 		MOVE T1,T2		;COPY ADDRESS OF NICE MESSAGE
  3431	011467'	505 01 0 00 341000 		HRLI T1,341000		;POINT TO 2ND BYTE IN MESSAGE
  3432	011470'	200 02 0 00 000003 		MOVE T2,T3		;GET NUMBER OF BYTES LEFT IN NICE MSG
  3433	011471'	260 17 0 00 011441*		CALL GETTWO		;GET NUMBER OF RESPONSE MESSAGES
  3434	011472'	263 17 0 00 000000 		 RET			;FAILED
  3435	011473'	202 03 0 17 777674 		MOVEM T3,LNRCTR	^-^O104(P)^	;SAVE NUMBER OF BLOCKS TO FOLLOW
  3436	011474'	250 01 0 17 777776 		EXCH T1,LNJPTR	^-^O2(P)^	;GET RESPONSE MESSAGE POINTER
  3437						HRROI T2,[ASCIZ \
  3438	011475'	561 02 0 00 017311'	Status of local node as of \]
  3439	011476'	400 03 0 00 000000 		SETZ T3,
  3440	011477'	104 00 0 00 000053 		SOUT
  3441	011500'	320 16 0 00 011020*		 ERJMP R		;FAIL
  3442	011501'	476 00 0 00 000002 		SETOM T2		;CURRENT DATE AND TIME
  3443	011502'	200 03 0 00 017317'		MOVE T3,[OT%SCL]
  3444	011503'	104 00 0 00 000220 		ODTIM			;ADD TIME AND DATE
  3445	011504'	320 16 0 00 011500*		 ERJMP R		;FAIL
  3446						HRROI T2,[ASCIZ/
  3447
  3448	011505'	561 02 0 00 017320'	Node Name is /]
  3449	011506'	400 03 0 00 000000 		SETZ T3,
  3450	011507'	104 00 0 00 000053 		SOUT
  3451	011510'	320 16 0 00 011504*		 ERJMP R		;FAIL
  3452	011511'	202 01 0 17 777776 		MOVEM T1,LNJPTR	^-^O2(P)^	;SAVE MESSAGE POINTER
  3453	011512'	200 01 0 05 002027'		MOVE T1,JFDTAB(Q1)	;GET JFN FOR MESSSAGES
  3454	011513'	201 02 0 17 777675 		MOVEI T2,LNRMSG	^-^O103(P)^	;POINT TO MESSAGE BUFFER
  3455	011514'	505 02 0 00 441000 		HRLI T2,(POINT 8,)	;MAKE IT INTO A BYTE POINTER
  3456	011515'	211 03 0 00 000400 		MOVNI T3,4*100		;MAXIMUM SIZE OF MESSAGE
  3457	011516'	104 00 0 00 000531 		SINR			;READ NEXT BLOCK
  3458	011517'	320 16 0 00 011510*		 ERJMP R		;FAIL
  3459	011520'	201 01 0 17 777675 		MOVEI T1,LNRMSG	^-^O103(P)^	;POINT TO MESSAGE BUFFER
  3460	011521'	505 01 0 00 441000 		HRLI T1,(POINT 8,)	;MAKE IT INTO A BYTE POINTER
  3461	011522'	201 02 0 03 000400 		MOVEI T2,4*100(T3)	;MAKES NUMBER OF BYTES WE READ
  3462	011523'	134 03 0 00 000001 		ILDB T3,T1		;GET CODE
  3463	011524'	306 03 0 00 000001 		CAIN T3,.RDLNS		;WAS THIS LOCAL STATUS ?
  3464	011525'	375 00 0 00 000002 		SOSGE T2		;ADJUST COUNT
  3465	011526'	263 17 0 00 000000 		 RET			;NOT ENOUGH BYTES
  3466	011527'	200 03 0 17 777776 		MOVE T3,LNJPTR	^-^O2(P)^	;GET TEXT POINTER
  3467	011530'	260 17 0 00 000000*		CALL GETIMA		;EXTRACT NODE NAME FROM MESSAGE
  3468	011531'	263 17 0 00 000000 		 RET			;FAILED, RETURN ERROR
  3469	011532'	202 01 0 17 777776 		MOVEM T1,LNJPTR	^-^O2(P)^	;SAVE POINTER INTO NICE MESSAGE
  3470	011533'	202 02 0 17 777775 		MOVEM T2,LNJCTR	^-^O3(P)^	;SAVE NUMBER OF BYTES LEFT
  3471	011534'	200 01 0 00 000003 		MOVE T1,T3		;GET TEXT POINTER
  3472	011535'	104 00 0 00 000042 		BKJFN			;OVERWRITE THE NULL
  3473	011536'	320 16 0 00 011517*		 ERJMP R		;FAILED
  3474	011537'	561 02 0 00 017324'		HRROI T2,[ASCIZ/, # /]	;AND TEXT TO OUTPUT
  3475	011540'	402 00 0 00 000003 		SETZM T3		;TERMINATE NULL
  3476	011541'	104 00 0 00 000053 		SOUT			;OUTPUT THE TEXT
  3477	011542'	250 01 0 17 777776 		EXCH T1,LNJPTR	^-^O2(P)^	;GET NICE POINTER AGAIN, SAVE TEXT PTR
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 82-1
NCP	MAC	 5-Oct-81 16:46		NCP -- Miscellaneous Routines

  3478	011543'	200 02 0 17 777775 		MOVE T2,LNJCTR	^-^O3(P)^	;AND COUNT
  3479	011544'	260 17 0 00 000000*		CALL GETNUM		;GET NODE NUMBER FROM NICE MESSAGE
  3480	011545'	263 17 0 00 000000 		 RET			;FAILED
  3481	011546'	202 04 0 17 777673 		MOVEM T4,LNJNUM	^-^O105(P)^	;SAVE NODE NUMBER
  3482	011547'	275 02 0 00 000003 		SUBI T2,3		;AT LEAST ANOTHER 3 BYTES LEFT ?
  3483	011550'	321 02 0 00 011536*		JUMPL T2,R		;NO, FAIL
  3484	011551'	134 04 0 00 000001 		ILDB T4,T1		;YES, GET NODE STATE
  3485	011552'	202 04 0 17 777654 		MOVEM T4,LNJSTA	^-^O124(P)^	;SAVE STATE
  3486	011553'	134 04 0 00 000001 		ILDB T4,T1		;GET MAINTENANCE LOGGING STATE
  3487	011554'	134 04 0 00 000001 		ILDB T4,T1		;AND OPERATOR LOGGING STATE
  3488	011555'	541 03 0 17 777652 		HRRI T3,LNJHST	^-^O126(P)^	;GET ADDRESS WHERE HOST NAME GOES
  3489	011556'	505 03 0 00 440700 		HRLI T3,(POINT 7,)	;AND FORM POINTER TO HOST NAME
  3490	011557'	260 17 0 00 011530*		CALL GETIMA		;GET DEFAULT HOST NAME
  3491	011560'	263 17 0 00 000000 		 RET			;FAILED
  3492	011561'	202 04 0 17 777651 		MOVEM T4,LNJLEN	^-^O127(P)^	;SAVE LENGTH OF HOST NAME
  3493	011562'	275 02 0 00 000006 		SUBI T2,6		;ENOUGH BYTES LEFT FOR VERSIONS ?
  3494	011563'	321 02 0 00 011550*		JUMPL T2,R		;NO, FAIL
  3495	011564'	134 04 0 00 000001 		ILDB T4,T1		;GET A VERSION BYTE
  3496	011565'	202 04 0 17 777660 		MOVEM T4,LNJRVR	^-^O120(P)^	;SAVE FIRST BYTE
  3497	011566'	134 04 0 00 000001 		ILDB T4,T1		;GET A BYTE
  3498	011567'	202 04 0 17 777661 		MOVEM T4,1+LNJRVR	^-^O120(P)^;SAVE IT
  3499	011570'	134 04 0 00 000001 		ILDB T4,T1		;GET LAST BYTE
  3500	011571'	202 04 0 17 777662 		MOVEM T4,2+LNJRVR	^-^O120(P)^;SAVE LAST BYTE
  3501	011572'	134 04 0 00 000001 		ILDB T4,T1		;GET FIRST COMM VER BYTE
  3502	011573'	202 04 0 17 777655 		MOVEM T4,LNJCVR	^-^O123(P)^	;SAVE IT
  3503	011574'	134 04 0 00 000001 		ILDB T4,T1		;GET NEXT BYTE
  3504	011575'	202 04 0 17 777656 		MOVEM T4,1+LNJCVR	^-^O123(P)^;SAVE IT
  3505	011576'	134 04 0 00 000001 		ILDB T4,T1		;GET LAST BYTE
  3506	011577'	202 04 0 17 777657 		MOVEM T4,2+LNJCVR	^-^O123(P)^;SAVE LAST VERSION BYTE
  3507	011600'	541 03 0 17 777663 		HRRI T3,LNJSYS	^-^O115(P)^	;GET ADDRESS WHERE SYS NAME GOES
  3508	011601'	505 03 0 00 440700 		HRLI T3,(POINT 7,)	;FORM POINTER TO NAME
  3509	011602'	260 17 0 00 011557*		CALL GETIMA		;GET SYSTEM ID
  3510	011603'	263 17 0 00 000000 		 RET			;FAILED
  3511	011604'	250 01 0 17 777776 		EXCH T1,LNJPTR	^-^O2(P)^	;GET BACK TEXT POINTER
  3512	011605'	202 02 0 17 777775 		MOVEM T2,LNJCTR	^-^O3(P)^	;SAVE COUNT OF BYTES LEFT IN MESSAGE
  3513	011606'	200 02 0 17 777673 		MOVE T2,LNJNUM	^-^O105(P)^	;GET BINARY NODE NUMBER
  3514						MOVX T3,^D10		^;USE DECIMAL
  3515	011607'	201 03 0 00 000012 		  MOVEI T3,..MX1>	
  3516	011610'	104 00 0 00 000224 		NOUT			;ADD NODE NUMBER TO RESPONSE
  3517	011611'	320 16 0 00 011563*		 ERJMP R		;FAILED, RETURN ERROR
  3518	011612'	561 02 0 00 017325'		HRROI T2,[ASCIZ/, System = /] ;GET MORE TEXT
  3519	011613'	402 00 0 00 000003 		SETZM T3		;TERMINATE ON NULL
  3520	011614'	104 00 0 00 000053 		SOUT			;OUTPUT TEXT
  3521	011615'	561 02 0 17 777663 		HRROI T2,LNJSYS	^-^O115(P)^	;GET ADDRESS OF SYSTEM NAME
  3522	011616'	104 00 0 00 000053 		SOUT			;OUTPUT SYSTEM NAME
  3523						HRROI T2,[ASCIZ/
  3524	011617'	561 02 0 00 017330'	Routing Version = /]		;OUTPUT VERSION
  3525	011620'	104 00 0 00 000053 		SOUT			;OUTPUT TEXT
  3526	011621'	200 02 0 17 777660 		MOVE T2,LNJRVR	^-^O120(P)^	;GET FIRST VERSION NUMBER BYTE
  3527						MOVX T3,^D10		^;USE DECIMAL
  3528	011622'	201 03 0 00 000012 		  MOVEI T3,..MX1>	
  3529	011623'	104 00 0 00 000224 		NOUT			;OUTPUT VERSION BYTE
  3530	011624'	320 16 0 00 011611*		 ERJMP R		;FAILED
  3531						MOVX T2,"."		^;GET PUNCTUATION
  3532	011625'	201 02 0 00 000056 		  MOVEI T2,..MX1>	
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 82-2
NCP	MAC	 5-Oct-81 16:46		NCP -- Miscellaneous Routines

  3533	011626'	104 00 0 00 000051 		BOUT			;OUTPUT A PERIOD
  3534	011627'	200 02 0 17 777661 		MOVE T2,1+LNJRVR	^-^O120(P)^;GET NEXT PART OF VERSION
  3535	011630'	104 00 0 00 000224 		NOUT			;OUTPUT VERSION BYTE
  3536	011631'	320 16 0 00 011624*		 ERJMP R		;FAILED
  3537						MOVX T2,"."		^;GET PUNCTUATION
  3538	011632'	201 02 0 00 000056 		  MOVEI T2,..MX1>	
  3539	011633'	104 00 0 00 000051 		BOUT			;OUTPUT A PERIOD
  3540	011634'	200 02 0 17 777662 		MOVE T2,2+LNJRVR	^-^O120(P)^;GET NEXT PART OF VERSION
  3541	011635'	104 00 0 00 000224 		NOUT			;OUTPUT VERSION BYTE
  3542	011636'	320 16 0 00 011631*		 ERJMP R		;FAILED
  3543	011637'	561 02 0 00 017335'		HRROI T2,[ASCIZ/, Communications Version = /]
  3544	011640'	402 00 0 00 000003 		SETZM T3		;TERMINATE ON NULL
  3545	011641'	104 00 0 00 000053 		SOUT			;OUTPUT HEADING
  3546						MOVX T3,^D10		^;USE DECIMAL
  3547	011642'	201 03 0 00 000012 		  MOVEI T3,..MX1>	
  3548	011643'	200 02 0 17 777655 		MOVE T2,LNJCVR	^-^O123(P)^	;GET FIRST PART OF VERSION
  3549	011644'	104 00 0 00 000224 		NOUT			;OUTPUT THE BYTE
  3550	011645'	320 16 0 00 011636*		 ERJMP R		;FAILED
  3551						MOVX T2,"."		^;GET PUNCTUATION
  3552	011646'	201 02 0 00 000056 		  MOVEI T2,..MX1>	
  3553	011647'	104 00 0 00 000051 		BOUT			;OUTPUT A PERIOD
  3554	011650'	200 02 0 17 777656 		MOVE T2,1+LNJCVR	^-^O123(P)^;GET NEXT PART OF VERSION
  3555	011651'	104 00 0 00 000224 		NOUT			;OUTPUT VERSION BYTE
  3556	011652'	320 16 0 00 011645*		 ERJMP R		;FAILED
  3557						MOVX T2,"."		^;GET PUNCTUATION
  3558	011653'	201 02 0 00 000056 		  MOVEI T2,..MX1>	
  3559	011654'	104 00 0 00 000051 		BOUT			;OUTPUT A PERIOD
  3560	011655'	200 02 0 17 777657 		MOVE T2,2+LNJCVR	^-^O123(P)^;GET NEXT PART OF VERSION
  3561	011656'	104 00 0 00 000224 		NOUT			;OUTPUT LAST BYTE OF VERSION
  3562	011657'	320 16 0 00 011652*		 ERJMP R		;FAILED
  3563						HRROI T2,[ASCIZ/
  3564	011660'	561 02 0 00 017343'	State is /]				;get text
  3565	011661'	402 00 0 00 000003 		SETZM T3		;SOUT
  3566	011662'	104 00 0 00 000053 		SOUT			;OUTPUT TEXT
  3567	011663'	561 02 0 00 017346'		HRROI T2,[ASCIZ/Unknown,  Default Host = /] ;ASSUME UNKOWN
  3568	011664'	200 04 0 17 777654 		MOVE T4,LNJSTA	^-^O124(P)^	;GET STATE
  3569	011665'	306 04 0 00 000000 		CAIN T4,.NSON		;NODE ON ?
  3570	011666'	561 02 0 00 017354'		HRROI T2,[ASCIZ/On,  Default Host = /] ;YES
  3571	011667'	306 04 0 00 000001 		CAIN T4,.NSOFF		;OFF ?
  3572	011670'	561 02 0 00 017361'		HRROI T2,[ASCIZ/Off,  Default Host = /] ;YES
  3573	011671'	306 04 0 00 000002 		CAIN T4,.NSSHT		;SHUT ?
  3574	011672'	561 02 0 00 017366'		HRROI T2,[ASCIZ/Shut,  Default Host = /] ;YES
  3575	011673'	104 00 0 00 000053 		SOUT			;OUTPUT STATE
  3576	011674'	561 02 0 00 017373'		HRROI T2,[ASCIZ/Unknown/]
  3577	011675'	332 00 0 17 777651 		SKIPE LNJLEN	^-^O127(P)^	;ANY HOST SPECIFIED ?
  3578	011676'	561 02 0 17 777652 		HRROI T2,LNJHST	^-^O126(P)^	;GET POINTER TO HOST NAME
  3579	011677'	104 00 0 00 000053 		SOUT			;OUTPUT HOST NAME
  3580						HRROI T2,[ASCIZ/
  3581
  3582	011700'	561 02 0 00 017375'	/]				;GET BLANK LINES
  3583	011701'	104 00 0 00 000053 		SOUT			;AND FINAL TEXT
  3584						RETSKP	^		;DONE
  3585	011702'	254 00 0 00 011462*	JRST RSKP
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 83
NCP	MAC	 5-Oct-81 16:46		NCP -- Miscellaneous Routines

  3586					;REMSTS - ROUTINE TO RETURN REMOTE NODE STATUS
  3587					;
  3588					;ACCEPTS IN T1/	POINTER TO DESTINATION FOR TEXT
  3589					;	    T2/	ADDRESS OF RESPONSE MESSAGE FROM NICE PROCESS
  3590					;		CALL REMSTS
  3591					;RETURN: +1	 FAILED
  3592					;	 +2	SUCCESS, WITH T1/ UPDATED POINTER
  3593
  3594	011703'				REMSTS:	STKVAR <RSJPTR,RSJCNT>^
  3595	011703'	265 16 0 00 011463*		JSP .A16,.STKST
  3596	011704'	000002	000002			 ..STKN,,..STKN
  3597	011705'	202 01 0 17 777776 		MOVEM T1,RSJPTR	^-^O2(P)^	;SAVE POINTER TO RESPONSE MESSAGE
  3598	011706'	200 01 0 00 000002 		MOVE T1,T2		;COPY ADDRESS OF NICE MESSAGE
  3599	011707'	505 01 0 00 341000 		HRLI T1,341000		;POINT TO 2ND BYTE IN MESSAGE
  3600	011710'	200 02 0 00 000003 		MOVE T2,T3		;GET NUMBER OF BYTES LEFT IN NICE MSG
  3601	011711'	260 17 0 00 011471*		CALL GETTWO		;GET NUMBER OF RESPONSE MESSAGES
  3602	011712'	263 17 0 00 000000 		 RET			;FAILED
  3603	011713'	202 03 0 17 777775 		MOVEM T3,RSJCNT	^-^O3(P)^	;SAVE NUMBER OF BLOCKS TO FOLLOW
  3604	011714'	250 01 0 17 777776 		EXCH T1,RSJPTR	^-^O2(P)^	;GET RESPONSE MESSAGE POINTER
  3605						HRROI T2,[ASCIZ \
  3606	011715'	561 02 0 00 017376'		Status as of \]
  3607	011716'	400 03 0 00 000000 		SETZ T3,
  3608	011717'	104 00 0 00 000053 		SOUT
  3609	011720'	320 16 0 00 011657*		 ERJMP R		;FAIL
  3610	011721'	476 00 0 00 000002 		SETOM T2		;CURRENT DATE AND TIME
  3611	011722'	200 03 0 00 017317'		MOVE T3,[OT%SCL]
  3612	011723'	104 00 0 00 000220 		ODTIM			;ADD TIME AND DATE
  3613	011724'	320 16 0 00 011720*		 ERJMP R		;FAIL
  3614						HRROI T2,[ASCIZ/
  3615
  3616						Node Name	Node Number		State
  3617
  3618	011725'	561 02 0 00 017402'		/]				;OUTPUT TITLE
  3619	011726'	400 03 0 00 000000 		SETZ T3,
  3620	011727'	104 00 0 00 000053 		SOUT
  3621	011730'	320 16 0 00 011724*		 ERJMP R		;FAIL
  3622	011731'	200 02 0 17 777775 		MOVE T2,RSJCNT	^-^O3(P)^	;PASS COUNT OF INCOMING MESSAGES
  3623	011732'	260 17 0 00 011735'		CALL REQSTS		;GO REQUEST NODE STATUS
  3624	011733'	263 17 0 00 000000 		 RET			;FAILED
  3625						RETSKP	^		;DONE, RETURN SUCCESS
  3626	011734'	254 00 0 00 011702*	JRST RSKP
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 84
NCP	MAC	 5-Oct-81 16:46		NCP -- Miscellaneous Routines

  3627					;REQSTS - ROUTINE TO REQUEST REMOTE NODE STATUS
  3628					;
  3629					;ACCEPTS IN T1/	POINTER TO DESTINATION FOR TEXT
  3630					;		CALL REQSTS
  3631					;RETURNS: +1	 FAILED
  3632					;	  +2	SUCCESS
  3633
  3634	011735'				REQSTS:	STKVAR <RSRCNT,RSRPTR,RSRCTR,<RSRMSG,100>>^
  3635	011735'	265 16 0 00 011703*		JSP .A16,.STKST
  3636	011736'	000103	000103			 ..STKN,,..STKN
  3637
  3638	011737'	202 02 0 17 777776 		MOVEM T2,RSRCNT	^-^O2(P)^	;SAVE COUNT OF COMING MESSAGES
  3639	011740'	202 01 0 17 777775 	STSLOP:	movem t1,rsrptr	^-^O3(P)^	;save text destination pointer
  3640	011741'	200 01 0 05 002027'		MOVE T1,JFDTAB(Q1)	;GET JFN FOR MESSSAGES
  3641	011742'	201 02 0 17 777674 		MOVEI T2,RSRMSG	^-^O104(P)^	;POINT TO MESSAGE BUFFER
  3642	011743'	505 02 0 00 441000 		HRLI T2,(POINT 8,)	;MAKE IT INTO A BYTE POINTER
  3643	011744'	211 03 0 00 000400 		MOVNI T3,4*100		;MAXIMUM SIZE OF MESSAGE
  3644	011745'	104 00 0 00 000531 		SINR			;READ NEXT BLOCK
  3645	011746'	320 16 0 00 011730*		 ERJMP R		;FAIL
  3646	011747'	201 01 0 17 777674 		MOVEI T1,RSRMSG	^-^O104(P)^	;POINT TO MESSAGE BUFFER
  3647	011750'	505 01 0 00 441000 		HRLI T1,(POINT 8,)	;MAKE IT INTO A BYTE POINTER
  3648	011751'	201 02 0 03 000400 		MOVEI T2,4*100(T3)	;MAKES NUMBER OF BYTES WE READ
  3649	011752'	134 03 0 00 000001 		ILDB T3,T1		;GET CODE
  3650	011753'	306 03 0 00 000003 		CAIN T3,.RDRNS		;WAS THIS REMOTE STATUS ?
  3651	011754'	375 00 0 00 000002 		SOSGE T2		;ADJUST COUNT
  3652	011755'	263 17 0 00 000000 		 RET			;NOT ENOUGH BYTES
  3653	011756'	200 03 0 17 777775 		MOVE T3,RSRPTR	^-^O3(P)^	;GET TEXT POINTER
  3654	011757'	260 17 0 00 011602*		CALL GETIMA		;EXTRACT NODE NAME FROM MESSAGE
  3655	011760'	263 17 0 00 000000 		 RET			;FAILED, RETURN ERROR
  3656						MOVX T4,.CHTAB		^;GET A TAB
  3657	011761'	201 04 0 00 000011 		  MOVEI T4,..MX1>	
  3658	011762'	137 04 0 00 000003 		DPB T4,T3		;ADD PUNCTUATION TO TEXT
  3659	011763'	136 04 0 00 000003 		IDPB T4,T3		;AND ANOTHER TAB
  3660	011764'	202 03 0 17 777775 		MOVEM T3,RSRPTR	^-^O3(P)^	;SAVE TEXT POINTER AGAIN
  3661	011765'	260 17 0 00 011544*		CALL GETNUM		;GET NODE NUMBER FROM NICE MESSAGE
  3662	011766'	263 17 0 00 000000 		 RET			;FAILED
  3663	011767'	250 01 0 17 777775 		EXCH T1,RSRPTR	^-^O3(P)^	;GET BACK TEXT POINTER
  3664	011770'	202 02 0 17 777774 		MOVEM T2,RSRCTR	^-^O4(P)^	;SAVE COUNT OF BYTES LEFT IN MESSAGE
  3665	011771'	200 02 0 00 000004 		MOVE T2,T4		;GET BINARY NODE NUMBER
  3666						MOVX T3,^D10		^;USE DECIMAL
  3667	011772'	201 03 0 00 000012 		  MOVEI T3,..MX1>	
  3668	011773'	104 00 0 00 000224 		NOUT			;ADD NODE NUMBER TO RESPONSE
  3669	011774'	320 16 0 00 011746*		 ERJMP R		;FAILED, RETURN ERROR
  3670						MOVX T2,.CHTAB		^;GET A TAB
  3671	011775'	201 02 0 00 000011 		  MOVEI T2,..MX1>	
  3672	011776'	104 00 0 00 000051 		BOUT			;ADD PUNCTUATION
  3673	011777'	104 00 0 00 000051 		BOUT			;AND ANOTHER TAB
  3674	012000'	104 00 0 00 000051 		BOUT			;AND YET ANOTHER
  3675	012001'	250 01 0 17 777775 		EXCH T1,RSRPTR	^-^O3(P)^	;GET BACK PTR TO NICE MESSAGE
  3676	012002'	375 00 0 17 777774 		SOSGE RSRCTR	^-^O4(P)^	;AT LEAST ONE BYTE LEFT IN MESSAGE ?
  3677	012003'	263 17 0 00 000000 		RET			;NO, FAIL
  3678	012004'	134 04 0 00 000001 		ILDB T4,T1		;YES, GET NODE STATE
  3679	012005'	250 01 0 17 777775 		EXCH T1,RSRPTR	^-^O3(P)^	;GET BACK PTR TO NICE MESSAGE
  3680						HRROI T2,[ASCIZ/Unknown
  3681
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 84-1
NCP	MAC	 5-Oct-81 16:46		NCP -- Miscellaneous Routines

  3682	012006'	561 02 0 00 017412'	/]				;ASSUME STATE IS UNKNOWN
  3683	012007'	306 04 0 00 000000 		CAIN T4,.NSON		;NODE ON ?
  3684						HRROI T2,[ASCIZ/On
  3685
  3686	012010'	561 02 0 00 017415'	/]				;YES, USE ON TEXT
  3687	012011'	306 04 0 00 000001 		CAIN T4,.NSOFF		;NODE OFF ?
  3688						HRROI T2,[ASCIZ/Off
  3689
  3690	012012'	561 02 0 00 017417'	/]				;YES, SAY OFF
  3691	012013'	306 04 0 00 000002 		CAIN T4,.NSSHT		;NODE IN SHUT STATE ?
  3692						HRROI T2,[ASCIZ/Shut
  3693	012014'	561 02 0 00 017421'	/]				;YEP, SAY SO
  3694	012015'	402 00 0 00 000003 		SETZM T3		;TERMINATE ON NULL
  3695	012016'	104 00 0 00 000053 		SOUT			;ADD STATE TO TEXT
  3696	012017'	200 02 0 17 777776 		MOVE T2,RSRCNT	^-^O2(P)^	;GET COUNT OF MESSAGE TO PROCESS
  3697	012020'	370 00 0 00 000002 		SOS T2			;ACCOUNT FOR WORK JUST DONE
  3698						JUMPN T2,[ MOVEM T2,RSRCNT	^-^O2(P)^;KEEP GOING IF  NON-ZERO (SAVE COUNT)
  3699							   HRROI T2,[ASCIZ/	/] ;KEEP GOING IF NON-ZERO
  3700							   SOUT		;PUT TABS FOR NEXT LINE
  3701	012021'	326 02 0 00 017424'			   JRST STSLOP]	;BUILD NEXT LINE
  3702						RETSKP	^		;DONE, RETURN
  3703	012022'	254 00 0 00 011734*	JRST RSKP
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 85
NCP	MAC	 5-Oct-81 16:46		NCP -- Miscellaneous Routines

  3704					;LINCTR - ROUTINE TO RETURN ASCII LINE COUNTERS
  3705					;
  3706					;ACCEPTS IN T1/	POINTER TO RESPONSE MESSAGE
  3707					;	    T2/	ADDRESS OF RESPNSE MESSAGE FROM NICE PROCESS
  3708					;		CALL LINCTR
  3709					;RETURN: +1	 FAILED
  3710					;	 +2	SUCCESS, WITH T1/ UPDATED POINTER
  3711
  3712	012023'				LINCTR:	STKVAR <LCJPTR,LCJCTR,<LCRMSG,100>,LCRCTR,LCRTYP>^
  3713	012023'	265 16 0 00 011735*		JSP .A16,.STKST
  3714	012024'	000104	000104			 ..STKN,,..STKN
  3715	012025'	202 01 0 17 777776 		MOVEM T1,LCJPTR	^-^O2(P)^	;SAVE POINTER TO RESPONSE MESSAGE
  3716	012026'	200 01 0 00 000002 		MOVE T1,T2		;COPY ADDRESS OF NICE MESSAGE
  3717	012027'	505 01 0 00 341000 		HRLI T1,341000		;POINT TO 2ND BYTE IN MESSAGE
  3718	012030'	200 02 0 00 000003 		MOVE T2,T3		;GET NUMBER OF BYTES LEFT IN NICE MSG
  3719	012031'	260 17 0 00 011711*		CALL GETTWO		;GET NUMBER OF RESPONSE MESSAGES
  3720	012032'	263 17 0 00 000000 		 RET			;FAILED
  3721	012033'	202 03 0 17 777674 		MOVEM T3,LCRCTR	^-^O104(P)^	;SAVE NUMBER OF BLOCKS TO FOLLOW
  3722	012034'	250 01 0 17 777776 	DOJFD2:	EXCH T1,LCJPTR	^-^O2(P)^	;GET RESPONSE MESSAGE POINTER
  3723	012035'	561 02 0 00 017430'		HRROI T2,[ASCIZ \Counts for line \]
  3724	012036'	400 03 0 00 000000 		SETZ T3,
  3725	012037'	104 00 0 00 000053 		SOUT
  3726	012040'	250 01 0 17 777776 		EXCH T1,LCJPTR	^-^O2(P)^	;SAVE MESSAGE POINTER
  3727	012041'	200 01 0 05 002027'		MOVE T1,JFDTAB(Q1)	;GET JFN FOR MESSSAGES
  3728	012042'	201 02 0 17 777675 		MOVEI T2,LCRMSG	^-^O103(P)^	;POINT TO MESSAGE BUFFER
  3729	012043'	505 02 0 00 441000 		HRLI T2,441000		;MAKE IT INTO A BYTE POINTER
  3730	012044'	211 03 0 00 000400 		MOVNI T3,4*100		;MAXIMUM SIZE OF MESSAGE
  3731	012045'	104 00 0 00 000531 		SINR			;READ NEXT BLOCK
  3732	012046'	320 16 0 00 011774*		 ERJMP R		;FAIL
  3733	012047'	201 01 0 17 777675 		MOVEI T1,LCRMSG	^-^O103(P)^	;POINT TO MESSAGE BUFFER
  3734	012050'	505 01 0 00 441000 		HRLI T1,441000		;MAKE IT INTO A BYTE POINTER
  3735	012051'	201 02 0 03 000400 		MOVEI T2,4*100(T3)	;MAKES NUMBER OF BYTES WE READ
  3736	012052'	134 03 0 00 000001 		ILDB T3,T1		;GET CODE
  3737	012053'	306 03 0 00 000004 		CAIN T3,.RDLCT		;WAS THIS A LINE COUNT ?
  3738	012054'	375 00 0 00 000002 		SOSGE T2		;ADJUST COUNT
  3739	012055'	254 00 0 00 012123'		 JRST DOJFD5		;BAD CODE OR OUT OF DATA
  3740	012056'	260 17 0 00 000000*		CALL GETLIN		;GET LINE NAME IN STANDARD FORMAT
  3741						 JRST [ MOVE Q2,T1	;GET ERROR CODE
  3742	012057'	254 00 0 00 017434'			JRST DOJFD5 ]
  3743	012060'	250 01 0 17 777776 		EXCH T1,LCJPTR	^-^O2(P)^	;SWAP POINTERS
  3744	012061'	250 02 0 17 777775 		EXCH T2,LCJCTR^-^O3(P)^
  3745	012062'	120 02 0 00 000003 		DMOVE T2,T3		;GET LINE ID
  3746	012063'	260 17 0 00 010733*		CALL ASCLIN		;PUT LINE-ID IN TEXT
  3747	012064'	254 00 0 00 012123'		 JRST DOJFD5		;LOSE
  3748	012065'	561 02 0 00 017436'		HRROI T2,[ASCIZ \, as of \]
  3749	012066'	104 00 0 00 000053 		SOUT
  3750	012067'	476 00 0 00 000002 		SETOM T2		;CURRENT DATE AND TIME
  3751	012070'	200 03 0 00 017317'		MOVE T3,[OT%SCL]
  3752	012071'	104 00 0 00 000220 		ODTIM			;ADD TIME AND DATE
  3753	012072'	561 02 0 00 016655'	DOJFD3:	HRROI T2,[BYTE(7)15,12,0]
  3754	012073'	400 03 0 00 000000 		SETZ T3,
  3755	012074'	104 00 0 00 000053 		SOUT
  3756	012075'	250 01 0 17 777776 		EXCH T1,LCJPTR	^-^O2(P)^	;SWAP POINTERS
  3757	012076'	250 02 0 17 777775 		EXCH T2,LCJCTR	^-^O3(P)^	;AND COUNTERS
  3758	012077'	321 02 0 00 012123'		JUMPL T2,DOJFD5		;ANY MORE COUNTERS ?
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 85-1
NCP	MAC	 5-Oct-81 16:46		NCP -- Miscellaneous Routines

  3759	012100'	260 17 0 00 000000*		CALL GETEXB		;GET COUNTER TYPE
  3760	012101'	254 00 0 00 012123'		 JRST DOJFD5
  3761	012102'	202 04 0 17 777673 		MOVEM T4,LCRTYP	^-^O105(P)^	;SAVE TYPE CODE
  3762	012103'	260 17 0 00 012031*		CALL GETTWO		;GET TWO BYTE FIELD
  3763	012104'	254 00 0 00 012123'		 JRST DOJFD5
  3764	012105'	250 01 0 17 777776 		EXCH T1,LCJPTR	^-^O2(P)^	;SWAP POINTERS
  3765	012106'	250 02 0 17 777775 		EXCH T2,LCJCTR	^-^O3(P)^	;AND COUNTERS
  3766	012107'	331 04 0 17 777673 		SKIPL T4,LCRTYP^-^O105(P)^
  3767	012110'	301 04 0 00 000011 		CAIL T4,NLCTMX		;IS TYPE IN RANGE ?
  3768	012111'	334 02 0 00 017444'		SKIPA T2,[-1,,[ASCIZ \ *** unknown ***	\]]
  3769	012112'	560 02 0 04 012127'		HRRO T2,NICLCT(T4)
  3770	012113'	202 03 0 00 000004 		MOVEM T3,T4		;SAVE COUNTER
  3771	012114'	400 03 0 00 000000 		SETZ T3,		;FOR SOUT
  3772	012115'	104 00 0 00 000053 		SOUT
  3773	012116'	200 02 0 00 000004 		MOVE T2,T4		;PUT COUNTER IN RIGHT REG
  3774	012117'	200 03 0 00 017445'		MOVE T3,[NO%LFL+10B17+12]
  3775	012120'	104 00 0 00 000224 		NOUT
  3776	012121'	255 00 0 00 000000 		 JFCL
  3777	012122'	254 00 0 00 012072'		JRST DOJFD3
  3778	012123'	373 00 0 17 777674 	DOJFD5:	SOSLE LCRCTR	^-^O104(P)^	;HAVE WE DONE ALL BLOCKS YET ?
  3779	012124'	254 00 0 00 012034'		JRST DOJFD2		;LOOP BACK FOR REST OF BLOCKS
  3780	012125'	200 01 0 17 777776 		MOVE T1,LCJPTR	^-^O2(P)^	;GET RESPONSE MESSAGE POINTER
  3781						RETSKP	^		;DONE, RETURN
  3782	012126'	254 00 0 00 012022*	JRST RSKP
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 86
NCP	MAC	 5-Oct-81 16:46		NCP -- Miscellaneous Routines

  3783	012127'	000000	017446'		NICLCT:	[ASCIZ \Seconds since zeroed	\]
  3784	012130'	000000	017453'			[ASCIZ \Blocks received		\]
  3785	012131'	000000	017457'			[ASCIZ \Blocks sent		\]
  3786	012132'	000000	017462'			[ASCIZ \Retran, line errors	\]
  3787	012133'	000000	017467'			[ASCIZ \Received line errors	\]
  3788	012134'	000000	017474'			[ASCIZ \Retran, not line errors	\]
  3789	012135'	000000	017501'			[ASCIZ \Receive timeouts	\]
  3790	012136'	000000	017505'			[ASCIZ \Receive select errors	\]
  3791	012137'	000000	017512'			[ASCIZ \Resource errors		\]
  3792			000011			NLCTMX==.-NICLCT
  3793
  3794
  3795
  3796
  3797	012140'				JFDMES:
  3798	012140'	000000	017516'			[ASCIZ /NCU process not available/]	;-21
  3799	012141'	000000	017524'			[ASCIZ /No room for new entry/]		;-20
  3800	012142'	000000	017531'			[ASCIZ /Network Communications Error/]	;-19
  3801	012143'	000000	017537'			[ASCIZ\File I/O error\]			;-18
  3802	012144'	000000	017542'			[ASCIZ/Line protocol error/]		;-17
  3803	012145'	000000	017546'			[ASCIZ/Invalid parameter value/]	;-16
  3804	012146'	000000	017553'			[ASCIZ/Resource error/]			;-15
  3805	012147'	000000	017556'			[ASCIZ/Configuration data base error/]	;-14
  3806	012150'	000000	017564'			[ASCIZ/Invalid file/]			;-13
  3807	012151'	000000	017567'			[ASCIZ/Invalid server id/]		;-12
  3808	012152'	000000	017573'			[ASCIZ/Invalid node id/]		;-11
  3809	012153'	000000	017577'			[ASCIZ/Line communications error/]	;-10
  3810	012154'	000000	017605'			[ASCIZ/Line in wrong state/]		;-9
  3811	012155'	000000	017611'			[ASCIZ/Invalid line id/]		;-8
  3812	012156'	000000	017615'			[ASCIZ/Unknown NICE error code/]	;-7
  3813	012157'	000000	017615'			[ASCIZ/Unknown NICE error code/]	;-6
  3814	012160'	000000	017622'			[ASCIZ/NICE Process program error/]	;-5
  3815	012161'	000000	017630'			[ASCIZ/NICE Protocol Error/]		;-4
  3816	012162'	000000	017634'			[ASCIZ/Insufficient status/]		;-3
  3817	012163'	000000	017640'			[ASCIZ/Invalid message format/]		;-2
  3818	012164'	000000	017645'			[ASCIZ/Invalid function or option/]	;-1
  3819
  3820			000025			JFDMSO==.-JFDMES		;NUMBER OF KNOWN NICE ERROR CODES
  3821
  3822	012165'	000000	017653'			[ASCIZ/NSP link died/]			;0
  3823	012166'	000000	017656'			[ASCIZ/Function completed successfully/];1
  3824
  3825			000027			JFDMSL==.-JFDMES
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 87
NCP	MAC	 5-Oct-81 16:46		NCP -- Miscellaneous Routines

  3826					;LINSTS - ROUTINE TO RETURN ASCII LINE STATUS
  3827					;
  3828					;ACCEPTS IN T1/	POINTER TO RESPONSE MESSAGE
  3829					;	    T2/	ADDRESS OF RESPNSE MESSAGE FROM NICE PROCESS
  3830					;		CALL LINSTS
  3831					;RETURN: +1	 FAILED
  3832					;	 +2	SUCCESS, WITH T1/ UPDATED POINTER
  3833
  3834	012167'				LINSTS:	STKVAR <lsrPTR,LSrCTR>^
  3835	012167'	265 16 0 00 012023*		JSP .A16,.STKST
  3836	012170'	000002	000002			 ..STKN,,..STKN
  3837	012171'	202 01 0 17 777776 		MOVEM T1,LSrPTR	^-^O2(P)^	;SAVE POINTER TO RESPONSE MESSAGE
  3838	012172'	200 01 0 00 000002 		MOVE T1,T2		;COPY ADDRESS OF NICE MESSAGE
  3839	012173'	505 01 0 00 341000 		HRLI T1,341000		;POINT TO 2ND BYTE IN MESSAGE
  3840	012174'	200 02 0 00 000003 		MOVE T2,T3		;GET NUMBER OF BYTES LEFT IN NICE MSG
  3841	012175'	260 17 0 00 012103*		CALL GETTWO		;GET NUMBER OF RESPONSE MESSAGES
  3842	012176'	263 17 0 00 000000 		 RET			;FAILED
  3843	012177'	202 03 0 17 777775 		MOVEM T3,LSRCTR	^-^O3(P)^	;SAVE NUMBER OF BLOCKS TO FOLLOW
  3844	012200'	200 01 0 17 777776 		move T1,lsrPTR	^-^O2(P)^	;GET RESPONSE MESSAGE POINTER
  3845						HRROI T2,[ASCIZ \
  3846	012201'	561 02 0 00 017376'		Status as of \]
  3847	012202'	400 03 0 00 000000 		SETZ T3,
  3848	012203'	104 00 0 00 000053 		SOUT
  3849	012204'	320 16 0 00 012046*		 ERJMP R		;FAIL
  3850	012205'	476 00 0 00 000002 		SETOM T2		;CURRENT DATE AND TIME
  3851	012206'	200 03 0 00 017317'		MOVE T3,[OT%SCL]
  3852	012207'	104 00 0 00 000220 		ODTIM			;ADD TIME AND DATE
  3853	012210'	320 16 0 00 012204*		 ERJMP R		;FAIL
  3854						HRROI T2,[ASCIZ/
  3855
  3856						Line ID		State		Adjacent Node
  3857
  3858	012211'	561 02 0 00 017665'		/]				;OUTPUT TITLE
  3859	012212'	400 03 0 00 000000 		SETZ T3,
  3860	012213'	104 00 0 00 000053 		SOUT
  3861	012214'	320 16 0 00 012210*		 ERJMP R		;FAIL
  3862	012215'	200 02 0 17 777775 		MOVE T2,LSRCTR	^-^O3(P)^	;PASS COUNT OF MESSAGE TO COME
  3863	012216'	260 17 0 00 012221'		CALL REQLST		;go request line status
  3864	012217'	263 17 0 00 000000 		 RET			;failed
  3865						RETSKP	^		;done, success
  3866	012220'	254 00 0 00 012126*	JRST RSKP
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 88
NCP	MAC	 5-Oct-81 16:46		NCP -- Miscellaneous Routines

  3867					;reqlst - request line status
  3868
  3869	012221'				REQLST:	STKVAR <LSJCNT,<lsjmsg,100>,lsjctr,<lsjlin,2>,lsjptr>^
  3870	012221'	265 16 0 00 012167*		JSP .A16,.STKST
  3871	012222'	000105	000105			 ..STKN,,..STKN
  3872	012223'	202 02 0 17 777776 		MOVEM T2,LSJCNT	^-^O2(P)^	;SAVE THE COUNT OF INCOMING MESSAGES
  3873	012224'	202 01 0 17 777672 	LSTLOP:	movem T1,lsjptr	^-^O106(P)^	;SAVE MESSAGE POINTER
  3874	012225'	200 01 0 05 002027'		MOVE T1,JFDTAB(Q1)	;GET JFN FOR MESSSAGES
  3875	012226'	201 02 0 17 777676 		MOVEI T2,lsjmsg	^-^O102(P)^	;POINT TO MESSAGE BUFFER
  3876	012227'	505 02 0 00 441000 		HRLI T2,(POINT 8,)	;MAKE IT INTO A BYTE POINTER
  3877	012230'	211 03 0 00 000400 		MOVNI T3,4*100		;MAXIMUM SIZE OF MESSAGE
  3878	012231'	104 00 0 00 000531 		SINR			;READ NEXT BLOCK
  3879	012232'	320 16 0 00 012214*		 ERJMP R		;FAIL
  3880	012233'	201 01 0 17 777676 		MOVEI T1,lsjmsg	^-^O102(P)^	;POINT TO MESSAGE BUFFER
  3881	012234'	505 01 0 00 441000 		HRLI T1,(POINT 8,)	;MAKE IT INTO A BYTE POINTER
  3882	012235'	201 02 0 03 000400 		MOVEI T2,4*100(T3)	;MAKES NUMBER OF BYTES WE READ
  3883	012236'	134 03 0 00 000001 		ILDB T3,T1		;GET CODE
  3884	012237'	306 03 0 00 000005 		CAIN T3,.RDLST		;WAS THIS LINE STATUS ?
  3885	012240'	375 00 0 00 000002 		SOSGE T2		;ADJUST COUNT
  3886	012241'	263 17 0 00 000000 		 RET			;NOT ENOUGH BYTES
  3887	012242'	260 17 0 00 012056*		CALL GETLIN		;GET LINE NAME IN STANDARD FORMAT
  3888	012243'	263 17 0 00 000000 		 RET			;BAD MESSAGE FORMAT
  3889	012244'	124 03 0 17 777673 		DMOVEM T3,lsjlin	^-^O105(P)^;SAVE LINE ID
  3890	012245'	250 01 0 17 777672 		EXCH T1,LSJPTR	^-^O106(P)^	;SWAP POINTERS
  3891	012246'	202 02 0 17 777675 		MOVEM T2,LSJCTR^-^O103(P)^
  3892	012247'	120 02 0 17 777673 		DMOVE T2,lsjlin	^-^O105(P)^	;RESTORE LINE ID
  3893	012250'	260 17 0 00 012063*		CALL ASCLIN		;OUTPUT LINE ID AGAIN
  3894	012251'	263 17 0 00 000000 		 RET			;FAILED
  3895						MOVX T2,.CHTAB		^;GET A TAB
  3896	012252'	201 02 0 00 000011 		  MOVEI T2,..MX1>	
  3897	012253'	104 00 0 00 000051 		BOUT			;AND OUTPUT PUNCTUATION
  3898	012254'	250 01 0 17 777672 		EXCH T1,LSJPTR	^-^O106(P)^	;SWAP POINTERS
  3899	012255'	250 02 0 17 777675 		EXCH T2,LSJCTR	^-^O103(P)^	;AND COUNTERS
  3900	012256'	321 02 0 00 012232*		JUMPL T2,R		;ANY MORE BYTES ?
  3901	012257'	134 04 0 00 000001 		ILDB T4,T1		;GET LINE STATE
  3902	012260'	275 02 0 00 000001 		SUBI T2,1		;ACCOUNT FOR STATE BYTE
  3903	012261'	250 01 0 17 777672 		EXCH T1,LSJPTR	^-^O106(P)^	;SAVE POINTER
  3904	012262'	250 02 0 17 777675 		EXCH T2,LSJCTR	^-^O103(P)^	;SAVE COUNT
  3905	012263'	561 02 0 00 017675'		HRROI T2,[ASCIZ/Unknown	/] ;ASSUME UNKNOWN STATE
  3906	012264'	306 04 0 00 000000 		CAIN T4,.LSTON		;IS LINE ON ?
  3907	012265'	561 02 0 00 017677'		HRROI T2,[ASCIZ/On		/] ;YES,  LINE IS ON
  3908	012266'	306 04 0 00 000001 		CAIN T4,.LSTOFF		;IS LINE OFF ?
  3909	012267'	561 02 0 00 017700'		HRROI T2,[ASCIZ/Off		/] ;YES, GET CORRECT STATE STRING
  3910	012270'	306 04 0 00 000004 		CAIN T4,.LSTMN		;MAINTENANCE ?
  3911	012271'	561 02 0 00 017702'		HRROI T2,[ASCIZ/Maintenance	/]
  3912	012272'	306 04 0 00 000005 		CAIN T4,.LSTCN		;Controller loopback?
  3913	012273'	561 02 0 00 017705'		HRROI T2,[ASCIZ/Controller loopback/]
  3914	012274'	306 04 0 00 000006 		CAIN T4,.LSTCB		;Cable loopback?
  3915	012275'	561 02 0 00 017711'		HRROI T2,[ASCIZ/Cable loopback	/]
  3916	012276'	400 03 0 00 000000 		SETZ T3,		;END ON NULL
  3917	012277'	104 00 0 00 000053 		SOUT			;COMPLETE LINE
  3918	012300'	250 01 0 17 777672 		EXCH T1,LSJPTR	^-^O106(P)^	;GET BACK POINTER TO NICE MSG
  3919	012301'	250 02 0 17 777675 		EXCH T2,LSJCTR	^-^O103(P)^	;AND RESTORE COUNT
  3920	012302'	275 02 0 00 000002 		SUBI T2,2		;SKIP OVER USELESS STATES
  3921	012303'	133 00 0 00 000001 		IBP T1			; LOGGING STATES ARE NOT
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 88-1
NCP	MAC	 5-Oct-81 16:46		NCP -- Miscellaneous Routines

  3922	012304'	133 00 0 00 000001 		IBP T1			;  USED
  3923	012305'	323 02 0 00 012256*		JUMPLE T2,R		;MUST BE AT LEAST ONE BYTE LEFT
  3924	012306'	134 04 0 00 000001 		ILDB T4,T1		;GET COUNT FIELD FOR NODE NAME
  3925	012307'	313 04 0 00 000002 		CAMLE T4,T2		;AT LEAST THAT MANY BYTES LEFT ?
  3926	012310'	263 17 0 00 000000 		RET			;NO, DONE
  3927	012311'	200 02 0 17 777672 		MOVE T2,LSJPTR	^-^O106(P)^	;GET POINTER TO TEXT REPLY
  3928	012312'	361 04 0 00 012316'	LINST5:	SOJL T4,LINST7		;IF DONE ALL CHARACTERS, RETURN SUCCESS
  3929	012313'	134 03 0 00 000001 		ILDB T3,T1		;GET A CHARACTER FROM NODE NAME
  3930	012314'	136 03 0 00 000002 		IDPB T3,T2		;STORE CHARACTER IN OUTPUT STRING
  3931	012315'	254 00 0 00 012312'		JRST LINST5		;AND DO ALL CHARACTERS IN NAME
  3932
  3933	012316'	200 01 0 00 000002 	LINST7:	MOVE T1,T2		;COPY POINTER TO REPLY TEXT
  3934						HRROI T2,[ASCIZ /
  3935	012317'	561 02 0 00 016655'	/]				;OUTPUT CRLF
  3936	012320'	402 00 0 00 000003 		SETZM T3		;TERMINATE ON NULL
  3937	012321'	104 00 0 00 000053 		SOUT			;END THE OUTPUT
  3938	012322'	200 02 0 17 777776 		MOVE T2,LSJCNT	^-^O2(P)^	;GET COUNT OF MESSAGE TO PROCESS
  3939	012323'	370 00 0 00 000002 		SOS T2			;ACCOUNT FOR WORK JUST DONE
  3940						JUMPN T2,[ MOVEM T2,LSJCNT	^-^O2(P)^;KEEP GOING IF  NON-ZERO (SAVE COUNT)
  3941							   HRROI T2,[ASCIZ/	/] ;KEEP GOING IF NON-ZERO
  3942							   SOUT		;PUT TABS FOR NEXT LINE
  3943	012324'	326 02 0 00 017715'			   JRST LSTLOP]	;BUILD NEXT LINE
  3944	012325'	254 00 0 00 012220*		RETSKP^JRST RSKP^
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 89
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  3945					SUBTTL	Routines to Parse and Rebuild Commands from OPR
  3946
  3947					; PRSKEY - PARSE A KEYWORD
  3948
  3949
  3950	012326'				PRSKEY:	LOAD T1,PBTYP		^;GET ARGUMENT TYPE
  3951	012326'	550 01 0 11 000000 			HRRZ T1,(P2)^
  3952	012327'	302 01 0 00 000000 		CAIE T1,.CMKEY		;KEYWORD ?
  3953	012330'	263 17 0 00 000000 		RET			;NO, FAIL
  3954						LOAD T1,PBVAL		^;GET KEYWORD VALUE TO RETURN
  3955	012331'	200 01 0 11 000001 			MOVE T1,1(P2)^
  3956						LOAD T2,PBLEN		^;YES, GET LENGTH
  3957	012332'	554 02 0 11 000000 			HLRZ T2,(P2)^
  3958	012333'	270 11 0 00 000002 		ADD P2,T2		;POINT TO NEXT ARGUMENT
  3959						RETSKP	^		;DONE
  3960	012334'	254 00 0 00 012325*	JRST RSKP
  3961
  3962
  3963					; PRSCFM - PARSE COMMAND CONFIRMATION
  3964
  3965	012335'				PRSCFM:	LOAD T1,PBTYP		^;GET ARGUMENT TYPE
  3966	012335'	550 01 0 11 000000 			HRRZ T1,(P2)^
  3967	012336'	302 01 0 00 000010 		CAIE T1,.CMCFM		;CONFIRMATION ?
  3968	012337'	263 17 0 00 000000 		RET			;NO, FAIL
  3969						RETSKP	^		;YES, RETURN SUCCESS
  3970	012340'	254 00 0 00 012334*	JRST RSKP
  3971
  3972
  3973					; PRSNOD - PARSE A NODE NAME
  3974
  3975	012341'				PRSNOD:	LOAD T1,PBTYP		^;GET ARGUMENT TYPE
  3976	012341'	550 01 0 11 000000 			HRRZ T1,(P2)^
  3977	012342'	302 01 0 00 000026 		CAIE T1,.CMNOD		;NODE ?
  3978						JRST [	CAIE T1,.CMFLD	;OR FIELD SPECIFICATION ?
  3979							RET		;NO, FAIL
  3980	012343'	254 00 0 00 017721'			JRST .+1]	;YES, ALL SET
  3981	012344'	402 00 0 00 000001 		SETZM T1		;NO OLD BLOCK
  3982	012345'	541 02 0 11 000001 		HRRI T2,.PBVAL(P2)	;GET ADDRESS OF NODE NAME STRING
  3983	012346'	505 02 0 00 440700 		HRLI T2,(POINT 7,)	;FORM POINTER TO STRING
  3984	012347'	201 03 0 00 000010 		MOVEI T3,NODLEN		;GET LENGTH OF NODE NAME STRING
  3985	012350'	260 17 0 00 013352'		CALL CPYASC		;COPY STRING
  3986						 RETBAD			^;ILLEGAL NODE NAME
  3987	012351'	263 17 0 00 000000 	IFB <>,<	RET>
  3988	012352'	301 03 0 00 000050 		CAIL T3,NODLEN*^D5	;Check if any bytes copied
  3989						JRST [CALL RELFRE	;No .. release block
  3990						       FATAL.ERROR	^
  3991							CALL ERROR
  3992							HALTF
  3993							JRST NETCON]^;Release failed
  3994						      RETBAD^
  3995					IFB <>,<	RET>
  3996	012353'	254 00 0 00 016775'				RETBAD ()]>^]		;Give error return .. null node name
  3997						LOAD T2,PBLEN		^;YES, GET LENGTH
  3998	012354'	554 02 0 11 000000 			HLRZ T2,(P2)^
  3999	012355'	270 11 0 00 000002 		ADD P2,T2		;POINT TO NEXT ARGUMENT
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 89-1
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  4000						RETSKP	^		;DONE
  4001	012356'	254 00 0 00 012340*	JRST RSKP
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 90
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  4002					; PRSFIL - PARSE ANY TYPE OF FILE SPEC
  4003
  4004	012357'	260 17 0 00 012363'	PRSFIL:	CALL PRSIFI		;TRY INPUT FILE FIRST
  4005						 JRST [	CALL PRSOFI	;FAILED, TRY OUTPUT FILE
  4006							 RET		;NEITHER, RETURN ERROR
  4007	012360'	254 00 0 00 017724'			RETSKP ^JRST RSKP^]	;RETURN OUTPUT FILE
  4008						RETSKP	^		;RETURN INPUT FILE
  4009	012361'	254 00 0 00 012356*	JRST RSKP
  4010
  4011
  4012
  4013					; PRSIFI - PARSE AN INPUT FILE NAME
  4014					; PRSOFI - PARSE AN OUTPUT FILE NAME
  4015
  4016	012362'	334 04 0 00 017727'	PRSOFI:	SKIPA T4,[.CMOFI]	;GET COMMAND JSYS FUNCTION CODE
  4017	012363'				PRSIFI:	MOVX T4,.CMIFI		^;GET COMMAND JSYS CODE FOR INPUT FILE
  4018	012363'	201 04 0 00 000004 		  MOVEI T4,..MX1>	
  4019						LOAD T1,PBTYP		^;GET ARGUMENT TYPE
  4020	012364'	550 01 0 11 000000 			HRRZ T1,(P2)^
  4021	012365'	312 01 0 00 000004 		CAME T1,T4		;RIGHT FILE ?
  4022	012366'	263 17 0 00 000000 		RET			;NO, FAIL
  4023	012367'	402 00 0 00 000001 		SETZM T1		;NO OLD BLOCK
  4024	012370'	541 02 0 11 000001 		HRRI T2,.PBVAL(P2)	;GET ADDRESS OF NODE NAME STRING
  4025	012371'	505 02 0 00 440700 		HRLI T2,(POINT 7,)	;FORM POINTER TO STRING
  4026						LOAD T3,PBLEN		^;GET LENGTH OF ARG FIELD
  4027	012372'	554 03 0 11 000000 			HLRZ T3,(P2)^
  4028	012373'	260 17 0 00 013352'		CALL CPYASC		;COPY STRING
  4029						 RETBAD			^;FAILED, RETURN ERROR
  4030	012374'	263 17 0 00 000000 	IFB <>,<	RET>
  4031						LOAD T2,PBLEN		^;YES, GET LENGTH
  4032	012375'	554 02 0 11 000000 			HLRZ T2,(P2)^
  4033	012376'	270 11 0 00 000002 		ADD P2,T2		;POINT TO NEXT ARGUMENT
  4034						RETSKP	^		;DONE
  4035	012377'	254 00 0 00 012361*	JRST RSKP
  4036
  4037
  4038					; PARSE A NUMBER
  4039
  4040	012400'				PRSNUM:	LOAD T1,PBTYP		^;GET ARGUMENT TYPE
  4041	012400'	550 01 0 11 000000 			HRRZ T1,(P2)^
  4042	012401'	302 01 0 00 000001 		CAIE T1,.CMNUM		;NUMBER ?
  4043	012402'	263 17 0 00 000000 		RET			;NO, FAIL
  4044						LOAD T1,PBVAL		^;GET VALUE TO RETURN
  4045	012403'	200 01 0 11 000001 			MOVE T1,1(P2)^
  4046						LOAD T2,PBLEN		^;YES, GET LENGTH
  4047	012404'	554 02 0 11 000000 			HLRZ T2,(P2)^
  4048	012405'	270 11 0 00 000002 		ADD P2,T2		;POINT TO NEXT ARGUMENT
  4049						RETSKP	^		;DONE
  4050	012406'	254 00 0 00 012377*	JRST RSKP
  4051
  4052
  4053
  4054					; PARSE NOISE WORDS
  4055
  4056	012407'				PRSNOI:	LOAD T1,PBTYP		^;GET ARGUMENT TYPE
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 90-1
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  4057	012407'	550 01 0 11 000000 			HRRZ T1,(P2)^
  4058	012410'	302 01 0 00 000002 		CAIE T1,.CMNOI		;NOISE WORDS ?
  4059	012411'	263 17 0 00 000000 		RET			;NO, FAIL
  4060						LOAD T2,PBLEN		^;YES, GET LENGTH
  4061	012412'	554 02 0 11 000000 			HLRZ T2,(P2)^
  4062	012413'	270 11 0 00 000002 		ADD P2,T2		;POINT TO NEXT ARGUMENT
  4063	012414'	263 17 0 00 000000 		RET			;DONE
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 91
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  4064					; PARSE A TOKEN
  4065
  4066	012415'	200 04 0 00 000001 	PRSTOK:	MOVE T4,T1		;SAVE EXPECTED TOKEN
  4067						LOAD T1,PBTYP		^;GET ARGUMENT TYPE
  4068	012416'	550 01 0 11 000000 			HRRZ T1,(P2)^
  4069	012417'	302 01 0 00 000023 		CAIE T1,.CMTOK		;TOKEN ?
  4070	012420'	263 17 0 00 000000 		RET			;NO, FAIL
  4071	012421'	135 01 0 00 017730'		LDB T1,[POINT 7,.PBVAL(P2),6] ;GET THE TOKEN
  4072	012422'	312 01 0 00 000004 		CAME T1,T4		;CORRECT TOKEN ?
  4073	012423'	263 17 0 00 000000 		RET			;NO, FAIL
  4074						LOAD T2,PBLEN		^;YES, GET LENGTH OF THIS ARGUMENT
  4075	012424'	554 02 0 11 000000 			HLRZ T2,(P2)^
  4076	012425'	270 11 0 00 000002 		ADD P2,T2		;POINT TO NEXT ARGUMENT
  4077						RETSKP	^		;DONE, RETURN SUCCESS
  4078	012426'	254 00 0 00 012406*	JRST RSKP
  4079
  4080
  4081
  4082					; PRSCMA - PARSE A COMMA
  4083
  4084
  4085	012427'				PRSCMA:	LOAD T1,PBTYP		^;GET ARGUMENT TYPE
  4086	012427'	550 01 0 11 000000 			HRRZ T1,(P2)^
  4087	012430'	302 01 0 00 000013 		CAIE T1,.CMCMA		;COMMA ?
  4088	012431'	263 17 0 00 000000 		RET			;NO, FAIL
  4089						LOAD T1,PBVAL		^;GET VALUE TO RETURN
  4090	012432'	200 01 0 11 000001 			MOVE T1,1(P2)^
  4091						LOAD T2,PBLEN		^;YES, GET LENGTH
  4092	012433'	554 02 0 11 000000 			HLRZ T2,(P2)^
  4093	012434'	270 11 0 00 000002 		ADD P2,T2		;POINT TO NEXT ARGUMENT
  4094						RETSKP	^		;DONE
  4095	012435'	254 00 0 00 012426*	JRST RSKP
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 92
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  4096					;PRSLID - ROUTINE TO PARSE A LINE ID
  4097					;
  4098					;ACCEPTS IN P2/	CURRENT POINTER INTO IPCF MESSAGE
  4099					;		CALL PRSLID
  4100					;RETURNS: +1	 FAILED, INVALID LINE ID
  4101					;	  +2	SUCCESS, WITH T1-T2/ LINE ID
  4102
  4103	012436'				PRSLID:	STKVAR <PLIDEV,PLICTL,PLIUNI,PLISTN>^
  4104	012436'	265 16 0 00 012221*		JSP .A16,.STKST
  4105	012437'	000004	000004			 ..STKN,,..STKN
  4106	012440'	402 00 0 17 777775 		SETZM PLICTL	^-^O3(P)^	;INITIALIZE THE VARIOUS VALUES
  4107	012441'	402 00 0 17 777774 		SETZM PLIUNI	^-^O4(P)^	; IN THE LINE ID.
  4108	012442'	402 00 0 17 777776 		SETZM PLIDEV^-^O2(P)^
  4109	012443'	402 00 0 17 777773 		SETZM PLISTN^-^O5(P)^
  4110
  4111					; PARSE DEVICE TYPE
  4112
  4113	012444'	260 17 0 00 012326'		CALL PRSKEY		;PARSE A KEYWORD FOR DEVICE TYPE
  4114	012445'	263 17 0 00 000000 		 RET			;FAILED
  4115	012446'	201 02 0 00 006711'		MOVEI T2,SETDVT		;GET ADDRESS OF DEVICE TABLE
  4116	012447'	201 03 0 00 000015 		MOVEI T3,SETDVL		;AND TABLE LENGTH
  4117	012450'	260 17 0 00 006067'		CALL FNDDSP		;GET DEVICE TYPE
  4118	012451'	263 17 0 00 000000 		 RET			;NOT FOUND, RETURN FAILURE
  4119	012452'	202 01 0 17 777776 		MOVEM T1,PLIDEV	^-^O2(P)^	;SAVE DEVICE TYPE
  4120
  4121					; PARSE PUNCTUATION
  4122
  4123						MOVX T1,"_"		^;EXPECT AN UNDERSCORE
  4124	012453'	201 01 0 00 000137 		  MOVEI T1,..MX1>	
  4125	012454'	260 17 0 00 012415'		CALL PRSTOK		;PARSE A TOKEN
  4126	012455'	263 17 0 00 000000 		 RET			;FAILED
  4127
  4128					; PARSE CONTROLLER NUMBER (REQUIRED)
  4129
  4130	012456'	260 17 0 00 012400'		CALL PRSNUM		;PARSE CONTROLLER NUMBER
  4131	012457'	263 17 0 00 000000 		 RET			;FAILED
  4132	012460'	202 01 0 17 777775 		MOVEM T1,PLICTL	^-^O3(P)^	;SAVE CONTROLLER NUMBER
  4133
  4134					; DETERMINE IF UNIT WAS SPECIFIED - IF SO PARSE PUNCTUATION
  4135
  4136						MOVX T1,"_"		^;POSSIBLY A TOKEN NEXT
  4137	012461'	201 01 0 00 000137 		  MOVEI T1,..MX1>	
  4138	012462'	260 17 0 00 012415'		CALL PRSTOK		;PARSE A TOKEN
  4139	012463'	254 00 0 00 012467'		 JRST PRS500		;NONE, GO RETURN LINE ID
  4140
  4141					; PARSE UNIT NUMBER
  4142
  4143	012464'	260 17 0 00 012400'		CALL PRSNUM		;PARSE UNIT NUMBER
  4144	012465'	263 17 0 00 000000 		 RET			;FAILED
  4145	012466'	202 01 0 17 777774 		MOVEM T1,PLIUNI	^-^O4(P)^	;SAVE CONTROLLER NUMBER
  4146
  4147					; HERE ON COMPLETED PARSE - RETURN LINE ID
  4148
  4149	012467'	504 01 0 17 777776 	PRS500:	HRL T1,PLIDEV	^-^O2(P)^	;GET DEVICE TYPE
  4150	012470'	540 01 0 17 777775 		HRR T1,PLICTL	^-^O3(P)^	;GET CONTROLLER NUMBER
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 92-1
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  4151	012471'	504 02 0 17 777774 		HRL T2,PLIUNI	^-^O4(P)^	;GET UNIT NUMBER
  4152	012472'	540 02 0 17 777773 		HRR T2,PLISTN	^-^O5(P)^	;GET STATION ADDRESS
  4153						RETSKP	^		;DONE
  4154	012473'	254 00 0 00 012435*	JRST RSKP
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 93
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  4155					;ROUTINE TO REBUILD A COMMAND TYPED TO OPR
  4156					;ACCEPTS IN T1/	STRING POINTER TO WHERE COMMAND IS TO BE PUT
  4157					;	    T2/	ADR OF ORION MESSAGE
  4158					;	CALL BLDCOM
  4159					;RETURNS +1:	ALWAYS - UPDATED STRING POINTER IN T1
  4160
  4161	012474'				BLDCOM:	SAVEPQ	^		;SAVE THE PERMANENT ACS
  4162	012474'	265 16 0 00 014444'		JSP CX,SAVPQ
  4163	012475'	200 10 0 00 000002 		MOVE P1,T2		;SAVE ADR OF START OF MESSAGE
  4164	012476'	200 04 0 10 000007 		MOVE T4,COM.PB(P1)	;GET OFFSET TO PARSER BLOCK
  4165	012477'	200 11 0 00 000010 		MOVE P2,P1		;GET BASE ADDRESS OF IPCF MESSAGE
  4166	012500'	270 11 0 00 000004 		ADD P2,T4		;COMPUTE ADDRESS OF PARSER BLOCK
  4167	012501'				BLDCML:	LOAD T2,PBTYP		^;GET NEXT FIELD
  4168	012501'	550 02 0 11 000000 			HRRZ T2,(P2)^
  4169						LOAD T3,PBVAL		^;GET VALUE INTO T3
  4170	012502'	200 03 0 11 000001 			MOVE T3,1(P2)^
  4171	012503'	305 02 0 00 000027 		CAIGE T2,BLDTBL		;IS THIS A KNOWN TYPE?
  4172	012504'	256 00 0 02 012513'		XCT BLDTAB(T2)		;YES, EXECUTE IT
  4173	012505'	200 03 0 00 000001 		MOVE T3,T1		;WITHOUT UPDATING THE POINTER
  4174	012506'	201 02 0 00 000000 		MOVEI T2,0		;END WITH A NULL
  4175	012507'	136 02 0 00 000003 		IDPB T2,T3		;...
  4176						LOAD T2,PBLEN		^;GET LENGTH OF THIS ARGUMENT
  4177	012510'	554 02 0 11 000000 			HLRZ T2,(P2)^
  4178	012511'	270 11 0 00 000002 		ADD P2,T2		;COMPUTE ADDRESS OF NEXT ARG
  4179	012512'	254 00 0 00 012501'		JRST BLDCML		;LOOP OVER EACH ARGUMENT
  4180
  4181	012513'	260 17 0 00 012550'	BLDTAB:	CALL BLDKEY		;.CMKEY
  4182	012514'	260 17 0 00 012556'		CALL BLDNUM		;.CMNUM
  4183	012515'	255 00 0 00 000000 		JFCL			;.CMNOI
  4184	012516'	260 17 0 00 012566'		CALL BLDSWI		;.CMSWI
  4185	012517'	260 17 0 00 012576'		CALL BLDFIL		;.CMIFI
  4186	012520'	260 17 0 00 012576'		CALL BLDFIL		;.CMOFI
  4187	012521'	260 17 0 00 012576'		CALL BLDFIL		;.CMFIL
  4188	012522'	260 17 0 00 012576'		CALL BLDTXT		;.CMFLD
  4189	012523'	254 00 0 00 012542'		JRST BLDCMD		;.CMCFM
  4190	012524'	260 17 0 00 012605'		CALL BLDDIR		;.CMDIR
  4191	012525'	260 17 0 00 012605'		CALL BLDDIR		;.CMUSR
  4192	012526'	260 17 0 00 012613'		CALL BLDCMA		;.CMCMA
  4193	012527'	255 00 0 00 000000 		JFCL			;.CMINI
  4194	012530'	260 17 0 00 012620'		CALL BLDFLT		;.CMFLT
  4195	012531'	260 17 0 00 012627'		CALL BLDDEV		;.CMDEV
  4196	012532'	260 17 0 00 012576'		CALL BLDTXT		;.CMTXT
  4197	012533'	260 17 0 00 012636'		CALL BLDTAD		;.CMTAD
  4198	012534'	260 17 0 00 012576'		CALL BLDTXT		;.CMQST
  4199	012535'	260 17 0 00 012576'		CALL BLDTXT		;.CMUQS
  4200	012536'	260 17 0 00 012576'		CALL BLDTXT		;.CMTOK
  4201	012537'	260 17 0 00 012556'		CALL BLDNUM		;.CMNUX
  4202	012540'	260 17 0 00 012576'		CALL BLDTXT		;.CMACT
  4203	012541'	260 17 0 00 012576'		CALL BLDNOD		;.CMNOD
  4204			000027		BLDTBL==.-BLDTAB
  4205
  4206	012542'	211 02 0 00 000001 	BLDCMD:	MOVNI T2,1		;BACK UP OVER THE SPACE
  4207	012543'	133 02 0 00 000001 		ADJBP T2,T1
  4208	012544'	200 01 0 00 000002 		MOVE T1,T2		;RETURN THE UPDATED BYTE POINTER
  4209	012545'	201 03 0 00 000000 		MOVEI T3,0		;PUT A NULL AT THE END OF THE STRING
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 93-1
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  4210	012546'	136 03 0 00 000002 		IDPB T3,T2		;...
  4211	012547'	263 17 0 00 000000 		RET			;DONE
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 94
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  4212	012550'	560 02 0 03 012645'	BLDKEY:	HRRO T2,KYTAB(T3)	;GET POINTER TO KEYWORD TEXT
  4213	012551'	400 03 0 00 000000 		SETZ T3,
  4214	012552'	104 00 0 00 000053 		SOUT			;COPY KEYWORD TO STRING
  4215	012553'	201 02 0 00 000040 		MOVEI T2," "		;FOLLOW EACH FIELD WITH A SPACE
  4216	012554'	104 00 0 00 000051 		BOUT			;...
  4217	012555'	263 17 0 00 000000 		RET
  4218
  4219	012556'	200 02 0 11 000001 	BLDNUM:	MOVE T2,1(P2)		;GET THE NUMBER
  4220	012557'	336 03 0 11 000002 		SKIPN T3,2(P2)		;IF ANY
  4221	012560'	201 03 0 00 000010 		MOVEI T3,10		;ASSUME OCTAL IF NONE
  4222	012561'	104 00 0 00 000224 		NOUT			;OUTPUT THE NUMBER
  4223	012562'	255 00 0 00 000000 		 JFCL
  4224	012563'	201 02 0 00 000040 		MOVEI T2," "		;FOLLOW EACH FIELD WITH A SPACE
  4225	012564'	104 00 0 00 000051 		BOUT			;...
  4226	012565'	263 17 0 00 000000 		RET
  4227
  4228	012566'	201 02 0 00 000057 	BLDSWI:	MOVEI T2,"/"		;SWITCH
  4229	012567'	104 00 0 00 000051 		BOUT			;START WITH A SLASH
  4230	012570'	560 02 0 03 013016'		HRRO T2,SWTAB(T3)	;GET SWITCH TEXT
  4231	012571'	400 03 0 00 000000 		SETZ T3,
  4232	012572'	201 02 0 00 000040 		MOVEI T2," "		;FOLLOW EACH FIELD WITH A SPACE
  4233	012573'	104 00 0 00 000051 		BOUT			;...
  4234	012574'	104 00 0 00 000053 		SOUT
  4235	012575'	263 17 0 00 000000 		RET
  4236
  4237	012576'				BLDFIL:
  4238	012576'				BLDTXT:
  4239	012576'	541 02 0 11 000001 	BLDNOD:	HRRI T2,.PBVAL(P2)	;GET ADDRESS OF NODE NAME STRING
  4240	012577'	505 02 0 00 440700 		HRLI T2,(POINT 7,)	;FORM POINTER TO STRING
  4241	012600'	400 03 0 00 000000 		SETZ T3,
  4242	012601'	104 00 0 00 000053 		SOUT
  4243	012602'	201 02 0 00 000040 		MOVEI T2," "		;FOLLOW EACH FIELD WITH A SPACE
  4244	012603'	104 00 0 00 000051 		BOUT			;...
  4245	012604'	263 17 0 00 000000 		RET
  4246
  4247	012605'	200 02 0 00 000001 	BLDDIR:	MOVE T2,T1		;SAVE STRING POINTER
  4248	012606'	104 00 0 00 000041 		DIRST			;TRANSLATE IT TO A STRING
  4249	012607'	200 01 0 00 000002 		 MOVE T1,T2		;GET BACK STRING POINTER IF ERROR
  4250	012610'	201 02 0 00 000040 		MOVEI T2," "		;FOLLOW EACH FIELD WITH A SPACE
  4251	012611'	104 00 0 00 000051 		BOUT			;...
  4252	012612'	263 17 0 00 000000 		RET
  4253
  4254	012613'	201 02 0 00 000054 	BLDCMA:	MOVEI T2,","		;ADD COMMA TO STRING
  4255	012614'	104 00 0 00 000051 		BOUT
  4256	012615'	201 02 0 00 000040 		MOVEI T2," "		;FOLLOW EACH FIELD WITH A SPACE
  4257	012616'	104 00 0 00 000051 		BOUT			;...
  4258	012617'	263 17 0 00 000000 		RET
  4259
  4260	012620'	200 02 0 00 000003 	BLDFLT:	MOVE T2,T3		;GET THE NUMBER
  4261	012621'	201 03 0 00 000000 		MOVEI T3,0		;STANDARD FORMAT
  4262	012622'	104 00 0 00 000233 		FLOUT
  4263	012623'	255 00 0 00 000000 		 JFCL
  4264	012624'	201 02 0 00 000040 		MOVEI T2," "		;FOLLOW EACH FIELD WITH A SPACE
  4265	012625'	104 00 0 00 000051 		BOUT			;...
  4266	012626'	263 17 0 00 000000 		RET
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 95
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  4267	012627'	200 02 0 00 000001 	BLDDEV:	MOVE T2,T1		;SAVE STRING POINTER
  4268	012630'	200 02 0 00 000003 		MOVE T2,T3		;COPY DEVICE DESIGNATOR
  4269	012631'	104 00 0 00 000121 		DEVST
  4270	012632'	200 01 0 00 000002 		 MOVE T1,T2		;FAILED, GET BACK STRING POINTER
  4271	012633'	201 02 0 00 000040 		MOVEI T2," "		;FOLLOW EACH FIELD WITH A SPACE
  4272	012634'	104 00 0 00 000051 		BOUT			;...
  4273	012635'	263 17 0 00 000000 		RET
  4274
  4275	012636'	200 02 0 00 000003 	BLDTAD:	MOVE T2,T3		;GET THE DATE
  4276	012637'	400 03 0 00 000000 		SETZ T3,
  4277	012640'	104 00 0 00 000220 		ODTIM			;OUTPUT THE STRING
  4278	012641'	320 16 0 00 012642'		 ERJMP .+1
  4279	012642'	201 02 0 00 000040 		MOVEI T2," "		;FOLLOW EACH FIELD WITH A SPACE
  4280	012643'	104 00 0 00 000051 		BOUT			;...
  4281	012644'	263 17 0 00 000000 		RET
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 96
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  4282					DEFINE X(A,B)<
  4283						[ASCIZ\A\]>
  4284
  4285	012645'				KYTAB:	;EXECUTE THE KEYWORD MACRO FROM ORNMAC
  4286						XLIST
  4287						LIST
  4288
  4289	013016'				SWTAB:	;EXECUTE THE SWITCH MACRO FROM ORNMAC
  4290						XLIST
  4291						LIST
  4292
  4293
  4294
  4295					;ROUTINE TO FINISH A REQUEST AND CLEAN UP FREE SPACE
  4296
  4297					;ACCEPTS IN T1/	ERROR CODE (IF FAILURE OCCURED)
  4298					;	    T2/	-1 = SUCCESS,  0 = FAILURE
  4299					;	    T3/	ADDRESS OF THE REQUEST
  4300
  4301					;RETURNS +1:	FAILED TO FINISH CORRECTLY
  4302					;	 +2:	OK
  4303
  4304	013100'				FINREQ:	ASUBR <FINRQE,FINRQC,FINRQA,FINRQF>^
  4305	013100'	265 16 0 00 011106*		JSP .A16,.ASSET		
  4306						SAVEQ^
  4307	013101'	265 16 0 00 014432'		JSP CX,SAVQ^
  4308						LOAD T4,QUEFLG,(T3)	^;GET THE MESSAGE FLAGS
  4309	013102'	550 04 0 03 000001 			HRRZ T4,1(T3)^
  4310	013103'	202 04 0 15 000004 		MOVEM T4,FINRQF	^^O4(.FP)^	;SAVE THE FLAGS FOR LATER
  4311						LOAD T4,QUETYP,(T3)	^;GET MESSAGE TYPE
  4312	013104'	554 04 0 03 000001 			HLRZ T4,1(T3)^
  4313	013105'	301 04 0 00 000004 		CAIL T4,FREQDL		;LEGAL?
  4314						FATAL.ERROR (.ERR14)^	;NO
  4315					IFNB <.ERR14>,<	MOVEI T1,.ERR14>
  4316							CALL ERROR
  4317							HALTF
  4318	013106'	254 00 0 00 016637'			JRST NETCON]
  4319	013107'	200 05 0 04 013120'		MOVE Q1,FREQDT(T4)	;GET DISPATCH ADDRESS
  4320						LOAD T4,QUEMES,(T3)	^;GET ADDRESS OF MESSAGE
  4321	013110'	554 04 0 03 000000 			HLRZ T4,0(T3)^
  4322	013111'	202 04 0 15 000003 		MOVEM T4,FINRQA	^^O3(.FP)^	;SAVE THIS ADDRESS
  4323	013112'	201 01 0 00 000002 		MOVEI T1,QUEHLN		;NOW RELEASE THIS BLOCK
  4324	013113'	202 01 0 03 000000 		MOVEM T1,(T3)		;SAVE THE CORRECT BLOCK LENGTH
  4325	013114'	200 01 0 00 000003 		MOVE T1,T3		;GET ADDRESS OF BLOCK
  4326	013115'	260 17 0 00 014115'		CALL RELFRE		;RELEASE THE BLOCK
  4327						 FATAL.ERROR^
  4328							CALL ERROR
  4329							HALTF
  4330	013116'	254 00 0 00 016623'			JRST NETCON]^
  4331	013117'	254 00 0 05 000000 		JRST (Q1)		;DISPATCH TO THE MESSAGE DEPENDENT CODE
  4332
  4333	013120'	000000	013124'		FREQDT:	FINMES			;ORION MESSAGE
  4334	013121'	000000	013153'			FINFKT			;FORK TERMINATION
  4335	013122'	000000	013155'			FINJFD			;DATA OR DISCONNECT
  4336	013123'	000000	013154'			FINDML			;AUTO DUMP/LOAD
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 96-1
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  4337			000004		FREQDL==.-FREQDT
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 97
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  4338	013124'				FINMES:	STKVAR <<FINMSM,200>>^
  4339	013124'	265 16 0 00 012436*		JSP .A16,.STKST
  4340	013125'	000200	000200			 ..STKN,,..STKN
  4341	013126'	402 00 0 17 777577 		SETZM FINMSM	^-^O201(P)^	;START WITH A NULL MESSAGE
  4342	013127'	200 01 0 15 000004 		MOVE T1,FINRQF	^^O4(.FP)^	;GET THE MESSAGE FLAGS
  4343						TXNE T1,QF%TXT		^;IS THERE TEXT TO BE RETURNED?
  4344	013130'	602 01 0 00 000002 		  TRNE T1,..TX1>
  4345						JRST [	MOVE T2,FINRQA	^^O3(.FP)^;YES, BUILD A POINTER TO IT
  4346							LOAD T1,MS.CNT,.MSTYP(T2)^
  4347							HLRZ T1,.MSTYP(T2)^
  4348							ADDI T1,.MSTYP(T2)
  4349							HRLI T1,(POINT 7,0)
  4350	013131'	254 00 0 00 020444'			JRST FINMS2]	;GO SEND IT TO OPR
  4351						TXNE T1,QF%NOA		^;IS THIS MESSAGE TO BE ACK'D NOW?
  4352	013132'	602 01 0 00 000001 		  TRNE T1,..TX1>
  4353	013133'	254 00 0 00 013152'		JRST FINMSD		;NO
  4354	013134'	332 00 0 15 000002 		SKIPE FINRQC	^^O2(.FP)^	;WAS THERE AN ERROR IN THE REQUEST?
  4355	013135'	254 00 0 00 013146'		JRST FINMS1		;NO
  4356	013136'	200 01 0 15 000001 		MOVE T1,FINRQE	^^O1(.FP)^	;YES, GET THE ERROR CODE
  4357	013137'	561 02 0 17 777577 		HRROI T2,FINMSM	^-^O201(P)^	;SET UP A POINTER TO THE TEXT AREA 
  4358	013140'	201 03 0 00 400000 		MOVEI T3,.FHSLF		;THIS FORK
  4359	013141'	260 17 0 00 014532'		CALL ERRORB		;BUILD THE MESSAGE
  4360	013142'	402 00 0 00 000001 		setzm t1		;no text, just header
  4361	013143'	561 02 0 17 777577 		hrroi t2,finmsM	^-^O201(P)^	;get pointer to messaGe
  4362	013144'	260 17 0 00 014575'		call oprmes		;output the error text
  4363	013145'	255 00 0 00 000000 		 jfcl			;ignore failure
  4364	013146'	561 01 0 17 777577 	FINMS1:	HRROI T1,FINMSM	^-^O201(P)^	;SET UP TO ACK ORION
  4365	013147'	200 01 0 15 000003 	FINMS2:	MOVE T1,FINRQA	^^O3(.FP)^	;RELEASE THE MESSAGE PAGE
  4366	013150'	260 17 0 00 014267'		CALL RELPGA		;...
  4367						 NON.FATAL.ERROR^
  4368	013151'	260 17 0 00 014473'	IFB <>,<	CALL WRNING>
  4369	013152'				FINMSD:	RETSKP	^		;DONE
  4370	013152'	254 00 0 00 012473*	JRST RSKP
  4371
  4372
  4373	013153'				FINFKT:	RETSKP	^		;NO WORK TO BE DONE ON FORK TERMINATION
  4374	013153'	254 00 0 00 013152*	JRST RSKP
  4375
  4376	013154'				FINDML:	RETSKP	^		;DONE
  4377	013154'	254 00 0 00 013153*	JRST RSKP
  4378
  4379
  4380	013155'				FINJFD:	RETSKP	^		;DONE
  4381	013155'	254 00 0 00 013154*	JRST RSKP
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 98
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  4382					;ROUTINE TO CHECK FOR ANY NICE MESSAGES WAITING TO BE SENT
  4383					;  IF ANY ARE FOUND, AN ATTEMPT IS MADE TO SEND THEM.
  4384					;  IF THE NICE MESSAGE CANNOT BE SENT, IT IS LEFT ON THE QUEUE
  4385					;  TO BE TRIED LATER.
  4386
  4387					;	CALL CHKNIC
  4388					;RETURNS +1:	ALWAYS - NOTING MORE TO DO AT THIS TIME
  4389
  4390	013156'				CHKNIC:	STKVAR <CHKNIM,CHKNIN,CHKNIT,CHKNIF>^
  4391	013156'	265 16 0 00 013124*		JSP .A16,.STKST
  4392	013157'	000004	000004			 ..STKN,,..STKN
  4393	013160'	260 17 0 00 013302'	CHKNIL:	CALL DEQNIC		;GET A NICE MESSAGE TO SEND
  4394	013161'	263 17 0 00 000000 		 RET			;NO MORE ON QUEUE
  4395	013162'	202 01 0 17 777776 		MOVEM T1,CHKNIM	^-^O2(P)^	;SAVE ADR OF MESSAGE
  4396	013163'	202 02 0 17 777774 		MOVEM T2,CHKNIT	^-^O4(P)^	;SAVE ADDRESS OF NICE MESSAGE TEXT
  4397	013164'	202 03 0 17 777775 		MOVEM T3,CHKNIN	^-^O3(P)^	;SAVE NUMBER OF CHARS IN NICE MESSAGE
  4398	013165'	202 04 0 17 777773 		MOVEM T4,CHKNIF	^-^O5(P)^	;SAVE FUNCTION AND OPTION
  4399						TXZE T2,NQ%REQ		^;HAS THIS ENTRY ALREADY BEEN RE-QUEUED ?
  4400	013166'	623 02 0 00 400000 		  TLZE T2,(..TX1)>>
  4401	013167'	254 00 0 00 013206'		JRST CHKNI2		;YES, DONE WITH THIS PASS THRU QUEUE
  4402	013170'	505 02 0 00 441000 		HRLI T2,(POINT 8,)	;NO, FORM POINTER TO NICE MESSAGE
  4403	013171'	260 17 0 00 011105'		CALL SNDNIC		;TRY TO SEND THIS NICE MESSAGE
  4404	013172'	254 00 0 00 013174'		 JRST CHKNI1		;COULD NOT SEND IT, GO REQUEUE IT
  4405	013173'	254 00 0 00 013160'		JRST CHKNIL		;LOOP BACK FOR REST OF REQUESTS
  4406
  4407	013174'	200 01 0 17 777776 	CHKNI1:	MOVE T1,CHKNIM	^-^O2(P)^	;GET BACK MESSAGE ADR
  4408	013175'	200 02 0 17 777774 		MOVE T2,CHKNIT	^-^O4(P)^	;GET BACK ADR OF NICE TEXT
  4409	013176'	260 17 0 00 013216'		CALL RQCHK		;Check if request is too old
  4410	013177'	254 00 0 00 013160'		JRST CHKNIL		;Yes .. don't requeue it
  4411						TXO T2,NQ%REQ		^;NOTE THAT THIS ENTRY REQUEUED
  4412	013200'	661 02 0 00 400000 		  TLO T2,(..TX1)>>
  4413	013201'	200 03 0 17 777775 		MOVE T3,CHKNIN	^-^O3(P)^	;AND NUMBER OF CHARACTERS
  4414	013202'	200 04 0 17 777773 		MOVE T4,CHKNIF	^-^O5(P)^	;RESTORE NICE FUNCTION AND OPTION
  4415	013203'	260 17 0 00 013227'		CALL QUENCR		;QUEUE IT ON REAR OF QUEUE
  4416						 NON.FATAL.ERROR^
  4417	013204'	260 17 0 00 014473'	IFB <>,<	CALL WRNING>
  4418	013205'	254 00 0 00 013160'		JRST CHKNIL		;GO PROCESS NEXT ENTRY ON QUEUE
  4419
  4420					; HERE WHEN FOUND AN ALREADY PROCESSED QUEUE ENTRY
  4421
  4422	013206'	200 01 0 17 777776 	CHKNI2:	MOVE T1,CHKNIM	^-^O2(P)^	;GET BACK MESSAGE ADR
  4423	013207'	200 02 0 17 777774 		MOVE T2,CHKNIT	^-^O4(P)^	;GET BACK ADR OF NICE TEXT
  4424						TXZ T2,NQ%REQ		^;RESET "ENTRY REQUEUED" FLAG
  4425	013210'	621 02 0 00 400000 		  TLZ T2,(..TX1)>>
  4426	013211'	200 03 0 17 777775 		MOVE T3,CHKNIN	^-^O3(P)^	;AND NUMBER OF CHARACTERS
  4427	013212'	200 04 0 17 777773 		MOVE T4,CHKNIF	^-^O5(P)^	;RESTORE NICE FUNCTION AND OPTION
  4428	013213'	260 17 0 00 013232'		CALL QUENCF		;QUEUE IT ON FRONT OF QUEUE
  4429						 NON.FATAL.ERROR^
  4430	013214'	260 17 0 00 014473'	IFB <>,<	CALL WRNING>
  4431	013215'	263 17 0 00 000000 		RET			;DONE WITH THIS PASS, RETURN
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 99
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  4432					;Routine to check age of a NICE request
  4433
  4434					;ACCEPTS in T2/ Time of entry,,anything
  4435					;
  4436					;Returns +1: if request is too old
  4437					;	 +2: if request should be requeued
  4438
  4439	013216'				RQCHK:	SAVET	^		;Save some registers
  4440	013216'	265 16 0 00 014420'		JSP CX,SAVT
  4441	013217'	554 01 0 00 000002 		HLRZ	T1,T2		;Get time entry was made
  4442	013220'	260 17 0 00 013337'		CALL	QUETIM		;Get current time (minutes since midnight)
  4443	013221'	307 02 0 00 000017 		CAIG	T2,RQMAX	;Check for midnight wrap around
  4444	013222'	271 02 0 00 002640 		ADDI	T2,^D24*^D60	;Yes .. add midnight
  4445	013223'	275 02 0 00 000017 		SUBI	T2,RQMAX	;Subtract threshold time
  4446	013224'	315 02 0 00 000001 		CAMGE	T2,T1		;Check if entry is too old (lss current-RQMAX)
  4447						RETSKP	^		;No .. give skip .. entry is still good
  4448	013225'	254 00 0 00 013155*	JRST RSKP
  4449	013226'	263 17 0 00 000000 		RET			;Nonskip .. entry is ancient
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 100
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  4450					;ROUTINE TO QUEUE NICE MESSAGES ONTO THE NICE QUEUE
  4451
  4452					;ACCEPTS IN T1/	ADDRESS OF EXECUTOR STRING,,ADDRESS OF MESSAGE FROM ORION
  4453					;	    T2/	ADDRESS OF NICE MESSAGE
  4454					;	    T3/	REQ NUMBER ,, COUNT OF CHARACTERS IN NICE MESSAGE
  4455					;	    T4/	NICE FUNCTION CODE,,NICE SUB-OPTION
  4456					;	CALL QUENCF		;QUEUE TO FRONT OF NICE QUEUE
  4457					;	    OR
  4458					;	CALL QUENCR		;QUEUE TO REAR OF NICE QUEUE
  4459					;RETURNS +1:	FAILED
  4460					;	 +2:	SUCCESSFUL
  4461
  4462	013227'				QUENCR:	SAVEQ^
  4463	013227'	265 16 0 00 014432'		JSP CX,SAVQ^
  4464	013230'	402 00 0 00 000006 		SETZM Q2		;MARK THAT REQUEST IS FOR END OF QUEUE
  4465	013231'	254 00 0 00 013235'		JRST QUENCU		;GO ADD ENTRY TO QUEUE
  4466	013232'				QUENCF:	SAVEQ^
  4467	013232'	265 16 0 00 014432'		JSP CX,SAVQ^
  4468	013233'	476 00 0 00 000006 		SETOM Q2		;PUT ENTRY ON FRONT OF THE QUEUE
  4469	013234'	254 00 0 00 013235'		JRST QUENCU		;GO ADD ENTRY TO QUEUE
  4470
  4471	013235'				QUENCU:	ASUBR <QUENCM,QUENCT,QUENCN,QUEFCN>^
  4472	013235'	265 16 0 00 013100*		JSP .A16,.ASSET		
  4473	013236'	201 01 0 00 000005 		MOVEI T1,NQLEN		;GET A HEADER TO HOLD THIS INFO
  4474	013237'	260 17 0 00 014021'		CALL GETFRE		;...
  4475						 RETBAD ()^		;COULD NOT GET SPACE NOW
  4476	013240'	263 17 0 00 000000 	IFB <>,<	RET>
  4477	013241'	200 05 0 00 000001 		MOVE Q1,T1		;SAVE ADR OF FREE SPACE
  4478	013242'	550 02 0 15 000001 		HRRZ T2,QUENCM	^^O1(.FP)^	;GET ADDRESS OF MESSAGE
  4479						STOR T2,NQMES,(Q1)	^;SAVE IN QUEUE ENTRY
  4480	013243'	506 02 0 05 000000 			HRLM T2,0(Q1)^
  4481	013244'	554 02 0 15 000001 		HLRZ T2,QUENCM	^^O1(.FP)^	;GET ADDRESS OF EXECUTOR STRING
  4482						STOR T2,NQXTR,(Q1)	^;SAVE
  4483	013245'	542 02 0 05 000004 			HRRM T2,4(Q1)^
  4484	013246'	200 02 0 15 000002 		MOVE T2,QUENCT	^^O2(.FP)^	;GET FLAGS AND POINTER TO NICE MESSAGE
  4485						TXZE T2,NQ%REQ		^;IS THIS ENTRY BEING RE-QUEUED ?
  4486	013247'	623 02 0 00 400000 		  TLZE T2,(..TX1)>>
  4487						JRST [SETONE NQREQ,(Q1)	^
  4488						  MOVSI .SAC,(..MX1)>>	
  4489							IORM .SAC,4(Q1)
  4490	013250'	254 00 0 00 020451'		      JRST .+1]		;AND CONTINUE
  4491						STOR T2,NQTXT,(Q1)^
  4492	013251'	542 02 0 05 000002 			HRRM T2,2(Q1)^
  4493	013252'	557 00 0 00 000002 		HLRZS T2		;Get time of first time entry was q'd
  4494	013253'	336 00 0 00 000002 		SKIPN T2		;If time not defined..
  4495	013254'	260 17 0 00 013337'		CALL QUETIM		;get current time
  4496						STOR T2,NQRQT,(Q1)	^;Put into q entry as time initally q'd
  4497	013255'	137 02 0 00 020454'	>^,2(Q1),POS(NQRQT)^<^L<<NQRQT>&<-<NQRQT>>>>^>^]^
  4498	013256'	550 02 0 15 000003 		HRRZ T2,QUENCN	^^O3(.FP)^	;GET NUMBER OF CHARACTERS IN NICE MES
  4499						STOR T2,NQCHR,(Q1)^
  4500	013257'	542 02 0 05 000001 			HRRM T2,1(Q1)^
  4501	013260'	554 02 0 15 000003 		HLRZ T2,QUENCN	^^O3(.FP)^	;GET REQUEST NUMBER
  4502						STOR T2,NQNUM,(Q1)	^;SAVE IT
  4503	013261'	506 02 0 05 000001 			HRLM T2,1(Q1)^
  4504	013262'	554 02 0 15 000004 		HLRZ T2,QUEFCN	^^O4(.FP)^	;GET NICE FUNCTION CODE
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 100-1
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  4505						STOR T2,NQFCN,(Q1)	^;SAVE NICE FUNCTION CODE
  4506	013263'	506 02 0 05 000003 			HRLM T2,3(Q1)^
  4507	013264'	550 02 0 15 000004 		HRRZ T2,QUEFCN	^^O4(.FP)^	;GET NICE OPTION (SUBFUNCTION)
  4508						STOR T2,NQOPT,(Q1)	^;SAVE NICE OPTION
  4509	013265'	542 02 0 05 000003 			HRRM T2,3(Q1)^
  4510						SETZRO NQPNT,(Q1)	^;INITIALIZE POINTER LOCATION
  4511	013266'	513 00 0 05 000000 			HLLZS 0(Q1)^
  4512						PIOFF	^		;GUARD AGAINST INTERRUPTS
  4513	013267'	260 17 0 00 014406'		CALL PIOFF.
  4514	013270'	332 00 0 00 000006 		SKIPE Q2		;PUT THIS ENTRY ON FRONT OF QUEUE ?
  4515						JRST [	MOVE T1,NICQUE	;YES, GET CURRENT FIRST ENTRY
  4516							STOR T1,NQPNT,(Q1) ^
  4517							HRRM T1,0(Q1)^
  4518							MOVEM Q1,NICQUE	;PUT THE NEW ENTRY AT FRONT OF LIST
  4519							PION^
  4520						CALL PION.^
  4521	013271'	254 00 0 00 020455'			RETSKP^JRST RSKP^]		;DONE
  4522	013272'	201 02 0 00 002003'		MOVEI T2,NICQUE		;PUT ENTRY AT END OF LIST
  4523	013273'				QUENC1:	LOAD T3,NQPNT,(T2)	^;GET POINTER TO NEXT ITEM ON LIST
  4524	013273'	550 03 0 02 000000 			HRRZ T3,0(T2)^
  4525	013274'	322 03 0 00 013277'		JUMPE T3,QUENC2		;FOUND THE END YET?
  4526	013275'	200 02 0 00 000003 		MOVE T2,T3		;NO, STEP TO THE NEXT ENTRY
  4527	013276'	254 00 0 00 013273'		JRST QUENC1		;LOOP TIL END OF LIST FOUND
  4528
  4529	013277'				QUENC2:	STOR Q1,NQPNT,(T2)	^;PUT THE NEW ENTRY AT END OF LIST
  4530	013277'	542 05 0 02 000000 			HRRM Q1,0(T2)^
  4531						PION^
  4532	013300'	260 17 0 00 014413'		CALL PION.^
  4533						RETSKP	^		;DONE
  4534	013301'	254 00 0 00 013225*	JRST RSKP
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 101
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  4535					;ROUTINE TO PULL AN ENTRY OFF THE NICE MESSAGE QUEUE
  4536
  4537					;	CALL DEQNIC
  4538					;RETURNS +1:	NONE LEFT
  4539					;	 +2:	T1/	ADDRESS OF EXECUTOR STRING,,ADDRESS OF ORION MESSAGE
  4540					;		T2/	ADDRESS OF NICE MESSAGE
  4541					;		T3/	REQ NUMBER ,, NUMBER OF CHARACTERS IN NICE MESSAGE
  4542					;		T4/	FUNCTION,,OPTION
  4543
  4544	013302'				DEQNIC:	SAVEPQ^
  4545	013302'	265 16 0 00 014444'		JSP CX,SAVPQ^
  4546						PIOFF	^		;GUARD AGAINST INTERRUPTS
  4547	013303'	260 17 0 00 014406'		CALL PIOFF.
  4548	013304'	336 01 0 00 002003'		SKIPN T1,NICQUE		;ANYTHING ON THE QUEUE
  4549						JRST [	PION	^
  4550						CALL PION.^	;NO
  4551	013305'	254 00 0 00 020462'			RET]		;NONE THERE
  4552						LOAD T2,NQPNT,(T1)	^;GET POINTER TO SECOND ENTRY
  4553	013306'	550 02 0 01 000000 			HRRZ T2,0(T1)^
  4554	013307'	202 02 0 00 002003'		MOVEM T2,NICQUE		;MAKE IT BE THE FIRST ENTRY
  4555						PION^
  4556	013310'	260 17 0 00 014413'		CALL PION.^
  4557						LOAD Q1,NQMES,(T1)	^;GET ADDRESS OF ORION MESSAGE
  4558	013311'	554 05 0 01 000000 			HLRZ Q1,0(T1)^
  4559						LOAD Q3,NQXTR,(T1)	^;GET EXECUTOR STRING ADDRESS
  4560	013312'	550 07 0 01 000004 			HRRZ Q3,4(T1)^
  4561	013313'	504 05 0 00 000007 		HRL Q1,Q3		; INTO IT'S REG
  4562						LOAD Q2,NQTXT,(T1)	^;GET ADR OF NICE MESSAGE
  4563	013314'	550 06 0 01 000002 			HRRZ Q2,2(T1)^
  4564						LOAD Q3,NQRQT,(T1)	^;Get time entry was initially q'd
  4565	013315'	135 07 0 00 020464'	>^,2(T1),POS(NQRQT)^<^L<<NQRQT>&<-<NQRQT>>>>^>^]^
  4566	013316'	504 06 0 00 000007 		HRL Q2,Q3		;Save for left half of T2 on return
  4567						JN NQREQ,(T1),[	TXO Q2,NQ%REQ ;NOTE THAT THIS ENTRY HAS BEEN
  4568								JRST .+1]     ^; REQUEUED IF SO
  4569	013317'	200 16 0 01 000004 			MOVE .SAC,4(T1)	
  4570						  TLO Q2,(..TX1)>>
  4571	013320'	321 16 0 00 020465'				JRST .+1]
  4572						LOAD Q3,NQCHR,(T1)	^;GET CHARACTER COUNT
  4573	013321'	550 07 0 01 000001 			HRRZ Q3,1(T1)^
  4574						LOAD T2,NQNUM,(T1)	^;GET REQUEST NUMBER
  4575	013322'	554 02 0 01 000001 			HLRZ T2,1(T1)^
  4576	013323'	504 07 0 00 000002 		HRL Q3,T2		;GET REQ NUMBER ,, COUNT
  4577						LOAD P1,NQOPT,(T1)	^;GET NICE OPTION
  4578	013324'	550 10 0 01 000003 			HRRZ P1,3(T1)^
  4579						LOAD T2,NQFCN,(T1)	^;GET NICE FUNCTION CODE
  4580	013325'	554 02 0 01 000003 			HLRZ T2,3(T1)^
  4581	013326'	504 10 0 00 000002 		HRL P1,T2		;FORM FUNCTION,,OPTION
  4582	013327'	201 02 0 00 000005 		MOVEI T2,NQLEN		;NOW RELEASE THE QUEUE ENTRY
  4583	013330'	202 02 0 01 000000 		MOVEM T2,0(T1)		;SET UP THE CORRECT LENGTH
  4584	013331'	260 17 0 00 014115'		CALL RELFRE		;RELEASE THE BLOCK
  4585						 FATAL.ERROR^
  4586							CALL ERROR
  4587							HALTF
  4588	013332'	254 00 0 00 016623'			JRST NETCON]^
  4589	013333'	120 01 0 00 000005 		DMOVE T1,Q1		;SET UP THE ANSWERS
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 101-1
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  4590	013334'	200 03 0 00 000007 		MOVE T3,Q3
  4591	013335'	200 04 0 00 000010 		MOVE T4,P1		;GET NICE FUNCTION AND OPTION
  4592						RETSKP	^		;AND RETURN
  4593	013336'	254 00 0 00 013301*	JRST RSKP
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 102
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  4594					;Routine to get time since midnight in minutes
  4595					;
  4596					;Accepts anything
  4597					;
  4598					;Returns +1:	Always with time in T2
  4599
  4600	013337'				QUETIM:	SAVEQ	^		;Save some registers
  4601	013337'	265 16 0 00 014432'		JSP CX,SAVQ
  4602	013340'	200 05 0 00 000001 		MOVE Q1,T1		;Put T's where we can get at them
  4603	013341'	120 06 0 00 000003 		DMOVE Q2,T3
  4604
  4605	013342'	474 02 0 00 000000 		SETO T2,		;Say that current time is wanted
  4606	013343'	400 04 0 00 000000 		SETZ T4,		;Say that no screwy conversions are to be done
  4607	013344'	104 00 0 00 000222 		ODCNV			;Get time
  4608	013345'	550 02 0 00 000004 		HRRZ T2,T4		;Get seconds since midnight
  4609	013346'	231 02 0 00 000074 		IDIVI T2,^d60		;Convert to minutes
  4610	013347'	120 03 0 00 000006 		DMOVE T3,Q2		;Get the registers back
  4611	013350'	200 01 0 00 000005 		MOVE T1,Q1
  4612	013351'	263 17 0 00 000000 		RET			;Restore rest of them and return
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 103
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  4613					;ROUTINE TO COPY AN ASCIZ STRING FROM A MESSAGE TO A FREE BLOCK
  4614					;
  4615					; Warning: This routine shifts any lower case characters to 
  4616					;	   upper case.
  4617
  4618					;ACCEPTS IN T1/	ADDRESS OF OLD STRING BLOCK
  4619					;	    T2/	BYTE POINTER TO COPY FROM
  4620					;	    T3/	MAXIMUM LENGTH IN WORDS OF STRING
  4621					;	CALL CPYASC
  4622					;RETURNS +1:	FAILED, STRING TOO LONG OR NO FREE SPACE
  4623					;	 +2:	T1/	ADDRESS OF BLOCK WITH STRING IN IT
  4624
  4625	013352'				CPYASC::ASUBR <CPYADR,CPYFRM,CPYLEN>^
  4626	013352'	265 16 0 00 013235*		JSP .A16,.ASSET		
  4627	013353'	553 00 0 00 000001 		HRRZS T1		;RELEASE THE OLD BLOCK
  4628	013354'	322 01 0 00 013357'		JUMPE T1,CPYAS1		;ANYTHING THERE?
  4629	013355'	260 17 0 00 014115'		CALL RELFRE		;YES, RELEASE IT
  4630						 FATAL.ERROR^
  4631							CALL ERROR
  4632							HALTF
  4633	013356'	254 00 0 00 016623'			JRST NETCON]^
  4634	013357'	200 01 0 15 000003 	CPYAS1:	MOVE T1,CPYLEN	^^O3(.FP)^	;NOW GET SOME SPACE
  4635	013360'	350 00 0 00 000001 		AOS T1			;PLUS ONE WORD FOR HEADER
  4636	013361'	260 17 0 00 014021'		CALL GETFRE		;GET SPACE
  4637						 RETBAD			^;NO MORE SPACE LEFT
  4638	013362'	263 17 0 00 000000 	IFB <>,<	RET>
  4639	013363'	505 01 0 00 000700 		HRLI T1,(POINT 7,0,35)	;SET UP BYTE POINTER
  4640	013364'	202 01 0 15 000001 		MOVEM T1,CPYADR	^^O1(.FP)^	;SAVE IT FOR LATER
  4641	013365'	200 02 0 15 000002 		MOVE T2,CPYFRM	^^O2(.FP)^	;GET ADR OF STRING
  4642	013366'	200 03 0 15 000003 		MOVE T3,CPYLEN	^^O3(.FP)^	;GET LENGTH OF STRING
  4643	013367'	221 03 0 00 000005 		IMULI T3,5		;GET LENGTH IN CHARACTERS
  4644
  4645	013370'	134 04 0 00 000002 	CPYAS2:	ILDB T4,T2		;Get character from string
  4646	013371'	307 04 0 00 000172 		CAIG T4,"z"		;Check for above lower case
  4647	013372'	305 04 0 00 000141 		CAIGE T4,"a"		;or below lower case
  4648	013373'	304 00 0 00 000000 		 CAIA			; Yes .. ignore
  4649	013374'	275 04 0 00 000040 		  SUBI T4,"a"-"A"	;  No .. so shift to upper case
  4650	013375'	136 04 0 00 000001 		IDPB T4,T1		;Stuff into destination string
  4651						JUMPE T4,[MOVE T1,CPYADR ^^O1(.FP)^;If zero byte at end of string .. get address
  4652	013376'	322 04 0 00 020467'			  RETSKP^JRST RSKP^]	; and give a successfull return
  4653	013377'	367 03 0 00 013370'		SOJG T3,CPYAS2		;If room left in destination .. continue copy
  4654
  4655	013400'	550 01 0 15 000001 		HRRZ T1,CPYADR	^^O1(.FP)^	;GET ADDRESS OF BLOCK AGAIN
  4656	013401'	260 17 0 00 014115'		CALL RELFRE		;RELEASE THIS BLOCK
  4657						 FATAL.ERROR^
  4658							CALL ERROR
  4659							HALTF
  4660	013402'	254 00 0 00 016623'			JRST NETCON]^
  4661						RETBAD (.ERR13)^		;ILLEGALLY FORMATTED MESSAGE
  4662					IFNB <.ERR13>,<	JRST [	MOVEI T1,.ERR13
  4663	013403'	254 00 0 00 016704'				RET]>>
  4664
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 104
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  4665					;ROUTINE TO RECEIVE A MESSAGE FROM ORION AND PUT IT ON THE QUEUE
  4666
  4667	013404'				PIDINT:	ENTINT (\PIDLVL)^	;ENTER INTERRUPT
  4668	013404'	202 01 0 00 000000*		MOVEM T1,L2SAV1
  4669	013405'	202 02 0 00 000000*		MOVEM T2,L2SAV2
  4670	013406'	202 03 0 00 000000*		MOVEM T3,L2SAV3
  4671	013407'	202 04 0 00 000000*		MOVEM T4,L2SAV4
  4672	013410'	202 16 0 00 000000*		MOVEM CX,L2SAVC^
  4673						JSP CX,[CALL 0(CX)
  4674						MOVE T1,L2SAV1
  4675						MOVE T2,L2SAV2
  4676						MOVE T3,L2SAV3
  4677						MOVE T4,L2SAV4
  4678						MOVE CX,L2SAVC^
  4679	013411'	265 16 0 00 020471'			DEBRK]
  4680						SAVEQ	^		;SAVE PERMANENT ACS USED HERE
  4681	013412'	265 16 0 00 014432'		JSP CX,SAVQ
  4682						STKVAR <<RCVPDB,7>>	^;GET SPACE FOR PID DESCRIPTOR BLOCK
  4683	013413'	265 16 0 00 013156*		JSP .A16,.STKST
  4684	013414'	000007	000007			 ..STKN,,..STKN
  4685	013415'	201 01 0 00 000002 	PDINT1:	MOVEI T1,QUEHLN		;GET SOME FREE SPACE FOR QUEUE ENTRY
  4686	013416'	260 17 0 00 014021'		CALL GETFRE		;...
  4687						 FATAL.ERROR		^;RAN OUT OF FREE SPACE
  4688							CALL ERROR
  4689							HALTF
  4690	013417'	254 00 0 00 016623'			JRST NETCON]
  4691	013420'	200 05 0 00 000001 		MOVE Q1,T1		;SAVE ADDRESS OF QUEUE ENTRY
  4692	013421'	201 01 0 00 000000 		MOVEI T1,.QTMES		;MARK THIS AS A MESSAGE ENTRY
  4693						STOR T1,QUETYP,(Q1)	^;...
  4694	013422'	506 01 0 05 000001 			HRLM T1,1(Q1)^
  4695	013423'	260 17 0 00 014234'		CALL ASGPAG		;NOW GET A PAGE TO RECEIVE THE MESSAGE
  4696						 FATAL.ERROR		^;NO MORE FREE PAGES
  4697							CALL ERROR
  4698							HALTF
  4699	013424'	254 00 0 00 016623'			JRST NETCON]
  4700						STOR T2,QUEMES,(Q1)	^;STORE THE ADDRESS OF THE PAGE IN QUEUE
  4701	013425'	506 02 0 05 000000 			HRLM T2,0(Q1)^
  4702	013426'	202 01 0 17 777773 		MOVEM T1,.IPCFP+RCVPDB	^-^O10(P)^;SET UP TO RECEIVE THE MESSAGE
  4703	013427'	201 01 0 00 001000 		MOVEI T1,1000		;SET UP THE LENGTH
  4704	013430'	506 01 0 17 777773 		HRLM T1,.IPCFP+RCVPDB	^-^O10(P)^;NOW HAVE LEN,,ADR
  4705						MOVX T1,IP%CFB!IP%CFV	^;FIRST TRY TO READ WITH PAGE MODE
  4706	013431'	200 01 0 00 020500'		  MOVE T1,[..MX1]>	
  4707	013432'	202 01 0 17 777770 		MOVEM T1,.IPCFL+RCVPDB	^-^O10(P)^;STORE THE FLAGS IN DESCRIPTOR BLOCK
  4708	013433'	200 01 0 00 002050'		MOVE T1,PID		;GET OUR PID
  4709	013434'	202 01 0 17 777772 		MOVEM T1,.IPCFR+RCVPDB	^-^O10(P)^;STORE IN DESCRIPTOR BLOCK
  4710	013435'	201 01 0 00 000006 		MOVEI T1,6		;LENGTH = 6
  4711	013436'	201 02 0 17 777770 		MOVEI T2,RCVPDB	^-^O10(P)^	;POINTER TO DESCRIPTOR BLOCK
  4712	013437'	104 00 0 00 000511 		MRECV			;RECEIVE THE MESSAGE
  4713						 JRST [	MOVX T1,IP%CFB	^
  4714						  MOVSI T1,(..MX1)>>	
  4715							MOVEM T1,.IPCFL+RCVPDB^-^O10(P)^
  4716							LOAD T1,QUEMES,(Q1)	^
  4717							HLRZ T1,0(Q1)^
  4718							HRRM T1,.IPCFP+RCVPDB	^-^O10(P)^;SAVE IN IPCF BLOCK
  4719							MOVEI T1,6		;LENGTH
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 104-1
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  4720							MRECV			;TRY TO RECEIVE IT AGAIN
  4721							 ERJMP [CAIE T1,IPCFX2  ;FAILED. ERROR NO MESSAGE FOR THIS PID ?
  4722								FATAL.ERROR     ^
  4723							CALL ERROR
  4724							HALTF
  4725							JRST NETCON]^;NO, COULD NOT GET IT STILL
  4726								JRST PDINT2] 	;YES, release memory and dismiss
  4727	013440'	254 00 0 00 020504'			JRST .+1]	;CONTINUE ON
  4728	013441'	200 01 0 17 777771 		MOVE T1,.IPCFS+RCVPDB	^-^O10(P)^;GET PID OF SENDER
  4729	013442'	312 01 0 00 002051'		CAME T1,OPRPID		;IS THIS ORION'S PID ?
  4730	013443'	316 01 0 00 002050'		CAMN T1,PID		;NO - IS IT OUR PID?
  4731	013444'	334 00 0 00 000000 		SKIPA			;YES - OK THEN
  4732	013445'	254 00 0 00 013463'		JRST PDINT2		;NO
  4733						SETZRO QUEPNT,(Q1)	^;PUT THIS ENTRY AT END OF QUEUE
  4734	013446'	513 00 0 05 000000 			HLLZS 0(Q1)^
  4735	013447'	200 01 0 00 000005 		MOVE T1,Q1		;GET ADR OF THE ENTRY
  4736	013450'	260 17 0 00 013472'		CALL QUEQUE		;QUEUE UP THIS REQUEST
  4737	013451'	260 17 0 00 005776'		CALL WAKBKG		;WAKE UP THE BACKGROUND JOB
  4738						; ..
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 105
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  4739						; ..
  4740
  4741					; HERE TO SEE IF THERE ARE ANY MORE MESSAGES
  4742
  4743	013452'	201 01 0 00 000006 	PDINT3:	MOVEI T1,6		;NOW SEE IF THERE ARE MORE MESSAGES
  4744	013453'	201 02 0 17 777770 		MOVEI T2,RCVPDB^-^O10(P)^
  4745	013454'	201 03 0 00 000020 		MOVEI T3,.MUQRY		;QUERY THE PID QUEUE
  4746	013455'	202 03 0 17 777770 		MOVEM T3,RCVPDB	^-^O10(P)^	;STORE FUNCTION CODE
  4747	013456'	200 03 0 00 002050'		MOVE T3,PID		;GET OUR PID
  4748	013457'	202 03 0 17 777771 		MOVEM T3,1+RCVPDB	^-^O10(P)^;SEE IF ANY MESSAGES FOR THIS PID
  4749	013460'	104 00 0 00 000512 		MUTIL			;...
  4750						 JRST [	CAIE T1,IPCFX2	;ANY MESSAGES?
  4751							 FATAL.ERROR	^
  4752							CALL ERROR
  4753							HALTF
  4754							JRST NETCON]^;SOME OTHER ERROR
  4755	013461'	254 00 0 00 020514'			RET]		;NO MORE MESSAGES, DISMIS THE INTERRUPT
  4756	013462'	254 00 0 00 013415'		JRST PDINT1		;LOOP BACK FOR ALL MESSAGES
  4757
  4758					; HERE IF NOT FROM ORION
  4759
  4760	013463'				PDINT2:	LOAD T1,QUEMES,(Q1)	^;GET ADR OF PAGE CONTAINING MESSAGE
  4761	013463'	554 01 0 05 000000 			HLRZ T1,0(Q1)^
  4762	013464'	260 17 0 00 014267'		CALL RELPGA		;RELEASE THE PAGE
  4763						 NON.FATAL.ERROR	^;FAILED
  4764	013465'	260 17 0 00 014473'	IFB <>,<	CALL WRNING>
  4765	013466'	200 01 0 00 000005 		MOVE T1,Q1		;GET ADR OF HEADER
  4766	013467'	260 17 0 00 014115'		CALL RELFRE		;RELEASE THE BLOCK
  4767						 FATAL.ERROR		^;FAILED
  4768							CALL ERROR
  4769							HALTF
  4770	013470'	254 00 0 00 016623'			JRST NETCON]
  4771	013471'	254 00 0 00 013452'		JRST PDINT3		;LOOP BACK FOR REMAINING MESSAGES
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 106
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  4772					;ROUTINE TO QUEUE AN ENTRY ONTO THE QUEUE
  4773
  4774					;ACCEPTS IN T1/	ADR OF QUEUE ENTRY
  4775
  4776	013472'				QUEQUE:	SETZRO QUEPNT,(T1)	^;MAKE SURE THIS IS THE END OF THE LIST
  4777	013472'	513 00 0 01 000000 			HLLZS 0(T1)^
  4778						PIOFF	^		;PUT THIS ENTRY ON THE QUEUE
  4779	013473'	260 17 0 00 014406'		CALL PIOFF.
  4780	013474'	201 02 0 00 002002'		MOVEI T2,QUEUE		;GET POINTER TO FIRST ENTRY
  4781	013475'				QUEQU1:	LOAD T3,QUEPNT,(T2)	^;GET POINTER TO NEXT ITEM ON QUEUE
  4782	013475'	550 03 0 02 000000 			HRRZ T3,0(T2)^
  4783	013476'	322 03 0 00 013501'		JUMPE T3,QUEQU2		;IF AT END, THEN DONE
  4784	013477'	200 02 0 00 000003 		MOVE T2,T3		;STEP TO NEXT ENTRY
  4785	013500'	254 00 0 00 013475'		JRST QUEQU1		;LOOP BACK TIL END OF LIST IS FOUND
  4786
  4787	013501'				QUEQU2:	STOR T1,QUEPNT,(T2)	^;PUT THIS BLOCK AT THE END OF THE QUEUE
  4788	013501'	542 01 0 02 000000 			HRRM T1,0(T2)^
  4789						PION	^		;FINISHED PUTTING IT ON THE QUEUE
  4790	013502'	260 17 0 00 014413'		CALL PION.
  4791	013503'	263 17 0 00 000000 		RET			;RETURN
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 107
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  4792
  4793					;ROUTINES TO HANDLE CONNECT INTERRUPTS TO NCU JFNS
  4794
  4795					DEFINE JFNENT (A,B) <
  4796					JFN'A:	ENTINT (B)
  4797						MOVEI T4,A
  4798						JRST JFNINT>
  4799
  4800			000000			ZZ==0
  4801					REPEAT NJFN,<	LALL
  4802							JFNENT (\ZZ,\JFNLVL)
  4803							SALL
  4804							ZZ==ZZ+1>
  4805						LALL
  4806							JFNENT (\ZZ,\JFNLVL)^
  4807	013504'				JFN0:	ENTINT (2)^
  4808						SAVIAC (2)^
  4809	013504'	202 01 0 00 013404*		MOVEM T1,L2SAV1
  4810	013505'	202 02 0 00 013405*		MOVEM T2,L2SAV2
  4811	013506'	202 03 0 00 013406*		MOVEM T3,L2SAV3
  4812	013507'	202 04 0 00 013407*		MOVEM T4,L2SAV4
  4813	013510'	202 16 0 00 013410*		MOVEM CX,L2SAVC^
  4814						JSP CX,[CALL 0(CX)
  4815							RESIAC (2)^
  4816						MOVE T1,L2SAV1
  4817						MOVE T2,L2SAV2
  4818						MOVE T3,L2SAV3
  4819						MOVE T4,L2SAV4
  4820						MOVE CX,L2SAVC^
  4821	013511'	265 16 0 00 020471'			DEBRK]^
  4822	013512'	201 04 0 00 000000 		MOVEI T4,0
  4823	013513'	254 00 0 00 013654'		JRST JFNINT^
  4824							SALL
  4825  4826							JFNENT (\ZZ,\JFNLVL)^
  4827	013514'				JFN1:	ENTINT (2)^
  4828						SAVIAC (2)^
  4829	013514'	202 01 0 00 013504*		MOVEM T1,L2SAV1
  4830	013515'	202 02 0 00 013505*		MOVEM T2,L2SAV2
  4831	013516'	202 03 0 00 013506*		MOVEM T3,L2SAV3
  4832	013517'	202 04 0 00 013507*		MOVEM T4,L2SAV4
  4833	013520'	202 16 0 00 013510*		MOVEM CX,L2SAVC^
  4834						JSP CX,[CALL 0(CX)
  4835							RESIAC (2)^
  4836						MOVE T1,L2SAV1
  4837						MOVE T2,L2SAV2
  4838						MOVE T3,L2SAV3
  4839						MOVE T4,L2SAV4
  4840						MOVE CX,L2SAVC^
  4841	013521'	265 16 0 00 020471'			DEBRK]^
  4842	013522'	201 04 0 00 000001 		MOVEI T4,1
  4843	013523'	254 00 0 00 013654'		JRST JFNINT^
  4844							SALL
  4845  4846							JFNENT (\ZZ,\JFNLVL)^
  4847	013524'				JFN2:	ENTINT (2)^
  4848						SAVIAC (2)^
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 107-1
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  4849	013524'	202 01 0 00 013514*		MOVEM T1,L2SAV1
  4850	013525'	202 02 0 00 013515*		MOVEM T2,L2SAV2
  4851	013526'	202 03 0 00 013516*		MOVEM T3,L2SAV3
  4852	013527'	202 04 0 00 013517*		MOVEM T4,L2SAV4
  4853	013530'	202 16 0 00 013520*		MOVEM CX,L2SAVC^
  4854						JSP CX,[CALL 0(CX)
  4855							RESIAC (2)^
  4856						MOVE T1,L2SAV1
  4857						MOVE T2,L2SAV2
  4858						MOVE T3,L2SAV3
  4859						MOVE T4,L2SAV4
  4860						MOVE CX,L2SAVC^
  4861	013531'	265 16 0 00 020471'			DEBRK]^
  4862	013532'	201 04 0 00 000002 		MOVEI T4,2
  4863	013533'	254 00 0 00 013654'		JRST JFNINT^
  4864							SALL
  4865  4866							JFNENT (\ZZ,\JFNLVL)^
  4867	013534'				JFN3:	ENTINT (2)^
  4868						SAVIAC (2)^
  4869	013534'	202 01 0 00 013524*		MOVEM T1,L2SAV1
  4870	013535'	202 02 0 00 013525*		MOVEM T2,L2SAV2
  4871	013536'	202 03 0 00 013526*		MOVEM T3,L2SAV3
  4872	013537'	202 04 0 00 013527*		MOVEM T4,L2SAV4
  4873	013540'	202 16 0 00 013530*		MOVEM CX,L2SAVC^
  4874						JSP CX,[CALL 0(CX)
  4875							RESIAC (2)^
  4876						MOVE T1,L2SAV1
  4877						MOVE T2,L2SAV2
  4878						MOVE T3,L2SAV3
  4879						MOVE T4,L2SAV4
  4880						MOVE CX,L2SAVC^
  4881	013541'	265 16 0 00 020471'			DEBRK]^
  4882	013542'	201 04 0 00 000003 		MOVEI T4,3
  4883	013543'	254 00 0 00 013654'		JRST JFNINT^
  4884							SALL
  4885			000004
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 108
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  4886
  4887					DEFINE JFDENT (A,B) <
  4888					JFD'A:	ENTINT (B)
  4889						MOVEI T4,A
  4890						JRST JFDINT>
  4891
  4892			000000			ZZ==0
  4893					REPEAT NJFN,<	LALL
  4894							JFDENT (\ZZ,\JFDLVL)
  4895							SALL
  4896							ZZ==ZZ+1>
  4897  4898							JFDENT (\ZZ,\JFDLVL)^
  4899	013544'				JFD0:	ENTINT (3)^
  4900						SAVIAC (3)^
  4901	013544'	202 01 0 00 000000*		MOVEM T1,L3SAV1
  4902	013545'	202 02 0 00 000000*		MOVEM T2,L3SAV2
  4903	013546'	202 03 0 00 000000*		MOVEM T3,L3SAV3
  4904	013547'	202 04 0 00 000000*		MOVEM T4,L3SAV4
  4905	013550'	202 16 0 00 000000*		MOVEM CX,L3SAVC^
  4906						JSP CX,[CALL 0(CX)
  4907							RESIAC (3)^
  4908						MOVE T1,L3SAV1
  4909						MOVE T2,L3SAV2
  4910						MOVE T3,L3SAV3
  4911						MOVE T4,L3SAV4
  4912						MOVE CX,L3SAVC^
  4913	013551'	265 16 0 00 020517'			DEBRK]^
  4914	013552'	201 04 0 00 000000 		MOVEI T4,0
  4915	013553'	254 00 0 00 013700'		JRST JFDINT^
  4916							SALL
  4917  4918							JFDENT (\ZZ,\JFDLVL)^
  4919	013554'				JFD1:	ENTINT (3)^
  4920						SAVIAC (3)^
  4921	013554'	202 01 0 00 013544*		MOVEM T1,L3SAV1
  4922	013555'	202 02 0 00 013545*		MOVEM T2,L3SAV2
  4923	013556'	202 03 0 00 013546*		MOVEM T3,L3SAV3
  4924	013557'	202 04 0 00 013547*		MOVEM T4,L3SAV4
  4925	013560'	202 16 0 00 013550*		MOVEM CX,L3SAVC^
  4926						JSP CX,[CALL 0(CX)
  4927							RESIAC (3)^
  4928						MOVE T1,L3SAV1
  4929						MOVE T2,L3SAV2
  4930						MOVE T3,L3SAV3
  4931						MOVE T4,L3SAV4
  4932						MOVE CX,L3SAVC^
  4933	013561'	265 16 0 00 020517'			DEBRK]^
  4934	013562'	201 04 0 00 000001 		MOVEI T4,1
  4935	013563'	254 00 0 00 013700'		JRST JFDINT^
  4936							SALL
  4937  4938							JFDENT (\ZZ,\JFDLVL)^
  4939	013564'				JFD2:	ENTINT (3)^
  4940						SAVIAC (3)^
  4941	013564'	202 01 0 00 013554*		MOVEM T1,L3SAV1
  4942	013565'	202 02 0 00 013555*		MOVEM T2,L3SAV2
  4943	013566'	202 03 0 00 013556*		MOVEM T3,L3SAV3
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 108-1
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  4944	013567'	202 04 0 00 013557*		MOVEM T4,L3SAV4
  4945	013570'	202 16 0 00 013560*		MOVEM CX,L3SAVC^
  4946						JSP CX,[CALL 0(CX)
  4947							RESIAC (3)^
  4948						MOVE T1,L3SAV1
  4949						MOVE T2,L3SAV2
  4950						MOVE T3,L3SAV3
  4951						MOVE T4,L3SAV4
  4952						MOVE CX,L3SAVC^
  4953	013571'	265 16 0 00 020517'			DEBRK]^
  4954	013572'	201 04 0 00 000002 		MOVEI T4,2
  4955	013573'	254 00 0 00 013700'		JRST JFDINT^
  4956							SALL
  4957  4958							JFDENT (\ZZ,\JFDLVL)^
  4959	013574'				JFD3:	ENTINT (3)^
  4960						SAVIAC (3)^
  4961	013574'	202 01 0 00 013564*		MOVEM T1,L3SAV1
  4962	013575'	202 02 0 00 013565*		MOVEM T2,L3SAV2
  4963	013576'	202 03 0 00 013566*		MOVEM T3,L3SAV3
  4964	013577'	202 04 0 00 013567*		MOVEM T4,L3SAV4
  4965	013600'	202 16 0 00 013570*		MOVEM CX,L3SAVC^
  4966						JSP CX,[CALL 0(CX)
  4967							RESIAC (3)^
  4968						MOVE T1,L3SAV1
  4969						MOVE T2,L3SAV2
  4970						MOVE T3,L3SAV3
  4971						MOVE T4,L3SAV4
  4972						MOVE CX,L3SAVC^
  4973	013601'	265 16 0 00 020517'			DEBRK]^
  4974	013602'	201 04 0 00 000003 		MOVEI T4,3
  4975	013603'	254 00 0 00 013700'		JRST JFDINT^
  4976							SALL
  4977			000004
  4978
  4979
  4980					DEFINE TOPENT (A,B) <
  4981					TOP'A:	ENTINT (B)
  4982						MOVEI T1,A
  4983						JRST TOPINT>
  4984
  4985			000000			ZZ==0
  4986					REPEAT TOPMAX,<	LALL
  4987							TOPENT (\ZZ,\TOPLVL)
  4988							SALL
  4989							ZZ==ZZ+1>
  4990  4991							TOPENT (\ZZ,\TOPLVL)^
  4992	013604'				TOP0:	ENTINT (2)^
  4993						SAVIAC (2)^
  4994	013604'	202 01 0 00 013534*		MOVEM T1,L2SAV1
  4995	013605'	202 02 0 00 013535*		MOVEM T2,L2SAV2
  4996	013606'	202 03 0 00 013536*		MOVEM T3,L2SAV3
  4997	013607'	202 04 0 00 013537*		MOVEM T4,L2SAV4
  4998	013610'	202 16 0 00 013540*		MOVEM CX,L2SAVC^
  4999						JSP CX,[CALL 0(CX)
  5000							RESIAC (2)^
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 108-2
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  5001						MOVE T1,L2SAV1
  5002						MOVE T2,L2SAV2
  5003						MOVE T3,L2SAV3
  5004						MOVE T4,L2SAV4
  5005						MOVE CX,L2SAVC^
  5006	013611'	265 16 0 00 020471'			DEBRK]^
  5007	013612'	201 01 0 00 000000 		MOVEI T1,0
  5008	013613'	254 00 0 00 013733'		JRST TOPINT^
  5009							SALL
  5010  5011							TOPENT (\ZZ,\TOPLVL)^
  5012	013614'				TOP1:	ENTINT (2)^
  5013						SAVIAC (2)^
  5014	013614'	202 01 0 00 013604*		MOVEM T1,L2SAV1
  5015	013615'	202 02 0 00 013605*		MOVEM T2,L2SAV2
  5016	013616'	202 03 0 00 013606*		MOVEM T3,L2SAV3
  5017	013617'	202 04 0 00 013607*		MOVEM T4,L2SAV4
  5018	013620'	202 16 0 00 013610*		MOVEM CX,L2SAVC^
  5019						JSP CX,[CALL 0(CX)
  5020							RESIAC (2)^
  5021						MOVE T1,L2SAV1
  5022						MOVE T2,L2SAV2
  5023						MOVE T3,L2SAV3
  5024						MOVE T4,L2SAV4
  5025						MOVE CX,L2SAVC^
  5026	013621'	265 16 0 00 020471'			DEBRK]^
  5027	013622'	201 01 0 00 000001 		MOVEI T1,1
  5028	013623'	254 00 0 00 013733'		JRST TOPINT^
  5029							SALL
  5030			000002
  5031
  5032	013624'	202 01 0 00 013614*	HCKINT: ENTINT (\HCKLVL)
  5033	013625'	202 02 0 00 013615*
  5034	013626'	202 03 0 00 013616*
  5035	013627'	202 04 0 00 013617*
  5036	013630'	202 16 0 00 013620*
  5037	013631'	265 16 0 00 020471'
  5038	013632'	260 17 0 00 014743'		CALL TOPI.1
  5039	013633'	263 17 0 00 000000 		 RET
  5040	013634'	263 17 0 00 000000 		RET
  5041
  5042	013635'	202 01 0 00 013624*	ATO0:	ENTINT(\TOPLVL)
  5043	013636'	202 02 0 00 013625*
  5044	013637'	202 03 0 00 013626*
  5045	013640'	202 04 0 00 013627*
  5046	013641'	202 16 0 00 013630*
  5047	013642'	265 16 0 00 020471'
  5048	013643'	254 00 0 00 013644'		JRST SETATO
  5049
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 109
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  5050					;SETATO - SET AUTO DUMP/LOAD
  5051
  5052	013644'	201 01 0 00 000002 	SETATO:	MOVEI T1,QUEHLN		;GET SPACE FOR THIS ENTRY
  5053	013645'	260 17 0 00 014021'		CALL GETFRE		;...
  5054	013646'	254 00 0 00 016623'		 FATAL.ERROR
  5055	013647'	201 02 0 00 000003 		MOVEI T2,.QTTOP		;QUEUE A DUMP/LOAD REQUEST
  5056	013650'	506 02 0 01 000001 		STOR T2,QUETYP,(T1)	;STORE IN QUEUE ENTRY
  5057	013651'	260 17 0 00 013472'		CALL QUEQUE		;QUEUE UP THIS ENTRY
  5058	013652'	260 17 0 00 005776'		CALL WAKBKG		;WAKE UP THE BACKGROUND
  5059	013653'	263 17 0 00 000000 		RET
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 110
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  5060
  5061	013654'	265 16 0 00 014432'	JFNINT:	SAVEQ			;SAVE ACS USED HERE
  5062	013655'	205 01 0 00 600000 		MOVX T1,CR%MAP!CR%CAP	;CREATE A FORK FOR NCU
  5063	013656'	104 00 0 00 000152 		CFORK			;SHARES SAME MAP
  5064	013657'	254 00 0 00 016623'		 FATAL.ERROR		;COULD NOT GET A FORK
  5065	013660'	202 01 0 04 002013'		MOVEM T1,FRKTAB(T4)	;SAVE FORK HANDLE
  5066	013661'	402 00 0 04 002017'		SETZM FRKFLG(T4)	;CLEAR THE FLAGS WORD
  5067	013662'	505 01 0 00 000002 		HRLI T1,.PRAST		;NOW SET UP THE PRARG BLOCK
  5068	013663'	201 02 0 00 000005 		MOVEI T2,Q1		;POINTER TO ARG BLOCK
  5069	013664'	201 03 0 00 000002 		MOVEI T3,2		;LENGTH
  5070	013665'	200 05 0 04 002007'		MOVE Q1,JFNTAB(T4)	;FIRST ARG = JFN OF NCU
  5071	013666'	200 06 0 00 000004 		MOVE Q2,T4		;SECOND ARG = LENGTH ,, ADR
  5072	013667'	221 06 0 00 010000 		IMULI Q2,NNCUPG*1000	;GET OFFSET INTO NCU AREA
  5073	013670'	271 06 0 00 400000 		ADDI Q2,NCUFFP*1000	;GET START ADR OF REGION
  5074	013671'	505 06 0 00 010000 		HRLI Q2,NNCUPG*1000	;GET LENGTH
  5075	013672'	104 00 0 00 000545 		PRARG			;SET UP THE ARGUMENT BLOCK
  5076	013673'	320 16 0 00 016715'		 ERJMP [FATAL.ERROR]	;FAILED
  5077	013674'	200 01 0 04 002013'		MOVE T1,FRKTAB(T4)	;NOW START THE NCU PROCESS
  5078	013675'	201 02 0 00 000000*		MOVEI T2,NCU		;START ADDRESS
  5079	013676'	104 00 0 00 000157 		SFORK
  5080	013677'	263 17 0 00 000000 		RET			;DISMISS THE INTERRUPT
  5081
  5082
  5083
  5084	013700'	265 16 0 00 013413*	JFDINT:	STKVAR <JFDNUM>
  5085	013701'	000001	000001
  5086	013702'	202 04 0 17 777776 		MOVEM T4,JFDNUM		;SAVE THE INDEX
  5087	013703'	201 01 0 00 000002 		MOVEI T1,QUEHLN		;GET SPACE FOR A QUEUE ENTRY
  5088	013704'	260 17 0 00 014021'		CALL GETFRE
  5089	013705'	254 00 0 00 016623'		 FATAL.ERROR
  5090	013706'	201 02 0 00 000002 		MOVEI T2,.QTJFD		;DATA OR DISCONNECT TYPE
  5091	013707'	506 02 0 01 000001 		STOR T2,QUETYP,(T1)
  5092	013710'	200 02 0 17 777776 		MOVE T2,JFDNUM		;GET JFN INDEX
  5093	013711'	506 02 0 01 000000 		STOR T2,QUEMES,(T1)	;PUT IT IN THE QUEUE HEADER
  5094	013712'	260 17 0 00 013472'		CALL QUEQUE		;QUEUE IT
  5095	013713'	260 17 0 00 005776'		CALL WAKBKG		;WAKE UP THE BACKGROUND LEVEL
  5096	013714'	263 17 0 00 000000 		RET			;AND DEBRK
  5097
  5098
  5099					;ROUTINE TO QUEUE UP A FORK TERMINATION REQUEST
  5100
  5101	013715'	202 01 0 00 013635*	FRKTER:	ENTINT (\FKTLVL)	;ENTER INTERRUPT LEVEL
  5102	013716'	202 02 0 00 013636*
  5103	013717'	202 03 0 00 013637*
  5104	013720'	202 04 0 00 013640*
  5105	013721'	202 16 0 00 013641*
  5106	013722'	265 16 0 00 020471'
  5107	013723'	201 01 0 00 000002 		MOVEI T1,QUEHLN		;GET SPACE FOR THIS ENTRY
  5108	013724'	260 17 0 00 014021'		CALL GETFRE		;...
  5109	013725'	254 00 0 00 016623'		 FATAL.ERROR		;FATAL IF NO MORE SPACE
  5110	013726'	201 02 0 00 000001 		MOVEI T2,.QTFKT		;MARK THIS AS A FORK TERMINATION
  5111	013727'	506 02 0 01 000001 		STOR T2,QUETYP,(T1)	;STORE IN QUEUE ENTRY
  5112	013730'	260 17 0 00 013472'		CALL QUEQUE		;QUEUE UP THIS ENTRY
  5113	013731'	260 17 0 00 005776'		CALL WAKBKG		;WAKE UP THE BACKGROUND LEVEL
  5114	013732'	263 17 0 00 000000 		RET			;AND DEBRK
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 111
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  5115					;TOPOLOGY CHANGE INTERRUPT ROUTINE
  5116					;
  5117					;CALL:	CALL TOPINT
  5118					;RETURNS: +1	 FAILED
  5119					;	  +2	SUCCESS
  5120
  5121	013733'	265 16 0 00 013700*	TOPINT:	STKVAR <<TPIHST,2>,TPIPAG,TPIERR>
  5122	013734'	000004	000004
  5123
  5124					; GET ASCIZ NAME OF THE DN20 NODE SENDING THE MESSAGE
  5125
  5126	013735'	561 03 0 17 777775 		HRROI T3,TPIHST		;POINTER TO WHERE  TO STORE STRING
  5127	013736'	201 02 0 00 000026 		MOVEI T2,.MORHN		;READ THE HOST NAME
  5128	013737'	200 01 0 00 002006'		MOVE T1,TOPSRV		;GET TOPOLOGY SERVER LINK JFN
  5129	013740'	104 00 0 00 000077 		MTOPR			;DO THE JSYS
  5130	013741'	320 16 0 00 012305*		 ERJMP R		;FAILED
  5131
  5132					; ASSIGN A PAGE INTO WHICH TOPOLOGY DATA CAN BE READ
  5133
  5134	013742'	260 17 0 00 014234'		CALL ASGPAG		;ASSIGN A PAGE
  5135	013743'	263 17 0 00 000000 		 RETBAD ()		;FAILED
  5136	013744'	202 02 0 17 777774 		MOVEM T2,TPIPAG		;SAVE ADDRESS
  5137
  5138					; READ THE TOPOLOGY CHANGE PROTOCOL MESSAGE
  5139
  5140	013745'	200 01 0 00 002006'		MOVE T1,TOPSRV		;GET TOPOLOGY SERVER LINK JFN
  5141	013746'	550 02 0 17 777774 		HRRZ T2,TPIPAG		;GET PAGE NUMBER FOR INPUT
  5142	013747'	505 02 0 00 441000 		HRLI T2,(POINT 8,)	;FORM POINTER TO DESTINATION
  5143	013750'	211 03 0 00 004000 		MOVNI T3,4000		;MAX ONE PAGE OF INFO
  5144	013751'	104 00 0 00 000531 		SINR			;READ TOPOLOGY INFO
  5145	013752'	320 16 0 00 014005'		 ERJMP TOPINX		;FAILED, RELEASE PAGE AND RETURN ERROR
  5146
  5147					; CHECK FOR CORRECT MESSAGE TYPE AND ADVISE MONITOR OF TOPOLOGY
  5148
  5149	013753'	201 02 0 03 004000 		MOVEI T2,4000(T3)	;GET NUMBER OF BYTES INPUT
  5150	013754'	550 01 0 17 777774 		HRRZ T1,TPIPAG		;GET PAGE NUMBER FOR INPUT
  5151	013755'	505 01 0 00 441000 		HRLI T1,(POINT 8,)	;FORM POINTER TO DESTINATION
  5152	013756'	375 00 0 00 000002 		SOSGE T2		;AT LEAST ONE BYTE IN MESSAGE ?
  5153	013757'	254 00 0 00 014005'		JRST TOPINX		;NO, RELEASE PAGE AND FAIL
  5154	013760'	134 04 0 00 000001 		ILDB T4,T1		;YES, GET MESSAGE TYPE CODE
  5155	013761'	302 04 0 00 000003 		CAIE T4,.TPCHG		;TOPOLOGY CHANGE MESSAGE ?
  5156	013762'	254 00 0 00 014005'		JRST TOPINX		;NO, FAIL
  5157	013763'	201 03 0 17 777775 		MOVEI T3,TPIHST		;GET ADDRESS OF NODE NAME
  5158	013764'	505 03 0 00 440700 		HRLI T3,(POINT 7,)	;FORM POINTER TO NODE NAME
  5159	013765'	260 17 0 00 000000*		CALL ADVTOP		;ADVISE MONITOR OF NEW NODES IN NETWORK
  5160	013766'	254 00 0 00 014005'		 JRST TOPINX		;FAILED
  5161	013767'	261 17 0 00 000001 		PUSH P,T1		;Save address of node topology table
  5162	013770'	260 17 0 00 016514'		CALL UPDNOD		;UPDATE MONITOR'S LIST FOR DELETED NODES
  5163						 JRST [POP P,T1		; Get node table address
  5164						       CALL TOPFRE	; Release topology table
  5165	013771'	254 00 0 00 020526'		       JRST TOPINX]	; Failed to update monitor's list
  5166	013772'	262 17 0 00 000001 		POP P,T1		;Get node table address back
  5167	013773'	260 17 0 00 000000*		CALL TOPFRE		;Release the topology table
  5168
  5169
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 112
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  5170					; RELEASE PAGE AND RETURN
  5171
  5172	013774'	200 01 0 17 777774 		MOVE T1,TPIPAG		;GET ADDRESS OF PAGE USED FOR MESSAGE
  5173	013775'	260 17 0 00 014267'		CALL RELPGA		;RELEASE THE PAGE
  5174	013776'	260 17 0 00 014473'		 NON.FATAL.ERROR	;FAILED
  5175	013777'	200 01 0 00 002006'		MOVE T1,TOPSRV		;GET SERVER JFN
  5176	014000'	104 00 0 00 000022 		CLOSF			;CLEAN UP THE USED LINK
  5177	014001'	260 17 0 00 014473'		 NON.FATAL.ERROR	;FAILED
  5178	014002'	260 17 0 00 015012'		CALL TOPSET		;SETUP ANOTHER TOPOLOGY SERVER
  5179	014003'	254 00 0 00 020531'		 FATAL.ERROR (.ERR28)	;FAILED
  5180	014004'	263 17 0 00 000000 		RET			;DONE, RETURN SUCCESS
  5181
  5182					; HERE ON AN ERROR - RELEASE PAGE AND RETURN FAILURE
  5183
  5184	014005'	202 01 0 17 777773 	TOPINX:	MOVEM T1,TPIERR		;SAVE ERROR CODE
  5185	014006'	200 01 0 17 777774 		MOVE T1,TPIPAG		;GET ADDRESS OF PAGE USED FOR MESSAGE
  5186	014007'	260 17 0 00 014267'		CALL RELPGA		;RELEASE THE PAGE
  5187	014010'	260 17 0 00 014473'		 NON.FATAL.ERROR	;FAILED
  5188	014011'	200 01 0 00 002006'		MOVE T1,TOPSRV		;GET SERVER JFN
  5189	014012'	661 01 0 00 004000 		TXO T1,CZ%ABT		;ABORT CLOSE, PITCH ANY DATA LEFT
  5190	014013'	104 00 0 00 000022 		CLOSF			;CLEAN UP THE USED LINK
  5191	014014'	260 17 0 00 014473'		 NON.FATAL.ERROR	;FAILED
  5192	014015'	260 17 0 00 015012'		CALL TOPSET		;SETUP ANOTHER TOPOLOGY LINK
  5193	014016'	254 00 0 00 020531'		 FATAL.ERROR (.ERR28)	;FAILED
  5194	014017'	200 01 0 17 777773 		MOVE T1,TPIERR		;RESTORE ERROR CODE
  5195	014020'	263 17 0 00 000000 		RET			;FAIL
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 113
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  5196					; Routine to assign space in free storage region
  5197					;
  5198					; CALL:	T1/ Size of block needed
  5199					;	CALL GETFRE
  5200					;
  5201					; RETURNS: +1	ERROR, not enough space
  5202					;	   +2	SUCCESS, T1/ Location of the block
  5203					;			     First word of block contains -1,,length
  5204					;
  5205					; Clobbers T1, T2, T3, and T4
  5206					;
  5207					; Free storage header format:
  5208					;
  5209					; FRSHDR+.FHFFB/	; LH points to first free block
  5210					; 	+.FHCNT/	; Words free in free pool
  5211					;	+.FHCBS/	; Most common block size
  5212					;	+.FHADR/	; LH top addrs of free pool, RH bottom addrs
  5213					;	+.FHBFS/	; Best free block size found (closest fit for GETFRE)
  5214					;	+.FHBFA/	; Address of best free block
  5215
  5216						ENTRY GETFRE		; Globalize so that NCU can find it
  5217
  5218	014021'	200 02 0 00 000001 	GETFRE:	MOVE T2,T1		; Get size into T2 of requested block
  5219					IFN TRACE,<AOS T2>		; Increment for tracing word
  5220	014022'	201 01 0 00 002054'		MOVEI T1,FRSHDR		; Get address of free space header
  5221	014023'	260 17 0 00 014406'		PIOFF			; Turn off interrupts
  5222	014024'	200 16 0 00 020535'		LOCK FRELOK		; Lock up the free pool memory management
  5223	014025'	260 17 0 00 014336'
  5224	014026'	260 17 0 00 014034'		CALL GETFR0		; Go get space
  5225						 RETBAD (,<UNLOCK FRELOK
  5226	014027'	254 00 0 00 020536'				PION>)	;  No more space, propagate error back
  5227	014030'	200 16 0 00 020535'		UNLOCK FRELOK		; Unlock memory management code 
  5228	014031'	260 17 0 00 014351'
  5229	014032'	260 17 0 00 014413'		PION			; Turn interrupts back on
  5230					IFN TRACE,<
  5231						AOS T1			; Increment past trace word
  5232						HRRZ T2,-1(T1)		; Get size of block allocated
  5233						SOS T2			; Subtract trace word from size
  5234						HRROM T2,0(T1)		; Put into first word of block going to caller
  5235						HRRZ T2,0(P)		; Get return address
  5236						HRLM T2,-1(T1)		; Put into left half of trace word
  5237					    > ;End if TRACE
  5238	014033'	254 00 0 00 013336*		RETSKP			; Success return
  5239
  5240	014034'	313 02 0 01 000001 	GETFR0:	CAMLE T2,.FHCNT(T1)	; Enough words left in the pool?
  5241	014035'	263 17 0 00 000000 		RET			;  No, return immediately
  5242	014036'	261 17 0 00 000002 		PUSH P,T2		; Save desired block size
  5243	014037'	525 02 0 00 377777 		HRLOI T2,377777
  5244	014040'	202 02 0 01 000004 		MOVEM T2,.FHBFS(T1)	; Initial best block size (max positive number)
  5245	014041'	402 00 0 01 000005 		SETZM .FHBFA(T1)	; Initial location of best block (none)
  5246	014042'	200 02 0 00 000001 		MOVE T2,T1		; Start with the header block
  5247
  5248	014043'	554 03 0 02 000000 	GETFR1:	HLRZ T3,0(T2)		; Get pointer to next free block
  5249	014044'	322 03 0 00 014061'		JUMPE T3,GETFR2		; No more free blocks to examine (null link)
  5250	014045'	307 03 0 02 000000 		CAIG T3,0(T2)		; Check to see if next block sorted correctly
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 113-1
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  5251						JRST [POP P,T2		;  No, clean up the stack
  5252	014046'	254 00 0 00 020544'		      RETBAD (.ERR30)]	; and give a free list sequencing error
  5253	014047'	550 04 0 03 000000 		HRRZ T4,0(T3)		; Get size of the next block
  5254	014050'	316 04 0 17 000000 		CAMN T4,0(P)		; Is it the size requested?
  5255						JRST [HLL T4,0(T3)	;  Yes, get address of next block in chain
  5256						      HLLM T4,0(T2)	;  Point last block to next (close up chain)
  5257	014051'	254 00 0 00 020546'		      JRST GETFR5]	;  Go zero the block; return address
  5258	014052'	311 04 0 17 000000 		CAML T4,0(P)		; Too small?
  5259	014053'	311 04 0 01 000004 		CAML T4,.FHBFS(T1)	; or bigger than the best so far?
  5260	014054'	254 00 0 00 014057'		JRST GETFR4		;  Yes, ignore it
  5261	014055'	202 04 0 01 000004 		MOVEM T4,.FHBFS(T1)	; This is the best bigger fit found so far
  5262	014056'	202 02 0 01 000005 		MOVEM T2,.FHBFA(T1)	; so save address and size
  5263	014057'	200 02 0 00 000003 	GETFR4:	MOVE T2,T3		; Step to the next block in chain
  5264	014060'	254 00 0 00 014043'		JRST GETFR1		; and repeat
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 114
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  5265
  5266	014061'	336 02 0 01 000005 	GETFR2:	SKIPN T2,.FHBFA(T1)	; Did we find anything that was bigger?
  5267						JRST [POP P,T2		;  No, get the size of block back
  5268	014062'	254 00 0 00 020553'			 RETBAD (.ERR8)];  and say no block on list is big enough
  5269	014063'	200 04 0 17 000000 		MOVE T4,0(P)		; Get desired size
  5270	014064'	554 03 0 02 000000 		HLRZ T3,0(T2)		; Get pointer to block to be used
  5271	014065'	542 04 0 03 000000 		HRRM T4,0(T3)		; Convert to desired size in header of block
  5272	014066'	270 04 0 00 000003 		ADD T4,T3		; Address of remainder of block
  5273	014067'	506 04 0 02 000000 		HRLM T4,0(T2)		; Point previous block in chain to remainder
  5274	014070'	510 02 0 03 000000 		HLLZ T2,0(T3)		; Get address of next block in chain
  5275	014071'	502 02 0 04 000000 		HLLM T2,0(T4)		; Point remainder to it
  5276	014072'	200 02 0 01 000004 		MOVE T2,.FHBFS(T1)	; Get size of block we just split
  5277	014073'	274 02 0 17 000000 		SUB T2,0(P)		; Calculate size of remainder
  5278	014074'	542 02 0 04 000000 		HRRM T2,0(T4)		; Save in header of remainder
  5279
  5280	014075'	210 02 0 17 000000 	GETFR5:	MOVN T2,0(P)		; Get minus the requested block size
  5281	014076'	272 02 0 01 000001 		ADDM T2,.FHCNT(T1)	; Reduce count of space left in free pool
  5282	014077'	201 01 0 03 000000 		MOVEI T1,0(T3)		; Get origin of block just allocated
  5283	014100'	563 00 0 01 000000 		HRROS (T1)		; Set LH to ones in first word of block
  5284	014101'	316 02 0 00 020555'		CAMN T2,[-1]		; Is this a block of one word?
  5285	014102'	254 00 0 00 014113'		JRST GETFR6		;  Yes, don't zero anything
  5286	014103'	550 02 0 01 000000 		HRRZ T2,(T1)		; Get RH (should contain length of block)
  5287	014104'	551 03 0 01 000002 		HRRZI T3,2(T1)		; Address of 3rd word in block
  5288	014105'	402 00 0 03 777777 		SETZM -1(T3)		; Zero 2nd word
  5289	014106'	505 03 0 01 000001 		HRLI T3,1(T1)		; Address of 2nd word in block, making BLT word
  5290	014107'	270 02 0 00 000001 		ADD T2,T1		; Last word+1 in block (end of zero BLT)
  5291	014110'	553 00 0 00 000002 		HRRZS T2		; Clear any crap in left half
  5292	014111'	303 02 0 03 000000 		CAILE T2,(T3)		; Check for only two words
  5293	014112'	251 03 0 02 777777 		BLT T3,-1(T2)		;  No, so zero the block
  5294	014113'	262 17 0 00 000002 	GETFR6:	POP P,T2		; Restore T2
  5295	014114'	254 00 0 00 014033*		RETSKP			; Successful return
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 115
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  5296
  5297					; Routine to release free storage block
  5298					; Lifted from monitor module FREE, routine RELFRE
  5299					;
  5300					; CALL:	T1/ Location of the block to be returned
  5301					;	    First word of returned block contains length of block in RH
  5302					;
  5303					;	CALL RELFRE
  5304					;
  5305					; RETURNS: +1	ERROR, can't release the block
  5306					;	   +2	SUCCESS, block released
  5307					;
  5308					; Clobbers T2, T3, and T4
  5309
  5310						ENTRY RELFRE		; Globalize so that NCU can find it
  5311
  5312	014115'	550 02 0 00 000001 	RELFRE:	HRRZ T2,T1		; Get adr of block into T2
  5313	014116'	201 01 0 00 002054'		MOVEI T1,FRSHDR		; Get adr of free space header
  5314					IFN TRACE,<
  5315						SOS T2			; Move back to actual start of block w/trace
  5316					    > ;End if TRACE
  5317	014117'	260 17 0 00 014406'		PIOFF			; Turn off interrupts
  5318	014120'	200 16 0 00 020535'		LOCK FRELOK		; Lock up access to memory manager
  5319	014121'	260 17 0 00 014336'
  5320	014122'	260 17 0 00 014130'		CALL RELFRW		; Go do the work (release the block)
  5321						 RETBAD (,<UNLOCK FRELOK
  5322	014123'	254 00 0 00 020536'				PION>)	;  Failed, propagate the error back
  5323	014124'	200 16 0 00 020535'		UNLOCK FRELOK		; Unlock the memory manager
  5324	014125'	260 17 0 00 014351'
  5325	014126'	260 17 0 00 014413'		PION			; Turn interrupts back on
  5326	014127'	254 00 0 00 014114*		RETSKP			; Sucessful return
  5327
  5328	014130'	261 17 0 00 000001 	RELFRW:	PUSH P,T1		; Save location of free storage header
  5329	014131'	554 04 0 01 000003 		HLRZ T4,.FHADR(T1)	; Get top address of free pool
  5330	014132'	550 01 0 01 000003 		HRRZ T1,.FHADR(T1)	; Get bottom address of free pool
  5331	014133'	303 04 0 02 000000 		CAILE T4,0(T2)		; Is block to be freed above the top of pool
  5332	014134'	303 01 0 02 000000 		CAILE T1,0(T2)		; or below the bottom?
  5333						JRST [POP P,T1		;  Yes, block out of range
  5334	014135'	254 00 0 00 020560'		      RETBAD (.ERR9)]	;  Return saying outside of pool space
  5335	014136'	200 01 0 17 000000 		MOVE T1,0(P)		; Get pool header location back again
  5336	014137'	261 17 0 00 000002 		PUSH P,T2		; Save location of block to free
  5337	014140'	200 02 0 17 777777 		MOVE T2,-1(P)		; Get address of header
  5338
  5339	014141'	554 03 0 02 000000 	RELFR1:	HLRZ T3,0(T2)		; Get location of next block in chain
  5340	014142'	322 03 0 00 014151'		JUMPE T3,RELFR2		; Check for end of list
  5341	014143'	307 03 0 02 000000 		CAIG T3,0(T2)		; Check for next block sorted correctly
  5342						JRST [POP P,T2		;  No .. chain is out of order
  5343						      POP P,T1		;  Clean up the stack
  5344	014144'	254 00 0 00 020562'		      RETBAD (.ERR30)]	;  and return a free list sequencing error
  5345	014145'	311 03 0 17 000000 		CAML T3,0(P)		; Is block being freed above block on chain
  5346	014146'	254 00 0 00 014151'		JRST RELFR2		;  Yes .. block being freed sorts in here.
  5347	014147'	200 02 0 00 000003 		MOVE T2,T3		; No .. set last block equal to current block
  5348	014150'	254 00 0 00 014141'		JRST RELFR1		; and try next entry on chain
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 116
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  5349
  5350	014151'	316 03 0 17 000000 	RELFR2:	CAMN T3,0(P)		; Current block addrs match block being freed?
  5351	014152'	265 16 0 00 014214'		JSP CX,RLFRX2		;  Yes .. this block is already free
  5352	014153'	306 01 0 02 000000 		CAIN T1,0(T2)		; Is previous block addrs the free pool header?
  5353	014154'	254 00 0 00 014161'		JRST RELFR6		;  Yes, then this will be first block on chain
  5354	014155'	550 04 0 02 000000 		HRRZ T4,0(T2)		; Get size of previous block and
  5355	014156'	270 04 0 00 000002 		ADD T4,T2		; compute end of previous block
  5356	014157'	313 04 0 17 000000 		CAMLE T4,0(P)		; Previous block overlap one being released?
  5357	014160'	265 16 0 00 014214'		 JSP CX,RLFRX2		;  Yes, can't do that .. already free
  5358	014161'	322 03 0 00 014166'	RELFR6:	JUMPE T3,RELFR7		; At end of free list chain?
  5359	014162'	550 04 1 17 000000 		HRRZ T4,@0(P)		; No, compute end of block being freed
  5360	014163'	270 04 0 17 000000 		ADD T4,0(P)		; by adding address to length
  5361	014164'	313 04 0 00 000003 		CAMLE T4,T3		; Overlaps next block on free list?
  5362	014165'	265 16 0 00 014214'		JSP CX,RLFRX2		;  Yes, error .. already free
  5363	014166'	550 04 1 17 000000 	RELFR7:	HRRZ T4,@0(P)		; Get length of block being freed
  5364	014167'	272 04 0 01 000001 		ADDM T4,.FHCNT(T1)	; Augment count of remaining free space
  5365	014170'	270 04 0 17 000000 		ADD T4,0(P)		; Get end of block being returned
  5366	014171'	302 04 0 03 000000 		CAIE T4,0(T3)		; Does block being freed butt to next block
  5367						JRST [HRLM T3,@0(P)	;  No, point returned block to successor
  5368	014172'	254 00 0 00 020565'		      JRST RELFR5]	;  and continue releasing it.
  5369	014173'	550 04 0 03 000000 		HRRZ T4,0(T3)		; Get length of following block
  5370	014174'	272 04 1 17 000000 		ADDM T4,@0(P)		; Add sizes of the two blocks
  5371	014175'	510 04 0 03 000000 		HLLZ T4,0(T3)		; Get address of successor of successor
  5372	014176'	502 04 1 17 000000 		HLLM T4,@0(P)		; Point to him as the next block after this one
  5373	014177'	200 03 0 17 000000 	RELFR5:	MOVE T3,0(P)		; Get address of block being freed
  5374	014200'	506 03 0 02 000000 		HRLM T3,0(T2)		; Make predecessor point to it
  5375	014201'	550 04 0 02 000000 		HRRZ T4,0(T2)		; Get length of predecessor
  5376	014202'	270 04 0 00 000002 		ADD T4,T2		; Calculate end of predecessor
  5377	014203'	312 04 0 00 000003 		CAME T4,T3		; Does it abut the block being freed?
  5378	014204'	254 00 0 00 014211'		JRST RELFR4		;  No, done
  5379	014205'	200 03 0 03 000000 		MOVE T3,0(T3)		; Yes .. get header word in block being fred
  5380	014206'	502 03 0 02 000000 		HLLM T3,0(T2)		; Point predecessor to next block in chain
  5381	014207'	553 00 0 00 000003 		HRRZS T3		; Get size of block being freed
  5382	014210'	272 03 0 02 000000 		ADDM T3,0(T2)		; Make one big block out of them
  5383	014211'	262 17 0 00 000002 	RELFR4:	POP P,T2		; Restore some registers
  5384	014212'	262 17 0 00 000001 		POP P,T1
  5385	014213'	254 00 0 00 014127*		RETSKP			; Good return
  5386
  5387	014214'	262 17 0 00 000002 	RLFRX2:	POP P,T2		; Bad block being released
  5388	014215'	262 17 0 00 000001 		POP P,T1
  5389	014216'	254 00 0 00 020567'		RETBAD (.ERR10)		; Error - attempt to release already free space
  5390
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 117
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  5391					; Routine to build free space header at initialization
  5392					;  for calls to GETFRE and RELFRE
  5393					;
  5394					;	CALL FSHDR
  5395					; RETURNS: +1	ALWAYS
  5396
  5397	014217'	474 01 0 00 000000 	FSHDR:	SETO T1,		; Zero all the free space
  5398	014220'	205 02 0 00 400000 		MOVSI T2,.FHSLF		; Point to this process
  5399	014221'	541 02 0 00 000600 		HRRI T2,FSP		; Starting at first page
  5400	014222'	200 03 0 00 020571'		MOVE T3,[PM%CNT+NFSP]	; Unmap all pages in free pool
  5401	014223'	104 00 0 00 000056 		PMAP
  5402	014224'	201 01 0 00 600000 		MOVEI T1,FSADR		; Start adr of free space
  5403	014225'	526 01 0 00 002054'		HRLOM T1,FRSHDR+.FHFFB	; Put into free pool header block
  5404	014226'	201 01 0 00 100000 		MOVEI T1,FSLEN		; Set up length of first block
  5405	014227'	202 01 0 00 600000 		MOVEM T1,FSADR		; Make the first block contain all space
  5406	014230'	202 01 0 00 002055'		MOVEM T1,FRSHDR+.FHCNT	; Set up length in header
  5407	014231'	200 01 0 00 020572'		MOVE T1,[FSADR+FSLEN,,FSADR] ; Get upper and lower bounds
  5408	014232'	202 01 0 00 002057'		MOVEM T1,FRSHDR+.FHADR	; and set in free space header
  5409	014233'	263 17 0 00 000000 		RET			; Only return .. hope it worked.
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 118
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  5410
  5411					;ROUTINE TO ASSIGN A FREE PAGE
  5412
  5413					;RETURNS +1:	NONE LEFT
  5414					;	 +2:	T1/	PAGE #
  5415					;		T2/	ADDRESS OF FIRST WORD IN PAGE
  5416
  5417	014234'	260 17 0 00 014406'	ASGPAG::PIOFF			;PREVENT INTERRUPTS
  5418	014235'	200 16 0 00 020573'		LOCK PAGLOK		;LOCK UP THE DATA BASE
  5419	014236'	260 17 0 00 014336'
  5420	014237'	205 04 0 00 777700 		MOVSI T4,-NFP		;SET UP TO SEARCH FOR A PAGE
  5421	014240'	200 03 0 00 020574'		MOVE T3,[POINT 1,FPTBL]
  5422	014241'	134 02 0 00 000003 	ASGPGL:	ILDB T2,T3		;GET NEXT PAGE BIT
  5423	014242'	326 02 0 00 014250'		JUMPN T2,ASGPGF		;FOUND A FREE ONE YET?
  5424	014243'	253 04 0 00 014241'		AOBJN T4,ASGPGL		;NO, LOOP BACK FOR REST OF PAGES
  5425	014244'	200 16 0 00 020573'		UNLOCK PAGLOK		;NONE FOUND
  5426	014245'	260 17 0 00 014351'
  5427	014246'	260 17 0 00 014413'		PION
  5428	014247'	254 00 0 00 020575'		RETBAD .ERR5		;NO MORE FREE PAGES LEFT
  5429
  5430	014250'	201 02 0 00 000000 	ASGPGF:	MOVEI T2,0		;MARK THAT THE PAGE IS NOW IN USE
  5431	014251'	137 02 0 00 000003 		DPB T2,T3		;...
  5432	014252'	200 16 0 00 020573'		UNLOCK PAGLOK		;RELEASE LOCKS
  5433	014253'	260 17 0 00 014351'
  5434	014254'	260 17 0 00 014413'		PION
  5435	014255'	200 01 0 17 000000 		MOVE T1,0(P)		;Get return address
  5436	014256'	516 01 0 04 477000 		HRLZM T1,FPRCD(T4)	;Store who got this page in left half
  5437	014257'	201 01 0 04 000500 		MOVEI T1,FFP(T4)	;GET PAGE NUMBER
  5438	014260'	200 02 0 00 000001 		MOVE T2,T1		;GET PAGE ADDRESS
  5439	014261'	242 02 0 00 000011 		LSH T2,9		;...
  5440	014262'	514 03 0 00 000002 		HRLZ T3,T2		;GET STARTING ADDRESS
  5441	014263'	541 03 0 02 000001 		HRRI T3,1(T2)		;GET DESTINATION ADDRESS
  5442	014264'	402 00 0 02 000000 		SETZM (T2)		;CLEAR FIRST WORD
  5443	014265'	251 03 0 02 000777 		BLT T3,777(T2)		;CLEAR THE PAGE
  5444	014266'	254 00 0 00 014213*		RETSKP			;RETURN SUCCESSFUL
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 119
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  5445					;ROUTINES TO RELEASE PAGES
  5446
  5447					;RELPGA - RELEASE PAGE ADDRESS
  5448					;	T1/	ADDRESS OF FIRST WORD IN PAGE
  5449
  5450					;RELPAG - RELEASE PAGE
  5451					;	T1/	PAGE NUMBER
  5452
  5453					;RETURNS +1:	ERROR
  5454					;	 +2:	SUCCESSFUL
  5455
  5456	014267'	242 01 0 00 777767 	RELPGA::LSH T1,-9		;GET PAGE NUMBER FROM ADDRESS
  5457	014270'	260 17 0 00 014406'	RELPAG:	PIOFF			;LOCK UP
  5458	014271'	200 16 0 00 020573'		LOCK PAGLOK
  5459	014272'	260 17 0 00 014336'
  5460	014273'	275 01 0 00 000500 		SUBI T1,FFP		;GET PAGE NUMBER WITHIN POOL
  5461	014274'	331 00 0 00 000001 		SKIPL T1		;IS THIS A LEGAL PAGE?
  5462	014275'	301 01 0 00 000100 		CAIL T1,NFP		;...
  5463						RETBAD (.ERR6,<UNLOCK PAGLOK
  5464	014276'	254 00 0 00 020601'				PION>)	;ILLEGAL PAGE ADDRESS
  5465	014277'	200 02 0 17 000000 		MOVE T2,0(P)		;Get return address
  5466	014300'	542 02 0 01 477000 		HRRM T2,FPRCD(T1)	;Save who returned this page.
  5467	014301'	200 02 0 00 020574'		MOVE T2,[POINT 1,FPTBL]
  5468	014302'	133 01 0 00 000002 		ADJBP T1,T2		;GET POINTER TO PAGE BIT
  5469	014303'	134 03 0 00 000001 		ILDB T3,T1		;SEE IF THE PAGE IS IN USE
  5470	014304'	332 00 0 00 000003 		SKIPE T3		;...
  5471						RETBAD (.ERR7,<UNLOCK PAGLOK
  5472	014305'	254 00 0 00 020607'				PION>)	;PAGE WAS ALREADY FREE
  5473	014306'	201 03 0 00 000001 		MOVEI T3,1		;NOW FREE UP THE PAGE
  5474	014307'	137 03 0 00 000001 		DPB T3,T1
  5475	014310'	200 16 0 00 020573'		UNLOCK PAGLOK		;FREE UP THE LOCKS
  5476	014311'	260 17 0 00 014351'
  5477	014312'	260 17 0 00 014413'		PION
  5478	014313'	254 00 0 00 014266*		RETSKP			;DONE
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 120
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  5479					; LOKNOD - ROUTINE TO LOCK A NODE TO PREVENT MULTIPLE ACCESS
  5480					;
  5481					;ACCEPTS IN T1/	ADDRESS OF NIB TO LOCK
  5482					;	    T2/	RESOURCE MASK (RM%XXX)
  5483					;		CALL LOKNOD
  5484					;RETURNS: +1 ALWAYS, WITH NODE LOCKED
  5485
  5486	014314'	265 16 0 00 013733*	LOKNOD::STKVAR <<LKNMSK,2>>
  5487	014315'	000002	000002
  5488
  5489	014316'	202 02 0 17 777776 		MOVEM T2,1+LKNMSK	;SAVE RESOURCE CLASS
  5490	014317'	201 02 0 00 000002 		MOVX T2,2		;GET COUNT FOR RESOURCE MASK BLOCK
  5491	014320'	202 02 0 17 777775 		MOVEM T2,LKNMSK		;SAVE COUNT
  5492	014321'	201 03 0 17 777775 		MOVEI T3,LKNMSK		;GET ADDRESS OF RESOURCE MASK
  5493	014322'	200 02 0 00 020613'		MOVE T2,[ENQ]		;GET LOCKING JSYS
  5494	014323'	505 01 0 00 000200 		HRLI T1,NODLEV		;GET LEVEL FOR NODE LOCKING
  5495	014324'	254 00 0 00 014364'		CALLRET EDLOCK		;LOCK THE RESOURCE
  5496
  5497
  5498
  5499					; ULKNOD - ROUTINE TO UNLOCK A LOCKED NODE
  5500					;
  5501					;ACCPETS IN T1/	ADDRESS OF NIB TO UNLOCK
  5502					;	    T2/	RESOURCE MASK
  5503					;		CALL ULKNOD
  5504					;RETURNS: +1 ALWAYS, WITH NODE UNLOCKED
  5505
  5506	014325'	265 16 0 00 014314*	ULKNOD::STKVAR <<ULNMSK,2>>
  5507	014326'	000002	000002
  5508
  5509	014327'	202 02 0 17 777776 		MOVEM T2,1+LKNMSK	;SAVE RESOURCE CLASS
  5510	014330'	201 02 0 00 000002 		MOVX T2,2		;GET COUNT FOR RESOURCE MASK BLOCK
  5511	014331'	202 02 0 17 777775 		MOVEM T2,LKNMSK		;SAVE COUNT
  5512	014332'	201 03 0 17 777775 		MOVEI T3,ULNMSK		;GET ADDRESS OF RESOURCE MASK
  5513	014333'	200 02 0 00 020614'		MOVE T2,[DEQ]		;GET UNLOCK JSYS
  5514	014334'	505 01 0 00 000200 		HRLI T1,NODLEV		;LEVEL FOR NODE LOCKING
  5515	014335'	254 00 0 00 014364'		CALLRET EDLOCK		;UNLOCK THE NODE
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 121
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  5516
  5517					;ROUTINES TO LOCK AND UNLOCK DATA BASE LOCKS
  5518
  5519					;CALLED BY THE "LOCK" AND "UNLOCK" MACROS
  5520					;ALL ACS ARE PRESERVED
  5521
  5522	014336'	261 17 0 00 000001 	ELOCK::	PUSH P,T1		;SAVE ALL ACS BY HAND
  5523	014337'	200 01 0 00 000016 		MOVE T1,CX		; SINCE CX CONTAINS THE ARGUMENT
  5524	014340'	261 17 0 00 000002 		PUSH P,T2		;SAVE ANOTHER AC
  5525	014341'	261 17 0 00 000003 		PUSH P,T3
  5526	014342'	200 02 0 00 020613'		MOVE T2,[ENQ]		;GET TYPE OF OPERATION TO DO
  5527	014343'	402 00 0 00 000003 		SETZM T3		;NO GROUP SPECIFICATION
  5528	014344'	260 17 0 00 014364'		CALL EDLOCK		;GO DO IT
  5529	014345'	262 17 0 00 000003 		POP P,T3		;CLEAN UP
  5530	014346'	262 17 0 00 000002 		POP P,T2
  5531	014347'	262 17 0 00 000001 		POP P,T1
  5532	014350'	263 17 0 00 000000 		RET			;ALL DONE
  5533
  5534	014351'	261 17 0 00 000001 	DLOCK::	PUSH P,T1		;SAVE ALL ACS BY HAND
  5535	014352'	200 01 0 00 000016 		MOVE T1,CX		; SINCE CX CONTAINS THE ARGUMENT
  5536	014353'	261 17 0 00 000002 		PUSH P,T2		;SAVE ANOTHER AC
  5537	014354'	261 17 0 00 000003 		PUSH P,T3
  5538	014355'	402 00 0 00 000003 		SETZM T3		;NO RESOURCE MASK
  5539	014356'	200 02 0 00 020614'		MOVE T2,[DEQ]		;GET TYPE OF OPERATION TO DO
  5540	014357'	260 17 0 00 014364'		CALL EDLOCK		;GO DO IT
  5541	014360'	262 17 0 00 000003 		POP P,T3
  5542	014361'	262 17 0 00 000002 		POP P,T2		;CLEAN UP
  5543	014362'	262 17 0 00 000001 		POP P,T1
  5544	014363'	263 17 0 00 000000 		RET			;ALL DONE
  5545
  5546
  5547	014364'	265 16 0 00 014325*	EDLOCK:	STKVAR <EDLCKI,<EDLCKB,6>>
  5548	014365'	000007	000007
  5549	014366'	202 02 0 17 777776 		MOVEM T2,EDLCKI		;SAVE THE INSTRUCTION TO BE DONE
  5550	014367'	550 02 0 00 000001 		HRRZ T2,T1		;GET THE ADDRESS BEING LOCKED
  5551	014370'	661 02 0 00 500000 		TXO T2,5B2		;MAKE IT INTO A NUMBER FOR ENQ/DEQ
  5552	014371'	202 02 0 17 777773 		MOVEM T2,.ENQUC+EDLCKB	;SAVE LOCK VALUE
  5553	014372'	541 01 0 00 777777 		HRRI T1,-1		;JOB WIDE LOCK (LEVEL NUMBER IN LH)
  5554	014373'	202 01 0 17 777772 		MOVEM T1,.ENQLV+EDLCKB
  5555	014374'	200 01 0 00 020615'		MOVE T1,[1,,6]		;SET UP REST OF LOCK BLOCK
  5556	014375'	202 01 0 17 777770 		MOVEM T1,.ENQLN+EDLCKB	;NUMBER OF LOCKS ,, LENGTH
  5557	014376'	202 03 0 17 777775 		MOVEM T3,.ENQMS+EDLCKB	;RESOURCE MASK
  5558	014377'	402 00 0 17 777771 		SETZM .ENQID+EDLCKB	;ID
  5559	014400'	402 00 0 17 777774 		SETZM .ENQRS+EDLCKB	;GROUP #
  5560	014401'	201 01 0 00 000000 		MOVEI T1,.ENQBL		;BLOCKING ENQ / DEQ LOCK FUNCTION
  5561	014402'	201 02 0 17 777770 		MOVEI T2,EDLCKB		;ADR OF LOCK BLOCK
  5562	014403'	256 00 0 17 777776 		XCT EDLCKI		;DO IT
  5563	014404'	254 00 0 00 015423'		 JRST CRUMP		;FAILED
  5564	014405'	263 17 0 00 000000 		RET			;RETURN
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 122
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  5565
  5566					;ROUTINES TO TURN OFF AND ON THE INTERRUPT SYSTEM
  5567					;ALL ACS ARE PRESERVED
  5568
  5569	014406'	261 17 0 00 000001 	PIOFF.:	PUSH P,T1		;SAVE ALL ACS
  5570	014407'	201 01 0 00 400000 		MOVEI T1,.FHSLF		;THIS FORK
  5571	014410'	104 00 0 00 000130 		DIR			;DISABLE INTERRUPT SYSTEM
  5572	014411'	262 17 0 00 000001 		POP P,T1		;RESTORE AC
  5573	014412'	263 17 0 00 000000 		RET			;AND RETURN
  5574
  5575	014413'	261 17 0 00 000001 	PION.:	PUSH P,T1		;SAVE ALL ACS
  5576	014414'	201 01 0 00 400000 		MOVEI T1,.FHSLF		;THIS FORK
  5577	014415'	104 00 0 00 000126 		EIR			;ENABLE INTERRUPTS AGAIN
  5578	014416'	262 17 0 00 000001 		POP P,T1		;RESTORE AC
  5579	014417'	263 17 0 00 000000 		RET			;AND RETURN
  5580
  5581
  5582					;ROUTINE TO SAVE ALL THE T ACS
  5583
  5584	014420'	261 17 0 00 000001 	SAVT::	PUSH P,T1		;SAVE THE ACS
  5585	014421'	261 17 0 00 000002 		PUSH P,T2
  5586	014422'	261 17 0 00 000003 		PUSH P,T3
  5587	014423'	260 17 0 16 000000 		CALL 0(CX)		;RETURN TO CALLER
  5588	014424'	334 00 0 00 000000 	RESTT:	 SKIPA			;NON-SKIP RETURN
  5589	014425'	350 00 0 17 777775 		AOS -3(P)		;SKIP RETURN
  5590	014426'	262 17 0 00 000003 		POP P,T3		;RESTORE ACS
  5591	014427'	262 17 0 00 000002 		POP P,T2
  5592	014430'	262 17 0 00 000001 		POP P,T1
  5593	014431'	263 17 0 00 000000 		RET			;AND RETURN
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 123
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  5594					;ROUTINE TO SAVE ALL THE Q ACS
  5595
  5596	014432'	261 17 0 00 000005 	SAVQ::	PUSH P,Q1		;SAVE THE ACS
  5597	014433'	261 17 0 00 000006 		PUSH P,Q2
  5598	014434'	261 17 0 00 000007 		PUSH P,Q3
  5599	014435'	260 17 0 16 000000 		CALL 0(CX)		;RETURN TO CALLER
  5600	014436'	334 00 0 00 000000 	RESTQ:	 SKIPA			;NON-SKIP RETURN
  5601	014437'	350 00 0 17 777775 		AOS -3(P)		;SKIP RETURN
  5602	014440'	262 17 0 00 000007 		POP P,Q3		;RESTORE ACS
  5603	014441'	262 17 0 00 000006 		POP P,Q2
  5604	014442'	262 17 0 00 000005 		POP P,Q1
  5605	014443'	263 17 0 00 000000 		RET			;AND RETURN
  5606
  5607
  5608	014444'	261 17 0 00 000005 	SAVPQ::	PUSH P,Q1		;SAVE ALL P'S AND Q'S
  5609	014445'	261 17 0 00 000006 		PUSH P,Q2
  5610	014446'	261 17 0 00 000007 		PUSH P,Q3
  5611	014447'	261 17 0 00 000010 		PUSH P,P1
  5612	014450'	261 17 0 00 000011 		PUSH P,P2
  5613	014451'	261 17 0 00 000012 		PUSH P,P3
  5614	014452'	261 17 0 00 000013 		PUSH P,P4
  5615	014453'	261 17 0 00 000014 		PUSH P,P5
  5616	014454'	261 17 0 00 000015 		PUSH P,P6
  5617	014455'	260 17 0 16 000000 		CALL 0(CX)		;CALL BACK TO ROUTINE
  5618	014456'	334 00 0 00 000000 	RESTPQ:	 SKIPA
  5619	014457'	350 00 0 17 777767 		AOS -11(P)		;SKIP RETURN
  5620	014460'	262 17 0 00 000015 		POP P,P6
  5621	014461'	262 17 0 00 000014 		POP P,P5
  5622	014462'	262 17 0 00 000013 		POP P,P4
  5623	014463'	262 17 0 00 000012 		POP P,P3
  5624	014464'	262 17 0 00 000011 		POP P,P2
  5625	014465'	262 17 0 00 000010 		POP P,P1
  5626	014466'	262 17 0 00 000007 		POP P,Q3
  5627	014467'	262 17 0 00 000006 		POP P,Q2
  5628	014470'	262 17 0 00 000005 		POP P,Q1
  5629	014471'	263 17 0 00 000000 		RET
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 124
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  5630
  5631					;ROUTINE TO TYPE OUT AN ERROR ON THE TTY
  5632					;ACCEPTS IN T1/	NETCON ERROR NUMBER
  5633					;RETURNS +1:	ALWAYS
  5634
  5635	014472'	634 04 0 00 000004 	ERROR::	TDZA T4,T4		;NOTE THAT THIS IS AN ERROR
  5636	014473'	476 00 0 00 000004 	WRNING::SETOM T4		;NOTE THAT THIS IS A WARNING
  5637	014474'	201 03 0 00 400000 		MOVEI T3,.FHSLF		;THIS FORK
  5638	014475'	561 02 0 00 000000*		HRROI T2,ERRSTR		;SET UP STRING POINTER FOR ERROR STRING
  5639	014476'	260 17 0 00 014532'		CALL ERRORB		;BUILD THE ERROR STRING
  5640	014477'	561 01 0 00 014475*		HRROI T1,ERRSTR		;GET POINTER TO STRING
  5641	014500'	104 00 0 00 000076 		PSOUT			;TYPE OUT THE MESSAGE
  5642	014501'	402 00 0 00 000001 		SETZM T1		;NO HEADER
  5643	014502'	561 02 0 00 014477*		HRROI T2,ERRSTR		;GET POINTER TO STRING AGAIN
  5644	014503'	260 17 0 00 014575'		CALL OPRMES		;SEND THE MESSAGE TO THE OPERATOR
  5645	014504'	334 00 0 00 000000 		 SKIPA			;FAILED
  5646	014505'	263 17 0 00 000000 		RET			;DONE
  5647	014506'	561 02 0 00 014502*		HRROI T2,ERRSTR		;SET UP A POINTER TO WHERE TO PUT THE STRING
  5648	014507'	201 03 0 00 400000 		MOVEI T3,.FHSLF		;THIS FORK
  5649	014510'	260 17 0 00 014532'		CALL ERRORB		;GET THE REASON FOR THE SEND FAILURE
  5650	014511'	104 00 0 00 000076 		PSOUT			;JUST TYPE THIS MESSAGE OUT
  5651	014512'	263 17 0 00 000000 		RET			;AND EXIT
  5652
  5653
  5654					;ROUTINE TO SET UP THE ERROR CODE IN T1
  5655					;CALLED BY THE RETER2 MACRO
  5656					;LEAVES T1/	MONITOR ERROR CODE ,, NETCON ERROR CODE
  5657
  5658	014513'	603 01 0 00 777777 	STOERC:	TLNE T1,-1		;LEGAL ERROR CODE?
  5659	014514'	201 01 0 00 500022 		MOVEI T1,.ERR19		;NO, GET ERROR CODE WITH GETER
  5660	014515'	305 01 0 00 600000 		CAIGE T1,600000		;NETCON ERROR CODE IN T1?
  5661	014516'	254 00 0 00 014522'		JRST STOER1		;YES
  5662	014517'	517 00 0 00 000001 		HRLZS T1		;NO, STORE MONITOR ERROR CODE IN LH
  5663	014520'	541 01 0 00 500022 		HRRI T1,.ERR19		;STANDARD ERROR MESSAGE "JSYS ERROR"
  5664	014521'	263 17 0 00 000000 		RET			;RETURN
  5665
  5666	014522'	261 17 0 00 000002 	STOER1:	PUSH P,T2		;SAVE ALL ACS
  5667	014523'	261 17 0 00 000001 		PUSH P,T1		;SAVE ERROR CODE
  5668	014524'	201 01 0 00 400000 		MOVEI T1,.FHSLF		;NOW GET LAST ERROR CODE
  5669	014525'	104 00 0 00 000012 		GETER
  5670	014526'	262 17 0 00 000001 		POP P,T1		;GET BACK NETCON ERROR CODE
  5671	014527'	504 01 0 00 000002 		HRL T1,T2		;PUT MONITOR ERROR CODE IN LH
  5672	014530'	262 17 0 00 000002 		POP P,T2		;RESTORE ACS
  5673	014531'	263 17 0 00 000000 		RET			;GIVE NON-SKIP RETURN
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 125
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  5674
  5675					;ROUTINE TO BUILD AN ERROR MESSAGE STRING
  5676
  5677					;ACCEPTS IN T1/	NETCON ERROR CODE
  5678					;	    T2/	POINTER TO WHERE TO PUT THE STRING
  5679					;	    T3/	FORK HANDLE
  5680
  5681					;RETURNS +1:	T2/	UPDATED STRING POINTER
  5682
  5683	014532'	265 16 0 00 014364*	ERRORB:	STKVAR <ERRORC,ERRORH>
  5684	014533'	000002	000002
  5685	014534'	202 01 0 17 777776 		MOVEM T1,ERRORC		;SAVE THE NETCON ERROR NUMBER
  5686	014535'	202 03 0 17 777775 		MOVEM T3,ERRORH		;SAVE FORK HANDLE
  5687	014536'	200 01 0 00 000002 		MOVE T1,T2		;SET UP POINTER TO ERROR STRING
  5688						HRROI T2,[ASCIZ/
  5689	014537'	561 02 0 00 020616'	? NETCON: /]
  5690	014540'	332 00 0 00 000004 		SKIPE T4		;WARNING INSTEAD OF ERROR ?
  5691						HRROI T2,[ASCIZ/
  5692	014541'	561 02 0 00 020621'	% NETCON: /]
  5693	014542'	400 03 0 00 000000 		SETZ T3,
  5694	014543'	104 00 0 00 000053 		SOUT			;OUTPUT THE TEXT
  5695	014544'	550 02 0 17 777776 		HRRZ T2,ERRORC		;NOW TYPE THE ERROR MESSAGE
  5696	014545'	275 02 0 00 500000 		SUBI T2,ERRCD0		;GET OFFSET INTO ERROR CODE TABLE
  5697	014546'	331 00 0 00 000002 		SKIPL T2		;ERROR?
  5698	014547'	301 02 0 00 000036 		CAIL T2,ERRTBL		;IS ERROR CODE IN CORRECT RANGE?
  5699	014550'	334 02 0 00 020631'		SKIPA T2,[-1,,[ASCIZ/Unknown NETCON error/]]
  5700	014551'	560 02 0 02 015502'		HRRO T2,ERRTAB(T2)	;YES, GET POINTER TO ERROR STRING
  5701	014552'	104 00 0 00 000053 		SOUT			;TYPE OUT THE ERROR MESSAGE
  5702	014553'	554 04 0 17 777776 		HLRZ T4,ERRORC		;GET THE MONITOR ERROR CODE
  5703	014554'	322 04 0 00 014570'		JUMPE T4,ERORB1		;IF NONE, DONT TYPE ANY MORE
  5704						HRROI T2,[ASCIZ/
  5705	014555'	561 02 0 00 020632'		(/]
  5706	014556'	400 03 0 00 000000 		SETZ T3,
  5707	014557'	104 00 0 00 000053 		SOUT			;NOW PRINT OUT THE LAST ERROR
  5708	014560'	514 02 0 17 777775 		HRLZ T2,ERRORH		;GET FORK HANDLE
  5709	014561'	544 02 0 17 777776 		HLR T2,ERRORC		;GET MONITOR ERROR CODE
  5710	014562'	400 03 0 00 000000 		SETZ T3,		;NO LENGTH LIMIT
  5711	014563'	104 00 0 00 000011 		ERSTR			;TYPE OUT MESSAGE
  5712	014564'	255 00 0 00 000000 		 JFCL
  5713						 JRST [	HRROI T2,[ASCIZ/No error message for error code: /]
  5714							SOUT
  5715							HLRZ T2,ERRORC	;NOW TYPE OUT ERROR CODE IN OCTAL
  5716							MOVEI T3,10
  5717							NOUT
  5718							 JFCL
  5719	014565'	254 00 0 00 020642'			JRST .+1]
  5720	014566'	201 02 0 00 000051 		MOVEI T2,")"		;FINISH MESSAGE WITH CLOSE PAREN
  5721	014567'	104 00 0 00 000051 		BOUT
  5722	014570'				ERORB1:	HRROI T2,[ASCIZ/
  5723	014570'	561 02 0 00 016655'	/]
  5724	014571'	400 03 0 00 000000 		SETZ T3,
  5725	014572'	104 00 0 00 000053 		SOUT			;FINISH THE MESSAGE
  5726	014573'	200 02 0 00 000001 		MOVE T2,T1		;RETURN WITH UPDATED POINTER IN T2
  5727	014574'	263 17 0 00 000000 		RET			;AND RETURN
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 126
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  5728
  5729					;ROUTINE TO SEND A TEXT MESSAGE TO OPR
  5730					;ACCEPTS IN T1/	POINTER TO THE TEXT STRING
  5731					;	    T2/ POINTER TO HEADER TEXT
  5732
  5733	014575'	265 16 0 00 014432'	OPRMES::SAVEQ			;SAVE PERMANENT ACS
  5734	014576'	265 16 0 00 014532*		STKVAR <OPRMSS,OPRMSA,<OPRMSB,4>,OPRMSH>
  5735	014577'	000007	000007
  5736	014600'	202 02 0 17 777770 		MOVEM T2,OPRMSH		;SAVE HEADER TEXT POINTER
  5737	014601'	202 01 0 17 777776 		MOVEM T1,OPRMSS		;SAVE ADDRESS OF TEXT STRING
  5738	014602'	260 17 0 00 014234'		CALL ASGPAG		;GET A PAGE FOR THE IPCF MESSAGE
  5739	014603'	263 17 0 00 000000 		 RETBAD			;FAILED
  5740	014604'	202 02 0 17 777775 		MOVEM T2,OPRMSA		;SAVE THE PAGE ADDRESS
  5741	014605'	505 01 0 00 001000 		HRLI T1,1000		;SET UP POINTER TO THE PAGE FOR MSEND
  5742	014606'	202 01 0 17 777774 		MOVEM T1,.IPCFP+OPRMSB	;SAVE POINTER IN PACKET DESCRIPTOR BLOCK
  5743	014607'	201 01 0 00 600000 		MOVX T1,IP%CFP!IP%CFV	;PAGE MODE SEND
  5744	014610'	202 01 0 17 777771 		MOVEM T1,.IPCFL+OPRMSB
  5745	014611'	200 01 0 00 002050'		MOVE T1,PID		;SET UP PID OF SENDER (US)
  5746	014612'	202 01 0 17 777772 		MOVEM T1,.IPCFS+OPRMSB
  5747	014613'	200 01 0 00 002051'		MOVE T1,OPRPID		;GET PID OF ORION
  5748	014614'	202 01 0 17 777773 		MOVEM T1,.IPCFR+OPRMSB	;SAVE THE PID OF THE RECEIVER
  5749	014615'	200 04 0 17 777775 		MOVE T4,OPRMSA		;GET ADDRESS OF MESSAGE
  5750	014616'	200 01 0 00 002001'		MOVE T1,REQCOD		;GET CODE OF OPR ORIGINATING THIS REQUEST
  5751	014617'	202 01 0 04 000002 		MOVEM T1,.MSCOD(T4)	;STORE ACK CODE
  5752	014620'	201 02 0 00 000000 		MOVX T2,0		;INITIALIZE ARG COUNT
  5753	014621'	332 00 0 17 777776 		SKIPE OPRMSS		;ANY TEXT ?
  5754	014622'	271 02 0 00 000001 		ADDI T2,1		;YES
  5755	014623'	332 00 0 17 777770 		SKIPE OPRMSH		;ANY HEADER ?
  5756	014624'	271 02 0 00 000001 		ADDI T2,1		;YES, ACCOUNT FOR IT
  5757	014625'	202 02 0 04 000004 		MOVEM T2,.OARGC(T4)	;STORE ARG COUNT
  5758	014626'	205 02 0 00 007000 		MOVX T2,WT.NDA!WT.SJI!WT.NFO ;NO FORMATTING
  5759	014627'	202 02 0 04 000003 		MOVEM T2,.OFLAG(T4)	;STORE FLAGS
  5760	014630'	271 04 0 00 000005 		ADDI T4,.OHDRS		;POINT TO START OF ARG AREA
  5761	014631'	561 01 0 04 000001 		HRROI T1,ARG.DA(T4)	;PUT THE STRING INTO THE MESSAGE
  5762	014632'	336 00 0 17 777770 		SKIPN OPRMSH		;ANY HEADER PRESENT ?
  5763	014633'	254 00 0 00 014645'		JRST OPRMS5		;NO, GO DO TEXT
  5764	014634'	201 02 0 00 000006 		MOVX T2,.WTTYP		;GET TYPE OF ARGUMENT (PLAIN TEXT)
  5765	014635'	542 02 0 04 000000 		STOR T2,AR.TYP,ARG.HD(T4) ;STORE ARG TYPE
  5766	014636'	200 02 0 17 777770 		MOVE T2,OPRMSH		;GET POINTER TO THE STRING
  5767	014637'	400 03 0 00 000000 		SETZ T3,
  5768	014640'	104 00 0 00 000053 		SOUT			;PUT TEXT INTO THE MESSAGE
  5769	014641'	550 03 0 00 000001 		HRRZ T3,T1		;KEEP JUST THE FINAL ADDRESS
  5770	014642'	275 03 0 04 777777 		SUBI T3,-1(T4)		;COMPUTE NUMBER OF WORDS STORED
  5771	014643'	506 03 0 04 000000 		STOR T3,AR.LEN,ARG.HD(T4) ;STORE LENGTH OF STRING
  5772	014644'	270 04 0 00 000003 		ADD T4,T3		;COMPUTE ADDRESS OF NEXT ARG
  5773						; ..
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 127
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  5774						; ..
  5775
  5776					; HERE TO ADD TEXT ARG AND SEND MESSAGE TO OPR
  5777
  5778	014645'	336 00 0 17 777776 	OPRMS5:	SKIPN OPRMSS		;ANY TEXT ?
  5779	014646'	254 00 0 00 014660'		JRST OPRMS8		;NO, GO SEND MESSAGE
  5780	014647'	201 02 0 00 000000 		MOVX T2,.WTTXT		;GET TYPE OF ARGUMENT (PLAIN TEXT)
  5781	014650'	542 02 0 04 000000 		STOR T2,AR.TYP,ARG.HD(T4) ;STORE ARG TYPE
  5782	014651'	561 01 0 04 000001 		HRROI T1,ARG.DA(T4)	;FORM POINTER TO WHERE ARG DATA GOES
  5783	014652'	200 02 0 17 777776 		MOVE T2,OPRMSS		;GET TEXT POINTER
  5784	014653'	402 00 0 00 000003 		SETZM T3		;TERMINATE ON NULL
  5785	014654'	104 00 0 00 000053 		SOUT			;ADD THIS ARG TO MESSAGE
  5786	014655'	550 03 0 00 000001 		HRRZ t3,T1		;KEEP JUST THE FINAL ADDRESS
  5787	014656'	275 03 0 04 777777 		SUBI t3,-1(T4)		;COMPUTE NUMBER OF WORDS STORED
  5788	014657'	506 03 0 04 000000 		STOR t3,AR.LEN,ARG.HD(T4) ;STORE LENGTH OF STRING
  5789	014660'	550 01 0 00 000001 	OPRMS8:	HRRZ T1,T1		;KEEP JUST FINAL ADDRESS
  5790	014661'	274 01 0 17 777775 		SUB T1,OPRMSA		;COMPUTE SIZE OF MESSAGE
  5791	014662'	271 01 0 00 000006 		ADDI T1,6		;COMPUTE TOTAL MESSAGE LENGTH
  5792	014663'	200 02 0 17 777775 		MOVE T2,OPRMSA		;GET MESSAGE ADDRESS AGAIN
  5793	014664'	506 01 0 02 000000 		HRLM T1,(T2)		;STORE LENGTH IN HEADER
  5794	014665'	201 01 0 00 200014 		MOVX T1,.OMACK		;GET ACK MESSAGE CODE
  5795	014666'	542 01 0 02 000000 		HRRM T1,(T2)		;STORE MESSAGE CODE
  5796	014667'	200 01 0 02 000002 		MOVE T1,.MSCOD(T2)	;DON'T SEND IF MSCOD=0. SPECIAL CASE FOR NETCON
  5797	014670'	322 01 0 00 014675'		JUMPE T1,OPRMS9		; GENERATED MSG'S. SEE AUTO DUMP/LOAD
  5798	014671'	201 01 0 00 000004 		MOVEI T1,4		;NOW SEND THE MESSAGE
  5799	014672'	201 02 0 17 777771 		MOVEI T2,OPRMSB
  5800	014673'	104 00 0 00 000510 		MSEND
  5801						 RETER2 (.ERR12,<MOVE T1,OPRMSA
  5802								CALL RELPGA
  5803	014674'	254 00 0 00 020653'				 NON.FATAL.ERROR ()>)
  5804	014675'	200 01 0 17 777775 	OPRMS9:	MOVE T1,OPRMSA		;FINISH UP BY RELEASING THE FREE PAGE
  5805	014676'	260 17 0 00 014267'		CALL RELPGA
  5806	014677'	260 17 0 00 014473'		 NON.FATAL.ERROR
  5807	014700'	254 00 0 00 014313*		RETSKP			;FINISHED SUCCESSFULLY
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 128
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  5808					;ROUTINE TO INITIALIZE NETCON
  5809
  5810					;RETURNS +1:	ERROR
  5811					;	 +2:	SUCCESSFUL
  5812
  5813	014701'	260 17 0 00 015045'	NETINI:	CALL	PACINI		;INIT PAGE ACCESSES
  5814	014702'	260 17 0 00 015057'		CALL FREINI		;INIT THE FREE SPACE
  5815	014703'	200 01 0 00 015606'		MOVE T1,ONCHNS		;GET MASK OF CHANNELS TO ENABLE
  5816	014704'	260 17 0 00 015170'		CALL PSIINI		;TURN ON ALL CHANNELS
  5817	014705'	260 17 0 00 015201'		CALL JFNINI		;GO OPEN ALL NCU SERVOR JFNS
  5818	014706'	263 17 0 00 000000 		 RETBAD ()		;FAILED
  5819	014707'	260 17 0 00 015252'		CALL PIDINI		;GO OPEN THE COMM CHANNEL TO ORION
  5820	014710'	263 17 0 00 000000 		 RETBAD ()		;FAILED
  5821	014711'	260 17 0 00 015342'		CALL HELLO		;SEND "HELLO" MESSAGE TO ORION
  5822	014712'	263 17 0 00 000000 		 RETBAD ()		;COULD NOT SEND IT
  5823	014713'	260 17 0 00 015302'		CALL NAMINI		;GO SET UP EXECUTR NODE NAME
  5824	014714'	260 17 0 00 000000*		CALL SYRNCU		;MAKE A "NETCON-STARTED" SYSERR ENTRY
  5825	014715'	402 00 0 00 002004'		SETZM LOGFRK		;INITIALIZE HANDLE OF LOGGING FORK
  5826	014716'	260 17 0 00 014725'		CALL LOGINI		;GO SET UP LOGGING TASK
  5827	014717'	254 00 0 00 020657'		 NON.FATAL.ERROR (.ERR22)
  5828	014720'	260 17 0 00 014735'		CALL TOPINI		;INITIALIZE TOPOLOGY MONITORING DATABASE
  5829	014721'	254 00 0 00 020662'		 NON.FATAL.ERROR (.ERR27)
  5830	014722'	260 17 0 00 015034'		CALL ATOINI		;INITIALIZE AUTO DUMP/LOAD MONITORING 
  5831	014723'	254 00 0 00 020665'		 NON.FATAL.ERROR (.ERR26)
  5832	014724'	254 00 0 00 014700*		RETSKP			;DONE
  5833
  5834
  5835
  5836					;LOGINI - ROUTINE CALLED JUST AFTER NETCON IS STARTED TO START UP
  5837					;	    THE LOGGING PROCESS.
  5838					;
  5839					;CALL:		CALL LOGINI
  5840					;RETURNS: +1	 FAILED
  5841					;	  +2	SUCCESS, LOGGING IN PROGRESS
  5842
  5843	014725'	332 01 0 00 002004'	LOGINI:	SKIPE T1,LOGFRK		;ANY PREVIOUS LOGGING FORK ?
  5844	014726'	104 00 0 00 000153 		KFORK			;YES, KILL IT
  5845	014727'	205 01 0 00 620000 		MOVX T1,CR%MAP!CR%CAP!CR%ST ;PASS CAPABILITIES, USE SAME MAP
  5846	014730'	541 01 0 00 000000*		HRRI T1,LOGGER		;GET STARTING ADDRESS OF LOGGING TASK
  5847	014731'	104 00 0 00 000152 		CFORK			;CREATE THE LOGGING PROCESS
  5848	014732'	263 17 0 00 000000 		 RETBAD ()		;FAILED
  5849	014733'	552 01 0 00 002004'		HRRZM T1,LOGFRK		;SAVE ID OF LOGGING FORK
  5850	014734'	254 00 0 00 014724*		RETSKP			;SUCCESS, DONE
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 129
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  5851					;TOPINI - ROUTINE TO INITIALIZE TOPOLOGY MONITORING DATABASE
  5852
  5853	014735'	265 16 0 00 014432'	TOPINI:	SAVEQ			;SAVE A FEW REGISTERS
  5854	014736'	265 16 0 00 014576*		STKVAR	<TOPVR0>	;LOCAL VARIABLE(S)
  5855	014737'	000001	000001
  5856	014740'	260 17 0 00 015012'		CALL TOPSET		;SET UP TOPLOGY SERVER LINKS
  5857	014741'	254 00 0 00 020531'		 FATAL.ERROR (.ERR28)	;FAILED, COULD NOT SET UP TOPOLOGY SERVERS
  5858	014742'	254 00 0 00 014746'		JRST TOPI.2		;Continue on
  5859
  5860	014743'	265 16 0 00 014432'	TOPI.1:	SAVEQ			; Save a few registers here also
  5861	014744'	265 16 0 00 014736*		STKVAR <DMMY>		; Fix up the stack for an alternate entry point
  5862	014745'	000001	000001
  5863
  5864	014746'	200 01 0 00 020670'	TOPI.2:	MOVE	T1,[.FHSLF,,.TIMEL] ;Elapsed time type interrupt
  5865	014747'	200 02 0 00 020671'		MOVX	T2,TOPTIM	; For the topology polling interval
  5866	014750'	201 03 0 00 000036 		MOVX	T3,HCKCHN	; Channel for timer interrupt
  5867	014751'	104 00 0 00 000522 		TIMER			; Set it all up
  5868	014752'	255 00 0 00 000000 		 JFCL			;  Ignore any errors
  5869
  5870	014753'	260 17 0 00 014234'		CALL	ASGPAG		;USE A PAGE FOR NODE JSYS
  5871	014754'	263 17 0 00 000000 		 RETBAD	()		;OOPS!
  5872	014755'	202 02 0 17 777776 		MOVEM	T2,TOPVR0	;SAVE PAGE ADDRESS
  5873	014756'	201 03 0 00 001000 		MOVEI	T3,1000		;SOME WORDS IN THAT PAGE
  5874	014757'	552 03 0 02 000000 		HRRZM	T3,.NDNLN(T2)	;SAVE FOR NODE JSYS
  5875	014760'	201 01 0 00 000014 		MOVEI	T1,.NDGLI	;GET LOCAL LINE INFORMATION
  5876	014761'	104 00 0 00 000567 		NODE
  5877	014762'	320 16 0 00 016677'		 ERJMP	[RETBAD ()]	;THE JSYS IS TOO CUTE!
  5878	014763'	200 06 0 17 777776 		MOVE	Q2,TOPVR0	;OBTAIN START OF PAGE
  5879	014764'	554 04 0 06 000000 		HLRZ	T4,.NDNLN(Q2)	;NUMBER OF LINE BLOCKS RETURNED
  5880	014765'	336 00 0 00 000004 		SKIPN	T4		;ANY?
  5881	014766'	254 00 0 00 014734*		 RETSKP			;IF 0, WE CAN'T DO ANYTHING ABOUT IT
  5882	014767'	350 00 0 00 000004 		AOS	T4		;PREPARE FOR AOBJP
  5883	014770'	213 00 0 00 000004 		MOVNS	T4		;
  5884	014771'	504 06 0 00 000004 		HRL	Q2,T4		;WE HAVE AOBJP POINTER IN Q2
  5885	014772'	252 06 0 00 015006'	TOPINL:	AOBJP	Q2,TOPOUT	;LOOP ON UNTIL DONE
  5886	014773'	200 05 0 06 000000 		MOVE	Q1,0(Q2)	;GET ADDRESS OF LINE BLOCK
  5887	014774'	200 02 0 05 000001 		MOVE	T2,.NDLST(Q1)	;WHAT IS THE LINE STATUS?
  5888	014775'	302 02 0 00 000001 		CAIE	T2,.NDLON	;LINE-ON?
  5889	014776'	254 00 0 00 014772'		 JRST	TOPINL		;NO, TRY ANOTHER LINE
  5890	014777'	200 01 0 05 000002 		MOVE	T1,.NDLND(Q1)	;YES, GET  POINTER TO NODE NAME
  5891	015000'	134 01 0 00 000001 		ILDB	T1,T1		;Get first byte of node name
  5892	015001'	322 01 0 00 014772'		JUMPE	T1,TOPINL	;If none .. go onto next line
  5893	015002'	200 01 0 05 000002 		MOVE	T1,.NDLND(Q1)	;Get pointer to node name again
  5894	015003'	260 17 0 00 016357'		CALL	MONINI		;TRY MONITORING THE TOPOLOGY
  5895	015004'	255 00 0 00 000000 		 JFCL			;DON'T REALLY CARE IF IF FAILS
  5896	015005'	254 00 0 00 014772'		JRST	TOPINL		;CONTINUE LOOP
  5897	015006'	200 01 0 17 777776 	TOPOUT:	MOVE	T1,TOPVR0	;RETURN PAGE OF MEMORY
  5898	015007'	260 17 0 00 014267'		CALL	RELPGA		;
  5899	015010'	263 17 0 00 000000 		 RETBAD			;OOPS, CANT RETURN PAGE!
  5900	015011'	254 00 0 00 014766*		RETSKP			;DONE, SO EXIT THE ROUTINE
  5901
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 130
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  5902					; TOPSET - ROUTINE TO SET UP SERVER LINKS FOR TOPOLOGY CHANGE INTERRUPTS
  5903					;
  5904					;CALL:		CALL TOPSET
  5905					;RETURNS: +1	 FAILED
  5906					;	  +2	SUCCESS
  5907
  5908	015012'	205 01 0 00 000001 	TOPSET:	MOVX T1,GJ%SHT		;SHORT FORM CALL
  5909	015013'	561 02 0 00 020672'		HRROI T2,[ASCIZ/SRV:.TOPOL/] ;TOPOLOGY SERVER
  5910	015014'	104 00 0 00 000020 		GTJFN			;GET JFN FOR NEW LINK
  5911	015015'	320 16 0 00 013741*		 ERJMP R		;FAILED
  5912	015016'	200 02 0 00 017223'		MOVE T2,[100000,,300000] ;READ AND WRITE ACCESS
  5913	015017'	104 00 0 00 000021 		OPENF			;OPEN THE LINK
  5914	015020'	320 16 0 00 015015*		 ERJMP R		;FAILED, RETURN ERROR
  5915	015021'	202 01 0 00 002006'		MOVEM T1,TOPSRV		;SAVE TOPOLOGY SERVER LINK JFN
  5916
  5917					; ENABLE FOR INTERRUPTS FROM FUTURE TOPOLOGY CHANGES
  5918
  5919	015022'	201 03 0 00 000000 		MOVEI T3,0		;CLEAR UNUSED BITS
  5920	015023'	201 02 0 00 000033 		MOVX T2,TOPCHN		;GET CHANNEL FOR TOPOLOGY INTERRUPTS
  5921	015024'	137 02 0 00 017225'		STOR T2,MO%CDN,T3	;STORE CHANNEL NUMBER
  5922	015025'	201 02 0 00 000024 		MOVX T2,.MOACN		;GET "ASSIGN CHANNEL" FUNCTION
  5923	015026'	104 00 0 00 000077 		MTOPR			;ASSIGN CHANNEL FOR CONNECT INTERRUPTS
  5924	015027'	320 16 0 00 015020*		 ERJMP R		;FAILED
  5925	015030'	201 01 0 00 400000 		MOVX T1,.FHSLF		;GET OUR FORK HANDLE
  5926	015031'	201 02 0 00 000440 		MOVX T2,1b<TOPCHN>!1b<HCKCHN> ;Channels for all types of topology chng.
  5927	015032'	104 00 0 00 000131 		AIC			;ACTIVATE THE CHANNELs
  5928
  5929					; DONE, RETURN SUCCESS
  5930
  5931	015033'	254 00 0 00 015011*		RETSKP			;DONE, RETURN TO CALLER
  5932
  5933					;ATOINI - ROUTINE TO INITIALIZE AUTO DUMP/LOAD MONITORING
  5934
  5935	015034'	265 16 0 00 014744*	ATOINI:	STKVAR <ATOHLD>
  5936	015035'	000001	000001
  5937	015036'	201 01 0 00 000035 		MOVX T1,ATOCHN		;GET CHANNEL NUMBER 
  5938	015037'	202 01 0 17 777776 		MOVEM T1,ATOHLD		;INTO PARAM BLOCK
  5939	015040'	201 01 0 00 000011 		MOVEI T1,.NDSIC		;TELL MONITOR TO INTERRUPT US
  5940	015041'	201 02 0 17 777776 		MOVEI T2,ATOHLD		;POINT TO BLOCK
  5941	015042'	104 00 0 00 000567 		NODE
  5942	015043'	320 16 0 00 016677'		 ERJMP [RETBAD]
  5943	015044'	254 00 0 00 015033*		RETSKP
  5944
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 131
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  5945					;SETUP APPROPRIATE PAGE ACCESSES FOR NETCON
  5946					;
  5947					; PACINI - SETUP PAGE ACCESSES
  5948					;
  5949					; RETURNS +1:	ALWAYS
  5950
  5951	015045'	201 01 0 00 000000#	PACINI:	MOVEI T1,<<NETCON+777>/1000> ;FIRST PAGE THAT DOESN'T HAVE
  5952									; DATA FOR SURE
  5953	015046'	201 03 0 00 000000#		MOVEI T3,<<BEGFRE-1000>/1000> ;LAST PAGE BEFORE DATA AREA
  5954	015047'	274 03 0 00 000001 		SUB T3,T1		;NUMBER OF PAGES
  5955	015050'	505 01 0 00 400000 		HRLI T1,.FHSLF		;SETUP T1 FOR RPACS AND SPACS
  5956	015051'	104 00 0 00 000057 	PACTOP:	RPACS			;SEE IF PAGE THERE FIRST
  5957	015052'	603 02 0 00 010000 		TXNE T2,PA%PEX		;PAGE EXISTS?
  5958						JRST [MOVX T2,PA%RD!PA%EX ;YES, SET READ AND EXECUTE ACCESS
  5959						      SPACS		;     SET PAGE ACCESS
  5960	015053'	254 00 0 00 020675'		      JRST .+1]		;     JOIN CODE
  5961	015054'	350 00 0 00 000001 		AOS T1			;NO, ADVANCE TO NEXT PAGE
  5962	015055'	367 03 0 00 015051'		SOJG T3,PACTOP		;DONE IF ZERO
  5963	015056'	263 17 0 00 000000 		RET			;EXIT FROM ROUTINE
  5964
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 132
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  5965					;ROUTINE TO INIT THE FREE SPACE
  5966
  5967					;RETURNS +1:	ALWAYS
  5968
  5969	015057'	200 01 0 00 020700'	FREINI:	MOVE T1,[BEGFRE,,BEGFRE+1]
  5970	015060'	402 00 0 00 000000*		SETZM BEGFRE		;ZERO THE VARIABLE AREA
  5971	015061'	251 01 0 00 000000*		BLT T1,LSTFRE		;FROM FIRST THRU LAST LOCATION
  5972	015062'	474 01 0 00 000000 		SETO T1,		;UNMAP ALL NCU PAGES
  5973	015063'	205 02 0 00 400000 		MOVSI T2,.FHSLF		;THIS FORK
  5974	015064'	541 02 0 00 000400 		HRRI T2,NCUFFP		;START AT FIRST NCU PAGE
  5975	015065'	200 03 0 00 020701'		MOVE T3,[PM%CNT+NCUNFP]	;UNMAP ALL NCU PAGES
  5976	015066'	104 00 0 00 000056 		PMAP
  5977	015067'	474 01 0 00 000000 		SETO T1,		;UNMAP ALL FREE PAGES
  5978	015070'	205 02 0 00 400000 		MOVSI T2,.FHSLF		;THIS FORK
  5979	015071'	541 02 0 00 000500 		HRRI T2,FFP		;START AT FIRST FREE PAGE
  5980	015072'	200 03 0 00 020571'		MOVE T3,[PM%CNT+NFP]	;UNMAP ALL FREE PAGES
  5981	015073'	104 00 0 00 000056 		PMAP
  5982	015074'	200 01 0 00 020574'		MOVE T1,[POINT 1,FPTBL]	;NOW INITIALIZE THE FREE PAGE TABLE
  5983	015075'	201 02 0 00 000001 		MOVEI T2,1		;MAKE ALL PAGES AVAILABLE
  5984	015076'	201 03 0 00 000100 		MOVEI T3,NFP
  5985	015077'	136 02 0 00 000001 	FREIN1:	IDPB T2,T1		;MARK THE PAGE AS FREE
  5986	015100'	367 03 0 00 015077'		SOJG T3,FREIN1		;LOOP BACK FOR ALL PAGES
  5987	015101'	260 17 0 00 014217'		CALL FSHDR		;GO INITIALIZE THE FREE SPACE HEADER
  5988	015102'	200 04 0 00 020702'		MOVE T4,[-MAXPGM,,PGMTAB]
  5989	015103'	201 01 0 00 777777 		MOVX T1,.PGFRE		;INITIALIZE THE PGM TABLE TO ALL FREE
  5990	015104'	506 01 0 04 000000 	FREIN2:	STOR T1,PGLDV,(T4)	;MARK THIS ENTRY AS FREE
  5991	015105'	271 04 0 00 000002 		ADDI T4,PGLEN-1		;STEP TO NEXT ENTRY
  5992	015106'	253 04 0 00 015104'		AOBJN T4,FREIN2		;LOOP BACK FOR ALL ENTRIES IN PGM TABLE
  5993	015107'	200 01 0 00 020703'		MOVE T1,[0,,MAXNOD]	;GET INITIAL HEADER FOR KNOWN NODE TABLE
  5994	015110'	202 01 0 00 000000*		MOVEM T1,NODTAB		;INITIALIZE NODE TABLE
  5995	015111'	476 00 0 00 000000*		SETOM NXTNIB		;INITIALIZE POINTER TO FIRST NIB
  5996	015112'	476 00 0 00 000000*		SETOM NXTLIN		;INITIALIZE POINTER TO NEXT LINTAB ENTRY
  5997	015113'	263 17 0 00 000000 		RET			;DONE
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 133
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  5998					;DUPTST - ROUTINE TO TEST FOR DUPLICATE NETCON'S RUNNING
  5999					;
  6000					;CALL:		CALL DUPTST
  6001					;RETURNS: +1	 FAILED, ANOTHER NETCON IS RUNNING
  6002					;	  +2	SUCCESS, OK TO CONTINUE
  6003
  6004	015114'	265 16 0 00 015034*	DUPTST:	STKVAR <<ENQJFB,5>,<ENQJFS,3>,<ENQJFU,10>>
  6005	015115'	000020	000020
  6006	015116'	561 01 0 00 777776 		MOVX T1,-2		;USE GLOBAL LOCK
  6007	015117'	552 01 0 17 777774 		HRRZM T1,.ENQLV+ENQJFB	;SAVE THE LOCK TYPE 
  6008	015120'	200 01 0 00 020704'		MOVE T1,[1,,5]		;SET UP ENQ BLOCK
  6009	015121'	202 01 0 17 777772 		MOVEM T1,.ENQLN+ENQJFB
  6010	015122'	402 00 0 17 777773 		SETZM .ENQID+ENQJFB	;ID = 0
  6011	015123'	561 01 0 00 020705'		HRROI T1,[ASCIZ/NETCON/] ;UNIQUE IDENTIFICATION
  6012	015124'	202 01 0 17 777775 		MOVEM T1,.ENQUC+ENQJFB	;UNIQUE CODE
  6013	015125'	402 00 0 17 777776 		SETZM .ENQRS+ENQJFB	;EXCLUSIVE LOCK
  6014	015126'	201 01 0 00 000001 		MOVEI T1,.ENQAA		;ASK FOR LOCK
  6015	015127'	201 02 0 17 777772 		MOVEI T2,ENQJFB
  6016	015130'	104 00 0 00 000513 		ENQ
  6017	015131'	334 00 0 00 000000 		 SKIPA			;NOT AVAILABLE
  6018	015132'	254 00 0 00 015044*		RETSKP			;GOT IT LOCKED
  6019	015133'	302 01 0 00 601062 		CAIE T1,ENQX6		;ALREADY IN USE?
  6020	015134'	263 17 0 00 000000 		RET			;NO, ERROR
  6021	015135'	201 01 0 00 000000 		MOVEI T1,.ENQCS		;NOW GET JOB NUMBER OF OWNER
  6022	015136'	201 02 0 17 777772 		MOVEI T2,ENQJFB
  6023	015137'	201 03 0 17 777767 		MOVEI T3,ENQJFS		;GET ADR OF STATUS BLOCK
  6024	015140'	104 00 0 00 000515 		ENQC			;GET STATUS INFO
  6025	015141'	263 17 0 00 000000 		 RET			;FAILED
  6026	015142'	550 01 0 17 777767 		HRRZ T1,ENQJFS		;GET JOB NUMBER OF OWNER
  6027	015143'	561 02 0 00 000004 		HRROI T2,T4		;GET USER NUMBER OF JOB
  6028	015144'	201 03 0 00 000002 		MOVEI T3,.JIUNO
  6029	015145'	104 00 0 00 000507 		GETJI
  6030	015146'	263 17 0 00 000000 		 RET			;FAILED
  6031	015147'	201 01 0 00 000101 		MOVEI T1,.PRIOU
  6032	015150'	561 01 0 00 020707'		TMSG <NETCON: Another NETCON already in use by >
  6033	015151'	104 00 0 00 000076 
  6034	015152'	561 01 0 17 777757 		HRROI T1,ENQJFU		;GET USER NAME
  6035	015153'	200 02 0 00 000004 		MOVE T2,T4		;GET USER NUMBER
  6036	015154'	104 00 0 00 000041 		DIRST
  6037	015155'	334 02 0 00 020721'		 SKIPA T2,[-1,,[ASCIZ/user/]]
  6038	015156'	561 01 0 17 777757 		HRROI T1,ENQJFU		;GET USER NAME STRING
  6039	015157'	104 00 0 00 000076 		PSOUT			;OUTPUT THE USER NAME STRING
  6040	015160'	561 01 0 00 020722'		TMSG < on job >
  6041	015161'	104 00 0 00 000076 
  6042	015162'	201 01 0 00 000101 		MOVX T1,.PRIOU		;OUTPUT TO PRIMARY JFN
  6043	015163'	550 02 0 17 777767 		HRRZ T2,ENQJFS		;NOW OUTPUT THE JOB NUMBER
  6044	015164'	201 03 0 00 000012 		MOVEI T3,^D10		;IN DECIMAL
  6045	015165'	104 00 0 00 000224 		NOUT			;OUTPUT JOB NUMBER
  6046	015166'	255 00 0 00 000000 		 JFCL
  6047	015167'	263 17 0 00 000000 		RET			;RETURN FAILURE
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 134
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  6048					;ROUTINE TO INIT THE PSI SYSTEM
  6049					;
  6050					;ACCEPTS IN T1/	MASK OF CHANNELS TO ENABLE
  6051
  6052					;RETURNS +1:	ALWAYS
  6053
  6054	015170'	200 04 0 00 000001 	PSIINI::MOVE T4,T1		;SAVE CHANNELS TO ENABLE
  6055	015171'	104 00 0 00 000141 		CIS			;CLEAR THE INTERRUPT SYSTEM
  6056	015172'	201 01 0 00 400000 		MOVEI T1,.FHSLF		;THIS FORK
  6057	015173'	200 02 0 00 020724'		MOVE T2,[LVTTAB,,CHTTAB]
  6058	015174'	104 00 0 00 000125 		SIR			;SET UP LEVTAB AND CHNTAB
  6059	015175'	200 02 0 00 000004 		MOVE T2,T4		;GET MASK OF CHANNELS TO ENABLE
  6060	015176'	104 00 0 00 000131 		AIC			;ACTIVATE THE CHANNELS
  6061	015177'	104 00 0 00 000126 		EIR			;ENABLE THE PI SYSTEM FOR INTERRUPTS
  6062	015200'	263 17 0 00 000000 		RET			;DONE
  6063
  6064
  6065					;ROUTINE TO OPEN THE SERVOR JFNS FOR THE NCU
  6066
  6067					;RETURNS +1:	ERROR
  6068					;	 +2:	SUCCESSFUL
  6069
  6070	015201'	265 16 0 00 014432'	JFNINI:	SAVEQ
  6071	015202'	205 05 0 00 777774 		MOVSI Q1,-NJFN		;GET THE NUMBER OF JFNS DESIRED
  6072	015203'	201 01 0 05 000027 	JFNLOP:	MOVEI T1,JFNCHN(Q1)	;GET CHANNEL NUMBER FOR THIS JFN
  6073	015204'	260 17 0 00 015214'		CALL GETJFN		;GET A JFN
  6074	015205'	254 00 0 00 015211'		 JRST JFNERR		;FAILED
  6075	015206'	202 01 0 05 002007'		MOVEM T1,JFNTAB(Q1)	;STORE THE JFN
  6076	015207'	253 05 0 00 015203'		AOBJN Q1,JFNLOP		;LOOP FOR ALL JFNS
  6077	015210'	254 00 0 00 015132*		RETSKP			;DONE
  6078
  6079	015211'	606 05 0 00 777777 	JFNERR:	TRNN Q1,-1		;WERE ANY JFNS OPENED OK?
  6080	015212'	254 00 0 00 020725'		RETBAD .ERR1		;NO, GIVE ERROR RETURN
  6081	015213'	254 00 0 00 015210*		RETSKP			;YES, USE THE ONES THAT WERE OPENED
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 135
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  6082
  6083					;ROUTINE TO GET A JFN TO SRV:NCU
  6084					;ACCEPTS IN T1/	CHANNEL NUMBER TO ENABLE
  6085
  6086	015214'	265 16 0 00 015114*	GETJFN:	STKVAR <GETJFJ,GETJFC>
  6087	015215'	000002	000002
  6088	015216'	202 01 0 17 777775 		MOVEM T1,GETJFC		;SAVE THE CHANNEL NUMBER
  6089	015217'	205 01 0 00 000001 		MOVX T1,GJ%SHT		;GET A JFN FOR NCU
  6090	015220'	561 02 0 00 020727'		HRROI T2,[ASCIZ/SRV:NCU/]
  6091	015221'	104 00 0 00 000020 		GTJFN
  6092	015222'	254 00 0 00 014513'		 RETER2 ()		;FAILED
  6093	015223'	202 01 0 17 777776 		MOVEM T1,GETJFJ		;SAVE THE JFN
  6094	015224'	200 02 0 00 017223'		MOVE T2,[^D8B5+OF%RD+OF%WR]
  6095	015225'	104 00 0 00 000021 		OPENF			;OPEN THE LINK
  6096	015226'	254 00 0 00 015241'		 JRST GETJF1		;FAILED
  6097	015227'	200 02 0 17 777775 		MOVE T2,GETJFC		;GET INTERRUPT CHANNEL NUMBER
  6098	015230'	137 02 0 00 017225'		STOR T2,MO%CDN,T3	;SET UP CONNECT CHANNEL NUMBER
  6099	015231'	201 02 0 00 000776 		MOVEI T2,.MOCIA		;CLEAR THE UNWANTED INTERRUPTS
  6100	015232'	137 02 0 00 017226'		STOR T2,MO%INA,T3	;INTERRUPT MESSAGES
  6101	015233'	137 02 0 00 017224'		STOR T2,MO%DAV,T3	;AAND DATA AVAILABLE
  6102	015234'	201 02 0 00 000024 		MOVEI T2,.MOACN		;NOW CONNECT THE JFN TO AN INTERRUPT
  6103	015235'	104 00 0 00 000077 		MTOPR
  6104	015236'	320 16 0 00 015241'		 ERJMP GETJF1		;FAILED
  6105	015237'	200 01 0 17 777776 		MOVE T1,GETJFJ		;GET THE JFN
  6106	015240'	254 00 0 00 015213*		RETSKP			;AND RETURN
  6107
  6108	015241'	250 01 0 17 777776 	GETJF1:	EXCH T1,GETJFJ		;GET JFN AGAIN
  6109	015242'	200 02 0 00 000001 		MOVE T2,T1		;SAVE JFN
  6110	015243'	104 00 0 00 000022 		CLOSF			;CLOSE IT
  6111	015244'	334 01 0 00 000002 		 SKIPA T1,T2		;FAILED
  6112	015245'	334 00 0 00 000000 		SKIPA
  6113	015246'	104 00 0 00 000023 		RLJFN			;RELEASE IT
  6114	015247'	255 00 0 00 000000 		 JFCL
  6115	015250'	200 01 0 17 777776 		MOVE T1,GETJFJ		;GET ERROR CODE
  6116	015251'	254 00 0 00 014513'		RETER2 ()
  6117
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 136
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  6118
  6119					;ROUTINE TO GET A PID FOR COMMUNICATION WITH ORION
  6120
  6121					;RETURNS +1:	FAILED
  6122					;	 +2:	OK
  6123
  6124	015252'	265 16 0 00 014432'	PIDINI:	SAVEQ			;PRESERVE THE PERMANENT ACS
  6125	015253'	201 01 0 00 000003 		MOVEI T1,3		;FIRST, GET THE PID QUOTA
  6126	015254'	201 02 0 00 000005 		MOVEI T2,Q1
  6127	015255'	201 05 0 00 000017 		MOVEI Q1,.MUFPQ
  6128	015256'	474 06 0 00 000000 		SETO Q2,		;FOR THIS JOB
  6129	015257'	104 00 0 00 000512 		MUTIL			;READ PID QUOTA
  6130	015260'	254 00 0 00 015265'		 JRST PIDIN1		;FAILED, DONT TRY TO SET IT
  6131	015261'	350 00 0 00 000007 		AOS Q3			;RAISE THE QUOTA BY ONE
  6132	015262'	201 05 0 00 000016 		MOVEI Q1,.MUSPQ		;NOW SET THE QUOTA
  6133	015263'	104 00 0 00 000512 		MUTIL
  6134	015264'	255 00 0 00 000000 		 JFCL			;IGNORE ERRORS AT THIS STEP
  6135	015265'	201 01 0 00 000003 	PIDIN1:	MOVEI T1,3		;NOW CREATE A PID
  6136	015266'	201 02 0 00 000005 		MOVEI T2,Q1
  6137	015267'	201 05 0 00 000006 		MOVEI Q1,.MUCRE		;THIS PID IS FOR NETCON TO
  6138	015270'	201 06 0 00 400000 		MOVEI Q2,.FHSLF		;  COMMUNICATE WITH ORION
  6139	015271'	104 00 0 00 000512 		MUTIL
  6140	015272'	254 00 0 00 020731'		 RETER2 (.ERR2)		;FAILED TO GET A PID
  6141	015273'	202 07 0 00 002050'		MOVEM Q3,PID		;SAVE THIS PID
  6142	015274'	201 05 0 00 000022 		MOVEI Q1,.MUPIC		;NOW PUT THE PID ON A CHANNEL
  6143	015275'	200 06 0 00 002050'		MOVE Q2,PID
  6144	015276'	201 07 0 00 000000 		MOVEI Q3,PIDCHN
  6145	015277'	104 00 0 00 000512 		MUTIL			;NOW WILL GET INTERRUPTED BY ORION
  6146	015300'	254 00 0 00 020733'		 RETER2 (.ERR4)		;COULD NOT PUT IT ON A CHANNEL
  6147	015301'	254 00 0 00 015240*		RETSKP			;DONE
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 137
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  6148					;NAMINI - ROUTINE TO SET UP NODE NAME, NODE NUMBER, SYSTEM NAME, ETC.
  6149
  6150	015302'	120 04 0 00 020735'	NAMINI:	DMOVE T4,[ASCIZ/TOPS20/] ;GET DEFAULT NAME
  6151	015303'	124 04 0 00 010025*		DMOVEM T4,OURNAM	;SET UP OUR LOCAL NODE NAME
  6152	015304'	402 00 0 00 000001 		SETZM T1		;NO OLD BLOCK TO RELEASE
  6153	015305'	200 02 0 00 020737'		MOVE T2,[POINT 7,[ASCIZ/TOPS20/]] ;GET DEFAULT NAME
  6154	015306'	201 03 0 00 000010 		MOVX T3,NODLEN		;GET MAX LENGTH OF NAMES
  6155	015307'	260 17 0 00 013352'		CALL CPYASC		;ASSIGN STRING BLOCK
  6156	015310'	254 00 0 00 020740'		 FATAL.ERROR (.ERR8)	;IF NO RESOURCES SO SOON, MUST FAIL
  6157	015311'	202 01 0 00 010604*		MOVEM T1,EXCUTR		;SAVE POINTER TO CURRENT EXECUTOR
  6158	015312'	200 03 0 00 000001 		MOVE T3,T1		;COPY POINTER TO DESTINATION FOR NODE NAME
  6159	015313'	201 02 0 00 000003 		MOVEI T2,T3		;ARGUMENT BLOCK IS IN T3
  6160	015314'	201 01 0 00 000001 		MOVX T1,.NDGLN		;GET "GET LOCAL NODE NAME" FUNCTION
  6161	015315'	104 00 0 00 000567 		NODE			;GET OUR NODE NAME
  6162						 ERJMP [ NON.FATAL.ERROR (.ERR20)
  6163	015316'	320 16 0 00 020747'			JRST .+1 ]	;RETURN
  6164	015317'	561 03 0 00 015303*		HRROI T3,OURNAM		;GET LOCAL NAME AGAIN
  6165	015320'	104 00 0 00 000567 		NODE			; AND SAVE IT AS NAME OF LOCAL NODE
  6166						 ERJMP [ NON.FATAL.ERROR (.ERR20)
  6167	015321'	320 16 0 00 020754'			 JRST .+1 ]	;CONTINUE
  6168	015322'	201 01 0 00 000003 		MOVX T1,.NDGNM		;GET LOCAL NODE NUMBER
  6169	015323'	201 02 0 00 000003 		MOVX T2,T3		;ARG BLOCK IS IN T3
  6170	015324'	104 00 0 00 000567 		NODE			;GET OUR NODE NUMBER
  6171						 ERJMP [ NON.FATAL.ERROR (.ERR20)
  6172	015325'	320 16 0 00 020761'			 JRST .+1 ]	;RETURN
  6173	015326'	202 03 0 00 000000*		MOVEM T3,OURNUM		;RET
  6174
  6175					; GET SYSTEM NAME STRING
  6176
  6177	015327'	200 01 0 00 020763'		MOVE T1,['SYSVER']	;GET TABLE NAME
  6178	015330'	104 00 0 00 000016 		SYSGT			;GET TABLE NUMBER
  6179	015331'	510 04 0 00 000002 		HLLZ T4,T2		;GET -# OF ENTRIES,,0
  6180	015332'	550 03 0 00 000002 		HRRZ T3,T2		;GET TABLE NUMBER
  6181
  6182	015333'	504 01 0 00 000004 	NAM010:	HRL T1,T4		;GET OFFSET INTO TABLE
  6183	015334'	540 01 0 00 000003 		HRR T1,T3		;GET TABLE NUMBER
  6184	015335'	104 00 0 00 000010 		GETAB			;GET PART OF NAME
  6185	015336'	320 16 0 00 015027*		 ERJMP R		;F@ILED
  6186	015337'	202 01 0 04 002064'		MOVEM T1,SYSNAM(T4)	;STORE TEXT
  6187	015340'	253 04 0 00 015333'		AOBJN T4,NAM010		;LOOP OVER ALL ENTRIES IN NAME
  6188	015341'	263 17 0 00 000000 		RET			;DONE, RETURN
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 138
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  6189					;ROUTINE TO SEND A "HELLO" MESSAGE TO ORION
  6190
  6191					;RETURNS +1:	FAILED
  6192					;	 +2:	DONE
  6193
  6194	015342'	265 16 0 00 014432'	HELLO:	SAVEQ			;SAVE PERMANENT ACS
  6195	015343'	265 16 0 00 015214*		STKVAR <HELLOT>
  6196	015344'	000001	000001
  6197	015345'	402 00 0 17 777776 		SETZM HELLOT		;INITIALIZE RETRY COUNTER
  6198	015346'	201 01 0 00 000003 	HELLO1:	MOVEI T1,3		;GET THE PID OF ORION
  6199	015347'	201 02 0 00 000005 		MOVEI T2,Q1
  6200	015350'	201 05 0 00 000025 		MOVEI Q1,.MURSP		;GET PID FROM SYSTEM PID TABLE
  6201	015351'	201 06 0 00 000004 		MOVEI Q2,.SPOPR		;GET PID OF ORION
  6202	015352'	104 00 0 00 000512 		MUTIL
  6203	015353'	254 00 0 00 015362'		 JRST HELLOW		;FAILED, GO WAIT FOR ORION TO START
  6204	015354'	202 07 0 00 002051'		MOVEM Q3,OPRPID		;SAVE THE PID OF ORION
  6205	015355'	201 01 0 00 000004 		MOVEI T1,4
  6206	015356'	201 02 0 00 015371'		MOVEI T2,HMESHD		;NOW SEND THE MESSAGE
  6207	015357'	104 00 0 00 000510 		MSEND
  6208	015360'	254 00 0 00 020764'		 RETER2 (.ERR3)		;FAILED
  6209	015361'	254 00 0 00 015301*		RETSKP			;DONE
  6210
  6211			000002			HSMIN==2		;MINUTES BETWEEN WARNING MESSAGES
  6212			000005			HSSLP==5		;SECONDS TO SLEEP BETWEEN TRIES
  6213
  6214	015362'	350 01 0 17 777776 	HELLOW:	AOS T1,HELLOT		;GET COUNTER OF RETRIES
  6215	015363'	231 01 0 00 000030 		IDIVI T1,HSMIN*^D60/HSSLP
  6216	015364'	336 00 0 00 000002 		SKIPN T2		;TIME FOR A WARNING MESSAGE?
  6217	015365'	254 00 0 00 021000'		WRNMES <Waiting for ORION to be started>
  6218	015366'	201 01 0 00 011610 		MOVEI T1,HSSLP*^D1000	;NOW WAIT A WHILE BEFORE TRYING AGAIN
  6219	015367'	104 00 0 00 000167 		DISMS
  6220	015370'	254 00 0 00 015346'		JRST HELLO1		;GO TRY AGAIN
  6221
  6222
  6223	015371'	300000	400000		HMESHD:	IP%CFS!IP%CFR!IP%CFP	;HELLO MESSAGE HEADER
  6224	015372'	000000	002050'			PID			;POINTER TO SENDERS PID
  6225	015373'	000000	002051'			OPRPID			;POINTER TO RECEIVERS PID
  6226	015374'	000010	015375'			HMESL,,HMES		;POINTER TO MESSAGE
  6227
  6228	015375'				HMES:
  6229	015375'	000010	200007			HMESL,,.OMAHL		;MESSAGE LENGTH,,TYPE
  6230	015376'	000000	000000			0			;NO FLAGS
  6231	015377'	564564	435756			'NETCON'		;ACKNOWLEDGEMENT CODE
  6232	015400'	000000	000000			0			;NO FLAGS AGAIN
  6233	015401'	000000	000001			1			;ONE ARG
  6234	015402'	000003	010200			3,,.AHNAM		;3 WORDS,,ARGUMENT NAME STRING
  6235	015403'	116 103 120 000 000 		ASCIZ/NCP/		;NAME OF APPLICATION
  6236			000010		HMESL==.-HMES+1
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 139
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  6237
  6238					;PANIC LEVEL ROUTINES
  6239
  6240					;THESE ROUTINES ARE CALLED ON LEVEL 1
  6241
  6242					DEFINE FATMES (A) <
  6243						MOVEM T2,L1SAV2		;SAVE ALL ACS THAT ARE USED
  6244						HRROI T2,[ASCIZ\A\]	;SET UP MESSAGE
  6245						JRST FATAL>
  6246
  6247	015404'	202 02 0 00 000000*	PDLOV:	FATMES <Push down list overflow>
  6248	015405'	561 02 0 00 021003'
  6249	015406'	254 00 0 00 015446'
  6250
  6251	015407'	202 02 0 00 015404*	DATERR:	FATMES <I/O data error or parity error>
  6252	015410'	561 02 0 00 021010'
  6253	015411'	254 00 0 00 015446'
  6254
  6255	015412'	202 02 0 00 015407*	ILLMRD:	FATMES <Illegal memory read>
  6256	015413'	561 02 0 00 021017'
  6257	015414'	254 00 0 00 015446'
  6258
  6259	015415'	202 02 0 00 015412*	ILLMWR:	FATMES <Illegal memory write>
  6260	015416'	561 02 0 00 021023'
  6261	015417'	254 00 0 00 015446'
  6262
  6263	015420'	202 02 0 00 015415*	ILLINS:	FATMES <Illegal instruction>
  6264	015421'	561 02 0 00 021030'
  6265	015422'	254 00 0 00 015446'
  6266
  6267	015423'	260 17 0 00 014406'	CRUMP:	PIOFF
  6268	015424'	202 02 0 00 015420*		FATMES <Fatal error>
  6269	015425'	561 02 0 00 021034'
  6270	015426'	254 00 0 00 015446'
  6271
  6272	015427'	202 02 0 00 015424*	MACHSZ:	MOVEM T2,L1SAV2		;SAVE ALL ACS
  6273	015430'	200 02 0 00 006006*		MOVE T2,LEV1PC		;GET INTERRUPTED PC
  6274	015431'	607 02 0 00 010000 		TLNN T2,(1B5)		;CAME FROM USER MODE?
  6275						JRST [	HRROI T2,[ASCIZ/Machine size exceeded/]
  6276	015432'	254 00 0 00 021044'			JRST FATAL]
  6277	015433'	202 01 0 00 000000*		MOVEM T1,L1SAV1		;SAVE ACS
  6278	015434'	202 03 0 00 000000*		MOVEM T3,L1SAV3
  6279	015435'	202 04 0 00 000000*		MOVEM T4,L1SAV4
  6280	015436'	254 00 0 00 021062'		WRNMES <Machine size exceeded, attempting recovery...>
  6281	015437'	201 01 0 00 072460 		MOVEI T1,^D30*^D1000	;SLEEP FOR 30 SECONDS
  6282	015440'	104 00 0 00 000167 		DISMS
  6283	015441'	200 01 0 00 015433*		MOVE T1,L1SAV1		;MAYBE THE CONDITION HAS GONE AWAY
  6284	015442'	200 02 0 00 015427*		MOVE T2,L1SAV2
  6285	015443'	200 03 0 00 015434*		MOVE T3,L1SAV3
  6286	015444'	200 04 0 00 015435*		MOVE T4,L1SAV4
  6287	015445'	104 00 0 00 000136 		DEBRK			;TRY AGAIN
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 140
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  6288
  6289	015446'	202 01 0 00 015441*	FATAL:	MOVEM T1,L1SAV1		;SAVE THE ACS
  6290	015447'	202 03 0 00 015443*		MOVEM T3,L1SAV3
  6291						HRROI T1,[ASCIZ/
  6292	015450'	561 01 0 00 021065'	? NETCON: /]
  6293	015451'	104 00 0 00 000076 		PSOUT
  6294	015452'	200 01 0 00 000002 		MOVE T1,T2		;GET MESSAGE TO BE TYPED
  6295	015453'	104 00 0 00 000076 		PSOUT			;TYPE IT OUT
  6296	015454'	561 01 0 00 021070'		HRROI T1,[ASCIZ/ at location: /]
  6297	015455'	104 00 0 00 000076 		PSOUT
  6298	015456'	201 01 0 00 000101 		MOVEI T1,.PRIOU		;NOW OUTPUT THE PC
  6299	015457'	550 02 0 00 015430*		HRRZ T2,LEV1PC		;GET THE PC
  6300	015460'	201 03 0 00 000010 		MOVEI T3,10		;OCTAL
  6301	015461'	104 00 0 00 000224 		NOUT
  6302	015462'	255 00 0 00 000000 		 JFCL
  6303						HRROI T1,[ASCIZ/
  6304	015463'	561 01 0 00 020632'		(/]
  6305	015464'	104 00 0 00 000076 		PSOUT
  6306	015465'	201 01 0 00 000101 		MOVEI T1,.PRIOU		;NOW PUT OUT THE MONITOR ERROR MESSAGE
  6307	015466'	525 02 0 00 400000 		HRLOI T2,.FHSLF
  6308	015467'	400 03 0 00 000000 		SETZ T3,
  6309	015470'	104 00 0 00 000011 		ERSTR
  6310	015471'	255 00 0 00 000000 		 JFCL
  6311						 SKIPA T1,[-1,,[ASCIZ/Unknown monitor error code)
  6312	015472'	334 01 0 00 021101'	/]]
  6313						HRROI T1,[ASCIZ/)
  6314	015473'	561 01 0 00 021102'	/]
  6315	015474'	104 00 0 00 000076 		PSOUT
  6316	015475'	200 01 0 00 015446*		MOVE T1,L1SAV1		;RESTORE ACS
  6317	015476'	200 02 0 00 015442*		MOVE T2,L1SAV2
  6318	015477'	200 03 0 00 015447*		MOVE T3,L1SAV3
  6319	015500'	104 00 0 00 000170 		HALTF			;BOMB!
  6320	015501'	254 00 0 00 005740'		JRST NETCON
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 141
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  6321
  6322					;NETCON ERROR CODES
  6323
  6324			500000			ERRCD0==500000		;STARTING ERROR CODE VALUE
  6325
  6326					DEFINE ERCOD <
  6327					XLIST
  6328					ERR .ERR1,<Could not open any JFNs for the NCU task>
  6329					ERR .ERR2,<Could not create a PID for receiving ORION messages>
  6330					ERR .ERR3,<Could not send "HELLO" message to ORION>
  6331					ERR .ERR4,<Could not set up PID interrupt channel>
  6332					ERR .ERR5,<No more free pages available>
  6333					ERR .ERR6,<Attempt to return an illegal page address>
  6334					ERR .ERR7,<Attempt to return a page that is already on the free list>
  6335					ERR .ERR8,<No more free space available>
  6336					ERR .ERR9,<Attempt to return a free block outside the free pool area>
  6337					ERR .ERR10,<Attempt to return space already marked as in the free pool>
  6338					ERR .ERR11,<ORION is not running>
  6339					ERR .ERR12,<Failed to successfully send a message to OPR>
  6340					ERR .ERR13,<Unimplemented NETCON command>
  6341					ERR .ERR14,<Unknown internal NETCON message type>
  6342					ERR .ERR15,<Exhausted table space for the known nodes>
  6343					ERR .ERR16,<All server JFNs in use>
  6344					ERR .ERR17,<NCU process halted prematurely>
  6345					ERR .ERR18,<Unknown message type received from ORION>
  6346					ERR .ERR19,<JSYS error>
  6347					ERR .ERR20,<Could not get name of local node>
  6348					ERR .ERR21,<Could not log line counters for communications line>
  6349					ERR .ERR22,<Could not initiate Logging Process>
  6350					ERR .ERR23,<Invalid line-id>
  6351					ERR .ERR24,<Could not open file>
  6352					ERR .ERR25,<Bad data in load file>
  6353					ERR .ERR26,<Could not initiate automatic dump/load>
  6354					ERR .ERR27,<Could not obtain network topology>
  6355					ERR .ERR28,<Could not set up topology change server links>
  6356					ERR .ERR29,<SYERR JSYS failed creating SYSERR entry>
  6357					ERR .ERR30,<Free pool chain sequencing error, blocks not sorted correctly>
  6358					LIST
  6359					>				;END OF ERCOD DEFINITION
  6360
  6361					DEFINE ERR (A,B) <
  6362					IF1 <IFDEF A,<PRINTX Error code "A" is multiply defined>>
  6363						A==:ZZ
  6364						[ASCIZ\B\]
  6365						ZZ==ZZ+1>
  6366
  6367			500000			ZZ==ERRCD0
  6368
  6369	015502'				ERRTAB:	ERCOD
  6370			000036			ERRTBL==.-ERRTAB
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 142
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  6371
  6372					;CHANNEL AND PSI DATA BASE
  6373
  6374	015540'	000000000000#		LVTTAB:	LEV1PC			;LEVEL 1 PC
  6375	015541'	000000000000#			LEV2PC			;LEVEL 2 PC
  6376	015542'	000000000000#			LEV3PC			;LEVEL 3 PC
  6377
  6378	015543'				CHTTAB:	
  6379			000000			PIDCHN==0		;INTERRUPT CHANNEL FOR IPCF MESSAGES
  6380	015543'	000002	013404'			PIDLVL,,PIDINT		;0
  6381			000001			JFDCHN==1		;1 - NJFN ARE FOR NCU DATA INTERRUPTS
  6382
  6383			000000			ZZ==0
  6384					REPEAT NJFN,<
  6385					DEFINE CHNBLD (A)<
  6386						LALL
  6387						JFDLVL,,JFD'A
  6388						SALL
  6389					>
  6390						CHNBLD (\ZZ)
  6391						ZZ==ZZ+1>
  6392
  6393	015544'	000003	013544'			JFDLVL,,JFD0
  6394						SALL
  6395
  6396	015545'	000003	013554'			JFDLVL,,JFD1
  6397						SALL
  6398
  6399	015546'	000003	013564'			JFDLVL,,JFD2
  6400						SALL
  6401
  6402	015547'	000003	013574'			JFDLVL,,JFD3
  6403						SALL
  6404			000004
  6405
  6406	015550'					BLOCK 8-NJFN		;UNUSED CHANNELS
  6407	015554'	000001	015404'			1,,PDLOV		;9 - PDL OVERFLOWS
  6408	015555'	000000	000000			0			;10 - UNUSED
  6409	015556'	000001	015407'			1,,DATERR		;11 - IO DATA ERRORS AND PARITY ERRORS
  6410	015557'					BLOCK 3			;12-14 UNUSED
  6411	015562'	000001	015420'			1,,ILLINS		;15 - ILLEGAL INSTRUCTION
  6412	015563'	000001	015412'			1,,ILLMRD		;16 - ILLEGAL MEMORY READ
  6413	015564'	000001	015415'			1,,ILLMWR		;17 - ILLEGAL MEMORY WRITE
  6414	015565'	000000	000000			0			;18 - UNUSED
  6415	015566'	000002	013715'			FKTLVL,,FRKTER		;19 - FORK TERMINATION
  6416	015567'	000001	015427'			1,,MACHSZ		;20 - MACHINE SIZE EXCEEDED
  6417	015570'					BLOCK 2			;21-22 - UNUSED
  6418
  6419			000027			JFNCHN==^D23		;START OF JFN INTERRUPT CHANNELS
  6420					IFL <^D8-NJFN>,<PRINTX NUMBER OF NCU JFNS EXCEEDED CHANNEL SPACE>
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 143
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  6421			000000			ZZ==0
  6422					REPEAT NJFN,<
  6423					DEFINE CHNBLD (A)<
  6424						LALL
  6425						JFNLVL,,JFN'A
  6426						SALL
  6427					>
  6428						CHNBLD (\ZZ)
  6429						ZZ==ZZ+1>
  6430
  6431	015572'	000002	013504'			JFNLVL,,JFN0
  6432						SALL
  6433
  6434	015573'	000002	013514'			JFNLVL,,JFN1
  6435						SALL
  6436
  6437	015574'	000002	013524'			JFNLVL,,JFN2
  6438						SALL
  6439
  6440	015575'	000002	013534'			JFNLVL,,JFN3
  6441						SALL
  6442			000004
  6443
  6444			000033			TOPCHN==JFNCHN+NJFN
  6445			000000			ZZ=0
  6446					REPEAT TOPMAX,<
  6447					DEFINE CHNBLD (A)<
  6448						LALL
  6449						TOPLVL,,TOP'A
  6450						SALL
  6451					>
  6452						CHNBLD (\ZZ)
  6453						ZZ=ZZ+1>
  6454
  6455	015576'	000002	013604'			TOPLVL,,TOP0
  6456						SALL
  6457
  6458	015577'	000002	013614'			TOPLVL,,TOP1
  6459						SALL
  6460			000002
  6461
  6462
  6463			000035			ATOCHN==TOPCHN+TOPMAX		;CHANNEL FOR TOPOLOGY CHANGE INTERRUPT
  6464	015600'	000002	013635'			TOPLVL,,ATO0			; FROM THE MONITOR
  6465
  6466			000036			HCKCHN==ATOCHN+1
  6467	015601'	000002	013624'			HCKLVL,,HCKINT			;Channel for topology polling TIMER
  6468										;  interrupts
  6469
  6470	015602'					BLOCK ^D35-HCKCHN-1		;Rest of interrupt table
  6471
  6472			000032			JFNCHB==JFNCHN-1+NJFN		;BIT POSITION
  6473			000017			JFNCHM==<-1_-<^D36-NJFN>>	;MASK
  6474			000004			JFDCHB==JFDCHN-1+NJFN		;BIT POSITION
  6475			000017			JFDCHM==<-1_-<^D36-NJFN>>	;BIT MASK
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 143-1
NCP	MAC	 5-Oct-81 16:46		Routines to Parse and Rebuild Commands from OPR

  6476			000034			TOPCHB==TOPCHN-1+TOPMAX		;BIT POSITION
  6477			000003			TOPCHM==<-1_-<^D36-TOPMAX>>	;MASK
  6478			000035			ATOCHB==ATOCHN			;BIT POSITION
  6479			000001			ATOCHM==1			;MASK
  6480
  6481
  6482		400507	300000			FIXCHN==1B<PIDCHN>!1B9!1B11!1B15!1B16!1B17!1B19!1B20
  6483		360000	017140			VARCHN==<JFNCHM>B<JFNCHB>!<JFDCHM>B<JFDCHB>!<ATOCHM>B<ATOCHB>!1b<HCKCHN>
  6484
  6485	015606'	760507	317140		ONCHNS:	FIXCHN!VARCHN
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 144
NCP	MAC	 5-Oct-81 16:46		Routines to Manipulate the Database

  6486					SUBTTL	Routines to Manipulate the Database
  6487
  6488
  6489					;ADDNOD - ROUTINE TO ADD A NODE TO THE LIST OF KNOWN NODES
  6490					;
  6491					;ACCEPTS IN T1/	POINTER TO ASCIZ NAME OF NEW NODE
  6492					;		CALL ADDNOD
  6493					;RETURNS: +1	 FAILURE, INSUFFICIENT RESOURCES FOR ANOTHER NODE
  6494					;	  +2	SUCCESS, WITH T1/ ADDRESS OF NODE INFORMATION BLOCK
  6495
  6496	015607'	265 16 0 00 015343*	ADDNOD:	STKVAR <STNNOD,STNNIB>
  6497	015610'	000002	000002
  6498	015611'	200 02 0 00 000001 		MOVE T2,T1		;COPY STRING TO A FREE BLOCK
  6499	015612'	201 01 0 00 000000 		MOVEI T1,0		;NO PREVIOUS STRING BLOCK
  6500	015613'	201 03 0 00 000010 		MOVEI T3,NODLEN		;STRING IS A NODE NAME
  6501	015614'	260 17 0 00 013352'		CALL CPYASC		;COPY THE STRING
  6502	015615'	263 17 0 00 000000 		 RETBAD ()		;FAILED
  6503
  6504					; STORE THE ASCIZ NODE NAME IN THE STRING AREA
  6505
  6506	015616'	271 01 0 00 000001 		ADDI T1,1		;POINT TO THE ACTUAL TEXT
  6507	015617'	202 01 0 17 777776 		MOVEM T1,STNNOD		;SAVE ADDRESS OF NODE NAME IN STRING AREA
  6508
  6509					; ALLOCATE A NEW NODE INFORMATION BLOCK AND ADD NODE TO NODE TABLE
  6510
  6511	015620'	260 17 0 00 015717'		CALL SETNIB		;GO GET ADDRESS OF NEXT FREE NIB
  6512	015621'	254 00 0 00 015635'		 JRST ADDNO1		;RETURN FAILURE, NO NIB'S AVAILABLE
  6513	015622'	202 01 0 17 777775 		MOVEM T1,STNNIB		;SAVE ADDRESS OF NEW NIB
  6514	015623'	540 02 0 00 000001 		HRR T2,T1		;GET NIB ADDRESS (DATA PART OF TABLE ENTRY)
  6515	015624'	504 02 0 17 777776 		HRL T2,STNNOD		;GET ADDRESS OF ASCIZ NODE NAME
  6516	015625'	201 01 0 00 015110*		MOVEI T1,NODTAB		;GET ADDRESS OF NODE TABLE
  6517	015626'	104 00 0 00 000536 		TBADD			;ADD THE NODE TO THE TABLE
  6518	015627'	320 16 0 00 015635'		 ERJMP ADDNO1		;FAILED, RETURN ERROR
  6519
  6520					; INITIALIZE THE NEW NODE INFORMATION BLOCK AND RETURN
  6521
  6522	015630'	200 01 0 17 777775 		MOVE T1,STNNIB		;GET ADDRESS OF NEW NIB TO INITIALIZE
  6523	015631'	200 02 0 17 777776 		MOVE T2,STNNOD		;GET ADDRESS OF ASCIZ NODE NAME
  6524	015632'	260 17 0 00 015735'		CALL NIBINI		;GO INITIALIZE THE NEW NIB
  6525	015633'	200 01 0 17 777775 		MOVE T1,STNNIB		;GET ADDRESS OF NODE INFORMATION BLOCK
  6526	015634'	254 00 0 00 015361*		RETSKP			;RETURN SUCCESS
  6527
  6528
  6529	015635'	200 01 0 17 777776 	ADDNO1:	MOVE T1,STNNOD		;GET POINTER TO NODE NAME STRING
  6530	015636'	260 17 0 00 014115'		CALL RELFRE		;RELEASE IT
  6531	015637'	254 00 0 00 016623'		 FATAL.ERROR		;COULDNT RELEASE IT
  6532	015640'	254 00 0 00 016736'		RETBAD (.ERR15)		;NO MORE ROOM FOR NODE NAME
  6533
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 145
NCP	MAC	 5-Oct-81 16:46		Routines to Manipulate the Database

  6534					;FOCLIN - ROUTINE TO FIND OR CREATE AN ENTRY IN A LINE ADJACENCY TABLE
  6535					;
  6536					;ACCEPTS IN T1/	ADDRESS OF NIB
  6537					;	    T2/	LINE ID
  6538					;		CALL FOCLIN
  6539					;RETURNS: +1	 FAILED, COULD NOT FIND OR CREATE ENTRY
  6540					;	  +2	SUCCESS, WITH T1/ ADDRESS OF ENTRY IN LINE ADJACENCY TABLE
  6541
  6542	015641'	265 16 0 00 015607*	FOCLIN:	STKVAR <FCLNIB,<FCLLIN,2>,FCLFRE>
  6543	015642'	000004	000004
  6544
  6545					; SEE IF THERE IS ALREADY AN ENTRY FOR THIS LINE
  6546
  6547	015643'	402 00 0 17 777773 		SETZM FCLFRE		;INITIALIZE FIRST FREE ENTRY
  6548	015644'	200 01 0 01 000006 		LOAD T1,NDLIN,(T1)	;GET ADDRESS OF LINE ADJACENCY TABLE
  6549	015645'	205 04 0 00 777773 		MOVSI T4,-MXLNOD	;SET UP TO LOOP OVER EACH ENTRY IN THE TABLE
  6550	015646'	200 16 0 01 000002 	FCL010:	JN LTUSE,(T1),FCL015	;IF THIS ENTRY IN USE, GO SEE WHICH LINE IT IS
  6551	015647'	321 16 0 00 015653'
  6552	015650'	336 00 0 17 777773 		SKIPN FCLFRE		;FREE ENTRY, ANY PREVIOUS FREE ENTRIES FOUND ?
  6553	015651'	202 01 0 17 777773 		MOVEM T1,FCLFRE		;NO, SAVE ENTRY ADDRESS
  6554	015652'	254 00 0 00 015657'		JRST FCL020		;GO CHECK NEXT ENTRY IN TABLE
  6555	015653'	316 02 0 01 000000 	FCL015:	CAMN T2,0(T1)		;TYPE AND CONTROLLER NUMBER COMPARE ?
  6556	015654'	312 03 0 01 000001 		CAME T3,1(T1)		;  AND ALSO UNIT NUMBER AND STATION ADDRESS ?
  6557	015655'	334 00 0 00 000000 		SKIPA			;NO, GO CHECK NEXT ENTRY
  6558	015656'	254 00 0 00 015634*		RETSKP			;FOUND DESIRED ENTRY, RETURN WITH T1/ ENTRY ADR
  6559	015657'	271 01 0 00 000004 	FCL020:	ADDI T1,LATSIZ		;FORM ADDRESS OF NEXT ENTRY IN TABLE
  6560	015660'	253 04 0 00 015646'		AOBJN T4,FCL010		;LOOP OVER ALL ENTRIES IN TABLE
  6561	015661'	200 01 0 17 777773 		MOVE T1,FCLFRE		;NOT FOUND, GET ADDRESS OF A FREE ENTRY
  6562	015662'	124 02 0 01 000000 		DMOVEM T2,(T1)		;STORE LINE ID IN NEW ENTRY
  6563	015663'	205 16 0 00 400000 		SETONE LTUSE,(T1)	;MARK THAT THIS ENTRY IS NOW IN USE
  6564	015664'	436 16 0 01 000002 
  6565	015665'	254 00 0 00 015656*		RETSKP			;AND RETURN WITH T1/ ENTRY ADDRESS
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 146
NCP	MAC	 5-Oct-81 16:46		Routines to Manipulate the Database

  6566					;ROUTINE TO FIND OR CREATE AN ENTRY IN THE PGM TABLE
  6567
  6568					;ACCEPTS IN T1/	DEVICE TYPE CODE
  6569					;	    T2/	CPU TYPE CODE
  6570					;	    T3/	PROGRAM TYPE
  6571					;	CALL FOCPGM
  6572					;RETURNS +1:	COULD NOT CREATE AN ENTRY
  6573					;	 +2:	T1/	ADR OF ENTRY IN PGM TABLE
  6574
  6575	015666'	265 16 0 00 014432'	FOCPGM:	SAVEQ			;SAVE SOME ACS
  6576	015667'	400 06 0 00 000000 		SETZ Q2,		;INITIALIZE POINTER TO FIRST FREE ENTRY
  6577	015670'	200 05 0 00 020702'		MOVE Q1,[-MAXPGM,,PGMTAB]
  6578	015671'	554 04 0 05 000000 	FOCPG1:	LOAD T4,PGLDV,(Q1)	;CHECK DEVIVE TYPE
  6579	015672'	312 01 0 00 000004 		CAME T1,T4		;FOUND A MATCH?
  6580	015673'	254 00 0 00 015704'		JRST FOCPG2		;NO, STEP TO NEXT ENTRY
  6581	015674'	550 04 0 05 000000 		LOAD T4,PGCPU,(Q1)	;CHECK CPU TYPE
  6582	015675'	312 02 0 00 000004 		CAME T2,T4		;FOUND A MATCH?
  6583	015676'	254 00 0 00 015707'		JRST FOCPG3		;NO
  6584	015677'	554 04 0 05 000001 		LOAD T4,PGPGM,(Q1)	;CHECK PROGRAM TYPE
  6585	015700'	312 03 0 00 000004 		CAME T3,T4		;FOUND A MATCH?
  6586	015701'	254 00 0 00 015707'		JRST FOCPG3		;NO
  6587	015702'	550 01 0 00 000005 		HRRZ T1,Q1		;YES, RETURN THIS ADDRESS IN T1
  6588	015703'	254 00 0 00 015665*		RETSKP
  6589
  6590	015704'	326 06 0 00 015707'	FOCPG2:	JUMPN Q2,FOCPG3		;SEEN A FREE ENTRY YET?
  6591	015705'	306 04 0 00 777777 		CAIN T4,.PGFRE		;NO, IS THIS ONE FREE?
  6592	015706'	550 06 0 00 000005 		HRRZ Q2,Q1		;YES, REMEMBER THIS ENTRY
  6593	015707'	271 05 0 00 000002 	FOCPG3:	ADDI Q1,PGLEN-1		;STEP TO NEXT ENTRY
  6594	015710'	253 05 0 00 015671'		AOBJN Q1,FOCPG1		;...
  6595	015711'	322 06 0 00 015336*		JUMPE Q2,R		;SEARCHED WHOLE TABLE, ANY FREE SLOTS?
  6596	015712'	506 01 0 06 000000 		STOR T1,PGLDV,(Q2)	;YES, CREATE THIS ENTRY
  6597	015713'	542 02 0 06 000000 		STOR T2,PGCPU,(Q2)	;STORE THE DEVICE AND CPU TYPES
  6598	015714'	506 03 0 06 000001 		STOR T3,PGPGM,(Q2)	;STORE THE PROGRAM TYPE
  6599	015715'	550 01 0 00 000006 		HRRZ T1,Q2		;RETURN THE ADDRESS IN T1
  6600	015716'	254 00 0 00 015703*		RETSKP
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 147
NCP	MAC	 5-Oct-81 16:46		Routines to Manipulate the Database

  6601					;SETNIB - ROUTINE TO ALLOCATE THE NEXT FREE NODE INFORMATION BLOCK
  6602					;
  6603					;CALL:		CALL SETNIB
  6604					;RETURNS: +1	 FAILURE, NO MORE NIB'S AVAILABLE
  6605					;	  +2	SUCCESS, WITH T1/ ADDRESS OF NODE INFORMATION BLOCK
  6606
  6607	015717'	350 01 0 00 015111*	SETNIB:	AOS T1,NXTNIB		;GET NUMBER OF NEXT AVAILABLE NIB
  6608	015720'	301 01 0 00 000062 		CAIL T1,MAXNOD		;ANY MORE AVAILABLE ?
  6609	015721'	263 17 0 00 000000 		RET			;NO, RETURN FAILURE
  6610	015722'	202 01 0 00 015717*		MOVEM T1,NXTNIB		;YES, STORE NUMBER OF LAST NIB USED
  6611	015723'	221 01 0 00 000022 		IMULI T1,NIBSIZ		;COMPUTE STARTING ADDRESS OF THIS NIB
  6612	015724'	271 01 0 00 002164'		ADDI T1,NIBTAB		;FORM STARTING ADDRESS OF THE NEW NIB
  6613	015725'	254 00 0 00 015716*		RETSKP			;RETURN SUCCESS
  6614
  6615
  6616					;SETLTB - ROUTINE TO ALLOCATE A LINE TABLE
  6617					;
  6618					;CALL:		CALL SETLTB
  6619					;RETURNS: +1	 FAILURE, NO MORE LINE TABLES AVAILABLE
  6620					;	  +2	SUCCESS, WITH T1/ ADDRESS OF LINE TABLE
  6621
  6622	015726'	350 01 0 00 015112*	SETLTB:	AOS T1,NXTLIN		;GET NUMBER OF NEXT AVAILABLE LINE TABLE
  6623	015727'	301 01 0 00 000062 		CAIL T1,MAXLIN		;ANY MORE AVAILABLE ?
  6624	015730'	263 17 0 00 000000 		RET			;NO, RETURN FAILURE
  6625	015731'	202 01 0 00 015726*		MOVEM T1,NXTLIN		;YES, STORE NUMBER OF LAST LINE TABLE USED
  6626	015732'	221 01 0 00 000024 		IMULI T1,LINSIZ		;COMPUTE STARTING ADDRESS OF THIS LINE TABLE
  6627	015733'	271 01 0 00 003770'		ADDI T1,ADJTAB		;FORM STARTING ADDRESS OF THE NEW LINE TABLE
  6628	015734'	254 00 0 00 015725*		RETSKP			;RETURN SUCCESS
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 148
NCP	MAC	 5-Oct-81 16:46		Routines to Manipulate the Database

  6629					;NIBINI - ROUTINE TO INITIALIZE A NODE INFORMATION BLOCK
  6630					;
  6631					;ACCEPTS IN T1/	ADDRESS OF NODE INFORMATION BLOCK
  6632					;	    T2/	ADDRESS OF ASCIZ NODE NAME
  6633					;		CALL NIBINI
  6634					;RETURNS: +1 ALWAYS, WITH NIB INITIALIZED
  6635
  6636	015735'	265 16 0 00 015641*	NIBINI:	STKVAR <NBINIB>
  6637	015736'	000001	000001
  6638	015737'	202 01 0 17 777776 		MOVEM T1,NBINIB		;SAVE ADDRESS OF NIB
  6639	015740'	514 04 0 00 000001 		HRLZ T4,T1		;GET STARTING ADDRESS OF NIB
  6640	015741'	541 04 0 01 000001 		HRRI T4,1(T1)		;GET DESTINATION ADDRESS FOR BLT
  6641	015742'	402 00 0 01 000000 		SETZM (T1)		;ZERO THE FIRST WORD OF THE NIB
  6642	015743'	251 04 0 01 000021 		BLT T4,NIBSIZ-1(T1)	;INITIALIZE THE NIB
  6643	015744'	505 02 0 00 440700 		HRLI T2,(POINT 7,)	;SET UP A POINTER TO THE NODE NAME
  6644	015745'	202 02 0 01 000007 		STOR T2,NDNAM,(T1)	;STORE POINTER TO NODE NAME IN THE NIB
  6645	015746'	202 02 0 01 000014 		STOR T2,NDPNA,(T1)	;STORE NAME NODE SHOULD USE ON BEING LOADED
  6646	015747'	200 02 0 00 021461'		move t2,[point 7,ournam] ;get pointer to our node name
  6647	015750'	202 02 0 01 000016 		STOR T2,NDPHT,(T1)	;STORE POINTER TO DEFAULT HOST FOR LOADS
  6648	015751'	553 00 0 01 000000 		SETZRO NDFLG,(T1)	;INITIALIZE THE FLAGS FOR THIS NODE
  6649	015752'	523 00 0 01 000010 		SETONE NDPRO,(T1)	;NOTE THAT NO PROTOCOL HAS BEEN DECLARED YET
  6650	015753'	476 00 0 01 000015 		setone ndpnu,(t1)	;no default node number
  6651	015754'	205 16 0 00 040000 		SETONE NDFRD,(T1)	;FORCE AUTO DUMP
  6652	015755'	436 16 0 01 000000 
  6653	015756'	205 16 0 00 020000 		SETONE NDFRL,(T1)	;FORCE AUTO LOAD
  6654	015757'	436 16 0 01 000000 
  6655	015760'	260 17 0 00 015726'		CALL SETLTB		;GET ADDRESS OF A LINE TABLE
  6656	015761'	263 17 0 00 000000 		 RET			;FAILED, RETURN ERROR
  6657	015762'	200 04 0 17 777776 		MOVE T4,NBINIB		;GET ADDRESS OF NIB BEING INITIALIZED
  6658	015763'	202 01 0 04 000006 		STOR T1,NDLIN,(T4)	;STORE ADDRESS OF LINE TABLE FOR THIS NIB
  6659	015764'	263 17 0 00 000000 		RET			;RETURN
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 149
NCP	MAC	 5-Oct-81 16:46		AUTO DUMP/LOAD ROUTINES

  6660					SUBTTL	AUTO DUMP/LOAD ROUTINES
  6661
  6662					;DMPLOD - AUTO DUMP AND LOAD OF NODES
  6663
  6664					;ACCEPTS:
  6665
  6666					;RETURNS:	+1,ERROR
  6667					;		+2,OTHERWISE
  6668
  6669	015765'	265 16 0 00 015735*	DMPLOD:	STKVAR<DMPTOP,DMPHLD>
  6670	015766'	000002	000002
  6671
  6672					; GET CURRENT TOPOLOGY FROM MONITOR
  6673
  6674	015767'	260 17 0 00 014234'		CALL ASGPAG		;GET A PAGE FOR TOPOLOGY INFORMATION
  6675	015770'	263 17 0 00 000000 		 RETBAD			;NO SPACE - ERROR
  6676	015771'	202 02 0 17 777776 		MOVEM T2,DMPTOP		;SAVE ADDRESS OF PAGE BUFFER
  6677	015772'	260 17 0 00 016061'		CALL TOPLGY		;GET CURRENT NETWORK TOPOLOGY
  6678	015773'	254 00 0 00 016055'		 JRST DMPERR		;FAILED, GO RELEASE ASSIGNED PAGE
  6679	015774'	402 00 0 17 777775 		SETZM DMPHLD		;GET READY TO GET FIRST NIB
  6680						;...
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 150
NCP	MAC	 5-Oct-81 16:46		AUTO DUMP/LOAD ROUTINES

  6681						;...
  6682
  6683					; LOOP THROUGH ALL NIB'S. FOR EACH NIB NOT IN TOPOLGY DUMP/LOAD AS INDICATED
  6684
  6685	015775'	200 01 0 17 777775 	DMPLOP:	MOVE T1,DMPHLD		;GET NIB ADDRESS
  6686	015776'	260 17 0 00 016067'		CALL GTNXNB		;GET NEXT NIB
  6687	015777'	254 00 0 00 016055'		 JRST DMPERR		;ERROR - FAIL
  6688	016000'	322 01 0 00 016051'		JUMPE T1,DMPEND		;JUMP IF LOOKED AT ALL NIBS
  6689	016001'	202 01 0 17 777775 		MOVEM T1,DMPHLD		;SAVE NIB ADDRESS
  6690	016002'	200 02 0 17 777776 		MOVE T2,DMPTOP		;ADDRESS OF TOPOLOGY DATA
  6691	016003'	260 17 0 00 016112'		CALL CHKNIB		;SEE IF NIB IS IN TOPOLOGY
  6692	016004'	254 00 0 00 015775'		 JRST DMPLOP		;YES - TRY NEXT NIB
  6693
  6694					; FOUND A NIB NOW PROCESS DUMP COMMAND
  6695
  6696	016005'	200 01 0 17 777775 		MOVE T1,DMPHLD		;GET NIB ADDRESS
  6697	016006'	200 16 0 01 000000 		JN NDDIP,(T1),ATOLOD	;JUMP IF DUMP IN PROGRESS FOR THIS NIB
  6698	016007'	603 16 0 00 002000 
  6699	016010'	254 00 0 00 016030'
  6700	016011'	200 16 0 01 000000 		JN NDLIP,(T1),ATOLOD	;JUMP IF LOAD IN PROGRESS FOR THIS NIB
  6701	016012'	603 16 0 00 001000 
  6702	016013'	254 00 0 00 016030'
  6703	016014'	200 16 0 01 000000 		JE NDDOK,(T1),ATOLOD	;JUMP IF NOT RESPONSIBLE FOR THIS NODE
  6704	016015'	607 16 0 00 000400 
  6705	016016'	254 00 0 00 016030'
  6706	016017'	200 16 0 01 000000 		JE NDFRD,(T1),ATOLOD	;IF BIT NDFRD IS ZERO => NO DUMPING
  6707	016020'	607 16 0 00 040000 
  6708	016021'	254 00 0 00 016030'
  6709	016022'	205 16 0 00 002000 		SETONE NDDIP,(T1)	;SET DUMP IN PROGRESS
  6710	016023'	436 16 0 01 000000 
  6711	016024'	200 01 0 01 000007 		LOAD T1,NDNAM,(T1)	;GET POINTER TO NODE NAME
  6712	016025'	201 02 0 00 000021 		MOVEI T2,.DNDMP		;TELL SNDCMD TO DO A DUMP COMMAND
  6713	016026'	260 17 0 00 016130'		CALL SNDCMD		;GO SEND THE DUMP COMMAND
  6714	016027'	255 00 0 00 000000 		 JFCL			;ERROR - TRY LOAD WITHOUT DUMPING
  6715
  6716					; PROCESS LOAD COMMAND
  6717
  6718	016030'	200 01 0 17 777775 	ATOLOD:	MOVE T1,DMPHLD		;GET NIB ADDRESS
  6719	016031'	200 16 0 01 000000 		JN NDLIP,(T1),DMPLOP	;JUMP IF  LOAD IN PROGRESS FOR THIS NIB
  6720	016032'	603 16 0 00 001000 
  6721	016033'	254 00 0 00 015775'
  6722	016034'	200 16 0 01 000000 		JE NDDOK,(T1),DMPLOP	;JUMP IF NOT RESPONSIBLE FOR THIS NODE
  6723	016035'	607 16 0 00 000400 
  6724	016036'	254 00 0 00 015775'
  6725	016037'	200 16 0 01 000000 		JE NDFRL,(T1),DMPLOP	;IF BIT NDFRL IS ZERO => NO LOADING
  6726	016040'	607 16 0 00 020000 
  6727	016041'	254 00 0 00 015775'
  6728	016042'	205 16 0 00 001000 		SETONE NDLIP,(T1)	;SET  LOAD IN PROGRESS
  6729	016043'	436 16 0 01 000000 
  6730	016044'	200 01 0 01 000007 		LOAD T1,NDNAM,(T1)	;GET POINTER TO NODE NAME
  6731	016045'	201 02 0 00 000042 		MOVEI T2,.DNLOA		;TELL SNDCMD TO DO A LOAD COMMAND
  6732	016046'	260 17 0 00 016130'		CALL SNDCMD		;GO SEND THE LOAD COMMAND
  6733	016047'	254 00 0 00 016055'		 JRST DMPERR		;ERROR - FAIL
  6734	016050'	254 00 0 00 015775'		JRST DMPLOP		;AND LOOP ON ALL NIB'S
  6735
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 150-1
NCP	MAC	 5-Oct-81 16:46		AUTO DUMP/LOAD ROUTINES

  6736	016051'	200 01 0 17 777776 	DMPEND:	MOVE T1,DMPTOP		;GET TOPOLOGY PAGE ADDRESS
  6737	016052'	260 17 0 00 014267'		CALL RELPGA		;AND RELEASE
  6738	016053'	263 17 0 00 000000 		 RETBAD			;ERROR - FAIL
  6739	016054'	254 00 0 00 015734*		RETSKP
  6740
  6741	016055'	200 01 0 17 777776 	DMPERR:	MOVE T1,DMPTOP		;GET TOPOLOGY PAGE ADDRESS
  6742	016056'	260 17 0 00 014267'		CALL RELPGA		;AND RELEASE
  6743	016057'	263 17 0 00 000000 		 RETBAD			;ERROR - FAIL
  6744	016060'	263 17 0 00 000000 		RETBAD
  6745
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 151
NCP	MAC	 5-Oct-81 16:46		AUTO DUMP/LOAD ROUTINES

  6746
  6747					;TOPLGY - ROUTINE TO GET THE CURRENT NETWORK TOPOLOGY
  6748					;
  6749					;ACCEPTS IN T2/	ADDRESS OF BUFFER IN WHICH TO PUT TOPOLOGY
  6750					;		CALL TOPLGY
  6751					;RETURNS: +1	 FAILED
  6752					;	  +2	SUCCESS, TOPOLOGY FILLED IN
  6753
  6754	016061'	201 01 0 00 000010 	TOPLGY:	MOVEI T1,.NDGNT		;GET NETWORK TOPOLGY FUNCTION
  6755	016062'	201 03 0 00 001000 		MOVEI T3,1000		;LET IT USE THE WHOLE PAGE
  6756	016063'	202 03 0 02 000000 		MOVEM T3,.NDNND(T2)	;INTO BLOCK
  6757	016064'	104 00 0 00 000567 		NODE
  6758	016065'	320 16 0 00 015711*		 ERJMP R		;FAILED, RETURN ERROR
  6759	016066'	254 00 0 00 016054*		RETSKP			;DONE, RETURN TOPOLOGY
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 152
NCP	MAC	 5-Oct-81 16:46		AUTO DUMP/LOAD ROUTINES

  6760					;GTNXNB - GET NEXT NIB
  6761
  6762					;ACCEPTS:	T1/ 0 - START AT THE TOP
  6763					;		    ADDRESS - OF NIB
  6764
  6765					;RETURNS:	+1, ERROR
  6766					;		+2, OTHERWISE
  6767					;			T1/ 0 - NO MORE NIBS
  6768					;			    ADDRESS OF NEXT NIB
  6769
  6770	016067'	326 01 0 00 016074'	GTNXNB:	JUMPN T1,GTNXT1		;IF NON-ZERO THEN GET THE NEXT NIB
  6771
  6772					; HERE TO GET THE FIRST NIB
  6773
  6774	016070'	554 01 0 00 015625*		HLRZ T1,NODTAB		;GET THE CURRENT LENGTH
  6775	016071'	332 00 0 00 000001 		SKIPE T1		;SKIP IF NO NIB'S
  6776	016072'	550 01 0 00 000000#		HRRZ T1,NODTAB+1	;GET ADDRESS OF FIRST NIB
  6777	016073'	254 00 0 00 016066*		RETSKP			;RETURN
  6778
  6779					; HERE TO GET OTHER THAN FIRST NIB
  6780
  6781	016074'	200 02 0 01 000007 	GTNXT1:	LOAD T2,NDNAM,(T1)	;GET ASCIZ NODE NAME
  6782	016075'	201 01 0 00 016070*		MOVEI T1,NODTAB		;POINT TO TABLE OF NODE NAMES
  6783	016076'	104 00 0 00 000537 		TBLUK			;FIND THE ENTRY
  6784	016077'	320 16 0 00 016677'		 ERJMP [RETBAD]		;ERROR - RETURN
  6785	016100'	607 02 0 00 040000 		TXNN T2,TL%EXM		;EXACT MATCH
  6786	016101'	263 17 0 00 000000 		RETBAD			;NO - DISASTER
  6787	016102'	201 03 0 01 000001 		MOVEI T3,1(T1)		;BUMP TO NEXT ITEM
  6788	016103'	554 02 0 00 016075*		HLRZ T2,NODTAB		;SEE IF NEXT ONE EXISTS
  6789	016104'	271 02 0 00 016103*		ADDI T2,NODTAB		;POINT TO END OF TABLE
  6790	016105'	550 01 0 03 000000 		HRRZ T1,(T3)		;GET NIB ADDRESS
  6791	016106'	317 03 0 00 000002 		CAMG T3,T2		;ARE WE AT THE END
  6792	016107'	254 00 0 00 016073*		RETSKP			;NO - RETURN NEXT NIB
  6793	016110'	402 00 0 00 000001 		SETZM T1		;YES - SHOW ALL HAVE BEEN RETURNED
  6794	016111'	254 00 0 00 016107*		RETSKP
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 153
NCP	MAC	 5-Oct-81 16:46		AUTO DUMP/LOAD ROUTINES

  6795
  6796					;CHKNIB - CHECK FOR NIB BEING IN TOPOLOGY
  6797
  6798					;ACCEPTS:	T1/ ADDRESS OF NIB
  6799					;		T2/ ADDRESS OF NODE JSYS .NDGNT INFORMATION
  6800
  6801					;RETURNS:	+1, NIB IN TOPOLOGY
  6802					;		+2, NIB NOT IN TOPOLOGY
  6803
  6804	016112'	265 16 0 00 014432'	CHKNIB:	SAVEQ
  6805	016113'	201 05 0 02 000002 		MOVEI Q1,.NDBK1(T2)	;POINT TO START OF BLOCK ADDRESSES
  6806	016114'	554 02 0 02 000000 		HLRZ T2,.NDNND(T2)	;GET COUNT OF NODES IN PAGE
  6807	016115'	322 02 0 00 016065*		JUMPE T2,R		;NO NODES - SHOW BY RETURN
  6808	016116'	213 00 0 00 000002 		MOVNS T2		;BUILD THE AOBJN COUNT
  6809	016117'	504 05 0 00 000002 		HRL Q1,T2		;...
  6810	016120'	200 06 0 01 000007 		LOAD Q2,NDNAM,(T1)	;MOVE NIB NAME POINTER
  6811
  6812					; HERE TO SEE IF NIB IS IN THE TOPOLOGY
  6813
  6814	016121'	200 01 0 00 000006 	CHKLOP:	MOVE T1,Q2		;MOVE FOR JSYS
  6815	016122'	200 02 0 05 000000 		MOVE T2,0(Q1)		;GET ADDRESS OF NODE BLOCK
  6816	016123'	200 02 0 02 000000 		MOVE T2,.NDNAM(T2)	;GET POINTER TO NODE NAME
  6817	016124'	104 00 0 00 000540 		STCMP			;DO THEY MATCH?
  6818	016125'	322 01 0 00 016115*		JUMPE T1,R		;JUMP IF YES
  6819	016126'	253 05 0 00 016121'		AOBJN Q1,CHKLOP		;KEEP LOOKING
  6820	016127'	254 00 0 00 016111*		RETSKP			;NOT THERE.
  6821
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 154
NCP	MAC	 5-Oct-81 16:46		AUTO DUMP/LOAD ROUTINES

  6822					;SNDCMD - BUILD AND SEND AN ORION TYPE COMMAND 
  6823
  6824					;ACCEPTS:	T1/ POINTER TO ASCIZ NODE NAME
  6825					;		T2/ .DNDMP/.DNLOA  (FUNCTION CODE FOR DUMP OR LOAD)
  6826
  6827					;RETURNS:	+1,ERROR
  6828					;		+2,OTHERWISE, T1/ADDRESS OF PAGE TO BE SENT TO ORION
  6829
  6830	016130'	265 16 0 00 015765*	SNDCMD:	STKVAR <SNDNAM,SNDHLD,SNDFNC,<SNDBLK,4>>
  6831	016131'	000007	000007
  6832	016132'	202 11 0 17 777775 		MOVEM P2,SNDHLD		;SAVE
  6833	016133'	202 01 0 17 777776 		MOVEM T1,SNDNAM		;SAVE THE POINTER TO THE NAME
  6834	016134'	202 02 0 17 777774 		MOVEM T2,SNDFNC		;SAVE THE COMMAND FUNCTION
  6835	016135'	260 17 0 00 014234'		CALL ASGPAG		;GET A PAGE FOR THE ORION MESSAGE
  6836	016136'	263 17 0 00 000000 		 RETBAD			;NO SPACE - ERROR
  6837	016137'	201 04 0 00 200050 		MOVEI T4,.OMCMD		;TELL NETCON IT'S  AN OPR COMMAND MESSAGE
  6838	016140'	542 04 0 02 000000 		STOR T4,MS.TYP,.MSTYP(T2)	;STORE IN PAGE
  6839	016141'	201 04 0 00 000200 		MOVEI T4,200		;[4001]SET COMMAND MESSAGE LENGTH
  6840	016142'	506 04 0 02 000000 		STOR T4,MS.CNT,.MSTYP(T2) ;[4001]TOO LARGE VALUE < PAGE
  6841	016143'	402 00 0 02 000002 		SETZM .MSCOD(T2)	;ZERO OPR IDENTIFIER
  6842	016144'	201 04 0 00 000100 		MOVEI T4,100		;PUT COMMANDS 100 LOCATIONS INTO PAGE
  6843	016145'	202 04 0 02 000007 		MOVEM T4,COM.PB(T2)	;PUT IN PROPER FIELD
  6844	016146'	201 11 0 02 000100 		MOVEI P2,100(T2)	;POINT TO COMMAND AREA
  6845
  6846					; BUILT HEADER INFO - NOW START BUILDING COMMANDS. BUILD DUMP/LOAD
  6847
  6848	016147'	201 01 0 00 000000 		MOVEI T1,.CMKEY		;INDICATE IT'S A KEY WORD
  6849	016150'	542 01 0 11 000000 		STOR T1,PBTYP		;INTO TYPE FIELD
  6850	016151'	250 02 0 17 777774 		EXCH T2,SNDFNC		;SAVE PAGE ADDRESS - GET FUNCTION TYPE
  6851	016152'	202 02 0 11 000001 		STOR T2,PBVAL		;SAVE THE DUMP/LOAD FUNCTION
  6852	016153'	201 01 0 00 000002 		MOVEI T1,2		;LENGTH OF BLOCK
  6853	016154'	506 01 0 11 000000 		STOR T1,PBLEN		;INTO IT'S FIELD
  6854	016155'	270 11 0 00 000001 		ADD P2,T1		;BUMP BASE REG
  6855
  6856					; DUMP/LOAD REMOTE
  6857
  6858	016156'	201 01 0 00 000000 		MOVEI T1,.CMKEY		;INDICATE IT'S A KEY WORD
  6859	016157'	542 01 0 11 000000 		STOR T1,PBTYP		;INTO TYPE FIELD
  6860	016160'	201 02 0 00 000055 		MOVEI T2,.DNNOD		;FUNCTION CODE IS REMOTE
  6861	016161'	202 02 0 11 000001 		STOR T2,PBVAL		;SAVE
  6862	016162'	201 01 0 00 000002 		MOVEI T1,2		;LENGTH OF BLOCK
  6863	016163'	506 01 0 11 000000 		STOR T1,PBLEN		;INTO IT'S FIELD
  6864	016164'	270 11 0 00 000001 		ADD P2,T1		;BUMP BASE REG
  6865
  6866					; DUMP/LOAD REMOTE node name
  6867
  6868	016165'	201 01 0 00 000026 		MOVEI T1,.CMNOD		;INDICATE IT'S A KEY WORD
  6869	016166'	542 01 0 11 000000 		STOR T1,PBTYP		;INTO TYPE FIELD
  6870	016167'	200 02 0 17 777776 		MOVE T2,SNDNAM		;GET POINTER TO NODE NAME
  6871	016170'	561 01 0 11 000001 		HRROI T1,.PBVAL(P2)	;POINT TO WHERE WE WANT IT TO GO
  6872	016171'	400 03 0 00 000000 		SETZ T3,		;COPY WHOLE STRING
  6873	016172'	104 00 0 00 000053 		SOUT
  6874						 ERJMP [MOVE T1,SNDFNC	;ERROR - FREE PAGE
  6875							CALL RELPGA
  6876							 NON.FATAL.ERROR
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 154-1
NCP	MAC	 5-Oct-81 16:46		AUTO DUMP/LOAD ROUTINES

  6877	016173'	320 16 0 00 021462'			RETBAD]
  6878	016174'	201 01 0 00 000016 		MOVEI T1,<<MAXNOD+12>/5>+2	;INDICATE MAX LENGTH
  6879	016175'	506 01 0 11 000000 		STOR T1,PBLEN		;SAVE IN COMMAND BLOCK
  6880	016176'	270 11 0 00 000001 		ADD P2,T1		;ADD TO BASE
  6881						;...
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 155
NCP	MAC	 5-Oct-81 16:46		AUTO DUMP/LOAD ROUTINES

  6882
  6883						;...
  6884
  6885					; ADD CONFIRMATION TO LINE
  6886
  6887	016177'	201 01 0 00 000010 		MOVEI T1,.CMCFM		;GET CRLF CODE
  6888	016200'	542 01 0 11 000000 		STOR T1,PBTYP		;INTO TYPE FIELD
  6889	016201'	201 01 0 00 000002 		MOVEI T1,2		;LENGTH OF BLOCK
  6890	016202'	506 01 0 11 000000 		STOR T1,PBLEN		;INTO IT'S FIELD
  6891	016203'	201 02 0 17 777770 		MOVEI T2,SNDBLK		;POINT TO IPCF PDB
  6892
  6893					; BUILT COMMAND - NOW SEND TO NETCON
  6894
  6895	016204'	201 01 0 00 200000 		MOVX T1,IP%CFV		;SEND TO NETCON - A WHOLE PAGE
  6896	016205'	202 01 0 02 000000 		MOVEM T1,.IPCFL(T2)	;INTO PDB
  6897	016206'	200 01 0 00 002050'		MOVE T1,PID		;GET OUR PID
  6898	016207'	202 01 0 02 000001 		MOVEM T1,.IPCFS(T2)	;INTO PDB
  6899	016210'	202 01 0 02 000002 		MOVEM T1,.IPCFR(T2)	;INTO PDB
  6900	016211'	200 01 0 17 777774 		MOVE T1,SNDFNC		;GET PAGE ADDRESS
  6901	016212'	242 01 0 00 777767 		LSH T1,-^D9		;MAKE INTO PAGE NUMBER
  6902	016213'	505 01 0 00 001000 		HRLI T1,1000		;SHOW IT AS A PAGE MESSAGE
  6903	016214'	202 01 0 02 000003 		MOVEM T1,.IPCFP(T2)	;INTO PDB
  6904	016215'	201 01 0 00 000004 		MOVEI T1,4		;LENGTH OF PDB
  6905	016216'	104 00 0 00 000510 		MSEND			;SEND THE COMMAND
  6906						 RETER2 (.ERR12,<MOVE T1,SNDFNC
  6907								 CALL RELPGA
  6908	016217'	254 00 0 00 021466'				  NON.FATAL.ERROR()>)
  6909	016220'	200 01 0 17 777774 		MOVE T1,SNDFNC		;GET PAGE TO RELEASE
  6910	016221'	260 17 0 00 014267'		CALL RELPGA		;RELEASE IT
  6911	016222'	260 17 0 00 014473'		 NON.FATAL.ERROR
  6912	016223'	254 00 0 00 016127*		RETSKP			;SUCCESS
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 156
NCP	MAC	 5-Oct-81 16:46		Network Topology Monitoring Routines

  6913					SUBTTL	Network Topology Monitoring Routines
  6914
  6915					;PRUNE - ROUTINE TO PRUNE THE TOPOLOGY OF NODES NO LONGER PRESENT
  6916					;
  6917					;ACCEPTS IN T1/	POINTER TO ASCIZ NODE NAME FROM WHICH UPDATED INFO CAME
  6918					;	    T2/	ADDRESS OF UPDATED NODE LIST FROM THAT NODE
  6919					;		CALL PRUNE
  6920					;RETURNS: +1 ALWAYS, TOPOLOGY TABLES UPDATED
  6921
  6922	016224'	265 16 0 00 014444'	PRUNE:	SAVEPQ
  6923	016225'	265 16 0 00 013352*		ASUBR <PRUNOD,PRUNEW,PRUOLD>
  6924
  6925					; SET UP TO LOOP OVER EACH NODE IN THE OLD NODE LIST
  6926
  6927	016226'	200 01 0 15 000001 		MOVE T1,PRUNOD		;GET POINTER TO NAME OF SOURCE NODE
  6928	016227'	260 17 0 00 016325'		CALL FNDLST		;GO GET THIS NODE'S OLD NODE LIST
  6929	016230'	263 17 0 00 000000 		 RET			;NO LIST-- NO NODES TO PRUNE
  6930	016231'	202 01 0 15 000003 		MOVEM T1,PRUOLD		;SAVE ADDRESS OF OLD NODE LIST
  6931	016232'	554 10 0 01 000000 		HLRZ P1,(T1)		;GET NUMBER OF ITEMS IN NODE LIST
  6932	016233'	210 10 0 00 000010 		MOVN P1,P1		;GET -NUMBER OF ITEMS
  6933	016234'	204 10 0 00 000010 		MOVS P1,P1		;GET -NUMBER OF ITEMS,,0
  6934	016235'	541 10 0 01 000001 		HRRI P1,1(T1)		;FORM AOBJN POINTER TO OLD NODE LIST
  6935
  6936					; LOOP OVER EACH NODE IN THE OLD NODE LIST
  6937
  6938	016236'	200 01 0 15 000002 	PRU020:	MOVE T1,PRUNEW		;GET ADDRESS OF NEW NODE LIST
  6939	016237'	554 02 0 10 000000 		HLRZ T2,(P1)		;GET ADDRESS OF NODE NAME FROM OLD LIST
  6940	016240'	505 02 0 00 440700 		HRLI T2,(POINT 7,)	;FORM POINTER TO NODE NAME FROM OLD LIST
  6941	016241'	260 17 0 00 016247'		CALL REMOVE		;REMOVE FROM TOPOLOGY IF NEEDED
  6942	016242'	253 10 0 00 016236'		AOBJN P1,PRU020		;NO, CHECK NEXT NODE IN OLD LIST
  6943
  6944					; REPLACE THE OLD NODE LIST WITH THE NEW NODE LIST
  6945
  6946	016243'	200 01 0 15 000003 		MOVE T1,PRUOLD		;GET ADDRESS OF OLD NODE LIST
  6947	016244'	200 02 0 15 000002 		MOVE T2,PRUNEW		;GET ADDRESS OF NEW NODE LIST
  6948	016245'	260 17 0 00 016276'		CALL SWPLST		;GO REPLACE OLD LIST WITH NEW LIST
  6949	016246'	263 17 0 00 000000 		RET			;DONE, RETURN
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 157
NCP	MAC	 5-Oct-81 16:46		Network Topology Monitoring Routines

  6950
  6951					;REMOVE - ROUTINE TO REMOVE A NODE FROM THE TOPOLOGY TABLES
  6952					;
  6953					;ACCEPTS IN T1/	POINTER TO ASCIZ NODE NAME TO REMOVE
  6954					;		CALL REMOVE
  6955					;RETURNS: +1 ALWAYS
  6956
  6957	016247'	265 16 0 00 016225*	REMOVE:	ASUBR <RMVNOD>
  6958
  6959					; REMOVE THE NODE FROM THE MONITOR'S DATABASE
  6960
  6961	016250'	200 01 0 15 000001 		MOVE T1,RMVNOD		;GET POINTER TO ASCIZ NODE NAME
  6962	016251'	260 17 0 00 016255'		CALL MONDEL		;DELETE THE NODE FROM MONITOR
  6963
  6964					; SEE IF ANY OTHER NODES MUST ALSO BE DELETED
  6965
  6966	016252'	200 01 0 15 000001 		MOVE T1,RMVNOD		;GET POINTER TO ASCIZ NODE NAME
  6967	016253'	260 17 0 00 016333'		CALL TSTTOP		;DOES THIS NODE HAVE A NODE LIST ?
  6968	016254'	263 17 0 00 000000 		 RET			;NO, SO NO OTHER NODES TO DELETE
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 158
NCP	MAC	 5-Oct-81 16:46		Network Topology Monitoring Routines

  6969
  6970					;MONDEL - ROUTINE TO DELETE A NODE FROM THE MONITOR'S DATABSE
  6971					;
  6972					;ACCEPTS IN T1/	POINTER TO ASCIZ NODE NAME
  6973					;		CALL MONDEL
  6974					;RETURNS: +1 ALWAYS
  6975
  6976	016255'	265 16 0 00 016130*	MONDEL:	STKVAR <<MNDBLK,20>>
  6977	016256'	000020	000020
  6978	016257'	201 02 0 17 777757 		MOVEI T2,MNDBLK		;GET ADDRESS OF ARGUMENT BLOCK
  6979	016260'	201 04 0 00 000001 		MOVEI T4,1		;ONE NODE TO REMOVE
  6980	016261'	202 04 0 02 000000 		MOVEM T4,.NDNND(T2)	;STORE NUMBER OF NODE BLOCKS
  6981	016262'	201 04 0 00 000003 		MOVEI T4,.NDNBS		;GET SIZE OF A NODE BLOCK
  6982	016263'	202 04 0 02 000001 		MOVEM T4,.NDCNT(T2)	;SAVE IN ARG BLOCK
  6983	016264'	201 04 0 02 000003 		MOVEI T4,.NDBK1+1(T2)	;GET ADDRESS OF THE NODE BLOCK
  6984	016265'	202 04 0 02 000002 		MOVEM T4,.NDBK1(T2)	;STORE IN ARG BLOCK
  6985	016266'	202 01 0 04 000000 		MOVEM T1,.NDNAM(T4)	;STORE POINTER TO NODE NAME
  6986	016267'	201 03 0 00 000001 		MOVEI T3,.NDSOF		;STATE IS NOW OFF
  6987	016270'	202 03 0 04 000001 		MOVEM T3,.NDSTA(T4)	;STORE STATE INDICATING "REMOVE NODE FROM LIST"
  6988	016271'	402 00 0 04 000002 		SETZM .NDNXT(T4)	;NO SOURCE NODE NAME
  6989	016272'	201 01 0 00 000007 		MOVEI T1,.NDSNT		;GET "SET NETWORK TOPOLOGY" FUNCTION
  6990	016273'	104 00 0 00 000567 		NODE			;REMOVE NODE FROM TABLE OF KNOWN NODES
  6991	016274'	320 16 0 00 016125*		 ERJMP R		;FAILED
  6992	016275'	263 17 0 00 000000 		RET			;DONE, RETURN
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 159
NCP	MAC	 5-Oct-81 16:46		Network Topology Monitoring Routines

  6993
  6994					;SWPLST - ROUTINE TO REPLACE AN OLD NODE LIST WITH A NEW NODE LIST
  6995					;
  6996					;ACCEPTS IN T1/	ADDRESS OF OLD NODE LIST
  6997					;	    T2/	ADDRESS OF NEW NODE LIST
  6998					;	    T3/	POINTER TO ASCIZ NODE NAME
  6999					;		CALL SWPLST
  7000					;RETURNS: +1 ALWAYS, NEW LIST SAVED AND OLD LIST RELEASED
  7001
  7002	016276'	265 16 0 00 016247*	SWPLST:	ASUBR <SWLOLD,SWLNEW,SWLNOD,SWLENT>
  7003
  7004					; DELETE OLD LIST AND RELEASE THE SPACE
  7005
  7006	016277'	200 16 0 00 021472'		LOCK TOPTAB		;LOCK THE MASTER TABLE OF LISTS
  7007	016300'	260 17 0 00 014336'
  7008	016301'	200 01 0 00 002005'		MOVE T1,TOPTAB		;GET ADDRESS OF TABLE OF NODE LISTS
  7009	016302'	200 02 0 15 000003 		MOVE T2,SWLNOD		;GET POINTER TO NODE NAME
  7010	016303'	104 00 0 00 000535 		TBDEL			;DELETE THE ENTRY
  7011	016304'	320 16 0 00 016311'	 	 ERJMP SWL010		;FAILED, JUST INSERT NEW LIST
  7012	016305'	200 01 0 15 000001 		MOVE T1,SWLOLD		;GET ADDRESS OF OLD LIST
  7013	016306'	275 01 0 00 000001 		SUBI T1,1		;POINT TO BLOCK HEADER
  7014	016307'	260 17 0 00 014115'		CALL RELFRE		;RELEASE THE LIST
  7015	016310'	254 00 0 00 016623'		 FATAL.ERROR		;FAILED
  7016
  7017					; STORE THE NEW NODE LIST
  7018
  7019	016311'	200 04 0 15 000003 	SWL010:	MOVE T4,SWLNOD		;GET POINTER TO ASCIZ NODE NAME
  7020	016312'	133 00 0 00 000004 		IBP T4			;INCREMENT AND DECREMENT THE POINTER IN
  7021	016313'	211 03 0 00 000001 		MOVNI T3,1		; CASE IT WAS POINTING TO THE WORD JUST
  7022	016314'	133 03 0 00 000004 		ADJBP T3,T4		; BEFORE THE NAME.
  7023	016315'	514 02 0 00 000003 		HRLZ T2,T3		;GET ADR OF NAME,,0
  7024	016316'	540 02 0 15 000002 		HRR T2,SWLNEW		;GET ADDRESS OF NEW NODE LIST
  7025	016317'	200 01 0 00 002005'		MOVE T1,TOPTAB		;GET ADDRESS OF TABLE OF NODE LISTS
  7026	016320'	104 00 0 00 000536 		TBADD			;PUT THE NEW NODE LIST IN THE TABLE
  7027	016321'	320 16 0 00 016322'		 ERJMP .+1		;FAILED
  7028	016322'	200 16 0 00 021472'		UNLOCK TOPTAB		;UNLOCK THE TABLE
  7029	016323'	260 17 0 00 014351'
  7030	016324'	254 00 0 00 016223*		RETSKP			;DONE, RETURN
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 160
NCP	MAC	 5-Oct-81 16:46		Network Topology Monitoring Routines

  7031
  7032					;FNDLST - ROUTINE TO FIND A NODE'S NODE LIST
  7033					;
  7034					;ACCEPTS IN T1/	POINTER TO ASCIZ NODE NAME
  7035					;		CALL FNDLST
  7036					;RETURNS: +1	 FAILED, NODE NOT IN TOPTAB
  7037					;	  +2	SUCCESS, WITH T1/ ADDRESS OF NODE LIST
  7038
  7039	016325'	200 02 0 00 000001 	FNDLST:	MOVE T2,T1		;COPY POINTER TO NODE NAME
  7040	016326'	201 01 0 00 002005'		MOVEI T1,TOPTAB		;GET ADDRESS OF NODE LIST TABLE
  7041	016327'	104 00 0 00 000537 		TBLUK			;FIND THE ENTRY FOR THIS NODE
  7042	016330'	320 16 0 00 016274*		 ERJMP R		;FAILED, CANNOT RETURN NODE LIST
  7043	016331'	550 01 0 01 000000 		HRRZ T1,(T1)		;GET ADDRESS OF NODE LIST FOR THIS NODE
  7044	016332'	254 00 0 00 016324*		RETSKP			;DONE, RETURN SUCCESS
  7045					;TSTTOP - ROUTINE TO SEE IF A NODE IS IN TOPTAB
  7046					;
  7047					;ACCEPTS IN T1/	POINTER TO ASCIZ NODE NAME
  7048					;		CALL TSTTOP
  7049					;RETURNS: +1	 NODE NOT IN TOPTAB
  7050					;	  +2	NODE IS IN TOPTAB AND HAS ITS OWN NODE LIST
  7051
  7052					; A NODE IS PLACE INTO TOPTAB WHEN NETCON SUCCESSFULLY GETS A NODE
  7053					; LIST FROM THE TOPOLOGY TASK IN THE NODE.
  7054
  7055	016333'	200 02 0 00 000001 	TSTTOP:	MOVE T2,T1		;COPY POINTER TO ASCIZ NODE NAME
  7056	016334'	201 01 0 00 002005'		MOVEI T1,TOPTAB		;TOPTAB IS ITSELF JUST A NODE LIST
  7057	016335'	260 17 0 00 016340'		CALL NODCHK		;IS THE SPECIFIED NODE IN TOPTAB ?
  7058	016336'	254 00 0 00 016332*		 RETSKP			;NODE IS IN TOPTAB
  7059	016337'	263 17 0 00 000000 		RET			;NODE IS NOT IN TOPTAB
  7060					;NODCHK - ROUTINE TO CHECK TO SEE IF A NODE IS IN A NODE LIST
  7061					;
  7062					;ACCEPTS IN T1/	ADDRESS OF NODE LIST
  7063					;	    T2/	POINTER TO ASCIZ NODE NAME TO CHECK
  7064					;		CALL NODCHK
  7065					;RETURNS: +1	 NODE IS IN THE NODE LIST
  7066					;	  +2	NODE IS NOT IN THE NODE LIST
  7067
  7068	016340'	104 00 0 00 000537 	NODCHK:	TBLUK			;SEE IF THE NODE IS IN THE NODE LIST
  7069	016341'	320 16 0 00 016336*		 ERJMP RSKP		;FAILED, ASSUME NOT IN LIST
  7070	016342'	607 03 0 00 040000 		TXNN T3,TL%EXM		;EXACT MATCH ?
  7071	016343'	254 00 0 00 016341*		RETSKP			;NO, NOT IN LIST
  7072	016344'	263 17 0 00 000000 		RET			;YES, NODE IS IN THE NODE LIST
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 161
NCP	MAC	 5-Oct-81 16:46		Network Topology Monitoring Routines

  7073
  7074					;TOPCHK - ROUTINE TO DETERMINE IF TOPOLOGY MONITORING SHOULD BE
  7075					;	  INITIATED TO A SPECIFIED NODE.
  7076					;
  7077					;ACCEPTS IN T1/	POINTER TO ASCIZ NODE NAME
  7078					;		CALL TOPCHK
  7079					;RETURNS: +1	 DO NOT INITIATE TOPOLOGY MONITORING
  7080					;	  +2	NODE IS ADJACENT DN20, INITIATE TOPOLOGY MONITORING
  7081
  7082	016345'	265 16 0 00 016276*	TOPCHK::ASUBR <CKTNOD>
  7083
  7084					; GET THE SPECIFIED NODE'S NIB
  7085
  7086	016346'	200 01 0 15 000001 		MOVE T1,CKTNOD		;GET POINTER TO ASCIZ NODE NAME
  7087	016347'	260 17 0 00 006100*		CALL GETNIB		;GET THE NODE INFORMATION BLOCK
  7088	016350'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN "DO NOT INITIATE"
  7089
  7090					; SEE IF MONITORING SHOULD BE STARTED BASED ON WHETHER OR NOT THE
  7091					; SPECIFIED NODE IS A DN20.
  7092
  7093	016351'	200 01 0 01 000011 		LOAD T1,NDSRV,(T1)	;GET POINTER TO ASCIZ SERVER NODE NAME
  7094	016352'	561 02 0 00 015317*		HRROI T2,OURNAM		;GET POINTER TO OUR NODE NAME
  7095	016353'	104 00 0 00 000540 		STCMP			;ARE WE THE SERVER FOR THIS NODE ?
  7096	016354'	320 16 0 00 016330*		 ERJMP R		;FAILED, RETURN "DO NOT INTITIATE"
  7097	016355'	322 01 0 00 016343*		JUMPE T1,RSKP		;WE ARE THE SERVER, INITIATE MONITORING
  7098	016356'	263 17 0 00 000000 		RET			;WE ARE NOT SERVER, MUST NOT BE A DN20
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 162
NCP	MAC	 5-Oct-81 16:46		Network Topology Monitoring Routines

  7099
  7100					;MONINI - ROUTINE TO INITIALIZE NETWORK TOPOLOGY MONITORING FROM A NODE
  7101					;
  7102					;ACCEPTS IN T1/	POINTER TO NODE NAME
  7103					;		CALL MONINI
  7104					;RETURNS: +1	 FAILED
  7105					;	  +2	SUCCESS
  7106
  7107	016357'	265 16 0 00 016345*	MONINI::ASUBR <MNINOD,MNIIDX,MNIPAG,MNIERR>
  7108	016360'	265 16 0 00 016255*		STKVAR <<MNIHLD,2>,MNIHST,MNILST,MNILNK>
  7109	016361'	000005	000005
  7110
  7111					; CONNECT A LOGICAL LINK TO THE TOPOLOGY CHANGE NOTIFIER TASK
  7112
  7113	016362'	200 01 0 15 000001 		MOVE T1,MNINOD		;GET POINTER TO NODE NAME
  7114	016363'	260 17 0 00 016445'		CALL TOPLNK		;GET LINK TO TASK
  7115	016364'	263 17 0 00 000000 		 RET			;FAILED
  7116	016365'	202 01 0 17 777772 		MOVEM T1,MNILNK		;SAVE DCN: LINK TO TOPOLOGY TASK IN DN20
  7117
  7118					; SEND THE REQUEST FOR TOPOLOGY CHANGE NOTIFICATIONS
  7119
  7120	016366'	200 01 0 17 777772 		MOVE T1,MNILNK		;GET DCN: LINK TO TOPOLOGY TASK
  7121	016367'	200 02 0 00 021475'		MOVE T2,[ POINT 8,[ BYTE(8) .TPREQ, .TPVER, 1, 0, 0 ]]
  7122	016370'	211 03 0 00 000005 		MOVNI T3,5		;FIVE BYTES
  7123	016371'	104 00 0 00 000532 		SOUTR			;SEND REQUEST
  7124						 ERJMP [MOVE T1,MNILNK	;FAILED, GET DCN: LINK TO TOPOLOGY TASK
  7125							TXO T1,CZ%ABT	;DO ABORT CLOSE
  7126							CLOSF		;RELEASE THE LINK
  7127							 NON.FATAL.ERROR
  7128	016372'	320 16 0 00 021500'			RETBAD (.NRNCE)] ;RETURN FAILURE
  7129
  7130					; RECEIVE THE RESPONSE FROM THE TOPOLOGY CHANGE TASK
  7131
  7132	016373'	200 01 0 17 777772 		MOVE T1,MNILNK		;GET DCN: LINK TO TOPOLOGY TASK
  7133	016374'	200 02 0 15 000001 		MOVE T2,MNINOD		;GET POINTER TO ASCIZ NODE NAME
  7134	016375'	260 17 0 00 016403'		CALL RCVTOP		;GET & PROCESS REPLY FROM TOPOLOGY TASK
  7135						 JRST [	MOVE T1,MNILNK	;FAILED, GET DCN: LINK TO TOPOLOGY TASK
  7136							TXO T1,CZ%ABT	;DO ABORT CLOSE
  7137							CLOSF		;RELEASE THE LINK
  7138							 NON.FATAL.ERROR
  7139	016376'	254 00 0 00 021500'			RETBAD (.NRNCE)] ;RETURN FAILURE
  7140
  7141					; RELEASE THE DCN: LINK TO THE TOPOLOGY TASK
  7142
  7143	016377'	200 01 0 17 777772 		MOVE T1,MNILNK		;GET DCN: LOGICAL LINK
  7144	016400'	104 00 0 00 000022 		CLOSF			;RELEASE THE LINK
  7145	016401'	260 17 0 00 014473'		 NON.FATAL.ERROR	;FAILED
  7146
  7147					; RETURN TO CALLER
  7148
  7149	016402'	254 00 0 00 016355*		RETSKP			;DONE, RETURN SUCCESS
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 163
NCP	MAC	 5-Oct-81 16:46		Network Topology Monitoring Routines

  7150
  7151					;RCVTOP - ROUTINE TO RECEIVE AND PROCESS REPLY FROM TOPOLOGY TASK
  7152					;
  7153					;ACCEPTS IN T1/	JFN OF DCN: LINK TO TOPOLOGY TASK
  7154					;	    T2/	POINTER TO ASCIZ NODE NAME
  7155					;		CALL RCVTOP
  7156					;RETURNS: +1	 FAILED
  7157					;	  +2	SUCCESS, MONITOR ADVISED OF TOPOLOGY INFO
  7158
  7159	016403'	265 16 0 00 016357*	RCVTOP:	ASUBR <RTPLNK,RTPHST,RTPPAG,RTPERR>
  7160
  7161					; ASSIGN A PAGE FOR RECEIPT OF REPLY MSG FROM TOPOLOGY TASK
  7162
  7163	016404'	260 17 0 00 014234'		CALL ASGPAG		;GET SPACE FOR THE RESPONSE
  7164	016405'	263 17 0 00 000000 		 RETBAD ()		;FAILED
  7165	016406'	202 02 0 15 000003 		MOVEM T2,RTPPAG		;SAVE PAGE NUMBER
  7166
  7167					; RECEIVE THE REPLY MESSAGE CONTAINING THE TOPOLOGY INFO
  7168
  7169	016407'	200 01 0 15 000001 		MOVE T1,RTPLNK		;GET DCN: LINK TO TOPOLOGY TASK
  7170	016410'	200 02 0 15 000003 		MOVE T2,RTPPAG		;GET ADDRESS OF MESSAGE PAGE
  7171	016411'	505 02 0 00 441000 		HRLI T2,(POINT 8,)	;FORM POINTER TO WHERE DATA IS TO GO
  7172	016412'	211 03 0 00 004000 		MOVNI T3,4000		;MAX ONE PAGE OF DATA
  7173	016413'	104 00 0 00 000531 		SINR			;GET TOPOLOGY TASK'S REPLY
  7174	016414'	320 16 0 00 016437'		 ERJMP RTPINX		;FAILED, GO RELEASE ASSIGNED PAGE
  7175
  7176					; PARSE INITIAL PART OF REPLY FROM TOPOLOGY TASK
  7177
  7178	016415'	201 02 0 03 004000 		MOVEI T2,4000(T3)	;COMPUTE NUMBER OF BYTES IN RESPONSE
  7179	016416'	200 01 0 15 000003 		MOVE T1,RTPPAG		;GET PAGE ADDRESS WHERE DATA IS
  7180	016417'	505 01 0 00 441000 		HRLI T1,(POINT 8,)	;FORM POINTER TO RESPONSE
  7181	016420'	260 17 0 00 016574'		CALL CHKTOP		;GO CHECK INITIAL PART OF TOPOLOGY MESSAGE
  7182	016421'	254 00 0 00 016437'		 JRST RTPINX		;FAILED, GO CLEAN UP
  7183
  7184					; ADVISE MONITOR OF TOPOLOGY AS PER REMAINDER OF MESSAGE
  7185
  7186	016422'	200 03 0 15 000002 		MOVE T3,RTPHST		;GET POINTER TO ASCIZ NODE NAME
  7187	016423'	260 17 0 00 013765*		CALL ADVTOP		;ADVISE MONITOR OF NEW NODES IN NETWORK
  7188	016424'	254 00 0 00 016437'		 JRST RTPINX		;FAILED
  7189	016425'	261 17 0 00 000001 		PUSH P,T1		;Save address of node topology table
  7190	016426'	260 17 0 00 016514'		CALL UPDNOD		;Update monitor's list for deleted nodes
  7191						 JRST [POP P,T1		; Get node table address
  7192						       EXCH T1,TOPTAB	; Save address of node list
  7193						       CALL TOPFRE	; Release old topology table
  7194	016427'	254 00 0 00 021505'		       JRST RTPINX]	; Failed to update monitor's list
  7195	016430'	262 17 0 00 000001 		POP P,T1		;Get node table address back
  7196	016431'	250 01 0 00 002005'		EXCH T1,TOPTAB		;Save address of node list
  7197	016432'	260 17 0 00 013773*		CALL TOPFRE		;Release the old topology table
  7198
  7199					; RELEASE PAGE USED FOR MESSAGE
  7200
  7201	016433'	200 01 0 15 000003 		MOVE T1,RTPPAG		;GET PAGE ADDRESS
  7202	016434'	260 17 0 00 014267'		CALL RELPGA		;RELEASE THE PAGE
  7203	016435'	260 17 0 00 014473'		 NON.FATAL.ERROR	;FAILED
  7204
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 163-1
NCP	MAC	 5-Oct-81 16:46		Network Topology Monitoring Routines

  7205					; RETURN SUCCESS
  7206
  7207	016436'	254 00 0 00 016402*		RETSKP			;DONE, RETURN
  7208
  7209					; HERE ON AN ERROR - RELEASE PAGE FOR MESSAGE AND RETURN FAILURE
  7210
  7211	016437'	202 01 0 15 000004 	RTPINX:	MOVEM T1,RTPERR		;SAVE ERROR CODE
  7212	016440'	200 01 0 15 000003 		MOVE T1,RTPPAG		;GET PAGE NUMBER
  7213	016441'	260 17 0 00 014267'		CALL RELPGA		;RELEASE THE PAGE
  7214	016442'	260 17 0 00 014473'		 NON.FATAL.ERROR	;FAILED
  7215	016443'	200 01 0 15 000004 		MOVE T1,RTPERR		;RESTORE ERROR CODE
  7216	016444'	263 17 0 00 000000 		RET			;FAIL
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 164
NCP	MAC	 5-Oct-81 16:46		Network Topology Monitoring Routines

  7217					;TOPLNK - ROUTINE TO GET A LOGICAL LINK TO THE TOPOLOGY CHANGE NOTIFIER TASK
  7218					;
  7219					;ACCEPTS IN T1/	POINTER TO NODE NAME
  7220					;		CALL TOPLNK
  7221					;RETURNS: +1	 FAILED
  7222					;	  +2	SUCCESS, WITH T1/ JFN FOR DCN: LOGICAL LINK
  7223
  7224	016445'	265 16 0 00 014444'	TOPLNK:	SAVEPQ
  7225	016446'	265 16 0 00 016360*		STKVAR <TPLNOD,<TPLSTR,20>,TPLLNK>
  7226	016447'	000022	000022
  7227
  7228					; GET A LOGICAL LINK TO THE TOPOLOGY TASK ON THE INDICATED NODE
  7229
  7230	016450'	202 01 0 17 777776 		MOVEM T1,TPLNOD		;SAVE POINTER TO NODE NAME
  7231	016451'	561 01 0 17 777756 		HRROI T1,TPLSTR		;GET POINTER TO WHERE STRING BEING ASSEMBLED
  7232	016452'	561 02 0 00 017212'		HRROI T2,[ASCIZ/DCN:/]	;GET POINTER TO FIRST PART OF STRING
  7233	016453'	402 00 0 00 000003 		SETZM T3		;TERMINATE ON NULL
  7234	016454'	104 00 0 00 000053 		SOUT			;ASSEMBLE INITIAL PART OF TEXT
  7235	016455'	320 16 0 00 016354*		 ERJMP R		;FAILED, RETURN ERROR
  7236	016456'	200 02 0 17 777776 		MOVE T2,TPLNOD		;GET POINTER TO NODE NAME
  7237	016457'	104 00 0 00 000053 		SOUT			;ADD NODE NAME TO STRING
  7238	016460'	320 16 0 00 016455*		 ERJMP R		;FAILED, RETURN ERROR
  7239	016461'	561 02 0 00 021511'		HRROI T2,[ASCIZ/-TASK-TOPOL.TOPOL/] ;GET REMAINDER OF TASK NAME
  7240	016462'	104 00 0 00 000053 		SOUT			;ADD TASK NAME TO STRING
  7241	016463'	320 16 0 00 016460*		 ERJMP R		;FAILED, RETURN ERROR
  7242	016464'	205 01 0 00 000001 		MOVX T1,GJ%SHT		;SHORT CALL
  7243	016465'	561 02 0 17 777756 		HRROI T2,TPLSTR		;GET POINTER TO STRING
  7244	016466'	104 00 0 00 000020 		GTJFN			;GET A LOGICAL LINK TO TOPOLOGY TASK
  7245	016467'	320 16 0 00 016463*		 ERJMP R		;FAILED, RETURN ERROR
  7246	016470'	202 01 0 17 777755 		MOVEM T1,TPLLNK		;SAVE LOGICAL LINK
  7247	016471'	200 02 0 00 017223'		MOVE T2,[100000,,300000] ;8 BIT BYTES, READ AND WRITE ACCESS
  7248	016472'	104 00 0 00 000021 		OPENF			;OPEN THE FILE
  7249						 ERJMP [MOVE T1,TPLLNK	;FAILED, GET JFN AGAIN
  7250							RLJFN		;RELEASE JFN
  7251							 JFCL		;IGNORE ERROR HERE
  7252	016473'	320 16 0 00 021515'			RET ]		;RETURN FAILURE
  7253	016474'	205 10 0 00 777764 		MOVSI P1,-^D12		;CHECK FOR ONE MINUTE
  7254	016475'	200 01 0 17 777755 	TPL010:	MOVE T1,TPLLNK		;GET LOGICAL LINK
  7255	016476'	201 02 0 00 000025 		MOVX T2,.MORLS		;READ LINK STATUS
  7256	016477'	104 00 0 00 000077 		MTOPR			; TO SEE IF CONNECTED YET
  7257	016500'	603 03 0 00 400000 		TXNE T3,MO%CON		;CONNECTED ?
  7258	016501'	254 00 0 00 016512'		JRST TPL050		;YES, GO RETURN TABLE INDEX
  7259	016502'	201 01 0 00 011610 		MOVX T1,^D5*^D1000	;WAIT TIME IS FIVE SECONDS
  7260	016503'	104 00 0 00 000167 		DISMS			; AND THEN CHECK AGAIN
  7261	016504'	253 10 0 00 016475'		AOBJN P1,TPL010		;GO CHECK TO SEE IF LINK IS CONNECTED YET
  7262
  7263	016505'	200 01 0 17 777755 		MOVE T1,TPLLNK		;No .. we have failed
  7264	016506'	661 01 0 00 004000 		TXO T1,CZ%ABT		;Set abort flag
  7265	016507'	104 00 0 00 000022 		CLOSF			;Close the link
  7266	016510'	260 17 0 00 014473'		 NON.FATAL.ERROR	; Tell anyone interested about CLOSE failure
  7267	016511'	254 00 0 00 021476'		RETBAD (.NRNCE)		;FAILED
  7268
  7269	016512'	200 01 0 17 777755 	TPL050:	MOVE T1,TPLLNK		;GET DCN: LINK TO TOPOLOGY TASK
  7270	016513'	254 00 0 00 016436*		RETSKP			;DONE, RETURN SUCCESS
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 165
NCP	MAC	 5-Oct-81 16:46		Network Topology Monitoring Routines

  7271					; UPDNOD - ROUTINE TO REMOVE NODES NO LONGER PRESENT FROM MONITOR DATABASE
  7272					;
  7273					;ACCEPTS IN T1/	ADDRESS OF NEW NODE LIST
  7274					;		CALL UPDNOD
  7275					;RETURNS: +1	 FAILED
  7276					;	  +2	SUCCESS, NEW NODE LIST SAVED AS CURRENT LIST
  7277
  7278	016514'	265 16 0 00 016403*	UPDNOD:	ASUBR <UPNLST,UPNPAG>
  7279	016515'	265 16 0 00 014444'		SAVEPQ
  7280
  7281					; OBTAIN OLD NODE LIST FROM MONITOR
  7282
  7283	016516'	260 17 0 00 014234'		CALL ASGPAG		;ASSIGN A PAGE FOR THE OLD LIST
  7284	016517'	263 17 0 00 000000 		 RETBAD ()		;FAILED
  7285	016520'	202 02 0 15 000002 		MOVEM T2,UPNPAG		;SAVE PAGE ADDRESS
  7286	016521'	202 02 0 00 000001 		MOVEM T2,T1		;COPY DESTINATION ADR FOR NODE LIST
  7287	016522'	260 17 0 00 016061'		CALL TOPLGY		;OBTAIN MONITOR'S CURRENT LIST
  7288						 JRST [	EXCH T1,UPNPAG	;SAVE ERROR CODE, GET PAGE ADDESS
  7289							CALL RELPGA	;RELEASE THE PAGE
  7290							 NON.FATAL.ERROR
  7291							MOVE T1,UPNPAG	;RESTORE ERROR CODE
  7292	016523'	254 00 0 00 021521'			RETBAD () ]	;FAILED
  7293
  7294					; FORM AOBJN POINTER TO ITEMS IN THE OLD NODE LIST
  7295
  7296	016524'	200 04 0 15 000002 		MOVE T4,UPNPAG		;GET ADR OF OLD NODE INFO
  7297	016525'	554 07 0 04 000000 		HLRZ Q3,.NDNND(T4)	;GET NUMBER OF NODES IN LIST
  7298	016526'	322 07 0 00 016545'		JUMPE Q3,UPND30		;IF NONE, GO RELEASE PAGE AND DONE
  7299	016527'	213 00 0 00 000007 		MOVNS Q3		;GET -SIZE OF LIST
  7300	016530'	514 07 0 00 000007 		HRLZ Q3,Q3		;GET -SIZE,,0
  7301	016531'	541 07 0 04 000002 		HRRI Q3,.NDBK1(T4)	;FORM AOBJN POINTER TO ITEMS IN OLD LIST
  7302
  7303					; LOOP OVER EACH ITEM IN OLD LIST - REMOVE FROM MONITOR DATABASE IF NOT HERE NOW
  7304
  7305	016532'	200 01 0 15 000001 	UPND10:	MOVE T1,UPNLST		;GET ADDRESS OF NEW NODE LIST
  7306	016533'	550 02 0 07 000000 		HRRZ T2,(Q3)		;GET ADDRESS OF A NODE BLOCK
  7307	016534'	200 02 0 02 000000 		MOVE T2,.NDNAM(T2)	;GET POINTER TO NODE NAME
  7308	016535'	104 00 0 00 000537 		TBLUK			;IS THIS NODE STILL PRESENT ?
  7309	016536'	320 16 0 00 016544'		 ERJMP UPND20		;FAILED, GO ON TO NEXT ITEM IN LIST
  7310	016537'	603 02 0 00 040000 		TXNE T2,TL%EXM		;EXACT MATCH ?
  7311	016540'	254 00 0 00 016544'		JRST UPND20		;YES, NODE STILL THERE, DO NOT REMOVE IT
  7312
  7313					; NODE NO LONGER ACCESSIBLE - REMOVE IT FROM MONITOR'S DATABASE
  7314
  7315	016541'	550 01 0 07 000000 		HRRZ T1,(Q3)		;GET ADDRESS OF NODE BLOCK
  7316	016542'	200 01 0 01 000000 		MOVE T1,.NDNAM(T1)	;GET POINTER TO NODE NAME
  7317	016543'	260 17 0 00 016255'		CALL MONDEL		;REMOVE NODE FROM MONITOR'S LIST
  7318
  7319	016544'	253 07 0 00 016532'	UPND20:	AOBJN Q3,UPND10		;LOOP OVER ALL NODES IN OLD LIST
  7320						;..
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 166
NCP	MAC	 5-Oct-81 16:46		Network Topology Monitoring Routines

  7321						;..
  7322
  7323					; HERE TO RELEASE PAGE WITH OLD NODE LIST
  7324
  7325	016545'	200 01 0 15 000002 	UPND30:	MOVE T1,UPNPAG		;GET PAGE ADDRESS
  7326	016546'	260 17 0 00 014267'		CALL RELPGA		;RELEASE THE PAGE
  7327	016547'	260 17 0 00 014473'		 NON.FATAL.ERROR	;FAILED
  7328	016550'	254 00 0 00 016513*		RETSKP			;DONE, RETURN SUCCESS
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 167
NCP	MAC	 5-Oct-81 16:46		Network Topology Monitoring Routines

  7329					; FRELST - ROUTINE TO FREE A NODE LIST
  7330					;
  7331					;ACCEPTS IN T1/ ADDRESS OF NODE LIST
  7332					;		CALL FRELST
  7333					;RETURNS: +1	 FAILED
  7334					;	  +2	SUCCESS
  7335
  7336	016551'	265 16 0 00 016514*	FRELST::ASUBR <FRLLST>
  7337	016552'	265 16 0 00 014444'		SAVEPQ
  7338
  7339					; FORM AOBJN POINTER TO NODE LIST ENTRIES
  7340
  7341	016553'	336 01 0 15 000001 		SKIPN T1,FRLLST		;GET ADDRESS OF NODE LIST
  7342	016554'	254 00 0 00 016550*		RETSKP			;DONE IF NO NODE LIST
  7343	016555'	554 10 0 01 000000 		HLRZ P1,(T1)		;GET # OF NODES IN LIST
  7344	016556'	322 10 0 00 016567'		JUMPE P1,FRL020		;IF NO ENTRIES, JUST GO RELEASE LIST
  7345	016557'	210 10 0 00 000010 		MOVN P1,P1		;GET -NUMBER OF NODES
  7346	016560'	507 00 0 00 000010 		HRLS P1			;GET -NUMBER OF NODES,,0
  7347	016561'	541 10 0 01 000001 		HRRI P1,1(T1)		;FORM AOBJN POINTER TO NODE LIST
  7348
  7349					; LOOP OVER EACH NODE IN LIST, RETURNING FREE BLOCK
  7350
  7351	016562'	554 01 0 10 000000 	FRL010:	HLRZ T1,(P1)		;GET ADDRESS OF A NODE NAME
  7352	016563'	275 01 0 00 000001 		SUBI T1,1		;POINT TO START OF BLOCK
  7353	016564'	260 17 0 00 014115'		CALL RELFRE		;RELEASE THE BLOCK
  7354	016565'	254 00 0 00 016623'		 FATAL.ERROR		;FAILED, ISSUE MESSAGE AND CONTINUE
  7355	016566'	253 10 0 00 016562'		AOBJN P1,FRL010		;LOOP OVER EACH ITEM IN NODE LIST
  7356
  7357					; RELEASE THE NODE LIST ITSELF
  7358
  7359	016567'	200 01 0 15 000001 	FRL020:	MOVE T1,FRLLST		;GET ADDRESS OF NODE LIST
  7360	016570'	275 01 0 00 000001 		SUBI T1,1		;POINT TO START OF BLOCK
  7361	016571'	260 17 0 00 014115'		CALL RELFRE		;RELEASE THE LIST
  7362	016572'	254 00 0 00 016623'		 FATAL.ERROR		;FAILED, ISSUE MESSAGE AND CONTINUE
  7363	016573'	254 00 0 00 016554*		RETSKP			;DONE, RETURN SUCCESS
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 168
NCP	MAC	 5-Oct-81 16:46		Network Topology Monitoring Routines

  7364					;CHKTOP - ROUTINE TO CHECK INITIAL PART OF FIRST MESSAGE FROM TOPOLOGY TASK
  7365					;
  7366					;ACCEPTS IN T1/	POINTER TO FIRST FIELD IN TOPOLOGY MESSAGE
  7367					;	    T2/ NUMBER OF BYTES IN TOPOLOGY MESSAGE
  7368					;		CALL CHKTOP
  7369					;RETURNS: +1	 FAILED
  7370					;	  +2	SUCCESS, WITH T1/ UPDATED POINTER TO NEXT FIELD IN MESSAGE
  7371					;			      T2/ UPDATED COUNT OF BYTES REMAINING IN MESSAGE
  7372
  7373	016574'	275 02 0 00 000005 	CHKTOP:	SUBI T2,5		;AT LEAST MESSAGE TYPE AND VERSION PRESENT ?
  7374	016575'	321 02 0 00 016467*		JUMPL T2,R		;NO, RETURN ERROR
  7375	016576'	134 03 0 00 000001 		ILDB T3,T1		;YES, GET MESSAGE TYPE
  7376	016577'	302 03 0 00 000002 		CAIE T3,.TPACC		;REQUEST ACCEPTED ?
  7377	016600'	263 17 0 00 000000 		RET			;NO, FAIL
  7378	016601'	134 03 0 00 000001 		ILDB T3,T1		;GET FIELD TYPE
  7379	016602'	302 03 0 00 000006 		CAIE T3,.TPVER		;VERSION FIELD ?
  7380	016603'	263 17 0 00 000000 		RET			;NO, FAIL
  7381	016604'	134 03 0 00 000001 		ILDB T3,T1		;VERSION INFO
  7382	016605'	134 04 0 00 000001 		ILDB T4,T1		; OK ?
  7383	016606'	306 03 0 00 000001 		CAIN T3,1		;SHOULD BE VERSION
  7384	016607'	302 04 0 00 000000 		CAIE T4,0		; 1.0.0
  7385	016610'	263 17 0 00 000000 		RET			;NOT CORRECT VERSION
  7386	016611'	134 03 0 00 000001 		ILDB T3,T1		;GET LAST VERSION BYTE
  7387	016612'	302 03 0 00 000000 		CAIE T3,0		;LAST BYTE OK ?
  7388	016613'	263 17 0 00 000000 		RET			;NO, FAIL
  7389	016614'	254 00 0 00 016573*		RETSKP			;DONE, RETURN SUCCESS
  7390
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page 169
NCP	MAC	 5-Oct-81 16:46		Network Topology Monitoring Routines

  7391					; ENTRY VECTOR DEFINITION
  7392
  7393	016615'	254 00 0 00 005740'	ENTVEC:	JRST NETCON		;MAIN ENTRY POINT
  7394	016616'	254 00 0 00 005740'		JRST NETCON		;REENTER ENTRY POINT
  7395	016617'	000400	004001			EXP VNETCON		;VERSION OF NETCON PROGRAM
  7396
  7397
  7398		000003	016615'			END <3,,ENTVEC>

NO ERRORS DETECTED

PROGRAM BREAK IS 021526
CPU TIME USED 01:10.587

149P CORE USED
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page S-1
NCP	MAC	 5-Oct-81 16:46		SYMBOL TABLE

ADDNO1		015635'		CALLRE	254000	000000	spd	DMPLN8		007634'		ERRCD0		500000	spd	
ADDNOD		015607'		CFORK	104000	000152	int	DMPLN9		007637'		ERROR		014472'	int	
ADJTAB		003770'		CHKLOP		016121'		DMPLOD		015765'		ERRORB		014532'		
ADVTOP		016423'	ext	CHKNI1		013174'		DMPLOP		015775'		ERRSTR		014506'	ext	
AIC	104000	000131	int	CHKNI2		013206'		DMPREM		007740'		ERRTAB		015502'		
AR.LEN	777777	000000	spd	CHKNIB		016112'		DMPREQ		007514'		ERRTBL		000036	spd	
AR.TYP		777777	spd	CHKNIC		013156'		DMPRFR		007766'		ERSTR	104000	000011	int	
ARG.DA		000001	spd	CHKNIL		013160'		DMPRMD		007772'		EVTLOG		006116'		
ARG.HD		000000	spd	CHKTOP		016574'		DMPRML		007753'		EVTRQ1		006121'		
ARGX04		601715	int	CHTTAB		015543'		DMPRTB		007523'		EVTRQ2		006225'		
ARGX05		601716	int	CIS	104000	000141	int	DMPRTL		000003	spd	EXCUTR		015311'	ext	
ASCLIN		012250'	ext	CLOSF	104000	000022	int	DMPVIA		007526'		FATAL		015446'		
ASGPAG		014234'	int	CLRLIN		010705'		DMRMTB		007765'		FCL010		015646'		
ASGPGF		014250'		COM.PB		000007	spd	DMRMTL		000001	spd	FCL015		015653'		
ASGPGL		014241'		CPYAS1		013357'		DO%FIL		000004	spd	FCL020		015657'		
ATO0		013635'		CPYAS2		013370'		DODSP		006025'		FCNTAB		002043'		
ATOCHB		000035	spd	CPYASC		013352'	int	DODSPL		000004	spd	FFP		000500	spd	
ATOCHM		000001	spd	CR%CAP	200000	000000	sin	DOFKT		011233'		FINDML		013154'		
ATOCHN		000035	spd	CR%MAP	400000	000000	sin	DOFKT0		011262'		FINFKT		013153'		
ATOINI		015034'		CR%ST	020000	000000	sin	DOFKT1		011300'		FINJFD		013155'		
ATOLOD		016030'		CRUMP		015423'		DOFKTL		011237'		FINMES		013124'		
BEGFRE		015060'	ext	CVTDEV		000000	ext	DOJFD		011304'		FINMS1		013146'		
BGLOOP		005746'		CX		000016		DOJFD1		011327'		FINMS2		013147'		
BGLOP1		005772'		CZ%ABT	004000	000000	sin	DOJFD2		012034'		FINMSD		013152'		
BGWAIT		005753'		DATERR		015407'		DOJFD3		012072'		FINREQ		013100'		
BGWTPC		005754'		DEBRK	104000	000136	int	DOJFD5		012123'		FIXCHN	400507	300000	spd	
BIN	104000	000050	int	DEQ	104000	000514	int	DOJFD6		011363'		FKTLVL		000002	spd	
BKJFN	104000	000042	int	DEQNIC		013302'		DOJFD7		011372'		FLOUT	104000	000233	int	
BLDAC0		010747'		DEVST	104000	000121	int	DOLOOP		010540'		FNDDS1		006075'		
BLDAC1		011006'		DIR	104000	000130	int	DOLPB		006372'		FNDDSP		006067'	int	
BLDAC2		010753'		DIRST	104000	000041	int	DOMES		006031'		FNDLST		016325'		
BLDACL		010757'		DISFIN		006260'		DOREQ		006017'		FOCLIN		015641'		
BLDACT		010745'		DISKNO		006242'		DOREQE		006055'		FOCNIB		006077'		
BLDCMA		012613'		DISKTB		006255'		DUPTST		015114'		FOCPG1		015671'		
BLDCMD		012542'		DISKTL		000001	spd	EDLOCK		014364'		FOCPG2		015704'		
BLDCML		012501'		DISLIN		006236'		EIR	104000	000126	int	FOCPG3		015707'		
BLDCOM		012474'		DISLNS		006256'		ELOCK		014336'	int	FOCPGM		015666'		
BLDDEV		012627'		DISLOG		006222'		ENAFIN		006150'		FPRCD		477000	spd	
BLDDIR		012605'		DISLTB		006234'		ENAKNO		006136'		FPTBL		002062'		
BLDFIL		012576'		DISLTL		000002	spd	ENAKTB		006145'		FREIN1		015077'		
BLDFLT		012620'		DISMS	104000	000167	int	ENAKTL		000001	spd	FREIN2		015104'		
BLDKEY		012550'		DISNOD		006302'		ENALIN		006132'		FREINI		015057'		
BLDNOD		012576'		DISREQ		006210'		ENALNS		006146'		FRELEV		000300	spd	
BLDNUM		012556'		DISRTB		006221'		ENALTB		006130'		FRELOK		002052'		
BLDQUE		011010'		DISRTL		000001	spd	ENALTL		000002	spd	FRELST		016551'	int	
BLDQUL		011017'		DLOCK		014351'	int	ENANOD		006172'		FREQDL		000004	spd	
BLDSWI		012566'		DMP200		010026'		ENAREQ		006104'		FREQDT		013120'		
BLDTAB		012513'		DMPCRL		007716'		ENARTB		006115'		FRKFLG		002017'		
BLDTAD		012636'		DMPEND		016051'		ENARTL		000001	spd	FRKTAB		002013'		
BLDTBL		000027	spd	DMPERR		016055'		ENQ	104000	000513	int	FRKTER		013715'		
BLDTXT		012576'		DMPLD2		007673'		ENQC	104000	000515	int	FRL010		016562'		
BOOT	104000	000562	int	DMPLD4		007706'		ENQX6		601062	int	FRL020		016567'		
BOUT	104000	000051	int	DMPLDT		007645'		ENTVEC		016615'		FRSHDR		002054'		
BT%KSA	400000	000000	sin	DMPLIN		007527'		ERJMP	320700	000000	int	FSADR		600000	spd	
CALL	260740	000000		DMPLN7		007631'		ERORB1		014570'		FSHDR		014217'		
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page S-2
NCP	MAC	 5-Oct-81 16:46		SYMBOL TABLE

FSLEN		100000	spd	IP%CFR	100000	000000	sin	LEV2PC		016634'	ext	LOPTST		011432'		
FSP		000600	spd	IP%CFS	200000	000000	sin	LEV3PC		016631'	ext	LORMTB		007320'		
GETAB	104000	000010	int	IP%CFV		200000	sin	LIDPRT		010726'	int	LORMTL		000003	spd	
GETER	104000	000012	int	IPCFX2		601017	int	LINCTR		012023'		LORPHO		007343'		
GETEXB		012100'	ext	JFD0		013544'		LINDRC		010500'	int	LORPNM		007354'		
GETFR0		014034'		JFD1		013554'		LINLNG		010507'		LORPNO		007371'		
GETFR1		014043'		JFD2		013564'		LINRTB		010475'		LORPNU		007365'		
GETFR2		014061'		JFD3		013574'		LINRTL		000003	spd	LSTFRE		015061'	ext	
GETFR4		014057'		JFDCHB		000004	spd	LINSET		007021'		LSTLEN		000005	spd	
GETFR5		014075'		JFDCHM		000017	spd	LINSIZ		000024	spd	LSTLOP		012224'		
GETFR6		014113'		JFDCHN		000001	spd	LINST5		012312'		LSTTAB		006756'		
GETFRE		014021'	ent	JFDINT		013700'		LINST7		012316'		LTLOG	200000	000000	spd	
GETIMA		011757'	ext	JFDLVL		000003	spd	LINSTS		012167'		LTNIB		777777	spd	
GETJF1		015241'		JFDMES		012140'		LINWTH		010522'		LTUSE	400000	000000	spd	
GETJFN		015214'		JFDMSL		000027	spd	LO%OPS		000020	spd	LV1REQ		006056'		
GETJI	104000	000507	int	JFDMSO		000025	spd	LO%PAR		000040	spd	LV1RQL		000011	spd	
GETLIN		012242'	ext	JFDTAB		002027'		LO%ROM		000014	spd	LVTTAB		015540'		
GETNIB		016347'	ext	JFN0		013504'		LO%TGT		000003	spd	MACHSZ		015427'		
GETNOD		000000	ext	JFN1		013514'		LOAKD1		007116'		MAKDIS		006302'	ext	
GETNUM		011765'	ext	JFN2		013524'		LOAKD2		007133'		MAKDSL		006264'	ext	
GETRQ0		011134'		JFN3		013534'		LOAKD3		007141'		MAKENA		006172'	ext	
GETRQ1		011141'		JFNCHB		000032	spd	LOAKD4		007162'		MAKENL		006154'	ext	
GETRQI		011133'		JFNCHM		000017	spd	LOAKD5		007165'		MAKHST		007455'	ext	
GETSR1		011220'		JFNCHN		000027	spd	LOAKD6		007170'		MAKIMA		017072'	ext	
GETSRJ		011161'		JFNERR		015211'		LOAKM2		007253'		MAKIMB		017015'	ext	
GETTWO		012175'	ext	JFNINI		015201'		LOAKMN		007251'		MAKLIN		010560'	ext	
GJ%FOU	400000	000000	sin	JFNINT		013654'		LOAKMX		007213'		MAKNAM		007447'	ext	
GJ%OLD	100000	000000	sin	JFNLOP		015203'		LOALIN		007054'		MAKNOD		017007'	ext	
GJ%SHT	000001	000000	sin	JFNLVL		000002	spd	LOAREM		007266'		MAKNUM		007463'	ext	
GTJFN	104000	000020	int	JFNTAB		002007'		LOAREQ		007042'		MAKSLN		007024'	ext	
GTNXNB		016067'		KFORK	104000	000153	int	LOARFR		007323'		MAKTWO		010572'	ext	
GTNXT1		016074'		KNOLEN		000002	spd	LOARMD		007376'		MAXLIN		000062	spd	
HALTF	104000	000170	int	KNOTAB		010203'		LOARML		007306'		MAXNOD		000062	spd	
HCKCHN		000036	spd	KYTAB		012645'		LOARPL		000004	spd	MAXPGM		000010	spd	
HCKINT		013624'		L1SAV1		015475'	ext	LOARPR		007330'		MBPWSZ		000010	spd	
HCKLVL		000002	spd	L1SAV2		015476'	ext	LOARPT		007337'		MF.SUF		777777	spd	
HELLO		015342'		L1SAV3		015477'	ext	LOARTB		007051'		MO%CDN	777000	000000	sin	
HELLO1		015346'		L1SAV4		015444'	ext	LOARTL		000003	spd	MO%CON	400000	000000	sin	
HELLOW		015362'		L1SAVC		000000	ext	LOARVI		007327'		MO%DAV		777000	sin	
HMES		015375'		L2SAV1		020472'	ext	LOAVIA		007265'		MO%INA	000777	000000	sin	
HMESHD		015371'		L2SAV2		020473'	ext	LOD010		007451'		MONDEL		016255'		
HMESL		000010	spd	L2SAV3		020474'	ext	LOD020		007457'		MONINI		016357'	int	
HSMIN		000002	spd	L2SAV4		020475'	ext	LOD100		007472'		MRECV	104000	000511	int	
HSSLP		000005	spd	L2SAVC		020476'	ext	LOD200		007506'		MS.CNT	777777	000000	spd	
ILLINS		015420'		L3SAV1		020520'	ext	LOGFRK		002004'		MS.TYP		777777	spd	
ILLMRD		015412'		L3SAV2		020521'	ext	LOGGER		014730'	ext	MSEND	104000	000510	int	
ILLMWR		015415'		L3SAV3		020522'	ext	LOGINI		014725'		MT.TXT		700000	spd	
INILOG		010633'		L3SAV4		020523'	ext	LOGTIM		006416'	ext	MTOPR	104000	000077	int	
INIREQ		010623'		L3SAVC		020524'	ext	LOKNOD		014314'	int	MUTIL	104000	000512	int	
INIRQ5		010673'		LATSIZ		000004	spd	LOKVAL		000200	spd	MXLNOD		000005	spd	
INIRQX		010677'		LCLSTS		011463'		LOPLIN		010450'		NAM010		015333'		
INIRTB		010632'		LDKMC1		007177'		LOPLST		010463'		NAMINI		015302'		
INIRTL		000001	spd	LDKMCX		007215'		LOPREQ		010440'		NCU		013675'	ext	
IP%CFB	400000	000000	sin	LDKMD1		007206'		LOPRTB		010447'		NCUFFP		000400	spd	
IP%CFP		400000	sin	LEV1PC		015457'	ext	LOPRTL		000001	spd	NCUNFP		000040	spd	
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page S-3
NCP	MAC	 5-Oct-81 16:46		SYMBOL TABLE

NDDIP	002000	000000	spd	OF%RD		200000	sin	PRSFIL		012357'		REQCOD		002001'		
NDDMP	777777	777777	spd	OF%WR		100000	sin	PRSIFI		012363'		REQLST		012221'		
NDDOK	000400	000000	spd	ONCHNS		015606'		PRSKDP		007722'		REQMES		002033'		
NDFLG	777777	000000	spd	OPENF	104000	000021	int	PRSKEY		012326'		REQNUM		002047'		
NDFRD	040000	000000	spd	OPRMES		014575'	int	PRSLID		012436'		REQSTS		011735'		
NDFRL	020000	000000	spd	OPRMS5		014645'		PRSNOD		012341'		REQTAB		002023'		
NDLIN	777777	777777	spd	OPRMS8		014660'		PRSNOI		012407'		REQXTR		002037'		
NDLIP	001000	000000	spd	OPRMS9		014675'		PRSNUM		012400'		RESET	104000	000147	int	
NDLOD	777777	777777	spd	OPRPID		002051'		PRSOFI		012362'		RESTPQ		014456'		
NDLOK	000200	000000	spd	OT%SCL	000001	000000	sin	PRSPRT		010724'		RESTQ		014436'		
NDNAM	777777	777777	spd	OURNAM		021461'	ext	PRSTOK		012415'		RESTT		014424'		
NDPHT	777777	777777	spd	OURNUM		015326'	ext	PRU020		016236'		RET	263740	000000		
NDPNA	777777	777777	spd	P		000017		PRUNE		016224'		RFSTS	104000	000156	int	
NDPNU	777777	777777	spd	P1		000010		PSIINI		015170'	int	RLFRX2		014214'		
NDPRO		777777	spd	P2		000011		PSOUT	104000	000076	int	RLJFN	104000	000023	int	
NDPST	010000	000000	spd	P3		000012		Q1		000005		RPACS	104000	000057	int	
NDSL1	777777	777777	spd	P4		000013		Q2		000006		RQCHK		013216'		
NDSL2	777777	777777	spd	P5		000014		Q3		000007		RQMAX		000017	spd	
NDSRV	777777	777777	spd	P6		000015		QF%NOA		000001	spd	RSKP		020470'	ext	
NETCON		005740'	int	PA%EX	020000	000000	sin	QF%TXT		000002	spd	RTPINX		016437'		
NETINI		014701'		PA%PEX	010000	000000	sin	QUEFLG		777777	spd	RWM	104000	000135	int	
NFP		000100	spd	PA%RD	100000	000000	sin	QUEHLN		000002	spd	SAVPQ		014444'	int	
NFSP		000100	spd	PACINI		015045'		QUEMES	777777	000000	spd	SAVQ		014432'	int	
NIBINI		015735'		PACTOP		015051'		QUENC1		013273'		SAVT		014420'	int	
NIBSIZ		000022	spd	PAGLEV		000400	spd	QUENC2		013277'		SETADM		006763'		
NIBTAB		002164'	int	PAGLOK		002053'		QUENCF		013232'		SETALD		007002'		
NICLCT		012127'		PBLEN	777777	000000	spd	QUENCR		013227'		SETATO		013644'		
NICQUE		002003'		PBTYP		777777	spd	QUENCU		013235'		SETCPL		000003	spd	
NJFN		000004	spd	PBVAL	777777	777777	spd	QUEPNT		777777	spd	SETCPT		006726'		
NLCTMX		000011	spd	PDINT1		013415'		QUEQU1		013475'		SETDDA		006777'		
NNAMSZ		000006	spd	PDINT2		013463'		QUEQU2		013501'		SETDDL		006772'		
NNCUPG		000010	spd	PDINT3		013452'		QUEQUE		013472'		SETDEN		006774'		
NO%LFL	100000	000000	sin	PDL		000000'		QUETIM		013337'		SETDLN		000002	spd	
NODCHK		016340'		PDLEN		002000	spd	QUETYP	777777	000000	spd	SETDVL		000015	spd	
NODE	104000	000567	int	PDLOV		015404'		QUEUE		002002'		SETDVT		006711'		
NODLEN		000010	spd	PGCPU		777777	spd	R		016575'	ext	SETEX		006343'		
NODLEV		000200	spd	PGFIL	777777	777777	spd	RCVTOP		016403'		SETFIL		006645'		
NODTAB		016104'	ext	PGLDV	777777	000000	spd	REDLEN		000006	spd	SETFTB		006705'		
NOUT	104000	000224	int	PGLEN		000003	spd	REDTAB		011424'		SETFTL		000004	spd	
NQ%REQ	400000	000000	spd	PGMTAB		020702'	ext	RELFR1		014141'		SETHST		006353'		
NQCHR		777777	spd	PGPGM	777777	000000	spd	RELFR2		014151'		SETLCL		006354'		
NQFCN	777777	000000	spd	PID		002050'		RELFR4		014211'		SETLDA		007016'		
NQLEN		000005	spd	PIDCHN		000000	spd	RELFR5		014177'		SETLDL		007011'		
NQMES	777777	000000	spd	PIDIN1		015265'		RELFR6		014161'		SETLEN		007013'		
NQNUM	777777	000000	spd	PIDINI		015252'		RELFR7		014166'		SETLGI		006406'		
NQOPT		777777	spd	PIDINT		013404'		RELFRE		014115'	ent	SETLIN		010704'		
NQPNT		777777	spd	PIDLVL		000002	spd	RELFRW		014130'		SETLLN		000002	spd	
NQREQ	400000	000000	spd	PIOFF.		014406'		RELPAG		014270'		SETLPL		000004	spd	
NQRQT	377777	000000	spd	PION.		014413'		RELPGA		014267'	int	SETLPT		006563'		
NQTXT		777777	spd	PM%CNT	400000	000000	sin	RELRQ1		011155'		SETLTB		015726'		
NQXTR		777777	spd	PMAP	104000	000056	int	RELRQ2		011156'		SETMON		011231'		
NXTLIN		015731'	ext	PRARG	104000	000545	int	RELRQI		011143'		SETNBP		006521'		
NXTNIB		015722'	ext	PRS500		012467'		REMOVE		016247'		SETNDF		006465'		
ODCNV	104000	000222	int	PRSCFM		012335'		REMSTS		011703'		SETNHS		006617'		
ODTIM	104000	000220	int	PRSCMA		012427'		REQADR		002000'		SETNIB		015717'		
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page S-4
NCP	MAC	 5-Oct-81 16:46		SYMBOL TABLE

SETNLF		006503'		STCMP	104000	000540	int	VARCHN	360000	017140	spd	$GETSR	000017	777755	spd	
SETNLP		006550'		STOER1		014522'		VNETCO	000400	004001	spd	$HELLO	000017	777776	spd	
SETNNM		006605'		STOERC		014513'		WAIT	104000	000306	int	$IRQER	000017	777776	spd	
SETNNU		006631'		STONIC		011050'		WAKBK1		006007'		$IRQFL	000017	777775	spd	
SETNO1		006575'		STSLOP		011740'		WAKBKG		005776'		$IRQNO	000017	777774	spd	
SETNO2		006603'		SWL010		016311'		WATINS		005774'		$JFDNU	000017	777776	spd	
SETNOD		006422'		SWPLST		016276'		WRNING		014473'	int	$LCJCT	000017	777775	spd	
SETNON		006567'		SWTAB		013016'		WT.NDA	001000	000000	spd	$LCJPT	000017	777776	spd	
SETNPT		006451'		SYRNCU		014714'	ext	WT.NFO	002000	000000	spd	$LCLPR	000017	777775	spd	
SETNSV		006522'		SYSGT	104000	000016	int	WT.SJI	004000	000000	spd	$LCLSC	000017	777776	spd	
SETNTB		006441'		SYSNAM		002064'	int	WTHRTB		010535'		$LCRCT	000017	777674	spd	
SETNTL		000010	spd	T1		000001		WTHRTL		000003	spd	$LCRMS	000017	777675	spd	
SETPSW		011232'		T2		000002		ZZ		000002	spd	$LCRTY	000017	777673	spd	
SETPTB		006463'		T3		000003		$ATOHL	000017	777776	spd	$LKNMS	000017	777775	spd	
SETPTL		000002	spd	T4		000004		$BTDBL	000015	000001	spd	$LNJCT	000017	777775	spd	
SETREQ		006320'		TBADD	104000	000536	int	$BTDFI	000015	000017	spd	$LNJCV	000017	777655	spd	
SETRTB		006327'		TBDEL	104000	000535	int	$BTDPA	000015	000015	spd	$LNJHS	000017	777652	spd	
SETRTL		000014	spd	TBLUK	104000	000537	int	$BTLBL	000017	777763	spd	$LNJLE	000017	777651	spd	
SETSDF		006635'		TIMER	104000	000522	int	$BTLFI	000017	777760	spd	$LNJNU	000017	777673	spd	
SETSLF		006637'		TL%EXM	040000	000000	sin	$BTLPA	000017	777761	spd	$LNJPT	000017	777776	spd	
SETSTA		006731'		TOP0		013604'		$CHKNI	000017	777773	spd	$LNJRV	000017	777660	spd	
SETTDF		006641'		TOP1		013614'		$CKTNO	000015	000001	spd	$LNJST	000017	777654	spd	
SETTLF		006643'		TOPCHB		000034	spd	$CNTMS	000017	777677	spd	$LNJSY	000017	777663	spd	
SFORK	104000	000157	int	TOPCHK		016345'	int	$CPYAD	000015	000001	spd	$LNRCT	000017	777674	spd	
SHNLNS		010345'		TOPCHM		000003	spd	$CPYFR	000015	000002	spd	$LNRMS	000017	777675	spd	
SHNNDS		010205'		TOPCHN		000033	spd	$CPYLE	000015	000003	spd	$LNSMS	000017	777727	spd	
SHOCNT		010067'		TOPFRE		021507'	ext	$DISKE	000017	777774	spd	$LOARB	000017	777751	spd	
SHOEXE		010047'		TOPI.1		014743'		$DISLI	000017	777775	spd	$LOARC	000017	777740	spd	
SHOLEN		000011	spd	TOPI.2		014746'		$DISMS	000017	777754	spd	$LOARF	000017	777747	spd	
SHONCP		010410'		TOPINI		014735'		$DMMY	000017	777776	spd	$LOARH	000017	777746	spd	
SHOQTB		010407'		TOPINL		014772'		$DMPHL	000017	777775	spd	$LOARM	000017	777750	spd	
SHOQTL		000001	spd	TOPINT		013733'		$DMPRF	000017	777776	spd	$LOARN	000017	777741	spd	
SHOQUE		010377'		TOPINX		014005'		$DMPRM	000017	777675	spd	$LOARS	000017	777737	spd	
SHOREQ		010034'		TOPLGY		016061'		$DMPTO	000017	777776	spd	$LOPBY	000017	777776	spd	
SHORTB		010043'		TOPLNK		016445'		$DOFKT	000017	777737	spd	$LOPCN	000017	777723	spd	
SHORTL		000004	spd	TOPLVL		000002	spd	$DOJFD	000017	777577	spd	$LOPHL	000017	777776	spd	
SHOSTA		010131'		TOPMAX		000002	spd	$DOJHL	000017	777573	spd	$LOPLI	000017	777724	spd	
SHOTAB		011413'		TOPOUT		015006'		$DORCT	000017	777575	spd	$LOPLN	000017	777722	spd	
SHSKNO		010174'		TOPSET		015012'		$DORMS	000017	777576	spd	$LOPMS	000017	777726	spd	
SHSLCL		010144'		TOPSRV		002006'		$DORTX	000017	777574	spd	$LOPWT	000017	777721	spd	
SHSLIN		010307'		TOPTAB		002005'		$EDLCK	000017	777770	spd	$LSJCN	000017	777776	spd	
SHSNDX		010302'		TOPTIM	000002	223700	spd	$ENAKE	000017	777774	spd	$LSJCT	000017	777675	spd	
SHSNOD		010237'		TPL010		016475'		$ENALI	000017	777775	spd	$LSJLI	000017	777673	spd	
SIBE	104000	000102	int	TPL050		016512'		$ENAMS	000017	777754	spd	$LSJMS	000017	777676	spd	
SIN	104000	000052	int	TRACE		000000	spd	$ENQJF	000017	777757	spd	$LSJPT	000017	777672	spd	
SINR	104000	000531	int	TRMLOG		010634'		$ERROR	000017	777775	spd	$LSRCT	000017	777775	spd	
SIR	104000	000125	int	TRMREQ		010613'		$EXEST	000017	777757	spd	$LSRPT	000017	777776	spd	
SNDCMD		016130'		TRMRTB		010622'		$FCLFR	000017	777773	spd	$LTLOG		000002	spd	
SNDNIC		011105'		TRMRTL		000001	spd	$FCLLI	000017	777774	spd	$LTNIB		000002	spd	
SOUT	104000	000053	int	TSTTOP		016333'		$FCLNI	000017	777776	spd	$LTUSE		000002	spd	
SOUTR	104000	000532	int	ULKNOD		014325'	int	$FINMS	000017	777577	spd	$MNDBL	000017	777757	spd	
SPACS	104000	000060	int	UPDNOD		016514'		$FINRQ	000015	000004	spd	$MNIER	000015	000004	spd	
STALEN		000004	spd	UPND10		016532'		$FOCNA	000015	000001	spd	$MNIHL	000017	777775	spd	
START		005740'		UPND20		016544'		$FRLLS	000015	000001	spd	$MNIHS	000017	777774	spd	
STATAB		010140'		UPND30		016545'		$GETJF	000017	777775	spd	$MNIID	000015	000002	spd	
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page S-5
NCP	MAC	 5-Oct-81 16:46		SYMBOL TABLE

$MNILN	000017	777772	spd	$QUEME		000000	spd	..CSN		000000	spd	.DNDMP		000021	spd	
$MNILS	000017	777773	spd	$QUENC	000015	000003	spd	..IFT		000000	spd	.DNDR2		000112	spd	
$MNINO	000015	000001	spd	$QUEPN		000000	spd	..JX1	020000	000000	spd	.DNDRC		000004	spd	
$MNIPA	000015	000003	spd	$QUETY		000001	spd	..MX1		011610	spd	.DNDSL		000150	spd	
$NBINI	000017	777776	spd	$RCVPD	000017	777770	spd	..MX2		000001	spd	.DNDTE		000016	spd	
$NDDIP		000000	spd	$RMVNO	000015	000001	spd	..NS		000001	spd	.DNDUP		000020	spd	
$NDDMP		000004	spd	$RSJCN	000017	777775	spd	..NV		000002	spd	.DNDV1		000024	spd	
$NDDOK		000000	spd	$RSJPT	000017	777776	spd	..PST		000000	spd	.DNEAB		000122	spd	
$NDFLG		000000	spd	$RSRCN	000017	777776	spd	..STKN		000022	spd	.DNELG		000147	spd	
$NDFRD		000000	spd	$RSRCT	000017	777774	spd	..STKQ		000023	spd	.DNENA		000025	spd	
$NDFRL		000000	spd	$RSRMS	000017	777674	spd	..STKR		000010	spd	.DNINI		000034	spd	
$NDLIN		000006	spd	$RSRPT	000017	777775	spd	..TRR		000010	spd	.DNKDP		000036	spd	
$NDLIP		000000	spd	$RTPER	000015	000004	spd	..TSA1	000001	000000	spd	.DNKDZ		000037	spd	
$NDLOD		000003	spd	$RTPHS	000015	000002	spd	..TX1	040000	000000	spd	.DNKNO		000131	spd	
$NDLOK		000000	spd	$RTPLN	000015	000001	spd	..TX2		000001	spd	.DNL1A		000010	spd	
$NDNAM		000007	spd	$RTPPA	000015	000003	spd	.A16		000016	spd	.DNL1E		000011	spd	
$NDPHT		000016	spd	$SDFFI	000017	777776	spd	.AC1		000001	spd	.DNLCT		000117	spd	
$NDPNA		000014	spd	$SFLFI	000017	777776	spd	.AHNAM		010200	spd	.DNLFR		000032	spd	
$NDPNU		000015	spd	$SHDMS	000017	777727	spd	.ASSET		016551'	ext	.DNLGI		000045	spd	
$NDPRO		000010	spd	$SHLLI	000017	777675	spd	.BTCLI		000014	sin	.DNLNG		000135	spd	
$NDPST		000000	spd	$SHNMS	000017	777727	spd	.BTKCC		000002	sin	.DNLOA		000042	spd	
$NDSL1		000012	spd	$SHNNO	000017	777726	spd	.BTKCP		000003	sin	.DNLOG		000143	spd	
$NDSL2		000013	spd	$SHOMS	000017	777677	spd	.BTKDC		000004	sin	.DNLOP		000136	spd	
$NDSRV		000011	spd	$SLFFI	000017	777776	spd	.BTKDP		000005	sin	.DNLP1		000057	spd	
$NHSNO	000017	777776	spd	$SLSMS	000017	777727	spd	.BTKER		000001	sin	.DNLPB		000123	spd	
$NNMNO	000017	777776	spd	$SNDBL	000017	777770	spd	.BTKMC		000000	sin	.DNLPH		000033	spd	
$NQCHR		000001	spd	$SNDFN	000017	777774	spd	.BTKMD		000012	sin	.DNLPN		000050	spd	
$NQFCN		000003	spd	$SNDHL	000017	777775	spd	.BTKML		000011	sin	.DNMNT		000146	spd	
$NQMES		000000	spd	$SNDNA	000017	777776	spd	.BTKRC		000006	sin	.DNMXD		000137	spd	
$NQNUM		000001	spd	$SNDNI	000015	000004	spd	.BTKRP		000007	sin	.DNNCR		000052	spd	
$NQOPT		000003	spd	$SNLMS	000017	777677	spd	.BTKSA		000010	sin	.DNNDS		000132	spd	
$NQPNT		000000	spd	$SNSNO	000017	777776	spd	.CHTAB		000011	sin	.DNNOD		000055	spd	
$NQREQ		000004	spd	$SQNPA	000017	777776	spd	.CMCFM		000010	sin	.DNNON		000056	spd	
$NQRQT		000002	spd	$STLFL	000017	777774	spd	.CMCMA		000013	sin	.DNNSP		000053	spd	
$NQTXT		000002	spd	$STLLI	000017	777775	spd	.CMFLD		000007	sin	.DNONS		000140	spd	
$NQXTR		000004	spd	$STLNI	000017	777773	spd	.CMIFI		000004	sin	.DNP11		000065	spd	
$OPRMS	000017	777770	spd	$STNNI	000017	777775	spd	.CMKEY		000000	sin	.DNP8		000066	spd	
$PBLEN	000011	000000	spd	$STNNO	000017	777776	spd	.CMNOD		000026	sin	.DNPRM		000063	spd	
$PBTYP	000011	000000	spd	$STONI	000015	000004	spd	.CMNOI		000002	sin	.DNQ11		000015	spd	
$PBVAL	000011	000001	spd	$SWLEN	000015	000004	spd	.CMNUM		000001	sin	.DNQUE		000070	spd	
$PGCPU		000000	spd	$SWLNE	000015	000002	spd	.CMOFI		000005	sin	.DNRQP		000072	spd	
$PGFIL		000002	spd	$SWLNO	000015	000003	spd	.CMTOK		000023	sin	.DNSCT		000005	spd	
$PGLDV		000000	spd	$SWLOL	000015	000001	spd	.CP11		000001	spd	.DNSET		000077	spd	
$PGPGM		000001	spd	$TOPVR	000017	777776	spd	.CP20		000002	spd	.DNSEX		000026	spd	
$PLICT	000017	777775	spd	$TPIER	000017	777773	spd	.CP8		000000	spd	.DNSHW		000100	spd	
$PLIDE	000017	777776	spd	$TPIHS	000017	777775	spd	.DNA11		000006	spd	.DNSKL		000041	spd	
$PLIST	000017	777773	spd	$TPIPA	000017	777774	spd	.DNADM		000144	spd	.DNSLI		000040	spd	
$PLIUN	000017	777774	spd	$TPLLN	000017	777755	spd	.DNALD		000145	spd	.DNSLO		000044	spd	
$PRTLI	000017	777773	spd	$TPLNO	000017	777776	spd	.DNCBL		000130	spd	.DNSMO		000047	spd	
$PRTSA	000017	777775	spd	$TPLST	000017	777756	spd	.DNCNL		000127	spd	.DNSNB		000001	spd	
$PRUNE	000015	000002	spd	$ULNMS	000017	777775	spd	.DND11		000014	spd	.DNSNF		000022	spd	
$PRUNO	000015	000001	spd	$UPNLS	000015	000001	spd	.DND20		000007	spd	.DNSNL		000043	spd	
$PRUOL	000015	000003	spd	$UPNPA	000015	000002	spd	.DNDAB		000121	spd	.DNSNS		000076	spd	
$QUEFC	000015	000004	spd	..ACT		000000	spd	.DNDLV		000012	spd	.DNSNT		000067	spd	
$QUEFL		000001	spd	..CSC		000001	spd	.DNDMC		000013	spd	.DNSPW		000064	spd	
NCP - TOPS20 NETWORK CONTROL PROGRAM (NCP)	MACRO %53B(1215) 15:12  7-May-82 Page S-6
NCP	MAC	 5-Oct-81 16:46		SYMBOL TABLE

.DNSSD		000074	spd	.ERR24		500027	sin	.NCSLN		000010	spd	.RFWAT		000004	sin	
.DNSSF		000060	spd	.ERR25		500030	sin	.NCTST		000006	spd	.SAC		000016		
.DNSSL		000075	spd	.ERR26		500031	sin	.NDBK1		000002	spd	.SPOPR		000004	sin	
.DNSSO		000061	spd	.ERR27		500032	sin	.NDCLP		000005	sin	.STKST		016446'	ext	
.DNSST		000103	spd	.ERR28		500033	sin	.NDCNT		000001	sin	.TIMEL		000001	sin	
.DNSTD		000110	spd	.ERR29		500034	sin	.NDGLI		000014	sin	.TPACC		000002	spd	
.DNSTL		000111	spd	.ERR3		500002	sin	.NDGLN		000001	sin	.TPCHG		000003	spd	
.DNSTS		000104	spd	.ERR30		500035	sin	.NDGNM		000003	sin	.TPREQ		000001	spd	
.DNTRM		000120	spd	.ERR4		500003	sin	.NDGNT		000010	sin	.TPVER		000006	spd	
.DNU11		000017	spd	.ERR5		500004	sin	.NDLND		000002	sin	.TRSET		007527'	ext	
.DNVIA		000115	spd	.ERR6		500005	sin	.NDLON		000001	sin	.VN20F		000000	sin	
.DNWTH		000142	spd	.ERR7		500006	sin	.NDLST		000001	sin	.VNMCB		000001	sin	
.DNZRO		000141	spd	.ERR8		500007	sin	.NDNAM		000000	sin	.WTTXT		000000	spd	
.DOLIN		000001	spd	.ERR9		500010	sin	.NDNBS		000003	sin	.WTTYP		000006	spd	
.DOMXD		000002	spd	.FHADR		000003	spd	.NDNLN		000000	sin	
.DOONS		000001	spd	.FHBFA		000005	spd	.NDNND		000000	sin	
.DOZRO		000000	spd	.FHBFS		000004	spd	.NDNXT		000002	sin	
.DTA11		000010	spd	.FHCBS		000002	spd	.NDSIC		000011	sin	
.DTDLV		000016	spd	.FHCNT		000001	spd	.NDSLP		000004	sin	
.DTDMC		000014	spd	.FHFFB		000000	spd	.NDSNT		000007	sin	
.DTDTE		000024	spd	.FHSLF		400000	sin	.NDSOF		000001	sin	
.DTDUP		000012	spd	.FP		000015	spd	.NDSTA		000001	sin	
.DTDV1		000026	spd	.IPCFL		000000	sin	.NRILN	777777	777770	spd	
.DTKDP		000034	spd	.IPCFP		000003	sin	.NRNCE	777777	777755	spd	
.DTKDZ		000036	spd	.IPCFR		000002	sin	.NSOFF		000001	sin	
.DTL1A		000020	spd	.IPCFS		000001	sin	.NSON		000000	sin	
.DTL1E		000004	spd	.JIUNO		000002	sin	.NSSHT		000002	sin	
.DTP11		000000	spd	.LOPTH		000002	spd	.OARGC		000004	spd	
.DTQ11		000006	spd	.LOTBD		000001	spd	.OFLAG		000003	spd	
.DTU11		000002	spd	.LOTBP		000003	spd	.OHDRS		000005	spd	
.ENQAA		000001	sin	.LOTGT		000000	spd	.OMACK		200014	spd	
.ENQBL		000000	sin	.LSTCB		000006	spd	.OMAHL		200007	spd	
.ENQCS		000000	sin	.LSTCN		000005	spd	.OMCMD		200050	spd	
.ENQID		000001	sin	.LSTMN		000004	spd	.OMHAC		200020	spd	
.ENQLN		000000	sin	.LSTOF		000001	spd	.PBVAL		000001	spd	
.ENQLV		000002	sin	.LSTON		000000	spd	.PGFRE		777777	spd	
.ENQMS		000005	sin	.LTALL		000000	spd	.PRAST		000002	sin	
.ENQRS		000004	sin	.MOACN		000024	sin	.PRIOU		000101	sin	
.ENQUC		000003	sin	.MOCIA		000776	sin	.PTSDM		000003	spd	
.ERR1		500000	sin	.MORHN		000026	sin	.PTSLD		000000	spd	
.ERR10		500011	sin	.MORLS		000025	sin	.PTTDM		000004	spd	
.ERR11		500012	sin	.MSCOD		000002	spd	.PTTLD		000001	spd	
.ERR12		500013	sin	.MSFLG		000001	spd	.PVEND		000000	spd	
.ERR13		500014	sin	.MSTYP		000000	spd	.QTFKT		000001	spd	
.ERR14		500015	sin	.MUCRE		000006	sin	.QTJFD		000002	spd	
.ERR15		500016	sin	.MUFPQ		000017	sin	.QTMES		000000	spd	
.ERR16		500017	sin	.MUPIC		000022	sin	.QTTOP		000003	spd	
.ERR17		500020	sin	.MUQRY		000020	sin	.RDLCT		000004	spd	
.ERR18		500021	sin	.MURSP		000025	sin	.RDLNS		000001	spd	
.ERR19		500022	sin	.MUSPQ		000016	sin	.RDLST		000005	spd	
.ERR2		500001	sin	.NCNLS		000007	spd	.RDRNS		000003	spd	
.ERR20		500023	sin	.NCRED		000010	spd	.RFFPT		000003	sin	
.ERR21		500024	sin	.NCRQD		000003	spd	.RFIO		000001	sin	
.ERR22		500025	sin	.NCRQL		000002	spd	.RFRUN		000000	sin	
.ERR23		500026	sin	.NCSET		000007	spd	.RFSLP		000005	sin	
ADDNO1	  6512	  6518	  6529#
ADDNOD	   686	  6496#
ADJTAB	   493#	  6627
ADVTOP	   377#	  5159	  7187
AR.LEN	  5771	  5788
AR.TYP	  5765	  5781
ARG.DA	   604	  5761	  5782
ARG.HD	  5765	  5771	  5781	  5788
ARGX04	  2686
ARGX05	  2690
ASCLIN	   377#	  2900	  3746	  3893
ASGPAG	  1535	  1543	  1993	  1997	  2588	  4695	  5134	  5417#	  5738	  5870	  6674	  6835	  7163	  7283
ASGPGF	  5423	  5430#
ASGPGL	  5422#	  5424
ATO0	  5042#	  6464
ATOCHB	  6478#	  6483
ATOCHM	  6479#	  6483
ATOCHN	  5937	  6463#	  6466	  6478
ATOHLD	  5935
ATOINI	  5830	  5935#
ATOLOD	  6699	  6702	  6705	  6708	  6718#
BEGFRE	   376#	  5953	  5969	  5970
BGLOOP	   510#	   537	   562
BGLOP1	   522	   536#
BGWAIT	   515#	   558
BGWTPC	   516#	   559
BLDAC0	  2925#	  2927
BLDAC1	  2937	  2960#
BLDAC2	  2926	  2930#
BLDACL	  2936#	  2960
BLDACT	  2595	  2922#
BLDCMA	  4192	  4254#
BLDCMD	  4189	  4206#
BLDCML	  4167#	  4179
BLDCOM	  2955	  3001	  3313	  4161#
BLDDEV	  4195	  4267#
BLDDIR	  4190	  4191	  4247#
BLDFIL	  4185	  4186	  4187	  4237#
BLDFLT	  4194	  4260#
BLDKEY	  4181	  4212#
BLDNOD	  4203	  4239#
BLDNUM	  4182	  4201	  4219#
BLDQUE	  2596	  2967#
BLDQUL	  2977#	  3006
BLDSWI	  4184	  4228#
BLDTAB	  4172	  4181#	  4204
BLDTAD	  4197	  4275#
BLDTBL	  4171	  4204#
BLDTXT	  4188	  4196	  4198	  4199	  4200	  4202	  4238#
BT%KSA	  1639
BTDBLK	  1962
BTDFIL	  1962
BTDPAG	  1962
BTLBLK	  1505
BTLFIL	  1505
BTLPAG	  1505
CHKLOP	  6814#	  6819
CHKNI1	  4404	  4407#
CHKNI2	  4401	  4422#
CHKNIB	  6691	  6804#
CHKNIC	   536	  4390#
CHKNIF	  4391
CHKNIL	  4393#	  4405	  4410	  4418
CHKNIM	  4391
CHKNIN	  4391
CHKNIT	  4391
CHKTOP	  7181	  7373#
CHTTAB	  6057	  6378#
CKTNOD	  7082
CLRLIN	  2823	  2863#
CNTMSG	  2279
COM.PB	   627	  4164	  6843
CPYADR	  4626
CPYAS1	  4628	  4634#
CPYAS2	  4645#	  4653
CPYASC	  3985	  4028	  4625#	  6155	  6501
CPYFRM	  4626
CPYLEN	  4626
CR%CAP	  5062	  5845
CR%MAP	  5062	  5845
CR%ST	  5845
CRUMP	  5563	  6267#
CVTDEV	   377#
CX	   572	  1623	  1659	  2923	  2968	  3061	  3118	  4162	  4307	  4440	  4463	  4467	  4545	  4601
	  4672	  4673	  4678	  4681	  4813	  4814	  4820	  4833	  4834	  4840	  4853	  4854	  4860	  4873
	  4874	  4880	  4905	  4906	  4912	  4925	  4926	  4932	  4945	  4946	  4952	  4965	  4966	  4972
	  4998	  4999	  5005	  5018	  5019	  5025	  5036	  5037	  5046	  5047	  5061	  5105	  5106	  5222
	  5226	  5227	  5318	  5322	  5323	  5351	  5357	  5362	  5418	  5425	  5432	  5458	  5464	  5472
	  5475	  5523	  5535	  5587	  5599	  5617	  5733	  5853	  5860	  6070	  6124	  6194	  6575	  6804
	  6922	  7006	  7028	  7224	  7279	  7337
CZ%ABT	  3127	  5189	  7125	  7136	  7264
DATERR	  6251#	  6409
DEQNIC	  4393	  4544#
DISFIN	   840	   861	   865#
DISKEY	   801
DISKNO	   833	   842#
DISKTB	   848	   855#	   857
DISKTL	   849	   857#
DISLID	   801
DISLIN	   832	   837#
DISLNS	   855	   860#
DISLOG	   811	   819#
DISLTB	   825	   832#	   835
DISLTL	   826	   835#
DISMSG	   801
DISNOD	   821	   894#
DISREQ	   651	   800#
DISRTB	   805	   811#	   813
DISRTL	   806	   813#
DLOCK	  5226	  5228	  5322	  5324	  5426	  5433	  5464	  5472	  5476	  5534#	  7029
DMMY	  5861
DMP200	  2216	  2219#
DMPCRL	  2082	  2084	  2098	  2102#
DMPEND	  6688	  6736#
DMPERR	  6678	  6687	  6733	  6741#
DMPHLD	  6669
DMPLD2	  2080#	  2096
DMPLD4	  2081	  2091#
DMPLDT	  2028	  2034	  2040	  2058#
DMPLIN	  1951	  1961#
DMPLN7	  2042#
DMPLN8	  1999	  2019	  2045#
DMPLN9	  1992	  1995	  2048#
DMPLOD	   587	  6669#
DMPLOP	  6685#	  6692	  6721	  6724	  6727	  6734
DMPREM	  1952	  2128#
DMPREQ	   645	  1943#
DMPRFR	  2165	  2169#
DMPRFS	  2129
DMPRMC	  2129
DMPRMD	  2154	  2178#
DMPRML	  2152#	  2173
DMPRMS	  2129
DMPRTB	  1945	  1951#	  1954
DMPRTL	  1946	  1954#
DMPTOP	  6669
DMPVIA	  1953	  1956#
DMRMTB	  2158	  2165#	  2166
DMRMTL	  2159	  2166#
DO%FIL	  2187
DODSP	   581	   584#	   588
DODSPL	   575	   588#
DOFKT	   585	  3204#
DOFKT0	  3212	  3215	  3237#
DOFKT1	  3210	  3219	  3222	  3252	  3256#
DOFKTL	  3209#	  3256
DOFKTS	  3205
DOJFD	   586	  3266#
DOJFD1	  3281	  3287	  3295	  3301#
DOJFD2	  3722#	  3779
DOJFD3	  3753#	  3777
DOJFD5	  3739	  3742	  3747	  3758	  3760	  3763	  3778#
DOJFD6	  3320	  3324	  3336#
DOJFD7	  3339	  3343#
DOJFDM	  3267
DOJHLD	  3267
DOLOOP	  2652	  2671	  2681	  2699	  2716#
DOLPB	   972	   976#
DOMES	   584	   591#
DORCTR	  3267
DOREQ	   529	   571#
DOREQE	   637	   640#	   916	   920	   941	   958	   965	   967	   969	   975	   983	   996	   998	  1000
	  1004	  1010	  1019	  1027	  1031	  1048	  1052	  1072	  1075	  1099	  1102	  1123	  1138	  1141
	  1152	  1158	  1170	  1174	  1292	  1296	  1299	  1303	  1364	  1366	  1373	  1376	  1404	  1408
	  1432	  1436	  1491	  1495	  1603	  1676	  1696	  1710	  1728	  1734	  1738	  1852	  1856	  1875
	  1892	  1899	  1944	  1948	  1956	  1973	  2109	  2196	  2202	  2233	  2237	  2252	  2266	  2271
	  2273	  2318	  2322	  2374	  2579	  2624	  2628	  2654	  2658	  2673	  2683	  2701	  2705	  2770
	  2774	  2785	  2789	  2806	  2809	  3196	  3200
DORMSG	  3267
DORTXT	  3267
DUPTST	   499	  6004#
EDLCKB	  5547
EDLCKI	  5547
EDLOCK	  5495	  5515	  5528	  5540	  5547#
ELOCK	  5223	  5319	  5419	  5459	  5522#	  7007
ENAFIN	   729	   746	   750#
ENAKEY	   690
ENAKNO	   722	   731#
ENAKTB	   733	   740#	   742
ENAKTL	   734	   742#
ENALID	   690
ENALIN	   721	   726#
ENALNS	   740	   745#
ENALTB	   714	   721#	   724
ENALTL	   715	   724#
ENAMSG	   690
ENANOD	   710	   779#
ENAREQ	   652	   689#
ENARTB	   694	   700#	   702
ENARTL	   695	   702#
ENQJFB	  6004
ENQJFS	  6004
ENQJFU	  6004
ENQX6	  6019
ENTVEC	  7393#	  7398
ERORB1	  5703	  5722#
ERRCD0	  5696	  6324#	  6367
ERROR	   504	   578	   947	  1016	  1023	  1080	  1107	  1133	  1194	  1205	  1225	  1249	  1324	  1758
	  1767	  1781	  1790	  2140	  2149	  2467	  2478	  2834	  2845	  3991	  4316	  4328	  4586	  4631
	  4658	  4688	  4697	  4723	  4752	  4768	  5054	  5064	  5076	  5089	  5109	  5179	  5193	  5635#
	  5857	  6156	  6531	  7015	  7354	  7362
ERRORB	  3227	  4359	  5639	  5649	  5683#
ERRORC	  5683
ERRORH	  5683
ERRSTR	   375#	  5638	  5640	  5643	  5647
ERRTAB	  5700	  6369#	  6370
ERRTBL	  5698	  6370#
EVTLOG	   700	   708#
EVTRQ1	   709	   712#
EVTRQ2	   820	   823#
EXCUTR	   375#	   762	   787	   877	   902	   942	   943	  1477	  1922	  2212	  2260	  2304	  2355	  2413
	  2456	  2517	  2559	  2728	  2755	  6157
EXESTR	  2254
FATAL	  6249	  6253	  6257	  6261	  6265	  6270	  6276	  6289#
FCL010	  6550#	  6560
FCL015	  6551	  6555#
FCL020	  6554	  6559#
FCLFRE	  6542
FCLLIN	  6542
FCLNIB	  6542
FCNTAB	   477#	  3083	  3322	  3325
FFP	   429#	  5437	  5460	  5979
FINDML	  4336	  4376#
FINFKT	  4334	  4373#
FINJFD	  4335	  4380#
FINMES	  4333	  4338#
FINMS1	  4355	  4364#
FINMS2	  4350	  4365#
FINMSD	  4353	  4369#
FINMSM	  4339
FINREQ	   533	  4304#
FINRQA	  4305
FINRQC	  4305
FINRQE	  4305
FINRQF	  4305
FIXCHN	  6482#	  6485
FKTLVL	  5101	  6415
FNDDS1	   664	   669#
FNDDSP	   636	   662#	   666	   696	   716	   735	   807	   827	   850	   919	  1030	  1051	  1173	  1295
	  1302	  1380	  1407	  1435	  1494	  1709	  1737	  1947	  2160	  2236	  2321	  2373	  2578	  2627
	  2657	  2704	  2773	  2788	  4117
FNDLST	  6928	  7039#
FOCLIN	  1157	  2872	  6542#
FOCNAM	   682
FOCNIB	   681#	  1012	  1151	  1697	  1754	  1777	  2136	  2816
FOCPG1	  6578#	  6594
FOCPG2	  6580	  6590#
FOCPG3	  6583	  6586	  6590	  6593#
FOCPGM	  1308	  6575#
FPRCD	   431#	  5436	  5466
FPTBL	   488#	  5421	  5467	  5982
FREIN1	  5985#	  5986
FREIN2	  5990#	  5992
FREINI	  5814	  5969#
FRELEV	  5222	  5226	  5227	  5318	  5322	  5323
FRELOK	   484#	  5222	  5226	  5227	  5318	  5322	  5323
FRELST	  7336#
FREQDL	  4313	  4337#
FREQDT	  4319	  4333#	  4337
FRKFLG	   472#	  5066
FRKTAB	   471#	  3209	  3226	  3234	  3237	  5065	  5077
FRKTER	  5101#	  6415
FRL010	  7351#	  7355
FRL020	  7344	  7359#
FRLLST	  7336
FRSHDR	   487#	  5220	  5313	  5403	  5406	  5408
FSADR	   438#	  5402	  5405	  5407
FSHDR	  5397#	  5987
FSLEN	   439#	  5404	  5407
FSP	   436#	  5399
GETEXB	   380#	  3759
GETFR0	  5224	  5240#
GETFR1	  5248#	  5264
GETFR2	  5249	  5266#
GETFR4	  5260	  5263#
GETFR5	  5257	  5280#
GETFR6	  5285	  5294#
GETFRE	  4474	  4636	  4686	  5053	  5088	  5108	  5216	  5218#
GETIMA	   380#	  3467	  3490	  3509	  3654
GETJF1	  6096	  6104	  6108#
GETJFC	  6086
GETJFJ	  6086
GETJFN	  3248	  6073	  6086#
GETLIN	   380#	  3740	  3887
GETNIB	   377#	   683	  7087
GETNOD	   380#
GETNUM	   380#	  3479	  3661
GETRQ0	  3103#	  3109
GETRQ1	  3104	  3109#
GETRQI	  3065	  3102#
GETSR1	  3166	  3177	  3182#
GETSRC	  3144
GETSRH	  3144
GETSRJ	  3074	  3143#
GETSRT	  3144
GETTWO	   380#	  3398	  3433	  3601	  3719	  3762	  3841
GJ%FOU	  1983
GJ%OLD	  1525
GJ%SHT	  1525	  1983	  3158	  5908	  6089	  7242
GTNXNB	  6686	  6770#
GTNXT1	  6770	  6781#
HCKCHN	  5866	  5926	  6466#	  6470	  6483
HCKINT	  5032#	  6467
HCKLVL	  5032	  6467
HELLO	  5821	  6194#
HELLO1	  6198#	  6220
HELLOT	  6195
HELLOW	  6203	  6214#
HMES	  6226	  6228#	  6236
HMESHD	  6206	  6223#
HMESL	  6226	  6229	  6236#
HSMIN	  6211#	  6215
HSSLP	  6212#	  6215	  6218
ILLINS	  6263#	  6411
ILLMRD	  6255#	  6412
ILLMWR	  6259#	  6413
INILOG	  2792	  2795#
INIREQ	   646	  2784#
INIRQ5	  2826	  2831#
INIRQX	  2817	  2842#
INIRTB	  2786	  2792#	  2794
INIRTL	  2787	  2794#
IP%CFB	  4706	  4714
IP%CFP	  5743	  6223
IP%CFR	  6223
IP%CFS	  6223
IP%CFV	  4706	  5743	  6895
IPCFX2	  4721	  4750
IRQERR	  2798
IRQFLG	  2798
IRQNOD	  2798
JFD0	  4899#	  6393
JFD1	  4919#	  6396
JFD2	  4939#	  6399
JFD3	  4959#	  6402
JFDCHB	  6474#	  6483
JFDCHM	  6475#	  6483
JFDCHN	  3071	  6381#	  6474
JFDINT	  4915	  4935	  4955	  4975	  5084#
JFDLVL	  4898	  4918	  4938	  4958	  6393	  6396	  6399	  6402
JFDMES	  3347	  3797#	  3820	  3825
JFDMSL	  3345	  3825#
JFDMSO	  3343	  3820#
JFDNUM	  5084
JFDTAB	   474#	  3081	  3120	  3123	  3130	  3271	  3276	  3289	  3453	  3640	  3727	  3874
JFN0	  4807#	  6431
JFN1	  4827#	  6434
JFN2	  4847#	  6437
JFN3	  4867#	  6440
JFNCHB	  6472#	  6483
JFNCHM	  6473#	  6483
JFNCHN	  3247	  6072	  6419#	  6444	  6472
JFNERR	  6074	  6079#
JFNINI	  5817	  6070#
JFNINT	  4823	  4843	  4863	  4883	  5061#
JFNLOP	  6072#	  6076
JFNLVL	  4806	  4826	  4846	  4866	  6431	  6434	  6437	  6440
JFNTAB	   470#	  3238	  3240	  3244	  3253	  5070	  6075
KNOLEN	  2372	  2381#
KNOTAB	  2371	  2378#	  2381
KYTAB	  4212	  4285#
L1SAV1	   372#	  6277	  6283	  6289	  6316
L1SAV2	   372#	  6247	  6251	  6255	  6259	  6263	  6268	  6272	  6284	  6317
L1SAV3	   372#	  6278	  6285	  6290	  6318
L1SAV4	   372#	  6279	  6286
L1SAVC	   372#
L2SAV1	   373#	  4668	  4674	  4809	  4816	  4829	  4836	  4849	  4856	  4869	  4876	  4994	  5001	  5014
	  5021	  5032	  5037	  5042	  5047	  5101	  5106
L2SAV2	   373#	  4669	  4675	  4810	  4817	  4830	  4837	  4850	  4857	  4870	  4877	  4995	  5002	  5015
	  5022	  5033	  5037	  5043	  5047	  5102	  5106
L2SAV3	   373#	  4670	  4676	  4811	  4818	  4831	  4838	  4851	  4858	  4871	  4878	  4996	  5003	  5016
	  5023	  5034	  5037	  5044	  5047	  5103	  5106
L2SAV4	   373#	  4671	  4677	  4812	  4819	  4832	  4839	  4852	  4859	  4872	  4879	  4997	  5004	  5017
	  5024	  5035	  5037	  5045	  5047	  5104	  5106
L2SAVC	   373#	  4672	  4678	  4813	  4820	  4833	  4840	  4853	  4860	  4873	  4880	  4998	  5005	  5018
	  5025	  5036	  5037	  5046	  5047	  5105	  5106
L3SAV1	   374#	  4901	  4908	  4921	  4928	  4941	  4948	  4961	  4968
L3SAV2	   374#	  4902	  4909	  4922	  4929	  4942	  4949	  4962	  4969
L3SAV3	   374#	  4903	  4910	  4923	  4930	  4943	  4950	  4963	  4970
L3SAV4	   374#	  4904	  4911	  4924	  4931	  4944	  4951	  4964	  4971
L3SAVC	   374#	  4905	  4912	  4925	  4932	  4945	  4952	  4965	  4972
LATSIZ	  6559
LCJCTR	  3713
LCJPTR	  3713
LCLPRT	   962
LCLSCD	   962
LCLSTS	  3381	  3425#
LCRCTR	  3713
LCRMSG	  3713
LCRTYP	  3713
LDKMC1	  1556	  1605#
LDKMCX	  1607	  1616	  1622#
LDKMD1	  1558	  1614#
LEV1PC	   371#	   556	  6273	  6299	  6374
LEV2PC	   371#	   552	  6375
LEV3PC	   371#	   549	  6376
LIDPRT	  2894#
LINCTR	  3384	  3712#
LINDRC	  2661	  2669#
LINLNG	  2662	  2679#
LINRTB	  2655	  2661#	  2664
LINRTL	  2656	  2664#
LINSET	  1384	  1465#
LINSIZ	   493	  6626
LINST5	  3928#	  3931
LINST7	  3928	  3933#
LINSTS	  3385	  3834#
LINWTH	  2663	  2697#
LKNMSK	  5486
LNJCTR	  3427
LNJCVR	  3427
LNJHST	  3427
LNJLEN	  3427
LNJNUM	  3427
LNJPTR	  3427
LNJRVR	  3427
LNJSTA	  3427
LNJSYS	  3427
LNRCTR	  3427
LNRMSG	  3427
LNSMSG	  1466
LO%OPS	  1838
LO%PAR	  1840
LO%ROM	  1835
LO%TGT	  1827
LOAKD1	  1553#	  1561	  1563	  1570	  1611	  1618
LOAKD2	  1566#	  1571
LOAKD3	  1554	  1567	  1573#
LOAKD4	  1589	  1591#	  1620
LOAKD5	  1545	  1594#
LOAKD6	  1534	  1537	  1597#
LOAKM2	  1661#	  1674
LOAKMN	  1629	  1632	  1636	  1648	  1652	  1658#
LOAKMX	  1565	  1608	  1617	  1619#
LOALIN	  1498	  1504#
LOARBP	  1684
LOARCT	  1684
LOAREM	  1499	  1682#
LOAREQ	   647	  1490#
LOARFR	  1713	  1719#
LOARFS	  1684
LOARHO	  1684
LOARMC	  1684
LOARMD	  1703	  1814#
LOARML	  1701#	  1723	  1770	  1793	  1802	  1811
LOARMS	  1684
LOARNM	  1684
LOARNO	  1684
LOARNU	  1684
LOARPL	  1736	  1745#
LOARPR	  1715	  1733#
LOARPT	  1735	  1741#	  1745
LOARSL	  1684
LOARSP	  1684
LOARSV	  1684
LOARTB	  1492	  1498#	  1501
LOARTL	  1493	  1501#
LOARVI	  1714	  1728#
LOAVIA	  1500	  1676#
LOD010	  1890	  1893#
LOD020	  1897	  1900#
LOD100	  1881	  1915#
LOD200	  1926	  1929#
LOGFRK	   467#	  5825	  5843	  5849
LOGGER	   377#	  5846
LOGINI	  1003	  5826	  5843#
LOGTIM	   375#	  1002
LOKNOD	  5486#
LOKVAL	  5222#	  5222	  5226#	  5226	  5227#	  5227	  5318#	  5318	  5322#	  5322	  5323#	  5323	  5418#	  5418
	  5425#	  5425	  5432#	  5432	  5458#	  5458	  5464#	  5464	  5472#	  5472	  5475#	  5475	  7006#	  7006
	  7028#	  7028
LOPBYT	  2637
LOPCNT	  2637
LOPHLD	  3391
LOPLID	  2637
LOPLIN	  2631	  2636#
LOPLNG	  2637
LOPLST	  2650#	  2675	  2693	  2707
LOPMSG	  2637
LOPREQ	   648	  2623#
LOPRTB	  2625	  2631#	  2632
LOPRTL	  2626	  2632#
LOPTST	  3371	  3390#
LOPWTH	  2637
LORMTB	  1707	  1713#	  1716
LORMTL	  1708	  1716#
LORPHO	  1741	  1750#
LORPNM	  1742	  1773#
LORPNO	  1744	  1807#
LORPNU	  1743	  1798#
LSJCNT	  3870
LSJCTR	  3870
LSJLIN	  3870
LSJMSG	  3870
LSJPTR	  3870
LSRCTR	  3835
LSRPTR	  3835
LSTFRE	   376#	  5971
LSTLEN	  1379	  1399#
LSTLOP	  3873#	  3943
LSTTAB	  1378	  1393#	  1399
LTLOG	  2877	  2881
LTNIB	  1160
LTUSE	  6550	  6551	  6563
LV1REQ	   634	   644#	   653
LV1RQL	   635	   653#
LVTTAB	  6057	  6374#
MACHSZ	  6272#	  6416
MAKDIS	   379#	   894
MAKDSL	   379#	   869
MAKENA	   379#	   779
MAKENL	   379#	   754
MAKHST	   379#	  1898
MAKIMA	   378#	  1874	  2201	  2446	  2729
MAKIMB	   378#	  1865
MAKLIN	   378#	  2296	  2509	  2735
MAKNAM	   378#	  1891
MAKNOD	   378#	  1851	  1855	  2195
MAKNUM	   378#	  1905
MAKSLN	   379#	  1469
MAKTWO	   378#	  2738	  2745
MAXLIN	  6623
MAXNOD	   492	   493	  5993	  6608	  6878
MAXPGM	  5988	  6577
MBPWSZ	  1863	  1867
MF.SUF	   597
MNDBLK	  6976
MNIERR	  7107
MNIHLD	  7108
MNIHST	  7108
MNIIDX	  7107
MNILNK	  7108
MNILST	  7108
MNINOD	  7107
MNIPAG	  7107
MO%CDN	  3172	  5921	  6098
MO%CON	  3283	  7257
MO%DAV	  3169	  6101
MO%INA	  3174	  6100
MONDEL	  6962	  6976#	  7317
MONINI	  5894	  7107#
MS.CNT	  3020	  4347	  6840
MS.TYP	   594	  6838
MT.TXT	   595
MXLNOD	  6549
NAM010	  6182#	  6187
NAMINI	  5823	  6150#
NBINIB	  6636
NCU	   377#	  5078
NCUFFP	   425#	  5073	  5974
NCUNFP	   427#	  5975
NDDIP	  2206	  6697	  6698	  6709
NDDMP	  1077	  1089
NDDOK	  1085	  2214	  2215	  6703	  6704	  6722	  6723
NDFLG	  6648
NDFRD	  1418	  1425	  6651	  6706	  6707
NDFRL	  1446	  1453	  6653	  6725	  6726
NDLIN	  6548	  6658
NDLIP	  1916	  6700	  6701	  6719	  6720	  6728
NDLOD	  1104	  1116
NDLOK	  1112	  1924	  1925
NDNAM	  1850	  2194	  6644	  6711	  6730	  6781	  6810
NDPHT	  1198	  1200	  1246	  1255	  1894	  6647
NDPNA	  1187	  1189	  1222	  1231	  1887	  6645
NDPNU	  1209	  1266	  1901	  6650
NDPRO	  1054	  6649
NDPST	  1056
NDSL1	  1143	  1154
NDSL2	  1145	  1156
NDSRV	  1130	  1148	  1150	  7093
NETCON	   497#	   506	   580	   949	  1018	  1025	  1082	  1109	  1135	  1196	  1207	  1227	  1251	  1326
	  1760	  1769	  1783	  1792	  2142	  2151	  2469	  2480	  2836	  2847	  3993	  4318	  4330	  4588
	  4633	  4660	  4690	  4699	  4725	  4754	  4770	  5054	  5064	  5076	  5089	  5109	  5179	  5193
	  5857	  5951	  6156	  6320	  6531	  7015	  7354	  7362	  7393	  7394
NETINI	   502	  5813#
NFP	   430#	   488	  5420	  5462	  5980	  5984
NFSP	   437#	  5400
NHSNOD	  1239
NIBINI	  6524	  6636#
NIBSIZ	   492	  6611	  6642
NIBTAB	   492#	  6612
NICLCT	  3769	  3783#	  3792
NICQUE	   466#	   512	  2969	  2976	  4515	  4518	  4522	  4548	  4554
NJFN	   427	   470	   471	   472	   473	   474	   475	   476	   477	  2924	  2935	  3102	  3207	  4801
	  4893	  6071	  6384	  6406	  6420	  6422	  6444	  6472	  6473	  6474	  6475
NLCTMX	  3767	  3792#
NNAMSZ	  2445
NNCUPG	   426#	   427	  5072	  5074
NNMNOD	  1215
NO%LFL	  2086	  2092	  3774
NODCHK	  7057	  7068#
NODLEN	  3984	  3988	  6154	  6500
NODLEV	  5222	  5226	  5227	  5318	  5322	  5323	  5418	  5425	  5432	  5458	  5464	  5472	  5475	  5494
	  5514	  7006	  7028
NODTAB	   376#	  5994	  6516	  6774	  6776	  6782	  6788	  6789
NQ%REQ	  4400	  4412	  4425	  4486	  4570
NQCHR	  4500	  4573
NQFCN	  4506	  4580
NQLEN	  4473	  4582
NQMES	  3000	  4480	  4558
NQNUM	  2984	  4503	  4575
NQOPT	  4509	  4578
NQPNT	  2978	  4511	  4517	  4524	  4530	  4553
NQREQ	  4488	  4569	  4570
NQRQT	  4497	  4565
NQTXT	  4492	  4563
NQXTR	  2992	  4483	  4560
NXTLIN	   376#	  5996	  6622	  6625
NXTNIB	   376#	  5995	  6607	  6610
OF%RD	  1531	  3164	  6094
OF%WR	  1989	  3164	  6094
ONCHNS	  5815	  6485#
OPRMES	  2265	  2606	  2830	  3230	  3352	  4362	  5644	  5733#
OPRMS5	  5763	  5778#
OPRMS8	  5779	  5789#
OPRMS9	  5797	  5804#
OPRMSA	  5734
OPRMSB	  5734
OPRMSH	  5734
OPRMSS	  5734
OPRPID	   482#	  4729	  5747	  6204	  6225
OT%SCL	  3443	  3611	  3751	  3851
OURNAM	   375#	  1928	  2218	  6151	  6164	  6646	  7094
OURNUM	   375#	  6173
P	   498	   690	   728	   745	   752	   753	   801	   839	   844	   847	   860	   867	   868	   962
	   976	   981	   984	   986	  1069	  1073	  1087	  1096	  1100	  1114	  1127	  1139	  1146	  1215
	  1220	  1229	  1239	  1244	  1253	  1289	  1316	  1328	  1466	  1468	  1505	  1511	  1519	  1523
	  1530	  1538	  1546	  1551	  1552	  1573	  1574	  1576	  1578	  1579	  1581	  1583	  1584	  1586
	  1591	  1594	  1597	  1605	  1610	  1614	  1684	  1686	  1687	  1688	  1689	  1690	  1691	  1692
	  1693	  1694	  1722	  1753	  1755	  1764	  1776	  1778	  1787	  1801	  1807	  1808	  1809	  1810
	  1815	  1823	  1830	  1831	  1836	  1853	  1854	  1859	  1860	  1861	  1864	  1866	  1870	  1871
	  1872	  1876	  1880	  1882	  1884	  1888	  1889	  1895	  1896	  1902	  1903	  1910	  1912	  1920
	  2129	  2131	  2172	  2179	  2185	  2197	  2198	  2199	  2203	  2210	  2254	  2256	  2263	  2279
	  2289	  2299	  2334	  2339	  2351	  2389	  2394	  2409	  2427	  2432	  2435	  2443	  2452	  2464
	  2475	  2481	  2488	  2494	  2501	  2508	  2512	  2531	  2542	  2554	  2586	  2591	  2602	  2607
	  2611	  2615	  2637	  2643	  2645	  2647	  2649	  2674	  2692	  2706	  2716	  2717	  2722	  2726
	  2732	  2733	  2734	  2736	  2737	  2739	  2740	  2741	  2743	  2744	  2746	  2747	  2750	  2751
	  2798	  2800	  2815	  2820	  2822	  2831	  2842	  2848	  2865	  2867	  2868	  2869	  2870	  2871
	  2875	  2895	  2898	  2904	  3144	  3146	  3148	  3149	  3153	  3159	  3163	  3167	  3178	  3182
	  3183	  3185	  3189	  3205	  3225	  3229	  3267	  3290	  3297	  3298	  3301	  3318	  3319	  3321
	  3326	  3331	  3332	  3350	  3351	  3391	  3393	  3401	  3402	  3409	  3427	  3429	  3435	  3436
	  3452	  3454	  3459	  3466	  3469	  3470	  3477	  3478	  3481	  3485	  3488	  3492	  3496	  3498
	  3500	  3502	  3504	  3506	  3507	  3511	  3512	  3513	  3521	  3526	  3534	  3540	  3548	  3554
	  3560	  3568	  3577	  3578	  3595	  3597	  3603	  3604	  3622	  3635	  3638	  3639	  3641	  3646
	  3653	  3660	  3663	  3664	  3675	  3676	  3679	  3696	  3698	  3713	  3715	  3721	  3722	  3726
	  3728	  3733	  3743	  3744	  3756	  3757	  3761	  3764	  3765	  3766	  3778	  3780	  3835	  3837
	  3843	  3844	  3862	  3870	  3872	  3873	  3875	  3880	  3889	  3890	  3891	  3892	  3898	  3899
	  3903	  3904	  3918	  3919	  3927	  3938	  3940	  4104	  4106	  4107	  4108	  4109	  4119	  4132
	  4145	  4149	  4150	  4151	  4152	  4339	  4341	  4357	  4361	  4364	  4391	  4395	  4396	  4397
	  4398	  4407	  4408	  4413	  4414	  4422	  4423	  4426	  4427	  4683	  4702	  4704	  4707	  4709
	  4711	  4715	  4718	  4728	  4744	  4746	  4748	  5084	  5086	  5092	  5121	  5126	  5136	  5141
	  5150	  5157	  5161	  5163	  5166	  5172	  5184	  5185	  5194	  5242	  5251	  5254	  5258	  5267
	  5269	  5277	  5280	  5294	  5328	  5333	  5335	  5336	  5337	  5342	  5343	  5345	  5350	  5356
	  5359	  5360	  5363	  5365	  5367	  5370	  5372	  5373	  5383	  5384	  5387	  5388	  5435	  5465
	  5486	  5489	  5491	  5492	  5506	  5509	  5511	  5512	  5522	  5524	  5525	  5529	  5530	  5531
	  5534	  5536	  5537	  5541	  5542	  5543	  5547	  5549	  5552	  5554	  5556	  5557	  5558	  5559
	  5561	  5562	  5569	  5572	  5575	  5578	  5584	  5585	  5586	  5589	  5590	  5591	  5592	  5596
	  5597	  5598	  5601	  5602	  5603	  5604	  5608	  5609	  5610	  5611	  5612	  5613	  5614	  5615
	  5616	  5619	  5620	  5621	  5622	  5623	  5624	  5625	  5626	  5627	  5628	  5666	  5667	  5670
	  5672	  5683	  5685	  5686	  5695	  5702	  5708	  5709	  5715	  5734	  5736	  5737	  5740	  5742
	  5744	  5746	  5748	  5749	  5753	  5755	  5762	  5766	  5778	  5783	  5790	  5792	  5799	  5803
	  5804	  5854	  5861	  5872	  5878	  5897	  5935	  5938	  5940	  6004	  6007	  6009	  6010	  6012
	  6013	  6015	  6022	  6023	  6026	  6034	  6038	  6043	  6086	  6088	  6093	  6097	  6105	  6108
	  6115	  6195	  6197	  6214	  6496	  6507	  6513	  6515	  6522	  6523	  6525	  6529	  6542	  6547
	  6552	  6553	  6561	  6636	  6638	  6657	  6669	  6676	  6679	  6685	  6689	  6690	  6696	  6718
	  6736	  6741	  6830	  6832	  6833	  6834	  6850	  6870	  6874	  6891	  6900	  6908	  6909	  6976
	  6978	  7108	  7116	  7120	  7124	  7132	  7135	  7143	  7189	  7191	  7195	  7225	  7230	  7231
	  7236	  7243	  7246	  7249	  7254	  7263	  7269
P1	   592	   594	   597	   604	   625	   627	   628	   760	   785	   875	   900	  1475	  1919	  2209
	  2297	  2353	  2411	  2454	  2510	  2551	  2753	  4163	  4164	  4165	  4578	  4581	  4591	  5611
	  5625	  6931	  6932	  6933	  6934	  6939	  6942	  7253	  7261	  7343	  7344	  7345	  7346	  7347
	  7351	  7355
P2	   628	   629	  3951	  3955	  3957	  3958	  3966	  3976	  3982	  3998	  3999	  4020	  4024	  4027
	  4032	  4033	  4041	  4045	  4047	  4048	  4057	  4061	  4062	  4068	  4071	  4075	  4076	  4086
	  4090	  4092	  4093	  4165	  4166	  4168	  4170	  4177	  4178	  4219	  4220	  4239	  5612	  5624
	  6832	  6844	  6849	  6851	  6853	  6854	  6859	  6861	  6863	  6864	  6869	  6871	  6879	  6880
	  6888	  6890
P3	  1011	  1013	  1020	  1054	  1056	  1057	  1077	  1085	  1086	  1089	  1104	  1112	  1113	  1116
	  1130	  1143	  1145	  1148	  1150	  1154	  1156	  1160	  1187	  1189	  1198	  1200	  1209	  1222
	  1231	  1246	  1255	  1266	  1418	  1419	  1425	  1426	  1446	  1447	  1453	  1454	  5613	  5623
P4	  5614	  5622
P5	  5615	  5621
P6	  5616	  5620
PA%EX	  5958
PA%PEX	  5957
PA%RD	  5958
PACINI	  5813	  5951#
PACTOP	  5956#	  5962
PAGLEV	  5418	  5425	  5432	  5458	  5464	  5472	  5475
PAGLOK	   485#	  5418	  5425	  5432	  5458	  5464	  5472	  5475
PBLEN	  3957	  3998	  4027	  4032	  4047	  4061	  4075	  4092	  4177	  6853	  6863	  6879	  6890
PBTYP	  3951	  3966	  3976	  4020	  4041	  4057	  4068	  4086	  4168	  6849	  6859	  6869	  6888
PBVAL	  3955	  4045	  4090	  4170	  6851	  6861
PDINT1	  4685#	  4756
PDINT2	  4726	  4732	  4760#
PDINT3	  4743#	  4771
PDL	   462#	   498
PDLEN	   462	   498
PDLOV	  6247#	  6407
PGCPU	  6581	  6597
PGFIL	  1321	  1330
PGLDV	  5990	  6578	  6596
PGLEN	  5991	  6593
PGMTAB	   375#	  5988	  6577
PGPGM	  6584	  6598
PID	   481#	  4708	  4730	  4747	  5745	  6141	  6143	  6224	  6897
PIDCHN	  6144	  6379#	  6482
PIDIN1	  6130	  6135#
PIDINI	  5819	  6124#
PIDINT	  4667#	  6380
PIDLVL	  4667	  6380
PIOFF.	   518	  3246	  4513	  4547	  4779	  5221	  5317	  5417	  5457	  5569#	  6267
PION.	   521	   527	  3250	  3255	  4520	  4532	  4550	  4556	  4790	  5226	  5229	  5322	  5325	  5427
	  5434	  5464	  5472	  5477	  5575#
PLICTL	  4104
PLIDEV	  4104
PLISTN	  4104
PLIUNI	  4104
PM%CNT	  5400	  5975	  5980
PRS500	  4139	  4149#
PRSCFM	   708	   750	   819	   845	   865	   982	  1074	  1101	  1166	  1317	  1375	  1520	  1701	  1978
	  2152	  2251	  2282	  2336	  2391	  2433	  2495	  2536	  2650	  2669	  2679	  2697	  3965#
PRSCMA	  1164	  4085#
PRSFIL	  1313	  4004#
PRSIFI	  1098	  1516	  1719	  4004	  4017#
PRSKDP	  1507	  1964	  2108#
PRSKEY	   630	   692	   712	   731	   803	   823	   842	   915	   964	   968	   995	  1026	  1047	  1169
	  1291	  1298	  1363	  1372	  1403	  1431	  1490	  1704	  1733	  1943	  1969	  2108	  2155	  2232
	  2270	  2317	  2368	  2573	  2623	  2653	  2700	  2769	  2784	  2802	  3950#	  4113
PRSLID	   726	   837	  1140	  1367	  2274	  2490	  2639	  2808	  2892	  4103#
PRSNOD	   940	  1009	  1137	  1217	  1241	  1695	  1750	  1773	  2132	  2429	  2812	  3975#
PRSNOI	   994	  2572	  2801	  2807	  2811	  4056#
PRSNUM	   999	  1262	  1798	  2117	  2672	  2682	  4040#	  4130	  4143
PRSOFI	  1071	  1974	  2169	  4005	  4016#
PRSPRT	   977	  2892#
PRSTOK	  2114	  4066#	  4125	  4138
PRTLID	  2895
PRTSAV	  2895
PRU020	  6938#	  6942
PRUNE	  6922#
PRUNEW	  6923
PRUNOD	  6923
PRUOLD	  6923
PSIINI	  5816	  6054#
Q1	  1270	  1274	  1278	  1282	  1307	  1371	  1383	  1624	  1635	  1638	  1646	  1650	  1666	  1673
	  2594	  2600	  2810	  2819	  2924	  2925	  2927	  2935	  2936	  2941	  2948	  2954	  2960	  2976
	  2978	  2979	  2984	  2992	  3000	  3068	  3070	  3071	  3073	  3075	  3077	  3081	  3083	  3088
	  3119	  3120	  3123	  3130	  3132	  3133	  3270	  3271	  3276	  3289	  3305	  3312	  3322	  3325
	  3355	  3359	  3453	  3640	  3727	  3874	  4319	  4331	  4477	  4480	  4483	  4488	  4489	  4492
	  4497	  4500	  4503	  4506	  4509	  4511	  4517	  4518	  4530	  4558	  4561	  4589	  4602	  4611
	  4691	  4694	  4701	  4717	  4734	  4735	  4761	  4765	  5068	  5070	  5596	  5604	  5608	  5628
	  5886	  5887	  5890	  5893	  6071	  6072	  6075	  6076	  6079	  6126	  6127	  6132	  6136	  6137
	  6142	  6199	  6200	  6577	  6578	  6581	  6584	  6587	  6592	  6593	  6594	  6805	  6809	  6815
	  6819
Q2	  1297	  1305	  1312	  1321	  1330	  1631	  1634	  1651	  1660	  1667	  1668	  1672	  1700	  1850
	  1887	  1894	  1901	  1916	  1917	  1924	  2135	  2137	  2146	  2194	  2206	  2207	  2214	  3208
	  3251	  3257	  3280	  3286	  3294	  3300	  3320	  3339	  3343	  3344	  3345	  3347	  3741	  4464
	  4468	  4514	  4563	  4566	  4570	  4603	  4610	  5071	  5072	  5073	  5074	  5597	  5603	  5609
	  5627	  5878	  5879	  5884	  5885	  5886	  6128	  6138	  6143	  6201	  6576	  6590	  6592	  6595
	  6596	  6597	  6598	  6599	  6810	  6814
Q3	  1304	  1306	  1374	  1377	  1660	  1665	  1666	  1674	  3207	  3209	  3226	  3234	  3237	  3238
	  3240	  3244	  3247	  3253	  3256	  3325	  3373	  4560	  4561	  4565	  4566	  4573	  4576	  4590
	  5598	  5602	  5610	  5626	  6131	  6141	  6144	  6204	  7297	  7298	  7299	  7300	  7301	  7306
	  7315	  7319
QF%NOA	   612	   768	   793	   883	   908	  1483	  1934	  2224	  2310	  2361	  2419	  2461	  2523	  2565
	  2761	  4352
QF%TXT	  4344
QUEFCN	  4472
QUEFLG	   614	   770	   795	   885	   910	  1485	  1936	  2226	  2312	  2363	  2421	  2463	  2525	  2567
	  2763	  4309
QUEHLN	  4323	  4685	  5052	  5087	  5107
QUEMES	   592	  3270	  4321	  4701	  4717	  4761	  5093
QUENC1	  4523#	  4527
QUENC2	  4525	  4529#
QUENCF	  4428	  4466#
QUENCM	  4472
QUENCN	  4472
QUENCR	  3045	  4415	  4462#
QUENCT	  4472
QUENCU	  4465	  4469	  4471#
QUEPNT	   524	  4734	  4777	  4782	  4788
QUEQU1	  4781#	  4785
QUEQU2	  4783	  4787#
QUEQUE	  4736	  4776#	  5057	  5094	  5112
QUETIM	  4442	  4495	  4600#
QUETYP	   574	  4312	  4694	  5056	  5091	  5111
QUEUE	   465#	   514	   519	   525	  4780
R	  1626	  1662	  2979	  3365	  3366	  3367	  3368	  3369	  3370	  3372	  3380	  3382	  3441	  3445
	  3451	  3458	  3473	  3483	  3494	  3517	  3530	  3536	  3542	  3550	  3556	  3562	  3609	  3613
	  3621	  3645	  3669	  3732	  3849	  3853	  3861	  3879	  3900	  3923	  5130	  5911	  5914	  5924
	  6185	  6595	  6758	  6807	  6818	  6991	  7042	  7096	  7235	  7238	  7241	  7245	  7374
RCVPDB	  4683
RCVTOP	  7134	  7159#
REDLEN	  3387#
REDTAB	  3373	  3380#	  3387
RELFR1	  5339#	  5348
RELFR2	  5340	  5346	  5350#
RELFR4	  5378	  5383#
RELFR5	  5368	  5373#
RELFR6	  5353	  5358#
RELFR7	  5358	  5363#
RELFRE	   945	  1014	  1021	  1078	  1105	  1131	  1192	  1203	  1223	  1247	  1322	  1756	  1765	  1779
	  1788	  2138	  2147	  2465	  2476	  2832	  2843	  3989	  4326	  4584	  4629	  4656	  4766	  5310
	  5312#	  6530	  7014	  7353	  7361
RELFRW	  5320	  5328#
RELPAG	  2608	  2616	  5457#
RELPGA	  1592	  1595	  2043	  2046	  3356	  4366	  4762	  5173	  5186	  5456#	  5803	  5805	  5898	  6737
	  6742	  6875	  6908	  6910	  7202	  7213	  7289	  7326
RELRQ1	  3124	  3130#
RELRQ2	  3121	  3132#
RELRQI	  3076	  3089	  3117#	  3360
REMOVE	  6941	  6957#
REMSTS	  3383	  3594#
REQADR	   463#	   528	   532	   766	   791	   881	   906	  1481	  1932	  2222	  2288	  2308	  2359	  2417
	  2459	  2521	  2563	  2759
REQCOD	   464#	   626	  5750
REQLST	  3863	  3869#
REQMES	   475#	  2954	  3070	  3132	  3312	  3355
REQNUM	   479#	  3042
REQSTS	  3623	  3634#
REQTAB	   473#	  2925	  2936	  2941	  3103	  3105	  3133	  3305
REQXTR	   476#	  2948	  3073
RESTPQ	  5618#
RESTQ	  5600#
RESTT	  5588#
RLFRX2	  5351	  5357	  5362	  5387#
RMVNOD	  6957
RQCHK	  4409	  4439#
RQMAX	  4443	  4445
RSJCNT	  3595
RSJPTR	  3595
RSKP	   599	   609	   615	   671	   685	   772	   797	   887	   912	   950	   991	  1006	  1059	  1091
	  1118	  1161	  1168	  1211	  1332	  1388	  1420	  1427	  1448	  1455	  1487	  1602	  1640	  1655
	  1670	  1938	  2056	  2124	  2228	  2268	  2314	  2365	  2423	  2471	  2527	  2569	  2620	  2765
	  2838	  2879	  2884	  2914	  3048	  3097	  3107	  3180	  3259	  3273	  3284	  3362	  3421	  3585
	  3626	  3703	  3782	  3866	  3944	  3960	  3970	  4001	  4007	  4009	  4035	  4050	  4078	  4095
	  4154	  4370	  4374	  4377	  4381	  4448	  4521	  4534	  4593	  4652	  5238	  5295	  5326	  5385
	  5444	  5478	  5807	  5832	  5850	  5881	  5900	  5931	  5943	  6018	  6077	  6081	  6106	  6147
	  6209	  6526	  6558	  6565	  6588	  6600	  6613	  6628	  6739	  6759	  6777	  6792	  6794	  6820
	  6912	  7030	  7044	  7058	  7069	  7071	  7097	  7149	  7207	  7270	  7328	  7342	  7363	  7389
RSRCNT	  3635
RSRCTR	  3635
RSRMSG	  3635
RSRPTR	  3635
RTPERR	  7159
RTPHST	  7159
RTPINX	  7174	  7182	  7188	  7194	  7211#
RTPLNK	  7159
RTPPAG	  7159
SAVPQ	   572	  4162	  4545	  5608#	  6922	  7224	  7279	  7337
SAVQ	  1623	  1659	  2923	  2968	  3061	  3118	  4307	  4463	  4467	  4601	  4681	  5061	  5596#	  5733
	  5853	  5860	  6070	  6124	  6194	  6575	  6804
SAVT	  4440	  5584#
SDFFIL	  1069
SETADM	  1040	  1403#
SETALD	  1041	  1431#
SETATO	  5048	  5052#
SETCPL	  1301	  1357#
SETCPT	  1300	  1354#	  1357
SETDDA	  1412	  1424#
SETDDL	  1405	  1411#	  1413
SETDEN	  1411	  1417#
SETDLN	  1406	  1413#
SETDVL	  1294	  1352#	  4116
SETDVT	  1293	  1339#	  1352	  4115
SETEX	   923	   940#
SETFIL	  1271	  1275	  1279	  1283	  1288#
SETFTB	  1333#	  1337
SETFTL	  1337#
SETHST	   925	   958#
SETLCL	   926	   961#
SETLDA	  1440	  1452#
SETLDL	  1433	  1439#	  1441
SETLEN	  1439	  1445#
SETLGI	   924	   994#
SETLIN	  2821	  2862#
SETLLN	  1434	  1441#
SETLPL	  1172	  1181#
SETLPT	  1171	  1177#	  1181
SETLTB	  6622#	  6655
SETMON	   927	  3196#
SETNBP	  1034	  1123#
SETNDF	  1035	  1068#
SETNHS	  1177	  1238#
SETNIB	  6511	  6607#
SETNLF	  1036	  1095#
SETNLP	  1037	  1164#	  1232	  1256	  1267
SETNNM	  1178	  1214#
SETNNU	  1179	  1262#
SETNO1	  1191	  1197#
SETNO2	  1202	  1208#
SETNOD	   928	  1009#
SETNON	  1180	  1186#
SETNPT	  1039	  1047#
SETNSV	  1038	  1126#
SETNTB	  1028	  1034#	  1042
SETNTL	  1029	  1042#
SETPSW	   929	  3200#
SETPTB	  1049	  1062#	  1065
SETPTL	  1050	  1065#
SETREQ	   644	   915#
SETRTB	   917	   923#	   935
SETRTL	   918	   935#
SETSDF	   930	  1269#
SETSLF	   931	  1273#
SETSTA	   932	  1363#
SETTDF	   933	  1277#
SETTLF	   934	  1281#
SFLFIL	  1289
SHDMSG	  2389
SHLLID	  2488
SHNLNS	  2379	  2530#
SHNMSG	  2427
SHNNDS	  2378	  2388#
SHNNOD	  2427
SHOCNT	  2240	  2270#
SHOEXE	  2241	  2251#
SHOLEN	  3323	  3375#
SHOMSG	  2488
SHONCP	  2582	  2585#
SHOQTB	  2576	  2582#	  2583
SHOQTL	  2577	  2583#
SHOQUE	  2242	  2572#
SHOREQ	   649	  2232#
SHORTB	  2234	  2240#	  2244
SHORTL	  2235	  2244#
SHOSTA	  2243	  2317#
SHOTAB	  3330	  3365#	  3375
SHSKNO	  2327	  2368#
SHSLCL	  2325	  2333#
SHSLIN	  2326	  2487#
SHSNDX	  2434	  2447	  2458	  2475#
SHSNOD	  2328	  2426#
SLFFIL	  1096
SLSMSG	  2334
SNDBLK	  6830
SNDCMD	  6713	  6732	  6830#
SNDFNC	  6830
SNDHLD	  6830
SNDNAM	  6830
SNDNIC	  3060#	  4403
SNDNIF	  3063
SNDNIM	  3063
SNDNIN	  3063
SNDNIT	  3063
SNLMSG	  2531
SNSNOD	  1127
SQNPAG	  2586
STALEN	  2320	  2330#
START	   496#	   501
STATAB	  2319	  2325#	  2330
STLFLG	  2865
STLLID	  2865
STLNIB	  2865
STNNIB	  6496
STNNOD	  6496
STOER1	  5661	  5666#
STOERC	  3094	  3162	  3191	  5658#	  5803	  6092	  6116	  6140	  6146	  6208	  6908
STONIC	   763	   788	   878	   903	  1478	  1929	  2219	  2305	  2356	  2414	  2457	  2518	  2560	  2756
	  3017#
STONIF	  3018
STONIM	  3018
STONIN	  3018
STONIT	  3018
STSLOP	  3639#	  3701
SWL010	  7011	  7019#
SWLENT	  7002
SWLNEW	  7002
SWLNOD	  7002
SWLOLD	  7002
SWPLST	  6948	  7002#
SWTAB	  4230	  4289#
SYRNCU	   377#	  5824
SYSNAM	   490#	  6186
T1	   510	   519	   520	   524	   528	   546	   549	   552	   556	   557	   563	   574	   577	   592
	   597	   598	   600	   604	   606	   614	   618	   622	   625	   626	   627	   629	   632	   638
	   641	   663	   669	   684	   698	   718	   728	   737	   752	   759	   760	   761	   766	   770
	   784	   785	   786	   791	   795	   809	   829	   839	   844	   847	   852	   867	   874	   875
	   876	   881	   885	   899	   900	   901	   906	   910	   921	   943	   944	   966	   971	   974
	   979	   981	   984	   988	   997	  1001	  1002	  1011	  1013	  1020	  1032	  1054	  1073	  1077
	  1078	  1087	  1089	  1100	  1104	  1105	  1114	  1116	  1130	  1131	  1139	  1143	  1146	  1148
	  1150	  1160	  1175	  1187	  1190	  1191	  1198	  1201	  1202	  1220	  1222	  1223	  1229	  1231
	  1244	  1246	  1247	  1253	  1255	  1266	  1297	  1304	  1305	  1310	  1312	  1316	  1321	  1322
	  1328	  1330	  1365	  1369	  1371	  1374	  1377	  1409	  1437	  1474	  1475	  1476	  1481	  1485
	  1496	  1509	  1511	  1519	  1525	  1528	  1530	  1536	  1540	  1541	  1542	  1544	  1548	  1549
	  1550	  1552	  1574	  1575	  1576	  1577	  1578	  1579	  1580	  1581	  1582	  1583	  1585	  1591
	  1593	  1594	  1596	  1597	  1600	  1700	  1711	  1722	  1739	  1753	  1755	  1764	  1776	  1778
	  1787	  1801	  1814	  1815	  1818	  1842	  1884	  1885	  1908	  1919	  1922	  1927	  1932	  1936
	  1949	  1966	  1968	  1972	  1977	  1983	  1986	  1988	  1994	  1998	  2001	  2002	  2005	  2006
	  2010	  2011	  2015	  2022	  2042	  2044	  2045	  2047	  2048	  2051	  2053	  2110	  2113	  2120
	  2122	  2123	  2135	  2137	  2146	  2163	  2172	  2178	  2179	  2182	  2188	  2209	  2212	  2217
	  2222	  2226	  2238	  2256	  2262	  2272	  2276	  2281	  2288	  2289	  2290	  2292	  2294	  2297
	  2303	  2308	  2312	  2323	  2339	  2340	  2343	  2346	  2353	  2354	  2359	  2363	  2375	  2394
	  2395	  2398	  2401	  2404	  2411	  2412	  2417	  2421	  2432	  2435	  2436	  2439	  2442	  2454
	  2455	  2459	  2463	  2464	  2475	  2481	  2492	  2494	  2501	  2502	  2504	  2506	  2510	  2516
	  2521	  2525	  2542	  2543	  2545	  2547	  2550	  2551	  2558	  2563	  2567	  2580	  2591	  2592
	  2593	  2594	  2600	  2602	  2603	  2604	  2607	  2611	  2615	  2629	  2641	  2643	  2644	  2645
	  2646	  2647	  2648	  2649	  2659	  2674	  2684	  2686	  2688	  2690	  2692	  2706	  2717	  2718
	  2721	  2725	  2742	  2753	  2754	  2759	  2763	  2775	  2790	  2805	  2810	  2815	  2818	  2819
	  2827	  2831	  2842	  2848	  2868	  2870	  2877	  2878	  2881	  2882	  2897	  2898	  2899	  2902
	  2906	  2910	  2913	  3020	  3021	  3023	  3029	  3030	  3031	  3032	  3033	  3034	  3038	  3039
	  3064	  3068	  3071	  3075	  3077	  3081	  3088	  3090	  3092	  3105	  3106	  3111	  3119	  3120
	  3123	  3127	  3146	  3149	  3158	  3163	  3178	  3182	  3183	  3185	  3189	  3209	  3213	  3214
	  3216	  3217	  3218	  3220	  3221	  3223	  3224	  3228	  3234	  3238	  3240	  3247	  3251	  3253
	  3257	  3270	  3271	  3276	  3289	  3301	  3317	  3318	  3326	  3331	  3351	  3355	  3359	  3393
	  3394	  3395	  3396	  3401	  3418	  3419	  3420	  3429	  3430	  3431	  3436	  3452	  3453	  3459
	  3460	  3462	  3469	  3471	  3477	  3484	  3486	  3487	  3495	  3497	  3499	  3501	  3503	  3505
	  3511	  3597	  3598	  3599	  3604	  3639	  3640	  3646	  3647	  3649	  3663	  3675	  3678	  3679
	  3715	  3716	  3717	  3722	  3726	  3727	  3733	  3734	  3736	  3741	  3743	  3756	  3764	  3780
	  3837	  3838	  3839	  3844	  3873	  3874	  3880	  3881	  3883	  3890	  3898	  3901	  3903	  3918
	  3921	  3922	  3924	  3929	  3933	  3951	  3952	  3955	  3966	  3967	  3976	  3977	  3978	  3981
	  4020	  4021	  4023	  4041	  4042	  4045	  4057	  4058	  4066	  4068	  4069	  4071	  4072	  4086
	  4087	  4090	  4119	  4124	  4132	  4137	  4145	  4149	  4150	  4173	  4207	  4208	  4247	  4249
	  4267	  4270	  4315	  4323	  4324	  4325	  4342	  4344	  4347	  4348	  4349	  4352	  4356	  4360
	  4364	  4365	  4395	  4407	  4422	  4441	  4446	  4473	  4477	  4515	  4517	  4548	  4553	  4558
	  4560	  4563	  4565	  4569	  4573	  4575	  4578	  4580	  4583	  4589	  4602	  4611	  4627	  4628
	  4634	  4635	  4639	  4640	  4650	  4651	  4655	  4662	  4668	  4674	  4685	  4691	  4692	  4694
	  4702	  4703	  4704	  4706	  4707	  4708	  4709	  4710	  4714	  4715	  4717	  4718	  4719	  4721
	  4728	  4729	  4730	  4735	  4743	  4750	  4761	  4765	  4777	  4788	  4809	  4816	  4829	  4836
	  4849	  4856	  4869	  4876	  4901	  4908	  4921	  4928	  4941	  4948	  4961	  4968	  4994	  5001
	  5007	  5014	  5021	  5027	  5032	  5037	  5042	  5047	  5052	  5056	  5062	  5065	  5067	  5077
	  5087	  5091	  5093	  5101	  5106	  5107	  5111	  5128	  5140	  5150	  5151	  5154	  5161	  5163
	  5166	  5172	  5175	  5179	  5184	  5185	  5188	  5189	  5193	  5194	  5218	  5220	  5240	  5244
	  5245	  5246	  5252	  5259	  5261	  5262	  5266	  5268	  5276	  5281	  5282	  5283	  5286	  5287
	  5289	  5290	  5312	  5313	  5328	  5329	  5330	  5332	  5333	  5334	  5335	  5343	  5344	  5352
	  5364	  5384	  5388	  5389	  5397	  5402	  5403	  5404	  5405	  5406	  5407	  5408	  5428	  5435
	  5436	  5437	  5438	  5456	  5460	  5461	  5462	  5464	  5466	  5468	  5469	  5472	  5474	  5494
	  5514	  5522	  5523	  5531	  5534	  5535	  5543	  5550	  5553	  5554	  5555	  5556	  5560	  5569
	  5570	  5572	  5575	  5576	  5578	  5584	  5592	  5640	  5642	  5658	  5659	  5660	  5662	  5663
	  5667	  5668	  5670	  5671	  5685	  5687	  5726	  5737	  5741	  5742	  5743	  5744	  5745	  5746
	  5747	  5748	  5750	  5751	  5761	  5769	  5782	  5786	  5789	  5790	  5791	  5793	  5794	  5795
	  5796	  5797	  5798	  5803	  5804	  5815	  5827	  5829	  5831	  5843	  5845	  5846	  5849	  5857
	  5864	  5875	  5890	  5891	  5892	  5893	  5897	  5908	  5915	  5925	  5937	  5938	  5939	  5951
	  5954	  5955	  5961	  5969	  5971	  5972	  5977	  5982	  5985	  5989	  5990	  5993	  5994	  6006
	  6007	  6008	  6009	  6011	  6012	  6014	  6019	  6021	  6026	  6031	  6034	  6038	  6042	  6054
	  6056	  6072	  6075	  6080	  6088	  6089	  6093	  6105	  6108	  6109	  6111	  6115	  6125	  6135
	  6140	  6146	  6152	  6156	  6157	  6158	  6160	  6162	  6166	  6168	  6171	  6177	  6182	  6183
	  6186	  6198	  6205	  6208	  6214	  6215	  6217	  6218	  6277	  6280	  6281	  6283	  6289	  6291
	  6294	  6296	  6298	  6303	  6306	  6311	  6313	  6316	  6498	  6499	  6506	  6507	  6513	  6514
	  6516	  6522	  6525	  6529	  6532	  6548	  6550	  6553	  6555	  6556	  6559	  6561	  6562	  6563
	  6564	  6579	  6587	  6596	  6599	  6607	  6608	  6610	  6611	  6612	  6622	  6623	  6625	  6626
	  6627	  6638	  6639	  6640	  6641	  6642	  6644	  6645	  6647	  6648	  6649	  6650	  6651	  6652
	  6653	  6654	  6658	  6685	  6688	  6689	  6696	  6697	  6700	  6703	  6706	  6709	  6710	  6711
	  6718	  6719	  6722	  6725	  6728	  6729	  6730	  6736	  6741	  6754	  6770	  6774	  6775	  6776
	  6781	  6782	  6787	  6790	  6793	  6810	  6814	  6818	  6833	  6848	  6849	  6852	  6853	  6854
	  6858	  6859	  6862	  6863	  6864	  6868	  6869	  6871	  6874	  6878	  6879	  6880	  6887	  6888
	  6889	  6890	  6895	  6896	  6897	  6898	  6899	  6900	  6901	  6902	  6903	  6904	  6908	  6909
	  6927	  6930	  6931	  6934	  6938	  6946	  6961	  6966	  6985	  6989	  7008	  7012	  7013	  7025
	  7039	  7040	  7043	  7055	  7056	  7086	  7093	  7097	  7113	  7116	  7120	  7124	  7125	  7128
	  7132	  7135	  7136	  7139	  7143	  7169	  7179	  7180	  7189	  7191	  7192	  7195	  7196	  7201
	  7211	  7212	  7215	  7230	  7231	  7242	  7246	  7249	  7254	  7259	  7263	  7264	  7267	  7269
	  7286	  7288	  7291	  7305	  7315	  7316	  7325	  7341	  7343	  7347	  7351	  7352	  7359	  7360
	  7375	  7378	  7381	  7382	  7386
T2	   511	   513	   515	   524	   525	   530	   531	   548	   551	   554	   557	   558	   559	   562
	   563	   574	   575	   581	   582	   594	   595	   610	   616	   634	   662	   665	   669	   694
	   714	   733	   758	   759	   768	   770	   783	   784	   793	   795	   805	   825	   848	   873
	   874	   883	   885	   898	   899	   908	   910	   917	   970	   973	   976	   985	  1028	  1049
	  1145	  1154	  1171	  1293	  1300	  1306	  1378	  1383	  1405	  1433	  1473	  1474	  1483	  1485
	  1492	  1523	  1531	  1538	  1539	  1540	  1541	  1542	  1546	  1547	  1548	  1549	  1550	  1555
	  1557	  1559	  1560	  1562	  1564	  1568	  1569	  1586	  1605	  1606	  1609	  1610	  1614	  1615
	  1618	  1624	  1628	  1631	  1635	  1638	  1639	  1642	  1647	  1650	  1654	  1663	  1664	  1667
	  1671	  1672	  1707	  1735	  1816	  1819	  1843	  1861	  1863	  1866	  1867	  1871	  1873	  1876
	  1882	  1883	  1909	  1910	  1911	  1912	  1918	  1920	  1921	  1934	  1936	  1945	  1981	  1989
	  1996	  2000	  2003	  2004	  2007	  2008	  2009	  2012	  2013	  2014	  2016	  2023	  2029	  2035
	  2060	  2061	  2064	  2065	  2066	  2070	  2073	  2076	  2085	  2089	  2091	  2102	  2158	  2180
	  2183	  2189	  2198	  2200	  2203	  2208	  2210	  2211	  2224	  2226	  2234	  2257	  2260	  2263
	  2264	  2291	  2292	  2293	  2294	  2295	  2298	  2299	  2300	  2310	  2312	  2319	  2351	  2352
	  2361	  2363	  2371	  2409	  2410	  2419	  2421	  2445	  2448	  2451	  2452	  2453	  2461	  2463
	  2503	  2504	  2505	  2506	  2507	  2511	  2512	  2513	  2523	  2525	  2544	  2545	  2546	  2547
	  2549	  2550	  2554	  2555	  2565	  2567	  2576	  2597	  2605	  2625	  2655	  2702	  2727	  2732
	  2734	  2736	  2737	  2741	  2742	  2744	  2751	  2752	  2761	  2763	  2771	  2786	  2829	  2871
	  2897	  2907	  2930	  2938	  2941	  2945	  2948	  2949	  2951	  2954	  2956	  2971	  2980	  2984
	  2988	  2992	  2993	  2996	  3000	  3002	  3020	  3021	  3022	  3024	  3028	  3031	  3035	  3040
	  3069	  3070	  3072	  3073	  3082	  3083	  3084	  3092	  3147	  3148	  3151	  3153	  3155	  3159
	  3164	  3167	  3169	  3170	  3172	  3174	  3175	  3225	  3229	  3278	  3290	  3291	  3302	  3305
	  3309	  3312	  3314	  3321	  3336	  3340	  3346	  3347	  3350	  3394	  3397	  3403	  3409	  3415
	  3418	  3420	  3430	  3432	  3437	  3442	  3446	  3454	  3455	  3461	  3464	  3470	  3474	  3478
	  3482	  3483	  3493	  3494	  3512	  3513	  3518	  3521	  3523	  3526	  3532	  3534	  3538	  3540
	  3543	  3548	  3552	  3554	  3558	  3560	  3563	  3567	  3570	  3572	  3574	  3576	  3578	  3580
	  3598	  3600	  3605	  3610	  3614	  3622	  3638	  3641	  3642	  3648	  3651	  3664	  3665	  3671
	  3680	  3684	  3688	  3692	  3696	  3697	  3698	  3699	  3716	  3718	  3723	  3728	  3729	  3735
	  3738	  3744	  3745	  3748	  3750	  3753	  3757	  3758	  3765	  3768	  3769	  3773	  3838	  3840
	  3845	  3850	  3854	  3862	  3872	  3875	  3876	  3882	  3885	  3891	  3892	  3896	  3899	  3900
	  3902	  3904	  3905	  3907	  3909	  3911	  3913	  3915	  3919	  3920	  3923	  3925	  3927	  3930
	  3933	  3934	  3938	  3939	  3940	  3941	  3957	  3958	  3982	  3983	  3998	  3999	  4024	  4025
	  4032	  4033	  4047	  4048	  4061	  4062	  4075	  4076	  4092	  4093	  4115	  4151	  4152	  4163
	  4168	  4171	  4172	  4174	  4175	  4177	  4178	  4206	  4207	  4208	  4210	  4212	  4215	  4219
	  4224	  4228	  4230	  4232	  4239	  4240	  4243	  4247	  4249	  4250	  4254	  4256	  4260	  4264
	  4267	  4268	  4270	  4271	  4275	  4279	  4345	  4347	  4348	  4357	  4361	  4396	  4400	  4402
	  4408	  4412	  4423	  4425	  4441	  4443	  4444	  4445	  4446	  4478	  4480	  4481	  4483	  4484
	  4486	  4492	  4493	  4494	  4497	  4498	  4500	  4501	  4503	  4504	  4506	  4507	  4509	  4522
	  4524	  4526	  4530	  4553	  4554	  4575	  4576	  4580	  4581	  4582	  4583	  4605	  4608	  4609
	  4641	  4645	  4669	  4675	  4701	  4711	  4744	  4780	  4782	  4784	  4788	  4810	  4817	  4830
	  4837	  4850	  4857	  4870	  4877	  4902	  4909	  4922	  4929	  4942	  4949	  4962	  4969	  4995
	  5002	  5015	  5022	  5033	  5037	  5043	  5047	  5055	  5056	  5068	  5078	  5090	  5091	  5092
	  5093	  5102	  5106	  5110	  5111	  5127	  5136	  5141	  5142	  5149	  5152	  5218	  5240	  5242
	  5243	  5244	  5246	  5248	  5250	  5251	  5256	  5262	  5263	  5266	  5267	  5270	  5273	  5274
	  5275	  5276	  5277	  5278	  5280	  5281	  5284	  5286	  5290	  5291	  5292	  5293	  5294	  5312
	  5331	  5332	  5336	  5337	  5339	  5341	  5342	  5347	  5352	  5354	  5355	  5374	  5375	  5376
	  5380	  5382	  5383	  5387	  5398	  5399	  5422	  5423	  5430	  5431	  5438	  5439	  5440	  5441
	  5442	  5443	  5465	  5466	  5467	  5468	  5489	  5490	  5491	  5493	  5509	  5510	  5511	  5513
	  5524	  5526	  5530	  5536	  5539	  5542	  5549	  5550	  5551	  5552	  5561	  5585	  5591	  5638
	  5643	  5647	  5666	  5671	  5672	  5687	  5688	  5691	  5695	  5696	  5697	  5698	  5699	  5700
	  5704	  5708	  5709	  5713	  5715	  5720	  5722	  5726	  5736	  5740	  5752	  5754	  5756	  5757
	  5758	  5759	  5764	  5765	  5766	  5780	  5781	  5783	  5792	  5793	  5795	  5796	  5799	  5865
	  5872	  5874	  5887	  5888	  5909	  5912	  5920	  5921	  5922	  5926	  5940	  5957	  5958	  5973
	  5974	  5978	  5979	  5983	  5985	  6015	  6022	  6027	  6035	  6037	  6043	  6057	  6059	  6090
	  6094	  6097	  6098	  6099	  6100	  6101	  6102	  6109	  6111	  6126	  6136	  6153	  6159	  6169
	  6179	  6180	  6199	  6206	  6216	  6247	  6248	  6251	  6252	  6255	  6256	  6259	  6260	  6263
	  6264	  6268	  6269	  6272	  6273	  6274	  6275	  6284	  6294	  6299	  6307	  6317	  6498	  6514
	  6515	  6523	  6555	  6562	  6582	  6597	  6643	  6644	  6645	  6646	  6647	  6676	  6690	  6712
	  6731	  6756	  6781	  6785	  6788	  6789	  6791	  6805	  6806	  6807	  6808	  6809	  6815	  6816
	  6834	  6838	  6840	  6841	  6843	  6844	  6850	  6851	  6860	  6861	  6870	  6891	  6896	  6898
	  6899	  6903	  6939	  6940	  6947	  6978	  6980	  6982	  6983	  6984	  7009	  7023	  7024	  7039
	  7055	  7094	  7121	  7133	  7165	  7170	  7171	  7178	  7232	  7236	  7239	  7243	  7247	  7255
	  7285	  7286	  7306	  7307	  7310	  7373	  7374
T3	   532	   635	   666	   695	   715	   734	   753	   758	   761	   762	   783	   786	   787	   806
	   826	   849	   868	   873	   876	   877	   898	   901	   902	   918	   985	   986	  1029	  1050
	  1156	  1172	  1294	  1301	  1307	  1379	  1406	  1434	  1473	  1476	  1477	  1493	  1634	  1642
	  1643	  1708	  1736	  1822	  1825	  1827	  1829	  1833	  1835	  1850	  1854	  1864	  1872	  1887
	  1889	  1890	  1894	  1896	  1897	  1901	  1903	  1904	  1907	  1908	  1918	  1927	  1928	  1946
	  2024	  2025	  2030	  2031	  2036	  2037	  2058	  2062	  2067	  2071	  2074	  2077	  2086	  2092
	  2103	  2159	  2194	  2199	  2208	  2217	  2218	  2235	  2258	  2281	  2298	  2303	  2304	  2320
	  2350	  2354	  2355	  2372	  2408	  2412	  2413	  2443	  2451	  2455	  2456	  2508	  2511	  2516
	  2517	  2553	  2558	  2559	  2577	  2599	  2626	  2656	  2703	  2728	  2733	  2750	  2754	  2755
	  2772	  2787	  2818	  2869	  2907	  2913	  2933	  2939	  2942	  2946	  2952	  2958	  2974	  2981
	  2985	  2989	  2994	  2997	  3004	  3025	  3026	  3036	  3041	  3043	  3085	  3086	  3150	  3169
	  3172	  3174	  3226	  3283	  3292	  3296	  3297	  3303	  3306	  3310	  3315	  3319	  3337	  3341
	  3348	  3397	  3402	  3404	  3410	  3432	  3435	  3439	  3443	  3449	  3456	  3461	  3462	  3463
	  3466	  3471	  3475	  3488	  3489	  3507	  3508	  3515	  3519	  3528	  3544	  3547	  3565	  3600
	  3603	  3607	  3611	  3619	  3643	  3648	  3649	  3650	  3653	  3658	  3659	  3660	  3667	  3694
	  3718	  3721	  3724	  3730	  3735	  3736	  3737	  3745	  3751	  3754	  3770	  3771	  3774	  3840
	  3843	  3847	  3851	  3859	  3877	  3882	  3883	  3884	  3889	  3916	  3929	  3930	  3936	  3984
	  3988	  4027	  4116	  4170	  4173	  4175	  4209	  4210	  4212	  4213	  4220	  4221	  4230	  4231
	  4241	  4260	  4261	  4268	  4275	  4276	  4309	  4312	  4321	  4324	  4325	  4358	  4397	  4413
	  4426	  4524	  4525	  4526	  4590	  4603	  4610	  4642	  4643	  4653	  4670	  4676	  4745	  4746
	  4747	  4748	  4782	  4783	  4784	  4811	  4818	  4831	  4838	  4851	  4858	  4871	  4878	  4903
	  4910	  4923	  4930	  4943	  4950	  4963	  4970	  4996	  5003	  5016	  5023	  5034	  5037	  5044
	  5047	  5069	  5103	  5106	  5126	  5143	  5149	  5157	  5158	  5248	  5249	  5250	  5253	  5255
	  5263	  5270	  5271	  5272	  5274	  5282	  5287	  5288	  5289	  5292	  5293	  5339	  5340	  5341
	  5345	  5347	  5350	  5358	  5361	  5366	  5367	  5369	  5371	  5373	  5374	  5377	  5379	  5380
	  5381	  5382	  5400	  5421	  5422	  5431	  5440	  5441	  5443	  5469	  5470	  5473	  5474	  5492
	  5512	  5525	  5527	  5529	  5537	  5538	  5541	  5557	  5586	  5590	  5637	  5648	  5686	  5693
	  5706	  5710	  5716	  5724	  5767	  5769	  5770	  5771	  5772	  5784	  5786	  5787	  5788	  5866
	  5873	  5874	  5919	  5921	  5953	  5954	  5962	  5975	  5980	  5984	  5986	  6023	  6028	  6044
	  6098	  6100	  6101	  6154	  6158	  6159	  6164	  6169	  6173	  6180	  6183	  6278	  6285	  6290
	  6300	  6308	  6318	  6500	  6556	  6585	  6598	  6755	  6756	  6787	  6790	  6791	  6872	  6986
	  6987	  7021	  7022	  7023	  7070	  7122	  7172	  7178	  7186	  7233	  7257	  7375	  7376	  7378
	  7379	  7381	  7383	  7386	  7387
T4	   612	   614	   662	   663	   757	   782	   872	   897	   942	   944	  1468	  1472	  1533	  1536
	  1544	  1588	  1590	  1593	  1596	  1600	  1619	  1627	  1640	  1655	  1668	  1669	  1817	  1818
	  1820	  1827	  1835	  1838	  1840	  1842	  1991	  1994	  1998	  2018	  2026	  2027	  2032	  2033
	  2038	  2039	  2041	  2044	  2047	  2053	  2059	  2079	  2080	  2083	  2085	  2096	  2181	  2182
	  2184	  2187	  2188	  2301	  2302	  2342	  2343	  2345	  2346	  2347	  2348	  2397	  2398	  2400
	  2401	  2403	  2404	  2405	  2406	  2438	  2439	  2441	  2442	  2449	  2450	  2514	  2515	  2556
	  2557	  2720	  2721	  2724	  2725	  2748	  2749	  2795	  2796	  2800	  2821	  2823	  2824	  2862
	  2863	  2867	  2904	  2905	  3033	  3039	  3042	  3043	  3044	  3102	  3103	  3105	  3106	  3109
	  3298	  3299	  3300	  3322	  3323	  3330	  3481	  3484	  3485	  3486	  3487	  3492	  3495	  3496
	  3497	  3498	  3499	  3500	  3501	  3502	  3503	  3504	  3505	  3506	  3568	  3569	  3571	  3573
	  3657	  3658	  3659	  3665	  3678	  3683	  3687	  3691	  3761	  3766	  3767	  3769	  3770	  3773
	  3901	  3906	  3908	  3910	  3912	  3914	  3924	  3925	  3928	  4016	  4018	  4021	  4066	  4072
	  4164	  4166	  4309	  4310	  4312	  4313	  4319	  4321	  4322	  4398	  4414	  4427	  4591	  4606
	  4608	  4645	  4646	  4647	  4649	  4650	  4651	  4671	  4677	  4812	  4819	  4822	  4832	  4839
	  4842	  4852	  4859	  4862	  4872	  4879	  4882	  4904	  4911	  4914	  4924	  4931	  4934	  4944
	  4951	  4954	  4964	  4971	  4974	  4997	  5004	  5017	  5024	  5035	  5037	  5045	  5047	  5065
	  5066	  5070	  5071	  5077	  5086	  5104	  5106	  5154	  5155	  5253	  5254	  5255	  5256	  5258
	  5259	  5261	  5269	  5271	  5272	  5273	  5275	  5278	  5329	  5331	  5354	  5355	  5356	  5359
	  5360	  5361	  5363	  5364	  5365	  5366	  5369	  5370	  5371	  5372	  5375	  5376	  5377	  5420
	  5424	  5436	  5437	  5635	  5636	  5690	  5702	  5703	  5749	  5751	  5757	  5759	  5760	  5761
	  5765	  5770	  5771	  5772	  5781	  5782	  5787	  5788	  5879	  5880	  5882	  5883	  5884	  5988
	  5990	  5991	  5992	  6027	  6035	  6054	  6059	  6150	  6151	  6179	  6182	  6186	  6187	  6279
	  6286	  6549	  6560	  6578	  6579	  6581	  6582	  6584	  6585	  6591	  6639	  6640	  6642	  6657
	  6658	  6837	  6838	  6839	  6840	  6842	  6843	  6979	  6980	  6981	  6982	  6983	  6984	  6985
	  6987	  6988	  7019	  7020	  7022	  7296	  7297	  7301	  7382	  7384
TL%EXM	  6785	  7070	  7310
TOP0	  4992#	  6455
TOP1	  5012#	  6458
TOPCHB	  6476#
TOPCHK	  7082#
TOPCHM	  6477#
TOPCHN	  5920	  5926	  6444#	  6463	  6476
TOPFRE	   380#	  5164	  5167	  7193	  7197
TOPI.1	  5038	  5860#
TOPI.2	  5858	  5864#
TOPINI	  5828	  5853#
TOPINL	  5885#	  5889	  5892	  5896
TOPINT	  5008	  5028	  5121#
TOPINX	  5145	  5153	  5156	  5160	  5165	  5184#
TOPLGY	  6677	  6754#	  7287
TOPLNK	  7114	  7224#
TOPLVL	  4991	  5011	  5042	  6455	  6458	  6464
TOPMAX	  4986	  6446	  6463	  6476	  6477
TOPOUT	  5885	  5897#
TOPSET	  5178	  5192	  5856	  5908#
TOPSRV	   469#	  5128	  5140	  5175	  5188	  5915
TOPTAB	   468#	  7006	  7008	  7025	  7028	  7040	  7056	  7192	  7196
TOPTIM	  5865
TOPVR0	  5854
TPIERR	  5121
TPIHST	  5121
TPIPAG	  5121
TPL010	  7254#	  7261
TPL050	  7258	  7269#
TPLLNK	  7225
TPLNOD	  7225
TPLSTR	  7225
TRACE	   422	   422#	  5219	  5230	  5314
TRMLOG	  2777	  2796#
TRMREQ	   650	  2769#
TRMRTB	  2771	  2777#	  2779
TRMRTL	  2772	  2779#
TSTTOP	  6967	  7055#
ULKNOD	  5506#
ULNMSK	  5506
UPDNOD	  5162	  7190	  7278#
UPND10	  7305#	  7319
UPND20	  7309	  7311	  7319#
UPND30	  7298	  7325#
UPNLST	  7278
UPNPAG	  7278
VARCHN	  6483#	  6485
VNETCO	  7395
WAKBK1	   550	   553	   557#
WAKBKG	   546#	  4737	  5058	  5095	  5113
WATINS	   515	   540#
WRNING	   535	   619	  2610	  2618	  3232	  3354	  3358	  4368	  4417	  4430	  4764	  5174	  5177	  5187
	  5191	  5636#	  5803	  5806	  5827	  5829	  5831	  6162	  6166	  6171	  6876	  6908	  6911	  7127
	  7138	  7145	  7203	  7214	  7266	  7290	  7327
WT.NDA	  5758
WT.NFO	  5758
WT.SJI	  5758
WTHRTB	  2702	  2709#	  2712
WTHRTL	  2703	  2712#
ZZ	  4800#	  4806	  4825	  4825#	  4826	  4845	  4845#	  4846	  4865	  4865#	  4866	  4885	  4885#	  4892#
	  4898	  4917	  4917#	  4918	  4937	  4937#	  4938	  4957	  4957#	  4958	  4977	  4977#	  4985#	  4991
	  5010	  5010#	  5011	  5030	  5030#	  6367#	  6370	  6370#	  6383#	  6392	  6395	  6395#	  6398	  6398#
	  6401	  6401#	  6404	  6404#	  6421#	  6430	  6433	  6433#	  6436	  6436#	  6439	  6439#	  6442	  6442#
	  6445#	  6454	  6457	  6457#	  6460	  6460#
$ATOHL	  5935#
$BTDBL	  1962#
$BTDFI	  1962#
$BTDPA	  1962#
$BTLBL	  1505#
$BTLFI	  1505#
$BTLPA	  1505#
$CHKNI	  4391#
$CKTNO	  7082#
$CNTMS	  2279#
$CPYAD	  4626#
$CPYFR	  4626#
$CPYLE	  4626#
$DISKE	   801#
$DISLI	   801#
$DISMS	   801#
$DMMY	  5861#
$DMPHL	  6669#
$DMPRF	  2129#
$DMPRM	  2129#
$DMPTO	  6669#
$DOFKT	  3205#
$DOJFD	  3267#
$DOJHL	  3267#
$DORCT	  3267#
$DORMS	  3267#
$DORTX	  3267#
$EDLCK	  5547#
$ENAKE	   690#
$ENALI	   690#
$ENAMS	   690#
$ENQJF	  6004#
$ERROR	  5683#
$EXEST	  2254#
$FCLFR	  6542#
$FCLLI	  6542#
$FCLNI	  6542#
$FINMS	  4339#
$FINRQ	  4305#
$FOCNA	   682#
$FRLLS	  7336#
$GETJF	  6086#
$GETSR	  3144#
$HELLO	  6195#
$IRQER	  2798#
$IRQFL	  2798#
$IRQNO	  2798#
$JFDNU	  5084#
$LCJCT	  3713#
$LCJPT	  3713#
$LCLPR	   962#
$LCLSC	   962#
$LCRCT	  3713#
$LCRMS	  3713#
$LCRTY	  3713#
$LKNMS	  5486#
$LNJCT	  3427#
$LNJCV	  3427#
$LNJHS	  3427#
$LNJLE	  3427#
$LNJNU	  3427#
$LNJPT	  3427#
$LNJRV	  3427#
$LNJST	  3427#
$LNJSY	  3427#
$LNRCT	  3427#
$LNRMS	  3427#
$LNSMS	  1466#
$LOARB	  1684#
$LOARC	  1684#
$LOARF	  1684#
$LOARH	  1684#
$LOARM	  1684#
$LOARN	  1684#
$LOARS	  1684#
$LOPBY	  2637#
$LOPCN	  2637#
$LOPHL	  3391#
$LOPLI	  2637#
$LOPLN	  2637#
$LOPMS	  2637#
$LOPWT	  2637#
$LSJCN	  3870#
$LSJCT	  3870#
$LSJLI	  3870#
$LSJMS	  3870#
$LSJPT	  3870#
$LSRCT	  3835#
$LSRPT	  3835#
$LTLOG	  2877#	  2881#
$LTNIB	  1160#
$LTUSE	  6550#	  6563#
$MNDBL	  6976#
$MNIER	  7107#
$MNIHL	  7108#
$MNIHS	  7108#
$MNIID	  7107#
$MNILN	  7108#
$MNILS	  7108#
$MNINO	  7107#
$MNIPA	  7107#
$NBINI	  6636#
$NDDIP	  2206#	  6697#	  6709#
$NDDMP	  1077#	  1089#
$NDDOK	  1085#	  2214#	  6703#	  6722#
$NDFLG	  6648#
$NDFRD	  1418#	  1425#	  6651#	  6706#
$NDFRL	  1446#	  1453#	  6653#	  6725#
$NDLIN	  6548#	  6658#
$NDLIP	  1916#	  6700#	  6719#	  6728#
$NDLOD	  1104#	  1116#
$NDLOK	  1112#	  1924#
$NDNAM	  1850#	  2194#	  6644#	  6711#	  6730#	  6781#	  6810#
$NDPHT	  1198#	  1200#	  1246#	  1255#	  1894#	  6647#
$NDPNA	  1187#	  1189#	  1222#	  1231#	  1887#	  6645#
$NDPNU	  1209#	  1266#	  1901#	  6650#
$NDPRO	  1054#	  6649#
$NDPST	  1056#
$NDSL1	  1143#	  1154#
$NDSL2	  1145#	  1156#
$NDSRV	  1130#	  1148#	  1150#	  7093#
$NHSNO	  1239#
$NNMNO	  1215#
$NQCHR	  4500#	  4573#
$NQFCN	  4506#	  4580#
$NQMES	  3000#	  4480#	  4558#
$NQNUM	  2984#	  4503#	  4575#
$NQOPT	  4509#	  4578#
$NQPNT	  2978#	  4511#	  4517#	  4524#	  4530#	  4553#
$NQREQ	  4488#	  4569#
$NQRQT	  4497#	  4565#
$NQTXT	  4492#	  4563#
$NQXTR	  2992#	  4483#	  4560#
$OPRMS	  5734#
$PBLEN	  3957#	  3998#	  4027#	  4032#	  4047#	  4061#	  4075#	  4092#	  4177#	  6853#	  6863#	  6879#	  6890#
$PBTYP	  3951#	  3966#	  3976#	  4020#	  4041#	  4057#	  4068#	  4086#	  4168#	  6849#	  6859#	  6869#	  6888#
$PBVAL	  3955#	  4045#	  4090#	  4170#	  6851#	  6861#
$PGCPU	  6581#	  6597#
$PGFIL	  1321#	  1330#
$PGLDV	  5990#	  6578#	  6596#
$PGPGM	  6584#	  6598#
$PLICT	  4104#
$PLIDE	  4104#
$PLIST	  4104#
$PLIUN	  4104#
$PRTLI	  2895#
$PRTSA	  2895#
$PRUNE	  6923#
$PRUNO	  6923#
$PRUOL	  6923#
$QUEFC	  4472#
$QUEFL	   614#	   770#	   795#	   885#	   910#	  1485#	  1936#	  2226#	  2312#	  2363#	  2421#	  2463#	  2525#	  2567#
	  2763#	  4309#
$QUEME	   592#	  3270#	  4321#	  4701#	  4717#	  4761#	  5093#
$QUENC	  4472#
$QUEPN	   524#	  4734#	  4777#	  4782#	  4788#
$QUETY	   574#	  4312#	  4694#	  5056#	  5091#	  5111#
$RCVPD	  4683#
$RMVNO	  6957#
$RSJCN	  3595#
$RSJPT	  3595#
$RSRCN	  3635#
$RSRCT	  3635#
$RSRMS	  3635#
$RSRPT	  3635#
$RTPER	  7159#
$RTPHS	  7159#
$RTPLN	  7159#
$RTPPA	  7159#
$SDFFI	  1069#
$SFLFI	  1289#
$SHDMS	  2389#
$SHLLI	  2488#
$SHNMS	  2427#
$SHNNO	  2427#
$SHOMS	  2488#
$SLFFI	  1096#
$SLSMS	  2334#
$SNDBL	  6830#
$SNDFN	  6830#
$SNDHL	  6830#
$SNDNA	  6830#
$SNDNI	  3063#
$SNLMS	  2531#
$SNSNO	  1127#
$SQNPA	  2586#
$STLFL	  2865#
$STLLI	  2865#
$STLNI	  2865#
$STNNI	  6496#
$STNNO	  6496#
$STONI	  3018#
$SWLEN	  7002#
$SWLNE	  7002#
$SWLNO	  7002#
$SWLOL	  7002#
$TOPVR	  5854#
$TPIER	  5121#
$TPIHS	  5121#
$TPIPA	  5121#
$TPLLN	  7225#
$TPLNO	  7225#
$TPLST	  7225#
$ULNMS	  5506#
$UPNLS	  7278#
$UPNPA	  7278#
%AR.LE	  5771	  5772	  5788	  5789
%AR.TY	  5765	  5766	  5781	  5782
%LO%RO	  1835	  1836
%LO%TG	  1827	  1828
%LTLOG	  2877	  2881
%LTNIB	  1160
%LTUSE	  6550	  6563
%MF.SU	   597	   598
%MO%CD	  3172	  3173	  5921	  5922	  6098	  6099
%MO%DA	  3169	  3170	  6101	  6102
%MO%IN	  3174	  3175	  6100	  6101
%MS.CN	  3020	  3021	  4347	  4348	  6840	  6841
%MS.TY	   594	   595	  6838	  6839
%NDDIP	  2206	  6697	  6709
%NDDMP	  1077	  1089
%NDDOK	  1085	  2214	  6703	  6722
%NDFLG	  6648
%NDFRD	  1418	  1425	  6651	  6706
%NDFRL	  1446	  1453	  6653	  6725
%NDLIN	  6548	  6658
%NDLIP	  1916	  6700	  6719	  6728
%NDLOD	  1104	  1116
%NDLOK	  1112	  1924
%NDNAM	  1850	  2194	  6644	  6711	  6730	  6781	  6810
%NDPHT	  1198	  1200	  1246	  1255	  1894	  6647
%NDPNA	  1187	  1189	  1222	  1231	  1887	  6645
%NDPNU	  1209	  1266	  1901	  6650
%NDPRO	  1054	  6649
%NDPST	  1056
%NDSL1	  1143	  1154
%NDSL2	  1145	  1156
%NDSRV	  1130	  1148	  1150	  7093
%NQCHR	  4500	  4573
%NQFCN	  4506	  4580
%NQMES	  3000	  4480	  4558
%NQNUM	  2984	  4503	  4575
%NQOPT	  4509	  4578
%NQPNT	  2978	  4511	  4517	  4524	  4530	  4553
%NQREQ	  4488	  4569
%NQRQT	  4497	  4565
%NQTXT	  4492	  4563
%NQXTR	  2992	  4483	  4560
%PBLEN	  3957	  3998	  4027	  4032	  4047	  4061	  4075	  4092	  4177	  6853	  6863	  6879	  6890
%PBTYP	  3951	  3966	  3976	  4020	  4041	  4057	  4068	  4086	  4168	  6849	  6859	  6869	  6888
%PBVAL	  3955	  4045	  4090	  4170	  6851	  6861
%PGCPU	  6581	  6597
%PGFIL	  1321	  1330
%PGLDV	  5990	  6578	  6596
%PGPGM	  6584	  6598
%QUEFL	   614	   770	   795	   885	   910	  1485	  1936	  2226	  2312	  2363	  2421	  2463	  2525	  2567
	  2763	  4309
%QUEME	   592	  3270	  4321	  4701	  4717	  4761	  5093
%QUEPN	   524	  4734	  4777	  4782	  4788
%QUETY	   574	  4312	  4694	  5056	  5091	  5111
..ACT	  1056#	  1056	  1085#	  1085	  1112#	  1112	  1418#	  1418	  1425#	  1425	  1446#	  1446	  1453#	  1453
	  1916#	  1916	  1924#	  1924	  2206#	  2206	  2214#	  2214	  2877#	  2877	  2881#	  2881	  4488#	  4488
	  4569#	  4569	  6550#	  6550	  6563#	  6563	  6651#	  6651	  6653#	  6653	  6697#	  6697	  6700#	  6700
	  6703#	  6703	  6706#	  6706	  6709#	  6709	  6719#	  6719	  6722#	  6722	  6725#	  6725	  6728#	  6728
..CSC	   524#	   524	   525	   525#	   574#	   574	   575	   575#	   592#	   592	   593	   593#	   594#	   594
	   595	   595#	   597#	   597	   598	   598#	   614#	   614	   615	   615#	   770#	   770	   771	   771#
	   795#	   795	   796	   796#	   885#	   885	   886	   886#	   910#	   910	   911	   911#	  1054#	  1054
	  1055	  1055#	  1056#	  1056	  1058	  1058#	  1077#	  1077	  1078	  1078#	  1085#	  1085	  1087	  1087#
	  1089#	  1089	  1090	  1090#	  1104#	  1104	  1105	  1105#	  1112#	  1112	  1114	  1114#	  1116#	  1116
	  1117	  1117#	  1130#	  1130	  1131	  1131#	  1143#	  1143	  1144	  1144#	  1145#	  1145	  1146	  1146#
	  1148#	  1148	  1149	  1149#	  1150#	  1150	  1151	  1151#	  1154#	  1154	  1155	  1155#	  1156#	  1156
	  1157	  1157#	  1160#	  1160	  1161	  1161#	  1187#	  1187	  1188	  1188#	  1189#	  1189	  1190	  1190#
	  1198#	  1198	  1199	  1199#	  1200#	  1200	  1201	  1201#	  1209#	  1209	  1210	  1210#	  1222#	  1222
	  1223	  1223#	  1231#	  1231	  1232	  1232#	  1246#	  1246	  1247	  1247#	  1255#	  1255	  1256	  1256#
	  1266#	  1266	  1267	  1267#	  1321#	  1321	  1322	  1322#	  1330#	  1330	  1331	  1331#	  1418#	  1418
	  1420	  1420#	  1425#	  1425	  1427	  1427#	  1446#	  1446	  1448	  1448#	  1453#	  1453	  1455	  1455#
	  1485#	  1485	  1486	  1486#	  1827#	  1827	  1828	  1828#	  1835#	  1835	  1836	  1836#	  1850#	  1850
	  1851	  1851#	  1887#	  1887	  1888	  1888#	  1894#	  1894	  1895	  1895#	  1901#	  1901	  1902	  1902#
	  1916#	  1916	  1918	  1918#	  1924#	  1924	  1927	  1927#	  1936#	  1936	  1937	  1937#	  2194#	  2194
	  2195	  2195#	  2206#	  2206	  2208	  2208#	  2214#	  2214	  2217	  2217#	  2226#	  2226	  2227	  2227#
	  2312#	  2312	  2313	  2313#	  2363#	  2363	  2364	  2364#	  2421#	  2421	  2422	  2422#	  2463#	  2463
	  2464	  2464#	  2525#	  2525	  2526	  2526#	  2567#	  2567	  2568	  2568#	  2763#	  2763	  2764	  2764#
	  2877#	  2877	  2879	  2879#	  2881#	  2881	  2883	  2883#	  2978#	  2978	  2979	  2979#	  2984#	  2984
	  2985	  2985#	  2992#	  2992	  2993	  2993#	  3000#	  3000	  3001	  3001#	  3020#	  3020	  3021	  3021#
	  3169#	  3169	  3170	  3170#	  3172#	  3172	  3173	  3173#	  3174#	  3174	  3175	  3175#	  3270#	  3270
	  3271	  3271#	  3951#	  3951	  3952	  3952#	  3955#	  3955	  3956	  3956#	  3957#	  3957	  3958	  3958#
	  3966#	  3966	  3967	  3967#	  3976#	  3976	  3977	  3977#	  3998#	  3998	  3999	  3999#	  4020#	  4020
	  4021	  4021#	  4027#	  4027	  4028	  4028#	  4032#	  4032	  4033	  4033#	  4041#	  4041	  4042	  4042#
	  4045#	  4045	  4046	  4046#	  4047#	  4047	  4048	  4048#	  4057#	  4057	  4058	  4058#	  4061#	  4061
	  4062	  4062#	  4068#	  4068	  4069	  4069#	  4075#	  4075	  4076	  4076#	  4086#	  4086	  4087	  4087#
	  4090#	  4090	  4091	  4091#	  4092#	  4092	  4093	  4093#	  4168#	  4168	  4169	  4169#	  4170#	  4170
	  4171	  4171#	  4177#	  4177	  4178	  4178#	  4309#	  4309	  4310	  4310#	  4312#	  4312	  4313	  4313#
	  4321#	  4321	  4322	  4322#	  4347#	  4347	  4348	  4348#	  4480#	  4480	  4481	  4481#	  4483#	  4483
	  4484	  4484#	  4488#	  4488	  4490	  4490#	  4492#	  4492	  4493	  4493#	  4497#	  4497	  4498	  4498#
	  4500#	  4500	  4501	  4501#	  4503#	  4503	  4504	  4504#	  4506#	  4506	  4507	  4507#	  4509#	  4509
	  4510	  4510#	  4511#	  4511	  4512	  4512#	  4517#	  4517	  4518	  4518#	  4524#	  4524	  4525	  4525#
	  4530#	  4530	  4531	  4531#	  4553#	  4553	  4554	  4554#	  4558#	  4558	  4559	  4559#	  4560#	  4560
	  4561	  4561#	  4563#	  4563	  4564	  4564#	  4565#	  4565	  4566	  4566#	  4569#	  4569	  4572	  4572#
	  4573#	  4573	  4574	  4574#	  4575#	  4575	  4576	  4576#	  4578#	  4578	  4579	  4579#	  4580#	  4580
	  4581	  4581#	  4694#	  4694	  4695	  4695#	  4701#	  4701	  4702	  4702#	  4717#	  4717	  4718	  4718#
	  4734#	  4734	  4735	  4735#	  4761#	  4761	  4762	  4762#	  4777#	  4777	  4778	  4778#	  4782#	  4782
	  4783	  4783#	  4788#	  4788	  4789	  4789#	  5056#	  5056	  5057	  5057#	  5091#	  5091	  5092	  5092#
	  5093#	  5093	  5094	  5094#	  5111#	  5111	  5112	  5112#	  5765#	  5765	  5766	  5766#	  5771#	  5771
	  5772	  5772#	  5781#	  5781	  5782	  5782#	  5788#	  5788	  5789	  5789#	  5921#	  5921	  5922	  5922#
	  5990#	  5990	  5991	  5991#	  6098#	  6098	  6099	  6099#	  6100#	  6100	  6101	  6101#	  6102	  6102#
	  6548#	  6548	  6549	  6549#	  6550#	  6550	  6552	  6552#	  6563#	  6563	  6565	  6565#	  6578#	  6578
	  6579	  6579#	  6581#	  6581	  6582	  6582#	  6584#	  6584	  6585	  6585#	  6596#	  6596	  6597	  6597#
	  6598	  6598#	  6599	  6599#	  6644#	  6644	  6645	  6645#	  6646	  6646#	  6647#	  6647	  6648	  6648#
	  6649	  6649#	  6650	  6650#	  6651	  6651#	  6653	  6653#	  6655	  6655#	  6658#	  6658	  6659	  6659#
	  6697#	  6697	  6700	  6700#	  6703	  6703#	  6706	  6706#	  6709	  6709#	  6711	  6711#	  6712	  6712#
	  6719#	  6719	  6722	  6722#	  6725	  6725#	  6728	  6728#	  6730	  6730#	  6731	  6731#	  6781#	  6781
	  6782	  6782#	  6810#	  6810	  6811	  6811#	  6838#	  6838	  6839	  6839#	  6840#	  6840	  6841	  6841#
	  6849#	  6849	  6850	  6850#	  6851#	  6851	  6852	  6852#	  6853#	  6853	  6854	  6854#	  6859#	  6859
	  6860	  6860#	  6861#	  6861	  6862	  6862#	  6863#	  6863	  6864	  6864#	  6869#	  6869	  6870	  6870#
	  6879#	  6879	  6880	  6880#	  6888#	  6888	  6889	  6889#	  6890#	  6890	  6891	  6891#	  7093#	  7093
	  7094	  7094#
..CSN	   524#	   524	   574#	   574	   592#	   592	   594#	   594	   597#	   597	   614#	   614	   770#	   770
	   795#	   795	   885#	   885	   910#	   910	  1054#	  1054	  1056#	  1056	  1077#	  1077	  1085#	  1085
	  1089#	  1089	  1104#	  1104	  1112#	  1112	  1116#	  1116	  1130#	  1130	  1143#	  1143	  1145#	  1145
	  1148#	  1148	  1150#	  1150	  1154#	  1154	  1156#	  1156	  1160#	  1160	  1187#	  1187	  1189#	  1189
	  1198#	  1198	  1200#	  1200	  1209#	  1209	  1222#	  1222	  1231#	  1231	  1246#	  1246	  1255#	  1255
	  1266#	  1266	  1321#	  1321	  1330#	  1330	  1418#	  1418	  1425#	  1425	  1446#	  1446	  1453#	  1453
	  1485#	  1485	  1827#	  1827	  1835#	  1835	  1850#	  1850	  1887#	  1887	  1894#	  1894	  1901#	  1901
	  1916#	  1916	  1924#	  1924	  1936#	  1936	  2194#	  2194	  2206#	  2206	  2214#	  2214	  2226#	  2226
	  2312#	  2312	  2363#	  2363	  2421#	  2421	  2463#	  2463	  2525#	  2525	  2567#	  2567	  2763#	  2763
	  2877#	  2877	  2881#	  2881	  2978#	  2978	  2984#	  2984	  2992#	  2992	  3000#	  3000	  3020#	  3020
	  3169#	  3169	  3172#	  3172	  3174#	  3174	  3270#	  3270	  3951#	  3951	  3955#	  3955	  3957#	  3957
	  3966#	  3966	  3976#	  3976	  3998#	  3998	  4020#	  4020	  4027#	  4027	  4032#	  4032	  4041#	  4041
	  4045#	  4045	  4047#	  4047	  4057#	  4057	  4061#	  4061	  4068#	  4068	  4075#	  4075	  4086#	  4086
	  4090#	  4090	  4092#	  4092	  4168#	  4168	  4170#	  4170	  4177#	  4177	  4309#	  4309	  4312#	  4312
	  4321#	  4321	  4347#	  4347	  4480#	  4480	  4483#	  4483	  4488#	  4488	  4492#	  4492	  4497#	  4497
	  4500#	  4500	  4503#	  4503	  4506#	  4506	  4509#	  4509	  4511#	  4511	  4517#	  4517	  4524#	  4524
	  4530#	  4530	  4553#	  4553	  4558#	  4558	  4560#	  4560	  4563#	  4563	  4565#	  4565	  4569#	  4569
	  4573#	  4573	  4575#	  4575	  4578#	  4578	  4580#	  4580	  4694#	  4694	  4701#	  4701	  4717#	  4717
	  4734#	  4734	  4761#	  4761	  4777#	  4777	  4782#	  4782	  4788#	  4788	  5056#	  5056	  5091#	  5091
	  5093#	  5093	  5111#	  5111	  5765#	  5765	  5771#	  5771	  5781#	  5781	  5788#	  5788	  5921#	  5921
	  5990#	  5990	  6098#	  6098	  6100#	  6100	  6101#	  6101	  6548#	  6548	  6550#	  6550	  6563#	  6563
	  6578#	  6578	  6581#	  6581	  6584#	  6584	  6596#	  6596	  6597#	  6597	  6598#	  6598	  6644#	  6644
	  6645#	  6645	  6647#	  6647	  6648#	  6648	  6649#	  6649	  6650#	  6650	  6651#	  6651	  6653#	  6653
	  6658#	  6658	  6697#	  6697	  6700#	  6700	  6703#	  6703	  6706#	  6706	  6709#	  6709	  6711#	  6711
	  6719#	  6719	  6722#	  6722	  6725#	  6725	  6728#	  6728	  6730#	  6730	  6781#	  6781	  6810#	  6810
	  6838#	  6838	  6840#	  6840	  6849#	  6849	  6851#	  6851	  6853#	  6853	  6859#	  6859	  6861#	  6861
	  6863#	  6863	  6869#	  6869	  6879#	  6879	  6888#	  6888	  6890#	  6890	  7093#	  7093
..IFT	  1056#	  1056	  1058#	  1058	  1085#	  1085	  1087#	  1087	  1112#	  1112	  1114#	  1114	  1418#	  1418
	  1420#	  1420	  1425#	  1425	  1427#	  1427	  1446#	  1446	  1448#	  1448	  1453#	  1453	  1455#	  1455
	  1916#	  1916	  1918#	  1918	  1924#	  1924	  1925#	  1925	  1927#	  1927	  2206#	  2206	  2208#	  2208
	  2214#	  2214	  2215#	  2215	  2217#	  2217	  2877#	  2877	  2879#	  2879	  2881#	  2881	  2883#	  2883
	  4488#	  4488	  4490#	  4490	  4569#	  4569	  4570#	  4570	  4572#	  4572	  6550#	  6550	  6551#	  6551
	  6552#	  6552	  6563#	  6563	  6565#	  6565	  6651#	  6651	  6653#	  6653	  6655#	  6655	  6697#	  6697
	  6698#	  6698	  6700#	  6700	  6701#	  6701	  6703#	  6703	  6704#	  6704	  6706#	  6706	  6707#	  6707
	  6709#	  6709	  6711#	  6711	  6719#	  6719	  6720#	  6720	  6722#	  6722	  6723#	  6723	  6725#	  6725
	  6726#	  6726	  6728#	  6728	  6730#	  6730
..JX1	  1925#	  1925	  2215#	  2215	  4570#	  4570	  6551#	  6551	  6698#	  6698	  6701#	  6701	  6704#	  6704
	  6707#	  6707	  6720#	  6720	  6723#	  6723	  6726#	  6726
..MX1	   612#	   612	   768#	   768	   793#	   793	   883#	   883	   908#	   908	  1056#	  1056	  1085#	  1085
	  1112#	  1112	  1270#	  1270	  1274#	  1274	  1278#	  1278	  1282#	  1282	  1418#	  1418	  1425#	  1425
	  1446#	  1446	  1453#	  1453	  1483#	  1483	  1525#	  1525	  1822#	  1822	  1825#	  1825	  1829#	  1829
	  1833#	  1833	  1863#	  1863	  1907#	  1907	  1916#	  1916	  1934#	  1934	  1983#	  1983	  2113#	  2113
	  2206#	  2206	  2224#	  2224	  2310#	  2310	  2342#	  2342	  2345#	  2345	  2350#	  2350	  2361#	  2361
	  2397#	  2397	  2400#	  2400	  2403#	  2403	  2408#	  2408	  2419#	  2419	  2438#	  2438	  2441#	  2441
	  2445#	  2445	  2461#	  2461	  2523#	  2523	  2549#	  2549	  2553#	  2553	  2565#	  2565	  2720#	  2720
	  2724#	  2724	  2761#	  2761	  2877#	  2877	  2881#	  2881	  3158#	  3158	  3278#	  3278	  3286#	  3286
	  3515#	  3515	  3528#	  3528	  3532#	  3532	  3538#	  3538	  3547#	  3547	  3552#	  3552	  3558#	  3558
	  3657#	  3657	  3667#	  3667	  3671#	  3671	  3896#	  3896	  4018#	  4018	  4124#	  4124	  4137#	  4137
	  4488#	  4488	  4706#	  4706	  4714#	  4714	  5062#	  5062	  5490#	  5490	  5510#	  5510	  5743#	  5743
	  5752#	  5752	  5758#	  5758	  5764#	  5764	  5780#	  5780	  5794#	  5794	  5845#	  5845	  5865#	  5865
	  5866#	  5866	  5908#	  5908	  5920#	  5920	  5922#	  5922	  5925#	  5925	  5926#	  5926	  5937#	  5937
	  5958#	  5958	  5989#	  5989	  6006#	  6006	  6042#	  6042	  6089#	  6089	  6154#	  6154	  6160#	  6160
	  6168#	  6168	  6169#	  6169	  6563#	  6563	  6651#	  6651	  6653#	  6653	  6709#	  6709	  6728#	  6728
	  6895#	  6895	  7242#	  7242	  7255#	  7255	  7259#	  7259
..MX2	   612#	   613	   768#	   769	   793#	   794	   883#	   884	   908#	   909	  1056#	  1056	  1057	  1085#
	  1085	  1086	  1112#	  1112	  1113	  1270#	  1271	  1274#	  1275	  1278#	  1279	  1282#	  1283	  1418#
	  1418	  1419	  1425#	  1425	  1426	  1446#	  1446	  1447	  1453#	  1453	  1454	  1483#	  1484	  1525#
	  1525	  1526	  1822#	  1823	  1825#	  1826	  1829#	  1830	  1833#	  1834	  1863#	  1864	  1907#	  1908
	  1916#	  1916	  1917	  1934#	  1935	  1983#	  1983	  1984	  2113#	  2114	  2206#	  2206	  2207	  2224#
	  2225	  2310#	  2311	  2342#	  2343	  2345#	  2346	  2350#	  2351	  2361#	  2362	  2397#	  2398	  2400#
	  2401	  2403#	  2404	  2408#	  2409	  2419#	  2420	  2438#	  2439	  2441#	  2442	  2445#	  2446	  2461#
	  2462	  2523#	  2524	  2549#	  2550	  2553#	  2554	  2565#	  2566	  2720#	  2721	  2724#	  2725	  2761#
	  2762	  2877#	  2877	  2878	  2881#	  2881	  2882	  3158#	  3158	  3159	  3278#	  3279	  3286#	  3286
	  3287	  3515#	  3516	  3528#	  3529	  3532#	  3533	  3538#	  3539	  3547#	  3548	  3552#	  3553	  3558#
	  3559	  3657#	  3658	  3667#	  3668	  3671#	  3672	  3896#	  3897	  4018#	  4019	  4124#	  4125	  4137#
	  4138	  4488#	  4488	  4489	  4706#	  4706	  4714#	  4714	  4715	  5062#	  5062	  5063	  5490#	  5491
	  5510#	  5511	  5743#	  5744	  5752#	  5753	  5758#	  5758	  5759	  5764#	  5765	  5780#	  5781	  5794#
	  5795	  5845#	  5845	  5846	  5865#	  5865	  5866#	  5867	  5908#	  5908	  5909	  5920#	  5921	  5922#
	  5923	  5925#	  5926	  5926#	  5927	  5937#	  5938	  5958#	  5958	  5989#	  5990	  6006#	  6006	  6007
	  6042#	  6043	  6089#	  6089	  6090	  6154#	  6155	  6160#	  6161	  6168#	  6169	  6169#	  6170	  6563#
	  6563	  6564	  6651#	  6651	  6652	  6653#	  6653	  6654	  6709#	  6709	  6710	  6728#	  6728	  6729
	  6895#	  6896	  7242#	  7242	  7243	  7255#	  7256	  7259#	  7260
..NS	  1056#	  1056	  1058	  1085#	  1085	  1087	  1112#	  1112	  1114	  1189#	  1189	  1190	  1200#	  1200
	  1201	  1209#	  1209	  1210	  1418#	  1418	  1420	  1425#	  1425	  1427	  1446#	  1446	  1448	  1453#
	  1453	  1455	  1916#	  1916	  1918	  1924#	  1924	  1927	  2206#	  2206	  2208	  2214#	  2214	  2217
	  2877#	  2877	  2879	  2881#	  2881	  2883	  4488#	  4488	  4490	  4511#	  4511	  4512	  4569#	  4569
	  4572	  4734#	  4734	  4735	  4777#	  4777	  4778	  6550#	  6550	  6552	  6563#	  6563	  6565	  6648#
	  6648	  6649	  6649#	  6650	  6650#	  6651	  6651#	  6653	  6653#	  6655	  6697#	  6697	  6700	  6700#
	  6703	  6703#	  6706	  6706#	  6709	  6709#	  6711	  6719#	  6719	  6722	  6722#	  6725	  6725#	  6728
	  6728#	  6730
..NV	   682#	   682	  1962#	  1962	  1963	  3018#	  3018	  3063#	  3063	  4305#	  4305	  4472#	  4472	  4626#
	  4626	  6923#	  6923	  6957#	  6957	  7002#	  7002	  7082#	  7082	  7107#	  7107	  7159#	  7159	  7278#
	  7278	  7336#	  7336
..PST	   524#	   524	   574#	   574	   592#	   592	   594#	   594	   597#	   597	   614#	   614	   770#	   770
	   795#	   795	   885#	   885	   910#	   910	  1054#	  1054	  1056#	  1056	  1077#	  1077	  1085#	  1085
	  1089#	  1089	  1104#	  1104	  1112#	  1112	  1116#	  1116	  1130#	  1130	  1143#	  1143	  1145#	  1145
	  1148#	  1148	  1150#	  1150	  1154#	  1154	  1156#	  1156	  1160#	  1160	  1187#	  1187	  1189#	  1189
	  1198#	  1198	  1200#	  1200	  1209#	  1209	  1222#	  1222	  1231#	  1231	  1246#	  1246	  1255#	  1255
	  1266#	  1266	  1321#	  1321	  1330#	  1330	  1418#	  1418	  1425#	  1425	  1446#	  1446	  1453#	  1453
	  1485#	  1485	  1827#	  1827	  1835#	  1835	  1850#	  1850	  1887#	  1887	  1894#	  1894	  1901#	  1901
	  1916#	  1916	  1924#	  1924	  1936#	  1936	  2194#	  2194	  2206#	  2206	  2214#	  2214	  2226#	  2226
	  2312#	  2312	  2363#	  2363	  2421#	  2421	  2463#	  2463	  2525#	  2525	  2567#	  2567	  2763#	  2763
	  2877#	  2877	  2881#	  2881	  2978#	  2978	  2984#	  2984	  2992#	  2992	  3000#	  3000	  3020#	  3020
	  3169#	  3169	  3172#	  3172	  3174#	  3174	  3270#	  3270	  3951#	  3951	  3955#	  3955	  3957#	  3957
	  3966#	  3966	  3976#	  3976	  3998#	  3998	  4020#	  4020	  4027#	  4027	  4032#	  4032	  4041#	  4041
	  4045#	  4045	  4047#	  4047	  4057#	  4057	  4061#	  4061	  4068#	  4068	  4075#	  4075	  4086#	  4086
	  4090#	  4090	  4092#	  4092	  4168#	  4168	  4170#	  4170	  4177#	  4177	  4309#	  4309	  4312#	  4312
	  4321#	  4321	  4347#	  4347	  4480#	  4480	  4483#	  4483	  4488#	  4488	  4492#	  4492	  4497#	  4497
	  4500#	  4500	  4503#	  4503	  4506#	  4506	  4509#	  4509	  4511#	  4511	  4517#	  4517	  4524#	  4524
	  4530#	  4530	  4553#	  4553	  4558#	  4558	  4560#	  4560	  4563#	  4563	  4565#	  4565	  4569#	  4569
	  4573#	  4573	  4575#	  4575	  4578#	  4578	  4580#	  4580	  4694#	  4694	  4701#	  4701	  4717#	  4717
	  4734#	  4734	  4761#	  4761	  4777#	  4777	  4782#	  4782	  4788#	  4788	  5056#	  5056	  5091#	  5091
	  5093#	  5093	  5111#	  5111	  5765#	  5765	  5771#	  5771	  5781#	  5781	  5788#	  5788	  5921#	  5921
	  5990#	  5990	  6098#	  6098	  6100#	  6100	  6101#	  6101	  6548#	  6548	  6550#	  6550	  6563#	  6563
	  6578#	  6578	  6581#	  6581	  6584#	  6584	  6596#	  6596	  6597#	  6597	  6598#	  6598	  6644#	  6644
	  6645#	  6645	  6647#	  6647	  6648#	  6648	  6649#	  6649	  6650#	  6650	  6651#	  6651	  6653#	  6653
	  6658#	  6658	  6697#	  6697	  6700#	  6700	  6703#	  6703	  6706#	  6706	  6709#	  6709	  6711#	  6711
	  6719#	  6719	  6722#	  6722	  6725#	  6725	  6728#	  6728	  6730#	  6730	  6781#	  6781	  6810#	  6810
	  6838#	  6838	  6840#	  6840	  6849#	  6849	  6851#	  6851	  6853#	  6853	  6859#	  6859	  6861#	  6861
	  6863#	  6863	  6869#	  6869	  6879#	  6879	  6888#	  6888	  6890#	  6890	  7093#	  7093
..STKN	   690#	   690	   691	   801#	   801	   802	   962#	   962	   963	  1069#	  1069	  1070	  1096#	  1096
	  1097	  1127#	  1127	  1128	  1215#	  1215	  1216	  1239#	  1239	  1240	  1289#	  1289	  1290	  1466#
	  1466	  1467	  1505#	  1505	  1506	  1684#	  1684	  1685	  2129#	  2129	  2130	  2254#	  2254	  2255
	  2279#	  2279	  2280	  2334#	  2334	  2335	  2389#	  2389	  2390	  2427#	  2427	  2428	  2488#	  2488
	  2489	  2531#	  2531	  2532	  2586#	  2586	  2587	  2637#	  2637	  2638	  2798#	  2798	  2799	  2865#
	  2865	  2866	  2895#	  2895	  2896	  3144#	  3144	  3145	  3205#	  3205	  3206	  3267#	  3267	  3268
	  3391#	  3391	  3392	  3427#	  3427	  3428	  3595#	  3595	  3596	  3635#	  3635	  3636	  3713#	  3713
	  3714	  3835#	  3835	  3836	  3870#	  3870	  3871	  4104#	  4104	  4105	  4339#	  4339	  4340	  4391#
	  4391	  4392	  4683#	  4683	  4684	  5084#	  5084	  5085	  5121#	  5121	  5122	  5486#	  5486	  5487
	  5506#	  5506	  5507	  5547#	  5547	  5548	  5683#	  5683	  5684	  5734#	  5734	  5735	  5854#	  5854
	  5855	  5861#	  5861	  5862	  5935#	  5935	  5936	  6004#	  6004	  6005	  6086#	  6086	  6087	  6195#
	  6195	  6196	  6496#	  6496	  6497	  6542#	  6542	  6543	  6636#	  6636	  6637	  6669#	  6669	  6670
	  6830#	  6830	  6831	  6976#	  6976	  6977	  7108#	  7108	  7109	  7225#	  7225	  7226
..STKQ	   690#	   690	   801#	   801	   962#	   962	  1069#	  1069	  1096#	  1096	  1127#	  1127	  1215#	  1215
	  1239#	  1239	  1289#	  1289	  1466#	  1466	  1505#	  1505	  1684#	  1684	  2129#	  2129	  2254#	  2254
	  2279#	  2279	  2334#	  2334	  2389#	  2389	  2427#	  2427	  2488#	  2488	  2531#	  2531	  2586#	  2586
	  2637#	  2637	  2798#	  2798	  2865#	  2865	  2895#	  2895	  3144#	  3144	  3205#	  3205	  3267#	  3267
	  3391#	  3391	  3427#	  3427	  3595#	  3595	  3635#	  3635	  3713#	  3713	  3835#	  3835	  3870#	  3870
	  4104#	  4104	  4339#	  4339	  4391#	  4391	  4683#	  4683	  5084#	  5084	  5121#	  5121	  5486#	  5486
	  5506#	  5506	  5547#	  5547	  5683#	  5683	  5734#	  5734	  5854#	  5854	  5861#	  5861	  5935#	  5935
	  6004#	  6004	  6086#	  6086	  6195#	  6195	  6496#	  6496	  6542#	  6542	  6636#	  6636	  6669#	  6669
	  6830#	  6830	  6976#	  6976	  7108#	  7108	  7225#	  7225
..STKR	   690#	   692	   801#	   803	   962#	   964	  1069#	  1071	  1096#	  1098	  1127#	  1129	  1215#	  1217
	  1239#	  1241	  1289#	  1291	  1466#	  1468	  1505#	  1507	  1684#	  1686	  2129#	  2131	  2254#	  2256
	  2279#	  2281	  2334#	  2336	  2389#	  2391	  2427#	  2429	  2488#	  2490	  2531#	  2533	  2586#	  2588
	  2637#	  2639	  2798#	  2800	  2865#	  2867	  2895#	  2897	  3144#	  3146	  3205#	  3207	  3267#	  3269
	  3391#	  3393	  3427#	  3429	  3595#	  3597	  3635#	  3637	  3713#	  3715	  3835#	  3837	  3870#	  3872
	  4104#	  4106	  4339#	  4341	  4391#	  4393	  4683#	  4685	  5084#	  5086	  5121#	  5123	  5486#	  5488
	  5506#	  5508	  5547#	  5549	  5683#	  5685	  5734#	  5736	  5854#	  5856	  5861#	  5863	  5935#	  5937
	  6004#	  6006	  6086#	  6088	  6195#	  6197	  6496#	  6498	  6542#	  6544	  6636#	  6638	  6669#	  6671
	  6830#	  6832	  6976#	  6978	  7108#	  7110	  7225#	  7227
..TRR	   682#	   683	  1962#	  1964	  3018#	  3019	  3063#	  3064	  4305#	  4306	  4472#	  4473	  4626#	  4627
	  6923#	  6924	  6957#	  6958	  7002#	  7003	  7082#	  7083	  7107#	  7108	  7159#	  7160	  7278#	  7279
	  7336#	  7337
..TSA1	  1056#	  1056	  1085#	  1085	  1112#	  1112	  1418#	  1418	  1425#	  1425	  1446#	  1446	  1453#	  1453
	  1916#	  1916	  1924#	  1924	  2206#	  2206	  2214#	  2214	  2877#	  2877	  2881#	  2881	  4488#	  4488
	  4569#	  4569	  6550#	  6550	  6563#	  6563	  6651#	  6651	  6653#	  6653	  6697#	  6697	  6700#	  6700
	  6703#	  6703	  6706#	  6706	  6709#	  6709	  6719#	  6719	  6722#	  6722	  6725#	  6725	  6728#	  6728
..TX1	  1838#	  1838	  1840#	  1840	  1925#	  1925	  2187#	  2187	  2215#	  2215	  3127#	  3127	  3283#	  3283
	  4344#	  4344	  4352#	  4352	  4400#	  4400	  4412#	  4412	  4425#	  4425	  4486#	  4486	  4570#	  4570
	  5189#	  5189	  5551#	  5551	  5957#	  5957	  6698#	  6698	  6701#	  6701	  6704#	  6704	  6707#	  6707
	  6720#	  6720	  6723#	  6723	  6726#	  6726	  6785#	  6785	  7070#	  7070	  7125#	  7125	  7136#	  7136
	  7257#	  7257	  7264#	  7264	  7310#	  7310
..TX2	  1838#	  1839	  1840#	  1841	  1925#	  1925	  1926	  2187#	  2188	  2215#	  2215	  2216	  3127#	  3127
	  3128	  3283#	  3283	  3284	  4344#	  4345	  4352#	  4353	  4400#	  4400	  4401	  4412#	  4412	  4413
	  4425#	  4425	  4426	  4486#	  4486	  4487	  4570#	  4570	  4571	  5189#	  5189	  5190	  5551#	  5551
	  5552	  5957#	  5957	  5958	  6698#	  6698	  6699	  6701#	  6701	  6702	  6704#	  6704	  6705	  6707#
	  6707	  6708	  6720#	  6720	  6721	  6723#	  6723	  6724	  6726#	  6726	  6727	  6785#	  6785	  6786
	  7070#	  7070	  7071	  7125#	  7125	  7136#	  7136	  7257#	  7257	  7258	  7264#	  7264	  7265	  7310#
	  7310	  7311
.A16	   682	   690	   801	   962	  1069	  1096	  1127	  1215	  1239	  1289	  1466	  1505	  1684	  1962
	  2129	  2254	  2279	  2334	  2389	  2427	  2488	  2531	  2586	  2637	  2798	  2865	  2895	  3018
	  3063	  3144	  3205	  3267	  3391	  3427	  3595	  3635	  3713	  3835	  3870	  4104	  4305	  4339
	  4391	  4472	  4626	  4683	  5084	  5121	  5486	  5506	  5547	  5683	  5734	  5854	  5861	  5935
	  6004	  6086	  6195	  6496	  6542	  6636	  6669	  6830	  6923	  6957	  6976	  7002	  7082	  7107
	  7108	  7159	  7225	  7278	  7336
.AC1	  6032	  6040
.AHNAM	  6234
.ASSET	   682	  3018	  3063	  4305	  4472	  4626	  6923	  6957	  7002	  7082	  7107	  7159	  7278	  7336
.BTCLI	  2906
.BTKCC	  1578	  2011	  2037
.BTKCP	  1576	  2014
.BTKDC	  1583	  2006	  2031
.BTKDP	  1581	  2009
.BTKER	  1573	  2060	  2076
.BTKMC	  1511	  1968	  2064
.BTKMD	  2015
.BTKML	  1585
.BTKRC	  1584	  2002	  2025	  2058	  2095
.BTKRP	  2004	  2059	  2091
.BTKSA	  1551	  1610
.CHTAB	  3657	  3671	  3896
.CMCFM	  3967	  6887
.CMCMA	  4087
.CMFLD	  3978
.CMIFI	  4018
.CMKEY	  3952	  6848	  6858
.CMNOD	  3977	  6868
.CMNOI	  4058
.CMNUM	  4042
.CMOFI	  4016
.CMTOK	  4069
.CP11	  1355
.CP20	  1356
.CP8	  1354
.DNA11	  1345
.DNADM	  1040
.DNALD	  1041
.DNCBL	  1396
.DNCNL	  1395
.DND11	  1339
.DND20	  1356
.DNDAB	   974	  1412	  1440
.DNDLV	  1348
.DNDMC	  1347
.DNDMP	   645	  6712
.DNDR2	  1972	  2165
.DNDRC	  2661
.DNDSL	   651
.DNDTE	  1350
.DNDUP	  1346
.DNDV1	  1351
.DNEAB	   971	  1411	  1439
.DNELG	   700	   811
.DNENA	   652
.DNINI	   646
.DNKDP	  1340	  2110
.DNKDZ	  1341
.DNKNO	   722	   833	  2327
.DNL1A	  1349
.DNL1E	  1343
.DNLCT	   997	  2805
.DNLFR	  1713
.DNLGI	   924	  2777
.DNLNG	  2662
.DNLOA	   647	  6731
.DNLOG	  2792
.DNLOP	   648
.DNLP1	  1179	  1743
.DNLPB	   966
.DNLPH	   925	  1177	  1741
.DNLPN	  1178	  1742
.DNMNT	  1397
.DNMXD	  2709
.DNNCR	  2582
.DNNDS	  2378
.DNNOD	   928	  1499	  1952	  2328	  6860
.DNNON	  1180	  1744
.DNNSP	  1063
.DNONS	  2710
.DNP11	  1355
.DNP8	  1354
.DNPRM	  1037	  1715
.DNQ11	  1344
.DNQUE	  2242
.DNRQP	  1062
.DNSCT	  2240
.DNSET	   644
.DNSEX	   923	  2241
.DNSHW	   649
.DNSKL	   740	   855	  2379
.DNSLI	   721	   832	  1365	  1498	  1951	  2272	  2326	  2631
.DNSLO	   926	  2325
.DNSMO	   927
.DNSNB	  1034
.DNSNF	  1035
.DNSNL	  1036
.DNSNS	  1038
.DNSNT	  1039
.DNSPW	   929
.DNSSD	   930	  1333
.DNSSF	  1394
.DNSSL	   931	  1334
.DNSSO	  1393
.DNSST	   932
.DNSTD	   933	  1335
.DNSTL	   934	  1336
.DNSTS	  2243
.DNTRM	   650
.DNU11	  1342
.DNVIA	  1500	  1714	  1953
.DNWTH	  2663
.DNZRO	  2711
.DOLIN	  2724	  2749
.DOMXD	  2648	  2709
.DOONS	  2710
.DOZRO	  2711
.DTA11	  1345
.DTDLV	  1348
.DTDMC	  1347
.DTDTE	  1350
.DTDUP	  1346
.DTDV1	  1351
.DTKDP	  1340
.DTKDZ	  1341
.DTL1A	  1349
.DTL1E	  1343
.DTP11	  1339
.DTQ11	  1344
.DTU11	  1342
.ENQAA	  6014
.ENQBL	  5560
.ENQCS	  6021
.ENQID	  5558	  6010
.ENQLN	  5556	  6009
.ENQLV	  5554	  6007
.ENQMS	  5557
.ENQRS	  5559	  6013
.ENQUC	  5552	  6012
.ERR1	  6080	  6370#
.ERR10	  5389	  6370#
.ERR11	  6370#
.ERR12	  5803	  6370#	  6908
.ERR13	   641	  4662	  6370#
.ERR14	   577	   632	  4315	  6370#
.ERR15	  1310	  6370#	  6532
.ERR16	  3111	  6370#
.ERR17	  3224	  6370#
.ERR18	   618	   622	  6370#
.ERR19	   988	  1588	  2018	  5659	  5663	  6370#
.ERR2	  6140	  6370#
.ERR20	  6162	  6166	  6171	  6370#
.ERR21	  6370#
.ERR22	  5827	  6370#
.ERR23	   979	  1369	  1509	  1966	  2276	  2492	  2641	  6370#
.ERR24	  1528	  1533	  1986	  1991	  2051	  6370#
.ERR25	  1619	  6370#
.ERR26	  5831	  6370#
.ERR27	  5829	  6370#
.ERR28	  5179	  5193	  5857	  6370#
.ERR29	  6370#
.ERR3	  6208	  6370#
.ERR30	  5252	  5344	  6370#
.ERR4	  6146	  6370#
.ERR5	  5428	  6370#
.ERR6	  5464	  6370#
.ERR7	  5472	  6370#
.ERR8	  5268	  6156	  6370#
.ERR9	  5334	  6370#
.FHADR	   446#	  5329	  5330	  5408
.FHBFA	   448#	  5245	  5262	  5266
.FHBFS	   447#	  5244	  5259	  5261	  5276
.FHCBS	   445#
.FHCNT	   444#	  5240	  5281	  5364	  5406
.FHFFB	   443#	  5403
.FHSLF	   546	  3090	  4358	  5398	  5570	  5576	  5637	  5648	  5668	  5864	  5925	  5955	  5973	  5978
	  6056	  6138	  6307
.IPCFL	  4707	  4715	  5744	  6896
.IPCFP	  4702	  4704	  4718	  5742	  6903
.IPCFR	  4709	  5748	  6899
.IPCFS	  4728	  5746	  6898
.JIUNO	  6028
.LOPTH	  1822
.LOTBD	  1829
.LOTBP	  1833
.LOTGT	  1825
.LSTCB	  1396	  3914
.LSTCN	  1395	  3912
.LSTMN	  1397	  3910
.LSTOF	  1394	  3908
.LSTON	  1393	  3906
.LTALL	  2549
.MOACN	  3175	  5922	  6102
.MOCIA	  3170	  6099
.MORHN	  5127
.MORLS	  3278	  7255
.MSCOD	   625	  5751	  5796	  6841
.MSFLG	   597
.MSTYP	   594	  3020	  3021	  4347	  4348	  6838	  6840
.MUCRE	  6137
.MUFPQ	  6127
.MUPIC	  6142
.MUQRY	  4745
.MURSP	  6200
.MUSPQ	  6132
.NCNLS	   757	   782	   872	   897
.NCRED	  2291	  2301	  2342	  2347	  2397	  2405	  2438	  2449	  2503	  2514	  2544	  2556
.NCRQD	  2181
.NCRQL	  1817
.NCSET	   757	   782	   872	   897	  1472
.NCSLN	  1472
.NCTST	  2720	  2748
.NDBK1	  6805	  6983	  6984	  7301
.NDCLP	   973
.NDCNT	  6982
.NDGLI	  5875
.NDGLN	  6160
.NDGNM	  6168
.NDGNT	  6754
.NDLND	  5890	  5893
.NDLON	  5888
.NDLST	  5887
.NDNAM	  6816	  6985	  7307	  7316
.NDNBS	  6981
.NDNLN	  5874	  5879
.NDNND	  6756	  6806	  6980	  7297
.NDNXT	  6988
.NDSIC	  5939
.NDSLP	   970
.NDSNT	  6989
.NDSOF	  6986
.NDSTA	  6987
.NRILN	  2902	  2910
.NRNCE	  3286	  7128	  7139	  7267
.NSOFF	  3571	  3687
.NSON	  3569	  3683
.NSSHT	  3573	  3691
.OARGC	  5757
.OFLAG	  5759
.OHDRS	   604	  5760
.OMACK	  5794
.OMAHL	  6229
.OMCMD	   616	  6837
.OMHAC	   610
.PBVAL	  3982	  4024	  4071	  4239	  6871
.PGFRE	  5989	  6591
.PRAST	  5067
.PRIOU	  6031	  6042	  6298	  6306
.PTSDM	  1270	  1333
.PTSLD	  1274	  1334
.PTTDM	  1278	  1335
.PTTLD	  1282	  1336
.PVEND	  1907
.QTFKT	  5110
.QTJFD	  5090
.QTMES	  4692
.QTTOP	  5055
.RDLCT	  2293	  2302	  3737
.RDLNS	  2345	  2348	  3463
.RDLST	  2505	  2515	  2546	  2557	  3884
.RDRNS	  2400	  2406	  2441	  2450	  3650
.RFFPT	  3223
.RFIO	  3221
.RFRUN	  3220
.RFSLP	  3217
.RFWAT	  3218
.SPOPR	  6201
.STKST	   690	   801	   962	  1069	  1096	  1127	  1215	  1239	  1289	  1466	  1505	  1684	  2129	  2254
	  2279	  2334	  2389	  2427	  2488	  2531	  2586	  2637	  2798	  2865	  2895	  3144	  3205	  3267
	  3391	  3427	  3595	  3635	  3713	  3835	  3870	  4104	  4339	  4391	  4683	  5084	  5121	  5486
	  5506	  5547	  5683	  5734	  5854	  5861	  5935	  6004	  6086	  6195	  6496	  6542	  6636	  6669
	  6830	  6976	  7108	  7225
.TIMEL	  5864
.TPACC	  7376
.TPCHG	  5155
.TPREQ	  7121
.TPVER	  7121	  7379
.TRSET	  1962
.VN20F	  1062
.VNMCB	  1063
.WTTXT	  5780
.WTTYP	  5764
AIC	  5927	  6060
ASUBR	   681	  3017	  3062	  4304	  4471	  4625	  6923	  6957	  7002	  7082	  7107	  7159	  7278	  7336
ATOHLD	  5935#	  5935	  5938	  5940
BIN	  1553	  1566	  1625	  1661
BKJFN	  3472
BOOT	  1587	  2017	  2908
BOUT	  2090	  3533	  3539	  3553	  3559	  3672	  3673	  3674	  3897	  4216	  4225	  4229	  4233	  4244
	  4251	  4255	  4257	  4265	  4272	  4280	  5721
BTDBLK	  1962#	  1962	  1968	  2002	  2004	  2006	  2009	  2011	  2014	  2016	  2025	  2031	  2037	  2058
	  2059	  2060	  2064	  2076	  2091	  2095
BTDFIL	  1962#	  1962	  1977	  1981	  1988	  2022	  2048
BTDPAG	  1962#	  1962	  1996	  2000	  2007	  2012	  2026	  2032	  2038	  2042	  2045
BTLBLK	  1505#	  1505	  1511	  1551	  1573	  1576	  1578	  1581	  1583	  1584	  1586	  1610
BTLFIL	  1505#	  1505	  1519	  1523	  1530	  1552	  1597
BTLPAG	  1505#	  1505	  1538	  1546	  1574	  1579	  1591	  1594	  1605	  1614
CALL	   499	   502	   504	   518	   521	   527	   529	   533	   535	   536	   578	   619	   630	   636
	   683	   692	   696	   708	   712	   716	   726	   731	   735	   750	   754	   763	   779	   788
	   803	   807	   819	   823	   827	   837	   842	   845	   850	   865	   869	   878	   894	   903
	   915	   919	   940	   945	   947	   964	   968	   977	   982	   994	   995	   999	  1003	  1009
	  1012	  1014	  1016	  1021	  1023	  1026	  1030	  1047	  1051	  1071	  1074	  1078	  1080	  1098
	  1101	  1105	  1107	  1131	  1133	  1137	  1140	  1151	  1157	  1164	  1166	  1169	  1173	  1192
	  1194	  1203	  1205	  1217	  1223	  1225	  1241	  1247	  1249	  1262	  1291	  1295	  1298	  1302
	  1308	  1313	  1317	  1322	  1324	  1363	  1367	  1372	  1375	  1380	  1384	  1403	  1407	  1431
	  1435	  1469	  1478	  1490	  1494	  1507	  1516	  1520	  1535	  1543	  1592	  1595	  1607	  1616
	  1629	  1632	  1636	  1648	  1652	  1695	  1697	  1701	  1704	  1709	  1719	  1733	  1737	  1750
	  1754	  1756	  1758	  1765	  1767	  1773	  1777	  1779	  1781	  1788	  1790	  1798	  1851	  1855
	  1865	  1874	  1891	  1898	  1905	  1929	  1943	  1947	  1964	  1969	  1974	  1978	  1993	  1997
	  2028	  2034	  2040	  2043	  2046	  2082	  2084	  2097	  2098	  2108	  2114	  2117	  2132	  2136
	  2138	  2140	  2147	  2149	  2152	  2155	  2160	  2169	  2195	  2201	  2219	  2232	  2236	  2251
	  2265	  2270	  2274	  2282	  2296	  2305	  2317	  2321	  2336	  2356	  2368	  2373	  2391	  2414
	  2429	  2433	  2446	  2457	  2465	  2467	  2476	  2478	  2490	  2495	  2509	  2518	  2536	  2560
	  2572	  2573	  2578	  2588	  2595	  2596	  2606	  2608	  2610	  2616	  2618	  2623	  2627	  2639
	  2650	  2653	  2657	  2669	  2672	  2679	  2682	  2697	  2700	  2704	  2729	  2735	  2738	  2745
	  2756	  2769	  2773	  2784	  2788	  2801	  2802	  2807	  2808	  2811	  2812	  2816	  2824	  2830
	  2832	  2834	  2843	  2845	  2872	  2892	  2900	  2955	  3001	  3045	  3065	  3074	  3076	  3089
	  3227	  3230	  3232	  3246	  3248	  3250	  3255	  3313	  3330	  3352	  3354	  3356	  3358	  3360
	  3398	  3433	  3467	  3479	  3490	  3509	  3601	  3623	  3654	  3661	  3719	  3740	  3746	  3759
	  3762	  3841	  3863	  3887	  3893	  3985	  3989	  3991	  4004	  4005	  4028	  4113	  4117	  4125
	  4130	  4138	  4143	  4181	  4182	  4184	  4185	  4186	  4187	  4188	  4190	  4191	  4192	  4194
	  4195	  4196	  4197	  4198	  4199	  4200	  4201	  4202	  4203	  4316	  4326	  4328	  4359	  4362
	  4366	  4368	  4393	  4403	  4409	  4415	  4417	  4428	  4430	  4442	  4474	  4495	  4513	  4520
	  4532	  4547	  4550	  4556	  4584	  4586	  4629	  4631	  4636	  4656	  4658	  4673	  4686	  4688
	  4695	  4697	  4723	  4736	  4737	  4752	  4762	  4764	  4766	  4768	  4779	  4790	  4814	  4834
	  4854	  4874	  4906	  4926	  4946	  4966	  4999	  5019	  5037	  5038	  5047	  5053	  5054	  5057
	  5058	  5064	  5076	  5088	  5089	  5094	  5095	  5106	  5108	  5109	  5112	  5113	  5134	  5159
	  5162	  5164	  5167	  5173	  5174	  5177	  5178	  5179	  5186	  5187	  5191	  5192	  5193	  5221
	  5223	  5224	  5226	  5228	  5229	  5317	  5319	  5320	  5322	  5324	  5325	  5417	  5419	  5426
	  5427	  5433	  5434	  5457	  5459	  5464	  5472	  5476	  5477	  5528	  5540	  5587	  5599	  5617
	  5639	  5644	  5649	  5738	  5803	  5805	  5806	  5813	  5814	  5816	  5817	  5819	  5821	  5823
	  5824	  5826	  5827	  5828	  5829	  5830	  5831	  5856	  5857	  5870	  5894	  5898	  5987	  6073
	  6155	  6156	  6162	  6166	  6171	  6267	  6501	  6511	  6524	  6530	  6531	  6655	  6674	  6677
	  6686	  6691	  6713	  6732	  6737	  6742	  6835	  6875	  6876	  6908	  6910	  6911	  6928	  6941
	  6948	  6962	  6967	  7007	  7014	  7015	  7029	  7057	  7087	  7114	  7127	  7134	  7138	  7145
	  7163	  7181	  7187	  7190	  7193	  7197	  7202	  7203	  7213	  7214	  7266	  7283	  7287	  7289
	  7290	  7317	  7326	  7327	  7353	  7354	  7361	  7362
CALLRE	   686	  5495	  5515
CFORK	  5063	  5847
CHKNIF	  4391#	  4391	  4398	  4414	  4427
CHKNIM	  4391#	  4391	  4395	  4407	  4422
CHKNIN	  4391#	  4391	  4397	  4413	  4426
CHKNIT	  4391#	  4391	  4396	  4408	  4423
CHNBLD	  6392#	  6392	  6395#	  6395	  6398#	  6398	  6401#	  6401	  6430#	  6430	  6433#	  6433	  6436#	  6436
	  6439#	  6439	  6454#	  6454	  6457#	  6457
CIS	  6055
CKTNOD	  7082#	  7082	  7086
CLOSF	  2049	  3122	  3128	  3184	  3239	  5176	  5190	  6110	  7126	  7137	  7144	  7265
CNTMSG	  2279#	  2279	  2289	  2299
CPYADR	  4626#	  4626	  4640	  4651	  4655
CPYFRM	  4626#	  4626	  4641
CPYLEN	  4626#	  4626	  4634	  4642
DEBRK	  4679	  4821	  4841	  4861	  4881	  4913	  4933	  4953	  4973	  5006	  5026	  5037	  5047	  5106
	  6287
DEQ	  5513	  5539
DEVST	  4269
DIR	  5571
DIRST	  4248	  6036
DISKEY	   801#	   801	   844	   847
DISLID	   801#	   801	   839	   860	   867
DISMS	   541	  6219	  6282	  7260
DISMSG	   801#	   801	   868
DMMY	  5861#	  5861
DMPHLD	  6669#	  6669	  6679	  6685	  6689	  6696	  6718
DMPRFS	  2129#	  2129	  2131	  2172	  2185	  2197	  2199
DMPRMC	  2129#	  2129	  2198	  2203
DMPRMS	  2129#	  2129	  2179	  2210
DMPTOP	  6669#	  6669	  6676	  6690	  6736	  6741
DOFKTS	  3205#	  3205	  3225	  3229
DOJFDM	  3267#	  3267	  3301	  3350
DOJHLD	  3267#	  3267	  3326	  3331	  3332
DORCTR	  3267#	  3267	  3297	  3319
DORMSG	  3267#	  3267	  3290	  3298	  3321
DORTXT	  3267#	  3267	  3318	  3351
EDLCKB	  5547#	  5547	  5552	  5554	  5556	  5557	  5558	  5559	  5561
EDLCKI	  5547#	  5547	  5549	  5562
EIR	  5577	  6061
ENAKEY	   690#	   690
ENALID	   690#	   690	   728	   745	   752
ENAMSG	   690#	   690	   753
ENDAS.	   683#	  3019#	  3064#	  4306#	  4473#	  4627#	  6924#	  6958#	  7003#	  7083#	  7108#	  7160#	  7279#	  7337#
ENDSV.	   692#	   803#	   964#	  1071#	  1098#	  1129#	  1217#	  1241#	  1291#	  1468#	  1507#	  1686#	  2131#	  2256#
	  2281#	  2336#	  2391#	  2429#	  2490#	  2533#	  2588#	  2639#	  2800#	  2867#	  2897#	  3146#	  3207#	  3269#
	  3393#	  3429#	  3597#	  3637#	  3715#	  3837#	  3872#	  4106#	  4341#	  4393#	  4685#	  5086#	  5123#	  5488#
	  5508#	  5549#	  5685#	  5736#	  5856#	  5863#	  5937#	  6006#	  6088#	  6197#	  6498#	  6544#	  6638#	  6671#
	  6832#	  6978#	  7110#	  7227#
ENDTV.	  1964#
ENQ	  5493	  5526	  6016
ENQC	  6024
ENQJFB	  6004#	  6004	  6007	  6009	  6010	  6012	  6013	  6015	  6022
ENQJFS	  6004#	  6004	  6023	  6026	  6043
ENQJFU	  6004#	  6004	  6034	  6038
ENTINT	  4667	  4807	  4827	  4847	  4867	  4899	  4919	  4939	  4959	  4992	  5012	  5032	  5042	  5101
ERCOD	  6326#	  6369
ERJMP	   988	  1554	  1567	  1588	  1599	  1626	  1662	  2018	  2069	  2088	  2909	  3088	  3177	  3212
	  3236	  3280	  3294	  3406	  3412	  3441	  3445	  3451	  3458	  3473	  3517	  3530	  3536	  3542
	  3550	  3556	  3562	  3609	  3613	  3621	  3645	  3669	  3732	  3849	  3853	  3861	  3879	  4278
	  4721	  5076	  5130	  5145	  5877	  5911	  5914	  5924	  5942	  6104	  6162	  6166	  6171	  6185
	  6518	  6758	  6784	  6874	  6991	  7011	  7027	  7042	  7069	  7096	  7124	  7174	  7235	  7238
	  7241	  7245	  7249	  7309
ERR	  6361#	  6370
ERRORC	  5683#	  5683	  5685	  5695	  5702	  5709	  5715
ERRORH	  5683#	  5683	  5686	  5708
ERSTR	  5711	  6309
EXESTR	  2254#	  2254	  2256	  2263
FATAL.	   503	   576	   946	  1015	  1022	  1079	  1106	  1132	  1193	  1204	  1224	  1248	  1323	  1757
	  1766	  1780	  1789	  2139	  2148	  2466	  2477	  2833	  2844	  3990	  4314	  4327	  4585	  4630
	  4657	  4687	  4696	  4722	  4751	  4767	  5054	  5064	  5076	  5089	  5109	  5179	  5193	  5857
	  6156	  6531	  7015	  7354	  7362
FATMES	  6242#	  6247	  6251	  6255	  6259	  6263	  6268
FCLFRE	  6542#	  6542	  6547	  6552	  6553	  6561
FCLLIN	  6542#	  6542
FCLNIB	  6542#	  6542
FINMSM	  4339#	  4339	  4341	  4357	  4361	  4364
FINRQA	  4305#	  4305	  4322	  4345	  4365
FINRQC	  4305#	  4305	  4354
FINRQE	  4305#	  4305	  4356
FINRQF	  4305#	  4305	  4310	  4342
FLOUT	  4262
FOCNAM	   682#	   682	   684
FRLLST	  7336#	  7336	  7341	  7359
GETAB	  6184
GETER	  3091	  5669
GETJFC	  6086#	  6086	  6088	  6097
GETJFJ	  6086#	  6086	  6093	  6105	  6108	  6115
GETJI	  6029
GETSRC	  3144#	  3144	  3146	  3167	  3182	  3189
GETSRH	  3144#	  3144	  3148	  3153	  3163	  3178	  3183	  3185
GETSRT	  3144#	  3144	  3149	  3159
GTJFN	  1526	  1984	  3160	  5910	  6091	  7244
HALTF	   500	   505	   579	   948	  1017	  1024	  1081	  1108	  1134	  1195	  1206	  1226	  1250	  1325
	  1759	  1768	  1782	  1791	  2141	  2150	  2468	  2479	  2835	  2846	  3992	  4317	  4329	  4587
	  4632	  4659	  4689	  4698	  4724	  4753	  4769	  5054	  5064	  5076	  5089	  5109	  5179	  5193
	  5857	  6156	  6319	  6531	  7015	  7354	  7362
HELLOT	  6195#	  6195	  6197	  6214
IRQERR	  2798#	  2798	  2820
IRQFLG	  2798#	  2798	  2800	  2822
IRQNOD	  2798#	  2798	  2815	  2831	  2842	  2848
JE	  1923	  2213	  6703	  6706	  6722	  6725
JFDENT	  4887#	  4898	  4918	  4938	  4958
JFDNUM	  5084#	  5084	  5086	  5092
JFNENT	  4795#	  4806	  4826	  4846	  4866
JN	  4567	  6550	  6697	  6700	  6719
JXE	  1925	  2215	  6704	  6707	  6723	  6726
JXN	  4570	  6551	  6698	  6701	  6720
KEYWOR	  4287
KFORK	  3235	  5844
LCJCTR	  3713#	  3713	  3744	  3757	  3765
LCJPTR	  3713#	  3713	  3715	  3722	  3726	  3743	  3756	  3764	  3780
LCLPRT	   962#	   962	   981	   986
LCLSCD	   962#	   962	   976	   984
LCRCTR	  3713#	  3713	  3721	  3778
LCRMSG	  3713#	  3713	  3728	  3733
LCRTYP	  3713#	  3713	  3761	  3766
LKNMSK	  5486#	  5486	  5489	  5491	  5492	  5509	  5511
LNJCTR	  3427#	  3427	  3470	  3478	  3512
LNJCVR	  3427#	  3427	  3502	  3504	  3506	  3548	  3554	  3560
LNJHST	  3427#	  3427	  3488	  3578
LNJLEN	  3427#	  3427	  3492	  3577
LNJNUM	  3427#	  3427	  3481	  3513
LNJPTR	  3427#	  3427	  3429	  3436	  3452	  3466	  3469	  3477	  3511
LNJRVR	  3427#	  3427	  3496	  3498	  3500	  3526	  3534	  3540
LNJSTA	  3427#	  3427	  3485	  3568
LNJSYS	  3427#	  3427	  3507	  3521
LNRCTR	  3427#	  3427	  3435
LNRMSG	  3427#	  3427	  3454	  3459
LNSMSG	  1466#	  1466	  1468
LOAD	   523	   573	   591	   593	   596	  1076	  1103	  1129	  1149	  1153	  1155	  1186	  1197	  1221
	  1245	  1320	  1849	  1886	  1893	  1900	  2193	  2977	  2983	  2991	  2999	  3019	  3269	  3950
	  3954	  3956	  3965	  3975	  3997	  4019	  4026	  4031	  4040	  4044	  4046	  4056	  4060	  4067
	  4074	  4085	  4089	  4091	  4167	  4169	  4176	  4308	  4311	  4320	  4346	  4523	  4552	  4557
	  4559	  4562	  4564	  4572	  4574	  4577	  4579	  4716	  4760	  4781	  6548	  6578	  6581	  6584
	  6711	  6730	  6781	  6810	  7093
LOARBP	  1684#	  1684	  1686	  1687	  1830	  1831	  1859	  1860	  1864
LOARCT	  1684#	  1684	  1882	  1912
LOARFS	  1684#	  1684	  1692	  1722	  1836	  1870	  1872
LOARHO	  1684#	  1684	  1688	  1753	  1755	  1764	  1809	  1895	  1896
LOARMC	  1684#	  1684	  1861	  1866	  1871	  1876
LOARMS	  1684#	  1684	  1815	  1920
LOARNM	  1684#	  1684	  1689	  1776	  1778	  1787	  1808	  1888	  1889
LOARNO	  1684#	  1684	  1690	  1810	  1880
LOARNU	  1684#	  1684	  1691	  1801	  1807	  1902	  1903
LOARSL	  1684#	  1684	  1694
LOARSP	  1684#	  1684	  1884	  1910
LOARSV	  1684#	  1684	  1693	  1823	  1853	  1854
LOCK	  5222	  5318	  5418	  5458	  7006
LOPBYT	  2637#	  2637	  2716	  2722	  2726	  2732	  2734	  2736	  2739	  2740	  2743	  2746	  2747	  2750
LOPCNT	  2637#	  2637	  2645	  2674	  2737
LOPHLD	  3391#	  3391	  3393	  3401	  3402	  3409
LOPLID	  2637#	  2637	  2643	  2733
LOPLNG	  2637#	  2637	  2647	  2692	  2744
LOPMSG	  2637#	  2637	  2717	  2751
LOPWTH	  2637#	  2637	  2649	  2706	  2741
LSJCNT	  3870#	  3870	  3872	  3938	  3940
LSJCTR	  3870#	  3870	  3891	  3899	  3904	  3919
LSJLIN	  3870#	  3870	  3889	  3892
LSJMSG	  3870#	  3870	  3875	  3880
LSJPTR	  3870#	  3870	  3873	  3890	  3898	  3903	  3918	  3927
LSRCTR	  3835#	  3835	  3843	  3862
LSRPTR	  3835#	  3835	  3837	  3844
MNDBLK	  6976#	  6976	  6978
MNIERR	  7107#	  7107
MNIHLD	  7108#	  7108
MNIHST	  7108#	  7108
MNIIDX	  7107#	  7107
MNILNK	  7108#	  7108	  7116	  7120	  7124	  7132	  7135	  7143
MNILST	  7108#	  7108
MNINOD	  7107#	  7107	  7113	  7133
MNIPAG	  7107#	  7107
MOVX	   611	   767	   792	   882	   907	  1056	  1085	  1112	  1269	  1273	  1277	  1281	  1418	  1425
	  1446	  1453	  1482	  1524	  1821	  1824	  1828	  1832	  1862	  1906	  1916	  1933	  1982	  2112
	  2206	  2223	  2309	  2341	  2344	  2349	  2360	  2396	  2399	  2402	  2407	  2418	  2437	  2440
	  2444	  2460	  2522	  2548	  2552	  2564	  2719	  2723	  2760	  2877	  2881	  3157	  3277	  3285
	  3514	  3527	  3531	  3537	  3546	  3551	  3557	  3656	  3666	  3670	  3895	  4017	  4123	  4136
	  4488	  4705	  4713	  5062	  5490	  5510	  5743	  5752	  5758	  5764	  5780	  5794	  5845	  5865
	  5866	  5908	  5920	  5922	  5925	  5926	  5937	  5958	  5989	  6006	  6042	  6089	  6154	  6160
	  6168	  6169	  6563	  6651	  6653	  6709	  6728	  6895	  7242	  7255	  7259
MRECV	  4712	  4720
MSEND	  5800	  6207	  6905
MTOPR	  3176	  3279	  5129	  5923	  6103	  7256
MUTIL	  4749	  6129	  6133	  6139	  6145	  6202
NBINIB	  6636#	  6636	  6638	  6657
ND	   421
NHSNOD	  1239#	  1239	  1244	  1253
NNMNOD	  1215#	  1215	  1220	  1229
NODE	   987	  5876	  5941	  6161	  6165	  6170	  6757	  6990
NON.FA	   534	   617	  2609	  2617	  3231	  3353	  3357	  4367	  4416	  4429	  4763	  5174	  5177	  5187
	  5191	  5803	  5806	  5827	  5829	  5831	  6162	  6166	  6171	  6876	  6908	  6911	  7127	  7138
	  7145	  7203	  7214	  7266	  7290	  7327
NOUT	  2068	  2087	  2093	  2943	  2986	  3307	  3411	  3516	  3529	  3535	  3541	  3549	  3555	  3561
	  3668	  3775	  4222	  5717	  6045	  6301
ODCNV	  4607
ODTIM	  2075	  3444	  3612	  3752	  3852	  4277
OPENF	  1532	  1990	  3165	  5913	  6095	  7248
OPRMSA	  5734#	  5734	  5740	  5749	  5790	  5792	  5803	  5804
OPRMSB	  5734#	  5734	  5742	  5744	  5746	  5748	  5799
OPRMSH	  5734#	  5734	  5736	  5755	  5762	  5766
OPRMSS	  5734#	  5734	  5737	  5753	  5778	  5783
PIOFF	   517	  3245	  4512	  4546	  4778	  5221	  5317	  5417	  5457	  6267
PION	   520	   526	  3249	  3254	  4519	  4531	  4549	  4555	  4789	  5226	  5229	  5322	  5325	  5427
	  5434	  5464	  5472	  5477
PLICTL	  4104#	  4104	  4106	  4132	  4150
PLIDEV	  4104#	  4104	  4108	  4119	  4149
PLISTN	  4104#	  4104	  4109	  4152
PLIUNI	  4104#	  4104	  4107	  4145	  4151
PMAP	  5401	  5976	  5981
PRARG	  5075
PRTLID	  2895#	  2895	  2898	  2904
PRTSAV	  2895#	  2895
PRUNEW	  6923#	  6923	  6938	  6947
PRUNOD	  6923#	  6923	  6927
PRUOLD	  6923#	  6923	  6930	  6946
PSOUT	   603	   605	   608	  5641	  5650	  6033	  6039	  6041	  6217	  6280	  6293	  6295	  6297	  6305
	  6315
QUEFCN	  4472#	  4472	  4504	  4507
QUENCM	  4472#	  4472	  4478	  4481
QUENCN	  4472#	  4472	  4498	  4501
QUENCT	  4472#	  4472	  4484
RCVPDB	  4683#	  4683	  4702	  4704	  4707	  4709	  4711	  4715	  4718	  4728	  4744	  4746	  4748
RESET	   497
RESIAC	  4674	  4815	  4835	  4855	  4875	  4907	  4927	  4947	  4967	  5000	  5020	  5037	  5047	  5106
RET	   555	   561	   564	   623	   633	   642	   667	   693	   697	   713	   717	   727	   732	   736
	   751	   756	   765	   781	   790	   804	   808	   824	   828	   838	   843	   846	   851	   866
	   871	   880	   896	   905	   980	   989	  1219	  1243	  1264	  1311	  1315	  1319	  1370	  1382
	  1386	  1471	  1480	  1510	  1518	  1522	  1529	  1601	  1630	  1633	  1637	  1641	  1644	  1649
	  1653	  1656	  1675	  1699	  1706	  1721	  1752	  1762	  1775	  1785	  1800	  1931	  1967	  1971
	  1976	  1980	  1987	  2052	  2054	  2105	  2111	  2116	  2119	  2121	  2134	  2144	  2157	  2162
	  2171	  2221	  2277	  2284	  2307	  2338	  2358	  2370	  2393	  2416	  2431	  2483	  2493	  2497
	  2520	  2538	  2562	  2575	  2590	  2613	  2642	  2687	  2691	  2731	  2758	  2804	  2814	  2850
	  2874	  2893	  2903	  2911	  2928	  2961	  2970	  3047	  3067	  3079	  3112	  3134	  3261	  3400
	  3407	  3413	  3434	  3465	  3468	  3480	  3491	  3510	  3602	  3624	  3652	  3655	  3662	  3677
	  3720	  3842	  3864	  3886	  3888	  3894	  3926	  3953	  3968	  3979	  3987	  3995	  4006	  4022
	  4030	  4043	  4059	  4063	  4070	  4073	  4088	  4114	  4118	  4126	  4131	  4144	  4211	  4217
	  4226	  4235	  4245	  4252	  4258	  4266	  4273	  4281	  4394	  4431	  4449	  4476	  4551	  4612
	  4638	  4663	  4755	  4791	  5039	  5040	  5059	  5080	  5096	  5114	  5135	  5180	  5195	  5226
	  5241	  5252	  5268	  5322	  5334	  5344	  5389	  5409	  5428	  5464	  5472	  5532	  5544	  5564
	  5573	  5579	  5593	  5605	  5629	  5646	  5651	  5664	  5673	  5727	  5739	  5818	  5820	  5822
	  5848	  5871	  5877	  5899	  5942	  5963	  5997	  6020	  6025	  6030	  6047	  6062	  6080	  6188
	  6502	  6532	  6609	  6624	  6656	  6659	  6675	  6738	  6743	  6744	  6784	  6786	  6836	  6877
	  6929	  6949	  6968	  6992	  7059	  7072	  7088	  7098	  7115	  7128	  7139	  7164	  7216	  7252
	  7267	  7284	  7292	  7377	  7380	  7385	  7388
RETBAD	   621	   631	   640	   755	   764	   780	   789	   870	   879	   895	   904	   978	  1218	  1242
	  1263	  1309	  1314	  1318	  1368	  1381	  1385	  1470	  1479	  1508	  1517	  1521	  1527	  1698
	  1705	  1720	  1751	  1761	  1774	  1784	  1799	  1930	  1965	  1970	  1975	  1979	  1985	  2050
	  2115	  2118	  2133	  2143	  2156	  2161	  2170	  2220	  2275	  2283	  2306	  2337	  2357	  2369
	  2392	  2415	  2430	  2482	  2491	  2496	  2519	  2537	  2561	  2574	  2589	  2612	  2640	  2685
	  2689	  2730	  2757	  2803	  2813	  2849	  2873	  2901	  2909	  3046	  3066	  3078	  3110	  3260
	  3399	  3406	  3412	  3986	  3994	  4029	  4475	  4637	  4661	  5135	  5225	  5226	  5252	  5268
	  5321	  5322	  5334	  5344	  5389	  5428	  5463	  5464	  5471	  5472	  5739	  5818	  5820	  5822
	  5848	  5871	  5877	  5899	  5942	  6080	  6502	  6532	  6675	  6738	  6743	  6744	  6784	  6786
	  6836	  6877	  7088	  7128	  7139	  7164	  7267	  7284	  7292
RETER2	  3093	  3161	  3190	  5801	  5803	  6092	  6116	  6140	  6146	  6208	  6906	  6908
RETSKP	   599	   609	   615	   670	   685	   771	   796	   886	   911	   950	   990	  1005	  1058	  1090
	  1117	  1161	  1167	  1210	  1331	  1387	  1420	  1427	  1448	  1455	  1486	  1602	  1670	  1937
	  2055	  2124	  2227	  2267	  2313	  2364	  2422	  2470	  2526	  2568	  2619	  2764	  2837	  2879
	  2883	  2914	  3048	  3096	  3107	  3179	  3258	  3272	  3284	  3361	  3421	  3584	  3625	  3702
	  3781	  3865	  3944	  3959	  3969	  4000	  4007	  4008	  4034	  4049	  4077	  4094	  4153	  4369
	  4373	  4376	  4380	  4447	  4521	  4533	  4592	  4652	  5238	  5295	  5326	  5385	  5444	  5478
	  5807	  5832	  5850	  5881	  5900	  5931	  5943	  6018	  6077	  6081	  6106	  6147	  6209	  6526
	  6558	  6565	  6588	  6600	  6613	  6628	  6739	  6759	  6777	  6792	  6794	  6820	  6912	  7030
	  7044	  7058	  7071	  7149	  7207	  7270	  7328	  7342	  7363	  7389
RFSTS	  3211
RLJFN	  1598	  3187	  3242	  6113	  7250
RMVNOD	  6957#	  6957	  6961	  6966
RPACS	  5956
RSJCNT	  3595#	  3595	  3603	  3622
RSJPTR	  3595#	  3595	  3597	  3604
RSRCNT	  3635#	  3635	  3638	  3696	  3698
RSRCTR	  3635#	  3635	  3664	  3676
RSRMSG	  3635#	  3635	  3641	  3646
RSRPTR	  3635#	  3635	  3639	  3653	  3660	  3663	  3675	  3679
RTPERR	  7159#	  7159	  7211	  7215
RTPHST	  7159#	  7159	  7186
RTPLNK	  7159#	  7159	  7169
RTPPAG	  7159#	  7159	  7165	  7170	  7179	  7201	  7212
RWM	   547
SAVEPQ	   571	  4161	  4544	  6922	  7224	  7279	  7337
SAVEQ	  1622	  1658	  2922	  2967	  3060	  3117	  4306	  4462	  4466	  4600	  4680	  5061	  5733	  5853
	  5860	  6070	  6124	  6194	  6575	  6804
SAVET	  4439
SAVIAC	  4668	  4808	  4828	  4848	  4868	  4900	  4920	  4940	  4960	  4993	  5013	  5032	  5042	  5101
SDFFIL	  1069#	  1069	  1073	  1087
SETONE	  1055	  1084	  1111	  1417	  1445	  1915	  2205	  2880	  4487	  6563	  6649	  6650	  6651	  6653
	  6709	  6728
SETZRO	  1188	  1199	  1208	  1424	  1452	  2876	  4510	  4733	  4776	  6648
SFLFIL	  1289#	  1289	  1316	  1328
SFORK	  5079
SHDMSG	  2389#	  2389	  2394	  2409
SHLLID	  2488#	  2488	  2494	  2508
SHNMSG	  2427#	  2427	  2435	  2452
SHNNOD	  2427#	  2427	  2432	  2443	  2464	  2475	  2481
SHOMSG	  2488#	  2488	  2501	  2512
SIBE	  3274
SIN	  3027
SINR	  3293	  3457	  3644	  3731	  3878	  5144	  7173
SIR	  6058
SLFFIL	  1096#	  1096	  1100	  1114
SLSMSG	  2334#	  2334	  2339	  2351
SNDBLK	  6830#	  6830	  6891
SNDFNC	  6830#	  6830	  6834	  6850	  6874	  6900	  6908	  6909
SNDHLD	  6830#	  6830	  6832
SNDNAM	  6830#	  6830	  6833	  6870
SNDNIF	  3063#	  3063	  3082
SNDNIM	  3063#	  3063	  3069	  3072
SNDNIN	  3063#	  3063	  3064	  3085
SNDNIT	  3063#	  3063	  3084
SNLMSG	  2531#	  2531	  2542	  2554
SNSNOD	  1127#	  1127	  1139	  1146
SOUT	  2063	  2072	  2078	  2104	  2259	  2261	  2601	  2934	  2940	  2947	  2950	  2953	  2959	  2975
	  2982	  2990	  2995	  2998	  3005	  3037	  3152	  3154	  3156	  3304	  3311	  3316	  3338	  3342
	  3349	  3405	  3417	  3440	  3450	  3476	  3520	  3522	  3525	  3545	  3566	  3575	  3579	  3583
	  3608	  3620	  3695	  3700	  3725	  3749	  3755	  3772	  3848	  3860	  3917	  3937	  3942	  4214
	  4234	  4242	  5694	  5701	  5707	  5714	  5725	  5768	  5785	  6873	  7234	  7237	  7240
SOUTR	  3087	  7123
SPACS	  5959
SQNPAG	  2586#	  2586	  2591	  2602	  2607	  2611	  2615
STCMP	  6817	  7095
STKVAR	   689	   800	   961	  1068	  1095	  1126	  1214	  1238	  1288	  1465	  1504	  1682	  2128	  2253
	  2278	  2333	  2388	  2426	  2487	  2530	  2585	  2636	  2797	  2864	  2894	  3143	  3204	  3266
	  3390	  3425	  3594	  3634	  3712	  3834	  3869	  4103	  4338	  4390	  4682	  5084	  5121	  5486
	  5506	  5547	  5683	  5734	  5854	  5861	  5935	  6004	  6086	  6195	  6496	  6542	  6636	  6669
	  6830	  6976	  7108	  7225
STLFLG	  2865#	  2865	  2867	  2875
STLLID	  2865#	  2865	  2868	  2871
STLNIB	  2865#	  2865	  2869	  2870
STNNIB	  6496#	  6496	  6513	  6522	  6525
STNNOD	  6496#	  6496	  6507	  6515	  6523	  6529
STONIF	  3018#	  3018	  3044
STONIM	  3018#	  3018	  3025	  3029	  3038	  3041
STONIN	  3018#	  3018	  3035
STONIT	  3018#	  3018	  3023	  3024	  3028	  3040
STOR	   613	   769	   794	   884	   909	  1053	  1088	  1115	  1142	  1144	  1147	  1159	  1230	  1254
	  1265	  1329	  1484	  1826	  1834	  1935	  2225	  2311	  2362	  2420	  2462	  2524	  2566	  2762
	  3168	  3171	  3173	  4479	  4482	  4491	  4496	  4499	  4502	  4505	  4508	  4516	  4529	  4693
	  4700	  4787	  5056	  5091	  5093	  5111	  5765	  5771	  5781	  5788	  5921	  5990	  6098	  6100
	  6101	  6596	  6597	  6598	  6644	  6645	  6647	  6658	  6838	  6840	  6849	  6851	  6853	  6859
	  6861	  6863	  6869	  6879	  6888	  6890
SWITCH	  4291
SWLENT	  7002#	  7002
SWLNEW	  7002#	  7002	  7024
SWLNOD	  7002#	  7002	  7009	  7019
SWLOLD	  7002#	  7002	  7012
SYSGT	  6178
TBADD	  6517	  7026
TBDEL	  7010
TBLUK	  6783	  7041	  7068	  7308
TIMER	  5867
TMSG	  6032	  6040
TOPENT	  4980#	  4991	  5011
TOPVR0	  5854#	  5854	  5872	  5878	  5897
TPIERR	  5121#	  5121	  5184	  5194
TPIHST	  5121#	  5121	  5126	  5157
TPIPAG	  5121#	  5121	  5136	  5141	  5150	  5172	  5185
TPLLNK	  7225#	  7225	  7246	  7249	  7254	  7263	  7269
TPLNOD	  7225#	  7225	  7230	  7236
TPLSTR	  7225#	  7225	  7231	  7243
TRVAR	  1961
TXNE	  3282	  4343	  4351	  5957	  6698	  6701	  6720	  7257	  7310
TXNN	  1925	  2215	  6704	  6707	  6723	  6726	  6785	  7070
TXO	  1837	  1839	  2186	  3126	  4411	  4570	  5189	  5551	  7125	  7136	  7264
TXZ	  4424
TXZE	  4399	  4485
ULNMSK	  5506#	  5506	  5512
UNLOCK	  5226	  5227	  5322	  5323	  5425	  5432	  5464	  5472	  5475	  7028
UPNLST	  7278#	  7278	  7305
UPNPAG	  7278#	  7278	  7285	  7288	  7291	  7296	  7325
WAIT	   540
WRNMES	  6217	  6280
X	  4282#	  4287	  4291
%LTLOG	  2877	  2881
%LTNIB	  1160
%LTUSE	  6550	  6563
%NDDIP	  2206	  6697	  6709
%NDDMP	  1077	  1089
%NDDOK	  1085	  2214	  6703	  6722
%NDFLG	  6648
%NDFRD	  1418	  1425	  6651	  6706
%NDFRL	  1446	  1453	  6653	  6725
%NDLIN	  6548	  6658
%NDLIP	  1916	  6700	  6719	  6728
%NDLOD	  1104	  1116
%NDLOK	  1112	  1924
%NDNAM	  1850	  2194	  6644	  6711	  6730	  6781	  6810
%NDPHT	  1198	  1200	  1246	  1255	  1894	  6647
%NDPNA	  1187	  1189	  1222	  1231	  1887	  6645
%NDPNU	  1209	  1266	  1901	  6650
%NDPRO	  1054	  6649
%NDPST	  1056
%NDSL1	  1143	  1154
%NDSL2	  1145	  1156
%NDSRV	  1130	  1148	  1150	  7093
%NQCHR	  4500	  4573
%NQFCN	  4506	  4580
%NQMES	  3000	  4480	  4558
%NQNUM	  2984	  4503	  4575
%NQOPT	  4509	  4578
%NQPNT	  2978	  4511	  4517	  4524	  4530	  4553
%NQREQ	  4488	  4569
%NQRQT	  4497	  4565
%NQTXT	  4492	  4563
%NQXTR	  2992	  4483	  4560
%PBLEN	  3957	  3998	  4027	  4032	  4047	  4061	  4075	  4092	  4177	  6853	  6863	  6879	  6890
%PBTYP	  3951	  3966	  3976	  4020	  4041	  4057	  4068	  4086	  4168	  6849	  6859	  6869	  6888
%PBVAL	  3955	  4045	  4090	  4170	  6851	  6861
%PGCPU	  6581	  6597
%PGFIL	  1321	  1330
%PGLDV	  5990	  6578	  6596
%PGPGM	  6584	  6598
%QUEFL	   614	   770	   795	   885	   910	  1485	  1936	  2226	  2312	  2363	  2421	  2463	  2525	  2567
	  2763	  4309
%QUEME	   592	  3270	  4321	  4701	  4717	  4761	  5093
%QUEPN	   524	  4734	  4777	  4782	  4788
%QUETY	   574	  4312	  4694	  5056	  5091	  5111
..JN	  4569	  6550	  6697	  6700	  6719