Google
 

Trailing-Edge - PDP-10 Archives - BB-H348C-RM_1982 - swskit-v21/listings/utilities/ncu.list
There are no other files named ncu.list in the archive.
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 1
NCU	MAC	 6-Oct-81 12:41	

     1					;<DECNET>NCU.MAC.3,  6-Oct-81 09:56:42, EDIT BY GRANT
     2					;Change Q1 to W1 in PRTINF;  add ENDAV.
     3					;<JENNESS.NETCON>NCU.MAC.2, 31-Jan-80 13:28:12, Edit by JENNESS
     4					; Update copyright date
     5					;<JENNESS>NCU.MAC.15, 14-Nov-79 13:46:04, Edit by JENNESS
     6					; Fix RQLERR to not use the ASUBR macro.  This messed up register 15 which
     7					; was pointing to the stack framed needed to load RQLREC properly.
     8					;<JENNESS>NCU.MAC.14, 14-Nov-79 11:21:33, Edit by JENNESS, PLATUKIS
     9					; Change RQLERR to properly release the record block.  Fix accidental call
    10					; to FATAL.ERROR if none existed.  Same fix to RQLINT also.
    11					;<JENNESS>NCU.MAC.10, 30-Oct-79 17:06:12, Edit by JENNESS
    12					; Change REQLOG to NOT return a success code across the link. The NICE
    13					; protocol has NEVER needed this.
    14					;<JENNESS>NCU.MAC.9, 30-Oct-79 10:42:41, Edit by JENNESS, PLATUKIS
    15					; Add TOPFRE routine to release a topology table.
    16					;<JENNESS>NCU.MAC.7, 23-Oct-79 10:56:23, Edit by PLATUKIS
    17					; Fix ADVTOP to give proper error return, instead of trying to release
    18					; memory it doesn't have.
    19					;<JENNESS>NCU.MAC.6, 23-Oct-79 10:53:58, Edit by PLATUKIS
    20					; Fix TSTL05 to properly loop over multiple DN20 front ends.
    21					;<JENNESS>NCU.MAC.6, 23-Oct-79 10:52:01, Edit by PLATUKIS
    22					; Fix to STODMC to put a -1 byte pointer as first word.  Needed since
    23					; SYSERR treats DMCs the same a KMCs, and DMCs don't have sub-device data.
    24					;<JENNESS>NCU.MAC.6, 23-Oct-79 10:48:17, Edit by PLATUKIS
    25					; Fix hardware event message processing to properly release chunks allocated 
    26					; for device and register blocks.
    27					;<JENNESS>NCU.MAC.3,  4-Oct-79 08:18:35, Edit by JENNESS
    28					; Add SPRIW calls to set NCU fork priority higher to make loading/dumping
    29					; run faster on loaded systems.  This will get a DN20 back up faster.
    30					;<JENNESS>NCU.MAC.3,  4-Oct-79 08:18:30, Edit by JENNESS
    31					; Change ASCLIN to suppress station number if 0 (no multi-drop).
    32					;<JENNESS>NCU.MAC.2,  1-Oct-79 13:52:47, Edit by JENNESS
    33					; Change LSTBLD so that host name byte string count is correctly calculated
    34					;  for strings of exact match of 6 characters.
    35					;<SROBINSON.NETCON>NCU.MAC.6, 26-Sep-79 15:28:56, Edit by JENNESS
    36					; TCO 4.2489  Change PRTINF so that it returns real NICE line status
    37					; codes instead of the garbage it was returning.
    38					;<4.UTILITIES>NCU.MAC.245, 23-Aug-79 13:37:46, Edit by JENNESS
    39					; Change ASGREC to assign a huge buffer to stop memory management
    40					; overruns.
    41					;<4.UTILITIES>NCU.MAC.244, 8-Aug-79 11:20:45, Edit by JENNESS
    42					; Change all failures of RELFRE to FATAL.ERRORs
    43					;<4.UTILITIES>NCU.MAC.243, 10-Jul-79 10:37:40, Edit by SROBINSON
    44					;TCO 4.2320 Correct "Invalid Line ID" when it isn't invalid
    45					;<4.UTILITIES>NCU.MAC.242, 20-Jun-79 16:08:01, EDIT BY KIRSCHEN
    46					;ADD EVENT LOGGING COMMANDS
    47					;<4.UTILITIES>NCU.MAC.241,  7-May-79 11:19:14, EDIT BY KIRSCHEN
    48					;FIX TYPO'S IN DEFRQD
    49					;<4.UTILITIES>NCU.MAC.240, 27-Apr-79 15:43:07, EDIT BY KIRSCHEN
    50					;COMPUTE OFFSET TO LOG DATA FOR CHK11 ENTRIES CORRECTLY
    51					;<4.UTILITIES>NCU.MAC.239, 20-Apr-79 14:27:20, EDIT BY KIRSCHEN
    52					;USER CORRECT ENTRY TYPE FOR CHK11 ENTRIES; COMPUTE CORRECT POINTER
    53					; TO LOG DATA
    54					;<4.UTILITIES>NCU.MAC.238, 17-Mar-79 14:56:25, EDIT BY KIRSCHEN
    55					;FIX EVENT LOGGING BUGS
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 1-1
NCU	MAC	 6-Oct-81 12:41	

    56					;<4.UTILITIES>NCU.MAC.237, 10-Mar-79 14:32:32, EDIT BY KONEN
    57					;UPDATE COPYRIGHT FOR RELEASE 4
    58					;<4.UTILITIES>NCU.MAC.236,  4-Feb-79 22:06:06, EDIT BY KIRSCHEN
    59					;FIX SPURIOUS "?INTERNAL NETCON ERROR" MESSAGE
    60					;<4.UTILITIES>NCU.MAC.235,  2-Feb-79 14:46:07, EDIT BY KIRSCHEN
    61					;CORRECT EXTRACTION OF LINE ID FROM EVENT LOG MESSAGES TO CONFORM TO SPEC
    62					;<4.UTILITIES>NCU.MAC.234,  1-Feb-79 10:22:24, EDIT BY KIRSCHEN
    63					;ADD ROUTINE TO STORE KDZ EVENT LOG DATA
    64					;<4.UTILITIES>NCU.MAC.233, 30-Jan-79 09:17:14, EDIT BY ENGEL
    65					;FIX AUTO DUMP/LOAD BUG BY SETTING NDDIP/NDLIP AFTER NIB LOCKED
    66					;<4.UTILITIES>NCU.MAC.232, 30-Jan-79 09:09:49, EDIT BY KIRSCHEN
    67					;ADD CODE TO STORE KDP REGISTERS ON EVENT LOG MESSAGE
    68					;<4.UTILITIES>NCU.MAC.230, 14-Jan-79 20:46:50, EDIT BY KIRSCHEN
    69					;UPDATE NODE JSYS SYMBOLS
    70					;<4.UTILITIES>NCU.MAC.229,  8-Jan-79 22:02:44, EDIT BY KIRSCHEN
    71					;automate topology reporting
    72					;<4.UTILITIES>NCU.MAC.228,  4-Jan-79 13:08:23, EDIT BY KIRSCHEN
    73					;PASS NODE NAME AND HOST PARAMETERS ON LOAD
    74					;<4.UTILITIES>NCU.MAC.227,  2-Jan-79 15:27:14, EDIT BY ENGEL
    75					;FIX SHOW STATE LINE KDP_0_0 PROBLEM
    76					;<4.UTILITIES>NCU.MAC.201, 26-Dec-78 11:03:44, EDIT BY ENGEL
    77					;<4.UTILITIES>NCU.MAC.200, 26-Dec-78 10:55:47, EDIT BY ENGEL
    78					;ADD TRANSFER ADDRESS CHECK. (DO NOT SEND "TRANSFER" LINE SERV. FOR ODD ADDR.
    79					;<4.UTILITIES>NCU.MAC.189, 22-Dec-78 10:30:35, EDIT BY ENGEL
    80					;ADD AUTO DUMP/LOAD CODE
    81					;<4.UTILITIES>NCU.MAC.171, 15-Dec-78 09:09:33, EDIT BY KIRSCHEN
    82					;BREAK NETCON INTO TWO MODULES NCP AND NCU; ADD RELEASE 4 FEATURES.
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 2
NCU	MAC	 6-Oct-81 12:41	

    83					TITLE		NCU - TOPS20 Network Information and Control Exchange (NICE) Process
    84					SUBTTL	D. KIRSCHEN/P. HURLEY	FEBRAURY, 1977
    85
    86
    87						SEARCH NETPAR
    88						SEARCH MONSYM,MACSYM,ORNMAC,GLXMAC,MACTEN
    89						.REQUIRE SYS:MACREL
    90						SALL
    91
    92
    93					;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
    94					;  OR COPIED IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE.
    95					;
    96					;COPYRIGHT (C) 1976,1977,1978,1979,1980 BY DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
    97
    98
    99
   100					; THE FOLLOWING SYMBOLS ARE ALL DEFINED IN MODULE NCP.MAC
   101
   102					EXTERN	GETFRE, RELFRE, ASGPAG, RELPGA, CPYASC, SAVPQ
   103					EXTERN	LIDPRT, WRNING, ELOCK, DLOCK, LOKNOD, ULKNOD
   104					EXTERN	MONINI, TOPCHK, FRELST, FNDDSP
   105					EXTERN	OPRMES, SAVQ, SAVT, ERROR, NETCON
   106
   107					EXTERN	NIBTAB, SYSNAM
   108					EXTERN	.ERR21, .ERR29
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 3
NCU	MAC	 6-Oct-81 12:41		Initialization

   109					SUBTTL	Initialization
   110
   111					; NICE PROCESS IS INITIALLY STARTED HERE - READ PARAMETERS AND DO INITIALIZATION
   112
   113	000000'	200 01 0 00 013526'	NCU::	MOVE T1,[.PRARD,,.FHSLF] ;GET "READ PARAMETERS" FUNCTION CODE
   114	000001'	201 02 0 00 000003 		MOVEI T2,T3		;GET ADDRESS OF ARGUMENT BLOCK
   115	000002'	201 03 0 00 000002 		MOVEI T3,2		;ARGUMENT BLOCK CONTAINS TWO ITEMS
   116	000003'	104 00 0 00 000545 		PRARG			;READ STARTUP PARAMETERS
   117	000004'	320 16 0 00 013527'		 ERJMP [HALTF]		;FAILED, NO RECOURSE.
   118
   119					; THE PRARG ARGUMENT BLOCK CONTAINS TWO WORDS:
   120					;
   121					;	1.	JFN OF LOGICAL LINK FROM REQUESTING TASK TO NCU
   122					;	2.	LENGTH,,ADDRESS OF PER-NCU STORAGE AREA
   123
   124					; SET UP STACK IN BEGINNING OF OUR STORAGE AREA
   125
   126	000005'	541 17 0 04 777777 		HRRI P,-1(T4)		;SET UP AN IOWD FOR THE
   127	000006'	505 17 0 00 776000 		HRLI P,-PDLEN		; PUSHDOWN STACK
   128
   129					; SET UP ADDRESS OF GENERAL STORAGE AREA FOR VARIABLES
   130
   131	000007'	201 14 0 04 002000 		MOVEI P5,PDLEN(T4)	;GET STARTING ADDRESS OF DATA AREA
   132	000010'	201 01 0 14 003374 		MOVEI T1,VARLEN(P5)	;GET STARTING ADDRESS OF STRING STORAGE AREA
   133	000011'	505 01 0 00 440700 		HRLI T1,(POINT 7,)	;FORM POINTER TO STRING AREA
   134	000012'	202 01 0 14 000001 		MOVEM T1,STRPTR		;SAVE STRING POINTER
   135	000013'	554 01 0 00 000004 		HLRZ T1,T4		;GET LENGTH OF DATA AREA
   136	000014'	271 01 0 04 777777 		ADDI T1,-1(T4)		;COMPUTE LAST ADDRESS IN DATA AREA
   137	000015'	202 01 0 14 000002 		MOVEM T1,STREND		;SAVE AS FINAL LOCATION IN STRING AREA
   138	000016'	554 01 0 00 000004 		HLRZ T1,T4		;GET ORIGINAL LENGTH OF STORAGE AREA
   139	000017'	275 01 0 00 005374 		SUBI T1,PDLEN+VARLEN	;COMPUTE NUMBER OF WORDS IN STRING STORAGE AREA
   140	000020'	202 01 0 14 000000 		MOVEM T1,STRSIZ		;SAVE SIZE OF STRING STORAGE AREA
   141	000021'	202 03 0 14 000032 		MOVEM T3,REQLNK		;SAVE LOGICAL LINK FROM REQUESTOR
   142						; ..
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 4
NCU	MAC	 6-Oct-81 12:41		Initialization

   143						; ..
   144
   145					; THE FOLLOWING LOOP IS PERFORMED FOR EACH OPERATION INITIATED BY
   146					; THE REQUESTING TASK (THE SAME LOGICAL LINK MAY BE USED TO REQUEST
   147					; SEVERAL SEQUENTIAL OPERATIONS).
   148
   149
   150					; INPUT THE NICE MESSAGE FROM THE REQUESTOR AND CALL DISPATCHING ROUTINE
   151
   152	000022'	260 17 0 00 010457'	NCU010:	CALL CLRMSG		;GO CLEAR THE MESSAGE AREA
   153	000023'	200 01 0 14 000032 		MOVE T1,REQLNK		;GET LOGICAL LINK (JFN)
   154	000024'	201 02 0 14 000033 		MOVEI T2,MSGBLK		;GET ADDRESS OF MESSAGE BLOCK
   155	000025'	505 02 0 00 441000 		HRLI T2,(POINT 8,)	;FORM POINTER TO MESSAGE BLOCK
   156	000026'	211 03 0 00 014000 		MOVNI T3,MSGSIZ*BPWRD	;GET MAX COUNT
   157	000027'	104 00 0 00 000531 		SINR			;INPUT THE MESSAGE
   158						 ERJMP [MOVX T2,.NRCME	;ON FAILURE, GET "COMMUNICATIONS ERROR" CODE
   159							BOUT		;RETURN RESPONSE TO REQUESTING TASK
   160							 ERJMP [HALTF]	;NOTHING ELSE LEFT TO DO
   161	000030'	320 16 0 00 013530'			HALTF ]		;DONE, NOTHING ELSE LEFT TO DO
   162	000031'	201 02 0 03 014000 		MOVEI T2,MSGSIZ*BPWRD(T3) ;GET NUMBER OF BYTES IN THE MESSAGE
   163	000032'	200 01 0 00 013534'		MOVE T1,[POINT 8,MSGBLK] ;GET POINTER TO START OF MESSAGE
   164	000033'	135 03 0 00 013535'		LDB T3,[POINT 8,MSGBLK,7] ;GET NICE FUNCTION CODE
   165	000034'	260 17 0 00 000045'		CALL NCUDSP		;GO DISPATCH ACCORDING TO FUNCTION REQUESTED
   166	000035'	334 04 0 00 000001 		 SKIPA T4,T1		;FAILED, RETURN CODE ALREADY IN T1
   167	000036'	254 00 0 00 000022'		JRST NCU010		;SUCCESS, GO PROCESS NEXT FUNCTION
   168
   169					; HERE TO RETURN AN ERROR RETURN CODE WHEN THE OPERATION FAILED
   170
   171	000037'	200 01 0 14 000032 		MOVE T1,REQLNK		;GET LOGICAL LINK TO REQUESTING TASK
   172	000040'	200 02 0 00 013536'		MOVE T2,[POINT 8,T4,27]	;GET POINTER TO SINGLE BYTE RETURN CODE
   173	000041'	211 03 0 00 000001 		MOVNI T3,1		;RETURN CODE IS JUST ONE SINGLE BYTE
   174	000042'	104 00 0 00 000532 		SOUTR			;SEND THE RETURN CODE TO REQUESTING TASK
   175	000043'	320 16 0 00 013527'		 ERJMP [HALTF]		;IF FAILED, JUST QUIT, SINCE NOTHING ELSE TO
   176									; DO IF CANNOT REPORT FAILURE TO REQUESTOR
   177	000044'	254 00 0 00 000022'		JRST NCU010		;DONE WITH THIS REQUEST, LOOP BACK FOR NEXT MSG
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 5
NCU	MAC	 6-Oct-81 12:41		Initialization

   178					;NCUDSP - ROUTINE TO DISPATCH TO NSP MESSAGE HANDLING ROUTINE
   179					;
   180					;ACCEPTS IN T1/	NICE FUNCTION CODE FROM MESSAGE
   181					;	    T2/	POINTER TO START OF NICE MESSAGE
   182					;	    T3/	NUMBER OF BYTES IN NICE MESSAGE
   183					;		CALL NCUDSP
   184					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
   185					;	  +2	SUCCESS, OPERATION COMPLETED.
   186
   187	000045'	265 16 0 00 000000*	NCUDSP:	ASUBR <DSPPTR,DSPCNT,DSPFCN>
   188
   189	000046'	200 04 0 00 013537'		MOVE T4,[-NCTSIZ,,NICTAB] ;SET UP TO SEARCH NICE FUNCTION CODE TABLE
   190	000047'	554 01 0 04 000000 	NSPD10:	HLRZ T1,(T4)		;GET A KNOWN NICE FUNCTION CODE
   191	000050'	316 01 0 15 000003 		CAMN T1,DSPFCN		;FOUND FUNCTION CODE IN THIS NICE MESSAGE ?
   192	000051'	254 00 0 00 000054'		JRST NSPD40		;YES, GO DISPATCH TO PROCESSING ROUTINE
   193	000052'	253 04 0 00 000047'		AOBJN T4,NSPD10		;LOOP OVER ALL KNOWN NICE FUNCTION CODES
   194	000053'	254 00 0 00 013540'		RETBAD (.NRFNC)		;NOT FOUND, RETURN "INVALID FUNCTION"
   195
   196
   197					; HERE TO DISPATCH TO THE PROPER PROCESSING ROUTINE FOR THE NICE MESSAGE
   198
   199	000054'	200 01 0 15 000001 	NSPD40:	MOVE T1,DSPPTR		;GET POINTER TO NICE MESSAGE
   200	000055'	200 02 0 15 000002 		MOVE T2,DSPCNT		;GET COUNT OF BYTES IN MESSAGE
   201	000056'	550 04 0 04 000000 		HRRZ T4,(T4)		;GET ADDRESS OF PROCESSING ROUTINE
   202	000057'	254 00 0 04 000000 		CALLRET (T4)		;GO HANDLE THE NSP MESSAGE
   203
   204
   205
   206					; NICE FUNCTION TABLE
   207
   208	000060'	000002	000067'		NICTAB:	.NCRQL,,REQDLL		;REQUEST DOWN-LINE LOAD
   209	000061'	000003	000544'			.NCRQD,,REQDMP		;REQUEST UP LINE DUMP
   210	000062'	000010	000713'			.NCRED,,REQRED		;REQUEST TO READ INFORMATION
   211	000063'	000011	001631'			.NCZRO,,REQZRO		;REQUEST TO ZERO COUNTERS
   212	000064'	000016	001672'			.NCLSV,,REQLSV		;REQUEST FOR LINE SERVICE
   213	000065'	000007	001471'			.NCSET,,REQSET		;REQUEST TO SET PARAMETER
   214	000066'	000001	003210'			.NCLOG,,REQLOG		;REQUEST TO LOG DATA
   215
   216			000007			NCTSIZ==.-NICTAB
   217
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 6
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Down-Line Load

   218					SUBTTL	NICE Process -- Down-Line Load
   219
   220					;REQDLL - ROUTINE TO PROCESS REQUESTS FOR A DOWN-LINE LOAD OPERATION
   221					;
   222					;ACCEPTS IN T1/	POINTER TO START OF NICE DOWN-LINE LOAD REQUEST MESSAGE
   223					;	    T2/	NUMBER OF BYTES IN MESSAGE
   224					;		CALL REQDLL
   225					;RETURNS: +1	 FAILED, T1/ NICE RETURN CODE
   226					;	  +2	SUCCESS
   227
   228	000067'	265 16 0 00 000045*	REQDLL:	ASUBR <RQLPTR,RQLCNT,RQLLNK,RQLREC>
   229
   230					; EXTRACT THE FIELDS PRESENT IN THE NICE DOWN-LINE LOAD REQUEST MESSAGE
   231
   232	000070'	402 00 0 15 000003 		SETZM RQLLNK		;INITIALIZE LOGICAL LINK CELL
   233	000071'	402 00 0 15 000004 		SETZM RQLREC		;INITIALIZE ADDRESS OF RECORD BLOCK
   234	000072'	200 01 0 15 000001 		MOVE T1,RQLPTR		;GET POINTER TO START OF NICE MESSAGE
   235	000073'	200 02 0 15 000002 		MOVE T2,RQLCNT		;GET NUMBER OF BYTES IN THE MESSAGE
   236	000074'	260 17 0 00 004252'		CALL GETRQL		;GO DECODE THE FIELDS IN THE REQUEST LOAD MSG
   237	000075'	254 00 0 00 013542'		 RETBAD (.NRIMF)	;FAILED, RETURN "INVALID MESSAGE FORMAT"
   238
   239					; IF LOADING ALL KNOWN NODES, LOOP OVER EACH NODE IN THE CONFIGURATION DATABASE
   240
   241	000076'	260 17 0 00 004061'	RQL010:	CALL DEFRQL		;GO FILL IN DEFAULTS FROM CONFIGURATION DATABASE
   242	000077'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR TO CALLER
   243
   244					; LOCK THE TARGET NODE
   245
   246	000100'	200 01 0 14 000004 		MOVE T1,RQLTGT		;GET POINTER TO ASCIZ TARGET NODE NAME
   247	000101'	260 17 0 00 010525'		CALL GETNIB		;GET NIB ADDRESS FOR NODE BEING LOADED
   248	000102'	254 00 0 00 013544'		 RETBAD (.NRICF)	;FAILED, RETURN ERROR
   249	000103'	202 01 0 15 000003 		MOVEM T1,RQLLNK		;SAVE THE NIB ADDRESS
   250	000104'	205 02 0 00 400000 		MOVX T2,RM%PRI		;USE PRIMARY RESOURCE
   251	000105'	260 17 0 00 000000*		CALL LOKNOD		;LOCK THE TARGET NODE
   252	000106'	200 01 0 15 000003 		MOVE T1,RQLLNK		;GET THE NIB ADDRESS
   253	000107'	205 16 0 00 001000 		SETONE NDLIP,(T1)	;SHOW LOAD IN PROGRESS
   254	000110'	436 16 0 01 000000 
   255	000111'	402 00 0 15 000003 		SETZM RQLLNK		;ZERO HOLDING CELL
   256
   257					; GET A LINK TO THE NICE PROCESS ON THE SERVER NODE
   258
   259	000112'	200 01 0 14 000005 		MOVE T1,RQLSRV		;GET POINTER TO ASCIZ NAME OF SERVER NODE
   260	000113'	260 17 0 00 007140'		CALL GETLNK		;GO GET A LOGICAL LINK TO ANOTHER NICE PROCESS
   261	000114'	254 00 0 00 013546'		 RETBAD (.NRPNA)	;FAILED, RETURN "PROCESS NOT AVAILABLE"
   262	000115'	202 01 0 15 000003 		MOVEM T1,RQLLNK		;SAVE LOGICAL LINK NUMBER
   263
   264					; IF NECESSARY, TRIGGER THE BOOTSTRAP ROM AT THE TARGET NODE
   265
   266	000116'	200 04 0 14 000003 		MOVE T4,RQLOPT		;GET OPTIONS FROM DOWN-LINE LOAD REQUEST
   267	000117'	135 03 0 00 013550'		LOAD T3,LO%ROM,T4	;GET ROM FIELD
   268	000120'	302 03 0 00 000001 		CAIE T3,.LOTBD		;TRIGGER BOOT, DEFAULT PROGRAM DATA ?
   269	000121'	306 03 0 00 000003 		CAIN T3,.LOTBP		; OR TRIGGER BOOT & GET PROGRAM DATA RETURNED ?
   270						JRST [	MOVE T1,RQLLNK	;YES, GET LOGICAL LINK NUMBER
   271							CALL TRGGER	;TRIGGER THE BOOTSTRAP ROM AT THE TARGET NODE
   272							 LODERR ()	;FAILED, RETURN ERROR TO CALLER
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 6-1
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Down-Line Load

   273	000122'	254 00 0 00 013553'			JRST .+1 ]	;DONE, BOOTSTRAP ROM HAS BEEN TRIGGERED
   274
   275	000123'	201 01 0 00 400000 		MOVEI T1,.FHSLF		;Point to this process
   276	000124'	201 02 0 00 000102 		MOVEI T2,0102		;Only want to run in Q 1 (very high)
   277	000125'	104 00 0 00 000243 		SPRIW			;Set the fork scheduling priority
   278						; ..
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 7
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Down-Line Load

   279						; ..
   280
   281					; AT THIS POINT, THE ACTUAL LOADING OPERATION BEGINS.  THE SEQUENCE OF
   282					; EVENTS IS AS FOLLOWS:
   283					;
   284					;	1.	A NICE "INITIATE-LOAD-DIALOG" MESSAGE IS SENT TO THE SERVER NCU
   285					;	2.	THE FILE TO BE LOADED IS OPENED.
   286					;	3.	FOR EACH "BLOCK" IN THE .BIN FILE, 
   287					;
   288					;	   3.1		THE LOAD ADDRESS IS SENT USING A NICE LINE SERVICE
   289					;			MESSAGE (SET BASE ADDRESS OPTION).
   290					;	   3.2.		THE DATA IN THE "BLOCK" IS SENT TO THE SERVER NODE NCU
   291					;			USING A NICE LINE SERVICE MESSAGE (MEMORY IMAGE OPTION).
   292					;	   3.3		WHEN ALL  DATA "BLOCKS" IN THE .BIN FILE HAVE BEEN
   293					;			LOADED IN THIS MANNER, THE TRANSFER ADDRESS IS 
   294					;			OBTAINED FROM THE LAST BLOCK. A NICE LINE SERVICE
   295					;			MESSAGE IS THEN USED TO SEND THIS ADDRESS AND ANY
   296					;			PARAMETERS FOR THE NODE JUST LOADED TO THE SERVER
   297					;			NODE NCU (SET PARAMETERS AND TRANSFER OPTION).
   298					;
   299					;	4.	THE SERVER NODE NCU REPLIES WITH AN END-OF-DIALOG NICE
   300					;		LINE SERVICE MESSAGE.  THIS MAY CONTAIN A REQUEST FOR
   301					;		ANOTHER PROGRAM TO BE LOADED, AND THE PROCESS REPEATS FROM
   302					;		STEP NUMBER 1 FOR THIS NEXT PROGRAM.
   303
   304
   305					; ASSEMBLE AND SEND A NICE "LINE SERVICE" MESSAGE TO INITIATE A LOAD DIALOG
   306
   307	000126'	260 17 0 00 005226'	RQL020:	CALL MAKLOD		;GO ASSEMBLE A NICE LINE SERVICE MESSAGE
   308	000127'	265 16 0 00 013551'		 LODERR ()		;FAILED, RETURN ERROR TO CALLER
   309	000130'	210 03 0 00 000002 		MOVN T3,T2		;GET -COUNT
   310	000131'	200 02 0 00 000001 		MOVE T2,T1		;COPY POINTER TO START OF DATA MESSAGE
   311	000132'	200 01 0 15 000003 		MOVE T1,RQLLNK		;GET LOGICAL LINK (JFN)
   312	000133'	104 00 0 00 000532 		SOUTR			;SEND LINE SERVICE MESSAGE TO SERVER NODE NCU
   313	000134'	320 16 0 00 013562'		 ERJMP [LODERR (.NRCME)] ;ON FAILURE, RETURN "COMMUNICATIONS ERROR"
   314
   315					; NOW RECEIVE AND CHECK THE RETURN CODE FROM THE SERVER NODE NCU
   316
   317	000135'	200 01 0 15 000003 		MOVE T1,RQLLNK		;GET LOGICAL LINK (JFN)
   318	000136'	104 00 0 00 000050 		BIN			;WAIT FOR A REPLY FROM THE SERVER NODE NCU
   319	000137'	320 16 0 00 013562'		 ERJMP [LODERR (.NRCME)] ;RETURN "COMMUNICATIONS ERROR" ON FAILURE
   320	000140'	200 01 0 00 000002 		MOVE T1,T2		;COPY THE RETURN CODE
   321	000141'	302 01 0 00 000001 		CAIE T1,.NRSUC		;SUCCESS ?
   322	000142'	265 16 0 00 013551'		LODERR ()		;NO, USE NICE RETURN CODE FROM SERVER NODE
   323						; ..
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 8
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Down-Line Load

   324						; ..
   325					; TOP OF LOOP OVER EACH FILE TO BE LOADED
   326
   327					; OPEN THE INPUT FILE TO BE LOADED AND DO INITIAL SET UP
   328
   329	000143'	201 01 0 00 200000 		MOVX T1,OF%RD		;NOTE THAT FILE IS TO BE READ
   330	000144'	260 17 0 00 010535'		CALL ASGREC		;GO ASSIGN A RECORD BLOCK FOR THIS I/O OPERATION
   331	000145'	265 16 0 00 013563'		 LODERR (.NRRES)	;FAILED, RESOURCE ERROR
   332	000146'	202 01 0 15 000004 		MOVEM T1,RQLREC		;SAVE ADDRESS OF RECORD BLOCK
   333	000147'	260 17 0 00 010473'		CALL SETPGM		;GO GET POINTER TO FILESPEC TO BE LOADED
   334	000150'	265 16 0 00 013566'		 LODERR (.NRICF)	;FAILED, RETURN "INVALID CONFIGURATION FILE"
   335	000151'	260 17 0 00 006626'		CALL OPNIFL		;GO OPEN THE INPUT FILE
   336	000152'	265 16 0 00 013571'		 LODERR (.NRIFL)	;FAILED, RETURN "INVALID FILE"
   337	000153'	200 04 0 15 000004 		MOVE T4,RQLREC		;GET ADDRESS OF RECORD BLOCK
   338	000154'	506 01 0 04 000001 		STOR T1,RBJFN,(T4)	;STORE THE JFN OF THE FILE TO BE LOADED
   339	000155'	542 02 0 04 000001 		STOR T2,RBTYP,(T4)	;STORE FILE FORMAT TYPE
   340	000156'	476 00 0 04 000007 		SETONE RBCAD,(T4)	;SET CURRENT ADDRESS TO TOP OF MEMORY
   341									; TO FORCE NEW BASE ADDRESS REQUIRED
   342	000157'	200 01 0 15 000003 		MOVE T1,RQLLNK		;GET LOGICAL LINK (JFN) TO SERVER NCU
   343	000160'	260 17 0 00 000513'		CALL INTSET		;SET UP INTERRUPT SYSTEM
   344	000161'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR
   345
   346					; TOP OF LOOP OVER ALL BLOCKS IN THE FILE.  INPUT THE NEXT BLOCK
   347
   348	000162'	200 01 0 15 000004 	RQL030:	MOVE T1,RQLREC		;GET ADDRESS OF RECORD BLOCK
   349	000163'	505 04 0 00 441000 		HRLI T4,(POINT 8,)	;FORM POINTER TO START OF DATA
   350	000164'	541 04 0 01 000011 		HRRI T4,.RBDAT(T1)	; AREA IN RECORD BLOCK
   351	000165'	202 04 0 01 000003 		STOR T4,RBPTR,(T1)	;STORE INITIAL POINTER
   352	000166'	550 02 0 01 000001 		LOAD T2,RBTYP,(T1)	;GET FILE FORMAT TYPE
   353						CALL @[	R		; 0 - ILLEGAL
   354							Z INPLDA	;LDA FORMAT
   355							Z INPTSK	;TASK IMAGE FORMAT
   356							Z INPDMP	;NETCON DUMP FILE FORMAT
   357	000167'	260 17 1 02 013574'			](T2)		;READ A BLOCK FROM THE FILE ACCORDING TO FORMAT
   358	000170'	265 16 0 00 013600'		 LODERR (.NRIOE)	;FAILED, RETURN "FILE I/O ERROR"
   359	000171'	200 04 0 15 000004 		MOVE T4,RQLREC		;GET ADDRESS OF RECORD BLOCK
   360	000172'	550 16 0 04 000005 		JE RBCNT,(T4),RQL070	;IF END OF DATA, GO SEND "TRANSFER" MESSAGE
   361	000173'	322 16 0 00 000231'
   362					; SEE IF WE NEED TO SET A NEW BASE ADDRESS
   363
   364	000174'	200 04 0 15 000004 		MOVE T4,RQLREC		;GET ADDRESS OF RECORD BLOCK
   365	000175'	200 01 0 04 000006 		LOAD T1,RBNAD,(T4)	;GET MEMORY ADDRESS AT WHICH TO LOAD THIS BLOCK
   366	000176'	200 02 0 04 000007 		LOAD T2,RBCAD,(T4)	;GET CURRENT ADDRESS
   367	000177'	316 02 0 00 000001 		CAMN T2,T1		;DO WE HAVE TO SET A NEW BASE ADDRESS?
   368	000200'	254 00 0 00 000207'		 JRST RQL035		;NO-- JUST UPDATE CURRENT ADDRESS
   369
   370					; ASSEMBLE AND SEND A "SET BASE ADDRESS" DIALOG MESSAGE TO SERVER NODE
   371
   372	000201'	260 17 0 00 005351'		CALL MAKBAS		;GO ASSEMBLE A "SET BASE ADR" LINE SERVICE MSG
   373	000202'	210 03 0 00 000002 		MOVN T3,T2		;GET -NUMBER OF BYTES IN THE MESSAGE
   374	000203'	200 02 0 00 000001 		MOVE T2,T1		;COPY POINTER TO THE MESSAGE
   375	000204'	200 01 0 15 000003 		MOVE T1,RQLLNK		;GET LOGICAL LINK (JFN)
   376	000205'	104 00 0 00 000532 		SOUTR			;SEND THE MESSAGE TO THE SERVER NODE NCU
   377	000206'	320 16 0 00 013562'		 ERJMP [LODERR (.NRCME)] ;RETURN "COMMUNICATIONS ERROR" ON FAILURE
   378						; ..
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 9
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Down-Line Load

   379						; ..
   380
   381					; UPDATE CURRENT ADDRESS IN "RBCAD" TO REFLECT NEW ADDRESS FROM
   382					;  "RBNAD" PLUS COUNT OF THIS RECORD IN "RBCNT"
   383
   384	000207'	200 04 0 15 000004 	RQL035:	MOVE T4,RQLREC		;GET ADDRESS OF RECORD BLOCK
   385	000210'	200 01 0 04 000006 		LOAD T1,RBNAD,(T4)	;GET NEW ADDRESS
   386	000211'	550 02 0 04 000005 		LOAD T2,RBCNT,(T4)	;GET CURRENT ITEM COUNT
   387	000212'	270 01 0 00 000002 		ADD T1,T2		;COMPUTE NEW BASE ADDRESS AFTER THIS RECORD
   388	000213'	202 01 0 04 000007 		STOR T1,RBCAD,(T4)	;UPDATE CURRENT ADDRESS
   389
   390					; NOW SEND THE MEMORY IMAGE DATA IN "MEMORY IMAGE" LINE SERVICE MESSAGES
   391
   392	000214'	200 01 0 15 000004 	RQL040:	MOVE T1,RQLREC		;GET ADDRESS OF RECORD BLOCK
   393	000215'	200 02 0 14 000013 		MOVE T2,RQLCPU		;GET CPU TYPE OF TARGET NODE
   394	000216'	260 17 0 00 005530'		CALL MAKIMG		;GO MAKE A LINE SERVICE "MEMORY IMAGE" MESSAGE
   395	000217'	265 16 0 00 013551'		 LODERR ()		;FAILED, RETURN ERROR
   396	000220'	210 03 0 00 000002 		MOVN T3,T2		;GET - COUNT
   397	000221'	200 02 0 00 000001 		MOVE T2,T1		;GET POINTER TO MESSAGE
   398	000222'	200 01 0 15 000003 		MOVE T1,RQLLNK		;GET LOGICAL LINK TO SERVER NODE NCU
   399	000223'	104 00 0 00 000532 		SOUTR			;SEND THE "MEMORY IMAGE" MESSAGE
   400	000224'	320 16 0 00 013562'		 ERJMP [LODERR (.NRCME)] ;RETURN "COMMUNICATIONS ERROR" ON FAILURE
   401
   402					; HERE TO SEE IF THERE IS MORE DATA TO BE SENT IN THIS BLOCK
   403
   404	000225'	200 04 0 15 000004 		MOVE T4,RQLREC		;GET ADDRESS OF RECORD BLOCK
   405	000226'	550 16 0 04 000005 		JN RBCNT,(T4),RQL040	;LOOP BACK IF MORE DATA TO SEND
   406	000227'	326 16 0 00 000214'
   407	000230'	254 00 0 00 000162'		JRST RQL030		;GO INPUT THE NEXT DATA BLOCK IN THE FILE
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 10
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Down-Line Load

   408					; HERE AT END OF DATA - SEND "SYSTEM PARAMETERS AND TRANSFER ADR" MESSAGE
   409
   410	000231'	201 01 0 00 400000 	RQL070:	MOVX T1,.FHSLF		;GET OUR FORK HANDLE
   411	000232'	205 02 0 00 200000 		MOVX T2,1B<RQLCHN>	;GET DOWN LINE LOAD CHANNEL
   412	000233'	104 00 0 00 000133 		DIC			;DISABLE DOWN LINE LOAD CHANNEL
   413	000234'	200 01 0 15 000004 		MOVE T1,RQLREC		;GET ADDRESS OF RECORD BLOCK
   414	000235'	200 04 0 04 000010 		LOAD t4,RBXAD,(t4)	;GET TRANSFER ADDRESS FROM FILE
   415	000236'	602 04 0 00 000001 		TRNE t4,1		;IS THE ADDRESS ODD?
   416						JRST [ 	MOVE T2,[POINT 8,[BYTE (8).LMEND,.NRSUC]] ;YES - END-OF-DIALOGUE
   417							MOVNI T3,2	;WE ARE SENDING 2 BYTES
   418							MOVE T1,RQLLNK	;GET LOGICAL LINK JFN
   419							SOUTR		;OUTPUT THE "END-OF"DIALOGUE" MSG
   420							 ERJMP [LODERR (.NRCME)]	;RETURN COMMUNICATION ERROR
   421	000237'	254 00 0 00 013605'			JRST RQL071]	;WAIT FOR RESPONSE
   422	000240'	260 17 0 00 005563'		CALL MAKXFR		;NO - GO MAKE A "TRANSFER" LINE SERVICE MESSAGE
   423	000241'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR TO CALLER
   424	000242'	210 03 0 00 000002 		MOVN T3,T2		;GET -COUNT
   425	000243'	200 02 0 00 000001 		MOVE T2,T1		;COPY POINTER TO START OF MESSAGE
   426	000244'	200 01 0 15 000003 		MOVE T1,RQLLNK		;GET LOGICAL LINK (JFN)
   427	000245'	104 00 0 00 000532 		SOUTR			;OUTPUT THE MESSAGE, FORCE ALL DATA OUT
   428	000246'	320 16 0 00 013562'		 ERJMP [LODERR (.NRCME)] ;RETURN "COMMUNICATIONS ERROR" ON FAILURE
   429
   430					; PROGRAM LOAD COMPLETE - WAIT FOR END OF DIALOG MESSAGE FROM SERVER NCU
   431
   432	000247'	260 17 0 00 010457'	RQL071:	CALL CLRMSG		;CLEAR THE MESSAGE AREA
   433	000250'	200 01 0 15 000003 		MOVE T1,RQLLNK		;GET LOGICAL LINK (JFN)
   434	000251'	200 02 0 00 013534'		MOVE T2,[POINT 8,MSGBLK] ;GET POINTER TO WHERE MESSAGE SHOULD GO
   435	000252'	211 03 0 00 014000 		MOVNI T3,MAXNIC		;GET -MAX COUNT
   436	000253'	104 00 0 00 000531 		SINR			;INPUT THE REPLY FROM THE SERVER NODE NCU
   437	000254'	320 16 0 00 013562'		 ERJMP [LODERR (.NRCME)] ;IF FAILED, RETURN "COMMUNICATIONS ERROR"
   438
   439					; VERIFY THAT RESPONSE WAS "END OF DIALOG" AND SEE IF ANOTHER LOAD WAS REQUESTED
   440
   441	000255'	200 01 0 00 013534'		MOVE T1,[POINT 8,MSGBLK] ;GET POINTER TO START OF REPLY MESSAGE
   442	000256'	201 02 0 03 014000 		MOVEI T2,MAXNIC(T3)	;COMPUTE NUMBER OF BYTES RETURNED
   443	000257'	275 02 0 00 000002 		SUBI T2,2		;DECREMENT COUNT FOR TYPE CODE AND RETURN CODE
   444	000260'	321 02 0 00 013615'		JUMPL T2,[RETBAD (.NRPRO)] ;RETURN "PROTOCOL ERROR" IF NOT ENOUGH BYTES
   445	000261'	134 04 0 00 000001 		ILDB T4,T1		;YES, GET DIALOG MESSAGE TYPE CODE (.LSXXX)
   446	000262'	302 04 0 00 000000 		CAIE T4,.LMEND		;END OF DIALOG REPLY ?
   447	000263'	265 16 0 00 013616'		LODERR (.NRPRO)		;NO, NICE PROTOCOL ERROR
   448	000264'	134 04 0 00 000001 		ILDB T4,T1		;GET RETURN CODE
   449	000265'	302 04 0 00 000001 		CAIE T4,.NRSUC		;SUCCESS ?
   450						JRST [	MOVE T1,T4	;NO, GET RETURN CODE FROM SERVER NCU
   451	000266'	254 00 0 00 013621'			LODERR () ]	;RETURN THE CODE TO CALLER
   452						; ..
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 11
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Down-Line Load

   453						; ..
   454
   455					; DETERMINE IF ANOTHER PROGRAM IS TO BE LOADED
   456
   457	000267'	202 01 0 15 000001 		MOVEM T1,RQLPTR		;SAVE POINTER TO ANY REMAINING MESSAGE DATA
   458	000270'	202 02 0 15 000002 		MOVEM T2,RQLCNT		;SAVE COUNT OF BYTES LEFT IN MESSAGE
   459	000271'	200 04 0 15 000004 		MOVE T4,RQLREC		;GET ADDRESS OF RECORD BLOCK
   460	000272'	554 01 0 04 000001 		LOAD T1,RBJFN,(T4)	;GET JFN OF FILE JUST LOADED
   461	000273'	104 00 0 00 000022 		CLOSF			;CLOSE THE FILE
   462	000274'	255 00 0 00 000000 		 JFCL			;FAILED, IGNORE FAILURE
   463	000275'	553 00 0 04 000001 		SETZRO RBJFN,(T4)	;NOTE THAT WE'RE NO LONGER USING THE JFN
   464	000276'	200 01 0 15 000004 		MOVE T1,RQLREC		;GET ADDRESS OF RECORD BLOCK FOR THIS LOAD
   465	000277'	260 17 0 00 000000*		CALL RELFRE		;RELEASE THE FREE SPACE
   466	000300'	254 00 0 00 013623'		 FATAL.ERROR		; Die on release failure
   467	000301'	402 00 0 15 000004 		SETZM RQLREC		;NOTE THAT WE NO LONGER HAVE A RECORD BLOCK
   468	000302'	200 02 0 00 013604'		MOVE T2,[POINT 8,[BYTE (8).LMEND,.NRSUC]] ;CONFIRM "END-OF-DIALOGUE"
   469	000303'	211 03 0 00 000002 		MOVNI T3,2		;WE ARE SENDING 2 BYTES
   470	000304'	200 01 0 15 000003 		MOVE T1,RQLLNK		;GET LOGICAL LINK JFN
   471	000305'	104 00 0 00 000532 		SOUTR			;OUTPUT THE "END-OF"DIALOGUE" MSG
   472	000306'	320 16 0 00 013562'		 ERJMP [LODERR (.NRCME)]	;RETURN COMMUNICATION ERROR
   473	000307'	337 00 0 15 000002 		SKIPG RQLCNT		;MORE BYTES IN REPLY MESSAGE ?
   474	000310'	254 00 0 00 000316'		JRST RQL080		;NO, GO CLEAN UP AND RETURN TO CALLER
   475	000311'	200 01 0 15 000001 		MOVE T1,RQLPTR		;YES, RESTORE POINTER
   476	000312'	200 02 0 15 000002 		MOVE T2,RQLCNT		;RESTORE COUNT
   477	000313'	260 17 0 00 004345'		CALL GETPDT		;GO EXTRACT THE PROGRAM DATA FROM MESSAGE
   478	000314'	265 16 0 00 013551'		 LODERR ()		;FAILED, RETURN ERROR CODE TO CALLER
   479	000315'	254 00 0 00 000126'		JRST RQL020		;LOOP BACK TO LOAD NEXT FILE
   480
   481
   482
   483					; HERE TO CLEAN UP AND RETURN TO DISPATCHING CODE
   484
   485	000316'	200 01 0 15 000003 	RQL080:	MOVE T1,RQLLNK		;YES, GET LOGICAL LINK (JFN) TO SERVER NCU
   486	000317'	104 00 0 00 000022 		CLOSF			;DISCONNECT THE LOGICAL LINK
   487	000320'	255 00 0 00 000000 		 JFCL			;IGNORE FAILURE, LINK NO LONGER NEEDED
   488	000321'	402 00 0 15 000003 		SETZM RQLLNK		;NOTE THAT WE NO LONGER HAVE A LINK TO SERVER
   489	000322'	201 01 0 00 000001 		MOVX T1,.NRSUC		;GET NICE PROTOCOL SUCCESS RETURN CODE
   490	000323'	260 17 0 00 007651'		CALL SYRLOD		;MAKE A SYSERR ENTRY FOR THIS LOAD
   491
   492					; UNLOCK THE TARGET NODE NIB
   493
   494	000324'	200 01 0 14 000004 		MOVE T1,RQLTGT		;GET POINTER TO ASCIZ TARGET NODE NAME
   495	000325'	260 17 0 00 010525'		CALL GETNIB		;GO GET THE ADDRESS OF THE TARGET NODE NIB
   496	000326'	254 00 0 00 000333'		 JRST RQL085		;FAILED, JUST PROCEED.
   497	000327'	205 02 0 00 400000 		MOVX T2,RM%PRI		;USE PRIMARY RESOURCE
   498	000330'	205 16 0 00 001000 		SETZRO NDLIP,(T1)	;AUTO LOAD DONE
   499	000331'	412 16 0 01 000000 
   500	000332'	260 17 0 00 000000*		CALL ULKNOD		;UNLOCK THE NODE
   501
   502					; SEND BACK A NICE "SUCCESS" RETURN CODE TO REQUESTING TASK
   503
   504	000333'	200 01 0 14 000032 	RQL085:	MOVE T1,REQLNK		;GET LOGICAL LINK (JFN) TO REQUESTING TASK
   505	000334'	200 02 0 00 013627'		MOVE T2,[POINT 8,[BYTE (8) .NRSUC]] ;GET POINTER TO SUCCESS CODE
   506	000335'	211 03 0 00 000001 		MOVNI T3,1		;RETURN CODE IS A SINGLE BYTE
   507	000336'	104 00 0 00 000532 		SOUTR			;SEND BACK THE RETURN CODE
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 11-1
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Down-Line Load

   508	000337'	320 16 0 00 000000*		 ERJMP RSKP		;IF FAILED, NOTHING ELSE TO DO
   509	000340'	200 01 0 14 000004 		MOVE T1,RQLTGT		;GET POINTER TO ASCIZ TARGET NODE NAME
   510	000341'	260 17 0 00 000000*		CALL TOPCHK		;INITIATE MONITORING OF TOPOLOGY ?
   511	000342'	254 00 0 00 000346'		 JRST RQL090		;NO, FINISH LOADING PROCESS
   512	000343'	200 01 0 14 000004 		MOVE T1,RQLTGT		;GET POINTER TO ASCIZ TARGET NODE NAME
   513	000344'	260 17 0 00 000000*		CALL MONINI		;INITIATE MONITORING OF TOPOLOGY
   514	000345'	255 00 0 00 000000 		 JFCL			;FAILED
   515	000346'	476 00 0 00 011523'	RQL090:	SETOM LOGFLG		;NOTE THAT LOGGING SHOULD NOW BE DONE
   516	000347'	254 00 0 00 000337*		RETSKP			;LOAD IS FINISHED. RETURN SUCCESS.
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 12
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Down-Line Load

   517					; HERE ON INTERRUPT INDICATING UNEXPECTED RESPONSE FROM SERVER NCU
   518
   519
   520	000350'	201 01 0 00 000353'	RQLINT:	MOVEI T1,RQINT1		;GET DEBRK ADDRESS
   521	000351'	202 01 0 14 003254 		MOVEM T1,RETPC1		;SAVE NEW DEBRK ADDRESS
   522	000352'	104 00 0 00 000136 		DEBRK			;DISMISS INTERRUPT
   523
   524	000353'	260 17 0 00 010457'	RQINT1:	CALL CLRMSG		;GO CLEAR THE MESSAGE AREA
   525	000354'	200 01 0 15 000003 		MOVE T1,RQLLNK		;GET LOGICAL LINK TO SERVER NCU
   526	000355'	200 02 0 00 013534'		MOVE T2,[POINT 8,MSGBLK] ;GET POINTER TO WHERE MESSAGE GOES
   527	000356'	211 03 0 00 014000 		MOVNI T3,MAXNIC		;GET MAX COUNT
   528	000357'	104 00 0 00 000531 		SINR			;READ THE DATA
   529						 ERJMP [ MOVX T1,.NRCME	;FAILED, GET "COMMUNCIATIONS ERROR"
   530	000360'	320 16 0 00 013630'			 JRST RQINT2 ]	;RETURN ERROR TO ORIGINATOR OF REQUEST
   531	000361'	201 02 0 03 014000 		MOVEI T2,MAXNIC(T3)	;GET NUMBER OF BYTES RECEIVED
   532	000362'	302 02 0 00 000002 		CAIE T2,2		;TWO BYTES EXPECTED
   533						JRST [	MOVX T1,.NRPRO	;FAILED, GET "PROTOCOL ERROR"
   534	000363'	254 00 0 00 013632'			JRST RQINT2 ]	;RETURN ERROR TO ORIGINATOR OF REQUEST
   535	000364'	200 04 0 00 013534'		MOVE T4,[POINT 8,MSGBLK] ;GET POINTER TO START OF MESSAGE
   536	000365'	134 01 0 00 000004 		ILDB T1,T4		;GET TYPE CODE
   537	000366'	302 01 0 00 000000 		CAIE T1,.LMEND		;END OF DIALOG ?
   538						JRST [	MOVX T1,.NRPRO	;NO, GET "PROTOCOL ERROR"
   539	000367'	254 00 0 00 013632'			JRST RQINT2 ]	;RETURN ERROR TO ORIGINATOR OF REQUEST
   540
   541					; RETURN AN ERROR RETURN CODE
   542
   543	000370'	200 01 0 14 000032 	RQINT2:	MOVE T1,REQLNK		;GET LOGICAL LINK TO REQUESTING TASK
   544	000371'	200 02 0 00 000004 		MOVE T2,T4		;GET POINTER TO RETURN CODE
   545	000372'	211 03 0 00 000001 		MOVNI T3,1		;RETURN CODE IS JUST ONE SINGLE BYTE
   546	000373'	104 00 0 00 000532 		SOUTR			;SEND THE RETURN CODE TO REQUESTING TASK
   547	000374'	255 00 0 00 000000 		 JFCL
   548	000375'	332 01 0 15 000003 		SKIPE T1,RQLLNK		;DISCONNECT LOGICAL LINK TO THE
   549	000376'	104 00 0 00 000022 		CLOSF			; SERVER NCU
   550	000377'	255 00 0 00 000000 		 JFCL			;IGNORE ERRORS
   551	000400'	332 01 0 15 000004 		SKIPE T1,RQLREC		;CLOSE ANY OPEN INPUT FILE JFN'S
   552						CALL [	LOAD T1,RBJFN,(T1)
   553							SKIPE T1
   554							CLOSF
   555							 JFCL
   556							MOVE T1,RQLREC	;RELEASE ANY SPACE ASSIGNED FOR
   557							CALL RELFRE	; A RECORD BLOCK
   558							 FATAL.ERROR	; Die on release failure
   559	000401'	260 17 0 00 013634'			RET ]
   560	000402'	200 01 0 14 000004 		MOVE T1,RQLTGT		;GET ADDRESS OF TARGET NODE NIB
   561	000403'	260 17 0 00 010525'		CALL GETNIB
   562	000404'	255 00 0 00 000000 		 JFCL			;IGNORE FAILURE
   563	000405'	205 16 0 00 001000 		SETZRO NDLIP,(T1)	;SET LOAD NO LONGER IN PROGRESS
   564	000406'	412 16 0 01 000000 
   565	000407'	201 16 0 01 000000 		ACUNLOCK (T1)		;UNLCOK TARGET NODE NIB
   566	000410'	260 17 0 00 000000*
   567	000411'	104 00 0 00 000170 		HALTF			;DONE, OPERATION COMPLETE
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 13
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Down-Line Load

   568					;RQLERR - HERE ON ERROR DURING A DOWN-LINE LOAD
   569					;
   570					;ACCEPTS IN T1/	NICE RETURN CODE
   571					;		CALL RQLERR
   572					;RETURNS: +1 ALWAYS, HAVING CLEANED UP FROM THE DOWN-LINE LOAD
   573
   574	000412'	261 17 0 00 000001 	RQLERR:	PUSH P,T1		;Save the error code
   575	000413'	260 17 0 00 007651'		CALL SYRLOD		;MAKE A SYSERR ENTRY FOR THIS LOAD
   576	000414'	332 01 0 15 000003 		SKIPE T1,RQLLNK		;ANY LOGICAL LINK TO A SERVER NCU ?
   577	000415'	104 00 0 00 000022 		CLOSF			;YES, DISCONNECT THE LINK
   578	000416'	255 00 0 00 000000 		 JFCL			;IGNORE ERRORS IN CLEANUP ROUTINE
   579	000417'	332 01 0 15 000004 		SKIPE T1,RQLREC		;ANY RECORD BLOCK ASSIGNED ?
   580						CALL [	LOAD T1,RBJFN,(T1) ; Yes, any input file
   581							SKIPE T1	; JFN assigned ?
   582							CLOSF		; Yes, close the input file, release JFN
   583							 JFCL		; Ignore errors here
   584							MOVE T1,RQLREC	; Get address of record block again
   585							CALL RELFRE	; Release it
   586							 FATAL.ERROR	;  Die on release failure
   587	000420'	260 17 0 00 013634'			RET ]		; Back to mainline code
   588	000421'	200 01 0 14 000004 		MOVE T1,RQLTGT		;GET POINTER TO ASCIZ TARGET NODE NAME
   589	000422'	260 17 0 00 010525'		CALL GETNIB		;GET ADDRESS OF TARGET NODE NIB
   590	000423'	254 00 0 00 000430'		 JRST RQLE.1		; Go restore the error code and return
   591	000424'	205 16 0 00 001000 		SETZRO NDLIP,(T1)	;SET LOAD NO LONGER IN PROGRESS
   592	000425'	412 16 0 01 000000 
   593	000426'	201 16 0 01 000000 		ACUNLOCK (T1)		;UNLOCK THE TARGET NODE NIB
   594	000427'	260 17 0 00 000410*
   595
   596	000430'	262 17 0 00 000001 	RQLE.1:	POP P,T1		; Get the error code back
   597	000431'	263 17 0 00 000000 		RET			; Give non-skip return always. (error)
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 14
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Down-Line Load

   598					;TRGGER - ROUTINE TO TRIGGER THE BOOTSTRAP ROM AT A REMOTE NODE
   599					;
   600					;ACCEPTS IN T1/	LOGICAL LINK TO NICE PROCESS IN SERVER NODE
   601					;	    T2/	OPTIONS AS FOR DOWN-LINE LOAD REQUEST MESSAGE
   602					;		CALL TRGGER
   603					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
   604					;	  +2	SUCCESS.  IF THE OPTIONS REQUESTED RETURN OF PROGRAM DATA,
   605					;			  THEN THE FOLLOWING WILL BE SET UP:
   606					;
   607					;			RQLLDV/	BOOT LINE DEVICE TYPE AT TARGET NODE
   608					;			RQLCPU/	CPU TYPE OF TARGET SYSTEM (.CPXXX)
   609					;			RQLPGM/	PROGRAM TYPE BEING REQUESTED (.PTXXX)
   610					;			RQLSID/	SOFTWARE ID
   611
   612	000432'	265 16 0 00 000067*	TRGGER:	ASUBR <TBTLNK,TBTOPT,TBTFLG>
   613
   614					; DETERMINE IF PROGRAM DATA IS TO BE RETURNED
   615
   616	000433'	200 04 0 15 000002 		MOVE T4,TBTOPT		;GET OPTION BITS
   617	000434'	135 03 0 00 013644'		LOAD T3,LO%ROM		;GET ROM FIELD
   618	000435'	302 03 0 00 000003 		CAIE T3,.LOTBP		;TRIGGER ROM AND RETURN PROGRAM DATA ?
   619	000436'	476 00 0 15 000003 		SETOM TBTFLG		;YES, NOTE PROGRAM DATA IS TO BE RETURNED
   620
   621					; ASSEMBLE A NICE LINE SERVICE MESSAGE TO TRIGGER THE BOOTSTRAP
   622
   623	000437'	260 17 0 00 010457'		CALL CLRMSG		;GO CLEAR THE MESSAGE AREA
   624	000440'	505 01 0 00 441000 		HRLI T1,(POINT 8,)	;FORM POINTER TO THE START OF THE
   625	000441'	541 01 0 14 000033 		HRRI T1,MSGBLK		; NICE MESSAGE BEING BUILT
   626	000442'	201 04 0 00 000016 		MOVX T4,.NCLSV		;GET "LINE SERVICE" NICE FUNCTION CODE
   627	000443'	136 04 0 00 000001 		IDPB T4,T1		;PUT FUNCTION CODE INTO NICE MESSAGE
   628	000444'	201 04 0 00 000004 		MOVX T4,.LSTBT		;ASSUME TRIGGER BOOT, NO PROGRAM DATA WANTED
   629	000445'	332 00 0 15 000003 		SKIPE TBTFLG		;PROGRAM DATA REQUESTED ?
   630	000446'	201 04 0 00 000003 		MOVX T4,.LSTBP		;YES, TRIGGER BOOT & RETURN PROGRAM DATA OPTION
   631	000447'	136 04 0 00 000001 		IDPB T4,T1		;STORE OPTION FIELD IN MESSAGE
   632	000450'	120 03 0 14 000006 		DMOVE T3,RQLLIN		;GET SERVER LINE ID
   633	000451'	260 17 0 00 005303'		CALL MAKLIN		;GO ADD STANDARD LINE ID TO MESSAGE
   634	000452'	120 03 0 14 000010 		DMOVE T3,RQLPSW		;GET BOOT PASSWORD
   635	000453'	201 02 0 00 000010 		MOVEI T2,MBPWSZ		;GET MAX # OF BYTES IN BOOT PASSWORDS
   636	000454'	260 17 0 00 006041'		CALL MAKIMB		;GO MAKE AN IMAGE BINARY FIELD
   637
   638					; SEND THE MESSAGE TO THE NICE PROCESS AT THE SERVER NODE
   639
   640	000455'	211 03 0 00 000020 		MOVNI T3,<MBPWSZ+1>+<7>	;MESSAGE SIZE: <PASSWORD>+<FUNCTION+OPTION+LINE>
   641	000456'	200 02 0 00 013534'		MOVE T2,[POINT 8,MSGBLK] ;GET POINTER TO START OF MESSAGE
   642	000457'	200 01 0 15 000001 		MOVE T1,TBTLNK		;GET LOGICAL LINK NUMBER (JFN)
   643	000460'	104 00 0 00 000532 		SOUTR			;SEND THE MESSAGE
   644	000461'	320 16 0 00 013647'		 ERJMP [RETBAD (.NRCME)] ;RETURN "COMMUNICATIONS FAILURE" ON ERROR
   645						; ..
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 15
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Down-Line Load

   646						; ..
   647
   648					; WAIT FOR A RESPONSE MESSAGE
   649
   650	000462'	200 01 0 15 000001 		MOVE T1,TBTLNK		;GET LOGICAL LINK (JFN) TO SERVER NCU
   651	000463'	104 00 0 00 000050 		BIN			;INPUT THE ONE-BYTE RETURN CODE (.NRXXX)
   652	000464'	320 16 0 00 013647'		 ERJMP [RETBAD (.NRCME)] ;RETURN "COMMUNICATIONS ERROR" ON FAILURE
   653	000465'	200 01 0 00 000002 		MOVE T1,T2		;COPY RETURN CODE
   654	000466'	602 01 0 00 000200 		TXNE T1,NEGBIT		;RETURN CODE INDICATES SUCCESS ?
   655	000467'	263 17 0 00 000000 		RETBAD ()		;NO, PASS RETURN CODE BACK TO CALLER
   656
   657					; IF PROGRAM DATA WAS REQUESTED, INPUT THE PROGRAM DATA
   658
   659	000470'	336 00 0 15 000003 		SKIPN TBTFLG		;PROGRAM DATA WANTED ?
   660	000471'	254 00 0 00 000347*		RETSKP			;NO, DONE. RETURN SUCCESS
   661	000472'	260 17 0 00 010457'		CALL CLRMSG		;YES, CLEAR THE MESSAGE AREA TO RECEIVE THE DATA
   662	000473'	200 01 0 15 000001 		MOVE T1,TBTLNK		;GET JFN (LOGICAL LINK)
   663	000474'	104 00 0 00 000102 		SIBE			;DETERMINE THE NUMBER OF BYTES LEFT TO READ
   664	000475'	320 16 0 00 000477'		 ERJMP TBT020		;T2 NOW HAS # OF BYTES LEFT TO BE INPUT
   665	000476'	254 00 0 00 013650'		RETBAD (.NRNPE)		;FAILED, PROGRAM DATA WAS NOT RETURNED
   666	000477'	200 04 0 00 000002 	TBT020:	MOVE T4,T2		;COPY NUMBER OF BYTES LEFT TO READ
   667	000500'	210 03 0 00 000002 		MOVN T3,T2		;GET -# OF BYTES TO READ
   668	000501'	200 02 0 00 013534'		MOVE T2,[POINT 8,MSGBLK] ;GET POINTER TO WHERE DATA SHOULD GO
   669	000502'	200 01 0 15 000001 		MOVE T1,TBTLNK		;GET LOGICAL LINK (JFN)
   670	000503'	104 00 0 00 000531 		SINR			;INPUT THE PROGRAM DATA FROM THE NETWORK
   671	000504'	320 16 0 00 013647'		 ERJMP [RETBAD (.NRCME)] ;FAILED, RETURN "COMMUNICATIONS ERROR"
   672
   673					; EXTRACT THE PROGRAM DATA FROM THE RESPONSE JUST RECEIVED
   674
   675	000505'	270 04 0 00 000003 		ADD T4,T3		;COMPUTE # OF CHARACTERS READ
   676	000506'	200 02 0 00 000004 		MOVE T2,T4		;COPY NUMBER OF BYTES READ
   677	000507'	200 01 0 00 013534'		MOVE T1,[POINT 8,MSGBLK] ;GET POINTER TO PROGRAM REQUEST DATA
   678	000510'	260 17 0 00 004345'		CALL GETPDT		;GO GET PROGRAM DATA
   679	000511'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR TO CALLER
   680	000512'	254 00 0 00 000471*		RETSKP			;DONE, RETURN SUCCESS
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 16
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Down-Line Load

   681					;INTSET - ROUTINE TO SET UP THE NCU INTERRUPT SYSTEM FOR DOWN LINE LOADS
   682					;
   683					;ACCEPTS IN T1/	LOGICAL LINK TO SERVER NCU
   684					;		CALL INTSET
   685					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
   686					;	  +2	SUCCESS, INTERRUPT SYSTEM SET UP AND ENABLED
   687
   688	000513'	265 16 0 00 000432*	INTSET:	ASUBR <INTLNK>
   689
   690	000514'	201 01 0 14 003254 		MOVEI T1,RETPC1		;GET ADDRESS FOR RETURN PC FOR LEVEL 1
   691	000515'	202 01 0 14 003321 		MOVEM T1,NCULEV		;STORE ADDRESS FOR MONITOR
   692	000516'	200 01 0 00 013652'		MOVE T1,[1,,RQLINT]	;GET LEVEL,,INTERRUPT ROUTINE ADDRESS
   693	000517'	202 01 0 14 003256 		MOVEM T1,RQLCHN+NCUCHN	;STORE DISPATCH ADDRESS FOR INTERRUPT
   694	000520'	104 00 0 00 000141 		CIS			;CLEAR INTERRUPT SYSTEM
   695	000521'	201 01 0 00 400000 		MOVX T1,.FHSLF		;GET OUR PROCESS HANDLE
   696	000522'	505 02 0 14 003321 		HRLI T2,NCULEV		;GET ADDRESS OF LEVEL TABLE
   697	000523'	541 02 0 14 003255 		HRRI T2,NCUCHN		;GET ADDRESS OF CHANNEL TABLE
   698	000524'	104 00 0 00 000125 		SIR			;SET INTERRUPT TABLE ADDRESSES
   699	000525'	205 02 0 00 200000 		MOVX T2,1B<RQLCHN>	;GET DOWN-LINE LOAD CHANNEL NUMBER
   700	000526'	104 00 0 00 000131 		AIC			;ACTIVATE DOWN LINE LOAD CHANNEL
   701	000527'	200 01 0 15 000001 		MOVE T1,INTLNK		;GET LOGICAL LINE TO SERVER NCU
   702	000530'	201 02 0 00 000024 		MOVX T2,.MOACN		;GET "ASSIGN INTERRUPT CHANNEL" FUNCTION CODE
   703	000531'	402 00 0 00 000003 		SETZM T3		;INITIALIZE WORD WITH FIELDS TO CHANGE
   704	000532'	201 04 0 00 000777 		MOVX T4,.MONCI		;GET "NO CHANGE" VALUE
   705	000533'	137 04 0 00 013653'		STOR T4,MO%CDN,T3	;DO NOT ENABLE FOR CONNECT INTERRUPTS
   706	000534'	201 04 0 00 000001 		MOVX T4,RQLCHN		;GET CHANNEL TO USE FOR DOWN LINE LOADS
   707	000535'	137 04 0 00 013654'		STOR T4,MO%INA,T3	;INTERRUPT ON BOT INTERRUPT MESSAGES
   708	000536'	137 04 0 00 013655'		STOR T4,MO%DAV,T3	; AND ON DATA AVAILABLE
   709	000537'	104 00 0 00 000077 		MTOPR			;ENABLE INTERRUPT CHANNEL
   710	000540'	320 16 0 00 013656'		 ERJMP [RETBAD (.NRNPE)] ;FAILED, RETURN "NICE PROGRAM PROCESS ERROR"
   711	000541'	201 01 0 00 400000 		MOVX T1,.FHSLF		;GET OUR FORK HANDLE
   712	000542'	104 00 0 00 000126 		EIR			;ENABLE INTERRUPT SYSTEM
   713	000543'	254 00 0 00 000512*		RETSKP			;DONE, RETURN TO CALLER
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 17
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Up Line Dump

   714					SUBTTL	NICE Process -- Up Line Dump
   715
   716					;REQDMP - ROUTINE TO PROCESS A REQUEST TO PERFORM AN UPLINE DUMP
   717					;
   718					;ACCEPTS IN T1/	POINTER TO START OF NICE REQUEST UP LINE DUMP MESSAGE
   719					;	    T2/	NUMBER OF BYTES IN THE NICE MESSAGE
   720					;		CALL REQDMP
   721					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
   722					;	  +2	SUCCESS, NODE DUMPED
   723
   724	000544'	265 16 0 00 000513*	REQDMP:	ASUBR <RQDPTR,RQDCNT,RQDLNK,RQDREC>
   725
   726					; EXTRACT THE FIELD FROM THE NICE DUMP REQUEST MSG AND DEFAULT OTHER INFO
   727
   728	000545'	260 17 0 00 004311'		CALL GETRQD		;GO GET THE FIELDS INCLUDED IN THE REQUEST MSG
   729	000546'	254 00 0 00 013542'		 RETBAD (.NRIMF)	;FAILED, INVALID MESSAGE FORMAT
   730	000547'	260 17 0 00 004155'		CALL DEFRQD		;GO DEFAULT REMAINING INFO NEEDED FOR DUMP
   731	000550'	254 00 0 00 013544'		 RETBAD (.NRICF)	;FAILED, INVALID CONFIGURATION FILE
   732
   733					; LOCK THE TARGET NODE
   734
   735	000551'	200 01 0 14 000022 		MOVE T1,RQDTGT		;GET POINTER TO ASCIZ TARGET NODE NAME
   736	000552'	260 17 0 00 010525'		CALL GETNIB		;GET NIB ADDRESS FOR NODE BEING LOADED
   737	000553'	254 00 0 00 013544'		 RETBAD (.NRICF)	;FAILED, RETURN ERROR
   738	000554'	205 02 0 00 400000 		MOVX T2,RM%PRI		;USE PRIMARY RESOURCE
   739	000555'	202 01 0 15 000003 		MOVEM T1,RQDLNK		;SAVE NIB ADDRESS
   740	000556'	260 17 0 00 000105*		CALL LOKNOD		;LOCK THE TARGET NODE
   741	000557'	200 01 0 15 000003 		MOVE T1,RQDLNK		;GET THE NIB ADDRESS
   742	000560'	205 16 0 00 002000 		SETONE NDDIP,(T1)	;SHOW DUMP IN PROGRESS
   743	000561'	436 16 0 01 000000 
   744	000562'	402 00 0 15 000003 		SETZM RQDLNK		;ZERO HOLDING CELL
   745
   746					; SEND A NICE LINE SERVICE MSG TO SERVER NODE NCU TO INTIATE DUMP DIALOG
   747
   748	000563'	200 01 0 14 000023 		MOVE T1,RQDSRV		;GET POINTER TO ASCIZ SERVER NODE NAME
   749	000564'	260 17 0 00 007140'		CALL GETLNK		;GO GET A LOGICAL LINK TO THE SERVER NODE NCU
   750	000565'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR TO CALLER
   751	000566'	202 01 0 15 000003 		MOVEM T1,RQDLNK		;SAVE LOGICAL LINK (JFN) TO SERVER NODE NCU
   752
   753					; Set the fork scheduling priority higher so that dump goes fast
   754
   755	000567'	201 01 0 00 400000 		MOVEI T1,.FHSLF		; Point to this process
   756	000570'	201 02 0 00 000102 		MOVEI T2,0102		; Only run in Q1
   757	000571'	104 00 0 00 000243 		SPRIW
   758
   759					; INITIATE A DUMP DIALOG
   760
   761	000572'	260 17 0 00 005245'		CALL MAKDMP		;GO ASSEMBLE A NICE LINE SERVICE MSG
   762	000573'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR
   763	000574'	210 03 0 00 000002 		MOVN T3,T2		;GET -COUNT
   764	000575'	200 02 0 00 000001 		MOVE T2,T1		;COPY POINTER TO START OF MESSAGE
   765	000576'	200 01 0 15 000003 		MOVE T1,RQDLNK		;GET LOGICAL LINK TO SERVER NCU
   766	000577'	104 00 0 00 000532 		SOUTR			;OUTPUT LINE SERVICE MSG TO INITIATE DUMP DIALOG
   767	000600'	320 16 0 00 013647'		 ERJMP [RETBAD (.NRCME)] ;FAILED, RETURN "COMMUNICATIONS ERROR"
   768
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 17-1
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Up Line Dump

   769					; WAIT FOR A REPLY FROM THE SERVER NODE NCU
   770
   771	000601'	200 01 0 15 000003 		MOVE T1,RQDLNK		;GET LOGICAL LINK (JFN) TO SERVER NODE NCU
   772	000602'	104 00 0 00 000050 		BIN			;WAIT FOR THE ONE-BYTE RETURN CODE
   773	000603'	320 16 0 00 013647'		 ERJMP [RETBAD (.NRCME)] ;FAILED, RETURN "COMMUNICATIONS ERROR"
   774	000604'	200 01 0 00 000002 		MOVE T1,T2		;COPY RETURN CODE
   775	000605'	602 01 0 00 000200 		TXNE T1,NEGBIT		;SUCCESSFUL DIALOG INITIATION ?
   776	000606'	263 17 0 00 000000 		RETBAD ()		;NO, RETURN ERROR CODE TO CALLER IN T1
   777	000607'	302 01 0 00 000001 		CAIE T1,.NRSUC		;RECEIVED EXPECTED SUCCESS CODE ?
   778	000610'	254 00 0 00 013613'		RETBAD (.NRPRO)		;NO, RETURN "PROTOCOL ERROR"
   779
   780					; ASSIGN A RECORD BLOCK AND OPEN THE OUTPUT FILE
   781
   782	000611'	201 01 0 00 100000 		MOVX T1,OF%WR		;NOTE THAT OUTPUT IS TO BE DONE
   783	000612'	260 17 0 00 010535'		CALL ASGREC		;GO ASSIGN A RECORD BLOCK FOR THIS I/O
   784	000613'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR
   785	000614'	202 01 0 15 000004 		MOVEM T1,RQDREC		;SAVE ADDRESS OF RECORD BLOCK
   786	000615'	200 01 0 14 000027 		MOVE T1,RQDFIL		;GET POINTER TO OUTPUT FILESPEC
   787	000616'	260 17 0 00 006665'		CALL OPNOFL		;GO OPEN THE OUTPUT FILE
   788	000617'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR
   789	000620'	200 04 0 15 000004 		MOVE T4,RQDREC		;GET ADDRESS OF RECORD BLOCK
   790	000621'	506 01 0 04 000001 		STOR T1,RBJFN,(T4)	;STORE JFN OF DUMP FILE
   791						; ..
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 18
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Up Line Dump

   792						; ..
   793
   794					; INPUT A DIALOG MESSAGE FROM THE SERVER NCU AND DISPATCH
   795
   796	000622'	200 01 0 15 000003 	RQD010:	MOVE T1,RQDLNK		;GET LOGICAL LING (JFN) TO SERVER NCU
   797	000623'	505 02 0 00 441000 		HRLI T2,(POINT 8,)	;FORM A BYTE POINTER TO THE
   798	000624'	541 02 0 14 000033 		HRRI T2,MSGBLK		; NICE MESSAGE AREA
   799	000625'	211 03 0 00 014000 		MOVNI T3,MAXNIC		;GET -MAX COUNT
   800	000626'	104 00 0 00 000531 		SINR			;INPUT FROM SERVER NCU
   801	000627'	320 16 0 00 013647'		 ERJMP [RETBAD (.NRCME)] ;FAILED, RETURN "COMMUNICATIONS ERROR"
   802	000630'	201 02 0 03 014000 		MOVEI T2,MAXNIC(T3)	;GET NUMBER OF BYTES RECEIVED
   803	000631'	200 01 0 00 013534'		MOVE T1,[POINT 8,MSGBLK] ;GET POINTER TO START OF MESSAGE
   804	000632'	134 04 0 00 000001 		ILDB T4,T1		;GET DIALOG MESSAGE TYPE CODE
   805	000633'	301 04 0 00 000000 		CAIL T4,0		;RANGE CHECK THE DIALOG
   806	000634'	303 04 0 00 000004 		CAILE T4,DMPMAX		; MESSAGE TYPE CODE
   807						JRST [	TXNN T1,NEGBIT	;NEGATIVE IMPLIES A NICE PROTOCOL RETURN CODE
   808							RETBAD (.NRPRO)	;INVALID TYPE CODE; RETURN "PROTOCOL ERROR"
   809	000635'	254 00 0 00 013657'			RETBAD () ]	;RETURN NICE PROTOCOL RETURN CODE PROVIDED
   810	000636'	200 03 0 15 000004 		MOVE T3,RQDREC		;GET ADDRESS OF RECORD BLOCK
   811	000637'	260 17 1 04 000670'		CALL @DMPTAB(T4)	;DISPATCH TO PROCESSING ROUTINE
   812	000640'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR TO CALLER
   813	000641'	331 00 0 00 000001 		SKIPL T1		;STILL IN DUMP DIALOG ?
   814	000642'	254 00 0 00 000622'		JRST RQD010		;YES, GO GET NEXT MESSAGE FROM SERVER NCU
   815
   816					; DONE - CLEAN UP AND UNLOCK THE TARGET NODE NIB
   817
   818	000643'	201 01 0 00 000001 		MOVX T1,.NRSUC		;GET GENERAL SUCCESS RETURN CODE
   819	000644'	260 17 0 00 007755'		CALL SYRDMP		;GO MAKE A SYSERR ENTRY FOR THIS DUMP
   820	000645'	200 01 0 14 000022 		MOVE T1,RQDTGT		;GET POINTER TO ASCIZ TARGET NODE NAME
   821	000646'	260 17 0 00 010525'		CALL GETNIB		;GO GET THE ADDRESS OF THE TARGET NODE NIB
   822	000647'	254 00 0 00 000333'		 JRST RQL085		;FAILED, JUST PROCEED.
   823	000650'	205 16 0 00 002000 		SETZRO NDDIP,(T1)	;SET DUMP DONE 
   824	000651'	412 16 0 01 000000 
   825	000652'	205 02 0 00 400000 		MOVX T2,RM%PRI		;USE PRIMARY RESOURCE
   826	000653'	260 17 0 00 000332*		CALL ULKNOD		;UNLOCK THE TARGET NODE
   827	000654'	200 01 0 15 000004 		MOVE T1,RQDREC		;GET ADDRESS OF RECORD BLOCK AGAIN
   828	000655'	260 17 0 00 000277*		CALL RELFRE		;RELEASE THE RECORD BLOCK
   829	000656'	254 00 0 00 013623'		 FATAL.ERROR		; Die on release failure
   830	000657'	200 01 0 15 000003 		MOVE T1,RQDLNK		;GET LOGICAL LINK TO SERVER NCU
   831	000660'	104 00 0 00 000022 		CLOSF			;DISCONNECT THE LINK
   832	000661'	255 00 0 00 000000 		 JFCL			;IGNORE ERRORS HERE
   833	000662'	200 01 0 14 000032 		MOVE T1,REQLNK		;GET LOGICAL LINK (JFN) FROM REQUESTING TASK
   834	000663'	200 02 0 00 013627'		MOVE T2,[POINT 8,[BYTE (8) .NRSUC]] ;GET SUCCESS RETURN CODE
   835	000664'	201 03 0 00 000001 		MOVEI T3,1		;ONE BYTE RESPONSE MESSAGE
   836	000665'	104 00 0 00 000532 		SOUTR			;SEND REPLY MESSAGE TO ORIGINATOR OF DUMP REQ
   837	000666'	320 16 0 00 000543*		 ERJMP RSKP		;IGNORE FAILURE
   838	000667'	254 00 0 00 000666*		RETSKP			;DONE, RETURN SUCCESS
   839
   840					; TABLE OF DUMP DIALOG MESSAGE TYPES
   841
   842	000670'	000000	000674'		DMPTAB:	DMPEND			; 0 END OF DIALOG
   843	000671'	000000	000711'			DMPSET			; 1 SET BASE ADDRESS
   844	000672'	000000	000702'			DMPMEM			; 2 MEMORY IMAGE DATA
   845	000673'	000000	013615'			[RETBAD (.NRPRO)]	; 3 SYSTEM PARAMETERS AND TRANSFER [ERROR!]
   846
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 18-1
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Up Line Dump

   847			000004			DMPMAX==.-DMPTAB
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 19
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Up Line Dump

   848					;DMPEND - ROUTINE TO PROCESS AN END-OF-DIALOG MESSAGE
   849					;
   850					;ACCEPTS IN T3/	ADDRESS OF RECORD BLOCK
   851					;		CALL DMPEND
   852					;RETURNS: +1	 FAILED
   853					;	  +2	SUCCESS, WITH T1/ -1 INDICATING DIALOG IS COMPLETE
   854
   855	000674'	200 01 0 00 000003 	DMPEND:	MOVE T1,T3		;COPY ADDRESS OF RECORD BLOCK
   856	000675'	200 04 0 15 000004 		MOVE T4,RQDREC		;GET ADDRESS OF RECORD BLOCK FOR THIS OPERATION
   857	000676'	260 17 0 00 006675'		CALL CLSOFL		;GO CLOSE THE OUTPUT FILE
   858	000677'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR TO CALLER
   859	000700'	476 00 0 00 000001 		SETOM T1		;NOTE THAT DIALOG IS COMPLETED
   860	000701'	254 00 0 00 000667*		RETSKP			;DONE, RETURN SUCCESS
   861
   862
   863					;DMPMEM - ROUTINE TO PROCESS A MEMORY IMAGE DUMP MESSAGE
   864					;
   865					;ACCEPTS IN T1/	POINTER TO DIALOG DATA (MEMORY IMAGE DATA)
   866					;	    T2/	NUMBER OF BYTES REMAINING IN MEMORY IMAGE DATA
   867					;	    T3/	ADDRESS OF RECORD TABLE
   868					;		CALL DMPMEM
   869					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
   870					;	  +2	SUCCESS, DATA DUMPED TO FILE
   871
   872	000702'	375 00 0 00 000002 	DMPMEM:	SOSGE T2		;DECREMENT COUNT FOR CPU TYPE CODE
   873	000703'	254 00 0 00 013542'		RETBAD (.NRIMF)		;FAILED, RETURN ERROR
   874	000704'	133 00 0 00 000001 		IBP T1			;SKIP OVER CPU TYPE CODE
   875	000705'	260 17 0 00 006570'		CALL WRTDMP		;WRITE THE DATA TO THE FILE
   876	000706'	254 00 0 00 013662'		 RETBAD (.NRIOE)	;FAILED, RETURN FILE I/O ERROR
   877	000707'	402 00 0 00 000001 		SETZM T1		;NOTE THAT WE ARE STILL IN THE DIALOG
   878	000710'	254 00 0 00 000701*		RETSKP			;DONE, RETURN
   879
   880
   881					;DMPSET - ROUTINE TO PROCESS "SET BASE ADDRESS" MESSAGES DURING A DUMP
   882					;
   883					;ACCEPTS IN T1/	POINTER TO DIALOG DATA IN MESSAGE
   884					;	    T2/	NUMBER OF BYTES REMAINING IN MESSAGE
   885					;	    T3/	ADDRESS OF RECORD BLOCK
   886					;		CALL DMPSET
   887					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
   888					;	  +2	SUCCESS
   889
   890	000711'	402 00 0 00 000001 	DMPSET:	SETZM T1		;NOTE THAT WE ARE STILL IN THE DIALOG
   891	000712'	254 00 0 00 000710*		RETSKP			;SET BASE MESSAGES NOT PROCESSED FOR IMAGE FILES
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 20
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Read Information

   892					SUBTTL	NICE Process -- Read Information
   893
   894	000713'	265 16 0 00 000544*	REQRED:	ASUBR <RQRPTR,RQRCNT>
   895
   896					; DISPATCH ON OPTION REQUESTED
   897
   898	000714'	260 17 0 00 004340'		CALL GETFCN		;GET NICE PROTOCOL FUNCTION CODE
   899	000715'	254 00 0 00 013542'		 RETBAD (.NRIMF)	;FAILED, INVALID MESSAGE FORMAT
   900	000716'	260 17 0 00 004344'		CALL GETOPT		;GET NICE PROTOCOL OPTION CODE
   901	000717'	254 00 0 00 013542'		 RETBAD (.NRIMF)	;FAILED, INVALID MESSAGE FORMAT
   902	000720'	301 04 0 00 000007 		CAIL T4,RQRSIZ		;WITHIN RANGE ?
   903	000721'	254 00 0 00 013540'		RETBAD (.NRFNC)		;NO, INVALID OPTION
   904	000722'	254 00 1 04 000723'		CALLRET @RQRTAB(T4)	;DISPATCH BASED ON ITEM REQUESTED
   905
   906					; DISPATCH TABLE FOR READ INFORMATION FUNCTION
   907
   908	000723'	254 00 0 00 013540'	RQRTAB:	RETBAD (.NRFNC)		;LOCAL NODE COUNTERS
   909	000724'	000000	000732'			RQRLNS			;LOCAL NODE STATUS
   910	000725'	254 00 0 00 013540'		RETBAD (.NRFNC)		;REMOTE NODE COUNTERS
   911	000726'	254 00 0 00 013540'		RETBAD (.NRFNC)		;REMOTE NODE STATUS
   912	000727'	000000	001027'			RQRLCT			;LINE COUNTERS
   913	000730'	000000	001140'			RQRLST			;LINE STATUS
   914	000731'	254 00 0 00 013540'		RETBAD (.NRFNC)		;ROUTING PATHS
   915
   916			000007		RQRSIZ==.-RQRTAB
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 21
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Read Information -- Local Node Status

   917					SUBTTL	NICE Process -- Read Information -- Local Node Status
   918
   919
   920	000732'	265 16 0 00 000000*	RQRLNS:	STKVAR <<LNSMSG,50>,LNSCNT,<COMBLK,3>,<COMVER,3>,<ROUVER,3>>
   921	000733'	000062	000062
   922	000734'	200 01 0 14 000032 		MOVE T1,REQLNK		;GET LOGICAL LINK (JFN) TO REQUESTING TASK
   923	000735'	200 02 0 00 013665'		MOVE T2,[POINT 8,[BYTE(8).NRSUC,1,0]]
   924	000736'	211 03 0 00 000003 		MOVNI T3,3		;NUMBER OF BYTES IN MESSAGE
   925	000737'	104 00 0 00 000532 		SOUTR			;SEND RESPONSE
   926	000740'	320 16 0 00 000712*		 ERJMP RSKP		;IF FAILED NOTHING ELSE TO DO
   927	000741'	541 01 0 17 777727 		HRRI T1,LNSMSG		;GET ADDRESS OF NICE MESSAGE TO BE SENT BACK
   928	000742'	505 01 0 00 441000 		HRLI T1,(POINT 8,)	;FORM POINTER TO MESSAGE
   929	000743'	201 04 0 00 000001 		MOVX T4,.RDLNS		;GET TYPE CODE FOR LOCAL NODE STATUS
   930	000744'	136 04 0 00 000001 		IDPB T4,T1		;ADD BYTE TO MESSAGE
   931	000745'	201 02 0 00 000001 		MOVEI T2,1		;ONE BYTES IN MESSAGE YET
   932	000746'	200 03 0 00 013666'		MOVE T3,[POINT 7,OURNAM] ;GET POINTER TO OUR NODE NAME
   933	000747'	260 17 0 00 006063'		CALL MAKNOD		;ASSEMBLE OUR NODE NAME IN MESSAGE
   934	000750'	263 17 0 00 000000 		 RET			;FAILED
   935	000751'	271 02 0 00 000013 		ADDI T2,^D11		;INCREMENT COUNT OF BYTES IN MESSAGE
   936	000752'	202 02 0 17 777726 		MOVEM T2,LNSCNT		; INCLUDING STATE AND VERSION BYTES
   937	000753'	200 03 0 00 010671'		MOVE T3,OURNUM		;GET OUR NODE NUMBER
   938	000754'	136 03 0 00 000001 		IDPB T3,T1		;ADD NODE NUMBER TO MESSAGE
   939	000755'	201 03 0 00 000000 		MOVX T3,.NSON		;GET "ON" STATE
   940	000756'	136 03 0 00 000001 		IDPB T3,T1		;ADD STATE TO MESSAGE
   941	000757'	201 03 0 00 000000 		MOVX T3,0		;GET UNUSED BYTE OF FILLER (LOGGING STATES)
   942	000760'	136 03 0 00 000001 		IDPB T3,T1		;ADD LOGGING STATES TO
   943	000761'	136 03 0 00 000001 		IDPB T3,T1		;  THE MESSAGE
   944	000762'	136 03 0 00 000001 		IDPB T3,T1		;NO DEFAULT HOST NODE
   945
   946					; ADD VERSIONS TO MESSAGE
   947
   948	000763'	200 04 0 00 000001 		MOVE T4,T1		;SAVE THE BYTE POINTER
   949	000764'	201 01 0 00 000013 		MOVEI T1,.NDGVR		;GET VERSION NUMBERS FROM MONITOR
   950	000765'	201 02 0 17 777723 		MOVEI T2,COMBLK		;POINT TO JSYS BLOCK
   951	000766'	201 03 0 17 777720 		MOVEI T3,COMVER		;WHERE VERSION NUMBER IS TO GO
   952	000767'	202 03 0 02 000001 		MOVEM T3,.NDCVR(T2)	;STUFF IN REQUEST BLOCK
   953	000770'	201 03 0 17 777715 		MOVEI T3,ROUVER		;WHERE VERSION NUMBER IS TO GO
   954	000771'	202 03 0 02 000002 		MOVEM T3,.NDRVR(T2)	;STUFF IN REQUEST BLOCK
   955	000772'	104 00 0 00 000567 		NODE			;GET THE INFORMATION
   956	000773'	320 16 0 00 013541'		 ERJMP [RET]		;ERROR - RETURN FAILURE
   957
   958					; HAVE VERSION NUMBERS - NOW PUT IN MESSAGE
   959
   960	000774'	200 01 0 00 000004 		MOVE T1,T4		;RESTORE MESSAGE POINTER
   961	000775'	201 03 0 17 777715 		MOVEI T3,ROUVER		;NOW GET ROUTING INFO INTO MSG
   962	000776'	200 04 0 03 000000 		MOVE T4,.NDVER(T3)	;GET VERSION NUMBER
   963	000777'	136 04 0 00 000001 		IDPB T4,T1		; INTO MSG
   964	001000'	200 04 0 03 000001 		MOVE T4,.NDECO(T3)	;ROUTING NUMBER
   965	001001'	136 04 0 00 000001 		IDPB T4,T1
   966	001002'	200 04 0 03 000002 		MOVE T4,.NDCST(T3)	;GET CUSTOMER CHANGE NUMBER
   967	001003'	136 04 0 00 000001 		IDPB T4,T1		;PUT INTO MSG
   968	001004'	201 03 0 17 777720 		MOVEI T3,COMVER		;NOW GET COMMUNICATION INFO INTO MSG
   969	001005'	200 04 0 03 000000 		MOVE T4,.NDVER(T3)	;GET VERSION NUMBER
   970	001006'	136 04 0 00 000001 		IDPB T4,T1		; INTO MSG
   971	001007'	200 04 0 03 000001 		MOVE T4,.NDECO(T3)	;ROUTING NUMBER
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 21-1
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Read Information -- Local Node Status

   972	001010'	136 04 0 00 000001 		IDPB T4,T1
   973	001011'	200 04 0 03 000002 		MOVE T4,.NDCST(T3)	;GET CUSTOMER CHANGE NUMBER
   974	001012'	136 04 0 00 000001 		IDPB T4,T1		;PUT INTO MSG
   975	001013'	201 02 0 00 000040 		MOVX T2,^D32		;MAX SIZE OF SYSTEM NAME
   976	001014'	200 03 0 00 013667'		MOVE T3,[POINT 7,SYSNAM] ;GET POINTER TO OUR SYSTEM NAME
   977	001015'	260 17 0 00 006046'		CALL MAKIMA		;ADD IMAGE FIELD TO MESSAGE
   978	001016'	263 17 0 00 000000 		 RET			;FAILED
   979	001017'	270 02 0 17 777726 		ADD T2,LNSCNT		;COMPUTE TOTAL BYTES IN MESSAGE
   980	001020'	210 03 0 00 000002 		MOVN T3,T2		;GET -COUNT
   981	001021'	541 02 0 17 777727 		HRRI T2,LNSMSG		;GET ADDRESS OF NICE MESSAGE TO BE SENT BACK
   982	001022'	505 02 0 00 441000 		HRLI T2,(POINT 8,)	;FORM POINTER TO MESSAGE
   983	001023'	200 01 0 14 000032 		MOVE T1,REQLNK		;GET LINK TO REQUESTING TASK
   984	001024'	104 00 0 00 000532 		SOUTR			;OUTPUT REPLY
   985	001025'	320 16 0 00 000000*		 ERJMP R		;FAILED
   986	001026'	254 00 0 00 000740*		RETSKP			;DONE, RETURN SUCCESS
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 22
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Read Information -- Line Counters

   987					SUBTTL	NICE Process -- Read Information -- Line Counters
   988
   989	001027'	260 17 0 00 004560'	RQRLCT:	CALL GETLIN		;GET LINE-ID FROM MESSAGE
   990	001030'	263 17 0 00 000000 		 RETBAD ()		;FAILED
   991	001031'	321 03 0 00 001037'		JUMPL T3,NRILN		;IN CASE WANTS ALL
   992	001032'	265 16 0 00 000732*		STKVAR <<LINLID,2>,<LINCNT,100>,<LINMSG,100>>
   993	001033'	000202	000202
   994	001034'	124 03 0 17 777775 		DMOVEM T3,LINLID	;SAVE LINE-ID FOR RESPONSE
   995	001035'	120 01 0 00 000003 		DMOVE T1,T3		;PUT LINE-ID IN RIGHT REGISTER
   996	001036'	260 17 0 00 000000*		CALL LIDPRT		;CONVERT LID TO PORT
   997	001037'	254 00 0 00 013670'	NRILN:	 RETBAD (.NRILN)	;"INVALID LINE ID"
   998	001040'	202 01 0 17 777675 		MOVEM T1,.BTPRT+LINCNT	;PUT PORT IN ARGUMENT BLOCK
   999	001041'	201 01 0 00 000020 		MOVEI T1,20		;MAXIMUM NUMBER OF COUNTERS
  1000	001042'	201 02 0 17 777715 		MOVEI T2,20+LINCNT	;WHERE TO PUT FIRST COUNTERS
  1001	001043'	505 02 0 00 444400 		HRLI T2,444400		;MAKE INTO POINTER
  1002	001044'	124 01 0 17 777677 		DMOVEM T1,.BTSCC+LINCNT	;STATUS COUNTERS
  1003	001045'	271 02 0 00 000020 		ADDI T2,20		;ADR OF NEXT COUNTERS
  1004	001046'	124 01 0 17 777701 		DMOVEM T1,.BTRCC+LINCNT	;RECEIVE COUNTERS
  1005	001047'	271 02 0 00 000020 		ADDI T2,20		;ADR OF NEXT COUNTERS
  1006	001050'	124 01 0 17 777703 		DMOVEM T1,.BTTCC+LINCNT	;TRANSMIT COUNTERS
  1007	001051'	201 01 0 00 000013 		MOVEI T1,.BTRLC		;WANT LINE COUNTERS
  1008	001052'	201 02 0 17 777675 		MOVEI T2,LINCNT		;ADDRESS OF ARGUMENT BLOCK
  1009	001053'	104 00 0 00 000562 		BOOT
  1010	001054'	320 16 0 00 013674'		ERJMP [RETBAD (.NRIST)] ;RETURN "Insufficient Status"
  1011	001055'	200 01 0 14 000032 		MOVE T1,REQLNK		;GET LOGICAL LINK (JFN) TO REQUESTING TASK
  1012	001056'	200 02 0 00 013665'		MOVE T2,[POINT 8,[BYTE(8).NRSUC,1,0]]
  1013	001057'	211 03 0 00 000003 		MOVNI T3,3		;NUMBER OF BYTES IN MESSAGE
  1014	001060'	104 00 0 00 000532 		SOUTR			;SEND RESPONSE
  1015	001061'	320 16 0 00 001026*		 ERJMP RSKP		;IF FAILED NOTHING ELSE TO DO
  1016	001062'	201 01 0 17 777575 		MOVEI T1,LINMSG		;ADR OF RESPONSE MESSAGE
  1017	001063'	505 01 0 00 441000 		HRLI T1,441000		;MAKE IT A POINTER TO MESSAGE
  1018	001064'	201 02 0 00 000004 		MOVEI T2,.RDLCT		;CODE SAYES THIS IS LINE COUNTS
  1019	001065'	136 02 0 00 000001 		IDPB T2,T1		;PUT CODE INTO MESSAGE
  1020	001066'	201 02 0 00 000001 		MOVEI T2,1		;NUMBER OF BYTES IN MESSAGE SO FAR
  1021	001067'	120 03 0 17 777775 		DMOVE T3,LINLID		;LINE-ID
  1022	001070'	260 17 0 00 005303'		CALL MAKLIN		;PUT LINE-ID INTO MESSAGE
  1023	001071'	201 03 0 00 000000 		MOVEI T3,0		;SECOND SINCE LAST ZEROED
  1024	001072'	200 04 0 17 777676 		MOVE T4,.BTZTM+LINCNT	;TIME SINCE ZEROED
  1025	001073'	260 17 0 00 001132'		CALL MAKLCT
  1026	001074'	201 03 0 00 000001 		MOVEI T3,1		;TYPE = BLOCKS RECEIVED
  1027	001075'	200 04 0 17 777735 		MOVE T4,40+LINCNT	;GET NUMBER OF BLOCKS RECEIVED
  1028	001076'	260 17 0 00 001132'		CALL MAKLCT
  1029	001077'	201 03 0 00 000004 		MOVEI T3,4		;RECEIVED LINE ERRORS
  1030	001100'	200 04 0 17 777737 		MOVE T4,42+LINCNT	;HEADER BCC ERRORS
  1031	001101'	270 04 0 17 777740 		ADD T4,43+LINCNT	;DATA BCC ERRORS
  1032	001102'	260 17 0 00 001132'		CALL MAKLCT
  1033	001103'	201 03 0 00 000002 		MOVEI T3,2		;TYPE = BLOCKS TRANSMITTED
  1034	001104'	200 04 0 17 777755 		MOVE T4,60+LINCNT	;GET NUMBER OF BLOCKS TRANSMITTED
  1035	001105'	260 17 0 00 001132'		CALL MAKLCT
  1036	001106'	201 03 0 00 000003 		MOVEI T3,3		;RETRANSMISSIONS, LINE ERRORS
  1037	001107'	200 04 0 17 777757 		MOVE T4,62+LINCNT	;HEADER BCC ERROR
  1038	001110'	270 04 0 17 777760 		ADD T4,63+LINCNT	;DATA BCC ERROR
  1039	001111'	260 17 0 00 001132'		CALL MAKLCT
  1040						; ..
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 23
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Read Information -- Line Counters

  1041						; ..
  1042	001112'	201 03 0 00 000005 		MOVEI T3,5		;RETRANSMISSION, NOT PARITY
  1043	001113'	200 04 0 17 777756 		MOVE T4,61+LINCNT	;MISC NAKS RECEIVED
  1044	001114'	270 04 0 17 777761 		ADD T4,64+LINCNT	;REP RESPONSE
  1045	001115'	270 04 0 17 777762 		ADD T4,65+LINCNT	;BTU
  1046	001116'	260 17 0 00 001132'		CALL MAKLCT
  1047	001117'	201 03 0 00 000010 		MOVEI T3,^D8		;RESOURCE ERRORS
  1048	001120'	200 04 0 17 777742 		MOVE T4,45+LINCNT	;NAKS SEND FOR BTU
  1049	001121'	270 04 0 17 777762 		ADD T4,65+LINCNT	;RECEIVED
  1050	001122'	260 17 0 00 001132'		CALL MAKLCT
  1051	001123'	211 03 0 02 000000 		MOVNI T3,(T2)		;NUMBER OF BYTES IN MESSAGE
  1052	001124'	200 01 0 14 000032 		MOVE T1,REQLNK		;GET LOGICAL LINK (JFN) TO REQUESTING TASK
  1053	001125'	541 02 0 17 777575 		HRRI T2,LINMSG		;POINT TO MESSAGE
  1054	001126'	505 02 0 00 441000 		HRLI T2,441000		;MAKE BYTE POINTER
  1055	001127'	104 00 0 00 000532 		SOUTR			;SEND RESPONSE
  1056	001130'	320 16 0 00 001061*		 ERJMP RSKP		;IF FAILED NOTHING ELSE TO DO
  1057	001131'	254 00 0 00 001130*		RETSKP
  1058
  1059	001132'	136 03 0 00 000001 	MAKLCT:	IDPB T3,T1		;PUT TYPE(EX-2) IN MESSAGE
  1060	001133'	136 04 0 00 000001 		IDPB T4,T1		;PUT COUNT(B2) INTO MESSAGE
  1061	001134'	242 04 0 00 777770 		LSH T4,-8		;POSITION HIGH ORDER BITS
  1062	001135'	136 04 0 00 000001 		IDPB T4,T1		;PUT HIGH ORDER BITS IN ALSO
  1063	001136'	271 02 0 00 000003 		ADDI T2,3		;ADDED TWO BYTES TO MESSAGE
  1064	001137'	263 17 0 00 000000 		RET
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 24
NCU	MAC	 6-Oct-81 12:41		NICE PROCESS -- Read Information -- Line Status

  1065					SUBTTL	NICE PROCESS -- Read Information -- Line Status
  1066
  1067
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 25
NCU	MAC	 6-Oct-81 12:41		NICE PROCESS -- Read Information -- Line Status

  1068
  1069					;HERE TO DO A "SHOW LINE STATUS" REQUEST
  1070
  1071	001140'	265 16 0 00 000000*	RQRLST:	SAVEQ
  1072	001141'	265 16 0 00 001032*		STKVAR <<RQRHLD,2>,RQRBUF,<RLSMSG,10>>
  1073	001142'	000013	000013
  1074	001143'	260 17 0 00 004560'		CALL GETLIN		;GET LINE-ID OUT OF MESSAGE
  1075	001144'	263 17 0 00 000000 		 RETBAD			;BAD LINE-ID - RETURN
  1076	001145'	124 03 0 17 777775 		DMOVEM T3,RQRHLD	;SAVE INTERNAL LINE ID
  1077	001146'	260 17 0 00 000000*		CALL ASGPAG		;GET PAGE FOR NODE JSYS STUFF
  1078	001147'	254 00 0 00 013675'		 RETBAD (.NRRES)	;NO STORAGE - FAIL
  1079	001150'	202 02 0 17 777774 		MOVEM T2,RQRBUF		;SAVE "NICE" MESSAGE POINTER
  1080	001151'	201 03 0 00 001000 		MOVEI T3,1000		;SIZE OF BUFFER WE'RE PROVIDING
  1081	001152'	552 03 0 02 000000 		HRRZM T3,.NDNLN(T2)	;INTO ARGUMENT BLOCK
  1082	001153'	201 01 0 00 000014 		MOVEI T1,.NDGLI	
  1083	001154'	104 00 0 00 000567 		NODE
  1084	001155'	320 16 0 00 013656'		 ERJMP [RETBAD (.NRNPE)]	;JSYS ERROR - FAIL
  1085	001156'	554 01 0 02 000000 		HLRZ T1,.NDNLN(T2)	;ANY KNOWN LINES?
  1086	001157'	336 00 0 00 000001 		SKIPN T1		;SKIP IF LINE COUNT .NE. 0
  1087	001160'	254 00 0 00 013670'		RETBAD (.NRILN)		;FAIL - NO KNOWN LINES
  1088	001161'	337 00 0 17 777775 		SKIPG RQRHLD		;IS THIS AN "ALL LINES" REQUEST
  1089	001162'	254 00 0 00 001220'		JRST RQRLAL		;YES - THEN HANDLE
  1090
  1091					;HERE FOR A SINGLE LINE REQUEST
  1092
  1093	001163'	120 01 0 17 777775 		DMOVE T1,RQRHLD		;GET THE INTERNAL LINE ID
  1094	001164'	260 17 0 00 001036*		CALL LIDPRT		;CONVERT IT TO PORT NUMBER
  1095	001165'	254 00 0 00 013670'		 RETBAD(.NRILN)		;ERROR - FAIL
  1096	001166'	202 01 0 17 777775 		MOVEM T1,RQRHLD		;SAVE PORT NUMBER
  1097	001167'	200 01 0 00 013677'		MOVE T1,[POINT 8,T4]	;BUILD THE INITIAL "NICE" ACKNOWLEDGMENT
  1098	001170'	201 03 0 00 000001 		MOVEI T3,.NRSUC		;SHOW THAT WE LIKED THE REQUEST
  1099	001171'	136 03 0 00 000001 		IDPB T3,T1		;PLACE INTO MESSAGE BLOCK
  1100	001172'	201 02 0 00 000001 		MOVEI T2,1		;COUNT OF RESPONSES WE WILL SEND
  1101	001173'	260 17 0 00 006333'		CALL MAKTWO		;PLACE COUNT OF # RESPONSE MSG'S WE WILL SEND
  1102	001174'	200 02 0 00 013677'		MOVE T2,[POINT 8,T4]	;SEND INITIAL ACKNOWLEDMENT TO  REQUESTOR
  1103	001175'	211 03 0 00 000003 		MOVNI T3,3		;TWO BYTE MESSAGE
  1104	001176'	200 01 0 14 000032 		MOVE T1,REQLNK		;REQUESTOR LINK JFN
  1105	001177'	104 00 0 00 000532 		SOUTR			;SEND IT
  1106	001200'	320 16 0 00 013656'		 ERJMP [RETBAD(.NRNPE)]	;ERROR - FAIL
  1107	001201'	200 01 0 17 777775 		MOVE T1,RQRHLD		;SAVE PORT NUMBER
  1108	001202'	200 02 0 17 777774 		MOVE T2,RQRBUF		;POINT TO NODE JSYS INFO
  1109	001203'	260 17 0 00 001265'		CALL PRTINF		;GET T1-T4 FILLED WITH INFO TO SEND
  1110	001204'	263 17 0 00 000000 		 RETBAD			;ERROR - FAIL
  1111	001205'	201 05 0 17 777764 		MOVEI Q1,RLSMSG		;BUILD POINTER TO MESSAGE AREA
  1112	001206'	505 05 0 00 441000 		HRLI Q1,(POINT 8,)
  1113	001207'	260 17 0 00 001332'		CALL LSTBLD		;BUILD THE "NICE" MESSAGE
  1114	001210'	263 17 0 00 000000 		 RETBAD 		;ERROR - FAIL
  1115	001211'	210 03 0 00 000002 		MOVN T3,T2		;LENGTH OF MESSAGE
  1116	001212'	200 01 0 14 000032 		MOVE T1,REQLNK		;SEND RESPONSE TO REQUESTOR
  1117	001213'	201 02 0 17 777764 		MOVEI T2,RLSMSG		;BUILD POINTER TO MESSAGE AREA
  1118	001214'	505 02 0 00 441000 		HRLI T2,(POINT 8,)
  1119	001215'	104 00 0 00 000532 		SOUTR			;SEND THE LINE STATUS INFORMATION
  1120	001216'	320 16 0 00 013656'		 ERJMP [RETBAD(.NRNPE)]	;ERROR - FAIL
  1121	001217'	254 00 0 00 001261'		JRST RQLOUT		;DONE - EXIT
  1122
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 25-1
NCU	MAC	 6-Oct-81 12:41		NICE PROCESS -- Read Information -- Line Status

  1123						;...
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 26
NCU	MAC	 6-Oct-81 12:41		NICE PROCESS -- Read Information -- Line Status

  1124						;...
  1125
  1126					;HERE FOR A "LINE STATUS ALL" REQUEST
  1127
  1128	001220'	200 01 0 00 013677'	RQRLAL:	MOVE T1,[POINT 8,T4]	;BUILD THE INITIAL "NICE" ACKNOWLEDGMENT
  1129	001221'	201 03 0 00 000001 		MOVEI T3,.NRSUC		;SHOW THAT WE LIKED THE REQUEST
  1130	001222'	136 03 0 00 000001 		IDPB T3,T1		;PLACE INTO MESSAGE BLOCK
  1131	001223'	200 02 0 17 777774 		MOVE T2,RQRBUF		;POINTER TO NODE JSYS INFO
  1132	001224'	554 02 0 02 000000 		HLRZ T2,.NDNLN(T2)	;GET PORT COUNT
  1133	001225'	260 17 0 00 006333'		CALL MAKTWO		;PLACE COUNT OF # RESPONSE MSG'S WE WILL SEND
  1134	001226'	200 02 0 00 013677'		MOVE T2,[POINT 8,T4]	;SEND INITIAL ACKNOWLEDMENT TO  REQUESTOR
  1135	001227'	211 03 0 00 000003 		MOVNI T3,3		;TWO BYTE MESSAGE
  1136	001230'	200 01 0 14 000032 		MOVE T1,REQLNK		;REQUESTOR LINK JFN
  1137	001231'	104 00 0 00 000532 		SOUTR			;SEND IT
  1138	001232'	320 16 0 00 013656'		 ERJMP [RETBAD(.NRNPE)]	;ERROR - FAIL
  1139	001233'	200 06 0 17 777774 		MOVE Q2,RQRBUF		;POINT TO NODE INFORMATION
  1140	001234'	554 01 0 06 000000 		HLRZ T1,.NDNLN(Q2)	;GET COUNT OF AVAILABLE LINE ENTRIES
  1141	001235'	350 00 0 00 000001 		AOS T1			;BUMP COUNT FOR AOBJP
  1142	001236'	210 01 0 00 000001 		MOVN T1,T1		;CREATE AN AOBJP POINTER
  1143	001237'	504 06 0 00 000001 		HRL Q2,T1		;...
  1144	001240'	252 06 0 00 001261'	RQRLOP:	AOBJP Q2,RQLOUT		;END OF LOOP?
  1145	001241'	200 01 0 06 000000 		MOVE T1,0(Q2)		;NO - POINT TO LINE BLOCK
  1146	001242'	200 01 0 01 000000 		MOVE T1,.NDLNM(T1)	;GET PORT NUMBER
  1147	001243'	200 02 0 17 777774 		MOVE T2,RQRBUF		;GET PORT INFORMATION
  1148	001244'	260 17 0 00 001265'		CALL PRTINF		;GET ALL THE INFO OUT OF NODE JSYS BLOCK
  1149	001245'	263 17 0 00 000000 		 RETBAD 		;COULDN'T FIND PORT NUMBER (SHOULD NEVER HAPPEN)
  1150	001246'	201 05 0 17 777764 		MOVEI Q1,RLSMSG		;BUILD POINTER TO MESSAGE AREA
  1151	001247'	505 05 0 00 441000 		HRLI Q1,(POINT 8,)
  1152	001250'	260 17 0 00 001332'		CALL LSTBLD		;GO BUILD "NICE MESSAGE"
  1153	001251'	263 17 0 00 000000 		 RETBAD 		;ERROR IN BUILDING MESSAGE
  1154	001252'	210 03 0 00 000002 		MOVN T3,T2		;MAKE BYTE COUNT NEGATIVE
  1155	001253'	200 01 0 14 000032 		MOVE T1,REQLNK		;SEND "NICE" MESSAGE TO REQUESTOR
  1156	001254'	201 02 0 17 777764 		MOVEI T2,RLSMSG		;BUILD POINTER TO MESSAGE AREA
  1157	001255'	505 02 0 00 441000 		HRLI T2,(POINT 8,)
  1158	001256'	104 00 0 00 000532 		SOUTR			;SEND RESPONSE
  1159	001257'	320 16 0 00 013656'		 ERJMP [RETBAD (.NRNPE)]
  1160	001260'	254 00 0 00 001240'		JRST RQRLOP		;GO SEE IF MORE RESPONSES  NEEDED
  1161	001261'	200 01 0 17 777774 	RQLOUT:	MOVE T1,RQRBUF		;FREE BUFFER PAGE
  1162	001262'	260 17 0 00 000000*		CALL RELPGA		;GO FREE IT
  1163	001263'	263 17 0 00 000000 		 RETBAD			;ERROR - FAIL
  1164	001264'	254 00 0 00 001131*		RETSKP			;SUCCESS RETURN
  1165
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 27
NCU	MAC	 6-Oct-81 12:41		NICE PROCESS -- Read Information -- Line Status

  1166
  1167					;PRTINF - GET PORT INFORMATION FROM NODE JSYS DATA
  1168
  1169					;ACCEPTS:	T1/PORT NUMBER
  1170					;		T2/ADDRESS OF NODE JSYS BUFFER
  1171
  1172					;RETURNS:	+1,ERROR, WITH "NICE" ERROR CODE IN T1
  1173					;		+2,OTHERWISE
  1174					;		T1/	STATUS
  1175					;		T2/	ASCIZ POINTER TO NODE NAME
  1176					;		T3-4/	LINE-ID
  1177
  1178	001265'	265 16 0 00 000000*	PRTINF:	ACVAR <W1>		;GET A WORK REGISTER
  1179	001266'	265 16 0 00 001141*		STKVAR <<PRTBUF,20>>
  1180	001267'	000020	000020
  1181	001270'	200 05 0 00 000002 		MOVE W1,T2		;MOVE ADDRESS OF DATA AREA
  1182	001271'	554 04 0 05 000000 		HLRZ T4,.NDLNM(W1)	;GET COUNT OF KNOWN LINES
  1183	001272'	322 04 0 00 001025*		JUMPE T4,R		;ERROR OF NO KNOWN LINES
  1184	001273'	201 05 0 05 000000 		MOVEI W1,.NDLNM(W1)	;POINT TO PORT NUMBER BLOCK
  1185	001274'	375 00 0 00 000004 	PRTLOP:	SOSGE T4		;SKIP IF MORE ITEMS TO SEARCH
  1186	001275'	254 00 0 00 013670'		RETBAD (.NRILN)		;UNKNOWN PORT - ERROR
  1187	001276'	350 00 0 00 000005 		AOS W1			;POINT  TO NEXT ITEM
  1188	001277'	200 03 0 05 000000 		MOVE T3,(W1)		;GET THE PORT BLOCK NUMBER
  1189	001300'	312 01 0 03 000000 		CAME T1,.NDLNM(T3)	;OUR PORT?
  1190	001301'	254 00 0 00 001274'		JRST PRTLOP		;NO - KEEP LOOKING
  1191	001302'	201 02 0 17 777757 		MOVEI T2,PRTBUF		;WE WANT TO GET A DEVICE STRING
  1192	001303'	202 01 0 02 000000 		MOVEM T1,.BTPRT(T2)	;PUT PORT NUMBER IN DATA BLOCK
  1193	001304'	561 01 0 02 000002 		HRROI T1,.BTLID+1(T2)	;WHERE WE WANT MESSAGE BUILT
  1194	001305'	202 01 0 02 000001 		MOVEM T1,.BTLID(T2)	;INTO ARGUMENT BLOCK
  1195	001306'	201 01 0 00 000015 		MOVEI T1,.BTCPN		;TELL BOOT WE WANT CONVERSION
  1196	001307'	104 00 0 00 000562 		BOOT
  1197	001310'	320 16 0 00 013656'		 ERJMP [RETBAD (.NRNPE)]
  1198	001311'	541 01 0 02 000002 		HRRI T1,.BTLID+1(T2)	;GET POINTER TO DEVICE STRING
  1199	001312'	505 01 0 00 440700 		HRLI T1,(POINT 7,)
  1200	001313'	260 17 0 00 001400'		CALL ASCPRS		;CONVERT TO INTERNAL LINE-ID FORMAT
  1201	001314'	263 17 0 00 000000 		 RETBAD
  1202	001315'	200 05 0 05 000000 		MOVE W1,(W1)		;POINT TO PORT BLOCK
  1203	001316'	200 02 0 05 000001 		MOVE T2,.NDLST(W1)	;GET STATUS AND CONVERT TO "NICE" CODE
  1204	001317'	474 01 0 00 000000 		SETO	T1,		;Initialize to absurdly large value
  1205	001320'	306 02 0 00 000001 		CAIN	T2,.NDLON	;Check for LINE ON
  1206	001321'	201 01 0 00 000000 		 MOVEI	T1,.LSTON	; Set NICE LINE ON code
  1207	001322'	306 02 0 00 000002 		CAIN	T2,.NDLOF	;Check for LINE OFF
  1208	001323'	201 01 0 00 000001 		 MOVEI	T1,.LSTOF	; Set NICE LINE OFF
  1209	001324'	306 02 0 00 000003 		CAIN	T2,.NDLCN	;Check for CONTROLLER LOOPBACK
  1210	001325'	201 01 0 00 000005 		 MOVEI	T1,.LSTCN	; Set NICE CONTROLLER LOOPBACK
  1211	001326'	306 02 0 00 000004 		CAIN	T2,.NDLCB	;Check for CABLE LOOPBACK
  1212	001327'	201 01 0 00 000006 		 MOVEI	T1,.LSTCB	; Set NICE CABLE LOOPBACK
  1213	001330'	200 02 0 05 000002 		MOVE T2,.NDLND(W1)	;GET ASCIZ NODE NAME
  1214	001331'	254 00 0 00 001264*		RETSKP			;SUCCESS RETURN
  1215
  1216						ENDSV.
  1217						ENDAV.
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 28
NCU	MAC	 6-Oct-81 12:41		NICE PROCESS -- Read Information -- Line Status

  1218
  1219					;LSTBLD - BUILD A LINES STATUS "NICE" RESPONSE
  1220
  1221					;ACCEPTS:	T1/	STATUS
  1222					;		T2/	POINTER TO NODE NAME
  1223					;		T3-4/	LINE-ID
  1224					;		Q1/	ADDRESS OF WHERE TO BUILD MESSAGE
  1225
  1226					;RETURNS:	+1,ERROR, WITH "NICE" ERROR CODE IN T1
  1227					;		+2,OTHERWISE
  1228					;			T1/UPDATED BYTE POINTER (FROM Q1)
  1229					;			T2/COUNT OF BYTES IN MESSAGE
  1230
  1231	001332'	265 16 0 00 001140*	LSTBLD:	SAVEQ
  1232	001333'	265 16 0 00 001266*		STKVAR <<LSTLID,2>,<LSTHLD,2>>
  1233	001334'	000004	000004
  1234	001335'	402 00 0 00 000006 		SETZM Q2		;ZERO BYTE COUNT WORD
  1235	001336'	124 01 0 17 777773 		DMOVEM T1,LSTHLD	;SAVE THE PTR AND STATUS
  1236	001337'	201 01 0 00 000005 		MOVEI T1,.RDLST		;FUNCTION CODE FOR MESSAGE
  1237	001340'	136 01 0 00 000005 		IDPB T1,Q1		;PLACE INTO MESSAGE
  1238	001341'	350 00 0 00 000006 		AOS Q2			;BUMP BYTE COUNTER
  1239
  1240					;	HERE TO ADD INTERNAL LINE-ID TO "NICE" MESSAGE
  1241
  1242	001342'	120 01 0 00 000005 		DMOVE T1,Q1		;WHERE TO PUT THE "NICE" MESSAGE & COUNT
  1243	001343'	260 17 0 00 005303'		CALL MAKLIN		;PUT LINE ID INTO "NICE" MESSAGE
  1244	001344'	120 05 0 00 000001 		DMOVE Q1,T1		;RESTORE MESSAGE POINTER AND COUNT
  1245	001345'	120 03 0 17 777773 		DMOVE T3,LSTHLD		;GET STATUS AND NAME BYTE POINTER
  1246	001346'	136 03 0 00 000005 		IDPB T3,Q1		;PUT STATUS INTO BYTE
  1247	001347'	350 00 0 00 000006 		AOS Q2			;BUMP BYTE COUNT
  1248	001350'	400 03 0 00 000000 		SETZ T3,		;PROTOCOL REQUIRES TWO ZERO BYTES HERE
  1249	001351'	136 03 0 00 000005 		IDPB T3,Q1		;PUT IT INTO BYTE
  1250	001352'	350 00 0 00 000006 		AOS Q2			;BUMP BYTE COUNT
  1251	001353'	136 03 0 00 000005 		IDPB T3,Q1		;PUT IT INTO BYTE
  1252	001354'	350 00 0 00 000006 		AOS Q2			;BUMP BYTE COUNT
  1253	001355'	200 01 0 00 000005 		MOVE  T1,Q1		;NOW PUT NAME INTO MESSAGE
  1254	001356'	200 02 0 00 000004 		MOVE T2,T4		;SEE IF THIS LINE HAS A NAME
  1255	001357'	134 03 0 00 000002 		ILDB T3,T2		;GET FIRST CHARACTER
  1256						JUMPE T3,[ IDPB T3,T1	;ZERO=NULL=NO NAME - PUT 0 COUNT IN MSG
  1257							   MOVEI T2,T1	;SHOW COUNT ADDED
  1258	001360'	322 03 0 00 013700'			   JRST LSTOUT]	;JOIN COMMON EXIT
  1259	001361'	133 00 0 00 000001 		IBP T1			;POINT PAST IMAGE COUNT FOR NAME
  1260	001362'	200 02 0 00 000004 		MOVE T2,T4		;POINT TO WHERE NODE NAME LIVES
  1261	001363'	201 03 0 00 000006 		MOVEI T3,6		;MAXIMUM LENGTH OF MESSAGE
  1262	001364'	400 04 0 00 000000 		SETZ T4,		;IT'S AN ASCIZ STRING
  1263	001365'	104 00 0 00 000053 		SOUT			;MOVE THE STRING
  1264	001366'	320 16 0 00 013656'		 ERJMP [RETBAD (.NRNPE)]		;ERROR - FAIL
  1265	001367'	135 02 0 00 000002 		LDB T2,T2		;Get last character transfered
  1266	001370'	306 02 0 00 000000 		CAIN T2,0		;Check for a zero byte
  1267	001371'	350 00 0 00 000003 		AOS T3			;We don't want to count null
  1268	001372'	201 02 0 00 000006 		MOVEI T2,6		;Compute bytes put into message
  1269	001373'	274 02 0 00 000003 		SUB T2,T3
  1270	001374'	136 02 0 00 000005 		IDPB T2,Q1		;Place in message
  1271	001375'	350 00 0 00 000002 		AOS T2			;Account for length field
  1272	001376'	270 02 0 00 000006 	LSTOUT:	ADD T2,Q2		;FINAL COUNT OF BYTES IN MESSAGE
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 28-1
NCU	MAC	 6-Oct-81 12:41		NICE PROCESS -- Read Information -- Line Status

  1273	001377'	254 00 0 00 001331*		RETSKP
  1274
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 29
NCU	MAC	 6-Oct-81 12:41		NICE PROCESS -- Read Information -- Line Status

  1275					;ASCPRS - ROUTINE TO PARSE AN ASCIZ LINE ID
  1276					;
  1277					;ACCEPTS IN T1/	POINTER TO ASCIZ NAME
  1278					;		CALL ASCPRS
  1279
  1280					;RETURNS:	+1,ERROR, WITH "NICE" ERROR CODE IN T1
  1281					;		+2	SUCCESS, WITH T3-T4/ LINE ID
  1282
  1283					;**N.B.   ASCIZ STRING GETS DESTROYED
  1284
  1285
  1286	001400'	265 16 0 00 001333*	ASCPRS:	STKVAR <PRSLDV,PRSCTL,PRSUNT,PRSSTN>
  1287	001401'	000004	000004
  1288
  1289	001402'	402 00 0 17 777775 		SETZM PRSCTL		;CONTROLLERE NUMBER WILL GO HERE
  1290	001403'	402 00 0 17 777774 		SETZM PRSUNT		;;UNIT NUMBER HERE
  1291	001404'	402 00 0 17 777776 		SETZM PRSLDV		;DEVICE NUMBER HERE
  1292	001405'	402 00 0 17 777773 		SETZM PRSSTN		;STATION NUMBER HERE
  1293
  1294					; PARSE DEVICE TYPE
  1295
  1296	001406'	200 04 0 00 000001 		MOVE T4,T1		;SAVE THE STRING POINTER
  1297	001407'	211 03 0 00 000017 		MOVNI T3,^D15		;SAFETY CHECK - AT MOST 15 CHARS
  1298	001410'	514 03 0 00 000003 		HRLZ T3,T3		;MAKE AOBJN POINTER
  1299	001411'	134 02 0 00 000001 	FNDUDR:	ILDB T2,T1		;GET THE CHARACTER
  1300	001412'	306 02 0 00 000137 		CAIN T2,"_"		;IS IT AN UNDERSCORE
  1301	001413'	254 00 0 00 001416'		JRST PRSFND		;YES - HANDLE
  1302	001414'	253 03 0 00 001411'		AOBJN T3,FNDUDR		;KEEP LOOKING
  1303	001415'	254 00 0 00 013650'		RETBAD (.NRNPE)		;NOT FOUND - ERROR
  1304	001416'	400 02 0 00 000000 	PRSFND:	SETZ T2,		;ZERO BYTE FOR TBLUK
  1305	001417'	137 02 0 00 000001 		DPB T2,T1
  1306	001420'	200 02 0 00 000004 		MOVE T2,T4		;SET UP STRING POINTER FOR TBLUK
  1307	001421'	202 01 0 00 000004 		MOVEM T1,T4		;SAVE POINTER
  1308	001422'	201 01 0 00 010633'		MOVEI T1,LINNAM		;POINT TO TABLE OF NAMES
  1309	001423'	104 00 0 00 000537 		TBLUK			;FIND NAME
  1310	001424'	320 16 0 00 013656'		 ERJMP [RETBAD (.NRNPE)]	;ERROR - RETURN
  1311	001425'	607 02 0 00 140000 		TXNN T2,TL%EXM+TL%ABR	;MATCH?
  1312	001426'	254 00 0 00 013650'		RETBAD (.NRNPE)		;NO
  1313	001427'	550 02 0 01 000000 		HRRZ T2,0(T1)		;YES - GET THE FUNCTION CODE
  1314	001430'	202 02 0 17 777776 		MOVEM T2,PRSLDV		;AND SAVE
  1315	001431'	200 01 0 00 000004 		MOVE T1,T4		;GET STRING POINTING TO CONTROLLER NUMBER
  1316	001432'	260 17 0 00 001457'		CALL CVTNUM		;CONVERT CONTROLLER NUMBER
  1317	001433'	263 17 0 00 000000 		 RETBAD			;ERROR
  1318	001434'	202 02 0 17 777775 		MOVEM T2,PRSCTL		;SAVE
  1319	001435'	260 17 0 00 001465'		CALL PRSEND		;ANY MORE?
  1320	001436'	254 00 0 00 001452'		 JRST PRSBLD		;NO - BUILD MESSAGE
  1321	001437'	260 17 0 00 001457'		CALL CVTNUM		;CONVERT UNIT NUMBER
  1322	001440'	263 17 0 00 000000 		 RETBAD			;ERROR
  1323	001441'	202 02 0 17 777774 		MOVEM T2,PRSUNT		;SAVE
  1324	001442'	260 17 0 00 001465'		CALL PRSEND		;ANY MORE?
  1325	001443'	254 00 0 00 001452'		 JRST PRSBLD		;NO - BUILD MESSAGE
  1326	001444'	260 17 0 00 001457'		CALL CVTNUM		;CONVERT STATION NUMBER
  1327	001445'	263 17 0 00 000000 		 RETBAD			;ERROR
  1328	001446'	202 02 0 17 777773 		MOVEM T2,PRSSTN		;SAVE
  1329	001447'	260 17 0 00 001465'		CALL PRSEND		;ANY MORE?
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 29-1
NCU	MAC	 6-Oct-81 12:41		NICE PROCESS -- Read Information -- Line Status

  1330	001450'	254 00 0 00 001452'		 JRST PRSBLD		;NO - BUILD MESSAGE
  1331	001451'	263 17 0 00 000000 		RETBAD			;ERROR - RETURN
  1332	001452'	504 03 0 17 777776 	PRSBLD:	HRL T3,PRSLDV		;GET DEVICE IDENTIFIER
  1333	001453'	540 03 0 17 777775 		HRR T3,PRSCTL		;CONTROLLER NUMBER
  1334	001454'	504 04 0 17 777774 		HRL T4,PRSUNT		;UNIT NUMBER
  1335	001455'	540 04 0 17 777773 		HRR T4,PRSSTN		;STATION NUMBER
  1336	001456'	254 00 0 00 001377*		RETSKP
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 30
NCU	MAC	 6-Oct-81 12:41		NICE PROCESS -- Read Information -- Line Status

  1337
  1338					;CVTNUM - MAKE AN ASCII CHARACTER INTO A NUMBER
  1339
  1340					;ACCEPTS:	T1/POINTER TO THE STRING
  1341
  1342					;RETURNS:	+1,ERROR - NOT NUMERIC
  1343					;		+2,SUCCESS - T2/NUMBER
  1344
  1345	001457'	134 02 0 00 000001 	CVTNUM:	ILDB T2,T1		;GET THE CHARACTER
  1346	001460'	275 02 0 00 000060 		SUBI T2,60		;STRIP THE ASCII  BITS
  1347	001461'	307 02 0 00 000010 		CAIG T2,10		;CHECK RANGE
  1348	001462'	335 00 0 00 000002 		SKIPGE T2
  1349	001463'	263 17 0 00 000000 		RET			;NOT A LEGAL NUMBER
  1350	001464'	254 00 0 00 001456*		RETSKP			;A NUMBER
  1351
  1352					;PRSEND - LOAD BYTE AND CHECK FOR IT BEING ZERO
  1353
  1354					;ACCEPTS:	T1/BYTE POINTER
  1355
  1356					;RETURNS:	+1,BYTE WAS ZERO - T1/UPDATED
  1357					;		+2,BYTE NOT ZERO - T1/UPDATED
  1358
  1359	001465'	134 02 0 00 000001 	PRSEND:	ILDB T2,T1		;GET THE BYTE
  1360	001466'	336 00 0 00 000002 		SKIPN T2			;SKIP IF ZERO
  1361	001467'	263 17 0 00 000000 		RET			;ZERO
  1362	001470'	254 00 0 00 001464*		RETSKP			;NOT ZERO
  1363
  1364
  1365					; DISPATCH ON OPTION REQUESTED
  1366
  1367	001471'	260 17 0 00 004340'	REQSET:	CALL GETFCN		;GET NICE PROTOCOL FUNCTION CODE
  1368	001472'	254 00 0 00 013542'		 RETBAD (.NRIMF)	;FAILED, INVALID MESSAGE FORMAT
  1369	001473'	260 17 0 00 004344'		CALL GETOPT		;GET NICE PROTOCOL OPTION CODE
  1370	001474'	254 00 0 00 013542'		 RETBAD (.NRIMF)	;FAILED, INVALID MESSAGE FORMAT
  1371	001475'	301 04 0 00 000015 		CAIL T4,RSTLEN		;WITHIN RANGE ?
  1372	001476'	254 00 0 00 013540'		RETBAD (.NRFNC)		;NO, INVALID OPTION
  1373	001477'	254 00 1 04 001500'		CALLRET @RSTTAB(T4)	;DISPATCH BASED ON ITEM REQUESTED
  1374
  1375					; DISPATCH TABLE FOR SET PARAMETER FUNCTION
  1376
  1377	001500'	000000	013703'		RSTTAB:	[RETBAD (.NRFNC)]	;DEFAULT HOST
  1378	001501'	000000	013703'			[RETBAD (.NRFNC)]	;RECEIVE ACCESS PASSWORD
  1379	001502'	000000	013703'			[RETBAD (.NRFNC)]	;TRANSMIT ACCESS PASSWORD
  1380	001503'	000000	013703'			[RETBAD (.NRFNC)]	;LOCAL LOOPBACK
  1381	001504'	000000	013703'			[RETBAD (.NRFNC)]	;NODE STATE
  1382	001505'	000000	013703'			[RETBAD (.NRFNC)]	;NODE OPERATOR LOGGING STATE
  1383	001506'	000000	013703'			[RETBAD (.NRFNC)]	;NODE MAINTENANCE LOGGING STATE
  1384	001507'	000000	013703'			[RETBAD (.NRFNC)]	;ILLEGAL ????
  1385	001510'	000000	001515'			LINSTA			;LINE STATE
  1386	001511'	000000	013703'			[RETBAD (.NRFNC)]	;LINE OPERATOR LOGGING STATE
  1387	001512'	000000	013703'			[RETBAD (.NRFNC)]	;LINE MAINTENANCE LOGGING STATE
  1388	001513'	000000	013703'			[RETBAD (.NRFNC)]	;DEFAULT RECEIVE ACCESS PASSWORD
  1389	001514'	000000	013703'			[RETBAD (.NRFNC)]	;DEFAULT TRANSMIT ACCESS PASSWORD
  1390
  1391			000015		RSTLEN==.-RSTTAB
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 31
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Set Parameter -- Line State

  1392					SUBTTL	NICE Process -- Set Parameter -- Line State
  1393
  1394	001515'	265 16 0 00 001400*	LINSTA:	STKVAR <<LSTLIN,2>,LSTPRT>
  1395	001516'	000003	000003
  1396	001517'	260 17 0 00 004560'		CALL GETLIN		;GET LINE IDENTIFICATION
  1397	001520'	263 17 0 00 000000 		 RETBAD ()		;FAILED, INVALID LINE ID
  1398	001521'	124 03 0 17 777775 		DMOVEM T3,LSTLIN	;SAVE LINE ID
  1399	001522'	375 00 0 00 000002 		SOSGE T2		;STILL ONE MORE BYTE LEFT ?
  1400	001523'	254 00 0 00 013542'		RETBAD (.NRIMF)		;NO, FAIL
  1401	001524'	134 01 0 00 000001 		ILDB T1,T1		;GET ANOTHER BYTE
  1402	001525'	200 02 0 00 013704'		MOVX T2,LSTTAB		;GET ADDRESS OF DISPATCH TABLE
  1403	001526'	201 03 0 00 000005 		MOVX T3,LSTLEN		;GET LENGTH OF DISPATCH TABLE
  1404	001527'	260 17 0 00 000000*		CALL FNDDSP		;FIND ENTRY IN DISPATCH TABLE
  1405	001530'	254 00 0 00 013705'		 RETBAD (.NRILS)	;FAILED, INVALID LINE STATE
  1406	001531'	254 00 0 01 000000 		JRST (T1)		;DISPATCH TO PROCESSING ROUTINE
  1407
  1408
  1409	001532'	000000	001537'		LSTTAB:	.LSTON,,LSTON
  1410	001533'	000001	001560'			.LSTOF,,LSTOFF
  1411	001534'	000004	001577'			.LSTMN,,LSTMNT
  1412	001535'	000005	001600'			.LSTCN,,LSTCTL
  1413	001536'	000006	001606'			.LSTCB,,LSTCBL
  1414
  1415			000005		LSTLEN==.-LSTTAB
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 32
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Set Parameter -- Line State

  1416					; ROUTINES TO SET A LINE STATE
  1417
  1418	001537'	260 17 0 00 010452'	LSTON:	CALL CLRBOT		;CLEAR BOOT JSYS ARG BLOCK
  1419	001540'	120 01 0 17 777775 		DMOVE T1,LSTLIN		;GET LINE ID
  1420	001541'	260 17 0 00 001164*		CALL LIDPRT		;CONVERT LINE ID TO PORT NUMBER
  1421	001542'	263 17 0 00 000000 		 RETBAD ()		;FAILED
  1422	001543'	202 01 0 17 777774 		MOVEM T1,LSTPRT		;SAVE PORT NUMBER
  1423	001544'	476 00 0 00 000004 		SETOM T4		;SET FLAG NOTING VALID DEVICE NOT YET FOUND
  1424	001545'	554 01 0 17 777775 		HLRZ T1,LSTLIN		;GET DEVICE TYPE FOR THIS LINE
  1425	001546'	306 01 0 00 000024 		CAIN T1,.DTDTE		;IS IT A DTE20 ?
  1426	001547'	201 04 0 00 000001 		MOVX T4,.VNMCB		;YES, USE NSP
  1427	001550'	306 01 0 00 000034 		CAIN T1,.DTKDP		;IS IT A KMC/DUP ?
  1428	001551'	201 04 0 00 000002 		MOVX T4,.VNDDC		;YES, USE DDCMP
  1429	001552'	321 04 0 00 001272*		JUMPL T4,R		;FAIL IF NO VALID DEVICE TYPE FOUND
  1430	001553'	200 01 0 17 777774 		MOVE T1,LSTPRT		;GET PORT NUMBER
  1431	001554'	200 02 0 00 000004 		MOVE T2,T4		;GET PROTOCOL VERSION NUMBER
  1432	001555'	260 17 0 00 001614'		CALL SETLIN		;GO SET LINE STATE
  1433	001556'	263 17 0 00 000000 		 RETBAD ()		;FAILED
  1434	001557'	254 00 0 00 001470*		RETSKP			;DONE, RETURN SUCCESS
  1435
  1436	001560'	260 17 0 00 010452'	LSTOFF:	CALL CLRBOT		;CLEAR BOOT JSYS ARG BLOCK
  1437	001561'	120 01 0 17 777775 		DMOVE T1,LSTLIN		;GET LINE ID
  1438	001562'	260 17 0 00 001541*		CALL LIDPRT		;CONVERT LINE ID TO PORT NUMBER
  1439	001563'	263 17 0 00 000000 		 RETBAD ()		;FAILED
  1440	001564'	201 02 0 14 003234 		MOVEI T2,BTARG		;GET ADDRESS OF BOOT JSYS ARG BLOCK
  1441	001565'	202 01 0 02 000000 		MOVEM T1,.BTDTE(T2)	;SAVE PORT NUMBER
  1442	001566'	201 01 0 00 000005 		MOVX T1,.BTTPR		;GET "TERMINATE PROTOCOL" FUNCTION
  1443	001567'	104 00 0 00 000562 		BOOT			;TURN THE LINE OFF
  1444	001570'	320 16 0 00 013656'		 ERJMP [RETBAD (.NRNPE)] ;FAILED
  1445	001571'	200 01 0 14 000032 		MOVE T1,REQLNK		;GET LOGICAL LINK (JFN) TO REQUESTING TASK
  1446	001572'	200 02 0 00 013627'		MOVE T2,[POINT 8,[BYTE (8) .NRSUC]] ;GET POINTER TO SUCCESS CODE
  1447	001573'	211 03 0 00 000001 		MOVNI T3,1		;RETURN CODE IS A SINGLE BYTE
  1448	001574'	104 00 0 00 000532 		SOUTR			;SEND BACK THE RETURN CODE
  1449	001575'	320 16 0 00 001557*		 ERJMP RSKP		;IF FAILED, NOTHING ELSE TO DO
  1450	001576'	254 00 0 00 001575*		RETSKP			;DONE
  1451
  1452	001577'	254 00 0 00 013540'	LSTMNT:	RETBAD (.NRFNC)
  1453
  1454	001600'	260 17 0 00 010452'	LSTCTL:	CALL CLRBOT		;CLEAR BOOT JSYS ARG BLOCK
  1455	001601'	120 01 0 17 777775 		DMOVE T1,LSTLIN		;GET LINE ID
  1456	001602'	260 17 0 00 001562*		CALL LIDPRT		;CONVERT LINE ID TO PORT NUMBER
  1457	001603'	263 17 0 00 000000 		 RETBAD ()		;FAILED
  1458	001604'	201 02 0 00 000004 		MOVX T2,.VNCNL		;GET PROTOCOL VERSION FOR CONTROLLER LOOPBACK
  1459	001605'	254 00 0 00 001614'		CALLRET SETLIN		;GO SET LINE STATE
  1460
  1461	001606'	260 17 0 00 010452'	LSTCBL:	CALL CLRBOT		;CLEAR BOOT JSYS ARG BLOCK
  1462	001607'	120 01 0 17 777775 		DMOVE T1,LSTLIN		;GET LINE ID
  1463	001610'	260 17 0 00 001602*		CALL LIDPRT		;CONVERT LINE ID TO PORT NUMBER
  1464	001611'	263 17 0 00 000000 		 RETBAD ()		;FAILED
  1465	001612'	201 02 0 00 000005 		MOVX T2,.VNCBL		;GET PROTOCOL VERSION FOR CABLE LOOPBACK
  1466	001613'	254 00 0 00 001614'		CALLRET SETLIN		;GO SET LINE STATE
  1467
  1468
  1469					; SETLIN - ROUTINE TO SET A LINE ON OR IN LOOPBACK
  1470					;
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 32-1
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Set Parameter -- Line State

  1471					;ACCEPTS IN T1/	PORT NUMBER
  1472					;	    T2/	PROTOCOL VERSION NUMBER
  1473					;		CALL SETLIN
  1474					;RETURNS: +1	 FAILED
  1475					;	  +2	SUCCESS, LINE STATE SET
  1476
  1477	001614'	201 04 0 14 003234 	SETLIN:	MOVEI T4,BTARG		;GET ADDRESS OF BOOT JSYS ARG BLOCK
  1478	001615'	202 01 0 04 000000 		MOVEM T1,.BTDTE(T4)	;SAVE PORT NUMBER
  1479	001616'	202 02 0 04 000001 		MOVEM T2,.BTPRV(T4)	;SAVE PROTOCOL VERSION NUMBER
  1480	001617'	201 02 0 14 003234 		MOVEI T2,BTARG		;GET ADDRESS OF BOOT JSYS ARG BLOCK AGAIN
  1481	001620'	201 01 0 00 000004 		MOVX T1,.BTIPR		;GET "INITIATE PROTOCOL" FUNCTION
  1482	001621'	104 00 0 00 000562 		BOOT			;TURN THE LINE ON
  1483	001622'	320 16 0 00 013656'		 ERJMP [RETBAD (.NRNPE)] ;FAILED
  1484	001623'	200 01 0 14 000032 		MOVE T1,REQLNK		;GET LOGICAL LINK (JFN) TO REQUESTING TASK
  1485	001624'	200 02 0 00 013627'		MOVE T2,[POINT 8,[BYTE (8) .NRSUC]] ;GET POINTER TO SUCCESS CODE
  1486	001625'	211 03 0 00 000001 		MOVNI T3,1		;RETURN CODE IS A SINGLE BYTE
  1487	001626'	104 00 0 00 000532 		SOUTR			;SEND BACK THE RETURN CODE
  1488	001627'	320 16 0 00 001576*		 ERJMP RSKP		;IF FAILED, NOTHING ELSE TO DO
  1489	001630'	254 00 0 00 001627*		RETSKP			;DONE
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 33
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Zero Line Counters

  1490					SUBTTL	NICE Process -- Zero Line Counters
  1491
  1492	001631'	260 17 0 00 004340'	REQZRO:	CALL GETFCN		;GET FUNCTION CODE
  1493	001632'	254 00 0 00 013542'		 RETBAD (.NRIMF)	;"INVALID MESSAGE FORMAT"
  1494	001633'	260 17 0 00 005167'		CALL GETEXB		;GET OPTION FIELD
  1495	001634'	263 17 0 00 000000 		 RETBAD ()		;FAILED
  1496	001635'	302 04 0 00 000002 		CAIE T4,.NCZLN		;ASKING FOR LINE COUNTS
  1497	001636'	254 00 0 00 013540'		 RETBAD (.NRFNC)	;"INVALID FUNCTION"
  1498	001637'	260 17 0 00 004560'		CALL GETLIN		;GET LINE-ID FROM MESSAGE
  1499	001640'	263 17 0 00 000000 		 RETBAD ()		;FAILED
  1500	001641'	321 03 0 00 001037'		JUMPL T3,NRILN		;IN CASE WANTS ALL
  1501	001642'	265 16 0 00 001515*		STKVAR <<ZROLID,2>,<ZROBLK,40>>
  1502	001643'	000042	000042
  1503	001644'	124 03 0 17 777775 		DMOVEM T3,ZROLID	;SAVE LINE ID
  1504	001645'	120 01 0 00 000003 		DMOVE T1,T3		;COPY LINE-ID TO RIGHT REGISTER
  1505	001646'	260 17 0 00 001610*		CALL LIDPRT		;CONVERT LINE-ID TO PORT
  1506	001647'	254 00 0 00 001037'		JRST NRILN		;LOSE
  1507	001650'	505 01 0 00 400000 		HRLI T1,(BT%ZRO)	;FLAG TO ZERO COUNTERS
  1508	001651'	202 01 0 17 777735 		MOVEM T1,.BTPRT+ZROBLK	;PUT PORT IN ARGUMENT BLOCK
  1509	001652'	201 01 0 00 000020 		MOVEI T1,20		;MAXIMUM NUMBER OF COUNTERS
  1510	001653'	201 02 0 17 777755 		MOVEI T2,20+ZROBLK	;WHERE TO PUT FIRST COUNTERS
  1511	001654'	505 02 0 00 444400 		HRLI T2,444400		;MAKE INTO POINTER
  1512	001655'	124 01 0 17 777737 		DMOVEM T1,.BTSCC+ZROBLK	;STATUS COUNTERS
  1513	001656'	124 01 0 17 777741 		DMOVEM T1,.BTRCC+ZROBLK	;RECEIVE COUNTERS
  1514	001657'	124 01 0 17 777743 		DMOVEM T1,.BTTCC+ZROBLK	;TRANSMIT COUNTERS
  1515	001660'	201 01 0 00 000013 		MOVEI T1,.BTRLC		;WANT LINE COUNTERS
  1516	001661'	201 02 0 17 777735 		MOVEI T2,ZROBLK		;ADDRESS OF ARGUMENT BLOCK
  1517	001662'	104 00 0 00 000562 		BOOT
  1518	001663'	320 16 0 00 001037'		ERJMP NRILN		;WHY ?
  1519	001664'	200 01 0 14 000032 		MOVE T1,REQLNK		;GET LOGICAL LINK (JFN) TO REQUESTING TASK
  1520	001665'	200 02 0 00 013627'		MOVE T2,[POINT 8,[BYTE(8).NRSUC]]
  1521	001666'	211 03 0 00 000001 		MOVNI T3,1		;NUMBER OF BYTES IN MESSAGE
  1522	001667'	104 00 0 00 000532 		SOUTR			;SEND RESPONSE
  1523	001670'	320 16 0 00 001630*		 ERJMP RSKP		;IF FAILED NOTHING ELSE TO DO
  1524	001671'	254 00 0 00 001670*		RETSKP			;WON
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 34
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Line Service Handler

  1525					SUBTTL	NICE Process -- Line Service Handler
  1526
  1527					;LINSRV - ROUTINE TO PROCESS REQUESTS FOR LINE SERVICE
  1528					;
  1529					;ACCEPTS IN T1/	POINTER TO NICE LINE SERVICE REQUEST MESSAGE
  1530					;	    T2/	NUMBER OF BYTES IN THE NICE MESSAGE
  1531					;		CALL LINSRV
  1532					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  1533					;	  +2	SUCCESS, FUNCTION PERFORMED
  1534
  1535	001672'	265 16 0 00 000713*	REQLSV:	ASUBR <LSVPTR,LSVCNT>
  1536	001673'	265 16 0 00 001642*		STKVAR <LSVOPT,LSVDTE,LSVLTB,LSVCOD>
  1537	001674'	000004	000004
  1538	001675'	275 02 0 00 000002 		SUBI T2,2		;ACCOUNT FOR FUNCTION AND OPTION BITS
  1539	001676'	321 02 0 00 013707'		JUMPL T2,[RETBAD (.NRIMF)] ;MAKE SURE ENOUGH BYTES LEFT IN MESSAGE
  1540	001677'	133 00 0 00 000001 		IBP T1			;SKIP OVER THE NICE FUNCTION CODE
  1541	001700'	134 04 0 00 000001 		ILDB T4,T1		;GET OPTION BYTE FROM THE MESSAGE
  1542	001701'	202 04 0 17 777776 		MOVEM T4,LSVOPT		;SAVE OPTION BYTE
  1543
  1544					; GET THE LINE ID FROM THE MESSAGE AND SET UP LINE TABLE
  1545
  1546	001702'	260 17 0 00 004560'		CALL GETLIN		;GO GET THE LINE ID
  1547	001703'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR CODE TO CALLER
  1548	001704'	202 01 0 15 000001 		MOVEM T1,LSVPTR		;SAVE POINTER TO NEXT FIELD IN MESSAGE
  1549	001705'	202 02 0 15 000002 		MOVEM T2,LSVCNT		;SAVE # OF BYTES REMAINING IN THE MESSAGE
  1550	001706'	260 17 0 00 010464'		CALL CHKLIN		;GO CHECK LINE ID AND GET DTE20 NUMBER
  1551	001707'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR TO CALLER
  1552	001710'	202 01 0 17 777775 		MOVEM T1,LSVDTE		;SAVE DTE20 NUMBER
  1553	001711'	221 01 0 00 000010 		IMULI T1,LTBSIZ		;COMPUTE STARTING ADDRESS OF LINE
  1554	001712'	201 01 0 01 011046'		MOVEI T1,LINTAB(T1)	; TABLE FOR THIS LINE
  1555	001713'	202 01 0 17 777774 		MOVEM T1,LSVLTB		;SAVE LINE TABLE ADDRESS
  1556	001714'	200 02 0 17 777775 		MOVE T2,LSVDTE		;GET DTE20 NUMBER
  1557	001715'	506 02 0 01 000004 		STOR T2,LNDTE,(T1)	;STORE DTE20 IN LINE TABLE
  1558	001716'	260 17 0 00 001146*		CALL ASGPAG		;GET A PAGE TO USE FOR DATA
  1559	001717'	254 00 0 00 013675'		 RETBAD (.NRRES)	;RETURN "RESOURCE ERROR" RETURN CODE
  1560	001720'	200 04 0 17 777774 		MOVE T4,LSVLTB		;GET LINE TABLE ADDRESS
  1561	001721'	505 02 0 00 441000 		HRLI T2,(POINT 8,)	;FORM POINTER TO MESSAGE AREA
  1562	001722'	202 02 0 04 000006 		STOR T2,LNMSG,(T4)	;SAVE POINTER TO MESSAGE AREA IN LINE TABLE
  1563	001723'	201 16 0 04 000000 		ACLOCK (T4)		;LOCK THIS LINE TABLE (ADDRESS IN T4)
  1564	001724'	260 17 0 00 000000*
  1565						; ..
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 35
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Line Service Handler

  1566						; ..
  1567
  1568					; LOOP OVER LINE SERVICE TABLE LOOKING FOR THE REQUESTED OPTION
  1569
  1570	001725'	200 03 0 00 013710'		MOVE T3,[-LSVSIZ,,LSVTAB] ;SET UP TOO LOOP THROUGH LINE SERVICE TABLE
  1571	001726'	200 04 0 17 777776 		MOVE T4,LSVOPT		;RESTORE OPTION REQUESTED
  1572	001727'	554 01 0 03 000000 	LSV010:	HLRZ T1,(T3)		;GET OPTION FROM TABLE
  1573	001730'	316 01 0 00 000004 		CAMN T1,T4		;FOUND DESIRED OPTION ?
  1574	001731'	254 00 0 00 001735'		JRST LSV020		;YES, GO DISPATCH TO SERVICE ROUTINE
  1575	001732'	253 03 0 00 001727'		AOBJN T3,LSV010		;LOOP OVER LINE SERVICE TABLE
  1576	001733'	561 01 0 00 777777 		MOVX T1,.NRFNC		;FAILED, GET "INVALID OPTION" NICE RETURN CODE
  1577	001734'	254 00 0 00 001746'		JRST LSVERR		;GO RELEASE FREE SPACE AND RETURN
  1578
  1579					; HERE TO DISPATCH TO SERVICE ROUTINE
  1580
  1581	001735'	201 01 0 00 400000 	LSV020:	MOVEI T1,.FHSLF		; Before dispatch point to this process
  1582	001736'	201 02 0 00 000102 		MOVEI T2,0102		;  and put it into scheduler Q1
  1583	001737'	104 00 0 00 000243 		SPRIW
  1584
  1585	001740'	402 00 0 17 777773 		SETZM LSVCOD		;INITIALIZE ERROR FLAG
  1586	001741'	550 04 0 03 000000 		HRRZ T4,(T3)		;GET SERVICE ROUTINE ADDRESS
  1587	001742'	200 03 0 17 777774 		MOVE T3,LSVLTB		;GET ADDRESS OF LINE TABLE
  1588	001743'	200 02 0 15 000002 		MOVE T2,LSVCNT		;GET NUMBER OF BYTES LEFT IN MESSAGE
  1589	001744'	200 01 0 15 000001 		MOVE T1,LSVPTR		;GET POINTER TO NEXT FIELD IN MESSAGE
  1590	001745'	260 17 0 04 000000 		CALL (T4)		;GO HANDLE REQUESTED FUNCTION
  1591	001746'	202 01 0 17 777773 	LSVERR:	 MOVEM T1,LSVCOD	;SAVE ERROR CODE
  1592	001747'	200 04 0 17 777774 		MOVE T4,LSVLTB		;GET LINE TABLE ADDRESS
  1593	001750'	201 16 0 04 000000 		ACUNLOCK (T4)		;UNLOCK THE LINE TABLE
  1594	001751'	260 17 0 00 000427*
  1595	001752'	200 01 0 04 000006 		LOAD T1,LNMSG,(T4)	;GET ADDRESS OF MESSAGE AREA
  1596	001753'	550 01 0 00 000001 		HRRZ T1,T1		;KEEP JUST THE ADDRESS
  1597	001754'	260 17 0 00 001262*		CALL RELPGA		;RELEASE FREE PAGE
  1598	001755'	254 00 0 00 013675'		 RETBAD (.NRRES)	;RETURN "RESOURCE ERROR" RETURN CODE
  1599	001756'	336 01 0 17 777773 		SKIPN T1,LSVCOD		;ANY ERROR ?
  1600	001757'	254 00 0 00 001671*		RETSKP			;NO, SUCCESS, DONE.
  1601	001760'	263 17 0 00 000000 		RETBAD ()		;YES, RETURN ERROR CODE
  1602
  1603
  1604
  1605	001761'	000000	001765'		LSVTAB:	.LSLOD,,LSLOD		;INITIATE A LOAD DIALOG
  1606	001762'	000002	002551'			.LSDMP,,LSDMP		;INITIATE A DUMP DIALOG
  1607	001763'	000004	002360'			.LSTBT,,LSTBT		;TRIGGER BOOTSTRAP, NO PROGRAM DATA
  1608	001764'	000003	002361'			.LSTBP,,LSTBP		;TRIGGER BOOTSTRAP, RETURN PROGRAM DATA
  1609
  1610			000004			LSVSIZ==.-LSVTAB	;SIZE OF LINE SERVICE DISPATCH TABLE
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 36
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Line Service Handler

  1611					;LSLOD - LINE SERVICE ROUTINE TO INITIATE A DOWN-LINE LOAD DIALOG
  1612					;
  1613					;ACCEPTS IN T1/	POINTER TO PARAMETERS IN NICE LINE SERVICE MESSAGE
  1614					;	    T2/	NUMBER OF BYTES LEFT IN MESSAGE
  1615					;	    T3/	ADDRESS OF LINE TABLE FOR THIS OPERATION
  1616					;		CALL LSLOD
  1617					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  1618					;	  +2	SUCCESS, DIALOG INITIATED
  1619
  1620	001765'	265 16 0 00 001672*	LSLOD:	ASUBR <LSLPTR,LSLCNT,LSLLIN,LSLPGM>
  1621
  1622					; GET AND CHECK THE PROGRAM TYPE BEING LOADED
  1623
  1624	001766'	366 02 0 00 013707'		SOJN T2,[RETBAD (.NRIMF)] ;FAIL IF NOT EXACTLY ONE BYTE LEFT IN MESSAGE
  1625	001767'	134 03 0 00 000001 		ILDB T3,T1		;GET THE PROGRAM TYPE FROM THE MESSAGE
  1626	001770'	202 03 0 15 000004 		MOVEM T3,LSLPGM		;SAVE PROGRAM TYPE
  1627	001771'	301 03 0 00 000000 		CAIL T3,.PTSLD		;A VALID PROGRAM TYPE
  1628	001772'	303 03 0 00 000002 		CAILE T3,.PTOPS		; BEING LOADED ?
  1629	001773'	254 00 0 00 013711'		RETBAD (.NRIPV)		;NO, RETURN "INVALID PARAMETER VALUE"
  1630	001774'	200 04 0 15 000003 		MOVE T4,LSLLIN		;GET ADDRESS OF LINE TABLE
  1631	001775'	506 03 0 04 000002 		STOR T3,LNPGM,(T4)	;SAVE TYPE OF PROGRAM BEING LOADED
  1632	001776'	205 16 0 00 000377 		SETZRO LNLDN,(T4)	;INITIALIZE FIRST LOAD NUMBER TO USE
  1633	001777'	412 16 0 04 000001 
  1634	002000'	200 01 0 14 000032 		MOVE T1,REQLNK		;YES, GET LOGICAL LINK TO REQUESTOR
  1635	002001'	200 02 0 00 013627'		MOVE T2,[POINT 8,[BYTE (8) .NRSUC]] ;GET POINTER TO SUCCESS RETURN CODE
  1636	002002'	211 03 0 00 000001 		MOVNI T3,1		;RESPONSE MESSAGE IS ONE BYTE RETURN CODE
  1637	002003'	104 00 0 00 000532 		SOUTR			;OUTPUT THE RETURN CODE
  1638	002004'	320 16 0 00 013647'		 ERJMP [RETBAD (.NRCME)] ;FAILED, RETURN "COMMUNICATIONS ERROR"
  1639						; ..
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 37
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Line Service Handler

  1640						; ..
  1641
  1642					; DIALOG MESSAGE LOOP.  THE BASIC SEQUENCE OF OPERATIONS IS TO RECEIVE
  1643					; A NICE LINE SERVICE DIALOG MESSAGE FROM THE REQUESTING TASK, AND THEN
  1644					; TO PERFORM THE SPECIFIED OPERATION.  THIS IS REPEATED UNTIL THE DIALOG
  1645					; MESSAGE RECEIVED IS "END-OF-DIALOG", AT WHICH TIME THE LINE SERVICE
  1646					; OPERATION IS COMPLETE AND CONTROL RETURNS TO THE NICE DISPATCHER.
  1647
  1648
  1649					; WAIT FOR A DIALOG MESSAGE FROM THE REQUESTOR
  1650
  1651	002005'	260 17 0 00 010457'	LSLOD1:	CALL CLRMSG		;GO CLEAR THE MESSAGE AREA
  1652	002006'	200 01 0 14 000032 		MOVE T1,REQLNK		;GET LOGICAL LINK (JFN)
  1653	002007'	201 02 0 14 000033 		MOVEI T2,MSGBLK		;GET ADDRESS OF MESSAGE BLOCK
  1654	002010'	505 02 0 00 441000 		HRLI T2,(POINT 8,)	;FORM POINTER TO WHERE MESSAGE IS TO GO
  1655	002011'	211 03 0 00 014000 		MOVNI T3,MSGSIZ*BPWRD	;GET MAX NUMBER OF BYTES
  1656	002012'	104 00 0 00 000531 		SINR			;WAIT FOR A DIALOG MESSAGE FROM REQUESTOR
  1657	002013'	320 16 0 00 013647'		 ERJMP [RETBAD (.NRCME)] ;RETURN "COMMUNICATIONS ERROR" ON FAILURE
  1658
  1659					; DISPATCH BASED ON TYPE OF DIALOG MESSAGE RECEIVED
  1660
  1661	002014'	201 02 0 03 014000 		MOVEI T2,MSGSIZ*BPWRD(T3) ;GET NUMBER OF BYTES IN THE MESSAGE
  1662	002015'	200 01 0 00 013534'		MOVE T1,[POINT 8,MSGBLK] ;GET POINTER TO START OF MESSAGE
  1663	002016'	375 00 0 00 000002 		SOSGE T2		;AT LEAST ONE BYTE IN THE DIALOG MESSAGE ?
  1664	002017'	254 00 0 00 013542'		RETBAD (.NRIMF)		;NO, RETURN "INVALID MESSAGE FORMAT" ERROR
  1665	002020'	134 04 0 00 000001 		ILDB T4,T1		;GET TYPE CODE FROM MESSAGE
  1666	002021'	301 04 0 00 000000 		CAIL T4,.LMEND		;IS THIS A VALID DIALOG
  1667	002022'	303 04 0 00 000003 		CAILE T4,.LMXFR		; MESSAGE TYPE CODE ?
  1668	002023'	254 00 0 00 013540'		RETBAD (.NRFNC)		;NO, RETURN "INVALID FUNCTION" ERROR
  1669	002024'	200 03 0 15 000003 		MOVE T3,LSLLIN		;GET ADDRESS OF LINE TABLE
  1670	002025'	260 17 1 04 002032'		CALL @DLGTAB(T4)	;YES, DISPATCH TO PROCESSING ROUTINE
  1671						 JRST [	CALL SNDEND	;FAILED, GO SEND END-OF-DIALOG MESSAGE
  1672	002026'	254 00 0 00 013713'			RETSKP ]	;DONE, RETURN
  1673	002027'	332 00 0 00 000001 		SKIPE T1		;ARE WE STILL IN THE LOAD DIALOG ?
  1674	002030'	254 00 0 00 001757*		RETSKP			;NO, LOAD COMPLETE, RETURN SUCCESS
  1675	002031'	254 00 0 00 002005'		JRST LSLOD1		;SUCCESS, WAIT FOR NEXT DIALOG MESSAGE
  1676
  1677					; TABLE OF DIALOG MESSAGE SERVICE ROUTINES
  1678
  1679	002032'	000000000000#		DLGTAB:	RSKP			; 0 END OF DIALOG
  1680	002033'	000000	002036'			DIABAS			; 1 SET BASE ADDRESS
  1681	002034'	000000	002047'			DIAMEM			; 2 MEMORY IMAGE DATA
  1682	002035'	000000	002110'			DIAXFR			; 3 PARAMETERS AND TRANSFER ADDRESS
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 38
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Line Service Handler

  1683					;DIABAS - SET BASE ADDRESS DIALOG MESSAGE RECEIVED
  1684					;
  1685					;ACCEPTS IN T1/	POINTER TO DIALOG DATA (BASE ADDRESS)
  1686					;	    T2/	NUMBER OF BYTES REMAINING IN MESSAGE
  1687					;	    T3/	ADDRESS OF LINE TABLE
  1688					;		CALL DIABAS
  1689					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  1690					;	  +2	SUCCESS, BASE ADDRESS FOR NEXT LOAD IMAGE SET
  1691
  1692	002036'	265 16 0 00 001673*	DIABAS:	STKVAR <BASLIN>
  1693	002037'	000001	000001
  1694	002040'	202 03 0 17 777776 		MOVEM T3,BASLIN		;SAVE LINE TABLE ADDRESS
  1695	002041'	260 17 0 00 004613'		CALL GETMEM		;GO EXTRACT LOAD ADDRESS FROM MESSAGE
  1696	002042'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR CODE TO CALLER
  1697	002043'	200 04 0 17 777776 		MOVE T4,BASLIN		;GET ADDRESS OF LINE TABLE
  1698	002044'	202 03 0 04 000005 		STOR T3,LNADR,(T4)	;STORE BASE ADDRESS IN LINE TABLE
  1699	002045'	402 00 0 00 000001 		SETZM T1		;NOTE THAT WE ARE STILL IN LOAD DIALOG
  1700	002046'	254 00 0 00 002030*		RETSKP			;DONE, RETURN SUCCESS
  1701
  1702
  1703					;DIAMEM - ROUTINE TO PROCESS A MEMORY IMAGE DIALOG MESSAGE
  1704					;
  1705					;ACCEPTS IN T1/	POINTER TO DIALOG DATA IN LINE SERVICE MESSAGE
  1706					;	    T2/	NUMBER OF BYTES LEFT IN MESSAGE
  1707					;	    T3/	ADDRESS OF LINE TABLE
  1708					;		CALL DIAMEM
  1709					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  1710					;	  +2	SUCCESS, DATA LOADED OR ADDED TO LOAD IMAGE
  1711
  1712	002047'	265 16 0 00 001765*	DIAMEM:	ASUBR <MEMPTR,MEMCNT,MEMLIN>
  1713
  1714	002050'	375 00 0 15 000002 		SOSGE MEMCNT		;AT LEAST ONE BYTE IN THE MESSAGE ?
  1715	002051'	254 00 0 00 013542'		RETBAD (.NRIMF)		;NO, RETURN "INVALID MESSAGE FORMAT"
  1716	002052'	134 04 0 15 000001 		ILDB T4,MEMPTR		;YES, GET CPU TYPE CODE (.CPXXX)
  1717	002053'	302 04 0 00 000001 		CAIE T4,.CP11		;PDP-11 ?
  1718	002054'	254 00 0 00 013711'		RETBAD (.NRIPV)		;NO, RETURN "INVALID PARAMETER VALUE" ERROR
  1719
  1720					; DETERMINE IF A SECONDARY LOADER IS BEING LOADED - IF SO, ADD THE MEMORY
  1721					; DATA TO THE CORE IMAGE BEING BUILT IN MEMORY. ELSE, SEND THE MEMORY IMAGE
  1722					; ACROSS THE DTE-20 TO THE LOADER IN THE TARGET NODE.
  1723
  1724	002055'	200 04 0 15 000003 		MOVE T4,MEMLIN		;GET ADDRESS OF LINE TABLE
  1725	002056'	554 01 0 04 000002 		LOAD T1,LNPGM,(T4)	;GET PROGRAM TYPE BEING LOADED (.PTXXX)
  1726	002057'	302 01 0 00 000000 		CAIE T1,.PTSLD		;SECONDARY LOADER ?
  1727	002060'	254 00 0 00 002070'		JRST MEM010		;NO, GO SEND DATA ACROSS DTE20 TO TARGET NODE
  1728	002061'	200 01 0 15 000001 		MOVE T1,MEMPTR		;YES, GET POINTER TO MEMORY IMAGE DATA
  1729	002062'	200 02 0 15 000002 		MOVE T2,MEMCNT		;GET NUMBER OF BYTES OF DATA
  1730	002063'	200 03 0 15 000003 		MOVE T3,MEMLIN		;GET ADDRESS OF LINE TABLE
  1731	002064'	260 17 0 00 002414'		CALL MOPLDR		;GO ADD DATA TO IMAGE BEING BUILT
  1732	002065'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR TO CALLER
  1733	002066'	402 00 0 00 000001 		SETZM T1		;NOTE THAT WE ARE STILL IN LOAD DIALOG
  1734	002067'	254 00 0 00 002046*		RETSKP			;DONE, MEMORY IMAGE DATA HANDLED
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 39
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Line Service Handler

  1735					; HERE TO SEND LOAD IMAGE DATA ACROSS THE DTE20 AND RECEIVE THE REPLY
  1736					; FIRST, BUILD THE MOP "LOAD IMAGE" MESSAGE
  1737
  1738	002070'	200 01 0 15 000001 	MEM010:	MOVE T1,MEMPTR		;GET POINTER TO MEMORY IMAGE DATA IN NICE MSG
  1739	002071'	200 02 0 15 000002 		MOVE T2,MEMCNT		;GET NUMBER OF MEMORY IMAGE DATA BYTES
  1740	002072'	200 03 0 15 000003 		MOVE T3,MEMLIN		;GET ADDRESS OF LINE TABLE
  1741	002073'	260 17 0 00 005321'		CALL MAKMPL		;GO ASSEMBLE A MOP "LOAD-WITHOUT-TRANSFER" MSG
  1742	002074'	254 00 0 00 013650'		 RETBAD (.NRNPE)	;FAILED, NICE PROCESS PROGRAM ERROR
  1743
  1744					; SEND THE MOP MESSAGE ACROSS THE DTE20 AND RECEIVE THE REPLY MOP MESSAGE
  1745
  1746	002075'	200 01 0 15 000003 		MOVE T1,MEMLIN		;GET ADDRESS OF LINE TABLE
  1747	002076'	260 17 0 00 006374'		CALL DTESND		;GO SEND THE DATA ACROSS THE DTE20
  1748	002077'	254 00 0 00 013645'		 RETBAD (.NRCME)	;FAILED, RETURN "COMMUNICATIONS ERROR"
  1749	002100'	200 01 0 15 000003 		MOVE T1,MEMLIN		;GET ADDRESS OF LINE TABLE
  1750	002101'	260 17 0 00 006455'		CALL DTERCV		;RECEIVE THE REPLY MOP MESSAGE FROM THE LOADER
  1751	002102'	254 00 0 00 013645'		 RETBAD (.NRCME)	;FAILED, RETURN "COMMUNICATIONS ERROR"
  1752
  1753					; CHECK THE MOP MESSAGE RECEIVED. SHOULD BE "REQUEST NEXT LOAD"
  1754
  1755	002103'	200 03 0 15 000003 		MOVE T3,MEMLIN		;GET ADDRESS OF LINE TABLE
  1756	002104'	260 17 0 00 002460'		CALL CHKMOP		;GO CHECK MOP MESSAGE AND UPDATE LOAD NUMBER
  1757	002105'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR TO CALLER
  1758	002106'	402 00 0 00 000001 		SETZM T1		;NOTE THAT WE ARE STILL IN LOAD DIALOG
  1759	002107'	254 00 0 00 002067*		RETSKP			;DONE, RETURN SUCCESS.
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 40
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Line Service Handler

  1760					;DIAXFR - ROUTINE TO PROCESS A "TRANSFER" DIALOG MESSAGE
  1761					;
  1762					;ACCEPTS IN T1/	POINTER TO DIALOG DATA (PARAMETERS AND TRANSFER ADDRESS)
  1763					;	    T2/	NUMBER OF BYTES LEFT IN DIALOG MESSAGE
  1764					;	    T3/	ADDRESS OF LINE TABLE
  1765					;		CALL DIAXFR
  1766					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  1767					;	  +2	SUCCESS, PROGRAM IN TARGET NODE STARTED AND PARAMETERS SENT
  1768
  1769	002110'	265 16 0 00 002047*	DIAXFR:	ASUBR <XFRPTR,XFRCNT,XFRLIN,XFRADR>
  1770
  1771					; EXTRACT THE SYSTEM PARAMETERS AND TRANSFER ADDRESS FROM THE MESSAGE
  1772
  1773	002111'	260 17 0 00 004422'		CALL GETPAR		;GET PARAMETERS FROM THE MESSAGE
  1774	002112'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR TO CALLER
  1775	002113'	260 17 0 00 004613'		CALL GETMEM		;GO GET THE TRANSFER ADDRESS FROM THE MESSAGE
  1776	002114'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR TO CALLER
  1777	002115'	202 03 0 15 000004 		MOVEM T3,XFRADR		;SAVE TRANSFER ADDRESS
  1778
  1779					; IF LOADING A SECONDARY LOADER, SEND THE LOADER ACROSS THE DTE20
  1780
  1781	002116'	200 04 0 15 000003 		MOVE T4,XFRLIN		;GET ADDRESS OF LINE TABLE
  1782	002117'	554 01 0 04 000002 		LOAD T1,LNPGM,(T4)	;GET PROGRAM TYPE BEING LOADED (.PTXXX)
  1783	002120'	302 01 0 00 000000 		CAIE T1,.PTSLD		;LOADING A SECONDARY LOADER ?
  1784	002121'	254 00 0 00 002134'		JRST XFR010		;NO, GO SEND A MOP "TRANSFER" MESSAGE
  1785
  1786					; LOAD THE SECONDARY BOOTSTRAP AND WAIT FOR A PROGRAM REQUEST
  1787
  1788	002122'	200 01 0 15 000003 		MOVE T1,XFRLIN		;GET ADDRESS OF LINE TABLE
  1789	002123'	260 17 0 00 006360'		CALL DTESLD		;GO LOAD THE SECONDARY BOOTSTRAP
  1790	002124'	254 00 0 00 013645'		 RETBAD (.NRCME)	;RETURN "COMMUNICATIONS ERROR" ON FAILURE
  1791	002125'	200 01 0 15 000003 		MOVE T1,XFRLIN		;GET ADDRESS OF LINE TABLE
  1792	002126'	260 17 0 00 006455'		CALL DTERCV		;GO RECEIVE A MOP MESSAGE FROM THE TARGET NODE
  1793	002127'	254 00 0 00 013645'		 RETBAD (.NRCME)	;RETURN "COMMUNICATIONS ERROR" ON FAILURE
  1794
  1795					; CHECK MOP MESSAGE AND RETURN PROGRAM REQUEST TO THE TASK THAT INITIATED
  1796					; THE LOAD DIALOG.
  1797
  1798	002130'	200 03 0 15 000003 		MOVE T3,XFRLIN		;GET ADDRESS OF LINE TABLE
  1799	002131'	260 17 0 00 005675'		CALL MAKEND		;GO CHECK MOP MESSAGE AND ASSEMBLE AN
  1800									; END-OF-DIALOG NICE LINE SERVICE MESSAGE
  1801	002132'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR TO CALLER
  1802	002133'	254 00 0 00 002172'		JRST XFR030		;SEND THE "END-OF-DIALOG" AND WAIT FOR ESPONSE
  1803						;...
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 41
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Line Service Handler

  1804						;...
  1805
  1806					; HERE TO ASSEMBLE AND SEND A MOP "PARAMETERS AND TRANSFER" MESSAGE
  1807
  1808	002134'	200 01 0 15 000003 	XFR010:	MOVE T1,XFRLIN		;GET ADDRESS OF LINE TABLE
  1809	002135'	200 02 0 15 000004 		MOVE T2,XFRADR		;GET TRANSFER ADDRESS
  1810	002136'	260 17 0 00 005364'		CALL MAKMLP		;GO MAKE A MOP LOAD-PARAMETERS AND TRANSFER MSG
  1811	002137'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR TO CALLER
  1812	002140'	200 04 0 15 000003 		MOVE T4,XFRLIN		;GET ADDRESS OF LINE TABLE
  1813	002141'	202 01 0 04 000006 		STOR T1,LNMSG,(T4)	;STORE POINTER TO MOP MESSAGE
  1814	002142'	542 02 0 04 000002 		STOR T2,LNCNT,(T4)	;STORE SIZE OF MOP MESSAGE
  1815	002143'	200 01 0 15 000003 		MOVE T1,XFRLIN		;GET ADDRESS OF LINE TABLE
  1816	002144'	260 17 0 00 006374'		CALL DTESND		;GO SEND THE MESSAGE ACROSS THE DTE20
  1817	002145'	254 00 0 00 013645'		 RETBAD (.NRCME)	;FAILED, RETURN "COMMUNICATIONS ERROR"
  1818
  1819					; RECEIVE THE REPLY MESSAGE FROM THE LOADER IN THE TARGET NODE
  1820
  1821	002146'	200 01 0 15 000003 		MOVE T1,XFRLIN		;GET ADDRESS OF LINE TABLE
  1822	002147'	260 17 0 00 006455'		CALL DTERCV		;GO RECEIVE A MOP MESSAGE FROM THE TARGET NODE
  1823	002150'	254 00 0 00 013645'		 RETBAD (.NRCME)	;RETURN "COMMUNICATIONS ERROR" ON FAILURE
  1824
  1825					; VERIFY THE RESPONSE FROM THE TARGET NODE
  1826
  1827	002151'	200 03 0 15 000003 		MOVE T3,XFRLIN		;GET ADDRESS OF LINE TABLE
  1828	002152'	554 04 0 03 000002 		LOAD T4,LNPGM,(T3)	;GET TYPE OF PROGRAM BEING LOADED
  1829	002153'	302 04 0 00 000002 		CAIE T4,.PTOPS		;LOADING AN OPERATING SYSTEM ?
  1830						JRST [	CALL MOPVER	;NO, GO CHECK THAT REPLY IS A PROGRAM REQ MSG
  1831							 RETBAD ()	;FAILED, RETURN ERROR TO CALLER
  1832	002154'	254 00 0 00 013715'			JRST XFR030 ]	;GO SEND END-OF-DIALOG MESSAGE TO REQUESTOR
  1833
  1834					; HERE IF LOADING AN OPERATING SYSTEM - CHECK FINAL MOP LOAD REQUEST MESSAGE
  1835
  1836	002155'	260 17 0 00 002460'		CALL CHKMOP		;GO CHECK THE MOP "REQUEST LOAD" MESSAGE
  1837	002156'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR TO CALLER
  1838	002157'	200 01 0 15 000003 		MOVE T1,XFRLIN		;GET ADDRESS OF LINE TABLE
  1839	002160'	260 17 0 00 002521'		CALL INIPRO		;GO INITIATE PROTOCOL ON THIS LINE
  1840	002161'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR TO CALLER
  1841	002162'	260 17 0 00 010457'		CALL CLRMSG		;GO CLEAR THE NICE MESSAGE AREA
  1842	002163'	200 04 0 00 013534'		MOVE T4,[POINT 8,MSGBLK] ;GET POINTER TO MOP MESSAGE
  1843	002164'	201 01 0 00 000000 		MOVX T1,.LMEND		;GET "END-OF-DIALOG" TYPE CODE
  1844	002165'	136 01 0 00 000004 		IDPB T1,T4		;PUT TYPE CODE INTO REPLY MESSAGE
  1845	002166'	201 01 0 00 000001 		MOVX T1,.NRSUC		;GET GENERAL SUCCESS CODE
  1846	002167'	136 01 0 00 000004 		IDPB T1,T4		;ADD RETURN CODE TO END-OF-DIALOG MESSAGE
  1847	002170'	200 01 0 00 013534'		MOVE T1,[POINT 8,MSGBLK] ;GET POINTER TO NICE MESSAGE
  1848	002171'	201 02 0 00 000002 		MOVX T2,2		;MESSAGE CONTAINS ONLY TWO BYTES
  1849
  1850					; HERE TO SEND "END-OF-DIALOG" MESSAGE BACK TO REQUESTING TASK
  1851
  1852	002172'	210 03 0 00 000002 	XFR030:	MOVN T3,T2		;GET -COUNT
  1853	002173'	200 02 0 00 000001 		MOVE T2,T1		;COPY POINTER TO MESSAGE
  1854	002174'	200 01 0 14 000032 		MOVE T1,REQLNK		;GET LINK TO REQUESTING TASK
  1855	002175'	104 00 0 00 000532 		SOUTR			;SEND MESSAGE TO REQUESTING TASK
  1856	002176'	320 16 0 00 013647'		 ERJMP [RETBAD (.NRCME)] ;RETURN "COMMUNICATIONS ERROR" ON FAILURE
  1857						;...
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 42
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Line Service Handler

  1858						;...
  1859
  1860					; PROGRAM LOAD COMPLETE - WAIT FOR END OF DIALOG MESSAGE FROM SERVER NCU
  1861
  1862	002177'	260 17 0 00 010457'		CALL CLRMSG		;CLEAR THE MESSAGE AREA
  1863	002200'	200 01 0 14 000032 		MOVE T1,REQLNK		;GET LOGICAL LINK (JFN)
  1864	002201'	200 02 0 00 013534'		MOVE T2,[POINT 8,MSGBLK] ;GET POINTER TO WHERE MESSAGE SHOULD GO
  1865	002202'	211 03 0 00 014000 		MOVNI T3,MAXNIC		;GET -MAX COUNT
  1866	002203'	104 00 0 00 000531 		SINR			;INPUT THE REPLY FROM THE SERVER NODE NCU
  1867	002204'	320 16 0 00 013562'		 ERJMP [LODERR (.NRCME)] ;IF FAILED, RETURN "COMMUNICATIONS ERROR"
  1868
  1869					; VERIFY THAT RESPONSE WAS "END OF DIALOG"
  1870
  1871	002205'	200 01 0 00 013534'		MOVE T1,[POINT 8,MSGBLK] ;GET POINTER TO START OF REPLY MESSAGE
  1872	002206'	201 02 0 03 014000 		MOVEI T2,MAXNIC(T3)	;COMPUTE NUMBER OF BYTES RETURNED
  1873	002207'	275 02 0 00 000002 		SUBI T2,2		;DECREMENT COUNT FOR TYPE CODE AND RETURN CODE
  1874	002210'	321 02 0 00 013615'		JUMPL T2,[RETBAD (.NRPRO)] ;RETURN "PROTOCOL ERROR" IF NOT ENOUGH BYTES
  1875	002211'	134 04 0 00 000001 		ILDB T4,T1		;YES, GET DIALOG MESSAGE TYPE CODE (.LSXXX)
  1876	002212'	302 04 0 00 000000 		CAIE T4,.LMEND		;END OF DIALOG REPLY ?
  1877	002213'	265 16 0 00 013616'		LODERR (.NRPRO)		;NO, NICE PROTOCOL ERROR
  1878	002214'	134 04 0 00 000001 		ILDB T4,T1		;GET RETURN CODE
  1879	002215'	302 04 0 00 000001 		CAIE T4,.NRSUC		;SUCCESS ?
  1880						JRST [	MOVE T1,T4	;NO, GET RETURN CODE FROM SERVER NCU
  1881	002216'	254 00 0 00 013621'			LODERR () ]	;RETURN THE CODE TO CALLER
  1882	002217'	476 00 0 00 000001 		SETOM T1		;NOTE THAT WE ARE NO LONGER IN LOAD DIALOG
  1883	002220'	254 00 0 00 002107*		RETSKP			;DONE, RETURN.
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 43
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Line Service Handler

  1884					;MOPVER - ROUTINE TO VERIFY MOP REPLY MESSAGE AFTER TRANSFER MSG SENT
  1885					;
  1886					;ACCEPTS IN T1/	POINTER TO START OF MOP REPLY MESSAGE
  1887					;	    T2/	COUNT OF BYTES IN THE MOP MESSAGE
  1888					;	    T3/ ADDRESS OF LINE TABLE
  1889					;		CALL MOPVER
  1890					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  1891					;	  +2	SUCCESS, WITH T1/ POINTER TO START OF NICE REPLY MSG
  1892					;			      T2/ COUNT OF BYETS IN NICE MESSAGE
  1893
  1894	002221'	265 16 0 00 002110*	MOPVER:	ASUBR <MPVPTR,MPVCNT,MPVLIN,MPVMSG>
  1895	002222'	265 16 0 00 002036*		STKVAR <MPVLNK,MPVLEN>
  1896	002223'	000002	000002
  1897
  1898					; DETERMINE IF THE MOP PROGRAM REQUEST MSG IS PRECEDED BY DIAGNOSTIC DATA
  1899
  1900	002224'	200 02 0 15 000002 		MOVE T2,MPVCNT		;GET COUNT OF BYTES IN MOP MESSAGE
  1901	002225'	375 00 0 00 000002 		SOSGE T2		;AT LEAST FUNCTION CODE PRESENT ?
  1902	002226'	254 00 0 00 013542'		RETBAD (.NRIMF)		;NO, ILLEGAL MESSAGE FORMAT
  1903	002227'	200 01 0 15 000001 		MOVE T1,MPVPTR		;GET POINTER TO START OF MOP MESSAGE
  1904	002230'	134 04 0 00 000001 		ILDB T4,T1		;GET MOP FUNCTION CODE
  1905	002231'	306 04 0 00 000010 		CAIN T4,.MPRQP		;PROGRAM REQUEST ?
  1906	002232'	254 00 0 00 002274'		JRST MPV030		;YES, GO PROCESS IT
  1907	002233'	302 04 0 00 000034 		CAIE T4,.MPDIA		;DIAGNOSTIC DATA ?
  1908	002234'	254 00 0 00 013720'		RETBAD (.NRLPE)		;NO, LINE PROTOCOL ERROR
  1909
  1910					; HERE IF THERE IS ASCII DIAGNOSTIC DATA TO RETURN TO THE HOST FROM CHK11
  1911
  1912	002235'	260 17 0 00 001716*		CALL ASGPAG		;GET A PAGE FOR THE ASCII DATA
  1913	002236'	263 17 0 00 000000 		 RETBAD ()		;FAILED
  1914	002237'	202 02 0 15 000004 		MOVEM T2,MPVMSG		;SAVE MESSAGE ADDRESS
  1915	002240'	505 02 0 00 441000 		HRLI T2,(POINT 8,)	;FORM POINTER TO MESSAGE DESTINATION
  1916	002241'	200 01 0 00 000002 		MOVE T1,T2		;COPY POINTER TO MESSAGE DESTINATION
  1917	002242'	201 02 0 00 000002 		MOVX T2,.EVASC		;GET CODE FOR ASCII DATA
  1918	002243'	260 17 0 00 006214'		CALL MAKEVT		;ASSEMBLE AN EVENT LOGGING MESSAGE HEADER
  1919	002244'	254 00 0 00 002302'		 JRST MPVERR		;FAILED, RELEASE LINK AND RETURN ERROR
  1920	002245'	202 02 0 17 777775 		MOVEM T2,MPVLEN		;SAVE INITIAL LENGTH OF NICE MESSAGE
  1921	002246'	260 17 0 00 002346'		CALL REPLNK		;GET LINK TO NICE PROCESS ON HOST SYSTEM
  1922	002247'	254 00 0 00 002302'		 JRST MPVERR		;FAILED
  1923	002250'	202 01 0 17 777776 		MOVEM T1,MPVLNK		;SAVE LOGICAL LINK ID
  1924	002251'	200 02 0 15 000004 		MOVE T2,MPVMSG		;GET ADDRESS OF NICE MESSAGE
  1925	002252'	505 02 0 00 441000 		HRLI T2,(POINT 8,)	;FORM POINTER TO NICE MESSAGE
  1926	002253'	210 03 0 17 777775 		MOVN T3,MPVLEN		;GET -COUNT
  1927	002254'	104 00 0 00 000053 		SOUT			;SEND FIRST PART OF NICE MESSAGE TO HOST NCU
  1928						 ERJMP [MOVE T1,MPVLNK	;FAILED, GET LOGICAL LINK
  1929							TXO T1,CZ%ABT	;CLOSE THE LOGICAL LINK
  1930							CLOSF		;CLOSE THE LOGICAL LINK
  1931							 NON.FATAL.ERROR
  1932							MOVX T1,.NRNCE	;GET ERROR CODE
  1933	002255'	320 16 0 00 013722'			JRST MPVERR ]	;GO RELEASE ASSIGNED PAGE
  1934
  1935					; SEND ALL THE DIAGNOSTIC DATA BACK TO THE HOST
  1936
  1937	002256'	200 01 0 15 000001 		MOVE T1,MPVPTR		;GET POINTER TO MOP MESSAGE
  1938	002257'	200 02 0 15 000002 		MOVE T2,MPVCNT		;GET COUNT OF BYTES IN MOP MESSAGE
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 43-1
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Line Service Handler

  1939	002260'	200 03 0 15 000003 		MOVE T3,MPVLIN		;GET ADDRESS OF LINE TABLE
  1940	002261'	200 04 0 17 777776 		MOVE T4,MPVLNK		;GET LOGICAL LINK TO LOGGING NICE PROCESS
  1941	002262'	260 17 0 00 002307'		CALL SNDTXT		;GO SEND BACK THE TEXT TO THE HOST
  1942						 JRST [	MOVE T1,STXLNK	;FAILED, GET LOGICAL LINK
  1943							TXO T1,CZ%ABT	;FLUSH ANYTHING IN PIPE
  1944							CLOSF		;CLOSE THE LOGICAL LINK
  1945							 NON.FATAL.ERROR
  1946							MOVX T1,.NRNCE	;GET ERROR CODE
  1947	002263'	254 00 0 00 013730'			JRST MPVERR ]	;GO RELEASE ASSIGNED PAGE
  1948	002264'	202 01 0 15 000001 		MOVEM T1,MPVPTR		;SAVE POINTER TO MOP MESSAGE
  1949	002265'	202 02 0 15 000002 		MOVEM T2,MPVCNT		;SAVE COUNT OF BYTES IN MOP MESSAGE
  1950
  1951					; HERE WHEN ALL DIAGNOSTIC DATA HAS BEEN RETURNED TO THE HOST
  1952
  1953	002266'	200 01 0 17 777776 	MPV020:	MOVE T1,MPVLNK		;GET LOGICAL LINK
  1954	002267'	104 00 0 00 000022 		CLOSF			;CLOSE THE LINK WHEN ALL DATA AWAY OK
  1955	002270'	260 17 0 00 000000*		 NON.FATAL.ERROR	;FAILED, ISSUE MESSAGE
  1956	002271'	200 01 0 15 000004 		MOVE T1,MPVMSG		;GET ADDRESS OF ASSIGNED PAGE
  1957	002272'	260 17 0 00 001754*		CALL RELPGA		;RELEASE THE PAGE
  1958	002273'	260 17 0 00 002270*		 NON.FATAL.ERROR	;FAILED
  1959
  1960	002274'	200 01 0 15 000001 	MPV030:	MOVE T1,MPVPTR		;GET POINTER TO MOP MESSAGE
  1961	002275'	200 02 0 15 000002 		MOVE T2,MPVCNT		;GET NUMBER OF BYTES IN MOP MESSAGE
  1962	002276'	200 03 0 15 000003 		MOVE T3,MPVLIN		;GET ADDRESS OF LINE TABLE
  1963	002277'	260 17 0 00 005675'		CALL MAKEND		;CHECK MOP PROGRAM REQ MSG AND MAKE NICE MSG
  1964	002300'	263 17 0 00 000000 		 RETBAD ()		;FAILED
  1965	002301'	254 00 0 00 002220*		RETSKP			;DONE, RETURN SUCCESS
  1966
  1967					; HERE ON AN ERROR WITH A PAGE ASSIGNED
  1968
  1969	002302'	250 01 0 15 000004 	MPVERR:	EXCH T1,MPVMSG		;GET ADDRESS OF MESSAGE PAGE
  1970	002303'	260 17 0 00 002272*		CALL RELPGA		;RELEASE THE PAGE
  1971	002304'	260 17 0 00 002273*		 NON.FATAL.ERROR	;FAILED
  1972	002305'	200 01 0 15 000004 		MOVE T1,MPVMSG		;RESTORE ERROR CODE
  1973	002306'	263 17 0 00 000000 		RETBAD ()		;FAIL
  1974
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 44
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Line Service Handler

  1975					;SNDTXT - ROUTINE TO RETURN CHK11 DIAGNOSTIC TEXT TO THE HOST NICE PROCESS
  1976					;
  1977					;ACCEPTS IN T1/	POINTER TO MOP MESSAGE
  1978					;	    T2/	NUMBER OF BYTES LEFT IN MOP MESSAGE
  1979					;	    T3/	ADDRESS OF LINE TABLE
  1980					;	    T4/	LOGICAL LINK TO HOST NICE PROCESS
  1981					;		CALL SNDTXT
  1982					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  1983					;	  +2	SUCCESS, WITH T1/ POINTER TO MOP MESSAGE
  1984					;			      T2/ COUNT OF BYTES IN MOP MESSAGE
  1985
  1986	002307'	265 16 0 00 002221*	SNDTXT:	ASUBR <STXPTR,STXCNT,STXLIN,STXLNK>
  1987
  1988					; LOOP TO SEND ASCII DATA BACK TO THE NICE PROCESS FOR LOGGING
  1989
  1990	002310'	200 01 0 15 000004 	STX010:	MOVE T1,STXLNK		;GET LOGICAL LINK TO HOST NICE LOGGER
  1991	002311'	201 02 0 00 000016 		MOVX T2,.EDTXT		;GET ASCII DATA TYPE CODE
  1992	002312'	104 00 0 00 000051 		BOUT			;SEND ASCII DATA TYPE CODE
  1993	002313'	320 16 0 00 013740'		 ERJMP [RETBAD (.NRNCE)] ;FAILED, NETWORK COMMUNICATIONS ERROR
  1994	002314'	200 02 0 15 000002 		MOVE T2,STXCNT		;GET COUNT OF BYTES IN MOP MESSAGE
  1995	002315'	275 02 0 00 000001 		SUBI T2,1		;ALLOW FOR MOP FUNCTION CODE
  1996	002316'	303 02 0 00 000377 		CAILE T2,^D255		;GREATER THAN MAX IMAGE ASCII FIELD SIZE ?
  1997	002317'	254 00 0 00 013542'		RETBAD (.NRIMF)		;YES, FAIL, INVALID MESSAGE FORMAT
  1998	002320'	104 00 0 00 000051 		BOUT			;SEND BACK COUNT BYTE FOR IMAGE ASCII FIELD
  1999	002321'	320 16 0 00 013740'		 ERJMP [RETBAD (.NRNCE)] ;FAILED, NETWORK COMMUNICATIONS ERROR
  2000	002322'	210 03 0 00 000002 		MOVN T3,T2		;GET -COUNT
  2001	002323'	200 02 0 15 000001 		MOVE T2,STXPTR		;GET POINTER TO START OF MOP MESSAGE
  2002	002324'	134 04 0 00 000002 		ILDB T4,T2		;SKIP FUNCTION CODE, POINT TO START OF DATA
  2003	002325'	104 00 0 00 000532 		SOUTR			;SEND THE DATA BACK TO THE LOGGER
  2004	002326'	320 16 0 00 013740'		 ERJMP [RETBAD (.NRNCE)] ;FAILED, NETWORK COMMUNICATIONS ERROR
  2005
  2006					; READ ANOTHER MOP MESSAGE
  2007
  2008	002327'	200 01 0 15 000003 		MOVE T1,STXLIN		;GET ADDRESS OF LINE TABLE
  2009	002330'	260 17 0 00 006455'		CALL DTERCV		;GO RECEIVE A MOP MESSAGE FROM THE TARGET NODE
  2010	002331'	254 00 0 00 013645'		 RETBAD (.NRCME)	;RETURN "COMMUNICATIONS ERROR" ON FAILURE
  2011	002332'	202 01 0 15 000001 		MOVEM T1,STXPTR		;SAVE POINTER TO MOP MESSAGE
  2012	002333'	202 02 0 15 000002 		MOVEM T2,STXCNT		;SAVE COUNT OF BYTES IN MOP MESSAGE
  2013
  2014					; SEE IF THERE IS MORE DIAGNOSTIC DATA
  2015
  2016	002334'	200 02 0 15 000002 		MOVE T2,STXCNT		;GET COUNT OF BYTES IN MOP MESSAGE
  2017	002335'	375 00 0 00 000002 		SOSGE T2		;AT LEAST FUNCTION CODE PRESENT ?
  2018	002336'	254 00 0 00 013542'		RETBAD (.NRIMF)		;NO, ILLEGAL MESSAGE FORMAT
  2019	002337'	200 01 0 15 000001 		MOVE T1,STXPTR		;GET POINTER TO START OF MOP MESSAGE
  2020	002340'	134 04 0 00 000001 		ILDB T4,T1		;GET MOP FUNCTION CODE
  2021	002341'	306 04 0 00 000010 		CAIN T4,.MPRQP		;PROGRAM REQUEST ?
  2022						JRST [	MOVE T1,STXPTR	;GET POINTER TO MOP MESSAGE
  2023							MOVE T2,STXCNT	;GET NUMBER OF BYTES IN MESSAGE
  2024	002342'	254 00 0 00 013741'			RETSKP ]	;RETURN SUCCESS
  2025	002343'	302 04 0 00 000034 		CAIE T4,.MPDIA		;DIAGNOSTIC DATA ?
  2026	002344'	254 00 0 00 013720'		RETBAD (.NRLPE)		;NO, LINE PROTOCOL ERROR
  2027	002345'	254 00 0 00 002310'		JRST STX010		;YES, GO SEND THE DATA BACK TO THE HOST
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 45
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Line Service Handler

  2028					;REPLNK - ROUTINE TO GET A LOGICAL LINK TO A PROCESS ON THE SAME NODE
  2029					;	    THAT ORIGINATED A NICE REQUEST.
  2030					;
  2031					;CALL:		CALL REPLNK
  2032					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  2033					;	  +2	SUCCESS, WITH T1/ JFN FOR LOGICAL LINK
  2034
  2035	002346'	265 16 0 00 002222*	REPLNK:	STKVAR <RPLHST,RPLLNK>
  2036	002347'	000002	000002
  2037
  2038					; GET HOST NAME OF TASK ORIGINALLY REQUESTING SERVICE FROM US
  2039
  2040	002350'	561 03 0 17 777776 		HRROI T3,RPLHST		;GET POINTER TO DESTINATION FOR STRING
  2041	002351'	201 02 0 00 000026 		MOVX T2,.MORHN		;GET "READ HOST NAME" FUNCTION
  2042	002352'	200 01 0 14 000032 		MOVE T1,REQLNK		;GET LOGICAL LINK TO REQUESTING TASK
  2043	002353'	104 00 0 00 000077 		MTOPR			;ADD HOST NAME TO STRING
  2044	002354'	320 16 0 00 013656'		 ERJMP [RETBAD (.NRNPE)] ;FAILED, RETURN ERROR
  2045
  2046					; GET A LOGICAL LINK TO THE NCU ON THE REQUESTING HOST
  2047
  2048	002355'	541 01 0 17 777776 		HRRI T1,RPLHST		;GET ADDRESS OF HOST NAME
  2049	002356'	505 01 0 00 440700 		HRLI T1,(POINT 7,)	;FORM POINTER TO HOST NAME
  2050	002357'	254 00 0 00 007140'		CALLRET GETLNK		;GO GET A LOGICAL LINK TO THE NCU
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 46
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Line Service Handler

  2051					;LSTBT - ROUTINE TO PROCESS A NICE LINE SERVICE MESSAGE TO TRIGGER THE
  2052					;	  BOOTSTRAP ROM IN AN ADJACENT TARGET NODE.
  2053					;
  2054					;ACCEPTS IN T1/	POINTER TO PARAMETERS IN NICE LINE SERVICE MSG (BOOT PASSWORD)
  2055					;	    T2/	NUMBER OF BYTES REMAINING IN MESSAGE
  2056					;	    T3/	ADDRESS OF LINE TABLE
  2057					;		CALL LSTBT
  2058					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  2059					;	  +2	SUCCESS, BOOTSTRAP ROM TRIGGERED
  2060
  2061	002360'	634 04 0 00 000004 	LSTBT:	TDZA T4,T4		;NOTE THAT NO PROGRAM DATA WAS REQUESTED
  2062	002361'	476 00 0 00 000004 	LSTBP:	SETOM T4		;PROGRAM DATA IS WANTED
  2063	002362'	265 16 0 00 002346*		STKVAR <LSTLIN,LSTFLG,<LSTBPW,2>>
  2064	002363'	000004	000004
  2065	002364'	202 03 0 17 777776 		MOVEM T3,LSTLIN		;SAVE LINE TABLE ADDRESS
  2066	002365'	202 04 0 17 777775 		MOVEM T4,LSTFLG		;SAVE FLAG INDICATING WHICH TYPE OF CALL
  2067	002366'	260 17 0 00 004407'		CALL GETBPW		;GO EXTRACT THE BOOT PASSWORD FROM THE MESSAGE
  2068	002367'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR TO CALLER
  2069	002370'	124 03 0 17 777773 		DMOVEM T3,LSTBPW	;SAVE BOOT PASSWORD
  2070
  2071					; CHECK THE BOOT PASSWORD FOR THIS TARGET NODE
  2072
  2073					; ACTIVATE (TRIGGER) THE ROM IN THE TARGET NODE
  2074
  2075	002371'	200 01 0 17 777776 		MOVE T1,LSTLIN		;GET ADDRESS OF LINE TABLE
  2076	002372'	260 17 0 00 006346'		CALL DTESTP		;TERMINATE ANY PROTOCL RUNNING ON THE TARGET
  2077	002373'	254 00 0 00 013720'		 RETBAD (.NRLPE)	;FAILED, RETURN "LINE PROTOCOL ERROR"
  2078	002374'	200 01 0 17 777776 		MOVE T1,LSTLIN		;GET ADDRESS OF LINE TABLE
  2079	002375'	260 17 0 00 006507'		CALL DTEINI		;GO TRIGGER THE ROM
  2080	002376'	254 00 0 00 013720'		 RETBAD (.NRLPE)	;FAILED, RETURN 'LINE PROTOCOL ERROR'
  2081
  2082					; SEND BACK A "SUCCESS" RETURN CODE TO THE REQUESTING TASK
  2083
  2084	002377'	200 01 0 14 000032 		MOVE T1,REQLNK		;GET LOGICAL LINK (JFN) TO REQUESTING TASK
  2085	002400'	200 02 0 00 013627'		MOVE T2,[POINT 8,[BYTE (8) .NRSUC]] ;GET POINTER TO RETURN CODE
  2086	002401'	211 03 0 00 000001 		MOVNI T3,1		;ONE BYTE MESSAGE
  2087	002402'	104 00 0 00 000532 		SOUTR			;RETURN THE SUCCESS CODE
  2088	002403'	320 16 0 00 013647'		 ERJMP [RETBAD (.NRCME)] ;RETURN "COMMUNICATIONS ERROR" ON FAILURE
  2089
  2090					; IF NO PROGRAM DATA WANTED, RETURN, ELSE SEND BACK THE PROGRAM DATA
  2091
  2092	002404'	336 00 0 17 777775 		SKIPN LSTFLG		;PROGRAM DATA WANTED ?
  2093	002405'	254 00 0 00 002301*		RETSKP			;DONE, RETURN SUCCESS
  2094	002406'	200 01 0 14 000032 		MOVE T1,REQLNK		;YES, GET LOGICAL LINK TO REQUESTING TASK
  2095	002407'	200 02 0 00 013745'		MOVE T2,[POINT 8,[ BYTE (8) .DTDTE, .CP11, .PTSLD, 0 ]]
  2096	002410'	211 03 0 00 000004 		MOVNI T3,4		;NUMBER OF BYTES OF PROGRAM DATA
  2097	002411'	104 00 0 00 000532 		SOUTR			;SEND BACK THE PROGRAM DATA
  2098	002412'	320 16 0 00 013647'		 ERJMP [RETBAD (.NRCME)] ;RETURN "'COMMUNICATIONS ERROR' ON FAILURE
  2099	002413'	254 00 0 00 002405*		RETSKP			;DONE, RETURN
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 47
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Line Service Handler

  2100					;MOPLDR - ROUTINE TO ADD BYTES TO A LOAD IMAGE BEING CONSTRUCTED
  2101					;	    FOR A SECONDARY LOADER
  2102					;
  2103					;ACCEPTS IN T1/	POINTER TO MEMORY IMAGE DATA TO BE LOADED
  2104					;	    T2/	NUMBER OF BYTES OF MEMORY IMAGE DATA
  2105					;	    T3/	ADDRESS OF LINE TABLE
  2106					;		CALL MOPLDR
  2107					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  2108					;	  +2	SUCCESS, DATA ADDED TO LOAD IMAGE
  2109
  2110	002414'	265 16 0 00 002307*	MOPLDR:	ASUBR <MLDPTR,MLDCNT,MLDLIN>
  2111	002415'	265 16 0 00 002362*		STKVAR <MLDCTR,MLDPTB>
  2112	002416'	000002	000002
  2113
  2114					; SET UP WORD CONTAINING ADDRESS OF BYTE POINTER TABLE TO USE
  2115
  2116	002417'	200 01 0 15 000003 		MOVE T1,MLDLIN		;GET ADDRESS OF LINE TABLE ENTRY
  2117	002420'	554 01 0 01 000002 		LOAD T1,LNPGM,(T1)	;GET PROGRAM TYPE BEING LOADED
  2118	002421'	205 04 0 00 777776 		MOVSI T4,-PTRSIZ	;SET UP TO FIND CORRECT BYTE POINTER TABLE
  2119	002422'	554 02 0 04 010655'	LODM10:	HLRZ T2,PTRTAB(T4)	;GET A PROGRAM TYPE FROM THE TABLE
  2120	002423'	316 02 0 00 000001 		CAMN T2,T1		;FOUND TYPE OF PROGRAM BEING LOADED ?
  2121	002424'	254 00 0 00 002427'		JRST LODM20		;YES, GO GET ADDRESS OF BYTE POINTER TABLE
  2122	002425'	253 04 0 00 002422'		AOBJN T4,LODM10		;NO, LOOP OVER ALL PROGRAM TYPES
  2123	002426'	254 00 0 00 013711'		RETBAD (.NRIPV)		;FAILED, RETURN ERROR TO CALLER
  2124
  2125					; GET THE ADDRESS OF THE BYTE POINTER TABLE
  2126
  2127	002427'	550 01 0 04 010655'	LODM20:	HRRZ T1,PTRTAB(T4)	;GET ADDRESS OF BYTE POINTER TABLE TO USE
  2128	002430'	202 01 0 17 777775 		MOVEM T1,MLDPTB		;SAVE POINTER TABLE ADDRESS
  2129
  2130					; SET UP AN INDEX INTO BYTE POINTER TABLE AND OFFSET INTO LOAD IMAGE
  2131
  2132	002431'	200 04 0 15 000003 		MOVE T4,MLDLIN		;GET ADDRESS OF LINE TABLE
  2133	002432'	200 01 0 04 000005 		LOAD T1,LNADR,(T4)	;GET LOAD ADDRESS FOR THIS DATA
  2134	002433'	231 01 0 00 000004 		IDIVI T1,BPWRD		;COMPUTE OFFSET INTO LOAD IMAGE
  2135	002434'	200 04 0 15 000003 		MOVE T4,MLDLIN		;GET ADDRESS OF LINE TABLE
  2136	002435'	200 04 0 04 000006 		LOAD T4,LNMSG,(T4)	;GET POINTER TO MOP MESSAGE BLOCK FOR THIS LINE
  2137	002436'	270 01 0 00 000004 		ADD T1,T4		;COMPUTE ADDRESS TO START LOADING AT
  2138	002437'	202 01 0 00 000003 		MOVEM T1,T3		;SAVE LOADING ADDRESS
  2139	002440'	202 02 0 17 777776 		MOVEM T2,MLDCTR		;SAVE INDEX INTO BYTE POINTER TABLE
  2140						; ..
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 48
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Line Service Handler

  2141						; ..
  2142
  2143					; DEPOSIT THE DATA BYTES INTO THE LOAD IMAGE RECORD
  2144					; (T3 HAS THE DESTINATION ADDRESS & THE BYTE POINTERS ARE INDEXED BY T3)
  2145
  2146	002441'	550 04 0 15 000002 		HRRZ T4,MLDCNT		;GET NUMBER OF DATA BYTES TO DEPOSIT
  2147	002442'	322 04 0 00 002413*		JUMPE T4,RSKP		;DONE IF NO DATA TO BE LOADED
  2148	002443'	134 01 0 15 000001 	LODM30:	ILDB T1,MLDPTR		;GET A DATA BYTE FROM THE DIALOG MESSAGE
  2149	002444'	135 02 0 00 013746'		LDB T2,[POINT 2,MLDCTR,35] ;GET INDEX INTO BYTE POINTER TABLE
  2150	002445'	270 02 0 17 777775 		ADD T2,MLDPTB		;FORM ADDRESS OF A BYTE POINTER
  2151	002446'	137 01 0 02 000000 		DPB T1,(T2)		;DEPOSIT THE BYTE
  2152	002447'	350 02 0 17 777776 		AOS T2,MLDCTR		;INCREMENT THE INDEX COUNTER
  2153	002450'	606 02 0 00 000003 		TXNN T2,3		;INCREMENTED TO FIRST BYTE OF NEXT WORD ?
  2154	002451'	271 03 0 00 000001 		ADDI T3,1		;YES, INCREMENT DESTINATION ADDRESS
  2155	002452'	367 04 0 00 002443'		SOJG T4,LODM30		;LOOP OVER ALL DATA BYTES IN MESSAGE
  2156
  2157					; UPDATE THE NEXT LOAD ADDRESS TO USE
  2158
  2159	002453'	200 04 0 15 000003 		MOVE T4,MLDLIN		;GET ADDRESS OF LINE TABLE
  2160	002454'	200 01 0 04 000005 		LOAD T1,LNADR,(T4)	;GET ADDRESS USED TO LOAD THIS DATA
  2161	002455'	270 01 0 15 000002 		ADD T1,MLDCNT		;FORM NEXT ADDRESS TO USE
  2162	002456'	202 01 0 04 000005 		STOR T1,LNADR,(T4)	;STORE NEXT BASE ADDRESS
  2163	002457'	254 00 0 00 002442*		RETSKP			;DONE, RETURN SUCCESS
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 49
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Line Service Handler

  2164					;CHKMOP - ROUTINE TO CHECK A MOP "REQUEST LOAD" MESSAGE AND UPDATE THE
  2165					;	    NEXT LOAD NUMBER EXPECTED.
  2166					;
  2167					;ACCEPTS IN T1/	POINTER TO START OF MOP MESSAGE
  2168					;	    T2/	NUMBER OF BYTES IN THE MESSAGE
  2169					;	    T3/	ADDRESS OF LINE TABLE
  2170					;		CALL CHKMOP
  2171					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  2172					;	  +2	SUCCESS, MESSAGE IS OK AND NEXT LOAD # IS UPDATED
  2173
  2174	002460'	265 16 0 00 002414*	CHKMOP:	ASUBR <CKMPTR,CKMCNT,CKMLIN>
  2175
  2176	002461'	275 02 0 00 000002 		SUBI T2,2		;AT LEAST FUNCTION AND LOAD # PRESENT ?
  2177	002462'	321 02 0 00 013647'		JUMPL T2,[RETBAD (.NRCME)] ;IF NOT, RETURN "COMMUNICATIONS ERROR"
  2178	002463'	134 04 0 15 000001 		ILDB T4,CKMPTR		;GET MOP FUNCTION CODE
  2179	002464'	302 04 0 00 000012 		CAIE T4,.MPRQL		;REQUEST MEMORY LOAD FUNCTION ?
  2180	002465'	254 00 0 00 013645'		RETBAD (.NRCME)		;NO, RETURN "COMMUNICATIONS ERROR"
  2181	002466'	134 04 0 15 000001 		ILDB T4,CKMPTR		;YES, GET NEXT LOAD NUMBER REQUESTED
  2182	002467'	205 16 0 00 000001 		INCR LNLDN,(T3)		;INCREMENT LOAD NUMBER
  2183	002470'	272 16 0 03 000001 
  2184	002471'	135 01 0 00 013747'		LOAD T1,LNLDN,(T3)	;GET NEXT LOAD NUMBER
  2185	002472'	312 01 0 00 000004 		CAME T1,T4		;CORRECT LOAD NUMBER REQUESTED ?
  2186	002473'	254 00 0 00 013645'		RETBAD (.NRCME)		;NO, RETURN "COMMUNICATIONS ERROR"
  2187	002474'	137 01 0 00 013747'		STOR T1,LNLDN,(T3)	;YES, STORE UPDATED LOAD NUMBER IN LINE TABLE
  2188	002475'	375 00 0 00 000002 		SOSGE T2		;ANOTHER BYTE IN MOP MESSAGE ?
  2189	002476'	254 00 0 00 002457*		RETSKP			;NO, NO STATUS CODE IS PRESENT, ASSUME SUCCESS
  2190	002477'	134 04 0 15 000001 		ILDB T4,CKMPTR		;YES, GET THE STATUS CODE FROM THE LOADER
  2191	002500'	302 04 0 00 000000 		CAIE T4,.MPACK		;SUCCESS ON PREVIOUS LOAD ?
  2192	002501'	254 00 0 00 013645'		RETBAD (.NRCME)		;NO, RETURN "COMMUNICATIONS ERROR"
  2193	002502'	254 00 0 00 002476*		RETSKP			;YES, DONE. RETURN SUCCESS.
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 50
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Line Service Handler

  2194					;SNDEND - ROUTINE TO SEND BACK AN END-OF-DIALOG MESSAGE WHEN A LINE SERVICE
  2195					;	  DIALOG OPERATION HAS FAILED.
  2196					;
  2197					;ACCEPTS IN T1/	NICE RETURN CODE
  2198					;		CALL SNDEND
  2199					;RETURNS: +1 ALWAYS, WITH MESSAGE SENT IF POSSIBLE
  2200
  2201
  2202	002503'	265 16 0 00 002460*	SNDEND:	ASUBR <SEMCOD>
  2203
  2204	002504'	260 17 0 00 010457'		CALL CLRMSG		;GO CLEAR NICE MESSAGE AREA
  2205	002505'	200 01 0 00 013534'		MOVE T1,[POINT 8,MSGBLK] ;GET POINTER TO MESSAGE AREA
  2206	002506'	201 04 0 00 000000 		MOVX T4,.LMEND		;GET END-OF-DIALOG MESSAGE TYPE CODE
  2207	002507'	136 04 0 00 000001 		IDPB T4,T1		;ADD TYPE CODE TO MESSAGE
  2208	002510'	200 04 0 15 000001 		MOVE T4,SEMCOD		;GET RETURN CODE (.NRXXX)
  2209	002511'	136 04 0 00 000001 		IDPB T4,T1		;ADD RETURN CODE TO MESSAGE
  2210
  2211					; SEND THE MESSAGE BACK TO ORIGINATOR OR THIS REQUEST
  2212
  2213	002512'	211 03 0 00 000002 		MOVNI T3,2		;GET NUMBER OF BYTES IN THE MESSAGE
  2214	002513'	505 02 0 00 441000 		HRLI T2,(POINT 8,)	;FORM BYTE POINTER TO START
  2215	002514'	541 02 0 14 000033 		HRRI T2,MSGBLK		; OF THE END-OF-DIALOG MESSAGE
  2216	002515'	200 01 0 14 000032 		MOVE T1,REQLNK		;GET LOGICAL LINK (JFN) TO REQUESTING TASK
  2217	002516'	104 00 0 00 000532 		SOUTR			;SEND THE MESSAGE
  2218	002517'	320 16 0 00 002520'		 ERJMP .+1		;FAILED, IGNORE FAILURE
  2219	002520'	263 17 0 00 000000 		RET			;DONE, RETURN
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 51
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Line Service Handler

  2220					;INIPRO - ROUTINE TO INITIATE PROTOCOL ON A LINE
  2221					;
  2222					;ACCPETS IN T1/	ADDRESS OF LINE TABLE
  2223					;		CALL INIPRO
  2224					;RETURNS: +1	 FAILED, COULD NOT INITIATE PROTOCOL
  2225					;	  +2	SUCCESS, PROTOCOL INITIATED IF ANY PROTOCOL TYPE HAD BEEN
  2226					;			 SPECIFIED FOR THE TARGET NODE.
  2227
  2228	002521'	265 16 0 00 002503*	INIPRO:	ASUBR <IPRLIN,IPRPRO,IPRCNT,IPRADJ>
  2229
  2230	002522'	561 01 0 00 010667'		HRROI T1,OURNAM		;GET POINTER TO NAME OF OUR NODE
  2231	002523'	260 17 0 00 010525'		CALL GETNIB		;GET THE NIB ADDRESS FOR OUR NODE
  2232	002524'	254 00 0 00 013544'		 RETBAD (.NRICF)	;FAILED, "INVALID CONFIGURATION FILE"
  2233	002525'	200 01 0 01 000006 		LOAD T1,NDLIN,(T1)	;GET ADDRESS OF LINE ADJACENCY TABLE
  2234	002526'	202 01 0 15 000004 		MOVEM T1,IPRADJ		;SAVE TABLE ADDRESS
  2235	002527'	200 04 0 15 000001 		MOVE T4,IPRLIN		;GET ADDRESS OF LINE TABLE
  2236	002530'	554 01 0 04 000004 		LOAD T1,LNDTE,(T4)	;GET DTE20 NUMBER
  2237	002531'	260 17 0 00 010517'		CALL CVTDEV		;CONVERT TO STANDARD NICE LINE ID
  2238	002532'	254 00 0 00 013650'		 RETBAD (.NRNPE)	;FAILED, NICE PROGRAM ERROR
  2239	002533'	200 01 0 15 000004 		MOVE T1,IPRADJ		;RESTORE ADJACENCY TABLE ADDRESS
  2240	002534'	260 17 0 00 010567'		CALL FNDTGT		;GET ADDRESS OF NIB FOR TARGET NODE
  2241	002535'	254 00 0 00 013544'		 RETBAD (.NRICF)	;FAILED, RETURN "CONFIGURATION FILE ERROR"
  2242	002536'	200 16 0 01 000000 		JE NDPST,(T1),RSKP	;IF NO PROTOCOL TYPE HAS BEEN SET, WE ARE DONE
  2243	002537'	607 16 0 00 010000 
  2244	002540'	254 00 0 00 002502*
  2245	002541'	550 02 0 01 000010 		LOAD T2,NDPRO,(T1)	;GET PROTOCOL TYPE TO INITIATE ON THIS LINE
  2246	002542'	202 02 0 15 000002 		MOVEM T2,IPRPRO		;SAVE PROTOCOL TYPE
  2247
  2248
  2249					; LOOP FOR 3 MINUTES TRYING TO INITIATE PROTOCOL, THEN GIVE ERROR IF FAILED
  2250
  2251	002543'	402 00 0 15 000003 		SETZM IPRCNT		;INITIALIZE COUNT OF TRIALS
  2252	002544'	200 02 0 15 000002 	INIP10:	MOVE T2,IPRPRO		;GET PROTOCOL TYPE
  2253	002545'	200 01 0 15 000001 		MOVE T1,IPRLIN		;GET ADDRESS OF LINE TABLE
  2254	002546'	260 17 0 00 006521'		CALL DTEGO		;INITIATE PROTOCOL
  2255						 JRST [	AOS T1,IPRCNT	;INCREMENT LOOP COUNTER
  2256							CAIL T1,^D6	;BEEN TRYING FOR 1 MINUTE YET ?
  2257							RETBAD (.NRCME)	;YES, RETURN "LINE COMMUNICATIONS ERROR"
  2258							MOVX T1,^D1000*^D10 ;WAIT TIME IS 10 SECONDS
  2259							DISMS		;WAIT FOR TARGET NODE TO BECOME READY
  2260	002547'	254 00 0 00 013750'			JRST INIP10 ]	;TRY TO INIT AGAIN
  2261	002550'	254 00 0 00 002540*		RETSKP			;DONE, RETURN SUCCESS
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 52
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Line Service Handler

  2262					;LSDMP - ROUTINE TO INITIATE AN UP-LINE DUMP DIALOG
  2263					;
  2264					;ACCEPTS IN T1/	POINTER TO DIALOG DATA IN LINE SERVICE MESSAGE
  2265					;	    T2/	NUMBER OF BYTES REMAINING IN MESSAGE
  2266					;	    T3/	ADDRESS OF LINE TABLE
  2267					;		CALL LSDMP
  2268					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  2269					;	  +2	SUCCESS
  2270
  2271	002551'	265 16 0 00 002521*	LSDMP:	ASUBR <LSDPTR,LSDCNT,LSDLIN,LSDNUM>
  2272
  2273	002552'	260 17 0 00 004613'		CALL GETMEM		;GO GET INITIAL ADDRESS AT WHICH TO START DUMP
  2274	002553'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR TO CALLER
  2275	002554'	326 03 0 00 013656'		JUMPN T3,[RETBAD (.NRNPE)] ;FAIL IF NOT STARTING AT 0
  2276	002555'	200 04 0 15 000003 		MOVE T4,LSDLIN		;GET ADDRESS OF LINE TABLE
  2277	002556'	202 03 0 04 000005 		STOR T3,LNADR,(T4)	;STORE STARTING ADDRESS FOR DUMP
  2278	002557'	260 17 0 00 004613'		CALL GETMEM		;EXTRACT NUMBER OF LOCATIONS TO DUMP FROM MSG
  2279	002560'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR TO CALLER
  2280	002561'	202 03 0 15 000004 		MOVEM T3,LSDNUM		;SAVE NUMBER OF BYTES TO BE DUMPED
  2281	002562'	201 03 0 00 200000 		MOVX T3,INIDMP		;INITIAL COUNT IS SIZE OF DUMP BOOTSTRAP+BUFFER
  2282	002563'	200 04 0 15 000003 		MOVE T4,LSDLIN		;GET ADDRESS OF LINE TABLE
  2283	002564'	202 03 0 04 000007 		STOR T3,LNDCT,(T4)	;STORE NUMBER OF BYTES LEFT TO DUMP
  2284
  2285					; SEND BACK A SUCCESS RETURN CODE TO ORIGINATOR OF THE DIALOG
  2286
  2287	002565'	200 01 0 14 000032 		MOVE T1,REQLNK		;GET LOGICAL LINK (JFN) TO ORIGINATING TASK
  2288	002566'	200 02 0 00 013627'		MOVE T2,[POINT 8,[BYTE (8) .NRSUC]] ;GET SUCCESS CODE
  2289	002567'	211 03 0 00 000001 		MOVNI T3,1		;MESSAGE CONTAINS ONE BYTE
  2290	002570'	104 00 0 00 000532 		SOUTR			;SEND BACK THE MESSAGE
  2291	002571'	320 16 0 00 013647'		 ERJMP [RETBAD (.NRCME)] ;FAILED, RETURN "COMMUNICATIONS ERROR"
  2292
  2293					; TRIGGER THE ROM BEFORE STARTING THE DUMP
  2294
  2295	002572'	200 01 0 15 000003 		MOVE T1,LSDLIN		;GET ADDRESS OF LINE TABLE
  2296	002573'	260 17 0 00 006346'		CALL DTESTP		;FIRST TERMINATE ANY PROTOCOL OVER THIS DTE
  2297	002574'	254 00 0 00 013645'		 RETBAD (.NRCME)	;FAILED, RETURN "LINE COMMUNICATIONS ERROR"
  2298	002575'	200 01 0 15 000003 		MOVE T1,LSDLIN		;GET ADDRESS OF LINE TABLE
  2299	002576'	260 17 0 00 006507'		CALL DTEINI		;TRIGGER THE ROM
  2300	002577'	254 00 0 00 013645'		 RETBAD (.NRCME)	;FAILED
  2301
  2302					; DUMP THE FIRST "INIDMP" WORDS OF PDP-11 MEMORY
  2303
  2304	002600'	200 01 0 15 000003 		MOVE T1,LSDLIN		;GET ADDRESS OF LINE TABLE
  2305	002601'	260 17 0 00 003126'		CALL ROMDMP		;DO A ROM DUMP OF FIRST "INIDMP" WORDS
  2306	002602'	263 17 0 00 000000 		 RETBAD ()		;FAILED
  2307
  2308
  2309					; FIRST "INIDMP" WORDS HAVE BEEN DUMPED.  NOW LOAD A DUMP BOOTSTRAP PROGRAM
  2310
  2311	002603'	200 01 0 15 000003 		MOVE T1,LSDLIN		;GET ADDRESS OF LINE TABLE
  2312	002604'	200 04 0 01 000006 		LOAD T4,LNMSG,(T1)	;GET ADDRESS OF WHERE -11 PROGRAM GOES
  2313	002605'	505 04 0 00 002621'		HRLI T4,DBOOT		;GET ADDRESS OF DUMP BOOTSTRAP
  2314	002606'	550 03 0 00 000004 		HRRZ T3,T4		;COPY DESTINATION ADDRESS
  2315	002607'	251 04 0 03 000200 		BLT T4,200(T3)		;COPY 256 WORD (-11 WORDS) DUMP PROGRAM
  2316	002610'	260 17 0 00 006360'		CALL DTESLD		;LOAD THE DUMP BOOTSTRAP
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 52-1
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Line Service Handler

  2317	002611'	254 00 0 00 013645'		 RETBAD (.NRCME)	;FAILED
  2318
  2319					; FIRST 256 WORDS HAVE BEEN DUMPED.  NOW LOAD A DUMP BOOTSTRAP PROGRAM
  2320					;
  2321					;	MOVE T1,LSDLIN		;GET ADDRESS OF LINE TABLE
  2322					;	CALL LODDMP		;GO LOAD A DUMP PROGRAM
  2323					;	 RETBAD (.NRCME)	;FAILED
  2324
  2325					; NOW DUMP THE REMAINING MEMORY USING THE DUMP BOOTSTRAP
  2326
  2327	002612'	200 01 0 15 000004 		MOVE T1,LSDNUM		;GET NUMBER OF BYTES TO DUMP
  2328	002613'	200 02 0 15 000003 		MOVE T2,LSDLIN		;GET ADDRESS OF LINE TABLE
  2329	002614'	260 17 0 00 003037'		CALL MOPDMP		;GO DO A MOP DUMP
  2330	002615'	263 17 0 00 000000 		 RETBAD ()		;FAILED
  2331
  2332					; RETURN AN END-OF-DIALOG MESSAGE TO THE HOST NCU
  2333
  2334	002616'	201 01 0 00 000001 		MOVX T1,.NRSUC		;GET SUCCESS RETURN CODE
  2335	002617'	260 17 0 00 002503'		CALL SNDEND		;GO SEND AN END-OF-DIALOG MESSAGE TO HOST NCU
  2336	002620'	254 00 0 00 002550*		RETSKP			;DONE, RETURN SUCCESS
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 53
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Line Service Handler

  2337					; DUMP BOOTSTRAP CODE
  2338
  2339	002621'				DBOOT:
  2340
  2341	002621'	001200	010040		001200010040
  2342	002622'	000700	007000		000700007000
  2343	002623'	427446	000060		427446000060
  2344	002624'	153444	100000		153444100000
  2345	002625'	007754	256140		007754256140
  2346	002626'	003470	256000		003470256000
  2347	002627'	700000	256040		700000256040
  2348	002630'	376030	204760		376030204760
  2349	002631'	751400	204760		751400204760
  2350	002632'	751410	204760		751410204760
  2351	002633'	751420	204760		751420204760
  2352	002634'	751470	120760		751470120760
  2353	002635'	751600	256760		751600256760
  2354	002636'	037003	647040		037003647040
  2355	002637'	053574	174000		053574174000
  2356	002640'	751670	256760		751670256760
  2357	002641'	000007	773640		000007773640
  2358	002642'	053400	400000		053400400000
  2359	002643'	053574	002340		053574002340
  2360	002644'	000020	454540		000020454540
  2361	002645'	713574	000200		713574000200
  2362	002646'	751610	136200		751610136200
  2363	002647'	057427	647040		057427647040
  2364	002650'	031424	146120		031424146120
  2365	002651'	031424	146120		031424146120
  2366	002652'	042421	056100		042421056100
  2367	002653'	177774	146120		177774146120
  2368	002654'	031424	010140		031424010140
  2369	002655'	113133	456000		113133456000
  2370	002656'	004000	136200		004000136200
  2371	002657'	040024	120100		040024120100
  2372	002660'	040030	256040		040030256040
  2373	002661'	001060	244540		001060244540
  2374	002662'	101134	016440		101134016440
  2375	002663'	417760	002200		417760002200
  2376	002664'	043431	456140		043431456140
  2377	002665'	002420	210040		002420210040
  2378	002666'	351137	777440		351137777440
  2379	002667'	213413	777700		213413777700
  2380	002670'	027424	030020		027424030020
  2381	002671'	025010	404560		025010404560
  2382	002672'	000020	020100		000020020100
  2383	002673'	025410	257560		025410257560
  2384	002674'	700000	010040		700000010040
  2385	002675'	041334	010000		041334010000
  2386	002676'	053400	011020		053400011020
  2387	002677'	023734	004000		023734004000
  2388	002700'	153444	100000		153444100000
  2389	002701'	007764	256000		007764256000
  2390	002702'	002264	256040		002264256040
  2391	002703'	000044	204060		000044204060
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 53-1
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Line Service Handler

  2392	002704'	023734	004340		023734004340
  2393	002705'	513734	000160		513734000160
  2394	002706'	001614	020100		001614020100
  2395	002707'	513734	000100		513734000100
  2396	002710'	001564	030020		001564030020
  2397	002711'	004260	356000		004260356000
  2398	002712'	001550	200760		001550200760
  2399	002713'	003511	456760		003511456760
  2400	002714'	000024	016440		000024016440
  2401	002715'	073414	006200		073414006200
  2402	002716'	073410	006140		073410006140
  2403	002717'	441574	016520		441574016520
  2404	002720'	473574	005720		473574005720
  2405	002721'	003532	204760		003532204760
  2406	002722'	003536	356760		003536356760
  2407	002723'	001324	016600		001324016600
  2408	002724'	355137	777640		355137777640
  2409	002725'	041577	647100		041577647100
  2410	002726'	073414	005100		073414005100
  2411	002727'	213417	776000		213417776000
  2412	002730'	313415	000000		313415000000
  2413	002731'	053410	016620		053410016620
  2414	002732'	451511	760040		451511760040
  2415	002733'	213707	000000		213707000000
  2416	002734'	777620	256000		777620256000
  2417	002735'	003510	117560		003510117560
  2418	002736'	000060	003560		000060003560
  2419	002737'	777010	015200		777010015200
  2420	002740'	042307	777100		042307777100
  2421	002741'	302400	201420		302400201420
  2422	002742'	777720	256220		777720256220
  2423	002743'	240000	257420		240000257420
  2424	002744'	000004	000040		000004000040
  2425	002745'	053444	050000		053444050000
  2426	002746'	153446	400000		153446400000
  2427	002747'	007766	007360		007766007360
  2428	002750'	001034	211420		001034211420
  2429	002751'	777621	412000		777621412000
  2430	002752'	040307	777540		040307777540
  2431	002753'	301002	060200		301002060200
  2432	002754'	006034	201140		006034201140
  2433	002755'	700010	120000		700010120000
  2434	002756'	023734	000100		023734000100
  2435	002757'	053010	204000		053010204000
  2436	002760'	053444	002020		053444002020
  2437	002761'	701014	030060		701014030060
  2438	002762'	013551	256040		013551256040
  2439	002763'	400000	130040		400000130040
  2440	002764'	213411	200000		213411200000
  2441	002765'	007520	205420		007520205420
  2442	002766'	777712	656220		777712656220
  2443	002767'	001010	037720		001010037720
  2444	002770'	401470	136000		401470136000
  2445	002771'	004015	457420		004015457420
  2446	002772'	200003	777100		200003777100
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 53-2
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Line Service Handler

  2447	002773'	041410	004160		041410004160
  2448	002774'	020000	140000		020000140000
  2449	002775'	002120	000000		002120000000
  2450	002776'	000000	000040		000000000040
  2451	002777'	000000	000000		000000000000
  2452	003000'	000000	000000		000000000000
  2453	003001'	000000	000000		000000000000
  2454	003002'	000000	000000		000000000000
  2455	003003'	000000	000000		000000000000
  2456	003004'	000000	000000		000000000000
  2457	003005'	000000	000000		000000000000
  2458	003006'	000070	000000		000070000000
  2459	003007'	000000	000000		000000000000
  2460	003010'	000000	000000		000000000000
  2461	003011'	000000	000000		000000000000
  2462	003012'	000000	000000		000000000000
  2463	003013'	000000	000000		000000000000
  2464	003014'	000000	004540		000000004540
  2465	003015'	000000	001300		000000001300
  2466	003016'	000000	000000		000000000000
  2467	003017'	000000	000000		000000000000
  2468	003020'	000000	000000		000000000000
  2469
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 54
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Line Service Handler

  2470					; LODDMP - ROUTINE TO LOAD A DUMP PROGRAM INTO AN ADJACENT PDP-11
  2471					;
  2472					;ACCEPTS IN T1/	ADDRESS OF LINE TABLE
  2473					;		CALL LODDMP
  2474					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  2475					;	  +2	SUCCESS, PROGRAM LOADED AND STARTED
  2476
  2477	003021'	265 16 0 00 002551*	LODDMP:	ASUBR <LDPLIN,<LDPNOD,2>,LDPLNK>
  2478
  2479					; GET A LINK TO THE HOST INITIATING THIS DUMP OPERATION
  2480
  2481	003022'	200 01 0 14 000032 		MOVE T1,REQLNK		;GET LINK TO REQUESTING TASK
  2482	003023'	201 02 0 00 000026 		MOVX T2,.MORHN		;READ HOST NAME FUNCTION
  2483	003024'	561 03 0 15 000002 		HRROI T3,LDPNOD		;GET POINTER TO WHERE NAME SHOULD GO
  2484	003025'	104 00 0 00 000077 		MTOPR			;GET THE NODE NAME
  2485	003026'	320 16 0 00 013656'		 ERJMP [RETBAD (.NRNPE)] ;FAILED
  2486	003027'	561 01 0 15 000002 		HRROI T1,LDPNOD		;GET POINTER TO HOST NODE NAME
  2487	003030'	260 17 0 00 007140'		CALL GETLNK		;GO GET A LOGICAL LINK TO THE HOST
  2488	003031'	263 17 0 00 000000 		 RETBAD ()		;FAILED
  2489	003032'	202 01 0 15 000004 		MOVEM T1,LDPLNK		;SAVE LOGICAL LINK
  2490
  2491					; GO ASSEMBLE A NICE "REQUEST DOWN-LINE LOAD" MESSAGE
  2492
  2493	003033'	200 01 0 15 000001 		MOVE T1,LDPLIN		;GET ADDRESS OF LINE TABLE
  2494	003034'	260 17 0 00 006007'		CALL MAKRQL		;GO ASSEMBLE THE NICE MESSAGE
  2495					; SEND A DOWN-LINE LOAD REQUEST TO THE HOST TO LOAD THE DUMP PROGRAM
  2496
  2497					;	MOVE T1,LDPLNK		;GET LOGICAL LINK
  2498					;	MOVE T2,[POINT 8,LODMSG] ;GET POINTER TO NICE LOAD REQUEST MESSAGE
  2499					;	MOVNI T3,LDMSIZ		;GET -COUNT
  2500	003035'	104 00 0 00 000532 		SOUTR			;SEND THE MESSAGE TO THE HOST
  2501	003036'	320 16 0 00 013740'		 ERJMP [RETBAD (.NRNCE)] ;FAILED
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 55
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Line Service Handler

  2502					; MOPDMP - ROUTINE TO DUMP AN ADJACENT NODE'S MEMORY USING THE MOP PROTOCOL
  2503					;
  2504					;ACCEPTS IN T1/	NUMBER OF LOCATIONS TO DUMP
  2505					;	    T2/	ADDRESS OF LINE TABLE
  2506					;		CALL MOPDMP
  2507					;RETURNS: +1	 FAILED
  2508					;	  +2	SUCCESS, DATA RETURNED TO HOST NICE PROCESS
  2509
  2510	003037'	265 16 0 00 003021*	MOPDMP:	ASUBR <MPDNUM,MPDLIN,MPDPTR,MPDCNT>
  2511
  2512					; RECEIVE "MOP MODE RUNNING" MESSAGE FROM DN20
  2513
  2514	003040'	200 01 0 15 000002 		MOVE T1,MPDLIN		;GET ADDRESS OF LINE TABLE
  2515	003041'	260 17 0 00 006455'		CALL DTERCV		;RECEIVE A MOP MESSAGE FROM ADJACENT NODE
  2516	003042'	263 17 0 00 000000 		 RETBAD ()		;FAILED
  2517	003043'	260 17 0 00 003155'		CALL CHKMMR		;GO CHECK MOP MODE RUNNING MSG AND GET COUNT
  2518	003044'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR
  2519	003045'	315 01 0 15 000001 		CAMGE T1,MPDNUM		;MORE MEMORY THERE THAN WAS REQUESTED ?
  2520	003046'	202 01 0 15 000001 		MOVEM T1,MPDNUM		;NO, USE ONLY WHAT IS THERE
  2521
  2522					; SAVE TOTAL NUMBER OF BYTES TO BE DUMPED AND INITIAL DUMP ADDRESS
  2523
  2524	003047'	200 01 0 15 000001 		MOVE T1,MPDNUM		;GET NUMBER OF BYTES REQUESTED
  2525	003050'	275 01 0 00 200000 		SUBI T1,INIDMP		;COMPUTE NUMBER STILL LEFT TO DUMP
  2526	003051'	200 04 0 15 000002 		MOVE T4,MPDLIN		;GET ADDRESS OF LINE TABLE
  2527	003052'	202 01 0 04 000007 		STOR T1,LNDCT,(T4)	;STORE NUMBER OF BYTES LEFT TO DUMP
  2528	003053'	201 01 0 00 200000 		MOVX T1,INIDMP		;GET INITIAL ADDRESS FOR DUMP
  2529	003054'	202 01 0 04 000005 		STOR T1,LNADR,(T4)	;STORE NEXT ADDRESS TO START AT
  2530						;..
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 56
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Line Service Handler

  2531						;..
  2532					; SEND A MOP "REQUEST MEMORY DUMP" MESSAGE TO THE DUMP PROGRAM
  2533
  2534	003055'	200 04 0 15 000002 	MOPD10:	MOVE T4,MPDLIN		;GET ADDRESS OF LINE TABLE
  2535	003056'	200 03 0 04 000007 		LOAD T3,LNDCT,(T4)	;GET NUMBER OF BYTES LEFT TO DUMP
  2536	003057'	323 03 0 00 002620*		JUMPLE T3,RSKP		;IF NO MORE DATA TO DUMP, THEN DONE
  2537	003060'	200 01 0 04 000005 		LOAD T1,LNADR,(T4)	;GET NEXT BYTE TO BE DUMPED
  2538	003061'	201 02 0 00 001773 		MOVX T2,RCVMAX-5	;GET AMOUNT OF MEMORY WE WANT
  2539									; = MAX - NUMBER OF MOP OVERHEAD BYTES
  2540	003062'	311 02 0 00 000003 		CAML T2,T3		;LESS THAN THAT STILL LEFT ?
  2541	003063'	200 02 0 00 000003 		MOVE T2,T3		;YES, USE LESSER AMOUNT
  2542	003064'	200 03 0 04 000006 		LOAD T3,LNMSG,(T4)	;SAVE POINTER TO MOP MESSAGE
  2543	003065'	260 17 0 00 005650'		CALL MAKRQD		;GO MAKE A MOP DUMP REQUEST MESSAGE
  2544	003066'	200 04 0 15 000002 		MOVE T4,MPDLIN		;GET ADDRESS OF LINE TABLE
  2545	003067'	542 02 0 04 000002 		STOR T2,LNCNT,(T4)	;SAVE SIZE OF MOP MESSAGE
  2546	003070'	200 01 0 15 000002 		MOVE T1,MPDLIN		;GET ADDRESS OF LINE TABLE
  2547	003071'	260 17 0 00 006374'		CALL DTESND		;SEND THE "REQUEST DUMP" MOP MESSAGE
  2548	003072'	263 17 0 00 000000 		 RETBAD ()		;FAILED
  2549
  2550					; RECEIVE A MOP "MEMORY DUMP DATA" MESSAGE
  2551
  2552	003073'	200 01 0 15 000002 		MOVE T1,MPDLIN		;GET ADDRESS OF LINE TABLE
  2553	003074'	260 17 0 00 006455'		CALL DTERCV		;RECEIVE A MOP MESSAGE FROM ADJACENT NODE
  2554	003075'	263 17 0 00 000000 		 RETBAD ()		;FAILED
  2555	003076'	202 02 0 15 000004 		MOVEM T2,MPDCNT		;SAVE NUMBER OF BYTES IN MSG RECEIVED
  2556
  2557					; CHECK THE MOP MESSAGE JUST READ
  2558
  2559	003077'	260 17 0 00 003200'		CALL MOPCHK		;GO VERIFY MOP MESSAGE
  2560	003100'	263 17 0 00 000000 		 RETBAD ()		;FAILED
  2561	003101'	200 04 0 15 000002 		MOVE T4,MPDLIN		;GET ADDRESS OF LINE TABLE
  2562	003102'	200 03 0 04 000005 		LOAD T3,LNADR,(T4)	;GET ADDRESS USED FOR THIS DUMP
  2563	003103'	270 03 0 00 000002 		ADD T3,T2		;COMPUTE NEXT ADDRESS TO START AT
  2564	003104'	202 03 0 04 000005 		STOR T3,LNADR,(T4)	;SAVE FOR NEXT PASS
  2565	003105'	200 03 0 04 000007 		LOAD T3,LNDCT,(T4)	;GET TOTAL NUMBER OF BYTES LEFT TO DUMP
  2566	003106'	274 03 0 00 000002 		SUB T3,T2		;COMPUTE TOTAL LEFT AFTER THIS PASS
  2567	003107'	202 03 0 04 000007 		STOR T3,LNDCT,(T4)	;SAVE TOTAL NUMBER OF BYTES LEFT TO DUMP
  2568
  2569					; RETURN THE DUMP DATA TO THE HOST NICE PROCESS
  2570
  2571	003110'	260 17 0 00 003113'		CALL SNDDAT		;GO SEND DUMP DATA BACK TO HOST NICE PROCESS
  2572	003111'	263 17 0 00 000000 		 RETBAD ()		;FAILED
  2573	003112'	254 00 0 00 003055'		JRST MOPD10		;LOOP BACK FOR MORE DATA
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 57
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Line Service Handler

  2574					;SNDDAT - ROUTINE TO RETURN DUMP DATA TO HOST NICE PROCESS
  2575					;
  2576					;ACCEPTS IN T1/	POINTER TO DATA TO BE RETURNED
  2577					;	    T2/	NUMBER OF DATA BYTES TO RETURN
  2578					;		CALL SNDDAT
  2579					;RETURNS: +1	 FAILED
  2580					;	  +2	SUCCESS
  2581
  2582	003113'	265 16 0 00 003037*	SNDDAT:	ASUBR <SDTPTR,SDTCNT>
  2583
  2584	003114'	200 01 0 14 000032 		MOVE T1,REQLNK		;GET LOGICAL LINK TO HOST NICE PROCESS
  2585	003115'	200 02 0 00 013757'		MOVE T2,[POINT 8,[BYTE (8) .LMMEM, .CP11]]
  2586	003116'	211 03 0 00 000002 		MOVNI T3,2		;MESSAGE BEGINS WITH TWO BYTES
  2587	003117'	104 00 0 00 000053 		SOUT			;OUTPUT FIRST PART OF NICE MESSAGE
  2588	003120'	320 16 0 00 013740'		 ERJMP [RETBAD (.NRNCE)] ;FAILED
  2589	003121'	210 03 0 15 000002 		MOVN T3,SDTCNT		;GET -COUNT OF BYTES TO RETURN
  2590	003122'	200 02 0 15 000001 		MOVE T2,SDTPTR		;COPY POINTER TO DATA BYTES
  2591	003123'	104 00 0 00 000532 		SOUTR			;RETURN DATA TO HOST NICE PROCESS
  2592	003124'	320 16 0 00 013656'		 ERJMP [RETBAD (.NRNPE)] ;RETURN ERROR ON FAILURE
  2593	003125'	254 00 0 00 003057*		RETSKP			;DONE, RETURN SUCCESS
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 58
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Line Service Handler

  2594					; ROMDMP - ROUTINE TO DUMP AN ADJACENT PDP-11 USING ITS ROM
  2595					;
  2596					;ACCEPTS IN T1/	ADDRESS OF LINE TABLE
  2597					;		CALL ROMDMP
  2598					;RETURNS: +1	 FAILED
  2599					;	  +2	SUCCESS
  2600
  2601					; GET SOME MEMORY IMAGE DATA FROM THE ADJACENT NODE
  2602
  2603	003126'	265 16 0 00 003113*	ROMDMP:	ASUBR <RDMLIN>
  2604	003127'	200 01 0 15 000001 	RMDMP2:	MOVE T1,RDMLIN		;GET ADDRESS OF LINE TABLE
  2605	003130'	260 17 0 00 006426'		CALL DTEDMP		;GO RECEIVE SOME DATA
  2606	003131'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR TO CALLER
  2607	003132'	200 04 0 15 000001 		MOVE T4,RDMLIN		;GET ADDRESS OF LINE TABLE
  2608	003133'	200 01 0 04 000007 		LOAD T1,LNDCT,(T4)	;GET TOTAL NUMBER OF BYTES LEFT TO DUMP
  2609	003134'	550 02 0 04 000002 		LOAD T2,LNCNT,(T4)	;GET NUMBER OF BYTES JUST DUMPED
  2610	003135'	274 01 0 00 000002 		SUB T1,T2		;COMPUTE NUMBER OF BYTES REMAINING TO BE DUMPED
  2611	003136'	202 01 0 04 000007 		STOR T1,LNDCT,(T4)	;STORE NUMBER OF BYTES STILL LEFT TO DUMP
  2612
  2613					; RETURN THE MEMORY IMAGE DATA TO REQUESTING HOST NCU
  2614
  2615	003137'	200 01 0 15 000001 		MOVE T1,RDMLIN		;GET ADDRESS OF LINE TABLE
  2616	003140'	200 01 0 01 000006 		LOAD T1,LNMSG,(T1)	;GET POINTER TO DUMP DATA
  2617	003141'	201 01 1 00 000001 		MOVEI T1,@T1		;GET ADDRESS OF DUMP DATA
  2618	003142'	260 17 0 00 005450'		CALL MAKIMD		;GO MAKE A DUMP DIALOG MEMORY IMAGE MESSAGE
  2619	003143'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR
  2620	003144'	210 03 0 00 000002 		MOVN T3,T2		;GET -COUNT
  2621	003145'	200 02 0 00 000001 		MOVE T2,T1		;COPY POINTER TO MEMORY IMAGE DATA MESSAGE
  2622	003146'	200 01 0 14 000032 		MOVE T1,REQLNK		;GET LOGICAL LINK (JFN) TO HOST NCU
  2623	003147'	104 00 0 00 000532 		SOUTR			;SEND THE MEMORY IMAGE MESSAGE BACK TO THE HOST
  2624	003150'	320 16 0 00 013740'		 ERJMP [RETBAD (.NRNCE)] ;FAILED, "NETWORK COMMUNICATIONS ERROR"
  2625
  2626					; IF THERE IS MORE DATA TO DUMP, LOOP BACK AND GET MORE DATA FROM DTE
  2627
  2628	003151'	200 04 0 15 000001 		MOVE T4,RDMLIN		;GET ADDRESS OF LINE TABLE
  2629	003152'	332 00 0 04 000007 		JN LNDCT,(T4),RMDMP2	;LOOP BACK IF THERE IS MORE DATA TO DUMP
  2630	003153'	254 00 0 00 003127'
  2631	003154'	254 00 0 00 003125*		RETSKP			;DONE, RETURN
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 59
NCU	MAC	 6-Oct-81 12:41		NICE Process -- Line Service Handler

  2632					;CHKMMR - ROUTINE TO CHECK A "MOP MODE RUNNING" MESSAGE FROM ADJACENT DN20
  2633					;
  2634					;ACCEPTS IN T1/	POINTER TO MOP MESSAGE
  2635					;	    T2/ NUMBER OF BYTES IN MOP MESSAGE
  2636					;		CALL CHKMMR
  2637					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  2638					;	  +2	SUCCESS, WITH T1/ SIZE OF MEMORY TO BE DUMPED
  2639
  2640	003155'	265 16 0 00 003126*	CHKMMR:	ASUBR <CMRPTR,CMRCNT>
  2641
  2642	003156'	302 02 0 00 000010 		CAIE T2,^D8		;CORRECT NUMBER OF BYTES IN MESSAGE ?
  2643	003157'	254 00 0 00 013542'		RETBAD (.NRIMF)		;NO, FAIL
  2644	003160'	134 04 0 00 000001 		ILDB T4,T1		;GET MOP FUNCTION CODE
  2645	003161'	302 04 0 00 000014 		CAIE T4,.MPMMR		;MOP MODE RUNNING ?
  2646	003162'	254 00 0 00 013542'		RETBAD (.NRIMF)		;NO, FAIL
  2647	003163'	134 04 0 00 000001 		ILDB T4,T1		;GET DEVICE TYPE
  2648	003164'	302 04 0 00 000024 		CAIE T4,.DTDTE		;DTE20 ?
  2649	003165'	254 00 0 00 013670'		RETBAD (.NRILN)		;NO, FAIL
  2650	003166'	134 04 0 00 000001 		ILDB T4,T1		;GET STATION ADDRESS
  2651	003167'	302 04 0 00 000001 		CAIE T4,1		;PT - TO - PT ?
  2652	003170'	254 00 0 00 013542'		RETBAD (.NRIMF)		;NO, FAIL
  2653	003171'	260 17 0 00 004613'		CALL GETMEM		;GO GET MEMORY SIZE
  2654	003172'	263 17 0 00 000000 		 RETBAD ()		;FAILED, BAD MESSAGE
  2655	003173'	134 04 0 00 000001 		ILDB T4,T1		;GET FEATURES MASK
  2656	003174'	606 04 0 00 000002 		TXNN T4,MP%DMP		;DUMP SUPPORTED ?
  2657	003175'	254 00 0 00 013540'		RETBAD (.NRFNC)		;NO, FAIL
  2658	003176'	200 01 0 00 000003 		MOVE T1,T3		;GET MEMORY SIZE
  2659	003177'	254 00 0 00 003154*		RETSKP			;DONE, RETURN SUCCESS
  2660
  2661
  2662
  2663
  2664					; MOPCHK - ROUTINE TO CHECK MOP "MEMORY DUMP DATA" MESSAGE
  2665					;
  2666					;ACCEPTS IN T1/	POINTER TO START OF MOP "MEMORY DUMP DATA" MESSAGE
  2667					;	    T2/	NUMBER OF BYTES IN MOP MESSAGE
  2668					;		CALL MOPCHK
  2669					;RETURNS: +1	 FAILED
  2670					;	  +2	SUCCESS, WITH T1/ POINTER TO START OF DATA IN MSG
  2671					;			      T2/ NUMBER OF DATA BYTES IN THE MSG
  2672
  2673	003200'	375 00 0 00 000002 	MOPCHK:	SOSGE T2		;AT LEAST ONE BYTE IN MESSAGE
  2674	003201'	254 00 0 00 013542'		RETBAD (.NRIMF)		;NO, NOT EVEN A FUNCTION CODE THERE !
  2675	003202'	134 04 0 00 000001 		ILDB T4,T1		;GET MOP FUNCTION CODE
  2676	003203'	302 04 0 00 000016 		CAIE T4,.MPDMP		;MEMORY DUMP DATA ?
  2677	003204'	254 00 0 00 013542'		RETBAD (.NRIMF)		;FAILED, INVALID MESSAGE FORMAT
  2678	003205'	260 17 0 00 004613'		CALL GETMEM		;GO GET MEMORY ADDRESS FROM MESSAGE
  2679	003206'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR
  2680	003207'	254 00 0 00 003177*		RETSKP			;DONE, RETURN SUCCESS
  2681
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 60
NCU	MAC	 6-Oct-81 12:41		NICE Process --  Event Logger

  2682					SUBTTL	NICE Process --  Event Logger
  2683
  2684	003210'	265 16 0 00 000000*	REQLOG:	SAVEPQ
  2685	003211'	265 16 0 00 002415*		STKVAR <<RLGSRC,2>,RLGSEQ,RLGOPT>
  2686	003212'	000004	000004
  2687
  2688					; EXTRACT FIELDS FROM THE INITIAL PART OF THE NICE MESSAGE
  2689
  2690	003213'	260 17 0 00 004340'		CALL GETFCN		;EXTRACT FUNCTION CODE FROM MESSAGE
  2691	003214'	263 17 0 00 000000 		 RETBAD ()		;FAILED
  2692	003215'	260 17 0 00 004344'		CALL GETOPT		;GET THE OPTION FROM THE MESSAGE
  2693	003216'	263 17 0 00 000000 		 RETBAD ()		;FAILED
  2694	003217'	202 04 0 17 777773 		MOVEM T4,RLGOPT		;SAVE OPTION CODE
  2695	003220'	541 03 0 17 777775 		HRRI T3,RLGSRC		;GET ADDRESS OF SOURCE NODE NAME STRING
  2696	003221'	505 03 0 00 440700 		HRLI T3,(POINT 7,)	;FORM POINTER TO STRING DESTINATION
  2697	003222'	260 17 0 00 004474'		CALL GETIMA		;GO EXTRACT SOURCE NODE NAME
  2698	003223'	263 17 0 00 000000 		 RETBAD ()		;FAILED
  2699	003224'	505 03 0 00 440000 		HRLI T3,440000		;USE POINTER WITH ZERO SIZE FIELD TO DISCARD
  2700	003225'	260 17 0 00 004474'		CALL GETIMA		; IMAGE ASCII FIELD HOLDING SOURCE COMPONENT
  2701	003226'	263 17 0 00 000000 		 RETBAD ()		;FAILED
  2702	003227'	260 17 0 00 005221'		CALL GETSEQ		;GET SEQUENCE NUMBER FROM MESSAGE
  2703	003230'	263 17 0 00 000000 		 RETBAD ()		;FAILED
  2704	003231'	202 03 0 17 777774 		MOVEM T3,RLGSEQ		;SAVE SEQUENCE NUMBER
  2705
  2706					; EXTRACT EVENT TYPE CODE FROM MESSAGE AND DISPATCH TO PROCESSING ROUTINE
  2707
  2708	003232'	260 17 0 00 005225'		CALL GETEVT		;GO GET EVENT CODE FROM NICE MESSAGE
  2709	003233'	263 17 0 00 000000 		 RETBAD ()		;FAILED
  2710	003234'	540 04 0 00 000003 		HRR T4,T3		;COPY EVENT CODE
  2711	003235'	504 04 0 17 777774 		HRL T4,RLGSEQ		;GET SEQUENCE NUMBER
  2712	003236'	541 03 0 17 777775 		HRRI T3,RLGSRC		;GET ADDRESS OF SOURCE NODE NAME
  2713	003237'	505 03 0 00 440700 		HRLI T3,(POINT 7,)	;FORM POINTER TO NAME
  2714	003240'	260 17 0 00 003243'		CALL DOLOG		;GO MAKE THE LOG ENTRY
  2715	003241'	263 17 0 00 000000 		 RETBAD ()		;FAILED
  2716	003242'	254 00 0 00 003207*		RETSKP			;DONE, RETURN SUCCESS
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 61
NCU	MAC	 6-Oct-81 12:41		NICE Process --  Event Logger

  2717					;DOLOG - ROUTINE TO LOG DATA FROM THE NETWORK
  2718					;
  2719					;ACCEPTS IN T1/	POINTER TO "LOG DATA" PORTION OF NICE REQUEST-LOG MESSAGE
  2720					;	    T2/	NUMBER OF BYTES REMAINING IN NICE MESSAGE
  2721					;	    T3/	POINTER TO SOURCE NODE NAME
  2722					;	    T4/	SEQUENCE NUMBER,,EVENT CODE (.EVXXX)
  2723
  2724	003243'	265 16 0 00 003210*	DOLOG:	SAVEPQ
  2725	003244'	265 16 0 00 003155*		ASUBR <DLGPTR,DLGCNT,DLGSRC,DLGEVT>
  2726	003245'	265 16 0 00 003211*		STKVAR <DLGSEQ>
  2727	003246'	000001	000001
  2728	003247'	556 04 0 17 777776 		HLRZM T4,DLGSEQ		;STORE SEQUENCE NUMBER
  2729	003250'	553 00 0 15 000004 		HRRZS DLGEVT		;KEEP JUST EVENT CODE
  2730
  2731					; VALIDATE EVENT CODE
  2732
  2733	003251'	200 04 0 15 000004 		MOVE T4,DLGEVT		;GET EVENT CODE TYPE
  2734	003252'	303 04 0 00 000005 		CAILE T4,EVTSIZ-1	;WITHIN VALID RANGE ?
  2735	003253'	254 00 0 00 013711'		RETBAD (.NRIPV)		;NO, INVALID PARAMETER VALUE
  2736
  2737					; ASSIGN A PAGE FOR THE SYSERR ENTRY
  2738
  2739	003254'	260 17 0 00 002235*		CALL ASGPAG		;ASSIGN A PAGE TO HOLD SYSERR ENTRY
  2740	003255'	263 17 0 00 000000 	 	 RETBAD ()		;FAILED
  2741	003256'	201 10 0 02 000000 		MOVEI P1,(T2)		;SAVE BASE ADDRESS OF SYSERR ENTRY
  2742	003257'	201 11 0 10 000004 		MOVEI P2,.SYDAT(P1)	;GET ADR OF NETWORK HEADER PART OF ENTRY
  2743
  2744					; SET UP NETWORK HEADER PART OF SYSERR ENTRY WITH COMMON INFO
  2745
  2746	003260'	200 01 0 00 000010 		MOVE T1,P1		;GET BASE ADDRESS OF SYSERR ENTRY
  2747	003261'	200 02 0 15 000003 		MOVE T2,DLGSRC		;GET POINTER TO SOURCE NODE
  2748	003262'	200 03 0 17 777776 		MOVE T3,DLGSEQ		;GET SEQUENCE NUMBER
  2749	003263'	260 17 0 00 004025'		CALL EVTSYR		;SET UP NETWORK HEADER
  2750	003264'	254 00 0 00 003303'		 JRST DOLOGX		;FAILED, GO RELEASE PAGE
  2751
  2752					; DISPATCH TO PROPER PROCESSING ROUTINE FOR THIS EVENT TYPE
  2753
  2754	003265'	200 03 0 00 000001 		MOVE T3,T1		;GET NEXT ADR TO USE IN SYSERR ENTRY
  2755	003266'	200 01 0 15 000001 		MOVE T1,DLGPTR		;GET POINTER TO REMAINDER OF NICE MESSAGE
  2756	003267'	200 02 0 15 000002 		MOVE T2,DLGCNT		;GET NUMBER OF BYTES LEFT IN MESSAGE
  2757	003270'	200 04 0 15 000004 		MOVE T4,DLGEVT		;GET EVENT TYPE CODE
  2758	003271'	260 17 1 04 003310'		CALL @EVTTAB(T4)	;YES, DISPATCH TO PROCESSING ROUTINE
  2759	003272'	254 00 0 00 003303'		 JRST DOLOGX		;FAILED, RELEASE SYSERR PAGE
  2760	003273'	137 02 0 00 013760'		STOR T2,SYLEN,(P1)	;STORE LENGTH OF ENTRY
  2761	003274'	200 01 0 00 000010 		MOVE T1,P1		;GET BASE ADDRESS OF SYSERR ENTRY (LENGTH IN T2)
  2762	003275'	104 00 0 00 000527 		SYERR			;RECORD THE SYSERR ENTRY
  2763						 ERJMP [ NON.FATAL.ERROR (.ERR29) ;COULD NOT MAKE SYSERR ENTRY
  2764	003276'	320 16 0 00 013764'			 JRST .+1 ]
  2765	003277'	200 01 0 00 000010 		MOVE T1,P1		;GET ADDRESS OF SYSERR PAGE
  2766	003300'	260 17 0 00 002303*		CALL RELPGA		;RELEASE THE PAGE
  2767	003301'	260 17 0 00 002304*		 NON.FATAL.ERROR	;FAILED
  2768	003302'	254 00 0 00 003242*		RETSKP			;DONE, RETURN SUCCESS
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 62
NCU	MAC	 6-Oct-81 12:41		NICE Process --  Event Logger

  2769
  2770					; HERE ON ERROR WITH SYSERR PAGE ASSIGNED
  2771
  2772	003303'	250 01 0 00 000010 	DOLOGX:	EXCH T1,P1		;SAVE ERROR CODE, GET ADDRESS OF SYSERR PAGE
  2773	003304'	260 17 0 00 003300*		CALL RELPGA		;RELEASE THE PAGE
  2774	003305'	260 17 0 00 003301*		 NON.FATAL.ERROR	;FAILED
  2775	003306'	200 01 0 00 000010 		MOVE T1,P1		;RESTORE ERROR CODE
  2776	003307'	263 17 0 00 000000 		RETBAD ()		;FAIL
  2777
  2778
  2779
  2780
  2781
  2782					; TABLE OF EVENT CODE PROCESSING ROUTINES
  2783
  2784	003310'	000000	013766'		EVTTAB:	[RETBAD (.NRIPV)]	;  0 - ILLEGAL
  2785	003311'	000000	004057'			EVTASC			;  1 - ASCII INFORMATION
  2786	003312'	000000	003316'			EVTEXA			;  2 - EXTENDED ASCII INFORMATION
  2787	003313'	000000	003503'			EVTHDW			;  3 - HARDWARE ERROR
  2788	003314'	000000	004060'			EVTSFT			;  4 - SOFTWARE ERROR
  2789	003315'	000000	003403'			EVTTOP			;  5 - TOPOLOGY CHANGE
  2790
  2791			000006		EVTSIZ==.-EVTTAB
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 63
NCU	MAC	 6-Oct-81 12:41		NICE Process --  Event Logger

  2792
  2793	003316'	265 16 0 00 003243*	EVTEXA:	SAVEPQ
  2794	003317'	265 16 0 00 003244*		ASUBR <EVAPTR,EVACNT,EVALGD,EVAMSG>
  2795	003320'	265 16 0 00 003245*		STKVAR <EVATMP,EVABLK>
  2796	003321'	000002	000002
  2797	003322'	402 00 0 00 000013 		SETZM P4		;INITIALIZE "NOT DONE YET" FLAG
  2798
  2799					; SET UP TO ADD CHK11 TEXT TO SYSERR ENTRY
  2800
  2801	003323'	505 03 0 00 440700 		HRLI T3,(POINT 7,)	;FORM POINTER TO WHERE TEXT WILL GO
  2802	003324'	202 03 0 15 000004 		MOVEM T3,EVAMSG		;SAVE POINTER TO TEXT
  2803	003325'	200 01 0 15 000001 		MOVE T1,EVAPTR		;GET POINTER TO NICE MESSAGE
  2804	003326'	200 02 0 15 000002 		MOVE T2,EVACNT		;GET NUMBER OF BYTES LEFT IN NICE MESSAGE
  2805
  2806					; LOOP TO ADD EACH MESSAGE-FUL OF TEXT TO SYSERR ENTRY
  2807
  2808	003327'	260 17 0 00 004635'	EVTA05:	CALL GETFLD		;GO EXTRACT FIELD FROM EVENT LOGGING MESSAGE
  2809	003330'	263 17 0 00 000000 		 RETBAD ()		;FAILED
  2810	003331'	202 04 0 17 777775 		MOVEM T4,EVABLK		;SAVE EVENT BLOCK ADDRESS
  2811	003332'	302 03 0 00 000016 		CAIE T3,.EDTXT		;ASCII DATA TYPE CODE ?
  2812	003333'	254 00 0 00 003327'		JRST EVTA05		;NO, IGNORE IT - GO GET NEXT FIELD
  2813	003334'	134 01 0 00 000004 		ILDB T1,T4		;GET FIRST CHARACTER IN STRING
  2814	003335'	306 01 0 00 000000 		CAIN T1,0		;LAST MESSAGE ?
  2815	003336'	476 00 0 00 000013 		SETOM P4		;YES, NOTE BY SETTING FLAG
  2816	003337'	200 01 0 15 000004 		MOVE T1,EVAMSG		;GET DESTINATION POINTER FOR TEXT
  2817	003340'	202 01 0 17 777776 		MOVEM T1,EVATMP		;SAVE POINTER TO FIRST DATA BYTE
  2818	003341'	200 02 0 17 777775 		MOVE T2,EVABLK		;GET SOURCE TEXT POINTER
  2819	003342'	402 00 0 00 000003 		SETZM T3		;TERMINATE ON NULL
  2820	003343'	104 00 0 00 000053 		SOUT			;ACCUMULATE TEXT
  2821	003344'	202 01 0 15 000004 		MOVEM T1,EVAMSG		;SAVE UPDATED DESTINATION POINTER
  2822	003345'	200 01 0 17 777775 		MOVE T1,EVABLK		;GET BLOCK ADDRESS AGAIN
  2823	003346'	260 17 0 00 000655*		CALL RELFRE		;RELEASE THE BLOCK
  2824	003347'	254 00 0 00 013623'		 FATAL.ERROR		; Die on release failure
  2825	003350'	200 01 0 17 777776 		MOVE T1,EVATMP		;GET POINTER TO TEXT MESSAGE
  2826	003351'	332 00 0 00 000013 		SKIPE P4		;GOT LAST MESSAGE YET ?
  2827	003352'	254 00 0 00 003365'		JRST EVTA10		;YES, GO MAKE SYSERR ENTRY
  2828	003353'	200 01 0 14 000032 		MOVE T1,REQLNK		;GET LOGICAL LINK FROM REQUESTING TASK
  2829	003354'	541 02 0 14 000033 		HRRI T2,MSGBLK		;GET ADDRESS OF NICE MESSAGE AREA
  2830	003355'	505 02 0 00 441000 		HRLI T2,(POINT 8,)	;FORM POINTER TO NICE MESSAGE DESTINATION
  2831	003356'	211 03 0 00 014000 		MOVNI T3,MSGSIZ*BPWRD	;GET MAX COUNT
  2832	003357'	104 00 0 00 000531 		SINR			;GET NEXT BLOCK OF TEXT
  2833	003360'	320 16 0 00 013740'		 ERJMP [RETBAD (.NRNCE)] ;FAILED, "NETWORK COMMUNICATIONS ERROR"
  2834	003361'	201 02 0 03 014000 		MOVEI T2,MSGSIZ*BPWRD(T3) ;GET NUMBER OF BYTES IN MESSAGE
  2835	003362'	541 01 0 14 000033 		HRRI T1,MSGBLK		;GET ADDRESS OF NICE MESSAGE AREA
  2836	003363'	505 01 0 00 441000 		HRLI T1,(POINT 8,)	;FORM POINTER TO NICE MESSAGE DESTINATION
  2837	003364'	254 00 0 00 003327'		JRST EVTA05		;GO EXTRACT TEXT FROM NEXT MESSAGE
  2838
  2839					; HERE WHEN ALL ASCII DATA EXTRACTED
  2840
  2841	003365'	201 04 0 00 000222 	EVTA10:	MOVX T4,SY%CHK		;CHK11 ENTRY TYPE CODE
  2842	003366'	137 04 0 00 013767'		STOR T4,SYCOD,(P1)	;STORE ENTRY TYPE CODE IN SYSERR ENTRY
  2843	003367'	550 02 0 15 000004 		HRRZ T2,EVAMSG		;GET LAST ADDRESS USED IN SYSERR ENTRY
  2844	003370'	274 02 0 15 000003 		SUB T2,EVALGD		;COMPUTE NUMBER OF WORDS IN LOG DATA SECTION
  2845	003371'	210 02 0 00 000002 		MOVN T2,T2		;GET -NUMBER OF WORDS
  2846	003372'	514 02 0 00 000002 		HRLZ T2,T2		;GET -COUNT,,0
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 63-1
NCU	MAC	 6-Oct-81 12:41		NICE Process --  Event Logger

  2847	003373'	200 03 0 15 000003 		MOVE T3,EVALGD		;GET LOG DATA STARTING ADDRESS
  2848	003374'	274 03 0 00 000011 		SUB T3,P2		;COMPUTE OFFSET TO LOG DATA
  2849	003375'	541 02 0 03 000000 		HRRI T2,(T3)		;FORM SYSERR POINTER TO LOG DATA SECTION
  2850	003376'	202 02 0 11 000014 		STOR T2,SYPTR,(P2)	;STORE POINTER TO LOG DATA SECTION
  2851	003377'	550 02 0 15 000004 		HRRZ T2,EVAMSG		;GET LAST ADDRESS USED IN SYSERR ENTRY
  2852	003400'	274 02 0 00 000010 		SUB T2,P1		;COMPUTE SIZE OF ENTIRE ENTRY
  2853	003401'	137 02 0 00 013760'		STOR T2,SYLEN,(P1)	;STORE LENGTH OF ENTRY
  2854	003402'	254 00 0 00 003302*		RETSKP			;DONE, RETURN
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 64
NCU	MAC	 6-Oct-81 12:41		NICE Process --  Event Logger

  2855					;EVTTOP - ROUTINE TO HANDLE TOPOLOGY CHANGE LOGGING MESSAGES
  2856
  2857	003403'	265 16 0 00 003316*	EVTTOP:	SAVEPQ
  2858	003404'	265 16 0 00 003320*		STKVAR <ETPNOD,ETPLID,ETPDST,ETPERR,ETPRSN>
  2859	003405'	000005	000005
  2860	003406'	202 03 0 17 777774 		MOVEM T3,ETPDST		;SAVE DESTINATION FOR NEXT ITEM IN SYSERR ENTRY
  2861
  2862					; INITIALIZE VARIABLES
  2863
  2864	003407'	402 00 0 17 777776 		SETZM ETPNOD		;NODE ID
  2865	003410'	402 00 0 17 777775 		SETZM ETPLID		;LINE ID
  2866	003411'	402 00 0 17 777772 		SETZM ETPRSN		;REASON CODE
  2867
  2868					; LOOP OVER EACH FIELD IN THE MESSAGE
  2869
  2870	003412'	322 02 0 00 003436'	ETP010:	JUMPE T2,ETP020		;IF NO MORE FIELDS, GO MAKE SYSERR ENTRY
  2871	003413'	260 17 0 00 004635'		CALL GETFLD		;GO EXTRACT NEXT FIELD FROM NICE LOG MESSAGE
  2872	003414'	254 00 0 00 003466'		 JRST EVTTPX		;FAILED, RELEASE ANY ASSIGNED RESOURCES
  2873	003415'	301 03 0 00 000015 		CAIL T3,ETPLEN		;DATA TYPE CODE WITHIN RANGE ?
  2874						JRST [	MOVX T1,.NRIMF	;NO, BAD MESSAGE FORMAT
  2875	003416'	254 00 0 00 013770'			JRST EVTTPX ]	;RETURN ERROR
  2876	003417'	254 00 1 03 003421'		JRST @ETPTAB(T3)	;STORE ITEM FROM LOG MESSAGE
  2877									; (EACH PROCESSING ROUTINE RETURNS TO ETP015)
  2878	003420'	254 00 0 00 003412'	ETP015:	JRST ETP010		;LOOP BACK FOR NEXT FIELD IN MESSAGE
  2879
  2880					; TABLE OF ROUTINES TO STORE DATA FOR TOPOLOGY CHANGE ENTRIES
  2881
  2882	003421'	000000	003466'		ETPTAB:	EVTTPX			;  0 - ILLEGAL
  2883	003422'	000000	003466'			EVTTPX			;  1 - GENERAL DATA
  2884	003423'	000000	003420'			ETP015			;  2 - TIME OF DAY (NOT USED)
  2885	003424'	000000	003420'			ETP015			;  3 - DATE (NOT USED)
  2886	003425'	000000	003466'			EVTTPX			;  4 - UPTIME
  2887	003426'	000000	003501'			ESTLID			;  5 - LINE ID
  2888	003427'	000000	003475'			ESTRSN			;  6 - REASON CODE
  2889	003430'	000000	003466'			EVTTPX			;  7 - RECOVERY
  2890	003431'	000000	003466'			EVTTPX			;  8 - OPERATING SYSTEM ID
  2891	003432'	000000	003477'			ESTNOD			;  9 - NODE ID
  2892	003433'	000000	003466'			EVTTPX			; 10 - MICROCODE INFO
  2893	003434'	000000	003466'			EVTTPX			; 11 - LINE PROTOCOL
  2894	003435'	000000	003466'			EVTTPX			; 12 - TRANSMISSION PROTOCOL
  2895
  2896			000015		ETPLEN==.-ETPTAB
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 65
NCU	MAC	 6-Oct-81 12:41		NICE Process --  Event Logger

  2897					; HERE WHEN ALL FIELDS EXTRACTED FROM MESSAGE
  2898
  2899	003436'				ETP020:
  2900
  2901					; ADD ADJACENT NODE NAME TO NETWORK HEADER
  2902
  2903	003436'	200 03 0 17 777774 		MOVE T3,ETPDST		;COPY DESTINATION ADDRESS FOR STRING
  2904	003437'	200 02 0 17 777776 		MOVE T2,ETPNOD		;GET POINTER TO NODE NAME
  2905	003440'	200 01 0 00 000010 		MOVE T1,P1		;GET ADDRESS OF SYSERR ENTRY
  2906	003441'	260 17 0 00 007630'		CALL SYRSTR		;ADD STRING TO ENTRY
  2907	003442'	254 00 0 00 003466'		 JRST EVTTPX		;FAILED
  2908	003443'	202 02 0 11 000003 		STOR T2,SYADJ,(P2)	;STORE POINTER TO ADJACENT NODE
  2909	003444'	202 01 0 17 777774 		MOVEM T1,ETPDST		;UPDATE NEXT ADDRESS TO USE IN SYSERR ENTRY
  2910
  2911					; STORE REASON CODE AND LINE ID
  2912
  2913	003445'	336 04 0 17 777772 		SKIPN T4,ETPRSN		;GET REASON CODE
  2914	003446'	254 00 0 00 003450'		JRST ETP030		;NONE SUPPLIED
  2915	003447'	542 04 0 11 000013 		STOR T4,SYRSN,(P2)	;STORE REASON IN NETWORK HEADER OF SYSERR ENTRY
  2916	003450'	336 04 0 17 777775 	ETP030:	SKIPN T4,ETPLID		;GET ADDRESS OF BLOCK HOLDING LINE ID
  2917	003451'	254 00 0 00 003456'		JRST ETP040		;NO LINE ID SUPPLIED
  2918	003452'	200 03 0 04 000001 		MOVE T3,1(T4)		;GET FIRST WORD OF LINE ID
  2919	003453'	202 03 0 11 000007 		STOR T3,SYLID,(P2)	;STORE FIRST PART OF LINE ID
  2920	003454'	200 03 0 04 000002 		MOVE T3,2(T4)		;GET SECOND WORD OF LINE ID
  2921	003455'	202 03 0 11 000010 		STOR T3,SYLI1,(P2)	;STORE SECOND SECTION OF LINE ID
  2922
  2923					; HERE WHEN DONE, RELEASE RESOURCES AND RETURN
  2924
  2925	003456'	332 01 0 17 777776 	ETP040:	SKIPE T1,ETPNOD		;ANY NODE ID YET ?
  2926						JRST [	CALL RELFRE	;YES, RELEASE NODE NAME
  2927							 FATAL.ERROR	; Die on release failure
  2928	003457'	254 00 0 00 013772'			JRST .+1 ]
  2929	003460'	332 01 0 17 777775 		SKIPE T1,ETPLID		;ANY LINE ID YET ?
  2930						JRST [	CALL RELFRE	;YES, RELEASE LINE ID
  2931							 FATAL.ERROR	; Die on release failure
  2932	003461'	254 00 0 00 013775'			JRST .+1 ]
  2933	003462'	200 02 0 17 777774 		MOVE T2,ETPDST		;GET NEXT ADDRESS TO USE IN SYSERR ENTRY
  2934	003463'	274 02 0 00 000010 		SUB T2,P1		;COMPUTE SIZE OF SYSERR ENTRY
  2935	003464'	201 01 0 00 000221 		MOVX T1,SY%TOP		;GET TOPOLOGY CHANGE EVENT CODE
  2936	003465'	254 00 0 00 003402*		RETSKP			;DONE, RETURN SUCCESS
  2937
  2938
  2939					; HERE ON AN ERROR TO RELEASE ANY ASSIGNED RESOURCES
  2940
  2941	003466'	202 01 0 17 777773 	EVTTPX:	MOVEM T1,ETPERR		;SAVE ERROR CODE
  2942	003467'	332 01 0 17 777776 		SKIPE T1,ETPNOD		;ANY NODE ID YET ?
  2943						JRST [	CALL RELFRE	;YES, RELEASE NODE NAME
  2944							 FATAL.ERROR
  2945	003470'	254 00 0 00 014000'			JRST .+1 ]
  2946	003471'	332 01 0 17 777775 		SKIPE T1,ETPLID		;ANY LINE ID YET ?
  2947						JRST [	CALL RELFRE	;YES, RELEASE LINE ID
  2948							 FATAL.ERROR
  2949	003472'	254 00 0 00 014003'			JRST .+1 ]
  2950	003473'	200 01 0 17 777773 		MOVE T1,ETPERR		;RESTORE ERROR CODE
  2951	003474'	263 17 0 00 000000 		RETBAD ()		;FAIL
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 65-1
NCU	MAC	 6-Oct-81 12:41		NICE Process --  Event Logger

  2952
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 66
NCU	MAC	 6-Oct-81 12:41		NICE Process --  Event Logger

  2953					; ROUTINES TO STORE INFO USED TO MAKE TOPOLOGY CHANGE SYSERR ENTRIES
  2954
  2955	003475'	202 04 0 17 777772 	ESTRSN:	MOVEM T4,ETPRSN		;STORE REASON CODE
  2956	003476'	254 00 0 00 003420'		JRST ETP015		;DONE, RETURN
  2957
  2958
  2959	003477'	202 04 0 17 777776 	ESTNOD:	MOVEM T4,ETPNOD		;STORE POINTER TO NODE NAME
  2960	003500'	254 00 0 00 003420'		JRST ETP015		;DONE, RETURN
  2961
  2962	003501'	202 04 0 17 777775 	ESTLID:	MOVEM T4,ETPLID		;STORE POINTER TO LINE ID
  2963	003502'	254 00 0 00 003420'		JRST ETP015		;DONE, RETURN
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 67
NCU	MAC	 6-Oct-81 12:41		NICE Process --  Event Logger

  2964
  2965					;EVTHDW - ROUTINE TO PROCESS HARDWARE EVENT LOG ENTRIES
  2966
  2967	003503'	265 16 0 00 003403*	EVTHDW:	SAVEPQ
  2968						STKVAR <HDWNOD,HDWDEV,HDWREG,HDWUPT,HDWDAT,HDWRSN,HDWRCV,HDWOPS,HDWERR,HDWMCD,HDWDST
  2969	003504'	265 16 0 00 003404*	,HDWTHR,HDWLXX>
  2970	003505'	000015	000015
  2971
  2972	003506'	202 03 0 17 777764 		MOVEM T3,HDWDST		;SAVE NEXT ADR TO USE IN SYSERR ENTRY
  2973
  2974					; INITIALIZE VARIABLES
  2975
  2976	003507'	476 00 0 17 777763 		SETOM HDWTHR		;NO THRESHOLD VALUE YET
  2977	003510'	402 00 0 17 777776 		SETZM HDWNOD		;NO NODE NAME YET
  2978	003511'	402 00 0 17 777775 		SETZM HDWDEV		;NO DEVICE YET
  2979	003512'	402 00 0 17 777774 		SETZM HDWREG		;NO REGISTER DATA YET
  2980	003513'	402 00 0 17 777773 		SETZM HDWUPT		;NO UPTIME YET
  2981	003514'	402 00 0 17 777772 		SETZM HDWDAT		;NO DATE YET
  2982	003515'	402 00 0 17 777771 		SETZM HDWRSN		;NO REASON CODE YET
  2983	003516'	476 00 0 17 777770 		SETOM HDWRCV		;NO RECOVERY CODE YET
  2984	003517'	402 00 0 17 777767 		SETZM HDWOPS		;NO OPERATING SYSTEM ID YET
  2985	003520'	402 00 0 17 777765 		SETZM HDWMCD		;NO MICROCODE ID YET
  2986
  2987					; LOOP OVER EACH FIELD IN THE MESSAGE
  2988
  2989	003521'	322 02 0 00 003555'	HDW010:	JUMPE T2,HDW020		;IF NO MORE FIELDS, GO MAKE SYSERR ENTRY
  2990	003522'	260 17 0 00 004635'		CALL GETFLD		;GO EXTRACT NEXT FIELD FROM NICE LOG MESSAGE
  2991	003523'	254 00 0 00 003546'		 JRST EVTHDX		;FAILED, RELEASE ANY ASSIGNED RESOURCES
  2992	003524'	301 03 0 00 000016 		CAIL T3,HDWLEN		;DATA TYPE CODE WITHIN RANGE ?
  2993						JRST [	MOVX T1,.NRIMF	;NO, BAD MESSAGE FORMAT
  2994	003525'	254 00 0 00 014006'			JRST EVTHDX ]	;RETURN ERROR
  2995	003526'	254 00 1 03 003530'		JRST @HDWTAB(T3)	;STORE ITEM FROM LOG MESSAGE
  2996									; (EACH PROCESSING ROUTINE RETURNS TO HDW015)
  2997	003527'	254 00 0 00 003521'	HDW015:	JRST HDW010		;LOOP BACK FOR NEXT FIELD IN MESSAGE
  2998
  2999					; TABLE OF ROUTINES TO STORE DATA FOR HARDWARE ENTRIES
  3000
  3001	003530'	000000	003546'		HDWTAB:	EVTHDX			;  0 - ILLEGAL
  3002	003531'	000000	004005'			HSTREG			;  1 - REGISTER DATA
  3003	003532'	000000	003527'			HDW015			;  2 - TIME OF DAY (NOT USED)
  3004	003533'	000000	003527'			HDW015			;  3 - DATE (NOT USED)
  3005	003534'	000000	004007'			HSTUPT			;  4 - UPTIME
  3006	003535'	000000	004003'			HSTDEV			;  5 - LINE ID
  3007	003536'	000000	004011'			HSTRSN			;  6 - REASON CODE
  3008	003537'	000000	003527'			HDW015			;  7 - RECOVERY (IGNORED)
  3009	003540'	000000	004015'			HSTOPS			;  8 - OPERATING SYSTEM ID
  3010	003541'	000000	004021'			HSTNOD			;  9 - NODE ID
  3011	003542'	000000	004017'			HSTMCD			; 10 - MICROCODE INFO
  3012	003543'	000000	003546'			EVTHDX			; 11 - LINE PROTOCOL
  3013	003544'	000000	003546'			EVTHDX			; 12 - TRANSMISSION PROTOCOL
  3014	003545'	000000	004023'			HSTTHR			; 13 - THRESHOLD VALUE
  3015
  3016			000016		HDWLEN==.-HDWTAB
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 68
NCU	MAC	 6-Oct-81 12:41		NICE Process --  Event Logger

  3017
  3018
  3019	003546'	202 01 0 17 777766 	EVTHDX:	MOVEM T1,HDWERR		;SAVE ERROR CODE
  3020	003547'	332 01 0 17 777775 		SKIPE T1,HDWDEV		;ANY DEVICE YET ?
  3021						JRST [	CALL RELFRE	;YES, RELEASE SPACE
  3022							 FATAL.ERROR
  3023	003550'	254 00 0 00 014010'			JRST .+1 ]
  3024	003551'	332 01 0 17 777774 		SKIPE T1,HDWREG		;ANY REGISTERS YET ?
  3025						JRST [	CALL RELFRE	;YES, RELEASE FREE BLOCK
  3026							 FATAL.ERROR
  3027	003552'	254 00 0 00 014013'			JRST .+1]
  3028	003553'	200 01 0 17 777766 		MOVE T1,HDWERR		;RESTORE ERROR CODE
  3029	003554'	263 17 0 00 000000 		RETBAD ()		;RETURN FAILURE
  3030
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 69
NCU	MAC	 6-Oct-81 12:41		NICE Process --  Event Logger

  3031
  3032					; HERE WHEN ALL FIELDS EXTRACTED FROM NICE EVENT LOGGING MESSAGE
  3033
  3034	003555'	200 01 0 17 777775 	HDW020:	MOVE T1,HDWDEV		;GET ADDRESS OF DEVICE ID
  3035	003556'	554 01 0 01 000001 		HLRZ T1,1(T1)		;GET DEVICE TYPE CODE
  3036	003557'	260 17 0 00 003771'		CALL CVTHDW		;CONVERT NICE DEVICE CODE TO SYSERR CODE
  3037	003560'	254 00 0 00 003546'		 JRST EVTHDX		;FAILED
  3038	003561'	137 01 0 00 014016'		STOR T1,SYHDW,(P2)	;STORE HARDWARE DEVICE TYPE IN ENTRY
  3039
  3040					; STORE OPERATING SYSTEM AND REASON CODES, AND RECOVERY INFO
  3041
  3042	003562'	200 01 0 17 777767 		MOVE T1,HDWOPS		;GET OPERATING SYSTEM ID CODE
  3043	003563'	137 01 0 00 014017'		STOR T1,SYOPS,(P2)	;STORE IN SYSERR ENTRY
  3044	003564'	200 01 0 17 777771 		MOVE T1,HDWRSN		;GET REASON CODE
  3045	003565'	542 01 0 11 000013 		STOR T1,SYRSN,(P2)	;STORE IN SYSERR ENTRY
  3046	003566'	200 01 0 17 777763 		MOVE T1,HDWTHR		;GET THRESHOLD VALUE PROVIDED IN MESSAGE
  3047	003567'	506 01 0 11 000013 		STOR T1,SYTHR,(P2)	;STORE IN SYSERR ENTRY
  3048	003570'	200 01 0 17 777770 		MOVE T1,HDWRCV		;GET RECOVERY ACTION CODE
  3049	003571'	137 01 0 00 014020'		STOR T1,SYRCV,(P2)	;STORE IN SYSERR ENTRY
  3050
  3051					; STORE THE CONTROLLER AND UNIT NUMBER
  3052
  3053	003572'	200 01 0 17 777775 		MOVE T1,HDWDEV		;GET ADR OF BLOCK HOLDING DEVICE ID
  3054	003573'	260 17 0 00 003763'		CALL FNDCTL		;GO FIND CONTROLLER AND LINE NUMBERS
  3055	003574'	254 00 0 00 003546'		 JRST EVTHDX		;FAILED
  3056	003575'	202 01 0 11 000007 		STOR T1,SYLID,(P2)	;STORE CONTROLLER/LINE NUMBERS IN ENTRY
  3057	003576'	202 02 0 11 000010 		STOR T2,SYLI1,(P2)	; AND STORE STATION NUMBER
  3058
  3059					; STORE THE REGISTER DATA IN THE SYSERR ENTRY
  3060
  3061	003577'	200 01 0 17 777775 		MOVE T1,HDWDEV		;GET ADR OF BLOCK HOLDING DEVICE ID
  3062	003600'	504 01 0 17 777764 		HRL T1,HDWDST		;GET NEXT ADR TO USE IN SYSERR ENTRY
  3063	003601'	200 02 0 17 777774 		MOVE T2,HDWREG		;GET ADR OF BLOCK HOLDING REGISTER DATA
  3064	003602'	201 03 0 11 000014 		MOVEI T3,.SYPTR(P2)	;GET ADDRESS TO USE IN SYSERR ENTRY
  3065	003603'	200 04 0 17 777765 		MOVE T4,HDWMCD		;GET MICROCODE INFO IN CASE APPLICABLE
  3066	003604'	260 17 0 00 003635'		CALL STOREG		;STORE REGISTER DATA IN SYSERR ENTRY
  3067	003605'	254 00 0 00 003546'		 JRST EVTHDX		;FAILED
  3068	003606'	202 01 0 00 000004 		MOVEM T1,T4		;SAVE NEXT SYSERR ADDRESS TO USE
  3069
  3070					; ADD LOG DATA POINTER AND EVENT CODE TO ENTRY, THEN RETURN
  3071
  3072	003607'	550 02 0 17 777764 		HRRZ T2,HDWDST		;GET STARTING ADR FOR LOG DATA SECTION
  3073	003610'	274 01 0 00 000002 		SUB T1,T2		;COMPUTE NUMBER OF WORDS IN LOG DATA SECTION
  3074	003611'	200 03 0 00 000001 		MOVE T3,T1		;COPY COUNT OF WORDS IN LOG DATA SECTION
  3075	003612'	221 03 0 00 000004 		IMULI T3,BPWRD		;COMPUTE BYTES IN LOG DATA SECTION
  3076	003613'	202 03 0 11 000005 		STOR T3,SYNCT,(P2)	;STORE BYTE COUNT IN NETWORK HEADER
  3077	003614'	210 01 0 00 000001 		MOVN T1,T1		;COMPUTE -COUNT
  3078	003615'	504 01 0 00 000001 		HRL T1,T1		;GET -COUNT,,0
  3079	003616'	274 02 0 00 000011 		SUB T2,P2		;COMPUTE OFFSET TO START OF LOG DATA
  3080	003617'	540 01 0 00 000002 		HRR T1,T2		;FORM SYSERR POINTER TO LOG DATA
  3081	003620'	202 01 0 11 000014 		STOR T1,SYPTR,(P2)	;STORE SYSERR POINTER TO LOG DATA
  3082	003621'	201 03 0 00 000210 		MOVX T3,SY%MLG		;HARDWARE LOG ENTRY EVENT CODE
  3083	003622'	137 03 0 00 013767'		STOR T3,SYCOD,(P1)	;STORE ENTRY TYPE CODE IN SYSERR ENTRY
  3084	003623'	200 02 0 00 000004 		MOVE T2,T4		;COPY NEXT DESTINATION ADR IN SYSERR ENTRY
  3085	003624'	275 02 0 10 000000 		SUBI T2,(P1)		;COMPUTE # OF BYTES IN SYSERR ENTRY
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 69-1
NCU	MAC	 6-Oct-81 12:41		NICE Process --  Event Logger

  3086	003625'	202 02 0 17 777762 		MOVEM T2,HDWLXX		;Save length so chunks can be released
  3087	003626'	332 01 0 17 777775 		SKIPE T1,HDWDEV		;ANY DEVICE YET ?
  3088						JRST [	CALL RELFRE	;YES, RELEASE SPACE
  3089							 FATAL.ERROR
  3090	003627'	254 00 0 00 014021'			JRST .+1 ]
  3091	003630'	332 01 0 17 777774 		SKIPE T1,HDWREG		;ANY REGISTERS YET ?
  3092						JRST [	CALL RELFRE	;YES, RELEASE FREE BLOCK
  3093							 FATAL.ERROR
  3094	003631'	254 00 0 00 014024'			JRST .+1]
  3095	003632'	200 02 0 17 777762 		MOVE T2,HDWLXX		;Restore length of SYSERR entry
  3096	003633'	201 01 0 00 000210 		MOVX T1,SY%MLG		;GET SYSERR EVENT CODE TYPE
  3097	003634'	254 00 0 00 003465*		RETSKP			;DONE, RETURN TO CALLER
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 70
NCU	MAC	 6-Oct-81 12:41		NICE Process --  Event Logger

  3098
  3099					;STOREG - ROUTINE TO STORE DEVICE REGISTER IN SYSERR ENTRY
  3100					;
  3101					;ACCEPTS IN T1/	NEXT ADR TO USE IN SYSERR ENTRY,,ADR OF DEVICE ID BLOCK
  3102					;	    T2/	ADDRESS OF BLOCK HOLDING REGISTERS
  3103					;	    T3/	NEXT ADDRESS TO STORE INTO IN SYSERR ENTRY
  3104					;	    T4/	MICROCODE INFO (NOT APPLICABLE TO ALL DEVICES)
  3105					;		CALL STOREG
  3106					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  3107					;	  +2	SUCCESS, WITH T1/ NEXT ADR TO STORE INTO IN ENTRY
  3108
  3109	003635'	265 16 0 00 003317*	STOREG:	ASUBR <SRGDEV,SRGREG,SRGDST,SRGMCD>
  3110
  3111	003636'	556 01 0 15 000003 		HLRZM T1,SRGDST		;SAVE NEXT ADR TO USE IN SYSERR ENTRY
  3112	003637'	201 01 0 01 000001 		MOVEI T1,1(T1)		;POINT PAST BLOCK HEADER TO DEVICE ID
  3113	003640'	554 01 0 01 000000 		HLRZ T1,(T1)		;GET DEVICE TYPE CODE
  3114	003641'	201 02 0 00 003655'		MOVEI T2,REGTAB		;GET TABLE ADDRESS
  3115	003642'	201 03 0 00 000005 		MOVEI T3,REGLEN		;GET TABLE LENGTH
  3116	003643'	260 17 0 00 001527*		CALL FNDDSP		;GET PROCESSING ROUTINE ADDRESS
  3117	003644'	263 17 0 00 000000 		 RETBAD ()		;FAILED
  3118	003645'	200 04 0 00 000001 		MOVE T4,T1		;SAVE PROCESSING ROUTINE ADDRESS
  3119	003646'	200 01 0 15 000002 		MOVE T1,SRGREG		;GET ADR OF BLOCK HOLDING REGISTERS
  3120	003647'	200 02 0 15 000003 		MOVE T2,SRGDST		;GET NEXT DESTINATION TO USE IN ENTRY
  3121	003650'	505 02 0 00 441000 		HRLI T2,(POINT 8,)	;FORM POINTER TO WHERE REGISTERS WILL GO
  3122	003651'	200 03 0 15 000004 		MOVE T3,SRGMCD		;GET MICROCODE INFO
  3123	003652'	260 17 0 04 000000 		CALL (T4)		;ADD REGISTERS TO SYSERR ENTRY
  3124	003653'	263 17 0 00 000000 		 RETBAD ()		;FAIL
  3125	003654'	254 00 0 00 003634*		RETSKP			;DONE, RETURN SUCCESS
  3126
  3127
  3128					; TABLE OF PROCESSING ROUTINES TO STORE REGISTER DATA IN SYSERR ENTRY
  3129
  3130	003655'	000024	003736'		REGTAB:	.DTDTE,,STODTE
  3131	003656'	000012	003750'			.DTDUP,,STODUP
  3132	003657'	000034	003662'			.DTKDP,,STOKDP
  3133	003660'	000036	003662'			.DTKDZ,,STOKDZ
  3134	003661'	000014	003721'			.DTDMC,,STODMC
  3135			000005		REGLEN==.-REGTAB
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 71
NCU	MAC	 6-Oct-81 12:41		NICE Process --  Event Logger

  3136
  3137					; ROUTINES TO STORE REGISTER DATA IN SYSERR ENTRY
  3138
  3139	003662'				STOKDZ:
  3140	003662'	265 16 0 00 003635*	STOKDP:	ASUBR <SKDREG,SKDDST,SKDMCD,SKDCNT>
  3141
  3142	003663'	200 01 0 15 000002 		MOVE T1,SKDDST		;GET DESTINATION POINTER
  3143	003664'	271 01 0 00 000001 		ADDI T1,1		;SKIP FIRST WORD (PTR TO SUB-DEVICE DATA)
  3144	003665'	200 02 0 15 000001 		MOVE T2,SKDREG		;GET ADR OF BLOCK HOLDING REGISTERS
  3145	003666'	271 02 0 00 000002 		ADDI T2,2		;GET ADDRESS OF REGISTER DATA
  3146	003667'	505 02 0 00 441000 		HRLI T2,(POINT 8,)	;FORM POINTER TO REGISTER DATA
  3147	003670'	211 03 0 00 000010 		MOVNI T3,NKMCRG		;GET NUMBER OF KMC11 REGISTER DATA BYTES
  3148	003671'	104 00 0 00 000053 		SOUT			;ADD KMC REGISTER DATA TO ENTRY
  3149	003672'	320 16 0 00 013656'		 ERJMP [RETBAD (.NRNPE)] ;FAILED
  3150
  3151					; STORE POINTER TO DUP11 REGISTER DATA ("SUB-DEVICE TABLE")
  3152
  3153	003673'	200 01 0 15 000002 		MOVE T1,SKDDST		;GET POINTER TO ORIGINAL DESTINATION
  3154	003674'	200 04 0 15 000001 		MOVE T4,SKDREG		;GET ADR OF BLOCK HOLDING REGISTER DATA
  3155	003675'	200 03 0 04 000001 		MOVE T3,1(T4)		;GET NUMBER OF BYTES OF REGISTER DATA
  3156	003676'	275 03 0 00 000010 		SUBI T3,NKMCRG		;COMPUTE NUMBER OF DUP11 REGISTER BYTES LEFT
  3157	003677'	210 03 0 00 000003 		MOVN T3,T3		;GET -NUMBER OF DUP BYTES
  3158	003700'	202 03 0 15 000004 		MOVEM T3,SKDCNT		;SAVE -NUMBER OF DUP REGISTER BYTES
  3159	003701'	322 03 0 00 003706'		JUMPE T3,STKDP2		;SKIP STORING DUP DATA IF NONE
  3160	003702'	201 03 0 01 000006 		MOVEI T3,6(T1)		;GET ADDRESS OF DUP REGISTER DATA
  3161	003703'	274 03 0 00 000011 		SUB T3,P2		;COMPUTE OFFSET TO DUP DATA
  3162	003704'	504 03 0 15 000004 		HRL T3,SKDCNT		;GET -NUMBER OF DUP BYTES,,OFFSET
  3163	003705'	202 03 0 01 000000 		MOVEM T3,(T1)		;STORE POINTER TO "SUB-DEVICE TABLE"
  3164	003706'	200 04 0 15 000003 	STKDP2:	MOVE T4,SKDMCD		;GET MICROCODE INFO
  3165	003707'	202 04 0 01 000003 		MOVEM T4,3(T1)		;STORE IN SYSERR ENTRY
  3166
  3167					; STORE DUP11 REGISTER DATA
  3168
  3169	003710'	201 01 0 01 000006 		MOVEI T1,6(T1)		;GET DESTINATION ADR FOR REGISTER DATA
  3170	003711'	505 01 0 00 441000 		HRLI T1,(POINT 8,)	;FORM DESTINATION POINTER
  3171	003712'	200 03 0 15 000004 		MOVE T3,SKDCNT		;GET NUMBER OF DUP11 REGISTER BYTES
  3172	003713'	322 03 0 00 003716'		JUMPE T3,STKDP4		;SKIP STORE IF NO BYTES
  3173	003714'	104 00 0 00 000053 		SOUT			;ADD DUP REGISTERS TO SYSERR ENTRY
  3174	003715'	320 16 0 00 013656'		 ERJMP [RETBAD (.NRNPE)] ;FAILED
  3175	003716'	133 00 0 00 000001 	STKDP4:	IBP T1			;INCREMENT POINTER TO NEXT BYTE TO USE IN ENTRY
  3176	003717'	550 01 0 00 000001 		HRRZ T1,T1		;KEEP JUST ADDRESS
  3177	003720'	254 00 0 00 003654*		RETSKP			;DONE, RETURN SUCCESS
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 72
NCU	MAC	 6-Oct-81 12:41		NICE Process --  Event Logger

  3178
  3179	003721'	265 16 0 00 003662*	STODMC:	ASUBR <SDMREG,SDMDST>
  3180
  3181	003722'	200 02 0 15 000001 		MOVE T2,SDMREG		;GET ADR OF BLOCK HOLDING REGISTERS
  3182	003723'	210 03 0 02 000001 		MOVN T3,1(T2)		;GET NUMBER OF BYTES OF REGISTER DATA
  3183	003724'	271 02 0 00 000002 		ADDI T2,2		;GET ADDRESS OF REGISTER DATA
  3184	003725'	505 02 0 00 441000 		HRLI T2,(POINT 8,)	;FORM POINTER TO REGISTER DATA
  3185	003726'	200 01 0 15 000002 		MOVE T1,SDMDST		;GET DESTINATION POINTER
  3186	003727'	476 00 0 01 000000 		SETOM (T1)		;-1 instead of pointer to sub-device data
  3187	003730'	350 00 0 00 000001 		AOS T1			;Move past dummy sub-device data pointer
  3188	003731'	104 00 0 00 000053 		SOUT			;COPY THE REGISTERS INTO SYSERR ENTRY
  3189	003732'	320 16 0 00 013656'		 ERJMP [RETBAD (.NRNPE)] ;FAILED
  3190	003733'	133 00 0 00 000001 		IBP T1			;INCREMENT POINTER TO NEXT BYTE TO USE
  3191	003734'	550 01 0 00 000001 		HRRZ T1,T1		;KEEP JUST ADDRESS
  3192	003735'	254 00 0 00 003720*		RETSKP			;DONE, RETURN NEXT SYSERR ENTRY ADDRESS TO USE
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 73
NCU	MAC	 6-Oct-81 12:41		NICE Process --  Event Logger

  3193
  3194
  3195	003736'	265 16 0 00 003721*	STODTE:	ASUBR <DTSREG,DTSDST>
  3196
  3197	003737'	200 02 0 15 000001 		MOVE T2,DTSREG		;GET ADR OF BLOCK HOLDING REGISTERS
  3198	003740'	210 03 0 02 000001 		MOVN T3,1(T2)		;GET NUMBER OF BYTES OF REGISTER DATA
  3199	003741'	271 02 0 00 000002 		ADDI T2,2		;GET ADDRESS OF REGISTER DATA
  3200	003742'	505 02 0 00 441000 		HRLI T2,(POINT 8,)	;FORM POINTER TO REGISTER DATA
  3201	003743'	200 01 0 15 000002 		MOVE T1,DTSDST		;GET DESTINATION POINTER
  3202	003744'	104 00 0 00 000053 		SOUT			;COPY THE REGISTERS INTO SYSERR ENTRY
  3203	003745'	320 16 0 00 013656'		 ERJMP [RETBAD (.NRNPE)] ;FAILED
  3204	003746'	133 00 0 00 000001 		IBP T1			;INCREMENT POINTER TO NEXT BYTE TO USE
  3205	003747'	254 00 0 00 003735*		RETSKP			;DONE, RETURN NEXT SYSERR ENTRY ADDRESS TO USE
  3206
  3207
  3208	003750'	265 16 0 00 003736*	STODUP:	ASUBR <DTUREG,DTUDST>
  3209
  3210	003751'	200 02 0 15 000001 		MOVE T2,DTUREG		;GET ADR OF BLOCK HOLDING REGISTERS
  3211	003752'	210 03 0 02 000001 		MOVN T3,1(T2)		;GET -NUMBER OF BYTES OF REGISTER DATA
  3212	003753'	271 02 0 00 000002 		ADDI T2,2		;GET ADDRESS OF REGISTER DATA
  3213	003754'	505 02 0 00 441000 		HRLI T2,(POINT 8,)	;FORM POINTER TO REGISTER DATA
  3214	003755'	200 01 0 15 000002 		MOVE T1,DTUDST		;GET DESTINATION POINTER
  3215	003756'	104 00 0 00 000053 		SOUT			;COPY THE REGISTERS INTO SYSERR ENTRY
  3216	003757'	320 16 0 00 013656'		 ERJMP [RETBAD (.NRNPE)] ;FAILED
  3217	003760'	133 00 0 00 000001 		IBP T1			;INCREMENT POINTER TO NEXT BYTE TO USE
  3218	003761'	550 01 0 00 000001 		HRRZ T1,T1		;KEEP JUST ADDRESS
  3219	003762'	254 00 0 00 003747*		RETSKP			;DONE, RETURN NEXT SYSERR ENTRY ADDRESS TO USE
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 74
NCU	MAC	 6-Oct-81 12:41		NICE Process --  Event Logger

  3220
  3221					;FNDCTL - ROUTINE TO FIND THE CONTROLLER AND LINE NUMBERS IN THE
  3222					;	  DEVICE ID SENT IN THE NICE EVENT LOGGING MESSAGE
  3223					;
  3224					;ACCEPTS IN T1/	ADDRESS OF BLOCK CONTAINING LINE ID
  3225					;		CALL FNDCTL
  3226					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  3227					;	  +2	SUCCESS, WITH T1/ CONTROLLER #,,LINE #
  3228
  3229	003763'	201 04 0 01 000001 	FNDCTL:	MOVEI T4,1(T1)		;GET ADDRESS OF DEVICE ID
  3230	003764'	504 01 0 04 000000 		HRL T1,(T4)		;GET CONTROLLER NUMBER
  3231	003765'	544 01 0 04 000001 		HLR T1,1(T4)		;AND GET UNIT NUMBER
  3232	003766'	540 02 0 04 000001 		HRR T2,1(T4)		;GET STATION ID
  3233	003767'	505 02 0 00 777777 		HRLI T2,-1		;AND DO NOT USE RESERVED BITS
  3234	003770'	254 00 0 00 003762*		RETSKP			;DONE
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 75
NCU	MAC	 6-Oct-81 12:41		NICE Process --  Event Logger

  3235
  3236					;CVTHDW - ROUTINE TO CONVERT NICE DEVICE CODE TO SYSERR DEVICE CODE
  3237					;
  3238					;ACCEPTS IN T1/	NICE DEVICE TYPE CODE (.DTXXX) FROM EVENT LOGGING MSG
  3239					;		CALL CVTHDW
  3240					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  3241					;	  +2	SUCCESS, WITH T1/ SYSERR DEVICE CODE
  3242
  3243	003771'	200 02 0 00 014027'	CVTHDW:	MOVX T2,HTPTAB		;GET TABLE ADDRESS
  3244	003772'	201 03 0 00 000005 		MOVX T3,HTPLEN		;GET TABLE LENGTH
  3245	003773'	260 17 0 00 003643*		CALL FNDDSP		;FIND CORRESPONDING SYSERR CODE
  3246	003774'	254 00 0 00 013711'		 RETBAD (.NRIPV)	;FAIL, INVALID PARAMETER VALUE
  3247	003775'	254 00 0 00 003770*		RETSKP			;DONE, RETURN SUCCESS
  3248
  3249					; CONVERSION TABLE FOR NICE PROTOCOL TO SYSERR HARDWARE DEVICE TYPE CODES
  3250
  3251	003776'	000014	000005		HTPTAB:	.DTDMC,,.SYDMC
  3252	003777'	000024	000015			.DTDTE,,.SYDTE
  3253	004000'	000012	000027			.DTDUP,,.SYDUP
  3254	004001'	000034	000003			.DTKDP,,.SYKDP
  3255	004002'	000036	000004			.DTKDZ,,.SYKDZ
  3256
  3257			000005		HTPLEN==.-HTPTAB
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 76
NCU	MAC	 6-Oct-81 12:41		NICE Process --  Event Logger

  3258
  3259					; ROUTINES TO STORE ITEMS FROM HARDWARE EVENT LOGGING MESSAGE
  3260
  3261
  3262	004003'	202 04 0 17 777775 	HSTDEV:	MOVEM T4,HDWDEV		;STORE ADDRESS OF LINE ID
  3263	004004'	254 00 0 00 003527'		JRST HDW015		;DONE, RETURN
  3264
  3265
  3266	004005'	202 04 0 17 777774 	HSTREG:	MOVEM T4,HDWREG		;SAVE ADDRESS OF BLOCK HOLDING REG DATA
  3267	004006'	254 00 0 00 003527'		JRST HDW015		;RETURN TO MESSAGE PARSER
  3268
  3269
  3270	004007'	202 04 0 17 777773 	HSTUPT:	MOVEM T4,HDWUPT		;SAVE UPTIME
  3271	004010'	254 00 0 00 003527'		JRST HDW015		;RETURN TO MESSAGE PARSER
  3272
  3273
  3274	004011'	202 04 0 17 777771 	HSTRSN:	MOVEM T4,HDWRSN		;SAVE REASON CODE
  3275	004012'	254 00 0 00 003527'		JRST HDW015		;RETURN TO MESSAGE PARSER
  3276
  3277
  3278	004013'	202 04 0 17 777770 	HSTRCV:	MOVEM T4,HDWRCV		;SAVE RECOVERY CODE
  3279	004014'	254 00 0 00 003527'		JRST HDW015		;RETURN TO MESSAGE PARSER
  3280
  3281
  3282	004015'	202 04 0 17 777767 	HSTOPS:	MOVEM T4,HDWOPS		;SAVE OPERATING SYSTEM ID CODE
  3283	004016'	254 00 0 00 003527'		JRST HDW015		;RETURN TO MESSAGE PARSER
  3284
  3285
  3286	004017'	202 04 0 17 777765 	HSTMCD:	MOVEM T4,HDWMCD		;SAVE MICROCODE ID
  3287	004020'	254 00 0 00 003527'		JRST HDW015		;RETURN TO MESSAGE PARSER
  3288
  3289
  3290	004021'	202 04 0 17 777776 	HSTNOD:	MOVEM T4,HDWNOD		;SAVE ADR OF BLOCK HOLDING NODE NAME
  3291	004022'	254 00 0 00 003527'		JRST HDW015		;RETURN TO MESSAGE PARSER
  3292
  3293
  3294	004023'	202 04 0 17 777763 	HSTTHR:	MOVEM T4,HDWTHR		;SAVE THRESHOLD VALUE
  3295	004024'	254 00 0 00 003527'		JRST HDW015		;RETURN TO MESSAGE PARSER
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 77
NCU	MAC	 6-Oct-81 12:41		NICE Process --  Event Logger

  3296					;EVTSYR - ROUTINE TO MAKE A SYSERR HEADER FOR EVENT LOGGING ENTRIES
  3297					;
  3298					;ACCEPTS IN T1/	BASE ADDRESS OF SYSERR ENTRY
  3299					;	    T2/	ASCIZ SOURCE NODE NAME STRING
  3300					;	    T3/	SEQUENCE NUMBER
  3301					;		CALL EVTSYR
  3302					;RETURNS: +1	 FAILED
  3303					;	  +2	SUCCESS, WITH T1/ ADDRESS OF NEXT WORD TO USE IN SYSERR ENTRY
  3304
  3305	004025'	265 16 0 00 003503*	EVTSYR:	SAVEPQ			;SAVE SOME AC'S
  3306	004026'	265 16 0 00 003504*		STKVAR <ESRSRC,ESRSEQ>
  3307	004027'	000002	000002
  3308	004030'	202 02 0 17 777776 		MOVEM T2,ESRSRC		;SAVE POINTER TO SOURCE NODE
  3309	004031'	202 03 0 17 777775 		MOVEM T3,ESRSEQ		;SAVE SEQUENCE NUMBER
  3310
  3311					; INITIALIZE HEADER TO ALL "UNKNOWN"
  3312
  3313	004032'	200 10 0 00 000001 		MOVE P1,T1		;GET BASE ADDRESS OF SYSERR ENTRY
  3314	004033'	201 11 0 10 000004 		MOVEI P2,.SYDAT(P1)	;GET ADDRESS OF START OF NETWORK DATA HEADER
  3315	004034'	476 00 0 11 000000 		SETOM (P2)		;INITIALIZE FIRST WORD TO "UNKNOWN"
  3316	004035'	514 01 0 00 000011 		HRLZ T1,P2		;START AT NETWORK DATA HEADER
  3317	004036'	541 01 0 11 000001 		HRRI T1,1(P2)		;DESTINATION IS NEXT WORD
  3318	004037'	251 01 0 11 000013 		BLT T1,.SYPTR-1(P2)	;INITIALIZE ENTIRE NETWORK DATA HEADER
  3319
  3320					; SET UP SEQUENCE NUMBER
  3321
  3322	004040'	200 01 0 17 777775 		MOVE T1,ESRSEQ		;GET SEQUENCE NUMBER
  3323	004041'	202 01 0 11 000006 		STOR T1,SYSEQ,(P2)	;STORE IN NETWORK HEADER OF SYSERR ENTRY
  3324
  3325					; ADD TRANSMITTING NODE NAME
  3326
  3327	004042'	200 01 0 00 000010 		MOVE T1,P1		;GET BASE ADDRESS OF SYSERR ENTRY
  3328	004043'	200 02 0 17 777776 		MOVE T2,ESRSRC		;GET POINTER TO SOURCE NODE NAME
  3329	004044'	201 03 0 11 000015 		MOVEI T3,.SYPTR+1(P2)	;START AT FIRST ADDRESS AFTER NET DATA HEADER
  3330	004045'	260 17 0 00 007630'		CALL SYRSTR		;ADD STRING TO SYSERR ENTRY
  3331	004046'	263 17 0 00 000000 		 RETBAD ()		;FAILED
  3332	004047'	202 02 0 11 000001 		STOR T2,SYNOD,(P2)	;STORE POINTER TO TRANSMITTING NODE NAME
  3333
  3334					; ADD DESTINATION NODE NAME
  3335
  3336	004050'	200 03 0 00 000001 		MOVE T3,T1		;GET NEXT ADR TO USE IN SYSERR ENTRY
  3337	004051'	200 02 0 00 013666'		MOVE T2,[POINT 7,OURNAM] ;GET PTR TO OUR NAME (WE ARE DESTINATION)
  3338	004052'	200 01 0 00 000010 		MOVE T1,P1		;GET BASE ADDRESS OF SYSERR ENTRY
  3339	004053'	260 17 0 00 007630'		CALL SYRSTR		;STORE STRING IN SYSERR ENTRY
  3340	004054'	263 17 0 00 000000 		 RETBAD ()		;FAILED
  3341	004055'	202 02 0 11 000002 		STOR T2,SYDST,(P2)	;STORE POINTER TO DESTINATION NODE NAME
  3342
  3343					; DONE. T1 STILL HAS NEXT WORD TO USE IN SYSERR ENTRY FROM SYRSTR CALL
  3344
  3345	004056'	254 00 0 00 003775*		RETSKP			;RETURN SUCCESS
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 78
NCU	MAC	 6-Oct-81 12:41		NICE Process --  Event Logger

  3346	004057'	254 00 0 00 013711'	EVTASC:	RETBAD (.NRIPV)
  3347
  3348	004060'	254 00 0 00 013711'	EVTSFT:	RETBAD (.NRIPV)		;FAIL
  3349
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 79
NCU	MAC	 6-Oct-81 12:41		Routines to Default Information from the Configuration Database

  3350					SUBTTL	Routines to Default Information from the Configuration Database
  3351
  3352					;DEFRQL - ROUTINE TO FILL IN DEFAULTS IN DOWN LINE LOAD REQUESTS
  3353					;
  3354					;CALL:		CALL DEFRQL
  3355					;RETURNS: +1	 FAILED, COULD NOT SUPPLY ALL DEFAULTS
  3356					;	  +2	SUCCESS, VARIABLES DESCRIBED UNDER GETRQL ROUTINE ALL SET UP
  3357
  3358	004061'				DEFRQL:
  3359
  3360					; DEFAULT TARGET NODE TO LOAD IF NOT SPECIFIED IN MESSAGE
  3361
  3362	004061'	200 04 0 14 000003 		MOVE T4,RQLOPT		;GET OPTION BITS
  3363	004062'	135 04 0 00 014030'		LOAD T4,LO%TGT,T4	;GET JUST TARGET SPECIFICATION OPTION
  3364	004063'	302 04 0 00 000003 		CAIE T4,.LOSRV		;TARGET TO BE DETERMINED BY SERVER AND LINE ?
  3365	004064'	254 00 0 00 004076'		JRST DRQ010		;NO, TARGET NODE WAS INCLUDED IN MESSAGE
  3366	004065'	200 01 0 14 000005 		MOVE T1,RQLSRV		;YES, GET POINTER TO NAME OF SERVER NODE
  3367	004066'	260 17 0 00 010525'		CALL GETNIB		;GET ADDRESS OF NIB FOR SERVER NODE
  3368	004067'	254 00 0 00 013544'		 RETBAD (.NRICF)	;FAILED, RETURN "INVALID CONFIGURATION FILE"
  3369	004070'	200 01 0 01 000006 		LOAD T1,NDLIN,(T1)	;GET ADDRESS OF SERVER NODE'S LINE TABLE
  3370	004071'	120 02 0 14 000006 		DMOVE T2,RQLLIN		;GET SERVER NODE LINE ID
  3371	004072'	260 17 0 00 010567'		CALL FNDTGT		;GO FIND THE TARGET NODE AT THE END OF THE LINE
  3372	004073'	254 00 0 00 013544'		 RETBAD (.NRICF)	;FAILED, RETURN "INVALID CONFIGURATION FILE"
  3373	004074'	200 01 0 01 000007 		LOAD T1,NDNAM,(T1)	;GET POINTER TO NAME OF TARGET NODE
  3374	004075'	202 01 0 14 000004 		MOVEM T1,RQLTGT		;SAVE POINTER TO ASCIZ TARGET NODE NAME
  3375
  3376					; DEFAULT THE BOOTSTRAP PASSWORD IF NEEDED AND NOT SPECIFIED IN MESSAGE
  3377
  3378	004076'	200 04 0 14 000003 	DRQ010:	MOVE T4,RQLOPT		;GET OPTIONS FROM MESSAGE
  3379	004077'	135 03 0 00 013550'		LOAD T3,LO%ROM,T4	;GET BOOTSTRAP SPECIFICATION FIELD
  3380	004100'	306 03 0 00 000001 		CAIN T3,.LOTBD		;TRIGGER BOOT AND DEFAULT BOOT PASSWORD ?
  3381						JRST [	MOVE T1,RQLTGT	;GET POINTER TO ASCIZ NAME OF TARGET NODE
  3382							CALL DEFBPW	;YES, GO FILL IN DEFAULT FROM DATABASE
  3383							 RETBAD ()	;FAILED, BAD CONFIGURATION FILE
  3384							DMOVEM T3,RQLPSW ;SAVE DEFAULT BOOT PASSWORD
  3385	004101'	254 00 0 00 014031'			JRST .+1 ]	;CONTINUE IN MAINLINE CODE
  3386
  3387					; HERE TO DEFAULT THE INPUT (PRIMARY) LOAD FILE IF NOT SUPPLIED
  3388
  3389	004102'	200 01 0 14 000003 		MOVE T1,RQLOPT		;GET OPTIONS FROM NICE MESSAGE
  3390	004103'	602 01 0 00 000020 		TXNE T1,LO%OPS		;OPERATING SYSTEM FILE INCLUDED IN MESSAGE ?
  3391	004104'	254 00 0 00 004113'		JRST DRQ020		;YES, GO CHECK SERVER NODE AND SERVER LINE
  3392	004105'	200 01 0 14 000004 		MOVE T1,RQLTGT		;GET POINTER TO ASCIZ TARGET NODE NAME
  3393	004106'	260 17 0 00 010525'		CALL GETNIB		;GET ADR OF NODE INFORMATION BLOCK FOR TARGET
  3394	004107'	254 00 0 00 013544'		 RETBAD (.NRICF)	;FAILED, RETURN "INVALID CONFIGURATION FILE"
  3395	004110'	200 01 0 01 000003 		LOAD T1,NDLOD,(T1)	;GET POINTER TO PRIMARY LOAD FILE
  3396	004111'	322 01 0 00 014036'		JUMPE T1,[RETBAD (.NRICF)] ;IF NO FILE IN DATABASE, RETURN ERROR
  3397	004112'	202 01 0 14 000016 		MOVEM T1,RQLOPS		;SAVE POINTER TO OPERATING SYSTEM FILE SPEC
  3398						; ..
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 80
NCU	MAC	 6-Oct-81 12:41		Routines to Default Information from the Configuration Database

  3399						; ..
  3400
  3401					; HERE TO DEFAULT SERVER NODE AND SERVER LINE IF NOT IN NICE MESSAGE
  3402
  3403	004113'	200 01 0 14 000003 	DRQ020:	MOVE T1,RQLOPT		;GET OPTIONS FROM NICE MESSAGE
  3404	004114'	135 04 0 00 014030'		LOAD T4,LO%TGT,T4	;GET TARGET SPECIFICATION OPTION
  3405	004115'	302 04 0 00 000000 		CAIE T4,.LOTGT		;TARGET SPECIFIED BY NAME & SERVER DEFAULTED ?
  3406	004116'	254 00 0 00 004130'		JRST DRQ030		;NO, SERVER WAS INCLUDED IN MESSAGE
  3407	004117'	200 01 0 14 000004 		MOVE T1,RQLTGT		;YES, GET POINTER TO ASCIZ TARGET NODE NAME
  3408	004120'	260 17 0 00 010525'		CALL GETNIB		;GET ADDRESS OF NODE INFORMATION BLOCK
  3409	004121'	254 00 0 00 013544'		 RETBAD (.NRICF)	;FAILED, RETURN "INVALID CONFIGURATION FILE"
  3410	004122'	200 02 0 01 000011 		LOAD T2,NDSRV,(T1)	;GET POINTER TO DEFAULT SERVER FOR TARGET NODE
  3411	004123'	322 02 0 00 014036'		JUMPE T2,[RETBAD (.NRICF)] ;IF NO SERVER KNOWN, RETURN ERROR
  3412	004124'	202 02 0 14 000005 		MOVEM T2,RQLSRV		;SAVE POINTER TO ASCIZ SERVER NODE NAME
  3413	004125'	200 02 0 01 000012 		LOAD T2,NDSL1,(T1)	;GET FIRST PART OF SERVER LINE ID
  3414	004126'	200 03 0 01 000013 		LOAD T3,NDSL2,(T1)	;GET SECOND HALF OF SERVER LINE ID
  3415	004127'	124 02 0 14 000006 		DMOVEM T2,RQLLIN	;SAVE SERVER LINE ID
  3416
  3417					; HERE TO DEFAULT THE PROGRAM REQUEST DATA IF NOT SPECIFIED IN MESSAGE
  3418
  3419	004130'	200 04 0 14 000003 	DRQ030:	MOVE T4,RQLOPT		;GET OPTIONS FROM MESSAGE
  3420	004131'	135 03 0 00 013550'		LOAD T3,LO%ROM,T4	;GET ROM FIELD
  3421	004132'	302 03 0 00 000000 		CAIE T3,.LODEF		;DEFAULT THE PROGRAM REQUEST ?
  3422	004133'	254 00 0 00 004143'		JRST DRQ040		;NO, GO ON
  3423	004134'	200 01 0 14 000004 		MOVE T1,RQLTGT		;YES, GET POINTER TO ASCIZ TARGET NODE NAME
  3424	004135'	260 17 0 00 004235'		CALL DEFPGM		;GO FILL IN DEFAULT PROGRAM REQUEST DATA
  3425	004136'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR TO CALLER
  3426	004137'	202 04 0 14 000015 		MOVEM T4,RQLSID		;SAVE SOFTWARE ID
  3427	004140'	202 03 0 14 000014 		MOVEM T3,RQLPGM		;SAVE PROGRAM TYPE REQUESTED
  3428	004141'	202 02 0 14 000013 		MOVEM T2,RQLCPU		;SAVE CPU TYPE OF TARGET NODE
  3429	004142'	202 01 0 14 000012 		MOVEM T1,RQLLDV		;SAVE LOAD DEVICE AT TARGET NODE
  3430
  3431					; DEFAULT THE SYSTEM PARAMETERS TO BE PASSED TO THE TARGET NODE IF NEEDED
  3432
  3433	004143'	200 04 0 14 000003 	DRQ040:	MOVE T4,RQLOPT		;GET OPTIONS FROM DOWN-LINE LOAD REQUEST MESSAGE
  3434	004144'	602 04 0 00 000040 		TXNE T4,LO%PAR		;PARAMETERS SPECIFIED IN THE MESSAGE ?
  3435	004145'	254 00 0 00 004154'		JRST DRQ050		;YES, GO ON...
  3436	004146'	200 01 0 14 000004 		MOVE T1,RQLTGT		;GET POINTER TO ASCIZ TARGET NODE NAME
  3437	004147'	260 17 0 00 004244'		CALL DEFPAR		;GO DEFAULT THE SYSTEM PARAMETERS
  3438	004150'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR TO CALLER
  3439	004151'	202 02 0 14 000017 		MOVEM T2,RQLNAM		;SAVE NAME TARGET NODE IS TO USE
  3440	004152'	202 03 0 14 000020 		MOVEM T3,RQLNUM		;SAVE NUMBER OF TARGET NODE
  3441	004153'	202 04 0 14 000021 		MOVEM T4,RQLHST		;SAVE HOST FOR TASK LOADS
  3442
  3443	004154'	254 00 0 00 004056*	DRQ050:	RETSKP			;DONE, RETURN SUCCESS
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 81
NCU	MAC	 6-Oct-81 12:41		Routines to Default Information from the Configuration Database

  3444					;DEFRQD - ROUTINE TO DEFAULT DUMP INFORMATION FROM CONFIGURATION DATABASE
  3445					;
  3446					;CALL:		CALL DEFRQD
  3447					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  3448					;	  +2	SUCCESS, VARIABLES DESCRIBED UNDER GETRQD ROUTINE ALL SET UP
  3449
  3450					; DEFAULT TARGET NODE TO BE DUMPED IF NOT INCLUDED IN DUMP REQUEST MESSAGE
  3451
  3452	004155'	200 04 0 14 000026 	DEFRQD:	MOVE T4,RQDOPT		;GET OPTIONS FOR DUMP OPERATION
  3453	004156'	135 04 0 00 014030'		LOAD T4,DO%TGT,T4	;GET TARGET ID OPTION FIELD
  3454	004157'	302 04 0 00 000003 		CAIE T4,.DOSRV		;TARGET TO BE DETERMINED FROM SERVER & LINE ?
  3455	004160'	254 00 0 00 004172'		JRST DFD010		;NO, GO SEE IF SERVER NEEDS TO BE DEFAULTED
  3456	004161'	200 01 0 14 000023 		MOVE T1,RQDSRV		;YES, GET POINTER TO ASCIZ NAME OF SERVER NODE
  3457	004162'	260 17 0 00 010525'		CALL GETNIB		;GET NODE INFORMATION BLOCK FOR SERVER
  3458	004163'	254 00 0 00 013544'		 RETBAD (.NRICF)	;FAILED, RETURN "INVALID CONFIGURATION FILE"
  3459	004164'	200 01 0 01 000006 		LOAD T1,NDLIN,(T1)	;GET ADDRESS OF LINE ADJACENCY TABLE
  3460	004165'	120 02 0 14 000024 		DMOVE T2,RQDLIN		;GET SERVER LINE ID (2 WORDS)
  3461	004166'	260 17 0 00 010567'		CALL FNDTGT		;GO DETERMINE TARGET NODE FOR THIS SERVER & LINE
  3462	004167'	254 00 0 00 013544'		 RETBAD (.NRICF)	;FAILED, RETURN "INVALID CONFIGURATION FILE"
  3463	004170'	200 01 0 01 000007 		LOAD T1,NDNAM,(T1)	;GET POINTER TO NAME OF TARGET NODE
  3464	004171'	202 01 0 14 000022 		MOVEM T1,RQDTGT		;SAVE POINTER TO ASCIZ TARGET NODE NAME
  3465
  3466					; DEFAULT SERVER NODE AND SERVER LINE IF NOT SPECIFIED IN DUMP REQUEST MESSAGE
  3467
  3468	004172'	200 04 0 14 000026 	DFD010:	MOVE T4,RQDOPT		;GET OPTIONS FROM NICE MESSAGE
  3469	004173'	135 04 0 00 014030'		LOAD T4,DO%TGT,T4	;GET TARGET SPECIFICATION OPTION
  3470	004174'	302 04 0 00 000000 		CAIE T4,.DOTGT		;TARGET SPECIFIED BY NAME & SERVER DEFAULTED ?
  3471	004175'	254 00 0 00 004207'		JRST DFD020		;NO, SERVER WAS INCLUDED IN MESSAGE
  3472	004176'	200 01 0 14 000022 		MOVE T1,RQDTGT		;YES, GET POINTER TO ASCIZ TARGET NODE NAME
  3473	004177'	260 17 0 00 010525'		CALL GETNIB		;GET ADDRESS OF NODE INFORMATION BLOCK
  3474	004200'	254 00 0 00 013544'		 RETBAD (.NRICF)	;FAILED, RETURN "INVALID CONFIGURATION FILE"
  3475	004201'	200 02 0 01 000011 		LOAD T2,NDSRV,(T1)	;GET POINTER TO DEFAULT SERVER FOR TARGET NODE
  3476	004202'	322 02 0 00 014036'		JUMPE T2,[RETBAD (.NRICF)] ;IF NO SERVER KNOWN, RETURN ERROR
  3477	004203'	202 02 0 14 000023 		MOVEM T2,RQDSRV		;SAVE POINTER TO ASCIZ SERVER NODE NAME
  3478	004204'	200 02 0 01 000012 		LOAD T2,NDSL1,(T1)	;GET FIRST PART OF SERVER LINE ID
  3479	004205'	200 03 0 01 000013 		LOAD T3,NDSL2,(T1)	;GET SECOND HALF OF SERVER LINE ID
  3480	004206'	124 02 0 14 000024 		DMOVEM T2,RQDLIN	;SAVE SERVER LINE ID
  3481
  3482					; HERE TO DEFAULT THE DUMP FILESPEC IF NOT SPECIFIED IN DUMP REQUEST MESSAGE
  3483
  3484	004207'	200 01 0 14 000026 	DFD020:	MOVE T1,RQDOPT		;GET OPTIONS FROM NICE MESSAGE
  3485	004210'	602 01 0 00 000004 		TXNE T1,DO%FIL		;DUMP FILE INCLUDED IN MESSAGE ?
  3486	004211'	254 00 0 00 004220'		JRST DFD030		;YES, GO CHECK ADDRESS AND COUNT
  3487	004212'	200 01 0 14 000022 		MOVE T1,RQDTGT		;GET POINTER TO ASCIZ TARGET NODE NAME
  3488	004213'	260 17 0 00 010525'		CALL GETNIB		;GET ADR OF NODE INFORMATION BLOCK FOR TARGET
  3489	004214'	254 00 0 00 013544'		 RETBAD (.NRICF)	;FAILED, RETURN "INVALID CONFIGURATION FILE"
  3490	004215'	200 01 0 01 000004 		LOAD T1,NDDMP,(T1)	;GET POINTER TO PRIMARY DUMP FILE
  3491	004216'	322 01 0 00 014036'		JUMPE T1,[RETBAD (.NRICF)] ;IF NO FILE IN DATABASE, RETURN ERROR
  3492	004217'	202 01 0 14 000027 		MOVEM T1,RQDFIL		;SAVE POINTER TO DUMP FILE SPEC
  3493						; ..
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 82
NCU	MAC	 6-Oct-81 12:41		Routines to Default Information from the Configuration Database

  3494						; ..
  3495
  3496					; HERE TO DEFAULT ADDRESS AND COUNT IF NOT INCLUDED IN THE MESSAGE
  3497
  3498	004220'	200 04 0 14 000026 	DFD030:	MOVE T4,RQDOPT		;GET OPTIONS
  3499	004221'	602 04 0 00 000010 		TXNE T4,DO%ADR		;ADDRESS AND COUNT INCLUDED IN MESSAGE ?
  3500	004222'	254 00 0 00 004227'		JRST DFD040		;YES, DO NOT DEFAULT THEM
  3501
  3502					; ASSUME DUMPS BEGIN AT 0 AND 128K IS TO BE DUMPED
  3503
  3504	004223'	201 01 0 00 000000 		MOVX T1,0		;GET STARTING ADDRESS FOR DUMP
  3505	004224'	202 01 0 14 000030 		MOVEM T1,RQDADR		;SAVE STARTING ADDRESS
  3506	004225'	205 01 0 00 000001 		MOVX T1,DEFCNT		;GET NUMBER OF LOCATIONS TO DUMP
  3507	004226'	202 01 0 15 000002 		MOVEM T1,RQDCNT		;SAVE COUNT OF LOCATIONS TO DUMP
  3508
  3509	004227'	254 00 0 00 004154*	DFD040:	RETSKP			;RETURN TO CALLER
  3510
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 83
NCU	MAC	 6-Oct-81 12:41		Routines to Default Information from the Configuration Database

  3511					;DEFBPW - ROUTINE TO DEFAULT THE BOOT PASSWORD TO TRIGGER A ROM BOOTSTRAP
  3512					;
  3513					;ACCEPTS IN T1/	POINTER TO ASCIZ TARGET NODE NAME
  3514					;		CALL DEFBPW
  3515					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  3516					;	  +2	SUCCESS, WITH T3-T4/ BOOT PASSWORD
  3517
  3518	004230'	260 17 0 00 010525'	DEFBPW:	CALL GETNIB		;GET ADDRESS OF NODE INFORMATION BLOCK OF TARGET
  3519	004231'	254 00 0 00 013544'		 RETBAD (.NRICF)	;FAILED, RETURN "INVALID CONFIGURATION FILE"
  3520	004232'	200 03 0 01 000001 		LOAD T3,NDBP1,(T1)	;LOAD FIRST PART OF BOOT PASSWORD
  3521	004233'	200 04 0 01 000002 		LOAD T4,NDBP2,(T1)	;LOAD SECOND PART OF BOOT PASSWORD
  3522	004234'	254 00 0 00 004227*		RETSKP			;DONE, RETURN SUCCESS
  3523
  3524
  3525					;DEFPGM - ROUTINE TO DEFAULT THE PROGRAM REQUEST DATA
  3526					;
  3527					;ACCEPTS IN T1/	POINTER TO ASCIZ TARGET NODE NAME
  3528					;		CALL DEFPGM
  3529					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  3530					;	  +2	SUCCESS, WITH T1/ BOOT LOAD DEVICE AT TARGET NODE (.DTXXX)
  3531					;			      T2/ CPU TYPE OF TARGET NODE (.CPXXX)
  3532					;			      T3/ PROGRAM TYPE REQUESTED (.PTXXX)
  3533					;			      T4/ POINTER TO SOFTWARE ID REQUESTED
  3534
  3535	004235'	260 17 0 00 010525'	DEFPGM:	CALL GETNIB		;GO GET NODE INFORMATION BLOCK ADDRESS OF TARGET
  3536	004236'	254 00 0 00 013544'		 RETBAD (.NRICF)	;FAILED, RETURN "INVALID CONFIGURATION FILE"
  3537	004237'	200 04 0 00 014040'		MOVE T4,[POINT 7,[.CHNUL]] ;SOFTWARE ID DEFAULTS TO NULL
  3538	004240'	201 03 0 00 000000 		MOVX T3,.PTSLD		;DEFAULT PROGRAM TYE IS SECONDARY LOADER
  3539	004241'	550 02 0 01 000017 		LOAD T2,NDCPU,(T1)	;GET CPU TYPE OF TARGET NODE
  3540	004242'	554 01 0 01 000017 		LOAD T1,NDLDV,(T1)	;GET LOAD DEVICE TYPE AT TARGET NODE
  3541	004243'	254 00 0 00 004234*		RETSKP			;DONE, RETURN
  3542
  3543
  3544					;DEFPAR - ROUTINE TO DEFAULT THE SYSTEM PARAMETERS FOR A DOWN-LINE LOAD
  3545					;
  3546					;ACCEPTS IN T1/	POINTER TO ASCIZ NAME OF TARGET NODE
  3547					;		CALL DEFPAR
  3548					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  3549					;	  +2	SUCCESS, WITH T2/ NAME TARGET NODE IS TO USE ON INIT
  3550					;			      T3/ NUMBER TARGET NODE IS TO USE
  3551					;			      T4/ HOST TARGET IS TO USE FOR TASK LOADS
  3552
  3553	004244'	260 17 0 00 010525'	DEFPAR:	CALL GETNIB		;GO GET THE NODE INFORMATION BLOCK FOR TARGET
  3554	004245'	254 00 0 00 013544'		 RETBAD (.NRICF)	;FAILED, RETURN "INVALID CONFIGURATION FILE"
  3555	004246'	200 02 0 01 000014 		LOAD T2,NDPNA,(T1)	;GET NAME TARGET NODE IS TO USE
  3556	004247'	200 03 0 01 000015 		LOAD T3,NDPNU,(T1)	;GET NUMBER TARGET NODE IS TO USE
  3557	004250'	200 04 0 01 000016 		LOAD T4,NDPHT,(T1)	;GET HOST TARGET IS TO USE FOR TASK LOADS
  3558	004251'	254 00 0 00 004243*		RETSKP			;DONE, RETURN
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 84
NCU	MAC	 6-Oct-81 12:41		Routines to Extract Fields from NICE Messages

  3559					SUBTTL	Routines to Extract Fields from NICE Messages
  3560
  3561					;GETRQL - ROUTINE TO EXTRACT THE FIELDS FROM A NICE REQUEST DOWN-LINE LOAD MSG
  3562					;
  3563					;ACCEPTS IN T1/	POINTER TO START OF NICE MESSAGE
  3564					;	    T2/	NUMBER OF BYTES IN THE MESSAGE
  3565					;		CALL GETRQL
  3566					;RETURNS: +1	 FAILED, INVALID MESSAGE FORMAT
  3567					;	  +2	SUCCESS, WITH THE FOLLOWING VARIABLES SET UP IF THE
  3568					;			 ASSOCIATED FIELD IS PRESENT IN THE MESSAGE:
  3569					;
  3570					;			RQLTGT/	POINTER TO ASCIZ NAME OF TARGET NODE
  3571					;			RQLSRV/	POINTER TO ASCIZ NAME OF SERVER NODE
  3572					;			RQLLIN/	SERVER LINE ID (2 WORDS)
  3573					;			RQLPSW/	BOOT PASSWORD TO TRIGGER TARGET'S BOOTSTRAP ROM
  3574					;			RQLLDV/	BOOT LINE DEVICE TYPE AT TARGET NODE
  3575					;			RQLCPU/	CPU TYPE OF TARGET SYSTEM (.CPXXX)
  3576					;			RQLPGM/	PROGRAM TYPE BEING REQUESTED (.PTXXX)
  3577					;			RQLSID/	SOFTWARE ID
  3578					;			RQLOPS/	POINTER TO ASCIZ OPERATING SYSTEM FILE SPEC
  3579					;			RQLNAM/	POINTER TO ASCIZ NAME TARGET NODE IS TO USE
  3580					;			RQLNUM/	NUMBER OF TARGET NODE
  3581					;			RQLHST/	POINTER TO ASCIZ NAME OF HOST FOR TASK LOADS
  3582
  3583	004252'				GETRQL:
  3584
  3585					; SKIP OVER NICE FUNCTION CODE AND GET OPTIONS FROM NICE MESSAGE
  3586
  3587	004252'	260 17 0 00 004340'		CALL GETFCN		;GET FUNCTION CODE FROM NICE MESSAGE
  3588	004253'	254 00 0 00 013542'		 RETBAD (.NRIMF)	;FAILED, RETURN "INVALID MESSAGE FORMAT"
  3589	004254'	260 17 0 00 005167'		CALL GETEXB		;OPTION FIELD IS EXTENSIBLE BINARY
  3590	004255'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR TO CALLER
  3591	004256'	202 04 0 14 000003 		MOVEM T4,RQLOPT		;SAVE OPTIONS
  3592
  3593					; GET NAME OF TARGET NODE IF INCLUDED IN MESSAGE
  3594
  3595	004257'	200 03 0 14 000003 		MOVE T3,RQLOPT		;GET OPTIONS
  3596	004260'	135 04 0 00 014041'		LOAD T4,LO%TGT,T3	;GET TARGET SPECIFICATION OPTION
  3597	004261'	302 04 0 00 000000 		CAIE T4,.LOTGT		;TARGET NODE SPECIFIED BY NAME ?
  3598	004262'	306 04 0 00 000002 		CAIN T4,.LOPTH		; OR EVEN WITH A PATH SPECIFIED ?
  3599						JRST [	CALL GETNOD	;YES, GO GET THE TARGET NODE FROM THE MESSAGE
  3600							 RETBAD (.NRIMF) ;FAILED, RETURN "INVALID MESSAGE FORMAT"
  3601							MOVEM T3,RQLTGT	;SAVE POINTER TO ASCIZ NAME OF TARGET NODE
  3602	004263'	254 00 0 00 014042'			JRST .+1]	;RETURN TO MAINLINE CODE
  3603						; ..
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 85
NCU	MAC	 6-Oct-81 12:41		Routines to Extract Fields from NICE Messages

  3604						; ..
  3605
  3606					; GET NAME OF SERVER NODE AND SERVER LINE ID IF SPECIFIED IN MESSAGE
  3607
  3608	004264'	200 03 0 14 000003 		MOVE T3,RQLOPT		;GET OPTIONS
  3609	004265'	135 04 0 00 014041'		LOAD T4,LO%TGT,T3	;GET TARGET SPECIFICATION OPTION
  3610	004266'	302 04 0 00 000002 		CAIE T4,.LOPTH		;TARGET NODE SPECIFIED BY PATH ?
  3611	004267'	306 04 0 00 000003 		CAIN T4,.LOSRV		; OR SERVER NODE SPECIFIED EXPLICITLY ?
  3612						JRST [	CALL GETNOD	;YES, GO GET THE TARGET NODE FROM THE MESSAGE
  3613							 RETBAD (.NRIMF) ;FAILED, RETURN "INVALID MESSAGE FORMAT"
  3614							MOVEM T3,RQLSRV	;SAVE POINTER TO ASCIZ NAME OF SERVER NODE
  3615							CALL GETLIN	;GET SERVER LINE IDENTIFICATION
  3616							 RETBAD (.NRIMF) ;FAILED, RETURN "INVALID MESSAGE FORMAT"
  3617							DMOVEM T3,RQLLIN ;SAVE SERVER LINE ID (2 WORDS)
  3618	004270'	254 00 0 00 014046'			JRST .+1]	;RETURN TO MAINLINE CODE
  3619
  3620					; GET TARGET NODE BOOT PASSWORD IF INCLUDED IN NICE MESSAGE
  3621
  3622	004271'	200 03 0 14 000003 		MOVE T3,RQLOPT		;GET OPTIONS
  3623	004272'	135 04 0 00 014055'		LOAD T4,LO%ROM,T3	;GET BOOTSTRAP ROM OPTIONS
  3624	004273'	306 04 0 00 000003 		CAIN T4,.LOTBP		;BOOT PASSWORD INCLUDED IN MESSAGE ?
  3625						JRST [	CALL GETBPW	;YES, GO GET BOOT PASSWORD FROM NICE MESSAGE
  3626							 RETBAD (.NRIMF) ;FAILED, RETURN "INVALID MESSAGE FORMAT"
  3627							DMOVEM T3,RQLPSW ;SAVE BOOT PASSWORD
  3628	004274'	254 00 0 00 014056'			JRST .+1 ]	;RETURN TO MAINLINE CODE
  3629
  3630					; GET PROGRAM DATA IF INCLUDED IN NICE MESSAGE
  3631
  3632	004275'	200 03 0 14 000003 		MOVE T3,RQLOPT		;GET OPTIONS
  3633	004276'	135 04 0 00 014055'		LOAD T4,LO%ROM,T3	;GET ROM BOOTSTRAP OPTION FIELD
  3634	004277'	306 04 0 00 000002 		CAIN T4,.LOPGM		;PROGRAM DATA INCLUDED IN NICE MESSAGE ?
  3635						JRST [	CALL GETPDT	;YES, GO EXTRACT PROGRAM DATA FROM NICE MESSAGE
  3636							 RETBAD ()	;FAILED, RETURN ERROR TO CALLER
  3637	004300'	254 00 0 00 014062'			JRST .+1 ]	;RETURN TO MAINLINE CODE
  3638	
  3639					; GET OPERATING SYSTEM FILE SPECIFICATION IF INCLUDED IN MESSAGE
  3640
  3641	004301'	200 04 0 14 000003 		MOVE T4,RQLOPT		;GET OPTIONS
  3642	004302'	602 04 0 00 000020 		TXNE T4,LO%OPS		;IS OPERATING SYSTEM FILE SPEC IN MESSAGE ?
  3643						JRST [	CALL GETOPS	;YES, GO GET OPERATING SYSTEM FILE
  3644							 RETBAD ()	;FAILED, RETURN ERROR TO CALLER
  3645							MOVEM T3,RQLOPS	;SAVE POINTER TO ASCIZ FILE SPEC
  3646	004303'	254 00 0 00 014065'			JRST .+1]	;RETURN TO MAINLINE CODE
  3647						; ..
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 86
NCU	MAC	 6-Oct-81 12:41		Routines to Extract Fields from NICE Messages

  3648						; ..
  3649
  3650					; GET SYSTEM PARAMETERS IF INCLUDED IN MESSAGE
  3651
  3652	004304'	200 04 0 14 000003 		MOVE T4,RQLOPT		;GET OPTIONS
  3653	004305'	602 04 0 00 000040 		TXNE T4,LO%PAR		;ARE PARAMETERS INCLUDED IN MESSAGE ?
  3654						JRST [	CALL GETPAR	;YES, GO EXTRACT PARAMETERS FROM MESSAGE
  3655							 RETBAD ()	;FAILED, RETURN ERROR TO CALLER
  3656	004306'	254 00 0 00 014071'			JRST .+1]	;RETURN TO MAINLINE CODE
  3657
  3658					; DONE - ALL FIELDS EXTRACTED FROM NICE DOWN-LINE LOAD REQUEST MESSAGE
  3659
  3660	004307'	326 02 0 00 013615'		JUMPN T2,[RETBAD (.NRPRO)] ;ANY BYTES LEFT => NICE PROTOCOL ERROR
  3661	004310'	254 00 0 00 004251*		RETSKP			;RETURN SUCCESS
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 87
NCU	MAC	 6-Oct-81 12:41		Routines to Extract Fields from NICE Messages

  3662					;GETRQD - ROUTINE TO EXTRACT THE FIELDS FROM A NICE UP-LINE DUMP
  3663					;	  REQUEST MESSAGE.
  3664					;
  3665					;ACCEPTS IN T1/	POINTER TO START OF NICE UP-LINE DUMP REQUEST MESSAGE
  3666					;	    T2/	NUMBER OF BYTES IN THE MESSAGE
  3667					;		CALL GETRQD
  3668					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  3669					;	  +2	SUCCESS, WITH THE FOLLOWING FIELDS SET UP:
  3670					;
  3671					;			RQDTGT/	POINTER TO ASCIZ NAME OF TARGET NODE
  3672					;			RQDSRV/	POINTER TO ASCIZ NAME OF SERVER NODE
  3673					;			RQDLIN/	SERVER LINE ID (2 WORDS)
  3674					;			RQDFIL/	POINTER TO ASCIZ DUMP FILESPEC
  3675					;			RQDOPT/	OPTIONS FOR DUMP OPERATION
  3676					;			RQDADR/	STARTING ADDRESS FOR THE DUMP
  3677					;			RQDCNT/	NUMBER OF UNITS TO DUMP
  3678
  3679	004311'	260 17 0 00 004340'	GETRQD:	CALL GETFCN		;GET FUNCTION CODE FROM NICE MESSAGE
  3680	004312'	254 00 0 00 013542'		 RETBAD (.NRIMF)	;FAILED, RETURN "INVALID MESSAGE FORMAT"
  3681	004313'	260 17 0 00 005167'		CALL GETEXB		;GO GET OPTIONS FOR DUMP OPERATION
  3682	004314'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR TO CALLER
  3683	004315'	202 04 0 14 000026 		MOVEM T4,RQDOPT		;SAVE OPTIONS
  3684
  3685					; GET NAME OF TARGET NODE TO BE DUMPED
  3686
  3687	004316'	200 04 0 14 000026 		MOVE T4,RQDOPT		;GET OPTION BITS
  3688	004317'	135 04 0 00 014030'		LOAD T4,DO%TGT,T4	;GET TARGET SPECIFICATION FIELD
  3689	004320'	302 04 0 00 000000 		CAIE T4,.DOTGT		;EITHER TARGET & PATH OR JUST THE
  3690	004321'	306 04 0 00 000002 		CAIN T4,.DOPTH		; TARGET NODE SPECIFIED ?
  3691						JRST [	CALL GETNOD	;YES, GO EXTRACT TARGET NODE NAME FROM MESSAGE
  3692							 RETBAD ()	;FAILED, RETURN ERROR TO CALLER
  3693							MOVEM T3,RQDTGT	;SAVE POINTER TO ASCIZ TARGET NODE NAME
  3694	004322'	254 00 0 00 014074'			JRST .+1]	;RETURN TO MAINLINE CODE
  3695
  3696					; EXTRACT PATH TO TARGET IF INCLUDED IN THE MESSAGE
  3697
  3698	004323'	200 04 0 14 000026 		MOVE T4,RQDOPT		;GET OPTION BITS
  3699	004324'	135 04 0 00 014030'		LOAD T4,DO%TGT,T4	;GET TARGET SPECIFICATION OPTION
  3700	004325'	302 04 0 00 000002 		CAIE T4,.DOPTH		;BOTH TARGET & PATH, OR JUST THE
  3701	004326'	306 04 0 00 000003 		CAIN T4,.DOSRV		; PATH ALONE SPECIFIED ?
  3702						JRST [	CALL GETNOD	;YES, GET NAME OF SERVER NODE FROM MESSAGE
  3703							 RETBAD ()	;FAILED, RETURN ERROR TO CALLER
  3704							MOVEM T3,RQDSRV	;SAVE POINTER TO ASCIZ SERVER NODE NAME
  3705							CALL GETLIN	;GO GET SERVER LINE ID
  3706							 RETBAD ()	;FAILED, RETURN ERROR TO CALLER
  3707							DMOVEM T3,RQDLIN ;SAVE SERVER LINE ID
  3708	004327'	254 00 0 00 014100'			JRST .+1]	;RETURN TO MAINLINE CODE
  3709						; ..
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 88
NCU	MAC	 6-Oct-81 12:41		Routines to Extract Fields from NICE Messages

  3710						; ..
  3711
  3712					; DETERMINE OUTPUT FILE FOR DUMP
  3713
  3714	004330'	200 04 0 14 000026 		MOVE T4,RQDOPT		;GET OPTIONS FOR DUMP OPERATION
  3715	004331'	602 04 0 00 000004 		TXNE T4,DO%FIL		;OUTPUT FILE SPECIFIED ?
  3716						JRST [	SETZM T3	;NO POINTER PROVIDED
  3717							CALL GETIMA	;YES, GO EXTRACT FILE SPEC FROM MESSAGE
  3718							 RETBAD ()	;FAILED, RETURN ERROR TO CALLER
  3719							MOVEM T3,RQDFIL	;SAVE POINTER TO ASCIZ FILE SPEC
  3720	004332'	254 00 0 00 014107'			JRST .+1]	;CONTINUE WITH MAINLINE CODE
  3721
  3722					; EXTRACT STARTING ADR AND COUNT IF PRESENT IN DUMP REQUEST MESSAGE
  3723
  3724	004333'	200 04 0 14 000026 		MOVE T4,RQDOPT		;GET OPTION BITS
  3725	004334'	602 04 0 00 000010 		TXNE T4,DO%ADR		;ADDRESS AND COUNT INCLUDED IN MESSAGE ?
  3726						JRST [	CALL GETMEM	;YES, GO EXTRACT THE ADDRESS
  3727							 RETBAD ()	;FAILED, RETURN ERROR TO CALLER
  3728							MOVEM T3,RQDADR	;SAVE STARTING ADDRESS FOR THE DUMP
  3729							CALL GETMEM	;GO EXTRACT THE COUNT FROM THE MESSAGE
  3730							 RETBAD ()	;FAILED, RETURN ERROR TO CALLER
  3731							MOVEM T3,RQDCNT	;SAVE NUMBER OF UNITS TO DUMP
  3732	004335'	254 00 0 00 014114'			JRST .+1]	;CONTINUE WITH MAINLINE CODE
  3733
  3734					; DONE, RETURN TO CALLER
  3735
  3736	004336'	326 02 0 00 013707'		JUMPN T2,[RETBAD (.NRIMF)] ;ALL FIELDS SHOULD NOW HAVE BEEN EXTRACTED
  3737	004337'	254 00 0 00 004310*		RETSKP			;DONE, RETURN SUCCESS
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 89
NCU	MAC	 6-Oct-81 12:41		Routines to Extract Fields from NICE Messages

  3738					;GETFCN - ROUTINE TO EXTRACT THE FUNCTION CODE FROM A NICE MESSAGE
  3739					;
  3740					;ACCEPTS IN T1/	POINTER TO START OF NICE MESSAGE (I.E., TO THE FUNCTION CODE)
  3741					;	    T2/	NUMBER OF BYTES IN THE NICE MESSAGE
  3742					;		CALL GETFCN
  3743					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  3744					;	  +2	SUCCESS, WITH T1/ UPDATED POINTER TO NEXT FIELD IN NICE MESSAGE
  3745					;			      T2/ UPDATED COUNT OF BYTES REMAINING IN MESSAGE
  3746					;			      T3/ FUNCTION CODE
  3747
  3748	004340'	375 00 0 00 000002 	GETFCN:	SOSGE T2		;AT LEAST ON BYTE (FUNCTION CODE) IN MESSAGE ?
  3749	004341'	254 00 0 00 013542'		RETBAD (.NRIMF)		;NO, RETURN "INVALID MESSAGE FORMAT"
  3750	004342'	134 03 0 00 000001 		ILDB T3,T1		;YES, LOAD THE FUNCTION CODE
  3751	004343'	254 00 0 00 004337*		RETSKP			;RETURN SUCCESS
  3752
  3753
  3754					;GETOPT - ROUTINE TO EXTRACT THE OPTION CODE FIELD (SUB-FUNCTION) FROM
  3755					;	  A NICE MESSAGE
  3756					;
  3757					;ACCEPTS IN T1/	POINTER TO OPTION FIELD
  3758					;	    T2/	NUMBER OF BYTES REMAINING IN MESSAGE
  3759					;		CALL GETOPT
  3760					;RETURNS: +1	 FAILED, NOT ENOUGH BYTES LEFT IN MESSAGE
  3761					;	  +2	SUCCESS, WITH OPTION CODE IN T4, PTR AND COUNT UPDATED
  3762
  3763
  3764	004344'	254 00 0 00 005167'	GETOPT:	CALLRET GETEXB		;GET EXTENSIBLE BINARY FIELD
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 90
NCU	MAC	 6-Oct-81 12:41		Routines to Extract Fields from NICE Messages

  3765					;GETPDT - ROUTINE TO EXTRACT THE PROGRAM DATA FIELDS FROM A NICE
  3766					;	    DOWN-LINE LOAD REQUEST MESSAGE
  3767					;
  3768					;ACCEPTS IN T1/	POINTER TO START OF PROGRAM DATA FIELDS
  3769					;	    T2/	COUNT OF BYTES REMAINING IN MESSAGE
  3770					;		CALL GETPDT
  3771					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  3772					;	  +2	SUCCESS, WITH THE FOLLOWING VARIABLES SET UP:
  3773					;			RQLLDV/	BOOT LINE DEVICE TYPE AT TARGET NODE
  3774					;			RQLCPU/	CPU TYPE OF TARGET SYSTEM (.CPXXX)
  3775					;			RQLPGM/	PROGRAM TYPE BEING REQUESTED (.PTXXX)
  3776					;			RQLSID/	SOFTWARE ID
  3777
  3778	004345'	265 16 0 00 003750*	GETPDT:	ASUBR <GTPPTR,GTPCNT>
  3779
  3780	004346'	260 17 0 00 004363'		CALL GETLDV		;GO GET BOOT LINE DEVICE TYPE AT TARGET NODE
  3781	004347'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR TO CALLER
  3782	004350'	202 03 0 14 000012 		MOVEM T3,RQLLDV		;SAVE BOOT LINE DEVICE TYPE (.DTXXX)
  3783	004351'	260 17 0 00 004367'		CALL GETCPU		;GO GET CPU TYPE OF TARGET SYSTEM
  3784	004352'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR TO CALLER
  3785	004353'	202 03 0 14 000013 		MOVEM T3,RQLCPU		;SAVE CPU TYPE OF TARGET (.CPXXX)
  3786	004354'	260 17 0 00 004373'		CALL GETPGM		;GO GET PROGRAM TYPE REQUESTED
  3787	004355'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR TO CALLER
  3788	004356'	202 03 0 14 000014 		MOVEM T3,RQLPGM		;SAVE PROGRAM TYPE (.PTXXX)
  3789	004357'	260 17 0 00 004377'		CALL GETSID		;GO GET SOFTWARE ID OF SOFTWARE REQUESTED
  3790	004360'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR TO CALLER
  3791	004361'	202 03 0 14 000015 		MOVEM T3,RQLSID		;SAVE FURTHER IDENTIFICATION OF SOFTWARE WANTED
  3792	004362'	254 00 0 00 004343*		RETSKP			;DONE, RETURN TO CALLER
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 91
NCU	MAC	 6-Oct-81 12:41		Routines to Extract Fields from NICE Messages

  3793					;GETLDV - ROUTINE TO EXTRACT THE BOOT LOAD DEVICE TYPE FROM A NICE MESSAGE
  3794					;
  3795					;ACCEPTS IN T1/	POINTER TO NEXT FIELD (DEVICE TYPE) IN NICE MESSAGE
  3796					;	    T2/	NUMBER OF BYTES REMAINING IN NICE MESSAGE
  3797					;		CALL GETLDV
  3798					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  3799					;	  +2	SUCCESS, WITH T1/ UPDATED POINTER TO NEXT FIELD IN NICE MESSAGE
  3800					;			      T2/ UPDATED COUNT OF BYTES REMAINING IN MESSAGE
  3801					;			      T3/ DEVICE TYPE CODE (.DTXXX)
  3802
  3803	004363'	375 00 0 00 000002 	GETLDV:	SOSGE T2		;AT LEAST ONE BYTE REMAINING IN MESSAGE ?
  3804	004364'	254 00 0 00 013542'		RETBAD (.NRIMF)		;NO, RETURN "INVALID MESSAGE FORMAT" ERROR
  3805	004365'	134 03 0 00 000001 		ILDB T3,T1		;YES, GET DEVICE TYPE CODE (.DTXXX)
  3806	004366'	254 00 0 00 004362*		RETSKP			;DONE, RETURN SUCCESS
  3807
  3808					;GETCPU - ROUTINE TO EXTRACT THE CPU TYPE FROM A NICE MESSAGE
  3809					;
  3810					;ACCEPTS IN T1/	POINTER TO NEXT FIELD (CPU TYPE) IN NICE MESSAGE
  3811					;	    T2/	NUMBER OF BYTES REMAINING IN NICE MESSAGE
  3812					;		CALL GETCPU
  3813					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  3814					;	  +2	SUCCESS, WITH T1/ UPDQTED POINTER TO NEXT FIELD IN NICE MESSAGE
  3815					;			      T2/ UPDATED COUNT OF BYTES REMAINING IN MESSAGE
  3816					;			      T3/ DEVICE TYPE CODE (.CPXXX)
  3817	004367'	375 00 0 00 000002 	GETCPU:	SOSGE T2		;AT LEAST ONE BYTE REMAINING IN MESSAGE ?
  3818	004370'	254 00 0 00 013542'		RETBAD (.NRIMF)		;NO, RETURN "INVALID MESSAGE FORMAT" ERROR
  3819	004371'	134 03 0 00 000001 		ILDB T3,T1		;YES, GET CPU TYPE CODE (.CPXXX)
  3820	004372'	254 00 0 00 004366*		RETSKP			;DONE, RETURN SUCCESS
  3821
  3822
  3823					;GETPGM - ROUTINE TO EXTRACT THE PROGRAM TYPE FROM A NICE MESSAGE
  3824					;
  3825					;ACCEPTS IN T1/	POINTER TO NEXT FIELD (PROGRAM TYPE) IN NICE MESSAGE
  3826					;	    T2/	NUMBER OF BYTES REMAINING IN NICE MESSAGE
  3827					;		CALL GETPGM
  3828					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  3829					;	  +2	SUCCESS, WITH T1/ UPDATED POINTER TO NEXT FIELD IN NICE MESSAGE
  3830					;			      T2/ UPDATED COUNT OF BYTES REMAINING IN MESSAGE
  3831					;			      T3/ PROGRAM TYPE CODE (.PTXXX)
  3832
  3833	004373'	375 00 0 00 000002 	GETPGM:	SOSGE T2		;AT LEAST ONE BYTE REMAINING IN MESSAGE ?
  3834	004374'	254 00 0 00 013542'		RETBAD (.NRIMF)		;NO, RETURN "INVALID MESSAGE FORMAT" ERROR
  3835	004375'	134 03 0 00 000001 		ILDB T3,T1		;YES, GET PROGRAM TYPE CODE (.PTXXX)
  3836	004376'	254 00 0 00 004372*		RETSKP			;DONE, RETURN SUCCESS
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 92
NCU	MAC	 6-Oct-81 12:41		Routines to Extract Fields from NICE Messages

  3837					;GETSID - ROUTINE TO GET A SOFTWARE ID FIELD FROM A MESSAGE
  3838					;
  3839					;ACCEPTS IN T1/	POINTER TO NEXT FIELD (SOFTWARE ID) IN MESSAGE
  3840					;	    T2/	NUMBER OF BYTES LEFT IN MESSAGE
  3841					;		CALL GETSID
  3842					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  3843					;	  +2	SUCCESS, WITH T1/ UPDATED POINTER TO NEXT FIELD IN MESSAGE
  3844					;			      T2/ UPDATED COUNT OF BYTES LEFT IN MESSAGE
  3845					;			      T3/ POINTER TO ASCIZ SOFTWARE ID STRING
  3846
  3847	004377'	200 04 0 00 000001 	GETSID:	MOVE T4,T1		;COPY POINTER TO # OF CHARACTERS IN STRING
  3848	004400'	134 03 0 00 000004 		ILDB T3,T4		;GET NUMBER OF CHARACTERS IN SOFTWARE ID
  3849	004401'	303 03 0 00 000020 		CAILE T3,MAXSID		;IS STRING LONGER THAN MAX ALLOWED ?
  3850	004402'	254 00 0 00 013542'		RETBAD (.NRIMF)		;YES, RETURN "INVALID MESSAGE FORMAT" ERROR
  3851	004403'	402 00 0 00 000003 		SETZM T3		;NO POINTER PROVIDED
  3852	004404'	260 17 0 00 004474'		CALL GETIMA		;NO, GO GET AN ASCIZ STRING FROM AN IMAGE FIELD
  3853	004405'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR TO CALLER
  3854	004406'	254 00 0 00 004376*		RETSKP			;DONE, RETURN WITH T3/ POINTER TO STRING
  3855
  3856
  3857					;GETBPW - ROUTINE TO EXTRACT THE BOOT PASSWORD FROM A NICE MESSAGE
  3858					;
  3859					;ACCEPTS IN T1/	POINTER TO NEXT FIELD (BOOT PASSWORD) IN NICE MESSAGE
  3860					;	    T2/	NUMBER OF BYTES REMAINING IN NICE MESSAGE
  3861					;		CALL GETBPW
  3862					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  3863					;	  +2	SUCCESS, WITH T1/ UPDATED POINTER TO NEXT FIELD IN NICE MESSAGE
  3864					;			      T2/ UPDATED COUNT OF BYTES REMAINING IN MESSAGE
  3865					;			      T4-T3/ 64 BIT BOOT PASSWORD, RIGHT JUSTIFIED
  3866
  3867	004407'	200 04 0 00 000001 	GETBPW:	MOVE T4,T1		;COPY POINTER TO NUMBER OF BYTES IN PASSWORD
  3868	004410'	134 03 0 00 000004 		ILDB T3,T4		;GET NUMBER OF BYTES IN BOOT PASSWORD
  3869	004411'	303 03 0 00 000010 		CAILE T3,MBPWSZ		;PASSWORD FIELD TOO BIG ?
  3870	004412'	254 00 0 00 013542'		RETBAD (.NRIMF)		;YES, RETURN "INVALID MESSAGE FORMAT" ERROR
  3871	004413'	260 17 0 00 004530'		CALL GETIMB		;GO GET BINARY NUMBER FROM IMAGE FIELD
  3872	004414'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR TO CALLER
  3873	004415'	254 00 0 00 004406*		RETSKP			;DONE, RETURN WITH T3-T4/ BINARY PASSWORD
  3874
  3875
  3876					;GETOPS - ROUTINE TO EXTRACT THE OPERATION SYSTEM FILE SPEC FROM A MESSAGE
  3877					;
  3878					;ACCEPTS IN T1/	POINTER TO NEXT FIELD (FILE SPEC) IN MESSAGE
  3879					;	    T2/	NUMBER OF BYTES REMAINING IN MESSAGE
  3880					;		CALL GETOPS
  3881					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  3882					;	  +2	SUCCESS, WITH T1/ UPDATED POINTER TO NEXT FIELD IN MESSAGE
  3883					;			      T2/ UPDATED COUNT OF BYTES LEFT IN MESSAGE
  3884					;			      T3/ POINTER TO ASCIZ OPERATING SYSTEM FILE SPEC
  3885
  3886	004416'	402 00 0 00 000003 	GETOPS:	SETZM T3		;NO POINTER PROVIDED
  3887	004417'	260 17 0 00 004474'		CALL GETIMA		;GO GET AN ASCII STRING FROM AN IMAGE FIELD
  3888	004420'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR TO CALLER
  3889	004421'	254 00 0 00 004415*		RETSKP			;DONE, T3 HAS POINTER TO FILE SPEC
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 93
NCU	MAC	 6-Oct-81 12:41		Routines to Extract Fields from NICE Messages

  3890					;GETPAR - ROUTINE TO EXTRACT THE SYSTEM PARAMETERS FROM A MESSAGE
  3891					;
  3892					;ACCEPTS IN T1/	POINTER TO NEXT FIELD (SYSTEM PARAMETERS) IN MESSAGE
  3893					;	    T2/	NUMBER OF BYTES REMAINING IN THE MESSAGE
  3894					;		CALL GETPAR
  3895					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  3896					;	  +2	SUCCESS, WITH T1/ UPDATED POINTER TO NEXT FIELD IN MESSAGE
  3897					;			      T2/ UPDATED COUNT OF BYTES LEFT IN MESSAGE
  3898					;  PARAMETERS:
  3899					;			RQLNAM/	POINTER TO ASCIZ NAME TARGET NODE IS TO USE
  3900					;			RQLNUM/	NUMBER OF TARGET NODE
  3901					;			RQLHST/	POINTER TO ASCIZ NAME OF HOST FOR TASK LOADS
  3902
  3903	004422'	265 16 0 00 004345*	GETPAR:	ASUBR <GTPPTR,GTPCNT>
  3904
  3905	004423'	476 00 0 14 000017 		SETOM RQLNAM		;INITIALIZE THE SYSTEM PARAMETERS TO KNOWN
  3906	004424'	476 00 0 14 000020 		SETOM RQLNUM		; VALUES SO THAT IT CAN BE DETERMINED WHICH
  3907	004425'	476 00 0 14 000021 		SETOM RQLHST		; PARAMETERS WERE EXTRACTED FROM THE MESSAGE
  3908	004426'	375 00 0 15 000002 		SOSGE GTPCNT		;AT LEAST ONE BYTE LEFT IN THE MESSAGE ?
  3909	004427'	254 00 0 00 013542'		RETBAD (.NRIMF)		;NO, RETURN "INVALID MESSAGE FORMAT" ERROR
  3910	004430'	134 04 0 15 000001 		ILDB T4,GTPPTR		;GET NUMBER OF BYTES IN PARAMETER FIELD
  3911	004431'	313 04 0 00 000002 		CAMLE T4,T2		;AT LEAST THAT MANY BYTES LEFT IN MESSAGE ?
  3912	004432'	254 00 0 00 013542'		RETBAD (.NRIMF)		;NO, RETURN "INVALID MESSAGE FORMAT" ERROR
  3913	004433'	200 01 0 15 000001 		MOVE T1,GTPPTR		;GET POINTER TO NEXT FIELD IN MESSAGE
  3914	004434'	200 02 0 15 000002 		MOVE T2,GTPCNT		;GET COUNT OF BYTES LEFT IN MESSAGE
  3915
  3916					; LOOP OVER EACH PARAMETER
  3917
  3918	004435'	375 00 0 00 000002 	GTP010:	SOSGE T2		;DECREMENT BYTE COUNT
  3919	004436'	254 00 0 00 013542'		RETBAD (.NRIMF)		;NOT ENOUGH BYTES IN MESSAGE, RETURN ERROR
  3920	004437'	134 03 0 00 000001 		ILDB T3,T1		;GET PARAMETER VALUE TYPE CODE (.PVXXX)
  3921	004440'	303 03 0 00 000003 		CAIle T3,.PVHST		;PARAMETER VALUE WITHIN ACCEPTABLE RANGE ?
  3922	004441'	254 00 0 00 013711'		RETBAD (.NRIPV)		;NO, RETURN "INVALID PARAMETER VALUE" ERROR
  3923	004442'	306 03 0 00 000000 		CAIN T3,.PVEND		;END MARK ENCOUNTERED ?
  3924	004443'	254 00 0 00 004421*		RETSKP			;YES, RETURN SUCCESS
  3925	004444'	200 03 0 03 004450'		MOVE T3,PARTAB(T3)	;GET DISPATCH ADDRESS
  3926	004445'	260 17 0 03 000000 		CALL (T3)		;GO HANDLE THIS TYPE OF PARAMETER
  3927	004446'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR TO CALLER
  3928	004447'	254 00 0 00 004435'		JRST GTP010		;GO GET NEXT PARAMETER
  3929
  3930
  3931					; TABLE OF DISPATCH ADDRESSES TO EXTRACT PARAMETERS FROM NICE MESSAGES
  3932
  3933	004450'	000000000000#		PARTAB:	RSKP			;END MARK, NO OP
  3934	004451'	000000	004454'			PARNAM			;NAME NODE IS TO USE FOR NODE INIT
  3935	004452'	000000	004460'			PARNUM			;NUMBER NODE IS TO USE
  3936	004453'	000000	004470'			PARHST			;HOST FOR TASK LOADS
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 94
NCU	MAC	 6-Oct-81 12:41		Routines to Extract Fields from NICE Messages

  3937					;PARNAM - ROUTINE TO EXTRACT THE NODE NAME PARAMETER FROM A NICE MESSAGE
  3938					;
  3939					;ACCEPTS IN T1/	POINTER TO NODE NAME
  3940					;	    T2/ NUMBER OF BYTES LEFT IN MESSAGE
  3941					;		CALL PARNAM
  3942					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  3943					;	  +2	SUCCESS, WITH T1/ UPDATED POINTER TO NEXT FIELD IN MESSAGE
  3944					;			      T2/ UPDATED COUNT OF BYTES LEFT IN MESSAGE
  3945					;			      RQLNAM/ POINTER TO NODE NAME
  3946
  3947	004454'	260 17 0 00 005205'	PARNAM:	CALL GETNOD		;GO GET THE NODE NAME
  3948	004455'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR TO CALLER
  3949	004456'	202 03 0 14 000017 		MOVEM T3,RQLNAM		;SAVE NAME PARAMETER
  3950	004457'	254 00 0 00 004443*		RETSKP			;DONE, RETURN SUCCESS
  3951
  3952					;PARNUM - ROUTINE TO RETURN THE NUMBER TO BE USED BY THE TARGET NODE
  3953					;
  3954					;ACCEPTS IN T1/	POINTER TO NEXT FIELD (NUMBER) IN NICE MESSAGE
  3955					;	    T2/ NUMBER OF BYTES LEFT IN MESSAGE
  3956					;		CALL PARNUM
  3957					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  3958					;	  +2	SUCCESS, WITH T1/ UPDATED POINTER TO NEXT FIELD IN MESSAGE
  3959					;			      T2/ UPDATED COUNT OF BYTES LEFT IN MESSAGE
  3960					;			      RQLNUM/ NUMBER TO BE USED
  3961
  3962	004460'	361 02 0 00 013707'	PARNUM:	SOJL T2,[RETBAD (.NRIMF)] ;DECREMENT COUNT FOR COUNT-BYTE
  3963	004461'	134 04 0 00 000001 		ILDB T4,T1		;GET COUNT BYTE
  3964	004462'	302 04 0 00 000002 		CAIE T4,2		;A TWO BYTE NUMBER ?
  3965	004463'	254 00 0 00 013542'		RETBAD (.NRIMF)		;NO, RETURN "INVALID MESSAGE FORMAT"
  3966	004464'	260 17 0 00 004625'		CALL GETTWO		;GO GET THE NEXT TWO BYTE FIELD FROM THE MESSAGE
  3967	004465'	254 00 0 00 013707'		 JRST [RETBAD (.NRIMF)] ;FAIL IF INSUFFICIENT BYTES IN MESSAGE
  3968	004466'	202 04 0 14 000020 		MOVEM T4,RQLNUM		;SAVE THE NUMBER
  3969	004467'	254 00 0 00 004457*		RETSKP			;DONE, RETURN SUCCESS
  3970
  3971
  3972					;PARHST - ROUTINE TO EXTRACT THE TASK LOAD HOST NAME FROM A NICE MESSAGE
  3973					;
  3974					;ACCEPTS IN T1/	POINTER TO NODE NAME
  3975					;	    T2/ NUMBER OF BYTES LEFT IN MESSAGE
  3976					;		CALL PARHST
  3977					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  3978					;	  +2	SUCCESS, WITH T1/ UPDATED POINTER TO NEXT FIELD IN MESSAGE
  3979					;			      T2/ UPDATED COUNT OF BYTES LEFT IN MESSAGE
  3980					;			      RQLHST/ POINTER TO NODE NAME
  3981
  3982	004470'	260 17 0 00 005205'	PARHST:	CALL GETNOD		;GO GET THE NODE NAME
  3983	004471'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR TO CALLER
  3984	004472'	202 03 0 14 000021 		MOVEM T3,RQLHST		;SAVE POINTER TO NAME OF HOST FOR TASK LOADS
  3985	004473'	254 00 0 00 004467*		RETSKP			;DONE, RETURN SUCCESS
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 95
NCU	MAC	 6-Oct-81 12:41		Routines to Extract Fields from NICE Messages

  3986					;GETIMA - ROUTINE TO GET AN ASCII STRING FROM AN IMAGE FIELD IN A NICE MSG
  3987					;
  3988					;ACCEPTS IN T1/	POINTER TO START OF IMAGE FIELD
  3989					;	    T2/	NUMBER OF BYTES REMAINING IN NICE MESSAGE
  3990					;	    T3/	0 TO USE GENERAL STRING AREA, OR POINTER FOR ASCII STRING
  3991					;		CALL GETIMA
  3992					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  3993					;	  +2	SUCCESS, WITH T1/ UPDATED POINTER TO NEXT FIELD IN MESSAGE
  3994					;			      T2/ UPDATED COUNT OF BYTES REMAINING IN MESSAGE
  3995					;			      T3/ POINTER TO ASCIZ STRING IN STRING STORAGE AREA
  3996
  3997	004474'	265 16 0 00 004422*	GETIMA::ASUBR <GIAPTR,GIACNT,GIADST,GIALEN>
  3998
  3999	004475'	375 03 0 15 000002 		SOSGE T3,GIACNT		;AT LEAST ONE BYTE REMAINING IN MESSAGE ?
  4000	004476'	254 00 0 00 013542'		RETBAD (.NRIMF)		;NO, RETURN "INVALID MESSAGE FORMAT" ERROR
  4001	004477'	134 04 0 15 000001 		ILDB T4,GIAPTR		;YES, GET # OF CHARACTERS IN STRING
  4002	004500'	313 04 0 15 000002 		CAMLE T4,GIACNT		;AT LEAST THAT MANY CHARACTERS LEFT IN MESSAGE ?
  4003	004501'	254 00 0 00 013542'		RETBAD (.NRIMF)		;NO, RETURN "INVALID MESSAGE FORMAT" ERROR
  4004	004502'	202 04 0 15 000004 		MOVEM T4,GIALEN		;SAVE # OF CHARACTERS IN FIELD
  4005	004503'	274 03 0 00 000004 		SUB T3,T4		;COMPUTE # OF BYTES REMAINING AFTER THIS FIELD
  4006	004504'	202 03 0 15 000002 		MOVEM T3,GIACNT		;SAVE UPDATED BYTE COUNT
  4007	004505'	336 03 0 15 000003 		SKIPN T3,GIADST		;ANY POINTER PROVIDED AS INPUT ?
  4008	004506'	200 03 0 00 014123'		MOVE T3,[POINT 7,TMPSTR] ;NO, SET UP POINTER TO TEMPORARY DESTINATION
  4009
  4010					; LOOP OVER EACH CHARACTER IN THE STRING
  4011
  4012	004507'	361 04 0 00 004514'	GIA010:	SOJL T4,GIA020		;DECREMENT COUNT OF CHARACTERS LEFT IN STRING
  4013	004510'	134 02 0 15 000001 		ILDB T2,GIAPTR		;GET A CHARACTER FROM THE STRING
  4014	004511'	332 00 0 00 000002 		SKIPE T2			;DISCARD NULLS
  4015	004512'	136 02 0 00 000003 		IDPB T2,T3		;STORE CHARACTER INTO TEMPORARY DESTINATION
  4016	004513'	254 00 0 00 004507'		JRST GIA010		;LOOP OVER ALL CHARACTERS IN THE STRING
  4017
  4018					; TERMINATE THE STRING WITH A NULL AND MOVE TO STRING STORAGE AREA
  4019
  4020	004514'	201 02 0 00 000000 	GIA020:	MOVEI T2,.CHNUL		;GET A NULL
  4021	004515'	136 02 0 00 000003 		IDPB T2,T3		;TERMINATE THE STRING WITH A NULL
  4022	004516'	332 00 0 15 000003 		SKIPE GIADST		;WAS A DESTINATION POINTER SUPPLIED ?
  4023						JRST [	MOVE T1,T3	;COPY POINTER TO END OF STRING
  4024	004517'	254 00 0 00 014124'			JRST GIA030 ]	;GET REMAINING ITEMS TO RETURN
  4025	004520'	201 01 0 00 010744'		MOVEI T1,TMPSTR		;GET ADDRESS OF TEMPORARY STRING LOCATION
  4026	004521'	260 17 0 00 010425'		CALL STOSTR		;STORE THE STRING IN THE PERMANENT STRING AREA
  4027	004522'	254 00 0 00 013675'		 RETBAD (.NRRES)	;FAILED, RETURN "RESOURCE ERROR"
  4028	004523'	200 03 0 00 000001 		MOVE T3,T1		;GET POINTER TO PERMANENT STRING LOCATION
  4029	004524'	200 02 0 15 000002 	GIA030:	MOVE T2,GIACNT		;GET # OF BYTES REMAINING IN MESSAGE
  4030	004525'	200 01 0 15 000001 		MOVE T1,GIAPTR		;GET POINTER TO NEXT FIELD IN MESSAGE
  4031	004526'	200 04 0 15 000004 		MOVE T4,GIALEN		;RETURN LENGTH OF FIELD
  4032	004527'	254 00 0 00 004473*		RETSKP			;DONE, RETURN SUCCESS
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 96
NCU	MAC	 6-Oct-81 12:41		Routines to Extract Fields from NICE Messages

  4033					;GETIMB - ROUTINE TO EXTRACT A BINARY NUMBER FROM AN IMAGE FIELD
  4034					;
  4035					;ACCEPTS IN T1/	POINTER TO START OF FIELD
  4036					;	    T2/	NUMBER OF BYTES REMAINING IN MESSAGE
  4037					;		CALL GETIMB
  4038					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  4039					;	  +2	SUCCESS, WITH T1/ UPDATED POINTER TO NEXT FIELD IN MESSAGE
  4040					;			      T2/ UPDATED COUNT OF BYTES REMAINING IN MESSAGE
  4041					;			      T3-T4/ BINARY NUMBER
  4042
  4043	004530'	265 16 0 00 004474*	GETIMB:	ASUBR <GIBPTR,GIBCNT,GIBSFT>
  4044
  4045	004531'	375 03 0 15 000002 		SOSGE T3,GIBCNT		;AT LEAST ONE BYTE REMAINING IN MESSAGE ?
  4046	004532'	254 00 0 00 013542'		RETBAD (.NRIMF)		;NO, RETURN "INVALID MESSAGE FORMAT" ERROR
  4047	004533'	134 01 0 15 000001 		ILDB T1,GIBPTR		;YES, GET # OF CHARACTERS IN STRING
  4048	004534'	313 01 0 15 000002 		CAMLE T1,GIBCNT		;AT LEAST THAT MANY CHARACTERS LEFT IN MESSAGE ?
  4049	004535'	254 00 0 00 013542'		RETBAD (.NRIMF)		;NO, RETURN "INVALID MESSAGE FORMAT" ERROR
  4050	004536'	274 03 0 00 000001 		SUB T3,T1		;COMPUTE COUNT REMAINING AFTER THIS FIELD
  4051	004537'	202 03 0 15 000002 		MOVEM T3,GIBCNT		;SAVE UPDATED COUNT
  4052	004540'	201 02 0 00 000011 		MOVEI T2,MAXIMB		;GET MAX NUMBER OF BYTES IN IMAGE BINARY FIELDS
  4053	004541'	274 02 0 00 000001 		SUB T2,T1		;COMPUTE NUMBER OF EXTRA HIGH ORDER BYTES
  4054	004542'	202 02 0 15 000003 		MOVEM T2,GIBSFT		;SAVE NUMBER OF EXTRA SHIFTS TO DO
  4055	004543'	403 03 0 00 000004 		SETZB T3,T4		;CLEAR ACCUMULATORS TO RECEIVE RESULT
  4056
  4057					; LOOP OVER EACH BYTE IN THE FIELD
  4058
  4059	004544'	361 01 0 00 004551'	GIB010:	SOJL T1,GIB020		;IF ALL BYTES DEPOSITED, GO DO REMAINING SHIFTS
  4060	004545'	246 03 0 00 777770 		LSHC T3,-8		;SHIFT ANY PREVIOUS BYTES RIGHT ONE BYTE
  4061	004546'	134 02 0 15 000001 		ILDB T2,GIBPTR		;GET A BYTE FROM THE IMAGE FIELD
  4062	004547'	137 02 0 00 014126'		DPB T2,[POINT 8,T3,7]	;DEPOSIT INTO HIGH ORDER END OF BINARY NUMBER
  4063	004550'	254 00 0 00 004544'		JRST GIB010		;LOOP OVER ALL BYTES IN THE FIELD
  4064
  4065					; HERE TO SHIFT THE NUMBER UNTIL IT IS RIGHT-ADJUSTED IN THE TWO AC'S
  4066
  4067	004551'	375 00 0 15 000003 	GIB020:	SOSGE GIBSFT		;ANOTHER SHIFT REQUIRED ?
  4068	004552'	254 00 0 00 004555'		JRST GIB030		;NO, GO RETURN TO CALLER
  4069	004553'	246 03 0 00 777770 		LSHC T3,-8		;YES, MOVE THE NUMBER ONE BYTE TO THE RIGHT
  4070	004554'	254 00 0 00 004551'		JRST GIB020		;LOOP OVER EACH EXTRA HIGH ORDER BYTE
  4071
  4072					; HERE TO RETURN TO CALLER
  4073
  4074	004555'	200 01 0 15 000001 	GIB030:	MOVE T1,GIBPTR		;GET POINTER TO NEXT FIELD IN MESSAGE
  4075	004556'	200 02 0 15 000002 		MOVE T2,GIBCNT		;GET UPDATED COUNT OF BYTES LEFT IN MESSAGE
  4076	004557'	254 00 0 00 004527*		RETSKP			;RETURN, T3 AND T4 CONTAIN THE BINARY NUMBER
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 97
NCU	MAC	 6-Oct-81 12:41		Routines to Extract Fields from NICE Messages

  4077					;GETLIN - ROUTINE TO GET A LINE ID FROM A NICE MESSAGE
  4078					;
  4079					;ACCEPTS IN T1/	POINTER TO NEXT FIELD (LINE ID) IN NICE MESSAGE
  4080					;	    T2/	COUNT OF NUMBER OF BYTES LEFT IN NICE MESSAGE
  4081					;		CALL GETLIN
  4082					;RETURNS: +1	 FAILED, NICE RETURN CODE
  4083					;	  +2	SUCCESS, WITH T1/ UPDATED POINTER TO NEXT FIELD IN MESSAGE
  4084					;			      T2/ UPDATED COUNT OF BYTES LEFT IN MESSAGE
  4085					;			      T3/ LINE DEVICE TYPE (.DTXXX),,LINE CONTROLLER #
  4086					;			      T4/ LINE UNIT NUMBER,,LINE STATION ADDRESS
  4087					;
  4088					; NOTE:  IF "ALL LINES" IS SPECIFIED AS THE LINE ID, THEN ON A SUCCESS
  4089					;	 RETURN, T3/ -1 AND T4/ UNDEFINED
  4090
  4091	004560'	265 16 0 00 004530*	GETLIN::ASUBR <GTLPTR,GTLCNT>
  4092	004561'	375 00 0 15 000002 		SOSGE GTLCNT		;AT LEAST ONE BYTE LEFT IN MESSAGE ?
  4093	004562'	254 00 0 00 013670'		RETBAD (.NRILN)		;NO, RETURN "INVALID LINE ID" ERROR
  4094	004563'	134 04 0 15 000001 		ILDB T4,GTLPTR		;GET LINE ID FORMAT BYTE
  4095	004564'	301 04 0 00 000000 		CAIL T4,.LTALL		;IS THE LINE ID FORMAT WITHIN
  4096	004565'	303 04 0 00 000002 		CAILE T4,.LTSTR		; LEGAL LIMITS ?
  4097	004566'	254 00 0 00 013670'		RETBAD (.NRILN)		;NO, RETURN "INVALID LINE ID" ERROR
  4098	004567'	200 01 0 15 000001 		MOVE T1,GTLPTR		;GET POINTER TO REMAINDER OF LINE ID
  4099	004570'	200 02 0 15 000002 		MOVE T2,GTLCNT		;GET REMAINING COUNT OF BYTES IN MESSAGE
  4100	004571'	254 00 1 04 004572'		CALLRET @GTLTAB(T4)	;YES, CALL LINE-FORMAT-SPECIFIC ROUTINE
  4101
  4102
  4103					; TABLE OF LINE-FORMAT-SPECIFIC ROUTINES TO EXTRACT LINE-ID'S FROM MESSAGES
  4104
  4105	004572'	000000	004575'		GTLTAB:	GTLALL			;ALL LINES
  4106	004573'	000000	004577'			GTLSTD			;STANDARD NICE PROTOCOL LINE IDENTIFIER
  4107	004574'	000000	004612'			GTLSTR			;ASCII NAME STRING
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 98
NCU	MAC	 6-Oct-81 12:41		Routines to Extract Fields from NICE Messages

  4108					;GTLALL - ROUTINE TO EXTRACT A FORMAT 0 LINE ID FROM A MESSAGE
  4109					;
  4110					;ACCEPTS IN T1/	POINTER TO BYTE AFTER LINE ID FORMAT
  4111					;	    T2/	NUMBER OF BYTES REMAINING IN NICE MESSAGE
  4112					;		CALL GTLALL
  4113					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  4114					;	  +2	SUCCESS, WITH T1/ UPDATED POINTER TO NEXT FIELD IN MESSAGE
  4115					;			      T2/ UPDATED COUNT OF BYTES IN MESSAGE
  4116					;			      T3/ -1, INDICATING "ALL LINES" WAS SPECIFIED
  4117
  4118	004575'	476 00 0 00 000003 	GTLALL:	SETOM T3		;NOTE THAT ALL LINES WAS SPECIFIED IN MESSAGE
  4119	004576'	254 00 0 00 004557*		RETSKP			;DONE, RETURN
  4120
  4121					;GTLSTD - ROUTINE TO EXTRACT A STANDARD NICE LINE ID FROM A NICE MESSAGE
  4122					;
  4123					;ACCEPTS IN T1/	POINTER TO BYTE AFTER LINE ID FORMAT BYTE
  4124					;	    T2/	COUNT OF BYTES REMAINING IN NICE MESSAGE
  4125					;		CALL GTLSTD
  4126					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  4127					;	  +2	SUCCESS, WITH T1/ UPDATED POINTER TO NEXT FIELD IN MESSAGE
  4128					;			      T2/ UPDATED COUNT OF BYTES REMAINING IN MESSAGE
  4129					;			      T3/ LINE DEVICE TYPE (.DTXXX),,LINE CONTROLLER #
  4130					;			      T4/ LINE UNIT NUMBER,,LINE STATION ADDRESS
  4131
  4132	004577'	275 02 0 00 000004 	GTLSTD:	SUBI T2,4		;DECREMENT REMAINING BYTES BY LINE ID BYTES
  4133	004600'	321 02 0 00 014127'		JUMPL T2,[RETBAD (.NRILN)] ;IF NOT ENOUGH BYTES LEFT, RETURN ERROR
  4134	004601'	261 17 0 00 000002 		PUSH P,T2		;SAVE COUNT
  4135	004602'	134 02 0 00 000001 		ILDB T2,T1		;GET LINE DEVICE TYPE (.DTXXX)
  4136	004603'	134 03 0 00 000001 		ILDB T3,T1		;GET LINE CONTROLLER NUMBER
  4137	004604'	504 03 0 00 000002 		HRL T3,T2		;PUT DEVICE TYPE IN LH
  4138	004605'	134 02 0 00 000001 		ILDB T2,T1		;GET LINE UNIT NUMBER
  4139	004606'	134 04 0 00 000001 		ILDB T4,T1		;GET LINE STATION NUMBER
  4140	004607'	504 04 0 00 000002 		HRL T4,T2		;FORM UNIT,,STATION NUMBERS
  4141	004610'	262 17 0 00 000002 		POP P,T2		;RESTORE COUNT
  4142	004611'	254 00 0 00 004576*		RETSKP			;DONE, RETURN SUCCESS
  4143
  4144
  4145					;GTLSTR - ROUTINE TO EXTRACT A LINE IN FORMAT 2 (STRING) FROM A MESSAGE
  4146					;
  4147					;ACCEPTS IN T1/	POINTER TO BYTE AFTER LINE ID FORMAT BYTE
  4148					;	    T2/	NUMBER OF BYTES REMAINING IN MESSAGE
  4149					;		CALL GTLSTR
  4150					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  4151					;	  +2	SUCCESS, WITH T1/ UPDATED POINTER TO NEXT FIELD IN MESSAGE
  4152					;			      T2/ UPDATED COUNT OF BYTES REMAINING IN MESSAGE
  4153					;			      T3-T4/ LINE ID IN STANDARD FORMAT
  4154
  4155	004612'	254 00 0 00 013670'	GTLSTR:	RETBAD (.NRILN)		;FOR NOW, JUST FAIL- STRINGS NOT SUPPORTED
  4156
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 99
NCU	MAC	 6-Oct-81 12:41		Routines to Extract Fields from NICE Messages

  4157					;GETMEM - ROUTINE TO GET A MEMORY ADDRESS FROM A NICE OR MOP MESSAGE
  4158					;
  4159					;ACCEPTS IN T1/	POINTER TO NEXT FIELD (MEM ADDRESS) IN MESSAGE
  4160					;	    T2/	NUMBER OF BYTES LEFT IN THE MESSAGE
  4161					;		CALL GETMEM
  4162					;RETURNS: +1	 FAILED, BADLY FORMED MESSAGE
  4163					;	  +2	SUCCESS, WITH T1/ UPDATED POINTER TO NEXT FIELD IN MESSAGE
  4164					;			      T2/ UPDATED COUNT OF BYTES LEFT IN MESSAGE
  4165					;			      T3/ MEMORY ADDRESS (OR MEMORY SIZE)
  4166
  4167	004613'	265 16 0 00 004560*	GETMEM:	ASUBR <GTMPTR,GTMCNT>
  4168
  4169	004614'	200 02 0 15 000002 		MOVE T2,GTMCNT		;GET # OF BYTES LEFT IN MESSAGE
  4170	004615'	275 02 0 00 000004 		SUBI T2,4		;DECREMENT BY SIZE OF MEM ADDRESS
  4171	004616'	321 02 0 00 001552*		JUMPL T2,R		;RETURN FAILURE IF NOT ENOUGH BYTES LEFT
  4172	004617'	202 02 0 15 000002 		MOVEM T2,GTMCNT		;SAVE UPDATED BYTE COUNT
  4173	004620'	200 01 0 15 000001 		MOVE T1,GTMPTR		;GET POINTER TO NEXT FIELD IN MESSAGE
  4174	004621'	260 17 0 00 005142'		CALL GET4		;GET THE NEXT 4-BYTE FIELD FROM MESSAGE
  4175	004622'	200 03 0 00 000002 		MOVE T3,T2		;GET MEMORY ADDRESS
  4176	004623'	200 02 0 15 000002 		MOVE T2,GTMCNT		;GET UPDATED BYTE COUNT
  4177	004624'	254 00 0 00 004611*		RETSKP			;DONE, RETURN
  4178
  4179
  4180
  4181					;GETTWO - ROUTINE TO GET A TWO BYTE NUMBER FROM A NICE MESSAGE
  4182					;
  4183					;ACCEPTS  T1/ POINTER TO NEXT FIELD IN NICE MESSAGE
  4184					;	  T2/ COUNT OF BYTES LEFT IN NICE MESSAGE
  4185					;		CALL GETTWO
  4186					;RETURNS: +1	FAILED
  4187					;	  +2 WITH T1/ UPDATED BYTE POINTER
  4188					;		  T2/ UPDATED BYTE COUNTER
  4189					;		  T3/ NUMBER FROM NICE MESSAGE
  4190
  4191	004625'	377 00 0 00 000002 	GETTWO::SOSG T2			;ANOTHER BYTE ?
  4192	004626'	263 17 0 00 000000 		RET
  4193	004627'	134 03 0 00 000001 		ILDB T3,T1		;GET NEXT BYTE FROM MESSAGE
  4194	004630'	375 00 0 00 000002 		SOSGE T2		;ANOTHER BYTE ?
  4195	004631'	263 17 0 00 000000 		RET
  4196	004632'	134 04 0 00 000001 		ILDB T4,T1		;GET SECOND BYTE FROM MESSAGE
  4197	004633'	137 04 0 00 014130'		DPB T4,[POINT 8,T3,27]	;ADD HIGH ORDER BYTE OF NUMBER
  4198	004634'	254 00 0 00 004624*		RETSKP			;RETURN
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 100
NCU	MAC	 6-Oct-81 12:41		Routines to Extract Fields from NICE Messages

  4199					;GETFLD - ROUTINE TO EXTRACT A FIELD FROM AN EVENT LOGGING NICE MESSAGE
  4200					;
  4201					;ACCEPTS IN T1/	POINTER TO NEXT FIELD IN MSG
  4202					;	    T2/	NUMBER OF BYTES LEFT IN MESSAGE
  4203					;		CALL GETFLD
  4204					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  4205					;	  +2	SUCCESS, WITH T1/ UPDATED POINTER TO NEXT FIELD IN MESSAGE
  4206					;			      T2/ UPDATED COUNT OF BYTES LEFT IN MESSAGE
  4207					;			      T3/ DATA TYPE CODE OF THIS FIELD
  4208					;			      T4/ DATA-TYPE-DEPENDENT INFO
  4209
  4210	004635'	375 00 0 00 000002 	GETFLD:	SOSGE T2		;AT LEAST ONE BYTE LEFT
  4211	004636'	254 00 0 00 013542'		RETBAD (.NRIMF)		;FAILED, INVALID MESSAGE FORMAT
  4212	004637'	134 03 0 00 000001 		ILDB T3,T1		;GET DATA TYPE ID BYTE
  4213	004640'	301 03 0 00 000017 		CAIL T3,EVTLEN		;VALID DATA TYPE SPECIFIED ?
  4214	004641'	254 00 0 00 013542'		RETBAD (.NRIMF)		;NO, FAIL WITH INVALID MESSAGE FORMAT
  4215	004642'	254 00 1 03 004643'		CALLRET @EVTDSP(T3)	;EXTRACT SPECIFIC DATA
  4216
  4217	004643'	254 00 0 00 013542'	EVTDSP:	RETBAD (.NRIMF)		;  0 - ILLEGAL
  4218	004644'	000000	005050'			REGFLD			;  1 - DEVICE REGISTERS
  4219	004645'	000000	005122'			TIMFLD			;  2 - TIME OF DAY
  4220	004646'	000000	004662'			DATFLD			;  3 - DATE
  4221	004647'	000000	004712'			UPTFLD			;  4 - UPTIME
  4222	004650'	000000	004716'			DEVFLD			;  5 - DEVICE
  4223	004651'	000000	004764'			RSNFLD			;  6 - REASON CODE
  4224	004652'	000000	005126'			RCVFLD			;  7 - RECOVERY ACTION
  4225	004653'	000000	005106'			OPSFLD			;  8 - OPERATING SYSTEM
  4226	004654'	000000	004770'			NODFLD			;  9 - NODE ID
  4227	004655'	000000	005017'			MCDFLD			;  10 - MICROCODE DESCRIPTOR
  4228	004656'	000000	005141'			LPRFLD			; 11 - LINE PROTOCOL
  4229	004657'	000000	005141'			TPRFLD			; 12 - TRANSMISSION PROTOCOL
  4230	004660'	000000	005134'			THRFLD			; 13 - THRESHOLD VALUE
  4231	004661'	000000	005026'			TXTFLD			; 14 - ASCII TEXT
  4232			000017		EVTLEN==.-EVTDSP
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 101
NCU	MAC	 6-Oct-81 12:41		Routines to Extract Fields from NICE Messages

  4233					; ROUTINES TO EXTRACT SPECIFIC FIELDS FROM NICE EVENT LOGGING MESSAGES
  4234
  4235					; DATFLD - EXTRACT DATE FIELD FROM A NICE EVENT LOGGING MESSAGE
  4236
  4237	004662'	265 16 0 00 004026*	DATFLD:	STKVAR <DTFDAY,DTFMON,DTFYR,DTFPTR,DTFCNT>
  4238	004663'	000005	000005
  4239	004664'	275 02 0 00 000002 		SUBI T2,2		;DECREMENT COUNT BY SIZE OF DAY AND MONTH
  4240	004665'	323 02 0 00 013707'		JUMPLE T2,[RETBAD (.NRIMF)] ;FAIL IF NOT ENOUGH BYTES
  4241	004666'	134 03 0 00 000001 		ILDB T3,T1		;GET THE DAY
  4242	004667'	202 03 0 17 777776 		MOVEM T3,DTFDAY		;SAVE THE DAY
  4243	004670'	134 03 0 00 000001 		ILDB T3,T1		;GET THE MONTH
  4244	004671'	202 03 0 17 777775 		MOVEM T3,DTFMON		;SAVE MONTH
  4245	004672'	260 17 0 00 004625'		CALL GETTWO		;GET THE YEAR
  4246	004673'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR
  4247	004674'	202 03 0 17 777774 		MOVEM T3,DTFYR		;SAVE YEAR
  4248	004675'	202 02 0 17 777772 		MOVEM T2,DTFCNT		;SAVE CURRENT COUNT OF BYTES IN MESSAGE
  4249	004676'	202 01 0 17 777773 		MOVEM T1,DTFPTR		;SAVE POINTER TO NEXT FIELD IN MESSAGE
  4250
  4251					; CONVERT DATE TO STANDARD TOPS20 FORMAT
  4252
  4253	004677'	504 02 0 17 777774 		HRL T2,DTFYR		;GET THE YEAR
  4254	004700'	540 02 0 17 777775 		HRR T2,DTFMON		;GET THE MONTH
  4255	004701'	514 03 0 17 777776 		HRLZ T3,DTFDAY		;GET THE DAY
  4256	004702'	201 04 0 00 000000 		MOVX T4,0		;NO FLAGS
  4257	004703'	104 00 0 00 000223 		IDCNV			;CONVERT THE DATE
  4258	004704'	320 16 0 00 013656'		 ERJMP [RETBAD (.NRNPE)] ;FAILED
  4259	004705'	200 04 0 00 000002 		MOVE T4,T2		;GET DATE
  4260	004706'	201 03 0 00 000003 		MOVX T3,.EDDAT		;GET EVENT DATA TYPE CODE
  4261	004707'	200 02 0 17 777772 		MOVE T2,DTFCNT		;GET COUNT OF BYTES IN MESSAGE
  4262	004710'	200 01 0 17 777773 		MOVE T1,DTFPTR		;GET POINTER TO NEXT FIELD IN MESSAGE
  4263	004711'	254 00 0 00 004634*		RETSKP			;DONE, RETURN SUCCESS
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 102
NCU	MAC	 6-Oct-81 12:41		Routines to Extract Fields from NICE Messages

  4264
  4265					; UPTFLD - ROUTINE TO EXTRACT NODE UPTIME FROM A NICE EVENT LOGGING MESSAGE
  4266
  4267	004712'	260 17 0 00 005167'	UPTFLD:	CALL GETEXB		;GET UPTIME
  4268	004713'	263 17 0 00 000000 		 RETBAD ()		;FAILED
  4269	004714'	201 03 0 00 000004 		MOVX T3,.EDUPT		;GET EVENT DATA TYPE CODE
  4270	004715'	254 00 0 00 004711*		RETSKP			;DONE, RETURN SUCCESS
  4271
  4272
  4273					; DEVFLD - ROUTINE TO EXTRACT A DEVICE DESIGNATOR FROM A NICE LOGGING MESSAGE
  4274
  4275	004716'	265 16 0 00 004662*	DEVFLD:	STKVAR <DVFBLK,DVFPTR,DVFCNT,<DVFDEV,2>>
  4276	004717'	000005	000005
  4277
  4278					; EXTRACT THE DEVICE ID FROM THE MESSAGE
  4279
  4280	004720'	375 00 0 00 000002 		SOSGE T2		;AT LEAST IMAGE FIELD BYTE COUNT PRESENT ?
  4281	004721'	254 00 0 00 013542'		RETBAD (.NRIMF)		;NO, FAIL
  4282	004722'	134 04 0 00 000001 		ILDB T4,T1		;YES, GET NUMBER OF BYTES IN DEVICE ID
  4283	004723'	274 02 0 00 000004 		SUB T2,T4		;ENOUGH BYTES LEFT IN MESSAGE ?
  4284	004724'	321 02 0 00 013707'		JUMPL T2,[RETBAD (.NRIMF)] ;NO, FAIL
  4285	004725'	275 04 0 00 000003 		SUBI T4,3		;AT LEAST FORMAT CODE BYTE, DEVICE TYPE, AND
  4286	004726'	321 04 0 00 014127'		JUMPL T4,[RETBAD (.NRILN)] ; CONTROLLER NUMBER MUST BE PRESENT
  4287	004727'	134 03 0 00 000001 		ILDB T3,T1		;YES, GET FORMAT CODE BYTE
  4288	004730'	302 03 0 00 000001 		CAIE T3,.LTSTD		;STANDARD LINE ID FORMAT ?
  4289	004731'	254 00 0 00 013670'		RETBAD (.NRILN)		;NO, INVALID LINE ID
  4290	004732'	134 03 0 00 000001 		ILDB T3,T1		;GET DEVICE TYPE CODE (.DTXXX)
  4291	004733'	506 03 0 17 777772 		HRLM T3,DVFDEV		;SAVE DEVICE TYPE CODE
  4292	004734'	134 03 0 00 000001 		ILDB T3,T1		;GET CONTROLLER NUMBER
  4293	004735'	542 03 0 17 777772 		HRRM T3,DVFDEV		;SAVE CONTROLLER NUMBER
  4294	004736'	476 00 0 17 777773 		SETOM 1+DVFDEV		;INITIALIZE UNIT AND STATION NUMBERS
  4295	004737'	375 00 0 00 000004 		SOSGE T4		;IS UNIT NUMBER PRESENT ?
  4296	004740'	254 00 0 00 004747'		JRST DVFLD2		;NO, GO SAVE DEVICE ID
  4297	004741'	134 03 0 00 000001 		ILDB T3,T1		;YES, GET UNIT NUMBER
  4298	004742'	506 03 0 17 777773 		HRLM T3,1+DVFDEV	;SAVE UNIT NUMBER
  4299	004743'	375 00 0 00 000004 		SOSGE T4		;STATION ADDRESS PRESENT ?
  4300	004744'	254 00 0 00 004747'		JRST DVFLD2		;NO, GO SAVE DEVICE ID
  4301	004745'	134 03 0 00 000001 		ILDB T3,T1		;GET STATION ADDRESS
  4302	004746'	542 03 0 17 777773 		HRRM T3,1+DVFDEV	;SAVE STATION ADDRESS
  4303
  4304					; ASSIGN FREE SPACE TO HOLD DEVICE
  4305
  4306	004747'	202 02 0 17 777774 	DVFLD2:	MOVEM T2,DVFCNT		;SAVE COUNT OF BYTES IN MESSAGE
  4307	004750'	202 01 0 17 777775 		MOVEM T1,DVFPTR		;SAVE UPDATED POINTER
  4308	004751'	201 01 0 00 000003 		MOVX T1,3		;DEVICE ID'S ARE 2 WORDS LONG
  4309	004752'	260 17 0 00 000000*		CALL GETFRE		;GET SOME FREE SPACE
  4310	004753'	263 17 0 00 000000 		 RETBAD ()		;FAILED
  4311	004754'	202 01 0 17 777776 		MOVEM T1,DVFBLK		;SAVE BLOCK ADDRESS
  4312
  4313					; RETURN BLOCK WITH DEVICE
  4314
  4315	004755'	120 02 0 17 777772 		DMOVE T2,DVFDEV		;GET DEVICE
  4316	004756'	124 02 0 01 000001 		DMOVEM T2,1(T1)		;SAVE DEVICE
  4317	004757'	200 04 0 00 000001 		MOVE T4,T1		;GET ADDRESS OF BLOCK HOLDING DEV
  4318	004760'	201 03 0 00 000005 		MOVX T3,.EDDEV		;GET EVENT DATA TYPE FOR A DEVICE
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 102-1
NCU	MAC	 6-Oct-81 12:41		Routines to Extract Fields from NICE Messages

  4319	004761'	200 02 0 17 777774 		MOVE T2,DVFCNT		;GET COUNT OF BYTES LEFT IN MESSAGE
  4320	004762'	200 01 0 17 777775 		MOVE T1,DVFPTR		;GET POINTER TO NEXT FIELD IN MESSAGE
  4321	004763'	254 00 0 00 004715*		RETSKP			;DONE, RETURN SUCCESS
  4322
  4323
  4324	004764'	260 17 0 00 005167'	RSNFLD:	CALL GETEXB		;GET REASON
  4325	004765'	263 17 0 00 000000 		 RETBAD ()		;FAILED
  4326	004766'	201 03 0 00 000006 		MOVX T3,.EDRSN		;GET EVENT DATA TYPE CODE
  4327	004767'	254 00 0 00 004763*		RETSKP			;DONE, RETURN SUCCESS
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 103
NCU	MAC	 6-Oct-81 12:41		Routines to Extract Fields from NICE Messages

  4328
  4329					;NODFLD - EXTRACT NODE ID FROM NICE EVENT LOGGING MESSAGE
  4330
  4331	004770'	265 16 0 00 004716*	NODFLD:	STKVAR <NDFPTR,NDFCNT,NDFBLK>
  4332	004771'	000003	000003
  4333	004772'	202 01 0 17 777776 		MOVEM T1,NDFPTR		;SAVE POINTER INTO NICE MESSAGE
  4334	004773'	202 02 0 17 777775 		MOVEM T2,NDFCNT		;SAVE NUMBER OF BYTES LEFT IN MSG
  4335
  4336					; ASSIGN FREE SPACE FOR THE NODE NAME
  4337
  4338	004774'	201 01 0 00 000003 		MOVX T1,3		;GET MAX NUMBER OF WORDS IN A NODE NAME
  4339	004775'	260 17 0 00 004752*		CALL GETFRE		;ASSIGN FREE SPACE
  4340	004776'	263 17 0 00 000000 		 RETBAD ()		;FAILED
  4341	004777'	202 01 0 17 777774 		MOVEM T1,NDFBLK		;SAVE ADDRESS OF FREE BLOCK
  4342
  4343					; EXTRACT NODE NAME FROM THE MESSAGE
  4344
  4345	005000'	200 03 0 17 777774 		MOVE T3,NDFBLK		;GET ADDRESS OF FREE BLOCK
  4346	005001'	505 03 0 00 000700 		HRLI T3,(POINT 7,0,35)	;FORM POINTER TO DESTINATION FOR NAME
  4347	005002'	200 02 0 17 777775 		MOVE T2,NDFCNT		;GET # OF BYTES LEFT IN NICE MESSAGE
  4348	005003'	200 01 0 17 777776 		MOVE T1,NDFPTR		;GET POINTER TO NODE NAME FIELD
  4349	005004'	260 17 0 00 004474'		CALL GETIMA		;EXTRACT NODE ID FROM MESSAGE
  4350	005005'	254 00 0 00 005012'		 JRST NDFERR		;FAILED, FREE SPACE AND RETURN ERROR
  4351	005006'	201 03 0 00 000011 		MOVX T3,.EDNOD		;GET NODE DATA TYPE CODE
  4352	005007'	200 04 0 17 777774 		MOVE T4,NDFBLK		;GET ADDRESS OF BLOCK HOLDING NAME
  4353	005010'	505 04 0 00 000700 		HRLI T4,(POINT 7,0,35)	;POINT TO NODE NAME
  4354	005011'	254 00 0 00 004767*		RETSKP			;DONE, RETURN SUCCESS
  4355
  4356					; HERE ON AN ERROR TO RELEASE SPACE
  4357
  4358	005012'	250 01 0 17 777774 	NDFERR:	EXCH T1,NDFBLK		;GET BLOCK ADDRESS AND SAVE ERROR CODE
  4359	005013'	260 17 0 00 003346*		CALL RELFRE		;RELEASE THE BLOCK
  4360	005014'	254 00 0 00 013623'		 FATAL.ERROR		; Die on release failure
  4361	005015'	200 01 0 17 777774 		MOVE T1,NDFBLK		;RESTORE ERROR CODE
  4362	005016'	263 17 0 00 000000 		RETBAD ()		;FAIL
  4363
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 104
NCU	MAC	 6-Oct-81 12:41		Routines to Extract Fields from NICE Messages

  4364
  4365					; MCDFLD - EXTRACT MICROCODE DESCRIPTOR FROM NICE EVENT LOGGING MESSAGE
  4366
  4367	005017'	275 02 0 00 000002 	MCDFLD:	SUBI T2,2		;MICROCODE ID IS TWO BYTES
  4368	005020'	321 02 0 00 013707'		JUMPL T2,[RETBAD (.NRIMF)] ;FAIL IF NOT ENOUGH BYTES
  4369	005021'	134 03 0 00 000001 		ILDB T3,T1		;GET MICROCODE TYPE
  4370	005022'	134 04 0 00 000001 		ILDB T4,T1		;GET MICROCODE VERSION
  4371	005023'	504 04 0 00 000003 		HRL T4,T3		;FORM TYPE,,VERSION
  4372	005024'	201 03 0 00 000012 		MOVX T3,.EDMCD		;GET MICROCODE DATA TYPE CODE
  4373	005025'	254 00 0 00 005011*		RETSKP			;RETURN MICROCODE ID
  4374
  4375
  4376					; ASCII DATA
  4377
  4378	005026'	265 16 0 00 004613*	TXTFLD:	ASUBR <AFDPTR,AFDCNT,AFDBLK,AFDSTR>
  4379	005027'	200 01 0 15 000002 		MOVE T1,AFDCNT		;GET NUMBER OF BYTES TO EXTRACT
  4380	005030'	231 01 0 00 000005 		IDIVI T1,5		;COMPUTE # OF WORDS
  4381	005031'	332 00 0 00 000002 		SKIPE T2		;ROUND UP IF
  4382	005032'	271 01 0 00 000001 		ADDI T1,1		; NECESSARY
  4383	005033'	271 01 0 00 000001 		ADDI T1,1		;ACCOUNT FOR BLOCK HEADER
  4384	005034'	260 17 0 00 004775*		CALL GETFRE		;GET FREE SPACE FOR THE TEXT
  4385	005035'	263 17 0 00 000000 		 RETBAD ()		;FAILED
  4386	005036'	505 01 0 00 000700 		HRLI T1,(POINT 7,0,35)	;FORM POINTER TO DESTINATION
  4387	005037'	202 01 0 15 000004 		MOVEM T1,AFDSTR		;SAVE POINTER TO STRING
  4388	005040'	200 03 0 00 000001 		MOVE T3,T1		;GET POINTER TO DESTINATION FOR TEXT
  4389	005041'	200 02 0 15 000002 		MOVE T2,AFDCNT		;GET COUNT OF BYTES LEFT IN MESSAGE
  4390	005042'	200 01 0 15 000001 		MOVE T1,AFDPTR		;GET POINTER TO MESSAGE
  4391	005043'	260 17 0 00 004474'		CALL GETIMA		;EXTRACT IMAGE ASCII DATA
  4392	005044'	263 17 0 00 000000 		 RETBAD ()		;FAILED
  4393	005045'	201 03 0 00 000016 		MOVX T3,.EDTXT		;GET ASCII DATA TYPE CODE
  4394	005046'	200 04 0 15 000004 		MOVE T4,AFDSTR		;GET POINTER TO ASCII STRING
  4395	005047'	254 00 0 00 005025*		RETSKP			;DONE, RETURN SUCCESS
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 105
NCU	MAC	 6-Oct-81 12:41		Routines to Extract Fields from NICE Messages

  4396
  4397					;REGFLD - ROUTINE TO EXTRACT REGISTER DATA FROM NICE EVENT LOGGING MESSAGE
  4398
  4399
  4400	005050'	265 16 0 00 005026*	REGFLD:	ASUBR <RGFPTR,RGFCNT,RGFNUM,RGFBLK>
  4401
  4402					; COMPUTE NUMBER OF BYTES IN REGISTER DATA
  4403
  4404	005051'	375 00 0 15 000002 		SOSGE RGFCNT		;AT LEAST COUNT BYTE PRESENT ?
  4405	005052'	254 00 0 00 013542'		RETBAD (.NRIMF)		;NO, FAIL
  4406	005053'	134 01 0 15 000001 		ILDB T1,RGFPTR		;GET NUMBER OF BYTES IN REGISTER DATA
  4407	005054'	202 01 0 15 000003 		MOVEM T1,RGFNUM		;SAVE NUMBER OF BYTES TO MOVE
  4408
  4409					; CHECK THAT ENOUGH BYTES ARE ACTUALLY PRESENT IN MESSAGE
  4410
  4411	005055'	200 02 0 15 000002 		MOVE T2,RGFCNT		;GET NUMBER OF BYTES LEFT IN MESSAGE
  4412	005056'	274 02 0 00 000001 		SUB T2,T1		;COMPUTE # LEFT AFTER REMOVING REGISTER DATA
  4413	005057'	321 02 0 00 013707'		JUMPL T2,[RETBAD (.NRIMF)] ;NOT ENOUGH BYTES LEFT
  4414	005060'	202 02 0 15 000002 		MOVEM T2,RGFCNT		;STORE UPDATED COUNT OF BYTES LEFT IN MESSAGE
  4415
  4416					; ASSIGN SPACE TO HOLD THE REGISTER DATA
  4417
  4418	005061'	231 01 0 00 000004 		IDIVI T1,4		;COMPUTE # OF WORDS NEEDED FOR THAT MANY BYTES
  4419	005062'	332 00 0 00 000002 		SKIPE T2		; AND ROUND UP
  4420	005063'	271 01 0 00 000001 		ADDI T1,1		; IF NEEDED
  4421	005064'	271 01 0 00 000002 		ADDI T1,2		;ACCOUNT FOR BLOCK HEADER AND WORD HOLDING COUNT
  4422	005065'	260 17 0 00 005034*		CALL GETFRE		;ASSIGN SPACE FOR REGISTER DATA
  4423	005066'	263 17 0 00 000000 		 RETBAD ()		;FAILED
  4424	005067'	202 01 0 15 000004 		MOVEM T1,RGFBLK		;SAVE BLOCK ADDRESS
  4425
  4426					; SET UP TO EXTRACT THE REGISTER DATA
  4427
  4428	005070'	200 04 0 15 000003 		MOVE T4,RGFNUM		;GET COUNT OF BYTES IN REGISTER DATA
  4429	005071'	202 04 0 01 000001 		MOVEM T4,1(T1)		;STORE IN ASSIGNED BLOCK
  4430	005072'	201 03 0 01 000002 		MOVEI T3,2(T1)		;GET DESTINATION ADDRESS
  4431	005073'	505 03 0 00 441000 		HRLI T3,(POINT 8,)	;FORM DESTINATION POINTER
  4432
  4433					; PLACE ALL THE REGISTER DATA IN THE ASSIGNED BLOCK
  4434
  4435	005074'	375 00 0 00 000004 	RGF010:	SOSGE T4		;ANY BYTES LEFT TO MOVE ?
  4436	005075'	254 00 0 00 005101'		JRST RGF020		;NO, RETURN BLOCK TO CALLER
  4437	005076'	134 02 0 15 000001 		ILDB T2,RGFPTR		;GET A BYTE OF REGISTER DATA
  4438	005077'	136 02 0 00 000003 		IDPB T2,T3		;STORE THE BYTE
  4439	005100'	254 00 0 00 005074'		JRST RGF010		;LOOP OVER ALL BYTES
  4440
  4441	005101'	200 01 0 15 000001 	RGF020:	MOVE T1,RGFPTR		;RESTORE UPDATED POINTER
  4442	005102'	200 02 0 15 000002 		MOVE T2,RGFCNT		; AND UPDATED COUNT OF BYTES LEFT IN MESSAGE
  4443	005103'	201 03 0 00 000001 		MOVX T3,.EDREG		;GET "REGISTER DATA" TYPE CODE
  4444	005104'	200 04 0 15 000004 		MOVE T4,RGFBLK		;GET ADDRESS OF BLOCK HOLDING REGISTER DATA
  4445	005105'	254 00 0 00 005047*		RETSKP			;DONE, RETURN
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 106
NCU	MAC	 6-Oct-81 12:41		Routines to Extract Fields from NICE Messages

  4446
  4447					;OPSFLD - ROUTINE TO EXTRACT OPERATING SYSTEM ID FROM NICE MESSAGES
  4448
  4449	005106'	265 16 0 00 004770*	OPSFLD:	STKVAR <OPFTYP>
  4450	005107'	000001	000001
  4451	005110'	375 00 0 00 000002 		SOSGE T2		;AT TYPE CODE BYTE PRESENT ?
  4452	005111'	254 00 0 00 013542'		RETBAD (.NRIMF)		;NO, FAIL
  4453	005112'	134 04 0 00 000001 		ILDB T4,T1		;GET OPERATING SYSTEM TYPE CODE
  4454	005113'	202 04 0 17 777776 		MOVEM T4,OPFTYP		;SAVE OPERATING SYSTEM TYPE
  4455	005114'	505 03 0 00 440000 		HRLI T3,440000		;USE ptr WITH ZERO SIZE FIELD TO DISCARD text
  4456	005115'	260 17 0 00 004474'		CALL GETIMA		;IGNORE ASCII SYSTEM ID
  4457	005116'	263 17 0 00 000000 		 RETBAD ()		;FAILED
  4458	005117'	201 03 0 00 000010 		MOVX T3,.EDOPS		;OPERATING SYSTEM CODE BEING RETURNED
  4459	005120'	200 04 0 17 777776 		MOVE T4,OPFTYP		;GET OPERATING SYSTEM TYPE CODE
  4460	005121'	254 00 0 00 005105*		RETSKP
  4461
  4462					;TIMFLD - ROUTINE TO EXTRACT THE TIME FROM A NICE EVENT LOGGING MESSAGE
  4463
  4464	005122'	260 17 0 00 005167'	TIMFLD:	CALL GETEXB		;GET EXTENSIBLE BINARY FIELD
  4465	005123'	263 17 0 00 000000 		 RETBAD ()		;FAILED
  4466	005124'	201 03 0 00 000002 		MOVX T3,.EDTIM		;GET TIME FIELD DATA TYPE CODE
  4467	005125'	254 00 0 00 005121*		RETSKP			;DONE, RETURN SUCCESS
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 107
NCU	MAC	 6-Oct-81 12:41		Routines to Extract Fields from NICE Messages

  4468
  4469					;RCVFLD - ROUTINE TO EXTRACT THE RECOVERY OPTION FROM NICE EVENT MESSAGES
  4470					;
  4471					; NOTE: THIS FIELD IS NEVER SENT, AND IS THEREFORE IGNORED
  4472
  4473	005126'	505 03 0 00 440000 	RCVFLD:	HRLI T3,440000		;USE PTR WITH ZERO SIZE FIELD TO DISCARD TEXT
  4474	005127'	260 17 0 00 004474'		CALL GETIMA		;EXTRACT AND DISCARD RECOVERY ACTION
  4475	005130'	263 17 0 00 000000 		 RETBAD ()		;FAILED
  4476	005131'	201 03 0 00 000007 		MOVX T3,.EDRCV		;GET RECOVERY ACTION DATA TYPE CODE
  4477	005132'	402 00 0 00 000004 		SETZM T4		;NO DATA UNTIL FIELD CONTENTS SPECIFIED
  4478	005133'	254 00 0 00 005125*		RETSKP			;DONE, RETURN
  4479
  4480
  4481					;THRFLD - THRESHOLD VALUE
  4482
  4483	005134'	260 17 0 00 004625'	THRFLD:	CALL GETTWO		;GET TWO BYTE BINARY NUMBER
  4484	005135'	263 17 0 00 000000 		 RETBAD ()		;FAILED
  4485	005136'	200 04 0 00 000003 		MOVE T4,T3		;GET VALUE
  4486	005137'	201 03 0 00 000015 		MOVX T3,.EDTHR		;GET THRESHOLD TYPE CODE
  4487	005140'	254 00 0 00 005133*		RETSKP
  4488
  4489	005141'				TPRFLD:
  4490	005141'	254 00 0 00 013542'	LPRFLD:	RETBAD (.NRIMF)		;NOT CODED YET
  4491
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 108
NCU	MAC	 6-Oct-81 12:41		Routines to Extract Fields from NICE Messages

  4492					;GET4 - ROUTINE TO GET A FOUR-BYTE FIELD FROM A MESSAGE
  4493					;
  4494					;ACCEPTS IN T1/	POINTER TO NEXT FIELD IN MESSAGE
  4495					;		CALL GET4
  4496					;RETURNS: +1 ALWAYS, WITH T1/ UPDATED POINTER TO NEXT FIELD IN MESSAGE
  4497					;			  T2/ FOUR-BYTE NUMBER FROM MESSAGE
  4498
  4499	005142'	265 16 0 00 005050*	GET4:	ASUBR <GT4PTR,GT4NUM>
  4500
  4501	005143'	200 01 0 15 000001 		MOVE T1,GT4PTR		;GET POINTER TO NEXT FIELD IN MESSAGE
  4502	005144'	201 02 0 00 000004 		MOVEI T2,4		;WE HAVE ENOUGH
  4503	005145'	260 17 0 00 004625'		CALL GETTWO		;GO GET NEXT 2-BYTE NUMBER FROM MESSAGE
  4504	005146'	255 00 0 00 000000 		 JFCL
  4505	005147'	202 03 0 15 000002 		MOVEM T3,GT4NUM		;SAVE FIRST TWO BYTES OF FOUR BYTE NUMBER
  4506	005150'	260 17 0 00 004625'		CALL GETTWO		;GET TWO HIGH ORDER BYTES OF THE NUMBER
  4507	005151'	255 00 0 00 000000 		 JFCL
  4508	005152'	137 03 0 00 014131'		DPB T3,[POINT 16,GT4NUM,19] ;ADD HIGH ORDER BYTES TO NUMBER
  4509	005153'	200 02 0 15 000002 		MOVE T2,GT4NUM		;GET ENTIRE ASSEMBLED NUMBER
  4510	005154'	263 17 0 00 000000 		RET			;RETURN
  4511
  4512
  4513
  4514
  4515					;GETNUM - ROUTINE TO EXTRACT A NODE NUMBER FROM A MESSAGE
  4516					;
  4517					;ACCEPTS IN T1/	POINTER TO NUMBER IN MESSAGE
  4518					;	    T2/	COUNT OF BYTES LEFT IN MESSAGE
  4519					;		CALL GETNUM
  4520					;RETURNS: +1	 FAILED
  4521					;	  +2	SUCCESS, WITH T1/ UPDATED POINTER
  4522					;			      T2/ UPDATED COUNT
  4523					;			      T3-T4/ BINARY NUMBER FROM MESSAGE
  4524
  4525	005155'	254 00 0 00 005167'	GETNUM::CALLRET GETEXB		;GET EXTENSIBLE BINARY FIELD FROM MESSAGE
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 109
NCU	MAC	 6-Oct-81 12:41		Routines to Extract Fields from NICE Messages

  4526					;GETEXA - ROUTINE TO GET AN EXTENSIBLE ASCII STRING FROM A NICE MESSAGE
  4527					;
  4528					;ACCEPTS IN T1/	POINTER TO FIRST BYTE OF STRING IN NICE MESSAGE
  4529					;	    T2/	DESTINATION ADDRESS FOR ASCIZ STRING
  4530					;	    T3/	NUMBER OF BYTES REMAINING IN MESSAGE
  4531					;		CALL GETEXA
  4532					;RETURNS: +1	 FAILURE, BADLY FORMED MESSAGE
  4533					;		SUCCESS, WITH	T1/ UPDATED POINTER TO NEXT FIELD IN MESSAGE
  4534					;				T2/ UPDATED POINTER TO DESTINATION STRING
  4535					;				T3/ UPDATED BYTE COUNT
  4536
  4537	005156'	505 02 0 00 440700 	GETEXA:	HRLI T2,(POINT 7,)	;FORM POINTER TO DESTINATION STRING
  4538
  4539	005157'	361 03 0 00 004616*	EXTAS2:	SOJL T3,R		;RETURN IF INSUFFICIENT BYTES LEFT IN MESSAGE
  4540	005160'	134 04 0 00 000001 		ILDB T4,T1		;GET A BYTE FROM THE NICE MESSAGE
  4541	005161'	136 04 0 00 000002 		IDPB T4,T2		;STORE ASCII CHARACTER INTO DESTINATION
  4542	005162'	602 04 0 00 000200 		TXNE T4,EXTBIT		;IS NEXT BYTE PART OF THIS FIELD ?
  4543	005163'	254 00 0 00 005157'		JRST EXTAS2		;YES, GO GET THE NEXT BYTE
  4544	005164'	201 04 0 00 000000 		MOVEI T4,.CHNUL		;NO, GET A NULL
  4545	005165'	136 04 0 00 000002 		IDPB T4,T2		;TERMINATE THE ASCIZ DESTINATION STRING
  4546	005166'	254 00 0 00 005140*		RETSKP			;RETURN SUCCESS
  4547
  4548
  4549					;GETEXB - ROUTINE TO EXTRACT AN EXTENSIBLE BINARY FIELD FROM A MESSAGE
  4550					;
  4551					;ACCEPTS IN T1/	POINTER TO NEXT FIELD (EXTENSIBLE FIELD) IN MESSAGE
  4552					;	    T2/	COUNT OF BYTES REMAINING IN MESSAGE
  4553					;		CALL GETEXB
  4554					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  4555					;	  +2	SUCCESS, WITH T1/ UPDATED POINTER TO NEXT FIELD IN MESSAGE
  4556					;			      T2/ UPDATED COUNT OF BYTES REMAINING IN MESSAGE
  4557					;			      T3-T4/ BINARY NUMBER FROM MESSAGE
  4558
  4559	005167'	265 16 0 00 005142*	GETEXB::ASUBR <GEBPTR,GEBCNT>
  4560
  4561	005170'	403 03 0 00 000004 		SETZB T3,T4		;INITIALIZE THE BINARY NUMBER AC'S
  4562	005171'	201 01 0 00 000011 		MOVEI T1,MAXEXT		;MAX # OF BYTES ACCEPTED IN EXTENSIBLE FIELDS
  4563
  4564					; LOOP OVER EACH BYTE IN THE EXTENSIBLE FIELD
  4565
  4566	005172'	361 01 0 00 013707'	GEB010:	SOJL T1,[RETBAD (.NRIMF)] ;FAIL IF THERE ARE MORE THAN MAX BYTES ALLOWED
  4567	005173'	375 00 0 15 000002 		SOSGE GEBCNT		;ANOTHER BYTE LEFT IN THE MESSAGE ?
  4568	005174'	254 00 0 00 013542'		RETBAD (.NRIMF)		;NO, RETURN "INVALID MESSAGE FORMAT" ERROR
  4569	005175'	246 03 0 00 000007 		LSHC T3,7		;YES, POSITION PREVIOUS BYTES
  4570	005176'	134 02 0 15 000001 		ILDB T2,GEBPTR		;GET NEXT BYTE FROM THE NICE MESSAGE
  4571	005177'	137 02 0 00 014132'		DPB T2,[POINT 7,T4,35]	;ADD THE BYTE TO THE BINARY NUMBER BEING FORMED
  4572	005200'	602 02 0 00 000200 		TXNE T2,EXTBIT		;IS THE NEXT BYTE PART OF THIS FIELD ?
  4573	005201'	254 00 0 00 005172'		JRST GEB010		;YES, GO GET THE NEXT BYTE IN THE FIELD
  4574
  4575					; HERE WHEN DONE EXTRACTING BYTES - RETURN UPDATED POINTER AND COUNT
  4576
  4577	005202'	200 02 0 15 000002 		MOVE T2,GEBCNT		;GET UPDATED COUNT
  4578	005203'	200 01 0 15 000001 		MOVE T1,GEBPTR		;GET UPDATED POINTER TO NEXT FIELD
  4579	005204'	254 00 0 00 005166*		RETSKP			;DONE, RETURN SUCCESS
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 110
NCU	MAC	 6-Oct-81 12:41		Routines to Extract Fields from NICE Messages

  4580					;GETLOC - ROUTINE TO GET A NUMBER OF LOCATIONS FROM A MOP OR NICE MESSAGE
  4581					;
  4582					;ACCEPTS IN T1/	POINTER TO NEXT FIELD (# OF LOCATIONS) IN MESSAGE
  4583					;	    T2/	COUNT OF BYTES REMAINING IN MESSAGE
  4584					;		CALL GETLOC
  4585					;RETURNS: +1	 FAILED, MESSAGE TOO SHORT
  4586					;	  +2	SUCCESS, WITH T1/ UPDATED POINTER TO NEXT FIELD IN MESSAGE
  4587					;			      T2/ UPDATED COUNT OF BYTES LEFT IN MESSAGE
  4588					;			      T3/ NUMBER OF LOCATIONS
  4589
  4590			004625'		GETLOC==GETTWO
  4591
  4592					;GETNOD - ROUTINE TO GET AN ASCIZ NODE NAME FROM A NICE PROTOCOL MESSAGE
  4593					;
  4594					;ACCEPTS IN T1/	POINTER TO FIRST BYTE OF NODE NAME IN NICE MESSAGE
  4595					;	    T2/	NUMBER OF BYTES REMAINING IN MESSAGE
  4596					;		CALL GETNOD
  4597					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  4598					;		SUCCESS, WITH	T1/ UPDATED POINTER TO NEXT FIELD IN MESSAGE
  4599					;				T2/ UPDATED BYTE COUNT
  4600					;				T3/ POINTER TO ASCIZ NODE NAME STRING
  4601
  4602	005205'	265 16 0 00 005167*	GETNOD::ASUBR <NDMPTR,NDMCNT,NDMDST>
  4603	005206'	375 00 0 00 000002 		SOSGE T2		;AT LEAST ONE BYTE LEFT IN MESSAGE ?
  4604	005207'	254 00 0 00 013542'		RETBAD (.NRIMF)		;NO, RETURN "INVALID MESSAGE FORMAT" ERROR
  4605	005210'	200 04 0 15 000001 		MOVE T4,NDMPTR		;GET POINTER TO COUNT IN ASCII IMAGE FIELD
  4606	005211'	134 03 0 00 000004 		ILDB T3,T4		;GET NUMBER OF CHARACTERS IN NODE NAME
  4607	005212'	303 03 0 00 000006 		CAILE T3,NNAMSZ		;NAME LONGER THAN MAX ALLOWED IN NICE PROTOCOL ?
  4608	005213'	254 00 0 00 014133'		RETBAD (.NRINI)		;YES, RETURN "INVALID NODE ID" ERROR
  4609	005214'	200 02 0 15 000002 		MOVE T2,NDMCNT		;RESTORE ORIGINAL COUNT
  4610	005215'	402 00 0 00 000003 		SETZM T3		;USE GENERAL STRING AREA
  4611	005216'	260 17 0 00 004474'		CALL GETIMA		;GO GET ASCIZ STRING FROM IMAGE FIELD
  4612	005217'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR TO CALLER
  4613	005220'	254 00 0 00 005204*		RETSKP			;RETURN SUCCESS, POINTER TO NODE NAME IS IN T3
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 111
NCU	MAC	 6-Oct-81 12:41		Routines to Extract Fields from NICE Messages

  4614					;GETSEQ - ROUTINE TO EXTRACT THE SEQUENCE NUMBER FROM A NICE PROTOCOL
  4615					;	    EVENT LOGGING REQUEST MESSAGE
  4616					;
  4617					;ACCEPTS IN T1/	POINTER TO SEQUENCE NUMBER IN NICE MESSAGE
  4618					;	    T2/	NUMBER OF BYTES REMAINING IN NICE MESSAGE
  4619					;		CALL GETSEQ
  4620					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  4621					;	  +2	SUCCESS, WITH T1/ UPDATED POINTER TO NEXT FIELD IN MESSAGE
  4622					;			      T2/ UPDATED COUNT OF BYTES IN MESSAGE
  4623					;			      T3/ SEQUENCE NUMBER
  4624
  4625	005221'	375 00 0 00 000002 	GETSEQ:	SOSGE T2		;AT LEAST ONE BYTE LEFT IN MESSAGE ?
  4626	005222'	254 00 0 00 013542'		RETBAD (.NRIMF)		;NO, FAIL
  4627	005223'	134 03 0 00 000001 		ILDB T3,T1		;YES, GET SEQUENCE NUMBER
  4628	005224'	254 00 0 00 005220*		RETSKP			;DONE, RETURN
  4629
  4630
  4631
  4632					;GETEVT - ROUTINE TO EXTRACT AN EVENT CODE FROM A NICE MESSAGE
  4633					;
  4634					;ACCEPTS IN T1/	POINTER TO EVENT CODE IN NICE MESSAGE
  4635					;	    T2/	NUMBER OF BYTES REMAINING IN NICE MESSAGE
  4636					;		CALL GETEVT
  4637					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  4638					;	  +2	SUCCESS, WITH T1/ UPDATED POINTER TO NEXT FIELD IN MESSAGE
  4639					;			      T2/ UPDATED COUNT OF BYTES IN MESSAGE
  4640					;			      T3/ EVENT CODE
  4641
  4642	005225'	254 00 0 00 004625'	GETEVT:	CALLRET GETTWO		;EXTRACE A TWO-BYTE FIELD FROM MESSAGE
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 112
NCU	MAC	 6-Oct-81 12:41		Routines to Assemble NICE Messages

  4643					SUBTTL	Routines to Assemble NICE Messages
  4644
  4645					;MAKLOD - ROUTINE TO ASSEMBLE A NICE LINE SERVICE MESSAGE TO INITIATE A
  4646					;	  DOWN LINE LOAD DIALOG.
  4647					;
  4648					;CALL:		CALL MAKLOD
  4649					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  4650					;	  +2	SUCCESS, WITH T1/ POINTER TO START OF MESSAGE
  4651					;			      T2/ COUNT OF NUMBER OF BYTES IN THE MESSAGE
  4652
  4653	005226'	260 17 0 00 010457'	MAKLOD:	CALL CLRMSG		;GO CLEAR THE NICE MESSAGE AREA
  4654	005227'	200 01 0 00 013534'		MOVE T1,[POINT 8,MSGBLK] ;GET POINTER TO START OF NICE MESSAGE
  4655	005230'	201 04 0 00 000016 		MOVX T4,.NCLSV		;GET NICE "LINE SERVICE" FUNCTION CODE
  4656	005231'	136 04 0 00 000001 		IDPB T4,T1		;ADD FUNCTION CODE TO MESSAGE
  4657	005232'	201 04 0 00 000000 		MOVX T4,.LSLOD		;OPTION DESIRED IS "ESTABLISH LOAD DIALOG"
  4658	005233'	136 04 0 00 000001 		IDPB T4,T1		;ADD OPTION FIELD TO MESSAGE
  4659	005234'	201 02 0 00 000002 		MOVEI T2,2		;MESSAGE CONTAINS TWO BYTES SO FAR
  4660	005235'	120 03 0 14 000006 		DMOVE T3,RQLLIN		;GET SERVER LINE ID
  4661	005236'	260 17 0 00 005303'		CALL MAKLIN		;ADD LINE ID TO MESSAGE
  4662	005237'	200 04 0 14 000014 		MOVE T4,RQLPGM		;GET TYPE OF PROGRAM TO BE LOADED
  4663	005240'	136 04 0 00 000001 		IDPB T4,T1		;SAVE PROGRAM TYPE (.PTXXX) IN MESSAGE
  4664	005241'	271 02 0 00 000001 		ADDI T2,1		;BUMP COUNT FOR PROGRAM TYPE
  4665	005242'	505 01 0 00 441000 		HRLI T1,(POINT 8,)	;FORM POINTER TO START OF THE
  4666	005243'	541 01 0 14 000033 		HRRI T1,MSGBLK		; ASSEMBLED MESSAGE
  4667	005244'	254 00 0 00 005224*		RETSKP			;DONE, RETURN SUCCESS
  4668
  4669
  4670
  4671					;MAKDMP - ROUTINE TO ASSEMBLE A NICE LINE SERVICE MESSAGE TO INITIATE AN
  4672					;	  UP LINE DUMP DIALOG.
  4673					;
  4674					;CALL:		CALL MAKDMP
  4675					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  4676					;	  +2	SUCCESS, WITH T1/ POINTER TO START OF MESSAGE
  4677					;			      T2/ COUNT OF NUMBER OF BYTES IN THE MESSAGE
  4678
  4679	005245'	260 17 0 00 010457'	MAKDMP:	CALL CLRMSG		;GO CLEAR THE NICE MESSAGE AREA
  4680	005246'	200 01 0 00 013534'		MOVE T1,[POINT 8,MSGBLK] ;GET POINTER TO START OF NICE MESSAGE
  4681	005247'	201 04 0 00 000016 		MOVX T4,.NCLSV		;GET NICE "LINE SERVICE" FUNCTION CODE
  4682	005250'	136 04 0 00 000001 		IDPB T4,T1		;ADD FUNCTION CODE TO MESSAGE
  4683	005251'	201 04 0 00 000002 		MOVX T4,.LsdmP		;OPTION DESIRED IS "ESTABLISH LOAD DIALOG"
  4684	005252'	136 04 0 00 000001 		IDPB T4,T1		;ADD OPTION FIELD TO MESSAGE
  4685	005253'	201 02 0 00 000002 		MOVEI T2,2		;MESSAGE CONTAINS TWO BYTES SO FAR
  4686	005254'	120 03 0 14 000024 		DMOVE T3,RQDLIN		;GET SERVER LINE ID
  4687	005255'	260 17 0 00 005303'		CALL MAKLIN		;ADD LINE ID TO MESSAGE
  4688	005256'	200 02 0 14 000030 		MOVE T2,RQDADR		;GET STARTING ADDRESS FOR DUMP
  4689	005257'	260 17 0 00 006337'		CALL MAK4		;GO ADD FOUR-BYTE FIELD TO MESSAGE
  4690	005260'	200 02 0 15 000002 		MOVE T2,RQDCNT		;GET COUNT OF LOCATIONS TO DUMP
  4691	005261'	260 17 0 00 006337'		CALL MAK4		;GO ADD COUNT TO DUMP MESSAGE
  4692	005262'	201 02 0 00 000017 		MOVEI T2,^D15		;GET NUMBER OF BYTES IN DUMP MESSAGE
  4693	005263'	505 01 0 00 441000 		HRLI T1,(POINT 8,)	;FORM POINTER TO START OF
  4694	005264'	541 01 0 14 000033 		HRRI T1,MSGBLK		; NICE LINE SERVICE MESSAGE
  4695	005265'	254 00 0 00 005244*		RETSKP			;DONE, RETURN SUCCESS
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 113
NCU	MAC	 6-Oct-81 12:41		Routines to Assemble NICE Messages

  4696					;MAKRLC - ROUTINE TO ASSEMBLE A NICE READ LINE COUNTERS MESSAGE
  4697					;
  4698					;ACCEPTS IN T1-T2/ NICE LINE ID FOR WHICH COUNTERS ARE DESIRED
  4699					;		CALL MAKRLC
  4700					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  4701					;	  +2	SUCCESS, WITH T1/ POINTER TO START OF MESSAGE
  4702					;			      T2/ NUMBER OF BYTES IN THE MESSAGE
  4703
  4704	005266'	265 16 0 00 005205*	MAKRLC:	ASUBR <<MRLLIN,2>>
  4705
  4706	005267'	260 17 0 00 010457'		CALL CLRMSG		;GO CLEAR THE NICE MESSAGE AREA
  4707	005270'	200 01 0 00 013534'		MOVE T1,[POINT 8,MSGBLK] ;GET POINTER TO START OF MESSAGE
  4708	005271'	201 04 0 00 000010 		MOVX T4,.NCRED		;GET NICE "READ INFORMATION" FUNCTION CODE
  4709	005272'	136 04 0 00 000001 		IDPB T4,T1		;ADD FUNCTION CODE TO MESSAGE
  4710	005273'	201 04 0 00 000004 		MOVX T4,.RDLCT		;GET "LINE COUNTERS" OPTION FOR READ FUNCTION
  4711	005274'	136 04 0 00 000001 		IDPB T4,T1		;ADD OPTION TO MESSAGE
  4712	005275'	201 02 0 00 000002 		MOVEI T2,2		;GET NUMBER OF BYTES IN MESSAGE SO FAR
  4713	005276'	120 03 0 15 000001 		DMOVE T3,MRLLIN		;GET LINE FOR WHICH COUNTERS ARE DESIRED
  4714	005277'	260 17 0 00 005303'		CALL MAKLIN		;GO ADD LINE ID TO MESSAGE
  4715	005300'	505 01 0 00 441000 		HRLI T1,(POINT 8,)	;FORM POINTER TO NICE "READ INFORMATION"
  4716	005301'	541 01 0 14 000033 		HRRI T1,MSGBLK		; MESSAGE TO GET LINE COUNTERS
  4717	005302'	254 00 0 00 005265*		RETSKP			;DONE, RETURN SUCCESS
  4718
  4719
  4720
  4721					;MAKLIN - ROUTINE TO ASSEMBLE A STANDARD LINE ID INTO A MESSAGE
  4722					;
  4723					;ACCEPTS IN T1/	POINTER TO NEXT FIELD IN MESSAGE
  4724					;	    T2/	NUMBER OF BYTES ALREADY IN THE MESSAGE
  4725					;	    T3-T4/ STANDARD LINE ID:
  4726					;	      T3/ LINE DEVICE TYPE (.DTXXX),,LINE CONTROLLER #
  4727					;	      T4/ LINE UNIT NUMBER,,LINE STATION ADDRESS
  4728					;		CALL MAKLIN
  4729					;RETURNS: +1 ALWAYS, WITH T1/ UPDATED POINTER TO NEXT FIELD IN MESSAGE
  4730					;			  T2/ UPDATED COUNT OF BYTES IN THE MESSAGE
  4731
  4732	005303'	265 16 0 00 005266*	MAKLIN::ASUBR <MLNPTR>
  4733
  4734	005304'	201 01 0 00 000001 		MOVX T1,.LTSTD		;GET STANDARD LINE TYPE CODE
  4735	005305'	136 01 0 15 000001 		IDPB T1,MLNPTR		;ADD LINE ID TYPE CODE TO MESSAGE
  4736	005306'	554 01 0 00 000003 		HLRZ T1,T3		;GET LINE DEVICE TYPE
  4737	005307'	136 01 0 15 000001 		IDPB T1,MLNPTR		;ADD TO MESSAGE
  4738	005310'	550 01 0 00 000003 		HRRZ T1,T3		;GET CONTROLLER NUMBER
  4739	005311'	136 01 0 15 000001 		IDPB T1,MLNPTR		;ADD TO MESSAGE
  4740	005312'	554 01 0 00 000004 		HLRZ T1,T4		;GET UNIT NUMBER
  4741	005313'	136 01 0 15 000001 		IDPB T1,MLNPTR		;ADD TO MESSAGE
  4742	005314'	550 01 0 00 000004 		HRRZ T1,T4		;GET STATION ADDRESS
  4743	005315'	136 01 0 15 000001 		IDPB T1,MLNPTR		;ADD TO MESSAGE
  4744	005316'	271 02 0 00 000005 		ADDI T2,5		;INCREMENT BYTE COUNT
  4745	005317'	200 01 0 15 000001 		MOVE T1,MLNPTR		;RESTORE UPDATED POINTER
  4746	005320'	263 17 0 00 000000 		RET			;RETURN, FIELD ADDED TO MESSAGE
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 114
NCU	MAC	 6-Oct-81 12:41		Routines to Assemble NICE Messages

  4747					;MAKMPL - ROUTINE TO MAKE A MOP LOAD-WITHOUT-TRANSFER-ADDRESS MESSAGE (.MPLOD)
  4748					;
  4749					;ACCEPTS IN T1/	POINTER TO MEMORY IMAGE DATA IN NICE LINE SERVICE DIALOG MSG
  4750					;	    T2/	NUMBER OF BYTES IN REMAINDER OF NICE MESSAGE
  4751					;	    T3/	ADDRESS OF LINE TABLE
  4752					;		CALL MAKMPL
  4753					;RETURNS: +1	 FAILED, UNEXPECTED NICE PROCESS PROGRAM ERROR
  4754					;	  +2	SUCCESS, WITH T1/ POINTER TO COMPLETED MOP MESSAGE
  4755					;			      T2/ NUMBER OF BYTES IN THE MOP MESSAGE
  4756
  4757	005321'	265 16 0 00 005303*	MAKMPL:	ASUBR <MMLPTR,MMLCNT,MMLLIN>
  4758
  4759					; PUT THE FUNCTION CODE, LOAD NUMBER, AND LOAD ADDRESS INTO THE MESSAGE
  4760
  4761	005322'	260 17 0 00 010445'		CALL CLRMOP		;GO CLEAR THE MOP MESSAGE AREA
  4762	005323'	200 04 0 15 000003 		MOVE T4,MMLLIN		;GET ADDRESS OF LINE TABLE
  4763	005324'	200 01 0 04 000006 		LOAD T1,LNMSG,(T4)	;GET POINTER TO WHERE MOP MESSAGE GOES
  4764	005325'	201 02 0 00 000002 		MOVX T2,.MPLOD		;GET MOP FUNCTION CODE
  4765	005326'	136 02 0 00 000001 		IDPB T2,T1		;STORE FUNCTION CODE IN MOP MESSAGE
  4766	005327'	200 04 0 15 000003 		MOVE T4,MMLLIN		;GET ADDRESS OF LINE TABLE
  4767	005330'	135 02 0 00 014135'		LOAD T2,LNLDN,(T4)	;GET NEXT LOAD NUMBER TO USE
  4768	005331'	136 02 0 00 000001 		IDPB T2,T1		;STORE LOAD NUMBER IN MOP MESSAGE
  4769	005332'	200 02 0 04 000005 		LOAD T2,LNADR,(T4)	;GET LOAD ADDRESS
  4770	005333'	260 17 0 00 006337'		CALL MAK4		;GO ADD A FOUR-BYTE NUMBER TO THE MOP MESSAGE
  4771
  4772					; ADD THE MEMORY IMAGE DATA TO THE MOP MESSAGE
  4773
  4774	005334'	200 02 0 15 000001 		MOVE T2,MMLPTR		;GET POINTER TO LOAD RECORD
  4775	005335'	210 03 0 15 000002 		MOVN T3,MMLCNT		;GET -NUMBER OF BYTES IN LOAD RECORD
  4776	005336'	104 00 0 00 000053 		SOUT			;ADD THE LOAD RECORD TO THE MOP MESSAGE
  4777	005337'	320 16 0 00 005157*		 ERJMP R		;SHOULD NOT FAIL
  4778	005340'	200 04 0 15 000003 		MOVE T4,MMLLIN		;GET ADDRESS OF LINE TABLE
  4779	005341'	200 03 0 04 000005 		LOAD T3,LNADR,(T4)	;GET PREVIOUS ADDRESS
  4780	005342'	200 02 0 15 000002 		MOVE T2,MMLCNT		;GET PREVIOUS MESSAGE SIZE
  4781	005343'	270 03 0 00 000002 		ADD T3,T2		;COMPUTE NEXT LOAD ADDRESS
  4782	005344'	202 03 0 04 000005 		STOR T3,LNADR,(T4)	;STORE NEW ADDRESS
  4783	005345'	271 02 0 00 000006 		ADDI T2,6		;ACCOUNT FOR MOP FUNCTION, LOAD #, ADDRESS
  4784	005346'	542 02 0 04 000002 		STOR T2,LNCNT,(T4)	;STORE COUNT IN LINE TABLE
  4785	005347'	200 01 0 04 000006 		LOAD T1,LNMSG,(T4)	;GET POINTER TO START OF MESSAGE
  4786	005350'	254 00 0 00 005302*		RETSKP			;RETURN (POINTER IS STILL IN T1)
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 115
NCU	MAC	 6-Oct-81 12:41		Routines to Assemble NICE Messages

  4787					;MAKBAS - ROUTINE TO ASSEMBLE A NICE LINE SERVICE "SET BASE ADR" MESSAGE
  4788					;
  4789					;ACCEPTS IN T1/	MEMORY ADDRESS TO BE SET
  4790					;		CALL MAKBAS
  4791					;RETURNS: +1 ALWAYS, WITH T1/ POINTER TO START OF MESSAGE
  4792					;			  T2/ NUMBER OF BYTES IN THE MESSAGE
  4793
  4794	005351'	265 16 0 00 005321*	MAKBAS:	ASUBR <MBSADR>
  4795
  4796	005352'	260 17 0 00 010457'		CALL CLRMSG		;GO ZERO THE MESSAGE AREA
  4797	005353'	200 01 0 00 013534'		MOVE T1,[POINT 8,MSGBLK] ;GET POINTER TO START OF MESSAGE
  4798	005354'	201 04 0 00 000001 		MOVX T4,.LMBAS		;GET LOAD DIALOG MESSAGE "SET BASE ADR" OPTION
  4799	005355'	136 04 0 00 000001 		IDPB T4,T1		;ADD OPTION BYTE TO MESSAGE
  4800	005356'	200 02 0 15 000001 		MOVE T2,MBSADR		;GET ADDRESS TO BE SET
  4801	005357'	260 17 0 00 006337'		CALL MAK4		;GO ADD THE ADDRESS TO THE MESSAGE
  4802	005360'	505 01 0 00 441000 		HRLI T1,(POINT 8,)	;FORM POINTER TO THE START OF THE
  4803	005361'	541 01 0 14 000033 		HRRI T1,MSGBLK		; NICE LINE SERVICE "SET BASE ADR" MESSAGE
  4804	005362'	201 02 0 00 000005 		MOVX T2,5		;GET SIZE OF MESSAGE
  4805	005363'	263 17 0 00 000000 		RET			;DONE, RETURN
  4806
  4807
  4808					;MAKMLP - ROUTINE TO ASSEMBLE A MOP "LOAD PARAMETERS AND TRANSFER" MESSAGE
  4809					;
  4810					;ACCEPTS IN T1/	ADDRESS OF LINE TABLE
  4811					;	    T2/	ADDRESS AT WHICH TO START LOADED PROGRAM
  4812					;		CALL MAKMLP
  4813					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  4814					;	  +2	SUCCESS, WITH T1/ POINTER TO START OF MOP MESSAGE
  4815					;			      T2/ NUMBER OF BYTES IN THE MOP MESSAGE
  4816
  4817	005364'	265 16 0 00 005351*	MAKMLP:	ASUBR <MLPLIN,MLPADR,MLPCNT>
  4818	005365'	260 17 0 00 010445'		CALL CLRMOP		;GO CLEAR THE MOP MESSAGE AREA
  4819	005366'	200 04 0 15 000001 		MOVE T4,MLPLIN		;GET ADDRESS OF LINE TABLE
  4820	005367'	200 01 0 04 000006 		LOAD T1,LNMSG,(T4)	;GET POINTER TO START OF MESSAGE
  4821	005370'	201 04 0 00 000024 		MOVX T4,.MPXFR		;GET MOP "PARAMETERS AND TRANSFER" CODE
  4822	005371'	136 04 0 00 000001 		IDPB T4,T1		;PUT MOP FUNCTION CODE INTO THE MESSAGE
  4823	005372'	200 04 0 15 000001 		MOVE T4,MLPLIN		;GET ADDRESS OF LINE TABLE
  4824	005373'	135 04 0 00 014135'		LOAD T4,LNLDN,(T4)	;GET NEXT LOAD NUMBER
  4825	005374'	136 04 0 00 000001 		IDPB T4,T1		;ADD LOAD NUMBER TO MESSAGE
  4826	005375'	201 04 0 00 000002 		MOVEI T4,2		;GET NUMBER OF BYTES IN MESSAGE SO FAR
  4827	005376'	202 04 0 15 000003 		MOVEM T4,MLPCNT		;SAVE MESSAGE SIZE
  4828
  4829					; ADD NODE-NAME PARAMETER IF SPECIFIED
  4830
  4831	005377'	200 03 0 14 000017 		MOVE T3,RQLNAM		;GET POINTER TO NAME PARAMETER
  4832	005400'	316 03 0 00 014136'		CAMN T3,[-1]		;WAS THIS PARAMETER SPECIFIED ?
  4833	005401'	254 00 0 00 005411'		JRST MLP010		;NO, GO CHECK NEXT PARAMETER
  4834	005402'	201 04 0 00 000001 		MOVX T4,.PVNAM		;YES, GET "NODE NAME" PARAMETER TYPE CODE
  4835	005403'	136 04 0 00 000001 		IDPB T4,T1		;ADD TYPE CODE TO MESSAGE
  4836	005404'	350 00 0 15 000003 		AOS MLPCNT		;INCREMENT BYTE COUNT
  4837	005405'	201 02 0 00 000006 		MOVX T2,NNAMSZ		;GET MAX SIZE OF A NODE NAME
  4838	005406'	260 17 0 00 006046'		CALL MAKIMA		;GO ADD IMAGE ASCII FIELD TO MOP MESSAGE
  4839	005407'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR TO CALLER
  4840	005410'	272 02 0 15 000003 		ADDM T2,MLPCNT		;ADD NUMBER OF BYTES IN NAME TO MESSAGE SIZE
  4841						; ..
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 116
NCU	MAC	 6-Oct-81 12:41		Routines to Assemble NICE Messages

  4842						; ..
  4843
  4844					; HERE TO ADD THE NODE NUMBER IF SPECIFIED
  4845
  4846	005411'	200 02 0 14 000020 	MLP010:	MOVE T2,RQLNUM		;GET NODE NUMBER
  4847	005412'	316 02 0 00 014136'		CAMN T2,[-1]		;WAS THE NODE NUMBER SPECIFIED ?
  4848	005413'	254 00 0 00 005423'		JRST MLP020		;NO, GO CHECK THE NEXT PARAMETER
  4849	005414'	201 03 0 00 000002 		MOVX T3,.PVNUM		;YES, GET "NODE NUMBER" PARAMETER TYPE CODE
  4850	005415'	136 03 0 00 000001 		IDPB T3,T1		;ADD PARAMETER TYPE TO MOP MESSAGE
  4851	005416'	201 03 0 00 000002 		MOVX T3,2		;GET SIZE OF NODE NUMBER PARAMETER FIELD
  4852	005417'	136 03 0 00 000001 		IDPB T3,T1		;ADD COUNT TO MOP MESSAGE
  4853	005420'	201 03 0 00 000004 		MOVEI T3,4		;GET # OF BYTES IN NODE-NUMBER PARAMETER FIELD
  4854	005421'	272 03 0 15 000003 		ADDM T3,MLPCNT		;INCREMENT TOTAL SIZE OF MOP MESSAGE
  4855	005422'	260 17 0 00 006333'		CALL MAKTWO		;GO ADD 2-BYTE NODE NUMBER TO MOP MESSAGE
  4856
  4857					; HERE TO ADD HOST-NODE PARAMETER IF SPECIFIED
  4858
  4859	005423'	200 03 0 14 000021 	MLP020:	MOVE T3,RQLHST		;GET POINTER TO HOST PARAMETER
  4860	005424'	316 03 0 00 014136'		CAMN T3,[-1]		;WAS THIS PARAMETER SPECIFIED ?
  4861	005425'	254 00 0 00 005435'		JRST MLP030		;NO, GO ON
  4862	005426'	201 04 0 00 000003 		MOVX T4,.PVHST		;YES, GET "HOST" PARAMETER TYPE CODE
  4863	005427'	136 04 0 00 000001 		IDPB T4,T1		;ADD TYPE CODE TO MESSAGE
  4864	005430'	350 00 0 15 000003 		AOS MLPCNT		;INCREMENT BYTE COUNT
  4865	005431'	201 02 0 00 000006 		MOVX T2,NNAMSZ		;GET MAX SIZE OF A NODE NAME
  4866	005432'	260 17 0 00 006046'		CALL MAKIMA		;GO ADD IMAGE ASCII FIELD TO MOP MESSAGE
  4867	005433'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR TO CALLER
  4868	005434'	272 02 0 15 000003 		ADDM T2,MLPCNT		;ADD NUMBER OF BYTES IN NAME TO MESSAGE SIZE
  4869
  4870					; HERE TO ADD TRANSFER ADDRESS TO THE MESSAGE
  4871
  4872	005435'	201 04 0 00 000000 	MLP030:	MOVX T4,.PVEND		;GET "END-OF-PARAMETERS" CODE
  4873	005436'	136 04 0 00 000001 		IDPB T4,T1		;ADD END MARK TO MOP MESSAGE
  4874	005437'	350 00 0 15 000003 		AOS MLPCNT		;INCREMENT MESSAGE SIZE
  4875	005440'	200 02 0 15 000002 		MOVE T2,MLPADR		;GET TRANSFER ADDRESS
  4876	005441'	260 17 0 00 006337'		CALL MAK4		;ADD A FOUR-BYTE ADDRESS TO THE MOP MESSAGE
  4877	005442'	200 02 0 15 000003 		MOVE T2,MLPCNT		;GET MESSAGE SIZE
  4878	005443'	271 02 0 00 000004 		ADDI T2,4		;INCREMENT FOR TRANSFER ADDRESS
  4879	005444'	200 04 0 15 000001 		MOVE T4,MLPLIN		;GET ADDRESS OF LINE TABLE
  4880	005445'	542 02 0 04 000002 		STOR T2,LNCNT,(T4)	;STORE COUNT IN TABLE
  4881	005446'	200 01 0 04 000006 		LOAD T1,LNMSG,(T4)	;GET POINTER TO START OF MESSAGE
  4882	005447'	254 00 0 00 005350*		RETSKP			;DONE, RETURN SUCCESS TO CALLER
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 117
NCU	MAC	 6-Oct-81 12:41		Routines to Assemble NICE Messages

  4883					;MAKIMD - ROUTINE TO ASSEMBLE A NICE MEMORY IMAGE MESSAGE FOR USE DURING
  4884					;	    A DUMP DIALOG.
  4885					;
  4886					;ACCEPTS IN T1/	ADDRESS OF DATA TO RETURN (8 BIT BYTES)
  4887					;	    T2/ COUNT OF BYTES TO RETURN
  4888					;		CALL MAKIMD
  4889					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  4890					;	  +2	SUCCESS, WITH T1/ POINTER TO MESSAGE
  4891					;			      T2/ NUMBER OF BYTES IN THE MESSAGE
  4892
  4893	005450'	265 16 0 00 005364*	MAKIMD:	ASUBR <MIDADR,MIDCNT,MIDNUM>
  4894
  4895	005451'	202 02 0 15 000003 		MOVEM T2,MIDNUM		;SAVE ORIGINAL NUMBER OF BYTES
  4896	005452'	260 17 0 00 010457'		CALL CLRMSG		;INITIALIZE THE MESSAGE AREA
  4897	005453'	505 01 0 00 441000 		HRLI T1,(POINT 8,)	;FORM POINTER TO DESTINATION FOR
  4898	005454'	541 01 0 14 000033 		HRRI T1,MSGBLK		; "MEMORY IMAGE" MESSAGE
  4899	005455'	201 04 0 00 000002 		MOVX T4,.LMMEM		;GET "MEMORY IMAGE" TYPE CODE
  4900	005456'	136 04 0 00 000001 		IDPB T4,T1		;STORE TYPE CODE IN LINE SERVICE MESSAGE
  4901	005457'	201 04 0 00 000001 		MOVX T4,.CP11		;GET CPU TYPE OF TARGET SYSTEM
  4902	005460'	136 04 0 00 000001 		IDPB T4,T1		;SAVE CPU TYPE IN MESSAGE
  4903	005461'	200 03 0 15 000001 		MOVE T3,MIDADR		;GET ADDRESS OF DATA TO RETURN
  4904	005462'	336 00 0 15 000002 		SKIPN MIDCNT		;NON-ZERO COUNT ?
  4905	005463'	254 00 0 00 005476'		JRST MID040		;NO, ALL DONE
  4906	005464'	201 02 0 00 000000 		MOVEI T2,0		;START WITH FIRST BYTE
  4907	005465'	405 02 0 00 000003 		ANDI T2,3		;MODULO 4
  4908	005466'	135 04 0 02 010663'	MID020:	LDB T4,SLDTAB(T2)	;GET A DATA BYTE
  4909	005467'	136 04 0 00 000001 		IDPB T4,T1		;ADD BYTE TO THE MESSAGE
  4910	005470'	271 02 0 00 000001 		ADDI T2,1		;POINT TO NEXT BYTE POINTER
  4911	005471'	405 02 0 00 000003 		ANDI T2,3		;KEEP JUST RIGHTMOST 2 BITS
  4912	005472'	606 02 0 00 000003 		TRNN T2,3		;DONE FOUR BYTES YET ?
  4913	005473'	271 03 0 00 000001 		ADDI T3,1		;YES, POINT TO NEXT WORD
  4914	005474'	373 00 0 15 000002 		SOSLE MIDCNT		;DECREMENT NUMBER OF BYTES REMAINING TO BE MOVED
  4915	005475'	254 00 0 00 005466'		JRST MID020		;LOOP OVER ALL BYTES TO MOVE
  4916	005476'	200 02 0 15 000003 	MID040:	MOVE T2,MIDNUM		;GET NUMBER OF DATA BYTES AGAIN
  4917	005477'	271 02 0 00 000002 		ADDI T2,2		;ACCOUNT FOR TYPE CODE AND CPU TYPE
  4918	005500'	505 01 0 00 441000 		HRLI T1,(POINT 8,)	;FORM POINTER TO DESTINATION FOR
  4919	005501'	541 01 0 14 000033 		HRRI T1,MSGBLK		; "MEMORY IMAGE" MESSAGE
  4920	005502'	254 00 0 00 005447*		RETSKP			;DONE, RETURN SUCCESS
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 118
NCU	MAC	 6-Oct-81 12:41		Routines to Assemble NICE Messages

  4921					;MAKMDT - ROUTINE TO ASSEMBLE A NICE MEMORY IMAGE MESSAGE FOR USE DURING
  4922					;	    A DUMP DIALOG.
  4923					;
  4924					;ACCEPTS IN T1/	ADDRESS OF DATA TO RETURN (8 BIT BYTES)
  4925					;	    T2/ COUNT OF BYTES TO RETURN
  4926					;	    T3/	NUMBER OF BYTES ALREADY EXTRACTED FROM MSG (MAKMDT ONLY)
  4927					;		CALL MAKMDT
  4928					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  4929					;	  +2	SUCCESS, WITH T1/ POINTER TO MESSAGE
  4930					;			      T2/ NUMBER OF BYTES IN THE MESSAGE
  4931
  4932	005503'	265 16 0 00 005450*	MAKMDT:	ASUBR <MDTADR,MDTNUM,MDTCNT>
  4933
  4934	005504'	260 17 0 00 010457'		CALL CLRMSG		;INITIALIZE THE MESSAGE AREA
  4935	005505'	505 01 0 00 441000 		HRLI T1,(POINT 8,)	;FORM POINTER TO DESTINATION FOR
  4936	005506'	541 01 0 14 000033 		HRRI T1,MSGBLK		; "MEMORY IMAGE" MESSAGE
  4937	005507'	201 04 0 00 000002 		MOVX T4,.LMMEM		;GET "MEMORY IMAGE" TYPE CODE
  4938	005510'	136 04 0 00 000001 		IDPB T4,T1		;STORE TYPE CODE IN LINE SERVICE MESSAGE
  4939	005511'	201 04 0 00 000001 		MOVX T4,.CP11		;GET CPU TYPE OF TARGET SYSTEM
  4940	005512'	136 04 0 00 000001 		IDPB T4,T1		;SAVE CPU TYPE IN MESSAGE
  4941	005513'	200 03 0 15 000001 		MOVE T3,MDTADR		;GET ADDRESS OF DATA TO RETURN
  4942	005514'	505 03 0 00 441000 		HRLI T3,(POINT 8,)	;FORM POINTER TO DATA TO RETURN
  4943	005515'	336 00 0 15 000003 		SKIPN MDTCNT		;NON-ZERO COUNT ?
  4944	005516'	254 00 0 00 005523'		JRST MDT040		;NO, ALL DONE
  4945	005517'	134 04 0 00 000003 	MDT020:	ILDB T4,T3		;GET A DATA BYTE
  4946	005520'	136 04 0 00 000001 		IDPB T4,T1		;ADD BYTE TO THE MESSAGE
  4947	005521'	373 00 0 15 000003 		SOSLE MDTCNT		;DECREMENT NUMBER OF BYTES REMAINING TO BE MOVED
  4948	005522'	254 00 0 00 005517'		JRST MDT020		;LOOP OVER ALL BYTES TO MOVE
  4949	005523'	200 02 0 15 000002 	MDT040:	MOVE T2,MDTNUM		;GET NUMBER OF DATA BYTES AGAIN
  4950	005524'	271 02 0 00 000002 		ADDI T2,2		;ACCOUNT FOR TYPE CODE AND CPU TYPE
  4951	005525'	505 01 0 00 441000 		HRLI T1,(POINT 8,)	;FORM POINTER TO DESTINATION FOR
  4952	005526'	541 01 0 14 000033 		HRRI T1,MSGBLK		; "MEMORY IMAGE" MESSAGE
  4953	005527'	254 00 0 00 005502*		RETSKP			;DONE, RETURN SUCCESS
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 119
NCU	MAC	 6-Oct-81 12:41		Routines to Assemble NICE Messages

  4954					;MAKIMG - ROUTINE TO ASSEMBLE A "MEMORY IMAGE" LINE SERVICE MESSAGE
  4955					;
  4956					;ACCEPTS IN T1/	ADDRESS OF RECORD BLOCK
  4957					;	    T2/	CPU TYPE OF TARGET SYSTEM (.CPXXX)
  4958					;		CALL MAKIMG
  4959					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  4960					;	  +2	SUCCESS, WITH T1/ POINTER TO START OF MESSAGE
  4961					;			      T2/ NUMBER OF BYTES IN THE MESSAGE
  4962
  4963	005530'	265 16 0 00 005503*	MAKIMG:	ASUBR <MIMREC,MIMCPU,MIMCNT>
  4964
  4965	005531'	260 17 0 00 010457'		CALL CLRMSG		;INITIALIZE THE MESSAGE AREA
  4966	005532'	505 01 0 00 441000 		HRLI T1,(POINT 8,)	;FORM POINTER TO DESTINATION FOR
  4967	005533'	541 01 0 14 000033 		HRRI T1,MSGBLK		; "MEMORY IMAGE" MESSAGE
  4968	005534'	201 04 0 00 000002 		MOVX T4,.LMMEM		;GET "MEMORY IMAGE" TYPE CODE
  4969	005535'	136 04 0 00 000001 		IDPB T4,T1		;STORE TYPE CODE IN LINE SERVICE MESSAGE
  4970	005536'	200 04 0 15 000002 		MOVE T4,MIMCPU		;GET CPU TYPE OF TARGET SYSTEM
  4971	005537'	136 04 0 00 000001 		IDPB T4,T1		;SAVE CPU TYPE IN MESSAGE
  4972	005540'	200 04 0 15 000001 		MOVE T4,MIMREC		;GET ADDRESS OF RECORD BLOCK
  4973	005541'	550 03 0 04 000005 		LOAD T3,RBCNT,(T4)	;GET NUMBER OF BYTES IN THIS BLOCK
  4974	005542'	301 03 0 00 000377 		CAIL T3,MAXMEM		;MORE TO SEND THAN MAX IN ONE IMAGE FIELD ?
  4975	005543'	201 03 0 00 000377 		MOVX T3,MAXMEM		;YES, USE MAXIMUM INSTEAD
  4976	005544'	202 03 0 15 000003 		MOVEM T3,MIMCNT		;SAVE # OF BYTES ACTUALY BEING SENT
  4977	005545'	210 03 0 00 000003 		MOVN T3,T3		;GET - COUNT
  4978	005546'	200 02 0 04 000003 		LOAD T2,RBPTR,(T4)	;GET POINTER TO THE DATA
  4979	005547'	104 00 0 00 000053 		SOUT			;ADD THE DATA TO THE MESSAGE
  4980	005550'	320 16 0 00 013656'		 ERJMP [RETBAD (.NRNPE)] ;FAILED, RETURN ERROR
  4981	005551'	202 02 0 04 000003 		STOR T2,RBPTR,(T4)	;STORE POINTER IN CASE THERE IS MORE DATA
  4982	005552'	200 02 0 15 000003 		MOVE T2,MIMCNT		;GET # OF DATA BYTES IN MESSAGE
  4983	005553'	550 03 0 04 000005 		LOAD T3,RBCNT,(T4)	;GET TOTAL # OF BYTES TO BE SENT
  4984	005554'	274 03 0 15 000003 		SUB T3,MIMCNT		;COMPUTE # OF BYTES LEFT TO SEND
  4985	005555'	542 03 0 04 000005 		STOR T3,RBCNT,(T4)	;SAVE THAT NUMBER OF BYTES IN RECORD BLOCK
  4986	005556'	200 02 0 15 000003 		MOVE T2,MIMCNT		;GET NUMBER OF DATA BYTES ACTUALLY IN MESSAGE
  4987	005557'	271 02 0 00 000002 		ADDI T2,1+1		;ADD 1 FOR FUNCTION CODE, 1 FOR CPU TYPE
  4988	005560'	505 01 0 00 441000 		HRLI T1,(POINT 8,)	;FORM POINTER TO START OF
  4989	005561'	541 01 0 14 000033 		HRRI T1,MSGBLK		; "MEMORY IMAGE" MESSAGE
  4990	005562'	254 00 0 00 005527*		RETSKP			;DONE, RETURN SUCCESS
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 120
NCU	MAC	 6-Oct-81 12:41		Routines to Assemble NICE Messages

  4991					;MAKXFR -ROUTINE TO ASSEMBLE A "SYSTEM PARAMETERS AND TRANSFER" MESSAGE
  4992					;
  4993					;ACCEPTS IN T1/	ADDRESS OF RECORD BLOCK
  4994					;		CALL MAKXFR
  4995					;RETURNS: +1 ALWAYS, WITH T1/ POINTER TO START OF MESSAGE
  4996					;			  T2/ NUMBER OF BYTES IN THE MESSAGE
  4997
  4998	005563'	265 16 0 00 005530*	MAKXFR:	ASUBR <MKXREC,MKXPTR,MKXCNT>
  4999
  5000	005564'	402 00 0 15 000003 		SETZM MKXCNT		;INITIALIZE MESSAGE SIZE
  5001	005565'	260 17 0 00 010457'		CALL CLRMSG		;GO CLEAR THE MESSAGE AREA
  5002	005566'	200 01 0 00 013534'		MOVE T1,[POINT 8,MSGBLK] ;GET POINTER TO START OF MESSAGE
  5003	005567'	201 04 0 00 000003 		MOVX T4,.LMXFR		;GET "TRANSFER" LINE SERVICE MESSAGE TYPE
  5004	005570'	136 04 0 00 000001 		IDPB T4,T1		;ADD MESSAGE TYPE TO THE MESSAGE
  5005
  5006					; SKIP OVER COUNT BYTE AND ADD PARAMETERS TO THE MESSAGE
  5007
  5008	005571'	202 01 0 15 000002 		MOVEM T1,MKXPTR		;SAVE POINTER TO TOTAL COUNT FOR PARAMETERS
  5009	005572'	133 00 0 00 000001 		IBP T1			;SKIP THE COUNT BYTE
  5010	005573'	336 03 0 14 000017 		SKIPN T3,RQLNAM		;NAME OF THIS NODE SPECIFIED ?
  5011	005574'	254 00 0 00 005606'		JRST MKX010		;NO, GO CHECK NODE NUMBER
  5012	005575'	316 03 0 00 014136'		CAMN T3,[-1]		;IF PARAMETER NOT SPECIFIED, GO CHECK
  5013	005576'	254 00 0 00 005606'		JRST MKX010		; NEXT PARAMETER
  5014	005577'	201 02 0 00 000001 		MOVX T2,.PVNAM		;GET PARAMETER TYPE CODE FOR NODE NAME
  5015	005600'	136 02 0 00 000001 		IDPB T2,T1		;ADD TYPE CODE TO MESSAGE
  5016	005601'	350 00 0 15 000003 		AOS MKXCNT		;INCREMENT COUNT OF BYTES IN PARAMETERS
  5017	005602'	201 02 0 00 000006 		MOVX T2,NNAMSZ		;GET MAX NUMBER OF CHARACTERS IN NODE NAMES
  5018	005603'	260 17 0 00 006046'		CALL MAKIMA		;GO ADD NODE NAME TO MESSAGE
  5019	005604'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR TO CALLER
  5020	005605'	272 02 0 15 000003 		ADDM T2,MKXCNT		;UPDATE NUMBER OF BYTES IN PARAMETERS
  5021	005606'	336 04 0 14 000020 	MKX010:	SKIPN T4,RQLNUM		;NODE NUMBER SPECIFIED ?
  5022	005607'	254 00 0 00 005621'		JRST MKX020		;NO, GO CHECK HOST FOR TASK LOADS
  5023	005610'	316 04 0 00 014136'		CAMN t4,[-1]		;IF PARAMETER NOT SPECIFIED, GO CHECK
  5024	005611'	254 00 0 00 005621'		JRST MKX020		; NEXT PARAMETER
  5025	005612'	201 02 0 00 000002 		MOVX T2,.PVNUM		;YES, GET PARAMETER TYPE CODE FOR NODE NUMBER
  5026	005613'	136 02 0 00 000001 		IDPB T2,T1		;ADD TYPE CODE TO THE MESSAGE
  5027	005614'	201 02 0 00 000004 		MOVEI T2,4		;ACCOUNT FOR THE PARAMETER TYPE CODE, COUNT
  5028	005615'	272 02 0 15 000003 		ADDM T2,MKXCNT		; BYTE, AND TWO BYTES OF NODE NUMBER
  5029	005616'	201 02 0 00 000002 		MOVX T2,2		;NODE NUMBER IS TWO BYTES
  5030	005617'	402 00 0 00 000003 		SETZM T3		;NUMBER IS ALREADY IN T4
  5031	005620'	260 17 0 00 006041'		CALL MAKIMB		;GO ASSEMBLE THE NODE NUMBER INTO THE MESSAGE
  5032	005621'	336 03 0 14 000021 	MKX020:	SKIPN T3,RQLHST		;ANY HOST SPECIFIED FOR TASK LOADS ?
  5033	005622'	254 00 0 00 005634'		JRST MKX030		;NO, GO ADD TOTAL LENGTH OF PARAMETER FIELD
  5034	005623'	316 03 0 00 014136'		CAMN T3,[-1]		;IF PARAMETER NOT SPECIFIED, GO
  5035	005624'	254 00 0 00 005634'		JRST MKX030		; ADD ADDRESS TO MESSAGE
  5036	005625'	201 02 0 00 000003 		MOVX T2,.PVHST		;YES, GET HOST PARAMETER TYPE CODE
  5037	005626'	136 02 0 00 000001 		IDPB T2,T1		;ADD PARAMETER TYPE CODE TO MESSAGE
  5038	005627'	350 00 0 15 000003 		AOS MKXCNT		;UPDATE BYTE COUNT FOR PARAMETERS
  5039	005630'	201 02 0 00 000006 		MOVX T2,NNAMSZ		;YES, GET MAX SIZE OF NODE NAMES
  5040	005631'	260 17 0 00 006046'		CALL MAKIMA		;GO ADD ASCII HOST NAME TO MESSAGE
  5041	005632'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR TO CALLER
  5042	005633'	272 02 0 15 000003 		ADDM T2,MKXCNT		;UPDATE NUMBER OF BYTES IN PARAMETERS
  5043						; ..
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 121
NCU	MAC	 6-Oct-81 12:41		Routines to Assemble NICE Messages

  5044						; ..
  5045
  5046	005634'	201 04 0 00 000000 	MKX030:	MOVX T4,.PVEND		;GET "END-OF-PARAMETERS" MARK
  5047	005635'	136 04 0 00 000001 		IDPB T4,T1		;MARK END OF PARMAETERS
  5048	005636'	350 02 0 15 000003 		AOS T2,MKXCNT		;INCREMENT COUNT OF BYTES FOR PARAMETERS
  5049	005637'	136 02 0 15 000002 		IDPB T2,MKXPTR		;STORE AS FIRST BYTE OF PARAMETER FIELD
  5050
  5051					; HERE TO ADD THE TRANSFER ADDRESS TO THE MESSAGE
  5052
  5053	005640'	200 04 0 15 000001 		MOVE T4,MKXREC		;GET ADDRESS OF RECORD BLOCK
  5054	005641'	200 02 0 04 000010 		LOAD T2,RBXAD,(T4)	;GET TRANSFER ADDRESS FROM FILE
  5055	005642'	260 17 0 00 006337'		CALL MAK4		;GO ASSEMBLE A FOUR-BYTE NUMBER
  5056
  5057					; MESSAGE IS NOW ASSMBLED - RETURN
  5058
  5059	005643'	541 01 0 14 000033 		HRRI T1,MSGBLK		;GET ADDRESS OF MESSAGE
  5060	005644'	505 01 0 00 441000 		HRLI T1,(POINT 8,)	;FORM POINTER TO START OF MESSAGE
  5061	005645'	200 02 0 15 000003 		MOVE T2,MKXCNT		;GET NUMBER OF BYTES IN PARAMETERS
  5062	005646'	271 02 0 00 000006 		ADDI T2,1+1+4		;ADD TYPE CODE, PARAMS CNT, AND XFR ADR COUNT
  5063	005647'	254 00 0 00 005562*		RETSKP			;RETURN TO CALLER
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 122
NCU	MAC	 6-Oct-81 12:41		Routines to Assemble NICE Messages

  5064					;MAKRQD - ROUTINE TO MAKE A MOP "REQUEST DUMP RECORD" MESSAGE
  5065					;
  5066					;ACCEPTS IN T1/	MEMORY ADDRESS TO START DUMPING
  5067					;	    T2/	NUMBER OF LOCATIONS TO DUMP
  5068					;	    T3/ DESTINATION POINTER FOR NICE MESSAGE
  5069					;		CALL MAKRQD
  5070					;RETURNS: +1 ALWAYS, WITH T1/ POINTER TO MOP MESSAGE
  5071					;			  T2/ NUMBER OF BYTES IN MOP MESSAGE
  5072
  5073	005650'	265 16 0 00 005563*	MAKRQD:	ASUBR <MRDADR,MRDCNT,MRDPTR>
  5074
  5075	005651'	200 01 0 15 000003 		MOVE T1,MRDPTR		;GET POINTER TO DESTINATION OF MESSAGE
  5076	005652'	201 04 0 00 000004 		MOVX T4,.MPRQD		;GET MOP "REQUEST DUMP RECORD" FUNCTION CODE
  5077	005653'	136 04 0 00 000001 		IDPB T4,T1		;PUT FUNCTION CODE INTO MOP MESSAGE
  5078	005654'	200 02 0 15 000001 		MOVE T2,MRDADR		;GET ADDRESS FROM WHICH TO BEGIN DUMPING
  5079	005655'	260 17 0 00 006337'		CALL MAK4		;GO ADD THE ADDRESS TO THE MOP MESSAGE
  5080	005656'	200 02 0 15 000002 		MOVE T2,MRDCNT		;GET NUMBER OF LOCATIONS TO DUMP
  5081	005657'	260 17 0 00 006333'		CALL MAKTWO		;GO ADD COUNT TO THE MOP MESSAGE
  5082	005660'	200 01 0 00 014137'		MOVE T1,[POINT 8,MOPMSG] ;GET POINTER TO START OF MOP MESSAGE
  5083	005661'	201 02 0 00 000007 		MOVEI T2,7		;GET NUMBER OF BYTES IN "REQUEST DUMP" MESSAGE
  5084	005662'	263 17 0 00 000000 		RET			;RETURN
  5085
  5086
  5087
  5088					;MAKEMM - ROUTINE TO MAKE A MOP "ENTER MOP MODE" MESSAGE
  5089					;
  5090					;ACCEPTS IN T1/	MAINTENANCE PASSWORD
  5091					;		CALL MAKEMM
  5092					;RETURNS: +1 ALWAYS, WITH T1/ POINTER TO MOP MESSAGE
  5093					;			  T2/ NUMBER OF BYTES IN MOP MESSAGE
  5094
  5095	005663'	265 16 0 00 005650*	MAKEMM:	ASUBR <MEMPSW>
  5096
  5097	005664'	260 17 0 00 010445'		CALL CLRMOP		;CLEAR THE MOP MESSAGE AREA
  5098	005665'	200 01 0 00 014137'		MOVE T1,[POINT 8,MOPMSG] ;GET POINTER TO START OF MOP MESSAGE AREA
  5099	005666'	201 04 0 00 000006 		MOVX T4,.MPMOP		;GET "ENTER MOP MODE" MOP FUNCTION CODE
  5100	005667'	136 04 0 00 000001 		IDPB T4,T1		;PUT FUNCTION CODE INTO MESSAGE
  5101	005670'	200 02 0 15 000001 		MOVE T2,MEMPSW		;GET MAINTENANCE PASSWORD
  5102	005671'	260 17 0 00 006337'		CALL MAK4		;ADD MAINTENANCE PASSWORD TO MESSAGE
  5103	005672'	201 02 0 00 000005 		MOVEI T2,5		;GET SIZE OF "ENTER MOP MODE" MESSAGE
  5104	005673'	200 01 0 00 014137'		MOVE T1,[POINT 8,MOPMSG] ;GET POINTER TO START OF MESSAGE
  5105	005674'	263 17 0 00 000000 		RET			;RETURN
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 123
NCU	MAC	 6-Oct-81 12:41		Routines to Assemble NICE Messages

  5106					;MAKEND - ROUTINE TO CHECK A MOP PROGRAM REQUEST MESSAGE AND ASSEMBLE A
  5107					;	  NICE END-OF-DIALOG LINE SERVICE MESSAGE.
  5108					;
  5109					;ACCEPTS IN T1/	POINTER TO START OF MOP MESSAGE
  5110					;	    T2/	NUMBER OF BYTES IN THE MOP MESSAGE
  5111					;	    T3/	ADDRESS OF LINE TABLE
  5112					;		CALL MAKEND
  5113					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  5114					;	  +2	SUCCESS, WITH T1/ POINTER TO START OF NICE MESSAGE
  5115					;			      T2/ NUMBER OF BYTES IN THE NICE MESSAGE
  5116
  5117	005675'	265 16 0 00 005663*	MAKEND:	ASUBR <MKDPTR,MKDCNT,MKDLIN>
  5118
  5119	005676'	260 17 0 00 010457'		CALL CLRMSG		;GO CLEAR THE NICE MESSAGE AREA
  5120	005677'	200 01 0 15 000002 		MOVE T1,MKDCNT		;GET # OF BYTES IN THE MOP MESSAGE
  5121	005700'	275 01 0 00 000004 		SUBI T1,4		;AT LEAST FUNCTION, DEVICE, PROGRAM & STATION ?
  5122	005701'	326 01 0 00 013615'		JUMPN T1,[RETBAD (.NRPRO)] ;IF NOT, RETURN "PROTOCOL ERROR"
  5123	005702'	202 01 0 15 000002 		MOVEM T1,MKDCNT		;SAVE UPDATED COUNT
  5124	005703'	200 04 0 00 013534'		MOVE T4,[POINT 8,MSGBLK] ;GET POINTER TO START OF NICE MESSAGE
  5125	005704'	201 01 0 00 000000 		MOVX T1,.LMEND		;GET END-OF-DIALOG TYPE CODE
  5126	005705'	136 01 0 00 000004 		IDPB T1,T4		;ADD TYPE CODE TO NICE LINE SERVICE MESSAGE
  5127	005706'	201 01 0 00 000001 		MOVX T1,.NRSUC		;GET SUCCESS RETURN CODE
  5128	005707'	136 01 0 00 000004 		IDPB T1,T4		;ADD RETURN CODE TO THE MESSAGE
  5129
  5130					; EXTRACT THE FUNCTION CODE, DEVICE TYPE, AND STATION FROM MOP MESSAGE
  5131
  5132	005710'	134 01 0 15 000001 		ILDB T1,MKDPTR		;GET MOP FUNCTION CODE
  5133	005711'	302 01 0 00 000010 		CAIE T1,.MPRQP		;REQUEST PROGRAM FUNCTION ?
  5134	005712'	254 00 0 00 013613'		RETBAD (.NRPRO)		;NO, RETURN "PROTOCOL ERROR"
  5135	005713'	134 01 0 15 000001 		ILDB T1,MKDPTR		;GET LOAD DEVICE TYPE (.DTXXX)
  5136	005714'	302 01 0 00 000024 		CAIE T1,.DTDTE		;DTE20 ?
  5137	005715'	254 00 0 00 013613'		RETBAD (.NRPRO)		;NO, RETURN "PROTOCOL ERROR"
  5138	005716'	136 01 0 00 000004 		IDPB T1,T4		;YES, STORE DEVICE TYPE IN NICE MESSAGE
  5139	005717'	201 01 0 00 000001 		MOVX T1,.CP11		;ADJACENT NODES ARE ALWAYS PDP-11'S FOR NOW
  5140	005720'	136 01 0 00 000004 		IDPB T1,T4		;ADD CPU TYPE TO NICE MESSAGE
  5141	005721'	134 01 0 15 000001 		ILDB T1,MKDPTR		;GET STATION ADDRESS FROM MOP MESSAGE
  5142	005722'	302 01 0 00 000001 		CAIE T1,1		;STATION 1 ?
  5143	005723'	254 00 0 00 013613'		RETBAD (.NRPRO)		;NO, RETURN "PROTOCOL ERROR"
  5144	005724'	134 01 0 15 000001 		ILDB T1,MKDPTR		;YES, GET PROGRAM TYPE FROM MOP MESSAGE
  5145	005725'	301 01 0 00 000000 		CAIL T1,.PTSLD		;VALID PROGRAM TYPE
  5146	005726'	303 01 0 00 000002 		CAILE T1,.PTOPS		; IN THE MOP PROGRAM REQUEST MESSAGE ?
  5147	005727'	254 00 0 00 013613'		RETBAD (.NRPRO)		;NO, RETURN "PROTOCOL ERROR"
  5148	005730'	136 01 0 00 000004 		IDPB T1,T4		;YES, ADD PROGRAM TYPE TO NICE MESSAGE
  5149	005731'	200 02 0 15 000003 		MOVE T2,MKDLIN		;GET ADDRESS OF LINE TABLE
  5150	005732'	506 01 0 02 000002 		STOR T1,LNPGM,(T2)	;UPDATE TYPE OF PROGRAM BEING LOADED
  5151						; ..
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 124
NCU	MAC	 6-Oct-81 12:41		Routines to Assemble NICE Messages

  5152						; ..
  5153
  5154					; EXTRACT THE SOFTWARE ID FROM THE MOP MESSAGE
  5155
  5156	005733'	337 02 0 15 000002 		SKIPG T2,MKDCNT		;ANY MORE BYTES LEFT IN MOP MESSAGE ?
  5157	005734'	254 00 0 00 005744'		JRST MKD020		;NO, GO RETURN POINTER TO NICE MESSAGE
  5158	005735'	303 02 0 00 000006 		CAILE T2,MSIDMX		;BIGGER THAN MAX SIZE OF MOP SOFTWARE ID FIELD ?
  5159	005736'	254 00 0 00 013613'		RETBAD (.NRPRO)		;YES, PROTOCOL ERROR
  5160	005737'	200 03 0 00 014123'		MOVE T3,[POINT 7,TMPSTR] ;SET UP POINTER TO TEMPORARY DESTINATION
  5161	005740'	361 02 0 00 005744'	MKD010:	SOJL T2,MKD020		;IF ALL BYTES NOW IN STRING, GO ADD TO NICE MSG
  5162	005741'	134 01 0 15 000001 		ILDB T1,MKDPTR		;GET NEXT CHARACTER FROM MOP MESSAGE
  5163	005742'	136 01 0 00 000003 		IDPB T1,T3		;ADD CHARACTER TO STRING BEING FORMED
  5164	005743'	254 00 0 00 005740'		JRST MKD010		;LOOP OVER ALL BYTES IN THE SOFTWARE ID
  5165
  5166					; HERE WITH SOFTWARE ID EXTRACTED
  5167
  5168	005744'	200 03 0 00 014123'	MKD020:	MOVE T3,[POINT 7,TMPSTR] ;GET POINTER TO TEMP LOCATION OF STRING
  5169	005745'	200 01 0 00 000004 		MOVE T1,T4		;COPY POINTER TO NEXT FIELD IN NICE MESSAGE
  5170	005746'	260 17 0 00 006046'		CALL MAKIMA		;GO ADD IMAGE ASCII SOFTWARE ID TO NICE MESSAGE
  5171	005747'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR TO CALLER
  5172
  5173					; RETURN THE POINTER AND SIZE OF THE NICE END-OF-DIALOG LINE SERVICE MESSAGE
  5174
  5175	005750'	200 01 0 00 013534'		MOVE T1,[POINT 8,MSGBLK] ;GET POINTER TO START OF MESSAGE
  5176	005751'	271 02 0 00 000005 		ADDI T2,5		;INCREMENT COUNT FOR TYPE CODE, DEV, CPU, PGM
  5177	005752'	254 00 0 00 005647*		RETSKP			;DONE, RETURN SUCCESS
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 125
NCU	MAC	 6-Oct-81 12:41		Routines to Assemble NICE Messages

  5178					;MAKMPT - ROUTINE TO MAKE A MOP LOAD-WITH-TRANSFER-ADDRESS MESSAGE (.MPLDT)
  5179					;
  5180					;ACCEPTS IN T3/	LOAD NUMBER FOR THIS MESSAGE
  5181					;	    T4/	TRANSFER ADDRESS FOR THIS RECORD
  5182					;		CALL MAKMPT
  5183					;RETURNS: +1 ALWAYS, WITH T1/ POINTER TO COMPLETED MOP MESSAGE
  5184
  5185	005753'	265 16 0 00 005106*	MAKMPT:	STKVAR <MMTLOD,MMTADR>
  5186	005754'	000002	000002
  5187	005755'	202 03 0 17 777776 		MOVEM T3,MMTLOD		;SAVE LOAD NUMBER
  5188	005756'	202 04 0 17 777775 		MOVEM T4,MMTADR		;SAVE LOAD ADDRESS
  5189
  5190					; PUT THE FUNCTION CODE AND LOAD NUMBER INTO THE MESSAGE
  5191
  5192	005757'	260 17 0 00 010445'		CALL CLRMOP		;GO CLEAR THE MOP MESSAGE AREA
  5193	005760'	200 04 0 00 014137'		MOVE T4,[POINT 8,MOPMSG] ;GET POINTER TO WHERE MOP MESSAGE GOES
  5194	005761'	201 01 0 00 000000 		MOVX T1,.MPLDT		;GET MOP FUNCTION CODE
  5195	005762'	136 01 0 00 000004 		IDPB T1,T4		;STORE FUNCTION CODE IN MOP MESSAGE
  5196	005763'	200 01 0 17 777776 		MOVE T1,MMTLOD		;GET THE LOAD NUMBER FOR THIS RECORD
  5197	005764'	136 01 0 00 000004 		IDPB T1,T4		;STORE LOAD NUMBER IN MOP MESSAGE
  5198	005765'	200 01 0 00 000004 		MOVE T1,T4		;GET POINTER TO NEXT FIELD IN MOP MESSAGE
  5199	005766'	200 02 0 17 777775 		MOVE T2,MMTADR		;GET TRANSFER ADDRESS
  5200	005767'	260 17 0 00 006337'		CALL MAK4		;GO ADD A FOUR-BYTE NUMBER TO THE MOP MESSAGE
  5201	005770'	201 02 0 00 000006 		MOVEI T2,6		;GET NUMBER OF BYTES IN MESSAGE SO FAR
  5202	005771'	200 01 0 00 014137'		MOVE T1,[POINT 8,MOPMSG] ;GET POINTER TO MOP LOAD MESSAGE
  5203	005772'	263 17 0 00 000000 		RET			;RETURN
  5204
  5205
  5206					;MAKMRL - ROUTINE TO MAKE A MOP "REQUEST LOAD RECORD" MESSAGE
  5207					;
  5208					;ACCEPTS IN T1/	LOAD NUMBER BEING REQUESTED
  5209					;	    T2/	MOP RESPONSE CODE
  5210					;		CALL MAKMRL
  5211					;RETURNS: +1 ALWAYS, WITH T1/ POINTER TO MOP MESSAGE
  5212					;			  T2/ # OF BYTES IN MOP MESSAGE
  5213
  5214	005773'	265 16 0 00 005675*	MAKMRL:	ASUBR <MRLLOD,MRLCOD>
  5215
  5216	005774'	260 17 0 00 010445'		CALL CLRMOP		;GO CLEAR THE MOP MESSAGE AREA
  5217	005775'	200 04 0 00 014137'		MOVE T4,[POINT 8,MOPMSG] ;GET A POINTER TO THE MESSAGE
  5218	005776'	201 01 0 00 000012 		MOVX T1,.MPRQL		;GET "REQUEST LOAD" MOP FUNCTION CODE
  5219	005777'	136 01 0 00 000004 		IDPB T1,T4		;PUT FUNCTION CODE INTO MESSAGE
  5220	006000'	200 01 0 15 000001 		MOVE T1,MRLLOD		;GET LOAD NUMBER BEING REQUESTED
  5221	006001'	136 01 0 00 000004 		IDPB T1,T4		;ADD LOAD NUMBER TO MESSAGE
  5222	006002'	200 01 0 15 000002 		MOVE T1,MRLCOD		;GET RESPONSE CODE
  5223	006003'	136 01 0 00 000004 		IDPB T1,T4		;STORE RESPONSE CODE IN MESSAGE
  5224	006004'	200 01 0 00 014137'		MOVE T1,[POINT 8,MOPMSG] ;GET POINTER TO START OF MOP MESSAGE
  5225	006005'	201 02 0 00 000003 		MOVEI T2,3		;GET NUMBER OF BYTES IN MOP MESSAGE
  5226	006006'	263 17 0 00 000000 		RET			;RETURN
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 126
NCU	MAC	 6-Oct-81 12:41		Routines to Assemble NICE Messages

  5227					;MAKRQL - ROUTINE TO ASSEMBEL A NICE DOWN LINE LOAD REQUEST MESSAGE
  5228					;
  5229					;ACCEPTS IN T1/	ADDRESS OF LINE TABLE
  5230					;		CALL MAKRQL
  5231					;RETURNS: +1	 FAILED
  5232					;	  +2	SUCCESS, WITH T1/ POINTER TO START OF MESSAGE
  5233					;			      T2/ COUNT OF BYTES IN THE MESSAGE
  5234
  5235	006007'	265 16 0 00 005773*	MAKRQL:	ASUBR <MQLLIN>
  5236	006010'	265 16 0 00 005753*		STKVAR <<MQLLID,2>,MQLCNT>
  5237	006011'	000003	000003
  5238
  5239					; GET AND SAVE THE NICE LINE ID FOR THIS DTE20
  5240
  5241	006012'	200 01 0 15 000001 		MOVE T1,MQLLIN		;GET LINE TABLE
  5242	006013'	554 01 0 01 000004 		LOAD T1,LNDTE,(T1)	;GET DTE20 NUMBER
  5243	006014'	260 17 0 00 010517'		CALL CVTDEV		;CONVERT TO STANDARD NICE LINE ID
  5244	006015'	263 17 0 00 000000 		 RETBAD ()		;FAILED
  5245	006016'	124 02 0 17 777775 		DMOVEM T2,MQLLID	;SAVE LINE ID
  5246
  5247					; ASSEMBLE THE FUNCTION AND OPTION CODES
  5248
  5249	006017'	260 17 0 00 010457'		CALL CLRMSG		;GO CLEAR THE NICE MESSAGE AREA
  5250	006020'	200 01 0 00 013534'		MOVE T1,[POINT 8,MSGBLK] ;GET POINTER TO START OF NICE MESSAGE
  5251	006021'	201 04 0 00 000002 		MOVX T4,.NCRQL		;GET NICE "REQUEST DOWN LINE LOAD" FUNCTION
  5252	006022'	136 04 0 00 000001 		IDPB T4,T1		;ADD TO MESSAGE
  5253	006023'	201 04 0 00 000003 		MOVX T4,<FLD(LO%TGT,.LOSRV)+FLD(LO%ROM,.LOPGM)>
  5254	006024'	136 04 0 00 000001 		IDPB T4,T1		;ADD OPTIONS TO NICE MESSAGE
  5255
  5256					; ADD THE SERVER NODE NAME AND SERVER LINE ID TO THE MESSAGE
  5257
  5258	006025'	201 02 0 00 000002 		MOVX T2,2		;CURRENT COUNT OF BYTES IN MESSAGE
  5259	006026'	200 03 0 00 010667'		MOVE T3,OURNAM		;GET POINTER TO OUR NODE NAME
  5260	006027'	260 17 0 00 006063'		CALL MAKNOD		;ADD OUR NODE NAME TO MESSAGE
  5261	006030'	120 03 0 17 777775 		DMOVE T3,MQLLID		;GET NICE LINE ID
  5262	006031'	260 17 0 00 005303'		CALL MAKLIN		;ADD NICE LINE ID TO THE MESSAGE
  5263
  5264					; ADD PROGRAM REQUEST DATA TO THE DOWN LINE LOAD MESSAGE
  5265
  5266	006032'	201 04 0 00 000024 		MOVX T4,.DTDTE		;GET DTE20 DEVICE TYPE CODE
  5267	006033'	136 04 0 00 000001 		IDPB T4,T1		;ADD DEVICE TYPE TO MESSAGE
  5268	006034'	201 04 0 00 000001 		MOVX T4,.CP11		;GET PDP-11 CPU TYPE CODE
  5269	006035'	136 04 0 00 000001 		IDPB T4,T1		;ADD CPU TYPE CODE TO MESSAGE
  5270	006036'	201 04 0 00 000000 		MOVX T4,.PTSLD		;GET SECONDARY LOADER PROGRAM TYPE CODE
  5271	006037'	136 04 0 00 000001 		IDPB T4,T1		;ADD PROGRAM TYPE CODE TO THE MESSAGE
  5272	006040'	271 02 0 00 000003 		ADDI T2,3		;ACCOUNT FOR THE ADDED BYTES IN MESSAGE
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 127
NCU	MAC	 6-Oct-81 12:41		Routines to Assemble NICE Messages

  5273					;MAKIMB - ROUTINE TO ASSEMBLE A BINARY NUMBER INTO AN IMAGE FIELD IN
  5274					;	  A MESSAGE
  5275					;
  5276					;ACCEPTS IN T1/	POINTER TO NEXT FIELD IN MESSAGE
  5277					;	    T2/	NUMBER OF BYTES IN IMAGE FIELD TO BE ASSEMBLED
  5278					;	    T3-T4/ BINARY NUMBER TO BE ADDED TO MESSAGE
  5279					;		CALL MAKIMB
  5280					;RETURNS: +1 ALWAYS, WITH T1/ UPDATED POINTER TO NEXT FIELD IN MESSAGE
  5281					;		     NOTE: CALLER MUST KEEP TRACK OF TOTAL MESSAGE SIZE
  5282
  5283	006041'	136 02 0 00 000001 	MAKIMB::IDPB T2,T1		;ADD BYTE COUNT TO THE IMAGE FIELD
  5284
  5285					; LOOP OVER EACH BYTE TO BE ADDED TO THE MESSAGE
  5286
  5287	006042'	361 02 0 00 005337*	MKB010:	SOJL T2,R		;IF NO MORE BYTES TO ADD, RETURN
  5288	006043'	136 04 0 00 000001 		IDPB T4,T1		;ADD NEXT BYTE TO THE MESSAGE
  5289	006044'	246 03 0 00 777770 		LSHC T3,-8		;RIGHT JUSTIFY REMAINING BYTES
  5290	006045'	254 00 0 00 006042'		JRST MKB010		;LOOP OVER ALL BYTES IN THE FIELD
  5291
  5292
  5293					;MAKIMA - ROUTINE TO ASSEMBLE AN ASCII STRING INTO AN IMAGE FIELD
  5294					;
  5295					;ACCEPTS IN T1/	POINTER TO NEXT FIELD IN MESSAGE
  5296					;	    T2/	MAXIMUM NUMBER OF BYTES TO BE ASSEMBLED
  5297					;	    T3/ POINTER TO ASCIZ STRING TO BE ASSEMBLED
  5298					;		CALL MAKIMA
  5299					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  5300					;	  +2	SUCCESS, WITH T1/ UPDATED POINTER TO NEXT FIELD IN MESSAGE
  5301					;			      T2/ NUMBER OF BYTES ACTUALLY ASSEMBLED
  5302
  5303	006046'	265 16 0 00 006007*	MAKIMA::ASUBR <MKAPTR,MKACNT,MKASTR>
  5304
  5305	006047'	133 00 0 00 000001 		IBP T1			;SKIP OVER COUNT BYTE UNTIL STRING MOVED
  5306	006050'	201 04 0 00 000000 		MOVEI T4,0		;INITIALIZE BYTE COUNTER
  5307	006051'	322 02 0 00 006060'		JUMPE T2,MKA020		;IF NOTHING TO BE ASSEMBLED, JUST ADD BYTE COUNT
  5308
  5309
  5310					; LOOP OVER EACH BYTE IN THE ASCIZ STRING
  5311
  5312	006052'	134 03 0 15 000003 	MKA010:	ILDB T3,MKASTR		;GET NEXT CHARACTER FROM ASCIZ STRING
  5313	006053'	322 03 0 00 006060'		JUMPE T3,MKA020		;IF END OF STRING, GO FIX UP COUNT BYTE
  5314	006054'	361 02 0 00 006060'		SOJL T2,MKA020		;IF MAX CHARS IN MESSAGE, GO WRAP UP
  5315	006055'	136 03 0 00 000001 		IDPB T3,T1		;ADD THE BYTE TO THE MESSAGE
  5316	006056'	271 04 0 00 000001 		ADDI T4,1		;INCREMENT COUNT OF CHARACTERS DEPOSITED
  5317	006057'	254 00 0 00 006052'		JRST MKA010		;LOOP OVER ALL CHARACTERS IN THE STRING
  5318
  5319					; HERE WHEN ALL CHARACTERS ARE IN THE MESSAGE - FIX UP THE COUNT BYTE
  5320
  5321	006060'	136 04 0 15 000001 	MKA020:	IDPB T4,MKAPTR		;ADD COUNT TO THE IMAGE FIELD
  5322	006061'	201 02 0 04 000001 		MOVEI T2,1(T4)		;COPY # OF CHARACTERS ASSEMBLED + COUNT BYTE
  5323	006062'	254 00 0 00 005752*		RETSKP			;DONE, RETURN
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 128
NCU	MAC	 6-Oct-81 12:41		Routines to Assemble NICE Messages

  5324					;MAKNOD - ROUTINE TO ADD A NODE NAME TO A MESSAGE
  5325					;
  5326					;ACCEPTS IN T1/	POINTER TO NEXT FIELD IN MESSAGE BEING ASSEMBLED
  5327					;	    T2/	NUMBER OF BYTES CURRENTLY IN MESSAGE
  5328					;	    T3/	POINTER TO ASCIZ NODE NAME
  5329					;		CALL MAKNOD
  5330					;RETURNS: +1 ALWAYS, WITH T1/ UPDATED POINTER TO NEXT FIELD IN MESSAGE
  5331					;			  T2/ UPDATED COUNT OF BYTES IN MESSAGE
  5332
  5333	006063'	265 16 0 00 006010*	MAKNOD::STKVAR <MNDCNT>
  5334	006064'	000001	000001
  5335
  5336	006065'	202 02 0 17 777776 		MOVEM T2,MNDCNT		;SAVE CURRENT BYTE COUNT
  5337	006066'	201 02 0 00 000006 		MOVX T2,NNAMSZ		;GET MAX SIZE OF NODE NAMES
  5338	006067'	260 17 0 00 006046'		CALL MAKIMA		;ASSEMBLE NAME AS IMAGE ASCII FIELD
  5339	006070'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR TO CALLER
  5340	006071'	270 02 0 17 777776 		ADD T2,MNDCNT		;GET UPDATED BYTE COUNT
  5341	006072'	254 00 0 00 006062*		RETSKP			;DONE, RETURN
  5342
  5343
  5344					;MAKMPW - ROUTINE TO ADD A MAINTENANCE PASSWORD TO A MESSAGE
  5345					;
  5346					;ACCEPTS IN T1/	POINTER TO NEXT FIELD IN MESSAGE
  5347					;	    T2/	NUMBER OF BYTES CURRENTLY IN MESSAGE
  5348					;	    T3/	MAINTENANCE PASSWORD
  5349					;		CALL MAKMPW
  5350					;RETURNS: +1 ALWAYS, WITH T1/ UPDATED POINTER TO NEXT FIELD IN MESSAGE
  5351					;			  T2/ UPDATED COUNT OF BYTES IN MESSAGE
  5352
  5353	006073'	265 16 0 00 006046*	MAKMPW:	ASUBR <MMPPTR,MMPCNT,MMPPSW>
  5354
  5355	006074'	200 01 0 15 000001 		MOVE T1,MMPPTR		;GET POINTER TO NEXT FIELD
  5356	006075'	200 02 0 15 000003 		MOVE T2,MMPPSW		;GET PASSWORD
  5357	006076'	260 17 0 00 006337'		CALL MAK4		;ADD A FOUR-BYTE FIELD TO THE MESSAGE
  5358	006077'	200 02 0 15 000002 		MOVE T2,MMPCNT		;GET PREVIOUS BYTE COUNT
  5359	006100'	271 02 0 00 000004 		ADDI T2,4		;INCREMENT FOR PASSWORD SIZE
  5360	006101'	263 17 0 00 000000 		RET			;RETURN
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 129
NCU	MAC	 6-Oct-81 12:41		Routines to Assemble NICE Messages

  5361					;MAKZRO - ROUTINE TO MAKE A "ZERO LINE COUNTERS" NICE MESSAGE
  5362					;
  5363					;ACCEPTS IN T1-T2/ STANDARD NICE LINE ID
  5364					;	      T1/ LINE DEVICE TYPE (.DTXXX),,LINE CONTROLLER #
  5365					;	      T2/ LINE UNIT NUMBER,,LINE STATION ADDRESS
  5366					;		CALL MAKZRO
  5367					;RETURNS: +1 ALWAYS, WITH T1/ POINTER TO START OF MESSAGE
  5368					;			  T2/ COUNT OF BYTES IN THE MESSAGE
  5369
  5370	006102'	265 16 0 00 006073*	MAKZRO:	ASUBR <MKZLIN>
  5371
  5372	006103'	260 17 0 00 010457'		CALL CLRMSG		;INITIALIZE MESSAGE AREA
  5373	006104'	200 01 0 00 013534'		MOVE T1,[POINT 8,MSGBLK] ;GET POINTER TO START OF MESSAGE AREA
  5374	006105'	201 04 0 00 000011 		MOVX T4,.NCZRO		;GET "ZERO COUNTERS" NICE FUNCTION CODE
  5375	006106'	136 04 0 00 000001 		IDPB T4,T1		;ADD FUNCTION CODE TO MESSAGE
  5376	006107'	201 04 0 00 000002 		MOVX T4,.NCZLN		;GET OPTION FOR "LINE COUNTERS"
  5377	006110'	136 04 0 00 000001 		IDPB T4,T1		;ADD OPTION BYTE
  5378	006111'	120 03 0 15 000001 		DMOVE T3,MKZLIN		;GET LINE ID
  5379	006112'	201 02 0 00 000002 		MOVX T2,2		;GET NUMBER OF BYTES IN MESSAGE SO FAR
  5380	006113'	260 17 0 00 005303'		CALL MAKLIN		;ADD LINE ID TO MESSAGE
  5381	006114'	505 01 0 00 441000 		HRLI T1,(POINT 8,)	;GET POINTER TO START OF ASSEMBLED
  5382	006115'	541 01 0 14 000033 		HRRI T1,MSGBLK		; "ZERO COUNTERS" MESSAGE
  5383	006116'	263 17 0 00 000000 		RET			;DONE, RETURN.
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 130
NCU	MAC	 6-Oct-81 12:41		Routines to Assemble NICE Messages

  5384					;MAKEXA - ROUTINE TO ADD AN EXTENSIBLE STRING TO A MESSAGE
  5385					;
  5386					;ACCEPTS IN T1/	POINTER TO DESTINATION FOR EXTENSIBLE STRING
  5387					;	    T2/	POINTER TO SOURCE STRING
  5388					;	    T3/ CURRENT NUMBER OF BYTES IN MESSAGE
  5389					;		CALL MAKEXA
  5390					;RETURNS: +1 ALWAYS, WITH T1/ UPDATED POINTER TO NEXT FIELD IN MESSAGE
  5391					;			  T3/ UPDATED COUNT OF BYTES IN MESSAGE
  5392
  5393	006117'	265 16 0 00 006102*	MAKEXA:	ASUBR <MKEDST,MKESRC>
  5394	006120'	134 01 0 15 000002 		ILDB T1,MKESRC		;GET A SOURCE BYTE
  5395						JUMPE T1,[IDPB T1,MKEDST ;IF NULL STRING, DEPOSIT THE NULL AND
  5396	006121'	322 01 0 00 014140'			  RET]		; RETURN
  5397
  5398	006122'	134 02 0 15 000002 	MKEXA2:	ILDB T2,MKESRC		;GET NEXT CHARACTER FROM STRING
  5399	006123'	302 02 0 00 000000 		CAIE T2,.CHNUL		;GO A NULL BYTE ?
  5400	006124'	660 01 0 00 000200 		TXO T1,EXTBIT		;NO, NOTE THAT ANOTHER BYTE FOLLOWS
  5401	006125'	136 01 0 15 000001 		IDPB T1,MKEDST		;STORE FIRST BYTE INTO DESTINATION
  5402	006126'	271 03 0 00 000001 		ADDI T3,1		;INCREMENT # OF BYTES IN MESSAGE
  5403	006127'	606 01 0 00 000200 		TXNN T1,EXTBIT		;HAS THE LAST BYTE BEEN ADDED TO STRING ?
  5404	006130'	254 00 0 00 006133'		JRST MKEXA3		;YES, GO RETURN THE UPDATED POINTER AND COUNT
  5405	006131'	200 01 0 00 000002 		MOVE T1,T2		;NO, MAKE "NEXT CHARACTER" BE "THIS CHARACTER"
  5406	006132'	254 00 0 00 006122'		JRST MKEXA2		;GO TEST NEXT CHARACTER OF STRING
  5407
  5408					; HERE WHEN ALL CHARACTERS HAVE BEEN PLACED INTO EXTENSIBLE STRING
  5409
  5410	006133'	200 01 0 15 000001 	MKEXA3:	MOVE T1,MKEDST		;RETURN UPDATED POINTER TO MESSAGE
  5411									;COUNT IS STILL IN T3
  5412	006134'	263 17 0 00 000000 		RET			;RETURN WITH UPDATED BYTE POINTERS AND COUNT
  5413
  5414
  5415
  5416					;MAKMEM - ROUTINE TO ADD A MEMORY ADDRESS OR SIZE TO A MESSAGE
  5417					;
  5418					;ACCEPTS IN T1/	POINTER TO NEXT FIELD IN MESSAGE
  5419					;	    T2/	NUMBER OF BYTES CURRENTLY IN MESSAGE
  5420					;	    T3/	MEMORY ADDRESS OR SIZE
  5421					;		CALL MAKMEM
  5422					;RETURNS: +1 ALWAYS, WITH T1/ UPDATED POINTER TO NEXT FIELD IN MESSAGE
  5423					;			  T2/ UPDATED BYTE COUNT
  5424
  5425	006135'	265 16 0 00 006117*	MAKMEM:	ASUBR <MKMPTR,MKMCNT,MKMMEM>
  5426
  5427	006136'	200 01 0 15 000001 		MOVE T1,MKMPTR		;GET POINTER TO NEXT FIELD
  5428	006137'	200 02 0 15 000003 		MOVE T2,MKMMEM		;GET MEMORY ADDRESS OR SIZE
  5429	006140'	260 17 0 00 006337'		CALL MAK4		;ADD A FOUR-BYTE FIELD TO MESSAGE
  5430	006141'	200 02 0 15 000002 		MOVE T2,MKMCNT		;GET PREVIOUS BYTE COUNT
  5431	006142'	271 02 0 00 000004 		ADDI T2,4		;ALLOW FOR MEMORY ADDRESS
  5432	006143'	263 17 0 00 000000 		RET			;RETURN
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 131
NCU	MAC	 6-Oct-81 12:41		Routines to Assemble NICE Messages

  5433					;MAKLOC - ROUTINE TO ADD A "NUMBER OF LOCATIONS" FIELD TO A MESSAGE
  5434					;
  5435					;ACCEPTS IN T1/	POINTER TO NEXT FIELD IN MESSAGE
  5436					;	    T2/	NUMBER OF BYTES CURRENTLY IN MESSAGE
  5437					;	    T3/	NUMBER OF LOCATIONS
  5438					;		CALL MAKLOC
  5439					;RETURNS: +1 ALWAYS, WITH T1/ UPDATED POINTER TO NEXT FIELD IN MESSAGE
  5440					;			  T2/ UPDATED BYTE COUNT
  5441
  5442	006144'	265 16 0 00 006135*	MAKLOC:	ASUBR <MKLPTR,MKLCNT,MKLLOC>
  5443
  5444	006145'	200 01 0 15 000001 		MOVE T1,MKLPTR		;GET POINTER TO NEXT FIELD IN MESSAGE
  5445	006146'	200 02 0 15 000003 		MOVE T2,MKLLOC		;GET NUMBER OF LOCATIONS
  5446	006147'	260 17 0 00 006333'		CALL MAKTWO		;ADD A TWO BYTE FIELD TO THE MESSAGE
  5447	006150'	200 02 0 15 000002 		MOVE T2,MKLCNT		;GET PREVIOUS BYTE COUNT
  5448	006151'	271 02 0 00 000002 		ADDI T2,2		;ADD SIZE OF LOCATION FIELD
  5449	006152'	263 17 0 00 000000 		RET			;RETURN
  5450
  5451					;MAKNAM - ROUTINE TO ADD A NODE NAME PARAMETER TO A MESSAGE
  5452					;
  5453					;ACCEPTS IN T1/	POINTER TO NEXT FIELD IN MESSAGE
  5454					;	    T2/	CURRENT MESSAGE SIZE (IN BYTES)
  5455					;	    T3/	POINTER TO ASCIZ NODE NAME
  5456					;		CALL MAKNAM
  5457					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  5458					;	  +2	SUCCESS, WITH T1/ UPDATED POINTER TO NEXT FIELD IN MESSAGE
  5459					;			      T2/ UPDATED BYTE COUNT
  5460
  5461	006153'	265 16 0 00 006144*	MAKNAM::ASUBR <MNMPTR,MNMCNT,MNMNAM>
  5462
  5463	006154'	201 04 0 00 000001 		MOVX T4,.PVNAM		;GET NODE NAME PARAMETER TYPE CODE
  5464	006155'	136 04 0 00 000001 		IDPB T4,T1		;ADD PARAMETER TYPE TO MESSAGE
  5465	006156'	271 02 0 00 000001 		ADDI T2,1		;INCREMENT BYTE COUNT FOR PARAMETER TYPE BYTE
  5466	006157'	260 17 0 00 006063'		CALL MAKNOD		;GO ADD A NODE NAME TO THE MESSAGE
  5467	006160'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR TO CALLER
  5468	006161'	254 00 0 00 006072*		RETSKP			;DONE, RETURN SUCCESS
  5469
  5470					;MAKHST - ROUTINE TO ADD A HOST NODE NAME PARAMETER TO A MESSAGE
  5471					;
  5472					;ACCEPTS IN T1/	POINTER TO NEXT FIELD IN MESSAGE
  5473					;	    T2/	CURRENT MESSAGE SIZE (IN BYTES)
  5474					;	    T3/	POINTER TO ASCIZ HOST NODE NAME
  5475					;		CALL MAKHST
  5476					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  5477					;	  +2	SUCCESS, WITH T1/ UPDATED POINTER TO NEXT FIELD IN MESSAGE
  5478					;			      T2/ UPDATED BYTE COUNT
  5479
  5480	006162'	265 16 0 00 006153*	MAKHST::ASUBR <MHNPTR,MHNCNT,MHNNAM>
  5481
  5482	006163'	201 04 0 00 000003 		MOVX T4,.PVHST		;GET HOST NODE NAME PARAMETER TYPE CODE
  5483	006164'	136 04 0 00 000001 		IDPB T4,T1		;ADD PARAMETER TYPE TO MESSAGE
  5484	006165'	271 02 0 00 000001 		ADDI T2,1		;INCREMENT BYTE COUNT FOR PARAMETER TYPE BYTE
  5485	006166'	260 17 0 00 006063'		CALL MAKNOD		;GO ADD A NODE NAME TO THE MESSAGE
  5486	006167'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR TO CALLER
  5487	006170'	254 00 0 00 006161*		RETSKP			;DONE, RETURN SUCCESS
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 132
NCU	MAC	 6-Oct-81 12:41		Routines to Assemble NICE Messages

  5488					;MAKSLN - ROUTINE TO ASSEMBLE A NICE "SET PARAMETERS" MESSAGE TO
  5489					;	    SET THE STATE OF A LINE
  5490					;
  5491					;ACCEPTS IN T1/	LINE STATE
  5492					;	    T2-T3/ STANDARD NICE LINE ID
  5493					;	    T4/	DESTINATION ADDRESS FOR MESSAGE
  5494					;		CALL MAKSLN
  5495					;RETURNS: +1	 FAILED
  5496					;	  +2	SUCCESS, WITH T1/ POINTER TO START OF MESSAGE
  5497					;			      T2/ COUNT OF BYTES IN THE MESSAGE
  5498
  5499	006171'	265 16 0 00 006063*	MAKSLN::STKVAR <MLNSTA,<MLNLIN,2>,MLNPTR>
  5500	006172'	000004	000004
  5501
  5502	006173'	202 01 0 17 777776 		MOVEM T1,MLNSTA		;SAVE LINE STATE
  5503	006174'	124 02 0 17 777774 		DMOVEM T2,MLNLIN	;SAVE LINE ID
  5504	006175'	200 01 0 00 000004 		MOVE T1,T4		;COPY ADDRESS OF START OF MESSAGE
  5505	006176'	505 01 0 00 441000 		HRLI T1,(POINT 8,)	;FORM POINTER TO START OF MESSAGE
  5506	006177'	202 01 0 17 777773 		MOVEM T1,MLNPTR		;SAVE POINTER TO START OF MESSAGE
  5507	006200'	201 04 0 00 000007 		MOVX T4,.NCSET		;GET NICE PROTOCOL "SET PARAMETER" FUNCTION
  5508	006201'	136 04 0 00 000001 		IDPB T4,T1		;ADD FUNCTION CODE TO MESSAGE
  5509	006202'	201 04 0 00 000010 		MOVX T4,.NCSLN		;GET NICE "SET LINE STATE" OPTION CODE
  5510	006203'	136 04 0 00 000001 		IDPB T4,T1		;ADD OPTION BYTE TO MESSAGE
  5511	006204'	201 02 0 00 000002 		MOVX T2,2		;CURRENTLY TWO BYTES IN THE MESSAGE
  5512	006205'	120 03 0 17 777774 		DMOVE T3,MLNLIN		;GET LINE ID
  5513	006206'	260 17 0 00 005303'		CALL MAKLIN		;ADD LINE TO THE MESSAGE
  5514	006207'	200 04 0 17 777776 		MOVE T4,MLNSTA		;GET LINE STATE
  5515	006210'	136 04 0 00 000001 		IDPB T4,T1		;ADD STATE TO MESSAGE
  5516	006211'	271 02 0 00 000001 		ADDI T2,1		;INCREMENT COUNT OF BYTES IN THE MESSAGE
  5517	006212'	200 01 0 17 777773 		MOVE T1,MLNPTR		;RESTORE POINTER TO START OF MESSAGE
  5518	006213'	254 00 0 00 006170*		RETSKP			;DONE, RETURN SUCCESS
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 133
NCU	MAC	 6-Oct-81 12:41		Routines to Assemble NICE Messages

  5519					;MAKEVT - ROUTINE TO ASSEMBLE THE HEADER PART OF AN EVENT LOG MESSAGE
  5520					;
  5521					;ACCEPTS IN T1/	POINTER TO DESTINATION FOR MESSAGE
  5522					;	    T2/ EVENT CODE (.EVXXX)
  5523					;		CALL MAKEVT
  5524					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  5525					;	  +2	SUCCESS, WITH T1/ UPDATED POINTER TO NEXT FIELD IN MESSAGE
  5526					;			      T2/ NUMBER OF BYTES IN THE MESSAGE
  5527
  5528	006214'	265 16 0 00 006171*	MAKEVT:	STKVAR <MKEEVT,MKECNT>
  5529	006215'	000002	000002
  5530	006216'	202 02 0 17 777776 		MOVEM T2,MKEEVT		;SAVE EVENT CODE
  5531	006217'	201 04 0 00 000001 		MOVX T4,.NCLOG		;GET NICE "LOG DATA" FUNCTION CODE
  5532	006220'	136 04 0 00 000001 		IDPB T4,T1		;ADD TO NICE MESSAGE
  5533	006221'	201 04 0 00 000001 		MOVX T4,.LGMNT		;GET MAINTENANCE LOG OPTION
  5534	006222'	136 04 0 00 000001 		IDPB T4,T1		;ADD TO NICE MESSAGE
  5535	006223'	201 02 0 00 000006 		MOVX T2,NNAMSZ		;GET MAX SIZE OF NODE NAMES
  5536	006224'	200 03 0 00 013666'		MOVE T3,[POINT 7,OURNAM] ;GET POINTER TO NAME OF THIS NODE
  5537	006225'	260 17 0 00 006046'		CALL MAKIMA		;ADD ASCII STRING TO MESSAGE
  5538	006226'	263 17 0 00 000000 		 RETBAD ()		;FAILED
  5539	006227'	202 02 0 17 777775 		MOVEM T2,MKECNT		;SAVE COUNT OF CHARS ACTUALLY ASSEMBLED
  5540	006230'	200 03 0 00 014144'		MOVE T3,[POINT 7,[ASCIZ/NETCON/]] ;GET PROGRAM NAME
  5541	006231'	201 02 0 00 000006 		MOVX T2,6		;GET SIZE OF OUR PROGRAM NAME
  5542	006232'	260 17 0 00 006046'		CALL MAKIMA		;ADD PROGRAM NAME TO THIS MESSAGE
  5543	006233'	263 17 0 00 000000 		 RETBAD ()		;FAILED
  5544	006234'	350 04 0 00 011015'		AOS T4,EVTSEQ		;GET NEXT EVENT LOG SEQUENCE NUMBER TO USE
  5545	006235'	136 04 0 00 000001 		IDPB T4,T1		;ADD SEQUENCE NUMBER TO MESSAGE
  5546	006236'	200 02 0 17 777776 		MOVE T2,MKEEVT		;GET EVENT TYPE CODE
  5547	006237'	260 17 0 00 006333'		CALL MAKTWO		;ADD EVENT CODE TO NICE MESSAGE
  5548	006240'	200 02 0 17 777775 		MOVE T2,MKECNT		;GET NUMBER OF BYTES USED IN NODE NAME
  5549	006241'	271 02 0 00 000014 		ADDI T2,^D12		;ACCOUNT OF NON-VARYING INFORMATION
  5550	006242'	254 00 0 00 006213*		RETSKP			;RETURN SUCCESS
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 134
NCU	MAC	 6-Oct-81 12:41		Routines to Assemble NICE Messages

  5551
  5552					;MAKENA - ROUTINE TO ASSEMBLE A NICE SET PARAMETER MESSAGE TO ENABLE
  5553					;	  EVENT LOGGING AT A NODE
  5554					;
  5555					;CALL:		CALL MAKENA
  5556					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  5557					;	  +2	SUCCESS, WITH T1/ ADDRESS OF MESSAGE
  5558					;			      T2/ NUMBER OF BYTES IN THE MESSAGE
  5559
  5560	006243'	200 01 0 00 014146'	MAKENA::MOVE T1,[POINT 8,[BYTE (8) .NCSET, .NCNLS, .NSON ]]
  5561	006244'	201 02 0 00 000003 		MOVX T2,3		;3 BYTES IN MESSAGE
  5562	006245'	254 00 0 00 006242*		RETSKP			;DONE
  5563
  5564
  5565
  5566					;MAKDIS - ROUTINE TO ASSEMBLE A NICE SET PARAMETER MESSAGE TO DISABLE
  5567					;	  EVENT LOGGING AT A NODE
  5568					;
  5569					;CALL:		CALL MAKDIS
  5570					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  5571					;	  +2	SUCCESS, WITH T1/ ADDRESS OF MESSAGE
  5572					;			      T2/ NUMBER OF BYTES IN THE MESSAGE
  5573
  5574	006246'	200 01 0 00 014150'	MAKDIS::MOVE T1,[POINT 8,[BYTE (8) .NCSET, .NCNLS, .NSOFF ]]
  5575	006247'	201 02 0 00 000003 		MOVX T2,3		;3 BYTES IN MESSAGE
  5576	006250'	254 00 0 00 006245*		RETSKP			;DONE
  5577
  5578
  5579					;MAKENL - ROUTINE TO ASSEMBLE A NICE SET PARAMETER MESSAGE TO ENABLE
  5580					;	  EVENT LOGGING FOR A LINE OR LINES.
  5581					;
  5582					;ACCEPTS IN T1-T2/ STANDARD NICE LINE ID (-1 IN FIRST WORD FOR ALL LINES)
  5583					;	       T3/ DESTINATION ADDRESS FOR MESSAGE
  5584					;		CALL MAKENL
  5585					;RETURNS: +1	 FAILED
  5586					;	  +2	SUCCESS, WITH T1/ ADDRESS OF MESSAGE
  5587					;			      T2/ NUMBER OF BYTES IN THE MESSAGE
  5588
  5589	006251'	265 16 0 00 006214*	MAKENL::STKVAR <<MNLLID,2>,MNLDST>
  5590	006252'	000003	000003
  5591	006253'	124 01 0 17 777775 		DMOVEM T1,MNLLID	;SAVE LINE ID
  5592	006254'	550 01 0 00 000003 		HRRZ T1,T3		;GET DESTINATION ADDRESS FOR MESSAGE
  5593	006255'	505 01 0 00 441000 		HRLI T1,(POINT 8,)	;FORM POINTER TO MESSAGE DESTINATION
  5594	006256'	202 01 0 17 777774 		MOVEM T1,MNLDST		;SAVE POINTER TO MESSAGE
  5595	006257'	201 03 0 00 000007 		MOVX T3,.NCSET		;GET NICE "SET PARAMETER" FUNCTION CODE
  5596	006260'	136 03 0 00 000001 		IDPB T3,T1		;STORE IN MESSAGE
  5597	006261'	201 03 0 00 000012 		MOVX T3,.NCLLS		;GET "LINE LOGGING STATE" OPTION
  5598	006262'	136 03 0 00 000001 		IDPB T3,T1		;STORE OPTION IN MESSAGE
  5599	006263'	201 02 0 00 000002 		MOVX T2,2		;TWO BYTES IN MESSAGE SO FAR
  5600	006264'	120 03 0 17 777775 		DMOVE T3,MNLLID		;GET LINE ID
  5601	006265'	316 03 0 00 014136'		CAMN T3,[-1]		;ALL LINES SPECIFIED ?
  5602						JRST [	MOVX T3,.LTALL	;YES, GET "ALL LINES" CODE
  5603							IDPB T3,T1	;STORE IN MESSAGE
  5604							ADDI T2,1	;INCREMENT COUNT FOR LINE ID
  5605	006266'	254 00 0 00 014151'			JRST MAKNL1 ]	;AND CONTINUE
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 134-1
NCU	MAC	 6-Oct-81 12:41		Routines to Assemble NICE Messages

  5606	006267'	260 17 0 00 005303'		CALL MAKLIN		;ADD LINE ID TO MESSAGE
  5607
  5608	006270'	201 03 0 00 000000 	MAKNL1:	MOVX T3,.NSON		;GET STATE CODE FOR "ON"
  5609	006271'	136 03 0 00 000001 		IDPB T3,T1		;ADD STATE TO MESSAGE
  5610	006272'	271 02 0 00 000001 		ADDI T2,1		;ACCOUNT FOR STATE CODE IN BYTE COUNT
  5611	006273'	200 01 0 17 777774 		MOVE T1,MNLDST		;RESTORE POINTER TO START OF MESSAGE
  5612	006274'	254 00 0 00 006250*		RETSKP			;DONE, RETURN
  5613
  5614
  5615
  5616					;MAKDSL - ROUTINE TO ASSEMBLE A NICE SET PARAMETER MESSAGE TO DISABLE
  5617					;	  EVENT LOGGING FOR A LINE OR LINES.
  5618					;
  5619					;ACCEPTS IN T1-T2/ STANDARD NICE LINE ID (-1 IN FIRST WORD FOR ALL LINES)
  5620					;	       T3/ DESTINATION ADDRESS FOR MESSAGE
  5621					;		CALL MAKDSL
  5622					;RETURNS: +1	 FAILED
  5623					;	  +2	SUCCESS, WITH T1/ ADDRESS OF MESSAGE
  5624					;			      T2/ NUMBER OF BYTES IN THE MESSAGE
  5625
  5626	006275'	265 16 0 00 006251*	MAKDSL::STKVAR <<MDLLID,2>,MDLDST>
  5627	006276'	000003	000003
  5628	006277'	124 01 0 17 777775 		DMOVEM T1,MDLLID	;SAVE LINE ID
  5629	006300'	550 01 0 00 000003 		HRRZ T1,T3		;GET DESTINATION ADDRESS FOR MESSAGE
  5630	006301'	505 01 0 00 441000 		HRLI T1,(POINT 8,)	;FORM DESTINATION ADDRESS FOR MESSAGE
  5631	006302'	202 01 0 17 777774 		MOVEM T1,MDLDST		;SAVE ADDRESS OF START OF MESSAGE
  5632	006303'	201 03 0 00 000007 		MOVX T3,.NCSET		;GET NICE "SET PARAMETER" FUNCTION CODE
  5633	006304'	136 03 0 00 000001 		IDPB T3,T1		;STORE IN MESSAGE
  5634	006305'	201 03 0 00 000012 		MOVX T3,.NCLLS		;GET "LINE LOGGING STATE" OPTION
  5635	006306'	136 03 0 00 000001 		IDPB T3,T1		;STORE OPTION IN MESSAGE
  5636	006307'	201 02 0 00 000002 		MOVX T2,2		;TWO BYTES IN MESSAGE SO FAR
  5637	006310'	120 03 0 17 777775 		DMOVE T3,MDLLID		;GET LINE ID
  5638	006311'	316 03 0 00 014136'		CAMN T3,[-1]		;ALL LINES SPECIFIED ?
  5639						JRST [	MOVX T3,.LTALL	;YES, GET "ALL LINES" CODE
  5640							IDPB T3,T1	;STORE IN MESSAGE
  5641							ADDI T2,1	;INCREMENT COUNT FOR LINE ID
  5642	006312'	254 00 0 00 014151'			JRST MAKNL1 ]	;AND CONTINUE
  5643	006313'	260 17 0 00 005303'		CALL MAKLIN		;ADD LINE ID TO MESSAGE
  5644
  5645	006314'	201 03 0 00 000001 	MKLIN1:	MOVX T3,.NSOFF		;GET STATE CODE FOR "ON"
  5646	006315'	136 03 0 00 000001 		IDPB T3,T1		;ADD STATE TO MESSAGE
  5647	006316'	271 02 0 00 000001 		ADDI T2,1		;ACCOUNT FOR STATE CODE IN BYTE COUNT
  5648	006317'	200 01 0 17 777774 		MOVE T1,MDLDST		;GET POINTER TO START OF MESSAGE
  5649	006320'	254 00 0 00 006274*		RETSKP			;DONE, RETURN
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 135
NCU	MAC	 6-Oct-81 12:41		Routines to Assemble NICE Messages

  5650					;MAKNUM - ROUTINE TO ADD A NODE NUMBER PARAMETER TO A MESSAGE
  5651					;
  5652					;ACCEPTS IN T1/	POINTER TO NEXT FIELD IN MESSAGE
  5653					;	    T2/	NUMBER OF BYTES IN THE MESSAGE
  5654					;	    T3/	NODE NUMBER
  5655					;		CALL MAKNUM
  5656					;RETURNS: +1 ALWAYS, WITH T1/ UPDATED POINTER TO NEXT FIELD IN MESSAGE
  5657					;			  T2/ UPDATED MESSAGE SIZE
  5658
  5659	006321'	265 16 0 00 006162*	MAKNUM::ASUBR <MNUPTR,MNUCNT,MNUNUM>
  5660
  5661	006322'	201 04 0 00 000002 		MOVX T4,.PVNUM		;GET NODE NUMBER PARAMETER VALUE TYPE CODE
  5662	006323'	136 04 0 00 000001 		IDPB T4,T1		;ADD PARAMETER TYPE CODE TO MESSAGE
  5663	006324'	201 04 0 00 000002 		MOVX T4,2		;GET NUMBER OF BYTES IN THE NUMBER FIELD
  5664	006325'	136 04 0 00 000001 		IDPB T4,T1		;ADD FIELD SIZE TO MESSAGE
  5665	006326'	200 02 0 15 000003 		MOVE T2,MNUNUM		;GET NODE NUMBER TO ADD TO MESSAGE
  5666	006327'	260 17 0 00 006333'		CALL MAKTWO		;GO ADD A TWO BYTE FIELD TO THE MESSAGE
  5667	006330'	200 02 0 15 000002 		MOVE T2,MNUCNT		;GET ORIGINAL COUNT
  5668	006331'	271 02 0 00 000003 		ADDI T2,3		;ACCOUNT FOR TYPE CODE AND 2-BYTE NUMBER
  5669	006332'	263 17 0 00 000000 		RET			;DONE, RETURN
  5670
  5671
  5672					;MAKTWO - ROUTINE TO ADD A TWO-BYTE NUMBER TO A MESSAGE
  5673					;
  5674					;ACCEPTS IN T1/	BYTE POINTER TO DESTINATION IN MESSAGE
  5675					;	    T2/	NUMBER TO BE ADDED TO MESSAGE
  5676					;		CALL MAKTWO
  5677					;RETURNS: +1 ALWAYS, WITH T1/ UPDATED BYTE POINTER TO NEXT FIELD IN MESSAGE
  5678
  5679	006333'	136 02 0 00 000001 	MAKTWO::	IDPB T2,T1		;PUT LOW ORDER BYTE INTO MESSAGE FIRST
  5680	006334'	242 02 0 00 777770 		LSH T2,-8		;RIGHT-ADJUST HIGH ORDER BYTE OF NUMBER
  5681	006335'	136 02 0 00 000001 		IDPB T2,T1		;DEPOSIT HIGH ORDER BYTE INTO MESSAGE NEXT
  5682	006336'	263 17 0 00 000000 		RET			;RETURN, WITH UPDATED POINTER IN T1
  5683
  5684
  5685					;MAK4 - ROUTINE TO ADD A FOUR-BYTE NUMBER TO A MESSAGE
  5686					;
  5687					;ACCEPTS IN T1/	POINTER TO NEXT FIELD IN MESSAGE
  5688					;	    T2/	NUMBER TO BE ADDED TO THE MESSAGE
  5689					;		CALL MAK4
  5690					;RETURNS +1 ALWAYS, WITH T1/ UPDATED POINTER TO NEXT FIELD IN MESSAGE
  5691
  5692	006337'	265 16 0 00 006321*	MAK4:	ASUBR <PT4PTR,PT4NUM>
  5693
  5694					; ADD THE FIRST TWO BYTES TO THE MESSAGE
  5695
  5696	006340'	200 01 0 15 000001 		MOVE T1,PT4PTR		;GET POINTER TO NEXT FIELD
  5697	006341'	200 02 0 15 000002 		MOVE T2,PT4NUM		;GET NUMBER TO BE ADDED
  5698	006342'	260 17 0 00 006333'		CALL MAKTWO		;ADD NEXT TWO BYTES TO MESSAGE
  5699
  5700					; ADD THE NEXT TWO BYTES TO THE MESSAGE
  5701
  5702	006343'	200 02 0 15 000002 		MOVE T2,PT4NUM		;GET THE NUMBER TO BE ADDED AGAIN
  5703	006344'	242 02 0 00 777760 		LSH T2,-^D16		;SHIFT TO POSITION THE NEXT TWO BYTES TO ADD
  5704	006345'	254 00 0 00 006333'		CALLRET MAKTWO		;ADD NEXT TWO BYTES TO THE MESSAGE AND RETURN
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 136
NCU	MAC	 6-Oct-81 12:41		Routines to Manipulate DTE-20's

  5705					SUBTTL	Routines to Manipulate DTE-20's
  5706
  5707					;DTESTP - Routine to Terminate any Protocol Running on the Specified DTE20.
  5708					;
  5709					;ACCEPTS IN T1/	LINE TABLE ADDRESS
  5710					;		CALL DTESTP
  5711					;RETURNS: +1	 FAILED, DEVICE IS NOT IN KNOWN STATE
  5712					;	  +2	SUCCESS, READY TO LOAD SECONDARY BOOTSTRAP
  5713
  5714	006346'	265 16 0 00 006337*	DTESTP:	ASUBR <SDTLIN>
  5715	006347'	260 17 0 00 010452'		CALL CLRBOT		;INITIALIZE THE BOOT JSYS ARGUMENT BLOCK
  5716	006350'	201 02 0 14 003234 		MOVEI T2,BTARG		;GET ADDRESS OF BOOT JSYS ARGUMENT BLOCK
  5717	006351'	200 04 0 15 000001 		MOVE T4,SDTLIN		;GET LINE TABLE ADDRESS
  5718	006352'	554 04 0 04 000004 		LOAD T4,LNDTE,(T4)	;GET DTE20 NUMBER
  5719	006353'	202 04 0 02 000000 		MOVEM T4,.BTDTE(T2)	;STORE DTE-20 NUMBER TO STOP
  5720	006354'	201 01 0 00 000005 		MOVEI T1,.BTTPR		;FUNCTION IS "TERMINATE PROTOCOL"
  5721	006355'	104 00 0 00 000562 		BOOT			;STOP THE SPECIFIED DTE-20
  5722	006356'	320 16 0 00 006042*		 ERJMP R		;THIS IS NOT EXPECTED TO FAIL
  5723	006357'	254 00 0 00 006320*		RETSKP			;SUCCESS, BOOTSTRAP CAN NOW BE LOADED
  5724
  5725
  5726
  5727					;DTESLD - ROUTINE TO SEND DATA ACROSS THE DTE20
  5728					;
  5729					;ACCEPTS IN T1/	ADDRESS OF LINE TABLE
  5730					;		CALL DTESLD
  5731					;RETURNS: +1	 FAILED, TRANSFER ERROR
  5732					;	  +2	SUCCESS, DATA SENT
  5733
  5734	006360'	265 16 0 00 006346*	DTESLD:	ASUBR <LDTLIN>
  5735
  5736	006361'	260 17 0 00 010452'		CALL CLRBOT		;CLEAR THE BOOT JSYS ARGUMENT BLOCK
  5737
  5738					; SEND SECONDARY BOOTSTRAP ACROSS THE DTE20
  5739
  5740	006362'	201 02 0 14 003234 		MOVEI T2,BTARG		;GET ADDRESS OF BOOT ARGUMENT BLOCK
  5741	006363'	200 04 0 15 000001 		MOVE T4,LDTLIN		;GET ADDRESS OF LINE TABLE ENTRY
  5742	006364'	200 01 0 04 000006 		LOAD T1,LNMSG,(T4)	;GET ADDRESS OF DATA TO BE SENT
  5743	006365'	552 01 0 02 000002 		HRRZM T1,.BTSEC(T2)	;SAVE ADDRESS OF SECONDARY DATA
  5744	006366'	554 01 0 04 000004 		LOAD T1,LNDTE,(T4)	;GET DTE20 NUMBER
  5745	006367'	202 01 0 02 000000 		MOVEM T1,.BTDTE(T2)	;SAVE DTE20 NUMBER IN ARGUMENT BLOCK
  5746	006370'	201 01 0 00 000001 		MOVEI T1,.BTLDS		;GET BOOT JSYS FUNCTION CODE
  5747	006371'	104 00 0 00 000562 		BOOT			;LOAD THE SECONDARY BOOTSTRAP
  5748	006372'	320 16 0 00 006356*		 ERJMP R		;FAILED, RETURN ERROR
  5749	006373'	254 00 0 00 006357*		RETSKP			;RETURN
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 137
NCU	MAC	 6-Oct-81 12:41		Routines to Manipulate DTE-20's

  5750					;DTESND - ROUTINE TO SEND A MOP MESSAGE ACROSS THE DTE20
  5751					;
  5752					;ACCEPTS IN T1/	ADDRESS OF LINE TABLE
  5753					;		CALL DTESND
  5754					;RETURNS: +1	 FAILED
  5755					;	  +2	SUCCESS, MESSAGE SENT ACROSS THE DTE20
  5756
  5757	006374'	265 16 0 00 006360*	DTESND:	ASUBR <SDTLIN>
  5758
  5759	006375'	260 17 0 00 010452'		CALL CLRBOT		;GO CLEAR THE BOOT JSYS ARGUMENT BLOCK
  5760	006376'	201 02 0 14 003234 		MOVEI T2,BTARG		;GET ADDRESS OF BOOT JSYS ARGUMENT BLOCK
  5761	006377'	200 04 0 15 000001 		MOVE T4,SDTLIN		;GET ADDRESS OF LINE TABLE
  5762	006400'	554 01 0 04 000004 		LOAD T1,LNDTE,(T4)	;GET DTE20 NUMBER
  5763	006401'	202 01 0 02 000000 		MOVEM T1,.BTDTE(T2)	;STORE PHYSICAL LINE NUMBER (DTE20 NUMBER)
  5764	006402'	200 01 0 04 000006 		LOAD T1,LNMSG,(T4)	;GET POINTER TO MOP MESSAGE TO SEND
  5765	006403'	202 01 0 02 000005 		MOVEM T1,.BTLPT(T2)	;PUT POINTER INTO BOOT JSYS ARGUMENT BLOCK
  5766	006404'	205 01 0 00 400000 		MOVX T1,BT%BEL		;GET "DOORBELL WANTED" FLAG
  5767	006405'	202 01 0 02 000003 		MOVEM T1,.BTFLG(T2)	;SAVE FLAGS IN ARGUMENT BLOCK
  5768	006406'	550 01 0 04 000002 		LOAD T1,LNCNT,(T4)	;GET NUMBER OF BYTES IN THE MOP MESSAGE
  5769	006407'	202 01 0 02 000004 		MOVEM T1,.BTCNT(T2)	;STORE BYTE COUNT IN BOOT JSYS ARGUMENT BLOCK
  5770	006410'	201 01 0 00 000002 		MOVEI T1,.BTLOD		;GET "LOAD" FUNCTION CODE
  5771	006411'	104 00 0 00 000562 		BOOT			;SEND THE DATA ACROSS THE DTE20
  5772	006412'	320 16 0 00 006372*		 ERJMP R		;FAILED, RETURN ERROR
  5773	006413'	254 00 0 00 006373*		RETSKP			;RETURN, DATA SENT
  5774
  5775
  5776					;DTEWAT - ROUTINE TO WAIT FOR A DOORBELL FROM A DTE20
  5777					;
  5778					;ACCEPTS IN T1/	ADDRESS OF LINE TABLE
  5779					;		CALL DTEWAT
  5780					;RETURNS: +1	 FAILED
  5781					;	  +2	SUCCESS
  5782
  5783	006414'	265 16 0 00 006374*	DTEWAT:	ASUBR <DTWLIN>
  5784
  5785	006415'	260 17 0 00 010452'		CALL CLRBOT		;CLEAR BOOT JSYS ARGUMENT BLOCK
  5786	006416'	200 04 0 15 000001 		MOVE T4,DTWLIN		;GET ADDRESS OF LINE TABLE
  5787	006417'	554 01 0 04 000004 		LOAD T1,LNDTE,(T4)	;GET DTE20 NUMBER
  5788	006420'	200 02 0 00 014155'		MOVX T2,BTARG		;GET ADDRESS OF BOOT JSYS ARG BLOCK
  5789	006421'	202 01 0 02 000000 		MOVEM T1,.BTDTE(T2)	;SAVE DTE20 NUMBER
  5790	006422'	201 01 0 00 000007 		MOVX T1,.BTBEL		;GET "WAIT FOR DOORBELL" FUNCTION CODE
  5791	006423'	104 00 0 00 000562 		BOOT			;WAIT FOR THE DOORBELL
  5792	006424'	320 16 0 00 006412*		 ERJMP R		;FAILED, RETURN ERROR
  5793	006425'	254 00 0 00 006413*		RETSKP			;DONE, RETURN SUCCESS
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 138
NCU	MAC	 6-Oct-81 12:41		Routines to Manipulate DTE-20's

  5794					;DTEDMP - ROUTINE TO GET DUMP DATA OVER THE DTE20
  5795					;
  5796					;ACCEPTS IN T1/	LINE TABLE ADDRESS
  5797					;		CALL DTEDMP
  5798					;RETURNS: +1	 FAILED, BOOT JSYS ERROR
  5799					;	  +2	SUCCESS, DATA BYTES DUMPED INTO DATA AREA FOR THIS LINE
  5800
  5801	006426'	265 16 0 00 006414*	DTEDMP:	ASUBR <DTDLIN>
  5802
  5803	006427'	260 17 0 00 010452'		CALL CLRBOT		;GO CLEAR THE BOOT JSYS ARGUMENT BLOCK
  5804	006430'	201 02 0 14 003234 		MOVEI T2,BTARG		;GET ADDRESS OF BOOT JSYS ARGUMENT BLOCK
  5805	006431'	200 03 0 15 000001 		MOVE T3,DTDLIN		;GET ADDRESS OF LINE TABLE ENTRY
  5806	006432'	554 04 0 03 000004 		LOAD T4,LNDTE,(T3)	;GET DTE20 NUMBER FOR THIS LINE
  5807	006433'	202 04 0 02 000000 		MOVEM T4,.BTDTE(T2)	;STORE DTE20 NUMBER IN BOOT JSYS ARG BLOCK
  5808	006434'	200 01 0 03 000007 		LOAD T1,LNDCT,(T3)	;GET TOTAL NUMBER OF BYTES LEFT TO BE DUMPED
  5809	006435'	301 01 0 00 000377 		CAIL T1,MAXMEM		;LESS THAN MAX FOR ONE IMAGE DATA MESSAGE ?
  5810	006436'	201 01 0 00 000377 		MOVX T1,MAXMEM		;NO, USE ENOUGH TO FILL ONE DATA MESSAGE
  5811	006437'	602 01 0 00 000001 		TRNE T1,1		;ODD NUMBER OF BYTES ?
  5812	006440'	275 01 0 00 000001 		SUBI T1,1		;YES, DUMP INTEGRAL NUMBER OF WORDS
  5813	006441'	542 01 0 03 000002 		STOR T1,LNCNT,(T3)	;STORE # OF BYTES TO RETURN
  5814	006442'	242 01 0 00 777777 		LSH T1,-1		;COMPUTE NUMBER OF WORDS TO DUMP
  5815	006443'	202 01 0 02 000004 		MOVEM T1,.BTCNT(T2)	;STORE NUMBER OF BYTES TO TRANSFER
  5816	006444'	200 04 0 03 000006 		LOAD T4,LNMSG,(T3)	;GET ADDRESS OF DATA AREA FOR THIS LINE
  5817	006445'	505 04 0 00 441000 		HRLI T4,(POINT 8,)	;FORM BYTE POINTER TO DESTINATION
  5818	006446'	202 04 0 03 000003 		STOR T4,LNPTR,(T3)	;STORE NEW POINTER TO DATA TO RETURN
  5819	006447'	505 04 0 00 442000 		HRLI T4,(POINT 16,)	;FORM POINTER FOR BOOT JSYS
  5820	006450'	202 04 0 02 000005 		MOVEM T4,.BTDPT(T2)	;STORE POINTER TO DESTINATION IN ARG BLOCK
  5821	006451'	201 01 0 00 000003 		MOVEI T1,.BTDMP		;GET BOOT JSYS FUNCTION CODE (DUMP)
  5822	006452'	104 00 0 00 000562 		BOOT			;DUMP THE DATA
  5823	006453'	320 16 0 00 006424*		 ERJMP R		;FAILED, RETURN ERROR
  5824	006454'	254 00 0 00 006425*		RETSKP			;SUCCESS, DONE.
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 139
NCU	MAC	 6-Oct-81 12:41		Routines to Manipulate DTE-20's

  5825					;DTERCV - ROUTINE TO RECEIVE A MOP MESSAGE ACROSS THE DTE20
  5826					;
  5827					;ACCEPTS IN T1/	ADDRESS OF LINE TABLE
  5828					;		CALL DTERCV
  5829					;RETURNS: +1	 FAILED
  5830					;	  +2	SUCCESS, WITH T1/ POINTER TO START OF MOP MESSAGE
  5831					;			      T2/ NUMBER OF BYTES IN MOP MESSAGE
  5832
  5833	006455'	265 16 0 00 006426*	DTERCV:	ASUBR <RDTLIN>
  5834
  5835	006456'	260 17 0 00 010452'		CALL CLRBOT		;GO CLEAR THE BOOT JSYS ARGUMENT BLOCK
  5836	006457'	201 02 0 14 003234 		MOVEI T2,BTARG		;GET ADDRESS OF BOOT JSYS ARGUMENT BLOCK
  5837	006460'	200 04 0 15 000001 		MOVE T4,RDTLIN		;GET ADDRESS OF LINE TABLE
  5838	006461'	554 01 0 04 000004 		LOAD T1,LNDTE,(T4)	;GET DTE20 NUMBER
  5839	006462'	202 01 0 02 000000 		MOVEM T1,.BTDTE(T2)	;STORE NUMBER OF DTE20 TO USE
  5840
  5841					; SYNCHRONIZE WITH THE BOOTSTRAP PROGRAM BY WAITING FOR A TO-20 DOORBELL
  5842
  5843	006463'	201 01 0 00 000007 		MOVEI T1,.BTBEL		;GET "WAIT FOR DOORBELL" FUNCTION
  5844	006464'	201 02 0 14 003234 		MOVEI T2,BTARG		;GET ADDRESS OF BOOT JSYS ARGUMENT BLOCK
  5845	006465'	104 00 0 00 000562 		BOOT			;WAIT TILL BOOTSTRAP STARTS UP
  5846	006466'	320 16 0 00 006453*		 ERJMP R		;FAILED, RETURN ERROR
  5847
  5848					; THE PROGRAM JUST LOADED IS NOW READY TO SEND BACK A MOP MESSAGE
  5849
  5850	006467'	200 01 0 15 000001 		MOVE T1,RDTLIN		;GET ADDRESS OF LINE TABLE
  5851	006470'	260 17 0 00 010445'		CALL CLRMOP		;GO CLEAR THE MOP MESSAGE AREA
  5852	006471'	201 02 0 14 003234 		MOVEI T2,BTARG		;GET ADDRESS OF BOOT JSYS ARGUMENT BLOCK
  5853	006472'	201 01 0 00 002000 		MOVEI T1,RCVMAX		;GET MAX NUMBER OF BYTES WE CAN RECEIVE
  5854	006473'	202 01 0 02 000004 		MOVEM T1,.BTCNT(T2)	;STORE BYTE COUNT
  5855	006474'	200 04 0 15 000001 		MOVE T4,RDTLIN		;GET ADDRESS OF LINE TABLE
  5856	006475'	200 01 0 04 000006 		LOAD T1,LNMSG,(T4)	;GET POINTER TO MESSAGE AREA
  5857	006476'	202 01 0 02 000005 		MOVEM T1,.BTDPT(T2)	;STORE POINTER TO WHERE MESSAGE GOES
  5858	006477'	402 00 0 02 000003 		SETZM .BTFLG(T2)	;CLEAR FLAGS
  5859	006500'	201 01 0 00 000010 		MOVEI T1,.BTRMP		;GET "READ MOP MESSAGE" FUNCTION CODE
  5860	006501'	104 00 0 00 000562 		BOOT			;GET A MOP MESSAGE
  5861	006502'	320 16 0 00 006466*		 ERJMP R		;FAILED, RETURN ERROR
  5862	006503'	200 04 0 15 000001 		MOVE T4,RDTLIN		;GET ADDRESS OF LINE TABLE
  5863	006504'	200 01 0 04 000006 		LOAD T1,LNMSG,(T4)	;GET POINTER TO MESSAGE AREA
  5864	006505'	200 02 0 14 003240 		MOVE T2,.BTCNT+BTARG	;GET NUMBER OF BYTES RECEIVED
  5865	006506'	254 00 0 00 006454*		RETSKP			;DONE, RETURN
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 140
NCU	MAC	 6-Oct-81 12:41		Routines to Manipulate DTE-20's

  5866					;DTEINI - ROUTINE TO ACTIVATE THE ROM ASSOCIATED WITH A DTE20
  5867					;
  5868					;ACCEPTS IN T1/	LINE TABLE ADDRESS
  5869					;		CALL DTEINI
  5870					;RETURNS: +1	 FAILED, COULD NOT ACTIVATE THE ROM
  5871					;	  +2	SUCCESS, ROM ACTIVATED
  5872
  5873	006507'	265 16 0 00 006455*	DTEINI:	ASUBR <DTILIN>
  5874	006510'	260 17 0 00 010452'		CALL CLRBOT		;CLEAR THE BOOT JSYS ARGUMENT BLOCK
  5875	006511'	201 02 0 14 003234 		MOVEI T2,BTARG		;GET ADDRESS OF BOOT JSYS ARG BLOCK
  5876	006512'	200 04 0 15 000001 		MOVE T4,DTILIN		;GET ADDRESS OF LINE TABLE
  5877	006513'	554 04 0 04 000004 		LOAD T4,LNDTE,(T4)	;GET DTE20 NUMBER
  5878	006514'	202 04 0 02 000000 		MOVEM T4,.BTDTE(T2)	;STORE DTE20 NUMBER IN JSYS ARG BLOCK
  5879	006515'	201 01 0 00 000000 		MOVX T1,.BTROM		;GET "INITIALIZE ROM" FUNCTION CODE
  5880	006516'	104 00 0 00 000562 		BOOT			;INITIALIZE THE ROM FOR THIS DTE20
  5881	006517'	320 16 0 00 006502*		 ERJMP R		;RETURN ERROR IF FAILED
  5882	006520'	254 00 0 00 006506*		RETSKP			; ELSE DONE, RETURN SUCCESS.
  5883
  5884
  5885
  5886					;DTEGO - ROUTINE TO INITIATE A PROTOCOL STARTUP ON A GIVEN DTE20
  5887					;
  5888					;ACCEPTS IN T1/	ADDRESS OF LINE TABLE
  5889					;	    T2/	PROTOCOL VERSION TYPE (.VNXXX) TO USE
  5890					;		CALL DTEGO
  5891					;RETURNS: +1	 FAILED, DTE20 ERROR
  5892					;	  +2	SUCCESS, PROTOCOL INITIATED
  5893
  5894	006521'	265 16 0 00 006507*	DTEGO:	ASUBR <DTGLIN,DTGPRO>
  5895
  5896	006522'	260 17 0 00 010452'		CALL CLRBOT		;GO CLEAR THE BOOT JSYS ARGUMENT BLOCK
  5897	006523'	201 02 0 14 003234 		MOVEI T2,BTARG		;GET ADDRESS OF BOOT JSYS ARG BLOCK
  5898	006524'	200 04 0 15 000001 		MOVE T4,DTGLIN		;GET ADDRESS OF LINE TABLE
  5899	006525'	554 01 0 04 000004 		LOAD T1,LNDTE,(T4)	;GET DTE20 NUMBER FOR THIS LINE
  5900	006526'	202 01 0 02 000000 		MOVEM T1,.BTDTE(T2)	;STORE DTE20 NUMBER IN JSYS ARG BLOCK
  5901	006527'	200 01 0 15 000002 		MOVE T1,DTGPRO		;GET PROTOCOL VERSION TYPE
  5902	006530'	202 01 0 02 000001 		MOVEM T1,.BTPRV(T2)	;SAVE PROTOCOL TO USE IN BOOT JSYS ARG BLOCK
  5903	006531'	201 01 0 00 000004 		MOVEI T1,.BTIPR		;GET "INITIATE PROTOCOL" FUNCTION CODE
  5904	006532'	104 00 0 00 000562 		BOOT			;STARTUP THE PROTOCOL
  5905	006533'	320 16 0 00 006517*		 ERJMP R		;FAILED, RETURN ERROR
  5906	006534'	254 00 0 00 006520*		RETSKP			;DONE, RETURN SUCCESS
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 141
NCU	MAC	 6-Oct-81 12:41		I/O Subroutines

  5907					SUBTTL	I/O Subroutines
  5908
  5909					;INPBYT - ROUTINE TO INPUT THE NEXT BYTE FROM A PDP-11 FORMAT FILE
  5910					;
  5911					;ACCEPTS IN T1/	ADDRESS OF RECORD TABLE ENTRY
  5912					;		CALL INPBYT
  5913					;RETURNS: +1	 ERROR OR END OF FILE
  5914					;	  +2	SUCCESS, WITH BYTE IN T2
  5915
  5916	006535'	200 04 0 00 000001 	INPBYT:	MOVE T4,T1		;SAVE RECORD TABLE ENTRY ADDRESS
  5917	006536'	200 03 0 04 000002 		LOAD T3,RBBYT,(T4)	;GET NUMBER OF NEXT BYTE IN WORD
  5918	006537'	305 03 0 00 000004 		CAIGE T3,BPWRD		;ALREADY GOT LAST BYTE IN WORD ?
  5919	006540'	254 00 0 00 006546'		JRST GTBT10		;NO, GO GET NEXT BYTE IN WORD
  5920
  5921					; ALL BYTES IN CURRENT WORD HAVE BEEN READ.  INPUT THE NEXT DATA WORD
  5922
  5923	006541'	402 00 0 04 000002 		SETZRO RBBYT,(T4)	;WRAP AROUND TO FIRST BYTE IN WORD
  5924	006542'	554 01 0 04 000001 		LOAD T1,RBJFN,(T4)	;GET JFN OF CURRENT INPUT FILE
  5925	006543'	104 00 0 00 000050 		BIN			;INPUT THE NEXT WORD
  5926	006544'	320 16 0 00 006533*		 ERJMP R		;FAILED, RETURN ERROR
  5927	006545'	202 02 0 04 000004 		STOR T2,RBDAT,(T4)	;STORE NEXT DATA WORD FROM INPUT FILE
  5928
  5929					; HERE TO ACTUALLY GET THE NEXT BYTE OF DATA
  5930
  5931	006546'	200 01 0 04 000004 	GTBT10:	LOAD T1,RBDAT,(T4)	;GET CURRENT DATA WORD
  5932	006547'	200 03 0 04 000002 		LOAD T3,RBBYT,(T4)	;GET NUMBER OF NEXT BYTE TO LOAD
  5933	006550'	135 02 0 03 006600'		LDB T2,BYTTAB(T3)	;LOAD NEXT BYTE FROM CURRENT WORD
  5934	006551'	350 00 0 04 000002 		INCR RBBYT,(T4)		;POINT TO NEXT BYTE IN WORD
  5935	006552'	254 00 0 00 006534*		RETSKP			;RETURN WITH BYTE IN T2
  5936
  5937
  5938					; INPWRD -- INPUT A 16-BIT WORD AS TWO 8-BIT BYTES
  5939					;
  5940					; ACCEPTS IN T1/ ADDRESS OF RECORD BLOCK FOR THIS OPERATION
  5941					;
  5942					; RETURNS:
  5943					;	+1:	I/O ERROR OR END-OF-FILE
  5944					;	+2:	SUCCESS,
  5945					;			T1/	SUM OF BYTES
  5946					;			T2/	16-BIT WORD, RIGHT-JUSTIFIED
  5947					;
  5948	006553'				INPWRD:
  5949	006553'	261 17 0 00 000001 		PUSH P,T1		;SAVE RECORD BLOCK ADDRESS
  5950	006554'	260 17 0 00 006535'		CALL INPBYT		;READ FIRST (LOW) BYTE
  5951	006555'	263 17 0 00 000000 		 RET			;ERROR-- RETURN +1 FROM INPWRD
  5952	006556'	262 17 0 00 000001 		POP P,T1		;RESTORE RECORD BLOCK ADDRESS
  5953	006557'	261 17 0 00 000002 		PUSH P,T2		;SAVE LOW BYTE
  5954	006560'	260 17 0 00 006535'		CALL INPBYT		;READ SECOND (HIGH) BYTE
  5955	006561'	263 17 0 00 000000 		 RET			;ERROR-- RETURN +1 FROM INPWRD
  5956	006562'	262 17 0 00 000003 		POP P,T3		;RESTORE LOW BYTE
  5957	006563'	200 01 0 00 000003 		MOVE T1,T3		;COPY IT FOR SUM
  5958	006564'	270 01 0 00 000002 		ADD T1,T2		;COMPUTE SUM OF BYTES TO T1
  5959	006565'	242 02 0 00 000010 		LSH T2,^D8		;SHIFT HIGH BYTE TO BITS 15-8
  5960	006566'	434 02 0 00 000003 		IOR T2,T3		;MUSH TOGETHER WITH LOW BYTE INTO WORD IN T2
  5961	006567'	254 00 0 00 006552*		RETSKP			;RETURN +2 FROM INPWRD, SUM IN T1, WORD IN T2
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 142
NCU	MAC	 6-Oct-81 12:41		I/O Subroutines

  5962					;WRTDMP - ROUTINE TO OUTPUT A DUMP RECORD TO THE DUMP FILE
  5963					;
  5964					;ACCEPTS IN T1/	POINTER TO DATA TO BE OUTPUT
  5965					;	    T2/	NUMBER OF BYTES TO OUTPUT
  5966					;	    T3/	ADDRESS OF RECORD TABLE ENTRY
  5967					;		CALL WRTDMP
  5968					;RETURNS: +1	 FAILED, FILE DATA OR OTHER ERROR
  5969					;	  +2	SUCCESS, DATA OUTPUT TO FILE
  5970
  5971	006570'	265 16 0 00 006521*	WRTDMP:	ASUBR <WTDPTR,WTDCNT,WTDREC>
  5972
  5973	006571'	377 00 0 15 000002 	WDMP10:	SOSG WTDCNT		;DECREMENT # OF BYTES LEFT TO WRITE
  5974	006572'	254 00 0 00 006567*		RETSKP			;DONE, ALL BYTES OUTPUT
  5975	006573'	200 01 0 15 000003 		MOVE T1,WTDREC		;GET RECORD TABLE ENTRY ADDRESS
  5976	006574'	134 02 0 15 000001 		ILDB T2,WTDPTR		;GET NEXT BYTE TO OUTPUT
  5977	006575'	260 17 0 00 006604'		CALL WRTBYT		;GO OUTPUT THE BYTE
  5978	006576'	263 17 0 00 000000 		 RET			;FAILED, RETURN ERROR
  5979	006577'	254 00 0 00 006571'		JRST WDMP10		;LOOP OVER ALL BYTES TO OUTPUT
  5980
  5981
  5982
  5983					; TABLE OF BYTE POINTERS TO GET THE "NEXT" BYTE IN PDP-11 FORMAT
  5984
  5985	006600'	22 10 0 00 000001 	BYTTAB:	POINT 8,T1,17
  5986	006601'	32 10 0 00 000001 		POINT 8,T1,9
  5987	006602'	00 10 0 00 000001 		POINT 8,T1,35
  5988	006603'	10 10 0 00 000001 		POINT 8,T1,27
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 143
NCU	MAC	 6-Oct-81 12:41		I/O Subroutines

  5989					;WRTBYT - ROUTINE TO WRITE A BYTE INTO A PDP-11 FORMAT FILE
  5990					;
  5991					;ACCEPTS IN T1/	ADDRESS OF RECORD TABLE ENTRY
  5992					;	    T2/	BYTE TO BE OUTPUT
  5993					;		CALL WRTBYT
  5994					;RETURNS: +1	 FAILED, OUTPUT ERROR
  5995					;	  +2	SUCCESS, BYTE HAS BEEN OUTPUT
  5996
  5997	006604'	265 16 0 00 006570*	WRTBYT:	ASUBR <WTDREC,WTDBYT>
  5998
  5999					; DETERMINE IF AN ENTIRE WORD HAS BEEN FILLED - IF SO, OUTPUT THE WORD
  6000
  6001	006605'	200 04 0 15 000001 		MOVE T4,WTDREC		;GET ADDRESS OF RECORD TABLE ENTRY
  6002	006606'	200 03 0 04 000002 		LOAD T3,RBBYT,(T4)	;GET NUMBER OF NEXT BYTE TO DEPOSIT
  6003	006607'	305 03 0 00 000004 		CAIGE T3,BPWRD		;THIS WORD ENTIRELY FILLED YET ?
  6004	006610'	254 00 0 00 006616'		JRST WTDT10		;NO, GO DEPOSIT THE BYTE
  6005
  6006					; THE CURRENT WORD HAS NO MORE ROOM AND MUST BE WRITTEN INTO THE FILE
  6007
  6008	006611'	554 01 0 04 000001 		LOAD T1,RBJFN,(T4)	;GET JFN OF OUTPUT FILE
  6009	006612'	200 02 0 04 000004 		LOAD T2,RBDAT,(T4)	;GET WORD TO BE WRITTEN
  6010	006613'	104 00 0 00 000051 		BOUT			;OUTPUT THE WORD
  6011	006614'	320 16 0 00 006544*		 ERJMP R		;FAILED, RETURN ERROR
  6012	006615'	402 00 0 04 000002 		SETZRO RBBYT,(T4)	;RESET THE BYTE COUNTER
  6013
  6014					; HERE TO DEPOSIT THE BYTE INTO THE CURRENT DATA WORD
  6015
  6016	006616'	200 04 0 15 000001 	WTDT10:	MOVE T4,WTDREC		;GET ADDRESS OF RECORD TABLE ENTRY
  6017	006617'	200 03 0 04 000002 		LOAD T3,RBBYT,(T4)	;GET NUMBER OF NEXT BYTE TO DEPOSIT
  6018	006620'	200 01 0 04 000004 		LOAD T1,RBDAT,(T4)	;GET THE CURRENT DATA WORD
  6019	006621'	200 02 0 15 000002 		MOVE T2,WTDBYT		;GET THE DATA BYTE TO DEPOSIT
  6020	006622'	137 02 0 03 006600'		DPB T2,BYTTAB(T3)	;STORE THE BYTE INTO PROPER PLACE IN THE WORD
  6021	006623'	202 01 0 04 000004 		STOR T1,RBDAT,(T4)	;REPLACE CURRENT DATA WORD
  6022	006624'	350 00 0 04 000002 		INCR RBBYT,(T4)		;INCREMENT NUMBER OF NEXT BYTE TO DEPOSIT
  6023	006625'	254 00 0 00 006572*		RETSKP			;RETURN SUCCESS, DONE.
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 144
NCU	MAC	 6-Oct-81 12:41		I/O Subroutines

  6024
  6025					;OPNIFL - ROUTINE TO OPEN A FILE FOR INPUT
  6026					;
  6027					;ACCEPTS IN T1/	POINTER TO ASCIZ FILESPEC
  6028					;		CALL OPNIFL
  6029					;RETURNS: +1	 FAILED, GTJFN OR OPENF FAILURE
  6030					;	  +2	SUCCESS, WITH T1/ JFN OF INPUT FILE
  6031					;			T2/ FILE FORMAT TYPE (.FTXXX)
  6032
  6033	006626'	265 16 0 00 006275*	OPNIFL:	STKVAR <<OPITYP,8>,OPIJFN>
  6034	006627'	000011	000011
  6035	006630'	200 02 0 00 000001 		MOVE T2,T1		;COPY POINTER TO FILESPEC
  6036	006631'	205 01 0 00 100001 		MOVX T1,GJ%OLD!GJ%SHT	;EXISTING FILE, SHORT CALL
  6037	006632'	104 00 0 00 000020 		GTJFN			;GET A JFN FOR INPUT FILE
  6038	006633'	263 17 0 00 000000 		 RET			;FAILED, RETURN
  6039	006634'	200 02 0 00 014156'		MOVE T2,[440000,,OF%RD]	;36-BIT BYTES, READ ACCESS ONLY
  6040	006635'	104 00 0 00 000021 		OPENF			;OPEN THE FILE
  6041						 JRST [	RLJFN		;FAILED, RELEASE THE JFN
  6042							 JFCL		;IGNORE ERRORS HERE
  6043	006636'	254 00 0 00 014157'			RET ]		;RETURN ERROR
  6044
  6045					; FIND THE FILE FORMAT TYPE FROM THE FILE TYPE
  6046
  6047	006637'	202 01 0 17 777766 		MOVEM T1,OPIJFN		;SAVE JFN
  6048	006640'	550 02 0 00 000001 		HRRZ T2,T1		;COPY THE JFN FOR JFNS
  6049	006641'	561 01 0 17 777767 		HRROI T1,OPITYP		;POINT STRING POINTER TO SCRATCH
  6050	006642'	205 03 0 00 000100 		MOVX T3,<FLD(.JSAOF,JS%TYP)> ;GET ONLY FILE TYPE
  6051	006643'	104 00 0 00 000030 		JFNS
  6052	006644'	320 16 0 00 006614*		 ERJMP R		;FAILED, RETURN ERROR
  6053	006645'	201 01 0 00 006657'		MOVEI T1,FTYTAB		;POINT TO FILE TYPE TABLE
  6054	006646'	561 02 0 17 777767 		HRROI T2,OPITYP		;POINT TO SCRATCH STRING
  6055	006647'	104 00 0 00 000537 		TBLUK			;FIND FILE TYPE
  6056	006650'	320 16 0 00 006644*		 ERJMP R		;FAILED, RETURN ERROR
  6057	006651'	200 03 0 00 000002 		MOVE T3,T2		;COPY FLAGS
  6058	006652'	550 02 0 01 000000 		HRRZ T2,(T1)		;GET TABLE ENTRY, FILE TYPE FORMAT
  6059	006653'	607 03 0 00 040000 		TXNN T3,TL%EXM		;EXACT MATCH?
  6060	006654'	263 17 0 00 000000 		RET			;FAIL IF UNKNOWN FILE TYPE
  6061	006655'	200 01 0 17 777766 		MOVE T1,OPIJFN		;RESTORE JFN
  6062	006656'	254 00 0 00 006625*		RETSKP			;SUCCESS, RETURN WITH T1/ JFN, T2/ FILE FORMAT TYPE
  6063
  6064					; FILE FORMAT TYPE TABLE FOR OPNIFL (TBLUK FORMAT)
  6065
  6066	006657'				FTYTAB:
  6067	006657'	000005	000005			XWD FTYTBZ,FTYTBZ
  6068	006660'	014162'	000001			TB (.FTLDA,BIN)
  6069	006661'	014163'	000003			TB (.FTDMP,DMP)
  6070	006662'	014164'	000001			TB (.FTLDA,LDA)
  6071	006663'	014165'	000002			TB (.FTTSK,SYS)
  6072	006664'	014166'	000002			TB (.FTTSK,TSK)
  6073			000005		FTYTBZ==.-FTYTAB-1
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 145
NCU	MAC	 6-Oct-81 12:41		I/O Subroutines

  6074					;OPNOFL - ROUTINE TO OPEN A FILE FOR OUTPUT
  6075					;
  6076					;ACCEPTS IN T1/	POINTER TO ASCIZ FILESPEC
  6077					;		CALL OPNOFL
  6078					;RETURNS: +1	 FAILED, GTJFN OR OPENF FAILURE
  6079					;	  +2	SUCCESS, WITH T1/ JFN OF OUTPUT FILE
  6080
  6081	006665'	200 02 0 00 000001 	OPNOFL:	MOVE T2,T1		;COPY POINTER TO FILESPEC
  6082	006666'	205 01 0 00 400001 		MOVX T1,GJ%FOU!GJ%SHT	;FILE FOR OUTPUT USE, SHORT CALL
  6083	006667'	104 00 0 00 000020 		GTJFN			;GET A JFN FOR OUTPUT FILE
  6084	006670'	263 17 0 00 000000 		 RET			;FAILED, RETURN
  6085	006671'	200 02 0 00 014167'		MOVE T2,[440000,,OF%WR]	;36-BIT BYTES, WRITE ACCESS ONLY
  6086	006672'	104 00 0 00 000021 		OPENF			;OPEN THE FILE
  6087						 JRST [	RLJFN		;FAILED, RELEASE THE JFN
  6088							 JFCL		;IGNORE ERRORS HERE
  6089	006673'	254 00 0 00 014157'			RET ]		;RETURN ERROR
  6090	006674'	254 00 0 00 006656*		RETSKP			;SUCCESS, RETURN WITH T1/ JFN
  6091
  6092
  6093
  6094					;CLSOFL - ROUTINE TO CLOSE AN OUTPUT FILE.  ANY DATA REMAINING IN THE
  6095					;	  RECORD TABLE ENTRY MUST BE WRITTEN INTO THE FILE BEFORE THE
  6096					;	  FILE IS ACUTALLY CLOSED.
  6097					;
  6098					;ACCEPTS IN T1/	ADDRESS OF RECORD BLOCK
  6099					;		CALL CLSOFL
  6100					;RETURNS: +1	 FAILED, COULD NOT CLOSE FILE
  6101					;	  +2	SUCCESS, ALL DATA OUTPUT AND FILE CLOSED
  6102
  6103	006675'	200 04 0 00 000001 	CLSOFL:	MOVE T4,T1		;COPY ADDRESS OF RECORD TABLE ENTRY
  6104	006676'	554 01 0 04 000001 		LOAD T1,RBJFN,(T4)	;GET JFN OF OUTPUT FILE
  6105	006677'	200 02 0 04 000004 		LOAD T2,RBDAT,(T4)	;GET CURRENT DATA WORD
  6106	006700'	336 00 0 04 000002 		JE RBBYT,(T4),CLOF10	;IF NO BYTES IN THIS WORD, SKIP OUTPUT
  6107	006701'	254 00 0 00 006704'
  6108	006702'	104 00 0 00 000051 		BOUT			;OUTPUT THE REMAINING BYTES
  6109	006703'	320 16 0 00 006704'		 ERJMP CLOF10		;TRY TO CLOSE FILE ANYWAY ON ERROR
  6110	006704'	104 00 0 00 000022 	CLOF10:	CLOSF			;CLOSE THE FILE
  6111	006705'	320 16 0 00 006650*		 ERJMP R		;RETURN FAILURE IF COULD NOT CLOSE FILE
  6112	006706'	254 00 0 00 006674*		RETSKP			;DONE, RETURN SUCCESS
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 146
NCU	MAC	 6-Oct-81 12:41		I/O Subroutines

  6113
  6114					;INPLDA - ROUTINE TO INPUT ONE BLOCK FROM A PDP-11 FORMAT .LDA FILE
  6115					;
  6116					;ACCEPTS IN T1/	ADDRESS OF RECORD BLOCK
  6117					;		CALL INPLDA
  6118					;RETURNS: +1	 FAILED, BAD FILE FORMAT, PREMATURE EOF, OR BAD CHECKSUM
  6119					;	  +2	SUCCESS, WITH DATA INPUT INTO RECORD BLOCK
  6120
  6121	006707'	265 16 0 00 006604*	INPLDA:	ASUBR <IBKREC,IBKSUM,IBKCTR,IBKCNT>
  6122	006710'	265 16 0 00 006626*		STKVAR <IBKPTR>
  6123	006711'	000001	000001
  6124	006712'	402 00 0 15 000002 		SETZM IBKSUM		;INITIALIZE THE CHECKSUM
  6125
  6126					; SKIP OVER INITIAL ZERO BYTES
  6127
  6128	006713'	200 01 0 15 000001 	IBLK10:	MOVE T1,IBKREC		;GET ADDRESS OF RECORD TABLE ENTRY
  6129	006714'	260 17 0 00 006535'		CALL INPBYT		;GO GET A BYTE FROM THE INPUT FILE
  6130	006715'	263 17 0 00 000000 		 RET			;FAILED, RETURN
  6131	006716'	322 02 0 00 006713'		JUMPE T2,IBLK10		;SKIP OVER ZERO BYTES
  6132
  6133					; THE NEXT TWO BYTES SHOULD BE A 1-BYTE FOLLOWED BY A 0-BYTE
  6134
  6135	006717'	272 02 0 15 000002 		ADDM T2,IBKSUM		;ADD BYTE JUST INPUT TO CHECKSUM
  6136	006720'	302 02 0 00 000001 		CAIE T2,1		;NEXT BYTE A 1-BYTE ?
  6137	006721'	263 17 0 00 000000 		RET			;NO, BAD FILE FORMAT
  6138	006722'	200 01 0 15 000001 		MOVE T1,IBKREC		;YES, GET ADDRESS OF RECORD TABLE ENTRY
  6139	006723'	260 17 0 00 006535'		CALL INPBYT		;GO GET THE NEXT BYTE FROM THE INPUT FILE
  6140	006724'	263 17 0 00 000000 		 RET			;FAILED, RETURN
  6141	006725'	272 02 0 15 000002 		ADDM T2,IBKSUM		;ADD BYTE JUST INPUT TO CHECKSUM
  6142	006726'	302 02 0 00 000000 		CAIE T2,0		;JUST READ A 0-BYTE ?
  6143	006727'	263 17 0 00 000000 		RET			;NO, BAD FILE FORMAT
  6144
  6145					; INPUT THE BYTE COUNT (2 BYTES)
  6146
  6147	006730'	200 01 0 15 000001 		MOVE T1,IBKREC		;GET ADDRESS OF RECORD TABLE ENTRY
  6148	006731'	260 17 0 00 006553'		CALL INPWRD		;GET NEXT WORD FROM FILE
  6149	006732'	263 17 0 00 000000 		 RET			;FAILED, RETURN
  6150	006733'	272 01 0 15 000002 		ADDM T1,IBKSUM		;UPDATE THE CHECKSUM
  6151	006734'	202 02 0 15 000004 		MOVEM T2,IBKCNT		;SAVE BYTE COUNT
  6152						; ..
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 147
NCU	MAC	 6-Oct-81 12:41		I/O Subroutines

  6153						; ..
  6154
  6155					; READ THE LOAD OR TRANSFER ADDRESS (2 BYTES)
  6156
  6157	006735'	200 01 0 15 000001 		MOVE T1,IBKREC		;GET ADDRESS OF RECORD TABLE ENTRY
  6158	006736'	260 17 0 00 006553'		CALL INPWRD		;GO GET A WORD FROM THE INPUT FILE
  6159	006737'	263 17 0 00 000000 		 RET			;FAILED, RETURN ERROR
  6160	006740'	272 01 0 15 000002 		ADDM T1,IBKSUM		;ADD THIS WORD TO THE CHECKSUM
  6161	006741'	200 04 0 15 000001 		MOVE T4,IBKREC		;GET ADDRESS OF RECORD TABLE ENTRY
  6162	006742'	202 02 0 04 000006 		STOR T2,RBNAD,(T4)	;STORE LOAD ADR IN RECORD TABLE ENTRY
  6163	006743'	202 02 0 04 000010 		STOR T2,RBXAD,(T4)	;STORE TRANSFER ADR IN RECORD TABLE ENTRY
  6164
  6165					; SET UP TO READ THE DATA BYTES FROM THE BLOCK
  6166
  6167	006744'	200 01 0 15 000004 		MOVE T1,IBKCNT		;GET BYTE COUNT
  6168	006745'	275 01 0 00 000006 		SUBI T1,BINHDR		;ALLOW FOR BYTES IN HEADER
  6169	006746'	202 01 0 15 000003 		MOVEM T1,IBKCTR		;SAVE NUMBER OF DATA BYTES TO READ
  6170	006747'	200 04 0 15 000001 		MOVE T4,IBKREC		;GET ADDRESS OF RECORD TABLE ENTRY
  6171	006750'	542 01 0 04 000005 		STOR T1,RBCNT,(T4)	;SAVE NUMBER OF DATA BYTES IN RECORD TABLE ENTRY
  6172	006751'	200 01 0 04 000003 		LOAD T1,RBPTR,(T4)	;GET POINTER TO DESTINATION FOR DATA
  6173	006752'	202 01 0 17 777776 		MOVEM T1,IBKPTR		;SAVE POINTER TO DESTINATION OF NEXT DATA BYTE
  6174
  6175					; READ THE DATA BYTES FROM THE BLOCK
  6176
  6177	006753'	375 00 0 15 000003 	IBLK20:	SOSGE IBKCTR		;ANOTHER BYTE TO READ ?
  6178	006754'	254 00 0 00 006763'		JRST IBLK30		;NO, GO READ AND VERIFY BLOCK CHECKSUM
  6179	006755'	200 01 0 15 000001 		MOVE T1,IBKREC		;GET ADDRESS OF RECORD TABLE ENTRY
  6180	006756'	260 17 0 00 006535'		CALL INPBYT		;GET A BYTE FROM THE FILE
  6181	006757'	263 17 0 00 000000 		 RET			;FAILED, RETURN ERROR
  6182	006760'	272 02 0 15 000002 		ADDM T2,IBKSUM		;UPDATE THE CHECKSUM
  6183	006761'	136 02 0 17 777776 		IDPB T2,IBKPTR		;STORE THE BYTE IN THE RECORD BLOCK
  6184	006762'	254 00 0 00 006753'		JRST IBLK20		;GO GET THE NEXT BYTE FROM THE FILE
  6185
  6186					; HERE TO READ AND VERIFY THE CHECKSUM AFTER READING THE DATA BYTES
  6187
  6188	006763'	200 01 0 15 000001 	IBLK30:	MOVE T1,IBKREC		;GET ADDRESS OF RECORD TABLE ENTRY
  6189	006764'	260 17 0 00 006535'		CALL INPBYT		;GO GET A BYTE FROM THE FILE
  6190	006765'	263 17 0 00 000000 		 RET			;FAILED, RETURN ERROR
  6191	006766'	210 01 0 15 000002 		MOVN T1,IBKSUM		;GET -CHECKSUM
  6192	006767'	135 01 0 00 014170'		LDB T1,[POINT 8,T1,35]	;GET JUST THE LOW ORDER BYTE OF CHECKSUM
  6193	006770'	312 01 0 00 000002 		CAME T1,T2		;CHECKSUM VERIFY CORRECLTY ?
  6194	006771'	263 17 0 00 000000 		RET			;NO, RETURN FAILURE
  6195
  6196					; HERE WHEN DONE - RETURN TO CALLER
  6197
  6198	006772'	254 00 0 00 006706*		RETSKP			;RETURN SUCCESS
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 148
NCU	MAC	 6-Oct-81 12:41		I/O Subroutines

  6199					; INPTSK/INPDMP - INPUT A BLOCK FROM A TASK-IMAGE OR DUMP FORMAT FILE
  6200					;
  6201					; ACCEPTS IN:
  6202					;	T1/	RECORD BLOCK ADDRESS
  6203					;
  6204					; RETURNS:
  6205					;	+1:	FAILED, I/O ERROR, INVALID FORMAT OR PREMATURE EOF
  6206					;	+2:	SUCCESS, DATA LOADED INTO RECORD BLOCK
  6207					;
  6208	006773'				INPDMP:
  6209	006773'				INPTSK:
  6210	006773'	265 16 0 00 000000*		TRVAR <ITSREC,ITSCNT,ITSPTR>
  6211	006774'	000003	000003
  6212	006775'	202 01 0 15 000001 		MOVEM T1,ITSREC		;SAVE ADDRESS OF RECORD BLOCK
  6213					;
  6214					; SEE IF WE HAVE READ LABEL BLOCKS ALREADY
  6215					; SET NEW ADDRESS FOR THIS BLOCK
  6216					;
  6217	006776'	200 02 0 01 000007 		LOAD T2,RBCAD,(T1)	;GET CURRENT ADDRESS
  6218	006777'	202 02 0 01 000006 		STOR T2,RBNAD,(T1)	;SET CURRENT ADDRESS AS NEXT ADDRESS
  6219	007000'	312 02 0 00 014136'		CAME T2,[EXP -1]	;HAS ADDRESS
  6220	007001'	301 02 0 00 777777 		CAIL T2,777777		; BEEN SET YET?
  6221	007002'	334 00 0 00 000000 		 SKIPA			;NO-- READ LABEL BLOCKS
  6222	007003'	254 00 0 00 007006'		JRST ITSCBC		;YES-- JUST MOVE DATA FROM FILE
  6223					;
  6224					; SET UP BYTE COUNTS, READING LABEL BLOCKS IF NEEDED
  6225
  6226	007004'	260 17 0 00 007027'		CALL INPCNT		;GO SET UP COUNTS
  6227	007005'	263 17 0 00 000000 		 RET			;FAILED
  6228					;
  6229					; COMPUTE BYTE COUNT FOR THIS RECORD
  6230					;
  6231	007006'	554 02 0 01 000005 	ITSCBC:	LOAD T2,RBFCT,(T1)	;GET REMAINING BYTE COUNT IN FILE
  6232	007007'	200 03 0 00 000002 		MOVE T3,T2		;COPY BYTE COUNT
  6233	007010'	303 02 0 00 000377 		CAILE T2,MAXMEM		;MORE THAN MAX ALLOWED IN MEMORY MESSAGES?
  6234	007011'	201 02 0 00 000377 		 MOVX T2,MAXMEM		;YES-- USE MAXIMUM
  6235	007012'	274 03 0 00 000002 		SUB T3,T2		;COMPUTE REMAINING BYTE COUNT
  6236	007013'	506 03 0 01 000005 		STOR T3,RBFCT,(T1)	;STORE UPDATED COUNT
  6237	007014'	202 02 0 15 000002 		MOVEM T2,ITSCNT		;REMEMBER THE COUNT
  6238	007015'	542 02 0 01 000005 		STOR T2,RBCNT,(T1)	; ALSO FOR EVERYBODY ELSE
  6239					;
  6240					; READ BYTES INTO RECORD
  6241					;
  6242	007016'	200 02 0 01 000003 		LOAD T2,RBPTR,(T1)	;GET POINTER TO DATA REGION
  6243	007017'	202 02 0 15 000003 		MOVEM T2,ITSPTR		;SAVE THAT
  6244					;
  6245					; LOOP THROUGH THE BYTES . . .
  6246					;
  6247	007020'	375 00 0 15 000002 	ITSBLP:	SOSGE ITSCNT		;COUNT DOWN, WE DONE?
  6248	007021'	254 00 0 00 006772*		 RETSKP			;YES-- RETURN +2 FROM INPTSK
  6249	007022'	200 01 0 15 000001 		MOVE T1,ITSREC		;GET RECORD BLOCK ADDRESS
  6250	007023'	260 17 0 00 006535'		CALL INPBYT		;GET NEXT FILE BYTE
  6251	007024'	263 17 0 00 000000 		 RET			;ERROR OR EOF-- RETURN NOW
  6252	007025'	136 02 0 15 000003 		IDPB T2,ITSPTR		;STORE BYTE
  6253	007026'	254 00 0 00 007020'		JRST ITSBLP		;LOOP FOR ALL BYTES
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 149
NCU	MAC	 6-Oct-81 12:41		I/O Subroutines

  6254					; INPCNT - SET UP COUNTS AND READ LABEL BLOCKS IF NEEDED
  6255					;
  6256					; ACCEPTS IN:
  6257					;	ITSREC/ ADDRESS OF RECORD BLOCK
  6258					;
  6259					; RETURNS:
  6260					;	+1	ERROR
  6261					;	+2	SUCCESS, WITH RBFCT, RBSAD, RBNAD SET UP
  6262					;
  6263	007027'	200 01 0 15 000001 	INPCNT:	MOVE T1,ITSREC		;GET ADDRESS OF RECORD BLOCK
  6264	007030'	550 02 0 01 000001 		LOAD T2,RBTYP,(T1)	;GET FILE TYPE (.FTXXX)
  6265	007031'	301 02 0 00 000000 		CAIL T2,0		;RANGE CHECK THE FILE
  6266	007032'	301 02 0 00 000004 		CAIL T2,FTYPLN		; TYPE CODE
  6267	007033'	263 17 0 00 000000 		RET			;FAIL, INVALID FILE TYPE
  6268	007034'	254 00 1 02 007035'		CALLRET @FLTYPE(T2)	;DISPATCH TO ROUTINE TO SET UP COUNTS
  6269
  6270	007035'	263 17 0 00 000000 	FLTYPE:	RET			; 0 IS ILLEGAL
  6271	007036'	263 17 0 00 000000 		RET			; .FTLDA - SHOULD NOT BE HERE FOR LDA FILES
  6272	007037'	000000	007041'			INPTCT			; .FTTSK - TASK-IMAGE FILE TYPE
  6273	007040'	000000	007110'			INPDCT			; .FTDMP - DUMP FORMAT FILE TYPE
  6274			000004		FTYPLN==.-FLTYPE		;SIZE OF TYPE DISPATCH TABLE
  6275
  6276
  6277					; INPTCT - INPUT COUNTS FOR A TASK-IMAGE FILE TYPE
  6278					;
  6279					; ACCEPTS:
  6280					;	ITSREC/ ADDRESS OF RECORD BLOCK
  6281					;
  6282					; RETURNS:
  6283					;	+1	FAILED
  6284					;	+2	SUCCESS, WITH COUNTS SET UP IN RECORD BLOCK
  6285
  6286	007041'				INPTCT:
  6287					;
  6288					; READ LABEL BLOCKS
  6289					;
  6290					; SETS UP RBFCT, RBXAD, AND RBNAD
  6291					;
  6292	007041'	201 02 0 00 000010 		MOVEI T2,L$BSA-0	;SKIP TO L$BSA
  6293	007042'	260 17 0 00 007131'		CALL ITSSKP		; . .
  6294	007043'	263 17 0 00 000000 		 RET			;ERROR OR END-OF-FILE
  6295					;
  6296	007044'	260 17 0 00 006553'		CALL INPWRD		;GET BASE ADDRESS: L$BSA
  6297	007045'	263 17 0 00 000000 		 RET			;ERROR/EOF
  6298	007046'	200 01 0 15 000001 		MOVE T1,ITSREC		;POINT TO RECORD BLOCK
  6299	007047'	202 02 0 01 000006 		STOR T2,RBNAD,(T1)	;STORE BASE ADDRESS
  6300					;
  6301	007050'	201 02 0 00 000004 		MOVEI T2,L$BLDZ-<L$BSA+2> ;SKIP TO L$BLDZ
  6302	007051'	260 17 0 00 007131'		CALL ITSSKP		; . .
  6303	007052'	263 17 0 00 000000 		 RET			;ERROR/EOF
  6304					;
  6305	007053'	260 17 0 00 006553'		CALL INPWRD		;GET LOAD SIZE / 64.: L$BLSZ
  6306	007054'	263 17 0 00 000000 		 RET			;ERROR/EOF
  6307	007055'	242 02 0 00 000006 		LSH T2,^D6		;CONVERT LOAD SIZE TO BYTES
  6308	007056'	200 01 0 15 000001 		MOVE T1,ITSREC		;POINT TO RECORD BLOCK
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 149-1
NCU	MAC	 6-Oct-81 12:41		I/O Subroutines

  6309	007057'	506 02 0 01 000005 		STOR T2,RBFCT,(T1)	;STORE LOAD SIZE AS BYTES LEFT IN FILE
  6310					;
  6311	007060'	201 02 0 00 000010 		MOVEI T2,L$BFLG-<L$BLDZ+2> ;SKIP TO L$BFLG
  6312	007061'	260 17 0 00 007131'		CALL ITSSKP		; . .
  6313	007062'	263 17 0 00 000000 		 RET			;ERROR/EOF
  6314					;
  6315	007063'	260 17 0 00 006553'		CALL INPWRD		;GET FLAGS WORD: L$BFLG
  6316	007064'	263 17 0 00 000000 		 RET			;ERROR/EOF
  6317	007065'	606 02 0 00 040000 		TXNN T2,TS$NHD		;TASK FILE HAVE NO HEADER: TS$NHD= 1?
  6318	007066'	263 17 0 00 000000 		 RET			;NO-- NOT SYSTEM IMAGE
  6319					;
  6320	007067'	201 02 0 00 000316 		MOVEI T2,L$BXFR-<L$BFLG+2> ;SKIP TO L$BXFR
  6321	007070'	260 17 0 00 007131'		CALL ITSSKP		; . .
  6322	007071'	263 17 0 00 000000 		 RET			;ERROR/EOF
  6323					;
  6324	007072'	260 17 0 00 006553'		CALL INPWRD		;GET TRANSFER ADDRESS: L$BXFR
  6325	007073'	263 17 0 00 000000 		 RET			;ERROR/EOF
  6326	007074'	200 01 0 15 000001 		MOVE T1,ITSREC		;POINT TO RECORD BLOCK
  6327	007075'	202 02 0 01 000010 		STOR T2,RBXAD,(T1)	;STORE TRANSFER ADDRESS
  6328					;
  6329	007076'	201 02 0 00 000004 		MOVEI T2,L$BHRB-<L$BXFR+2> ;SKIP TO L$BHRB
  6330	007077'	260 17 0 00 007131'		CALL ITSSKP		; . .
  6331	007100'	263 17 0 00 000000 		 RET			;ERROR/EOF
  6332					;
  6333	007101'	260 17 0 00 006553'		CALL INPWRD		;GET RELATIVE BLOCK OF IMAGE: L$BHRB
  6334	007102'	263 17 0 00 000000 		 RET			;ERROR/EOF
  6335	007103'	242 02 0 00 000011 		LSH T2,^D9		;CONVERT TO BYTES (512. BYTES/BLOCK)
  6336	007104'	275 02 0 00 000360 		SUBI T2,L$BHRB+2	;MINUS BYTES ALREADY READ
  6337	007105'	260 17 0 00 007131'		CALL ITSSKP		;SKIP REMAINING LABEL BLOCKS
  6338	007106'	263 17 0 00 000000 		 RET			;ERROR/EOF
  6339	007107'	254 00 0 00 007021*		RETSKP			;DONE, RETURN SUCCESS
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 150
NCU	MAC	 6-Oct-81 12:41		I/O Subroutines

  6340					; INPDCT - ROUTINE TO SET UP THE COUNT FOR A DUMP FORMAT FILE
  6341					;
  6342					; ACCEPTS:
  6343					;	ITSREC/ ADDRESS OF RECORD BLOCK
  6344					;
  6345					; RETURNS:
  6346					;	+1	FAILED
  6347					;	+2	SUCCESS, WITH COUNTS SET UP
  6348
  6349	007110'	200 01 0 15 000001 	INPDCT:	MOVE T1,ITSREC		;GET ADDRESS OF RECORD BLOCK
  6350	007111'	402 00 0 01 000006 		SETZRO <RBNAD,RBXAD>,(T1) ;INITIALIZE COUNTS
  6351	007112'	402 00 0 01 000010 
  6352	007113'	554 01 0 01 000001 		LOAD T1,RBJFN,(T1)	;GET JFN OF INPUT FILE
  6353	007114'	200 02 0 00 014171'		MOVX T2,<2,,.FBBYV>	;TWO WORDS, BYTE SIZE WORD & FILE SIZE
  6354	007115'	201 03 0 00 000002 		MOVX T3,T2		;PUT RESULTS INTO T2 AND T3
  6355	007116'	104 00 0 00 000063 		GTFDB			;GET FILE DATA
  6356	007117'	320 16 0 00 006705*		 ERJMP R		;FAILED
  6357	007120'	135 02 0 00 014172'		LOAD T2,FB%BSZ,T2	;GET FILE BYTE SIZE
  6358	007121'	201 01 0 00 000044 		MOVX T1,^D36		;GET # OF BITS PER WORD
  6359	007122'	230 01 0 00 000002 		IDIV T1,T2		;COMPUTE NUMBER OF BYTES PER WORD IN FILE
  6360	007123'	271 03 0 01 777777 		ADDI T3,-1(T1)		;FILE SIZE + BYTES/WORD -1
  6361	007124'	230 03 0 00 000001 		IDIV T3,T1		;ROUND FILES SIZE
  6362	007125'	221 03 0 00 000004 		IMULI T3,BPWRD		;COMPUTE NUMBER OF KL20 WORDS
  6363	007126'	200 01 0 15 000001 		MOVE T1,ITSREC		;GET ADDRESS OF RECORD BLOCK
  6364	007127'	506 03 0 01 000005 		STOR T3,RBFCT,(T1)	;STORE COUNT
  6365	007130'	254 00 0 00 007107*		RETSKP			;DONE, RETURN
  6366
  6367
  6368
  6369					; ITSSKP -- SKIP SOME BYTES IN T2
  6370					;
  6371					; ACCEPTS IN:
  6372					;	T2/	COUNT OF BYTES TO SKIP
  6373					;
  6374					; RETURNS:
  6375					;	+1:	ERROR/EOF
  6376					;	+2:	SUCCESS, T1 POINTS TO RECORD BLOCK
  6377					;
  6378	007131'				ITSSKP:
  6379	007131'	202 02 0 15 000002 		MOVEM T2,ITSCNT		;SAVE COUNT
  6380	007132'				ITSSLP:
  6381	007132'	200 01 0 15 000001 		MOVE T1,ITSREC		;POINT TO RECORD BLOCK
  6382	007133'	375 00 0 15 000002 		SOSGE ITSCNT		;BYTES LEFT?
  6383	007134'	254 00 0 00 007130*		 RETSKP			;NO-- RETURN +2 FROM ITSSKP
  6384	007135'	260 17 0 00 006535'		CALL INPBYT		;GET A BYTE
  6385	007136'	263 17 0 00 000000 		 RET			;ERROR/EOF
  6386	007137'	254 00 0 00 007132'		JRST ITSSLP		;SKIP MORE....
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 151
NCU	MAC	 6-Oct-81 12:41		I/O Subroutines

  6387					;GETLNK - ROUTINE TO GET A LOGICAL LINK TO A NICE PROCESS
  6388					;
  6389					;ACCEPTS IN T1/	POINTER TO ASCIZ NODE NAME OF DESTINATION
  6390					;		CALL GETLNK
  6391					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  6392					;	  +2	SUCCESS, WITH T1/ LOGICAL LINK NUMBER (I.E., JFN)
  6393
  6394	007140'	265 16 0 00 006710*	GETLNK:	STKVAR <GLLNOD,<GLLNAM,20>,<GLLBLK,20>>
  6395	007141'	000041	000041
  6396	007142'	202 01 0 17 777776 		MOVEM T1,GLLNOD		;SAVE POINTER TO NAME OF DESTINATION NODE
  6397	007143'	205 01 0 17 777736 		MOVSI T1,GLLBLK		;SET UP TO CLEAR
  6398	007144'	541 01 0 17 777737 		HRRI T1,1+GLLBLK	; THE GTJFN BLOCK
  6399	007145'	402 00 0 17 777736 		SETZM GLLBLK		;CLEAR FIRST WORD OF BLOCK
  6400	007146'	251 01 0 17 777755 		BLT T1,17+GLLBLK	;CLEAR REMAINDER OF BLOCK
  6401	007147'	561 01 0 00 014173'		HRROI T1,[ASCIZ/DCN/]	;GET POINTER TO ASCIZ DEVICE NAME OF DESTINATION
  6402	007150'	202 01 0 17 777740 		MOVEM T1,.GJDEV+GLLBLK	;SAVE POINTER TO DEVICE
  6403	007151'	561 01 0 17 777756 		HRROI T1,GLLNAM		;GET POINTER TO TEMPORARY STRING AREA
  6404	007152'	200 02 0 17 777776 		MOVE T2,GLLNOD		;GET POINTER TO NAME OF DESTINATION NODE
  6405	007153'	402 00 0 00 000003 		SETZM T3		;TERMINATE ON NULL
  6406	007154'	104 00 0 00 000053 		SOUT			;COPY THE NAME OF THE DESTINATION NODE
  6407	007155'	320 16 0 00 013647'		 ERJMP [RETBAD (.NRCME)] ;FAILED, RETURN "COMMUNCATIONS ERROR"
  6408	007156'	201 02 0 00 000055 		MOVEI T2,"-"		;GET DELIMITER BETWEEN NODE AND SERVER NAME
  6409	007157'	136 02 0 00 000001 		IDPB T2,T1		;ADD DELIMITER TO FILE NAME
  6410	007160'	561 02 0 00 014174'		HRROI T2,[ASCIZ/NCU/]	;GET POINTER TO NAME OF NICE PROCESS SERVER
  6411	007161'	104 00 0 00 000053 		SOUT			;ADD SERVER NAME TO FILESPEC
  6412	007162'	320 16 0 00 013647'		 ERJMP [RETBAD (.NRCME)] ;FAILED, RETURN "COMMUNICATIONS ERROR"
  6413	007163'	561 01 0 17 777756 		HRROI T1,GLLNAM		;GET POINTER TO FILE NAME
  6414	007164'	202 01 0 17 777742 		MOVEM T1,.GJNAM+GLLBLK	;SAVE POINTER TO NAME OF FILE
  6415	007165'	402 00 0 17 777743 		SETZM .GJEXT+GLLBLK	;NO EXTENSION NEEDED
  6416	007166'	402 00 0 17 777736 		SETZM .GJGEN+GLLBLK	;NO FLAGS
  6417	007167'	200 01 0 00 014175'		MOVE T1,[.NULIO,,.NULIO] ;NO JFN'S NEEDED
  6418	007170'	202 01 0 17 777737 		MOVEM T1,.GJSRC+GLLBLK	;SAVE NULL JFN'S AS SOURCE, ECHOING JFN'S
  6419	007171'	402 00 0 00 000002 		SETZM T2		;NO STRING POINTER
  6420	007172'	201 01 0 17 777736 		MOVEI T1,GLLBLK		;GET ADDRESS OF GTJFN BLOCK
  6421	007173'	104 00 0 00 000020 		GTJFN			;GET A JFN FOR THE NICE PROCESS
  6422	007174'	320 16 0 00 013647'		 ERJMP [RETBAD (.NRCME)] ;FAILED, RETURN "COMMUNICATIONS ERROR"
  6423	007175'	202 01 0 00 000004 		MOVEM T1,T4		;SAVE JFN IN CASE OPENF FAILS
  6424	007176'	200 02 0 00 014176'		MOVE T2,[100000,,OF%RD+OF%WR] ;8 BIT BYTES, READ AND WRITE ACCESS
  6425	007177'	104 00 0 00 000021 		OPENF			;OPEN THE LOGICAL LINK
  6426						 ERJMP [MOVE T1,T4	;FAILED, RESTORE JFN
  6427							RLJFN		;RELEASE JFN
  6428							 JFCL		;IGNORE FAILURE, NOT CRITICAL
  6429	007200'	320 16 0 00 014177'			RETBAD (.NRCME)] ;FAILED, RETURN "COMMUNICATIONS ERROR"
  6430	007201'	254 00 0 00 007134*		RETSKP			;DONE, JFN (LOGICAL LINK NUMBER) IS IN T1
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 152
NCU	MAC	 6-Oct-81 12:41		SYSERR Routines

  6431					SUBTTL	SYSERR Routines
  6432
  6433					;LOGGER - ROUTINE TO PERFORM LOGGING OF LINE COUNTER DATA
  6434					;
  6435
  6436	007202'	200 17 0 00 014203'	LOGGER::MOVE P,[-PDLEN,,LOGPDL-1] ;SET UP STACK POINTER
  6437	007203'	201 14 0 00 300000 		MOVEI P5,LOGFFP_9	;GET ADDRESS OF SCRATCH AREA FOR LOGGING PROCESS
  6438
  6439
  6440					; PERIODICALLY LOG LINE COUNTERS
  6441
  6442	007204'	260 17 0 00 007210'	LOGR20:	CALL TSTLOG		;DO ANY LINE COUNTER LOGGING NEEDED
  6443	007205'	200 01 0 00 010632'		MOVE T1,LOGTIM		;GET TIME INTERVAL BETWEEN LOGGINGS
  6444	007206'	104 00 0 00 000167 		DISMS			;WAIT
  6445	007207'	254 00 0 00 007204'		JRST LOGR20		;GO CHECK TO SEE IF LOGGING IS STILL ENABLED
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 153
NCU	MAC	 6-Oct-81 12:41		SYSERR Routines

  6446					;TSTLOG - ROUTINE TO LOOP OVER ALL NODES LOOKING FOR LINES WHOSE
  6447					;	    COUNTERS ARE TO BE LOGGED
  6448
  6449	007210'				TSTLOG:
  6450
  6451					; LOOP OVER ALL NIBS, CHECKING FOR LINES FOR WHICH COUNTERS SHOULD BE LOGGED
  6452
  6453	007210'	201 10 0 00 000000*	TSTL05:	MOVEI P1,NIBTAB		;GET BASE ADDRESS OF NIB TABLES
  6454	007211'	335 11 0 00 010742'		SKIPGE P2,NXTNIB	;GET NUMBER OF NIBS
  6455	007212'	263 17 0 00 000000 		RET			;NO NIBS DEFINED YET, DONE
  6456	007213'	200 01 0 00 000010 	TSTL10:	MOVE T1,P1		;GET NIB ADDRESS
  6457	007214'	260 17 0 00 007220'		CALL CHKLOG		;GO SEE IF ANY OF THESE LINES SHOULD BE LOGGED
  6458	007215'	271 10 0 00 000022 		ADDI P1,NIBSIZ		;POINT TO NEXT NIB
  6459	007216'	365 11 0 00 007213'		SOJGE P2,TSTL10		;DO ALL NIBS
  6460	007217'	263 17 0 00 000000 		RET			;DONE, RETURN
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 154
NCU	MAC	 6-Oct-81 12:41		SYSERR Routines

  6461					;CHKLOG - ROUTINE TO CHECK IF ANY LINES SHOULD HAVE COUNTERS LOGGED
  6462					;	    FOR A GIVEN NODE.
  6463					;
  6464					;ACCEPTS IN T1/	NIB ADDRESS FOR THE NODE
  6465					;		CALL CHKLOG
  6466					;RETURNS: +1 ALWAYS, COUNTERS LOGGED IF NEEDED
  6467
  6468	007220'	265 16 0 00 006707*	CHKLOG:	ASUBR <CHLNIB,CHLNAM>
  6469	007221'	265 16 0 00 000000*		ACVAR <W3,W4>
  6470	007222'	200 04 0 01 000007 		LOAD T4,NDNAM,(T1)	;GET POINTER TO NAME OF THIS NODE
  6471	007223'	202 04 0 15 000002 		MOVEM T4,CHLNAM		;SAVE POINTER TO NAME
  6472
  6473					; LOCK THE NODE IN CASE IT IS BEING LOADED OR DUMPED
  6474
  6475	007224'	200 01 0 15 000001 		MOVE T1,CHLNIB		;GET NIB ADDRESS
  6476	007225'	205 02 0 00 400000 		MOVX T2,RM%PRI		;PRIMARY RESOURCE (LOAD OR DUMP)
  6477	007226'	260 17 0 00 000556*		CALL LOKNOD		;LOCK THE NODE
  6478
  6479					; LOOP OVER THE NODE'S LINES
  6480
  6481	007227'	200 01 0 15 000001 		MOVE T1,CHLNIB		;GET NIB ADDRESS
  6482	007230'	200 06 0 01 000006 		LOAD W4,NDLIN,(T1)	;GET ADDRESS OF LINE TABLE FOR OUR NODE
  6483	007231'	205 05 0 00 777773 		MOVSI W3,-MXLNOD	;SET UP TO LOOP OVER EACH ENTRY IN LINE TABLE
  6484	007232'	200 01 0 15 000002 	CHL010:	MOVE T1,CHLNAM		;GET POINTER TO NAME
  6485	007233'	120 02 0 06 000000 		DMOVE T2,(W4)		;GET LINE ID
  6486	007234'	200 16 0 06 000002 		JE LTUSE,(W4),CHL020	;SKIP THIS ENTRY IF NOT IN USE
  6487	007235'	325 16 0 00 007243'
  6488	007236'	200 16 0 06 000002 		JE LTLOG,(W4),CHL020	;IF LOGGING NOT ENABLES FOR THIS LINE, GO ON
  6489	007237'	607 16 0 00 200000 
  6490	007240'	254 00 0 00 007243'
  6491	007241'	260 17 0 00 007251'		CALL LOGCTR		;LOG COUNTERS IF THIS LINE ENABLED
  6492	007242'	254 00 0 00 014204'		 NON.FATAL.ERROR (.ERR21)
  6493	007243'	271 06 0 00 000004 	CHL020:	ADDI W4,LATSIZ		;POINT TO NEXT TABLE ENTRY
  6494	007244'	253 05 0 00 007232'		AOBJN W3,CHL010		;LOOP OVER ALL LINE TABLE ENTRIES
  6495
  6496					; UNLOCK THE NODE AND RETURN
  6497
  6498	007245'	200 01 0 15 000001 		MOVE T1,CHLNIB		;GET NIB ADDRESS
  6499	007246'	205 02 0 00 400000 		MOVX T2,RM%PRI		;PRIMARY RESOURCE
  6500	007247'	260 17 0 00 000653*		CALL ULKNOD		;UNLOCK THE NIB
  6501	007250'	263 17 0 00 000000 		RET			;DONE, RETURN
  6502
  6503						ENDAV.
  6504						ENDAS.
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 155
NCU	MAC	 6-Oct-81 12:41		SYSERR Routines

  6505					;LOGCTR - ROUTINE TO LOG LINE COUNTERS FOR A SPECIFIED LINE
  6506					;
  6507					;ACCEPTS IN T1/	POINTER TO ASCIZ NODE NAME
  6508					;	    T2-T3/ LINE ID OF LINE FOR WHICH COUNTERS ARE WANTED
  6509					;		CALL LOGCTR
  6510					;RETURNS: +1	 FAILED, COULD NOT LOG COUNTERS
  6511					;	  +2	SUCCESS, COUNTERS LOGGED IN SYSERR FILE
  6512
  6513	007251'	265 16 0 00 007220*	LOGCTR:	ASUBR <LCTNOD,LCTBLK,LCTNUM>
  6514	007252'	265 16 0 00 007140*		STKVAR <LCTPTR,LCTCNT,LCTLEN,<LCTLIN,2>>
  6515	007253'	000005	000005
  6516	007254'	124 02 0 17 777772 		DMOVEM T2,LCTLIN	;SAVE LINE ID
  6517
  6518					; READ THE LINE COUNTERS FROM THE OBJECT NODE NCU
  6519
  6520	007255'	200 01 0 15 000001 		MOVE T1,LCTNOD		;GET POINTER TO ASCIZ NODE NAME
  6521	007256'	120 02 0 17 777772 		DMOVE T2,LCTLIN		;GET LINE ID
  6522	007257'	260 17 0 00 007515'		CALL REDCTR		;GO READ THE COUNTERS
  6523	007260'	263 17 0 00 000000 		 RET			;FAILED
  6524	007261'	134 04 0 00 000001 		ILDB T4,T1		;GET COUNTER TYPE CODE
  6525	007262'	302 04 0 00 000004 		CAIE T4,.RDLCT		;LINE COUNTERS RETURNED ?
  6526	007263'	263 17 0 00 000000 		RET			;NO, FAIL
  6527	007264'	275 02 0 00 000001 		SUBI T2,1		;ACCOUNT FOR TYPE CODE
  6528
  6529					; EXTRACT THE LINE ID FROM THE NICE MESSAGE
  6530
  6531	007265'	260 17 0 00 004560'		CALL GETLIN		;GO GET THE LINE ID
  6532	007266'	263 17 0 00 000000 		 RET			;FAILED, RETURN ERROR TO CALLER
  6533	007267'	316 03 0 17 777772 		CAMN T3,LCTLIN		;DID WE RECEIVE THE INFO FOR THE LINE
  6534	007270'	312 04 0 17 777773 		CAME T4,1+LCTLIN	; FOR WHICH IT WAS REQUESTED ?
  6535	007271'	263 17 0 00 000000 		RET			;NO, ERROR
  6536	007272'	202 01 0 17 777776 		MOVEM T1,LCTPTR		;YES, SAVE POINTER TO NEXT FIELD IN MESSAGE
  6537	007273'	202 02 0 17 777775 		MOVEM T2,LCTCNT		;SAVE NUMBER OF BYTES REMAINING IN MESSAGE
  6538
  6539					; GET A BLOCK TO USE FOR SYSERR ENTRIES
  6540
  6541	007274'	201 01 0 00 000050 		MOVEI T1,MAXSYE		;GET MAX SIZE OF SYSERR ENTRIES
  6542	007275'	260 17 0 00 005065*		CALL GETFRE		;ASSIGN A BLOCK
  6543	007276'	263 17 0 00 000000 		 RET			;FAILED, RETURN ERROR
  6544	007277'	271 01 0 00 000001 		ADDI T1,1		;POINT PAST THE HEADER
  6545	007300'	202 01 0 15 000002 		MOVEM T1,LCTBLK		;SAVE ADDRESS OF SYSERR BLOCK
  6546
  6547					; ASSEMBLE THE SYSERR ENTRY HEADER
  6548
  6549	007301'	201 01 0 00 000230 		MOVX T1,SY%LCT		;GET ENTRY TYPE CODE (LINE COUNTERS)
  6550	007302'	201 02 0 00 000013 		MOVX T2,^D11		;SIZE OF LINE COUNTER ENTRIES
  6551	007303'	200 03 0 15 000002 		MOVE T3,LCTBLK		;ADDRESS OF SYSERR ENTRY
  6552	007304'	260 17 0 00 007607'		CALL SYRHDR		;ASSEMBLE A SYSERR ENTRY HEADER
  6553						;..
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 156
NCU	MAC	 6-Oct-81 12:41		SYSERR Routines

  6554						;..
  6555
  6556					; MARK FIELDS IN ENTRY THAT ARE NOT APPROPRIATE OR KNOWN
  6557
  6558	007305'	200 01 0 15 000002 		MOVE T1,LCTBLK		;GET ADDRESS OF SYSERR BLOCK
  6559	007306'	271 01 0 00 000004 		ADDI T1,.SYDAT		;POINT TO START OF COUNTER ENTRY DATA
  6560	007307'	201 02 0 00 000002 		MOVX T2,2		;PERIODIC ENTRY
  6561	007310'	542 02 0 01 000013 		STOR T2,SYRSN,(T1)	;NO REASON
  6562	007311'	476 00 0 01 000012 		SETONE SYRCT,(T1)	;NO COUNT
  6563	007312'	476 00 0 01 000011 		SETONE SYNTM,(T1)	;NO NODE UPTIME
  6564	007313'	476 00 0 01 000006 		SETONE SYSEQ,(T1)	;SEQ NUMBER UNKOWN
  6565	007314'	476 00 0 01 000004 		SETONE SYFCN,(T1)	;SYSTEM TYPE UNKNOWN
  6566	007315'	476 00 0 01 000003 		SETONE SYADJ,(T1)	;ADJACENT NODE NOT KNOWN
  6567	007316'	476 00 0 01 000000 		SETONE SYMID,(T1)	;ID'S NOT KNOWN
  6568
  6569
  6570					; ADD THE COUNTERS TO THE SYSERR ENTRY
  6571
  6572	007317'	402 00 0 15 000003 		SETZM LCTNUM		;INITIALIZE NUMBER OF COUNTERS
  6573	007320'	200 10 0 15 000002 		MOVE P1,LCTBLK		;GET BASE ADDRESS OF SYSERR ENTRY
  6574	007321'	271 10 0 00 000021 		ADDI P1,.SYCTR		;COMPUTE STARTING ADDRESS OF COUNTER DATA
  6575	007322'	200 01 0 17 777776 		MOVE T1,LCTPTR		;RESTORE POINTER TO NICE MESSAGE
  6576	007323'	200 02 0 17 777775 	LCT010:	MOVE T2,LCTCNT		;GET NUMBER OF BYTES LEFT IN MESSAGE
  6577	007324'	260 17 0 00 005167'		CALL GETEXB		;GO GET COUNTER TYPE FROM MESSAGE
  6578	007325'	254 00 0 00 007335'		 JRST LCT020		;NO MORE COUNTERS, DONE
  6579	007326'	506 04 0 10 000000 		STOR T4,SYTYP,(P1)	;STORE COUNTER TYPE IN SYSERR ENTRY
  6580	007327'	260 17 0 00 004625'		CALL GETTWO		;EXTRACT COUNTER VALUE FROM MESSAGE
  6581	007330'	255 00 0 00 000000 		 JFCL
  6582	007331'	202 02 0 17 777775 		MOVEM T2,LCTCNT		;SAVE UPDATED COUNT
  6583	007332'	542 03 0 10 000000 		STOR T3,SYCTR,(P1)	;STORE COUNTER VALUE IN SYSERR ENTRY
  6584	007333'	350 00 0 15 000003 		AOS LCTNUM		;INCREMENT NUMBER OF COUNTERS IN THE ENTRY
  6585	007334'	344 10 0 00 007323'		AOJA P1,LCT010		;LOOP OVER EACH COUNTER RETURNED
  6586
  6587					; ADD NUMBER OF COUNTERS TO THE SYSERR ENTRY
  6588
  6589	007335'	200 04 0 15 000002 	LCT020:	MOVE T4,LCTBLK		;GET ADDRESS OF SYSERR ENTRY
  6590	007336'	271 04 0 00 000004 		ADDI T4,.SYDAT		;COMPUTE START OF DATA PORTION OF SYSERR ENTRY
  6591	007337'	200 01 0 15 000003 		MOVE T1,LCTNUM		;GET NUMBER OF COUNTERS
  6592	007340'	202 01 0 04 000005 		STOR T1,SYNCT,(T4)	;ADD NUMBER OF COUNTERS TO SYSERR ENTRY
  6593
  6594					; COMPUTE POINTER TO LOG DATA (IE TO THE COUNTERS)
  6595
  6596	007341'	213 00 0 00 000001 		MOVNS T1		;GET -NUMBER OF COUNTERS
  6597	007342'	504 01 0 00 000001 		HRL T1,T1		;GET -# OF COUNTERS,,0
  6598	007343'	541 01 0 00 000015 		HRRI T1,.SYCTR-.SYDAT	;FORM -# OF COUNTERS,,OFFSET TO COUNTER DATA
  6599	007344'	200 02 0 15 000002 		MOVE T2,LCTBLK		;GET BASE ADDRESS OF SYSERR ENTRY
  6600	007345'	271 02 0 00 000004 		ADDI T2,.SYDAT		;COMPUTE BASE ADDRESS FOR DATA PART OF ENTRY
  6601	007346'	202 01 0 02 000014 		STOR T1,SYPTR,(T2)	;STORE THE POINTER TO THE LOG DATA
  6602						;..
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 157
NCU	MAC	 6-Oct-81 12:41		SYSERR Routines

  6603						;..
  6604
  6605					; ADD THE TRANSMITTING NODE NAME TO THE SYSERR ENTRY
  6606
  6607	007347'	200 01 0 15 000002 		MOVE T1,LCTBLK		;GET BASE ADDRESS OF SYSERR ENTRY
  6608	007350'	200 11 0 00 000010 		MOVE P2,P1		;COPY ADDRESS WHERE NAME WILL GO
  6609	007351'	275 11 0 01 000004 		SUBI P2,.SYDAT(T1)	;COMPUTE OFFSET TO NAME IN ENTRY
  6610	007352'	561 01 0 10 000000 		HRROI T1,(P1)		;FORM POINTER TO WHERE NAME GOES
  6611	007353'	200 02 0 15 000001 		MOVE T2,LCTNOD		;GET POINTER TO ASCIZ NODE NAME
  6612	007354'	402 00 0 00 000003 		SETZM T3		;TERMINATE ON NULL
  6613	007355'	104 00 0 00 000053 		SOUT			;ADD NODE NAME TO SYSERR ENTRY
  6614	007356'	133 00 0 00 000001 		IBP T1			;INCREMENT POINTER FOR MULTIPLES OF 5 BYTES
  6615	007357'	200 02 0 00 000001 		MOVE T2,T1		;COPY CURRENT POINTER
  6616	007360'	275 02 0 10 777777 		SUBI T2,-1(P1)		;COMPUTE NUMBER OF WORDS USED
  6617	007361'	210 02 0 00 000002 		MOVN T2,T2		;COMPUTE -WORD COUNT
  6618	007362'	504 11 0 00 000002 		HRL P2,T2		;COMPUTE -WORD COUNT,,OFFSET
  6619	007363'	200 02 0 15 000002 		MOVE T2,LCTBLK		;GET ADDRESS OF SYSERR ENTRY
  6620	007364'	271 02 0 00 000004 		ADDI T2,.SYDAT		;COMPUTE START OF DATA AREA
  6621	007365'	202 11 0 02 000001 		STOR P2,SYNOD,(T2)	;STORE OFFSET TO ASCIZ NODE NAME
  6622	007366'	201 10 0 01 000001 		MOVEI P1,1(T1)		;POINT TO NEXT WORD IN SYSERR ENTRY
  6623
  6624					; ADD DESTINATION NODE (OUR NAME)
  6625
  6626	007367'	200 01 0 15 000002 		MOVE T1,LCTBLK		;GET BASE ADDRESS OF SYSERR ENTRY
  6627	007370'	200 11 0 00 000010 		MOVE P2,P1		;COPY ADDRESS WHERE NAME WILL GO
  6628	007371'	275 11 0 01 000004 		SUBI P2,.SYDAT(T1)	;COMPUTE OFFSET TO NAME IN ENTRY
  6629	007372'	561 01 0 10 000000 		HRROI T1,(P1)		;FORM POINTER TO WHERE NAME GOES
  6630	007373'	561 02 0 00 010667'		HRROI T2,OURNAM		;WE ARE DESTINATION NODE
  6631	007374'	402 00 0 00 000003 		SETZM T3		;TERMINATE ON NULL
  6632	007375'	104 00 0 00 000053 		SOUT			;ADD NODE NAME TO SYSERR ENTRY
  6633	007376'	200 02 0 00 000001 		MOVE T2,T1		;COPY CURRENT POINTER
  6634	007377'	275 02 0 10 777777 		SUBI T2,-1(P1)		;COMPUTE NUMBER OF WORDS USED
  6635	007400'	210 02 0 00 000002 		MOVN T2,T2		;COMPUTE -WORD COUNT
  6636	007401'	504 11 0 00 000002 		HRL P2,T2		;COMPUTE -WORD COUNT,,OFFSET
  6637	007402'	200 02 0 15 000002 		MOVE T2,LCTBLK		;GET ADDRESS OF SYSERR ENTRY
  6638	007403'	271 02 0 00 000004 		ADDI T2,.SYDAT		;COMPUTE START OF DATA AREA
  6639	007404'	202 11 0 02 000002 		STOR P2,SYDST,(T2)	;STORE OFFSET TO ASCIZ NODE NAME
  6640	007405'	201 10 0 01 000001 		MOVEI P1,1(T1)		;POINT TO NEXT WORD IN SYSERR ENTRY
  6641	007406'	551 01 0 01 000001 		HRRZI T1,1(T1)		;GET JUST ADDRESS OF LAST WORD IN ENTRY
  6642	007407'	274 01 0 15 000002 		SUB T1,LCTBLK		;COMPUTE SIZE OF ENTIRE SYSERR ENTRY
  6643	007410'	202 01 0 17 777774 		MOVEM T1,LCTLEN		;SAVE SYSERR ENTRY LENGTH
  6644	007411'	275 01 0 00 000004 		SUBI T1,.SYDAT		;COMPUTE SIZE OF DATA PORTION OF ENTRY
  6645	007412'	200 02 0 15 000002 		MOVE T2,LCTBLK		;GET BASE ADDRESS OF SYSERR ENTRY
  6646	007413'	137 01 0 00 014207'		STOR T1,SYLEN,(T2)	;STORE SIZE OF DATA PART OF SYSERR ENTRY
  6647						; ..
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 158
NCU	MAC	 6-Oct-81 12:41		SYSERR Routines

  6648						; ..
  6649
  6650					; ADD THE LINE ID TO THE SYSERR ENTRY
  6651
  6652	007414'	200 02 0 15 000002 		MOVE T2,LCTBLK		;GET BASE ADDRESS OF SYSERR ENTRY
  6653	007415'	271 02 0 00 000004 		ADDI T2,.SYDAT		;POINT TO DATA PORTION OF ENTRY
  6654	007416'	504 03 0 17 777772 		HRL T3,LCTLIN		;GET CONTROLLER #
  6655	007417'	544 03 0 17 777773 		HLR T3,1+LCTLIN		;GET UNIT NUMBER
  6656	007420'	202 03 0 02 000007 		STOR T3,SYLID,(T2)	;SAVE LINE ID
  6657	007421'	550 04 0 17 777773 		HRRZ T4,1+LCTLIN	;GET STATION ADDRESS AND SAVE IN
  6658	007422'	202 04 0 02 000010 		STOR T4,SYLI1,(T2)	; IN SYSERR ENTRY
  6659	007423'	554 03 0 17 777772 		HLRZ T3,LCTLIN		;GET HARDWARE OPTION TYPE
  6660	007424'	205 04 0 00 777774 		MOVSI T4,-HDWSZ		;SET UP TO LOOK FOR DEVICE TYPE
  6661	007425'	550 01 0 04 010651'	LCT030:	HRRZ T1,HDWTB(T4)	;GET OUR DEVICE TYPE CODE
  6662	007426'	316 01 0 00 000003 		CAMN T1,T3		;FOUND RIGHT DEVICE TYPE ?
  6663						JRST [HLRZ T3,HDWTB(T4)	;YES, GET SYSERR TYPE CODE
  6664	007427'	254 00 0 00 014210'		      JRST LCT040]	;GO STORE CODE
  6665	007430'	253 04 0 00 007425'		AOBJN T4,LCT030		;LOOP OVER ALL CODES
  6666	007431'	476 00 0 00 000003 		SETOM T3		;COULD NOT FIND CODE, USE UNKNOWN
  6667	007432'	137 03 0 00 014212'	LCT040:	STOR T3,SYHDW,(T2)	;STORE HARDWARE DEVICE TYPE
  6668
  6669					; ADD THE ENTRY TO THE SYSERR FILE
  6670
  6671	007433'	200 01 0 15 000002 		MOVE T1,LCTBLK		;GET ADDRESS OF SYSERR ENTRY
  6672	007434'	200 02 0 17 777774 		MOVE T2,LCTLEN		;GET LENGTH OF ENTRY
  6673	007435'	104 00 0 00 000527 		SYERR			;MAKE A SYSERR ENTRY
  6674	007436'	320 16 0 00 007450'		 ERJMP LCTERR		;FAILED, RELEASE SPACE AND RETURN
  6675
  6676					; RELEASE FREE SPACE
  6677
  6678	007437'	200 01 0 15 000002 		MOVE T1,LCTBLK		;GET ADDRESS OF SYSERR ENTRY
  6679	007440'	275 01 0 00 000001 		SUBI T1,1		;RESTORE FREE BLOCK ADDRESS
  6680	007441'	260 17 0 00 005013*		CALL RELFRE		;RETURN THE BLOCK
  6681	007442'	254 00 0 00 013623'		 FATAL.ERROR		; Die on release failure
  6682
  6683					; ZERO THE COUNTERS JUST REQUESTED AND RETURN TO CALLER
  6684
  6685	007443'	200 01 0 15 000001 		MOVE T1,LCTNOD		;GET POINTER TO NODE NAME
  6686	007444'	120 02 0 17 777772 		DMOVE T2,LCTLIN		;GET LINE ID
  6687	007445'	260 17 0 00 007455'		CALL ZROCTR		;GO ZERO THE COUNTERS
  6688	007446'	255 00 0 00 000000 		 JFCL			;FAILED, IGNORE FAILURE SINCE LOGGING WORKED OK
  6689	007447'	254 00 0 00 007201*		RETSKP			;DONE, RETURN SUCCESS
  6690
  6691					; HERE ON AN ERROR TO RELEASE THE FREE SPACE AND RETURN
  6692
  6693	007450'	200 01 0 15 000002 	LCTERR:	MOVE T1,LCTBLK		;GET ADDRESS OF SYSERR ENTRY
  6694	007451'	275 01 0 00 000001 		SUBI T1,1		;RESTORE FREE BLOCK ADDRESS
  6695	007452'	260 17 0 00 007441*		CALL RELFRE		;RETURN THE BLOCK
  6696	007453'	254 00 0 00 013623'		 FATAL.ERROR		; Die on release failure
  6697	007454'	263 17 0 00 000000 		RET			;RETURN ERROR TO CALLER
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 159
NCU	MAC	 6-Oct-81 12:41		SYSERR Routines

  6698					;ZROCTR - ROUTINE TO ZERO THE LINE COUNTERS FOR A LINE
  6699					;
  6700					;ACCEPTS IN T1/	POINTER TO ASCIZ NODE NAME
  6701					;	    T2-T3/ LINE ID
  6702					;		CALL ZROCTR
  6703					;RETURNS: +1	 FAILED
  6704					;	  +2	SUCCESS, COUNTERS CLEARED
  6705
  6706	007455'	265 16 0 00 007251*	ZROCTR:	ASUBR <ZCTNOD,<ZCTLID,2>,ZCTLNK>
  6707
  6708					; GET A LOGICAL LINK TO THE NCU ON THE NODE
  6709
  6710	007456'	200 01 0 15 000001 		MOVE T1,ZCTNOD		;GET POINTER TO ASCIZ NODE NAME
  6711	007457'	260 17 0 00 007140'		CALL GETLNK		;GO GET A LOGICAL LINK TO THE NCU
  6712	007460'	263 17 0 00 000000 		 RET			;FAILED
  6713	007461'	202 01 0 15 000004 		MOVEM T1,ZCTLNK		;SAVE LOGICAL LINK TO NCU
  6714
  6715					; ASSEMBLE A NICE PROTOCOL "ZERO COUNTERS" MESSAGE
  6716
  6717	007462'	120 01 0 15 000002 		DMOVE T1,ZCTLID		;GET LINE ID TO PUT INTO MESSAGE
  6718	007463'	260 17 0 00 006102'		CALL MAKZRO		;GO ASSEMBLE ZERO COUNTERS MESSAGE
  6719
  6720					; SEND THE MESSAGE TO THE NCU ON THE SPECIFIED NODE
  6721
  6722	007464'	210 03 0 00 000002 		MOVN T3,T2		;GET -COUNT OF BYTES IN MESSAGE
  6723	007465'	200 02 0 00 000001 		MOVE T2,T1		;GET POINTER TO START OF MESSAGE
  6724	007466'	200 01 0 15 000004 		MOVE T1,ZCTLNK		;GET LOGICAL LINK TO NCU
  6725	007467'	104 00 0 00 000532 		SOUTR			;OUTPUT THE NICE PROTOCOL MESSAGE
  6726	007470'	320 16 0 00 007511'		 ERJMP ZCTERR		;FAILED, CLEAN UP AND RETURN FAILURE
  6727
  6728					; RECEIVE THE RESPONSE MESSAGE FROM THE NCU
  6729
  6730	007471'	260 17 0 00 010457'		CALL CLRMSG		;GO CLEAR NICE MESSAGE AREA
  6731	007472'	200 01 0 15 000004 		MOVE T1,ZCTLNK		;GET LOGICAL LINK TO NCU
  6732	007473'	200 02 0 00 013534'		MOVE T2,[POINT 8,MSGBLK] ;GET POINTER TO WHERE MESSAGE GOES
  6733	007474'	211 03 0 00 764000 		MOVNI T3,-MAXNIC	;GET MAX BYTE COUNT
  6734	007475'	104 00 0 00 000531 		SINR			;RECEIVE THE MESSAGE
  6735	007476'	320 16 0 00 007511'		 ERJMP ZCTERR		;FAILED, CLEAN UP AND RETURN ERROR
  6736	007477'	201 02 0 03 014000 		MOVEI T2,MAXNIC(T3)	;GET NUMBER OF BYTES RECEIVED
  6737	007500'	302 02 0 00 000001 		CAIE T2,1		;JUST RESPONSE CODE ?
  6738	007501'	254 00 0 00 007511'		JRST ZCTERR		;NO, CLEAN UP AND RETURN ERROR
  6739	007502'	135 01 0 00 013535'		LDB T1,[POINT 8,MSGBLK,7] ;GET NICE RETURN CODE VALUE
  6740	007503'	302 01 0 00 000001 		CAIE T1,.NRSUC		;SUCCESS CODE ?
  6741	007504'	254 00 0 00 007511'		JRST ZCTERR		;NO, FAIL
  6742
  6743					; COUNTERS SUCCESSFULLY ZERO'ED - CLEAN UP LOGICAL LINK AND RETURN SUCCESS
  6744
  6745	007505'	200 01 0 15 000004 		MOVE T1,ZCTLNK		;GET LOGICAL LINK
  6746	007506'	104 00 0 00 000022 		CLOSF			;CLOSE THE LINK
  6747	007507'	255 00 0 00 000000 		 JFCL			;IGNORE FAILURE, FUNCTION WAS COMPLETED OK
  6748	007510'	254 00 0 00 007447*		RETSKP			;DONE, RETURN SUCCESS
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 160
NCU	MAC	 6-Oct-81 12:41		SYSERR Routines

  6749					; HERE ON ERROR - RELEASE LOGICAL LINK AND RETURN FAILURE
  6750
  6751	007511'	200 01 0 15 000004 	ZCTERR:	MOVE T1,ZCTLNK		;GET LOGICAL LINK
  6752	007512'	104 00 0 00 000022 		CLOSF			;CLOSE THE LINK
  6753	007513'	255 00 0 00 000000 		 JFCL			;IGNORE FAILURE, FUNCTION WAS COMPLETED OK
  6754	007514'	263 17 0 00 000000 		RET			;RETURN FAILURE TO CALLER
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 161
NCU	MAC	 6-Oct-81 12:41		SYSERR Routines

  6755					;REDCTR - ROUTINE TO GET THE LINE COUNTERS FROM AN OBJECT NODE
  6756					;
  6757					;ACCEPTS IN T1/	POINTER TO ASCIZ NODE NAME
  6758					;	    T2-T3/ LINE ID
  6759					;		CALL REDCTR
  6760					;RETURNS: +1	 FAILED
  6761					;	  +2	SUCCESS, WITH T1/ POINTER TO COUNTER DATA FROM NICE MESSAGE
  6762					;			      T2/ NUMBER OF BYTES REMAINING IN COUNTER DATA
  6763
  6764	007515'	265 16 0 00 007455*	REDCTR:	ASUBR <RCTNOD,<RCTLIN,2>,RCTLNK>
  6765	007516'	265 16 0 00 007252*		STKVAR <RCTPTR,RCTCNT,RCTERR>
  6766	007517'	000003	000003
  6767					; SEND A NICE PROTOCOL "READ INFORMATION" MESSAGE TO GET LINE COUNTERS
  6768
  6769	007520'	200 01 0 15 000001 		MOVE T1,RCTNOD		;GET POINTER TO ASCIZ NODE NAME
  6770	007521'	260 17 0 00 007140'		CALL GETLNK		;GO GET A LOGICAL LINK TO NCU ON THAT NODE
  6771	007522'	263 17 0 00 000000 		 RET			;FAILED
  6772	007523'	202 01 0 15 000004 		MOVEM T1,RCTLNK		;SAVE LOGICAL LINK (JFN) TO NCU
  6773
  6774					; REQUEST THE COUNTERS FROM THE NCU
  6775
  6776	007524'	402 00 0 17 777774 		SETZM RCTERR		;INITIALIZE ERROR CODE
  6777	007525'	200 01 0 15 000004 		MOVE T1,RCTLNK		;GET LOGICAL LINK
  6778	007526'	120 02 0 15 000002 		DMOVE T2,RCTLIN		;GET LINE ID
  6779	007527'	260 17 0 00 007542'		CALL REQCTR		;GO GET THE COUNTERS
  6780	007530'	202 01 0 17 777774 		 MOVEM T1,RCTERR	;FAILED, SAVE ERROR CODE
  6781	007531'	202 02 0 17 777775 		MOVEM T2,RCTCNT		;SAVE NUMBER OF BYTES IN COUNTER DATA
  6782
  6783					; DISCONNECT THE LOGICAL LINK
  6784
  6785	007532'	200 01 0 15 000004 		MOVE T1,RCTLNK		;GET LOGICAL LINK
  6786	007533'	104 00 0 00 000022 		CLOSF			;DISCONNECT THE LINK
  6787	007534'	255 00 0 00 000000 		 JFCL			;FAILED, IGNORE FAILURE.
  6788
  6789					; RETURN POINTER TO COUNTER DATA
  6790
  6791	007535'	332 01 0 17 777774 		SKIPE T1,RCTERR		;ANY ERRORS GETTING COUNTERS ?
  6792	007536'	263 17 0 00 000000 		RETBAD ()		;YES, RETURN THE ERROR
  6793	007537'	200 01 0 00 013534'		MOVE T1,[POINT 8,MSGBLK] ;NO, GET POINTER TO START OF MESSAGE
  6794	007540'	200 02 0 17 777775 		MOVE T2,RCTCNT		;GET SIZE OF COUNTER DATA
  6795	007541'	254 00 0 00 007510*		RETSKP			;DONE, RETURN SUCCESS
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 162
NCU	MAC	 6-Oct-81 12:41		SYSERR Routines

  6796					;REQCTR - ROUTINE TO REQUEST THE LINE COUNTERS FROM A NODE
  6797					;
  6798					;ACCEPTS IN T1/	LOGICAL LINK TO NCU IN THE NODE
  6799					;	    T2-T3/ LINE ID FOR WHICH COUNTERS ARE DESIRED
  6800					;		CALL REQCTR
  6801					;RETURNS: +1	 FAILED, ERROR CODE IN T1
  6802					;	  +2	SUCCESS, WITH T2/ COUNT OF BYTES IN RESPONSE MESSAGE
  6803
  6804	007542'	265 16 0 00 007515*	REQCTR:	ASUBR <RQCLNK,<RQCLIN,2>>
  6805	007543'	120 01 0 15 000002 		DMOVE T1,RQCLIN		;GET LINE ID
  6806	007544'	260 17 0 00 005266'		CALL MAKRLC		;GO ASSEMBLE A NICE "READ INFO" MESSAGE
  6807	007545'	263 17 0 00 000000 		 RETBAD ()		;FAILED
  6808	007546'	210 03 0 00 000002 		MOVN T3,T2		;GET -COUNT
  6809	007547'	200 02 0 00 000001 		MOVE T2,T1		;GET POINTER TO START OF READ INFO MESSAGE
  6810	007550'	200 01 0 15 000001 		MOVE T1,RQCLNK		;GET LOGICAL LINK (JFN) TO NCU
  6811	007551'	104 00 0 00 000532 		SOUTR			;SEND NICE "READ INFO" MSG TO GET LINE COUNTERS
  6812	007552'	320 16 0 00 013740'		 ERJMP [RETBAD (.NRNCE)] ;RETURN IF SEND FAILED
  6813
  6814					; RECEIVE THE REPLY FROM THE NCU
  6815
  6816	007553'	260 17 0 00 010457'		CALL CLRMSG		;GO CLEAR THE NICE MESSAGE AREA
  6817	007554'	200 01 0 15 000001 		MOVE T1,RQCLNK		;GET LOGICAL LINK (JFN) TO NCU
  6818	007555'	505 02 0 00 441000 		HRLI T2,(POINT 8,)	;FORM POINTER TO START
  6819	007556'	541 02 0 14 000033 		HRRI T2,MSGBLK		; OF NICE MESSAGE AREA
  6820	007557'	211 03 0 00 014000 		MOVNI T3,MAXNIC		;GET -MAX COUNT
  6821	007560'	104 00 0 00 000531 		SINR			;RECEIVE REPLY FROM NCU
  6822	007561'	320 16 0 00 013740'		 ERJMP [RETBAD (.NRNCE)] ;RETURN IF SEND FAILED
  6823	007562'	201 02 0 03 014000 		MOVEI T2,MAXNIC(T3)	;GET NUMBER OF BYTES RECEIVED
  6824	007563'	302 02 0 00 000003 		CAIE T2,3		;RECEIVED 1-BYTE RETURN CODE & 2-BYTE COUNT ?
  6825	007564'	254 00 0 00 013542'		RETBAD (.NRIMF)		;NO, RETURN FAILURE
  6826	007565'	200 01 0 00 013534'		MOVE T1,[POINT 8,MSGBLK] ;GET POINTER TO START OF MESSAGE
  6827	007566'	134 04 0 00 000001 		ILDB T4,T1		;GET NICE RETURN CODE
  6828	007567'	302 04 0 00 000001 		CAIE T4,.NRSUC		;GOT SUCCESS RETURN CODE ?
  6829	007570'	254 00 0 00 014213'		RETBAD (,<MOVE T1,T4>)	;NO, FAIL AND RETURN THE NICE ERROR CODE
  6830	007571'	201 02 0 00 000002 		MOVEI T2,2		;HAVE TWO BYTES
  6831	007572'	260 17 0 00 004625'		CALL GETTWO		;YES, GO GET TWO-BYTE COUNT
  6832	007573'	255 00 0 00 000000 		 JFCL
  6833	007574'	302 03 0 00 000001 		CAIE T3,1		;ONE DATA BLOCK TO BE RECEIVED ?
  6834	007575'	254 00 0 00 013542'		RETBAD (.NRIMF)		;NO, RETURN FAILURE
  6835
  6836					; RECEIVE THE LINE COUNTERS FROM THE NCU
  6837
  6838	007576'	260 17 0 00 010457'		CALL CLRMSG		;GO CLEAR THE NICE MESSAGE AREA
  6839	007577'	200 01 0 15 000001 		MOVE T1,RQCLNK		;GET LOGICAL LINK (JFN) TO NCU
  6840	007600'	505 02 0 00 441000 		HRLI T2,(POINT 8,)	;FORM POINTER TO START
  6841	007601'	541 02 0 14 000033 		HRRI T2,MSGBLK		; OF NICE MESSAGE AREA
  6842	007602'	211 03 0 00 014000 		MOVNI T3,MAXNIC		;GET -MAX COUNT
  6843	007603'	104 00 0 00 000531 		SINR			;RECEIVE REPLY FROM NCU
  6844	007604'	320 16 0 00 013740'		 ERJMP [RETBAD (.NRNCE)] ;RETURN IF SEND FAILED
  6845	007605'	201 02 0 03 014000 		MOVEI T2,MAXNIC(T3)	;GET NUMBER OF BYTES RECEIVED
  6846	007606'	254 00 0 00 007541*		RETSKP			;DONE, RETURN SUCCESS
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 163
NCU	MAC	 6-Oct-81 12:41		SYSERR Routines

  6847					;SYRHDR - ROUTINE TO MAKE A SYSERR ENTRY HEADER
  6848					;
  6849					;ACCEPTS IN T1/	SYSERR EVENT CODE (SY%XXX)
  6850					;	    T2/	LENGTH OF ENTRY
  6851					;	    T3/	ADDRESS OF SYSERR BLOCK
  6852					;		CALL SYRHDR
  6853					;RETURNS: +1 ALWAYS, WITH HEADER SET UP AT LOCATION "SYRENT"
  6854
  6855	007607'	137 01 0 00 014215'	SYRHDR:	STOR T1,SYCOD,(T3)	;STORE EVENT CODE (SY%XXX)
  6856	007610'	137 02 0 00 014216'		STOR T2,SYLEN,(T3)	;STORE LENGTH OF ENTRY
  6857	007611'	201 01 0 00 000004 		MOVX T1,4		;GET LENGTH OF SYSERR ENTRY HEADER
  6858	007612'	137 01 0 00 014217'		STOR T1,SYHLN,(T3)	;STORE IN HEADER
  6859	007613'	201 01 0 00 000001 		MOVX T1,1		;GET VERSION OF SYSERR HEADER
  6860	007614'	137 01 0 00 014220'		STOR T1,SYVER,(T3)	;STORE IN HEADER
  6861	007615'	205 16 0 00 000001 		SETONE SYT20,(T3)	;NOTE THAT THIS ENTRY MADE BY TOPS-20
  6862	007616'	436 16 0 03 000000 
  6863	007617'	104 00 0 00 000227 		GTAD			;GET CURRENT TIME AND DATE
  6864	007620'	202 01 0 03 000001 		STOR T1,SYDAT,(T3)	;STORE TIME AND DATE IN ENTRY
  6865	007621'	104 00 0 00 000014 		TIME			;GET CURRENT UPTIME
  6866	007622'	230 01 0 00 014221'		IDIV T1,[<^D1000*^D3600*^D24>/<1_^D18>] ;CONVERT TO DAYS,,FRACTIONS OF DAYS
  6867	007623'	202 01 0 03 000002 		STOR T1,SYUPT,(T3)	;STORE UPTIME IN ENTRY HEADER
  6868	007624'	200 01 0 00 014222'		MOVE T1,[SIXBIT/APRID/]	;GET TABLE NAME
  6869	007625'	104 00 0 00 000016 		SYSGT			;GET PROCESSOR SERIAL NUMBER
  6870	007626'	202 01 0 03 000003 		STOR T1,SYPSN,(T3)	;SAVE PROCESSOR SERIAL NUMBER
  6871	007627'	263 17 0 00 000000 		RET			;DONE, RETURN
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 164
NCU	MAC	 6-Oct-81 12:41		SYSERR Routines

  6872					;SYRSTR - ROUTINE TO ADD A STRING TO A SYSERR ENTRY
  6873					;
  6874					;ACCEPTS IN T1/	BASE ADDRESS OF SYSERR ENTRY
  6875					;	    T2/	POINTER TO ASCIZ STRING TO ADD
  6876					;	    T3/	DESTINATION ADDRESS IN ENTRY FOR STRING
  6877					;		CALL SYRSTR
  6878					;RETURNS: +1	 FAILED
  6879					;	  +2	SUCCESS, WITH T1/ ADDRESS OF NEXT WORD TO USE IN SYSERR ENTRY
  6880					;			      T2/ -WORD COUNT,,OFFSET TO STRING
  6881
  6882	007630'	265 16 0 00 007542*	SYRSTR:	ASUBR <STRBLK,STRSTR,STRDST,STROFS>
  6883	007631'	200 04 0 15 000003 		MOVE T4,STRDST		;COPY ADDRESS WHERE NAME WILL GO
  6884	007632'	275 04 0 01 000004 		SUBI T4,.SYDAT(T1)	;COMPUTE OFFSET TO NAME IN ENTRY
  6885	007633'	200 01 0 15 000003 		MOVE T1,STRDST		;GET DESTINATION ADDRESS FOR STRING
  6886	007634'	505 01 0 00 440700 		HRLI T1,(POINT 7,)	;FORM POINTER TO WHERE STRING GOES
  6887	007635'	200 02 0 15 000002 		MOVE T2,STRSTR		;GET POINTER TO ASCIZ NODE NAME
  6888	007636'	402 00 0 00 000003 		SETZM T3		;TERMINATE ON NULL
  6889	007637'	104 00 0 00 000053 		SOUT			;ADD NODE NAME TO SYSERR ENTRY
  6890	007640'	133 00 0 00 000001 		IBP T1			;INCREMENT POINTER FOR MULTIPLES OF 5 BYTES
  6891	007641'	550 02 0 00 000001 		HRRZ T2,T1		;COPY CURRENT ADDRESS
  6892	007642'	200 03 0 15 000003 		MOVE T3,STRDST		;GET DESTINATION ADDRESS AGAIN
  6893	007643'	275 02 0 03 777777 		SUBI T2,-1(T3)		;COMPUTE NUMBER OF WORDS USED
  6894	007644'	210 02 0 00 000002 		MOVN T2,T2		;COMPUTE -WORD COUNT
  6895	007645'	504 04 0 00 000002 		HRL T4,T2		;COMPUTE -WORD COUNT,,OFFSET
  6896	007646'	200 02 0 00 000004 		MOVE T2,T4		;COPY -WORD COUNT,,OFFSET TO STRING
  6897	007647'	201 01 0 01 000001 		MOVEI T1,1(T1)		;POINT TO NEXT WORD IN SYSERR ENTRY
  6898	007650'	254 00 0 00 007606*		RETSKP			;DONE, RETURN
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 165
NCU	MAC	 6-Oct-81 12:41		SYSERR Routines

  6899					;SYRLOD - ROUTINE TO MAKE A SYSERR ENTRY WHEN A NODE IS LOADED
  6900					;
  6901					;ACCEPTS IN T1/	NICE RETURN CODE
  6902					;		CALL SYRLOD
  6903					;RETURNS: +1 ALWAYS
  6904
  6905	007651'	265 16 0 00 007630*	SYRLOD:	ASUBR <SYLCOD,SYLTGT,SYLSRV,SYLSVL>
  6906	007652'	265 16 0 00 007516*		STKVAR <SYLFIL,SYLSIZ,SYLBLK>
  6907	007653'	000003	000003
  6908
  6909					; ALLOCATE A BLOCK FOR THE SYSERR ENTRY
  6910
  6911	007654'	201 01 0 00 000050 		MOVX T1,MAXSYE		;GET MAX SIZE OF SYSERR ENTRIES
  6912	007655'	260 17 0 00 007275*		CALL GETFRE		;GO GET SOME FREE SPACE
  6913	007656'	254 00 0 00 013675'		 RETBAD (.NRRES)	;FAILED, RESOURCE ERROR
  6914	007657'	271 01 0 00 000001 		ADDI T1,1		;ALLOW FOR BLOCK HEADER
  6915	007660'	202 01 0 17 777774 		MOVEM T1,SYLBLK		;SAVE ADDRESS OF SYSERR BLOCK
  6916	007661'	200 04 0 17 777774 		MOVE T4,SYLBLK		;GET ADDRESS OF SYSERR ENTRY
  6917	007662'	561 01 0 04 000011 		HRROI T1,.SYLDD(T4)	;FORM POINTER TO DESTINATION
  6918
  6919					; PUT TARGET NODE NAME INTO ENTRY
  6920
  6921	007663'	552 01 0 15 000002 		HRRZM T1,SYLTGT		;SAVE ADDRESS OF TARGET NAME
  6922	007664'	200 02 0 14 000004 		MOVE T2,RQLTGT		;GET POINTER TO NAME OF TARGET NODE
  6923	007665'	402 00 0 00 000003 		SETZM T3		;ASCIZ STRING, ENDS IN NULL
  6924	007666'	104 00 0 00 000053 		SOUT			;PUT THE TARGET NODE NAME INTO ENTRY
  6925	007667'	320 16 0 00 007670'		 ERJMP .+1		;DO NOT DIE ON ERRORS
  6926	007670'	133 00 0 00 000001 		IBP T1			;POINT TO TERMINATING CHARACTER
  6927	007671'	561 01 0 01 000001 		HRROI T1,1(T1)		;FORM POINTER TO NEXT STRING IN ENTRY
  6928
  6929					; PUT NAME OF SERVER NODE INTO SYSERR ENTRY
  6930
  6931	007672'	552 01 0 15 000003 		HRRZM T1,SYLSRV		;SAVE ADDRESS OF SERVER NODE NAME
  6932	007673'	200 02 0 14 000005 		MOVE T2,RQLSRV		;GET POINTER TO NAME OF SERVER NODE
  6933	007674'	104 00 0 00 000053 		SOUT			;ADD SERVER NODE NAME STRING TO ENTRY
  6934	007675'	320 16 0 00 007676'		 ERJMP .+1		;DO NOT DIE ON ERRORS
  6935	007676'	133 00 0 00 000001 		IBP T1			;POINT TO TERMINATING CHARACTER
  6936	007677'	561 01 0 01 000001 		HRROI T1,1(T1)		;FORM POINTER TO NEXT STRING IN ENTRY
  6937
  6938					; PUT NAME OF SERVER LINE INTO SYSERR ENTRY
  6939
  6940	007700'	552 01 0 15 000004 		HRRZM T1,SYLSVL		;SAVE ADDRESS OF SERVER LINE NAME
  6941	007701'	120 02 0 14 000006 		DMOVE T2,RQLLIN		;GET SERVER LINE ID
  6942	007702'	260 17 0 00 010601'		CALL ASCLIN		;OUTPUT LINE AS ASCIZ
  6943	007703'	255 00 0 00 000000 		 JFCL			;IGNORE ERROR
  6944	007704'	133 00 0 00 000001 		IBP T1			;POINT TO TERMINATING CHARACTER
  6945	007705'	561 01 0 01 000001 		HRROI T1,1(T1)		;FORM POINTER TO NEXT STRING IN ENTRY
  6946						; ..
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 166
NCU	MAC	 6-Oct-81 12:41		SYSERR Routines

  6947						; ..
  6948
  6949					; PUT FILE-SPEC INTO SYSERR ENTRY
  6950
  6951	007706'	552 01 0 17 777776 		HRRZM T1,SYLFIL		;SAVE ADDRESS OF FILESPEC
  6952	007707'	200 02 0 14 000016 		MOVE T2,RQLOPS		;GET POINTER TO OPERATING SYSTEM FILE
  6953	007710'	402 00 0 00 000003 		SETZM T3		;TERMINATE ON NULL
  6954	007711'	104 00 0 00 000053 		SOUT			;ADD FILE SPEC TO SYSERR ENTRY
  6955	007712'	320 16 0 00 007713'		 ERJMP .+1		;DO NOT DIE ON ERRORS
  6956	007713'	133 00 0 00 000001 		IBP T1			;POINT TO TERMINATING CHARACTER
  6957
  6958					; ADD NICE RETURN CODE AND OFFSETS TO ENTRY
  6959
  6960	007714'	551 01 0 01 000001 		HRRZI T1,1(T1)		;KEEP JUST ADDRESS
  6961	007715'	274 01 0 17 777774 		SUB T1,SYLBLK		;COMPUTE SIZE OF SYSERR BLOCK
  6962	007716'	202 01 0 17 777775 		MOVEM T1,SYLSIZ		;SAVE SIZE OF SYSERR BLOCK
  6963	007717'	200 04 0 17 777774 		MOVE T4,SYLBLK		;GET ADDRESS OF SYSERR ENTRY
  6964	007720'	200 02 0 15 000001 		MOVE T2,SYLCOD		;GET NICE RETURN CODE
  6965	007721'	202 02 0 04 000010 		STOR T2,SYRCD,(T4)	;STORE RETURN CODE IN ENTRY
  6966	007722'	201 03 0 04 000004 		MOVEI T3,.SYDAT(T4)	;OFFSETS ARE FROM END OF HEADER
  6967	007723'	200 02 0 15 000002 		MOVE T2,SYLTGT		;GET ADDRESS OF TARGET STRING
  6968	007724'	274 02 0 00 000003 		SUB T2,t3		;COMPUTE OFFSET INTO SYSERR BLOCK
  6969	007725'	542 02 0 04 000004 		STOR T2,SYTGT,(T4)	;STORE OFFSET TO TARGET NODE NAME
  6970	007726'	200 02 0 15 000003 		MOVE T2,SYLSRV		;GET ADDRESS OF SERVER NODE NAME
  6971	007727'	274 02 0 00 000003 		SUB T2,T3		;COMPUTE OFFSET INTO SYSERR BLOCK
  6972	007730'	542 02 0 04 000005 		STOR T2,SYSRV,(T4)	;STORE OFFSET TO SERVER NODE NAME
  6973	007731'	200 02 0 15 000004 		MOVE T2,SYLSVL		;GET ADDRESS OF SERVER LINE STRING
  6974	007732'	274 02 0 00 000003 		SUB T2,T3		;COMPUTE OFFSET INTO SYSERR BLOCK
  6975	007733'	542 02 0 04 000006 		STOR T2,SYSVL,(T4)	;STORE OFFSET TO SERVER LINE NAME
  6976	007734'	200 02 0 17 777776 		MOVE T2,SYLFIL		;GET ADDRESS OF FILESPEC
  6977	007735'	274 02 0 00 000003 		SUB T2,T3		;COMPUTE OFFSET INTO SYSERR BLOCK
  6978	007736'	542 02 0 04 000007 		STOR T2,SYFIL,(T4)	;STORE OFFSET TO FILE SPEC
  6979	007737'	201 01 0 00 000202 		MOVEI T1,SY%LOD		;ASSUME LOADING OPERATION
  6980	007740'	200 02 0 17 777775 		MOVE T2,SYLSIZ		;GET SIZE OF ENTRY
  6981	007741'	275 02 0 00 000004 		SUBI T2,.SYDAT		;COMPUTE SIZE OF ENTRY MINUS HEADER
  6982	007742'	200 03 0 17 777774 		MOVE T3,SYLBLK		;GET ADDRESS OF ENTRY
  6983	007743'	260 17 0 00 007607'		CALL SYRHDR		;GO MAKE THE SYSERR HEADER
  6984	007744'	200 01 0 17 777774 		MOVE T1,SYLBLK		;GET ADDRESS OF SYSERR BLOCK
  6985	007745'	200 02 0 17 777775 		MOVE T2,SYLSIZ		;GET BACK SIZE OF BLOCK
  6986	007746'	104 00 0 00 000527 		SYERR			;MAKE A SYSERR ENTRY
  6987	007747'	320 16 0 00 007750'		 ERJMP .+1		;DO NOT DIE IF THIS FAILS
  6988
  6989					; RELEASE SYSERR BLOCK AND RETURN
  6990
  6991	007750'	200 01 0 17 777774 		MOVE T1,SYLBLK		;GET ADDRESS OF SYSERR BLOCK
  6992	007751'	275 01 0 00 000001 		SUBI T1,1		;RESTORE FREE BLOCK ADDRESS
  6993	007752'	260 17 0 00 007452*		CALL RELFRE		;RELEASE THE BLOCK
  6994	007753'	254 00 0 00 013623'		 FATAL.ERROR		; Die on release failure
  6995	007754'	263 17 0 00 000000 		RET			;DONE, RETURN
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 167
NCU	MAC	 6-Oct-81 12:41		SYSERR Routines

  6996					;SYRDMP - ROUTINE TO MAKE A SYSERR ENTRY WHEN A NODE IS DUMPED
  6997					;
  6998					;ACCEPTS IN T1/	NICE RETURN CODE
  6999					;		CALL SYRDMP
  7000					;RETURNS: +1 ALWAYS
  7001
  7002	007755'	265 16 0 00 007651*	SYRDMP:	ASUBR <SYDCOD,SYDTGT,SYDSRV,SYDSVL>
  7003	007756'	265 16 0 00 007652*		STKVAR <SYDFIL,SYDSIZ,SYDBLK>
  7004	007757'	000003	000003
  7005
  7006					; ALLOCATE A BLOCK FOR THE SYSERR ENTRY
  7007
  7008	007760'	201 01 0 00 000050 		MOVX T1,MAXSYE		;GET MAX SIZE OF SYSERR ENTRIES
  7009	007761'	260 17 0 00 007655*		CALL GETFRE		;GO GET SOME FREE SPACE
  7010	007762'	254 00 0 00 013675'		 RETBAD (.NRRES)	;FAILED, RESOURCE ERROR
  7011	007763'	271 01 0 00 000001 		ADDI T1,1		;ALLOW FOR BLOCK HEADER
  7012	007764'	202 01 0 17 777774 		MOVEM T1,SYDBLK		;SAVE ADDRESS OF SYSERR BLOCK
  7013	007765'	200 04 0 17 777774 		MOVE T4,SYDBLK		;GET ADDRESS OF SYSERR ENTRY
  7014	007766'	561 01 0 04 000011 		HRROI T1,.SYLDD(T4)	;FORM POINTER TO DESTINATION
  7015
  7016					; PUT TARGET NODE NAME INTO ENTRY
  7017
  7018	007767'	552 01 0 15 000002 		HRRZM T1,SYDTGT		;SAVE ADDRESS OF TARGET NAME
  7019	007770'	200 02 0 14 000022 		MOVE T2,RQDTGT		;GET POINTER TO NAME OF TARGET NODE
  7020	007771'	402 00 0 00 000003 		SETZM T3		;ASCIZ STRING, ENDS IN NULL
  7021	007772'	104 00 0 00 000053 		SOUT			;PUT THE TARGET NODE NAME INTO ENTRY
  7022	007773'	320 16 0 00 007774'		 ERJMP .+1		;DO NOT DIE ON ERRORS
  7023	007774'	133 00 0 00 000001 		IBP T1			;POINT TO TERMINATING CHARACTER
  7024	007775'	561 01 0 01 000001 		HRROI T1,1(T1)		;FORM POINTER TO NEXT STRING IN ENTRY
  7025
  7026					; PUT NAME OF SERVER NODE INTO SYSERR ENTRY
  7027
  7028	007776'	552 01 0 15 000003 		HRRZM T1,SYDSRV		;SAVE ADDRESS OF SERVER NODE NAME
  7029	007777'	200 02 0 14 000023 		MOVE T2,RQDSRV		;GET POINTER TO NAME OF SERVER NODE
  7030	010000'	104 00 0 00 000053 		SOUT			;ADD SERVER NODE NAME STRING TO ENTRY
  7031	010001'	320 16 0 00 010002'		 ERJMP .+1		;DO NOT DIE ON ERRORS
  7032	010002'	133 00 0 00 000001 		IBP T1			;POINT TO TERMINATING CHARACTER
  7033	010003'	561 01 0 01 000001 		HRROI T1,1(T1)		;FORM POINTER TO NEXT STRING IN ENTRY
  7034
  7035					; PUT NAME OF SERVER LINE INTO SYSERR ENTRY
  7036
  7037	010004'	552 01 0 15 000004 		HRRZM T1,SYDSVL		;SAVE ADDRESS OF SERVER LINE NAME
  7038	010005'	120 02 0 14 000024 		DMOVE T2,RQDLIN		;GET SERVER LINE ID
  7039	010006'	260 17 0 00 010601'		CALL ASCLIN		;OUTPUT LINE AS ASCIZ
  7040	010007'	255 00 0 00 000000 		 JFCL			;IGNORE ERROR
  7041	010010'	133 00 0 00 000001 		IBP T1			;POINT TO TERMINATING CHARACTER
  7042	010011'	561 01 0 01 000001 		HRROI T1,1(T1)		;FORM POINTER TO NEXT STRING IN ENTRY
  7043						; ..
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 168
NCU	MAC	 6-Oct-81 12:41		SYSERR Routines

  7044						; ..
  7045
  7046					; PUT FILE-SPEC INTO SYSERR ENTRY
  7047
  7048	010012'	552 01 0 17 777776 		HRRZM T1,SYDFIL		;SAVE ADDRESS OF FILESPEC
  7049	010013'	200 02 0 14 000027 		MOVE T2,RQDFIL		;GET POINTER TO OPERATING SYSTEM FILE
  7050	010014'	402 00 0 00 000003 		SETZM T3		;TERMINATE ON NULL
  7051	010015'	104 00 0 00 000053 		SOUT			;ADD FILE SPEC TO SYSERR ENTRY
  7052	010016'	320 16 0 00 010017'		 ERJMP .+1		;DO NOT DIE ON ERRORS
  7053	010017'	133 00 0 00 000001 		IBP T1			;POINT TO TERMINATING CHARACTER
  7054
  7055					; ADD NICE RETURN CODE AND OFFSETS TO ENTRY
  7056
  7057	010020'	551 01 0 01 000001 		HRRZI T1,1(T1)		;KEEP JUST ADDRESS
  7058	010021'	274 01 0 17 777774 		SUB T1,SYDBLK		;COMPUTE SIZE OF SYSERR BLOCK
  7059	010022'	202 01 0 17 777775 		MOVEM T1,SYDSIZ		;SAVE SIZE OF SYSERR BLOCK
  7060	010023'	200 04 0 17 777774 		MOVE T4,SYDBLK		;GET ADDRESS OF SYSERR ENTRY
  7061	010024'	200 02 0 15 000001 		MOVE T2,SYDCOD		;GET NICE RETURN CODE
  7062	010025'	202 02 0 04 000010 		STOR T2,SYRCD,(T4)	;STORE RETURN CODE IN ENTRY
  7063	010026'	201 03 0 04 000004 		MOVEI T3,.SYDAT(T4)	;OFFSETS ARE FROM END OF HEADER
  7064	010027'	200 02 0 15 000002 		MOVE T2,SYDTGT		;GET ADDRESS OF TARGET STRING
  7065	010030'	274 02 0 00 000003 		SUB T2,t3		;COMPUTE OFFSET INTO SYSERR BLOCK
  7066	010031'	542 02 0 04 000004 		STOR T2,SYTGT,(T4)	;STORE OFFSET TO TARGET NODE NAME
  7067	010032'	200 02 0 15 000003 		MOVE T2,SYDSRV		;GET ADDRESS OF SERVER NODE NAME
  7068	010033'	274 02 0 00 000003 		SUB T2,T3		;COMPUTE OFFSET INTO SYSERR BLOCK
  7069	010034'	542 02 0 04 000005 		STOR T2,SYSRV,(T4)	;STORE OFFSET TO SERVER NODE NAME
  7070	010035'	200 02 0 15 000004 		MOVE T2,SYDSVL		;GET ADDRESS OF SERVER LINE STRING
  7071	010036'	274 02 0 00 000003 		SUB T2,T3		;COMPUTE OFFSET INTO SYSERR BLOCK
  7072	010037'	542 02 0 04 000006 		STOR T2,SYSVL,(T4)	;STORE OFFSET TO SERVER LINE NAME
  7073	010040'	200 02 0 17 777776 		MOVE T2,SYDFIL		;GET ADDRESS OF FILESPEC
  7074	010041'	274 02 0 00 000003 		SUB T2,T3		;COMPUTE OFFSET INTO SYSERR BLOCK
  7075	010042'	542 02 0 04 000007 		STOR T2,SYFIL,(T4)	;STORE OFFSET TO FILE SPEC
  7076	010043'	201 01 0 00 000203 		MOVEI T1,SY%DMP		;ASSUME DUMPING OPERATION
  7077	010044'	200 02 0 17 777775 		MOVE T2,SYDSIZ		;GET SIZE OF ENTRY
  7078	010045'	275 02 0 00 000004 		SUBI T2,.SYDAT		;COMPUTE SIZE OF ENTRY MINUS HEADER
  7079	010046'	200 03 0 17 777774 		MOVE T3,SYDBLK		;GET ADDRESS OF ENTRY
  7080	010047'	260 17 0 00 007607'		CALL SYRHDR		;GO MAKE THE SYSERR HEADER
  7081	010050'	200 01 0 17 777774 		MOVE T1,SYDBLK		;GET ADDRESS OF SYSERR BLOCK
  7082	010051'	200 02 0 17 777775 		MOVE T2,SYDSIZ		;GET BACK SIZE OF BLOCK
  7083	010052'	104 00 0 00 000527 		SYERR			;MAKE A SYSERR ENTRY
  7084	010053'	320 16 0 00 010054'		 ERJMP .+1		;DO NOT DIE IF THIS FAILS
  7085
  7086					; RELEASE SYSERR BLOCK AND RETURN
  7087
  7088	010054'	200 01 0 17 777774 		MOVE T1,SYDBLK		;GET ADDRESS OF SYSERR BLOCK
  7089	010055'	275 01 0 00 000001 		SUBI T1,1		;RESTORE FREE BLOCK ADDRESS
  7090	010056'	260 17 0 00 007752*		CALL RELFRE		;RELEASE THE BLOCK
  7091	010057'	254 00 0 00 013623'		 FATAL.ERROR		; Die on release failure
  7092	010060'	263 17 0 00 000000 		RET			;DONE, RETURN
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 169
NCU	MAC	 6-Oct-81 12:41		SYSERR Routines

  7093					;SYRNCU - ROUTINE TO MAKE A SYSERR ENTRY WHEN NETCON IS STARTED UP
  7094					;
  7095					;CALL:		CALL SYRNCU
  7096					;RETURNS: +1 ALWAYS
  7097
  7098	010061'	265 16 0 00 007756*	SYRNCU::STKVAR <SYNBLK,SYNSIZ,SYNOFS>
  7099	010062'	000003	000003
  7100
  7101					; ALLOCATE A BLOCK FOR THE SYSERR ENTRY
  7102
  7103	010063'	201 01 0 00 000050 		MOVX T1,MAXSYE		;GET MAX SIZE OF SYSERR ENTRIES
  7104	010064'	260 17 0 00 007761*		CALL GETFRE		;GO GET SOME FREE SPACE
  7105	010065'	254 00 0 00 013675'		 RETBAD (.NRRES)	;FAILED, RESOURCE ERROR
  7106	010066'	271 01 0 00 000001 		ADDI T1,1		;ALLOW FOR BLOCK HEADER
  7107	010067'	202 01 0 17 777776 		MOVEM T1,SYNBLK		;SAVE ADDRESS OF SYSERR BLOCK
  7108
  7109					; ASSEMBLE THE SYSERR ENTRY
  7110
  7111	010070'	200 04 0 17 777776 		MOVE T4,SYNBLK		;GET ADDRESS OF SYSERR ENTRY
  7112	010071'	200 01 0 00 014223'		MOVX T1,VNETCON		;GET NETCON VERSION NUMBER
  7113	010072'	202 01 0 04 000004 		STOR T1,SYNCV,(T4)	;ADD NETCON VERSION NUMBER TO ENTRY
  7114	010073'	561 01 0 04 000007 		HRROI T1,.SYNDD(T4)	;FORM POINTER TO DESTINATION
  7115	010074'	561 02 0 00 010667'		HRROI T2,OURNAM		;GET POINTER TO THIS NODE'S NAME
  7116	010075'	402 00 0 00 000003 		SETZM T3		;TERMINATE ON NULL
  7117	010076'	104 00 0 00 000053 		SOUT			;ADD NODE NAME TO ENTRY
  7118	010077'	320 16 0 00 010100'		 ERJMP .+1		;DO NOT CRUMP ON ERROR
  7119	010100'	200 03 0 00 000001 		MOVE T3,T1		;COPY FINAL DESTINATION POINTER
  7120	010101'	275 03 0 04 000006 		SUBI T3,.SYNDD-1(T4)	;COMPUTE NUMBER OF WORDS IN STRING
  7121	010102'	210 03 0 00 000003 		MOVN T3,T3		;FORM WORD COUNT
  7122	010103'	504 03 0 00 000003 		HRL T3,T3		;FORM -WORD COUNT,,0
  7123	010104'	541 03 0 00 000003 		HRRI T3,.SYNDD-.SYDAT	;GET OFFSET TO NODE NAME STRING
  7124	010105'	202 03 0 04 000005 		STOR T3,SYNAM,(T4)	;ADD OFFSET TO NODE NAME TO ENTRY
  7125	010106'	561 01 0 01 000001 		HRROI T1,1(T1)		;POINT TO START OF NEXT WORD
  7126	010107'	552 01 0 17 777774 		HRRZM T1,SYNOFS		;SAVE OFFSET TO PROGRAM NAME
  7127	010110'	561 02 0 00 014142'		HRROI T2,[ASCIZ/NETCON/] ;GET PROGRAM NAME
  7128	010111'	402 00 0 00 000003 		SETZM T3		;TERMINATE ON NULL
  7129	010112'	104 00 0 00 000053 		SOUT			;ADD PROGRAM NAME TO ENTRY
  7130	010113'	320 16 0 00 010114'		 ERJMP .+1		;CONTINUE ON ERRORS
  7131	010114'	200 03 0 00 000001 		MOVE T3,T1		;COPY FINAL DESTINATION POINTER
  7132	010115'	274 03 0 17 777774 		SUB T3,SYNOFS		;COMPUTE WORD COUNT-1
  7133	010116'	211 03 0 03 000001 		MOVNI T3,1(T3)		;COMPUTE -WORD COUNT
  7134	010117'	504 03 0 00 000003 		HRL T3,T3		;FORM -WORD COUNT,,0
  7135	010120'	550 02 0 17 777774 		HRRZ T2,SYNOFS		;GET OFFSET TO START OF PROGRAM NAME
  7136	010121'	275 02 0 04 000004 		SUBI T2,.SYDAT(T4)	;COMPUTE OFFSET TO PROGRAM NAME STRING
  7137	010122'	540 03 0 00 000002 		HRR T3,T2		;COMPUTE -WORD COUNT,,OFFSET
  7138	010123'	202 03 0 04 000006 		STOR T3,SYPGM,(T4)	;STORE OFFSET TO PROGRAM NAME
  7139	010124'	551 01 0 01 000001 		HRRZI T1,1(T1)		;COMPUTE THE SIZE OF THIS
  7140	010125'	274 01 0 00 000004 		SUB T1,T4		; SYSERR ENTRY
  7141	010126'	202 01 0 17 777775 		MOVEM T1,SYNSIZ		;SAVE ENTRY SIZE
  7142	010127'	201 02 0 01 777774 		MOVEI T2,-.SYDAT(T1)	;GET JUST SIZE OF DATA PORTION
  7143	010130'	201 01 0 00 000201 		MOVEI T1,SY%NCU		;GET NETCON-STARTED ENTRY TYPE
  7144	010131'	200 03 0 17 777776 		MOVE T3,SYNBLK		;GET ADDRESS OF SYSERR ENTRY
  7145	010132'	260 17 0 00 007607'		CALL SYRHDR		;ADD THE HEADER INFO TO THE ENTRY
  7146						; ..
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 170
NCU	MAC	 6-Oct-81 12:41		SYSERR Routines

  7147						; ..
  7148
  7149					; MAKE THE SYSERR ENTRY
  7150
  7151	010133'	200 01 0 17 777776 		MOVE T1,SYNBLK		;GET ADDRESS OF SYSERR BLOCK
  7152	010134'	200 02 0 17 777775 		MOVE T2,SYNSIZ		;GET SIZE OF THE ENTRY
  7153	010135'	104 00 0 00 000527 		SYERR			;MAKE A SYSERR ENTRY
  7154	010136'	320 16 0 00 010137'		 ERJMP .+1		;FAILED, IGNORE FAILURE
  7155	010137'	200 01 0 17 777776 		MOVE T1,SYNBLK		;GET ADDRESS OF SYSERR BLOCK
  7156	010140'	275 01 0 00 000001 		SUBI T1,1		;RESTORE ADDRESS OF FREE BLOCK
  7157	010141'	260 17 0 00 010056*		CALL RELFRE		;RELEASE THE BLOCK
  7158	010142'	254 00 0 00 013623'		 FATAL.ERROR		; Die on release failure
  7159	010143'	263 17 0 00 000000 		RET			;DONE, RETURN
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 171
NCU	MAC	 6-Oct-81 12:41		Network Topology Change Server

  7160					SUBTTL	Network Topology Change Server
  7161
  7162					;ADVTOP - ROUTINE TO ADVISE THE MONITOR OF TOPOLOGY CHANGES
  7163					;
  7164					;ACCEPTS IN T1/	ADDRESS OF TOPOLOGY CHANGE PROTOCOL MESSAGE
  7165					;	    T2/	NUMBER OF BYTES IN MESSAGE
  7166					;		CALL ADVTOP
  7167					;RETURNS: +1	 FAILED
  7168					;	  +2	SUCCESS, WITH MONITOR NOTIFIED
  7169
  7170	010144'	265 16 0 00 004025*	ADVTOP::SAVEPQ
  7171	010145'	265 16 0 00 006773*		TRVAR <ADVPTR,ADVCNT,ADVUNI,ADVLST,ADVHST>
  7172	010146'	000005	000005
  7173	010147'	265 16 0 00 010061*		STKVAR <<ADVSTR,2>,<ADVSTK,30>>
  7174	010150'	000032	000032
  7175
  7176	010151'	202 01 0 15 000001 		MOVEM T1,ADVPTR		;SAVE POINTER TO MESSAGE
  7177	010152'	202 02 0 15 000002 		MOVEM T2,ADVCNT		;SAVE NUMBER OF BYTES IN MESSAGE
  7178	010153'	202 03 0 15 000005 		MOVEM T3,ADVHST		;SAVE POINTER TO HOST NODE NAME
  7179	010154'	402 00 0 15 000004 		SETZM ADVLST		;INITIALIZE ADR OF NODE LIST
  7180
  7181					; SET UP STACK OF BLOCKS TO RELEASE ON CLEANUP
  7182
  7183	010155'	541 11 0 17 777745 		HRRI P2,ADVSTK		;GET ADDRESS OF BLOCK STACK
  7184	010156'	275 11 0 00 000001 		SUBI P2,1		;FORM STACK POINTER TO
  7185	010157'	505 11 0 00 777750 		HRLI P2,-30		; CLEANUP PDL
  7186
  7187					; ASSIGN SPACE FOR NEW NODE LIST
  7188
  7189	010160'	201 01 0 00 000020 		MOVX T1,MAXTOP		;NUMBER OF NODES PLUS BLOCK HEADER
  7190	010161'	260 17 0 00 010064*		CALL GETFRE		;GET SOME FREE SPACE
  7191	010162'	254 00 0 00 013675'		 RETBAD (.NRRES)	;No more free space .. give error return
  7192	010163'	271 01 0 00 000001 		ADDI T1,1		;POINT TO START OF LIST
  7193	010164'	202 01 0 15 000004 		MOVEM T1,ADVLST		;SAVE ADDRESS OF NODE LIST
  7194	010165'	201 04 0 00 000020 		MOVX T4,MAXTOP		;GET MAX SIZE OF NODE LIST
  7195	010166'	202 04 0 01 000000 		MOVEM T4,(T1)		;INITIALIZE NODE LIST TABLE (TBLUK FORMAT)
  7196
  7197					; ASSIGN FREE SPACE FOR THE NODE JSYS ARG BLOCK
  7198
  7199	010167'	201 01 0 00 000454 		MOVX T1,^D300		;ALLOCATE LOTS OF SPACE FOR MANY NODE UNITS
  7200	010170'	260 17 0 00 010161*		CALL GETFRE		;ASSIGN SPACE
  7201	010171'	254 00 0 00 010271'		 JRST ADVTPX		;GO CLEAN UP FREE SPACE AND RETURN ERROR
  7202	010172'	261 11 0 00 000001 		PUSH P2,T1		;SAVE ADDRESS OF BLOCK ON CLEANUP STACK
  7203	010173'	271 01 0 00 000001 		ADDI T1,1		;POINT PAST BLOCK HEADER
  7204	010174'	200 05 0 00 000001 		MOVE Q1,T1		;SAVE ADDRESS OF NODE JSYS ARG BLOCK
  7205	010175'	201 10 0 01 000002 		MOVEI P1,.NDBK1(T1)	;GET POINTER TO NEXT ARG BLOCK ADR TO USE
  7206
  7207					; FIRST FIELD MUST BE THE COUNT OF THE NUMBER OF NODE UNITS FOLLOWING
  7208
  7209	010176'	375 00 0 15 000002 		SOSGE ADVCNT		;AT LEAST ONE BYTE ?
  7210	010177'	254 00 0 00 013542'		RETBAD (.NRIMF)		;NO, FAIL
  7211	010200'	134 04 0 15 000001 		ILDB T4,ADVPTR		;YES, GET FIELD TYPE
  7212	010201'	302 04 0 00 000007 		CAIE T4,.TPCNT		;COUNT OF NODE UNITS TO FOLLOW ?
  7213	010202'	254 00 0 00 010271'		JRST ADVTPX		;NO, FAIL
  7214	010203'	375 00 0 15 000002 		SOSGE ADVCNT		;AT LEAST ONE BYTE ?
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 171-1
NCU	MAC	 6-Oct-81 12:41		Network Topology Change Server

  7215	010204'	254 00 0 00 013542'		RETBAD (.NRIMF)		;NO, FAIL
  7216	010205'	134 04 0 15 000001 		ILDB T4,ADVPTR		;GET NUMBER OF NODE UNITS
  7217	010206'	202 04 0 15 000003 		MOVEM T4,ADVUNI		;SAVE NUMBER OF NODE UNITS TO FOLLOW
  7218	010207'	202 04 0 05 000000 		MOVEM T4,.NDNND(Q1)	;STORE NUMBER OF NODE UNITS IN NODE JSYS BLOCK
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 172
NCU	MAC	 6-Oct-81 12:41		Network Topology Change Server

  7219					; PROCESS THE NEXT NODE UNIT IN THE MESSAGE
  7220
  7221	010210'	375 00 0 15 000003 	ADVT10:	SOSGE ADVUNI		;ANOTHER NODE UNIT TO PROCESS ?
  7222						JRST [	SKIPE ADVCNT	;NO.  SHOULD BE NO MORE BYTES IN MESSAGE
  7223							JRST ADVTPX	;FAIL, MESSAGE TOO LONG
  7224	010211'	254 00 0 00 014224'			JRST ADVT30 ]	;DONE, NOTIFY MONITOR OF NEW TOPOLOGY
  7225	010212'	201 13 0 00 000000 		MOVEI P4,0		;INITIALIZE "LAST FIELD TYPE" SEEN
  7226	010213'	201 01 0 00 000004 		MOVX T1,.NDNBS+1	;GET NUMBER OF WORDS FOR NODE UNIT
  7227	010214'	260 17 0 00 010170*		CALL GETFRE		;ASSIGN A FREE BLOCK FOR NODE UNIT
  7228	010215'	254 00 0 00 010271'		 JRST ADVTPX		;FAILED, GO CLEAN UP
  7229	010216'	261 11 0 00 000001 		PUSH P2,T1		;ADD BLOCK TO CLEANUP LIST
  7230	010217'	271 01 0 00 000001 		ADDI T1,1		;POINT PAST HEADER BLOCK
  7231	010220'	202 01 0 10 000000 		MOVEM T1,(P1)		;STORE POINTER TO NODE UNIT IN ARG BLOCK
  7232	010221'	200 12 0 00 000001 		MOVE P3,T1		;GET ADDRESS OF NODE UNIT
  7233
  7234					; EXTRACT AND PROCESS EACH FIELD OF THE MESSAGE
  7235
  7236	010222'	375 02 0 15 000002 	ADVT20:	SOSGE T2,ADVCNT		;AT LEAST ONE BYTE ?
  7237	010223'	254 00 0 00 010254'		JRST ADVT30		;NO, MUST BE END OF MESSAGE
  7238	010224'	134 04 0 15 000001 		ILDB T4,ADVPTR		;YES, GET FIELD TYPE
  7239	010225'	301 04 0 00 000010 		CAIL T4,FTPLEN		;WITHIN VALID RANGE ?
  7240	010226'	254 00 0 00 010271'		JRST ADVTPX		;NO, FAIL
  7241	010227'	317 04 0 00 000013 		CAMG T4,P4		;NEXT FIELD HAVE HIGHER FIELD TYPE THAN LAST ?
  7242	010230'	254 00 0 00 010236'		JRST ADVT25		;NO, MUST BE NEXT NODE UNIT
  7243	010231'	200 13 0 00 000004 		MOVE P4,T4		;UPDATE "LAST FIELD SEEN"
  7244	010232'	200 01 0 15 000001 		MOVE T1,ADVPTR		;GET POINTER TO NEXT FIELD IN MESSAGE
  7245	010233'	260 17 1 04 010244'		CALL @FTPTAB(T4)	;YES, DISPATCH BASED ON FUNCTION CODE
  7246	010234'	254 00 0 00 010271'		 JRST ADVTPX		;FAILED, GO CLEAN UP
  7247	010235'	254 00 0 00 010222'		JRST ADVT20		;GO EXTRACT NEXT FIELD FROM MESSAGE
  7248
  7249					; HERE AT END OF EACH NODE UNIT
  7250
  7251	010236'	476 00 0 00 000004 	ADVT25:	SETOM T4		;DECREMENT BYTE POINTER BY ONE
  7252	010237'	133 04 0 15 000001 		ADJBP T4,ADVPTR		; BYTE BECAUSE WE'VE ALREADY PROCESSED
  7253	010240'	202 04 0 15 000001 		MOVEM T4,ADVPTR		; FIRST BYTE OF THE NEXT NODE UNIT
  7254	010241'	350 00 0 15 000002 		AOS ADVCNT		;AND UNDO DECREMENTING OF COUNT
  7255	010242'	271 10 0 00 000001 		ADDI P1,1		;POINT TO WHERE ADR OF NEXT NODE UNIT GOES
  7256	010243'	254 00 0 00 010210'		JRST ADVT10		;GO PROCESS NEXT NODE UNIT
  7257
  7258
  7259					; TABLE OF TOPOLOGY PROTOCOL FIELD PROCESSING ROUTINES
  7260
  7261	010244'	263 17 0 00 000000 	FTPTAB:	RET			;  0 ILLEGAL
  7262	010245'	000000	010302'			TPNOD			;  1 NODE NAME
  7263	010246'	000000	010330'			TPNUM			;  2 NODE NUMBER
  7264	010247'	000000	010335'			TPNST			;  3 NODE STATE
  7265	010250'	000000	010345'			TPLID			;  4 LINE ID
  7266	010251'	000000	010354'			TPLST			;  5 LINE STATE
  7267	010252'	000000	010360'			TPVER			;  6 VERSION INFO
  7268	010253'	000000	010361'			TPUNI			;  7 NODE UNITS TO FOLLOW
  7269
  7270			000010		FTPLEN==.-FTPTAB
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 173
NCU	MAC	 6-Oct-81 12:41		Network Topology Change Server

  7271					; HERE WHEN DONE WITH ALL NODE UNITS
  7272
  7273	010254'	201 01 0 00 000007 	ADVT30:	MOVX T1,.NDSNT		;GET "SET NETWORK TOPOLOGY" FUNCTION CODE
  7274	010255'	200 02 0 00 000005 		MOVE T2,Q1		;GET ADDRESS OF NODE JSYS ARG BLOCK
  7275	010256'	201 04 0 00 000003 		MOVX T4,.NDNBS		;GET SIZE OF A NODE BLOCK
  7276	010257'	202 04 0 02 000001 		MOVEM T4,.NDCNT(T2)	;STORE IN ARG BLOCK
  7277	010260'	104 00 0 00 000567 		NODE			;TELL MONITOR ABOUT NETWORK TOPOLOGY
  7278	010261'	320 16 0 00 010271'		 ERJMP ADVTPX		;FAILED, CLEAN UP AND RETURN ERROR
  7279
  7280					; CLEAN UP ALL THE FREE BLOCKS ON THE BLOCK STACK
  7281
  7282	010262'	574 01 0 00 000011 	ADVT40:	HLRE T1,P2		;GET STACK COUNTER
  7283	010263'	317 01 0 00 014227'		CAMG T1,[-30]		;MORE BLOCKS ON STACK ?
  7284						JRST [	MOVE T1,ADVLST	;NO, GET ADDRESS OF NODE LIST
  7285	010264'	254 00 0 00 014230'			RETSKP ]	;DONE. RETURN SUCCESS
  7286	010265'	262 11 0 00 000001 		POP P2,T1		;YES, GET BLOCK ADDRESS
  7287	010266'	260 17 0 00 010141*		CALL RELFRE		;RELEASE THE BLOCK
  7288	010267'	254 00 0 00 013623'		 FATAL.ERROR		;FAILED
  7289	010270'	254 00 0 00 010262'		JRST ADVT40		;LOOP OVER ALL BLOCKS ASSIGNED
  7290
  7291					; HERE ON AN ERROR TO CLEAN UP THE FREE BLOCKS
  7292
  7293	010271'	200 01 0 15 000004 	ADVTPX:	MOVE T1,ADVLST		;GET ADDRESS OF NODE LIST
  7294	010272'	260 17 0 00 010400'		CALL TOPFRE		;Release the topology table
  7295
  7296	010273'	574 01 0 00 000011 	ADVTX1:	HLRE T1,P2		;GET STACK COUNTER
  7297	010274'	317 01 0 00 014227'		CAMG T1,[-30]		;MORE BLOCKS ON STACK ?
  7298	010275'	263 17 0 00 000000 		RET			;NO, DONE. RETURN FAILURE
  7299	010276'	262 11 0 00 000001 		POP P2,T1		;YES, GET BLOCK ADDRESS
  7300	010277'	260 17 0 00 010266*		CALL RELFRE		;RELEASE THE BLOCK
  7301	010300'	254 00 0 00 013623'		 FATAL.ERROR		;FAILED
  7302	010301'	254 00 0 00 010273'		JRST ADVTX1		;LOOP OVER ALL BLOCKS ASSIGNED
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 174
NCU	MAC	 6-Oct-81 12:41		Network Topology Change Server

  7303					; ROUTINES TO PROCESS FIELDS FROM TOPOLOGY CHANGE MESSAGES
  7304
  7305	010302'	201 03 0 17 777775 	TPNOD:	MOVEI T3,ADVSTR		;GET ADDRESS OF TEMPORARY STRING AREA
  7306	010303'	505 03 0 00 440700 		HRLI T3,(POINT 7,)	;FORM POINTER TO TEMPORARY STRING DESTINATION
  7307	010304'	260 17 0 00 004474'		CALL GETIMA		;GET NODE NAME FROM MESSAGE
  7308	010305'	263 17 0 00 000000 		 RET			;FAILED, RETURN ERROR
  7309	010306'	202 01 0 15 000001 		MOVEM T1,ADVPTR		;SAVE POINTER TO NEXT FIELD
  7310	010307'	202 02 0 15 000002 		MOVEM T2,ADVCNT		;SAVE COUNT OF REMAINING BYTES
  7311	010310'	201 01 0 00 000000 		MOVEI T1,0		;NO OLD BLOCK TO RELEASE
  7312	010311'	201 02 0 17 777775 		MOVEI T2,ADVSTR		;GET ADDRESS WHERE STRING IS
  7313	010312'	505 02 0 00 440700 		HRLI T2,(POINT 7,)	;FORM POINTER TO STRING
  7314	010313'	201 03 0 00 000002 		MOVX T3,2		;NODE NAMES ARE TWO WORDS MAX
  7315	010314'	260 17 0 00 000000*		CALL CPYASC		;PUT NODE NAME IN A BLOCK
  7316	010315'	263 17 0 00 000000 		 RET			;FAILED, RETURN ERROR
  7317	010316'	202 01 0 12 000000 		MOVEM T1,.NDNAM(P3)	;STORE POINTER TO NODE NAME
  7318	010317'	515 02 0 01 000001 		HRLZI T2,1(T1)		;GET ADDRESS OF NODE NAME STRING
  7319	010320'	200 01 0 15 000004 		MOVE T1,ADVLST		;GET ADDRESS OF NODE LIST
  7320	010321'	104 00 0 00 000536 		TBADD			;ADD THIS NODE TO NODE LIST
  7321	010322'	320 16 0 00 007117*		 ERJMP R		;FAILED
  7322	010323'	200 01 0 12 000000 		MOVE T1,.NDNAM(P3)	;GET NODE NAME POINTER
  7323	010324'	200 02 0 15 000005 		MOVE T2,ADVHST		;GET POINTER TO SOURCE NODE NAME
  7324	010325'	260 17 0 00 010362'		CALL STOHST		;STORE SOURCE NODE NAME IF NEEDED
  7325	010326'	263 17 0 00 000000 		 RETBAD ()		;FAILED
  7326	010327'	254 00 0 00 007650*		RETSKP			;DONE, RETURN SUCCESS
  7327
  7328
  7329	010330'	260 17 0 00 005167'	TPNUM:	CALL GETEXB		;GET NODE NUMBER FROM MESSAGE
  7330	010331'	263 17 0 00 000000 		 RET			;FAILED, RETURN ERROR
  7331	010332'	202 01 0 15 000001 		MOVEM T1,ADVPTR		;SAVE POINTER TO NEXT FIELD
  7332	010333'	202 02 0 15 000002 		MOVEM T2,ADVCNT		;SAVE COUNT OF ITEMS IN MESSAGE
  7333									;IGNORE NODE NUMBER
  7334	010334'	254 00 0 00 010327*		RETSKP			;DONE, RETURN SUCCESS
  7335
  7336
  7337	010335'	375 00 0 15 000002 	TPNST:	SOSGE ADVCNT		;AT LEAST ONE BYTE IN THE MESSAGE ?
  7338	010336'	263 17 0 00 000000 		RET			;NO, FAIL
  7339	010337'	134 04 0 15 000001 		ILDB T4,ADVPTR		;YES, SKIP NODE STATE
  7340	010340'	202 04 0 12 000001 		MOVEM T4,.NDSTA(P3)	;STORE STATE IN NODE BLOCK
  7341	010341'	375 00 0 15 000002 		SOSGE ADVCNT		;ANOTHER BYTE IN MESSAGE ?
  7342	010342'	263 17 0 00 000000 		RET			;NO, FAIL
  7343	010343'	133 00 0 15 000001 		IBP ADVPTR		;YES, SKIP NODE TYPE
  7344	010344'	254 00 0 00 010334*		RETSKP			;DONE, RETURN SUCCESS
  7345
  7346
  7347	010345'	275 02 0 00 000005 	TPLID:	SUBI T2,5		;ENOUGH BYTES IN MESSAGE FOR A LINE ID ?
  7348	010346'	321 02 0 00 010322*		JUMPL T2,R		;NO, FAIL
  7349	010347'	202 02 0 15 000002 		MOVEM T2,ADVCNT		;SAVE NEW BYTE COUNT
  7350	010350'	201 01 0 00 000005 		MOVX T1,5		;GET NUMBER OF BYTES IN LINE ID
  7351	010351'	133 01 0 15 000001 		ADJBP T1,ADVPTR		;SKIP OVER LINE ID IN MESSAGE
  7352	010352'	202 01 0 15 000001 		MOVEM T1,ADVPTR		;SAVE POINTER TO NEXT FIELD
  7353	010353'	254 00 0 00 010344*		RETSKP			;DONE, RETURN SUCCESS
  7354
  7355
  7356	010354'	375 00 0 15 000002 	TPLST:	SOSGE ADVCNT		;AT LEAST ONE MORE BYTE ?
  7357	010355'	263 17 0 00 000000 		RET			;NO, FAIL
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 174-1
NCU	MAC	 6-Oct-81 12:41		Network Topology Change Server

  7358	010356'	133 00 0 15 000001 		IBP ADVPTR		;YES, SKIP TO NEXT FIELD IN MESSAGE
  7359	010357'	254 00 0 00 010353*		RETSKP			;DONE, RETURN SUCCESS
  7360
  7361
  7362	010360'	263 17 0 00 000000 	TPVER:	RET			;FAIL, VERSION SHOULD NOT APPEAR IN MIDDLE
  7363									;  OF TOPOLOGY INFORMATION
  7364
  7365
  7366	010361'	263 17 0 00 000000 	TPUNI:	RET			;FAIL, SHOULD NOT SEE NODE UNIT COUNT
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 175
NCU	MAC	 6-Oct-81 12:41		Network Topology Change Server

  7367
  7368					;STOHST - ROUTINE TO STORE THE SOURCE NODE NAME IN THE NODE BLOCK
  7369					;
  7370					;ACCEPTS IN T1/	POINTER TO NAME OF THIS NODE
  7371					;	    T2/	POINTER TO NAME OF SOURCE NODE
  7372					;		CALL STOHST
  7373					;RETURNS: +1	 FAILED
  7374					;	  +2	SUCCESS, POINTER STORED IF NEEDED
  7375
  7376	010362'	265 16 0 00 007755*	STOHST:	ASUBR <STHNOD,STHHST>
  7377
  7378	010363'	200 01 0 15 000001 		MOVE T1,STHNOD		;GET POINTER TO NODE NAME
  7379	010364'	200 02 0 15 000002 		MOVE T2,STHHST		;GET POINTER TO SOURCE NODE NAME
  7380	010365'	104 00 0 00 000540 		STCMP			;DID SOURCE TELL US ABOUT ITSELF ?
  7381	010366'	320 16 0 00 010346*		 ERJMP R		;FAILED, RETURN ERROR
  7382	010367'	322 01 0 00 010357*		JUMPE T1,RSKP		;YES, DO NOT STORE SOURCE NAME
  7383	010370'	200 01 0 15 000001 		MOVE T1,STHNOD		;GET NODE NAME
  7384	010371'	561 02 0 00 010667'		HRROI T2,OURNAM		;GET POINTER TO OUR NODE NAME
  7385	010372'	104 00 0 00 000540 		STCMP			;DID SOURCE NODE TELL US ABOUT US ?
  7386	010373'	320 16 0 00 010366*		 ERJMP R		;FAILED, RETURN ERROR
  7387	010374'	322 01 0 00 010367*		JUMPE T1,RSKP		;YES, DO NOT STORE SOURCE NAME
  7388	010375'	200 01 0 15 000002 		MOVE T1,STHHST		;NO, GET SOURCE NODE NAME
  7389	010376'	202 01 0 12 000002 		MOVEM T1,.NDNXT(P3)	;STORE IN NODE BLOCK
  7390	010377'	254 00 0 00 010374*		RETSKP			;DONE, RETURN
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 176
NCU	MAC	 6-Oct-81 12:41		Network Topology Change Server

  7391
  7392					;TOPFRE - Routine to release a topology table.
  7393					;
  7394					;Accepts in T1/ Address of topology table.
  7395					;
  7396					;Returns: +1	Always
  7397
  7398	010400'	265 16 0 00 010362*	TOPFRE:: ASUBR	<TOPTBL>	; Address of topology table
  7399	010401'	322 01 0 00 010373*		JUMPE T1,R		; If no address given .. just return
  7400	010402'	261 17 0 00 000010 		PUSH P,P1		; Save a register
  7401	010403'	554 10 0 01 000000 		HLRZ P1,(T1)		; Get count of entries in table
  7402	010404'	211 10 0 10 000001 		MOVNI P1,1(P1)		; Put count in LH for AOBJP index
  7403	010405'	517 00 0 00 000010 		HRLZS P1
  7404	010406'	541 10 0 01 000000 		HRRI P1,(T1)		; Get address of start of table
  7405
  7406	010407'	252 10 0 00 010417'	TPF.1:	AOBJP P1,TPF.D		; If no more entries .. return table block
  7407	010410'	336 01 0 10 000000 		SKIPN T1,(P1)		; Get address of node name entry
  7408	010411'	254 00 0 00 010407'		 JRST TPF.1		;  Not really there if zero .. move on
  7409	010412'	557 00 0 00 000001 		HLRZS T1		; Put into right half
  7410	010413'	275 01 0 00 000001 		SUBI T1,1		; Point to beginning of allocated block
  7411	010414'	260 17 0 00 010277*		CALL RELFRE		; Release the block
  7412	010415'	254 00 0 00 013623'		 FATAL.ERROR		;  Couldn't do it .. die
  7413	010416'	254 00 0 00 010407'		JRST TPF.1		; Go release the next entry
  7414
  7415	010417'	200 01 0 15 000001 	TPF.D:	MOVE T1,TOPTBL		; Get address of table again
  7416	010420'	275 01 0 00 000001 		SUBI T1,1		; Point to actual allocated block
  7417	010421'	260 17 0 00 010414*		CALL RELFRE		; Release the table
  7418	010422'	254 00 0 00 013623'		 FATAL.ERROR		;  Can't so crap out
  7419	010423'	262 17 0 00 000010 		POP P,P1		; Restore register (inane comment)
  7420	010424'	263 17 0 00 000000 		RET			; Return to caller
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 177
NCU	MAC	 6-Oct-81 12:41		Utility Routines

  7421					SUBTTL	Utility Routines
  7422
  7423					;STOSTR - ROUTINE TO STORE A STRING IN THE GENERAL STRING AREA
  7424					;
  7425					;ACCEPTS IN T1/	CURRENT ADDRESS OF STRING
  7426					;		CALL STOSTR
  7427					;RETURNS: +1	 FAILED, INSUFFICIENT ROOM TO STORE STRING
  7428					;	  +2	SUCCESS, WITH T1/ ADDRESS OF STRING IN STRING AREA
  7429
  7430	010425'	505 01 0 00 440700 	STOSTR:	HRLI T1,(POINT 7)	;FORM POINTER TO EXISTING STRING
  7431	010426'	200 02 0 14 000001 		MOVE T2,STRPTR		;GET POINTER TO WHERE STRING WILL GO
  7432	010427'	210 03 0 14 000000 		MOVN T3,STRSIZ		;GET # OF WORDS REMAINING IN STRING STORAGE AREA
  7433	010430'	221 03 0 00 000005 		IMULI T3,NCHPW		;COMPUTE -# OF CHARACTERS REMAINING IN AREA
  7434
  7435					; LOOP OVER EACH CHARACTER IN THE STRING, MOVING IT TO THE STRING AREA
  7436
  7437	010431'	347 03 0 00 010401*	STOST2:	AOJG T3,R		;RETURN FAILURE IF NO ROOM FOR NEXT CHARACTER
  7438	010432'	134 04 0 00 000001 		ILDB T4,T1		;GET NEXT CHARACTER IN STRING
  7439	010433'	136 04 0 14 000001 		IDPB T4,STRPTR		;STORE CHARACTER IN STRING AREA
  7440	010434'	326 04 0 00 010431'		JUMPN T4,STOST2		;IF NOT NULL, GO MOVE NEXT CHARACTER
  7441	010435'	350 01 0 14 000001 		AOS T1,STRPTR		;POINT TO NEXT FREE LOCATION IN STRING AREA
  7442	010436'	505 01 0 00 440700 		HRLI T1,(POINT 7,)	;POINT TO FIRST CHARACTER IN NEXT WORD
  7443	010437'	202 01 0 14 000001 		MOVEM T1,STRPTR		;SAVE NEW POINTER TO FREE LOC IN STRING AREA
  7444	010440'	200 04 0 14 000002 		MOVE T4,STREND		;GET ADDRESS OF LAST LOCATION IN STRING AREA
  7445	010441'	275 04 0 01 000001 		SUBI T4,1(T1)		;COMPUTE LENGTH OF REMAINING STRING AREA
  7446	010442'	202 04 0 14 000000 		MOVEM T4,STRSIZ		;SAVE NUMBER OF WORDS LEFT IN STRING AREA
  7447	010443'	200 01 0 00 000002 		MOVE T1,T2		;GET ORIGINAL POINTER TO STRING
  7448	010444'	254 00 0 00 010377*		RETSKP			;RETURN SUCCESS
  7449
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 178
NCU	MAC	 6-Oct-81 12:41		Utility Routines

  7450					;CLRMOP - ROUTINE TO CLEAR THE MOP MESSAGE AREA
  7451					;
  7452					;CALL:		CALL CLRMOP
  7453					;RETURNS: +1 ALWAYS
  7454
  7455	010445'	541 01 0 14 003034 	CLRMOP:	HRRI T1,1+MOPMSG	;GET ADDRESS OF MOP MESSAGE AREA + 1
  7456	010446'	505 01 0 01 777777 		HRLI T1,-1(T1)		;FORM ADDRESS,,ADDRESS+1 FOR BLT
  7457	010447'	402 00 0 14 003033 		SETZM MOPMSG		;CLEAR THE FIRST WORD OF THE AREA
  7458	010450'	251 01 0 14 003233 		BLT T1,MOPSIZ-1+MOPMSG	;CLEAR REMAINDER OF MOP MESSAGE AREA
  7459	010451'	263 17 0 00 000000 		RET			;RETURN
  7460
  7461					;CLRBOT - ROUTINE TO CLEAR THE BOOT JSYS ARGUMENT BLOCK
  7462					;
  7463					;CALL:		CALL CLRBOT
  7464					;RETURNS: +1 ALWAYS
  7465
  7466	010452'	541 01 0 14 003235 	CLRBOT:	HRRI T1,1+BTARG		;GET ADDRESS OF BOOT JSYS ARG BLOCK+1
  7467	010453'	505 01 0 01 777777 		HRLI T1,-1(T1)		;FORM ADDRESS,,ADDRESS+1 FOR BLT
  7468	010454'	402 00 0 14 003234 		SETZM BTARG		;CLEAR THE FIRST WORD OF THE AREA
  7469	010455'	251 01 0 14 003253 		BLT T1,BTSIZ-1+BTARG	;CLEAR REMAINDER OF AREA
  7470	010456'	263 17 0 00 000000 		RET			;RETURN
  7471
  7472					;CLRMSG - ROUTINE TO CLEAR THE NICE MESSAGE BLOCK
  7473					;
  7474					;CALL:		CALL CLRMSG
  7475					;RETURNS: +1 ALWAYS
  7476
  7477	010457'	541 01 0 14 000034 	CLRMSG:	HRRI T1,1+MSGBLK	;GET ADDRESS OF NICE MESSAGE AREA + 1
  7478	010460'	505 01 0 01 777777 		HRLI T1,-1(T1)		;FORM ADDRESS,,ADDRESS+1 FOR BLT
  7479	010461'	402 00 0 14 000033 		SETZM MSGBLK		;CLEAR THE FIRST WORD OF THE AREA
  7480	010462'	251 01 0 14 003032 		BLT T1,MSGSIZ-1+MSGBLK	;CLEAR REMAINDER OF NICE MESSAGE AREA
  7481	010463'	263 17 0 00 000000 		RET			;RETURN
  7482
  7483
  7484					;CHKLIN - ROUTINE TO CHECK A STANDARD NICE LINE ID
  7485					;
  7486					;ACCEPTS IN T3/	LINE DEVICE TYPE (.DTXXX),,LINE CONTROLLER NUMBER
  7487					;	    T4/	LINE UNIT NUMBER,,STATION ADDRESS
  7488					;		CALL CHKLIN
  7489					;RETURNS: +1	 FAILED, NO SUCH LINE. NICE RETURN CODE IN T1
  7490					;	  +2	SUCCESS, WITH T1/ DTE20 NUMBER
  7491
  7492	010464'	554 01 0 00 000003 	CHKLIN:	HLRZ T1,T3		;GET DEVICE TYPE CODE
  7493	010465'	302 01 0 00 000024 		CAIE T1,.DTDTE		;DTE TYPE DEVICE ?
  7494	010466'	254 00 0 00 013670'		RETBAD (.NRILN)		;NO, RETURN "INVALID LINE ID"
  7495	010467'	550 01 0 00 000004 		HRRZ T1,T4		;GET STATION ADDRESS
  7496	010470'	326 01 0 00 014127'		JUMPN T1,[RETBAD (.NRILN)] ;RETURN ERROR IF NOT CONTROLLER 0
  7497	010471'	550 01 0 00 000003 		HRRZ T1,T3		;GET CONTROLLER NUMBER (DTE20 NUMBER)
  7498	010472'	254 00 0 00 010444*		RETSKP			;DONE, RETURN SUCCESS
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 179
NCU	MAC	 6-Oct-81 12:41		Utility Routines

  7499					;SETPGM - ROUTINE TO GET A POINTER TO A FILESPEC GIVEN A PROGRAM TYPE
  7500					;	  AND A LOAD DEVICE.
  7501					;
  7502					;CALL:		CALL SETPGM
  7503					;RETURNS: +1	 FAILED, NO FILESPEC FOR THAT DEVICE/PROGRAM
  7504					;	  +2	SUCCESS, WITH T1/ POINTER TO ASCIZ FILESPEC
  7505
  7506	010473'	265 16 0 00 010147*	SETPGM:	STKVAR <SPGTAB>
  7507	010474'	000001	000001
  7508
  7509					; DETERMINE IF PROGRAM ABOUT TO BE LOADED IS AN OPERATING SYSTEM OR
  7510					; A BOOTSTRAP PROGRAM.
  7511
  7512	010475'	200 01 0 14 000014 		MOVE T1,RQLPGM		;GET PROGRAM TYPE TO BE LOADED (.PTXXX)
  7513	010476'	306 01 0 00 000002 		CAIN T1,.PTOPS		;ABOUT TO LOAD AN OPERATING SYSTEM ?
  7514						JRST [	MOVE T1,rqlops	;YES, GET POINTER TO PRIMARY FILESPEC
  7515	010477'	254 00 0 00 014232'			RETSKP ]	;DONE, RETURN SUCCESS
  7516
  7517					; LOADING A BOOTSTRAP - DETERMINE FILESPEC BASED ON LOAD DEVICE AND CPU
  7518
  7519	010500'	200 04 0 00 014234'		MOVE T4,[-MAXPGM,,PGMTAB] ;SET UP TO LOOP OVER ALL PROGRAM TABLE ENTRIES
  7520	010501'	554 01 0 04 000000 	SPGM10:	LOAD T1,PGLDV,(T4)	;GET LOAD DEVICE FROM THIS TABLE ENTRY
  7521	010502'	312 01 0 14 000012 		CAME T1,RQLLDV		;FOUND DESIRED LOAD DEVICE ?
  7522	010503'	254 00 0 00 010512'		JRST SPGM20		;NO, GO LOOK AT NEXT ENTRY
  7523	010504'	550 01 0 04 000000 		LOAD T1,PGCPU,(T4)	;GET CPU TYPE FROM THIS TABLE ENTRY
  7524	010505'	312 01 0 14 000013 		CAME T1,RQLCPU		;SAME AS TYPE OF SYSTEM BEING LOADED ?
  7525	010506'	254 00 0 00 010512'		JRST SPGM20		;NO, GO CHECK NEXT ENTRY
  7526	010507'	554 01 0 04 000001 		LOAD T1,PGPGM,(T4)	;GET PROGRAM TYPE CODE
  7527	010510'	316 01 0 14 000014 		CAMN T1,RQLPGM		;FOUND DESIRED PROGRAM TYPE ?
  7528	010511'	254 00 0 00 010515'		JRST SPGM30		;YES, GO GET THE FILESPEC
  7529	010512'	271 04 0 00 000002 	SPGM20:	ADDI T4,PGLEN-1		;SET UP TO POINT TO NEXT ENTRY
  7530	010513'	253 04 0 00 010501'		AOBJN T4,SPGM10		;NO, LOOP OVER ALL ENTRIES IN THE TABLE
  7531	010514'	263 17 0 00 000000 		RET			;FAIL, NO SUCH PROGRAM TYPE KNOWN
  7532
  7533	010515'	200 01 0 04 000002 	SPGM30:	LOAD T1,PGFIL,(T4)	;GET POINTER TO FILE-SPEC TO BE LOADED
  7534	010516'	254 00 0 00 010472*		RETSKP			;DONE, RETURN SUCCESS
  7535
  7536
  7537
  7538					;CVTDEV - ROUTINE TO CONVERT A DTE20 NUMBER INTO A STANDARD NICE
  7539					;	  LINE ID.
  7540					;
  7541					;ACCEPTS IN T1/	DTE20 NUMBER
  7542					;		CALL CVTDEV
  7543					;RETURNS: +1	 FAILED, INVALID DTE20 NUMBER
  7544					;	  +2	SUCCESS, WITH T2-T3/ STANDARD NICE LINE ID
  7545
  7546	010517'	301 01 0 00 000004 	CVTDEV::CAIL T1,MAXDTE		;VALID DTE20 NUMBER
  7547	010520'	254 00 0 00 013670'		RETBAD (.NRILN)		;NO, RETURN "INVALIID LINE ID"
  7548	010521'	205 02 0 00 000024 		MOVSI T2,.DTDTE		;GET DEVICE TYPE CODE
  7549	010522'	540 02 0 00 000001 		HRR T2,T1		;YES, GET CONTROLLER (DTE20 #)
  7550	010523'	402 00 0 00 000003 		SETZM T3		;NO UNIT OR CONTROLLER NUMBER
  7551	010524'	254 00 0 00 010516*		RETSKP			;DONE, RETURN SUCCESS
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 180
NCU	MAC	 6-Oct-81 12:41		Utility Routines

  7552					;GETNIB - ROUTINE TO RETURN THE ADDRESS OF THE NIB FOR A GIVEN NODE
  7553					;
  7554					;ACCEPTS IN T1/	POINTER TO ASCIZ NODE NAME
  7555					;		CALL GETNIB
  7556					;RETURNS: +1	 FAILURE, NO SUCH NODE IS KNOWN
  7557					;	  +2	SUCCESS, WITH T1/ ADDRESS OF NODE INFORMATION BLOCK
  7558
  7559	010525'	200 02 0 00 000001 	GETNIB::MOVE T2,T1		;GET STRING TO SEARCH FOR (NODE NAME)
  7560	010526'	201 01 0 00 011440'		MOVEI T1,NODTAB		;GET ADDRESS OF KNOWN NODE TABLE
  7561	010527'	104 00 0 00 000537 		TBLUK			;SEARCH FOR THE SPECIFIED NODE
  7562	010530'	320 16 0 00 010431*		 ERJMP R		;FAILED, RETURN ERROR
  7563	010531'	607 02 0 00 040000 		TXNN T2,TL%EXM		;EXACT MATCH ?
  7564	010532'	263 17 0 00 000000 		RET			;NO, RETURN FAILURE
  7565	010533'	550 01 0 01 000000 		HRRZ T1,(T1)		;GET ADDRESS OF NODE INFORMATION BLOCK
  7566	010534'	254 00 0 00 010524*		RETSKP			;RETURN SUCCESS
  7567
  7568
  7569
  7570					;ASGREC - ROUTINE TO ASSIGN A BLOCK TO HOLD A RECORD BEING SENT IN A
  7571					;	  SERIES OF MOP "LOAD RECORD" MESSAGES.
  7572					;
  7573					;ACCEPTS IN T1/ FLAGS:
  7574					;		  OF%RD IF INPUT IS TO BE DONE
  7575					;		  OF%WR IF OUTPUT IS TO BE DONE
  7576					;		CALL ASGREC
  7577					;RETURNS: +1	 FAILED, NO MORE BLOCKS AVAILABLE
  7578					;	  +2	SUCCESS, WITH T1/ ADDRESS OF BLOCK ASSIGNED
  7579
  7580	010535'	265 16 0 00 010400*	ASGREC:	ASUBR <ARBFLG>
  7581
  7582					;	MOVEI T1,RCTSIZ+MAXREC	;GET SIZE OF A RECORD BLOCK
  7583	010536'	201 01 0 00 000500 		MOVEI T1,500		;Big record size.. so that INPLDA doesn't
  7584									;read into area not assigned
  7585	010537'	260 17 0 00 010214*		CALL GETFRE		;GET A FREE BLOCK FOR THE RECORD BLOCK
  7586	010540'	263 17 0 00 000000 		 RETBAD ()		;FAILED, RETURN ERROR TO CALLER
  7587	010541'	200 03 0 15 000001 		MOVE T3,ARBFLG		;GET FLAGS
  7588	010542'	201 02 0 00 000004 		MOVX T2,BPWRD		;GET NUMBER OF PDP-11 BYTES PER -20 WORD
  7589	010543'	602 03 0 00 100000 		TXNE T3,OF%WR		;OUTPUT TO BE DONE ?
  7590	010544'	201 02 0 00 000000 		MOVEI T2,0		;YES, START WITH BYTE NUMBER 0
  7591	010545'	202 02 0 01 000002 		STOR T2,RBBYT,(T1)	;INITIALIZE THE NEXT BYTE TO READ
  7592	010546'	553 00 0 01 000001 		SETZRO RBJFN,(T1)	;INITIALIZE JFN FIELD FOR THIS ENTRY
  7593	010547'	201 04 0 01 000011 		MOVEI T4,.RBDAT(T1)	;GET OFFSET TO DATA AREA IN RECORD BLOCK
  7594	010550'	505 04 0 00 441000 		HRLI T4,(POINT 8,)	;FORM POINTER TO WHERE THE DATA GOES
  7595	010551'	202 04 0 01 000003 		STOR T4,RBPTR,(T1)	;STORE POINTER TO DESTINATION FOR DATA
  7596	010552'	254 00 0 00 010534*		RETSKP			;RETURN
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 181
NCU	MAC	 6-Oct-81 12:41		Utility Routines

  7597					;CHKDEV - ROUTINE TO VERIFY A DEVICE TYPE CODE
  7598					;
  7599					;ACCEPTS IN T1/	DEVICE TYPE CODE (.DTXXX)
  7600					;		CALL CHKDEV
  7601					;RETURNS: +1	 FAILED, DEVICE TYPE CODE IS INVALID
  7602					;	  +2	SUCCESS, DEVICE ISOK, T1/ POINTER TO ASCIZ DEV NAME
  7603
  7604	010553'	554 04 0 00 010633'	CHKDEV:	HLRZ T4,LINNAM		;GET NUMBER OF ENTRIES IN DEVICE TABLE
  7605	010554'	213 00 0 00 000004 		MOVNS T4		;GET -NUMBER OF ENTRIES
  7606	010555'	504 04 0 00 000004 		HRL T4,T4		;GET -TABLE SIZE,,0
  7607	010556'	541 04 0 00 010634'		HRRI T4,LINNAM+1	;FORM AOBJN POINTER TO SEARCH DEVICE TABLE
  7608
  7609	010557'	550 02 0 04 000000 	CHKDV1:	HRRZ T2,(T4)		;GET A DEVICE TYPE FROM TABLE
  7610	010560'	316 02 0 00 000001 		CAMN T2,T1		;FOUND DESIRED DEVICE TYPE CODE ?
  7611	010561'	254 00 0 00 010564'		JRST CHKDV2		;YES, GO ADD NAME TO STRING
  7612	010562'	253 04 0 00 010557'		AOBJN T4,CHKDV1		;LOOP OVER ALL TABLE ENTRIES
  7613	010563'	263 17 0 00 000000 		RET			;NOT FOUND, FAILED
  7614
  7615	010564'	544 01 0 04 000000 	CHKDV2:	HLR T1,(T4)		;GET ADDRESS OF DEVICE NAME STRING
  7616	010565'	505 01 0 00 440700 		HRLI T1,(POINT 7,)	;FORM POINTER TO NAME
  7617	010566'	254 00 0 00 010552*		RETSKP			;DONE, SUCCESS
  7618
  7619
  7620
  7621					;FNDTGT - ROUTINE TO FIND A TARGET NODE'S NIB GIVEN A LINE ADJACENCY TABLE
  7622					;	  AND A SERVER LINE ID.
  7623					;
  7624					;ACCEPTS IN T1/	ADDRESS OF A LINE ADJACENCEY TABLE
  7625					;	    T2-T3/ STANDARD LINE ID
  7626					;		CALL FNDTGT
  7627					;RETURNS: +1	 FAILED, NICE RETURN CODE IN T1
  7628					;	  +2	SUCCESS, WITH T1/ ADDRESS OF NIB FOR NODE AT END OF THE
  7629					;				  GIVEN SERVER LINE.
  7630
  7631	010567'	205 04 0 00 777773 	FNDTGT:	MOVSI T4,-MXLNOD	;SET UP TO LOOP OVER EACH ENTRY IN THE TABLE
  7632
  7633	010570'	200 16 0 01 000002 	FTGT10:	JE LTUSE,(T1),FTGT20	;IF THIS ENTRY NOT IN USE, GO ON TO NEXT ENTRY
  7634	010571'	325 16 0 00 010576'
  7635	010572'	316 02 0 01 000000 		CAMN T2,0(T1)		;TYPE AND CONTROLLER NUMBER COMPARE ?
  7636	010573'	312 03 0 01 000001 		CAME T3,1(T1)		;  AND ALSO UNIT NUMBER AND STATION ADDRESS ?
  7637	010574'	334 00 0 00 000000 		SKIPA			;NO, GO CHECK NEXT ENTRY
  7638						JRST [	LOAD T1,LTNIB,(T1) ;YES, GET ADDRESS OF NIB FOR TARGET NODE
  7639	010575'	254 00 0 00 014235'			RETSKP ]	;DONE, RETURN SUCCESS
  7640	010576'	271 01 0 00 000004 	FTGT20:	ADDI T1,LATSIZ		;FORM ADDRESS OF NEXT ENTRY IN TABLE
  7641	010577'	253 04 0 00 010570'		AOBJN T4,FTGT10		;LOOP OVER ALL ENTRIES IN TABLE
  7642	010600'	254 00 0 00 013544'		RETBAD (.NRICF)		;ENTRY NOT FOUND, RETURN "DATABASE ERROR"
  7643
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 182
NCU	MAC	 6-Oct-81 12:41		Utility Routines

  7644					;ASCLIN - ROUTINE TO CONVERT A STANDARD NICE LINE ID TO A STRING
  7645					;
  7646					;ACCEPTS IN T1/	DESTINATION POINTER FOR STRING
  7647					;	    T2-T3/ NICE LINE ID
  7648					;		CALL ASCLIN
  7649					;RETURNS: +1	 FAILED
  7650					;	  +2	SUCCESS, WITH T1/ UPDATED DESTINATION POINTER
  7651
  7652	010601'	265 16 0 00 010535*	ASCLIN::ASUBR <ASLPTR,<ASLLIN,2>>
  7653
  7654					; ADD DEVICE TYPE NAME TO THE STRING
  7655
  7656	010602'	554 01 0 15 000002 		HLRZ T1,ASLLIN		;GET DEVICE TYPE CODE (.DTXXX)
  7657	010603'	260 17 0 00 010553'		CALL CHKDEV		;GO CHECK DEVICE TYPE
  7658	010604'	263 17 0 00 000000 		 RET			;FAILED, BAD DEVICE
  7659	010605'	200 02 0 00 000001 		MOVE T2,T1		;COPY POINTER TO DEVICE NAME STRING
  7660	010606'	200 01 0 15 000001 		MOVE T1,ASLPTR		;GET DESTINATION POINTER
  7661	010607'	402 00 0 00 000003 		SETZM T3		;TERMINATE ON NULL
  7662	010610'	104 00 0 00 000053 		SOUT			;ADD DEVICE TYPE TO TABLE
  7663
  7664					; ADD CONTROLLER, UNIT, AND STATION TO DESTINATION STRING
  7665
  7666	010611'	201 04 0 00 000137 		MOVX T4,"_"		;GET UNDERSCORE
  7667	010612'	136 04 0 00 000001 		IDPB T4,T1		;ADD UNDERSCORE TO DESTINATION STRING
  7668	010613'	550 02 0 15 000002 		HRRZ T2,ASLLIN		;GET CONTROLLER NUMBER
  7669	010614'	201 03 0 00 000010 		MOVX T3,10		;USE OCTAL
  7670	010615'	104 00 0 00 000224 		NOUT			;ADD CONTROLLER TO STRING
  7671	010616'	320 16 0 00 010530*		 ERJMP R		;FAILED, RETURN ERROR
  7672	010617'	136 04 0 00 000001 		IDPB T4,T1		;ADD UNDERSCORE TO STRING
  7673	010620'	554 02 0 15 000003 		HLRZ T2,1+ASLLIN	;GET UNIT NUMBER
  7674	010621'	104 00 0 00 000224 		NOUT			;ADD UNIT TO STRING
  7675	010622'	320 16 0 00 010616*		 ERJMP R		;FAILED, RETURN ERROR
  7676	010623'	550 02 0 15 000003 		HRRZ T2,1+ASLLIN	;GET STATION ADDRESS
  7677	010624'	336 00 0 00 000002 		SKIPN T2		;If the station number is zero
  7678						 JRST [	HLRZ T2,ASLLIN	; Get device type code (.DTXXX)
  7679							CAIE T2,.DTKDP	; Check for KDP
  7680							CAIN T2,.DTKDZ	; or KDZ
  7681							SKIPA		; Yes .. output a tab
  7682							RETSKP		; No .. just return
  7683							MOVEI T2,.CHTAB	; Get a tab
  7684							BOUT		; Put it instead of _n
  7685	010625'	254 00 0 00 014237'			RETSKP]		; And return
  7686	010626'	136 04 0 00 000001 		IDPB T4,T1		;ADD UNDERSCORE TO STRING
  7687	010627'	104 00 0 00 000224 		NOUT			;ADD STATION TO STRING
  7688	010630'	320 16 0 00 010622*		 ERJMP R		;FAILED, RETURN ERROR
  7689	010631'	254 00 0 00 010566*		RETSKP			;DONE, RETURN WITH UPDATED POINTER IN T1
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 183
NCU	MAC	 6-Oct-81 12:41		Constants and Tables

  7690					SUBTTL Constants and Tables
  7691
  7692					; INTERVAL BETWEEN LINE COUNTER LOGGINGS IN SYSERR FILE
  7693
  7694	010632'	000015	567200		LOGTIM::EXP ^D60*^D60*^D1000
  7695
  7696
  7697					; TABLE OF DEVICE NAME/DEVICE TYPE CORRESPONDENCES
  7698
  7699	010633'	000016	000015		LINNAM:	LINSIZ,,LINSIZ-1
  7700	010634'	014247'	000010			TB (.DTA11,DA11A)
  7701	010635'	014251'	000020			TB (.DTL1A,DL11A)
  7702	010636'	014253'	000004			TB (.DTL1E,DL11E)
  7703	010637'	014255'	000016			TB (.DTDLV,DLV11)
  7704	010640'	014257'	000014			TB (.DTDMC,DMC11)
  7705	010641'	014261'	000000			TB (.DTP11,DP11)
  7706	010642'	014262'	000006			TB (.DTQ11,DQ11)
  7707	010643'	014263'	000024			TB (.DTDTE,DTE20)
  7708	010644'	014265'	000002			TB (.DTU11,DU11)
  7709	010645'	014266'	000012			TB (.DTDUP,DUP11)
  7710	010646'	014270'	000026			TB (.DTDV1,DV11)
  7711	010647'	014271'	000034			TB (.DTKDP,KDP)
  7712	010650'	014272'	000036			TB (.DTKDZ,KDZ)
  7713			000016		LINSIZ=.-LINNAM
  7714
  7715
  7716					; TABLE OF NETCON DEVICE TYPE/SYSERR DEVICE TYPE CORRESPONDENCE
  7717
  7718	010651'	000015	000024		HDWTB:	.SYDTE,,.DTDTE
  7719	010652'	000003	000034			.SYKDP,,.DTKDP
  7720	010653'	000027	000012			.SYDUP,,.DTDUP
  7721	010654'	000005	000014			.SYDMC,,.DTDMC
  7722
  7723			000004			HDWSZ==.-HDWTB
  7724
  7725
  7726
  7727					; BYTE POINTER TABLES
  7728
  7729	010655'	000000	010663'		PTRTAB:	.PTSLD,,SLDTAB		;POINTERS FOR LOADING SECONDARY BOOTSTRAPS
  7730	010656'	000002	010657'			.PTOPS,,OPSTAB		;POINTERS FOR LOADING OPERATING SYSTEMS
  7731
  7732			000002			PTRSIZ==.-PTRTAB
  7733
  7734
  7735	010657'	34 10 0 03 000000 	OPSTAB:	POINT 8,(T3),7
  7736	010660'	24 10 0 03 000000 		POINT 8,(T3),15
  7737	010661'	14 10 0 03 000000 		POINT 8,(T3),23
  7738	010662'	04 10 0 03 000000 		POINT 8,(T3),31
  7739
  7740	010663'	24 10 0 03 000000 	SLDTAB:	POINT 8,(T3),15
  7741	010664'	34 10 0 03 000000 		POINT 8,(T3),7
  7742	010665'	04 10 0 03 000000 		POINT 8,(T3),31
  7743	010666'	14 10 0 03 000000 		POINT 8,(T3),23
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 184
NCU	MAC	 6-Oct-81 12:41		Constants and Tables

  7744
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 185
NCU	MAC	 6-Oct-81 12:41		Variable Data Storage

  7745					SUBTTL	Variable Data Storage
  7746
  7747					;NETCON FREE SPACE AND VARIABLES
  7748
  7749
  7750					; LOGGING PROCESS PAGES
  7751
  7752			000300		LOGFFP==300			;FIRST FREE PAGE FOR LOGGING PROCESS
  7753			000010		NLOGPG==10			;NUMBER OF PAGES FOR THE LOGGING PROCESS
  7754
  7755					;START OF SPACE THAT IS ZEROED AT PROGRAM START UP
  7756
  7757	010667'				BEGFRE::
  7758
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 186
NCU	MAC	 6-Oct-81 12:41		Variable Data Storage

  7759	010667'				OURNAM::BLOCK 2			;NAME OF NODE NETCON IS RUNNING ON
  7760	010671'				OURNUM::BLOCK 1			;OUR NODE NUMBER
  7761
  7762	010672'	000000	000000		EXCUTR::0			;POINTER TO EXECUTOR NAME
  7763
  7764			000020			ERRSTL==20		;LENGTH OF ERROR STRING
  7765	010673'				ERRSTR::BLOCK ERRSTL		;USED BY ERROR TO HOLD ERROR STRING
  7766
  7767	010713'	000000	000000		LEV1PC::0			;LEVEL 1 PC ADDRESS
  7768	010714'	000000	000000		LEV2PC::0
  7769	010715'	000000	000000		LEV3PC::0
  7770
  7771	010716'	000000	000000		L1SAV1::0			;AC SAVE AREA
  7772	010717'	000000	000000		L1SAV2::0
  7773	010720'	000000	000000		L1SAV3::0
  7774	010721'	000000	000000		L1SAV4::0
  7775	010722'	000000	000000		L1SAVC::0
  7776
  7777	010723'	000000	000000		L2SAV1::0
  7778	010724'	000000	000000		L2SAV2::0
  7779	010725'	000000	000000		L2SAV3::0
  7780	010726'	000000	000000		L2SAV4::0
  7781	010727'	000000	000000		L2SAVC::0
  7782
  7783	010730'	000000	000000		L3SAV1::0
  7784	010731'	000000	000000		L3SAV2::0
  7785	010732'	000000	000000		L3SAV3::0
  7786	010733'	000000	000000		L3SAV4::0
  7787	010734'	000000	000000		L3SAVC::0
  7788
  7789					;NCU VARIABLE DEFINITIONS
  7790
  7791	010735'				SAVRET:	BLOCK 1			;RETURN ADDRESS OF CMDINI CALLER
  7792	010736'				SAVREP:	BLOCK 1			;SAVED STACK POINTER TO RESTORE ON REPARSE
  7793	010737'				RHDWC1:	BLOCK 1			;RETURN PC FOR INTERRUPT LEVEL 1
  7794	010740'				RHDWC2:	BLOCK 1			;RETURN PC FOR INTERRUPT LEVEL 2
  7795	010741'				RHDWC3:	BLOCK 1			;RETURN PC FOR INTERRUPT LEVEL 3
  7796
  7797
  7798	010742'				NXTNIB::BLOCK 1			;NEXT FREE NODE INFORMATION BLOCK
  7799	010743'				NXTLIN::BLOCK 1			;NEXT FREE LINE TABLE IN ADJTAB
  7800
  7801
  7802	010744'				TMPSTR:	BLOCK 50		;TEMPORARY STRING STORAGE LOCATION
  7803	011014'				NXTTIM:	BLOCK 1			;REMAINING CURRENT TIME INTERVAL
  7804	011015'				EVTSEQ::BLOCK 1			;NEXT SEQUENCE NUMBER FOR EVENT LOGGING MESSAGES
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page 187
NCU	MAC	 6-Oct-81 12:41		Variable Data Storage

  7805
  7806					;GLOBAL STORAGE DEFINITIONS
  7807
  7808
  7809					; PROGRAM TABLE USED TO DETERMINE WHAT BOOTSTRAP FILE TO LOAD
  7810
  7811	011016'				PGMTAB::BLOCK PGLEN*MAXPGM	;TABLE OF BOOT FILE-DEVICE/CPU CORRESPONDENCE
  7812
  7813
  7814					; LINE TABLES CONTAINING INFO FOR LINE SERVICE PART OF PROGRAM
  7815
  7816	011046'				LINTAB:	BLOCK MAXNOD*MXLNOD	;NUMBER OF NODES * NUMBER OF LINES/NODE
  7817
  7818					; TABLE OF NODE NAMES FOR COMMAND PARSING (TBLUK JSYS FORMAT)
  7819
  7820	011440'	000000	000062		NODTAB::0 ,, MAXNOD		;CURRENT,,MAX NUMBER OF ENTRIES
  7821	011441'					BLOCK MAXNOD		;ALLOCATE SPACE FOR MAX NUMBER OF NODES
  7822
  7823	011523'				LOGFLG:	BLOCK 1			;NON-ZERO IF LOGGING PROBLEMS GET REPORTED
  7824
  7825
  7826			011523'		LSTFRE==:.-1			;LAST LOCATION IN ZEROED FREE SPACE
  7827
  7828	011524'				ITPTR:	BLOCK 1			;INPUT TRACING POINTER
  7829	011525'				OTPTR:	BLOCK 1			;OUTPUT TRACING POINTER
  7830	011526'				LOGPDL:	BLOCK PDLEN		;LOGGER PROCESS PDL
  7831
  7832
  7833						XLIST			;THE LITERALS ARE ASSEMBLED IN THIS
  7834						LIST			; "XLIST'ED" CODE.
  7835
  7836
  7837						END

NO ERRORS DETECTED

PROGRAM BREAK IS 014517
CPU TIME USED 01:19.999

141P CORE USED
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page S-1
NCU	MAC	 6-Oct-81 12:41		SYMBOL TABLE

ADVT10		010210'		DEFRQL		004061'		EVTASC		004057'		GETRQD		004311'		
ADVT20		010222'		DEVFLD		004716'		EVTDSP		004643'		GETRQL		004252'		
ADVT25		010236'		DFD010		004172'		EVTEXA		003316'		GETSEQ		005221'		
ADVT30		010254'		DFD020		004207'		EVTHDW		003503'		GETSID		004377'		
ADVT40		010262'		DFD030		004220'		EVTHDX		003546'		GETTWO		004625'	int	
ADVTOP		010144'	int	DFD040		004227'		EVTLEN		000017	spd	GIA010		004507'		
ADVTPX		010271'		DIABAS		002036'		EVTSEQ		011015'	int	GIA020		004514'		
ADVTX1		010273'		DIAMEM		002047'		EVTSFT		004060'		GIA030		004524'		
AIC	104000	000131	int	DIAXFR		002110'		EVTSIZ		000006	spd	GIB010		004544'		
ASCLIN		010601'	int	DIC	104000	000133	int	EVTSYR		004025'		GIB020		004551'		
ASCPRS		001400'		DISMS	104000	000167	int	EVTTAB		003310'		GIB030		004555'		
ASGPAG		003254'	ext	DLGTAB		002032'		EVTTOP		003403'		GJ%FOU	400000	000000	sin	
ASGREC		010535'		DLOCK		001751'	ext	EVTTPX		003466'		GJ%OLD	100000	000000	sin	
BEGFRE		010667'	int	DMPEND		000674'		EXCUTR		010672'	int	GJ%SHT	000001	000000	sin	
BIN	104000	000050	int	DMPMAX		000004	spd	EXTAS2		005157'		GTAD	104000	000227	int	
BINHDR		000006	spd	DMPMEM		000702'		EXTBIT		000200	spd	GTBT10		006546'		
BOOT	104000	000562	int	DMPSET		000711'		FB%BSZ	007700	000000	sin	GTFDB	104000	000063	int	
BOUT	104000	000051	int	DMPTAB		000670'		FLTYPE		007035'		GTJFN	104000	000020	int	
BPWRD		000004	spd	DO%ADR		000010	spd	FNDCTL		003763'		GTLALL		004575'		
BT%BEL	400000	000000	sin	DO%FIL		000004	spd	FNDDSP		003773'	ext	GTLSTD		004577'		
BT%ZRO	400000	000000	sin	DO%TGT		000003	spd	FNDTGT		010567'		GTLSTR		004612'		
BTSIZ		000020	spd	DOLOG		003243'		FNDUDR		001411'		GTLTAB		004572'		
BYTTAB		006600'		DOLOGX		003303'		FRELST		000000	ext	GTP010		004435'		
CALL	260740	000000		DRQ010		004076'		FTGT10		010570'		HALTF	104000	000170	int	
CALLRE	254000	000000	spd	DRQ020		004113'		FTGT20		010576'		HDW010		003521'		
CHKDEV		010553'		DRQ030		004130'		FTPLEN		000010	spd	HDW015		003527'		
CHKDV1		010557'		DRQ040		004143'		FTPTAB		010244'		HDW020		003555'		
CHKDV2		010564'		DRQ050		004154'		FTYPLN		000004	spd	HDWLEN		000016	spd	
CHKLIN		010464'		DTEDMP		006426'		FTYTAB		006657'		HDWSZ		000004	spd	
CHKLOG		007220'		DTEGO		006521'		FTYTBZ		000005	spd	HDWTAB		003530'		
CHKMMR		003155'		DTEINI		006507'		GEB010		005172'		HDWTB		010651'		
CHKMOP		002460'		DTERCV		006455'		GET4		005142'		HSTDEV		004003'		
CHL010		007232'		DTESLD		006360'		GETBPW		004407'		HSTMCD		004017'		
CHL020		007243'		DTESND		006374'		GETCPU		004367'		HSTNOD		004021'		
CIS	104000	000141	int	DTESTP		006346'		GETEVT		005225'		HSTOPS		004015'		
CLOF10		006704'		DTEWAT		006414'		GETEXA		005156'		HSTRCV		004013'		
CLOSF	104000	000022	int	DVFLD2		004747'		GETEXB		005167'	int	HSTREG		004005'		
CLRBOT		010452'		EIR	104000	000126	int	GETFCN		004340'		HSTRSN		004011'		
CLRMOP		010445'		ELOCK		001724'	ext	GETFLD		004635'		HSTTHR		004023'		
CLRMSG		010457'		ERJMP	320700	000000	int	GETFRE		010537'	ext	HSTUPT		004007'		
CLSOFL		006675'		ERROR		013623'	ext	GETIMA		004474'	int	HTPLEN		000005	spd	
CPYASC		010314'	ext	ERRSTL		000020	spd	GETIMB		004530'		HTPTAB		003776'		
CVTDEV		010517'	int	ERRSTR		010673'	int	GETLDV		004363'		IBLK10		006713'		
CVTHDW		003771'		ESTLID		003501'		GETLIN		004560'	int	IBLK20		006753'		
CVTNUM		001457'		ESTNOD		003477'		GETLNK		007140'		IBLK30		006763'		
CX		000016		ESTRSN		003475'		GETLOC		004625'	spd	IDCNV	104000	000223	int	
CZ%ABT	004000	000000	sin	ETP010		003412'		GETMEM		004613'		INIDMP		200000	spd	
DATFLD		004662'		ETP015		003420'		GETNIB		010525'	int	INIP10		002544'		
DBOOT		002621'		ETP020		003436'		GETNOD		005205'	int	INIPRO		002521'		
DEBRK	104000	000136	int	ETP030		003450'		GETNUM		005155'	int	INPBYT		006535'		
DEFBPW		004230'		ETP040		003456'		GETOPS		004416'		INPCNT		007027'		
DEFCNT	000001	000000	spd	ETPLEN		000015	spd	GETOPT		004344'		INPDCT		007110'		
DEFPAR		004244'		ETPTAB		003421'		GETPAR		004422'		INPDMP		006773'		
DEFPGM		004235'		EVTA05		003327'		GETPDT		004345'		INPLDA		006707'		
DEFRQD		004155'		EVTA10		003365'		GETPGM		004373'		INPTCT		007041'		
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page S-2
NCU	MAC	 6-Oct-81 12:41		SYMBOL TABLE

INPTSK		006773'		LO%TGT		000003	spd	MAKLIN		005303'	int	MONINI		000344'	ext	
INPWRD		006553'		LODDMP		003021'		MAKLOC		006144'		MOPCHK		003200'		
INTSET		000513'		LODM10		002422'		MAKLOD		005226'		MOPD10		003055'		
ITPTR		011524'		LODM20		002427'		MAKMDT		005503'		MOPDMP		003037'		
ITSBLP		007020'		LODM30		002443'		MAKMEM		006135'		MOPLDR		002414'		
ITSCBC		007006'		LOGCTR		007251'		MAKMLP		005364'		MOPSIZ		000201	spd	
ITSSKP		007131'		LOGFFP		000300	spd	MAKMPL		005321'		MOPVER		002221'		
ITSSLP		007132'		LOGFLG		011523'		MAKMPT		005753'		MP%DMP		000002	spd	
JFNS	104000	000030	int	LOGGER		007202'	int	MAKMPW		006073'		MPV020		002266'		
JS%TYP	000700	000000	sin	LOGPDL		011526'		MAKMRL		005773'		MPV030		002274'		
L$BFLG		000030	spd	LOGR20		007204'		MAKNAM		006153'	int	MPVERR		002302'		
L$BHRB		000356	spd	LOGTIM		010632'	int	MAKNL1		006270'		MSGSIZ		003000	spd	
L$BLDZ		000016	spd	LOKNOD		007226'	ext	MAKNOD		006063'	int	MSIDMX		000006	spd	
L$BSA		000010	spd	LPRFLD		005141'		MAKNUM		006321'	int	MTOPR	104000	000077	int	
L$BXFR		000350	spd	LSDMP		002551'		MAKRLC		005266'		MXLNOD		000005	spd	
L1SAV1		010716'	int	LSLOD		001765'		MAKRQD		005650'		NCHPW		000005	spd	
L1SAV2		010717'	int	LSLOD1		002005'		MAKRQL		006007'		NCTSIZ		000007	spd	
L1SAV3		010720'	int	LSTBLD		001332'		MAKSLN		006171'	int	NCU		000000'	int	
L1SAV4		010721'	int	LSTBP		002361'		MAKTWO		006333'	int	NCU010		000022'		
L1SAVC		010722'	int	LSTBT		002360'		MAKXFR		005563'		NCUDSP		000045'		
L2SAV1		010723'	int	LSTCBL		001606'		MAKZRO		006102'		NDBP1	777777	777777	spd	
L2SAV2		010724'	int	LSTCTL		001600'		MAXDTE		000004	spd	NDBP2	777777	777777	spd	
L2SAV3		010725'	int	LSTFRE		011523'	sin	MAXEXT		000011	spd	NDCPU		777777	spd	
L2SAV4		010726'	int	LSTLEN		000005	spd	MAXIMB		000011	spd	NDDIP	002000	000000	spd	
L2SAVC		010727'	int	LSTMNT		001577'		MAXMEM		000377	spd	NDDMP	777777	777777	spd	
L3SAV1		010730'	int	LSTOFF		001560'		MAXNIC		014000	spd	NDFERR		005012'		
L3SAV2		010731'	int	LSTON		001537'		MAXNOD		000062	spd	NDLDV	777777	000000	spd	
L3SAV3		010732'	int	LSTOUT		001376'		MAXPGM		000010	spd	NDLIN	777777	777777	spd	
L3SAV4		010733'	int	LSTTAB		001532'		MAXSID		000020	spd	NDLIP	001000	000000	spd	
L3SAVC		010734'	int	LSV010		001727'		MAXSYE		000050	spd	NDLOD	777777	777777	spd	
LATSIZ		000004	spd	LSV020		001735'		MAXTOP		000020	spd	NDNAM	777777	777777	spd	
LCT010		007323'		LSVERR		001746'		MBPWSZ		000010	spd	NDPHT	777777	777777	spd	
LCT020		007335'		LSVSIZ		000004	spd	MCDFLD		005017'		NDPNA	777777	777777	spd	
LCT030		007425'		LSVTAB		001761'		MDT020		005517'		NDPNU	777777	777777	spd	
LCT040		007432'		LTBSIZ		000010	spd	MDT040		005523'		NDPRO		777777	spd	
LCTERR		007450'		LTLOG	200000	000000	spd	MEM010		002070'		NDPST	010000	000000	spd	
LEV1PC		010713'	int	LTNIB		777777	spd	MID020		005466'		NDSL1	777777	777777	spd	
LEV2PC		010714'	int	LTUSE	400000	000000	spd	MID040		005476'		NDSL2	777777	777777	spd	
LEV3PC		010715'	int	MAK4		006337'		MKA010		006052'		NDSRV	777777	777777	spd	
LIDPRT		001646'	ext	MAKBAS		005351'		MKA020		006060'		NEGBIT		000200	spd	
LINNAM		010633'		MAKDIS		006246'	int	MKB010		006042'		NETCON		013625'	ext	
LINSIZ		000016	spd	MAKDMP		005245'		MKD010		005740'		NIBSIZ		000022	spd	
LINSTA		001515'		MAKDSL		006275'	int	MKD020		005744'		NIBTAB		007210'	ext	
LINTAB		011046'		MAKEMM		005663'		MKEXA2		006122'		NICTAB		000060'		
LNADR	777777	777777	spd	MAKENA		006243'	int	MKEXA3		006133'		NKMCRG		000010	spd	
LNCNT		777777	spd	MAKEND		005675'		MKLIN1		006314'		NLOGPG		000010	spd	
LNDCT	777777	777777	spd	MAKENL		006251'	int	MKX010		005606'		NNAMSZ		000006	spd	
LNDTE	777777	000000	spd	MAKEVT		006214'		MKX020		005621'		NODE	104000	000567	int	
LNLDN	000377	000000	spd	MAKEXA		006117'		MKX030		005634'		NODFLD		004770'		
LNMSG	777777	777777	spd	MAKHST		006162'	int	MLP010		005411'		NODTAB		011440'	int	
LNPGM	777777	000000	spd	MAKIMA		006046'	int	MLP020		005423'		NOUT	104000	000224	int	
LNPTR	777777	777777	spd	MAKIMB		006041'	int	MLP030		005435'		NRILN		001037'		
LO%OPS		000020	spd	MAKIMD		005450'		MO%CDN	777000	000000	sin	NSPD10		000047'		
LO%PAR		000040	spd	MAKIMG		005530'		MO%DAV		777000	sin	NSPD40		000054'		
LO%ROM		000014	spd	MAKLCT		001132'		MO%INA	000777	000000	sin	NXTLIN		010743'	int	
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page S-3
NCU	MAC	 6-Oct-81 12:41		SYMBOL TABLE

NXTNIB		010742'	int	REGLEN		000005	spd	SAVRET		010735'		SYNTM	777777	777777	spd	
NXTTIM		011014'		REGTAB		003655'		SAVT		000000	ext	SYOPS		177400	spd	
OF%RD		200000	sin	RELFRE		014024'	ext	SETLIN		001614'		SYPGM	777777	777777	spd	
OF%WR		100000	sin	RELPGA		003304'	ext	SETPGM		010473'		SYPSN	777777	777777	spd	
OPENF	104000	000021	int	REPLNK		002346'		SIBE	104000	000102	int	SYPTR	777777	777777	spd	
OPNIFL		006626'		REQCTR		007542'		SINR	104000	000531	int	SYRCD	777777	777777	spd	
OPNOFL		006665'		REQDLL		000067'		SIR	104000	000125	int	SYRCT	777777	777777	spd	
OPRMES		000000	ext	REQDMP		000544'		SLDTAB		010663'		SYRCV	740000	000000	spd	
OPSFLD		005106'		REQLOG		003210'		SNDDAT		003113'		SYRDMP		007755'		
OPSTAB		010657'		REQLSV		001672'		SNDEND		002503'		SYRHDR		007607'		
OTPTR		011525'		REQRED		000713'		SNDTXT		002307'		SYRLOD		007651'		
OURNAM		010667'	int	REQSET		001471'		SOUT	104000	000053	int	SYRNCU		010061'	int	
OURNUM		010671'	int	REQZRO		001631'		SOUTR	104000	000532	int	SYRSN		777777	spd	
P		000017		RET	263740	000000		SPGM10		010501'		SYRSTR		007630'		
P1		000010		RGF010		005074'		SPGM20		010512'		SYSEQ	777777	777777	spd	
P2		000011		RGF020		005101'		SPGM30		010515'		SYSGT	104000	000016	int	
P3		000012		RHDWC1		010737'		SPRIW	104000	000243	int	SYSNAM		013667'	ext	
P4		000013		RHDWC2		010740'		STCMP	104000	000540	int	SYSRV		777777	spd	
P5		000014		RHDWC3		010741'		STKDP2		003706'		SYSVL		777777	spd	
PARHST		004470'		RLJFN	104000	000023	int	STKDP4		003716'		SYT20	000001	000000	spd	
PARNAM		004454'		RM%PRI	400000	000000	spd	STODMC		003721'		SYTGT		777777	spd	
PARNUM		004460'		RMDMP2		003127'		STODTE		003736'		SYTHR	777777	000000	spd	
PARTAB		004450'		ROMDMP		003126'		STODUP		003750'		SYTYP	777777	000000	spd	
PDLEN		002000	spd	RQD010		000622'		STOHST		010362'		SYUPT	777777	777777	spd	
PGCPU		777777	spd	RQINT1		000353'		STOKDP		003662'		SYVER		770000	spd	
PGFIL	777777	777777	spd	RQINT2		000370'		STOKDZ		003662'		T1		000001		
PGLDV	777777	000000	spd	RQL010		000076'		STOREG		003635'		T2		000002		
PGLEN		000003	spd	RQL020		000126'		STOST2		010431'		T3		000003		
PGMTAB		011016'	int	RQL030		000162'		STOSTR		010425'		T4		000004		
PGPGM	777777	000000	spd	RQL035		000207'		STX010		002310'		TBADD	104000	000536	int	
PRARG	104000	000545	int	RQL040		000214'		SY%CHK		000222	spd	TBLUK	104000	000537	int	
PRSBLD		001452'		RQL070		000231'		SY%DMP		000203	spd	TBT020		000477'		
PRSEND		001465'		RQL071		000247'		SY%LCT		000230	spd	THRFLD		005134'		
PRSFND		001416'		RQL080		000316'		SY%LOD		000202	spd	TIME	104000	000014	int	
PRTINF		001265'		RQL085		000333'		SY%MLG		000210	spd	TIMFLD		005122'		
PRTLOP		001274'		RQL090		000346'		SY%NCU		000201	spd	TL%ABR	100000	000000	sin	
PTRSIZ		000002	spd	RQLCHN		000001	spd	SY%TOP		000221	spd	TL%EXM	040000	000000	sin	
PTRTAB		010655'		RQLE.1		000430'		SYADJ	777777	777777	spd	TMPSTR		010744'		
Q1		000005		RQLERR		000412'		SYCOD	777000	000000	spd	TOPCHK		000341'	ext	
Q2		000006		RQLINT		000350'		SYCTR		777777	spd	TOPFRE		010400'	int	
R		010630'	ext	RQLOUT		001261'		SYDAT	777777	777777	spd	TPF.1		010407'		
RBBYT	777777	777777	spd	RQRLAL		001220'		SYDST	777777	777777	spd	TPF.D		010417'		
RBCAD	777777	777777	spd	RQRLCT		001027'		SYERR	104000	000527	int	TPLID		010345'		
RBCNT		777777	spd	RQRLNS		000732'		SYFCN	777777	777777	spd	TPLST		010354'		
RBDAT	777777	777777	spd	RQRLOP		001240'		SYFIL		777777	spd	TPNOD		010302'		
RBFCT	777777	000000	spd	RQRLST		001140'		SYHDW		000377	spd	TPNST		010335'		
RBJFN	777777	000000	spd	RQRSIZ		000007	spd	SYHLN		007000	spd	TPNUM		010330'		
RBNAD	777777	777777	spd	RQRTAB		000723'		SYLEN		000777	spd	TPRFLD		005141'		
RBPTR	777777	777777	spd	RSKP		014246'	ext	SYLI1	777777	777777	spd	TPUNI		010361'		
RBTYP		777777	spd	RSNFLD		004764'		SYLID	777777	777777	spd	TPVER		010360'		
RBXAD	777777	777777	spd	RSTLEN		000015	spd	SYMID	777777	777777	spd	TRGGER		000432'		
RCVFLD		005126'		RSTTAB		001500'		SYNAM	777777	777777	spd	TS$NHD		040000	spd	
RCVMAX		002000	spd	SAVPQ		010144'	ext	SYNCT	777777	777777	spd	TSTL05		007210'		
REDCTR		007515'		SAVQ		001332'	ext	SYNCV	777777	777777	spd	TSTL10		007213'		
REGFLD		005050'		SAVREP		010736'		SYNOD	777777	777777	spd	TSTLOG		007210'		
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page S-4
NCU	MAC	 6-Oct-81 12:41		SYMBOL TABLE

TXTFLD		005026'		$DTSRE	000015	000001	spd	$IBKCT	000015	000003	spd	$LTLOG		000002	spd	
ULKNOD		007247'	ext	$DTUDS	000015	000002	spd	$IBKPT	000017	777776	spd	$LTNIB		000002	spd	
UPTFLD		004712'		$DTURE	000015	000001	spd	$IBKRE	000015	000001	spd	$LTUSE		000002	spd	
VARLEN		003374	spd	$DTWLI	000015	000001	spd	$IBKSU	000015	000002	spd	$MBSAD	000015	000001	spd	
VNETCO	000400	004001	spd	$DVFBL	000017	777776	spd	$INTLN	000015	000001	spd	$MDLDS	000017	777774	spd	
WDMP10		006571'		$DVFCN	000017	777774	spd	$IPRAD	000015	000004	spd	$MDLLI	000017	777775	spd	
WRNING		014205'	ext	$DVFDE	000017	777772	spd	$IPRCN	000015	000003	spd	$MDTAD	000015	000001	spd	
WRTBYT		006604'		$DVFPT	000017	777775	spd	$IPRLI	000015	000001	spd	$MDTCN	000015	000003	spd	
WRTDMP		006570'		$ESRSE	000017	777775	spd	$IPRPR	000015	000002	spd	$MDTNU	000015	000002	spd	
WTDT10		006616'		$ESRSR	000017	777776	spd	$ITSCN	000015	000002	spd	$MEMCN	000015	000002	spd	
XFR010		002134'		$ETPDS	000017	777774	spd	$ITSPT	000015	000003	spd	$MEMLI	000015	000003	spd	
XFR030		002172'		$ETPER	000017	777773	spd	$ITSRE	000015	000001	spd	$MEMPS	000015	000001	spd	
ZCTERR		007511'		$ETPLI	000017	777775	spd	$LCTBL	000015	000002	spd	$MEMPT	000015	000001	spd	
ZROCTR		007455'		$ETPNO	000017	777776	spd	$LCTCN	000017	777775	spd	$MHNCN	000015	000002	spd	
$ADVCN	000015	000002	spd	$ETPRS	000017	777772	spd	$LCTLE	000017	777774	spd	$MHNNA	000015	000003	spd	
$ADVHS	000015	000005	spd	$EVABL	000017	777775	spd	$LCTLI	000017	777772	spd	$MHNPT	000015	000001	spd	
$ADVLS	000015	000004	spd	$EVACN	000015	000002	spd	$LCTNO	000015	000001	spd	$MIDAD	000015	000001	spd	
$ADVPT	000015	000001	spd	$EVALG	000015	000003	spd	$LCTNU	000015	000003	spd	$MIDCN	000015	000002	spd	
$ADVST	000017	777745	spd	$EVAMS	000015	000004	spd	$LCTPT	000017	777776	spd	$MIDNU	000015	000003	spd	
$ADVUN	000015	000003	spd	$EVAPT	000015	000001	spd	$LDPLI	000015	000001	spd	$MIMCN	000015	000003	spd	
$AFDBL	000015	000003	spd	$EVATM	000017	777776	spd	$LDPLN	000015	000004	spd	$MIMCP	000015	000002	spd	
$AFDCN	000015	000002	spd	$GEBCN	000015	000002	spd	$LDPNO	000015	000002	spd	$MIMRE	000015	000001	spd	
$AFDPT	000015	000001	spd	$GEBPT	000015	000001	spd	$LDTLI	000015	000001	spd	$MKACN	000015	000002	spd	
$AFDST	000015	000004	spd	$GIACN	000015	000002	spd	$LINCN	000017	777675	spd	$MKAPT	000015	000001	spd	
$ARBFL	000015	000001	spd	$GIADS	000015	000003	spd	$LINLI	000017	777775	spd	$MKAST	000015	000003	spd	
$ASLLI	000015	000002	spd	$GIALE	000015	000004	spd	$LINMS	000017	777575	spd	$MKDCN	000015	000002	spd	
$ASLPT	000015	000001	spd	$GIAPT	000015	000001	spd	$LNADR		000005	spd	$MKDLI	000015	000003	spd	
$BASLI	000017	777776	spd	$GIBCN	000015	000002	spd	$LNCNT		000002	spd	$MKDPT	000015	000001	spd	
$CHLNA	000015	000002	spd	$GIBPT	000015	000001	spd	$LNDCT		000007	spd	$MKECN	000017	777775	spd	
$CHLNI	000015	000001	spd	$GIBSF	000015	000003	spd	$LNDTE		000004	spd	$MKEDS	000015	000001	spd	
$CKMCN	000015	000002	spd	$GLLBL	000017	777736	spd	$LNLDN		000001	spd	$MKEEV	000017	777776	spd	
$CKMLI	000015	000003	spd	$GLLNA	000017	777756	spd	$LNMSG		000006	spd	$MKESR	000015	000002	spd	
$CKMPT	000015	000001	spd	$GLLNO	000017	777776	spd	$LNPGM		000002	spd	$MKLCN	000015	000002	spd	
$CMRCN	000015	000002	spd	$GT4NU	000015	000002	spd	$LNPTR		000003	spd	$MKLLO	000015	000003	spd	
$CMRPT	000015	000001	spd	$GT4PT	000015	000001	spd	$LNSCN	000017	777726	spd	$MKLPT	000015	000001	spd	
$COMBL	000017	777723	spd	$GTLCN	000015	000002	spd	$LNSMS	000017	777727	spd	$MKMCN	000015	000002	spd	
$COMVE	000017	777720	spd	$GTLPT	000015	000001	spd	$LSDCN	000015	000002	spd	$MKMME	000015	000003	spd	
$DLGCN	000015	000002	spd	$GTMCN	000015	000002	spd	$LSDLI	000015	000003	spd	$MKMPT	000015	000001	spd	
$DLGEV	000015	000004	spd	$GTMPT	000015	000001	spd	$LSDNU	000015	000004	spd	$MKXCN	000015	000003	spd	
$DLGPT	000015	000001	spd	$GTPCN	000015	000002	spd	$LSDPT	000015	000001	spd	$MKXPT	000015	000002	spd	
$DLGSE	000017	777776	spd	$GTPPT	000015	000001	spd	$LSLCN	000015	000002	spd	$MKXRE	000015	000001	spd	
$DLGSR	000015	000003	spd	$HDWDA	000017	777772	spd	$LSLLI	000015	000003	spd	$MKZLI	000015	000001	spd	
$DSPCN	000015	000002	spd	$HDWDE	000017	777775	spd	$LSLPG	000015	000004	spd	$MLDCN	000015	000002	spd	
$DSPFC	000015	000003	spd	$HDWDS	000017	777764	spd	$LSLPT	000015	000001	spd	$MLDCT	000017	777776	spd	
$DSPPT	000015	000001	spd	$HDWER	000017	777766	spd	$LSTBP	000017	777773	spd	$MLDLI	000015	000003	spd	
$DTDLI	000015	000001	spd	$HDWLX	000017	777762	spd	$LSTFL	000017	777775	spd	$MLDPT	000017	777775	spd	
$DTFCN	000017	777772	spd	$HDWMC	000017	777765	spd	$LSTHL	000017	777773	spd	$MLNLI	000017	777774	spd	
$DTFDA	000017	777776	spd	$HDWNO	000017	777776	spd	$LSTLI	000017	777776	spd	$MLNPT	000017	777773	spd	
$DTFMO	000017	777775	spd	$HDWOP	000017	777767	spd	$LSTPR	000017	777774	spd	$MLNST	000017	777776	spd	
$DTFPT	000017	777773	spd	$HDWRC	000017	777770	spd	$LSVCN	000015	000002	spd	$MLPAD	000015	000002	spd	
$DTFYR	000017	777774	spd	$HDWRE	000017	777774	spd	$LSVCO	000017	777773	spd	$MLPCN	000015	000003	spd	
$DTGLI	000015	000001	spd	$HDWRS	000017	777771	spd	$LSVDT	000017	777775	spd	$MLPLI	000015	000001	spd	
$DTGPR	000015	000002	spd	$HDWTH	000017	777763	spd	$LSVLT	000017	777774	spd	$MMLCN	000015	000002	spd	
$DTILI	000015	000001	spd	$HDWUP	000017	777773	spd	$LSVOP	000017	777776	spd	$MMLLI	000015	000003	spd	
$DTSDS	000015	000002	spd	$IBKCN	000015	000004	spd	$LSVPT	000015	000001	spd	$MMLPT	000015	000001	spd	
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page S-5
NCU	MAC	 6-Oct-81 12:41		SYMBOL TABLE

$MMPCN	000015	000002	spd	$NDSRV		000011	spd	$RQRCN	000015	000002	spd	$SYNAM		000005	spd	
$MMPPS	000015	000003	spd	$OPFTY	000017	777776	spd	$RQRHL	000017	777775	spd	$SYNBL	000017	777776	spd	
$MMPPT	000015	000001	spd	$OPIJF	000017	777766	spd	$RQRPT	000015	000001	spd	$SYNCT		000005	spd	
$MMTAD	000017	777775	spd	$OPITY	000017	777767	spd	$SDMDS	000015	000002	spd	$SYNCV		000004	spd	
$MMTLO	000017	777776	spd	$PGCPU		000000	spd	$SDMRE	000015	000001	spd	$SYNOD		000001	spd	
$MNDCN	000017	777776	spd	$PGFIL		000002	spd	$SDTCN	000015	000002	spd	$SYNOF	000017	777774	spd	
$MNLDS	000017	777774	spd	$PGLDV		000000	spd	$SDTLI	000015	000001	spd	$SYNSI	000017	777775	spd	
$MNLLI	000017	777775	spd	$PGPGM		000001	spd	$SDTPT	000015	000001	spd	$SYNTM		000011	spd	
$MNMCN	000015	000002	spd	$PRSCT	000017	777775	spd	$SEMCO	000015	000001	spd	$SYOPS		000004	spd	
$MNMNA	000015	000003	spd	$PRSLD	000017	777776	spd	$SKDCN	000015	000004	spd	$SYPGM		000006	spd	
$MNMPT	000015	000001	spd	$PRSST	000017	777773	spd	$SKDDS	000015	000002	spd	$SYPSN		000003	spd	
$MNUCN	000015	000002	spd	$PRSUN	000017	777774	spd	$SKDMC	000015	000003	spd	$SYPTR		000014	spd	
$MNUNU	000015	000003	spd	$PRTBU	000017	777757	spd	$SKDRE	000015	000001	spd	$SYRCD		000010	spd	
$MNUPT	000015	000001	spd	$PT4NU	000015	000002	spd	$SPGTA	000017	777776	spd	$SYRCT		000012	spd	
$MPDCN	000015	000004	spd	$PT4PT	000015	000001	spd	$SRGDE	000015	000001	spd	$SYRCV		000012	spd	
$MPDLI	000015	000002	spd	$RBBYT		000002	spd	$SRGDS	000015	000003	spd	$SYRSN		000013	spd	
$MPDNU	000015	000001	spd	$RBCAD		000007	spd	$SRGMC	000015	000004	spd	$SYSEQ		000006	spd	
$MPDPT	000015	000003	spd	$RBCNT		000005	spd	$SRGRE	000015	000002	spd	$SYSRV		000005	spd	
$MPVCN	000015	000002	spd	$RBDAT		000004	spd	$STHHS	000015	000002	spd	$SYSVL		000006	spd	
$MPVLE	000017	777775	spd	$RBFCT		000005	spd	$STHNO	000015	000001	spd	$SYT20		000000	spd	
$MPVLI	000015	000003	spd	$RBJFN		000001	spd	$STRBL	000015	000001	spd	$SYTGT		000004	spd	
$MPVLN	000017	777776	spd	$RBNAD		000006	spd	$STRDS	000015	000003	spd	$SYTHR		000013	spd	
$MPVMS	000015	000004	spd	$RBPTR		000003	spd	$STROF	000015	000004	spd	$SYTYP		000000	spd	
$MPVPT	000015	000001	spd	$RBTYP		000001	spd	$STRST	000015	000002	spd	$SYUPT		000002	spd	
$MQLCN	000017	777774	spd	$RBXAD		000010	spd	$STXCN	000015	000002	spd	$SYVER		000000	spd	
$MQLLI	000017	777775	spd	$RCTCN	000017	777775	spd	$STXLI	000015	000003	spd	$TBTFL	000015	000003	spd	
$MRDAD	000015	000001	spd	$RCTER	000017	777774	spd	$STXLN	000015	000004	spd	$TBTLN	000015	000001	spd	
$MRDCN	000015	000002	spd	$RCTLI	000015	000002	spd	$STXPT	000015	000001	spd	$TBTOP	000015	000002	spd	
$MRDPT	000015	000003	spd	$RCTLN	000015	000004	spd	$SYADJ		000003	spd	$TOPTB	000015	000001	spd	
$MRLCO	000015	000002	spd	$RCTNO	000015	000001	spd	$SYCOD		000000	spd	$W1		000005	spd	
$MRLLI	000015	000001	spd	$RCTPT	000017	777776	spd	$SYCTR		000000	spd	$W3		000005	spd	
$MRLLO	000015	000001	spd	$RDMLI	000015	000001	spd	$SYDAT		000001	spd	$W4		000006	spd	
$NDBP1		000001	spd	$RDTLI	000015	000001	spd	$SYDBL	000017	777774	spd	$WTDBY	000015	000002	spd	
$NDBP2		000002	spd	$RGFBL	000015	000004	spd	$SYDCO	000015	000001	spd	$WTDCN	000015	000002	spd	
$NDCPU		000017	spd	$RGFCN	000015	000002	spd	$SYDFI	000017	777776	spd	$WTDPT	000015	000001	spd	
$NDDIP		000000	spd	$RGFNU	000015	000003	spd	$SYDSI	000017	777775	spd	$WTDRE	000015	000001	spd	
$NDDMP		000004	spd	$RGFPT	000015	000001	spd	$SYDSR	000015	000003	spd	$XFRAD	000015	000004	spd	
$NDFBL	000017	777774	spd	$RLGOP	000017	777773	spd	$SYDST		000002	spd	$XFRCN	000015	000002	spd	
$NDFCN	000017	777775	spd	$RLGSE	000017	777774	spd	$SYDSV	000015	000004	spd	$XFRLI	000015	000003	spd	
$NDFPT	000017	777776	spd	$RLGSR	000017	777775	spd	$SYDTG	000015	000002	spd	$XFRPT	000015	000001	spd	
$NDLDV		000017	spd	$RLSMS	000017	777764	spd	$SYFCN		000004	spd	$ZCTLI	000015	000002	spd	
$NDLIN		000006	spd	$ROUVE	000017	777715	spd	$SYFIL		000007	spd	$ZCTLN	000015	000004	spd	
$NDLIP		000000	spd	$RPLHS	000017	777776	spd	$SYHDW		000004	spd	$ZCTNO	000015	000001	spd	
$NDLOD		000003	spd	$RPLLN	000017	777775	spd	$SYHLN		000000	spd	$ZROBL	000017	777735	spd	
$NDMCN	000015	000002	spd	$RQCLI	000015	000002	spd	$SYLBL	000017	777774	spd	$ZROLI	000017	777775	spd	
$NDMDS	000015	000003	spd	$RQCLN	000015	000001	spd	$SYLCO	000015	000001	spd	..ACT		000000	spd	
$NDMPT	000015	000001	spd	$RQDCN	000015	000002	spd	$SYLEN		000000	spd	..CSC		000002	spd	
$NDNAM		000007	spd	$RQDLN	000015	000003	spd	$SYLFI	000017	777776	spd	..CSN		000001	spd	
$NDPHT		000016	spd	$RQDPT	000015	000001	spd	$SYLI1		000010	spd	..IFT		000000	spd	
$NDPNA		000014	spd	$RQDRE	000015	000004	spd	$SYLID		000007	spd	..JX1	400000	000000	spd	
$NDPNU		000015	spd	$RQLCN	000015	000002	spd	$SYLSI	000017	777775	spd	..MSK		000000	spd	
$NDPRO		000010	spd	$RQLLN	000015	000003	spd	$SYLSR	000015	000003	spd	..MX1		000010	spd	
$NDPST		000000	spd	$RQLPT	000015	000001	spd	$SYLSV	000015	000004	spd	..MX2		000001	spd	
$NDSL1		000012	spd	$RQLRE	000015	000004	spd	$SYLTG	000015	000002	spd	..NAC		000002	spd	
$NDSL2		000013	spd	$RQRBU	000017	777774	spd	$SYMID		000000	spd	..NS		000001	spd	
NCU - TOPS20 Network Information and Control Exchange (NICE) Process	MACRO %53B(1215) 15:17  7-May-82 Page S-6
NCU	MAC	 6-Oct-81 12:41		SYMBOL TABLE

..NV		000004	spd	.EDMCD		000012	spd	.MPDMP		000016	spd	.NRLPE	777777	777757	spd	
..PST		000001	spd	.EDNOD		000011	spd	.MPLDT		000000	spd	.NRNCE	777777	777755	spd	
..STKN		000001	spd	.EDOPS		000010	spd	.MPLOD		000002	spd	.NRNPE	777777	777773	spd	
..STKQ		000002	spd	.EDRCV		000007	spd	.MPMMR		000014	spd	.NRPNA	777777	777753	spd	
..STKR		000010	spd	.EDREG		000001	spd	.MPMOP		000006	spd	.NRPRO	777777	777774	spd	
..TRR		000010	spd	.EDRSN		000006	spd	.MPRQD		000004	spd	.NRRES	777777	777761	spd	
..TSA1	000001	000002	spd	.EDTHR		000015	spd	.MPRQL		000012	spd	.NRSUC		000001	spd	
..TX1		100000	spd	.EDTIM		000002	spd	.MPRQP		000010	spd	.NSOFF		000001	sin	
..TX2		000001	spd	.EDTXT		000016	spd	.MPXFR		000024	spd	.NSON		000000	sin	
.A16		000016	spd	.EDUPT		000004	spd	.NCLLS		000012	spd	.NULIO		377777	sin	
.ASSET		010601'	ext	.ERR21		014204'	ext	.NCLOG		000001	spd	.PRARD		000001	sin	
.BTBEL		000007	sin	.ERR29		013761'	ext	.NCLSV		000016	spd	.PTOPS		000002	spd	
.BTCNT		000004	sin	.EVASC		000002	spd	.NCNLS		000007	spd	.PTSLD		000000	spd	
.BTCPN		000015	sin	.FBBYV		000011	sin	.NCRED		000010	spd	.PVEND		000000	spd	
.BTDMP		000003	sin	.FHSLF		400000	sin	.NCRQD		000003	spd	.PVHST		000003	spd	
.BTDPT		000005	sin	.FP		000015	spd	.NCRQL		000002	spd	.PVNAM		000001	spd	
.BTDTE		000000	sin	.FPAC		000005	spd	.NCSET		000007	spd	.PVNUM		000002	spd	
.BTFLG		000003	sin	.FTDMP		000003	spd	.NCSLN		000010	spd	.RBDAT		000011	spd	
.BTIPR		000004	sin	.FTLDA		000001	spd	.NCZLN		000002	spd	.RDLCT		000004	spd	
.BTLDS		000001	sin	.FTTSK		000002	spd	.NCZRO		000011	spd	.RDLNS		000001	spd	
.BTLID		000001	sin	.GJDEV		000002	sin	.NDBK1		000002	spd	.RDLST		000005	spd	
.BTLOD		000002	sin	.GJEXT		000005	sin	.NDCNT		000001	sin	.SAC		000016		
.BTLPT		000005	sin	.GJGEN		000000	sin	.NDCST		000002	sin	.SAV1		001265'	ext	
.BTPRT		000000	sin	.GJNAM		000004	sin	.NDCVR		000001	sin	.SAV2		007221'	ext	
.BTPRV		000001	sin	.GJSRC		000001	sin	.NDECO		000001	sin	.STKST		010473'	ext	
.BTRCC		000004	sin	.JSAOF		000001	sin	.NDGLI		000014	sin	.SYCTR		000021	spd	
.BTRLC		000013	sin	.LGMNT		000001	spd	.NDGVR		000013	sin	.SYDAT		000004	spd	
.BTRMP		000010	sin	.LMBAS		000001	spd	.NDLCB		000004	sin	.SYDMC		000005	spd	
.BTROM		000000	sin	.LMEND		000000	spd	.NDLCN		000003	sin	.SYDTE		000015	spd	
.BTSCC		000002	sin	.LMMEM		000002	spd	.NDLND		000002	sin	.SYDUP		000027	spd	
.BTSEC		000002	sin	.LMXFR		000003	spd	.NDLNM		000000	sin	.SYKDP		000003	spd	
.BTTCC		000006	sin	.LODEF		000000	spd	.NDLOF		000002	sin	.SYKDZ		000004	spd	
.BTTPR		000005	sin	.LOPGM		000002	spd	.NDLON		000001	sin	.SYLDD		000011	spd	
.BTZTM		000001	sin	.LOPTH		000002	spd	.NDLST		000001	sin	.SYNDD		000007	spd	
.CHNUL		000000	sin	.LOSRV		000003	spd	.NDNAM		000000	sin	.SYPTR		000014	spd	
.CHTAB		000011	sin	.LOTBD		000001	spd	.NDNBS		000003	sin	.TPCNT		000007	spd	
.CP11		000001	spd	.LOTBP		000003	spd	.NDNLN		000000	sin	.TRSET		010145'	ext	
.DOPTH		000002	spd	.LOTGT		000000	spd	.NDNND		000000	sin	.VNCBL		000005	sin	
.DOSRV		000003	spd	.LSDMP		000002	spd	.NDNXT		000002	sin	.VNCNL		000004	sin	
.DOTGT		000000	spd	.LSLOD		000000	spd	.NDRVR		000002	sin	.VNDDC		000002	sin	
.DTA11		000010	spd	.LSTBP		000003	spd	.NDSNT		000007	sin	.VNMCB		000001	sin	
.DTDLV		000016	spd	.LSTBT		000004	spd	.NDSTA		000001	sin	
.DTDMC		000014	spd	.LSTCB		000006	spd	.NDVER		000000	sin	
.DTDTE		000024	spd	.LSTCN		000005	spd	.NPAC		000010	spd	
.DTDUP		000012	spd	.LSTMN		000004	spd	.NRCME	777777	777766	spd	
.DTDV1		000026	spd	.LSTOF		000001	spd	.NRFNC	777777	777777	spd	
.DTKDP		000034	spd	.LSTON		000000	spd	.NRICF	777777	777762	spd	
.DTKDZ		000036	spd	.LTALL		000000	spd	.NRIFL	777777	777763	spd	
.DTL1A		000020	spd	.LTSTD		000001	spd	.NRILN	777777	777770	spd	
.DTL1E		000004	spd	.LTSTR		000002	spd	.NRILS	777777	777767	spd	
.DTP11		000000	spd	.MOACN		000024	sin	.NRIMF	777777	777776	spd	
.DTQ11		000006	spd	.MONCI		000777	sin	.NRINI	777777	777765	spd	
.DTU11		000002	spd	.MORHN		000026	sin	.NRIOE	777777	777756	spd	
.EDDAT		000003	spd	.MPACK		000000	spd	.NRIPV	777777	777760	spd	
.EDDEV		000005	spd	.MPDIA		000034	spd	.NRIST	777777	777775	spd	
ADVCNT	  7171
ADVHST	  7171
ADVLST	  7171
ADVPTR	  7171
ADVSTK	  7173
ADVSTR	  7173
ADVT10	  7221#	  7256
ADVT20	  7236#	  7247
ADVT25	  7242	  7251#
ADVT30	  7224	  7237	  7273#
ADVT40	  7282#	  7289
ADVTOP	  7170#
ADVTPX	  7201	  7213	  7223	  7228	  7240	  7246	  7278	  7293#
ADVTX1	  7296#	  7302
ADVUNI	  7171
AFDBLK	  4378
AFDCNT	  4378
AFDPTR	  4378
AFDSTR	  4378
ARBFLG	  7580
ASCLIN	  6942	  7039	  7652#
ASCPRS	  1200	  1286#
ASGPAG	   102#	  1077	  1558	  1912	  2739
ASGREC	   330	   783	  7580#
ASLLIN	  7652
ASLPTR	  7652
BASLIN	  1692
BEGFRE	  7757#
BINHDR	  6168
BPWRD	   156	   162	  1655	  1661	  2134	  2831	  2834	  3075	  5918	  6003	  6362	  7588
BT%BEL	  5766
BT%ZRO	  1507
BTSIZ	  7469
BYTTAB	  5933	  5985#	  6020
CHKDEV	  7604#	  7657
CHKDV1	  7609#	  7612
CHKDV2	  7611	  7615#
CHKLIN	  1550	  7492#
CHKLOG	  6457	  6468#
CHKMMR	  2517	  2640#
CHKMOP	  1756	  1836	  2174#
CHL010	  6484#	  6494
CHL020	  6487	  6490	  6493#
CHLNAM	  6468
CHLNIB	  6468
CKMCNT	  2174
CKMLIN	  2174
CKMPTR	  2174
CLOF10	  6107	  6109	  6110#
CLRBOT	  1418	  1436	  1454	  1461	  5715	  5736	  5759	  5785	  5803	  5835	  5874	  5896	  7466#
CLRMOP	  4761	  4818	  5097	  5192	  5216	  5851	  7455#
CLRMSG	   152	   432	   524	   623	   661	  1651	  1841	  1862	  2204	  4653	  4679	  4706	  4796	  4896
	  4934	  4965	  5001	  5119	  5249	  5372	  6730	  6816	  6838	  7477#
CLSOFL	   857	  6103#
CMRCNT	  2640
CMRPTR	  2640
COMBLK	   920
COMVER	   920
CPYASC	   102#	  7315
CVTDEV	  2237	  5243	  7546#
CVTHDW	  3036	  3243#
CVTNUM	  1316	  1321	  1326	  1345#
CX	   272	   308	   313	   319	   322	   331	   334	   336	   358	   377	   395	   400	   420	   428
	   437	   447	   451	   472	   478	   565	   593	  1071	  1231	  1563	  1593	  1867	  1877	  1881
	  2684	  2724	  2793	  2857	  2967	  3305	  7170
CZ%ABT	  1929	  1943
DATFLD	  4220	  4237#
DBOOT	  2313	  2339#
DEFBPW	  3382	  3518#
DEFCNT	  3506
DEFPAR	  3437	  3553#
DEFPGM	  3424	  3535#
DEFRQD	   730	  3452#
DEFRQL	   241	  3358#
DEVFLD	  4222	  4275#
DFD010	  3455	  3468#
DFD020	  3471	  3484#
DFD030	  3486	  3498#
DFD040	  3500	  3509#
DIABAS	  1680	  1692#
DIAMEM	  1681	  1712#
DIAXFR	  1682	  1769#
DLGCNT	  2725
DLGEVT	  2725
DLGPTR	  2725
DLGSEQ	  2726
DLGSRC	  2725
DLGTAB	  1670	  1679#
DLOCK	   103#	   566	   594	  1594
DMPEND	   842	   855#
DMPMAX	   806	   847#
DMPMEM	   844	   872#
DMPSET	   843	   890#
DMPTAB	   811	   842#	   847
DO%ADR	  3499	  3725
DO%FIL	  3485	  3715
DO%TGT	  3453	  3469	  3688	  3699
DOLOG	  2714	  2724#
DOLOGX	  2750	  2759	  2772#
DRQ010	  3365	  3378#
DRQ020	  3391	  3403#
DRQ030	  3406	  3419#
DRQ040	  3422	  3433#
DRQ050	  3435	  3443#
DSPCNT	   187
DSPFCN	   187
DSPPTR	   187
DTDLIN	  5801
DTEDMP	  2605	  5801#
DTEGO	  2254	  5894#
DTEINI	  2079	  2299	  5873#
DTERCV	  1750	  1792	  1822	  2009	  2515	  2553	  5833#
DTESLD	  1789	  2316	  5734#
DTESND	  1747	  1816	  2547	  5757#
DTESTP	  2076	  2296	  5714#
DTEWAT	  5783#
DTFCNT	  4237
DTFDAY	  4237
DTFMON	  4237
DTFPTR	  4237
DTFYR	  4237
DTGLIN	  5894
DTGPRO	  5894
DTILIN	  5873
DTSDST	  3195
DTSREG	  3195
DTUDST	  3208
DTUREG	  3208
DTWLIN	  5783
DVFBLK	  4275
DVFCNT	  4275
DVFDEV	  4275
DVFLD2	  4296	  4300	  4306#
DVFPTR	  4275
ELOCK	   103#	  1564
ERROR	   105#	   466	   558	   586	   829	  2824	  2927	  2931	  2944	  2948	  3022	  3026	  3089	  3093
	  4360	  6681	  6696	  6994	  7091	  7158	  7288	  7301	  7412	  7418
ERRSTL	  7764#	  7765
ERRSTR	  7765#
ESRSEQ	  3306
ESRSRC	  3306
ESTLID	  2887	  2962#
ESTNOD	  2891	  2959#
ESTRSN	  2888	  2955#
ETP010	  2870#	  2878
ETP015	  2878#	  2884	  2885	  2956	  2960	  2963
ETP020	  2870	  2899#
ETP030	  2914	  2916#
ETP040	  2917	  2925#
ETPDST	  2858
ETPERR	  2858
ETPLEN	  2873	  2896#
ETPLID	  2858
ETPNOD	  2858
ETPRSN	  2858
ETPTAB	  2876	  2882#	  2896
EVABLK	  2795
EVACNT	  2794
EVALGD	  2794
EVAMSG	  2794
EVAPTR	  2794
EVATMP	  2795
EVTA05	  2808#	  2812	  2837
EVTA10	  2827	  2841#
EVTASC	  2785	  3346#
EVTDSP	  4215	  4217#	  4232
EVTEXA	  2786	  2793#
EVTHDW	  2787	  2967#
EVTHDX	  2991	  2994	  3001	  3012	  3013	  3019#	  3037	  3055	  3067
EVTLEN	  4213	  4232#
EVTSEQ	  5544	  7804#
EVTSFT	  2788	  3348#
EVTSIZ	  2734	  2791#
EVTSYR	  2749	  3305#
EVTTAB	  2758	  2784#	  2791
EVTTOP	  2789	  2857#
EVTTPX	  2872	  2875	  2882	  2883	  2886	  2889	  2890	  2892	  2893	  2894	  2907	  2941#
EXCUTR	  7762#
EXTAS2	  4539#	  4543
EXTBIT	  4542	  4572	  5400	  5403
FB%BSZ	  6357
FLTYPE	  6268	  6270#	  6274
FNDCTL	  3054	  3229#
FNDDSP	   104#	  1404	  3116	  3245
FNDTGT	  2240	  3371	  3461	  7631#
FNDUDR	  1299#	  1302
FRELST	   104#
FTGT10	  7633#	  7641
FTGT20	  7634	  7640#
FTPLEN	  7239	  7270#
FTPTAB	  7245	  7261#	  7270
FTYPLN	  6266	  6274#
FTYTAB	  6053	  6066#	  6073
FTYTBZ	  6067	  6073#
GEB010	  4566#	  4573
GEBCNT	  4559
GEBPTR	  4559
GET4	  4174	  4499#
GETBPW	  2067	  3625	  3867#
GETCPU	  3783	  3817#
GETEVT	  2708	  4642#
GETEXA	  4537#
GETEXB	  1494	  3589	  3681	  3764	  4267	  4324	  4464	  4525	  4559#	  6577	  7329
GETFCN	   898	  1367	  1492	  2690	  3587	  3679	  3748#
GETFLD	  2808	  2871	  2990	  4210#
GETFRE	   102#	  4309	  4339	  4384	  4422	  6542	  6912	  7009	  7104	  7190	  7200	  7227	  7585
GETIMA	  2697	  2700	  3717	  3852	  3887	  3997#	  4349	  4391	  4456	  4474	  4611	  7307
GETIMB	  3871	  4043#
GETLDV	  3780	  3803#
GETLIN	   989	  1074	  1396	  1498	  1546	  3615	  3705	  4091#	  6531
GETLNK	   260	   749	  2050	  2487	  6394#	  6711	  6770
GETLOC	  4590#
GETMEM	  1695	  1775	  2273	  2278	  2653	  2678	  3726	  3729	  4167#
GETNIB	   247	   495	   561	   589	   736	   821	  2231	  3367	  3393	  3408	  3457	  3473	  3488	  3518
	  3535	  3553	  7559#
GETNOD	  3599	  3612	  3691	  3702	  3947	  3982	  4602#
GETNUM	  4525#
GETOPS	  3643	  3886#
GETOPT	   900	  1369	  2692	  3764#
GETPAR	  1773	  3654	  3903#
GETPDT	   477	   678	  3635	  3778#
GETPGM	  3786	  3833#
GETRQD	   728	  3679#
GETRQL	   236	  3583#
GETSEQ	  2702	  4625#
GETSID	  3789	  3847#
GETTWO	  3966	  4191#	  4245	  4483	  4503	  4506	  4590	  4642	  6580	  6831
GIA010	  4012#	  4016
GIA020	  4012	  4020#
GIA030	  4024	  4029#
GIACNT	  3997
GIADST	  3997
GIALEN	  3997
GIAPTR	  3997
GIB010	  4059#	  4063
GIB020	  4059	  4067#	  4070
GIB030	  4068	  4074#
GIBCNT	  4043
GIBPTR	  4043
GIBSFT	  4043
GJ%FOU	  6082
GJ%OLD	  6036
GJ%SHT	  6036	  6082
GLLBLK	  6394
GLLNAM	  6394
GLLNOD	  6394
GT4NUM	  4499
GT4PTR	  4499
GTBT10	  5919	  5931#
GTLALL	  4105	  4118#
GTLCNT	  4091
GTLPTR	  4091
GTLSTD	  4106	  4132#
GTLSTR	  4107	  4155#
GTLTAB	  4100	  4105#
GTMCNT	  4167
GTMPTR	  4167
GTP010	  3918#	  3928
GTPCNT	  3778	  3903
GTPPTR	  3778	  3903
HDW010	  2989#	  2997
HDW015	  2997#	  3003	  3004	  3008	  3263	  3267	  3271	  3275	  3279	  3283	  3287	  3291	  3295
HDW020	  2989	  3034#
HDWDAT	  2969
HDWDEV	  2969
HDWDST	  2969
HDWERR	  2969
HDWLEN	  2992	  3016#
HDWLXX	  2969
HDWMCD	  2969
HDWNOD	  2969
HDWOPS	  2969
HDWRCV	  2969
HDWREG	  2969
HDWRSN	  2969
HDWSZ	  6660	  7723#
HDWTAB	  2995	  3001#	  3016
HDWTB	  6661	  6663	  7718#	  7723
HDWTHR	  2969
HDWUPT	  2969
HSTDEV	  3006	  3262#
HSTMCD	  3011	  3286#
HSTNOD	  3010	  3290#
HSTOPS	  3009	  3282#
HSTRCV	  3278#
HSTREG	  3002	  3266#
HSTRSN	  3007	  3274#
HSTTHR	  3014	  3294#
HSTUPT	  3005	  3270#
HTPLEN	  3244	  3257#
HTPTAB	  3243	  3251#	  3257
IBKCNT	  6121
IBKCTR	  6121
IBKPTR	  6122
IBKREC	  6121
IBKSUM	  6121
IBLK10	  6128#	  6131
IBLK20	  6177#	  6184
IBLK30	  6178	  6188#
INIDMP	  2281	  2525	  2528
INIP10	  2252#	  2260
INIPRO	  1839	  2228#
INPBYT	  5916#	  5950	  5954	  6129	  6139	  6180	  6189	  6250	  6384
INPCNT	  6226	  6263#
INPDCT	  6273	  6349#
INPDMP	   356	  6208#
INPLDA	   354	  6121#
INPTCT	  6272	  6286#
INPTSK	   355	  6209#
INPWRD	  5948#	  6148	  6158	  6296	  6305	  6315	  6324	  6333
INTLNK	   688
INTSET	   343	   688#
IPRADJ	  2228
IPRCNT	  2228
IPRLIN	  2228
IPRPRO	  2228
ITPTR	  7828#
ITSBLP	  6247#	  6253
ITSCBC	  6222	  6231#
ITSCNT	  6210
ITSPTR	  6210
ITSREC	  6210
ITSSKP	  6293	  6302	  6312	  6321	  6330	  6337	  6378#
ITSSLP	  6380#	  6386
JS%TYP	  6050
L$BFLG	  6311	  6320
L$BHRB	  6329	  6336
L$BLDZ	  6301	  6311
L$BSA	  6292	  6301
L$BXFR	  6320	  6329
L1SAV1	  7771#
L1SAV2	  7772#
L1SAV3	  7773#
L1SAV4	  7774#
L1SAVC	  7775#
L2SAV1	  7777#
L2SAV2	  7778#
L2SAV3	  7779#
L2SAV4	  7780#
L2SAVC	  7781#
L3SAV1	  7783#
L3SAV2	  7784#
L3SAV3	  7785#
L3SAV4	  7786#
L3SAVC	  7787#
LATSIZ	  6493	  7640
LCT010	  6576#	  6585
LCT020	  6578	  6589#
LCT030	  6661#	  6665
LCT040	  6664	  6667#
LCTBLK	  6513
LCTCNT	  6514
LCTERR	  6674	  6693#
LCTLEN	  6514
LCTLIN	  6514
LCTNOD	  6513
LCTNUM	  6513
LCTPTR	  6514
LDPLIN	  2477
LDPLNK	  2477
LDPNOD	  2477
LDTLIN	  5734
LEV1PC	  7767#
LEV2PC	  7768#
LEV3PC	  7769#
LIDPRT	   103#	   996	  1094	  1420	  1438	  1456	  1463	  1505
LINCNT	   992
LINLID	   992
LINMSG	   992
LINNAM	  1308	  7604	  7607	  7699#	  7713
LINSIZ	  7699	  7713#
LINSTA	  1385	  1394#
LINTAB	  1554	  7816#
LNADR	  1698	  2133	  2160	  2162	  2277	  2529	  2537	  2562	  2564	  4769	  4779	  4782
LNCNT	  1814	  2545	  2609	  4784	  4880	  5768	  5813
LNDCT	  2283	  2527	  2535	  2565	  2567	  2608	  2611	  2629	  5808
LNDTE	  1557	  2236	  5242	  5718	  5744	  5762	  5787	  5806	  5838	  5877	  5899
LNLDN	  1632	  2182	  2184	  2187	  4767	  4824
LNMSG	  1562	  1595	  1813	  2136	  2312	  2542	  2616	  4763	  4785	  4820	  4881	  5742	  5764	  5816
	  5856	  5863
LNPGM	  1631	  1725	  1782	  1828	  2117	  5150
LNPTR	  5818
LNSCNT	   920
LNSMSG	   920
LO%OPS	  3390	  3642
LO%PAR	  3434	  3653
LO%ROM	   267	   617	  3379	  3420	  3623	  3633	  5253
LO%TGT	  3363	  3404	  3596	  3609	  5253
LODDMP	  2477#
LODM10	  2119#	  2122
LODM20	  2121	  2127#
LODM30	  2148#	  2155
LOGCTR	  6491	  6513#
LOGFFP	  6437	  7752#
LOGFLG	   515	  7823#
LOGGER	  6436#
LOGPDL	  6436	  7830#
LOGR20	  6442#	  6445
LOGTIM	  6443	  7694#
LOKNOD	   103#	   251	   740	  6477
LPRFLD	  4228	  4490#
LSDCNT	  2271
LSDLIN	  2271
LSDMP	  1606	  2271#
LSDNUM	  2271
LSDPTR	  2271
LSLCNT	  1620
LSLLIN	  1620
LSLOD	  1605	  1620#
LSLOD1	  1651#	  1675
LSLPGM	  1620
LSLPTR	  1620
LSTBLD	  1113	  1152	  1231#
LSTBP	  1608	  2062#
LSTBPW	  2063
LSTBT	  1607	  2061#
LSTCBL	  1413	  1461#
LSTCTL	  1412	  1454#
LSTFLG	  2063
LSTFRE	  7826#
LSTHLD	  1232
LSTLEN	  1403	  1415#
LSTLID	  1232
LSTLIN	  1394	  2063
LSTMNT	  1411	  1452#
LSTOFF	  1410	  1436#
LSTON	  1409	  1418#
LSTOUT	  1258	  1272#
LSTPRT	  1394
LSTTAB	  1402	  1409#	  1415
LSV010	  1572#	  1575
LSV020	  1574	  1581#
LSVCNT	  1535
LSVCOD	  1536
LSVDTE	  1536
LSVERR	  1577	  1591#
LSVLTB	  1536
LSVOPT	  1536
LSVPTR	  1535
LSVSIZ	  1570	  1610#
LSVTAB	  1570	  1605#	  1610
LTBSIZ	  1553
LTLOG	  6488	  6489
LTNIB	  7638
LTUSE	  6486	  6487	  7633	  7634
MAK4	  4689	  4691	  4770	  4801	  4876	  5055	  5079	  5102	  5200	  5357	  5429	  5692#
MAKBAS	   372	  4794#
MAKDIS	  5574#
MAKDMP	   761	  4679#
MAKDSL	  5626#
MAKEMM	  5095#
MAKENA	  5560#
MAKEND	  1799	  1963	  5117#
MAKENL	  5589#
MAKEVT	  1918	  5528#
MAKEXA	  5393#
MAKHST	  5480#
MAKIMA	   977	  4838	  4866	  5018	  5040	  5170	  5303#	  5338	  5537	  5542
MAKIMB	   636	  5031	  5283#
MAKIMD	  2618	  4893#
MAKIMG	   394	  4963#
MAKLCT	  1025	  1028	  1032	  1035	  1039	  1046	  1050	  1059#
MAKLIN	   633	  1022	  1243	  4661	  4687	  4714	  4732#	  5262	  5380	  5513	  5606	  5643
MAKLOC	  5442#
MAKLOD	   307	  4653#
MAKMDT	  4932#
MAKMEM	  5425#
MAKMLP	  1810	  4817#
MAKMPL	  1741	  4757#
MAKMPT	  5185#
MAKMPW	  5353#
MAKMRL	  5214#
MAKNAM	  5461#
MAKNL1	  5605	  5608#	  5642
MAKNOD	   933	  5260	  5333#	  5466	  5485
MAKNUM	  5659#
MAKRLC	  4704#	  6806
MAKRQD	  2543	  5073#
MAKRQL	  2494	  5235#
MAKSLN	  5499#
MAKTWO	  1101	  1133	  4855	  5081	  5446	  5547	  5666	  5679#	  5698	  5704
MAKXFR	   422	  4998#
MAKZRO	  5370#	  6718
MAXDTE	  7546
MAXEXT	  4562
MAXIMB	  4052
MAXMEM	  4974	  4975	  5809	  5810	  6233	  6234
MAXNIC	   435	   442	   527	   531	   799	   802	  1865	  1872	  6733	  6736	  6820	  6823	  6842	  6845
MAXNOD	  7816	  7820	  7821
MAXPGM	  7519	  7811
MAXSID	  3849
MAXSYE	  6541	  6911	  7008	  7103
MAXTOP	  7189	  7194
MBPWSZ	   635	   640	  3869
MBSADR	  4794
MCDFLD	  4227	  4367#
MDLDST	  5626
MDLLID	  5626
MDT020	  4945#	  4948
MDT040	  4944	  4949#
MDTADR	  4932
MDTCNT	  4932
MDTNUM	  4932
MEM010	  1727	  1738#
MEMCNT	  1712
MEMLIN	  1712
MEMPSW	  5095
MEMPTR	  1712
MHNCNT	  5480
MHNNAM	  5480
MHNPTR	  5480
MID020	  4908#	  4915
MID040	  4905	  4916#
MIDADR	  4893
MIDCNT	  4893
MIDNUM	  4893
MIMCNT	  4963
MIMCPU	  4963
MIMREC	  4963
MKA010	  5312#	  5317
MKA020	  5307	  5313	  5314	  5321#
MKACNT	  5303
MKAPTR	  5303
MKASTR	  5303
MKB010	  5287#	  5290
MKD010	  5161#	  5164
MKD020	  5157	  5161	  5168#
MKDCNT	  5117
MKDLIN	  5117
MKDPTR	  5117
MKECNT	  5528
MKEDST	  5393
MKEEVT	  5528
MKESRC	  5393
MKEXA2	  5398#	  5406
MKEXA3	  5404	  5410#
MKLCNT	  5442
MKLIN1	  5645#
MKLLOC	  5442
MKLPTR	  5442
MKMCNT	  5425
MKMMEM	  5425
MKMPTR	  5425
MKX010	  5011	  5013	  5021#
MKX020	  5022	  5024	  5032#
MKX030	  5033	  5035	  5046#
MKXCNT	  4998
MKXPTR	  4998
MKXREC	  4998
MKZLIN	  5370
MLDCNT	  2110
MLDCTR	  2111
MLDLIN	  2110
MLDPTB	  2111
MLDPTR	  2110
MLNLIN	  5499
MLNPTR	  4732	  5499
MLNSTA	  5499
MLP010	  4833	  4846#
MLP020	  4848	  4859#
MLP030	  4861	  4872#
MLPADR	  4817
MLPCNT	  4817
MLPLIN	  4817
MMLCNT	  4757
MMLLIN	  4757
MMLPTR	  4757
MMPCNT	  5353
MMPPSW	  5353
MMPPTR	  5353
MMTADR	  5185
MMTLOD	  5185
MNDCNT	  5333
MNLDST	  5589
MNLLID	  5589
MNMCNT	  5461
MNMNAM	  5461
MNMPTR	  5461
MNUCNT	  5659
MNUNUM	  5659
MNUPTR	  5659
MO%CDN	   705
MO%DAV	   708
MO%INA	   707
MONINI	   104#	   513
MOPCHK	  2559	  2673#
MOPD10	  2534#	  2573
MOPDMP	  2329	  2510#
MOPLDR	  1731	  2110#
MOPSIZ	  7458
MOPVER	  1830	  1894#
MP%DMP	  2656
MPDCNT	  2510
MPDLIN	  2510
MPDNUM	  2510
MPDPTR	  2510
MPV020	  1953#
MPV030	  1906	  1960#
MPVCNT	  1894
MPVERR	  1919	  1922	  1933	  1947	  1969#
MPVLEN	  1895
MPVLIN	  1894
MPVLNK	  1895
MPVMSG	  1894
MPVPTR	  1894
MQLCNT	  5236
MQLLID	  5236
MQLLIN	  5235
MRDADR	  5073
MRDCNT	  5073
MRDPTR	  5073
MRLCOD	  5214
MRLLIN	  4704
MRLLOD	  5214
MSGSIZ	   156	   162	  1655	  1661	  2831	  2834	  7480
MSIDMX	  5158
MXLNOD	  6483	  7631	  7816
NCHPW	  7433
NCTSIZ	   189	   216#
NCU	   113#
NCU010	   152#	   167	   177
NCUDSP	   165	   187#
NDBP1	  3520
NDBP2	  3521
NDCPU	  3539
NDDIP	   742	   823
NDDMP	  3490
NDFBLK	  4331
NDFCNT	  4331
NDFERR	  4350	  4358#
NDFPTR	  4331
NDLDV	  3540
NDLIN	  2233	  3369	  3459	  6482
NDLIP	   253	   498	   563	   591
NDLOD	  3395
NDMCNT	  4602
NDMDST	  4602
NDMPTR	  4602
NDNAM	  3373	  3463	  6470
NDPHT	  3557
NDPNA	  3555
NDPNU	  3556
NDPRO	  2245
NDPST	  2242	  2243
NDSL1	  3413	  3478
NDSL2	  3414	  3479
NDSRV	  3410	  3475
NEGBIT	   654	   775	   807
NETCON	   105#	   466	   558	   586	   829	  2824	  2927	  2931	  2944	  2948	  3022	  3026	  3089	  3093
	  4360	  6681	  6696	  6994	  7091	  7158	  7288	  7301	  7412	  7418
NIBSIZ	  6458
NIBTAB	   107#	  6453
NICTAB	   189	   208#	   216
NKMCRG	  3147	  3156
NLOGPG	  7753#
NNAMSZ	  4607	  4837	  4865	  5017	  5039	  5337	  5535
NODFLD	  4226	  4331#
NODTAB	  7560	  7820#
NRILN	   991	   997#	  1500	  1506	  1518
NSPD10	   190#	   193
NSPD40	   192	   199#
NXTLIN	  7799#
NXTNIB	  6454	  7798#
NXTTIM	  7803#
OF%RD	   329	  6039	  6424
OF%WR	   782	  6085	  6424	  7589
OPFTYP	  4449
OPIJFN	  6033
OPITYP	  6033
OPNIFL	   335	  6033#
OPNOFL	   787	  6081#
OPRMES	   105#
OPSFLD	  4225	  4449#
OPSTAB	  7730	  7735#
OTPTR	  7829#
OURNAM	   932	  2230	  3337	  5259	  5536	  6630	  7115	  7384	  7759#
OURNUM	   937	  7760#
P	   126	   127	   574	   596	   920	   927	   936	   950	   951	   953	   961	   968	   979	   981
	   992	   994	   998	  1000	  1002	  1004	  1006	  1008	  1016	  1021	  1024	  1027	  1030	  1031
	  1034	  1037	  1038	  1043	  1044	  1045	  1048	  1049	  1053	  1072	  1076	  1079	  1088	  1093
	  1096	  1107	  1108	  1111	  1117	  1131	  1139	  1147	  1150	  1156	  1161	  1179	  1191	  1232
	  1235	  1245	  1286	  1289	  1290	  1291	  1292	  1314	  1318	  1323	  1328	  1332	  1333	  1334
	  1335	  1394	  1398	  1419	  1422	  1424	  1430	  1437	  1455	  1462	  1501	  1503	  1508	  1510
	  1512	  1513	  1514	  1516	  1536	  1542	  1552	  1555	  1556	  1560	  1571	  1585	  1587	  1591
	  1592	  1599	  1692	  1694	  1697	  1895	  1920	  1923	  1926	  1928	  1940	  1953	  2035	  2040
	  2048	  2063	  2065	  2066	  2069	  2075	  2078	  2092	  2111	  2128	  2139	  2149	  2150	  2152
	  2685	  2694	  2695	  2704	  2711	  2712	  2726	  2728	  2748	  2795	  2810	  2817	  2818	  2822
	  2825	  2858	  2860	  2864	  2865	  2866	  2903	  2904	  2909	  2913	  2916	  2925	  2929	  2933
	  2941	  2942	  2946	  2950	  2955	  2959	  2962	  2969	  2972	  2976	  2977	  2978	  2979	  2980
	  2981	  2982	  2983	  2984	  2985	  3019	  3020	  3024	  3028	  3034	  3042	  3044	  3046	  3048
	  3053	  3061	  3062	  3063	  3065	  3072	  3086	  3087	  3091	  3095	  3262	  3266	  3270	  3274
	  3278	  3282	  3286	  3290	  3294	  3306	  3308	  3309	  3322	  3328	  4134	  4141	  4237	  4242
	  4244	  4247	  4248	  4249	  4253	  4254	  4255	  4261	  4262	  4275	  4291	  4293	  4294	  4298
	  4302	  4306	  4307	  4311	  4315	  4319	  4320	  4331	  4333	  4334	  4341	  4345	  4347	  4348
	  4352	  4358	  4361	  4449	  4454	  4459	  5185	  5187	  5188	  5196	  5199	  5236	  5245	  5261
	  5333	  5336	  5340	  5499	  5502	  5503	  5506	  5512	  5514	  5517	  5528	  5530	  5539	  5546
	  5548	  5589	  5591	  5594	  5600	  5611	  5626	  5628	  5631	  5637	  5648	  5949	  5952	  5953
	  5956	  6033	  6047	  6049	  6054	  6061	  6122	  6173	  6183	  6394	  6396	  6397	  6398	  6399
	  6400	  6402	  6403	  6404	  6413	  6414	  6415	  6416	  6418	  6420	  6436	  6514	  6516	  6521
	  6533	  6534	  6536	  6537	  6575	  6576	  6582	  6643	  6654	  6655	  6657	  6659	  6672	  6686
	  6765	  6776	  6780	  6781	  6791	  6794	  6906	  6915	  6916	  6951	  6961	  6962	  6963	  6976
	  6980	  6982	  6984	  6985	  6991	  7003	  7012	  7013	  7048	  7058	  7059	  7060	  7073	  7077
	  7079	  7081	  7082	  7088	  7098	  7107	  7111	  7126	  7132	  7135	  7141	  7144	  7151	  7152
	  7155	  7173	  7183	  7305	  7312	  7400	  7419	  7506
P1	  2741	  2742	  2746	  2760	  2761	  2765	  2772	  2775	  2842	  2852	  2853	  2905	  2934	  3083
	  3085	  3313	  3314	  3327	  3338	  6453	  6456	  6458	  6573	  6574	  6579	  6583	  6585	  6608
	  6610	  6616	  6622	  6627	  6629	  6634	  6640	  7205	  7231	  7255	  7400	  7401	  7402	  7403
	  7404	  7406	  7407	  7419
P2	  2742	  2848	  2850	  2908	  2915	  2919	  2921	  3038	  3043	  3045	  3047	  3049	  3056	  3057
	  3064	  3076	  3079	  3081	  3161	  3314	  3315	  3316	  3317	  3318	  3323	  3329	  3332	  3341
	  6454	  6459	  6608	  6609	  6618	  6621	  6627	  6628	  6636	  6639	  7183	  7184	  7185	  7202
	  7229	  7282	  7286	  7296	  7299
P3	  7232	  7317	  7322	  7340	  7389
P4	  2797	  2815	  2826	  7225	  7241	  7243
P5	   131	   132	   134	   137	   140	   141	   153	   154	   163	   164	   171	   246	   259	   266
	   393	   434	   441	   494	   504	   509	   512	   521	   526	   535	   543	   560	   588	   625
	   632	   634	   641	   668	   677	   690	   691	   693	   696	   697	   735	   748	   786	   798
	   803	   820	   833	   922	   983	  1011	  1052	  1104	  1116	  1136	  1155	  1440	  1445	  1477
	  1480	  1484	  1519	  1634	  1652	  1653	  1662	  1842	  1847	  1854	  1863	  1864	  1871	  2042
	  2084	  2094	  2205	  2215	  2216	  2287	  2481	  2584	  2622	  2828	  2829	  2835	  3362	  3366
	  3370	  3374	  3378	  3381	  3384	  3389	  3392	  3397	  3403	  3407	  3412	  3415	  3419	  3423
	  3426	  3427	  3428	  3429	  3433	  3436	  3439	  3440	  3441	  3452	  3456	  3460	  3464	  3468
	  3472	  3477	  3480	  3484	  3487	  3492	  3498	  3505	  3591	  3595	  3601	  3608	  3614	  3617
	  3622	  3627	  3632	  3641	  3645	  3652	  3683	  3687	  3693	  3698	  3704	  3707	  3714	  3719
	  3724	  3728	  3782	  3785	  3788	  3791	  3905	  3906	  3907	  3949	  3968	  3984	  4654	  4660
	  4662	  4666	  4680	  4686	  4688	  4694	  4707	  4716	  4797	  4803	  4831	  4846	  4859	  4898
	  4919	  4936	  4952	  4967	  4989	  5002	  5010	  5021	  5032	  5059	  5082	  5098	  5104	  5124
	  5175	  5193	  5202	  5217	  5224	  5250	  5373	  5382	  5716	  5740	  5760	  5788	  5804	  5836
	  5844	  5852	  5864	  5875	  5897	  6437	  6732	  6739	  6793	  6819	  6826	  6841	  6922	  6932
	  6941	  6952	  7019	  7029	  7038	  7049	  7431	  7432	  7439	  7441	  7443	  7444	  7446	  7455
	  7457	  7458	  7466	  7468	  7469	  7477	  7479	  7480	  7512	  7514	  7521	  7524	  7527
PARHST	  3936	  3982#
PARNAM	  3934	  3947#
PARNUM	  3935	  3962#
PARTAB	  3925	  3933#
PDLEN	   127	   131	   139	  6436	  7830
PGCPU	  7523
PGFIL	  7533
PGLDV	  7520
PGLEN	  7529	  7811
PGMTAB	  7519	  7811#
PGPGM	  7526
PRSBLD	  1320	  1325	  1330	  1332#
PRSCTL	  1286
PRSEND	  1319	  1324	  1329	  1359#
PRSFND	  1301	  1304#
PRSLDV	  1286
PRSSTN	  1286
PRSUNT	  1286
PRTBUF	  1179
PRTINF	  1109	  1148	  1178#
PRTLOP	  1185#	  1190
PT4NUM	  5692
PT4PTR	  5692
PTRSIZ	  2118	  7732#
PTRTAB	  2119	  2127	  7729#	  7732
Q1	  1111	  1112	  1150	  1151	  1237	  1242	  1244	  1246	  1249	  1251	  1253	  1270	  7204	  7218
	  7274
Q2	  1139	  1140	  1143	  1144	  1145	  1234	  1238	  1247	  1250	  1252	  1272
R	   353	   985	  1183	  1429	  4171	  4539	  4777	  5287	  5722	  5748	  5772	  5792	  5823	  5846
	  5861	  5881	  5905	  5926	  6011	  6052	  6056	  6111	  6356	  7321	  7348	  7381	  7386	  7399
	  7437	  7562	  7671	  7675	  7688
RBBYT	  5917	  5923	  5932	  5934	  6002	  6012	  6017	  6022	  6106	  7591
RBCAD	   340	   366	   388	  6217
RBCNT	   360	   386	   405	  4973	  4983	  4985	  6171	  6238
RBDAT	  5927	  5931	  6009	  6018	  6021	  6105
RBFCT	  6231	  6236	  6309	  6364
RBJFN	   338	   460	   463	   552	   580	   790	  5924	  6008	  6104	  6352	  7592
RBNAD	   365	   385	  6162	  6218	  6299	  6350
RBPTR	   351	  4978	  4981	  6172	  6242	  7595
RBTYP	   339	   352	  6264
RBXAD	   414	  5054	  6163	  6327	  6350	  6351
RCTCNT	  6765
RCTERR	  6765
RCTLIN	  6764
RCTLNK	  6764
RCTNOD	  6764
RCTPTR	  6765
RCVFLD	  4224	  4473#
RCVMAX	  2538	  5853
RDMLIN	  2603
RDTLIN	  5833
REDCTR	  6522	  6764#
REGFLD	  4218	  4400#
REGLEN	  3115	  3135#
REGTAB	  3114	  3130#	  3135
RELFRE	   102#	   465	   557	   585	   828	  2823	  2926	  2930	  2943	  2947	  3021	  3025	  3088	  3092
	  4359	  6680	  6695	  6993	  7090	  7157	  7287	  7300	  7411	  7417
RELPGA	   102#	  1162	  1597	  1957	  1970	  2766	  2773
REPLNK	  1921	  2035#
REQCTR	  6779	  6804#
REQDLL	   208	   228#
REQDMP	   209	   724#
REQLOG	   214	  2684#
REQLSV	   212	  1535#
REQRED	   210	   894#
REQSET	   213	  1367#
REQZRO	   211	  1492#
RGF010	  4435#	  4439
RGF020	  4436	  4441#
RGFBLK	  4400
RGFCNT	  4400
RGFNUM	  4400
RGFPTR	  4400
RHDWC1	  7793#
RHDWC2	  7794#
RHDWC3	  7795#
RLGOPT	  2685
RLGSEQ	  2685
RLGSRC	  2685
RLSMSG	  1072
RM%PRI	   250	   497	   738	   825	  6476	  6499
RMDMP2	  2604#	  2630
ROMDMP	  2305	  2603#
ROUVER	   920
RPLHST	  2035
RPLLNK	  2035
RQCLIN	  6804
RQCLNK	  6804
RQD010	   796#	   814
RQDCNT	   724
RQDLNK	   724
RQDPTR	   724
RQDREC	   724
RQINT1	   520	   524#
RQINT2	   530	   534	   539	   543#
RQL010	   241#
RQL020	   307#	   479
RQL030	   348#	   407
RQL035	   368	   384#
RQL040	   392#	   406
RQL070	   361	   410#
RQL071	   421	   432#
RQL080	   474	   485#
RQL085	   496	   504#	   822
RQL090	   511	   515#
RQLCHN	   411	   693	   699	   706
RQLCNT	   228
RQLE.1	   590	   596#
RQLERR	   272	   308	   313	   319	   322	   331	   334	   336	   358	   377	   395	   400	   420	   428
	   437	   447	   451	   472	   478	   574#	  1867	  1877	  1881
RQLINT	   520#	   692
RQLLNK	   228
RQLOUT	  1121	  1144	  1161#
RQLPTR	   228
RQLREC	   228
RQRBUF	  1072
RQRCNT	   894
RQRHLD	  1072
RQRLAL	  1089	  1128#
RQRLCT	   912	   989#
RQRLNS	   909	   920#
RQRLOP	  1144#	  1160
RQRLST	   913	  1071#
RQRPTR	   894
RQRSIZ	   902	   916#
RQRTAB	   904	   908#	   916
RSKP	   508	   516	   660	   680	   713	   837	   838	   860	   878	   891	   926	   986	  1015	  1056
	  1057	  1164	  1214	  1273	  1336	  1350	  1362	  1434	  1449	  1450	  1488	  1489	  1523	  1524
	  1600	  1672	  1674	  1679	  1700	  1734	  1759	  1883	  1965	  2024	  2093	  2099	  2147	  2163
	  2189	  2193	  2244	  2261	  2336	  2536	  2593	  2631	  2659	  2680	  2716	  2768	  2854	  2936
	  3097	  3125	  3177	  3192	  3205	  3219	  3234	  3247	  3345	  3443	  3509	  3522	  3541	  3558
	  3661	  3737	  3751	  3792	  3806	  3820	  3836	  3854	  3873	  3889	  3924	  3933	  3950	  3969
	  3985	  4032	  4076	  4119	  4142	  4177	  4198	  4263	  4270	  4321	  4327	  4354	  4373	  4395
	  4445	  4460	  4467	  4478	  4487	  4546	  4579	  4613	  4628	  4667	  4695	  4717	  4786	  4882
	  4920	  4953	  4990	  5063	  5177	  5323	  5341	  5468	  5487	  5518	  5550	  5562	  5576	  5612
	  5649	  5723	  5749	  5773	  5793	  5824	  5865	  5882	  5906	  5935	  5961	  5974	  6023	  6062
	  6090	  6112	  6198	  6248	  6339	  6365	  6383	  6430	  6689	  6748	  6795	  6846	  6898	  7285
	  7326	  7334	  7344	  7353	  7359	  7382	  7387	  7390	  7448	  7498	  7515	  7534	  7551	  7566
	  7596	  7617	  7639	  7682	  7685	  7689
RSNFLD	  4223	  4324#
RSTLEN	  1371	  1391#
RSTTAB	  1373	  1377#	  1391
SAVPQ	   102#	  2684	  2724	  2793	  2857	  2967	  3305	  7170
SAVQ	   105#	  1071	  1231
SAVREP	  7792#
SAVRET	  7791#
SAVT	   105#
SDMDST	  3179
SDMREG	  3179
SDTCNT	  2582
SDTLIN	  5714	  5757
SDTPTR	  2582
SEMCOD	  2202
SETLIN	  1432	  1459	  1466	  1477#
SETPGM	   333	  7506#
SKDCNT	  3140
SKDDST	  3140
SKDMCD	  3140
SKDREG	  3140
SLDTAB	  4908	  7729	  7740#
SNDDAT	  2571	  2582#
SNDEND	  1671	  2202#	  2335
SNDTXT	  1941	  1986#
SPGM10	  7520#	  7530
SPGM20	  7522	  7525	  7529#
SPGM30	  7528	  7533#
SPGTAB	  7506
SRGDEV	  3109
SRGDST	  3109
SRGMCD	  3109
SRGREG	  3109
STHHST	  7376
STHNOD	  7376
STKDP2	  3159	  3164#
STKDP4	  3172	  3175#
STODMC	  3134	  3179#
STODTE	  3130	  3195#
STODUP	  3131	  3208#
STOHST	  7324	  7376#
STOKDP	  3132	  3140#
STOKDZ	  3133	  3139#
STOREG	  3066	  3109#
STOST2	  7437#	  7440
STOSTR	  4026	  7430#
STRBLK	  6882
STRDST	  6882
STROFS	  6882
STRSTR	  6882
STX010	  1990#	  2027
STXCNT	  1986
STXLIN	  1986
STXLNK	  1986
STXPTR	  1986
SY%CHK	  2841
SY%DMP	  7076
SY%LCT	  6549
SY%LOD	  6979
SY%MLG	  3082	  3096
SY%NCU	  7143
SY%TOP	  2935
SYADJ	  2908	  6566
SYCOD	  2842	  3083	  6855
SYCTR	  6583
SYDAT	  6864
SYDBLK	  7003
SYDCOD	  7002
SYDFIL	  7003
SYDSIZ	  7003
SYDSRV	  7002
SYDST	  3341	  6639
SYDSVL	  7002
SYDTGT	  7002
SYFCN	  6565
SYFIL	  6978	  7075
SYHDW	  3038	  6667
SYHLN	  6858
SYLBLK	  6906
SYLCOD	  6905
SYLEN	  2760	  2853	  6646	  6856
SYLFIL	  6906
SYLI1	  2921	  3057	  6658
SYLID	  2919	  3056	  6656
SYLSIZ	  6906
SYLSRV	  6905
SYLSVL	  6905
SYLTGT	  6905
SYMID	  6567
SYNAM	  7124
SYNBLK	  7098
SYNCT	  3076	  6592
SYNCV	  7113
SYNOD	  3332	  6621
SYNOFS	  7098
SYNSIZ	  7098
SYNTM	  6563
SYOPS	  3043
SYPGM	  7138
SYPSN	  6870
SYPTR	  2850	  3081	  6601
SYRCD	  6965	  7062
SYRCT	  6562
SYRCV	  3049
SYRDMP	   819	  7002#
SYRHDR	  6552	  6855#	  6983	  7080	  7145
SYRLOD	   490	   575	  6905#
SYRNCU	  7098#
SYRSN	  2915	  3045	  6561
SYRSTR	  2906	  3330	  3339	  6882#
SYSEQ	  3323	  6564
SYSNAM	   107#	   976
SYSRV	  6972	  7069
SYSVL	  6975	  7072
SYT20	  6861
SYTGT	  6969	  7066
SYTHR	  3047
SYTYP	  6579
SYUPT	  6867
SYVER	  6860
T1	   113	   132	   133	   134	   135	   136	   137	   138	   139	   140	   153	   163	   166	   171
	   190	   191	   194	   199	   234	   237	   246	   248	   249	   252	   253	   254	   259	   261
	   262	   270	   275	   310	   311	   313	   317	   319	   320	   321	   329	   331	   332	   334
	   336	   338	   342	   348	   350	   351	   352	   358	   365	   367	   374	   375	   377	   385
	   387	   388	   392	   397	   398	   400	   410	   413	   418	   420	   425	   426	   428	   433
	   437	   441	   444	   445	   447	   448	   450	   457	   460	   464	   470	   472	   475	   485
	   489	   494	   498	   499	   504	   509	   512	   520	   521	   525	   529	   533	   536	   537
	   538	   543	   548	   551	   552	   553	   556	   560	   563	   564	   565	   574	   576	   579
	   580	   581	   584	   588	   591	   592	   593	   596	   624	   625	   627	   631	   642	   644
	   650	   652	   653	   654	   662	   665	   669	   671	   677	   690	   691	   692	   693	   695
	   701	   710	   711	   729	   731	   735	   737	   739	   741	   742	   743	   748	   751	   755
	   764	   765	   767	   771	   773	   774	   775	   777	   778	   782	   785	   786	   790	   796
	   801	   803	   804	   807	   808	   813	   818	   820	   823	   824	   827	   830	   833	   845
	   855	   859	   873	   874	   876	   877	   890	   899	   901	   903	   908	   910	   911	   914
	   922	   927	   928	   930	   938	   940	   942	   943	   944	   948	   949	   960	   963	   965
	   967	   970	   972	   974	   983	   995	   997	   998	   999	  1002	  1004	  1006	  1007	  1010
	  1011	  1016	  1017	  1019	  1052	  1059	  1060	  1062	  1078	  1082	  1084	  1085	  1086	  1087
	  1093	  1095	  1096	  1097	  1099	  1104	  1106	  1107	  1116	  1120	  1128	  1130	  1136	  1138
	  1140	  1141	  1142	  1143	  1145	  1146	  1155	  1159	  1161	  1186	  1189	  1192	  1193	  1194
	  1195	  1197	  1198	  1199	  1204	  1206	  1208	  1210	  1212	  1235	  1236	  1237	  1242	  1244
	  1253	  1256	  1257	  1259	  1264	  1296	  1299	  1303	  1305	  1307	  1308	  1310	  1312	  1313
	  1315	  1345	  1359	  1368	  1370	  1372	  1377	  1378	  1379	  1380	  1381	  1382	  1383	  1384
	  1386	  1387	  1388	  1389	  1400	  1401	  1405	  1406	  1419	  1422	  1424	  1425	  1427	  1430
	  1437	  1441	  1442	  1444	  1445	  1452	  1455	  1462	  1478	  1481	  1483	  1484	  1493	  1497
	  1504	  1507	  1508	  1509	  1512	  1513	  1514	  1515	  1519	  1539	  1540	  1541	  1548	  1552
	  1553	  1554	  1555	  1557	  1559	  1572	  1573	  1576	  1581	  1589	  1591	  1595	  1596	  1598
	  1599	  1624	  1625	  1629	  1634	  1638	  1652	  1657	  1662	  1664	  1665	  1668	  1673	  1699
	  1715	  1718	  1725	  1726	  1728	  1733	  1738	  1742	  1746	  1748	  1749	  1751	  1758	  1782
	  1783	  1788	  1790	  1791	  1793	  1808	  1813	  1815	  1817	  1821	  1823	  1838	  1843	  1844
	  1845	  1846	  1847	  1853	  1854	  1856	  1863	  1867	  1871	  1874	  1875	  1877	  1878	  1880
	  1882	  1902	  1903	  1904	  1908	  1916	  1923	  1928	  1929	  1932	  1937	  1942	  1943	  1946
	  1948	  1953	  1956	  1960	  1969	  1972	  1990	  1993	  1997	  1999	  2004	  2008	  2010	  2011
	  2018	  2019	  2020	  2022	  2026	  2042	  2044	  2048	  2049	  2075	  2077	  2078	  2080	  2084
	  2088	  2094	  2098	  2116	  2117	  2120	  2123	  2127	  2128	  2133	  2134	  2137	  2138	  2148
	  2151	  2160	  2161	  2162	  2177	  2180	  2184	  2185	  2186	  2187	  2192	  2205	  2207	  2209
	  2216	  2230	  2232	  2233	  2234	  2236	  2238	  2239	  2241	  2242	  2245	  2253	  2255	  2256
	  2257	  2258	  2275	  2287	  2291	  2295	  2297	  2298	  2300	  2304	  2311	  2312	  2317	  2327
	  2334	  2481	  2485	  2486	  2489	  2493	  2501	  2514	  2519	  2520	  2524	  2525	  2527	  2528
	  2529	  2537	  2546	  2552	  2584	  2588	  2592	  2604	  2608	  2610	  2611	  2615	  2616	  2617
	  2621	  2622	  2624	  2643	  2644	  2646	  2647	  2649	  2650	  2652	  2655	  2657	  2658	  2674
	  2675	  2677	  2735	  2746	  2754	  2755	  2761	  2763	  2765	  2772	  2775	  2784	  2803	  2813
	  2814	  2816	  2817	  2821	  2822	  2825	  2828	  2833	  2835	  2836	  2874	  2905	  2909	  2925
	  2929	  2935	  2941	  2942	  2946	  2950	  2993	  3019	  3020	  3024	  3028	  3034	  3035	  3038
	  3042	  3043	  3044	  3045	  3046	  3047	  3048	  3049	  3053	  3056	  3061	  3062	  3068	  3073
	  3074	  3077	  3078	  3080	  3081	  3087	  3091	  3096	  3111	  3112	  3113	  3118	  3119	  3142
	  3143	  3149	  3153	  3160	  3163	  3165	  3169	  3170	  3174	  3175	  3176	  3185	  3186	  3187
	  3189	  3190	  3191	  3201	  3203	  3204	  3214	  3216	  3217	  3218	  3229	  3230	  3231	  3246
	  3313	  3316	  3317	  3318	  3322	  3323	  3327	  3336	  3338	  3346	  3348	  3366	  3368	  3369
	  3372	  3373	  3374	  3381	  3389	  3390	  3392	  3394	  3395	  3396	  3397	  3403	  3407	  3409
	  3410	  3411	  3413	  3414	  3423	  3429	  3436	  3456	  3458	  3459	  3462	  3463	  3464	  3472
	  3474	  3475	  3476	  3478	  3479	  3484	  3485	  3487	  3489	  3490	  3491	  3492	  3504	  3505
	  3506	  3507	  3519	  3520	  3521	  3536	  3539	  3540	  3554	  3555	  3556	  3557	  3588	  3600
	  3613	  3616	  3626	  3660	  3680	  3736	  3749	  3750	  3804	  3805	  3818	  3819	  3834	  3835
	  3847	  3850	  3867	  3870	  3909	  3912	  3913	  3919	  3920	  3922	  3962	  3963	  3965	  3967
	  4000	  4003	  4023	  4025	  4027	  4028	  4030	  4046	  4047	  4048	  4049	  4050	  4053	  4059
	  4074	  4093	  4097	  4098	  4133	  4135	  4136	  4138	  4139	  4155	  4173	  4193	  4196	  4211
	  4212	  4214	  4217	  4240	  4241	  4243	  4249	  4258	  4262	  4281	  4282	  4284	  4286	  4287
	  4289	  4290	  4292	  4297	  4301	  4307	  4308	  4311	  4316	  4317	  4320	  4333	  4338	  4341
	  4348	  4358	  4361	  4368	  4369	  4370	  4379	  4380	  4382	  4383	  4386	  4387	  4388	  4390
	  4405	  4406	  4407	  4412	  4413	  4418	  4420	  4421	  4424	  4429	  4430	  4441	  4452	  4453
	  4490	  4501	  4540	  4562	  4566	  4568	  4578	  4604	  4608	  4626	  4627	  4654	  4656	  4658
	  4663	  4665	  4666	  4680	  4682	  4684	  4693	  4694	  4707	  4709	  4711	  4715	  4716	  4734
	  4735	  4736	  4737	  4738	  4739	  4740	  4741	  4742	  4743	  4745	  4763	  4765	  4768	  4785
	  4797	  4799	  4802	  4803	  4820	  4822	  4825	  4835	  4850	  4852	  4863	  4873	  4881	  4897
	  4898	  4900	  4902	  4909	  4918	  4919	  4935	  4936	  4938	  4940	  4946	  4951	  4952	  4966
	  4967	  4969	  4971	  4980	  4988	  4989	  5002	  5004	  5008	  5009	  5015	  5026	  5037	  5047
	  5059	  5060	  5075	  5077	  5082	  5098	  5100	  5104	  5120	  5121	  5122	  5123	  5125	  5126
	  5127	  5128	  5132	  5133	  5134	  5135	  5136	  5137	  5138	  5139	  5140	  5141	  5142	  5143
	  5144	  5145	  5146	  5147	  5148	  5150	  5159	  5162	  5163	  5169	  5175	  5194	  5195	  5196
	  5197	  5198	  5202	  5218	  5219	  5220	  5221	  5222	  5223	  5224	  5241	  5242	  5250	  5252
	  5254	  5267	  5269	  5271	  5283	  5288	  5305	  5315	  5355	  5373	  5375	  5377	  5381	  5382
	  5394	  5395	  5400	  5401	  5403	  5405	  5410	  5427	  5444	  5464	  5483	  5502	  5504	  5505
	  5506	  5508	  5510	  5515	  5517	  5532	  5534	  5545	  5560	  5574	  5591	  5592	  5593	  5594
	  5596	  5598	  5603	  5609	  5611	  5628	  5629	  5630	  5631	  5633	  5635	  5640	  5646	  5648
	  5662	  5664	  5679	  5681	  5696	  5720	  5742	  5743	  5744	  5745	  5746	  5762	  5763	  5764
	  5765	  5766	  5767	  5768	  5769	  5770	  5787	  5789	  5790	  5808	  5809	  5810	  5811	  5812
	  5813	  5814	  5815	  5821	  5838	  5839	  5843	  5850	  5853	  5854	  5856	  5857	  5859	  5863
	  5879	  5899	  5900	  5901	  5902	  5903	  5916	  5924	  5931	  5949	  5952	  5957	  5958	  5975
	  5985	  5986	  5987	  5988	  6008	  6018	  6021	  6035	  6036	  6047	  6048	  6049	  6053	  6058
	  6061	  6081	  6082	  6103	  6104	  6128	  6138	  6147	  6150	  6157	  6160	  6167	  6168	  6169
	  6171	  6172	  6173	  6179	  6188	  6191	  6192	  6193	  6212	  6217	  6218	  6231	  6236	  6238
	  6242	  6249	  6263	  6264	  6298	  6299	  6308	  6309	  6326	  6327	  6349	  6350	  6351	  6352
	  6358	  6359	  6360	  6361	  6363	  6364	  6381	  6396	  6397	  6398	  6400	  6401	  6402	  6403
	  6407	  6409	  6412	  6413	  6414	  6417	  6418	  6420	  6422	  6423	  6426	  6429	  6443	  6456
	  6470	  6475	  6481	  6482	  6484	  6492	  6498	  6520	  6524	  6536	  6541	  6544	  6545	  6549
	  6558	  6559	  6561	  6562	  6563	  6564	  6565	  6566	  6567	  6575	  6591	  6592	  6596	  6597
	  6598	  6601	  6607	  6609	  6610	  6614	  6615	  6622	  6626	  6628	  6629	  6633	  6640	  6641
	  6642	  6643	  6644	  6646	  6661	  6662	  6671	  6678	  6679	  6685	  6693	  6694	  6710	  6713
	  6717	  6723	  6724	  6731	  6739	  6740	  6745	  6751	  6769	  6772	  6777	  6780	  6785	  6791
	  6793	  6805	  6809	  6810	  6812	  6817	  6822	  6825	  6826	  6827	  6829	  6834	  6839	  6844
	  6855	  6857	  6858	  6859	  6860	  6864	  6866	  6867	  6868	  6870	  6884	  6885	  6886	  6890
	  6891	  6897	  6911	  6913	  6914	  6915	  6917	  6921	  6926	  6927	  6931	  6935	  6936	  6940
	  6944	  6945	  6951	  6956	  6960	  6961	  6962	  6979	  6984	  6991	  6992	  7008	  7010	  7011
	  7012	  7014	  7018	  7023	  7024	  7028	  7032	  7033	  7037	  7041	  7042	  7048	  7053	  7057
	  7058	  7059	  7076	  7081	  7088	  7089	  7103	  7105	  7106	  7107	  7112	  7113	  7114	  7119
	  7125	  7126	  7131	  7139	  7140	  7141	  7142	  7143	  7151	  7155	  7156	  7176	  7189	  7191
	  7192	  7193	  7195	  7199	  7202	  7203	  7204	  7205	  7210	  7215	  7226	  7229	  7230	  7231
	  7232	  7244	  7273	  7282	  7283	  7284	  7286	  7293	  7296	  7297	  7299	  7309	  7311	  7317
	  7318	  7319	  7322	  7331	  7350	  7351	  7352	  7378	  7382	  7383	  7387	  7388	  7389	  7399
	  7401	  7404	  7407	  7409	  7410	  7415	  7416	  7430	  7438	  7441	  7442	  7443	  7445	  7447
	  7455	  7456	  7458	  7466	  7467	  7469	  7477	  7478	  7480	  7492	  7493	  7494	  7495	  7496
	  7497	  7512	  7513	  7514	  7520	  7521	  7523	  7524	  7526	  7527	  7533	  7546	  7547	  7549
	  7559	  7560	  7565	  7583	  7591	  7592	  7593	  7595	  7610	  7615	  7616	  7633	  7635	  7636
	  7638	  7640	  7642	  7656	  7659	  7660	  7667	  7672	  7686
T2	   114	   154	   155	   158	   162	   172	   200	   235	   250	   276	   309	   310	   320	   339
	   352	   357	   366	   367	   373	   374	   386	   387	   393	   396	   397	   411	   416	   424
	   425	   434	   442	   443	   444	   458	   468	   476	   497	   505	   526	   531	   532	   544
	   635	   641	   653	   666	   667	   668	   676	   696	   697	   699	   702	   738	   756	   763
	   764	   774	   797	   798	   802	   825	   834	   872	   923	   931	   935	   936	   950	   952
	   954	   975	   979	   980	   981	   982	  1000	  1001	  1003	  1005	  1008	  1012	  1018	  1019
	  1020	  1051	  1053	  1054	  1063	  1079	  1081	  1085	  1100	  1102	  1108	  1115	  1117	  1118
	  1131	  1132	  1134	  1147	  1154	  1156	  1157	  1181	  1191	  1192	  1193	  1194	  1198	  1203
	  1205	  1207	  1209	  1211	  1213	  1254	  1255	  1257	  1260	  1265	  1266	  1268	  1269	  1270
	  1271	  1272	  1299	  1300	  1304	  1305	  1306	  1311	  1313	  1314	  1318	  1323	  1328	  1345
	  1346	  1347	  1348	  1359	  1360	  1399	  1402	  1431	  1440	  1441	  1446	  1458	  1465	  1479
	  1480	  1485	  1510	  1511	  1516	  1520	  1538	  1539	  1549	  1556	  1557	  1561	  1562	  1582
	  1588	  1624	  1635	  1653	  1654	  1661	  1663	  1729	  1739	  1809	  1814	  1848	  1852	  1853
	  1864	  1872	  1873	  1874	  1900	  1901	  1914	  1915	  1916	  1917	  1920	  1924	  1925	  1938
	  1949	  1961	  1991	  1994	  1995	  1996	  2000	  2001	  2002	  2012	  2016	  2017	  2023	  2041
	  2085	  2095	  2119	  2120	  2139	  2149	  2150	  2151	  2152	  2153	  2176	  2177	  2188	  2214
	  2215	  2245	  2246	  2252	  2288	  2328	  2482	  2538	  2540	  2541	  2545	  2555	  2563	  2566
	  2585	  2590	  2609	  2610	  2620	  2621	  2642	  2673	  2741	  2747	  2756	  2760	  2804	  2818
	  2829	  2830	  2834	  2843	  2844	  2845	  2846	  2849	  2850	  2851	  2852	  2853	  2870	  2904
	  2908	  2933	  2934	  2989	  3057	  3063	  3072	  3073	  3079	  3080	  3084	  3085	  3086	  3095
	  3114	  3120	  3121	  3144	  3145	  3146	  3181	  3182	  3183	  3184	  3197	  3198	  3199	  3200
	  3210	  3211	  3212	  3213	  3232	  3233	  3243	  3308	  3328	  3332	  3337	  3341	  3370	  3410
	  3411	  3412	  3413	  3415	  3428	  3439	  3460	  3475	  3476	  3477	  3478	  3480	  3539	  3555
	  3660	  3736	  3748	  3803	  3817	  3833	  3911	  3914	  3918	  3962	  4013	  4014	  4015	  4020
	  4021	  4029	  4052	  4053	  4054	  4061	  4062	  4075	  4099	  4132	  4133	  4134	  4135	  4137
	  4138	  4140	  4141	  4169	  4170	  4171	  4172	  4175	  4176	  4191	  4194	  4210	  4239	  4240
	  4248	  4253	  4254	  4259	  4261	  4280	  4283	  4284	  4306	  4315	  4316	  4319	  4334	  4347
	  4367	  4368	  4381	  4389	  4411	  4412	  4413	  4414	  4419	  4437	  4438	  4442	  4451	  4502
	  4509	  4537	  4541	  4545	  4570	  4571	  4572	  4577	  4603	  4609	  4625	  4659	  4664	  4685
	  4688	  4690	  4692	  4712	  4744	  4764	  4765	  4767	  4768	  4769	  4774	  4780	  4781	  4783
	  4784	  4800	  4804	  4837	  4840	  4846	  4847	  4865	  4868	  4875	  4877	  4878	  4880	  4895
	  4906	  4907	  4908	  4910	  4911	  4912	  4916	  4917	  4949	  4950	  4978	  4981	  4982	  4986
	  4987	  5014	  5015	  5017	  5020	  5025	  5026	  5027	  5028	  5029	  5036	  5037	  5039	  5042
	  5048	  5049	  5054	  5061	  5062	  5078	  5080	  5083	  5101	  5103	  5149	  5150	  5156	  5158
	  5161	  5176	  5199	  5201	  5225	  5245	  5258	  5272	  5283	  5287	  5307	  5314	  5322	  5336
	  5337	  5340	  5356	  5358	  5359	  5379	  5398	  5399	  5405	  5428	  5430	  5431	  5445	  5447
	  5448	  5465	  5484	  5503	  5511	  5516	  5530	  5535	  5539	  5541	  5546	  5548	  5549	  5561
	  5575	  5599	  5604	  5610	  5636	  5641	  5647	  5665	  5667	  5668	  5679	  5680	  5681	  5697
	  5702	  5703	  5716	  5719	  5740	  5743	  5745	  5760	  5763	  5765	  5767	  5769	  5788	  5789
	  5804	  5807	  5815	  5820	  5836	  5839	  5844	  5852	  5854	  5857	  5858	  5864	  5875	  5878
	  5897	  5900	  5902	  5927	  5933	  5953	  5958	  5959	  5960	  5976	  6009	  6019	  6020	  6035
	  6039	  6048	  6054	  6057	  6058	  6081	  6085	  6105	  6131	  6135	  6136	  6141	  6142	  6151
	  6162	  6163	  6182	  6183	  6193	  6217	  6218	  6219	  6220	  6231	  6232	  6233	  6234	  6235
	  6237	  6238	  6242	  6243	  6252	  6264	  6265	  6266	  6268	  6292	  6299	  6301	  6307	  6309
	  6311	  6317	  6320	  6327	  6329	  6335	  6336	  6353	  6354	  6357	  6359	  6379	  6404	  6408
	  6409	  6410	  6419	  6424	  6476	  6485	  6499	  6516	  6521	  6527	  6537	  6550	  6560	  6561
	  6576	  6582	  6599	  6600	  6601	  6611	  6615	  6616	  6617	  6618	  6619	  6620	  6621	  6630
	  6633	  6634	  6635	  6636	  6637	  6638	  6639	  6645	  6646	  6652	  6653	  6656	  6658	  6667
	  6672	  6686	  6722	  6723	  6732	  6736	  6737	  6778	  6781	  6794	  6808	  6809	  6818	  6819
	  6823	  6824	  6830	  6840	  6841	  6845	  6856	  6887	  6891	  6893	  6894	  6895	  6896	  6922
	  6932	  6941	  6952	  6964	  6965	  6967	  6968	  6969	  6970	  6971	  6972	  6973	  6974	  6975
	  6976	  6977	  6978	  6980	  6981	  6985	  7019	  7029	  7038	  7049	  7061	  7062	  7064	  7065
	  7066	  7067	  7068	  7069	  7070	  7071	  7072	  7073	  7074	  7075	  7077	  7078	  7082	  7115
	  7127	  7135	  7136	  7137	  7142	  7152	  7177	  7236	  7274	  7276	  7310	  7312	  7313	  7318
	  7323	  7332	  7347	  7348	  7349	  7379	  7384	  7431	  7447	  7548	  7549	  7559	  7563	  7588
	  7590	  7591	  7609	  7610	  7635	  7659	  7668	  7673	  7676	  7677	  7678	  7679	  7680	  7683
T3	   114	   115	   141	   156	   162	   164	   173	   267	   268	   269	   309	   373	   396	   417
	   424	   435	   442	   469	   506	   527	   531	   545	   617	   618	   632	   634	   640	   667
	   675	   703	   705	   707	   708	   763	   799	   802	   810	   835	   855	   924	   932	   937
	   938	   939	   940	   941	   942	   943	   944	   951	   952	   953	   954	   961	   962	   964
	   966	   968	   969	   971	   973	   976	   980	   991	   994	   995	  1013	  1021	  1023	  1026
	  1029	  1033	  1036	  1042	  1047	  1051	  1059	  1076	  1080	  1081	  1098	  1099	  1103	  1115
	  1129	  1130	  1135	  1154	  1188	  1189	  1245	  1246	  1248	  1249	  1251	  1255	  1256	  1261
	  1267	  1269	  1297	  1298	  1302	  1332	  1333	  1398	  1403	  1447	  1486	  1500	  1503	  1504
	  1521	  1570	  1572	  1575	  1586	  1587	  1625	  1626	  1627	  1628	  1631	  1636	  1655	  1661
	  1669	  1694	  1698	  1730	  1740	  1755	  1777	  1798	  1827	  1828	  1852	  1865	  1872	  1926
	  1939	  1962	  2000	  2040	  2065	  2069	  2086	  2096	  2138	  2154	  2183	  2184	  2187	  2213
	  2275	  2277	  2280	  2281	  2283	  2289	  2314	  2315	  2483	  2535	  2536	  2540	  2541	  2542
	  2562	  2563	  2564	  2565	  2566	  2567	  2586	  2589	  2620	  2658	  2695	  2696	  2699	  2704
	  2710	  2712	  2713	  2748	  2754	  2801	  2802	  2811	  2819	  2831	  2834	  2847	  2848	  2849
	  2860	  2873	  2876	  2903	  2918	  2919	  2920	  2921	  2972	  2992	  2995	  3064	  3074	  3075
	  3076	  3082	  3083	  3115	  3122	  3147	  3155	  3156	  3157	  3158	  3159	  3160	  3161	  3162
	  3163	  3171	  3172	  3182	  3198	  3211	  3244	  3309	  3329	  3336	  3379	  3380	  3384	  3414
	  3420	  3421	  3427	  3440	  3479	  3520	  3538	  3556	  3595	  3596	  3601	  3608	  3609	  3614
	  3617	  3622	  3623	  3627	  3632	  3633	  3645	  3693	  3704	  3707	  3716	  3719	  3728	  3731
	  3750	  3782	  3785	  3788	  3791	  3805	  3819	  3835	  3848	  3849	  3851	  3868	  3869	  3886
	  3920	  3921	  3923	  3925	  3926	  3949	  3984	  3999	  4005	  4006	  4007	  4008	  4015	  4021
	  4023	  4028	  4045	  4050	  4051	  4055	  4060	  4062	  4069	  4118	  4136	  4137	  4175	  4193
	  4197	  4212	  4213	  4215	  4241	  4242	  4243	  4244	  4247	  4255	  4260	  4269	  4287	  4288
	  4290	  4291	  4292	  4293	  4297	  4298	  4301	  4302	  4318	  4326	  4345	  4346	  4351	  4369
	  4371	  4372	  4388	  4393	  4430	  4431	  4438	  4443	  4455	  4458	  4466	  4473	  4476	  4485
	  4486	  4505	  4508	  4539	  4561	  4569	  4606	  4607	  4610	  4627	  4660	  4686	  4713	  4736
	  4738	  4775	  4779	  4781	  4782	  4831	  4832	  4849	  4850	  4851	  4852	  4853	  4854	  4859
	  4860	  4903	  4913	  4941	  4942	  4945	  4973	  4974	  4975	  4976	  4977	  4983	  4984	  4985
	  5010	  5012	  5030	  5032	  5034	  5160	  5163	  5168	  5187	  5259	  5261	  5289	  5312	  5313
	  5315	  5378	  5402	  5512	  5536	  5540	  5592	  5595	  5596	  5597	  5598	  5600	  5601	  5602
	  5603	  5608	  5609	  5629	  5632	  5633	  5634	  5635	  5637	  5638	  5639	  5640	  5645	  5646
	  5805	  5806	  5808	  5813	  5816	  5818	  5917	  5918	  5932	  5933	  5956	  5957	  5960	  6002
	  6003	  6017	  6020	  6050	  6057	  6059	  6232	  6235	  6236	  6354	  6360	  6361	  6362	  6364
	  6405	  6533	  6551	  6583	  6612	  6631	  6654	  6655	  6656	  6659	  6662	  6663	  6666	  6667
	  6722	  6733	  6736	  6808	  6820	  6823	  6833	  6842	  6845	  6855	  6856	  6858	  6860	  6861
	  6862	  6864	  6867	  6870	  6888	  6892	  6893	  6923	  6953	  6966	  6968	  6971	  6974	  6977
	  6982	  7020	  7050	  7063	  7065	  7068	  7071	  7074	  7079	  7116	  7119	  7120	  7121	  7122
	  7123	  7124	  7128	  7131	  7132	  7133	  7134	  7137	  7138	  7144	  7178	  7305	  7306	  7314
	  7432	  7433	  7437	  7492	  7497	  7550	  7587	  7589	  7636	  7661	  7669	  7735	  7736	  7737
	  7738	  7740	  7741	  7742	  7743
T4	   126	   131	   135	   136	   138	   166	   172	   189	   190	   193	   201	   202	   266	   267
	   337	   338	   339	   340	   349	   350	   351	   359	   360	   364	   365	   366	   384	   385
	   386	   388	   404	   405	   414	   415	   445	   446	   448	   449	   450	   459	   460	   463
	   535	   536	   544	   616	   626	   627	   628	   630	   631	   666	   675	   676	   704	   705
	   706	   707	   708	   789	   790	   804	   805	   806	   811	   856	   902	   904	   929	   930
	   948	   960	   962	   963	   964	   965	   966	   967	   969	   970	   971	   972	   973	   974
	  1024	  1027	  1030	  1031	  1034	  1037	  1038	  1043	  1044	  1045	  1048	  1049	  1060	  1061
	  1062	  1097	  1102	  1128	  1134	  1182	  1183	  1185	  1254	  1260	  1262	  1296	  1306	  1307
	  1315	  1334	  1335	  1371	  1373	  1423	  1426	  1428	  1429	  1431	  1477	  1478	  1479	  1496
	  1541	  1542	  1560	  1562	  1563	  1571	  1573	  1586	  1590	  1592	  1593	  1595	  1630	  1631
	  1632	  1633	  1665	  1666	  1667	  1670	  1697	  1698	  1716	  1717	  1724	  1725	  1781	  1782
	  1812	  1813	  1814	  1828	  1829	  1842	  1844	  1846	  1875	  1876	  1878	  1879	  1880	  1904
	  1905	  1907	  1940	  2002	  2020	  2021	  2025	  2061	  2062	  2066	  2118	  2119	  2122	  2127
	  2132	  2133	  2135	  2136	  2137	  2146	  2147	  2155	  2159	  2160	  2162	  2178	  2179	  2181
	  2185	  2190	  2191	  2206	  2207	  2208	  2209	  2235	  2236	  2276	  2277	  2282	  2283	  2312
	  2313	  2314	  2315	  2526	  2527	  2529	  2534	  2535	  2537	  2542	  2544	  2545	  2561	  2562
	  2564	  2565	  2567	  2607	  2608	  2609	  2611	  2628	  2629	  2644	  2645	  2647	  2648	  2650
	  2651	  2655	  2656	  2675	  2676	  2694	  2710	  2711	  2728	  2733	  2734	  2757	  2758	  2810
	  2813	  2841	  2842	  2913	  2915	  2916	  2918	  2920	  2955	  2959	  2962	  3065	  3068	  3084
	  3118	  3123	  3154	  3155	  3164	  3165	  3229	  3230	  3231	  3232	  3262	  3266	  3270	  3274
	  3278	  3282	  3286	  3290	  3294	  3362	  3363	  3364	  3378	  3379	  3404	  3405	  3419	  3420
	  3426	  3433	  3434	  3441	  3452	  3453	  3454	  3468	  3469	  3470	  3498	  3499	  3521	  3537
	  3557	  3591	  3596	  3597	  3598	  3609	  3610	  3611	  3623	  3624	  3633	  3634	  3641	  3642
	  3652	  3653	  3683	  3687	  3688	  3689	  3690	  3698	  3699	  3700	  3701	  3714	  3715	  3724
	  3725	  3847	  3848	  3867	  3868	  3910	  3911	  3963	  3964	  3968	  4001	  4002	  4004	  4005
	  4012	  4031	  4055	  4094	  4095	  4096	  4100	  4139	  4140	  4196	  4197	  4256	  4259	  4282
	  4283	  4285	  4286	  4295	  4299	  4317	  4352	  4353	  4370	  4371	  4394	  4428	  4429	  4435
	  4444	  4453	  4454	  4459	  4477	  4485	  4540	  4541	  4542	  4544	  4545	  4561	  4571	  4605
	  4606	  4655	  4656	  4657	  4658	  4662	  4663	  4681	  4682	  4683	  4684	  4708	  4709	  4710
	  4711	  4740	  4742	  4762	  4763	  4766	  4767	  4769	  4778	  4779	  4782	  4784	  4785	  4798
	  4799	  4819	  4820	  4821	  4822	  4823	  4824	  4825	  4826	  4827	  4834	  4835	  4862	  4863
	  4872	  4873	  4879	  4880	  4881	  4899	  4900	  4901	  4902	  4908	  4909	  4937	  4938	  4939
	  4940	  4945	  4946	  4968	  4969	  4970	  4971	  4972	  4973	  4978	  4981	  4983	  4985	  5003
	  5004	  5021	  5023	  5046	  5047	  5053	  5054	  5076	  5077	  5099	  5100	  5124	  5126	  5128
	  5138	  5140	  5148	  5169	  5188	  5193	  5195	  5197	  5198	  5217	  5219	  5221	  5223	  5251
	  5252	  5253	  5254	  5266	  5267	  5268	  5269	  5270	  5271	  5288	  5306	  5316	  5321	  5322
	  5374	  5375	  5376	  5377	  5463	  5464	  5482	  5483	  5504	  5507	  5508	  5509	  5510	  5514
	  5515	  5531	  5532	  5533	  5534	  5544	  5545	  5661	  5662	  5663	  5664	  5717	  5718	  5719
	  5741	  5742	  5744	  5761	  5762	  5764	  5768	  5786	  5787	  5806	  5807	  5816	  5817	  5818
	  5819	  5820	  5837	  5838	  5855	  5856	  5862	  5863	  5876	  5877	  5878	  5898	  5899	  5916
	  5917	  5923	  5924	  5927	  5931	  5932	  5934	  6001	  6002	  6008	  6009	  6012	  6016	  6017
	  6018	  6021	  6022	  6103	  6104	  6105	  6106	  6161	  6162	  6163	  6170	  6171	  6172	  6423
	  6426	  6470	  6471	  6524	  6525	  6534	  6579	  6589	  6590	  6592	  6657	  6658	  6660	  6661
	  6663	  6665	  6827	  6828	  6829	  6883	  6884	  6895	  6896	  6916	  6917	  6963	  6965	  6966
	  6969	  6972	  6975	  6978	  7013	  7014	  7060	  7062	  7063	  7066	  7069	  7072	  7075	  7111
	  7113	  7114	  7120	  7124	  7136	  7138	  7140	  7194	  7195	  7211	  7212	  7216	  7217	  7218
	  7238	  7239	  7241	  7243	  7245	  7251	  7252	  7253	  7275	  7276	  7339	  7340	  7438	  7439
	  7440	  7444	  7445	  7446	  7495	  7519	  7520	  7523	  7526	  7529	  7530	  7533	  7593	  7594
	  7595	  7604	  7605	  7606	  7607	  7609	  7612	  7615	  7631	  7641	  7666	  7667	  7672	  7686
TBT020	   664	   666#
TBTFLG	   612
TBTLNK	   612
TBTOPT	   612
THRFLD	  4230	  4483#
TIMFLD	  4219	  4464#
TL%ABR	  1311
TL%EXM	  1311	  6059	  7563
TMPSTR	  4008	  4025	  5160	  5168	  7802#
TOPCHK	   104#	   510
TOPFRE	  7294	  7398#
TOPTBL	  7398
TPF.1	  7406#	  7408	  7413
TPF.D	  7406	  7415#
TPLID	  7265	  7347#
TPLST	  7266	  7356#
TPNOD	  7262	  7305#
TPNST	  7264	  7337#
TPNUM	  7263	  7329#
TPRFLD	  4229	  4489#
TPUNI	  7268	  7366#
TPVER	  7267	  7362#
TRGGER	   271	   612#
TS$NHD	  6317
TSTL05	  6453#
TSTL10	  6456#	  6459
TSTLOG	  6442	  6449#
TXTFLD	  4231	  4378#
ULKNOD	   103#	   500	   826	  6500
UPTFLD	  4221	  4267#
VARLEN	   132	   139
VNETCO	  7112
W1	  1178	  1178#	  1181	  1182	  1184	  1187	  1188	  1202	  1203	  1213	  1217
W3	  6469	  6469#	  6483	  6494	  6503
W4	  6469	  6469#	  6482	  6485	  6486	  6488	  6493	  6503
WDMP10	  5973#	  5979
WRNING	   103#	  1931	  1945	  1955	  1958	  1971	  2763	  2767	  2774	  6492
WRTBYT	  5977	  5997#
WRTDMP	   875	  5971#
WTDBYT	  5997
WTDCNT	  5971
WTDPTR	  5971
WTDREC	  5971	  5997
WTDT10	  6004	  6016#
XFR010	  1784	  1808#
XFR030	  1802	  1832	  1852#
XFRADR	  1769
XFRCNT	  1769
XFRLIN	  1769
XFRPTR	  1769
ZCTERR	  6726	  6735	  6738	  6741	  6751#
ZCTLID	  6706
ZCTLNK	  6706
ZCTNOD	  6706
ZROBLK	  1501
ZROCTR	  6687	  6706#
ZROLID	  1501
$ADVCN	  7171#
$ADVHS	  7171#
$ADVLS	  7171#
$ADVPT	  7171#
$ADVST	  7173#
$ADVUN	  7171#
$AFDBL	  4378#
$AFDCN	  4378#
$AFDPT	  4378#
$AFDST	  4378#
$ARBFL	  7580#
$ASLLI	  7652#
$ASLPT	  7652#
$BASLI	  1692#
$CHLNA	  6468#
$CHLNI	  6468#
$CKMCN	  2174#
$CKMLI	  2174#
$CKMPT	  2174#
$CMRCN	  2640#
$CMRPT	  2640#
$COMBL	   920#
$COMVE	   920#
$DLGCN	  2725#
$DLGEV	  2725#
$DLGPT	  2725#
$DLGSE	  2726#
$DLGSR	  2725#
$DSPCN	   187#
$DSPFC	   187#
$DSPPT	   187#
$DTDLI	  5801#
$DTFCN	  4237#
$DTFDA	  4237#
$DTFMO	  4237#
$DTFPT	  4237#
$DTFYR	  4237#
$DTGLI	  5894#
$DTGPR	  5894#
$DTILI	  5873#
$DTSDS	  3195#
$DTSRE	  3195#
$DTUDS	  3208#
$DTURE	  3208#
$DTWLI	  5783#
$DVFBL	  4275#
$DVFCN	  4275#
$DVFDE	  4275#
$DVFPT	  4275#
$ESRSE	  3306#
$ESRSR	  3306#
$ETPDS	  2858#
$ETPER	  2858#
$ETPLI	  2858#
$ETPNO	  2858#
$ETPRS	  2858#
$EVABL	  2795#
$EVACN	  2794#
$EVALG	  2794#
$EVAMS	  2794#
$EVAPT	  2794#
$EVATM	  2795#
$GEBCN	  4559#
$GEBPT	  4559#
$GIACN	  3997#
$GIADS	  3997#
$GIALE	  3997#
$GIAPT	  3997#
$GIBCN	  4043#
$GIBPT	  4043#
$GIBSF	  4043#
$GLLBL	  6394#
$GLLNA	  6394#
$GLLNO	  6394#
$GT4NU	  4499#
$GT4PT	  4499#
$GTLCN	  4091#
$GTLPT	  4091#
$GTMCN	  4167#
$GTMPT	  4167#
$GTPCN	  3778#	  3903#
$GTPPT	  3778#	  3903#
$HDWDA	  2969#
$HDWDE	  2969#
$HDWDS	  2969#
$HDWER	  2969#
$HDWLX	  2969#
$HDWMC	  2969#
$HDWNO	  2969#
$HDWOP	  2969#
$HDWRC	  2969#
$HDWRE	  2969#
$HDWRS	  2969#
$HDWTH	  2969#
$HDWUP	  2969#
$IBKCN	  6121#
$IBKCT	  6121#
$IBKPT	  6122#
$IBKRE	  6121#
$IBKSU	  6121#
$INTLN	   688#
$IPRAD	  2228#
$IPRCN	  2228#
$IPRLI	  2228#
$IPRPR	  2228#
$ITSCN	  6210#
$ITSPT	  6210#
$ITSRE	  6210#
$LCTBL	  6513#
$LCTCN	  6514#
$LCTLE	  6514#
$LCTLI	  6514#
$LCTNO	  6513#
$LCTNU	  6513#
$LCTPT	  6514#
$LDPLI	  2477#
$LDPLN	  2477#
$LDPNO	  2477#
$LDTLI	  5734#
$LINCN	   992#
$LINLI	   992#
$LINMS	   992#
$LNADR	  1698#	  2133#	  2160#	  2162#	  2277#	  2529#	  2537#	  2562#	  2564#	  4769#	  4779#	  4782#
$LNCNT	  1814#	  2545#	  2609#	  4784#	  4880#	  5768#	  5813#
$LNDCT	  2283#	  2527#	  2535#	  2565#	  2567#	  2608#	  2611#	  2629#	  5808#
$LNDTE	  1557#	  2236#	  5242#	  5718#	  5744#	  5762#	  5787#	  5806#	  5838#	  5877#	  5899#
$LNLDN	  1632#	  2182#	  2184#	  2187#	  4767#	  4824#
$LNMSG	  1562#	  1595#	  1813#	  2136#	  2312#	  2542#	  2616#	  4763#	  4785#	  4820#	  4881#	  5742#	  5764#	  5816#
	  5856#	  5863#
$LNPGM	  1631#	  1725#	  1782#	  1828#	  2117#	  5150#
$LNPTR	  5818#
$LNSCN	   920#
$LNSMS	   920#
$LSDCN	  2271#
$LSDLI	  2271#
$LSDNU	  2271#
$LSDPT	  2271#
$LSLCN	  1620#
$LSLLI	  1620#
$LSLPG	  1620#
$LSLPT	  1620#
$LSTBP	  2063#
$LSTFL	  2063#
$LSTHL	  1232#
$LSTLI	  1232#	  1394#	  2063#
$LSTPR	  1394#
$LSVCN	  1535#
$LSVCO	  1536#
$LSVDT	  1536#
$LSVLT	  1536#
$LSVOP	  1536#
$LSVPT	  1535#
$LTLOG	  6488#
$LTNIB	  7638#
$LTUSE	  6486#	  7633#
$MBSAD	  4794#
$MDLDS	  5626#
$MDLLI	  5626#
$MDTAD	  4932#
$MDTCN	  4932#
$MDTNU	  4932#
$MEMCN	  1712#
$MEMLI	  1712#
$MEMPS	  5095#
$MEMPT	  1712#
$MHNCN	  5480#
$MHNNA	  5480#
$MHNPT	  5480#
$MIDAD	  4893#
$MIDCN	  4893#
$MIDNU	  4893#
$MIMCN	  4963#
$MIMCP	  4963#
$MIMRE	  4963#
$MKACN	  5303#
$MKAPT	  5303#
$MKAST	  5303#
$MKDCN	  5117#
$MKDLI	  5117#
$MKDPT	  5117#
$MKECN	  5528#
$MKEDS	  5393#
$MKEEV	  5528#
$MKESR	  5393#
$MKLCN	  5442#
$MKLLO	  5442#
$MKLPT	  5442#
$MKMCN	  5425#
$MKMME	  5425#
$MKMPT	  5425#
$MKXCN	  4998#
$MKXPT	  4998#
$MKXRE	  4998#
$MKZLI	  5370#
$MLDCN	  2110#
$MLDCT	  2111#
$MLDLI	  2110#
$MLDPT	  2110#	  2111#
$MLNLI	  5499#
$MLNPT	  4732#	  5499#
$MLNST	  5499#
$MLPAD	  4817#
$MLPCN	  4817#
$MLPLI	  4817#
$MMLCN	  4757#
$MMLLI	  4757#
$MMLPT	  4757#
$MMPCN	  5353#
$MMPPS	  5353#
$MMPPT	  5353#
$MMTAD	  5185#
$MMTLO	  5185#
$MNDCN	  5333#
$MNLDS	  5589#
$MNLLI	  5589#
$MNMCN	  5461#
$MNMNA	  5461#
$MNMPT	  5461#
$MNUCN	  5659#
$MNUNU	  5659#
$MNUPT	  5659#
$MPDCN	  2510#
$MPDLI	  2510#
$MPDNU	  2510#
$MPDPT	  2510#
$MPVCN	  1894#
$MPVLE	  1895#
$MPVLI	  1894#
$MPVLN	  1895#
$MPVMS	  1894#
$MPVPT	  1894#
$MQLCN	  5236#
$MQLLI	  5235#	  5236#
$MRDAD	  5073#
$MRDCN	  5073#
$MRDPT	  5073#
$MRLCO	  5214#
$MRLLI	  4704#
$MRLLO	  5214#
$NDBP1	  3520#
$NDBP2	  3521#
$NDCPU	  3539#
$NDDIP	   742#	   823#
$NDDMP	  3490#
$NDFBL	  4331#
$NDFCN	  4331#
$NDFPT	  4331#
$NDLDV	  3540#
$NDLIN	  2233#	  3369#	  3459#	  6482#
$NDLIP	   253#	   498#	   563#	   591#
$NDLOD	  3395#
$NDMCN	  4602#
$NDMDS	  4602#
$NDMPT	  4602#
$NDNAM	  3373#	  3463#	  6470#
$NDPHT	  3557#
$NDPNA	  3555#
$NDPNU	  3556#
$NDPRO	  2245#
$NDPST	  2242#
$NDSL1	  3413#	  3478#
$NDSL2	  3414#	  3479#
$NDSRV	  3410#	  3475#
$OPFTY	  4449#
$OPIJF	  6033#
$OPITY	  6033#
$PGCPU	  7523#
$PGFIL	  7533#
$PGLDV	  7520#
$PGPGM	  7526#
$PRSCT	  1286#
$PRSLD	  1286#
$PRSST	  1286#
$PRSUN	  1286#
$PRTBU	  1179#
$PT4NU	  5692#
$PT4PT	  5692#
$RBBYT	  5917#	  5923#	  5932#	  5934#	  6002#	  6012#	  6017#	  6022#	  6106#	  7591#
$RBCAD	   340#	   366#	   388#	  6217#
$RBCNT	   360#	   386#	   405#	  4973#	  4983#	  4985#	  6171#	  6238#
$RBDAT	  5927#	  5931#	  6009#	  6018#	  6021#	  6105#
$RBFCT	  6231#	  6236#	  6309#	  6364#
$RBJFN	   338#	   460#	   463#	   552#	   580#	   790#	  5924#	  6008#	  6104#	  6352#	  7592#
$RBNAD	   365#	   385#	  6162#	  6218#	  6299#	  6350#
$RBPTR	   351#	  4978#	  4981#	  6172#	  6242#	  7595#
$RBTYP	   339#	   352#	  6264#
$RBXAD	   414#	  5054#	  6163#	  6327#	  6350#	  6351#
$RCTCN	  6765#
$RCTER	  6765#
$RCTLI	  6764#
$RCTLN	  6764#
$RCTNO	  6764#
$RCTPT	  6765#
$RDMLI	  2603#
$RDTLI	  5833#
$RGFBL	  4400#
$RGFCN	  4400#
$RGFNU	  4400#
$RGFPT	  4400#
$RLGOP	  2685#
$RLGSE	  2685#
$RLGSR	  2685#
$RLSMS	  1072#
$ROUVE	   920#
$RPLHS	  2035#
$RPLLN	  2035#
$RQCLI	  6804#
$RQCLN	  6804#
$RQDCN	   724#
$RQDLN	   724#
$RQDPT	   724#
$RQDRE	   724#
$RQLCN	   228#
$RQLLN	   228#
$RQLPT	   228#
$RQLRE	   228#
$RQRBU	  1072#
$RQRCN	   894#
$RQRHL	  1072#
$RQRPT	   894#
$SDMDS	  3179#
$SDMRE	  3179#
$SDTCN	  2582#
$SDTLI	  5714#	  5757#
$SDTPT	  2582#
$SEMCO	  2202#
$SKDCN	  3140#
$SKDDS	  3140#
$SKDMC	  3140#
$SKDRE	  3140#
$SPGTA	  7506#
$SRGDE	  3109#
$SRGDS	  3109#
$SRGMC	  3109#
$SRGRE	  3109#
$STHHS	  7376#
$STHNO	  7376#
$STRBL	  6882#
$STRDS	  6882#
$STROF	  6882#
$STRST	  6882#
$STXCN	  1986#
$STXLI	  1986#
$STXLN	  1986#
$STXPT	  1986#
$SYADJ	  2908#	  6566#
$SYCOD	  2842#	  3083#	  6855#
$SYCTR	  6583#
$SYDAT	  6864#
$SYDBL	  7003#
$SYDCO	  7002#
$SYDFI	  7003#
$SYDSI	  7003#
$SYDSR	  7002#
$SYDST	  3341#	  6639#
$SYDSV	  7002#
$SYDTG	  7002#
$SYFCN	  6565#
$SYFIL	  6978#	  7075#
$SYHDW	  3038#	  6667#
$SYHLN	  6858#
$SYLBL	  6906#
$SYLCO	  6905#
$SYLEN	  2760#	  2853#	  6646#	  6856#
$SYLFI	  6906#
$SYLI1	  2921#	  3057#	  6658#
$SYLID	  2919#	  3056#	  6656#
$SYLSI	  6906#
$SYLSR	  6905#
$SYLSV	  6905#
$SYLTG	  6905#
$SYMID	  6567#
$SYNAM	  7124#
$SYNBL	  7098#
$SYNCT	  3076#	  6592#
$SYNCV	  7113#
$SYNOD	  3332#	  6621#
$SYNOF	  7098#
$SYNSI	  7098#
$SYNTM	  6563#
$SYOPS	  3043#
$SYPGM	  7138#
$SYPSN	  6870#
$SYPTR	  2850#	  3081#	  6601#
$SYRCD	  6965#	  7062#
$SYRCT	  6562#
$SYRCV	  3049#
$SYRSN	  2915#	  3045#	  6561#
$SYSEQ	  3323#	  6564#
$SYSRV	  6972#	  7069#
$SYSVL	  6975#	  7072#
$SYT20	  6861#
$SYTGT	  6969#	  7066#
$SYTHR	  3047#
$SYTYP	  6579#
$SYUPT	  6867#
$SYVER	  6860#
$TBTFL	   612#
$TBTLN	   612#
$TBTOP	   612#
$TOPTB	  7398#
$W1	  1178#
$W3	  6469#
$W4	  6469#
$WTDBY	  5997#
$WTDCN	  5971#
$WTDPT	  5971#
$WTDRE	  5971#	  5997#
$XFRAD	  1769#
$XFRCN	  1769#
$XFRLI	  1769#
$XFRPT	  1769#
$ZCTLI	  6706#
$ZCTLN	  6706#
$ZCTNO	  6706#
$ZROBL	  1501#
$ZROLI	  1501#
%DO%TG	  3453	  3454	  3469	  3470	  3688	  3689	  3699	  3700
%FB%BS	  6357	  6358
%LNADR	  1698	  2133	  2160	  2162	  2277	  2529	  2537	  2562	  2564	  4769	  4779	  4782
%LNCNT	  1814	  2545	  2609	  4784	  4880	  5768	  5813
%LNDCT	  2283	  2527	  2535	  2565	  2567	  2608	  2611	  2629	  5808
%LNDTE	  1557	  2236	  5242	  5718	  5744	  5762	  5787	  5806	  5838	  5877	  5899
%LNLDN	  1632	  2182	  2184	  2187	  4767	  4824
%LNMSG	  1562	  1595	  1813	  2136	  2312	  2542	  2616	  4763	  4785	  4820	  4881	  5742	  5764	  5816
	  5856	  5863
%LNPGM	  1631	  1725	  1782	  1828	  2117	  5150
%LNPTR	  5818
%LO%RO	   267	   268	   617	   618	  3379	  3380	  3420	  3421	  3623	  3624	  3633	  3634
%LO%TG	  3363	  3364	  3404	  3405	  3596	  3597	  3609	  3610
%LTLOG	  6488
%LTNIB	  7638
%LTUSE	  6486	  7633
%MO%CD	   705	   706
%MO%DA	   708	   709
%MO%IN	   707	   708
%NDBP1	  3520
%NDBP2	  3521
%NDCPU	  3539
%NDDIP	   742	   823
%NDDMP	  3490
%NDLDV	  3540
%NDLIN	  2233	  3369	  3459	  6482
%NDLIP	   253	   498	   563	   591
%NDLOD	  3395
%NDNAM	  3373	  3463	  6470
%NDPHT	  3557
%NDPNA	  3555
%NDPNU	  3556
%NDPRO	  2245
%NDPST	  2242
%NDSL1	  3413	  3478
%NDSL2	  3414	  3479
%NDSRV	  3410	  3475
%PGCPU	  7523
%PGFIL	  7533
%PGLDV	  7520
%PGPGM	  7526
%RBBYT	  5917	  5923	  5932	  5934	  6002	  6012	  6017	  6022	  6106	  7591
%RBCAD	   340	   366	   388	  6217
%RBCNT	   360	   386	   405	  4973	  4983	  4985	  6171	  6238
%RBDAT	  5927	  5931	  6009	  6018	  6021	  6105
%RBFCT	  6231	  6236	  6309	  6364
%RBJFN	   338	   460	   463	   552	   580	   790	  5924	  6008	  6104	  6352	  7592
%RBNAD	   365	   385	  6162	  6218	  6299	  6350
%RBPTR	   351	  4978	  4981	  6172	  6242	  7595
%RBTYP	   339	   352	  6264
%RBXAD	   414	  5054	  6163	  6327	  6350	  6351
%SYADJ	  2908	  6566
%SYCOD	  2842	  3083	  6855
%SYCTR	  6583
%SYDAT	  6864
%SYDST	  3341	  6639
%SYFCN	  6565
%SYFIL	  6978	  7075
%SYHDW	  3038	  6667
%SYHLN	  6858
%SYLEN	  2760	  2853	  6646	  6856
%SYLI1	  2921	  3057	  6658
%SYLID	  2919	  3056	  6656
%SYMID	  6567
%SYNAM	  7124
%SYNCT	  3076	  6592
%SYNCV	  7113
%SYNOD	  3332	  6621
%SYNTM	  6563
%SYOPS	  3043
%SYPGM	  7138
%SYPSN	  6870
%SYPTR	  2850	  3081	  6601
%SYRCD	  6965	  7062
%SYRCT	  6562
%SYRCV	  3049
%SYRSN	  2915	  3045	  6561
%SYSEQ	  3323	  6564
%SYSRV	  6972	  7069
%SYSVL	  6975	  7072
%SYT20	  6861
%SYTGT	  6969	  7066
%SYTHR	  3047
%SYTYP	  6579
%SYUPT	  6867
%SYVER	  6860
..ACT	   253#	   253	   360#	   360	   405#	   405	   498#	   498	   563#	   563	   591#	   591	   742#	   742
	   823#	   823	  1632#	  1632	  2242#	  2242	  2629#	  2629	  6106#	  6106	  6486#	  6486	  6488#	  6488
	  6861#	  6861	  7633#	  7633
..CSC	   253#	   253	   255	   255#	   267#	   267	   268	   268#	   338#	   338	   339	   339#	   340	   340#
	   341	   341#	   351#	   351	   352	   352#	   353	   353#	   360#	   360	   362	   362#	   365#	   365
	   366	   366#	   367	   367#	   385#	   385	   386	   386#	   387	   387#	   388#	   388	   389	   389#
	   405#	   405	   407	   407#	   414#	   414	   415	   415#	   460#	   460	   461	   461#	   463#	   463
	   464	   464#	   498#	   498	   500	   500#	   552#	   552	   563#	   563	   565	   565#	   580#	   580
	   591#	   591	   593	   593#	   617#	   617	   618	   618#	   705#	   705	   706	   706#	   707#	   707
	   708	   708#	   709	   709#	   742#	   742	   744	   744#	   790#	   790	   791	   791#	   823#	   823
	   825	   825#	  1557#	  1557	  1558	  1558#	  1562#	  1562	  1563	  1563#	  1595#	  1595	  1596	  1596#
	  1631#	  1631	  1632	  1632#	  1634	  1634#	  1698#	  1698	  1699	  1699#	  1725#	  1725	  1726	  1726#
	  1782#	  1782	  1783	  1783#	  1813#	  1813	  1814	  1814#	  1815	  1815#	  1828#	  1828	  1829	  1829#
	  2117#	  2117	  2118	  2118#	  2133#	  2133	  2134	  2134#	  2136#	  2136	  2137	  2137#	  2160#	  2160
	  2161	  2161#	  2162#	  2162	  2163	  2163#	  2184#	  2184	  2185	  2185#	  2187#	  2187	  2188	  2188#
	  2233#	  2233	  2234	  2234#	  2236#	  2236	  2237	  2237#	  2242#	  2242	  2245	  2245#	  2246	  2246#
	  2277#	  2277	  2278	  2278#	  2283#	  2283	  2284	  2284#	  2312#	  2312	  2313	  2313#	  2527#	  2527
	  2528	  2528#	  2529#	  2529	  2530	  2530#	  2535#	  2535	  2536	  2536#	  2537#	  2537	  2538	  2538#
	  2542#	  2542	  2543	  2543#	  2545#	  2545	  2546	  2546#	  2562#	  2562	  2563	  2563#	  2564#	  2564
	  2565	  2565#	  2566	  2566#	  2567#	  2567	  2568	  2568#	  2608#	  2608	  2609	  2609#	  2610	  2610#
	  2611#	  2611	  2612	  2612#	  2616#	  2616	  2617	  2617#	  2629#	  2629	  2631	  2631#	  2760#	  2760
	  2761	  2761#	  2842#	  2842	  2843	  2843#	  2850#	  2850	  2851	  2851#	  2853#	  2853	  2854	  2854#
	  2908#	  2908	  2909	  2909#	  2915#	  2915	  2916	  2916#	  2919#	  2919	  2920	  2920#	  2921#	  2921
	  2922	  2922#	  3038#	  3038	  3039	  3039#	  3043#	  3043	  3044	  3044#	  3045#	  3045	  3046	  3046#
	  3047#	  3047	  3048	  3048#	  3049#	  3049	  3050	  3050#	  3056#	  3056	  3057	  3057#	  3058	  3058#
	  3076#	  3076	  3077	  3077#	  3081#	  3081	  3082	  3082#	  3083#	  3083	  3084	  3084#	  3323#	  3323
	  3324	  3324#	  3332#	  3332	  3333	  3333#	  3341#	  3341	  3342	  3342#	  3363#	  3363	  3364	  3364#
	  3369#	  3369	  3370	  3370#	  3373#	  3373	  3374	  3374#	  3379#	  3379	  3380	  3380#	  3395#	  3395
	  3396	  3396#	  3404#	  3404	  3405	  3405#	  3410#	  3410	  3411	  3411#	  3413#	  3413	  3414	  3414#
	  3415	  3415#	  3420#	  3420	  3421	  3421#	  3453#	  3453	  3454	  3454#	  3459#	  3459	  3460	  3460#
	  3463#	  3463	  3464	  3464#	  3469#	  3469	  3470	  3470#	  3475#	  3475	  3476	  3476#	  3478#	  3478
	  3479	  3479#	  3480	  3480#	  3490#	  3490	  3491	  3491#	  3520#	  3520	  3521	  3521#	  3522	  3522#
	  3539#	  3539	  3540	  3540#	  3541	  3541#	  3555#	  3555	  3556	  3556#	  3557	  3557#	  3558	  3558#
	  3596#	  3596	  3597	  3597#	  3609#	  3609	  3610	  3610#	  3623#	  3623	  3624	  3624#	  3633#	  3633
	  3634	  3634#	  3688#	  3688	  3689	  3689#	  3699#	  3699	  3700	  3700#	  4763#	  4763	  4764	  4764#
	  4767#	  4767	  4768	  4768#	  4769#	  4769	  4770	  4770#	  4779#	  4779	  4780	  4780#	  4782#	  4782
	  4783	  4783#	  4784#	  4784	  4785	  4785#	  4786	  4786#	  4820#	  4820	  4821	  4821#	  4824#	  4824
	  4825	  4825#	  4880#	  4880	  4881	  4881#	  4882	  4882#	  4973#	  4973	  4974	  4974#	  4978#	  4978
	  4979	  4979#	  4981#	  4981	  4982	  4982#	  4983#	  4983	  4984	  4984#	  4985#	  4985	  4986	  4986#
	  5054#	  5054	  5055	  5055#	  5150#	  5150	  5151	  5151#	  5242#	  5242	  5243	  5243#	  5718#	  5718
	  5719	  5719#	  5742#	  5742	  5743	  5743#	  5744#	  5744	  5745	  5745#	  5762#	  5762	  5763	  5763#
	  5764#	  5764	  5765	  5765#	  5768#	  5768	  5769	  5769#	  5787#	  5787	  5788	  5788#	  5806#	  5806
	  5807	  5807#	  5808#	  5808	  5809	  5809#	  5813#	  5813	  5814	  5814#	  5816#	  5816	  5817	  5817#
	  5818#	  5818	  5819	  5819#	  5838#	  5838	  5839	  5839#	  5856#	  5856	  5857	  5857#	  5863#	  5863
	  5864	  5864#	  5877#	  5877	  5878	  5878#	  5899#	  5899	  5900	  5900#	  5917#	  5917	  5918	  5918#
	  5923#	  5923	  5924	  5924#	  5925	  5925#	  5927#	  5927	  5928	  5928#	  5931#	  5931	  5932	  5932#
	  5933	  5933#	  6002#	  6002	  6003	  6003#	  6008#	  6008	  6009	  6009#	  6010	  6010#	  6012#	  6012
	  6013	  6013#	  6017#	  6017	  6018	  6018#	  6019	  6019#	  6021#	  6021	  6022	  6022#	  6104#	  6104
	  6105	  6105#	  6106	  6106#	  6108	  6108#	  6162#	  6162	  6163	  6163#	  6164	  6164#	  6171#	  6171
	  6172	  6172#	  6173	  6173#	  6217#	  6217	  6218	  6218#	  6219	  6219#	  6231#	  6231	  6232	  6232#
	  6236#	  6236	  6237	  6237#	  6238#	  6238	  6239	  6239#	  6242#	  6242	  6243	  6243#	  6264#	  6264
	  6265	  6265#	  6299#	  6299	  6300	  6300#	  6309#	  6309	  6310	  6310#	  6327#	  6327	  6328	  6328#
	  6350#	  6350	  6351	  6351#	  6352	  6352#	  6353	  6353#	  6357#	  6357	  6358	  6358#	  6364#	  6364
	  6365	  6365#	  6470#	  6470	  6471	  6471#	  6482#	  6482	  6483	  6483#	  6486#	  6486	  6488	  6488#
	  6491	  6491#	  6561#	  6561	  6562	  6562#	  6563	  6563#	  6564	  6564#	  6565	  6565#	  6566	  6566#
	  6567	  6567#	  6568	  6568#	  6579#	  6579	  6580	  6580#	  6583#	  6583	  6584	  6584#	  6592#	  6592
	  6593	  6593#	  6601#	  6601	  6602	  6602#	  6621#	  6621	  6622	  6622#	  6639#	  6639	  6640	  6640#
	  6646#	  6646	  6647	  6647#	  6656#	  6656	  6657	  6657#	  6658#	  6658	  6659	  6659#	  6667#	  6667
	  6668	  6668#	  6855#	  6855	  6856	  6856#	  6857	  6857#	  6858#	  6858	  6859	  6859#	  6860#	  6860
	  6861	  6861#	  6863	  6863#	  6864#	  6864	  6865	  6865#	  6867#	  6867	  6868	  6868#	  6870#	  6870
	  6871	  6871#	  6965#	  6965	  6966	  6966#	  6969#	  6969	  6970	  6970#	  6972#	  6972	  6973	  6973#
	  6975#	  6975	  6976	  6976#	  6978#	  6978	  6979	  6979#	  7062#	  7062	  7063	  7063#	  7066#	  7066
	  7067	  7067#	  7069#	  7069	  7070	  7070#	  7072#	  7072	  7073	  7073#	  7075#	  7075	  7076	  7076#
	  7113#	  7113	  7114	  7114#	  7124#	  7124	  7125	  7125#	  7138#	  7138	  7139	  7139#	  7520#	  7520
	  7521	  7521#	  7523#	  7523	  7524	  7524#	  7526#	  7526	  7527	  7527#	  7533#	  7533	  7534	  7534#
	  7591#	  7591	  7592	  7592#	  7593	  7593#	  7595#	  7595	  7596	  7596#	  7633#	  7633	  7635	  7635#
	  7638#	  7638
..CSN	   253#	   253	   267#	   267	   338#	   338	   339#	   339	   340#	   340	   351#	   351	   352#	   352
	   360#	   360	   365#	   365	   366#	   366	   385#	   385	   386#	   386	   388#	   388	   405#	   405
	   414#	   414	   460#	   460	   463#	   463	   498#	   498	   552#	   552	   563#	   563	   580#	   580
	   591#	   591	   617#	   617	   705#	   705	   707#	   707	   708#	   708	   742#	   742	   790#	   790
	   823#	   823	  1557#	  1557	  1562#	  1562	  1595#	  1595	  1631#	  1631	  1632#	  1632	  1698#	  1698
	  1725#	  1725	  1782#	  1782	  1813#	  1813	  1814#	  1814	  1828#	  1828	  2117#	  2117	  2133#	  2133
	  2136#	  2136	  2160#	  2160	  2162#	  2162	  2184#	  2184	  2187#	  2187	  2233#	  2233	  2236#	  2236
	  2242#	  2242	  2245#	  2245	  2277#	  2277	  2283#	  2283	  2312#	  2312	  2527#	  2527	  2529#	  2529
	  2535#	  2535	  2537#	  2537	  2542#	  2542	  2545#	  2545	  2562#	  2562	  2564#	  2564	  2565#	  2565
	  2567#	  2567	  2608#	  2608	  2609#	  2609	  2611#	  2611	  2616#	  2616	  2629#	  2629	  2760#	  2760
	  2842#	  2842	  2850#	  2850	  2853#	  2853	  2908#	  2908	  2915#	  2915	  2919#	  2919	  2921#	  2921
	  3038#	  3038	  3043#	  3043	  3045#	  3045	  3047#	  3047	  3049#	  3049	  3056#	  3056	  3057#	  3057
	  3076#	  3076	  3081#	  3081	  3083#	  3083	  3323#	  3323	  3332#	  3332	  3341#	  3341	  3363#	  3363
	  3369#	  3369	  3373#	  3373	  3379#	  3379	  3395#	  3395	  3404#	  3404	  3410#	  3410	  3413#	  3413
	  3414#	  3414	  3420#	  3420	  3453#	  3453	  3459#	  3459	  3463#	  3463	  3469#	  3469	  3475#	  3475
	  3478#	  3478	  3479#	  3479	  3490#	  3490	  3520#	  3520	  3521#	  3521	  3539#	  3539	  3540#	  3540
	  3555#	  3555	  3556#	  3556	  3557#	  3557	  3596#	  3596	  3609#	  3609	  3623#	  3623	  3633#	  3633
	  3688#	  3688	  3699#	  3699	  4763#	  4763	  4767#	  4767	  4769#	  4769	  4779#	  4779	  4782#	  4782
	  4784#	  4784	  4785#	  4785	  4820#	  4820	  4824#	  4824	  4880#	  4880	  4881#	  4881	  4973#	  4973
	  4978#	  4978	  4981#	  4981	  4983#	  4983	  4985#	  4985	  5054#	  5054	  5150#	  5150	  5242#	  5242
	  5718#	  5718	  5742#	  5742	  5744#	  5744	  5762#	  5762	  5764#	  5764	  5768#	  5768	  5787#	  5787
	  5806#	  5806	  5808#	  5808	  5813#	  5813	  5816#	  5816	  5818#	  5818	  5838#	  5838	  5856#	  5856
	  5863#	  5863	  5877#	  5877	  5899#	  5899	  5917#	  5917	  5923#	  5923	  5924#	  5924	  5927#	  5927
	  5931#	  5931	  5932#	  5932	  6002#	  6002	  6008#	  6008	  6009#	  6009	  6012#	  6012	  6017#	  6017
	  6018#	  6018	  6021#	  6021	  6104#	  6104	  6105#	  6105	  6106#	  6106	  6162#	  6162	  6163#	  6163
	  6171#	  6171	  6172#	  6172	  6217#	  6217	  6218#	  6218	  6231#	  6231	  6236#	  6236	  6238#	  6238
	  6242#	  6242	  6264#	  6264	  6299#	  6299	  6309#	  6309	  6327#	  6327	  6350#	  6350	  6351#	  6351
	  6352#	  6352	  6357#	  6357	  6364#	  6364	  6470#	  6470	  6482#	  6482	  6486#	  6486	  6488#	  6488
	  6561#	  6561	  6562#	  6562	  6563#	  6563	  6564#	  6564	  6565#	  6565	  6566#	  6566	  6567#	  6567
	  6579#	  6579	  6583#	  6583	  6592#	  6592	  6601#	  6601	  6621#	  6621	  6639#	  6639	  6646#	  6646
	  6656#	  6656	  6658#	  6658	  6667#	  6667	  6855#	  6855	  6856#	  6856	  6858#	  6858	  6860#	  6860
	  6861#	  6861	  6864#	  6864	  6867#	  6867	  6870#	  6870	  6965#	  6965	  6969#	  6969	  6972#	  6972
	  6975#	  6975	  6978#	  6978	  7062#	  7062	  7066#	  7066	  7069#	  7069	  7072#	  7072	  7075#	  7075
	  7113#	  7113	  7124#	  7124	  7138#	  7138	  7520#	  7520	  7523#	  7523	  7526#	  7526	  7533#	  7533
	  7591#	  7591	  7592#	  7592	  7595#	  7595	  7633#	  7633	  7638#	  7638
..IFT	   253#	   253	   255#	   255	   360#	   360	   362#	   362	   405#	   405	   407#	   407	   498#	   498
	   500#	   500	   563#	   563	   565#	   565	   591#	   591	   593#	   593	   742#	   742	   744#	   744
	   823#	   823	   825#	   825	  1632#	  1632	  1634#	  1634	  2182#	  2182	  2242#	  2242	  2243#	  2243
	  2245#	  2245	  2629#	  2629	  2631#	  2631	  5934#	  5934	  5935#	  5935	  6022#	  6022	  6023#	  6023
	  6106#	  6106	  6108#	  6108	  6486#	  6486	  6487#	  6487	  6488#	  6488	  6489#	  6489	  6491#	  6491
	  6861#	  6861	  6863#	  6863	  7633#	  7633	  7634#	  7634	  7635#	  7635
..JX1	  2243#	  2243	  6487#	  6487	  6489#	  6489	  7634#	  7634
..MSK	  6350#	  6350	  6351#	  6351	  6352#
..MX1	   158#	   158	   250#	   250	   253#	   253	   313#	   313	   319#	   319	   329#	   329	   331#	   331
	   334#	   334	   336#	   336	   358#	   358	   377#	   377	   400#	   400	   410#	   410	   411#	   411
	   420#	   420	   428#	   428	   437#	   437	   447#	   447	   472#	   472	   489#	   489	   497#	   497
	   498#	   498	   529#	   529	   533#	   533	   538#	   538	   563#	   563	   591#	   591	   626#	   626
	   628#	   628	   630#	   630	   695#	   695	   699#	   699	   702#	   702	   704#	   704	   706#	   706
	   711#	   711	   738#	   738	   742#	   742	   782#	   782	   818#	   818	   823#	   823	   825#	   825
	   929#	   929	   939#	   939	   941#	   941	   975#	   975	  1402#	  1403#	  1403	  1426#	  1426	  1428#
	  1428	  1442#	  1442	  1458#	  1458	  1465#	  1465	  1481#	  1481	  1576#	  1576	  1632#	  1632	  1843#
	  1843	  1845#	  1845	  1848#	  1848	  1867#	  1867	  1877#	  1877	  1917#	  1917	  1932#	  1932	  1946#
	  1946	  1991#	  1991	  2041#	  2041	  2182#	  2182	  2206#	  2206	  2258#	  2258	  2281#	  2281	  2334#
	  2334	  2482#	  2482	  2528#	  2528	  2538#	  2538	  2841#	  2841	  2874#	  2874	  2935#	  2935	  2993#
	  2993	  3082#	  3082	  3096#	  3096	  3243#	  3244#	  3244	  3504#	  3504	  3506#	  3506	  3538#	  3538
	  4256#	  4256	  4260#	  4260	  4269#	  4269	  4308#	  4308	  4318#	  4318	  4326#	  4326	  4338#	  4338
	  4351#	  4351	  4372#	  4372	  4393#	  4393	  4443#	  4443	  4458#	  4458	  4466#	  4466	  4476#	  4476
	  4486#	  4486	  4655#	  4655	  4657#	  4657	  4681#	  4681	  4683#	  4683	  4708#	  4708	  4710#	  4710
	  4734#	  4734	  4764#	  4764	  4798#	  4798	  4804#	  4804	  4821#	  4821	  4834#	  4834	  4837#	  4837
	  4849#	  4849	  4851#	  4851	  4862#	  4862	  4865#	  4865	  4872#	  4872	  4899#	  4899	  4901#	  4901
	  4937#	  4937	  4939#	  4939	  4968#	  4968	  4975#	  4975	  5003#	  5003	  5014#	  5014	  5017#	  5017
	  5025#	  5025	  5029#	  5029	  5036#	  5036	  5039#	  5039	  5046#	  5046	  5076#	  5076	  5099#	  5099
	  5125#	  5125	  5127#	  5127	  5139#	  5139	  5194#	  5194	  5218#	  5218	  5251#	  5251	  5253#	  5253
	  5258#	  5258	  5266#	  5266	  5268#	  5268	  5270#	  5270	  5337#	  5337	  5374#	  5374	  5376#	  5376
	  5379#	  5379	  5463#	  5463	  5482#	  5482	  5507#	  5507	  5509#	  5509	  5511#	  5511	  5531#	  5531
	  5533#	  5533	  5535#	  5535	  5541#	  5541	  5561#	  5561	  5575#	  5575	  5595#	  5595	  5597#	  5597
	  5599#	  5599	  5602#	  5602	  5608#	  5608	  5632#	  5632	  5634#	  5634	  5636#	  5636	  5639#	  5639
	  5645#	  5645	  5661#	  5661	  5663#	  5663	  5766#	  5766	  5788#	  5788	  5790#	  5790	  5810#	  5810
	  5879#	  5879	  6036#	  6036	  6050#	  6050	  6082#	  6082	  6234#	  6234	  6353#	  6353	  6354#	  6354
	  6358#	  6358	  6476#	  6476	  6499#	  6499	  6549#	  6549	  6550#	  6550	  6560#	  6560	  6857#	  6857
	  6859#	  6859	  6861#	  6861	  6911#	  6911	  7008#	  7008	  7103#	  7103	  7112#	  7112	  7189#	  7189
	  7194#	  7194	  7199#	  7199	  7226#	  7226	  7273#	  7273	  7275#	  7275	  7314#	  7314	  7350#	  7350
	  7588#	  7588	  7666#	  7666	  7669#	  7669
..MX2	   158#	   158	   250#	   250	   251	   253#	   253	   254	   313#	   313	   319#	   319	   329#	   330
	   331#	   331	   334#	   334	   336#	   336	   358#	   358	   377#	   377	   400#	   400	   410#	   411
	   411#	   412	   420#	   420	   428#	   428	   437#	   437	   447#	   447	   472#	   472	   489#	   490
	   497#	   497	   498	   498#	   499	   529#	   529	   533#	   533	   538#	   538	   563#	   563	   564
	   591#	   591	   592	   626#	   627	   628#	   629	   630#	   631	   695#	   696	   699#	   699	   700
	   702#	   703	   704#	   705	   706#	   707	   711#	   712	   738#	   738	   739	   742#	   742	   743
	   782#	   783	   818#	   819	   823#	   823	   824	   825#	   825	   826	   929#	   930	   939#	   940
	   941#	   942	   975#	   976	  1403#	  1404	  1426#	  1427	  1428#	  1429	  1442#	  1443	  1458#	  1459
	  1465#	  1466	  1481#	  1482	  1576#	  1576	  1577	  1632#	  1632	  1633	  1843#	  1844	  1845#	  1846
	  1848#	  1849	  1867#	  1867	  1877#	  1877	  1917#	  1918	  1932#	  1932	  1946#	  1946	  1991#	  1992
	  2041#	  2042	  2182#	  2182	  2183	  2206#	  2207	  2258#	  2258	  2281#	  2282	  2334#	  2335	  2482#
	  2483	  2528#	  2529	  2538#	  2539	  2841#	  2842	  2874#	  2874	  2935#	  2936	  2993#	  2993	  3082#
	  3083	  3096#	  3097	  3244#	  3245	  3504#	  3505	  3506#	  3506	  3507	  3538#	  3539	  4256#	  4257
	  4260#	  4261	  4269#	  4270	  4308#	  4309	  4318#	  4319	  4326#	  4327	  4338#	  4339	  4351#	  4352
	  4372#	  4373	  4393#	  4394	  4443#	  4444	  4458#	  4459	  4466#	  4467	  4476#	  4477	  4486#	  4487
	  4655#	  4656	  4657#	  4658	  4681#	  4682	  4683#	  4684	  4708#	  4709	  4710#	  4711	  4734#	  4735
	  4764#	  4765	  4798#	  4799	  4804#	  4805	  4821#	  4822	  4834#	  4835	  4837#	  4838	  4849#	  4850
	  4851#	  4852	  4862#	  4863	  4865#	  4866	  4872#	  4873	  4899#	  4900	  4901#	  4902	  4937#	  4938
	  4939#	  4940	  4968#	  4969	  4975#	  4976	  5003#	  5004	  5014#	  5015	  5017#	  5018	  5025#	  5026
	  5029#	  5030	  5036#	  5037	  5039#	  5040	  5046#	  5047	  5076#	  5077	  5099#	  5100	  5125#	  5126
	  5127#	  5128	  5139#	  5140	  5194#	  5195	  5218#	  5219	  5251#	  5252	  5253#	  5254	  5258#	  5259
	  5266#	  5267	  5268#	  5269	  5270#	  5271	  5337#	  5338	  5374#	  5375	  5376#	  5377	  5379#	  5380
	  5463#	  5464	  5482#	  5483	  5507#	  5508	  5509#	  5510	  5511#	  5512	  5531#	  5532	  5533#	  5534
	  5535#	  5536	  5541#	  5542	  5561#	  5562	  5575#	  5576	  5595#	  5596	  5597#	  5598	  5599#	  5600
	  5602#	  5602	  5608#	  5609	  5632#	  5633	  5634#	  5635	  5636#	  5637	  5639#	  5639	  5645#	  5646
	  5661#	  5662	  5663#	  5664	  5766#	  5766	  5767	  5788#	  5788	  5790#	  5791	  5810#	  5811	  5879#
	  5880	  6036#	  6036	  6037	  6050#	  6050	  6051	  6082#	  6082	  6083	  6234#	  6235	  6353#	  6353
	  6354#	  6355	  6358#	  6359	  6476#	  6476	  6477	  6499#	  6499	  6500	  6549#	  6550	  6550#	  6551
	  6560#	  6561	  6857#	  6858	  6859#	  6860	  6861#	  6861	  6862	  6911#	  6912	  7008#	  7009	  7103#
	  7104	  7112#	  7112	  7189#	  7190	  7194#	  7195	  7199#	  7200	  7226#	  7227	  7273#	  7274	  7275#
	  7276	  7314#	  7315	  7350#	  7351	  7588#	  7589	  7666#	  7667	  7669#	  7670
..NAC	  1178#	  1178	  6469#	  6469
..NS	   253#	   253	   255	   340#	   340	   341	   360#	   360	   362	   405#	   405	   407	   463#	   463
	   464	   498#	   498	   500	   563#	   563	   565	   591#	   591	   593	   742#	   742	   744	   823#
	   823	   825	  1632#	  1632	  1634	  2242#	  2242	  2245	  2629#	  2629	  2631	  5923#	  5923	  5924
	  6012#	  6012	  6013	  6106#	  6106	  6108	  6350#	  6350	  6486#	  6486	  6488	  6488#	  6491	  6562#
	  6562	  6563	  6563#	  6564	  6564#	  6565	  6565#	  6566	  6566#	  6567	  6567#	  6568	  6861#	  6861
	  6863	  7592#	  7592	  7593	  7633#	  7633	  7635
..NV	   187#	   187	   228#	   228	   612#	   612	   688#	   688	   724#	   724	   894#	   894	  1535#	  1535
	  1620#	  1620	  1712#	  1712	  1769#	  1769	  1894#	  1894	  1986#	  1986	  2110#	  2110	  2174#	  2174
	  2202#	  2202	  2228#	  2228	  2271#	  2271	  2477#	  2477	  2510#	  2510	  2582#	  2582	  2603#	  2603
	  2640#	  2640	  2725#	  2725	  2794#	  2794	  3109#	  3109	  3140#	  3140	  3179#	  3179	  3195#	  3195
	  3208#	  3208	  3778#	  3778	  3903#	  3903	  3997#	  3997	  4043#	  4043	  4091#	  4091	  4167#	  4167
	  4378#	  4378	  4400#	  4400	  4499#	  4499	  4559#	  4559	  4602#	  4602	  4704#	  4704	  4732#	  4732
	  4757#	  4757	  4794#	  4794	  4817#	  4817	  4893#	  4893	  4932#	  4932	  4963#	  4963	  4998#	  4998
	  5073#	  5073	  5095#	  5095	  5117#	  5117	  5214#	  5214	  5235#	  5235	  5303#	  5303	  5353#	  5353
	  5370#	  5370	  5393#	  5393	  5425#	  5425	  5442#	  5442	  5461#	  5461	  5480#	  5480	  5659#	  5659
	  5692#	  5692	  5714#	  5714	  5734#	  5734	  5757#	  5757	  5783#	  5783	  5801#	  5801	  5833#	  5833
	  5873#	  5873	  5894#	  5894	  5971#	  5971	  5997#	  5997	  6121#	  6121	  6210#	  6210	  6211	  6468#
	  6468	  6513#	  6513	  6706#	  6706	  6764#	  6764	  6804#	  6804	  6882#	  6882	  6905#	  6905	  7002#
	  7002	  7171#	  7171	  7172	  7376#	  7376	  7398#	  7398	  7580#	  7580	  7652#	  7652
..PST	   253#	   253	   267#	   267	   338#	   338	   339#	   339	   340#	   340	   351#	   351	   352#	   352
	   360#	   360	   365#	   365	   366#	   366	   385#	   385	   386#	   386	   388#	   388	   405#	   405
	   414#	   414	   460#	   460	   463#	   463	   498#	   498	   552#	   552	   563#	   563	   580#	   580
	   591#	   591	   617#	   617	   705#	   705	   707#	   707	   708#	   708	   742#	   742	   790#	   790
	   823#	   823	  1557#	  1557	  1562#	  1562	  1595#	  1595	  1631#	  1631	  1632#	  1632	  1698#	  1698
	  1725#	  1725	  1782#	  1782	  1813#	  1813	  1814#	  1814	  1828#	  1828	  2117#	  2117	  2133#	  2133
	  2136#	  2136	  2160#	  2160	  2162#	  2162	  2182#	  2182	  2184#	  2184	  2187#	  2187	  2233#	  2233
	  2236#	  2236	  2242#	  2242	  2245#	  2245	  2277#	  2277	  2283#	  2283	  2312#	  2312	  2527#	  2527
	  2529#	  2529	  2535#	  2535	  2537#	  2537	  2542#	  2542	  2545#	  2545	  2562#	  2562	  2564#	  2564
	  2565#	  2565	  2567#	  2567	  2608#	  2608	  2609#	  2609	  2611#	  2611	  2616#	  2616	  2629#	  2629
	  2760#	  2760	  2842#	  2842	  2850#	  2850	  2853#	  2853	  2908#	  2908	  2915#	  2915	  2919#	  2919
	  2921#	  2921	  3038#	  3038	  3043#	  3043	  3045#	  3045	  3047#	  3047	  3049#	  3049	  3056#	  3056
	  3057#	  3057	  3076#	  3076	  3081#	  3081	  3083#	  3083	  3323#	  3323	  3332#	  3332	  3341#	  3341
	  3363#	  3363	  3369#	  3369	  3373#	  3373	  3379#	  3379	  3395#	  3395	  3404#	  3404	  3410#	  3410
	  3413#	  3413	  3414#	  3414	  3420#	  3420	  3453#	  3453	  3459#	  3459	  3463#	  3463	  3469#	  3469
	  3475#	  3475	  3478#	  3478	  3479#	  3479	  3490#	  3490	  3520#	  3520	  3521#	  3521	  3539#	  3539
	  3540#	  3540	  3555#	  3555	  3556#	  3556	  3557#	  3557	  3596#	  3596	  3609#	  3609	  3623#	  3623
	  3633#	  3633	  3688#	  3688	  3699#	  3699	  4763#	  4763	  4767#	  4767	  4769#	  4769	  4779#	  4779
	  4782#	  4782	  4784#	  4784	  4785#	  4785	  4820#	  4820	  4824#	  4824	  4880#	  4880	  4881#	  4881
	  4973#	  4973	  4978#	  4978	  4981#	  4981	  4983#	  4983	  4985#	  4985	  5054#	  5054	  5150#	  5150
	  5242#	  5242	  5718#	  5718	  5742#	  5742	  5744#	  5744	  5762#	  5762	  5764#	  5764	  5768#	  5768
	  5787#	  5787	  5806#	  5806	  5808#	  5808	  5813#	  5813	  5816#	  5816	  5818#	  5818	  5838#	  5838
	  5856#	  5856	  5863#	  5863	  5877#	  5877	  5899#	  5899	  5917#	  5917	  5923#	  5923	  5924#	  5924
	  5927#	  5927	  5931#	  5931	  5932#	  5932	  5934#	  5934	  6002#	  6002	  6008#	  6008	  6009#	  6009
	  6012#	  6012	  6017#	  6017	  6018#	  6018	  6021#	  6021	  6022#	  6022	  6104#	  6104	  6105#	  6105
	  6106#	  6106	  6162#	  6162	  6163#	  6163	  6171#	  6171	  6172#	  6172	  6217#	  6217	  6218#	  6218
	  6231#	  6231	  6236#	  6236	  6238#	  6238	  6242#	  6242	  6264#	  6264	  6299#	  6299	  6309#	  6309
	  6327#	  6327	  6350#	  6350	  6351#	  6351	  6352#	  6352	  6357#	  6357	  6364#	  6364	  6470#	  6470
	  6482#	  6482	  6486#	  6486	  6488#	  6488	  6561#	  6561	  6562#	  6562	  6563#	  6563	  6564#	  6564
	  6565#	  6565	  6566#	  6566	  6567#	  6567	  6579#	  6579	  6583#	  6583	  6592#	  6592	  6601#	  6601
	  6621#	  6621	  6639#	  6639	  6646#	  6646	  6656#	  6656	  6658#	  6658	  6667#	  6667	  6855#	  6855
	  6856#	  6856	  6858#	  6858	  6860#	  6860	  6861#	  6861	  6864#	  6864	  6867#	  6867	  6870#	  6870
	  6965#	  6965	  6969#	  6969	  6972#	  6972	  6975#	  6975	  6978#	  6978	  7062#	  7062	  7066#	  7066
	  7069#	  7069	  7072#	  7072	  7075#	  7075	  7113#	  7113	  7124#	  7124	  7138#	  7138	  7520#	  7520
	  7523#	  7523	  7526#	  7526	  7533#	  7533	  7591#	  7591	  7592#	  7592	  7595#	  7595	  7633#	  7633
	  7638#	  7638
..STKN	   920#	   920	   921	   992#	   992	   993	  1072#	  1072	  1073	  1179#	  1179	  1180	  1232#	  1232
	  1233	  1286#	  1286	  1287	  1394#	  1394	  1395	  1501#	  1501	  1502	  1536#	  1536	  1537	  1692#
	  1692	  1693	  1895#	  1895	  1896	  2035#	  2035	  2036	  2063#	  2063	  2064	  2111#	  2111	  2112
	  2685#	  2685	  2686	  2726#	  2726	  2727	  2795#	  2795	  2796	  2858#	  2858	  2859	  2969#	  2969
	  2970	  3306#	  3306	  3307	  4237#	  4237	  4238	  4275#	  4275	  4276	  4331#	  4331	  4332	  4449#
	  4449	  4450	  5185#	  5185	  5186	  5236#	  5236	  5237	  5333#	  5333	  5334	  5499#	  5499	  5500
	  5528#	  5528	  5529	  5589#	  5589	  5590	  5626#	  5626	  5627	  6033#	  6033	  6034	  6122#	  6122
	  6123	  6394#	  6394	  6395	  6514#	  6514	  6515	  6765#	  6765	  6766	  6906#	  6906	  6907	  7003#
	  7003	  7004	  7098#	  7098	  7099	  7173#	  7173	  7174	  7506#	  7506	  7507
..STKQ	   920#	   920	   992#	   992	  1072#	  1072	  1179#	  1179	  1232#	  1232	  1286#	  1286	  1394#	  1394
	  1501#	  1501	  1536#	  1536	  1692#	  1692	  1895#	  1895	  2035#	  2035	  2063#	  2063	  2111#	  2111
	  2685#	  2685	  2726#	  2726	  2795#	  2795	  2858#	  2858	  2969#	  2969	  3306#	  3306	  4237#	  4237
	  4275#	  4275	  4331#	  4331	  4449#	  4449	  5185#	  5185	  5236#	  5236	  5333#	  5333	  5499#	  5499
	  5528#	  5528	  5589#	  5589	  5626#	  5626	  6033#	  6033	  6122#	  6122	  6394#	  6394	  6514#	  6514
	  6765#	  6765	  6906#	  6906	  7003#	  7003	  7098#	  7098	  7173#	  7173	  7506#	  7506
..STKR	   920#	   922	   992#	   994	  1072#	  1074	  1179#	  1181	  1232#	  1234	  1286#	  1288	  1394#	  1396
	  1501#	  1503	  1536#	  1538	  1692#	  1694	  1895#	  1897	  2035#	  2037	  2063#	  2065	  2111#	  2113
	  2685#	  2687	  2726#	  2728	  2795#	  2797	  2858#	  2860	  2969#	  2971	  3306#	  3308	  4237#	  4239
	  4275#	  4277	  4331#	  4333	  4449#	  4451	  5185#	  5187	  5236#	  5238	  5333#	  5335	  5499#	  5501
	  5528#	  5530	  5589#	  5591	  5626#	  5628	  6033#	  6035	  6122#	  6124	  6394#	  6396	  6514#	  6516
	  6765#	  6767	  6906#	  6908	  7003#	  7005	  7098#	  7100	  7173#	  7175	  7506#	  7508
..TRR	   187#	   188	   228#	   229	   612#	   613	   688#	   689	   724#	   725	   894#	   895	  1535#	  1536
	  1620#	  1621	  1712#	  1713	  1769#	  1770	  1894#	  1895	  1986#	  1987	  2110#	  2111	  2174#	  2175
	  2202#	  2203	  2228#	  2229	  2271#	  2272	  2477#	  2478	  2510#	  2511	  2582#	  2583	  2603#	  2604
	  2640#	  2641	  2725#	  2726	  2794#	  2795	  3109#	  3110	  3140#	  3141	  3179#	  3180	  3195#	  3196
	  3208#	  3209	  3778#	  3779	  3903#	  3904	  3997#	  3998	  4043#	  4044	  4091#	  4092	  4167#	  4168
	  4378#	  4379	  4400#	  4401	  4499#	  4500	  4559#	  4560	  4602#	  4603	  4704#	  4705	  4732#	  4733
	  4757#	  4758	  4794#	  4795	  4817#	  4818	  4893#	  4894	  4932#	  4933	  4963#	  4964	  4998#	  4999
	  5073#	  5074	  5095#	  5096	  5117#	  5118	  5214#	  5215	  5235#	  5236	  5303#	  5304	  5353#	  5354
	  5370#	  5371	  5393#	  5394	  5425#	  5426	  5442#	  5443	  5461#	  5462	  5480#	  5481	  5659#	  5660
	  5692#	  5693	  5714#	  5715	  5734#	  5735	  5757#	  5758	  5783#	  5784	  5801#	  5802	  5833#	  5834
	  5873#	  5874	  5894#	  5895	  5971#	  5972	  5997#	  5998	  6121#	  6122	  6210#	  6212	  6468#	  6469
	  6513#	  6514	  6706#	  6707	  6764#	  6765	  6804#	  6805	  6882#	  6883	  6905#	  6906	  7002#	  7003
	  7171#	  7173	  7376#	  7377	  7398#	  7399	  7580#	  7581	  7652#	  7653
..TSA1	   253#	   253	   360#	   360	   405#	   405	   498#	   498	   563#	   563	   591#	   591	   742#	   742
	   823#	   823	  1632#	  1632	  2242#	  2242	  2629#	  2629	  6106#	  6106	  6486#	  6486	  6488#	  6488
	  6861#	  6861	  7633#	  7633
..TX1	   654#	   654	   775#	   775	   807#	   807	  1311#	  1311	  1929#	  1929	  1943#	  1943	  2153#	  2153
	  2243#	  2243	  2656#	  2656	  3390#	  3390	  3434#	  3434	  3485#	  3485	  3499#	  3499	  3642#	  3642
	  3653#	  3653	  3715#	  3715	  3725#	  3725	  4542#	  4542	  4572#	  4572	  5400#	  5400	  5403#	  5403
	  6059#	  6059	  6317#	  6317	  6489#	  6489	  7563#	  7563	  7589#	  7589
..TX2	   654#	   655	   775#	   776	   807#	   807	  1311#	  1311	  1312	  1929#	  1929	  1943#	  1943	  2153#
	  2154	  2243#	  2243	  2244	  2656#	  2657	  3390#	  3391	  3434#	  3435	  3485#	  3486	  3499#	  3500
	  3642#	  3643	  3653#	  3654	  3715#	  3716	  3725#	  3726	  4542#	  4543	  4572#	  4573	  5400#	  5401
	  5403#	  5404	  6059#	  6059	  6060	  6317#	  6318	  6489#	  6489	  6490	  7563#	  7563	  7564	  7589#
	  7590
.A16	   187	   228	   612	   688	   724	   894	   920	   992	  1072	  1178	  1179	  1232	  1286	  1394
	  1501	  1535	  1536	  1620	  1692	  1712	  1769	  1894	  1895	  1986	  2035	  2063	  2110	  2111
	  2174	  2202	  2228	  2271	  2477	  2510	  2582	  2603	  2640	  2685	  2725	  2726	  2794	  2795
	  2858	  2969	  3109	  3140	  3179	  3195	  3208	  3306	  3778	  3903	  3997	  4043	  4091	  4167
	  4237	  4275	  4331	  4378	  4400	  4449	  4499	  4559	  4602	  4704	  4732	  4757	  4794	  4817
	  4893	  4932	  4963	  4998	  5073	  5095	  5117	  5185	  5214	  5235	  5236	  5303	  5333	  5353
	  5370	  5393	  5425	  5442	  5461	  5480	  5499	  5528	  5589	  5626	  5659	  5692	  5714	  5734
	  5757	  5783	  5801	  5833	  5873	  5894	  5971	  5997	  6033	  6121	  6122	  6210	  6394	  6468
	  6469	  6513	  6514	  6706	  6764	  6765	  6804	  6882	  6905	  6906	  7002	  7003	  7098	  7171
	  7173	  7376	  7398	  7506	  7580	  7652
.ASSET	   187	   228	   612	   688	   724	   894	  1535	  1620	  1712	  1769	  1894	  1986	  2110	  2174
	  2202	  2228	  2271	  2477	  2510	  2582	  2603	  2640	  2725	  2794	  3109	  3140	  3179	  3195
	  3208	  3778	  3903	  3997	  4043	  4091	  4167	  4378	  4400	  4499	  4559	  4602	  4704	  4732
	  4757	  4794	  4817	  4893	  4932	  4963	  4998	  5073	  5095	  5117	  5214	  5235	  5303	  5353
	  5370	  5393	  5425	  5442	  5461	  5480	  5659	  5692	  5714	  5734	  5757	  5783	  5801	  5833
	  5873	  5894	  5971	  5997	  6121	  6468	  6513	  6706	  6764	  6804	  6882	  6905	  7002	  7376
	  7398	  7580	  7652
.BTBEL	  5790	  5843
.BTCNT	  5769	  5815	  5854	  5864
.BTCPN	  1195
.BTDMP	  5821
.BTDPT	  5820	  5857
.BTDTE	  1441	  1478	  5719	  5745	  5763	  5789	  5807	  5839	  5878	  5900
.BTFLG	  5767	  5858
.BTIPR	  1481	  5903
.BTLDS	  5746
.BTLID	  1193	  1194	  1198
.BTLOD	  5770
.BTLPT	  5765
.BTPRT	   998	  1192	  1508
.BTPRV	  1479	  5902
.BTRCC	  1004	  1513
.BTRLC	  1007	  1515
.BTRMP	  5859
.BTROM	  5879
.BTSCC	  1002	  1512
.BTSEC	  5743
.BTTCC	  1006	  1514
.BTTPR	  1442	  5720
.BTZTM	  1024
.CHNUL	  3537	  4020	  4544	  5399
.CHTAB	  7683
.CP11	  1717	  2095	  2585	  4901	  4939	  5139	  5268
.DOPTH	  3690	  3700
.DOSRV	  3454	  3701
.DOTGT	  3470	  3689
.DTA11	  7700
.DTDLV	  7703
.DTDMC	  3134	  3251	  7704	  7721
.DTDTE	  1425	  2095	  2648	  3130	  3252	  5136	  5266	  7493	  7548	  7707	  7718
.DTDUP	  3131	  3253	  7709	  7720
.DTDV1	  7710
.DTKDP	  1427	  3132	  3254	  7679	  7711	  7719
.DTKDZ	  3133	  3255	  7680	  7712
.DTL1A	  7701
.DTL1E	  7702
.DTP11	  7705
.DTQ11	  7706
.DTU11	  7708
.EDDAT	  4260
.EDDEV	  4318
.EDMCD	  4372
.EDNOD	  4351
.EDOPS	  4458
.EDRCV	  4476
.EDREG	  4443
.EDRSN	  4326
.EDTHR	  4486
.EDTIM	  4466
.EDTXT	  1991	  2811	  4393
.EDUPT	  4269
.ERR21	   108#	  6492
.ERR29	   108#	  2763
.EVASC	  1917
.FBBYV	  6353
.FHSLF	   113	   275	   410	   695	   711	   755	  1581
.FTDMP	  6069
.FTLDA	  6068	  6070
.FTTSK	  6071	  6072
.GJDEV	  6402
.GJEXT	  6415
.GJGEN	  6416
.GJNAM	  6414
.GJSRC	  6418
.JSAOF	  6050
.LGMNT	  5533
.LMBAS	  4798
.LMEND	   416	   446	   468	   537	  1666	  1843	  1876	  2206	  5125
.LMMEM	  2585	  4899	  4937	  4968
.LMXFR	  1667	  5003
.LODEF	  3421
.LOPGM	  3634	  5253
.LOPTH	  3598	  3610
.LOSRV	  3364	  3611	  5253
.LOTBD	   268	  3380
.LOTBP	   269	   618	  3624
.LOTGT	  3405	  3597
.LSDMP	  1606	  4683
.LSLOD	  1605	  4657
.LSTBP	   630	  1608
.LSTBT	   628	  1607
.LSTCB	  1212	  1413
.LSTCN	  1210	  1412
.LSTMN	  1411
.LSTOF	  1208	  1410
.LSTON	  1206	  1409
.LTALL	  4095	  5602	  5639
.LTSTD	  4288	  4734
.LTSTR	  4096
.MOACN	   702
.MONCI	   704
.MORHN	  2041	  2482
.MPACK	  2191
.MPDIA	  1907	  2025
.MPDMP	  2676
.MPLDT	  5194
.MPLOD	  4764
.MPMMR	  2645
.MPMOP	  5099
.MPRQD	  5076
.MPRQL	  2179	  5218
.MPRQP	  1905	  2021	  5133
.MPXFR	  4821
.NCLLS	  5597	  5634
.NCLOG	   214	  5531
.NCLSV	   212	   626	  4655	  4681
.NCNLS	  5560	  5574
.NCRED	   210	  4708
.NCRQD	   209
.NCRQL	   208	  5251
.NCSET	   213	  5507	  5560	  5574	  5595	  5632
.NCSLN	  5509
.NCZLN	  1496	  5376
.NCZRO	   211	  5374
.NDBK1	  7205
.NDCNT	  7276
.NDCST	   966	   973
.NDCVR	   952
.NDECO	   964	   971
.NDGLI	  1082
.NDGVR	   949
.NDLCB	  1211
.NDLCN	  1209
.NDLND	  1213
.NDLNM	  1146	  1182	  1184	  1189
.NDLOF	  1207
.NDLON	  1205
.NDLST	  1203
.NDNAM	  7317	  7322
.NDNBS	  7226	  7275
.NDNLN	  1081	  1085	  1132	  1140
.NDNND	  7218
.NDNXT	  7389
.NDRVR	   954
.NDSNT	  7273
.NDSTA	  7340
.NDVER	   962	   969
.NPAC	  1178	  6469
.NRCME	   158	   313	   319	   377	   400	   420	   428	   437	   472	   529	   644	   652	   671	   767
	   773	   801	  1638	  1657	  1748	  1751	  1790	  1793	  1817	  1823	  1856	  1867	  2010	  2088
	  2098	  2177	  2180	  2186	  2192	  2257	  2291	  2297	  2300	  2317	  6407	  6412	  6422	  6429
.NRFNC	   194	   903	   908	   910	   911	   914	  1372	  1377	  1378	  1379	  1380	  1381	  1382	  1383
	  1384	  1386	  1387	  1388	  1389	  1452	  1497	  1576	  1668	  2657
.NRICF	   248	   334	   731	   737	  2232	  2241	  3368	  3372	  3394	  3396	  3409	  3411	  3458	  3462
	  3474	  3476	  3489	  3491	  3519	  3536	  3554	  7642
.NRIFL	   336
.NRILN	   997	  1087	  1095	  1186	  2649	  4093	  4097	  4133	  4155	  4286	  4289	  7494	  7496	  7547
.NRILS	  1405
.NRIMF	   237	   729	   873	   899	   901	  1368	  1370	  1400	  1493	  1539	  1624	  1664	  1715	  1902
	  1997	  2018	  2643	  2646	  2652	  2674	  2677	  2874	  2993	  3588	  3600	  3613	  3616	  3626
	  3680	  3736	  3749	  3804	  3818	  3834	  3850	  3870	  3909	  3912	  3919	  3962	  3965	  3967
	  4000	  4003	  4046	  4049	  4211	  4214	  4217	  4240	  4281	  4284	  4368	  4405	  4413	  4452
	  4490	  4566	  4568	  4604	  4626	  6825	  6834	  7210	  7215
.NRINI	  4608
.NRIOE	   358	   876
.NRIPV	  1629	  1718	  2123	  2735	  2784	  3246	  3346	  3348	  3922
.NRIST	  1010
.NRLPE	  1908	  2026	  2077	  2080
.NRNCE	  1932	  1946	  1993	  1999	  2004	  2501	  2588	  2624	  2833	  6812	  6822	  6844
.NRNPE	   665	   710	  1084	  1106	  1120	  1138	  1159	  1197	  1264	  1303	  1310	  1312	  1444	  1483
	  1742	  2044	  2238	  2275	  2485	  2592	  3149	  3174	  3189	  3203	  3216	  4258	  4980
.NRPNA	   261
.NRPRO	   444	   447	   533	   538	   778	   808	   845	  1874	  1877	  3660	  5122	  5134	  5137	  5143
	  5147	  5159
.NRRES	   331	  1078	  1559	  1598	  4027	  6913	  7010	  7105	  7191
.NRSUC	   321	   416	   449	   468	   489	   505	   777	   818	   834	   923	  1012	  1098	  1129	  1446
	  1485	  1520	  1635	  1845	  1879	  2085	  2288	  2334	  5127	  6740	  6828
.NSOFF	  5574	  5645
.NSON	   939	  5560	  5608
.NULIO	  6417
.PRARD	   113
.PTOPS	  1628	  1829	  5146	  7513	  7730
.PTSLD	  1627	  1726	  1783	  2095	  3538	  5145	  5270	  7729
.PVEND	  3923	  4872	  5046
.PVHST	  3921	  4862	  5036	  5482
.PVNAM	  4834	  5014	  5463
.PVNUM	  4849	  5025	  5661
.RBDAT	   350	  7593
.RDLCT	  1018	  4710	  6525
.RDLNS	   929
.RDLST	  1236
.SAV1	  1178
.SAV2	  6469
.STKST	   920	   992	  1072	  1179	  1232	  1286	  1394	  1501	  1536	  1692	  1895	  2035	  2063	  2111
	  2685	  2726	  2795	  2858	  2969	  3306	  4237	  4275	  4331	  4449	  5185	  5236	  5333	  5499
	  5528	  5589	  5626	  6033	  6122	  6394	  6514	  6765	  6906	  7003	  7098	  7173	  7506
.SYCTR	  6574	  6598
.SYDAT	  2742	  3314	  6559	  6590	  6598	  6600	  6609	  6620	  6628	  6638	  6644	  6653	  6884	  6966
	  6981	  7063	  7078	  7123	  7136	  7142
.SYDMC	  3251	  7721
.SYDTE	  3252	  7718
.SYDUP	  3253	  7720
.SYKDP	  3254	  7719
.SYKDZ	  3255
.SYLDD	  6917	  7014
.SYNDD	  7114	  7120	  7123
.SYPTR	  3064	  3318	  3329
.TPCNT	  7212
.TRSET	  6210	  7171
.VNCBL	  1465
.VNCNL	  1458
.VNDDC	  1428
.VNMCB	  1426
ACLOCK	  1563
ACUNLO	   565	   593	  1593
ACVAR	  1178	  6469
ADVCNT	  7171#	  7171	  7177	  7209	  7214	  7222	  7236	  7254	  7310	  7332	  7337	  7341	  7349	  7356
ADVHST	  7171#	  7171	  7178	  7323
ADVLST	  7171#	  7171	  7179	  7193	  7284	  7293	  7319
ADVPTR	  7171#	  7171	  7176	  7211	  7216	  7238	  7244	  7252	  7253	  7309	  7331	  7339	  7343	  7351
	  7352	  7358
ADVSTK	  7173#	  7173	  7183
ADVSTR	  7173#	  7173	  7305	  7312
ADVUNI	  7171#	  7171	  7217	  7221
AFDBLK	  4378#	  4378
AFDCNT	  4378#	  4378	  4379	  4389
AFDPTR	  4378#	  4378	  4390
AFDSTR	  4378#	  4378	  4387	  4394
AIC	   700
ARBFLG	  7580#	  7580	  7587
ASLLIN	  7652#	  7652	  7656	  7668	  7673	  7676	  7678
ASLPTR	  7652#	  7652	  7660
ASUBR	   187	   228	   612	   688	   724	   894	  1535	  1620	  1712	  1769	  1894	  1986	  2110	  2174
	  2202	  2228	  2271	  2477	  2510	  2582	  2603	  2640	  2725	  2794	  3109	  3140	  3179	  3195
	  3208	  3778	  3903	  3997	  4043	  4091	  4167	  4378	  4400	  4499	  4559	  4602	  4704	  4732
	  4757	  4794	  4817	  4893	  4932	  4963	  4998	  5073	  5095	  5117	  5214	  5235	  5303	  5353
	  5370	  5393	  5425	  5442	  5461	  5480	  5659	  5692	  5714	  5734	  5757	  5783	  5801	  5833
	  5873	  5894	  5971	  5997	  6121	  6468	  6513	  6706	  6764	  6804	  6882	  6905	  7002	  7376
	  7398	  7580	  7652
BASLIN	  1692#	  1692	  1694	  1697
BIN	   318	   651	   772	  5925
BOOT	  1009	  1196	  1443	  1482	  1517	  5721	  5747	  5771	  5791	  5822	  5845	  5860	  5880	  5904
BOUT	   159	  1992	  1998	  6010	  6108	  7684
BTARG	  1440	  1477	  1480	  5716	  5740	  5760	  5788	  5804	  5836	  5844	  5852	  5864	  5875	  5897
	  7466	  7468	  7469
CALL	   152	   165	   236	   241	   247	   251	   260	   271	   272	   307	   308	   313	   319	   322
	   330	   331	   333	   334	   335	   336	   343	   353	   358	   372	   377	   394	   395	   400
	   420	   422	   428	   432	   437	   447	   451	   465	   466	   472	   477	   478	   490	   495
	   500	   510	   513	   524	   552	   557	   558	   561	   566	   575	   580	   585	   586	   589
	   594	   623	   633	   636	   661	   678	   728	   730	   736	   740	   749	   761	   783	   787
	   811	   819	   821	   826	   828	   829	   857	   875	   898	   900	   933	   977	   989	   996
	  1022	  1025	  1028	  1032	  1035	  1039	  1046	  1050	  1074	  1077	  1094	  1101	  1109	  1113
	  1133	  1148	  1152	  1162	  1200	  1243	  1316	  1319	  1321	  1324	  1326	  1329	  1367	  1369
	  1396	  1404	  1418	  1420	  1432	  1436	  1438	  1454	  1456	  1461	  1463	  1492	  1494	  1498
	  1505	  1546	  1550	  1558	  1564	  1590	  1594	  1597	  1651	  1670	  1671	  1695	  1731	  1741
	  1747	  1750	  1756	  1773	  1775	  1789	  1792	  1799	  1810	  1816	  1822	  1830	  1836	  1839
	  1841	  1862	  1867	  1877	  1881	  1912	  1918	  1921	  1931	  1941	  1945	  1955	  1957	  1958
	  1963	  1970	  1971	  2009	  2067	  2076	  2079	  2204	  2231	  2237	  2240	  2254	  2273	  2278
	  2296	  2299	  2305	  2316	  2329	  2335	  2487	  2494	  2515	  2517	  2543	  2547	  2553	  2559
	  2571	  2605	  2618	  2653	  2678	  2690	  2692	  2697	  2700	  2702	  2708	  2714	  2739	  2749
	  2758	  2763	  2766	  2767	  2773	  2774	  2808	  2823	  2824	  2871	  2906	  2926	  2927	  2930
	  2931	  2943	  2944	  2947	  2948	  2990	  3021	  3022	  3025	  3026	  3036	  3054	  3066	  3088
	  3089	  3092	  3093	  3116	  3123	  3245	  3330	  3339	  3367	  3371	  3382	  3393	  3408	  3424
	  3437	  3457	  3461	  3473	  3488	  3518	  3535	  3553	  3587	  3589	  3599	  3612	  3615	  3625
	  3635	  3643	  3654	  3679	  3681	  3691	  3702	  3705	  3717	  3726	  3729	  3780	  3783	  3786
	  3789	  3852	  3871	  3887	  3926	  3947	  3966	  3982	  4026	  4174	  4245	  4267	  4309	  4324
	  4339	  4349	  4359	  4360	  4384	  4391	  4422	  4456	  4464	  4474	  4483	  4503	  4506	  4611
	  4653	  4661	  4679	  4687	  4689	  4691	  4706	  4714	  4761	  4770	  4796	  4801	  4818	  4838
	  4855	  4866	  4876	  4896	  4934	  4965	  5001	  5018	  5031	  5040	  5055	  5079	  5081	  5097
	  5102	  5119	  5170	  5192	  5200	  5216	  5243	  5249	  5260	  5262	  5338	  5357	  5372	  5380
	  5429	  5446	  5466	  5485	  5513	  5537	  5542	  5547	  5606	  5643	  5666	  5698	  5715	  5736
	  5759	  5785	  5803	  5835	  5851	  5874	  5896	  5950	  5954	  5977	  6129	  6139	  6148	  6158
	  6180	  6189	  6226	  6250	  6293	  6296	  6302	  6305	  6312	  6315	  6321	  6324	  6330	  6333
	  6337	  6384	  6442	  6457	  6477	  6491	  6492	  6500	  6522	  6531	  6542	  6552	  6577	  6580
	  6680	  6681	  6687	  6695	  6696	  6711	  6718	  6730	  6770	  6779	  6806	  6816	  6831	  6838
	  6912	  6942	  6983	  6993	  6994	  7009	  7039	  7080	  7090	  7091	  7104	  7145	  7157	  7158
	  7190	  7200	  7227	  7245	  7287	  7288	  7294	  7300	  7301	  7307	  7315	  7324	  7329	  7411
	  7412	  7417	  7418	  7585	  7657
CALLRE	   202	   904	  1373	  1459	  1466	  2050	  3764	  4100	  4215	  4525	  4642	  5704	  6268
CHLNAM	  6468#	  6468	  6471	  6484	  6504#
CHLNIB	  6468#	  6468	  6475	  6481	  6498	  6504#
CIS	   694
CKMCNT	  2174#	  2174
CKMLIN	  2174#	  2174
CKMPTR	  2174#	  2174	  2178	  2181	  2190
CLOSF	   461	   486	   549	   554	   577	   582	   831	  1930	  1944	  1954	  6110	  6746	  6752	  6786
CMRCNT	  2640#	  2640
CMRPTR	  2640#	  2640
COMBLK	   920#	   920	   950
COMVER	   920#	   920	   951	   968
DEBRK	   522
DIC	   412
DISMS	  2259	  6444
DLGCNT	  2725#	  2725	  2756
DLGEVT	  2725#	  2725	  2729	  2733	  2757
DLGPTR	  2725#	  2725	  2755
DLGSEQ	  2726#	  2726	  2728	  2748
DLGSRC	  2725#	  2725	  2747
DSPCNT	   187#	   187	   200
DSPFCN	   187#	   187	   191
DSPPTR	   187#	   187	   199
DTDLIN	  5801#	  5801	  5805
DTFCNT	  4237#	  4237	  4248	  4261
DTFDAY	  4237#	  4237	  4242	  4255
DTFMON	  4237#	  4237	  4244	  4254
DTFPTR	  4237#	  4237	  4249	  4262
DTFYR	  4237#	  4237	  4247	  4253
DTGLIN	  5894#	  5894	  5898
DTGPRO	  5894#	  5894	  5901
DTILIN	  5873#	  5873	  5876
DTSDST	  3195#	  3195	  3201
DTSREG	  3195#	  3195	  3197
DTUDST	  3208#	  3208	  3214
DTUREG	  3208#	  3208	  3210
DTWLIN	  5783#	  5783	  5786
DVFBLK	  4275#	  4275	  4311
DVFCNT	  4275#	  4275	  4306	  4319
DVFDEV	  4275#	  4275	  4291	  4293	  4294	  4298	  4302	  4315
DVFPTR	  4275#	  4275	  4307	  4320
EIR	   712
ENDAS.	   188#	   229#	   613#	   689#	   725#	   895#	  1536#	  1621#	  1713#	  1770#	  1895#	  1987#	  2111#	  2175#
	  2203#	  2229#	  2272#	  2478#	  2511#	  2583#	  2604#	  2641#	  2726#	  2795#	  3110#	  3141#	  3180#	  3196#
	  3209#	  3779#	  3904#	  3998#	  4044#	  4092#	  4168#	  4379#	  4401#	  4500#	  4560#	  4603#	  4705#	  4733#
	  4758#	  4795#	  4818#	  4894#	  4933#	  4964#	  4999#	  5074#	  5096#	  5118#	  5215#	  5236#	  5304#	  5354#
	  5371#	  5394#	  5426#	  5443#	  5462#	  5481#	  5660#	  5693#	  5715#	  5735#	  5758#	  5784#	  5802#	  5834#
	  5874#	  5895#	  5972#	  5998#	  6122#	  6469#	  6504	  6514#	  6707#	  6765#	  6805#	  6883#	  6906#	  7003#
	  7377#	  7399#	  7581#	  7653#
ENDAV.	  1179#	  1217	  6470#	  6503
ENDSV.	   922#	   994#	  1074#	  1181#	  1216	  1234#	  1288#	  1396#	  1503#	  1538#	  1694#	  1897#	  2037#	  2065#
	  2113#	  2687#	  2728#	  2797#	  2860#	  2971#	  3308#	  4239#	  4277#	  4333#	  4451#	  5187#	  5238#	  5335#
	  5501#	  5530#	  5591#	  5628#	  6035#	  6124#	  6396#	  6516#	  6767#	  6908#	  7005#	  7100#	  7175#	  7508#
ENDTV.	  6212#	  7173#
ERJMP	   117	   158	   160	   175	   313	   319	   377	   400	   420	   428	   437	   472	   508	   529
	   644	   652	   664	   671	   710	   767	   773	   801	   837	   926	   956	   985	  1010	  1015
	  1056	  1084	  1106	  1120	  1138	  1159	  1197	  1264	  1310	  1444	  1449	  1483	  1488	  1518
	  1523	  1638	  1657	  1856	  1867	  1928	  1993	  1999	  2004	  2044	  2088	  2098	  2218	  2291
	  2485	  2501	  2588	  2592	  2624	  2763	  2833	  3149	  3174	  3189	  3203	  3216	  4258	  4777
	  4980	  5722	  5748	  5772	  5792	  5823	  5846	  5861	  5881	  5905	  5926	  6011	  6052	  6056
	  6109	  6111	  6356	  6407	  6412	  6422	  6426	  6674	  6726	  6735	  6812	  6822	  6844	  6925
	  6934	  6955	  6987	  7022	  7031	  7052	  7084	  7118	  7130	  7154	  7278	  7321	  7381	  7386
	  7562	  7671	  7675	  7688
ESRSEQ	  3306#	  3306	  3309	  3322
ESRSRC	  3306#	  3306	  3308	  3328
ETPDST	  2858#	  2858	  2860	  2903	  2909	  2933
ETPERR	  2858#	  2858	  2941	  2950
ETPLID	  2858#	  2858	  2865	  2916	  2929	  2946	  2962
ETPNOD	  2858#	  2858	  2864	  2904	  2925	  2942	  2959
ETPRSN	  2858#	  2858	  2866	  2913	  2955
EVABLK	  2795#	  2795	  2810	  2818	  2822
EVACNT	  2794#	  2794	  2804
EVALGD	  2794#	  2794	  2844	  2847
EVAMSG	  2794#	  2794	  2802	  2816	  2821	  2843	  2851
EVAPTR	  2794#	  2794	  2803
EVATMP	  2795#	  2795	  2817	  2825
FATAL.	   466	   558	   586	   829	  2824	  2927	  2931	  2944	  2948	  3022	  3026	  3089	  3093	  4360
	  6681	  6696	  6994	  7091	  7158	  7288	  7301	  7412	  7418
FLD	  5253	  6050
GEBCNT	  4559#	  4559	  4567	  4577
GEBPTR	  4559#	  4559	  4570	  4578
GIACNT	  3997#	  3997	  3999	  4002	  4006	  4029
GIADST	  3997#	  3997	  4007	  4022
GIALEN	  3997#	  3997	  4004	  4031
GIAPTR	  3997#	  3997	  4001	  4013	  4030
GIBCNT	  4043#	  4043	  4045	  4048	  4051	  4075
GIBPTR	  4043#	  4043	  4047	  4061	  4074
GIBSFT	  4043#	  4043	  4054	  4067
GLLBLK	  6394#	  6394	  6397	  6398	  6399	  6400	  6402	  6414	  6415	  6416	  6418	  6420
GLLNAM	  6394#	  6394	  6403	  6413
GLLNOD	  6394#	  6394	  6396	  6404
GT4NUM	  4499#	  4499	  4505	  4508	  4509
GT4PTR	  4499#	  4499	  4501
GTAD	  6863
GTFDB	  6355
GTJFN	  6037	  6083	  6421
GTLCNT	  4091#	  4091	  4092	  4099
GTLPTR	  4091#	  4091	  4094	  4098
GTMCNT	  4167#	  4167	  4169	  4172	  4176
GTMPTR	  4167#	  4167	  4173
GTPCNT	  3778#	  3778	  3903#	  3903	  3908	  3914
GTPPTR	  3778#	  3778	  3903#	  3903	  3910	  3913
HALTF	   117	   160	   161	   175	   466	   558	   567	   586	   829	  2824	  2927	  2931	  2944	  2948
	  3022	  3026	  3089	  3093	  4360	  6681	  6696	  6994	  7091	  7158	  7288	  7301	  7412	  7418
HDWDAT	  2969#	  2969	  2981
HDWDEV	  2969#	  2969	  2978	  3020	  3034	  3053	  3061	  3087	  3262
HDWDST	  2969#	  2969	  2972	  3062	  3072
HDWERR	  2969#	  2969	  3019	  3028
HDWLXX	  2969#	  2969	  3086	  3095
HDWMCD	  2969#	  2969	  2985	  3065	  3286
HDWNOD	  2969#	  2969	  2977	  3290
HDWOPS	  2969#	  2969	  2984	  3042	  3282
HDWRCV	  2969#	  2969	  2983	  3048	  3278
HDWREG	  2969#	  2969	  2979	  3024	  3063	  3091	  3266
HDWRSN	  2969#	  2969	  2982	  3044	  3274
HDWTHR	  2969#	  2969	  2976	  3046	  3294
HDWUPT	  2969#	  2969	  2980	  3270
IBKCNT	  6121#	  6121	  6151	  6167
IBKCTR	  6121#	  6121	  6169	  6177
IBKPTR	  6122#	  6122	  6173	  6183
IBKREC	  6121#	  6121	  6128	  6138	  6147	  6157	  6161	  6170	  6179	  6188
IBKSUM	  6121#	  6121	  6124	  6135	  6141	  6150	  6160	  6182	  6191
IDCNV	  4257
INCR	  2182	  5934	  6022
INTLNK	   688#	   688	   701
IPRADJ	  2228#	  2228	  2234	  2239
IPRCNT	  2228#	  2228	  2251	  2255
IPRLIN	  2228#	  2228	  2235	  2253
IPRPRO	  2228#	  2228	  2246	  2252
ITSCNT	  6210#	  6210	  6237	  6247	  6379	  6382
ITSPTR	  6210#	  6210	  6243	  6252
ITSREC	  6210#	  6210	  6212	  6249	  6263	  6298	  6308	  6326	  6349	  6363	  6381
JE	   360	  2242	  6106	  6486	  6488	  7633
JFNS	  6051
JN	   405	  2629
JXE	  2243	  6487	  6489	  7634
LCTBLK	  6513#	  6513	  6545	  6551	  6558	  6573	  6589	  6599	  6607	  6619	  6626	  6637	  6642	  6645
	  6652	  6671	  6678	  6693
LCTCNT	  6514#	  6514	  6537	  6576	  6582
LCTLEN	  6514#	  6514	  6643	  6672
LCTLIN	  6514#	  6514	  6516	  6521	  6533	  6534	  6654	  6655	  6657	  6659	  6686
LCTNOD	  6513#	  6513	  6520	  6611	  6685
LCTNUM	  6513#	  6513	  6572	  6584	  6591
LCTPTR	  6514#	  6514	  6536	  6575
LDPLIN	  2477#	  2477	  2493
LDPLNK	  2477#	  2477	  2489
LDPNOD	  2477#	  2477	  2483	  2486
LDTLIN	  5734#	  5734	  5741
LINCNT	   992#	   992	   998	  1000	  1002	  1004	  1006	  1008	  1024	  1027	  1030	  1031	  1034	  1037
	  1038	  1043	  1044	  1045	  1048	  1049
LINLID	   992#	   992	   994	  1021
LINMSG	   992#	   992	  1016	  1053
LNSCNT	   920#	   920	   936	   979
LNSMSG	   920#	   920	   927	   981
LOAD	   267	   352	   365	   366	   385	   386	   414	   460	   552	   580	   617	  1595	  1725	  1782
	  1828	  2117	  2133	  2136	  2160	  2184	  2233	  2236	  2245	  2312	  2535	  2537	  2542	  2562
	  2565	  2608	  2609	  2616	  3363	  3369	  3373	  3379	  3395	  3404	  3410	  3413	  3414	  3420
	  3453	  3459	  3463	  3469	  3475	  3478	  3479	  3490	  3520	  3521	  3539	  3540	  3555	  3556
	  3557	  3596	  3609	  3623	  3633	  3688	  3699	  4763	  4767	  4769	  4779	  4785	  4820	  4824
	  4881	  4973	  4978	  4983	  5054	  5242	  5718	  5742	  5744	  5762	  5764	  5768	  5787	  5806
	  5808	  5816	  5838	  5856	  5863	  5877	  5899	  5917	  5924	  5931	  5932	  6002	  6008	  6009
	  6017	  6018	  6104	  6105	  6172	  6217	  6231	  6242	  6264	  6352	  6357	  6470	  6482	  7520
	  7523	  7526	  7533	  7638
LODERR	   272	   308	   313	   319	   322	   331	   334	   336	   358	   377	   395	   400	   420	   428
	   437	   447	   451	   472	   478	  1867	  1877	  1881
LSDCNT	  2271#	  2271
LSDLIN	  2271#	  2271	  2276	  2282	  2295	  2298	  2304	  2311	  2328
LSDNUM	  2271#	  2271	  2280	  2327
LSDPTR	  2271#	  2271
LSLCNT	  1620#	  1620
LSLLIN	  1620#	  1620	  1630	  1669
LSLPGM	  1620#	  1620	  1626
LSLPTR	  1620#	  1620
LSTBPW	  2063#	  2063	  2069
LSTFLG	  2063#	  2063	  2066	  2092
LSTHLD	  1232#	  1232	  1235	  1245
LSTLID	  1232#	  1232
LSTLIN	  1394#	  1394	  1398	  1419	  1424	  1437	  1455	  1462	  2063#	  2063	  2065	  2075	  2078
LSTPRT	  1394#	  1394	  1422	  1430
LSVCNT	  1535#	  1535	  1549	  1588
LSVCOD	  1536#	  1536	  1585	  1591	  1599
LSVDTE	  1536#	  1536	  1552	  1556
LSVLTB	  1536#	  1536	  1555	  1560	  1587	  1592
LSVOPT	  1536#	  1536	  1542	  1571
LSVPTR	  1535#	  1535	  1548	  1589
MBSADR	  4794#	  4794	  4800
MDLDST	  5626#	  5626	  5631	  5648
MDLLID	  5626#	  5626	  5628	  5637
MDTADR	  4932#	  4932	  4941
MDTCNT	  4932#	  4932	  4943	  4947
MDTNUM	  4932#	  4932	  4949
MEMCNT	  1712#	  1712	  1714	  1729	  1739
MEMLIN	  1712#	  1712	  1724	  1730	  1740	  1746	  1749	  1755
MEMPSW	  5095#	  5095	  5101
MEMPTR	  1712#	  1712	  1716	  1728	  1738
MHNCNT	  5480#	  5480
MHNNAM	  5480#	  5480
MHNPTR	  5480#	  5480
MIDADR	  4893#	  4893	  4903
MIDCNT	  4893#	  4893	  4904	  4914
MIDNUM	  4893#	  4893	  4895	  4916
MIMCNT	  4963#	  4963	  4976	  4982	  4984	  4986
MIMCPU	  4963#	  4963	  4970
MIMREC	  4963#	  4963	  4972
MKACNT	  5303#	  5303
MKAPTR	  5303#	  5303	  5321
MKASTR	  5303#	  5303	  5312
MKDCNT	  5117#	  5117	  5120	  5123	  5156
MKDLIN	  5117#	  5117	  5149
MKDPTR	  5117#	  5117	  5132	  5135	  5141	  5144	  5162
MKECNT	  5528#	  5528	  5539	  5548
MKEDST	  5393#	  5393	  5395	  5401	  5410
MKEEVT	  5528#	  5528	  5530	  5546
MKESRC	  5393#	  5393	  5394	  5398
MKLCNT	  5442#	  5442	  5447
MKLLOC	  5442#	  5442	  5445
MKLPTR	  5442#	  5442	  5444
MKMCNT	  5425#	  5425	  5430
MKMMEM	  5425#	  5425	  5428
MKMPTR	  5425#	  5425	  5427
MKXCNT	  4998#	  4998	  5000	  5016	  5020	  5028	  5038	  5042	  5048	  5061
MKXPTR	  4998#	  4998	  5008	  5049
MKXREC	  4998#	  4998	  5053
MKZLIN	  5370#	  5370	  5378
MLDCNT	  2110#	  2110	  2146	  2161
MLDCTR	  2111#	  2111	  2139	  2149	  2152
MLDLIN	  2110#	  2110	  2116	  2132	  2135	  2159
MLDPTB	  2111#	  2111	  2128	  2150
MLDPTR	  2110#	  2110	  2148
MLNLIN	  5499#	  5499	  5503	  5512
MLNPTR	  4732#	  4732	  4735	  4737	  4739	  4741	  4743	  4745	  5499#	  5499	  5506	  5517
MLNSTA	  5499#	  5499	  5502	  5514
MLPADR	  4817#	  4817	  4875
MLPCNT	  4817#	  4817	  4827	  4836	  4840	  4854	  4864	  4868	  4874	  4877
MLPLIN	  4817#	  4817	  4819	  4823	  4879
MMLCNT	  4757#	  4757	  4775	  4780
MMLLIN	  4757#	  4757	  4762	  4766	  4778
MMLPTR	  4757#	  4757	  4774
MMPCNT	  5353#	  5353	  5358
MMPPSW	  5353#	  5353	  5356
MMPPTR	  5353#	  5353	  5355
MMTADR	  5185#	  5185	  5188	  5199
MMTLOD	  5185#	  5185	  5187	  5196
MNDCNT	  5333#	  5333	  5336	  5340
MNLDST	  5589#	  5589	  5594	  5611
MNLLID	  5589#	  5589	  5591	  5600
MNMCNT	  5461#	  5461
MNMNAM	  5461#	  5461
MNMPTR	  5461#	  5461
MNUCNT	  5659#	  5659	  5667
MNUNUM	  5659#	  5659	  5665
MNUPTR	  5659#	  5659
MOPMSG	  5082	  5098	  5104	  5193	  5202	  5217	  5224	  7455	  7457	  7458
MOVX	   158	   250	   253	   313	   319	   329	   331	   334	   336	   358	   377	   400	   410	   411
	   420	   428	   437	   447	   472	   489	   497	   498	   529	   533	   538	   563	   591	   626
	   628	   630	   695	   699	   702	   704	   706	   711	   738	   742	   782	   818	   823	   825
	   929	   939	   941	   975	  1402	  1403	  1426	  1428	  1442	  1458	  1465	  1481	  1576	  1632
	  1843	  1845	  1848	  1867	  1877	  1917	  1932	  1946	  1991	  2041	  2182	  2206	  2258	  2281
	  2334	  2482	  2528	  2538	  2841	  2874	  2935	  2993	  3082	  3096	  3243	  3244	  3504	  3506
	  3538	  4256	  4260	  4269	  4308	  4318	  4326	  4338	  4351	  4372	  4393	  4443	  4458	  4466
	  4476	  4486	  4655	  4657	  4681	  4683	  4708	  4710	  4734	  4764	  4798	  4804	  4821	  4834
	  4837	  4849	  4851	  4862	  4865	  4872	  4899	  4901	  4937	  4939	  4968	  4975	  5003	  5014
	  5017	  5025	  5029	  5036	  5039	  5046	  5076	  5099	  5125	  5127	  5139	  5194	  5218	  5251
	  5253	  5258	  5266	  5268	  5270	  5337	  5374	  5376	  5379	  5463	  5482	  5507	  5509	  5511
	  5531	  5533	  5535	  5541	  5561	  5575	  5595	  5597	  5599	  5602	  5608	  5632	  5634	  5636
	  5639	  5645	  5661	  5663	  5766	  5788	  5790	  5810	  5879	  6036	  6050	  6082	  6234	  6353
	  6354	  6358	  6476	  6499	  6549	  6550	  6560	  6857	  6859	  6861	  6911	  7008	  7103	  7112
	  7189	  7194	  7199	  7226	  7273	  7275	  7314	  7350	  7588	  7666	  7669
MPDCNT	  2510#	  2510	  2555
MPDLIN	  2510#	  2510	  2514	  2526	  2534	  2544	  2546	  2552	  2561
MPDNUM	  2510#	  2510	  2519	  2520	  2524
MPDPTR	  2510#	  2510
MPVCNT	  1894#	  1894	  1900	  1938	  1949	  1961
MPVLEN	  1895#	  1895	  1920	  1926
MPVLIN	  1894#	  1894	  1939	  1962
MPVLNK	  1895#	  1895	  1923	  1928	  1940	  1953
MPVMSG	  1894#	  1894	  1914	  1924	  1956	  1969	  1972
MPVPTR	  1894#	  1894	  1903	  1937	  1948	  1960
MQLCNT	  5236#	  5236
MQLLID	  5236#	  5236	  5245	  5261
MQLLIN	  5235#	  5235	  5241
MRDADR	  5073#	  5073	  5078
MRDCNT	  5073#	  5073	  5080
MRDPTR	  5073#	  5073	  5075
MRLCOD	  5214#	  5214	  5222
MRLLIN	  4704#	  4704	  4713
MRLLOD	  5214#	  5214	  5220
MSGBLK	   154	   163	   164	   434	   441	   526	   535	   625	   641	   668	   677	   798	   803	  1653
	  1662	  1842	  1847	  1864	  1871	  2205	  2215	  2829	  2835	  4654	  4666	  4680	  4694	  4707
	  4716	  4797	  4803	  4898	  4919	  4936	  4952	  4967	  4989	  5002	  5059	  5124	  5175	  5250
	  5373	  5382	  6732	  6739	  6793	  6819	  6826	  6841	  7477	  7479	  7480
MTOPR	   709	  2043	  2484
NCUCHN	   693	   697
NCULEV	   691	   696
NDFBLK	  4331#	  4331	  4341	  4345	  4352	  4358	  4361
NDFCNT	  4331#	  4331	  4334	  4347
NDFPTR	  4331#	  4331	  4333	  4348
NDMCNT	  4602#	  4602	  4609
NDMDST	  4602#	  4602
NDMPTR	  4602#	  4602	  4605
NODE	   955	  1083	  7277
NON.FA	  1931	  1945	  1955	  1958	  1971	  2763	  2767	  2774	  6492
NOUT	  7670	  7674	  7687
OPENF	  6040	  6086	  6425
OPFTYP	  4449#	  4449	  4454	  4459
OPIJFN	  6033#	  6033	  6047	  6061
OPITYP	  6033#	  6033	  6049	  6054
PRARG	   116
PRSCTL	  1286#	  1286	  1289	  1318	  1333
PRSLDV	  1286#	  1286	  1291	  1314	  1332
PRSSTN	  1286#	  1286	  1292	  1328	  1335
PRSUNT	  1286#	  1286	  1290	  1323	  1334
PRTBUF	  1179#	  1179	  1191	  1216#
PT4NUM	  5692#	  5692	  5697	  5702
PT4PTR	  5692#	  5692	  5696
RCTCNT	  6765#	  6765	  6781	  6794
RCTERR	  6765#	  6765	  6776	  6780	  6791
RCTLIN	  6764#	  6764	  6778
RCTLNK	  6764#	  6764	  6772	  6777	  6785
RCTNOD	  6764#	  6764	  6769
RCTPTR	  6765#	  6765
RDMLIN	  2603#	  2603	  2604	  2607	  2615	  2628
RDTLIN	  5833#	  5833	  5837	  5850	  5855	  5862
REQLNK	   141	   153	   171	   504	   543	   833	   922	   983	  1011	  1052	  1104	  1116	  1136	  1155
	  1445	  1484	  1519	  1634	  1652	  1854	  1863	  2042	  2084	  2094	  2216	  2287	  2481	  2584
	  2622	  2828
RET	   194	   237	   242	   248	   261	   272	   308	   313	   319	   322	   331	   334	   336	   344
	   358	   377	   395	   400	   420	   423	   428	   437	   444	   447	   451	   472	   478	   559
	   587	   597	   644	   652	   655	   665	   671	   679	   710	   729	   731	   737	   750	   762
	   767	   773	   776	   778	   784	   788	   801	   808	   809	   812	   845	   858	   873	   876
	   899	   901	   903	   908	   910	   911	   914	   934	   956	   978	   990	   997	  1010	  1064
	  1075	  1078	  1084	  1087	  1095	  1106	  1110	  1114	  1120	  1138	  1149	  1153	  1159	  1163
	  1186	  1197	  1201	  1264	  1303	  1310	  1312	  1317	  1322	  1327	  1331	  1349	  1361	  1368
	  1370	  1372	  1377	  1378	  1379	  1380	  1381	  1382	  1383	  1384	  1386	  1387	  1388	  1389
	  1397	  1400	  1405	  1421	  1433	  1439	  1444	  1452	  1457	  1464	  1483	  1493	  1495	  1497
	  1499	  1539	  1547	  1551	  1559	  1598	  1601	  1624	  1629	  1638	  1657	  1664	  1668	  1696
	  1715	  1718	  1732	  1742	  1748	  1751	  1757	  1774	  1776	  1790	  1793	  1801	  1811	  1817
	  1823	  1831	  1837	  1840	  1856	  1867	  1874	  1877	  1881	  1902	  1908	  1913	  1964	  1973
	  1993	  1997	  1999	  2004	  2010	  2018	  2026	  2044	  2068	  2077	  2080	  2088	  2098	  2123
	  2177	  2180	  2186	  2192	  2219	  2232	  2238	  2241	  2257	  2274	  2275	  2279	  2291	  2297
	  2300	  2306	  2317	  2330	  2485	  2488	  2501	  2516	  2518	  2548	  2554	  2560	  2572	  2588
	  2592	  2606	  2619	  2624	  2643	  2646	  2649	  2652	  2654	  2657	  2674	  2677	  2679	  2691
	  2693	  2698	  2701	  2703	  2709	  2715	  2735	  2740	  2776	  2784	  2809	  2833	  2951	  3029
	  3117	  3124	  3149	  3174	  3189	  3203	  3216	  3246	  3331	  3340	  3346	  3348	  3368	  3372
	  3383	  3394	  3396	  3409	  3411	  3425	  3438	  3458	  3462	  3474	  3476	  3489	  3491	  3519
	  3536	  3554	  3588	  3590	  3600	  3613	  3616	  3626	  3636	  3644	  3655	  3660	  3680	  3682
	  3692	  3703	  3706	  3718	  3727	  3730	  3736	  3749	  3781	  3784	  3787	  3790	  3804	  3818
	  3834	  3850	  3853	  3870	  3872	  3888	  3909	  3912	  3919	  3922	  3927	  3948	  3962	  3965
	  3967	  3983	  4000	  4003	  4027	  4046	  4049	  4093	  4097	  4133	  4155	  4192	  4195	  4211
	  4214	  4217	  4240	  4246	  4258	  4268	  4281	  4284	  4286	  4289	  4310	  4325	  4340	  4362
	  4368	  4385	  4392	  4405	  4413	  4423	  4452	  4457	  4465	  4475	  4484	  4490	  4510	  4566
	  4568	  4604	  4608	  4612	  4626	  4746	  4805	  4839	  4867	  4980	  5019	  5041	  5084	  5105
	  5122	  5134	  5137	  5143	  5147	  5159	  5171	  5203	  5226	  5244	  5339	  5360	  5383	  5396
	  5412	  5432	  5449	  5467	  5486	  5538	  5543	  5669	  5682	  5951	  5955	  5978	  6038	  6043
	  6060	  6084	  6089	  6130	  6137	  6140	  6143	  6149	  6159	  6181	  6190	  6194	  6227	  6251
	  6267	  6270	  6271	  6294	  6297	  6303	  6306	  6313	  6316	  6318	  6322	  6325	  6331	  6334
	  6338	  6385	  6407	  6412	  6422	  6429	  6455	  6460	  6501	  6523	  6526	  6532	  6535	  6543
	  6697	  6712	  6754	  6771	  6792	  6807	  6812	  6822	  6825	  6829	  6834	  6844	  6871	  6913
	  6995	  7010	  7092	  7105	  7159	  7191	  7210	  7215	  7261	  7298	  7308	  7316	  7325	  7330
	  7338	  7342	  7357	  7362	  7366	  7420	  7459	  7470	  7481	  7494	  7496	  7531	  7547	  7564
	  7586	  7613	  7642	  7658
RETBAD	   194	   237	   242	   248	   261	   272	   308	   313	   319	   322	   331	   334	   336	   344
	   358	   377	   395	   400	   420	   423	   428	   437	   444	   447	   451	   472	   478	   644
	   652	   655	   665	   671	   679	   710	   729	   731	   737	   750	   762	   767	   773	   776
	   778	   784	   788	   801	   808	   809	   812	   845	   858	   873	   876	   899	   901	   903
	   908	   910	   911	   914	   990	   997	  1010	  1075	  1078	  1084	  1087	  1095	  1106	  1110
	  1114	  1120	  1138	  1149	  1153	  1159	  1163	  1186	  1197	  1201	  1264	  1303	  1310	  1312
	  1317	  1322	  1327	  1331	  1368	  1370	  1372	  1377	  1378	  1379	  1380	  1381	  1382	  1383
	  1384	  1386	  1387	  1388	  1389	  1397	  1400	  1405	  1421	  1433	  1439	  1444	  1452	  1457
	  1464	  1483	  1493	  1495	  1497	  1499	  1539	  1547	  1551	  1559	  1598	  1601	  1624	  1629
	  1638	  1657	  1664	  1668	  1696	  1715	  1718	  1732	  1742	  1748	  1751	  1757	  1774	  1776
	  1790	  1793	  1801	  1811	  1817	  1823	  1831	  1837	  1840	  1856	  1867	  1874	  1877	  1881
	  1902	  1908	  1913	  1964	  1973	  1993	  1997	  1999	  2004	  2010	  2018	  2026	  2044	  2068
	  2077	  2080	  2088	  2098	  2123	  2177	  2180	  2186	  2192	  2232	  2238	  2241	  2257	  2274
	  2275	  2279	  2291	  2297	  2300	  2306	  2317	  2330	  2485	  2488	  2501	  2516	  2518	  2548
	  2554	  2560	  2572	  2588	  2592	  2606	  2619	  2624	  2643	  2646	  2649	  2652	  2654	  2657
	  2674	  2677	  2679	  2691	  2693	  2698	  2701	  2703	  2709	  2715	  2735	  2740	  2776	  2784
	  2809	  2833	  2951	  3029	  3117	  3124	  3149	  3174	  3189	  3203	  3216	  3246	  3331	  3340
	  3346	  3348	  3368	  3372	  3383	  3394	  3396	  3409	  3411	  3425	  3438	  3458	  3462	  3474
	  3476	  3489	  3491	  3519	  3536	  3554	  3588	  3590	  3600	  3613	  3616	  3626	  3636	  3644
	  3655	  3660	  3680	  3682	  3692	  3703	  3706	  3718	  3727	  3730	  3736	  3749	  3781	  3784
	  3787	  3790	  3804	  3818	  3834	  3850	  3853	  3870	  3872	  3888	  3909	  3912	  3919	  3922
	  3927	  3948	  3962	  3965	  3967	  3983	  4000	  4003	  4027	  4046	  4049	  4093	  4097	  4133
	  4155	  4211	  4214	  4217	  4240	  4246	  4258	  4268	  4281	  4284	  4286	  4289	  4310	  4325
	  4340	  4362	  4368	  4385	  4392	  4405	  4413	  4423	  4452	  4457	  4465	  4475	  4484	  4490
	  4566	  4568	  4604	  4608	  4612	  4626	  4839	  4867	  4980	  5019	  5041	  5122	  5134	  5137
	  5143	  5147	  5159	  5171	  5244	  5339	  5467	  5486	  5538	  5543	  6407	  6412	  6422	  6429
	  6792	  6807	  6812	  6822	  6825	  6829	  6834	  6844	  6913	  7010	  7105	  7191	  7210	  7215
	  7325	  7494	  7496	  7547	  7586	  7642
RETPC1	   521	   690
RETSKP	   516	   660	   680	   713	   838	   860	   878	   891	   986	  1057	  1164	  1214	  1273	  1336
	  1350	  1362	  1434	  1450	  1489	  1524	  1600	  1672	  1674	  1700	  1734	  1759	  1883	  1965
	  2024	  2093	  2099	  2163	  2189	  2193	  2261	  2336	  2593	  2631	  2659	  2680	  2716	  2768
	  2854	  2936	  3097	  3125	  3177	  3192	  3205	  3219	  3234	  3247	  3345	  3443	  3509	  3522
	  3541	  3558	  3661	  3737	  3751	  3792	  3806	  3820	  3836	  3854	  3873	  3889	  3924	  3950
	  3969	  3985	  4032	  4076	  4119	  4142	  4177	  4198	  4263	  4270	  4321	  4327	  4354	  4373
	  4395	  4445	  4460	  4467	  4478	  4487	  4546	  4579	  4613	  4628	  4667	  4695	  4717	  4786
	  4882	  4920	  4953	  4990	  5063	  5177	  5323	  5341	  5468	  5487	  5518	  5550	  5562	  5576
	  5612	  5649	  5723	  5749	  5773	  5793	  5824	  5865	  5882	  5906	  5935	  5961	  5974	  6023
	  6062	  6090	  6112	  6198	  6248	  6339	  6365	  6383	  6430	  6689	  6748	  6795	  6846	  6898
	  7285	  7326	  7334	  7344	  7353	  7359	  7390	  7448	  7498	  7515	  7534	  7551	  7566	  7596
	  7617	  7639	  7682	  7685	  7689
RGFBLK	  4400#	  4400	  4424	  4444
RGFCNT	  4400#	  4400	  4404	  4411	  4414	  4442
RGFNUM	  4400#	  4400	  4407	  4428
RGFPTR	  4400#	  4400	  4406	  4437	  4441
RLGOPT	  2685#	  2685	  2694
RLGSEQ	  2685#	  2685	  2704	  2711
RLGSRC	  2685#	  2685	  2695	  2712
RLJFN	  6041	  6087	  6427
RLSMSG	  1072#	  1072	  1111	  1117	  1150	  1156
ROUVER	   920#	   920	   953	   961
RPLHST	  2035#	  2035	  2040	  2048
RPLLNK	  2035#	  2035
RQCLIN	  6804#	  6804	  6805
RQCLNK	  6804#	  6804	  6810	  6817	  6839
RQDADR	  3505	  3728	  4688
RQDCNT	   724#	   724	  3507	  3731	  4690
RQDFIL	   786	  3492	  3719	  7049
RQDLIN	  3460	  3480	  3707	  4686	  7038
RQDLNK	   724#	   724	   739	   741	   744	   751	   765	   771	   796	   830
RQDOPT	  3452	  3468	  3484	  3498	  3683	  3687	  3698	  3714	  3724
RQDPTR	   724#	   724
RQDREC	   724#	   724	   785	   789	   810	   827	   856
RQDSRV	   748	  3456	  3477	  3704	  7029
RQDTGT	   735	   820	  3464	  3472	  3487	  3693	  7019
RQLCNT	   228#	   228	   235	   458	   473	   476
RQLCPU	   393	  3428	  3785	  7524
RQLHST	  3441	  3907	  3984	  4859	  5032
RQLLDV	  3429	  3782	  7521
RQLLIN	   632	  3370	  3415	  3617	  4660	  6941
RQLLNK	   228#	   228	   232	   249	   252	   255	   262	   270	   311	   317	   342	   375	   398	   418
	   426	   433	   470	   485	   488	   525	   548	   576
RQLNAM	  3439	  3905	  3949	  4831	  5010
RQLNUM	  3440	  3906	  3968	  4846	  5021
RQLOPS	  3397	  3645	  6952	  7514
RQLOPT	   266	  3362	  3378	  3389	  3403	  3419	  3433	  3591	  3595	  3608	  3622	  3632	  3641	  3652
RQLPGM	  3427	  3788	  4662	  7512	  7527
RQLPSW	   634	  3384	  3627
RQLPTR	   228#	   228	   234	   457	   475
RQLREC	   228#	   228	   233	   332	   337	   348	   359	   364	   384	   392	   404	   413	   459	   464
	   467	   551	   556	   579	   584
RQLSID	  3426	  3791
RQLSRV	   259	  3366	  3412	  3614	  6932
RQLTGT	   246	   494	   509	   512	   560	   588	  3374	  3381	  3392	  3407	  3423	  3436	  3601	  6922
RQRBUF	  1072#	  1072	  1079	  1108	  1131	  1139	  1147	  1161
RQRCNT	   894#	   894
RQRHLD	  1072#	  1072	  1076	  1088	  1093	  1096	  1107
RQRPTR	   894#	   894
SAVEPQ	  2684	  2724	  2793	  2857	  2967	  3305	  7170
SAVEQ	  1071	  1231
SDMDST	  3179#	  3179	  3185
SDMREG	  3179#	  3179	  3181
SDTCNT	  2582#	  2582	  2589
SDTLIN	  5714#	  5714	  5717	  5757#	  5757	  5761
SDTPTR	  2582#	  2582	  2590
SEMCOD	  2202#	  2202	  2208
SETONE	   253	   340	   742	  6562	  6563	  6564	  6565	  6566	  6567	  6861
SETZRO	   463	   498	   563	   591	   823	  1632	  5923	  6012	  6350	  7592
SIBE	   663
SINR	   157	   436	   528	   670	   800	  1656	  1866	  2832	  6734	  6821	  6843
SIR	   698
SKDCNT	  3140#	  3140	  3158	  3162	  3171
SKDDST	  3140#	  3140	  3142	  3153
SKDMCD	  3140#	  3140	  3164
SKDREG	  3140#	  3140	  3144	  3154
SOUT	  1263	  1927	  2587	  2820	  3148	  3173	  3188	  3202	  3215	  4776	  4979	  6406	  6411	  6613
	  6632	  6889	  6924	  6933	  6954	  7021	  7030	  7051	  7117	  7129	  7662
SOUTR	   174	   312	   376	   399	   419	   427	   471	   507	   546	   643	   766	   836	   925	   984
	  1014	  1055	  1105	  1119	  1137	  1158	  1448	  1487	  1522	  1637	  1855	  2003	  2087	  2097
	  2217	  2290	  2500	  2591	  2623	  6725	  6811
SPGTAB	  7506#	  7506
SPRIW	   277	   757	  1583
SRGDEV	  3109#	  3109
SRGDST	  3109#	  3109	  3111	  3120
SRGMCD	  3109#	  3109	  3122
SRGREG	  3109#	  3109	  3119
STCMP	  7380	  7385
STHHST	  7376#	  7376	  7379	  7388
STHNOD	  7376#	  7376	  7378	  7383
STKVAR	   920	   992	  1072	  1179	  1232	  1286	  1394	  1501	  1536	  1692	  1895	  2035	  2063	  2111
	  2685	  2726	  2795	  2858	  2968	  3306	  4237	  4275	  4331	  4449	  5185	  5236	  5333	  5499
	  5528	  5589	  5626	  6033	  6122	  6394	  6514	  6765	  6906	  7003	  7098	  7173	  7506
STOR	   338	   339	   351	   388	   705	   707	   708	   790	  1557	  1562	  1631	  1698	  1813	  1814
	  2162	  2187	  2277	  2283	  2527	  2529	  2545	  2564	  2567	  2611	  2760	  2842	  2850	  2853
	  2908	  2915	  2919	  2921	  3038	  3043	  3045	  3047	  3049	  3056	  3057	  3076	  3081	  3083
	  3323	  3332	  3341	  4782	  4784	  4880	  4981	  4985	  5150	  5813	  5818	  5927	  6021	  6162
	  6163	  6171	  6218	  6236	  6238	  6299	  6309	  6327	  6364	  6561	  6579	  6583	  6592	  6601
	  6621	  6639	  6646	  6656	  6658	  6667	  6855	  6856	  6858	  6860	  6864	  6867	  6870	  6965
	  6969	  6972	  6975	  6978	  7062	  7066	  7069	  7072	  7075	  7113	  7124	  7138	  7591	  7595
STRBLK	  6882#	  6882
STRDST	  6882#	  6882	  6883	  6885	  6892
STREND	   137	  7444
STROFS	  6882#	  6882
STRPTR	   134	  7431	  7439	  7441	  7443
STRSIZ	   140	  7432	  7446
STRSTR	  6882#	  6882	  6887
STXCNT	  1986#	  1986	  1994	  2012	  2016	  2023
STXLIN	  1986#	  1986	  2008
STXLNK	  1942	  1986#	  1986	  1990
STXPTR	  1986#	  1986	  2001	  2011	  2019	  2022
SYDBLK	  7003#	  7003	  7012	  7013	  7058	  7060	  7079	  7081	  7088
SYDCOD	  7002#	  7002	  7061
SYDFIL	  7003#	  7003	  7048	  7073
SYDSIZ	  7003#	  7003	  7059	  7077	  7082
SYDSRV	  7002#	  7002	  7028	  7067
SYDSVL	  7002#	  7002	  7037	  7070
SYDTGT	  7002#	  7002	  7018	  7064
SYERR	  2762	  6673	  6986	  7083	  7153
SYLBLK	  6906#	  6906	  6915	  6916	  6961	  6963	  6982	  6984	  6991
SYLCOD	  6905#	  6905	  6964
SYLFIL	  6906#	  6906	  6951	  6976
SYLSIZ	  6906#	  6906	  6962	  6980	  6985
SYLSRV	  6905#	  6905	  6931	  6970
SYLSVL	  6905#	  6905	  6940	  6973
SYLTGT	  6905#	  6905	  6921	  6967
SYNBLK	  7098#	  7098	  7107	  7111	  7144	  7151	  7155
SYNOFS	  7098#	  7098	  7126	  7132	  7135
SYNSIZ	  7098#	  7098	  7141	  7152
SYSGT	  6869
TB	  6068	  6069	  6070	  6071	  6072	  7700	  7701	  7702	  7703	  7704	  7705	  7706	  7707	  7708
	  7709	  7710	  7711	  7712
TBADD	  7320
TBLUK	  1309	  6055	  7561
TBTFLG	   612#	   612	   619	   629	   659
TBTLNK	   612#	   612	   642	   650	   662	   669
TBTOPT	   612#	   612	   616
TIME	  6865
TOPTBL	  7398#	  7398	  7415
TRVAR	  6210	  7171
TXNE	   654	   775	  3390	  3434	  3485	  3499	  3642	  3653	  3715	  3725	  4542	  4572	  7589
TXNN	   807	  1311	  2153	  2243	  2656	  5403	  6059	  6317	  6489	  7563
TXO	  1929	  1943	  5400
WTDBYT	  5997#	  5997	  6019
WTDCNT	  5971#	  5971	  5973
WTDPTR	  5971#	  5971	  5976
WTDREC	  5971#	  5971	  5975	  5997#	  5997	  6001	  6016
XFRADR	  1769#	  1769	  1777	  1809
XFRCNT	  1769#	  1769
XFRLIN	  1769#	  1769	  1781	  1788	  1791	  1798	  1808	  1812	  1815	  1821	  1827	  1838
XFRPTR	  1769#	  1769
ZCTLID	  6706#	  6706	  6717
ZCTLNK	  6706#	  6706	  6713	  6724	  6731	  6745	  6751
ZCTNOD	  6706#	  6706	  6710
ZROBLK	  1501#	  1501	  1508	  1510	  1512	  1513	  1514	  1516
ZROLID	  1501#	  1501	  1503
%LNADR	  1698	  2133	  2160	  2162	  2277	  2529	  2537	  2562	  2564	  4769	  4779	  4782
%LNCNT	  1814	  2545	  2609	  4784	  4880	  5768	  5813
%LNDCT	  2283	  2527	  2535	  2565	  2567	  2608	  2611	  2629	  5808
%LNDTE	  1557	  2236	  5242	  5718	  5744	  5762	  5787	  5806	  5838	  5877	  5899
%LNLDN	  1632	  2182	  2184	  2187	  4767	  4824
%LNMSG	  1562	  1595	  1813	  2136	  2312	  2542	  2616	  4763	  4785	  4820	  4881	  5742	  5764	  5816
	  5856	  5863
%LNPGM	  1631	  1725	  1782	  1828	  2117	  5150
%LNPTR	  5818
%LTLOG	  6488
%LTNIB	  7638
%LTUSE	  6486	  7633
%NDBP1	  3520
%NDBP2	  3521
%NDCPU	  3539
%NDDIP	   742	   823
%NDDMP	  3490
%NDLDV	  3540
%NDLIN	  2233	  3369	  3459	  6482
%NDLIP	   253	   498	   563	   591
%NDLOD	  3395
%NDNAM	  3373	  3463	  6470
%NDPHT	  3557
%NDPNA	  3555
%NDPNU	  3556
%NDPRO	  2245
%NDPST	  2242
%NDSL1	  3413	  3478
%NDSL2	  3414	  3479
%NDSRV	  3410	  3475
%PGCPU	  7523
%PGFIL	  7533
%PGLDV	  7520
%PGPGM	  7526
%RBBYT	  5917	  5923	  5932	  5934	  6002	  6012	  6017	  6022	  6106	  7591
%RBCAD	   340	   366	   388	  6217
%RBCNT	   360	   386	   405	  4973	  4983	  4985	  6171	  6238
%RBDAT	  5927	  5931	  6009	  6018	  6021	  6105
%RBFCT	  6231	  6236	  6309	  6364
%RBJFN	   338	   460	   463	   552	   580	   790	  5924	  6008	  6104	  6352	  7592
%RBNAD	   365	   385	  6162	  6218	  6299	  6350
%RBPTR	   351	  4978	  4981	  6172	  6242	  7595
%RBTYP	   339	   352	  6264
%RBXAD	   414	  5054	  6163	  6327	  6350	  6351
%SYADJ	  2908	  6566
%SYCOD	  2842	  3083	  6855
%SYCTR	  6583
%SYDAT	  6864
%SYDST	  3341	  6639
%SYFCN	  6565
%SYFIL	  6978	  7075
%SYHDW	  3038	  6667
%SYHLN	  6858
%SYLEN	  2760	  2853	  6646	  6856
%SYLI1	  2921	  3057	  6658
%SYLID	  2919	  3056	  6656
%SYMID	  6567
%SYNAM	  7124
%SYNCT	  3076	  6592
%SYNCV	  7113
%SYNOD	  3332	  6621
%SYNTM	  6563
%SYOPS	  3043
%SYPGM	  7138
%SYPSN	  6870
%SYPTR	  2850	  3081	  6601
%SYRCD	  6965	  7062
%SYRCT	  6562
%SYRCV	  3049
%SYRSN	  2915	  3045	  6561
%SYSEQ	  3323	  6564
%SYSRV	  6972	  7069
%SYSVL	  6975	  7072
%SYT20	  6861
%SYTGT	  6969	  7066
%SYTHR	  3047
%SYTYP	  6579
%SYUPT	  6867
%SYVER	  6860
..CNS	  6350#	  6350	  6351#	  6351
..CNS2	  6350#	  6350	  6351#	  6351
..GCNS	  6350	  6351
..JN	   405	  2629
.ENAV1	  1217	  6503
.ENAV2	  1217	  6503
.ENAV3	  1217	  6503
.ENSV1	  1216	  6504
.ENSV2	  1216	  6504
.ENSV3	  1216	  6504