Google
 

Trailing-Edge - PDP-10 Archives - BB-P363B-SM_1985 - mcb/nml/nmllib.lst
There are no other files named nmllib.lst in the archive.
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page   1
								 3-Jan-1983 01:26:09	DNET61:<MCB.NML>NMLLIB.REQ.1 (1)

;	  0001	! NET:<PECKHAM.DEVELOPMENT>NMLLIB.REQ.2  7-Feb-82 18:17:16, Edit by PECKHAM
;	  0002	!
;	  0003	!    Provide value for P$ALL in MCB version (previously from NCP3TB)
;	  0004	!
;	  0005	! NET:<PECKHAM.DEVELOPMENT>NMLLIB.REQ.2  7-Feb-82 16:41:28, Edit by PECKHAM
;	  0006	!
;	  0007	!    Conditionalize "REQUIRE NCPTAB" out of MCB version
;	  0008	!
;	  0009	! NET:<BRANDT.DEVELOP>NMLLIB.REQ.2 5-Feb-82 16:55:08, Edit by BRANDT
;	  0010	!
;	  0011	!    Change "REQUIRE NCP3TB" to "REQUIRE NCPTAB"
;	  0012	!
;	  0013	! NET:<PECKHAM.DEVELOPMENT>NMLLIB.REQ.2 21-Jan-82 11:35:08, Edit by PECKHAM
;	  0014	!
;	  0015	! Change ordering of requires to fix bug introduced by previous edit.
;	  0016	!
;	  0017	! NET:<GROSSMAN>NMLLIB.REQ.2 18-Jan-82 21:14:05, Edit by GROSSMAN
;	  0018	!
;	  0019	! Replace requires of UUOSYM, MONSYM, NETDIR et. al. with requires of NMUT10,
;	  0020	! NMUT20, and NMUMCB. This was done, because these files contain many useful
;	  0021	! definitions.
;	  0022	!
;	  0023	! NET:<DECNET20-V3P1.NMU>NMLLIB.REQ.2 16-Apr-81 13:52:51, Edit by JENNESS
;	  0024	!    Add require for response processing macros (NMRSP).
;	  0025	! NET:<DECNET20-V3P1.NMU>NMLLIB.REQ.2 24-Mar-81 15:20:09, Edit by JENNESS
;	  0026	!    Add require for debugging package.
;	  0027	! NET:<DECNET20-V3P1.BASELEVEL-2.SOURCES>NMLLIB.REQ.7  5-Mar-81 12:15:21, Edit by GUNN
;	  0028	!
;	  0029	! Add require of NETDIR under MCB.
;	  0030	!
;	  0031	! NET:<DECNET20-V3P1.NML>NMLLIB.REQ.2 19-Feb-81 16:41:04, Edit by GUNN
;	  0032	!
;	  0033	! Update copyright date.
;	  0034	! Add switches declaration to inhibit listing of MONSYM.
;	  0035	!
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page   2
								 3-Jan-1983 01:26:09	DNET61:<MCB.NML>NMLLIB.REQ.1 (2)

;	  0036	
;	  0037	! NMLLIB - Network Management Layer library
;	  0038	!
;	  0039	!                    COPYRIGHT (c) 1980, 1981, 1982
;	  0040	!                    DIGITAL EQUIPMENT CORPORATION
;	  0041	!                        Maynard, Massachusetts
;	  0042	!
;	  0043	!     This software is furnished under a license and may  be  used
;	  0044	!     and copied only in accordance with the terms of such license
;	  0045	!     and with the inclusion of the above copyright notice.   This
;	  0046	!     software  or any other copies thereof may not be provided or
;	  0047	!     otherwise made available to any other person.  No  title  to
;	  0048	!     and ownership of the software is hereby transferred.
;	  0049	!
;	  0050	!     The information  in  this  software  is  subject  to  change
;	  0051	!     without  notice  and should not be construed as a commitment
;	  0052	!     by DIGITAL EQUIPMENT CORPORATION.
;	  0053	!
;	  0054	!     DIGITAL assumes no responsibility for the use or reliability
;	  0055	!     of  its  software  on  equipment  which  is  not supplied by
;	  0056	!     DIGITAL.
;	  0057	!
;	  0058	
;	  0059	!++
;	  0060	! Facility: LSG DECnet Network Management
;	  0061	!
;	  0062	! Abstract: This library is used by the modules of the
;	  0063	!           Network Management Layer.
;	  0064	!
;	  0065	! Environment: TOPS10/TOPS20 user mode, MCB RSX task level
;	  0066	!
;	  0067	! Author: Steven M. Jenness, Creation date: 10-Dec-80
;	  0068	!
;	  0069	!--
;	  0070	!<BLF/PAGE>
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page   3
								 3-Jan-1983 01:26:09	DNET61:<MCB.NML>NMLLIB.REQ.1 (3)

;	  0071	
;	  0072	!
;	  0073	! Include files
;	  0074	!
;	  0075	
;	  0076	require 'SYSTYP';                       ! Get system type definition
		SYSTYP -- System type macros			24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page   4
		Feature test tests				 3-Jan-1983 17:30:43	DNET61:<MCB.NML>SYSTYP.R16.1 (5)

; %PRINT:	Building NML for MCB
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page   5
								 3-Jan-1983 01:26:09	DNET61:<MCB.NML>NMLLIB.REQ.1 (3)

;	  0153	
;	  0154	switches list (norequire);		! Suppress XPORT listing
;	  0155	
;	  0156	require 'BLI:XPORT';			! Transportability package
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page   6
								 2-Feb-1984 17:29:53	SNARK:<6.1.NML.BLISS>XPORT.REQ.1 (3)

; %PRINT:				  1
; %PRINT:				  2
; %PRINT:				  3
; %PRINT:				  4
; %PRINT:				  5
; %PRINT:				  6
; %PRINT:				  7
; %PRINT:				  8
; %PRINT:				  9
; %PRINT:				  10
; %PRINT:				  11
; %PRINT:				  [0,0,16,0]   (+%O'0')
; %PRINT:				  [1,0,8,0]   (+%O'2')
; %PRINT:				  [1,8,8,0]   (+%O'3')
; %PRINT:				  [2,0,16,0]   (+%O'4')
; %PRINT:				  3 fullwords
; %PRINT:				  3 fullwords
; %PRINT:				  3 fullwords
; %PRINT:				  [3,0,16,0]   (+%O'6')
; %PRINT:				  [4,0,16,0]   (+%O'10')
; %PRINT:				  5 fullwords
; %PRINT:				  5 fullwords
; %PRINT:				  5 fullwords
; %PRINT:				  [0,0,16,0]   (+%O'0')
; %PRINT:				  [1,0,8,0]   (+%O'2')
; %PRINT:				  [1,8,8,0]   (+%O'3')
; %PRINT:				  [2,0,16,0]   (+%O'4')
; %PRINT:				  3 fullwords
; %PRINT:				  3 fullwords
; %PRINT:				  [3,0,16,0]   (+%O'6')
; %PRINT:				  [4,0,16,0]   (+%O'10')
; %PRINT:				  5 fullwords
; %PRINT:				  5 fullwords
; %PRINT:				  5 fullwords
; %PRINT:				  [0,0,0,1]   (+%O'0')
; %PRINT:				  [2,0,8,0]   (+%O'4')
; %PRINT:				  [2,8,8,0]   (+%O'5')
; %PRINT:				  [3,0,16,0]   (+%O'6')
; %PRINT:				  [4,0,0,1]   (+%O'10')
; %PRINT:				  [6,0,8,0]   (+%O'14')
; %PRINT:				  [6,8,8,0]   (+%O'15')
; %PRINT:				  [7,0,16,0]   (+%O'16')
; %PRINT:				  8 fullwords
; %PRINT:				  [0,0,16,1]   (+%O'0')
; %PRINT:				  [1,0,8,1]   (+%O'2')
; %PRINT:				  [1,8,8,1]   (+%O'3')
; %PRINT:				  [2,0,16,0]   (+%O'4')
; %PRINT:				  [3,0,16,0]   (+%O'6')
; %PRINT:				  [4,0,16,0]   (+%O'10')
; %PRINT:				  [5,0,0,0]   (+%O'12')
; %PRINT:				  [10,0,0,0]   (+%O'24')
; %PRINT:				  [13,0,16,0]   (+%O'32')
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page   7
								 2-Feb-1984 17:29:53	SNARK:<6.1.NML.BLISS>XPORT.REQ.1 (9)

; %PRINT:				  [14,0,16,0]   (+%O'34')
; %PRINT:				  [15,0,8,0]   (+%O'36')
; %PRINT:				  1
; %PRINT:				  2
; %PRINT:				  3
; %PRINT:				  4
; %PRINT:				  5
; %PRINT:				  6
; %PRINT:				  7
; %PRINT:				  [16,0,16,0]   (+%O'40')
; %PRINT:				  [16,0,1,0]   (+%O'40')
; %PRINT:				  [16,1,1,0]   (+%O'40')
; %PRINT:				  [16,2,1,0]   (+%O'40')
; %PRINT:				  [16,3,1,0]   (+%O'40')
; %PRINT:				  [16,4,1,0]   (+%O'40')
; %PRINT:				  [16,5,1,0]   (+%O'40')
; %PRINT:				  [17,0,16,0]   (+%O'42')
; %PRINT:				  [17,0,1,0]   (+%O'42')
; %PRINT:				  [17,1,1,0]   (+%O'42')
; %PRINT:				  [17,2,1,0]   (+%O'42')
; %PRINT:				  [17,3,1,0]   (+%O'42')
; %PRINT:				  [17,4,1,0]   (+%O'42')
; %PRINT:				  [18,0,16,0]   (+%O'44')
; %PRINT:				  [18,0,1,0]   (+%O'44')
; %PRINT:				  [18,1,1,0]   (+%O'44')
; %PRINT:				  [18,2,1,0]   (+%O'44')
; %PRINT:				  [18,3,1,0]   (+%O'44')
; %PRINT:				  [18,4,1,0]   (+%O'44')
; %PRINT:				  [18,5,1,0]   (+%O'44')
; %PRINT:				  [18,6,1,0]   (+%O'44')
; %PRINT:				  [18,7,1,0]   (+%O'44')
; %PRINT:				  [19,0,0,0]   (+%O'46')
; %PRINT:				  [19,0,16,0]   (+%O'46')
; %PRINT:				  [21,0,16,0]   (+%O'52')
; %PRINT:				  [19,0,0,0]   (+%O'46')
; %PRINT:				  [19,0,16,0]   (+%O'46')
; %PRINT:				  [21,0,16,0]   (+%O'52')
; %PRINT:				  [24,0,16,0]   (+%O'60')
; %PRINT:				  [25,0,16,0]   (+%O'62')
; %PRINT:				  [25,0,16,0]   (+%O'62')
; %PRINT:				  [26,0,16,1]   (+%O'64')
; %PRINT:				  [27,0,16,1]   (+%O'66')
; %PRINT:				  [28,0,16,1]   (+%O'70')
; %PRINT:				  [29,0,16,1]   (+%O'72')
; %PRINT:				  [30,0,16,1]   (+%O'74')
; %PRINT:				  [31,0,16,1]   (+%O'76')
; %PRINT:				  [32,0,16,1]   (+%O'100')
; %PRINT:				  [33,0,0,0]   (+%O'102')
; %PRINT:				  [41,0,0,0]   (+%O'122')
; %PRINT:				  [49,0,0,0]   (+%O'142')
; %PRINT:				  [65,0,16,1]   (+%O'202')
; %PRINT:				  [66,0,16,1]   (+%O'204')
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page   8
								 2-Feb-1984 17:29:53	SNARK:<6.1.NML.BLISS>XPORT.REQ.1 (9)

; %PRINT:				  [67,0,16,1]   (+%O'206')
; %PRINT:				  [68,0,16,1]   (+%O'210')
; %PRINT:				  [69,0,16,1]   (+%O'212')
; %PRINT:				  [70,0,16,1]   (+%O'214')
; %PRINT:				  [71,0,16,1]   (+%O'216')
; %PRINT:				  [72,0,16,1]   (+%O'220')
; %PRINT:				  [73,0,16,1]   (+%O'222')
; %PRINT:				  [74,0,16,1]   (+%O'224')
; %PRINT:				  [75,0,16,1]   (+%O'226')
; %PRINT:				  [76,0,16,1]   (+%O'230')
; %PRINT:				  [77,0,16,0]   (+%O'232')
; %PRINT:				  [77,0,16,0]   (+%O'232')
; %PRINT:				  [78,0,16,0]   (+%O'234')
; %PRINT:				  [77,0,16,0]   (+%O'232')
; %PRINT:				  [77,0,16,0]   (+%O'232')
; %PRINT:				  [79,0,16,1]   (+%O'236')
; %PRINT:				  80 fullwords
; %PRINT:				  [0,0,16,0]   (+%O'0')
; %PRINT:				  [0,0,1,0]   (+%O'0')
; %PRINT:				  [0,1,1,0]   (+%O'0')
; %PRINT:				  [0,2,1,0]   (+%O'0')
; %PRINT:				  [0,3,1,0]   (+%O'0')
; %PRINT:				  [0,4,1,0]   (+%O'0')
; %PRINT:				  [0,5,1,0]   (+%O'0')
; %PRINT:				  [0,6,1,0]   (+%O'0')
; %PRINT:				  [0,7,1,0]   (+%O'0')
; %PRINT:				  [0,8,1,0]   (+%O'1')
; %PRINT:				  [0,9,1,0]   (+%O'1')
; %PRINT:				  [0,10,1,0]   (+%O'1')
; %PRINT:				  [1,0,0,0]   (+%O'2')
; %PRINT:				  [1,0,16,0]   (+%O'2')
; %PRINT:				  [3,0,16,0]   (+%O'6')
; %PRINT:				  [4,0,0,0]   (+%O'10')
; %PRINT:				  [4,0,16,0]   (+%O'10')
; %PRINT:				  [6,0,16,0]   (+%O'14')
; %PRINT:				  [7,0,0,0]   (+%O'16')
; %PRINT:				  [7,0,16,0]   (+%O'16')
; %PRINT:				  [9,0,16,0]   (+%O'22')
; %PRINT:				  [10,0,16,0]   (+%O'24')
; %PRINT:				  [11,0,16,0]   (+%O'26')
; %PRINT:				  [12,0,0,0]   (+%O'30')
; %PRINT:				  [12,0,16,0]   (+%O'30')
; %PRINT:				  [14,0,16,0]   (+%O'34')
; %PRINT:				  [15,0,0,0]   (+%O'36')
; %PRINT:				  [15,0,16,0]   (+%O'36')
; %PRINT:				  [17,0,16,0]   (+%O'42')
; %PRINT:				  [18,0,0,0]   (+%O'44')
; %PRINT:				  [18,0,16,0]   (+%O'44')
; %PRINT:				  [20,0,16,0]   (+%O'50')
; %PRINT:				  [21,0,0,0]   (+%O'52')
; %PRINT:				  [21,0,16,0]   (+%O'52')
; %PRINT:				  [23,0,16,0]   (+%O'56')
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page   9
								 2-Feb-1984 17:29:53	SNARK:<6.1.NML.BLISS>XPORT.REQ.1 (11)

; %PRINT:				  [24,0,0,0]   (+%O'60')
; %PRINT:				  [24,0,16,0]   (+%O'60')
; %PRINT:				  [26,0,16,0]   (+%O'64')
; %PRINT:				  27 fullwords
; %PRINT:				  [0,0,16,0]   (+%O'0')
; %PRINT:				  [1,0,16,0]   (+%O'2')
; %PRINT:				  2 fullwords
; %PRINT:				  1
; %PRINT:				  2
; %PRINT:				  [0,0,16,0]   (+%O'0')
; %PRINT:				  [0,0,8,0]   (+%O'0')
; %PRINT:				  [0,8,8,0]   (+%O'1')
; %PRINT:				  [0,0,8,0]   (+%O'0')
; %PRINT:				  [0,0,1,0]   (+%O'0')
; %PRINT:				  [0,1,1,0]   (+%O'0')
; %PRINT:				  [0,2,1,0]   (+%O'0')
; %PRINT:				  [0,8,1,0]   (+%O'1')
; %PRINT:				  [0,9,1,0]   (+%O'1')
; %PRINT:				  [0,10,1,0]   (+%O'1')
; %PRINT:				  [0,11,1,0]   (+%O'1')
; %PRINT:				  [0,12,1,0]   (+%O'1')
; %PRINT:				  [0,13,1,0]   (+%O'1')
; %PRINT:				  [0,14,1,0]   (+%O'1')
; %PRINT:				  [0,8,1,0]   (+%O'1')
; %PRINT:				  [0,9,1,0]   (+%O'1')
; %PRINT:		STR$M_LEFT_JUST	= 1
; %PRINT:		STR$M_RIGHT_JUS	= 2
; %PRINT:		STR$M_CENTER	= 4
; %PRINT:		STR$M_SIGNED	= 256
; %PRINT:		STR$M_UNSIGNED	= 512
; %PRINT:		STR$M_LEADING_Z	= 1024
; %PRINT:		STR$M_LEADING_B	= 2048
; %PRINT:		STR$M_UP_CASE	= 4096
; %PRINT:		STR$M_TRUNCATE	= 8192
; %PRINT:		STR$M_NO_FREE_T	= 16384
; %PRINT:		STR$M_REMAINDER	= 256
; %PRINT:		STR$M_TARGET	= 512
; %PRINT:				  1
; %PRINT:				  2
; %PRINT:				  3
; %PRINT:				  4
; %PRINT:				  5
; %PRINT:				  6
; %PRINT:				  7
; %PRINT:				  1
; %PRINT:				  2
; %PRINT:				  3
; %PRINT:		XPO$_NORMAL	= 1   (%O'1')
; %PRINT:		XPO$_CREATED	= 9   (%O'11')
; %PRINT:		XPO$_INCOMPLETE	= 17   (%O'21')
; %PRINT:		XPO$_NEW_FILE	= 25   (%O'31')
; %PRINT:		XPO$_NEW_PAGE	= 33   (%O'41')
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  10
								 2-Feb-1984 17:29:53	SNARK:<6.1.NML.BLISS>XPORT.REQ.1 (21)

; %PRINT:		XPO$_END_FILE	= 4096   (%O'10000')
; %PRINT:		XPO$_BAD_ADDR	= 8194   (%O'20002')
; %PRINT:		XPO$_BAD_ALIGN	= 8202   (%O'20012')
; %PRINT:		XPO$_BAD_ARGS	= 8210   (%O'20022')
; %PRINT:		XPO$_BAD_CONCAT	= 8218   (%O'20032')
; %PRINT:		XPO$_BAD_DELIM	= 8226   (%O'20042')
; %PRINT:		XPO$_BAD_DESC	= 8234   (%O'20052')
; %PRINT:		XPO$_BAD_DEVICE	= 8242   (%O'20062')
; %PRINT:		XPO$_BAD_DFLT	= 8250   (%O'20072')
; %PRINT:		XPO$_BAD_DIRECT	= 8258   (%O'20102')
; %PRINT:		XPO$_BAD_DTYPE	= 8266   (%O'20112')
; %PRINT:		XPO$_BAD_FORMAT	= 8274   (%O'20122')
; %PRINT:		XPO$_BAD_IO_OPT	= 8282   (%O'20132')
; %PRINT:		XPO$_BAD_LENGTH	= 8290   (%O'20142')
; %PRINT:		XPO$_BAD_NAME	= 8298   (%O'20152')
; %PRINT:		XPO$_BAD_NEW	= 8306   (%O'20162')
; %PRINT:		XPO$_BAD_NODE	= 8314   (%O'20172')
; %PRINT:		XPO$_BAD_ORG	= 8322   (%O'20202')
; %PRINT:		XPO$_BAD_PROMPT	= 8330   (%O'20212')
; %PRINT:		XPO$_BAD_RECORD	= 8338   (%O'20222')
; %PRINT:		XPO$_BAD_REQ	= 8346   (%O'20232')
; %PRINT:		XPO$_BAD_RLTD	= 8354   (%O'20242')
; %PRINT:		XPO$_BAD_RSLT	= 8362   (%O'20252')
; %PRINT:		XPO$_BAD_SPEC	= 8370   (%O'20262')
; %PRINT:		XPO$_BAD_TYPE	= 8378   (%O'20272')
; %PRINT:		XPO$_BAD_VER	= 8386   (%O'20302')
; %PRINT:		XPO$_CHANNEL	= 8394   (%O'20312')
; %PRINT:		XPO$_CLOSED	= 8402   (%O'20322')
; %PRINT:		XPO$_CONFLICT	= 8410   (%O'20332')
; %PRINT:		XPO$_CORRUPTED	= 8418   (%O'20342')
; %PRINT:		XPO$_EXISTS	= 8426   (%O'20352')
; %PRINT:		XPO$_FILE_LOCK	= 8434   (%O'20362')
; %PRINT:		XPO$_FREE_MEM	= 8442   (%O'20372')
; %PRINT:		XPO$_GET_MEM	= 8450   (%O'20402')
; %PRINT:		XPO$_IN_USE	= 8458   (%O'20412')
; %PRINT:		XPO$_IO_BUFFER	= 8466   (%O'20422')
; %PRINT:		XPO$_IO_ERROR	= 8474   (%O'20432')
; %PRINT:		XPO$_MISSING	= 8482   (%O'20442')
; %PRINT:		XPO$_NETWORK	= 8490   (%O'20452')
; %PRINT:		XPO$_NO_ACCESS	= 8498   (%O'20462')
; %PRINT:		XPO$_NO_BACKUP	= 8506   (%O'20472')
; %PRINT:		XPO$_NO_CHANNEL	= 8514   (%O'20502')
; %PRINT:		XPO$_NO_CLOSE	= 8522   (%O'20512')
; %PRINT:		XPO$_NO_CONCAT	= 8530   (%O'20522')
; %PRINT:		XPO$_NO_CREATE	= 8538   (%O'20532')
; %PRINT:		XPO$_NO_DELETE	= 8546   (%O'20542')
; %PRINT:		XPO$_NO_DIRECT	= 8554   (%O'20552')
; %PRINT:		XPO$_NO_FILE	= 8562   (%O'20562')
; %PRINT:		XPO$_NO_MEMORY	= 8570   (%O'20572')
; %PRINT:		XPO$_NO_OPEN	= 8578   (%O'20602')
; %PRINT:		XPO$_NO_READ	= 8586   (%O'20612')
; %PRINT:		XPO$_NO_RENAME	= 8594   (%O'20622')
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  11
								 2-Feb-1984 17:29:53	SNARK:<6.1.NML.BLISS>XPORT.REQ.1 (21)

; %PRINT:		XPO$_NO_SPACE	= 8602   (%O'20632')
; %PRINT:		XPO$_NO_SUBDIR	= 8610   (%O'20642')
; %PRINT:		XPO$_NO_SUPPORT	= 8618   (%O'20652')
; %PRINT:		XPO$_NO_WRITE	= 8626   (%O'20662')
; %PRINT:		XPO$_NOT_CLOSED	= 8634   (%O'20672')
; %PRINT:		XPO$_NOT_EXPIRE	= 8642   (%O'20702')
; %PRINT:		XPO$_NOT_INPUT	= 8650   (%O'20712')
; %PRINT:		XPO$_NOT_ONLINE	= 8658   (%O'20722')
; %PRINT:		XPO$_NOT_OPEN	= 8666   (%O'20732')
; %PRINT:		XPO$_NOT_OUTPUT	= 8674   (%O'20742')
; %PRINT:		XPO$_OPEN	= 8682   (%O'20752')
; %PRINT:		XPO$_PREV_ERROR	= 8690   (%O'20762')
; %PRINT:		XPO$_PRIVILEGED	= 8698   (%O'20772')
; %PRINT:		XPO$_PROTECTED	= 8706   (%O'21002')
; %PRINT:		XPO$_PUT_MSG	= 8714   (%O'21012')
; %PRINT:		XPO$_REC_LOCK	= 8722   (%O'21022')
; %PRINT:		XPO$_RENAME_NEW	= 8730   (%O'21032')
; %PRINT:		XPO$_RENAME_OLD	= 8738   (%O'21042')
; %PRINT:		XPO$_TRUNCATED	= 8746   (%O'21052')
; %PRINT:		XPO$_WILDCARD	= 8754   (%O'21062')
; %PRINT:		XPO$_BAD_ACCT	= 8762   (%O'21072')
; %PRINT:		XPO$_BAD_ATTR	= 8770   (%O'21102')
; %PRINT:		XPO$_BAD_DATA	= 8778   (%O'21112')
; %PRINT:		XPO$_BAD_MEDIA	= 8786   (%O'21122')
; %PRINT:		XPO$_BAD_MEMORY	= 8794   (%O'21132')
; %PRINT:		XPO$_BAD_PROT	= 8802   (%O'21142')
; %PRINT:		XPO$_BAD_PTR	= 8810   (%O'21152')
; %PRINT:		XPO$_BAD_RECNUM	= 8818   (%O'21162')
; %PRINT:		XPO$_BAD_SIZE	= 8826   (%O'21172')
; %PRINT:		XPO$_BAD_TEMP	= 8834   (%O'21202')
; %PRINT:		XPO$_CHAN_USED	= 8842   (%O'21212')
; %PRINT:		XPO$_HOST_ERROR	= 8850   (%O'21222')
; %PRINT:		XPO$_NO_NODE	= 8858   (%O'21232')
; %PRINT:		XPO$_NO_STACK	= 8866   (%O'21242')
; %PRINT:		XPO$_SYS_ERROR	= 8874   (%O'21252')
; %PRINT:		XPO$_BAD_CLASS	= 8882   (%O'21262')
; %PRINT:		XPO$_NO_TEMP	= 8890   (%O'21272')
; %PRINT:		XPO$_FOREGROUND	= 8898   (%O'21302')
; %PRINT:		XPO$_NO_APPEND	= 8906   (%O'21312')
; %PRINT:		XPO$_NO_SEQ	= 8914   (%O'21322')
; %PRINT:		XPO$_BAD_ORDER	= 8922   (%O'21332')
; %PRINT:		XPO$_BAD_SYNTAX	= 8930   (%O'21342')
; %PRINT:		XPO$_BAD_IOB	= 16388   (%O'40004')
; %PRINT:		XPO$_BAD_LOGIC	= 16396   (%O'40014')
; %PRINT:		XPO$_TERMINATE	= 16404   (%O'40024')
; %PRINT:		STR$_END_STRING	= 2049   (%O'4001')
; %PRINT:		STR$_TRUNCATED	= 2057   (%O'4011')
; %PRINT:		STR$_NOT_TEMP	= 2065   (%O'4021')
; %PRINT:		STR$_BAD_CHAR	= 10242   (%O'24002')
; %PRINT:		STR$_BAD_CLASS	= 10250   (%O'24012')
; %PRINT:		STR$_BAD_DESC	= 10258   (%O'24022')
; %PRINT:		STR$_BAD_DTYPE	= 10266   (%O'24032')
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  12
								 2-Feb-1984 17:29:53	SNARK:<6.1.NML.BLISS>XPORT.REQ.1 (21)

; %PRINT:		STR$_BAD_LENGTH	= 10274   (%O'24042')
; %PRINT:		STR$_BAD_MAXLEN	= 10282   (%O'24052')
; %PRINT:		STR$_BAD_PATTRN	= 10290   (%O'24062')
; %PRINT:		STR$_BAD_PTR	= 10298   (%O'24072')
; %PRINT:		STR$_BAD_REQ	= 10306   (%O'24102')
; %PRINT:		STR$_BAD_SOURCE	= 10314   (%O'24112')
; %PRINT:		STR$_BAD_STRNG1	= 10322   (%O'24122')
; %PRINT:		STR$_BAD_STRNG2	= 10330   (%O'24132')
; %PRINT:		STR$_BAD_TARGET	= 10338   (%O'24142')
; %PRINT:		STR$_CONFLICT	= 10346   (%O'24152')
; %PRINT:		STR$_NO_SPACE	= 10354   (%O'24162')
; %PRINT:		STR$_NO_STRING	= 10362   (%O'24172')
; %PRINT:		STR$_NO_SUPPORT	= 10370   (%O'24202')
; %PRINT:		STR$_NO_TEMP	= 10378   (%O'24212')
; %PRINT:		STR$_NULL_STRNG	= 10386   (%O'24222')
; %PRINT:		STR$_OUT_RANGE	= 10394   (%O'24232')
; %PRINT:		STR$_TOO_LONG	= 10402   (%O'24242')
; %PRINT:		STR$_BAD_LOGIC	= 18436   (%O'44004')
; %PRINT:				  1
; %PRINT:				  2
; %PRINT:				  3
; %PRINT:				  4
; %PRINT:				  5
; %PRINT:				  1
; %PRINT:				  2
; %PRINT:				  3
; %PRINT:				  4
; %PRINT:				  5
; %PRINT:				  6
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  13
								 3-Jan-1983 01:26:09	DNET61:<MCB.NML>NMLLIB.REQ.1 (3)

;	  3877	
;	  3878	switches list (require);
;	  3879	
;	  3880	require 'STRLIB';                       ! String processing library
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  14
								 3-Jan-1983 17:30:36	DNET61:<MCB.NML>STRLIB.REQ.1 (1)

;	 R3881	! NET:<VOBA.NML.DEVELOPMENT>STRLIB.REQ.9 18-Feb-82 12:41:09, Edit by VOBA
;	 R3882	!
;	 R3883	! Readability cleanup and copyright update.
;	 R3884	!
;	 R3885	! 14-Nov-81 22:45:18, Edit by GROSSMAN
;	 R3886	!
;	 R3887	! Fix CH$LEN macro so that when the string is longer than the maximum length
;	 R3888	! the maximum length supplied by the user is substituted.
;	 R3889	!
;	 R3890	! NET:<DECNET20-V3P1.NMU.LIBRARY>STRLIB.REQ.3 12-Jun-81 11:59:08, Edit by JENNESS
;	 R3891	!
;	 R3892	! Readability cleanup and copyright update.
;	 R3893	!
		STRLIB -- String Processing Macro Library	24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  15
								 3-Jan-1983 17:30:36	DNET61:<MCB.NML>STRLIB.REQ.1 (2)

;	 R3894	%title 'STRLIB -- String Processing Macro Library'
;	 R3895	
;	 R3896	!                    COPYRIGHT (c) 1980, 1981, 1982
;	 R3897	!                    DIGITAL EQUIPMENT CORPORATION
;	 R3898	!                        Maynard, Massachusetts
;	 R3899	!
;	 R3900	!     This software is furnished under a license and may  be  used
;	 R3901	!     and copied only in accordance with the terms of such license
;	 R3902	!     and with the inclusion of the above copyright notice.   This
;	 R3903	!     software  or any other copies thereof may not be provided or
;	 R3904	!     otherwise made available to any other person.  No  title  to
;	 R3905	!     and ownership of the software is hereby transferred.
;	 R3906	!
;	 R3907	!     The information  in  this  software  is  subject  to  change
;	 R3908	!     without  notice  and should not be construed as a commitment
;	 R3909	!     by DIGITAL EQUIPMENT CORPORATION.
;	 R3910	!
;	 R3911	!     DIGITAL assumes no responsibility for the use or reliability
;	 R3912	!     of  its  software  on  equipment  which  is  not supplied by
;	 R3913	!     DIGITAL.
;	 R3914	!
;	 R3915	
;	 R3916	!++
;	 R3917	! Facility: LSG DECnet Network Management
;	 R3918	!
;	 R3919	! Abstract:
;	 R3920	!
;	 R3921	!	This file contains a set of transportable string handling
;	 R3922	!       macros. These macros are intended to supplement the string
;	 R3923	!       facility of XPORT, not to replace it.
;	 R3924	!
;	 R3925	! Environment:	BLISS-36, BLISS-32, and BLISS-16.
;	 R3926	!
;	 R3927	! Author(s): Steven M. Jenness, Dale C. Gunn
;	 R3928	!
;	 R3929	! Creation date: 23-Oct-80
;	 R3930	!
;	 R3931	!--
		STRLIB -- String Processing Macro Library	24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  16
								 3-Jan-1983 17:30:36	DNET61:<MCB.NML>STRLIB.REQ.1 (3)

;	 R3932	
;	 R3933	!       CH$DEFAULT (N, DEFAULT)
;	 R3934	!
;	 R3935	!           Install the value DEFAULT if the argument N is not given.
;	 R3936	
;	 R3937	
;	 R3938	macro
;	MR3939	     CH$DEFAULT (N, DEFAULT) =
;	 R3940		%if %null (N) %then DEFAULT %else N %fi %;
;	 R3941	
;	 R3942	
;	 R3943	!	CH$LEN (PTR, N)
;	 R3944	!
;	 R3945	!           Interpret PTR as a pointer to a character position
;	 R3946	!           sequence terminated by a null or zero value byte (possibly an
;	 R3947	!           ASCIZ string). Interpret N as an optional integer number of
;	 R3948	!           character sequence positions in the string designated by PTR.
;	 R3949	!           If N is not specified a default value of 200 will be used.
;	 R3950	
;	 R3951	
;	 R3952	macro
;	MR3953	     CH$LEN (PTR, N) =
;	MR3954		(if ch$fail (ch$find_ch (ch$default (N,200), PTR, 0))
;	MR3955	         then ch$default (N, 200)
;	 R3956	         else ch$diff (ch$find_ch (ch$default (N,200), PTR, 0), PTR)) %;
;	 R3957	
;	 R3958	
;	 R3959	!	CH$MIN (PTR, MAX)
;	 R3960	!
;	 R3961	!	    Interpret PTR as a pointer to a character position
;	 R3962	!           sequence terminated by a null or zero value byte, i.e., an
;	 R3963	!           ASCIZ string. Interpret MAX as a value representing the
;	 R3964	!           maximum number of character positions to search. Return
;	 R3965	!           the minimum of MAX or the number of non-null characters in
;	 R3966	!           the string.
;	 R3967	
;	 R3968	
;	 R3969	macro
;	MR3970	     CH$MIN (PTR, MAX) =
;	MR3971	         begin
;	MR3972	         local P;
;	MR3973	
;	MR3974	         if ch$fail (P = ch$find_ch (MAX, PTR, %O'0'))
;	MR3975	         then MAX
;	MR3976	         else ch$diff (.P, PTR)
;	 R3977	         end %;
		STRLIB -- String Processing Macro Library	24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  17
								 3-Jan-1983 17:30:36	DNET61:<MCB.NML>STRLIB.REQ.1 (4)

;	 R3978	
;	 R3979	!	CH$SEQUENCE (N, CS)
;	 R3980	!
;	 R3981	!	    Interpret N and CS as for ch$allocation. Return the vector
;	 R3982	!           structure definition required for storage of such a
;	 R3983	!           character position sequence.
;	 R3984	
;	 R3985	
;	 R3986	macro
;	MR3987	     CH$SEQUENCE (N, CS) =
;	 R3988	         vector [ch$allocation (N, CS)] %;
;	 R3989	
;	 R3990	
;	 R3991	!	CH$ASCIC (STRING, ...)
;	 R3992	!
;	 R3993	!	    Return a pointer to an ASCIC character position sequence
;	 R3994	!           formed by the characters represented by the string-params, 
;	 R3995	!           which are interpreted as for the %string lexical function.
;	 R3996	
;	 R3997	
;	 R3998	macro
;	MR3999	     CH$ASCIC [ ] =
;	 R4000	         ch$ptr (uplit (%string (%char (%charcount (%remaining)), %remaining)), 1) %;
;	 R4001	
;	 R4002	
;	 R4003	!	CH$ASCII (STRING, ...)
;	 R4004	!
;	 R4005	!	    Return a pointer to an ASCII character position sequence
;	 R4006	!           formed by the characters represented by the string-params, 
;	 R4007	!           which are interpreted as for the %string lexical function.
;	 R4008	
;	 R4009	
;	 R4010	macro
;	MR4011	     CH$ASCII [ ] =
;	 R4012	         ch$ptr (uplit (%ascii %string (%remaining))) %;
;	 R4013	
;	 R4014	
;	 R4015	!	CH$ASCIZ (STRING, ...)
;	 R4016	!
;	 R4017	!	    Return a pointer to an ASCIZ character position sequence
;	 R4018	!           formed by the characters represented by the string-params, 
;	 R4019	!           which are interpreted as for the %string lexical function.
;	 R4020	
;	 R4021	
;	 R4022	macro
;	MR4023	     CH$ASCIZ [ ] =
;	 R4024		 ch$ptr (uplit (%asciz %string (%remaining))) %;
		STRLIB -- String Processing Macro Library	24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  18
								 3-Jan-1983 17:30:36	DNET61:<MCB.NML>STRLIB.REQ.1 (5)

;	 R4025	
;	 R4026	!	CH$MOVSTRING (ADDRESS, STRING, ...)
;	 R4027	!
;	 R4028	!           Interpret ADDRESS as the address of a pointer to a character
;	 R4029	!           position sequence. Interpret STRING as for the %string
;	 R4030	!           lexical function. Move the string formed by the characters
;	 R4031	!           represented by the string-params to the position pointed
;	 R4032	!           to by the pointer contained at ADDRESS. Update the pointer to
;	 R4033	!           point to the next available byte in the character position
;	 R4034	!           sequence.
;	 R4035	
;	 R4036	
;	 R4037	macro
;	MR4038	     CH$MOVSTRING (ADDRESS) [ ] =
;	MR4039	         ADDRESS = ch$move (%charcount (%ascii %string (%remaining)),
;	MR4040	                            CH$ASCII (%ascii %string (%remaining)),
;	 R4041	                            .ADDRESS) %;
;	 R4042	
;	 R4043	
;	 R4044	!	CH$MOVASCIZ (DPTR, SPTR)
;	 R4045	!
;	 R4046	!           Interpret DPTR as the address of the destination pointer
;	 R4047	!           to a character position sequence. Interpret SPTR as the
;	 R4048	!           source pointer to a character position sequence containing
;	 R4049	!           an ASCIZ character sequence. Move the ASCIZ string pointed
;	 R4050	!           to by SPTR (the source string) to the position pointed to
;	 R4051	!           by DPTR (the destination string). Update DPTR to point to
;	 R4052	!           the next available byte in the destination character position
;	 R4053	!           sequence.
;	 R4054	
;	 R4055	
;	 R4056	macro
;	MR4057	     CH$MOVASCIZ (DPTR, SPTR) =
;	 R4058		 DPTR = ch$move (CH$LEN (SPTR), SPTR, .DPTR) %;
;	 R4059	
		STRLIB -- String Processing Macro Library	24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  19
								 3-Jan-1983 17:30:36	DNET61:<MCB.NML>STRLIB.REQ.1 (6)

;	 R4060	
;	 R4061	%title ''
;	 R4062	%sbttl ''
;	 R4063	
;	 R4064	!
;	 R4065	! [End of STRLIB.REQ]
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  20
								 3-Jan-1983 01:26:09	DNET61:<MCB.NML>NMLLIB.REQ.1 (3)

;	  4066	
;	  4067	require 'NETLIB';                       ! Protocol message processing library
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  21
								 3-Jan-1983 00:43:54	DNET61:<MCB.NML>NETLIB.REQ.1 (1)

;	 R4068	! NET:<VOBA.NML.DEVELOPMENT>NETLIB.REQ.5 18-Feb-82 14:46:45, Edit by VOBA
;	 R4069	!
;	 R4070	! Clean up code and update copyright date.
;	 R4071	!
;	 R4072	! NET:<DECNET20-V3P1.BASELEVEL-2.SOURCES>NETLIB.REQ.20 25-Nov-81 11:10:08, Edit by WEBBER
;	 R4073	!
;	 R4074	! Fix dot bug in %ASLI32.
;	 R4075	!
;	 R4076	! NET:<DECNET20-V3P1.BASELEVEL-2.MCB>NETLIB.REQ.13 19-Oct-81 11:04:48, Edit by PECKHAM
;	 R4077	!
;	 R4078	! Add %ADD32 routine.
;	 R4079	! Alter %CMP routines again to furthur optimize.
;	 R4080	!
;	 R4081	! NET:<DECNET20-V3P1.BASELEVEL-2.MCB>NETLIB.REQ.4 13-Oct-81 21:12:50, Edit by PECKHAM
;	 R4082	!
;	 R4083	! Add %ASLI32 routine to aid NMLDTL in shifting a 32 bit number.
;	 R4084	! Optimize other 32 bit macros.
;	 R4085	!
;	 R4086	! NET:<DECNET20-V3P1.BASELEVEL-2.MCB>NETLIB.REQ.2  9-Oct-81 14:54:17, Edit by GUNN
;	 R4087	!
;	 R4088	! Change second equal sign in assignment statement in %SUB32 macro
;	 R4089	! to a minus sign.
;	 R4090	!
;	 R4091	! NET:<DECNET20-V3P1.BASELEVEL-2.SOURCES>NETLIB.REQ.13  8-Oct-81 07:05:38, Edit by PECKHAM
;	 R4092	!
;	 R4093	! Correct data gathering bug in macro GETN.
;	 R4094	!
;	 R4095	! NET:<DECNET20-V3P1.BASELEVEL-2.MCB>NETLIB.REQ.7 18-Aug-81 18:45:37, Edit by GUNN
;	 R4096	!
;	 R4097	! Fix all macros which declare local names to use convention of 
;	 R4098	! $$MACRO-NAME_local-name to avoid name duplication and collision
;	 R4099	! with names of caller.
;	 R4100	! Make all 32 bit macros consistent among themselves and with CH$ functions
;	 R4101	! with regard to direction of data movement.  $MACRO ( source , destination ).
;	 R4102	!
;	 R4103	! NET:<DECNET20-V3P1.BASELEVEL-2.MCB>NETLIB.REQ.2 31-Jul-81 16:39:00, Edit by GUNN
;	 R4104	!
;	 R4105	! Fix %MOV32 macro. Bind under $MCB conditional not terminated by 
;	 R4106	! semicolon.
;	 R4107	!
;	 R4108	! NET:<DECNET20-V3P1.NMU>NETLIB.REQ.3 14-Jul-81 20:02:19, Edit by GUNN
;	 R4109	!
;	 R4110	! Fix bug in 32 bit definitions made in last edit.
;	 R4111	!
;	 R4112	! NET:<DECNET20-V3P1.NMU>NETLIB.REQ.2  6-Jul-81 09:56:28, Edit by JENNESS
;	 R4113	!
;	 R4114	! Fix 32 bit macros to work on 16 bit machines.
;	 R4115	!
;	 R4116	! NET:<DECNET20-V3P1.NMU>NETLIB.REQ.14 12-Jun-81 11:58:08, Edit by JENNESS
;	 R4117	!
;	 R4118	! Comment macros and general readability cleanup.
;	 R4119	!
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  22
								 3-Jan-1983 00:43:54	DNET61:<MCB.NML>NETLIB.REQ.1 (1)

;	 R4120	! <DECNET20-V3P1.BASELEVEL-2.MCB>NETLIB.REQ.4 11-Jun-81 15:51:13, Edit by SROBINSON
;	 R4121	!
;	 R4122	! Change various macros to make $MCB environments more efficient
;	 R4123	!
;	 R4124	! NET:<DECNET20-V3P1.NMU>NETLIB.REQ.2 28-May-81 12:56:58, Edit by JENNESS
;	 R4125	!
;	 R4126	! Add 32 bit fetch/store macros.  Also a set of macros that facilitates
;	 R4127	! 32 bit manipulations has been added.
;	 R4128	!
;	 R4129	! NET:<DECNET20-V3P1.NML>NETLIB.REQ.2 20-Feb-81 10:16:42, Edit by GUNN
;	 R4130	!
;	 R4131	! Add definition of GETW_NA.
;	 R4132	!
;	 R4133	! NET:<DECNET20-V3P1.BASELEVEL-2.SOURCES>NETLIB.REQ.5 11-Feb-81 15:41:47, Edit by GUNN
;	 R4134	!
;	 R4135	! Add field definition and macro, $SIGNED_BYTE_VALUE, for a signed 8 bit value.
;	 R4136	!
		NETLIB -- Procotol Message Processing Macro Lib 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  23
								 3-Jan-1983 00:43:54	DNET61:<MCB.NML>NETLIB.REQ.1 (2)

;	 R4137	%title 'NETLIB -- Procotol Message Processing Macro Library'
;	 R4138	
;	 R4139	!                    COPYRIGHT (c) 1980, 1981, 1982
;	 R4140	!                    DIGITAL EQUIPMENT CORPORATION
;	 R4141	!                        Maynard, Massachusetts
;	 R4142	!
;	 R4143	!     This software is furnished under a license and may  be  used
;	 R4144	!     and copied only in accordance with the terms of such license
;	 R4145	!     and with the inclusion of the above copyright notice.   This
;	 R4146	!     software  or any other copies thereof may not be provided or
;	 R4147	!     otherwise made available to any other person.  No  title  to
;	 R4148	!     and ownership of the software is hereby transferred.
;	 R4149	!
;	 R4150	!     The information  in  this  software  is  subject  to  change
;	 R4151	!     without  notice  and should not be construed as a commitment
;	 R4152	!     by DIGITAL EQUIPMENT CORPORATION.
;	 R4153	!
;	 R4154	!     DIGITAL assumes no responsibility for the use or reliability
;	 R4155	!     of  its  software  on  equipment  which  is  not supplied by
;	 R4156	!     DIGITAL.
;	 R4157	!
;	 R4158	
;	 R4159	!++
;	 R4160	! Facility: LSG DECnet Network Management
;	 R4161	!
;	 R4162	! Abstract:
;	 R4163	!
;	 R4164	!	This file contains macros that facilitate handling
;	 R4165	!	of 8 bit bytes protocol messages.
;	 R4166	!
;	 R4167	! Environment:	BLISS-36, BLISS-32, and BLISS-16.
;	 R4168	!
;	 R4169	! Author(s): Steven M. Jenness, Dale C. Gunn
;	 R4170	!
;	 R4171	! Creation date: 23-Oct-80
;	 R4172	!
;	 R4173	!--
		NETLIB -- Procotol Message Processing Macro Lib 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  24
								 3-Jan-1983 00:43:54	DNET61:<MCB.NML>NETLIB.REQ.1 (3)

;	 R4174	! DECnet message processing macros
;	 R4175	!
;	 R4176	!	N.B - These macros are here for convenience at this time only
;	 R4177	!             and are specific to BLISS-36. 
;	 R4178	!
;	 R4179	!             THEY ARE NOT TRANSPORTABLE! In time they will have to 
;	 R4180	!             be moved to a machine specific library.
		NETLIB -- Procotol Message Processing Macro Lib 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  25
		Write Macros					 3-Jan-1983 00:43:54	DNET61:<MCB.NML>NETLIB.REQ.1 (4)

;	 R4181	%sbttl 'Write Macros'
;	 R4182	
;	 R4183	! Macro - PUTB
;	 R4184	!
;	 R4185	! Function - To write a 8 bit value to the next position in
;	 R4186	!            a DECnet byte string.  The pointer to the byte
;	 R4187	!            string is updated to point to the next free position.
;	 R4188	!
;	 R4189	! Parameters -
;	 R4190	!
;	 R4191	!    VALUE      8 Bit value to write
;	 R4192	!    POINTER    Address of byte string pointer
;	 R4193	
;	 R4194	
;	 R4195	macro
;	MR4196	     PUTB (VALUE, POINTER) =
;	 R4197	         ch$wchar_a (VALUE, POINTER) %;
;	 R4198	
;	 R4199	
;	 R4200	! Macro - PUTW
;	 R4201	!
;	 R4202	! Function - To write a 16 bit value as the next two bytes in
;	 R4203	!            a DECnet byte string.  The pointer to the byte
;	 R4204	!            string is updated to point to the next free position.
;	 R4205	!
;	 R4206	! Parameters -
;	 R4207	!
;	 R4208	!    VALUE      Address of 16 bit value to write
;	 R4209	!    POINTER    Address of byte string pointer
;	 R4210	
;	 R4211	
;	 R4212	macro
;	MR4213	     PUTW (VALUE, POINTER) = 
;	MR4214	         begin
;	MR4215	         ch$wchar_a (.VALUE<0,8,0>, POINTER);
;	MR4216	         ch$wchar_a (.VALUE<8,8,0>, POINTER);
;	 R4217	         end %;
;	 R4218	
;	 R4219	
;	 R4220	! Macro - EX_PUTW
;	 R4221	!
;	 R4222	! Function - To write the given value to a byte string.  The
;	 R4223	!            value is written as the smallest number of bytes
;	 R4224	!            possible (1 byte for 8 bits, 2 bytes for 16 bits).
;	 R4225	!
;	 R4226	! Parameters -
;	 R4227	!
;	 R4228	!    VALUE       Value to write (8 or 16 bits)
;	 R4229	!    POINTER     Address of byte string pointer
;	 R4230	
;	 R4231	
;	 R4232	macro
		NETLIB -- Procotol Message Processing Macro Lib 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  26
		Write Macros					 3-Jan-1983 00:43:54	DNET61:<MCB.NML>NETLIB.REQ.1 (4)

;	MR4233	     EX_PUTW (VALUE, POINTER) =
;	MR4234	         if VALUE gtr 128
;	MR4235	         then begin
;	MR4236	              local $$EX_PUTW_X;
;	MR4237	
;	MR4238	              $$EX_PUTW_X = VALUE;
;	MR4239	              ch$wchar_a (.$$EX_PUTW_X<0,7>+128, POINTER);
;	MR4240	              ch$wchar_a (.$$EX_PUTW_X<7,7>, POINTER);
;	MR4241	              end
;	 R4242	         else ch$wchar_a (VALUE, POINTER); %;
		NETLIB -- Procotol Message Processing Macro Lib 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  27
		Read Macros					 3-Jan-1983 00:43:54	DNET61:<MCB.NML>NETLIB.REQ.1 (5)

;	 R4243	%sbttl 'Read Macros'
;	 R4244	
;	 R4245	! Macro - GETB
;	 R4246	!
;	 R4247	! Function - To get the next 8 bit value from a byte string.
;	 R4248	!            The byte pointer is updated to point to the next
;	 R4249	!	     byte to read.
;	 R4250	!
;	 R4251	! Parameters -
;	 R4252	!
;	 R4253	!    POINTER	Address of byte string pointer
;	 R4254	!
;	 R4255	! Value returned -
;	 R4256	!
;	 R4257	!    The next byte in the string.
;	 R4258	
;	 R4259	
;	 R4260	macro
;	MR4261	     GETB (POINTER) =
;	MR4262	         begin
;	MR4263	         ch$rchar_a (POINTER)
;	 R4264	         end %;
;	 R4265	
;	 R4266	
;	 R4267	! Macro - GETW
;	 R4268	!
;	 R4269	! Function - To get the next two bytes in a byte string and make
;	 R4270	!	     a 16 bit value from them.   The byte pointer is updated
;	 R4271	!	     to point to the next byte in the string.
;	 R4272	!
;	 R4273	! Parameters -
;	 R4274	!
;	 R4275	!    POINTER    Address of byte string pointer
;	 R4276	!
;	 R4277	! Value returned -
;	 R4278	!
;	 R4279	!    The value constructed from the next two bytes in the string.
;	 R4280	!    The first byte is the lower order 8 bits and the second byte
;	 R4281	!    is the high order 8 bits.
;	 R4282	
;	 R4283	
;	 R4284	macro
;	MR4285	     GETW (POINTER) =
;	MR4286	         begin
;	MR4287	         %if $MCB
;	MR4288	         %then stacklocal
;	MR4289	         %else local %fi $$GETB_X;
;	MR4290	
;	MR4291	         $$GETB_X<0,8,0> = ch$rchar_a (POINTER);
;	MR4292	         $$GETB_X<8,8,0> = ch$rchar_a (POINTER);
;	MR4293	         .$$GETB_X<0,16,0>
;	 R4294	         end %;
		NETLIB -- Procotol Message Processing Macro Lib 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  28
		Read Macros					 3-Jan-1983 00:43:54	DNET61:<MCB.NML>NETLIB.REQ.1 (5)

;	 R4295	
;	 R4296	
;	 R4297	! Macro - GETW_NA
;	 R4298	!
;	 R4299	! Function - To get the next two bytes in a byte string and make
;	 R4300	!	     a 16 bit value from them.   The byte pointer is not
;	 R4301	!            updated.
;	 R4302	!
;	 R4303	! Parameters -
;	 R4304	!
;	 R4305	!    POINTER	Byte string pointer
;	 R4306	!
;	 R4307	! Value returned -
;	 R4308	!
;	 R4309	!    The value constructed from the next two bytes in the string.
;	 R4310	!    The first byte is the lower order 8 bits and the second byte
;	 R4311	!    is the high order 8 bits.
;	 R4312	
;	 R4313	macro
;	MR4314	     GETW_NA (POINTER) =
;	MR4315	         begin
;	MR4316	         %if $MCB
;	MR4317	         %then stacklocal
;	MR4318	         %else local %fi $$GETW_NA_X;
;	MR4319	
;	MR4320	         $$GETW_NA_X<0,8,0> = ch$rchar (POINTER);
;	MR4321	         $$GETW_NA_X<8,8,0> = ch$rchar (ch$plus (POINTER,1));
;	MR4322	         .$$GETW_NA_X<0,16,0> 
;	 R4323	         end %;
;	 R4324	
;	 R4325	
;	 R4326	! Macro - GETN
;	 R4327	!
;	 R4328	! Function - To get then next "N" bytes and construct a value
;	 R4329	!	     from them.   The bytes read are in ascending
;	 R4330	!	     significance (i.e. lowest order byte is the first
;	 R4331	!	     byte read).
;	 R4332	!
;	 R4333	! Parameters -
;	 R4334	!
;	 R4335	!    POINTER	Address of byte string pointer
;	 R4336	!    COUNT	Number of bytes to read
;	 R4337	!
;	 R4338	! Value returned -
;	 R4339	!
;	 R4340	!    The value constructed from the sequence of bytes read.
;	 R4341	!
;	 R4342	
;	 R4343	macro
;	MR4344	     GETN (POINTER, COUNT) =
;	MR4345	         begin
;	MR4346	         local $$GETN_X;
		NETLIB -- Procotol Message Processing Macro Lib 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  29
		Read Macros					 3-Jan-1983 00:43:54	DNET61:<MCB.NML>NETLIB.REQ.1 (5)

;	MR4347	
;	MR4348	         $$GETN_X = ch$rchar_a (POINTER);
;	MR4349	         incr $$GETN_P from 8 to ((COUNT-1)*8) by 8
;	MR4350	         do $$GETN_X = .$$GETN_X + ch$rchar_a (POINTER)^.$$GETN_P;
;	MR4351	         .$$GETN_X
;	 R4352	         end %;
		NETLIB -- Procotol Message Processing Macro Lib 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  30
		String Length Checking Macros			 3-Jan-1983 00:43:54	DNET61:<MCB.NML>NETLIB.REQ.1 (6)

;	 R4353	%sbttl 'String Length Checking Macros'
;	 R4354	
;	 R4355	! Macro - NEXTB
;	 R4356	!
;	 R4357	! Function - This macro checks a string length to see if it
;	 R4358	!            is long enough to contain a byte field.  If it does
;	 R4359	!            it increments the string count past the next byte.
;	 R4360	!
;	 R4361	! Parameters -
;	 R4362	!
;	 R4363	!    MAXIMUM    Maximum number of bytes in the string
;	 R4364	!    COUNT      Number of bytes already used in the string
;	 R4365	!
;	 R4366	! Returns -
;	 R4367	!
;	 R4368	!    $true   String contains one more byte
;	 R4369	!    $false  End of string reached
;	 R4370	!
;	 R4371	! Side effects -
;	 R4372	!
;	 R4373	!    The value in COUNT is updated to point beyond the next byte.
;	 R4374	
;	 R4375	
;	 R4376	macro
;	MR4377	     NEXTB (MAXIMUM, COUNT) =
;	MR4378	         begin
;	MR4379	         local $$NEXTB_TEMP;
;	MR4380	
;	MR4381	         if MAXIMUM geq ($$NEXTB_TEMP = .COUNT + 1)
;	MR4382	         then begin
;	MR4383	              COUNT = .$$NEXTB_TEMP;
;	MR4384	              (1 eql 1)
;	MR4385	              end
;	MR4386	         else (1 eql 0)
;	 R4387	         end %;
;	 R4388	
;	 R4389	
;	 R4390	! Macro - NEXTW
;	 R4391	!
;	 R4392	! Function - This macro checks a string length to see if it
;	 R4393	!            is long enough to contain a word (2 byte) field.
;	 R4394	!            If it does it increments the string count past
;	 R4395	!            the next word.
;	 R4396	!
;	 R4397	! Parameters -
;	 R4398	!
;	 R4399	!    MAXIMUM    Maximum number of bytes in the string
;	 R4400	!    COUNT      Number of bytes already used in the string
;	 R4401	!
;	 R4402	! Returns -
;	 R4403	!
;	 R4404	!    $true   String contains one more word
		NETLIB -- Procotol Message Processing Macro Lib 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  31
		String Length Checking Macros			 3-Jan-1983 00:43:54	DNET61:<MCB.NML>NETLIB.REQ.1 (6)

;	 R4405	!    $false  End of string reached
;	 R4406	!
;	 R4407	! Side effects -
;	 R4408	!
;	 R4409	!    The value in COUNT is updated to point beyond the next word.
;	 R4410	
;	 R4411	
;	 R4412	macro
;	MR4413	     NEXTW (MAXIMUM, COUNT) =
;	MR4414	         begin
;	MR4415	         local $$NEXTW_TEMP;
;	MR4416	
;	MR4417	         if MAXIMUM geq ($$NEXTW_TEMP = .COUNT + 2)
;	MR4418	         then begin
;	MR4419	              COUNT = .$$NEXTW_TEMP;
;	MR4420	              (1 eql 1)
;	MR4421	              end
;	MR4422	         else (1 eql 0)
;	 R4423	         end %;
;	 R4424	
;	 R4425	
;	 R4426	! Macro - NEXTN
;	 R4427	!
;	 R4428	! Function - This macro checks a string length to see if it
;	 R4429	!            is long enough to contain a field of COUNT bytes.
;	 R4430	!            If it does it increments the string count past
;	 R4431	!            COUNT bytes.
;	 R4432	!
;	 R4433	! Parameters -
;	 R4434	!
;	 R4435	!    MAXIMUM    Maximum number of bytes in the string
;	 R4436	!    USED       Number of bytes already used in the string
;	 R4437	!    COUNT      Number of bytes in field
;	 R4438	!
;	 R4439	! Returns -
;	 R4440	!
;	 R4441	!    $true   String contains COUNT bytes
;	 R4442	!    $false  End of string reached
;	 R4443	!
;	 R4444	! Side effects -
;	 R4445	!
;	 R4446	!    The value in USED is updated to point beyond COUNT bytes.
;	 R4447	
;	 R4448	
;	 R4449	macro
;	MR4450	     NEXTN (MAXIMUM, USED, COUNT) =
;	MR4451	         begin
;	MR4452	         local $$NEXTN_TEMP;
;	MR4453	
;	MR4454	         if MAXIMUM geq ($$NEXTN_TEMP = .USED + COUNT)
;	MR4455	         then begin
;	MR4456	              USED = .$$NEXTN_TEMP;
		NETLIB -- Procotol Message Processing Macro Lib 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  32
		String Length Checking Macros			 3-Jan-1983 00:43:54	DNET61:<MCB.NML>NETLIB.REQ.1 (6)

;	MR4457	              (1 eql 1)
;	MR4458	              end
;	MR4459	         else (1 eql 0)
;	 R4460	         end %;
;	 R4461	
;	 R4462	
;	 R4463	! Macro - NEXTF
;	 R4464	!
;	 R4465	! Function - This macro checks a string length to see if it
;	 R4466	!            is long enough to contain a counted field.
;	 R4467	!            If it does it sets the count past the end of
;	 R4468	!            of the field.
;	 R4469	!
;	 R4470	! Parameters -
;	 R4471	!
;	 R4472	!    MAXIMUM    Maximum number of bytes in the string
;	 R4473	!    COUNT      Number of bytes already used in the string
;	 R4474	!    POINTER    Pointer into string being checked
;	 R4475	!
;	 R4476	! Returns -
;	 R4477	!
;	 R4478	!    $true   String contains a counted field
;	 R4479	!    $false  End of string reached
;	 R4480	!
;	 R4481	! Side effects -
;	 R4482	!
;	 R4483	!    The value in COUNT is updated to point beyond the
;	 R4484	!    counted field.
;	 R4485	!
;	 R4486	
;	 R4487	macro
;	MR4488	     NEXTF (MAXIMUM, COUNT, POINTER) =
;	MR4489	         begin
;	MR4490	         local $$NEXTF_TEMP;
;	MR4491	
;	MR4492	         if MAXIMUM geq ($$NEXTF_TEMP = .COUNT + 1)
;	MR4493	         then begin
;	MR4494	              COUNT = .$$NEXTF_TEMP + ch$rchar (POINTER);
;	MR4495	              (1 eql 1)
;	MR4496	              end
;	MR4497	         else (1 eql 0)
;	 R4498	         end %;
		NETLIB -- Procotol Message Processing Macro Lib 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  33
		32 Bit Data Manipulation Macros			 3-Jan-1983 00:43:54	DNET61:<MCB.NML>NETLIB.REQ.1 (7)

;	 R4499	%sbttl '32 Bit Data Manipulation Macros'
;	 R4500	
;	 R4501	! Macro - PUT32
;	 R4502	!
;	 R4503	! Function - This macro writes a 32 bit value as four bytes
;	 R4504	!            (LSB first) to a output string.
;	 R4505	!
;	 R4506	! Parameters -
;	 R4507	!
;	 R4508	!    VALUE      Address of 32 bit value
;	 R4509	!    POINTER    Address of output byte pointer
;	 R4510	
;	 R4511	
;	 R4512	macro
;	MR4513	     PUT32 (VALUE, POINTER) =
;	MR4514	         begin
;	MR4515	         bind $$PUT32_VALUE = VALUE : THIRTY_TWO_BIT;
;	MR4516	
;	MR4517	         PUTB (.$$PUT32_VALUE[$32BYTE1], POINTER);
;	MR4518	         PUTB (.$$PUT32_VALUE[$32BYTE2], POINTER);
;	MR4519	         PUTB (.$$PUT32_VALUE[$32BYTE3], POINTER);
;	MR4520	         PUTB (.$$PUT32_VALUE[$32BYTE4], POINTER);
;	 R4521	         end %;
;	 R4522	
;	 R4523	
;	 R4524	! Macro - GET32
;	 R4525	!
;	 R4526	! Function - This macro reads a 32 bit value as four bytes
;	 R4527	!            (LSB first) from a input string.
;	 R4528	!
;	 R4529	! Parameters -
;	 R4530	!
;	 R4531	!    POINTER    Address of input byte pointer
;	 R4532	!    VALUE      Address of 32 bit value
;	 R4533	
;	 R4534	
;	 R4535	macro
;	MR4536	     GET32 (POINTER, VALUE) =
;	MR4537	         begin
;	MR4538	         bind $$GET32_VALUE = VALUE : THIRTY_TWO_BIT;
;	MR4539	
;	MR4540	         %if $TOPS10 or $TOPS20
;	MR4541	         %then $$GET32_VALUE = 0;
;	MR4542	         %fi
;	MR4543	
;	MR4544	         $$GET32_VALUE[$32BYTE1] = GETB (POINTER);
;	MR4545	         $$GET32_VALUE[$32BYTE2] = GETB (POINTER);
;	MR4546	         $$GET32_VALUE[$32BYTE3] = GETB (POINTER);
;	MR4547	         $$GET32_VALUE[$32BYTE4] = GETB (POINTER);
;	 R4548	         end %;
;	 R4549	
;	 R4550	
		NETLIB -- Procotol Message Processing Macro Lib 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  34
		32 Bit Data Manipulation Macros			 3-Jan-1983 00:43:54	DNET61:<MCB.NML>NETLIB.REQ.1 (7)

;	 R4551	! Macro - %MOV32
;	 R4552	!
;	 R4553	! Function - This macro moves a 32 bit value from one 32 bit
;	 R4554	!            storage area to another.
;	 R4555	!
;	 R4556	! Parameters -
;	 R4557	!
;	 R4558	!    SOURCE     Address of 32 bit value to move FROM
;	 R4559	!    TARGET     Address of 32 bit value to move TO
;	 R4560	
;	 R4561	
;	 R4562	macro
;	MR4563	     %MOV32 (SOURCE, TARGET) =
;	MR4564	         begin
;	MR4565	         %if not $MCB
;	MR4566	         %then TARGET = (.SOURCE)<0,32,1>;
;	MR4567	         %else bind $$MOV32_TARGET = TARGET : THIRTY_TWO_BIT,
;	MR4568	                    $$MOV32_SOURCE = SOURCE : THIRTY_TWO_BIT;
;	MR4569	
;	MR4570	               $$MOV32_TARGET[$32WORD1] = .$$MOV32_SOURCE[$32WORD1];
;	MR4571	               $$MOV32_TARGET[$32WORD2] = .$$MOV32_SOURCE[$32WORD2];
;	MR4572	         %fi
;	 R4573	         end %;
;	 R4574	
;	 R4575	
;	 R4576	! Macro - %MOVT32
;	 R4577	!
;	 R4578	! Function - This macro moves a fullword value in a BLISS variable
;	 R4579	!            to a 32 bit value storage area.
;	 R4580	!            The source value is restricted to the machine word
;	 R4581	!            size.
;	 R4582	!
;	 R4583	! Parameters -
;	 R4584	!
;	 R4585	!    SOURCE     Address of fullword value to move FROM
;	 R4586	!    TARGET     Address of 32 bit value to move TO
;	 R4587	
;	 R4588	
;	 R4589	macro
;	MR4590	     %MOVT32 (SOURCE, TARGET) =
;	MR4591	         begin
;	MR4592	         %if not $MCB
;	MR4593	         %then TARGET = .SOURCE;
;	MR4594	         %else bind $$MOVT32_TARGET = TARGET : THIRTY_TWO_BIT;
;	MR4595	
;	MR4596	               $$MOVT32_TARGET[$32WORD1] = .SOURCE;
;	MR4597	               $$MOVT32_TARGET[$32WORD2] = 0;
;	MR4598	         %fi
;	 R4599	         end %;
;	 R4600	
;	 R4601	
;	 R4602	! Macro - %MOVF32
		NETLIB -- Procotol Message Processing Macro Lib 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  35
		32 Bit Data Manipulation Macros			 3-Jan-1983 00:43:54	DNET61:<MCB.NML>NETLIB.REQ.1 (7)

;	 R4603	!
;	 R4604	! Function - This macro moves a 32 bit value from a 32 bit storage
;	 R4605	!            area to a BLISS variable as a fullword value.
;	 R4606	!            The destination value is truncated to the machine word
;	 R4607	!            size.
;	 R4608	!
;	 R4609	! Parameters -
;	 R4610	!
;	 R4611	!    SOURCE     Address of 32 bit value to move FROM
;	 R4612	!    TARGET     Address of fullword value to move TO
;	 R4613	
;	 R4614	
;	 R4615	macro
;	MR4616	     %MOVF32 (SOURCE, TARGET) =
;	MR4617	         begin
;	MR4618	         %if not $MCB
;	MR4619	         %then TARGET = (.SOURCE)<0,32>;
;	MR4620	         %else bind $$MOVF32_SOURCE = SOURCE : THIRTY_TWO_BIT;
;	MR4621	
;	MR4622	               TARGET = .$$MOVF32_SOURCE[$32WORD1];
;	MR4623	         %fi
;	 R4624	         end %;
;	 R4625	
;	 R4626	
;	 R4627	! Macro - %MOVI32
;	 R4628	!
;	 R4629	! Function - This macro moves an immediate BLISS fullword value
;	 R4630	!            to a 32 bit value storage area.
;	 R4631	!
;	 R4632	! Parameters -
;	 R4633	!
;	 R4634	!    VALUE      Fullword value to move FROM
;	 R4635	!    TARGET     Address of 32 bit value to move TO
;	 R4636	
;	 R4637	
;	 R4638	macro
;	MR4639	     %MOVI32 (VALUE, TARGET) =
;	MR4640	         begin
;	MR4641	         %if not $MCB
;	MR4642	         %then TARGET = VALUE;
;	MR4643	         %else bind $$MOVI32_TARGET = TARGET : THIRTY_TWO_BIT;
;	MR4644	
;	MR4645	               $$MOVI32_TARGET[$32WORD1] = VALUE;
;	MR4646	               $$MOVI32_TARGET[$32WORD2] = 0;
;	MR4647	         %fi
;	 R4648	         end %;
;	 R4649	
;	 R4650	
;	 R4651	! Macro - %ADD32
;	 R4652	!
;	 R4653	! Function - This macro adds one 32 bit value to another
;	 R4654	!            (VALUE1 + VALUE2) and stores the result in the
		NETLIB -- Procotol Message Processing Macro Lib 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  36
		32 Bit Data Manipulation Macros			 3-Jan-1983 00:43:54	DNET61:<MCB.NML>NETLIB.REQ.1 (7)

;	 R4655	!            second value.
;	 R4656	!
;	 R4657	! Parameters -
;	 R4658	!
;	 R4659	!    VALUE1     Address of first 32 bit value
;	 R4660	!    VALUE2     Address of second 32 bit value
;	 R4661	
;	 R4662	
;	 R4663	macro
;	MR4664	     %ADD32 (VALUE1, VALUE2) =
;	MR4665	         begin
;	MR4666	         %if not $MCB
;	MR4667	         %then VALUE2 = (.VALUE2)<0,32> + (.VALUE1)<0,32>;
;	MR4668	         %else linkage $$ADD32 = jsr (register = 0, register = 1);
;	MR4669	               external routine $ADD32 : $$ADD32 novalue;
;	MR4670	
;	MR4671	               $ADD32 (VALUE1, VALUE2);
;	MR4672	         %fi
;	 R4673	         end %;
;	 R4674	
;	 R4675	
;	 R4676	! Macro - %CMP32
;	 R4677	!
;	 R4678	! Function - This macro compares two 32 bit values using
;	 R4679	!            the specified boolean operation.
;	 R4680	!
;	 R4681	! Parameters -
;	 R4682	!
;	 R4683	!    VALUE1     Address of first 32 bit value
;	 R4684	!    BOOLEAN    Bliss boolean mnemonic
;	 R4685	!    VALUE2     Address of second 32 bit value
;	 R4686	
;	 R4687	
;	 R4688	macro
;	MR4689	     %CMP32 (VALUE1, BOOLEAN, VALUE2) =
;	MR4690	         begin
;	MR4691	         %if not $MCB
;	MR4692	         %then (.VALUE1)<0,32> BOOLEAN (.VALUE2)<0,32>
;	MR4693	         %else stacklocal $$CMP32_CV : THIRTY_TWO_BIT;
;	MR4694	               bind $$CMP32_C = $$CMP32_CV;
;	MR4695	
;	MR4696	               %MOV32 (VALUE1, $$CMP32_C);
;	MR4697	               %SUB32 (VALUE2, $$CMP32_C);
;	MR4698	               %SGN32 ($$CMP32_C) BOOLEAN 0
;	MR4699	         %fi
;	 R4700	         end %;
;	 R4701	
;	 R4702	
;	 R4703	! Macro - %SUB32
;	 R4704	!
;	 R4705	! Function - This macro subtracts one 32 bit value from another
;	 R4706	!            (VALUE2 - VALUE1) and stores the result in the
		NETLIB -- Procotol Message Processing Macro Lib 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  37
		32 Bit Data Manipulation Macros			 3-Jan-1983 00:43:54	DNET61:<MCB.NML>NETLIB.REQ.1 (7)

;	 R4707	!            second value.
;	 R4708	!
;	 R4709	! Parameters -
;	 R4710	!
;	 R4711	!    VALUE1   Address of first 32 bit value
;	 R4712	!    VALUE2   Address of second 32 bit value
;	 R4713	
;	 R4714	
;	 R4715	macro
;	MR4716	     %SUB32 (VALUE1, VALUE2) =
;	MR4717	         begin
;	MR4718	         %if not $MCB
;	MR4719	         %then VALUE2 = (.VALUE2)<0,32> - (.VALUE1)<0,32>;
;	MR4720	         %else linkage $$SUB32 = jsr (register = 0, register = 1);
;	MR4721	               external routine $SUB32 : $$SUB32 novalue;
;	MR4722	
;	MR4723	               $SUB32 (VALUE1, VALUE2);
;	MR4724	         %fi
;	 R4725	         end %;
;	 R4726	
;	 R4727	
;	 R4728	! Macro - %CMPI32
;	 R4729	!
;	 R4730	! Function - This macro compares a 32 bit value against a
;	 R4731	!            fullword value using the specified boolean operation.
;	 R4732	!
;	 R4733	! Parameters -
;	 R4734	!
;	 R4735	!    VALUE      Address of 32 bit value
;	 R4736	!    BOOLEAN    Bliss boolean mnemonic
;	 R4737	!    FULLWORD   Fullword value
;	 R4738	
;	 R4739	
;	 R4740	macro
;	MR4741	     %CMPI32 (VALUE, BOOLEAN, FULLWORD) =
;	MR4742	         begin
;	MR4743	         %if not $MCB
;	MR4744	         %then (.VALUE)<0,32> BOOLEAN FULLWORD
;	MR4745	         %else stacklocal $$CMPI32_CV : THIRTY_TWO_BIT;
;	MR4746	               bind $$CMPI32_C = $$CMPI32_CV;
;	MR4747	
;	MR4748	               %MOVI32 (FULLWORD, $$CMPI32_C);
;	MR4749	               %SUB32 (VALUE, $$CMPI32_C);
;	MR4750	               0 BOOLEAN %SGN32 ($$CMPI32_C)
;	MR4751	         %fi
;	 R4752	         end %;
;	 R4753	
;	 R4754	
;	 R4755	! Macro - %SUBI32
;	 R4756	!
;	 R4757	! Function - This macro subtracts a fullword value from a
;	 R4758	!            32 bit value (32bit - fullword) and stores the
		NETLIB -- Procotol Message Processing Macro Lib 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  38
		32 Bit Data Manipulation Macros			 3-Jan-1983 00:43:54	DNET61:<MCB.NML>NETLIB.REQ.1 (7)

;	 R4759	!            result in the 32 bit location.
;	 R4760	!
;	 R4761	! Parameters -
;	 R4762	!
;	 R4763	!    FULLWORD   Fullword value
;	 R4764	!    VALUE      Address of 32 bit value
;	 R4765	
;	 R4766	
;	 R4767	macro
;	MR4768	     %SUBI32 (FULLWORD, VALUE) =
;	MR4769	         begin
;	MR4770	         %if not $MCB
;	MR4771	         %then VALUE = (.VALUE)<0,32> - FULLWORD;
;	MR4772	         %else local $$SUBI32_C : THIRTY_TWO_BIT;
;	MR4773	
;	MR4774	               %MOVI32 (FULLWORD, $$SUBI32_C);
;	MR4775	               %SUB32 ($$SUBI32_C, VALUE);
;	MR4776	         %fi
;	 R4777	         end %;
;	 R4778	
;	 R4779	
;	 R4780	! Macro - %ADDI32
;	 R4781	!
;	 R4782	! Function - This macro adds a fullword value to a
;	 R4783	!            32 bit value (32bit + fullword) and stores the
;	 R4784	!            result in the 32 bit location.
;	 R4785	!
;	 R4786	! Parameters -
;	 R4787	!
;	 R4788	!    FULLWORD   Fullword value
;	 R4789	!    VALUE      Address of 32 bit value
;	 R4790	
;	 R4791	
;	 R4792	macro
;	MR4793	     %ADDI32 (FULLWORD, VALUE) =
;	MR4794	         begin
;	MR4795	         %if not $MCB
;	MR4796	         %then VALUE = (.VALUE)<0,32> + FULLWORD;
;	MR4797	         %else local $$ADDI32_C : THIRTY_TWO_BIT;
;	MR4798	
;	MR4799	               %MOVI32 (FULLWORD, $$ADDI32_C);
;	MR4800	               %ADD32 ($$ADDI32_C, VALUE);
;	MR4801	         %fi
;	 R4802	         end %;
;	 R4803	
;	 R4804	
;	 R4805	! Macro - %SGN32
;	 R4806	!
;	 R4807	! Function - This macro returns the sign of the given 32 bit value
;	 R4808	!
;	 R4809	! Parameters -
;	 R4810	!
		NETLIB -- Procotol Message Processing Macro Lib 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  39
		32 Bit Data Manipulation Macros			 3-Jan-1983 00:43:54	DNET61:<MCB.NML>NETLIB.REQ.1 (7)

;	 R4811	!    VALUE      Address of 32 bit value
;	 R4812	
;	 R4813	
;	 R4814	macro
;	MR4815	     %SGN32 (VALUE) =
;	MR4816	         begin
;	MR4817	         %if not $MCB
;	MR4818	         %then SIGN (.VALUE<0,32,1>)
;	MR4819	         %else linkage $$SGN32 = jsr (register = 1);
;	MR4820	               external routine $SGN32 : $$SGN32;
;	MR4821	
;	MR4822	               $SGN32 (VALUE)
;	MR4823	         %fi
;	 R4824	         end %;
;	 R4825	
;	 R4826	
;	 R4827	! Macro - %ASLI32
;	 R4828	!
;	 R4829	! Function - This macro shifts a 32 bit value (32bit + fullword) left by
;	 R4830	!            number of bits specified by the immediate value.
;	 R4831	!
;	 R4832	! Parameters -
;	 R4833	!
;	 R4834	!    POSITION  Positive value to shift
;	 R4835	!    VALUE     Address of 32 bit value
;	 R4836	
;	 R4837	
;	 R4838	macro
;	MR4839	     %ASLI32 (POSITION, VALUE) =
;	MR4840	         begin
;	MR4841	         %if not $MCB
;	MR4842	         %then VALUE = .VALUE ^ POSITION;
;	MR4843	         %else bind $$ASLI32_VALUE = VALUE : THIRTY_TWO_BIT;
;	MR4844	
;	MR4845	               decru $$ASL_INDEX from POSITION to 1
;	MR4846	               do begin
;	MR4847	                  builtin ROT;
;	MR4848	
;	MR4849	                  $$ASLI32_VALUE[$32WORD1] = ROT (.$$ASLI32_VALUE[$32WORD1], 1);
;	MR4850	                  $$ASLI32_VALUE[$32WORD2] = ROT (.$$ASLI32_VALUE[$32WORD2], 1);
;	MR4851	                  end;
;	MR4852	         %fi
;	 R4853	         end %;
		NETLIB -- Procotol Message Processing Macro Lib 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  40
		32 Bit Structure Definition			 3-Jan-1983 00:43:54	DNET61:<MCB.NML>NETLIB.REQ.1 (8)

;	 R4854	%sbttl '32 Bit Structure Definition'
;	 R4855	
;	 R4856	! Structure - THIRTY_TWO_BIT
;	 R4857	!
;	 R4858	! Function  - Define the storage and access to a 32 bit value.
;	 R4859	
;	 R4860	
;	LR4861	%if not $MCB
;	UR4862	%then field THIRTY_TWO_BIT_FIELDS =
;	UR4863	          set
;	UR4864	          $32BYTE1 = [0,  0, 8, 0],
;	UR4865	          $32BYTE2 = [0,  8, 8, 0],
;	UR4866	          $32BYTE3 = [0, 16, 8, 0],
;	UR4867	          $32BYTE4 = [0, 24, 8, 0]
;	UR4868	          tes;
;	UR4869	
;	UR4870	       macro
;	UR4871	            THIRTY_TWO_BIT = block [1] field (THIRTY_TWO_BIT_FIELDS) %;
;	UR4872	
;	 R4873	%else field THIRTY_TWO_BIT_FIELDS =
;	 R4874	          set
;	 R4875	          $32BYTE1 = [0,  0,  8, 0],
;	 R4876	          $32BYTE2 = [0,  8,  8, 0],
;	 R4877	          $32BYTE3 = [1,  0,  8, 0],
;	 R4878	          $32BYTE4 = [1,  8,  8, 0],
;	 R4879	          $32WORD1 = [0,  0, 16, 0],
;	 R4880	          $32WORD2 = [1,  0, 16, 0]
;	 R4881	          tes;
;	 R4882	
;	 R4883	      macro
;	 R4884	           THIRTY_TWO_BIT = block [2] field (THIRTY_TWO_BIT_FIELDS) %;
;	 R4885	%fi
;	 R4886		
;	 R4887	
;	 R4888	! Structure - SIGNED_BYTE
;	 R4889	!
;	 R4890	! Function  - Define a signed 8 bit byte value.
;	 R4891	
;	 R4892	
;	 R4893	$field SIGNED_BYTE =
;	 R4894	    set
;	 R4895	    VALUE = [0, 0, 8, 1]                ! Signed eight bit byte
;	 R4896	    tes;
;	 R4897	
;	 R4898	macro
;	MR4899	     $SIGNED_BYTE_VALUE =
;	 R4900	         block [1] field (SIGNED_BYTE) %;
;	 R4901	
		NETLIB -- Procotol Message Processing Macro Lib 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  41
		32 Bit Structure Definition			 3-Jan-1983 00:43:54	DNET61:<MCB.NML>NETLIB.REQ.1 (9)

;	 R4902	
;	 R4903	%title ''
;	 R4904	%sbttl ''
;	 R4905	
;	 R4906	!
;	 R4907	! [End of NETLIB.REQ]
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  42
								 3-Jan-1983 00:43:54	DNET61:<MCB.NML>NETLIB.REQ.1 (10)

;	 R4908	
;	 R4909	! Local Modes:
;	 R4910	! Mode:BLISS
;	 R4911	! Auto Save Mode:2
;	 R4912	! Comment Column:40
;	 R4913	! Comment Rounding:+1
;	 R4914	! End:
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  43
								 3-Jan-1983 01:26:09	DNET61:<MCB.NML>NMLLIB.REQ.1 (3)

;	  4915	
;	  4916	require 'DEBUG';			! Debugging facility
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  44
								 2-Jan-1983 22:42:10	DNET61:<MCB.NML>DEBUG.REQ.1 (1)

;	 R4917	! NET:<VOBA.NML.DEVELOPMENT>DEBUG.REQ.10 18-Feb-82 15:21:40, Edit by VOBA
;	 R4918	!
;	 R4919	!    Clean up code and update copyright date.
;	 R4920	!
;	 R4921	! NET:<GROSSMAN>DEBUG.REQ.3 19-Jan-82 11:18:03, Edit by GROSSMAN
;	 R4922	!
;	 R4923	!    Fix syntax bug in DEBUG_BITS macro. (Missing comma)
;	 R4924	!
;	 R4925	! NET:<BRANDT.DEVELOP>DEBUG.REQ.1  15-Jan-82 17:30:45, Edit by BRANDT
;	 R4926	!
;	 R4927	!    Fix %routine and %global_routine to include a %sbttl line,
;	 R4928	!    thus making it easier to peruse listings.
;	 R4929	!
;	 R4930	! NET:<DECNET20-V3P1.NMU>DEBUG.REQ.8  7-Jul-81 09:40:45, Edit by JENNESS
;	 R4931	!
;	 R4932	!    Fix %routine and %global_routine to suppress generation of
;	 R4933	!    literal containing routine name in MCB version (save the space).
;	 R4934	!
;	 R4935	! NET:<DECNET20-V3P1.NMU>DEBUG.REQ.6  2-Jul-81 19:48:28, Edit by GUNN
;	 R4936	!
;	 R4937	!    Add FORMAT_BUFFER macro to convert the contents of a message
;	 R4938	!    buffer to readable text.
;	 R4939	!
;	 R4940	! NET:<DECNET20-V3P1.NMU>DEBUG.REQ.3  2-Jul-81 09:31:42, Edit by JENNESS
;	 R4941	!
;	 R4942	!    Fix DEBUG_TELL to output the debug flag mnemonic along with
;	 R4943	!    with the feature name.
;	 R4944	!
;	 R4945	! NET:<DECNET20-V3P1.NMU>DEBUG.REQ.2 27-Jun-81 18:28:21, Edit by JENNESS
;	 R4946	!
;	 R4947	!    Add DLW_TRACE debugging flag for DATA LINK WATCHER task.
;	 R4948	!
;	 R4949	! NET:<DECNET20-V3P1.NMU>DEBUG.REQ.5 24-Jun-81 09:30:11, Edit by JENNESS
;	 R4950	!
;	 R4951	!    Add FILE_TRACE debugging flag for NMUFIL routines.
;	 R4952	!    Add PAGE_TRACE debugging flag for NMUPAG routines.
;	 R4953	!
;	 R4954	!NET:<DECNET20-V3P1.NMU>DEBUG.REQ.2 12-Jun-81 13:31:31, Edit by JENNESS
;	 R4955	!
;	 R4956	!    Readability improvements.
;	 R4957	!
;	 R4958	!<DECNET20-V3P1.BASELEVEL-2.MCB>DEBUG.REQ.4 25-May-81 08:35:41, Edit by SROBINSON
;	 R4959	!
;	 R4960	!    Limit Text Generation in $MCB
;	 R4961	!
;	 R4962	!NET:<DECNET20-V3P1.NMU>DEBUG.REQ.7 20-May-81 11:28:48, Edit by JENNESS
;	 R4963	!
;	 R4964	!    Add TRACE_INFO_CL macro.  This appends to output previously generated
;	 R4965	!    by a TRACE_INFO or TRACE_INFO_C macro.
;	 R4966	!
;	 R4967	!NET:<DECNET20-V3P1.NMU>DEBUG.REQ.2  5-May-81 10:45:48, Edit by JENNESS
;	 R4968	!
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  45
								 2-Jan-1983 22:42:10	DNET61:<MCB.NML>DEBUG.REQ.1 (1)

;	 R4969	!    Add TRACE_INFO_C macro.  This prints the same way that TRACE_INFO
;	 R4970	!    does, except that it doesn't included the task and routine names.
;	 R4971	!
;	 R4972	!NET:<DECNET20-V3P1.NMU>DEBUG.REQ.3 28-Apr-81 09:06:48, Edit by JENNESS
;	 R4973	!
;	 R4974	!    Add check to %routine and %global_routine to undeclare %RTN_NAME
;	 R4975	!    only if it was already declared (BLISS has gotten stricter).
;	 R4976	!
		DEBUG -- Debugging Macros And Definitions	24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  46
								 2-Jan-1983 22:42:10	DNET61:<MCB.NML>DEBUG.REQ.1 (2)

;	 R4977	%title 'DEBUG -- Debugging Macros And Definitions'
;	 R4978	
;	 R4979	!                    COPYRIGHT (c) 1980, 1981, 1982
;	 R4980	!                    DIGITAL EQUIPMENT CORPORATION
;	 R4981	!                        Maynard, Massachusetts
;	 R4982	!
;	 R4983	!     This software is furnished under a license and may  be  used
;	 R4984	!     and copied only in accordance with the terms of such license
;	 R4985	!     and with the inclusion of the above copyright notice.   This
;	 R4986	!     software  or any other copies thereof may not be provided or
;	 R4987	!     otherwise made available to any other person.  No  title  to
;	 R4988	!     and ownership of the software is hereby transferred.
;	 R4989	!
;	 R4990	!     The information  in  this  software  is  subject  to  change
;	 R4991	!     without  notice  and should not be construed as a commitment
;	 R4992	!     by DIGITAL EQUIPMENT CORPORATION.
;	 R4993	!
;	 R4994	!     DIGITAL assumes no responsibility for the use or reliability
;	 R4995	!     of  its  software  on  equipment  which  is  not supplied by
;	 R4996	!     DIGITAL.
;	 R4997	!
;	 R4998	
;	 R4999	!++
;	 R5000	! Facility: LSG DECnet Network Management
;	 R5001	!
;	 R5002	! Abstract: This file contains definitions used for conditionalized
;	 R5003	!	    debugging and execution tracing.
;	 R5004	!
;	 R5005	! Environment: Bliss-36, Bliss-32 and Bliss-16.
;	 R5006	!
;	 R5007	! Author: Steven M. Jenness, Creation date: 18-Mar-81
;	 R5008	!
;	 R5009	!--
		DEBUG -- Debugging Macros And Definitions	24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  47
		Debugging Expressions And Feature Names		 2-Jan-1983 22:42:10	DNET61:<MCB.NML>DEBUG.REQ.1 (3)

;	 R5010	%sbttl 'Debugging Expressions And Feature Names'
;	 R5011	
;	 R5012	literal TRACE_BUFFER_LENGTH = 200;	! Length of buffer for TRACE_INFO
;	 R5013	
;	 R5014	
;	 R5015	! macro: %DEBUG
;	 R5016	!
;	 R5017	!		This macro conditionally executes the code given
;	 R5018	!		in the argument list.  There are two stages to
;	 R5019	!		the conditionalization:
;	 R5020	!
;	 R5021	!		(1) Compile time    The code is compiled only if
;	 R5022	!				    the VARIANT compiler switch
;	 R5023	!				    is given with a value of 1.
;	 R5024	!
;	 R5025	!		(2) Run time	    The code is executed only if
;	 R5026	!				    the expression given in the
;	 R5027	!				    BOOLEAN field is true.  If the
;	 R5028	!				    word ALWAYS is given instead
;	 R5029	!				    the code will always be executed
;	 R5030	!				    if (1) above is satisfied.
;	 R5031	!
;	 R5032	!    e.x.    %debug (DEBUG_TRACE, (TRACE_INFO ('Debugging is on')));
;	 R5033	
;	 R5034	
;	 R5035	macro
;	MR5036	     %DEBUG (BOOLEAN, CODE) =
;	MR5037	         %if %variant eql 1
;	MR5038	         %then %if %identical (BOOLEAN, ALWAYS)
;	MR5039	               %then %remove (CODE)
;	MR5040	               %else if BOOLEAN
;	MR5041	                     then CODE
;	MR5042	               %fi
;	 R5043	         %fi %;
;	 R5044	
;	 R5045	
;	 R5046	! macro: DEBUG_FLAG_SET
;	 R5047	!
;	 R5048	!		This macro defines all the conditions that can be
;	 R5049	!		selected at run time for debugging.  (See %debug
;	 R5050	!		example above for keyword usage).  The DB.xxx symbol
;	 R5051	!		is defined as a global symbol so that debugging features
;	 R5052	!		can be easily enabled or disabled from DDT.
;	 R5053	!
;	 R5054	
;	 R5055	macro
;	MR5056	     DEBUG_FLAG_SET =
;	MR5057	         'DEBUG_TRACE',		'DB.TRA',
;	MR5058	         'ROUTINE_TRACE',	'DB.RTN',
;	MR5059	         'LOCAL_GALAXY',	'DB.GLX',
;	MR5060	         'MEMORY_TRACE',	'DB.MEM',
;	MR5061	         'MEMORY_CONSISTENCY',	'DB.MCS',
		DEBUG -- Debugging Macros And Definitions	24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  48
		Debugging Expressions And Feature Names		 2-Jan-1983 22:42:10	DNET61:<MCB.NML>DEBUG.REQ.1 (3)

;	MR5062	         'SCHEDULER_TRACE',	'DB.SKD',
;	MR5063	         'EVENT_TRACE',		'DB.EVT',
;	MR5064	         'NETWORK_TRANSITIONS',	'DB.NET',
;	MR5065	         'NETWORK_TRACE',	'DB.NTT',
;	MR5066	         'NETWORK_DESCRIPTOR',	'DB.DES',
;	MR5067	         'NCP_NICE_VALIDATION',	'DB.NCP',
;	MR5068	         'IPCF_TRACE',		'DB.IPC',
;	MR5069	         'FILE_TRACE',		'DB.FIL',
;	MR5070	         'PAGE_TRACE',          'DB.PAG',
;	MR5071	         'DLW_TRACE',           'DB.DLW',
;	MR5072	         'FILE_DATA_TRACE',     'DB.FDT',
;	MR5073	         'DAP_MESSAGE_TRACE',   'DB.DAP',
;	MR5074	         'CTT_TRACE',		'DB.CTT'
;	 R5075	         %;
		DEBUG -- Debugging Macros And Definitions	24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  49
		Debugging Data Base				 2-Jan-1983 22:42:10	DNET61:<MCB.NML>DEBUG.REQ.1 (4)

;	 R5076	%sbttl 'Debugging Data Base'
;	 R5077	
;	 R5078	! macro: %DEBUG_DATA_BASE
;	 R5079	!
;	 R5080	!		This macro is used in either an external or global
;	 R5081	!		statement to setup the definitions to the debugging
;	 R5082	!		data base.  This data base contains bit flags for
;	 R5083	!		each of the debugging features.
;	 R5084	!
;	 R5085	!    e.x.    external %debug_data_base;
;	 R5086	
;	 R5087	
;	 R5088	macro
;	MR5089	     DEBUG_BIT [NAME, BIT_NAME] =
;	 R5090	         %name (NAME, '_FLAG') = [$bit] %;
;	 R5091	
;	 R5092	$field DEBUG_BITS =
;	 R5093	    set
;	 R5094	    DEBUG_BIT (DEBUG_FLAG_SET)
;	 R5095	    tes;
;	 R5096	
;	 R5097	literal
;	 R5098	    DEBUG_FLAGS_SIZE = $field_set_size;
;	 R5099	
;	 R5100	macro
;	MR5101	     %DEBUG_DATA_BASE = 
;	 R5102	         DEBUG : block [DEBUG_FLAGS_SIZE] field (DEBUG_BITS) %;
;	 R5103	
;	 R5104	
;	 R5105	! macro: %MASTER_DEBUG_DATA_BASE
;	 R5106	!
;	 R5107	!		This macro is used in one place only in a program
;	 R5108	!		to define the static storage needed for debugging.
;	 R5109	!		This includes the bit flag structure (DEBUG) used
;	 R5110	!		for feature tests and the TRACE_BUFFER used by
;	 R5111	!		the TRACE_INFO macro.  Also the global literal bit
;	 R5112	!		values for the debugging features are defined.
;	 R5113	!
;	 R5114	!    e.x.    %master_debug_data_base;
;	 R5115	
;	 R5116	
;	 R5117	macro
;	MR5118	     DEBUG_GLOBALS [NAME, BIT_NAME] =
;	 R5119	         %name (BIT_NAME) = 1 ^ (%fieldexpand (%name (NAME, '_FLAG'), 1)) %;
;	 R5120	
;	 R5121	macro
;	MR5122	     %MASTER_DEBUG_DATA_BASE =
;	MR5123	         global %DEBUG_DATA_BASE;
;	MR5124	         global TRACE_BUFFER : vector [ch$allocation (TRACE_BUFFER_LENGTH)];
;	 R5125	         global literal DEBUG_GLOBALS (DEBUG_FLAG_SET) %;
		DEBUG -- Debugging Macros And Definitions	24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  50
		Debugging Data Accesses And Setup		 2-Jan-1983 22:42:10	DNET61:<MCB.NML>DEBUG.REQ.1 (5)

;	 R5126	%sbttl 'Debugging Data Accesses And Setup'
;	 R5127	
;	 R5128	! macro: FEATURE_NAME
;	 R5129	!
;	 R5130	!		This is a set of macros that are defined with
;	 R5131	!		the same names as given in the DEBUG_FLAG_SET.
;	 R5132	!		When the name is specified in some code it expands
;	 R5133	!		to a 'fetch' of the associated bit in the debugging
;	 R5134	!		data base.
;	 R5135	!
;	 R5136	!    e.x.    %debug (MEMORY_TRACE, (TRACE_INFO ('Tracing memory')));
;	 R5137	!
;	 R5138	!			<or>
;	 R5139	!
;	 R5140	!	     if MEMORY_TRACE then exitloop;
;	 R5141	
;	 R5142	
;	 R5143	macro
;	MR5144	     DEBUG_FLAG [NAME, BIT_NAME] =
;	 R5145	         %name (NAME) = .DEBUG [%name (NAME, '_FLAG')] %quote % %;
;	 R5146	
;	 R5147	macro
;	 R5148	     %unquote DEBUG_FLAG (DEBUG_FLAG_SET);
;	 R5149	
;	 R5150	
;	 R5151	! macro: %DEBUG_SETUP
;	 R5152	!
;	 R5153	!		This macro is called someplace early on in the
;	 R5154	!		initialization of a program (in run time code).
;	 R5155	!		The call to this is preferably in the same module
;	 R5156	!		as the %MASTER_DEBUG_DATA_BASE macro call.  It
;	 R5157	!		does a little hand holding for users who have forgotten
;	 R5158	!		that the value in 135 is no longer being used for
;	 R5159	!		debugging flags.  After the debugging data base is
;	 R5160	!		initialized properly, the features that are enabled
;	 R5161	!		is printed out if DEBUG_TRACE is enabled.
;	 R5162	!
;	 R5163	!    e.x.    %debug_setup;
;	 R5164	
;	 R5165	
;	 R5166	macro
;	MR5167	     DEBUG_TELL [NAME, BIT_NAME] =
;	MR5168	         if %name (NAME)
;	 R5169	         then TASK_INFO (%string ('	(', BIT_NAME, ') ', NAME)) %;
;	 R5170	
;	 R5171	macro
;	MR5172	     %DEBUG_SETUP =
;	MR5173	         %debug (always,
;	MR5174	                (begin
;	MR5175	                 if .%o'135' neq 0
;	MR5176	                 then begin
;	MR5177	                      DEBUG[DEBUG_TRACE_FLAG] = 1;
		DEBUG -- Debugging Macros And Definitions	24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  51
		Debugging Data Accesses And Setup		 2-Jan-1983 22:42:10	DNET61:<MCB.NML>DEBUG.REQ.1 (5)

;	MR5178	                      DEBUG[LOCAL_GALAXY_FLAG] = 1;
;	MR5179	                      end;
;	MR5180	
;	MR5181	                 if .%o'135' gtr 0
;	MR5182	                 then begin
;	MR5183	                      DEBUG[NCP_NICE_VALIDATION_FLAG] = 1;
;	MR5184	                      DEBUG[SCHEDULER_TRACE_FLAG] = 1;
;	MR5185	                      end;
;	MR5186	
;	MR5187	                 %debug (DEBUG_TRACE,
;	MR5188	                        (begin
;	MR5189	                         TASK_INFO ('Debugging enabled for:');
;	MR5190	                         DEBUG_TELL (DEBUG_FLAG_SET);
;	MR5191	                         end));
;	 R5192	                 end)) %;
		DEBUG -- Debugging Macros And Definitions	24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  52
		Trace Message Facilities			 2-Jan-1983 22:42:10	DNET61:<MCB.NML>DEBUG.REQ.1 (6)

;	 R5193	%sbttl 'Trace Message Facilities'
;	 R5194	
;	 R5195	! macro: %MODULE_NAME
;	 R5196	!
;	 R5197	!		This macro declares to the tracing facility
;	 R5198	!		the name of the module that is currently being
;	 R5199	!		called.
;	 R5200	!
;	 R5201	!    e.x.    %module_name ('NMUSKD');
;	 R5202	
;	 R5203	
;	 R5204	macro
;	MR5205	     %MODULE_NAME (NAME) =
;	 R5206	         %debug (always, bind %mod_name = ch$asciz (NAME)) %;
;	 R5207	
;	 R5208	
;	 R5209	! macro: %ROUTINE
;	 R5210	!	 %GLOBAL_ROUTINE
;	 R5211	!
;	 R5212	!		These macros declare to the tracing facility
;	 R5213	!		the name of the routine that is currently being
;	 R5214	!		executed.  The formal parameters may also
;	 R5215	!		specified in the calls to these macros.  Note
;	 R5216	!		that these calls must replace the normal ROUTINE
;	 R5217	!		or GLOBAL ROUTINE declarations.
;	 R5218	!
;	 R5219	!    e.x.    %routine ('NMU$NETWORK_READ', LINK_ID, BUFFER_LENGTH, BUFFER) =
;	 R5220	!
;	 R5221	!			<or>
;	 R5222	!
;	 R5223	!	     %routine ('NMU$MEMORY_RELEASE') (P, AMOUNT) : novalue =
;	 R5224	
;	 R5225	
;	 R5226	macro
;	MR5227	     %ROUTINE (NAME) =
;	MR5228	         %if %declared (%rtn_name)
;	MR5229	         %then undeclare %rtn_name; %fi
;	MR5230	
;	MR5231	         %if not $MCB
;	MR5232	         %then bind %rtn_name = ch$asciz (NAME); %fi
;	MR5233	
;	MR5234	         %sbttl %string (NAME %if not %identical (NAME, %string (%name (NAME)))
;	MR5235	                              %then ,' as ', %name(NAME) %fi)
;	MR5236	         routine %name (NAME)
;	MR5237	
;	MR5238	         %if %length gtr 1
;	 R5239	         %then (%remaining) %fi %;
;	 R5240	
;	 R5241	
;	 R5242	macro
;	MR5243	     %GLOBAL_ROUTINE (NAME) =
;	MR5244	         %if %declared (%rtn_name)
		DEBUG -- Debugging Macros And Definitions	24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  53
		Trace Message Facilities			 2-Jan-1983 22:42:10	DNET61:<MCB.NML>DEBUG.REQ.1 (6)

;	MR5245	         %then undeclare %rtn_name; %fi
;	MR5246	
;	MR5247	         %if not $MCB
;	MR5248	         %then bind %rtn_name = ch$asciz (NAME); %fi
;	MR5249	
;	MR5250	         %sbttl %string (NAME %if not %identical (NAME, %string (%name (NAME)))
;	MR5251	                              %then ,' as ', %name(NAME) %fi)
;	MR5252	
;	MR5253	         global routine %name (NAME)
;	MR5254	
;	MR5255	         %if %length gtr 1
;	 R5256	         %then (%remaining) %fi %;
;	 R5257	
;	 R5258	
;	 R5259	! macro: TRACE_INFO
;	 R5260	!        TRACE_INFO_C
;	 R5261	!        TRACE_INFO_CL
;	 R5262	!
;	 R5263	!		This macro generates a message and sends it to
;	 R5264	!		the controlling terminal.  The message is generated
;	 R5265	!		using the NMU$TEXT processing facility, thus the
;	 R5266	!		message may be parameterized.
;	 R5267	!
;	 R5268	!		The message that results contains the currently running
;	 R5269	!		task's name, the message specified and optionally the
;	 R5270	!		name of the routine the TRACE_INFO was called from.
;	 R5271	!		The routine name output is conditionallized on the
;	 R5272	!		debugging switch ROUTINE_TRACE (DB.RTN).
;	 R5273	!
;	 R5274	!               The TRACE_INFO_C macro works the same as TRACE_INFO
;	 R5275	!               except that it doesn't print the task name and routine
;	 R5276	!               name.  It is used primarily to continue a multiple line
;	 R5277	!               message.
;	 R5278	!
;	 R5279	!               The TRACE_INFO_CL macro appends output to text already
;	 R5280	!		output by a TRACE_INFO or TRACE_INFO_C macro.
;	 R5281	!
;	 R5282	!    e.x.    TRACE_INFO ('This is a dumb message.');
;	 R5283	!
;	 R5284	!		[NML-PROCESSOR]: NMU$FILE_OPEN  This is a dumb message.
;	 R5285	!
;	 R5286	!
;	 R5287	!	     TRACE_INFO ('The number is %D.', .NUMBER);
;	 R5288	!
;	 R5289	!		[NCP]:	NMU$IPCF_FIND	The number is 19.
;	 R5290	
;	 R5291	
;	 R5292	macro
;	MR5293	     TRACE_INFO (PATTERN) =
;	MR5294	         begin
;	MR5295	         external TRACE_BUFFER;
;	MR5296	         external routine SS_MESSAGE, NMU$TEXT;
		DEBUG -- Debugging Macros And Definitions	24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  54
		Trace Message Facilities			 2-Jan-1983 22:42:10	DNET61:<MCB.NML>DEBUG.REQ.1 (6)

;	MR5297	
;	MR5298	         local BUFFER_PTR;
;	MR5299	
;	MR5300	         BUFFER_PTR = ch$ptr (TRACE_BUFFER);
;	MR5301	
;	MR5302	         if ROUTINE_TRACE
;	MR5303	         then $NMU$TEXT (BUFFER_PTR, TRACE_BUFFER_LENGTH,
;	MR5304	                         %string ('%(22L)A ', PATTERN),
;	MR5305	                         %rtn_name
;	MR5306	                         %if %length gtr 1
;	MR5307	                         %then , %remaining %fi)
;	MR5308	         else $NMU$TEXT (BUFFER_PTR, TRACE_BUFFER_LENGTH,
;	MR5309	                         %string (PATTERN)
;	MR5310	                         %if %length gtr 1
;	MR5311	                         %then , %remaining %fi);
;	MR5312	
;	MR5313	         SS_MESSAGE (ch$ptr (TRACE_BUFFER));
;	 R5314	         end %;
;	 R5315	
;	 R5316	
;	 R5317	macro
;	MR5318	     TRACE_INFO_C (PATTERN) =
;	MR5319	         begin
;	MR5320	         external TRACE_BUFFER;
;	MR5321	         external routine SS_CMESSAGE, NMU$TEXT;
;	MR5322	
;	MR5323	         local BUFFER_PTR;
;	MR5324	
;	MR5325	         BUFFER_PTR = ch$ptr (TRACE_BUFFER);
;	MR5326	
;	MR5327	         if ROUTINE_TRACE
;	MR5328	         then $NMU$TEXT (BUFFER_PTR, TRACE_BUFFER_LENGTH,
;	MR5329	                         %string ('%22S ', PATTERN)
;	MR5330	                         %if %length gtr 1
;	MR5331	                         %then , %remaining %fi)
;	MR5332	         else $NMU$TEXT (BUFFER_PTR, TRACE_BUFFER_LENGTH,
;	MR5333	                         PATTERN
;	MR5334	                         %if %length gtr 1
;	MR5335	                         %then , %remaining %fi);
;	MR5336	
;	MR5337	         SS_CMESSAGE (ch$ptr (TRACE_BUFFER));
;	 R5338	         end %;
;	 R5339	
;	 R5340	
;	 R5341	macro
;	MR5342	     TRACE_INFO_CL (PATTERN) =
;	MR5343	         begin
;	MR5344	         external TRACE_BUFFER;
;	MR5345	         external routine SS_CLMESSAGE, NMU$TEXT;
;	MR5346	
;	MR5347	         local BUFFER_PTR;
;	MR5348	
		DEBUG -- Debugging Macros And Definitions	24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  55
		Trace Message Facilities			 2-Jan-1983 22:42:10	DNET61:<MCB.NML>DEBUG.REQ.1 (6)

;	MR5349	         BUFFER_PTR = ch$ptr (TRACE_BUFFER);
;	MR5350	
;	MR5351	         $NMU$TEXT (BUFFER_PTR, TRACE_BUFFER_LENGTH,
;	MR5352	                    PATTERN
;	MR5353	                    %if %length gtr 1
;	MR5354	                    %then , %remaining %fi);
;	MR5355	
;	MR5356	         SS_CLMESSAGE (ch$ptr (TRACE_BUFFER));
;	 R5357	         end %;
;	 R5358	
;	 R5359	
;	 R5360	! macro: FORMAT_BUFFER (PATTERN, (pattern_args...), BIAS, POINTER, LENGTH)
;	 R5361	!
;	 R5362	!               Trace contents of a buffer
;	 R5363	
;	 R5364	
;	 R5365	macro
;	MR5366	     FORMAT_BUFFER (PATTERN, ARGS) =
;	MR5367	         begin
;	MR5368	         external TRACE_BUFFER;
;	MR5369	         external routine SS_MESSAGE, NMU$TEXT, NMU$UTILITY_BUFFER_TEXT;
;	MR5370	
;	MR5371	         local BUFFER_PTR;
;	MR5372	
;	MR5373	         BUFFER_PTR = ch$ptr (TRACE_BUFFER);
;	MR5374	
;	MR5375	         if ROUTINE_TRACE
;	MR5376	         then $NMU$TEXT (BUFFER_PTR, TRACE_BUFFER_LENGTH,
;	MR5377	                         %string ('%(22L)A ', PATTERN),
;	MR5378	                         %rtn_name
;	MR5379	                         %if %length gtr 1
;	MR5380	                         %then , %remove(ARGS) %fi)
;	MR5381	         else $NMU$TEXT (BUFFER_PTR, TRACE_BUFFER_LENGTH,
;	MR5382	                         %string (PATTERN)
;	MR5383	                         %if %length gtr 1
;	MR5384	                         %then , %remove(ARGS) %fi);
;	MR5385	
;	MR5386	         SS_MESSAGE (ch$ptr (TRACE_BUFFER));
;	MR5387	
;	MR5388	         NMU$UTILITY_BUFFER_TEXT (%remaining);
;	 R5389	         end %;
		DEBUG -- Debugging Macros And Definitions	24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  56
		Trace Message Facilities			 2-Jan-1983 22:42:10	DNET61:<MCB.NML>DEBUG.REQ.1 (7)

;	 R5390	
;	 R5391	%title ''
;	 R5392	%sbttl ''
;	 R5393	
;	 R5394	!
;	 R5395	! [End of DEBUG.REQ]
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  57
								 3-Jan-1983 01:26:09	DNET61:<MCB.NML>NMLLIB.REQ.1 (3)

;	  5396	
;	  5397	require 'NMARCH';                       ! Network Managment architectural definitions
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  58
								 3-Jan-1983 00:53:27	DNET61:<MCB.NML>NMARCH.REQ.1 (1)

;	 R5398	! <BRANDT.DEVELOPMENT>NMARCH.REQ.1 13-Dec-82 14:05:45, Edit by BRANDT
;	 R5399	!
;	 R5400	!  Change the MODULE TYPE parameter (1172) so that a value of 1
;	 R5401	!  will correctly correspond to "Bilateral"
;	 R5402	!
;	 R5403	!  Reverse the order of MODULE COUNTERS 1241 and 1242 so they correspond
;	 R5404	!  to the NML Spec.
;	 R5405	!
;	 R5406	! <BRANDT.DEVELOPMENT>NMARCH.REQ.1 30-Sep-82 15:05:45, Edit by BRANDT
;	 R5407	!
;	 R5408	! Add the following circuit counter parameter:
;	 R5409	!  1242   Network Initiated Resets
;	 R5410	!
;	 R5411	! NET:<PECKHAM.DEVELOPMENT>NMARCH.REQ.2 24-Sep-82 12:05:45, Edit by PECKHAM
;	 R5412	!
;	 R5413	! Add the following system specific node parameter:
;	 R5414	!  2500   Fence
;	 R5415	!
;	 R5416	! NET:<PECKHAM.DEVELOPMENT>NMARCH.REQ.2 30-Aug-82 10:10:13, Edit by PECKHAM
;	 R5417	!
;	 R5418	! Make the following node parameters read-only:
;	 R5419	!   126    Software Identification
;	 R5420	!   135    Dump Address
;	 R5421	!   136    Dump Count
;	 R5422	!
;	 R5423	! NET:<PECKHAM.DEVELOPMENT>NMARCH.REQ.2 21-Jun-82 14:36:57, Edit by PECKHAM
;	 R5424	!
;	 R5425	! Add X25-SERVER counters supplied by VOBA.
;	 R5426	!
;	 R5427	! NET:<PECKHAM.DEVELOPMENT>NMARCH.REQ.2 14-Jun-82 11:00:09, Edit by PECKHAM
;	 R5428	!
;	 R5429	! Add coded parameter interpretation for CIRCUIT OWNER parameter
;	 R5430	!
;	 R5431	! NET:<PECKHAM.DEVELOPMENT>NMARCH.REQ.2 28-Apr-82 10:15:38, Edit by PECKHAM
;	 R5432	!
;	 R5433	! Change text for line and circuit state 'service' from 'serviced'.
;	 R5434	!
;	 R5435	! NET:<VOBA.NML.DEVELOPMENT>NMARCH.REQ.18 21-Apr-82 13:53:49, Edit by VOBA
;	 R5436	!
;	 R5437	! Add additional characteristics (clearability and text case conversion)
;	 R5438	! to the entity tables, and comment to document the fields in the tables.
;	 R5439	!
;	 R5440	! NET:<VOBA.NML.DEVELOPMENT>NMARCH.REQ.5 25-Mar-82 15:51:40, Edit by VOBA
;	 R5441	!
;	 R5442	! Add single field definition for CLEAR_PURGE and PERMANENT bits in field
;	 R5443	! definitions of CHANGE option (FUNCTION_DATA).
;	 R5444	!
;	 R5445	! NET:<VOBA.NML.DEVELOPMENT>NMARCH.REQ.3 24-Mar-82 11:50:36, Edit by VOBA
;	 R5446	!
;	 R5447	! Change INITIALIZE parameter of CIRCUIT entity to be NODE TYPE.
;	 R5448	!
;	 R5449	! NET:<VOBA.NML.DEVELOPMENT>NMARCH.REQ.3 23-Mar-82 12:12:03, Edit by VOBA
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  59
								 3-Jan-1983 00:53:27	DNET61:<MCB.NML>NMARCH.REQ.1 (1)

;	 R5450	!
;	 R5451	! Fix typo in $NML$LINE_COUNTERS table.
;	 R5452	!
;	 R5453	! NET:<VOBA.NML.DEVELOPMENT>NMARCH.REQ.2                   , Edit by VOBA
;	 R5454	!                                                           for (PECKHAM)
;	 R5455	! Make LOGGING_NAME read-only.
;	 R5456	! Add INITIALIZE system-specific circuit parameter.
;	 R5457	! Add event definition macros.
;	 R5458	! Add system specific line counters.
;	 R5459	!
;	 R5460	! NET:<VOBA.NML.DEVELOPMENT>NMARCH.REQ.2 18-Mar-82 16:12:33, Edit by VOBA
;	 R5461	!
;	 R5462	! Fix typo of FAST SELECT counters in MODULE counter text table.
;	 R5463	!
;	 R5464	! NET:<VOBA.NML.DEVELOPMENT>NMARCH.REQ.3 12-Mar-82 14:00:30, Edit by VOBA
;	 R5465	!
;	 R5466	! Fix entry of NODE parameter in $NML$MODULE_PARAMETERS table.
;	 R5467	!
;	 R5468	! NET:<VOBA.NML.DEVELOPMENT>NMARCH.REQ.4  4-Mar-82 12:31:36, Edit by VOBA
;	 R5469	!
;	 R5470	! Condition parameters in $NML$MODULE_PARAMETERS table to set up correct
;	 R5471	! fields for TOPS-20 and MCB NICE parameters.
;	 R5472	!
;	 R5473	! NET:<VOBA.NML.DEVELOPMENT>NMARCH.REQ.3  3-Mar-82 12:35:28, Edit by VOBA
;	 R5474	!
;	 R5475	! Remove extra NETWORK parameter from $NML$MODULE_PARAMETERS table.
;	 R5476	!
;	 R5477	! NET:<VOBA.NML.DEVELOPMENT>NMARCH.REQ.4  1-Mar-82 14:44:32, Edit by VOBA
;	 R5478	!
;	 R5479	! Reverse last change of CALL MASK and CALL VALUE parameters. Keep them to
;	 R5480	! be parsed as HI.
;	 R5481	! Assign HI a distinct value different from AI.
;	 R5482	!
;	 R5483	! NET:<VOBA.NML.DEVELOPMENT>NMARCH.REQ.5 26-Feb-82 16:08:11, Edit by VOBA
;	 R5484	!
;	 R5485	! Clean up code and update copyright date.
;	 R5486	! Changed CALL MASK and CALL VALUE parameters to be parsed as HX8 instead of
;	 R5487	! HI.
;	 R5488	!
;	 R5489	! NET:<PECKHAM.DEVELOPMENT>NMARCH.REQ.13 26-Feb-82 13:10:03, Edit by PECKHAM
;	 R5490	!
;	 R5491	! Change parameter text to upper/lower case.
;	 R5492	! Add system specific parameters.
;	 R5493	! Move data base construction macros back to NMLPRM.
;	 R5494	! Get counter definitions from NCPCTR.
;	 R5495	! Get error detail texts from NCPRSP.
;	 R5496	! Add $NML$TEXT to allow raising lower case response text in NCPRSP
;	 R5497	! (if necessary).
;	 R5498	!
;	 R5499	! NET:<VOBA.NML.DEVELOPMENT>NMARCH.REQ.3 24-Feb-82 16:39:19, Edit by VOBA
;	 R5500	!
;	 R5501	! Correct typo of LOOP WITH parameter name text.
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  60
								 3-Jan-1983 00:53:27	DNET61:<MCB.NML>NMARCH.REQ.1 (1)

;	 R5502	!
;	 R5503	! NET:<VOBA.NML.DEVELOPMENT>NMARCH.REQ.11 22-Feb-82 10:30:49, Edit by VOBA
;	 R5504	!
;	 R5505	! Move NICE parameter tables and building macros from NMLPRM.
;	 R5506	! 
;	 R5507	! NET:<DECNET20-V3P1.BASELEVEL-2.MCB>NMARCH.REQ.15 14-Oct-81 17:46:01, Edit by WEBBER
;	 R5508	!
;	 R5509	! Add bit field definitions for event type/class.
;	 R5510	!
;	 R5511	! NET:<DECNET20-V3P1.BASELEVEL-2.MCB>NMARCH.REQ.2 20-Aug-81 09:08:23, Edit by GUNN
;	 R5512	!
;	 R5513	! Add definition of DECnet-10/20 system specific MOP message type
;	 R5514	! 28, CHK11_ASCII_TEXT.
;	 R5515	!
;	 R5516	! NET:<DECNET20-V3P1.BASELEVEL-2.SOURCES>NMARCH.REQ.11  4-Aug-81 11:54:00, Edit by JENNESS
;	 R5517	!
;	 R5518	! Add codes -100 to -103 to NICE response code list.  These are not
;	 R5519	! supported by the DECnet Network Management architecture and should
;	 R5520	! be submitted formally.  Note that codes -100 to -103 can only be
;	 R5521	! generated on the same node that the command originated on, thus they
;	 R5522	! will never be sent over a logical link to a foreign Network Management
;	 R5523	! implementation.
;	 R5524	!
;	 R5525	! NET:<DECNET20-V3P1.NMU>NMARCH.REQ.2 12-Jun-81 12:07:29, Edit by JENNESS
;	 R5526	!
;	 R5527	! Readability and copyright updates.
;	 R5528	!
;	 R5529	! NET:<DECNET20-V3P1.BASELEVEL-2.SOURCES>NMARCH.REQ.7 12-May-81 13:58:04, Edit by VOBA
;	 R5530	! Add sub-entity type for the X.25 MODULE entity.
;	 R5531	! 
;	 R5532	! NET:<DECNET20-V3P1.BASELEVEL-2.SOURCES>NMARCH.REQ.6  4-Feb-81 13:18:12, Edit by GUNN
;	 R5533	!
;	 R5534	! Correct definition of fields in READ_OPTIONS
;	 R5535	!
;	 R5536	! NET:<DECNET20-V3P1.NMU>NMARCH.REQ.8  3-Feb-81 10:12:28, Edit by JENNESS
;	 R5537	!
;	 R5538	! Add literal definitions for NICE, MIRROR and EVENT objects.
;	 R5539	! Add session control REJECT/DISCONNECT error code definitions.
;	 R5540	!
		NMARCH -- Network Management Architecture Decla 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  61
								 3-Jan-1983 00:53:27	DNET61:<MCB.NML>NMARCH.REQ.1 (2)

;	 R5541	%title 'NMARCH -- Network Management Architecture Declarations'
;	 R5542	
;	 R5543	!                    COPYRIGHT (c) 1980, 1981, 1982
;	 R5544	!                    DIGITAL EQUIPMENT CORPORATION
;	 R5545	!                        Maynard, Massachusetts
;	 R5546	!
;	 R5547	!     This software is furnished under a license and may  be  used
;	 R5548	!     and copied only in accordance with the terms of such license
;	 R5549	!     and with the inclusion of the above copyright notice.   This
;	 R5550	!     software  or any other copies thereof may not be provided or
;	 R5551	!     otherwise made available to any other person.  No  title  to
;	 R5552	!     and ownership of the software is hereby transferred.
;	 R5553	!
;	 R5554	!     The information  in  this  software  is  subject  to  change
;	 R5555	!     without  notice  and should not be construed as a commitment
;	 R5556	!     by DIGITAL EQUIPMENT CORPORATION.
;	 R5557	!
;	 R5558	!     DIGITAL assumes no responsibility for the use or reliability
;	 R5559	!     of  its  software  on  equipment  which  is  not supplied by
;	 R5560	!     DIGITAL.
;	 R5561	!
;	 R5562	
;	 R5563	!++
;	 R5564	! FACILITY: LSG DECnet Network Management
;	 R5565	!
;	 R5566	! ABSTRACT:
;	 R5567	!
;	 R5568	!	Contains architectural declarations required by
;	 R5569	!       Network Management.
;	 R5570	!
;	 R5571	! ENVIRONMENT:  Bliss-36, Bliss-32 and Bliss-16.
;	 R5572	!
;	 R5573	! AUTHOR: Dale C. Gunn , CREATION DATE: 29-Aug-80
;	 R5574	!
;	 R5575	!--
		NMARCH -- Network Management Architecture Decla 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  62
								 3-Jan-1983 00:53:27	DNET61:<MCB.NML>NMARCH.REQ.1 (3)

;	 R5576	
;	 R5577	!
;	 R5578	! Network Management DECnet object codes
;	 R5579	!
;	 R5580	
;	 R5581	literal
;	 R5582	    NICE_OBJECT = 19,
;	 R5583	    MIRROR_OBJECT = 25,
;	 R5584	    EVENT_OBJECT = 26;
;	 R5585	
;	 R5586	!
;	 R5587	! NICE Function Code Definitions
;	 R5588	!
;	 R5589	
;	 R5590	literal
;	 R5591	    LOAD_ = 15,                         ! NICE Request Down-line Load Function
;	 R5592	    DUMP_ = 16,                         ! NICE Request Up-line Dump Function
;	 R5593	    TRIGGER_ = 17,                      ! NICE Trigger Bootstrap Function
;	 R5594	    TEST_ = 18,                         ! NICE Test Function
;	 R5595	    LOOP_ = TEST_,                      ! NICE Test Function
;	 R5596	    CHANGE_ = 19,                       ! NICE Change Parameter Function
;	 R5597	    PURGE_ = CHANGE_,                   ! NICE Change Parameter Function
;	 R5598	    SET_ = CHANGE_,                     ! NICE Change Parameter Function
;	 R5599	    CLEAR_ = CHANGE_,                   ! NICE Change Parameter Function
;	 R5600	    DEFINE_ = CHANGE_,                  ! NICE Change Parameter Function
;	 R5601	    READ_ = 20,                         ! NICE Read Information Function
;	 R5602	    LIST_ = READ_,                      ! NICE Read Information Function
;	 R5603	    SHOW_ = READ_,                      ! NICE Read Information Function
;	 R5604	    ZERO_ = 21,                         ! NICE Zero Counters Function
;	 R5605	    SYSTEM_SPECIFIC_ = 22;              ! NICE System Specific Function
;	 R5606	
;	 R5607	
;	 R5608	
;	 R5609	! NICE Read Information Type Codes
;	 R5610	
;	 R5611	literal
;	 R5612	    SUMMARY_ = 0,                       ! Read Summary Parameters
;	 R5613	    STATUS_ = 1,                        ! Read Status Parameters
;	 R5614	    CHARACTERISTICS_ = 2,               ! Read Characteristic Parameters
;	 R5615	    COUNTERS_ = 3,                      ! Read Counters
;	 R5616	    EVENTS_ = 4;                        ! Read Event Logging Status
;	 R5617	
;	 R5618	
;	 R5619	
;	 R5620	! NICE System Type Codes
;	 R5621	
;	 R5622	literal
;	 R5623	    RSTS_ = 1,                          ! RSTS Specific
;	 R5624	    RSX_ = 2,                           ! RSX Family Specific
;	 R5625	    TOPS20_ = 3,                        ! TOPS-10/20 Specific
;	 R5626	    VMS_ = 4;                           ! VAX/VMS Specific
;	 R5627	
		NMARCH -- Network Management Architecture Decla 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  63
								 3-Jan-1983 00:53:27	DNET61:<MCB.NML>NMARCH.REQ.1 (3)

;	 R5628	
;	 R5629	
;	 R5630	! NICE Entity Type Codes
;	 R5631	
;	 R5632	literal
;	 R5633	    NO_ENTITY_ = -1,                    ! none
;	 R5634	    NODE_E = 0,                         ! NODE Entity
;	 R5635	    LINE_ = 1,                          ! LINE Entity
;	 R5636	    LOGGING_ = 2,                       ! EVENT LOGGING Entity
;	 R5637	    CIRCUIT_ = 3,                       ! CIRCUIT Entity
;	 R5638	    MODULE_ = 4;                        ! MODULE Entity
;	 R5639	
;	 R5640	
;	 R5641	
;	 R5642	! NICE Sub-entity Codes
;	 R5643	
;	 R5644	literal
;	 R5645	    NO_SUB_ENTITY = -1,                 ! none
;	 R5646	    MODULE_ACCESS = 0,                  ! ACCESS MODULE Sub-entity
;	 R5647	    MODULE_PROTOCOL = 1,                ! PROTOCOL MODULE Sub-entity
;	 R5648	    MODULE_SERVER = 2;                  ! SERVER MODULE Sub-entity
;	 R5649	
;	 R5650	
;	 R5651	
;	 R5652	! NICE Entity Group Codes
;	 R5653	
;	 R5654	literal
;	 R5655	    LOOPED_ = -3,                       ! LOOPED Entities
;	 R5656	    ACTIVE_ = -2,                       ! ACTIVE Entities
;	 R5657	    KNOWN_ = -1;                        ! KNOWN Entities
;	 R5658	
;	 R5659	
;	 R5660	
;	 R5661	! NICE Logging sink type values
;	 R5662	
;	 R5663	literal
;	 R5664	    CONSOLE_ = 1,
;	 R5665	    FILE_ = 2,
;	 R5666	    MONITOR_ = 3;
;	 R5667	
;	 R5668	! NICE type/class word fields
;	 R5669	
;	 R5670	macro
;	 R5671	     $$EVENT_TYPE = 0, 4, 0 %,          ! Event type
;	 R5672	     $$EVENT_CLASS = 6, 9, 0 %;         ! Event class
;	 R5673	
;	 R5674	! NICE option byte field definitions
;	 R5675	
;	 R5676	$field ZERO_OPTIONS =
;	 R5677	    set
;	 R5678	    ZO_ENTITY_TYPE = [$bits(3)],        ! NICE entity type number
;	 R5679	    ZO_RESERVED = [$bits(4)],           ! Reserved bits, must be zero
		NMARCH -- Network Management Architecture Decla 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  64
								 3-Jan-1983 00:53:27	DNET61:<MCB.NML>NMARCH.REQ.1 (3)

;	 R5680	    ZO_READ_AND_ZERO = [$bit]           ! Zero only or read and zero flag
;	 R5681	    tes;
;	 R5682	
;	 R5683	$field READ_OPTIONS =
;	 R5684	    set
;	 R5685	    RO_ENTITY_TYPE = [$bits(3)],        ! NICE entity type number
;	 R5686	    RO_RESERVED = [$bit],               ! Reserved bits, must be zero
;	 R5687	    RO_INFO_TYPE = [$bits(3)],          ! Type of information to read
;	 R5688	    RO_PERMANENT = [$bit]               ! PERMANENT vs VOLATILE flag
;	 R5689	    tes;
;	 R5690	
;	 R5691	$field CHANGE_OPTIONS =
;	 R5692	    set
;	 R5693	    CO_ENTITY_TYPE = [$bits(3)],        ! NICE entity type number
;	 R5694	    CO_RESERVED = [$bits(3)],           ! Reserved bits, must be zero
;	 R5695	    CO_FUNCTION_DATA = [$bits(2)],
;	 R5696	        $overlay (CO_FUNCTION_DATA)
;	 R5697	    CO_CLEAR_PURGE = [$bit],            ! CLEAR/PURGE vs SET/DEFINE flag
;	 R5698	    CO_PERMANENT = [$bit]               ! PERMANENT vs VOLATILE flag
;	 R5699	        $continue
;	 R5700	    tes;
;	 R5701	
;	 R5702	$field TEST_OPTIONS =
;	 R5703	    set
;	 R5704	    TO_ENTITY_TYPE = [$bits(3)],        ! NICE entity type number
;	 R5705	    TO_RESERVED = [$bits(4)],           ! Reserved bits, must be zero
;	 R5706	    TO_ACCESS_CONTROL = [$bit]          ! Access control included flag
;	 R5707	    tes;
;	 R5708	
;	 R5709	$field BOOT_OPTIONS =
;	 R5710	    set
;	 R5711	    BO_ENTITY_TYPE = [$bits(3)],        ! NICE entity type number
;	 R5712	    BO_RESERVED = [$bits(5)]            ! Reserved bits, must be zero
;	 R5713	    tes;
;	 R5714	
;	 R5715	$field LOAD_OPTIONS =
;	 R5716	    set
;	 R5717	    LO_ENTITY_TYPE = [$bits(3)],        ! NICE entity type number
;	 R5718	    LO_RESERVED = [$bits(5)]            ! Reserved bits, must be zero
;	 R5719	    tes;
;	 R5720	
;	 R5721	$field DUMP_OPTIONS =
;	 R5722	    set
;	 R5723	    DO_ENTITY_TYPE = [$bits(3)],        ! NICE entity type number
;	 R5724	    DO_RESERVED = [$bits(5)]            ! Reserved bits, must be zero
;	 R5725	    tes;
;	 R5726	
;	 R5727	! NICE response parameter field definitions
;	 R5728	
;	 R5729	$field DATA_ID_FIELDS =
;	 R5730	    set
;	 R5731	    DI_PARMNO = [$bits(12)],            ! Parameter type number
		NMARCH -- Network Management Architecture Decla 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  65
								 3-Jan-1983 00:53:27	DNET61:<MCB.NML>NMARCH.REQ.1 (3)

;	 R5732	        $overlay (DI_PARMNO)            !      ...or...
;	 R5733	    DI_CNTRNO = [$bits(12)],            ! Counter type number
;	 R5734	        $continue
;	 R5735	    DI_MAPPED = [$bit],                 ! Counter bit map flag
;	 R5736	    DI_WIDTH = [$bits(2)],              ! Counter width
;	 R5737	    DI_TYPE = [$bit]                    ! Type of data, counter or parameter
;	 R5738	    tes;
;	 R5739	
;	 R5740	$field DATA_TYPE_FIELDS =
;	 R5741	    set
;	 R5742	    DT_NUMBER = [$bits(6)],             ! Number of bytes or fields
;	 R5743	        $overlay(DT_NUMBER)             !      ...or...
;	 R5744	    DT_LENGTH = [$bits(4)],             ! Length of binary number
;	 R5745	    DT_FORMAT = [$bits(2)],             ! Format of number
;	 R5746	        $continue
;	 R5747	    DT_FIELDS = [$bit],                 ! Single or multiple fields
;	 R5748	        $overlay(DT_FIELDS)             !      ...or...
;	 R5749	    DT_FTYPE = [$bit],                  ! Field type, ASCII or binary number
;	 R5750	        $continue
;	 R5751	    DT_CODED = [$bit]                   ! Coded or not coded
;	 R5752	    tes;
		NMARCH -- Network Management Architecture Decla 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  66
		NICE Message Codes, Values, and Text Strings	 3-Jan-1983 00:53:27	DNET61:<MCB.NML>NMARCH.REQ.1 (4)

;	 R5753	%sbttl 'NICE Message Codes, Values, and Text Strings'
;	 R5754	
;	 R5755	macro
;	MR5756	     $NML$NICE_RETURNS =
;	MR5757	         SUC, 1, '',                    ! Success
;	MR5758	         ACC, 2, '',                    ! Request accepted
;	MR5759	         MOR, 3, '',                    ! Partial reply
;	 R5760	         DON, -128, '' %;               ! Done, end of multiple response
;	 R5761	
;	 R5762	macro
;	MR5763	     $NML$NICE_ERRORS =
;	MR5764	         UFO, -1, 'Unrecognized function or option',
;	MR5765	         IMF, -2, 'Invalid message format',
;	MR5766	         PRV, -3, 'Privilege violation',
;	MR5767	         OCM, -4, 'Oversized Management command message',
;	MR5768	         MPE, -5, 'Management program error',
;	MR5769	         UPT, -6, 'Unrecognized parameter type',
;	MR5770	         IMV, -7, 'Incompatible Management version',
;	MR5771	         URC, -8, 'Unrecognized component',
;	MR5772	         IID, -9, 'Invalid identification',
;	MR5773	         LCE, -10, 'Line communication error',
;	MR5774	         CWS, -11, 'Component in wrong state',
;	MR5775	         FOE, -13, 'File open error',
;	MR5776	         IFC, -14, 'Invalid file contents',
;	MR5777	         REE, -15, 'Resource error',
;	MR5778	         IPV, -16, 'Invalid parameter value',
;	MR5779	         LPE, -17, 'Line protocol error',
;	MR5780	         FIO, -18, 'File I/O error',
;	MR5781	         MLD, -19, 'Mirror link disconnected',
;	MR5782	         NRE, -20, 'No room for new entry',
;	MR5783	         MCF, -21, 'Mirror connect failed',
;	MR5784	         PNA, -22, 'Parameter not applicable',
;	MR5785	         PVL, -23, 'Parameter value too long',
;	MR5786	         HWF, -24, 'Hardware failure',
;	MR5787	         OPF, -25, 'Operation failure',
;	MR5788	         SFS, -26, 'System-specific Management function not supported',
;	MR5789	         IPG, -27, 'Invalid parameter grouping',
;	MR5790	         BLR, -28, 'Bad loopback response',
;	MR5791	         PAM, -29, 'Parameter missing',
;	MR5792	         
;	MR5793	         BMR, -100, 'Bad management response',
;	MR5794	         LLD, -101, 'Listener link disconnected',
;	MR5795	         LCF, -102, 'Listener link connect failed',
;	 R5796	         OMR, -103, 'Oversized Management response' %;
;	 R5797	
;	 R5798	!
;	 R5799	! Macro to build individual error macros from $NML$NICE_ERRORS
;	 R5800	!
;	 R5801	
;	 R5802	compiletime %TEMP = 0;
;	 R5803	
;	 R5804	macro
		NMARCH -- Network Management Architecture Decla 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  67
		NICE Message Codes, Values, and Text Strings	 3-Jan-1983 00:53:27	DNET61:<MCB.NML>NMARCH.REQ.1 (4)

;	MR5805	     $NML$NICERR_MACRO [MNE,VAL,STR] =
;	MR5806	         %assign(%TEMP,VAL)
;	MR5807	         %quote literal %name('NICE$_',MNE) = VAL %quote ;
;	MR5808	         %if %TEMP GEQ 0 
;	MR5809	         %then %print('NICE$_',MNE,' =  ',%number(%TEMP),'; !',STR)
;	MR5810	         %else %print('NICE$_',MNE,' = -',%assign(%TEMP,-%TEMP),%number(%TEMP),'; ! ',STR)
;	MR5811	         %fi
;	MR5812	         %quote macro %name('$NICE$ERR_',MNE) =
;	MR5813	                      VAL
;	 R5814	                      %quote %print (STR) %quote % %;
;	 R5815	
;	 R5816	!
;	 R5817	! Macro to build an index table of text string pointers
;	 R5818	!
;	 R5819	
;	 R5820	macro
;	MR5821	     $NICE$ERR_CASES [MNE,VAL,STR] =
;	MR5822	         %assign(%TEMP,VAL)
;	MR5823	         %if %TEMP GEQ 0 
;	MR5824	         %then %print ('[',%number(%TEMP),']:     CH$ASCIC(',STR,');')
;	MR5825	         %else %print ('[-',%assign(%TEMP,-%TEMP),%number(%TEMP),']:     CH$ASCIC(',STR,');')
;	MR5826	         %fi
;	MR5827	
;	 R5828	         [VAL]: CH$ASCIC(%remove(STR)) %;
;	 R5829	
;	 R5830	!
;	 R5831	! Equated symbols
;	 R5832	!
;	 R5833	
;	LR5834	    $NML$NICERR_MACRO ($NML$NICE_ERRORS);
; %PRINT:	NICE$_UFO = -1; ! Unrecognized function or option
; %PRINT:	NICE$_IMF = -2; ! Invalid message format
; %PRINT:	NICE$_PRV = -3; ! Privilege violation
; %PRINT:	NICE$_OCM = -4; ! Oversized Management command message
; %PRINT:	NICE$_MPE = -5; ! Management program error
; %PRINT:	NICE$_UPT = -6; ! Unrecognized parameter type
; %PRINT:	NICE$_IMV = -7; ! Incompatible Management version
; %PRINT:	NICE$_URC = -8; ! Unrecognized component
; %PRINT:	NICE$_IID = -9; ! Invalid identification
; %PRINT:	NICE$_LCE = -10; ! Line communication error
; %PRINT:	NICE$_CWS = -11; ! Component in wrong state
; %PRINT:	NICE$_FOE = -13; ! File open error
; %PRINT:	NICE$_IFC = -14; ! Invalid file contents
; %PRINT:	NICE$_REE = -15; ! Resource error
; %PRINT:	NICE$_IPV = -16; ! Invalid parameter value
; %PRINT:	NICE$_LPE = -17; ! Line protocol error
; %PRINT:	NICE$_FIO = -18; ! File I/O error
; %PRINT:	NICE$_MLD = -19; ! Mirror link disconnected
; %PRINT:	NICE$_NRE = -20; ! No room for new entry
; %PRINT:	NICE$_MCF = -21; ! Mirror connect failed
; %PRINT:	NICE$_PNA = -22; ! Parameter not applicable
; %PRINT:	NICE$_PVL = -23; ! Parameter value too long
		NMARCH -- Network Management Architecture Decla 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  68
		NICE Message Codes, Values, and Text Strings	 3-Jan-1983 00:53:27	DNET61:<MCB.NML>NMARCH.REQ.1 (4)

; %PRINT:	NICE$_HWF = -24; ! Hardware failure
; %PRINT:	NICE$_OPF = -25; ! Operation failure
; %PRINT:	NICE$_SFS = -26; ! System-specific Management function not supported
; %PRINT:	NICE$_IPG = -27; ! Invalid parameter grouping
; %PRINT:	NICE$_BLR = -28; ! Bad loopback response
; %PRINT:	NICE$_PAM = -29; ! Parameter missing
; %PRINT:	NICE$_BMR = -100; ! Bad management response
; %PRINT:	NICE$_LLD = -101; ! Listener link disconnected
; %PRINT:	NICE$_LCF = -102; ! Listener link connect failed
; %PRINT:	NICE$_OMR = -103; ! Oversized Management response
;	LR5835	    $NML$NICERR_MACRO ($NML$NICE_RETURNS);
; %PRINT:	NICE$_SUC =  1; !
; %PRINT:	NICE$_ACC =  2; !
; %PRINT:	NICE$_MOR =  3; !
; %PRINT:	NICE$_DON = -128; ! 
		NMARCH -- Network Management Architecture Decla 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  69
		Session Control Codes, Values, and Text Strings  3-Jan-1983 00:53:27	DNET61:<MCB.NML>NMARCH.REQ.1 (5)

;	 R5836	%sbttl 'Session Control Codes, Values, and Text Strings'
;	 R5837	
;	 R5838	macro
;	MR5839	     $SC_ERRORS =
;	MR5840	         NSE, 0, 'No special error',
;	MR5841	         RAF, 1, 'Resource allocation failure',
;	MR5842	         DND, 2, 'Destination node does not exist',
;	MR5843	         NSD, 3, 'Node shutting down',
;	MR5844	         DPD, 4, 'Destination process does not exist',
;	MR5845	         INF, 5, 'Invalid name field',
;	MR5846	         DPQ, 6, 'Destination process queue overflow',
;	MR5847	         USE, 7, 'Unspecified error',
;	MR5848	         THA, 8, 'Third party aborted the logical link',
;	MR5849	         UAB, 9, 'User abort (asynchronous disconnect)',
;	MR5850	         UEC, 11, 'Undefined error code',
;	MR5851	         CII, 21, 'Connect initiate (CI) with illegal destination address',
;	MR5852	         FCV, 24, 'Flow control violation',
;	MR5853	         TMN, 32, 'Too many connections to node',
;	MR5854	         TMP, 33, 'Too many connections to destination process',
;	MR5855	         ANP, 34, 'Access not permitted',
;	MR5856	         LLS, 35, 'Logical link services mismatch',
;	MR5857	         IAC, 36, 'Invalid account',
;	MR5858	         SSS, 37, 'Segment size too small',
;	MR5859	         PAB, 38, 'Process aborted',
;	MR5860	         NPN, 39, 'No path to destination node',
;	MR5861	         LAB, 40, 'Link aborted due to data loss',
;	MR5862	         DLL, 41, 'Destination logical link address does not exist',
;	MR5863	         CDI, 42, 'Confimation of disconnect initiate (DI)',
;	 R5864	         IDF, 43, 'Image data field too long' %;
;	 R5865	
;	 R5866	!
;	 R5867	! Macro to build individual error macros from $SC_ERRORS
;	 R5868	!
;	 R5869	
;	 R5870	compiletime %TEMP1 = 0;
;	 R5871	
;	 R5872	macro
;	MR5873	     $SCERR_MACRO [MNE,VAL,STR] =
;	MR5874	         %assign(%TEMP1,VAL)
;	MR5875	         %quote literal %name('SC$_',MNE) = VAL %quote ;
;	MR5876	         %if %TEMP1 GEQ 0 
;	MR5877	         %then %print('SC$_',MNE,' =  ',%number(%TEMP1),'; ! ',STR)
;	MR5878	         %else %print('SC$_',MNE,' = -',%assign(%TEMP1,-%TEMP1),%number(%TEMP1),'; ! ',STR)
;	MR5879	         %fi
;	MR5880	         %quote macro %name('$SC$ERR_',MNE) =
;	MR5881	                      VAL
;	 R5882	                      %quote %print (STR) %quote % %;
;	 R5883	
;	 R5884	!
;	 R5885	! Macro to build an index table of text string pointers
;	 R5886	!
;	 R5887	
		NMARCH -- Network Management Architecture Decla 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  70
		Session Control Codes, Values, and Text Strings  3-Jan-1983 00:53:27	DNET61:<MCB.NML>NMARCH.REQ.1 (5)

;	 R5888	macro
;	MR5889	     $SC$ERR_CASES [MNE,VAL,STR] =
;	MR5890	         %assign(%TEMP1,VAL)
;	MR5891	         %if %TEMP1 GEQ 0 
;	MR5892	         %then %print ('[',%number(%TEMP1),']:     CH$ASCIC(',STR,');')
;	MR5893	         %else %print ('[-',%assign(%TEMP1,-%TEMP1),%number(%TEMP1),']:     CH$ASCIC(',STR,');')
;	MR5894	         %fi
;	 R5895	         [VAL]: CH$ASCIC(%remove(STR)) %;
;	 R5896	
;	 R5897	!
;	 R5898	! Equated symbols
;	 R5899	!
;	 R5900	
;	LR5901	    $SCERR_MACRO ($SC_ERRORS);
; %PRINT:	SC$_NSE =  0; ! No special error
; %PRINT:	SC$_RAF =  1; ! Resource allocation failure
; %PRINT:	SC$_DND =  2; ! Destination node does not exist
; %PRINT:	SC$_NSD =  3; ! Node shutting down
; %PRINT:	SC$_DPD =  4; ! Destination process does not exist
; %PRINT:	SC$_INF =  5; ! Invalid name field
; %PRINT:	SC$_DPQ =  6; ! Destination process queue overflow
; %PRINT:	SC$_USE =  7; ! Unspecified error
; %PRINT:	SC$_THA =  8; ! Third party aborted the logical link
; %PRINT:	SC$_UAB =  9; ! User abort (asynchronous disconnect)
; %PRINT:	SC$_UEC =  11; ! Undefined error code
; %PRINT:	SC$_CII =  21; ! Connect initiate (CI) with illegal destination address
; %PRINT:	SC$_FCV =  24; ! Flow control violation
; %PRINT:	SC$_TMN =  32; ! Too many connections to node
; %PRINT:	SC$_TMP =  33; ! Too many connections to destination process
; %PRINT:	SC$_ANP =  34; ! Access not permitted
; %PRINT:	SC$_LLS =  35; ! Logical link services mismatch
; %PRINT:	SC$_IAC =  36; ! Invalid account
; %PRINT:	SC$_SSS =  37; ! Segment size too small
; %PRINT:	SC$_PAB =  38; ! Process aborted
; %PRINT:	SC$_NPN =  39; ! No path to destination node
; %PRINT:	SC$_LAB =  40; ! Link aborted due to data loss
; %PRINT:	SC$_DLL =  41; ! Destination logical link address does not exist
; %PRINT:	SC$_CDI =  42; ! Confimation of disconnect initiate (DI)
; %PRINT:	SC$_IDF =  43; ! Image data field too long
;	 R5902	
;	 R5903	!
;	 R5904	! Other error detail texts
;	 R5905	!
;	 R5906	
;	 R5907	macro
;	MR5908	     $LINK_DETAIL_ERRORS =
;	MR5909	         , 0, 'No node name set',
;	MR5910	         , 1, 'Invalid node name format',
;	MR5911	         , 2, 'Unrecognized node name',
;	MR5912	         , 3, 'Node unreachable',
;	MR5913	         , 4, 'Network resources',
;	MR5914	         , 5, 'Rejected by object',
		NMARCH -- Network Management Architecture Decla 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  71
		Session Control Codes, Values, and Text Strings  3-Jan-1983 00:53:27	DNET61:<MCB.NML>NMARCH.REQ.1 (5)

;	MR5915	         , 6, 'Invalid object name format',
;	MR5916	         , 7, 'Unrecognized object',
;	MR5917	         , 8, 'Access control rejected',
;	MR5918	         , 9, 'Object too busy',
;	MR5919	         ,10, 'No response from object',
;	MR5920	         ,11, 'Remote node shut down',
;	MR5921	         ,12, 'Node or object failed',
;	MR5922	         ,13, 'Disconnect by object',
;	MR5923	         ,14, 'Abort by object',
;	MR5924	         ,15, 'Abort by management',
;	 R5925	         ,16, 'Local node shut down' %,
;	 R5926	
;	MR5927	     $FILE_DETAIL_ERRORS =
;	MR5928	         , 0, 'Permanent Database',
;	MR5929	         , 1, 'Load File',
;	MR5930	         , 2, 'Dump File',
;	MR5931	         , 3, 'Secondary Loader',
;	MR5932	         , 4, 'Tertiary Loader',
;	MR5933	         , 5, 'Secondary Dumper',
;	 R5934	         , 6, 'Volatile Database' %;
		NMARCH -- Network Management Architecture Decla 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  72
		MOP Function Codes				 3-Jan-1983 00:53:27	DNET61:<MCB.NML>NMARCH.REQ.1 (6)

;	 R5935	%sbttl 'MOP Function Codes'
;	 R5936	
;	 R5937	literal
;	 R5938	    LOAD_WITH_TRANSFER = 0,
;	 R5939	    LOAD_WITHOUT_TRANSFER = 2,
;	 R5940	    REQUEST_DUMP = 4,
;	 R5941	    ENTER_MOP_MODE = 6,
;	 R5942	    REQUEST_PROGRAM = 8,
;	 R5943	    REQUEST_MEMORY_LOAD = 10,
;	 R5944	    MOP_MODE_RUNNING = 12,
;	 R5945	    MEMORY_DUMP_DATA = 14,
;	 R5946	    DAP_MESSAGE_ENVELOPE = 16,
;	 R5947	    ENTER_ASCII_TTY_MODE = 18,
;	 R5948	    PARAMETERS_WITH_TRANSFER = 20,
;	 R5949	    CHK11_ASCII_TEXT = 22,
;	 R5950	    LOOPBACK_TEST = 24,
;	 R5951	    LOOPED_DATA = 26;
;	 R5952	
;	 R5953	literal                             ! Starting image load types
;	 R5954	    SECONDARY_LOADER = 0,
;	 R5955	    TERTIARY_LOADER = 1,
;	 R5956	    SYSTEM_IMAGE = 2;
;	 R5957	
;	 R5958	literal                             ! CPU type codes
;	 R5959	    CPU_PDP8 = 0,
;	 R5960	    CPU_PDP11 = 1,
;	 R5961	    CPU_DEC1020 = 2,
;	 R5962	    CPU_VAX = 3;
		NMARCH -- Network Management Architecture Decla 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  73
		NICE Entity Parameter Tables			 3-Jan-1983 00:53:27	DNET61:<MCB.NML>NMARCH.REQ.1 (7)

;	 R5963	%sbttl 'NICE Entity Parameter Tables'
;	 R5964	
;	 R5965	! Each entry of the following NICE entity parameter table has the following
;	 R5966	! format:
;	 R5967	!
;	 R5968	! PARAMETER NUMBER
;	 R5969	!     As defined in the Network Management Architecture Specification
;	 R5970	!     document. All parameter numbers are decimal, except specified otherwise.
;	 R5971	!
;	 R5972	! LITERAL NAME
;	 R5973	!     The literal representation of a parameter.
;	 R5974	!
;	 R5975	! FORMAT FOR DATA EXTRACTION
;	 R5976	!     The data format notations for extracting data from the request NICE
;	 R5977	!     messages
;	 R5978	!
;	 R5979	!         DU1   (DU-1) Decimal number, unsigned, 1 byte
;	 R5980	!         DU2   (DU-2) Decimal number, unsigned, 2 bytes
;	 R5981	!         DU4   (DU-4) Decimal number, unsigned, 4 bytes
;	 R5982	!         C1    (C-1)  Coded, single field, 1 byte
;	 R5983	!         C2    (C-2)  Coded, single field, 2 bytes
;	 R5984	!         CM2   (CM-2) Coded, multiple (2) fields, 2 bytes each
;	 R5985	!         CME   (CM-4) Coded, multiple (4) fields, EVENTS format
;	 R5986	!         CMN   (CM-2) Coded, multiple (2) fields, NODE format
;	 R5987	!         CMO   (CM-2) Coded, multiple (2) fields, OBJECT format
;	 R5988	!         CMU   (CM-2) Coded, multiple (2) fields, USER format
;	 R5989	!         AI    (AI-n) ASCII image field
;	 R5990	!         HI    (HI-n) Hexadecimal image field
;	 R5991	!         HX8   (H-8)  Hexadecimal number, 8 bytes
;	 R5992	!
;	 R5993	$literal
;	 R5994	    DU1 = $distinct,                    ! 1 byte
;	 R5995	    C1  = DU1,                          ! Coded 1 byte
;	 R5996	    DU2 = $distinct,                    ! 2 bytes
;	 R5997	    O2  = DU2,                          ! 2 bytes
;	 R5998	    DU4 = $distinct,                    ! 4 bytes
;	 R5999	    O4  = DU4,                          ! 4 bytes
;	 R6000	    CM2 = $distinct,                    ! Coded 2 2-bytes
;	 R6001	    CME = $distinct,                    ! Coded Event
;	 R6002	    CMN = $distinct,                    ! Coded Node
;	 R6003	    CMO = $distinct,                    ! Coded Object
;	 R6004	    CMU = $distinct,                    ! Coded User/Owner
;	 R6005	    AI  = $distinct,                    ! ASCII image
;	 R6006	    HI  = $distinct,                    ! HEX image
;	 R6007	    HX8 = $distinct;                    ! 8-byte HEX number
;	 R6008	!
;	 R6009	! LAYER THAT EXCLUSIVELY OWNS THIS PARAMETER
;	 R6010	!     NML indicates that the parameter is maintained by the NML layer;
;	 R6011	!     null field indicates parameter is maintained by one of the lower layers.
;	 R6012	!
;	 R6013	! DATA TYPE
;	 R6014	!     The data type byte for extracting data from the response NICE messages.
		NMARCH -- Network Management Architecture Decla 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  74
		NICE Entity Parameter Tables			 3-Jan-1983 00:53:27	DNET61:<MCB.NML>NMARCH.REQ.1 (7)

;	 R6015	!
;	 R6016	! INFORMATION TYPE
;	 R6017	!     The information type notation as specified by the Network Management
;	 R6018	!     Architecture specification
;	 R6019	!
;	 R6020	!         C     Characteristics
;	 R6021	!         S     Status
;	 R6022	!         *     Summary
;	 R6023	!         EV    Events
;	 R6024	!         Q     Qualifier
;	 R6025	!
;	 R6026	! APPLICABILITY RESTRICTION
;	 R6027	!     Only the following applicability restrictions are used in the tables
;	 R6028	!
;	 R6029	!         Q     Qualified
;	 R6030	!         E     Executor node only
;	 R6031	!         A     Adjacent node only
;	 R6032	!         R     Remote node only
;	 R6033	!         S     Sink node only
;	 R6034	!
;	 R6035	! SETTABILITY RESTRICTION
;	 R6036	!     The following notations indicate the user settability restriction
;	 R6037	!     of a parameter
;	 R6038	!
;	 R6039	!         RO    Read Only
;	 R6040	!         WO    Write Only
;	 R6041	!         C     Clearable
;	 R6042	!
;	 R6043	! PARAMETER TEXT CONVERSION
;	 R6044	!     The following notations indicate the case of the parameter text
;	 R6045	!     expected to be in
;	 R6046	!
;	 R6047	!         U     Upper case only
;	 R6048	!         L     Lower case only
;	 R6049	!         none  Accepted as is
		NMARCH -- Network Management Architecture Decla 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  75
		NODE Parameter Table				 3-Jan-1983 00:53:27	DNET61:<MCB.NML>NMARCH.REQ.1 (8)

;	 R6050	%sbttl 'NODE Parameter Table'
;	 R6051	
;	 R6052	! $NML$NODE_PARAMETERS - Parameter characteristic definitions,
;	 R6053	!
;	 R6054	! Each entry has the format
;	 R6055	!
;	 R6056	!     (Parameter number,
;	 R6057	!      Literal name,
;	 R6058	!      Format for data extraction,
;	 R6059	!      Layer that exclusively owns this parameter,
;	 R6060	!      Data type,
;	 R6061	!      Information type,
;	 R6062	!      Applicability restriction,
;	 R6063	!      Settability restriction,
;	 R6064	!      Parameter text conversion)
;	 R6065	
;	 R6066	macro
;	MR6067	     $NML$NODE_PARAMETERS =
;	MR6068	         (000, 'State', C1),
;	MR6069	         (100, 'Identification', AI, NML, %O'100', (C,'*'), E, C),
;	MR6070	         (101, 'Management Version',, NML, %O'303', C, E, RO),
;	MR6071	         (110, 'Service Circuit', AI, NML, %O'100', C, A, C, U),
;	MR6072	         (111, 'Service Password', HX8, NML, %O'050', C, A, C),
;	MR6073	         (112, 'Service Device', C1, NML, %O'201', C, A, C),
;	MR6074	         (113, 'CPU', C1, NML, %O'201', C, A, C),
;	MR6075	         (120, 'Load File', AI, NML, %O'100', C, A, C, U),
;	MR6076	         (121, 'Secondary Loader', AI, NML, %O'100', C, A, C, U),
;	MR6077	         (122, 'Tertiary Loader', AI, NML, %O'100', C, A, C, U),
;	MR6078	         (125, 'Software Type', C1, NML, %O'201', C, A, C),
;	MR6079	         (126, 'Software Identification', AI, NML, %O'100', C, A, RO),
;	MR6080	         (130, 'Dump File', AI, NML, %O'100', C, A, C, U),
;	MR6081	         (131, 'Secondary Dumper', AI, NML, %O'100', C, A, C, U),
;	MR6082	         (135, 'Dump Address', O4, NML, %O'064', C, A, RO),
;	MR6083	         (136, 'Dump Count', DU4, NML, %O'004', C, A, RO),
;	MR6084	         (140, 'Host',, NML, %O'302', C, (A,E), RO),
;	MR6085	         (141, 'Host', CMN, NML, %O'302', C, (A,E), (WO, C)),
;	MR6086	         (150, 'Loop Count', DU2, NML, %O'002', C, E, RO),
;	MR6087	         (151, 'Loop Length', DU2, NML, %O'002', C, E, RO),
;	MR6088	         (152, 'Loop With', C1, NML, %O'201', C, E, RO),
;	MR6089	         (160, 'Counter Timer', DU2, NML, %O'002', C, (E,R), C),
;	MR6090	         (500, 'Name', CMN,, %O'302',, (E,R), (WO, C)),
;	MR6091	         (501, 'Circuit', AI,, %O'100', (C,'*'),, C, U),
;	MR6092	         (502, 'Address', CMN,, %O'302',, E, WO),
;	MR6093	         (510, 'Incoming Timer', DU2,, %O'002', C, E, C),
;	MR6094	         (511, 'Outgoing Timer', DU2,, %O'002', C, E, C),
;	MR6095	         (600, 'Active Links', DU2,, %O'002', (S,'*'), (E,R), RO),
;	MR6096	         (601, 'Delay', DU2,, %O'002', (S,'*'), R, RO),
;	MR6097	         (700, 'NSP Version',,,, C, E, RO),
;	MR6098	         (710, 'Maximum Links', DU2,, %O'002', C, E),
;	MR6099	         (720, 'Delay Factor', DU1,, %O'001', C, E),
;	MR6100	         (721, 'Delay Weight', DU1,, %O'001', C, E),
;	MR6101	         (722, 'Inactivity Timer', DU2,, %O'002', C, E),
		NMARCH -- Network Management Architecture Decla 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  76
		NODE Parameter Table				 3-Jan-1983 00:53:27	DNET61:<MCB.NML>NMARCH.REQ.1 (8)

;	MR6102	         (723, 'Retransmit Factor', DU2,, %O'002', C, E),
;	MR6103	         (810, 'Type', C1,, %O'201', S, A, RO),
;	MR6104	         (820, 'Cost', DU2,, %O'002', S, R, RO),
;	MR6105	         (821, 'Hops', DU1,, %O'001', S, R, RO),
;	MR6106	         (822, 'Circuit', AI,, %O'100', (S,'*'), R, RO),
;	MR6107	         (900, 'Routing Version',,,, C, E, RO),
;	MR6108	         (901, 'Type', C1,, %O'201', C, E),
;	MR6109	         (910, 'Routing Timer', DU2,, %O'002', C, E),
;	MR6110	         (911, 'Subaddresses', CM2,,, C, E),
;	MR6111	         (920, 'Maximum Address', DU2,, %O'002', C, E),
;	MR6112	         (921, 'Maximum Circuits', DU2,, %O'002', C, E),
;	MR6113	         (922, 'Maximum Cost', DU2,, %O'002', C, E),
;	MR6114	         (923, 'Maximum Hops', DU1,, %O'001', C, E),
;	MR6115	         (924, 'Maximum Visits', DU1,, %O'001', C, E),
;	MR6116	         (930, 'Maximum Buffers', DU2,, %O'002', C, E),
;	MR6117	         (931, 'Buffer Size', DU2,, %O'002', C, E),
;	 R6118	         (2500, 'Fence', DU2,, %O'002', C, A) %;
;	 R6119	
;	 R6120	!
;	 R6121	! Define text for coded parameter values
;	 R6122	!
;	 R6123	
;	 R6124	macro
;	MR6125	     $NML$NODE_CODES =
;	MR6126	         (000, ('On',                   ! STATE
;	MR6127	                'Off',
;	MR6128	                'Shut',
;	MR6129	                'Restricted',
;	MR6130	                'Reachable',
;	MR6131	                'Unreachable')),
;	MR6132	
;	MR6133	         (112, ('DP', '',               ! SERVICE DEVICE
;	MR6134	                'DU', '',               ! These values are even numbers, so we
;	MR6135	                'DL', '',               ! skip the odd ones.
;	MR6136	                'DQ', '',
;	MR6137	                'DA', '',
;	MR6138	                'DUP', '',
;	MR6139	                'DMC', '',
;	MR6140	                'DN', '',
;	MR6141	                'DLV', '',
;	MR6142	                'DMP', '',
;	MR6143	                'DTE', '',
;	MR6144	                'DV', '',
;	MR6145	                'DZ', '','','',         ! There is a gap of one even value
;	MR6146	                'KDP', '',              ! number here
;	MR6147	                'KDZ', '',
;	MR6148	                'KL', '',
;	MR6149	                'DMV', '',
;	MR6150	                'DPV')),
;	MR6151	
;	MR6152	         (113, ('PDP8',                 ! CPU
;	MR6153	                'PDP11',
		NMARCH -- Network Management Architecture Decla 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  77
		NODE Parameter Table				 3-Jan-1983 00:53:27	DNET61:<MCB.NML>NMARCH.REQ.1 (8)

;	MR6154	                'DECSYSTEM1020',
;	MR6155	                'VAX')),
;	MR6156	
;	MR6157	         (125, ('Secondary Loader',     ! SOFTWARE TYPE
;	MR6158	                'Tertiary Loader',
;	MR6159	                'System')),
;	MR6160	
;	MR6161	         (152, ('Zeroes',               ! LOOP WITH
;	MR6162	                'Ones',
;	MR6163	                'Mixed')),
;	MR6164	
;	MR6165	         (810, ('Routing',              ! TYPE (Read Only)
;	MR6166	                'Nonrouting',
;	MR6167	                'Phase II')),
;	MR6168	
;	MR6169	         (901, ('Routing',              ! TYPE
;	MR6170	                'Nonrouting',
;	 R6171	                'Phase II')) %;
		NMARCH -- Network Management Architecture Decla 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  78
		LINE Parameter Table				 3-Jan-1983 00:53:27	DNET61:<MCB.NML>NMARCH.REQ.1 (9)

;	 R6172	%sbttl 'LINE Parameter Table'
;	 R6173	
;	 R6174	! $NML$LINE_PARAMETERS - Parameter characteristic definitions
;	 R6175	!
;	 R6176	! Each entry has the format
;	 R6177	!
;	 R6178	!     (Parameter number,
;	 R6179	!      Literal name,
;	 R6180	!      Format for data extraction,
;	 R6181	!      Layer that exclusively owns this parameter,
;	 R6182	!      Data type,
;	 R6183	!      Information type,
;	 R6184	!      Applicability restriction,
;	 R6185	!      Settability restriction,
;	 R6186	!      Parameter text conversion)
;	 R6187	
;	 R6188	macro
;	MR6189	     $NML$LINE_PARAMETERS =
;	MR6190	         (0000, 'State', C1, NML, %O'201', (S,'*')),
;	MR6191	         (0001, 'Substate',, NML, %O'201', (S,'*'),, RO),
;	MR6192	         (0100, 'Service', C1, NML, %O'201', C),
;	MR6193	         (0110, 'Counter Timer', DU2, NML, %O'002', C,, C),
;	MR6194	         (1100, 'Device', AI,, %O'100', C),
;	MR6195	         (1105, 'Receive Buffers', DU2,, %O'002', C),
;	MR6196	         (1110, 'Controller', C1,, %O'201', C),
;	MR6197	         (1111, 'Duplex', C1,, %O'201', C),
;	MR6198	         (1112, 'Protocol', C1,, %O'201', C),
;	MR6199	         (1113, 'Clock', C1,, %O'201', C),
;	MR6200	         (1120, 'Service Timer', DU2,, %O'002', C),
;	MR6201	         (1121, 'Retransmit Timer', DU2,, %O'002', C),
;	MR6202	         (1122, 'Holdback Timer', DU2,, %O'002', C,, C),
;	MR6203	         (1130, 'Maximum Block', DU2,, %O'002', C),
;	MR6204	         (1131, 'Maximum Retransmits', DU1,, %O'001', C,, C),
;	MR6205	         (1132, 'Maximum Window', DU1,, %O'001', C),
;	MR6206	         (1150, 'Scheduling Timer', DU2,, %O'002', C,, C),
;	MR6207	         (1151, 'Dead Timer', DU2,, %O'002', C,, C),
;	MR6208	         (1152, 'Delay Timer', DU2,, %O'002', C,, C),
;	MR6209	         (1153, 'Stream Timer', DU2,, %O'002', C,, C),
;	MR6210	         (2650, 'Controller Register', O2,, %O'062', C),
;	MR6211	         (2651, 'Unit Register', O2,, %O'062', C),
;	MR6212	         (2655, 'Interrupt Vector', O2,, %O'062', C),
;	MR6213	         (2660, 'Interrupt Priority', DU1,, %O'001', C),
;	MR6214	         (2665, 'Receive Speed',,,, C),
;	MR6215	         (2666, 'Transmit Speed',,,, C),
;	 R6216	         (2670, 'Pause Timer', DU2,, %O'002', C) %;
;	 R6217	
;	 R6218	macro
;	MR6219	     $NML$LINE_CODES =
;	MR6220	         (0000, ('On',                  ! STATE
;	MR6221	                 'Off',
;	MR6222	                 'Service',
;	MR6223	                 'Cleared')),
		NMARCH -- Network Management Architecture Decla 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  79
		LINE Parameter Table				 3-Jan-1983 00:53:27	DNET61:<MCB.NML>NMARCH.REQ.1 (9)

;	MR6224	
;	MR6225	         (0001, ('Starting',            ! Substate
;	MR6226	                 'Reflecting',
;	MR6227	                 'Looping',
;	MR6228	                 'Loading',
;	MR6229	                 'Dumping',
;	MR6230	                 'Triggering',
;	MR6231	                 'Autoservice',
;	MR6232	                 'Autoloading',
;	MR6233	                 'Autodumping',
;	MR6234	                 'Autotriggering',
;	MR6235	                 'Synchronizing',
;	MR6236	                 'Failed')),
;	MR6237	
;	MR6238	         (0100, ('Enabled',             ! SERVICE
;	MR6239	                 'Disabled')),
;	MR6240	
;	MR6241	         (1110, ('Normal',              ! CONTROLLER
;	MR6242	                 'Loopback')),
;	MR6243	
;	MR6244	         (1111, ('Full',                ! DUPLEX
;	MR6245	                 'Half')),
;	MR6246	
;	MR6247	         (1112, ('DDCMP-Point',         ! PROTOCOL
;	MR6248	                 'DDCMP-Control',
;	MR6249	                 'DDCMP-Tributary',
;	MR6250	                 'X25',
;	MR6251	                 'DDCMP-DMC',
;	MR6252	                 'LAPB')),
;	MR6253	
;	MR6254	         (1113, ('External',            ! CLOCK
;	 R6255	                 'Internal')) %;
		NMARCH -- Network Management Architecture Decla 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  80
		LOGGING Parameter Table				 3-Jan-1983 00:53:27	DNET61:<MCB.NML>NMARCH.REQ.1 (10)

;	 R6256	%sbttl 'LOGGING Parameter Table'
;	 R6257	
;	 R6258	! $NML$LOGGING_PARAMETERS - Parameter characteristic definitions
;	 R6259	!
;	 R6260	! Each entry has the format
;	 R6261	!
;	 R6262	!     (Parameter number,
;	 R6263	!      Literal name,
;	 R6264	!      Format for data extraction,
;	 R6265	!      Layer that exclusively owns this parameter,
;	 R6266	!      Data type,
;	 R6267	!      Information type,
;	 R6268	!      Applicability restriction,
;	 R6269	!      Settability restriction,
;	 R6270	!      Parameter text conversion)
;	 R6271	!
;	 R6272	! NOTE: SINK NODE and EVENTS parameters are defined as read only until
;	 R6273	!       I figure out how I am going to handle multiple part parameters.
;	 R6274	!       Right now they cause the macro expansion to fail.
;	 R6275	
;	 R6276	macro
;	MR6277	     $NML$LOGGING_PARAMETERS =
;	MR6278	         (000, 'State', C1, NML, %O'201', (S,'*'), E),
;	MR6279	         (100, 'Name', AI, NML, %O'100', (C,'*'), E, RO),
;	MR6280	         (200, 'Sink Node', CMN, NML, %O'302', (EV,'*'), S, RO),
;	 R6281	         (201, 'Events', CME, NML, %O'305', (EV,'*'), S, RO) %;
;	 R6282	
;	 R6283	macro
;	MR6284	     $NML$LOGGING_CODES =
;	MR6285	         (000, ('On',                   ! STATE
;	MR6286	                'Off',
;	MR6287	                'Hold')),
;	MR6288	
;	MR6289	         (201, ('Node',                 ! EVENTS
;	MR6290	                'Line',
;	MR6291	                'Logging',
;	MR6292	                'Circuit',
;	 R6293	                'Module')) %;
		NMARCH -- Network Management Architecture Decla 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  81
		CIRCUIT Parameter Table				 3-Jan-1983 00:53:27	DNET61:<MCB.NML>NMARCH.REQ.1 (11)

;	 R6294	%sbttl 'CIRCUIT Parameter Table'
;	 R6295	
;	 R6296	! $NML$CIRCUIT_PARAMETERS - Parameter characteristic definitions
;	 R6297	!
;	 R6298	! Each entry has the format
;	 R6299	!
;	 R6300	!     (Parameter number,
;	 R6301	!      Literal name,
;	 R6302	!      Format for data extraction,
;	 R6303	!      Layer that exclusively owns this parameter,
;	 R6304	!      Data type,
;	 R6305	!      Information type,
;	 R6306	!      Applicability restriction,
;	 R6307	!      Settability restriction,
;	 R6308	!      Parameter text conversion)
;	 R6309	
;	 R6310	macro
;	MR6311	     $NML$CIRCUIT_PARAMETERS =
;	MR6312	         (0000, 'State', C1, NML, %O'201', (S,'*')),
;	MR6313	         (0001, 'Substate', C1, NML, %O'201', (S,'*'),, RO),
;	MR6314	         (0100, 'Service', C1, NML, %O'201', C),
;	MR6315	         (0110, 'Counter Timer', DU2, NML, %O'002', C,, C),
;	MR6316	         (0200, 'Connected Node',,,, (S,'*'),, RO),
;	MR6317	         (0201, 'Connected Object',,,, (S,'*'),, RO),
;	MR6318	         (0400, 'Loopback Name', AI,, %O'100', (S,'*'),, RO),
;	MR6319	         (0800, 'Adjacent Node',,,, (S,'*'),, RO),
;	MR6320	         (0810, 'Block Size', DU2,, %O'002', S,, RO),
;	MR6321	         (0900, 'Cost', DU1,, %O'001', C),
;	MR6322	         (0906, 'Hello Timer', DU2,, %O'002', C),
;	MR6323	         (0907, 'Listen Timer', DU2,, %O'002', C),
;	MR6324	         (0910, 'Blocking', C1,, %O'201', C),
;	MR6325	         (0920, 'Maximum Recalls', DU1,, %O'001', C,, C),
;	MR6326	         (0921, 'Recall Timer', DU2,, %O'002', C,, C),
;	MR6327	         (0930, 'Number', AI,, %O'100', C),
;	MR6328	         (1000, 'User',,,, (S,'*'),, RO),
;	MR6329	         (1010, 'Polling State', C1,, %O'201', (S,'*')),
;	MR6330	         (1011, 'Polling substate', C1,, %O'201', (S,'*'),, RO),
;	MR6331	         (1100, 'Owner',,,, C,, C),
;	MR6332	         (1110, 'Line', AI,, %O'100', C,,, U),
;	MR6333	         (1111, 'Usage', C1,, %O'201', C),
;	MR6334	         (1112, 'Type', C1,, %O'201', C),
;	MR6335	         (1120, 'DTE', AI,, %O'100', C,,, U),
;	MR6336	         (1121, 'Channel', DU2,, %O'002', C),
;	MR6337	         (1122, 'Maximum Data', DU2,, %O'002', C),
;	MR6338	         (1123, 'Maximum Window', DU1,, %O'001', C),
;	MR6339	         (1140, 'Tributary', DU1,, %O'001', C),
;	MR6340	         (1141, 'Babble Timer', DU2,, %O'002', C,, C),
;	MR6341	         (1142, 'Transmit Timer', DU2,, %O'002', C,, C),
;	MR6342	         (1145, 'Maximum Buffers', C1,, %O'201', C,, C),
;	MR6343	         (1146, 'Maximum Transmits', DU1,, %O'001', C,, C),
;	MR6344	         (1150, 'Active Base', DU1,, %O'001', C,, C),
;	MR6345	         (1151, 'Active Increment', DU1,, %O'001', C,, C),
		NMARCH -- Network Management Architecture Decla 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  82
		CIRCUIT Parameter Table				 3-Jan-1983 00:53:27	DNET61:<MCB.NML>NMARCH.REQ.1 (11)

;	MR6346	         (1152, 'Inactive Base', DU1,, %O'001', C,, C),
;	MR6347	         (1153, 'Inactive Increment', DU1,, %O'001', C,, C),
;	MR6348	         (1154, 'Inactive Threshold', DU1,, %O'001', C,, C),
;	MR6349	         (1155, 'Dying Base', DU1,, %O'001', C,, C),
;	MR6350	         (1156, 'Dying Increment', DU1,, %O'001', C,, C),
;	MR6351	         (1157, 'Dying Threshold', DU1,, %O'001', C,, C),
;	MR6352	         (1158, 'Dead Threshold', DU1,, %O'001', C,, C),
;	 R6353	         (2600, 'Node Type', C1,, %O'201', C) %;
;	 R6354	
;	 R6355	macro
;	MR6356	     $NML$CIRCUIT_CODES =
;	MR6357	         (0000, ('On',                  ! STATE
;	MR6358	                 'Off',
;	MR6359	                 'Service',
;	MR6360	                 'Cleared')),
;	MR6361	
;	MR6362	         (0001, ('Starting',            ! Substate
;	MR6363	                 'Reflecting',
;	MR6364	                 'Looping',
;	MR6365	                 'Loading',
;	MR6366	                 'Dumping',
;	MR6367	                 'Triggering',
;	MR6368	                 'Autoservice',
;	MR6369	                 'Autoloading',
;	MR6370	                 'Autodumping',
;	MR6371	                 'Autotriggering',
;	MR6372	                 'Synchronizing',
;	MR6373	                 'Failed')),
;	MR6374	
;	MR6375	         (0100, ('Enabled',             ! SERVICE
;	MR6376	                 'Disabled')),
;	MR6377	
;	MR6378	         (0910, ('Enabled',             ! BLOCKING
;	MR6379	                 'Disabled')),
;	MR6380	
;	MR6381	         (1000, ('Node',                ! USER
;	MR6382	                 'Line',
;	MR6383	                 'Logging',
;	MR6384	                 'Circuit',
;	MR6385	                 'Module')),
;	MR6386	
;	MR6387	         (1100, ('Node',                ! OWNER
;	MR6388	                 'Line',
;	MR6389	                 'Logging',
;	MR6390	                 'Circuit',
;	MR6391	                 'Module')),
;	MR6392	
;	MR6393	         (1111, ('Permanent',           ! USAGE
;	MR6394	                 'Incoming',
;	MR6395	                 'Outgoing')),
;	MR6396	
;	MR6397	         (1112, ('DDCMP-Point',         ! TYPE
		NMARCH -- Network Management Architecture Decla 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  83
		CIRCUIT Parameter Table				 3-Jan-1983 00:53:27	DNET61:<MCB.NML>NMARCH.REQ.1 (11)

;	MR6398	                 'DDCMP-Control',
;	MR6399	                 'DDCMP-Tributary',
;	MR6400	                 'X25',
;	MR6401	                 'DDCMP-DMC',
;	MR6402	                 'LAPB')),
;	MR6403	
;	MR6404	         (1145, ('Unlimited')),         ! MAXIMUM BUFFERS (255)
;	MR6405	
;	MR6406	         (2600, ('Routing',             ! NODE TYPE
;	MR6407	                 'Nonrouting',
;	 R6408	                 'Phase II')) %;
		NMARCH -- Network Management Architecture Decla 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  84
		MODULE Parameter Table				 3-Jan-1983 00:53:27	DNET61:<MCB.NML>NMARCH.REQ.1 (12)

;	 R6409	%sbttl 'MODULE Parameter Table'
;	 R6410	
;	 R6411	! $NML$MODULE_PARAMETERS - Parameter characteristic definitions
;	 R6412	!
;	 R6413	! Each entry has the format
;	 R6414	!
;	 R6415	!     (Parameter number,
;	 R6416	!      Literal name,
;	 R6417	!      Format for data extraction,
;	 R6418	!      Layer that exclusively owns this parameter,
;	 R6419	!      Data type,
;	 R6420	!      Information type,
;	 R6421	!      Applicability restriction,
;	 R6422	!      Settability restriction,
;	 R6423	!      Parameter text conversion)
;	 R6424	
;	 R6425	macro
;	MR6426	     $NML$MODULE_PARAMETERS =
;	MR6427	         (0000, 'State', C1,, %O'201', (S,'*'), Q),
;	MR6428	         (0100, 'Counter Timer', DU2, NML, %O'002', C, Q, C),
;	MR6429	         (0200, 'Active Circuits', DU2,, %O'002', (S,'*'),, RO),
;	MR6430	         (0300, 'Destination', AI,, %O'100', Q,,, U),
;	MR6431	         (0310, 'Maximum Circuits', DU2,, %O'002', C),
;	MR6432	
;	MR6433	         %if $MCB
;	MR6434	         %then                          ! MODULE X25-SERVER parameters
;	MR6435	         (0320, 'Node', CMN,, %O'302', C, Q),
;	MR6436	         (0330, 'User', AI,, %O'100', C, Q, C, U),
;	MR6437	         (0331, 'Password', AI,, %O'100', C, Q, C),
;	MR6438	         (0332, 'Account', AI,, %O'100', C, Q, C, U),
;	MR6439	         %else                          ! MODULE X25-ACCESS parameters
;	MR6440	         (0320, 'Node', CMN, NML, %O'302', C, Q),
;	MR6441	         (0330, 'User', AI, NML, %O'100', C, Q, C, U),
;	MR6442	         (0331, 'Password', AI, NML, %O'100', C, Q, C),
;	MR6443	         (0332, 'Account', AI, NML, %O'100', C, Q, C, U),
;	MR6444	         %fi
;	MR6445	
;	MR6446	         (0340, 'Object', CMO,,, C, Q),
;	MR6447	         (0350, 'Priority', DU1,, %O'001', C, Q, C),
;	MR6448	         (0351, 'Call Mask', HI,,, C, Q, C),
;	MR6449	         (0352, 'Call Value', HI,,, C, Q, C),
;	MR6450	         (0353, 'Group', AI,, %O'100', C, Q, C, U),
;	MR6451	         (0354, 'Number', AI,, %O'100', C, Q, C),
;	MR6452	         (0355, 'Subaddresses', CM2,,, C, Q, C),
;	MR6453	         (1000, 'Active Channels', DU2,, %O'002', (S,'*'), Q, RO),
;	MR6454	         (1010, 'Active Switched', DU2,, %O'002', (S,'*'), Q, RO),
;	MR6455	         (1100, 'DTE', AI,, %O'100', Q,,, U),
;	MR6456	         (1101, 'Group', AI,, %O'100', Q,,, U),
;	MR6457	
;	MR6458	         %if $MCB
;	MR6459	         %then                          ! MODULE X25-PROTOCOL parameter
;	MR6460	         (1110, 'Network', AI,, %O'100', C,,, U),
		NMARCH -- Network Management Architecture Decla 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  85
		MODULE Parameter Table				 3-Jan-1983 00:53:27	DNET61:<MCB.NML>NMARCH.REQ.1 (12)

;	MR6461	         %else                          ! MODULE X25-ACCESS parameter
;	MR6462	         (1110, 'Network', AI, NML, %O'100', Q,,, U),
;	MR6463	         %fi
;	MR6464	
;	MR6465	         (1120, 'Line', AI,, %O'100', C, Q, C, U),
;	MR6466	         (1130, 'Channels', CM2,,, C, Q),
;	MR6467	         (1131, 'Maximum Channels', DU2,, %O'002', C, Q, RO),
;	MR6468	         (1140, 'Default Data', DU2,, %O'002', C),
;	MR6469	         (1141, 'Default Window', DU1,, %O'001', C),
;	MR6470	         (1150, 'Maximum Data', DU2,, %O'002', C),
;	MR6471	         (1151, 'Maximum Window', DU1,, %O'001', C),
;	MR6472	         (1152, 'Maximum Clears', DU1,, %O'001', C,, C),
;	MR6473	         (1153, 'Maximum Resets', DU1,, %O'001', C,, C),
;	MR6474	         (1154, 'Maximum Restarts', DU1,, %O'001', C,, C),
;	MR6475	         (1160, 'Call Timer', DU1,, %O'001', C,, C),
;	MR6476	         (1161, 'Clear Timer', DU1,, %O'001', C,, C),
;	MR6477	         (1162, 'Reset Timer', DU1,, %O'001', C,, C),
;	MR6478	         (1163, 'Restart Timer', DU1,, %O'001', C,, C),
;	MR6479	         (1170, 'DTE', AI,, %O'100', C, Q, C, U),
;	MR6480	         (1171, 'Number', DU2,, %O'002', C, Q),
;	 R6481	         (1172, 'Type', C1,, %O'201', C, Q, C) %;
;	 R6482	
;	 R6483	macro
;	MR6484	     $NML$MODULE_CODES =
;	MR6485	         (0000, ('On',                  ! STATE
;	MR6486	                 'Off',
;	MR6487	                 'Shut')),
;	MR6488	
;	MR6489	         (1172, ('Not Applicable',
;	 R6490	                 'Bilateral')) %;       ! TYPE
		NMARCH -- Network Management Architecture Decla 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  86
		CIRCUIT Counters				 3-Jan-1983 00:53:27	DNET61:<MCB.NML>NMARCH.REQ.1 (13)

;	 R6491	%sbttl 'CIRCUIT Counters'
;	 R6492	
;	 R6493	macro
;	MR6494	     $NML$CIRCUIT_COUNTERS =
;	MR6495	         (0000, 'Seconds Since Last Zeroed', 16),,
;	MR6496	         (0800, 'Terminating Packets Received', 32),,
;	MR6497	         (0801, 'Originating Packets Sent', 32),,
;	MR6498	         (0802, 'Terminating Congestion Loss', 16),,
;	MR6499	         (0805, 'Corruption Loss', 8),,
;	MR6500	         (0810, 'Transit Packets Received', 32),,
;	MR6501	         (0811, 'Transit Packets Sent', 32),,
;	MR6502	         (0812, 'Transit Congestion Loss', 16),,
;	MR6503	         (0820, 'Circuit Downs', 8),,
;	MR6504	         (0821, 'Initialization Failures', 8),,
;	MR6505	         (1000, 'Bytes Received', 32),,
;	MR6506	         (1001, 'Bytes Sent', 32),,
;	MR6507	         (1010, 'Data Blocks Received', 32),,
;	MR6508	         (1011, 'Data Blocks Sent', 32),,
;	MR6509	         (1020, 'Data Error Inbound', 8),
;	MR6510	             ((0, 'NAKs Sent, Header Block Check Error'),
;	MR6511	              (1, 'NAKs Sent, Data Field Block Check Error'),
;	MR6512	              (2, 'NAKs Sent, REP Response')),
;	MR6513	         (1021, 'Data Errors Outbound', 8),
;	MR6514	             ((0, 'NAKs Received, Header Block Check Error'),
;	MR6515	              (1, 'NAKs Received, Data Field'),
;	MR6516	              (2, 'NAKs Received, REP Response')),
;	MR6517	         (1030, 'Remote Reply Timeouts', 8),,
;	MR6518	         (1031, 'Local Reply Timeouts', 8),,
;	MR6519	         (1040, 'Remote Buffer Errors', 8),
;	MR6520	             ((0, 'NAKs Received, Buffer Unavailable'),
;	MR6521	              (1, 'NAKs Received, Buffer Too Small')),
;	MR6522	         (1041, 'Local Buffer Errors', 8),
;	MR6523	             ((0, 'NAKs Sent, Buffer Unavailable'),
;	MR6524	              (1, 'NAKs Sent, Buffer Too Small')),
;	MR6525	         (1050, 'Selection Intervals Elapsed', 16),,
;	MR6526	         (1051, 'Selection Timeouts', 8),
;	MR6527	             ((0, 'No Reply To Select'),
;	MR6528	              (1, 'Incomplete Reply To Select')),
;	MR6529	         (1240, 'Locally Initiated Resets', 8),,
;	MR6530	         (1241, 'Remotely Initiated Resets', 8),,
;	MR6531	         (1242, 'Network Initiated Resets', 8),
;	 R6532	         %;
		NMARCH -- Network Management Architecture Decla 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  87
		LINE Counters					 3-Jan-1983 00:53:27	DNET61:<MCB.NML>NMARCH.REQ.1 (14)

;	 R6533	%sbttl 'LINE Counters'
;	 R6534	
;	 R6535	macro
;	MR6536	     $NML$LINE_COUNTERS =
;	MR6537	         (0000, 'Seconds Since Last Zeroed', 16),,
;	MR6538	         (1000, 'Bytes Received', 32),,
;	MR6539	         (1001, 'Bytes Sent', 32),,
;	MR6540	         (1010, 'Data Blocks Received', 32),,
;	MR6541	         (1011, 'Data Blocks Sent', 32),,
;	MR6542	         (1020, 'Data Errors Inbound', 8),
;	MR6543	             ((0, 'NAKs Sent, Header Block Check Error'),
;	MR6544	              (1, 'NAKs Sent, Data Field Block Check'),
;	MR6545	              (2, 'NAKs Sent, REP Response'),
;	MR6546	              (3, 'Block Too Long'),
;	MR6547	              (4, 'Block Check Error'),
;	MR6548	              (5, 'REJ Sent')),
;	MR6549	         (1021, 'Data Errors Outbound', 8),
;	MR6550	             ((0, 'NAKs Received, Header Block Check Error'),
;	MR6551	              (1, 'NAKs Received, Data Field Block Check Error'),
;	MR6552	              (2, 'NAKs Received, REP Response'),
;	MR6553	              (3, 'REJ Received')),
;	MR6554	         (1030, 'Remote Reply Timeouts', 8),,
;	MR6555	         (1031, 'Local Reply Timeouts', 8),,
;	MR6556	         (1040, 'Remote Buffer Errors', 8),
;	MR6557	             ((0, 'NAKs Received, Buffer Unavailable'),
;	MR6558	              (1, 'NAKs Received, Buffer Too Small'),
;	MR6559	              (2, 'RNR Received, Buffer Unavailable')),
;	MR6560	         (1041, 'Local Buffer Errors', 8),
;	MR6561	             ((0, 'NAKs Sent, Buffer Unavailable'),
;	MR6562	              (1, 'NAKs Sent, Buffer Too Small'),
;	MR6563	              (2, 'RNR Sent, Buffer Unavailable')),
;	MR6564	         (1050, 'Selection Intervals Elapsed', 16),,
;	MR6565	         (1051, 'Selection Timeouts', 8),
;	MR6566	             ((0, 'No Reply To Select'),
;	MR6567	              (1, 'Incomplete Reply To Select')),
;	MR6568	         (1100, 'Remote Process Errors', 8),
;	MR6569	             ((0, 'NAKs Received, Receive Overrun'),
;	MR6570	              (1, 'NAKs Sent, Header Format Error'),
;	MR6571	              (2, 'Selection Address Errors'),
;	MR6572	              (3, 'Streaming Tributaries'),
;	MR6573	              (4, 'Invalid N(R) Received'),
;	MR6574	              (5, 'FRMR Sent, Header Format Error')),
;	MR6575	         (1101, 'Local Process Errors', 8),
;	MR6576	             ((0, 'NAKs Sent, Receive Overrun'),
;	MR6577	              (1, 'Receiving Overruns, NAKs Not Sent'),
;	MR6578	              (2, 'Transmit Underrun'),
;	MR6579	              (3, 'NAKs Received, Header Format Error'),
;	MR6580	              (4, 'Receive Overrun'),
;	MR6581	              (5, 'FRMR Received, Header Format Error')),
;	MR6582	         (2500, 'Device Configuration Errors', 8),
;	MR6583	             ((0, 'Invalid Controller Register'),
;	MR6584	              (1, 'Non-existent Controller Register'),
		NMARCH -- Network Management Architecture Decla 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  88
		LINE Counters					 3-Jan-1983 00:53:27	DNET61:<MCB.NML>NMARCH.REQ.1 (14)

;	MR6585	              (2, 'Invalid Unit Register'),
;	MR6586	              (3, 'Non-existent Unit Register'),
;	MR6587	              (4, 'Invalid Interrupt Vector'),
;	MR6588	              (5, 'Conflicting Interrupt Vector'),
;	MR6589	              (6, 'Invalid Interrupt priority')),
;	MR6590	         (2501, 'Device Service Errors', 8),
;	MR6591	             ((0, 'Lost Interrupt'),
;	MR6592	              (1, 'Lost RDYI'),
;	MR6593	              (2, 'Lost HALT'),
;	MR6594	              (3, 'Lost Transmit'),
;	MR6595	              (4, 'Lost Doorbell')),
;	MR6596	         (2502, 'Fatal Device Errors', 8),
;	MR6597	             ((0, 'Invalid Register Contents'),
;	MR6598	              (1, 'Receive BA mismatch'),
;	MR6599	              (2, 'Transmit BA mismatch'),
;	MR6600	              (3, 'Non-existent Memory Address given to Device'),
;	MR6601	              (4, 'Microcode error'),
;	MR6602	              (5, 'Completion Queue Overrun'),
;	MR6603	              (6, 'Doorbell Stuck')),
;	MR6604	         (2503, 'KMC Polling Adjustments', 8),
;	 R6605	         %;
		NMARCH -- Network Management Architecture Decla 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  89
		MODULE Counters					 3-Jan-1983 00:53:27	DNET61:<MCB.NML>NMARCH.REQ.1 (15)

;	 R6606	%sbttl 'MODULE Counters'
;	 R6607	
;	 R6608	macro
;	MR6609	     $NML$MODULE_COUNTERS =
;	MR6610	         (0000, 'Seconds Since Last Zeroed', 16),,
;	MR6611	         (0200, 'Maximum Circuits Active', 16),,
;	MR6612	         (0210, 'Incoming Calls Rejected, No resources', 8),,
;	MR6613	         (0211, 'Logical Links Rejected, No resources', 8),,
;	MR6614	         (1000, 'Bytes Received', 32),,
;	MR6615	         (1001, 'Bytes Sent', 32),,
;	MR6616	         (1010, 'Data Blocks Received', 32),,
;	MR6617	         (1011, 'Data Blocks Sent', 32),,
;	MR6618	         (1200, 'Calls Received', 16),,
;	MR6619	         (1201, 'Calls Sent', 16),,
;	MR6620	         (1210, 'Fast Selects Received', 16),,
;	MR6621	         (1211, 'Fast Selects Sent', 16),,
;	MR6622	         (1220, 'Maximum Switched Circuits Active', 16),,
;	MR6623	         (1221, 'Maximum Channels Active', 16),,
;	MR6624	         (1230, 'Received Call Resource Errors', 16),,
;	MR6625	         (1240, 'Locally Initiated Resets', 8),,
;	MR6626	         (1241, 'Network Initiated Resets', 8),,
;	MR6627	         (1242, 'Remotely Initiated Resets', 8),,
;	MR6628	         (1250, 'Restarts', 8),
;	 R6629	         %;
		NMARCH -- Network Management Architecture Decla 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  90
		NODE Counters					 3-Jan-1983 00:53:27	DNET61:<MCB.NML>NMARCH.REQ.1 (16)

;	 R6630	%sbttl 'NODE Counters'
;	 R6631	
;	 R6632	macro
;	MR6633	     $NML$NODE_COUNTERS =
;	MR6634	         (0000, 'Seconds Since Last Zeroed', 16),,
;	MR6635	         (0600, 'Bytes Received', 32),,
;	MR6636	         (0601, 'Bytes Sent', 32),,
;	MR6637	         (0610, 'Messages Received', 32),,
;	MR6638	         (0611, 'Messages Sent', 32),,
;	MR6639	         (0620, 'Connects Received', 16),,
;	MR6640	         (0621, 'Connects Sent', 16),,
;	MR6641	         (0630, 'Response Timeouts', 16),,
;	MR6642	         (0640, 'Received Connect Resource Errors', 16),,
;	MR6643	         (0700, 'Maximum Logical Links Active', 16),,
;	MR6644	         (0900, 'Packet Loss', 8),,
;	MR6645	         (0901, 'Node Unreachable Packet Loss', 16),,
;	MR6646	         (0902, 'Node Out-of-Range Packet Loss', 8),,
;	MR6647	         (0903, 'Oversized Packet Loss', 8),,
;	MR6648	         (0910, 'Packet Format Errors', 8),,
;	MR6649	         (0920, 'Partial Routing Update Loss', 8),,
;	MR6650	         (0930, 'Verification Rejects', 8),
;	 R6651	         %;
		NMARCH -- Network Management Architecture Decla 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  91
		Events						 3-Jan-1983 00:53:27	DNET61:<MCB.NML>NMARCH.REQ.1 (17)

;	 R6652	%sbttl 'Events'
;	 R6653	
;	 R6654	macro
;	MR6655	    $NML$EVENTS =
;	MR6656	        $NML$NETWORK_MANAGEMENT_EVENTS,
;	MR6657	        $NML$SESSION_CONTROL_EVENTS,
;	MR6658	        $NML$NETWORK_SERVICES_EVENTS,
;	MR6659	        $NML$TRANSPORT_EVENTS,
;	MR6660	        $NML$DATA_LINK_EVENTS,
;	 R6661	        $NML$PHYSICAL_LINK_EVENTS %,
;	MR6662	    $NML$EVENT_PARAMS =
;	MR6663	        $NML$NETWORK_MANAGEMENT_PARAMS,
;	MR6664	        $NML$SESSION_CONTROL_PARAMS,
;	MR6665	        $NML$NETWORK_SERVICES_PARAMS,
;	MR6666	        $NML$TRANSPORT_PARAMS,
;	MR6667	        $NML$DATA_LINK_PARAMS,
;	 R6668	        $NML$PHYSICAL_LINK_PARAMS %;
;	 R6669	
;	 R6670	macro
;	MR6671	    $NML$NETWORK_MANAGEMENT_EVENTS =
;	MR6672	        (0, 0, none, 'Event records lost'),
;	MR6673	        (0, 1, node, 'Automatic node counters', Counters),
;	MR6674	        (0, 2, line, 'Automatic line counters', Counters),
;	MR6675	        (0, 3, line, 'Automatic line service', (0, 1)),
;	MR6676	        (0, 4, line, 'Line counters zeroed', Counters),
;	MR6677	        (0, 5, node, 'Node counters zeroed', Counters),
;	MR6678	        (0, 6, circuit, 'Passive loopback', 2),
;	MR6679	        (0, 7, circuit, 'Aborted service request', 3),
;	MR6680	        (0, 8, any, 'Automatic counters', (4, Counters)),
;	 R6681	        (0, 9, any, 'Counters zeroed', (4, Counters)) %,
;	 R6682	
;	MR6683	    $NML$NETWORK_MANAGEMENT_PARAMS =
;	MR6684	        (0, (C, 1, 'Service', (0, 'Load',
;	MR6685	                               1, 'Dump'))),
;	MR6686	        (1, (CM, 'Status',
;	MR6687	             (C, 1, 'Return code'),,
;	MR6688	             (C, 2, 'Error detail'), optional,
;	MR6689	             (AI, 72, 'Error message'), optional)),
;	MR6690	        (2, (C, 1, 'Operation', (0, 'Initiated',
;	MR6691	                                 1, 'Terminated'))),
;	MR6692	        (3, (C, 1, 'Reason', (0, 'Receive timeout',
;	MR6693	                              1, 'Receive error',
;	MR6694	                              2, 'Line state change by higher level',
;	MR6695	                              3, 'Unrecognized request',
;	MR6696	                              4, 'Line open error'))),
;	MR6697	        (4, (CM, 'Qualifier',
;	MR6698	             (C, 2, 'Parameter type'),,
;	 R6699	             (AI, 16, 'ID string'))) %;
;	 R6700	
;	 R6701	macro
;	MR6702	    $NML$SESSION_CONTROL_EVENTS =
;	MR6703	        (2, 0, none, 'Local node state change', (0, 1, 2)),
		NMARCH -- Network Management Architecture Decla 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  92
		Events						 3-Jan-1983 00:53:27	DNET61:<MCB.NML>NMARCH.REQ.1 (17)

;	 R6704	        (2, 1, none, 'Access control reject', (3, 4, 5, 6, 7, 8)) %,
;	 R6705	
;	MR6706	    $NML$SESSION_CONTROL_PARAMS =
;	MR6707	        (0, (C, 1, 'Reason', (0, 'Operator Command',
;	MR6708	                              1, 'Normal Operation'))),
;	MR6709	        (1, (C, 1, 'Old State', (0, 'On',
;	MR6710	                                 1, 'Off',
;	MR6711	                                 2, 'Shut',
;	MR6712	                                 3, 'Restricted'))),
;	MR6713	        (2, (C, 1, 'New State', (0, 'On',
;	MR6714	                                 1, 'Off',
;	MR6715	                                 2, 'Shut',
;	MR6716	                                 3, 'Restricted'))),
;	MR6717	        (3, (NODE_ID, 'Source Node')),
;	MR6718	        (4, (CM, 'Source Process',
;	MR6719	             (DU, 1, 'Object Type'),,
;	MR6720	             (DU, 1, 'Group Code'), optional,
;	MR6721	             (DU, 1, 'User Code'), optional,
;	MR6722	             (AI, 16, 'Process Name'), optional)),
;	MR6723	        (5, (CM, 'Destination Process',
;	MR6724	             (DU, 1, 'Object Type'),,
;	MR6725	             (DU, 1, 'Group Code'), optional,
;	MR6726	             (DU, 1, 'User Code'), optional,
;	MR6727	             (AI, 16, 'Process Name'), optional)),
;	MR6728	        (6, (AI, 39, 'User')),
;	MR6729	        (7, (C, 1, 'Password', (0, 'Set'))),
;	 R6730	        (8, (AI, 39, 'Account')) %;
;	 R6731	
;	 R6732	macro
;	MR6733	    $NML$NETWORK_SERVICES_EVENTS =
;	MR6734	        (3, 0, none, 'Invalid message', 0),
;	MR6735	        (3, 1, none, 'Invalid flow control', (0, 1)),
;	 R6736	        (3, 2, node, 'Data base reused', Counters) %,
;	 R6737	
;	MR6738	    $NML$NETWORK_SERVICES_PARAMS =
;	MR6739	        (0, (HI, 12, 'Message')),
;	 R6740	        (1, (DS, 1, 'Current Flow Control Request Count')) %;
;	 R6741	
;	 R6742	macro
;	MR6743	    $NML$TRANSPORT_EVENTS =
;	MR6744	        (4, 0, none, 'Aged packet loss', 0),
;	MR6745	        (4, 1, circuit, 'Node unreachable packet loss', 0),
;	MR6746	        (4, 2, circuit, 'Node out-of-range packet loss', 0),
;	MR6747	        (4, 3, circuit, 'Oversize packet loss', 0),
;	MR6748	        (4, 4, circuit, 'Packet format error', 1),
;	MR6749	        (4, 5, circuit, 'Partial routing update loss', (0, 2)),
;	MR6750	        (4, 6, circuit, 'Verification reject', 3),
;	MR6751	        (4, 7, circuit, 'Circuit down, circuit fault', 5),
;	MR6752	        (4, 8, circuit, 'Circuit down, software fault', (5, 0)),
;	MR6753	        (4, 9, circuit, 'Circuit down, operator fault', (5, 0, 4)),
;	MR6754	        (4, 10, circuit, 'Line up', 3),
;	MR6755	        (4, 11, circuit, 'Initialization failure, line fault', 5),
		NMARCH -- Network Management Architecture Decla 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  93
		Events						 3-Jan-1983 00:53:27	DNET61:<MCB.NML>NMARCH.REQ.1 (17)

;	MR6756	        (4, 12, circuit, 'Initialization failure, software fault', (5, 0)),
;	MR6757	        (4, 13, circuit, 'Initialization failure, operator fault', (5, 0, 6)),
;	 R6758	        (4, 14, node, 'Node reachability change', 7) %,
;	 R6759	
;	MR6760	    $NML$TRANSPORT_PARAMS =
;	MR6761	        (0, (CM, 'Packet Header',
;	MR6762	             (H, 1, 'Message Flags'), optional,
;	MR6763	             (DU, 2, 'Destination Node Address'),,
;	MR6764	             (DU, 2, 'Source Node Address'), optional,
;	MR6765	             (H, 1, 'Forwarding Data'))),
;	MR6766	        (1, (HI, 6, 'Packet Beginning')),
;	MR6767	        (2, (DU, 2, 'Highest Address')),
;	MR6768	        (3, (NODE_ID, 'Node')),
;	MR6769	        (4, (NODE_ID, 'Expected Node')),
;	MR6770	        (5, (C, 1, 'Reason', (0, 'Line Synchronization Lost',
;	MR6771	                              1, 'Data Errors',
;	MR6772	                              2, 'Unexpected Packet Type',
;	MR6773	                              3, 'Routing Update Checksum Error',
;	MR6774	                              4, 'Adjacent Node Address Change',
;	MR6775	                              5, 'Verification Receive Timeout',
;	MR6776	                              6, 'Version Skew',
;	MR6777	                              7, 'Adjacent Node Address out of Range',
;	MR6778	                              8, 'Adjacent Node Block Size too Small',
;	MR6779	                              9, 'Invalid Verification Seed Value',
;	MR6780	                              10, 'Adjacent Node Listener Receive Timeout',
;	MR6781	                              11, 'Adjacent Node Listener Received Invalid Data',
;	MR6782	                              12, 'Call Failed'))),
;	MR6783	        (6, (CM, 'Received Version',
;	MR6784	             (DU, 1, 'Version Number'),,
;	MR6785	             (DU, 1, 'ECO Number'),,
;	MR6786	             (DU, 1, 'User ECO Number'))),
;	MR6787	        (7, (C, 1, 'Status', (0, 'Reachable',
;	 R6788	                              1, 'Unreachable'))) %;
;	 R6789	
;	 R6790	macro
;	MR6791	    $NML$DATA_LINK_EVENTS =
;	MR6792	        (5, 0, circuit, 'Locally initiated state change', (0, 1)),
;	MR6793	        (5, 1, circuit, 'Remotely initiated state change', (0, 1)),
;	MR6794	        (5, 2, circuit, 'Protocol restart received in maintenance mode'),
;	MR6795	        (5, 3, circuit, 'Send error threshold', Counters),
;	MR6796	        (5, 4, circuit, 'Receive error threshold', Counters),
;	MR6797	        (5, 5, circuit, 'Select error threshold', Counters),
;	MR6798	        (5, 6, circuit, 'Block header format error', 2),
;	MR6799	        (5, 7, circuit, 'Selection address error', (3, 6, 4)),
;	MR6800	        (5, 8, circuit, 'Streaming tributary', (5, 6)),
;	MR6801	        (5, 9, circuit, 'Local buffer too small', (7, 8)),
;	MR6802	        (5, 10, module, 'Restart', (9, 14, 15)),
;	MR6803	        (5, 11, module, 'State change', (9, 10, 11, 12)),
;	MR6804	        (5, 12, module, 'Retransmit maximum exceeded', (9, 12)),
;	 R6805	        (96 + 5, 13, circuit, 'Maintenance message received') %,
;	 R6806	
;	MR6807	    $NML$DATA_LINK_PARAMS =
		NMARCH -- Network Management Architecture Decla 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  94
		Events						 3-Jan-1983 00:53:27	DNET61:<MCB.NML>NMARCH.REQ.1 (17)

;	MR6808	        (0, (C, 1, 'Old State', (0, 'Halted',
;	MR6809	                                 1, 'Istrt',
;	MR6810	                                 2, 'Astrt',
;	MR6811	                                 3, 'Running',
;	MR6812	                                 4, 'Maintenance'))),
;	MR6813	        (1, (C, 1, 'New State', (0, 'Halted',
;	MR6814	                                 1, 'Istrt',
;	MR6815	                                 2, 'Astrt',
;	MR6816	                                 3, 'Running',
;	MR6817	                                 4, 'Maintenance'))),
;	MR6818	        (2, (HI, 6, 'Header')),
;	MR6819	        (3, (DU, 1, 'Selected Tributary')),
;	MR6820	        (4, (DU, 1, 'Previous Tributary')),
;	MR6821	        (5, (C, 1, 'Tributary Status', (0, 'Streaming',
;	MR6822	                                        1, 'Continued Send after Timeout',
;	MR6823	                                        2, 'Continued Send after Deselect',
;	MR6824	                                        3, 'Endec Streaming'))),
;	MR6825	        (6, (DU, 1, 'Received Tributary')),
;	MR6826	        (7, (DU, 2, 'Block Length')),
;	MR6827	        (8, (DU, 2, 'Buffer Length')),
;	MR6828	        (9, (AI, 16, 'DTE')),
;	MR6829	        (10, (C, 1, 'Reason', (0, 'Operator Command',
;	MR6830	                               1, 'Normal Operation'))),
;	MR6831	        (11, (C, 1, 'Old State', (0, 'Off',
;	MR6832	                                  1, 'On'))),
;	MR6833	        (12, (C, 1, 'New State', (0, 'Off',
;	MR6834	                                  1, 'On'))),
;	MR6835	        (13, (C, 2, 'Parameter Type')),
;	MR6836	        (14, (DU, 1, 'Cause')),
;	 R6837	        (15, (DU, 1, 'Diagnostic')) %;
;	 R6838	
;	 R6839	macro
;	MR6840	    $NML$PHYSICAL_LINK_EVENTS =
;	MR6841	        (6, 0, line, 'Data set ready transition', 1),
;	MR6842	        (6, 1, line, 'Ring indicator transition', 1),
;	MR6843	        (6, 2, line, 'Unexpected carrier transition', 1),
;	MR6844	        (6, 3, line, 'Memory access error', 0),
;	MR6845	        (6, 4, line, 'Communications interface error', 0),
;	MR6846	        (6, 5, line, 'Performance error', 0),
;	MR6847	        (96 + 6, 0, line, 'Device configuration error', (2500, 2501)),
;	MR6848	        (96 + 6, 1, line, 'Device service error', 2504),
;	MR6849	        (96 + 6, 2, line, 'Fatal device error', (2504, 0)),
;	MR6850	        (96 + 6, 3, line, 'KMC Polling adjustment', 2502),
;	MR6851	        (96 + 6, 4, line, 'DTE-20 Protocol error', 2503),
;	 R6852	        (96 + 6, 5, line, 'DTE-20 pause timeout') %,
;	 R6853	
;	MR6854	    $NML$PHYSICAL_LINK_PARAMS =
;	MR6855	        (0, (H, 2, 'Device Register')),
;	MR6856	        (1, (C, 1, 'New State', (0, 'Off',
;	MR6857	                                 1, 'On'))),
;	MR6858	        (2500, (C, 2, 'Parameter Number')),
;	MR6859	        (2501, (O, 2, 'Parameter Value')),
		NMARCH -- Network Management Architecture Decla 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  95
		Events						 3-Jan-1983 00:53:27	DNET61:<MCB.NML>NMARCH.REQ.1 (17)

;	MR6860	        (2502, (DU, 1, 'Polling Count')),
;	MR6861	        (2503, (O, 4, 'Comm/Region Word')),
;	MR6862	        (2504, (C, 1, 'Reason', (0, 'Invalid Output Code',
;	MR6863	                                 1, 'Invalid Unit',
;	MR6864	                                 2, 'Invalid Error Notification',
;	MR6865	                                 3, 'Receive BA Error',
;	MR6866	                                 4, 'Transmit BA Error',
;	MR6867	                                 5, 'Procedure Error',
;	MR6868	                                 6, 'Completion Queue Overrun',
;	MR6869	                                 7, 'Non-existent Memory',
;	MR6870	                                 8, 'Microcode Won''t Load',
;	MR6871	                                 9, 'Microcode Won''t Start',
;	MR6872	                                 10, 'Doorbell Stuck',
;	MR6873	                                 11, 'Lost Interrupt',
;	MR6874	                                 12, 'Lost RDYI',
;	MR6875	                                 13, 'Lost Halt',
;	MR6876	                                 14, 'Lost Transmit',
;	MR6877	                                 15, 'Receive Overrun',
;	 R6878	                                 16, 'Doorbell Lost'))) %;
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  96
								 3-Jan-1983 00:53:27	DNET61:<MCB.NML>NMARCH.REQ.1 (18)

;	 R6879	%title '' %sbttl ''
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  97
								 3-Jan-1983 00:53:27	DNET61:<MCB.NML>NMARCH.REQ.1 (19)

;	 R6880	
;	 R6881	! Local Modes:
;	 R6882	! Mode:BLISS
;	 R6883	! Auto Save Mode:2
;	 R6884	! Comment Column:40
;	 R6885	! Comment Rounding:+1
;	 R6886	! End:
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  98
								 3-Jan-1983 01:26:09	DNET61:<MCB.NML>NMLLIB.REQ.1 (3)

;	  6887	
;	  6888	require 'NMRSP';			! NICE Response processing macros
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page  99
								 3-Jan-1983 03:11:32	DNET61:<MCB.NML>NMRSP.REQ.1 (1)

;	 R6889	! NET:<PECKHAM.DEVELOPMENT>NMRSP.REQ.2 24-May-82 17:55:52, Edit by PECKHAM
;	 R6890	!
;	 R6891	!    Set proper default for ERROR DETAIL to -1.
;	 R6892	!    Optimize string access for MCB.
;	 R6893	!
;	 R6894	! NET:<VOBA.NML.DEVELOPMENT>NMRSP.REQ.7 18-Feb-82 15:49:32, Edit by VOBA
;	 R6895	!
;	 R6896	!    Clean up code and update copyright date.
;	 R6897	!
;	 R6898	! NET:<DECNET20-V3P1.BASELEVEL-2.SOURCES>NMRSP.REQ.5 16-Oct-81 16:04:12, Edit by PECKHAM
;	 R6899	!
;	 R6900	!    Optimize various macros for MCB.
;	 R6901	!
;	 R6902	! NET:<DECNET20-V3P1.NML>NMRSP.REQ.2  8-Aug-81 11:56:02, Edit by GUNN
;	 R6903	!
;	 R6904	!    Change $RESPONSE macro to provide for error numbers in MCB.
;	 R6905	!
;	 R6906	! NET:<DECNET20-V3P1.NMU>NMRSP.REQ.3 24-Jun-81 08:53:13, Edit by JENNESS
;	 R6907	!
;	 R6908	!    Readability improvements.  Copyright page insertion.
;	 R6909	!
;	 R6910	! NET:<DECNET20-V3P1.BASELEVEL-2.SOURCES>NMRSP.REQ.2 12-Jun-81 15:26:07, Edit by GUNN
;	 R6911	!
;	 R6912	!    Made calls to NMU$TEXT be under $MCB conditional.
;	 R6913	!
		NMRSP -- NICE Response Generation Macros	24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 100
								 3-Jan-1983 03:11:32	DNET61:<MCB.NML>NMRSP.REQ.1 (2)

;	 R6914	%title 'NMRSP -- NICE Response Generation Macros'
;	 R6915	
;	 R6916	!                    COPYRIGHT (c) 1980, 1981, 1982
;	 R6917	!                    DIGITAL EQUIPMENT CORPORATION
;	 R6918	!                        Maynard, Massachusetts
;	 R6919	!
;	 R6920	!     This software is furnished under a license and may  be  used
;	 R6921	!     and copied only in accordance with the terms of such license
;	 R6922	!     and with the inclusion of the above copyright notice.   This
;	 R6923	!     software  or any other copies thereof may not be provided or
;	 R6924	!     otherwise made available to any other person.  No  title  to
;	 R6925	!     and ownership of the software is hereby transferred.
;	 R6926	!
;	 R6927	!     The information  in  this  software  is  subject  to  change
;	 R6928	!     without  notice  and should not be construed as a commitment
;	 R6929	!     by DIGITAL EQUIPMENT CORPORATION.
;	 R6930	!
;	 R6931	!     DIGITAL assumes no responsibility for the use or reliability
;	 R6932	!     of  its  software  on  equipment  which  is  not supplied by
;	 R6933	!     DIGITAL.
;	 R6934	!
;	 R6935	
;	 R6936	!++
;	 R6937	! Facility: LSG DECnet Network Management
;	 R6938	!
;	 R6939	! Abstract:
;	 R6940	!
;	 R6941	!        This set of macros is used to manipulate error strings used
;	 R6942	!        in NICE processing.  The error string format is the same as
;	 R6943	!        that used in a NICE response message.
;	 R6944	!
;	 R6945	! Environment: Bliss-36, Bliss-32 and Bliss-16.
;	 R6946	!
;	 R6947	! Author: Steven M. Jenness, Creation date: 18-Mar-81
;	 R6948	!
;	 R6949	!--
		NMRSP -- NICE Response Generation Macros	24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 101
								 3-Jan-1983 03:11:32	DNET61:<MCB.NML>NMRSP.REQ.1 (3)

;	 R6950	
;	 R6951	! macro: $CLEAR_RESPONSE
;	 R6952	!
;	 R6953	!		This macro clears the response string.
;	 R6954	!
;	 R6955	!    e.x. $CLEAR_RESPONSE (RESPONSE_POINTER);
;	 R6956	
;	 R6957	
;	 R6958	macro
;	MR6959	     $CLEAR_RESPONSE (PTR) =
;	MR6960	         begin
;	MR6961	         local STRPTR;
;	MR6962	
;	MR6963	         STRPTR = PTR;
;	MR6964	         PUTB (0, STRPTR);              ! Clear response code
;	MR6965	%if $MCB
;	MR6966	%then
;	MR6967	         ch$wchar (-1, .STRPTR);        ! Clear error detail
;	MR6968	         ch$wchar_a (ch$rchar_a (STRPTR), STRPTR);
;	MR6969	%else
;	MR6970	         PUTB (-1, STRPTR);             ! Clear error detail
;	MR6971	         PUTB (-1, STRPTR);
;	MR6972	%fi
;	MR6973	         PUTB (0, STRPTR);              ! Clear text length
;	MR6974	         PUTB (0, STRPTR);
;	 R6975	         end %;
;	 R6976	
;	 R6977	
;	 R6978	! macro: $RESPONSE
;	 R6979	!
;	 R6980	!		This macro puts the appropriate values
;	 R6981	!		into the fields in a error response string.
;	 R6982	!
;	 R6983	!	$RESPONSE (PTR, CODE, DET [,TXT] {,PRM ...});
;	 R6984	!
;	 R6985	!	PTR	Byte pointer to error string buffer
;	 R6986	!	CODE	Nice return code
;	 R6987	!	DET	Nice error detail
;	 R6988	!	TXT	Error text string
;	 R6989	!	PRM	Parameters to fill in text string
;	 R6990	!
;	 R6991	!    e.x.    $RESPONSE (.BUFPTR, NICE$_FOE, 1, "No such device");
;	 R6992	
;	 R6993	
;	 R6994	macro
;	MR6995	     $RESPONSE (PTR, CODE, DET, TXT) =
;	MR6996	         begin
;	MR6997	         local STRPTR;
;	MR6998	
;	MR6999	         STRPTR = PTR;
;	MR7000	         PUTB (CODE, STRPTR);
;	MR7001	
		NMRSP -- NICE Response Generation Macros	24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 102
								 3-Jan-1983 03:11:32	DNET61:<MCB.NML>NMRSP.REQ.1 (3)

;	MR7002	         %if not %NULL (DET)
;	MR7003	         %then %if %ctce (DET)
;	MR7004	               %then
;	MR7005	                    PUTB ((DET and %o'377'), STRPTR);
;	MR7006	                    PUTB ((DET^-8 and %o'377'), STRPTR);
;	MR7007	               %else
;	MR7008	                    begin
;	MR7009	                    local DETAIL;
;	MR7010	
;	MR7011	                    DETAIL = DET;
;	MR7012	                    PUTW (DETAIL, STRPTR);
;	MR7013	                    end;
;	MR7014	               %fi
;	MR7015	         %else
;	MR7016	%if $MCB
;	MR7017	%then
;	MR7018	               ch$wchar (-1, .STRPTR);
;	MR7019	               ch$wchar_a (ch$rchar_a (STRPTR), STRPTR);
;	MR7020	%else
;	MR7021	               PUTB (-1, STRPTR);
;	MR7022	               PUTB (-1, STRPTR);
;	MR7023	%fi
;	MR7024	         %fi
;	MR7025	
;	MR7026	         %if not %null (TXT)
;	MR7027	         %then %if not $MCB
;	MR7028	               %then
;	MR7029	                    begin
;	MR7030	                    local TXTPTR, CNT;
;	MR7031	                    external routine NMU$TEXT;
;	MR7032	
;	MR7033	                    TXTPTR = .STRPTR;
;	MR7034	                    PUTB (0, STRPTR);
;	MR7035	                    CNT = $NMU$TEXT (STRPTR, 72, %string (TXT, '%N')
;	MR7036	                                     %if %length gtr 4
;	MR7037	                                     %then , %remaining %fi);
;	MR7038	                    PUTB (.CNT, TXTPTR);
;	MR7039	                    end;
;	MR7040	              %fi
;	MR7041		%else PUTB (0, STRPTR);
;	MR7042		%fi
;	MR7043	
;	MR7044		ch$diff (.STRPTR, PTR)
;	 R7045		end %;
;	 R7046	
;	 R7047	
;	 R7048	! macro: $RESPONSE_X
;	 R7049	!
;	 R7050	!		This macro puts the appropriate values
;	 R7051	!		into the fields in a error response string.
;	 R7052	!
;	 R7053	!	$RESPONSE_X (PTR, CODE, DET [,TXT,ERR] {,PRM ...});
		NMRSP -- NICE Response Generation Macros	24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 103
								 3-Jan-1983 03:11:32	DNET61:<MCB.NML>NMRSP.REQ.1 (3)

;	 R7054	!
;	 R7055	!	PTR	Byte pointer to error string buffer
;	 R7056	!	CODE	NICE return code
;	 R7057	!	DET	NICE error detail
;	 R7058	!	TXT	Error text string
;	 R7059	!       ERR     Error text number for MCB environment
;	 R7060	!	PRM	Parameters to fill in text string
;	 R7061	!
;	 R7062	!    e.x.    $RESPONSE_X (.BUFPTR, NICE$_FOE, 1, "No such device", 101);
;	 R7063	
;	 R7064	
;	 R7065	macro
;	MR7066	     $RESPONSE_X (PTR, CODE, DET, TXT, ERR) =
;	MR7067	         begin
;	MR7068	         local STRPTR;
;	MR7069	
;	MR7070	         STRPTR = PTR;
;	MR7071	
;	MR7072	         PUTB (CODE, STRPTR);
;	MR7073	
;	MR7074	         %if not %NULL (DET)
;	MR7075	         %then %if %ctce (DET)
;	MR7076	               %then
;	MR7077	                    PUTB ((DET and %o'377'), STRPTR);
;	MR7078	                    PUTB ((DET^-8 and %o'377'), STRPTR);
;	MR7079	               %else
;	MR7080	                    begin
;	MR7081	                    local DETAIL;
;	MR7082	
;	MR7083	                    DETAIL = DET;
;	MR7084	                    PUTW (DETAIL, STRPTR);
;	MR7085	                    end;
;	MR7086	               %fi
;	MR7087	         %else
;	MR7088	%if $MCB
;	MR7089	%then
;	MR7090	               ch$wchar (-1, .STRPTR);
;	MR7091	               ch$wchar_a (ch$rchar_a (STRPTR), STRPTR);
;	MR7092	%else
;	MR7093	               PUTB (-1, STRPTR);
;	MR7094	               PUTB (-1, STRPTR);
;	MR7095	%fi
;	MR7096	         %fi
;	MR7097	
;	MR7098	         %if not %null (TXT)
;	MR7099	         %then %if not $MCB
;	MR7100	               %then
;	MR7101	                    begin
;	MR7102	                    local TXTPTR, CNT;
;	MR7103	                    external routine NMU$TEXT;
;	MR7104	
;	MR7105	                    TXTPTR = .STRPTR;
		NMRSP -- NICE Response Generation Macros	24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 104
								 3-Jan-1983 03:11:32	DNET61:<MCB.NML>NMRSP.REQ.1 (3)

;	MR7106	                    PUTB (0, STRPTR);
;	MR7107	                    CNT = $NMU$TEXT (STRPTR, 72, %string (TXT, '%N')
;	MR7108	                                     %if %length gtr 4
;	MR7109	                                     %then , %remaining %fi);
;	MR7110	                    PUTB (.CNT, TXTPTR);
;	MR7111	                    end;
;	MR7112	               %else
;	MR7113	                    begin
;	MR7114	                    linkage CBDSG = JSR (register=0,register=1,register=2;
;	MR7115	                                         register=0) : nopreserve (1,2);
;	MR7116	                    external routine $CBDSG : CBDSG novalue;
;	MR7117	
;	MR7118	                    PUTB (5, STRPTR);   ! 5 digit ASCII signed decimal number
;	MR7119	                    $CBDSG (.STRPTR,
;	MR7120	                            %if not %null (ERR)
;	MR7121	                            %then ERR %else 99999 %fi,
;	MR7122	                            1;
;	MR7123	                            STRPTR);
;	MR7124	                    end;
;	MR7125	               %fi
;	MR7126	        %else PUTB (0, STRPTR);
;	MR7127		%fi
;	MR7128	
;	MR7129		ch$diff (.STRPTR, PTR)
;	 R7130		end %;
;	 R7131	
;	 R7132	
;	 R7133	! macro: $RESPONSE_CODE
;	 R7134	!
;	 R7135	!		This macro puts the reponse code into the
;	 R7136	!		specified response string.
;	 R7137	!
;	 R7138	!    e.x.    $RESPONSE_CODE (RESPONSE_POINTER, NICE$_UFO);
;	 R7139	
;	 R7140	macro
;	MR7141	     $RESPONSE_CODE (PTR, CODE) =
;	MR7142	         begin
;	MR7143	         ch$wchar (CODE, PTR);
;	 R7144	         end %;
;	 R7145	
;	 R7146	
;	 R7147	! macro: $RESPONSE_DETAIL
;	 R7148	!
;	 R7149	!		This macro puts the error detail into the
;	 R7150	!		specified response string.
;	 R7151	!
;	 R7152	!    e.x.    $RESPONSE_DETAIL (RESPONSE_POINTER, 11);
;	 R7153	
;	 R7154	
;	 R7155	macro
;	MR7156	     $RESPONSE_DETAIL (PTR, DET) =
;	MR7157	         begin
		NMRSP -- NICE Response Generation Macros	24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 105
								 3-Jan-1983 03:11:32	DNET61:<MCB.NML>NMRSP.REQ.1 (3)

;	MR7158	         local STRPTR;
;	MR7159	
;	MR7160	         STRPTR = ch$plus (PTR, 1);
;	MR7161	
;	MR7162	         %if %ctce (DET)
;	MR7163	         %then
;	MR7164	              PUTB ((DET and %o'377'), STRPTR);
;	MR7165	              PUTB ((DET^-8 and %o'377'), STRPTR);
;	MR7166	         %else
;	MR7167	              begin
;	MR7168	              local DETAIL;
;	MR7169	
;	MR7170	              DETAIL = DET;
;	MR7171	              PUTW (DETAIL, STRPTR);
;	MR7172	              end;
;	MR7173	         %fi
;	 R7174	         end %;
;	 R7175	
;	 R7176	
;	 R7177	! macro: $RESPONSE_TEXT
;	 R7178	!
;	 R7179	!		This macro puts the error text into
;	 R7180	!		the specified response string.  The
;	 R7181	!		format of the arguments is the same as
;	 R7182	!		as that taken by $NMU$TEXT.
;	 R7183	!
;	 R7184	!    e.x.    $RESPONSE_TEXT (RESPONSE_POINTER, 'Bad error:', .WHY);
;	 R7185	
;	 R7186	
;	 R7187	macro
;	MR7188	     $RESPONSE_TEXT (PTR, TXT) =
;	MR7189	         %if $MCB
;	MR7190	         %then
;	MR7191	              begin
;	MR7192	              local STRPTR, TXTPTR;
;	MR7193	
;	MR7194	              TXTPTR = ch$plus (PTR, 3);
;	MR7195	              STRPTR = ch$plus (.TXTPTR, 1);
;	MR7196	              PUTB ($NMU$TEXT (STRPTR, 72, %string (TXT, '%N')
;	MR7197	                               %if %length gtr 2
;	MR7198	                               %then , %remaining %fi),
;	MR7199	                    TXTPTR);
;	MR7200	              end
;	 R7201	         %fi %;
;	 R7202	
;	 R7203	
;	 R7204	! macro: $RESPONSE_LENGTH
;	 R7205	!
;	 R7206	!		This macro returns the length (in bytes) of
;	 R7207	!		the response string.  It assumes that an response
;	 R7208	!		code, error detail and counted text string
;	 R7209	!		exist.
		NMRSP -- NICE Response Generation Macros	24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 106
								 3-Jan-1983 03:11:32	DNET61:<MCB.NML>NMRSP.REQ.1 (3)

;	 R7210	!
;	 R7211	!    e.x.    LENGTH = $RESPONSE_LENGTH (RESPONSE_POINTER);
;	 R7212	
;	 R7213	
;	 R7214	macro
;	MR7215	     $RESPONSE_LENGTH (PTR) =
;	MR7216	         begin
;	MR7217	         local STRPTR;
;	MR7218	
;	MR7219	         STRPTR = ch$plus (PTR, 3);
;	MR7220	         4 + GETB (STRPTR)
;	 R7221	         end %;
;	 R7222	
;	 R7223	
;	 R7224	! macro: $GET_CODE
;	 R7225	!
;	 R7226	!		This macro fetches the response code field in the
;	 R7227	!		specified error string.
;	 R7228	!
;	 R7229	!    e.x.    CODE = $GET_CODE (RESPONSE_POINTER);
;	 R7230	
;	 R7231	
;	 R7232	macro
;	MR7233	     $GET_CODE (PTR) =
;	MR7234	         begin
;	MR7235	         ch$rchar (PTR)
;	 R7236	         end %;
;	 R7237	
;	 R7238	
;	 R7239	! macro: $GET_DETAIL
;	 R7240	!
;	 R7241	!		This macro gets the error detail from the
;	 R7242	!		specified response string.
;	 R7243	!
;	 R7244	!    e.x.    DETAIL = $GET_DETAIL (RESPONSE_POINTER);
;	 R7245	
;	 R7246	
;	 R7247	macro
;	MR7248	     $GET_DETAIL (PTR) =
;	 R7249	         GETW_NA (ch$plus (PTR, 1)) %;
;	 R7250	
;	 R7251	
;	 R7252	! macro: $GET_TEXT
;	 R7253	!
;	 R7254	!		This macro gets a pointer to the text field
;	 R7255	!		in specified the response string.
;	 R7256	!
;	 R7257	!    e.x.    TEXT_PTR = $GET_TEXT (RESPONSE_POINTER);
;	 R7258	!	     TEXT_LENGTH = GETB (TEXT_PTR);
;	 R7259	
;	 R7260	
;	 R7261	macro
		NMRSP -- NICE Response Generation Macros	24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 107
								 3-Jan-1983 03:11:32	DNET61:<MCB.NML>NMRSP.REQ.1 (3)

;	MR7262	     $GET_TEXT (PTR) =
;	 R7263	         ch$plus (PTR, 3)) %;
		NMRSP -- NICE Response Generation Macros	24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 108
								 3-Jan-1983 03:11:32	DNET61:<MCB.NML>NMRSP.REQ.1 (4)

;	 R7264	
;	 R7265	%title ''
;	 R7266	%sbttl ''
;	 R7267	
;	 R7268	!
;	 R7269	! [End of NMRSP.REQ]
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 109
								 3-Jan-1983 01:26:09	DNET61:<MCB.NML>NMLLIB.REQ.1 (3)

;	  7270	
;	L 7271	%if not $MCB
;	U 7272	%then require 'NCPTAB';			! NICE parameter definitions
;	  7273	%else literal P$ALL = -1;               ! Dummy value for SET entity ALL
;	  7274	%fi
;	  7275	
;	C 7276	%( Comment this stuff out (just in case)
;	C 7277	switches list (norequire);		! Suppress listing
;	C 7278	
;	C 7279	%if $MCB
;	C 7280	%then require 'BLI:RSX11M' ;            ! MCB System specific
;	C 7281	      require 'NETDIR' ;                ! Definitions for GLNW$S macro
;	C 7282	%else %if $TOPS20
;	C 7283	      %then require 'BLI:MONSYM' ;      ! TOPS20 System specific
;	C 7284	      %else %if $TOPS10
;	C 7285	            %then require 'BLI:UUOSYM' ; ! TOPS10 System specific
;	C 7286	            %fi
;	C 7287	      %fi
;	C 7288	%fi
;	C 7289	
;	C 7290	switches list (require);
;	  7291	)%
;	  7292	
;	  7293	require 'NMXINT';			! Interface to system specific NMX
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 110
								 3-Jan-1983 17:29:31	DNET61:<MCB.NML>NMXINT.REQ.1 (1)

;	 R7294	! NET:<VOBA.NML.DEVELOPMENT>NMXINT.REQ.3 19-Mar-82 08:47:13, Edit by VOBA
;	 R7295	!
;	 R7296	! Remove the setting of N$QUAF bit from $$NML_INTERFACE_EXPAND macro.
;	 R7297	! Let NMX check the QUALIFIER pointer and set the bit appropriately.
;	 R7298	!
;	 R7299	! NET:<PECKHAM.DEVELOPMENT>NMXINT.REQ.3  6-Mar-82 23:48:12, Edit by PECKHAM
;	 R7300	!
;	 R7301	! Remove references of NML$VDB from $NML$xxx macros
;	 R7302	! Seperate definitions of $$NML_INTERFACE_EXPAND.
;	 R7303	!
;	 R7304	! NET:<PECKHAM.DEVELOPMENT>NMXINT.REQ.2  6-Mar-82 21:33:49, Edit by PECKHAM
;	 R7305	!
;	 R7306	! Make all $NML$xxx macros accept qualifiers and remove $NML$xxxQ macros.
;	 R7307	!
;	 R7308	! NET:<PECKHAM.DEVELOPMENT>NMXINT.REQ.2  5-Mar-82 09:21:41, Edit by PECKHAM
;	 R7309	!
;	 R7310	! Fix parameter reference in $NML$SET.
;	 R7311	!
;	 R7312	! NET:<PECKHAM.DEVELOPMENT>NMXINT.REQ.2 19-Feb-82 12:03:57, Edit by PECKHAM
;	 R7313	!
;	 R7314	! Fix $NML$SET to only call NMX on CIRCUIT/LINE state parameter
;	 R7315	!
;	 R7316	! NET:<VOBA.NML.DEVELOPMENT>NMXINT.REQ.6 18-Feb-82 16:45:03, Edit by VOBA
;	 R7317	!
;	 R7318	! Clean up code and update copyright date.
;	 R7319	!
;	 R7320	! NET:<PECKHAM.DEVELOPMENT>NMXINT.REQ.2 16-Jan-82 10:54:03, Edit by PECKHAM
;	 R7321	!
;	 R7322	! Add $NML$GET_HOST_ID to get host node name/number for NMLEVT.
;	 R7323	!
;	 R7324	! 14-Nov-81 22:26:49, Edit by GROSSMAN
;	 R7325	!
;	 R7326	! Make this module work under Tops-10. Accomplish this by turning many
;	 R7327	! "%if $TOPS20" conditionals into "%if ($TOPS20 or $TOPS10)" conditionals
;	 R7328	!
;	 R7329	! NET:<DECNET20-V3P1.BASELEVEL-2.MCB>NMXINT.REQ.3 20-Aug-81 13:31:39, Edit by GUNN
;	 R7330	!
;	 R7331	! Change all calls to NML$VDB to not increment
;	 R7332	! entity type number in variable TYPE.
;	 R7333	!
;	 R7334	! NET:<DECNET20-V3P1.BASELEVEL-2.SOURCES>NMXINT.REQ.33 27-Jul-81 16:38:09, Edit by GUNN
;	 R7335	! 
;	 R7336	! Fix $NML$SET to do last edit properly. Wasn't returning value.
;	 R7337	!
;	 R7338	! NET:<DECNET20-V3P1.NML>NMXINT.REQ.2  1-Jul-81 16:25:14, Edit by GUNN
;	 R7339	!
;	 R7340	! Fix $NML$SET to pass change of STATE parameter down to lower layers.
;	 R7341	!
;	 R7342	! NET:<DECNET20-V3P1.NML>NMXINT.REQ.3  6-Mar-81 17:07:47, Edit by GUNN
;	 R7343	!
;	 R7344	! Fix $NML$RETURNxxx macros to pass selector properly.
;	 R7345	!
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 111
								 3-Jan-1983 17:29:31	DNET61:<MCB.NML>NMXINT.REQ.1 (1)

;	 R7346	! <DECNET20-V3P1.BASELEVEL-2.MCB>NMXINT.REQ.2  6-Mar-81 15:47:25, Edit by SROBINSON
;	 R7347	!
;	 R7348	! Fix Error Code Mapping Functions
;	 R7349	!
;	 R7350	! NET:<DECNET20-V3P1.BASELEVEL-2.SOURCES>NMXINT.REQ.27  5-Mar-81 12:06:37, Edit by GUNN
;	 R7351	!
;	 R7352	! Map arguments to VDB routines based on system type.
;	 R7353	!
;	 R7354	! NET:<DECNET20-V3P1.BASELEVEL-2.SOURCES>NMXINT.REQ.26  5-Mar-81 10:12:12, Edit by GUNN
;	 R7355	!
;	 R7356	! Fix misc bugs in $NML$MAP_NODE_ID for MCB.
;	 R7357	!	Change GLN$ to GLNW$S
;	 R7358	!
;	 R7359	! NET:<DECNET20-V3P1.NML>NMXINT.REQ.19 27-Feb-81 15:46:52, Edit by GUNN
;	 R7360	!
;	 R7361	! Fix $NML$MAP_NODE_ID to expand properly for MCB.
;	 R7362	!
;	 R7363	! NET:<DECNET20-V3P1.BASELEVEL-2.SOURCES>NMXINT.REQ.22 25-Feb-81 10:29:23, Edit by SROBINSON
;	 R7364	!
;	 R7365	! Fixup QIOW Interface to return buffer length and correct error codes
;	 R7366	!
;	 R7367	! NET:<DECNET20-V3P1.BASELEVEL-2.MCB>NMXINT.REQ.4 23-Feb-81 10:59:16, Edit by SROBINSON
;	 R7368	!
;	 R7369	! Fixup QIOW Interface to reflect NMX's mapping functions.
;	 R7370	!
;	 R7371	! NET:<DECNET20-V3P1.NML>NMXINT.REQ.10 20-Feb-81 08:42:28, Edit by GUNN
;	 R7372	!
;	 R7373	! Change interface macros to make call to NML volatile
;	 R7374	! data base processor.
;	 R7375	!
;	 R7376	! NET:<DECNET20-V3P1.NML>NMXINT.REQ.4 12-Feb-81 16:54:12, Edit by GUNN
;	 R7377	!
;	 R7378	! Add definition for $NML$MAP_NODE_ID to map a node address to name
;	 R7379	! or a node name to address.
;	 R7380	!
;	 R7381	! <DECNET20-V3P1.BASELEVEL-2.MCB>NMXINT.REQ.2 10-Feb-81 12:55:35, Edit by SROBINSON
;	 R7382	! Fixup LUN assignment and format of QIOW macro for MCB Environments.
;	 R7383	! Also define symbols for operations.
;	 R7384	!
		NMXINT -- NML Interface to NMX			24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 112
								 3-Jan-1983 17:29:31	DNET61:<MCB.NML>NMXINT.REQ.1 (2)

;	 R7385	%title 'NMXINT -- NML Interface to NMX'
;	 R7386	
;	 R7387	!                    COPYRIGHT (c) 1980, 1981, 1982
;	 R7388	!                    DIGITAL EQUIPMENT CORPORATION
;	 R7389	!                        Maynard, Massachusetts
;	 R7390	!
;	 R7391	!     This software is furnished under a license and may  be  used
;	 R7392	!     and copied only in accordance with the terms of such license
;	 R7393	!     and with the inclusion of the above copyright notice.   This
;	 R7394	!     software  or any other copies thereof may not be provided or
;	 R7395	!     otherwise made available to any other person.  No  title  to
;	 R7396	!     and ownership of the software is hereby transferred.
;	 R7397	!
;	 R7398	!     The information  in  this  software  is  subject  to  change
;	 R7399	!     without  notice  and should not be construed as a commitment
;	 R7400	!     by DIGITAL EQUIPMENT CORPORATION.
;	 R7401	!
;	 R7402	!     DIGITAL assumes no responsibility for the use or reliability
;	 R7403	!     of  its  software  on  equipment  which  is  not supplied by
;	 R7404	!     DIGITAL.
;	 R7405	!
;	 R7406	
;	 R7407	!++
;	 R7408	! FACILITY:	DECnet-10/20 V3.0 Network Management Layer (NML)
;	 R7409	!
;	 R7410	! ABSTRACT:
;	 R7411	!
;	 R7412	!	Contains interface declarations to the NMX
;	 R7413	!
;	 R7414	! ENVIRONMENT:	TOPS-10/20 User mode under NML
;	 R7415	!
;	 R7416	! AUTHOR: Dale C. Gunn , CREATION DATE: 25-Nov-80
;	 R7417	!
;	 R7418	! MODIFIED BY:
;	 R7419	!
;	 R7420	!	maintainer, date : VERSION nnn
;	 R7421	!
;	 R7422	! 01	- Description of modification
;	 R7423	!--
		NMXINT -- NML Interface to NMX			24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 113
		MCB specific literals				 3-Jan-1983 17:29:31	DNET61:<MCB.NML>NMXINT.REQ.1 (3)

;	 R7424	%sbttl 'MCB specific literals'
;	 R7425	
;	 R7426	%if $MCB %then                          ! MCB specific literals
;	 R7427	
;	 R7428	literal                                 ! Contents of N$FFNC
;	 R7429	    N$FSET = 1,                         ! Set Parameter
;	 R7430	    N$FCLR = 2,                         ! Clear Parameter
;	 R7431	    N$FZRO = 3,                         ! Zero Counters
;	 R7432	    N$FSHO = 4,                         ! Show Selected Items
;	 R7433	    N$FSZC = 5,                         ! Show and Zero Counters
;	 R7434	    N$FRET = 6;                         ! Return Selected Items
;	 R7435	
;	 R7436	literal                                 ! Contents of N$IENT
;	 R7437	    N$INOD = 1,                         ! Node Entity
;	 R7438	    N$ILIN = 2,                         ! Line Entity
;	 R7439	    N$ILOG = 3,                         ! Logging Entity
;	 R7440	    N$ICKT = 4,                         ! Circuit Entity
;	 R7441	    N$IMOD = 5;                         ! Module Entity
;	 R7442	
;	 R7443	literal                                 ! Contents of N$SELE
;	 R7444	    N$SSUM = 1,                         ! Select Summary
;	 R7445	    N$SSTA = 2,                         ! Select Status
;	 R7446	    N$SCHA = 3,                         ! Select Characteristics
;	 R7447	    N$SCOU = 4;                         ! Select Counters
;	 R7448	
;	 R7449	literal
;	 R7450	    N$QUAF = 1;                         ! Value of N$QUAL if qualified request
;	 R7451	
;	 R7452	%fi
		NMXINT -- NML Interface to NMX			24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 114
		$$NML_INTERFACE_EXPAND				 3-Jan-1983 17:29:31	DNET61:<MCB.NML>NMXINT.REQ.1 (4)

;	 R7453	%sbttl '$$NML_INTERFACE_EXPAND'
;	LR7454	%if $TOPS20
;	UR7455	%then
;	UR7456	macro
;	UR7457	     $$NML_INTERFACE_EXPAND (FUNCTION, TYPE, ENTITY, QUALIFIER, SELECTOR,
;	UR7458	                             LENGTH, BUFFER, TEXT) = 
;	UR7459	
;	UR7460	         begin
;	UR7461	         builtin JSYS;
;	UR7462	         literal ARGBLK_SIZE = $NTARG;
;	UR7463	         global register AC1 = 1;
;	UR7464	         local ARGBLK: vector[ARGBLK_SIZE];
;	UR7465	
;	UR7466	         ARGBLK[$NTCNT] = ARGBLK_SIZE;  ! Size of argument block
;	UR7467	         ARGBLK[$NTENT] = TYPE;         ! Entity type
;	UR7468	         ARGBLK[$NTEID] = ENTITY;       ! Entity ID pointer
;	UR7469	         ARGBLK[$NTFNC] = FUNCTION;     ! Function code
;	UR7470	         ARGBLK[$NTERR] = NICE$_MPE;    ! Indicate our error if JSYS fails
;	UR7471	
;	UR7472	         %if %null(SELECTOR)
;	UR7473	         %then ARGBLK[$NTSEL] = 0;
;	UR7474	         %else ARGBLK[$NTSEL] = SELECTOR;
;	UR7475	         %fi
;	UR7476	
;	UR7477	         %if %null(QUALIFIER)
;	UR7478	         %then ARGBLK[$NTQUA] = 0;
;	UR7479	         %else ARGBLK[$NTQUA] = QUALIFIER;
;	UR7480	         %fi
;	UR7481	
;	UR7482	         %if %null(BUFFER)
;	UR7483	         %then ARGBLK[$NTBPT] = 0;
;	UR7484	         %else ARGBLK[$NTBPT] = BUFFER;
;	UR7485	         %fi
;	UR7486	
;	UR7487	         %if %null(LENGTH)
;	UR7488	         %then ARGBLK[$NTBYT] = 0;
;	UR7489	         %else ARGBLK[$NTBYT] = .LENGTH;
;	UR7490	         %fi
;	UR7491	
;	UR7492	         AC1 = ARGBLK;            ! Point to argument block
;	UR7493	         if JSYS (-1, NTMAN_, AC1)
;	UR7494	         then begin
;	UR7495	              %if not %null(LENGTH)
;	UR7496	              %then LENGTH = .ARGBLK[$NTBYT]; ! Return length
;	UR7497	              %fi
;	UR7498	              .ARGBLK[$NTERR]      ! return success code
;	UR7499	              end
;	UR7500	         else begin
;	UR7501	              global register
;	UR7502	                     AC2 = 2,
;	UR7503	                     AC3 = 3;
;	UR7504	
		NMXINT -- NML Interface to NMX			24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 115
		$$NML_INTERFACE_EXPAND				 3-Jan-1983 17:29:31	DNET61:<MCB.NML>NMXINT.REQ.1 (4)

;	UR7505	              %if not %null(TEXT)
;	UR7506	              %then
;	UR7507	              AC2 = $FHSLF^18 or .AC1;
;	UR7508	              AC1 = TEXT;
;	UR7509	              AC3 = 0;
;	UR7510	              JSYS (2, ERSTR_, AC1, AC2, AC3);
;	UR7511	              %fi
;	UR7512	
;	UR7513	              .ARGBLK[$NTERR]      ! return failure code
;	UR7514	              end
;	UR7515	         end %;
;	 R7516	%fi
;	 R7517	
;	LR7518	%if $TOPS10
;	UR7519	%then
;	UR7520	macro
;	UR7521	     $$NML_INTERFACE_EXPAND (FUNCTION, TYPE, ENTITY, QUALIFIER, SELECTOR,
;	UR7522	                             LENGTH, BUFFER, TEXT) = 
;	UR7523	
;	UR7524	         begin
;	UR7525	         builtin UUO;
;	UR7526	         literal $NTARG = $NTERR + 1;
;	UR7527	         literal ARGBLK_SIZE = $NTARG;
;	UR7528	         global register AC1 = 1;
;	UR7529	         local ARGBLK: vector[ARGBLK_SIZE];
;	UR7530	
;	UR7531	         ARGBLK[$NTCNT] = ARGBLK_SIZE;  ! Size of argument block
;	UR7532	         ARGBLK[$NTENT] = TYPE;         ! Entity type
;	UR7533	         ARGBLK[$NTEID] = ENTITY;       ! Entity ID pointer
;	UR7534	         ARGBLK[$NTFNC] = FUNCTION;     ! Function code
;	UR7535	         ARGBLK[$NTERR] = NICE$_MPE;    ! Indicate our error if JSYS fails
;	UR7536	
;	UR7537	         %if %null(SELECTOR)
;	UR7538	         %then ARGBLK[$NTSEL] = 0;
;	UR7539	         %else ARGBLK[$NTSEL] = SELECTOR;
;	UR7540	         %fi
;	UR7541	
;	UR7542	         %if %null(QUALIFIER)
;	UR7543	         %then ARGBLK[$NTQUA] = 0;
;	UR7544	         %else ARGBLK[$NTQUA] = QUALIFIER;
;	UR7545	         %fi
;	UR7546	
;	UR7547	         %if %null(BUFFER)
;	UR7548	         %then ARGBLK[$NTBPT] = 0;
;	UR7549	         %else ARGBLK[$NTBPT] = BUFFER;
;	UR7550	         %fi
;	UR7551	
;	UR7552	         %if %null(LENGTH)
;	UR7553	         %then ARGBLK[$NTBYT] = 0;
;	UR7554	         %else ARGBLK[$NTBYT] = .LENGTH;
;	UR7555	         %fi
;	UR7556	
		NMXINT -- NML Interface to NMX			24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 116
		$$NML_INTERFACE_EXPAND				 3-Jan-1983 17:29:31	DNET61:<MCB.NML>NMXINT.REQ.1 (4)

;	UR7557	         AC1 = ARGBLK;            ! Point to argument block
;	UR7558	
;	UR7559	         if UUO (1, NTMAN$(AC1))
;	UR7560	         then begin
;	UR7561	              %if not %null(LENGTH)
;	UR7562	              %then LENGTH = .ARGBLK[$NTBYT]; ! Return length
;	UR7563	              %fi
;	UR7564	              .ARGBLK[$NTERR]           ! return success code
;	UR7565	              end
;	UR7566	         else begin
;	UR7567	              global register
;	UR7568	                  AC2 = 2,
;	UR7569	                  AC3 = 3;
;	UR7570	
;	UR7571	              %if not %null(TEXT)
;	UR7572	              %then
;	UR7573	              NMU$TEXT(TEXT,
;	UR7574	                       40,
;	UR7575	                       '?NTMAN. UUO failed - error # %P%/',
;	UR7576	                       .AC1);
;	UR7577	              %fi
;	UR7578	              .ARGBLK[$NTERR]           ! return failure code
;	UR7579	              end
;	UR7580	         end %;
;	 R7581	%fi
;	 R7582	
;	LR7583	%if $MCB
;	 R7584	%then
;	 R7585	macro
;	 R7586	     $$NML_INTERFACE_EXPAND (FUNCTION, TYPE, ENTITY, QUALIFIER, SELECTOR,
;	MR7587	                             LENGTH, BUFFER, TEXT) = 
;	MR7588	
;	MR7589	         begin
;	MR7590	         external literal               ! LUN literals
;	MR7591	             LUN$NM,                    !  for NM: Device Operations
;	MR7592	             EFN$NM;                    !  event flag for NM: Device Operations
;	MR7593	
;	MR7594	         %if not %declared (IOSB)
;	MR7595	         %then stacklocal IOSB: vector [2]; ! I/O Status block
;	MR7596	         %fi
;	MR7597	
;	MR7598	!              Format of QIO$ Macro
;	MR7599	!
;	MR7600	!              qiow$s (IO$CTL,
;	MR7601	!                      LUN,
;	MR7602	!                      EFN,
;	MR7603	!                      PR,
;	MR7604	!                      IOSB,
;	MR7605	!                      AST,
;	MR7606	!                      <BUFFER,
;	MR7607	!                       LENGTH,
;	MR7608	!                       FUNCTION & TYPE & SELECTOR [& N$QUAF],
		NMXINT -- NML Interface to NMX			24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 117
		$$NML_INTERFACE_EXPAND				 3-Jan-1983 17:29:31	DNET61:<MCB.NML>NMXINT.REQ.1 (4)

;	MR7609	!                       ENTITY,
;	MR7610	!                       QUALIFIER>)
;	MR7611	
;	MR7612	         qiow$s (IO$CTL,
;	MR7613	                 LUN$NM,
;	MR7614	                 EFN$NM,
;	MR7615	                 %(PR)%,
;	MR7616	                 IOSB,
;	MR7617	                 %(AST)%,
;	MR7618	                 <%if not %null (LENGTH)
;	MR7619	                  %then %if not %null (BUFFER)
;	MR7620	                        %then (if .LENGTH eql 0
;	MR7621	                               then 0
;	MR7622	                               else BUFFER)
;	MR7623	                        %fi
;	MR7624	                  %fi,
;	MR7625	
;	MR7626	                 %if not %null (BUFFER)
;	MR7627	                 %then %if not %null (LENGTH)
;	MR7628	                       %then .LENGTH
;	MR7629	                       %fi
;	MR7630	                 %fi,
;	MR7631	
;	MR7632	                 (%if not %null (SELECTOR)
;	MR7633	                  %then ((if (SELECTOR) LSS 0
;	MR7634	                          then (-(SELECTOR))
;	MR7635	                          else ((SELECTOR)+1)) ^ 12) or
;	MR7636	                  %fi
;	MR7637	                  (TYPE+1) ^ 8 or
;	MR7638	                  FUNCTION ^ 1),
;	MR7639	!                  %if not %null (QUALIFIER)
;	MR7640	!                  %then or N$QUAF %fi),
;	MR7641	
;	MR7642	                 ENTITY,
;	MR7643	
;	MR7644	                 %if not %null (QUALIFIER)
;	MR7645	                 %then QUALIFIER %fi>);
;	MR7646	
;	MR7647	         %if not %null (LENGTH)
;	MR7648	         %then LENGTH = .IOSB[1];
;	MR7649	         %fi
;	MR7650	
;	MR7651	         if .IOSB<0,8,1> geq 0
;	MR7652	         then 1
;	MR7653	         else .IOSB<0,8,1>
;	 R7654	         end %;
;	 R7655	%fi
		NMXINT -- NML Interface to NMX			24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 118
		NML Interface Function Macro Definitions	 3-Jan-1983 17:29:31	DNET61:<MCB.NML>NMXINT.REQ.1 (5)

;	 R7656	%sbttl 'NML Interface Function Macro Definitions'
;	 R7657	
;	 R7658	macro
;	MR7659	     $NML$SET (TYPE, ENTITY, QUALIFIER, ILENGTH, IBUFFER) =
;	MR7660	         $$NML_INTERFACE_EXPAND (%bliss36($NTSET)  %bliss16(N$FSET),
;	MR7661	                                      (TYPE + 0),
;	MR7662	                                      (ENTITY + 0),
;	MR7663	                                      (QUALIFIER + 0),
;	MR7664	                                      %(SELECTOR)%,
;	MR7665	                                      ILENGTH,
;	 R7666	                                      IBUFFER) %;
;	 R7667	
;	 R7668	
;	 R7669	macro
;	MR7670	     $NML$CLR (TYPE, ENTITY, QUALIFIER, ILENGTH, IBUFFER) =
;	MR7671	         $$NML_INTERFACE_EXPAND (%bliss36($NTCLR)  %bliss16(N$FCLR),
;	MR7672	                                 (TYPE + 0),
;	MR7673	                                 (ENTITY + 0),
;	MR7674	                                 (QUALIFIER + 0),
;	MR7675	                                 %(SELECTOR)%,
;	MR7676	                                 ILENGTH,
;	 R7677	                                 IBUFFER) %;
;	 R7678	
;	 R7679	
;	 R7680	macro
;	MR7681	     $NML$ZERO (TYPE, ENTITY, QUALIFIER) =
;	MR7682	         $$NML_INTERFACE_EXPAND (%bliss36($NTZRO)  %bliss16(N$FZRO),
;	MR7683	                                 (TYPE + 0),
;	MR7684	                                 (ENTITY + 0),
;	MR7685	                                 (QUALIFIER + 0),
;	MR7686	                                 %(SELECTOR)%,
;	MR7687	                                 %(LENGTH)%,
;	 R7688	                                 %(BUFFER)%) %;
;	 R7689	
;	 R7690	
;	 R7691	macro
;	MR7692	     $NML$SHOW (TYPE, ENTITY, QUALIFIER, SELECTOR, OLENGTH, OBUFFER) =
;	MR7693	         $$NML_INTERFACE_EXPAND (%bliss36($NTSHO)  %bliss16(N$FSHO),
;	MR7694	                                 (TYPE + 0),
;	MR7695	                                 (ENTITY + 0),
;	MR7696	                                 (QUALIFIER + 0),
;	MR7697	                                 (SELECTOR + 0),
;	MR7698	                                 OLENGTH,
;	 R7699	                                 OBUFFER) %;
;	 R7700	
;	 R7701	
;	 R7702	macro
;	MR7703	     $NML$SHOZC (TYPE, ENTITY, QUALIFIER, OLENGTH, OBUFFER) =
;	MR7704	         $$NML_INTERFACE_EXPAND (%bliss36($NTSZC)  %bliss16(N$FSZC),
;	MR7705	                                 (TYPE + 0),
;	MR7706	                                 (ENTITY + 0),
;	MR7707	                                 (QUALIFIER + 0),
		NMXINT -- NML Interface to NMX			24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 119
		NML Interface Function Macro Definitions	 3-Jan-1983 17:29:31	DNET61:<MCB.NML>NMXINT.REQ.1 (5)

;	MR7708	                                 %(SELECTOR)%,
;	MR7709	                                 OLENGTH,
;	 R7710	                                 OBUFFER) %;
;	 R7711	
;	 R7712	
;	 R7713	macro
;	MR7714	     $NML$RETURN (TYPE,SELECTOR,QUALIFIER,OLENGTH,OBUFFER) =
;	MR7715	         $$NML_INTERFACE_EXPAND (%bliss36($NTRET)  %bliss16(N$FRET),
;	MR7716	                                 (TYPE + 0),
;	MR7717	                                 0 %(ENTITY)%,
;	MR7718	                                 (QUALIFIER + 0),
;	MR7719	                                 (SELECTOR + 0),
;	MR7720	                                 OLENGTH,
;	 R7721	                                 OBUFFER) %;
;	 R7722	
;	 R7723	
;	 R7724	macro
;	MR7725	     $NML$GETPDB (TYPE, ENTITY, QUALIFIER, SELECTOR, OLENGTH, OBUFFER) =
;	MR7726	         NML$PDB_READ (%if %null (QUALIFIER) %then 0 %else 1 %fi,
;	MR7727	                       (TYPE + 0),
;	MR7728	                       (ENTITY + 0),
;	MR7729	                       (QUALIFIER + 0),
;	MR7730	                       (SELECTOR + 0),
;	MR7731	                       OLENGTH,
;	 R7732	                       OBUFFER) %;
;	 R7733	
;	 R7734	
;	 R7735	macro
;	MR7736	     $NML$PUTPDB (TYPE, ENTITY, QUALIFIER, ILENGTH, IBUFFER) =
;	MR7737	         NML$PDB_CHANGE (%if %null (QUALIFIER) %then 0 %else 1 %fi,
;	MR7738	                         (TYPE + 0),
;	MR7739	                         (ENTITY + 0),
;	MR7740	                         (QUALIFIER + 0),
;	MR7741	                         ILENGTH,
;	 R7742	                         IBUFFER) %;
;	 R7743	
;	 R7744	
;	 R7745	macro
;	MR7746	     $NML$DELPDB (TYPE, ENTITY, QUALIFIER, ILENGTH, IBUFFER) =
;	MR7747	         NML$PDB_CHANGE (%if %null (QUALIFIER) %then 2 %else 3 %fi,
;	MR7748	                         (TYPE + 0),
;	MR7749	                         (ENTITY + 0),
;	MR7750	                         (QUALIFIER + 0),
;	MR7751	                         ILENGTH,
;	 R7752	                         IBUFFER) %;
;	 R7753	
;	 R7754	
;	 R7755	macro
;	MR7756	     $NML$RETURNPDB (TYPE, SELECTOR, QUALIFIER, OLENGTH, OBUFFER) =
;	MR7757	         NML$PDB_READ (%if %null (QUALIFIER) %then 2 %else 3 %fi,
;	MR7758	                       (TYPE + 0),
;	MR7759	                       (SELECTOR + 0),
		NMXINT -- NML Interface to NMX			24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 120
		NML Interface Function Macro Definitions	 3-Jan-1983 17:29:31	DNET61:<MCB.NML>NMXINT.REQ.1 (5)

;	MR7760	                       (QUALIFIER + 0),
;	MR7761	                       OLENGTH,
;	 R7762	                       OBUFFER) %;
		NMXINT -- NML Interface to NMX			24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 121
		Node Mapping Function Interface Macros		 3-Jan-1983 17:29:31	DNET61:<MCB.NML>NMXINT.REQ.1 (6)

;	 R7763	%sbttl 'Node Mapping Function Interface Macros'
;	 R7764	
;	 R7765	! $NML$MAP_NODE_ID (LENGTH,BUFFER) - Map a node address to node name
;	 R7766	!                                    or vice versa.
;	 R7767	
;	 R7768	
;	 R7769	macro
;	MR7770	     $NML$MAP_NODE_ID (LENGTH, BUFFER) =
;	MR7771	         %if $TOPS20 or $TOPS10
;	MR7772	         %then $$NML_INTERFACE_EXPAND (%bliss36($NTMAP),
;	MR7773	                                       NODE_E, ! Can only map node entity
;	MR7774	                                       0, ! No ENTITY pointer for this function
;	MR7775	                                       %(QUALIFIER)%,
;	MR7776	                                       %(SELECTOR)%,
;	MR7777	                                       LENGTH,
;	MR7778	                                       BUFFER)
;	MR7779	         %else %if $MCB
;	MR7780	               %then begin
;	MR7781	                     %if not %declared (IOSB)
;	MR7782	                     %then own IOSB: vector [2]; %fi ! I/O Status block
;	MR7783	                     external literal   ! Have to get this elsewhere.
;	MR7784	                              LUN$NS,
;	MR7785	                              EFN$NS;
;	MR7786	
;	MR7787	! Format of GLNW$S Macro
;	MR7788	!
;	MR7789	! GLNW$S (LUN, EFN, IOSB, AST, <BUFFER, LENGTH, FLG>)
;	MR7790	
;	MR7791	                     glnw$s (LUN$NS,
;	MR7792	                             EFN$NS,
;	MR7793	                             IOSB,
;	MR7794	                             %(AST)%,
;	MR7795	                             <BUFFER, .LENGTH, 2>);
;	MR7796	
;	MR7797	! Map error codes to Network Managment Code
;	MR7798	
;	MR7799	                     (if .IOSB<0,8,1> geq 0
;	MR7800	                      then 1
;	MR7801	                      else -8)
;	MR7802	                     end
;	MR7803	               %fi
;	MR7804	         %fi
;	 R7805	     %;                                 ! End $NML$MAP_NODE_ID
;	 R7806	
;	 R7807	
;	 R7808	! $NML$GET_HOST_ID (LENGTH,BUFFER) - Get the host node number/name
;	 R7809	
;	 R7810	
;	 R7811	macro
;	MR7812	     $NML$GET_HOST_ID (LENGTH, BUFFER) =
;	MR7813	         %if $TOPS20 or $TOPS10
;	MR7814	         %then begin                    ! Get local instead
		NMXINT -- NML Interface to NMX			24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 122
		Node Mapping Function Interface Macros		 3-Jan-1983 17:29:31	DNET61:<MCB.NML>NMXINT.REQ.1 (6)

;	MR7815	               local $NML$TEMP_PTR;
;	MR7816	               %if not %declared (NMU$NETWORK_LOCAL)
;	MR7817	               %then external NMU$NETWORK_LOCAL; %fi
;	MR7818	
;	MR7819	               $NML$TEMP_PTR = NMU$NETWORK_LOCAL ();
;	MR7820	               ch$move (min (2 + 1 + ch$rchar (ch$plus (.$NML$TEMP_PTR, 2)),
;	MR7821	                             .(LENGTH)),
;	MR7822	                        .$NML$TEMP_PTR,
;	MR7823	                        (BUFFER));
;	MR7824	               1
;	MR7825	               end
;	MR7826	         %else %if $MCB
;	MR7827	               %then begin
;	MR7828	                     %if not %declared (IOSB)
;	MR7829	                     %then own IOSB: vector[2]; %fi ! I/O Status block
;	MR7830	                     external literal   ! Have to get this elsewhere.
;	MR7831	                              LUN$NS,
;	MR7832	                              EFN$NS;
;	MR7833	
;	MR7834	! Format of GLNW$S Macro
;	MR7835	!
;	MR7836	! GLNW$S (LUN, EFN, IOSB, AST, <BUFFER, LENGTH, FLG>)
;	MR7837	
;	MR7838	                     glnw$s (LUN$NS,
;	MR7839	                             EFN$NS,
;	MR7840	                             IOSB,
;	MR7841	                             %(AST)%,
;	MR7842	                             <BUFFER, .LENGTH, 3>);
;	MR7843	
;	MR7844	! Map error codes to Network Managment Code
;	MR7845	
;	MR7846	                     (if .IOSB<0,8,1> geq 0
;	MR7847	                      then 1
;	MR7848	                      else -8)
;	MR7849	                     end
;	MR7850	               %fi
;	MR7851	         %fi
;	 R7852	     %;                                 ! End $NML$GET_HOST_ID
		NMXINT -- NML Interface to NMX			24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 123
		Node Mapping Function Interface Macros		 3-Jan-1983 17:29:31	DNET61:<MCB.NML>NMXINT.REQ.1 (7)

;	 R7853	
;	 R7854	%title ''
;	 R7855	%sbttl ''
;	 R7856	
;	 R7857	!
;	 R7858	! [End of NMXINT.REQ]
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 124
								 3-Jan-1983 17:29:31	DNET61:<MCB.NML>NMXINT.REQ.1 (8)

;	 R7859	
;	 R7860	! Local Modes:
;	 R7861	! Mode:BLISS
;	 R7862	! Auto Save Mode:2
;	 R7863	! Comment Column:40
;	 R7864	! Comment Rounding:+1
;	 R7865	! End:
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 125
								 3-Jan-1983 01:26:09	DNET61:<MCB.NML>NMLLIB.REQ.1 (3)

;	  7866	
;	  7867	require 'NMUCOM';                       ! Utilities common definitions
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 126
								 3-Jan-1983 03:13:34	DNET61:<MCB.NML>NMUCOM.REQ.1 (1)

;	 R7868	! <BRANDT.DEVELOPMENT>NMUCOM.REQ.1 07-Sep-82 10:13:05, Edit by BRANDT
;	 R7869	!
;	 R7870	!   Make PROGRAM_ERROR cause the program to stop.  Before this edit
;	 R7871	!   this was just a NOP.
;	 R7872	!
;	 R7873	! NET:<PECKHAM.DEVELOPMENT>NMUCOM.REQ.2 29-Jun-82 09:56:00, Edit by PECKHAM
;	 R7874	!
;	 R7875	! Changes for NMX command handling:
;	 R7876	!  Add $NMU_NMX_* macros for optimimal implementation.
;	 R7877	!
;	 R7878	! <BRANDT.DEVELOPMENT>NMUCOM.REQ.1 01-Jun-82 10:13:05, Edit by BRANDT
;	 R7879	!
;	 R7880	!   Remove definition for NMU$TIMEOUT_CHECK.
;	 R7881	!
;	 R7882	! NET:<PECKHAM.DEVELOPMENT>NMUCOM.REQ.3 14-May-82 12:19:27, Edit by PECKHAM
;	 R7883	!
;	 R7884	! Add NMU$DLX_KNOWN_DEVICE and NMU$DLX_RETURN_CIRCUITS synonyms.
;	 R7885	!
;	 R7886	! NET:<PECKHAM.DEVELOPMENT>NMUCOM.REQ.9 28-Apr-82 13:52:10, Edit by PECKHAM
;	 R7887	!
;	 R7888	! Add $NMU_DLX_* macros. This is to help fix the MOP function timeout bug.
;	 R7889	! Add NMU$K_MOP_RETRY_LIMIT for MOP retransmit limit.
;	 R7890	!
;	 R7891	! NET:<VOBA.NML.DEVELOPMENT>NMUCOM.REQ.4 25-Mar-82 17:55:39, Edit by VOBA
;	 R7892	!
;	 R7893	! Add new routine (global mapping) name NMU$QUEUE_LENGTH (alias UQ_LENGTH)
;	 R7894	! for NMUQUE module.
;	 R7895	!
;	 R7896	! NET:<VOBA.NML.DEVELOPMENT>NMUCOM.REQ.3 19-Feb-82 12:41:10, Edit by VOBA
;	 R7897	!
;	 R7898	! Fix typo errors.
;	 R7899	!
;	 R7900	! NET:<VOBA.NML.DEVELOPMENT>NMUCOM.REQ.15 18-Feb-82 17:10:20, Edit by VOBA
;	 R7901	!
;	 R7902	! Clean up code and update copyright date.
;	 R7903	!
;	 R7904	! NET:<GROSSMAN>NMUCOM.REQ.3 26-Jan-82 06:53:41, Edit by GROSSMAN
;	 R7905	!
;	 R7906	! Fix definition of EVENT_BLOCK. This is need in order to have tasks wake up
;	 R7907	! on multiple events.
;	 R7908	!
;	 R7909	! NET:<PECKHAM.DEVELOPMENT>NMUCOM.REQ.2 20-Jan-82 08:54:21, Edit by PECKHAM
;	 R7910	!
;	 R7911	! Fix NMU$SCHED_MANAGER macro to declare NMU$SCHED_WAIT as having a value.
;	 R7912	!
;	 R7913	! NET:<DECNET20-V3P1.NMLLIB>NMUCOM.REQ.3 03-Dec-81 14:31:00, Edit by THIGPEN
;	 R7914	!
;	 R7915	! Add definition for NMU$TIMEOUT_CHECK.
;	 R7916	!
;	 R7917	! NET:<DECNET20-V3P1.NMU>NMUCOM.REQ.3 13-Jul-81 10:00:18, Edit by GUNN
;	 R7918	!
;	 R7919	! Add definition for NMU$FILE_INITIALIZE.
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 127
								 3-Jan-1983 03:13:34	DNET61:<MCB.NML>NMUCOM.REQ.1 (1)

;	 R7920	!
;	 R7921	! NET:<DECNET20-V3P1.NMU>NMUCOM.REQ.2  2-Jul-81 12:03:30, Edit by GUNN
;	 R7922	!
;	 R7923	! Add definitions for new module NMUUTL.
;	 R7924	!
;	 R7925	! NET:<DECNET20-V3P1.NMU>NMUCOM.REQ.2 18-Jun-81 15:48:09, Edit by GUNN
;	 R7926	!
;	 R7927	!    Remove definition of DLX_TRANSFER.
;	 R7928	!
;	 R7929	! NET:<DECNET20-V3P1.NMU>NMUCOM.REQ.2 12-Jun-81 13:36:30, Edit by JENNESS
;	 R7930	!
;	 R7931	!    Readability improvements.
;	 R7932	!
;	 R7933	! NET:<DECNET20-V3P1.BASELEVEL-2.MCB>NMUCOM.REQ.2 10-Jun-81 09:58:52, Edit by SROBINSON
;	 R7934	!
;	 R7935	!    Add Quota Queue Definitions
;	 R7936	!
;	 R7937	! NET:<DECNET20-V3P1.NMU>NMUCOM.REQ.2 26-May-81 13:27:39, Edit by JENNESS
;	 R7938	!
;	 R7939	!    Add OUTPUT_POSITION to TEXT STATE BLOCK.
;	 R7940	!
;	 R7941	! NET:<DECNET20-V3P1.NMU>NMUCOM.REQ.12  8-May-81 17:28:37, Edit by GUNN
;	 R7942	!
;	 R7943	!    Fix TASK_ERROR, TASK_INFO, and PROGRAM_ERROR to really handle
;	 R7944	!    arguments like %STRING as advertised.
;	 R7945	!
;	 R7946	! NET:<DECNET20-V3P1.NMU>NMUCOM.REQ.2 16-Apr-81 13:43:09, Edit by JENNESS
;	 R7947	!
;	 R7948	!    Add NMU$FILE and NMU$TABLE definitions
;	 R7949	!
;	 R7950	! NET:<DECNET20-V3P1.BASELEVEL-2.MCB>NMUCOM.REQ.2 30-Apr-81 14:07:55, Edit by SROBINSON
;	 R7951	!
;	 R7952	!    Fix Text Generation in MCB mode
;	 R7953	!
;	 R7954	! NET:<DECNET20-V3P1.NMU>NMUCOM.REQ.36 18-Mar-81 11:23:31, Edit by JENNESS
;	 R7955	!
;	 R7956	!    Split debugging macros off into file DEBUG.REQ
;	 R7957	!
;	 R7958	! NET:<DECNET20-V3P1.NMU>NMUCOM.REQ.3 10-Mar-81 11:26:21, Edit by JENNESS
;	 R7959	!
;	 R7960	!    Add debugging macros.
;	 R7961	!
;	 R7962	! NET:<DECNET20-V3P1.NMU>NMUCOM.REQ.3  9-Feb-81 10:33:38, Edit by JENNESS
;	 R7963	!
;	 R7964	!    Change text state block.  Remove FIELD_SUPPRESS.  Change FIELD_NOCOMPRESS
;	 R7965	!    to FIELD_ZERO_SUPPRESS.  Makes code much(!!) clearer.
;	 R7966	!
;	 R7967	! NET:<DECNET20-V3P1.BASELEVEL-2.SOURCES>NMUCOM.REQ.16  4-Feb-81 17:41:37, Edit by GUNN
;	 R7968	!
;	 R7969	!    Update copyright date to 1981
		NMUCOM -- Network Management Utilities Common D 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 128
								 3-Jan-1983 03:13:34	DNET61:<MCB.NML>NMUCOM.REQ.1 (2)

;	 R7970	%title 'NMUCOM -- Network Management Utilities Common Definitions'
;	 R7971	
;	 R7972	!                    COPYRIGHT (c) 1980, 1981, 1982
;	 R7973	!                    DIGITAL EQUIPMENT CORPORATION
;	 R7974	!                        Maynard, Massachusetts
;	 R7975	!
;	 R7976	!     This software is furnished under a license and may  be  used
;	 R7977	!     and copied only in accordance with the terms of such license
;	 R7978	!     and with the inclusion of the above copyright notice.   This
;	 R7979	!     software  or any other copies thereof may not be provided or
;	 R7980	!     otherwise made available to any other person.  No  title  to
;	 R7981	!     and ownership of the software is hereby transferred.
;	 R7982	!
;	 R7983	!     The information  in  this  software  is  subject  to  change
;	 R7984	!     without  notice  and should not be construed as a commitment
;	 R7985	!     by DIGITAL EQUIPMENT CORPORATION.
;	 R7986	!
;	 R7987	!     DIGITAL assumes no responsibility for the use or reliability
;	 R7988	!     of  its  software  on  equipment  which  is  not supplied by
;	 R7989	!     DIGITAL.
;	 R7990	!
;	 R7991	
;	 R7992	!++
;	 R7993	! Facility: LSG DECnet Network Management
;	 R7994	!
;	 R7995	! Abstract: This file contains definitions for data base
;	 R7996	!           formats and interesting values used when communicating
;	 R7997	!           with the NMU utility routines.
;	 R7998	!
;	 R7999	! Environment: Bliss-36, Bliss-32 and Bliss-16.
;	 R8000	!
;	 R8001	! Author: Steven M. Jenness, Creation date: 10-Sep-80
;	 R8002	!
;	 R8003	!--
		NMUCOM -- Network Management Utilities Common D 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 129
								 3-Jan-1983 03:13:34	DNET61:<MCB.NML>NMUCOM.REQ.1 (3)

;	 R8004	
;	 R8005	!
;	 R8006	! Boolean value definitions
;	 R8007	!
;	 R8008	
;	 R8009	literal
;	 R8010	       $TRUE = 1 eql 1,
;	 R8011	       $FALSE = 1 eql 0;
;	 R8012	
;	 R8013	
;	 R8014	! Semaphore block
;	 R8015	!
;	 R8016	!	A semaphore defined by this block is set/reset by
;	 R8017	!	the macro calls LOCK/UNLOCK.
;	 R8018	!
;	 R8019	! macro:   SEMAPHORE_BLOCK	 Defines a semaphore block
;	 R8020	! value:   SEMAPHORE_BLOCK_SIZE  Defines size of a semaphore block
;	 R8021	
;	 R8022	
;	 R8023	$field SEMAPHORE_BLOCK_FIELDS =
;	 R8024	    set
;	 R8025	    SEMAPHORE = [$integer]              ! Interlock flag
;	 R8026	    tes;
;	 R8027	
;	 R8028	literal
;	 R8029	       SEMAPHORE_BLOCK_SIZE = $field_set_size;
;	 R8030	
;	 R8031	macro
;	MR8032	     SEMAPHORE_BLOCK =
;	 R8033	         block [SEMAPHORE_BLOCK_SIZE] field (SEMAPHORE_BLOCK_FIELDS) %;
		NMUCOM -- Network Management Utilities Common D 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 130
		Queue Structure Definitions			 3-Jan-1983 03:13:34	DNET61:<MCB.NML>NMUCOM.REQ.1 (4)

;	 R8034	%sbttl 'Queue Structure Definitions'
;	 R8035	
;	 R8036	! These queue structure definitions are used with the routines contained
;	 R8037	! in NMUQUE (Queue Manager).
;	 R8038	!
;	 R8039	! Queue entry definitions
;	 R8040	!
;	 R8041	! macro:   Q_ENTRY        Defines a queue entry
;	 R8042	! value:   Q_ENTRY_SIZE  Defines size of queue entry header
;	 R8043	
;	 R8044	
;	 R8045	$field Q_ENTRY_FIELDS =
;	 R8046	    set
;	 R8047	    Q_FORWARD = [$address],
;	 R8048	    Q_REVERSE = [$address],
;	 R8049	    Q_SEMAPHORE = [$sub_block (SEMAPHORE_BLOCK_SIZE)],
;	 R8050	    Q_DATA = [$sub_block (0)]
;	 R8051	    tes;
;	 R8052	
;	 R8053	literal
;	 R8054	       Q_ENTRY_SIZE = $field_set_size,
;	 R8055	       Q_ENTRY_ALLOCATION = $field_set_units;
;	 R8056	
;	 R8057	macro
;	MR8058	     Q_ENTRY =
;	 R8059	         block [Q_ENTRY_SIZE] field (Q_ENTRY_FIELDS) %;
;	 R8060	
;	 R8061	
;	 R8062	! Queue header definitions
;	 R8063	!
;	 R8064	! macro:   Q_HEADER         Defines a queue header
;	 R8065	! value:   Q_HEADER_SIZE  Defines size of queue header
;	 R8066	
;	 R8067	
;	 R8068	literal
;	 R8069	       Q_HEADER_SIZE = Q_ENTRY_SIZE,
;	 R8070	       Q_HEADER_ALLOCATION = Q_ENTRY_ALLOCATION;
;	 R8071	
;	 R8072	macro
;	MR8073	     Q_HEADER =
;	 R8074	         block [Q_HEADER_SIZE] field (Q_ENTRY_FIELDS) %;
;	 R8075	
;	 R8076	
;	 R8077	! These tasking definitions are used with the tasking system contained
;	 R8078	! in NMUSKD (Scheduler).
;	 R8079	!
;	 R8080	! Event data base definitions
;	 R8081	!
;	 R8082	! macro:   EVENT_BLOCK       Defines a event block
;	 R8083	! value:   EVENT_BLOCK_SIZE  Defines size of a event block
;	 R8084	
;	 R8085	
		NMUCOM -- Network Management Utilities Common D 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 131
		Queue Structure Definitions			 3-Jan-1983 03:13:34	DNET61:<MCB.NML>NMUCOM.REQ.1 (4)

;	 R8086	$field EVENT_BLOCK_FIELDS =
;	 R8087	    set
;	 R8088	    EB_TASKS = [$address],
;	 R8089	    EB_SEMAPHORE = [$sub_block (SEMAPHORE_BLOCK_SIZE)],
;	 R8090	    EB_NOINT = [$bit]
;	 R8091	    tes;
;	 R8092	
;	 R8093	literal
;	 R8094	       EVENT_BLOCK_SIZE = $field_set_size,
;	 R8095	       EVENT_BLOCK_ALLOCATION = $field_set_units;
;	 R8096	
;	 R8097	macro
;	MR8098	     EVENT_BLOCK =
;	 R8099	         block [EVENT_BLOCK_SIZE] field (EVENT_BLOCK_FIELDS) %;
;	 R8100	
;	 R8101	
;	 R8102	! Scheduling queue header definitions
;	 R8103	!
;	 R8104	! macro:   SQ_HEADER       Defines a queue header block
;	 R8105	! value:   SQ_HEADER_SIZE  Defines size of queue header block
;	 R8106	
;	 R8107	
;	 R8108	$field SQ_HEADER_FIELDS =
;	 R8109	    set
;	 R8110	    Q_QUEUE = [$sub_block (Q_HEADER_SIZE)],
;	 R8111	    Q_EVENT = [$sub_block (EVENT_BLOCK_SIZE)]
;	 R8112	    tes;
;	 R8113	
;	 R8114	literal
;	 R8115	       SQ_HEADER_SIZE = $field_set_size,
;	 R8116	       SQ_HEADER_ALLOCATION = $field_set_units;
;	 R8117	
;	 R8118	macro
;	MR8119	     SQ_HEADER =
;	 R8120	         block [SQ_HEADER_SIZE] field (SQ_HEADER_FIELDS) %;
;	 R8121	
;	 R8122	
;	 R8123	! macro:   QQ_HEADER       Defines a quota queue header block
;	 R8124	! value:   QQ_HEADER_SIZE  Defines size of quota queue header block
;	 R8125	
;	 R8126	
;	 R8127	$field QQ_HEADER_FIELDS =
;	 R8128	    set
;	 R8129	    QQ_SQUEUE = [$sub_block (SQ_HEADER_SIZE)],
;	 R8130	    QQ_IEVENT = [$sub_block (EVENT_BLOCK_SIZE)],
;	 R8131	    QQ_QUOTA = [$short_integer],
;	 R8132	    QQ_CURRENT = [$short_integer]
;	 R8133	    tes;
;	 R8134	
;	 R8135	literal
;	 R8136	       QQ_HEADER_SIZE = $field_set_size,
;	 R8137	       QQ_HEADER_ALLOCATION = $field_set_units;
		NMUCOM -- Network Management Utilities Common D 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 132
		Queue Structure Definitions			 3-Jan-1983 03:13:34	DNET61:<MCB.NML>NMUCOM.REQ.1 (4)

;	 R8138	
;	 R8139	macro
;	MR8140	     QQ_HEADER =
;	 R8141	         block [QQ_HEADER_SIZE] field (QQ_HEADER_FIELDS) %;
		NMUCOM -- Network Management Utilities Common D 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 133
		Tasking Definitions				 3-Jan-1983 03:13:34	DNET61:<MCB.NML>NMUCOM.REQ.1 (5)

;	 R8142	%sbttl 'Tasking Definitions'
;	 R8143	
;	 R8144	! macro: TASK_ERROR
;	 R8145	!
;	 R8146	!		This macro signals that the currently running
;	 R8147	!		task has encountered a fatal error.  The supplied
;	 R8148	!		string is associated with the task crash.  The
;	 R8149	!		system specific recovery procedure is started.
;	 R8150	!
;	 R8151	!	TASK_ERROR (ERROR_STRING)
;	 R8152	!
;	 R8153	!	where ERROR_STRING is either a pointer to a string
;	 R8154	!	or a literal message string as for %STRING.
;	 R8155	
;	 R8156	
;	 R8157	macro
;	MR8158	     TASK_ERROR [] =
;	MR8159	         begin
;	MR8160	         %if $MCB
;	MR8161	         %then external routine NMU$SCHED_COMPLETE;
;	MR8162	               NMU$SCHED_COMPLETE ();
;	MR8163	         %else external routine NMU$SCHED_ERROR;
;	MR8164	               NMU$SCHED_ERROR (%if %isstring (%remove (%remaining))
;	MR8165	                                %then ch$asciz (%remaining)
;	MR8166	                                %else %remaining
;	MR8167	                                %fi);
;	MR8168	         %fi
;	 R8169	         end %;
;	 R8170	
;	 R8171	
;	 R8172	! macro: TASK_INFO
;	 R8173	!
;	 R8174	!		This macro is used by a task that wishes to
;	 R8175	!		output an informational message.  Hopefully
;	 R8176	!		to an operators console, log, or controlling
;	 R8177	!		terminal.
;	 R8178	!
;	 R8179	!	TASK_INFO (INFO_MESSAGE)
;	 R8180	!
;	 R8181	!	where INFO_MESSAGE is either a pointer to a string
;	 R8182	!	or a literal message string as for %STRING.
;	 R8183	
;	 R8184	
;	 R8185	macro
;	MR8186	     TASK_INFO [] =
;	MR8187	         %if not $MCB
;	MR8188	         %then begin
;	MR8189	               external routine SS_MESSAGE;     ! System specific routine
;	MR8190	
;	MR8191	               %if %isstring (%remove (%remaining))
;	MR8192	               %then SS_MESSAGE (ch$asciz (%remaining))
;	MR8193	               %else SS_MESSAGE (%remaining)
		NMUCOM -- Network Management Utilities Common D 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 134
		Tasking Definitions				 3-Jan-1983 03:13:34	DNET61:<MCB.NML>NMUCOM.REQ.1 (5)

;	MR8194	               %fi
;	MR8195	               end
;	 R8196	         %fi %;
;	 R8197	
;	 R8198	
;	 R8199	! macro: PROGRAM_ERROR
;	 R8200	!
;	 R8201	!		This macro is used when a unrecoverable error
;	 R8202	!		has been detected in the multi-tasking environment.
;	 R8203	!
;	 R8204	!	PROGRAM_ERROR (INFO_MESSAGE)
;	 R8205	!
;	 R8206	!	where INFO_MESSAGE is either a pointer to a string
;	 R8207	!	or a literal message string as for %STRING.
;	 R8208	
;	 R8209	
;	 R8210	macro
;	MR8211	     PROGRAM_ERROR [] =
;	MR8212	         %if not $MCB
;	MR8213	         %then begin
;	MR8214	               external routine SS_MESSAGE;     ! System specific routine
;	MR8215		       DECLARE_JSYS (HALTF);
;	MR8216	
;	MR8217	               SS_MESSAGE (ch$asciz ('?FATAL PROGRAM ERROR: '));
;	MR8218	               %if %isstring (%remove (%remaining))
;	MR8219	               %then SS_MESSAGE (ch$asciz (%remaining));
;	MR8220	               %else SS_MESSAGE (%remaining);
;	MR8221	               %fi
;	MR8222		       while $true do $$HALTF ();	! HALTF for KL
;	MR8223	               end
;	MR8224		 %else begin
;	MR8225	               external routine NMU$FA;     	! System specific routine
;	MR8226		       NMU$FA ();			! Execute IOT for MCB
;	MR8227		       end
;	 R8228	         %fi %;
		NMUCOM -- Network Management Utilities Common D 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 135
		Network Logical Link Definitions		 3-Jan-1983 03:13:34	DNET61:<MCB.NML>NMUCOM.REQ.1 (6)

;	 R8229	%sbttl 'Network Logical Link Definitions'
;	 R8230	
;	 R8231	! These definitions are used with the task to task logical link
;	 R8232	! interface contained in NMUNET (Network Interface).
;	 R8233	!
;	 R8234	! Connect block definition
;	 R8235	
;	 R8236	
;	 R8237	$field CONNECT_BLOCK_FIELDS =
;	 R8238	    set
;	 R8239	!
;	 R8240	!   Fields common to source and target links
;	 R8241	!
;	 R8242	    CB_HOST = [$pointer],		! Host name
;	 R8243	    CB_HOST_LENGTH = [$integer],
;	 R8244	    CB_OBJECT = [$integer],		! DECnet object type code
;	 R8245	    CB_TASK = [$pointer],		! Task name
;	 R8246	    CB_TASK_LENGTH = [$integer],
;	 R8247	!
;	 R8248	! Access control info
;	 R8249	!	supplied on source links
;	 R8250	!	returned on target links
;	 R8251	!
;	 R8252	    CB_USERID = [$pointer],		! User id
;	 R8253	    CB_USERID_LENGTH = [$integer],
;	 R8254	    CB_DATA = [$pointer],		! Optional data
;	 R8255	    CB_DATA_LENGTH = [$integer],
;	 R8256	    CB_ACCOUNT = [$pointer],            ! Account
;	 R8257	    CB_ACCOUNT_LENGTH = [$integer],
;	 R8258	    CB_PASSWORD = [$pointer],           ! Password
;	 R8259	    CB_PASSWORD_LENGTH = [$integer],
;	 R8260	!
;	 R8261	! Fields for source links only
;	 R8262	!
;	 R8263	    CB_DESCRIPTOR = [$pointer],         ! Object descriptor
;	 R8264	    CB_DESCRIPTOR_LENGTH = [$integer],
;	 R8265	    CB_REJECT_CODE = [$integer],	! Reject code
;	 R8266	!
;	 R8267	! Fields for target links only
;	 R8268	!
;	 R8269	    CB_HOST_BUFFER = [$bytes (9)],	! Host id at other end of link
;	 R8270	        $align (fullword)
;	 R8271	    CB_TASK_BUFFER = [$bytes(17)],
;	 R8272	        $align (fullword)
;	 R8273	    CB_USERID_BUFFER = [$bytes (17)],
;	 R8274	        $align (fullword)
;	 R8275	    CB_PASSWORD_BUFFER = [$bytes (17)],
;	 R8276	        $align (fullword)
;	 R8277	    CB_ACCOUNT_BUFFER = [$bytes (17)],
;	 R8278	        $align (fullword)
;	 R8279	    CB_DESCRIPTOR_BUFFER = [$bytes (17)],
;	 R8280	!
		NMUCOM -- Network Management Utilities Common D 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 136
		Network Logical Link Definitions		 3-Jan-1983 03:13:34	DNET61:<MCB.NML>NMUCOM.REQ.1 (6)

;	 R8281	! Connect data buffer
;	 R8282	!
;	 R8283	        $align (fullword)
;	 R8284	    CB_DATA_BUFFER = [$bytes (17)]
;	 R8285	    tes;
;	 R8286	
;	 R8287	literal
;	 R8288	       CONNECT_BLOCK_SIZE = $field_set_size,
;	 R8289	       CONNECT_BLOCK_ALLOCATION = $field_set_units;
;	 R8290	
;	 R8291	macro
;	MR8292	     CONNECT_BLOCK =
;	 R8293	         block [CONNECT_BLOCK_SIZE] field (CONNECT_BLOCK_FIELDS) %;
;	 R8294	
;	 R8295	$literal
;	 R8296	        TARGET_LINK = 1,                ! Code for target link (passive)
;	 R8297	        SOURCE_LINK = 2;                ! Code for source link (active)
;	 R8298	
;	 R8299	!
;	 R8300	! Link status block
;	 R8301	!
;	 R8302	
;	 R8303	$field LINK_STATUS_BLOCK_FIELDS =
;	 R8304	    set
;	 R8305	    LSB_FLAGS = [$bits (9)],            ! Link status bits
;	 R8306	        $overlay (LSB_FLAGS)
;	 R8307	    LSB_PREV_CONNECT = [$bit],          ! Link was previously connected
;	 R8308	    LSB_INTERRUPT = [$bit],             ! Link has interrupt data waiting
;	 R8309	    LSB_CLOSED = [$bit],                ! Link has been closed normally
;	 R8310	    LSB_ABORTED = [$bit],               ! Link has been aborted
;	 R8311	    LSB_EOM = [$bit],                   ! Link has full message to read
;	 R8312	    LSB_CCWAIT = [$bit],                ! Link is waiting for connect confirm
;	 R8313	    LSB_CIWAIT = [$bit],                ! Link is waiting for connect
;	 R8314	    LSB_SERVER = [$bit],                ! Link is a server
;	 R8315	    LSB_CONNECTED = [$bit],             ! Link is connected flag
;	 R8316	        $continue
;	 R8317	    LSB_REASON = [$byte]		! Link abort reason
;	 R8318	    tes;
;	 R8319	
;	 R8320	literal
;	 R8321	       LINK_STATUS_BLOCK_SIZE = $field_set_size,
;	 R8322	       LINK_STATUS_BLOCK_ALLOCATION = $field_set_units;
;	 R8323	
;	 R8324	macro
;	MR8325	     LINK_STATUS_BLOCK =
;	 R8326	         block [LINK_STATUS_BLOCK_SIZE] field (LINK_STATUS_BLOCK_FIELDS) %;
		NMUCOM -- Network Management Utilities Common D 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 137
		Text Processing Definitions			 3-Jan-1983 03:13:34	DNET61:<MCB.NML>NMUCOM.REQ.1 (7)

;	 R8327	%sbttl 'Text Processing Definitions'
;	 R8328	
;	 R8329	!
;	 R8330	! Provide interface to NMU text facility.
;	 R8331	!
;	 R8332	
;	 R8333	
;	 R8334	!	$NMU$TEXT (DPTR, N, PPTR {,ARG}...)
;	 R8335	!
;	 R8336	!	    Interpret DPTR as a pointer to a destination string. Interpret
;	 R8337	!           N as a value which represents the length of the destination
;	 R8338	!           string. Interpret PPTR as a character sequence pointer to an
;	 R8339	!           ASCIZ string pattern format string. Interpret ARG as zero or
;	 R8340	!           more arguments to be used as specified by the pattern format
;	 R8341	!           string.
;	 R8342	!
;	 R8343	
;	 R8344	macro
;	MR8345	     $NMU$TEXT (DST, DST_SIZE, PAT) =
;	MR8346	         begin
;	MR8347	         %if not %null(%remaining)
;	MR8348	         %then local ARGLIST: vector[%length-3];
;	MR8349	               $$TEXT_ARG (ARGLIST,%remaining);
;	MR8350	         %fi
;	MR8351	
;	MR8352	         NMU$TEXT (DST,
;	MR8353	                   DST_SIZE,
;	MR8354	                   %if %isstring (%remove(PAT))
;	MR8355	                   %then CH$ASCIZ(%remove(PAT))
;	MR8356	                   %else PAT %fi,
;	MR8357	                   (%length-3),
;	MR8358	                   %if not %null(%remaining)
;	MR8359	                   %then ARGLIST
;	MR8360	                   %else 0
;	MR8361	                   %fi)
;	 R8362	         end %;
;	 R8363	
;	 R8364	! Inner macro to process argument list for $NMU$TEXT
;	 R8365	
;	 R8366	macro
;	MR8367	     $$TEXT_ARG (VNAME) [ARG] =
;	 R8368	         VNAME[%count] = ARG %;
;	 R8369	
;	 R8370	!
;	 R8371	! Text state block
;	 R8372	!
;	 R8373	
;	 R8374	$field TEXT_BLOCK_FIELDS =
;	 R8375	    set
;	 R8376	    STATE = [$integer],			! Current state of pattern parser
;	 R8377	    PARAMETER_LIST = [$address],        ! Start of parameter list
;	 R8378	    PARAMETER_NEXT = [$address],        ! Next parameter to use
		NMUCOM -- Network Management Utilities Common D 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 138
		Text Processing Definitions			 3-Jan-1983 03:13:34	DNET61:<MCB.NML>NMUCOM.REQ.1 (7)

;	 R8379	    PARAMETER_COUNT = [$integer],       ! Number of parameters left on list
;	 R8380	    PATTERN_START = [$pointer],		! Start of pattern
;	 R8381	    PATTERN_PTR = [$pointer],		! Current pointer into pattern
;	 R8382	    PATTERN_CHECKPOINT = [$pointer],	! Checkpoint into pattern
;	 R8383	    OUTPUT_ROUTINE = [$address],        ! Character output routine
;	 R8384	    OUTPUT_START = [$pointer],		! Pointer to start of output
;	 R8385	    OUTPUT_PTR = [$pointer],		! Current pointer into output
;	 R8386	    OUTPUT_CHECKPOINT = [$integer],     ! Checkpoint into output
;	 R8387	    OUTPUT_COUNT = [$integer],		! Characters already output
;	 R8388	    OUTPUT_MAX = [$integer],		! Maximum characters for output
;	 R8389	    OUTPUT_POSITION = [$integer],       ! Horizontal position on line
;	 R8390	    FIELD_COUNT = [$integer],		! Characters already output to field
;	 R8391	    FIELD_WIDTH = [$integer],		! Max characters for field
;	 R8392	    FIELD_JUSTIFY = [$integer],		! Justification type for field
;	 R8393	    FIELD_REPEAT = [$integer],		! Number of times to repeat field
;	 R8394	    FIELD_RADIX = [$integer],		! Radix for a numeric field
;	 R8395	    FIELD_DEFAULT = [$bit],             ! Repeat default flag
;	 R8396	    FIELD_NOWIDTH = [$bit],             ! No width field given
;	 R8397	    FIELD_SIGNED = [$bit],              ! Field is a signed value
;	 R8398	    FIELD_ZERO_SUPPRESS = [$bit],       ! Suppress leading zeros
;	 R8399	    FIELD_OVERFLOW = [$bit],		! Field overflowed width
;	 R8400	    NULL_SUPPRESS = [$bit]              ! Suppress "free" null at end
;	 R8401	    tes;
;	 R8402	
;	 R8403	literal
;	 R8404	       TEXT_BLOCK_SIZE = $field_set_size,
;	 R8405	       TEXT_BLOCK_ALLOCATION = $field_set_units;
;	 R8406	
;	 R8407	macro
;	MR8408	     TEXT_STATE_BLOCK =
;	 R8409	         block [TEXT_BLOCK_SIZE] field (TEXT_BLOCK_FIELDS) %;
;	 R8410	
;	 R8411	literal					! Values for TEXT_STATE_BLOCK [STATE]
;	 R8412	       TEXT_COPY = 1,			! Copying from pattern to output
;	 R8413	       DIRECTIVE_START = 2,		! Start of directive seen
;	 R8414	       REPT_PARM = 3,			! Field repeat set from parameter list
;	 R8415	       REPT_VALUE = 4,			! Field repeat accumulated from pattern
;	 R8416	       WIDTH_START = 5,			! Start of width field seen
;	 R8417	       WIDTH_PARM = 6,			! Width set from parameter list
;	 R8418	       WIDTH_VALUE = 7,			! Width accumulated from pattern
;	 R8419	       JUSTIFY_FIELD = 8,               ! Field justify character seen
;	 R8420	       WIDTH_END = 9,			! End of width field seen
;	 R8421	       DONE = 10,                       ! Interpretation successfull completion
;	 R8422	       ABORT = 11,                      ! Unprocessable directive
;	 R8423	       BUFFER_OVERFLOW = 12;		! Output buffer overflow
;	 R8424	
;	 R8425	literal
;	 R8426	       STATE_MIN = TEXT_COPY,           ! Minimum state value
;	 R8427	       STATE_MAX = WIDTH_END;           ! Maximum state value
;	 R8428	
;	 R8429	literal                                 ! Values for TEXT_STATE_BLOCK [FIELD_JUSTIFY]
;	 R8430	       NO_FILL = 1,			! No justify and no fill
		NMUCOM -- Network Management Utilities Common D 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 139
		Text Processing Definitions			 3-Jan-1983 03:13:34	DNET61:<MCB.NML>NMUCOM.REQ.1 (7)

;	 R8431	       LEFT_JUSTIFY = 2,                ! Left justify and fill on right
;	 R8432	       RIGHT_JUSTIFY = 3,               ! Right justify and left fill
;	 R8433	       CENTER_FILL = 4;			! Center and fill both ends
		NMUCOM -- Network Management Utilities Common D 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 140
		Direct Line Access Definitions			 3-Jan-1983 03:13:34	DNET61:<MCB.NML>NMUCOM.REQ.1 (8)

;	 R8434	%sbttl 'Direct Line Access Definitions'
;	 R8435	
;	 R8436	literal                                 ! DLX open reasons
;	 R8437	       DLX_LOAD = 1,                    !  Loading
;	 R8438	       DLX_DUMP = 2,                    !  Dumping
;	 R8439	       DLX_LOOP = 3,                    !  Loop back test
;	 R8440	       DLX_OTHER = 4,                   !  What ever
;	 R8441	
;	 R8442	                                        ! DLX read/write reasons
;	 R8443	       DLX_SECONDARY = 5,               !  Secondary bootstrap
;	 R8444	       DLX_DATA = 6;                    !  MOP data message
;	 R8445	
;	 R8446	!
;	 R8447	! File system definitions
;	 R8448	!
;	 R8449	
;	 R8450	literal                                 ! File types
;	 R8451	       FILE_PERMANENT_DATA_BASE = 0,
;	 R8452	       FILE_SYSTEM_IMAGE = 1,
;	 R8453	       FILE_DUMP_IMAGE = 2,
;	 R8454	       FILE_SECONDARY_LOADER = 3,
;	 R8455	       FILE_TERTIARY_LOADER = 4,
;	 R8456	       FILE_SECONDARY_DUMPER = 5,
;	 R8457	       MAX_FILE_TYPE = 5;
;	 R8458	
		NMUCOM -- Network Management Utilities Common D 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 141
		Global Name Mappings				 3-Jan-1983 03:13:34	DNET61:<MCB.NML>NMUCOM.REQ.1 (9)

;	 R8459	%sbttl 'Global Name Mappings'
;	 R8460	
;	 R8461	!
;	 R8462	! Queue manager (NMUQUE)
;	 R8463	!
;	 R8464	
;	 R8465	macro
;	 R8466	     NMU$QUEUE_RESET = UQ_RESET %,
;	 R8467	     NMU$QUEUE_INSERT = UQ_INSERT %,
;	 R8468	     NMU$QUEUE_REMOVE = UQ_REMOVE %,
;	 R8469	     NMU$QUEUE_EXTRACT = UQ_EXTRACT %,
;	 R8470	     NMU$QUEUE_LENGTH = UQ_LENGTH %,
;	 R8471	     NMU$QUEUE_SCAN = UQ_SCAN %,
;	 R8472	     NMU$QUEUE_SCAN_EXTRACT = UQ_SEXTRACT %,
;	 R8473	
;	MR8474	     NMU$QUEUE_MANAGER =
;	MR8475	         NMU$QUEUE_RESET : novalue,     ! Reset a queue to null
;	MR8476	         NMU$QUEUE_INSERT,              ! Insert an entry to queue end
;	MR8477	         NMU$QUEUE_REMOVE,              ! Remove an entry from front of queue
;	MR8478	         NMU$QUEUE_EXTRACT,		! Remove specific entry from queue
;	MR8479	         NMU$QUEUE_LENGTH,              ! Return the length of queue
;	MR8480	         NMU$QUEUE_SCAN,                ! Operate on queue sequentially
;	MR8481		 NMU$QUEUE_SCAN_EXTRACT : novalue ! Extract entry while scanning
;	 R8482	     %;
;	 R8483	
;	 R8484	!
;	 R8485	! Memory Manager (NMUMEM)
;	 R8486	!
;	 R8487	
;	 R8488	macro
;	 R8489	     NMU$MEMORY_RESET = UM_RESET %,
;	 R8490	     NMU$MEMORY_GET = UM_GET %,
;	 R8491	     NMU$MEMORY_RELEASE = UM_RELEASE %,
;	 R8492	     NMU$MEMORY_INITIALIZE = UM_INITIALIZE %,
;	 R8493	
;	MR8494	     NMU$MEMORY_MANAGER =
;	MR8495	         NMU$MEMORY_RESET : novalue,       ! Reset free pool to empty
;	MR8496	         NMU$MEMORY_INITIALIZE : novalue,  ! Add memory to free pool
;	MR8497	         NMU$MEMORY_GET,                   ! Get block from free pool
;	MR8498	         NMU$MEMORY_RELEASE : novalue      ! Release block to free pool
;	 R8499	     %;
;	 R8500	
;	 R8501	!
;	 R8502	! Page allocator (NMUPAG)
;	 R8503	!
;	 R8504	
;	 R8505	macro
;	 R8506	     NMU$PAGE_INITIALIZE = UMP_INIT %,
;	 R8507	     NMU$PAGE_GET = UMP_GET %,
;	 R8508	     NMU$PAGE_RELEASE = UMP_RELEASE %,
;	 R8509	
;	MR8510	     NMU$PAGE_ALLOCATOR =
		NMUCOM -- Network Management Utilities Common D 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 142
		Global Name Mappings				 3-Jan-1983 03:13:34	DNET61:<MCB.NML>NMUCOM.REQ.1 (9)

;	MR8511	         NMU$PAGE_INITIALIZE : novalue, ! Reset page allocator
;	MR8512	         NMU$PAGE_GET,                  ! Allocate a page
;	MR8513	         NMU$PAGE_RELEASE : novalue     ! Release an allocated page
;	 R8514	     %;
;	 R8515	
;	 R8516	!
;	 R8517	! Scheduler (NMUSKD)
;	 R8518	!
;	 R8519	
;	 R8520	macro
;	 R8521	     NMU$SQUEUE_INSERT = US_INSERT %,
;	 R8522	     NMU$SQUEUE_REMOVE = US_REMOVE %,
;	 R8523	     NMU$SQUEUE_RESET = US_QRESET %,
;	 R8524	     NMU$QQUEUE_INSERT = US_QQINS %,
;	 R8525	     NMU$QQUEUE_REMOVE = US_QQREM %,
;	 R8526	     NMU$QQUEUE_RESET = US_QQSET %,
;	 R8527	     NMU$QQUEUE_EXTRACT = US_QQEXT %,
;	 R8528	     NMU$SCHED_EVENT = US_EVENT %,
;	 R8529	     NMU$SCHED_WAIT = US_WAIT %,
;	 R8530	     NMU$SCHED_FLAG = US_FLAG %,
;	 R8531	     NMU$SCHED_CREATE = US_CREATE %,
;	 R8532	     NMU$SCHED_ABORT = US_ABORT %,
;	 R8533	     NMU$SCHED_FINI = US_FINI %,
;	 R8534	     NMU$SCHED_SLEEP = US_SLEEP %,
;	 R8535	     NMU$SCHED_CURRENT = US_CURRENT %,
;	 R8536	     NMU$SCHED_DESCHEDULE = US_DESCHEDULE %,
;	 R8537	     NMU$SCHED_COMPLETE = US_COMPLETE %,
;	 R8538	     NMU$SCHED_ERROR = US_ERROR %,
;	 R8539	
;	MR8540	     NMU$SCHED_MANAGER =
;	MR8541	         NMU$SCHED_CREATE,              ! Create a new task
;	MR8542	         NMU$SCHED_ABORT : novalue,     ! Abort a task
;	MR8543		 NMU$SCHED_FINI : novalue,	! Finish a task's execution
;	MR8544	         NMU$SCHED_COMPLETE : novalue,  ! Complete a task's execution
;	MR8545	         NMU$SCHED_ERROR : novalue,     ! Print an error message, complete task
;	MR8546	         NMU$SQUEUE_INSERT : novalue,   ! Insert entry in a scheduling queue
;	MR8547	         NMU$SQUEUE_REMOVE,             ! Remove an entry, blocking if needed
;	MR8548	         NMU$SQUEUE_RESET : novalue,    ! Reset a scheduling type queue
;	MR8549	         NMU$QQUEUE_INSERT : novalue,   ! Insert entry in a quota queue
;	MR8550	         NMU$QQUEUE_REMOVE,             ! Remove a quota queue entry, blocking if needed
;	MR8551	         NMU$QQUEUE_RESET : novalue,    ! Reset a quota type queue
;	MR8552	         NMU$QQUEUE_EXTRACT,            ! Extract entry from quota type queue
;	MR8553	         NMU$SCHED_EVENT : novalue,     ! Reset a event block
;	MR8554	         NMU$SCHED_WAIT,                ! Wait for any event
;	MR8555	         NMU$SCHED_FLAG : novalue,      ! Flag event occurance
;	MR8556	         NMU$SCHED_SLEEP : novalue,     ! Put task to sleep for specified time
;	MR8557		 NMU$SCHED_CURRENT,		! Return current task block address
;	MR8558		 NMU$SCHED_DESCHEDULE : novalue	! Task descheduler
;	 R8559	     %;
;	 R8560	
;	 R8561	!
;	 R8562	! IPCF Manager (NMUIPC)
		NMUCOM -- Network Management Utilities Common D 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 143
		Global Name Mappings				 3-Jan-1983 03:13:34	DNET61:<MCB.NML>NMUCOM.REQ.1 (9)

;	 R8563	!
;	 R8564	
;	 R8565	macro
;	 R8566	     NMU$IPCF_INITIALIZE = UI_INIT %,
;	 R8567	     NMU$IPCF_FIND_PID = UI_FIND %,
;	 R8568	     NMU$IPCF_INFO = UI_INFO %,
;	 R8569	     NMU$IPCF_ORION = UI_ORION %,
;	 R8570	     NMU$IPCF_CREATE = UI_CREATE %,
;	 R8571	     NMU$IPCF_DESTROY = UI_DESTROY %,
;	 R8572	     NMU$IPCF_ALLOW = UI_ALLOW %,
;	 R8573	     NMU$IPCF_DISALLOW = UI_DISALLOW %,
;	 R8574	     NMU$IPCF_TRANSMIT = UI_TRANSMIT %,
;	 R8575	     NMU$IPCF_RECEIVE = UI_RECEIVE %,
;	 R8576	     NMU$IPCF_MAP_ID = UI_MAP %,
;	 R8577	
;	MR8578	     NMU$IPCF_MANAGER =
;	MR8579	         NMU$IPCF_INITIALIZE : novalue, ! Initialize the IPCF system
;	MR8580	         NMU$IPCF_FIND_PID,             ! Return of PID of given name
;	MR8581	         NMU$IPCF_INFO,                 ! Return PID of [SYSTEM]INFO
;	MR8582	         NMU$IPCF_ORION,                ! Return PID of ORION
;	MR8583	         NMU$IPCF_CREATE,               ! Make a pid for this process
;	MR8584	         NMU$IPCF_DESTROY,              ! Destroy pid and data bases
;	MR8585	         NMU$IPCF_ALLOW,                ! Allow pid to send to us
;	MR8586	         NMU$IPCF_DISALLOW,             ! Disallow pid from sending to us
;	MR8587	         NMU$IPCF_TRANSMIT,             ! Transmit a message
;	MR8588	         NMU$IPCF_RECEIVE,              ! Receive a message
;	MR8589	         NMU$IPCF_MAP_ID                ! Map a NMU$IPCF id to a IPCF PID
;	 R8590	     %;
;	 R8591	
;	 R8592	!
;	 R8593	! Network logical link interface (NMUNET)
;	 R8594	!
;	 R8595	
;	 R8596	macro
;	 R8597	     NMU$NETWORK_INITIALIZE = UN_INIT %,
;	 R8598	     NMU$NETWORK_LOCAL = UN_LOCAL %,
;	 R8599	     NMU$NETWORK_OPEN = UN_OPEN%,
;	 R8600	     NMU$NETWORK_ACCEPT = UN_ACCEPT %,
;	 R8601	     NMU$NETWORK_REJECT = UN_REJECT %,
;	 R8602	     NMU$NETWORK_READ = UN_READ %,
;	 R8603	     NMU$NETWORK_WRITE = UN_WRITE %,
;	 R8604	     NMU$NETWORK_ABORT = UN_ABORT %,
;	 R8605	     NMU$NETWORK_CLOSE = UN_CLOSE %,
;	 R8606	     NMU$NETWORK_STATUS = UN_STATUS %,
;	 R8607	     NMU$NETWORK_VALIDATE = UN_VALIDATE %;
;	 R8608	
;	 R8609	macro
;	MR8610	     NMU$NETWORK_UTILITIES =
;	MR8611	         NMU$NETWORK_INITIALIZE : novalue,      ! Initialize network interface
;	MR8612	         NMU$NETWORK_LOCAL,             ! Get pointer to local node id
;	MR8613	         NMU$NETWORK_OPEN,		! Open a logical link
;	MR8614	         NMU$NETWORK_ACCEPT,		! Accept an incoming connection on link
		NMUCOM -- Network Management Utilities Common D 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 144
		Global Name Mappings				 3-Jan-1983 03:13:34	DNET61:<MCB.NML>NMUCOM.REQ.1 (9)

;	MR8615	         NMU$NETWORK_REJECT,		! Reject incoming connection
;	MR8616	         NMU$NETWORK_READ,		! Read data from link
;	MR8617	         NMU$NETWORK_WRITE,		! Write data to link
;	MR8618	         NMU$NETWORK_ABORT,		! Abort link
;	MR8619	         NMU$NETWORK_CLOSE,		! Close link normally
;	MR8620	         NMU$NETWORK_STATUS,		! Read link's status
;	MR8621	         NMU$NETWORK_VALIDATE		! Validate system specific access info
;	 R8622	     %;
;	 R8623	
;	 R8624	!
;	 R8625	! File system interface (NMUFIL)
;	 R8626	!
;	 R8627	
;	 R8628	macro
;	 R8629	     NMU$FILE_INITIALIZE = UF_INI %,
;	 R8630	     NMU$FILE_OPEN = UF_OPEN %,
;	 R8631	     NMU$FILE_READ = UF_READ %,
;	 R8632	     NMU$FILE_WRITE = UF_WRITE %,
;	 R8633	     NMU$FILE_SKIP = UF_SKIP %,
;	 R8634	     NMU$FILE_SEEK = UF_SEEK %,
;	 R8635	     NMU$FILE_CLOSE = UF_CLOSE %,
;	 R8636	
;	MR8637	     NMU$FILE_ROUTINES =
;	MR8638	         NMU$FILE_OPEN,                 ! Open file
;	MR8639	         NMU$FILE_READ,                 ! Read record from file
;	MR8640	         NMU$FILE_WRITE,		! Write record to file
;	MR8641	         NMU$FILE_SKIP,                 ! Skip over bytes in a file
;	MR8642	         NMU$FILE_SEEK,                 ! Seek to specified byte in file
;	MR8643	         NMU$FILE_CLOSE                 ! Close file
;	 R8644	     %;
;	 R8645	
;	 R8646	!
;	 R8647	! Table data base manager (NMUTBL)
;	 R8648	!
;	 R8649	
;	 R8650	macro
;	 R8651	     NMU$TABLE_CLEAR = UT_CLEAR %,
;	 R8652	     NMU$TABLE_INSERT = UT_INSERT %,
;	 R8653	     NMU$TABLE_FETCH = UT_FETCH %,
;	 R8654	     NMU$TABLE_DELETE = UT_DELETE %,
;	 R8655	     NMU$TABLE_CHANGE = UT_CHANGE %,
;	 R8656	     NMU$TABLE_MAX = UT_MAX %,
;	 R8657	
;	MR8658	     NMU$TABLE_ROUTINES =
;	MR8659	         NMU$TABLE_CLEAR : novalue,     ! Clear a table
;	MR8660	         NMU$TABLE_INSERT,              ! Insert entry into table
;	MR8661	         NMU$TABLE_FETCH,               ! Fetch value from table
;	MR8662	         NMU$TABLE_DELETE,              ! Delete entry from table
;	MR8663	         NMU$TABLE_CHANGE,              ! Change entry value
;	MR8664	         NMU$TABLE_MAX                  ! Maximum table index
;	 R8665	     %;
;	 R8666	
		NMUCOM -- Network Management Utilities Common D 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 145
		Global Name Mappings				 3-Jan-1983 03:13:34	DNET61:<MCB.NML>NMUCOM.REQ.1 (9)

;	 R8667	!
;	 R8668	! Direct line access routines (NMUDLX)
;	 R8669	!
;	 R8670	
;	 R8671	literal
;	 R8672	    NMU$K_MOP_RETRY_LIMIT = 5;          ! MOP retransmit limit
;	 R8673	
;	 R8674	macro
;	MR8675	    $NMU_DLX_OPEN (USAGE, CIRCUIT_ID, RSP_PTR) =
;	MR8676		begin
;	MR8677		external routine NMU$DLX_OPEN;
;	MR8678		NMU$DLX_OPEN (USAGE, CIRCUIT_ID, RSP_PTR)
;	 R8679		end %,
;	LR8680	%if $MCB
;	 R8681	%then
;	MR8682	    $NMU_DLX_READ (ID, USAGE, PTR, CNT, TIMEOUT, RSP_PTR) =
;	MR8683		begin
;	MR8684		external routine NMU$DLX_TIMED_READ;
;	MR8685		NMU$DLX_TIMED_READ (ID, USAGE, PTR, CNT, TIMEOUT + 0, RSP_PTR)
;	 R8686		end %,
;	UR8687	%else
;	UR8688	    $NMU_DLX_READ (ID, USAGE, PTR, CNT, TIMEOUT, RSP_PTR) =
;	UR8689		begin
;	UR8690		external routine NMU$DLX_READ;
;	UR8691		NMU$DLX_READ (ID, USAGE, PTR, CNT, RSP_PTR)
;	UR8692		end %,
;	 R8693	%fi
;	MR8694	    $NMU_DLX_WRITE (ID, USAGE, PTR, CNT, RSP_PTR) =
;	MR8695		begin
;	MR8696		external routine NMU$DLX_WRITE;
;	MR8697		NMU$DLX_WRITE (ID, USAGE, PTR, CNT, RSP_PTR)
;	 R8698		end %,
;	MR8699	    $NMU_DLX_TYPE (ID) =
;	MR8700		begin
;	MR8701		external routine NMU$DLX_TYPE;
;	MR8702		NMU$DLX_TYPE (ID)
;	 R8703		end %,
;	MR8704	    $NMU_DLX_INITIALIZE (ID, RSP_PTR) =
;	MR8705		begin
;	MR8706		external routine NMU$DLX_INITIALIZE;
;	MR8707		NMU$DLX_INITIALIZE (ID, RSP_PTR)
;	 R8708		end %,
;	MR8709	    $NMU_DLX_CLOSE (ID) =
;	MR8710		begin
;	MR8711		external routine NMU$DLX_CLOSE;
;	MR8712		NMU$DLX_CLOSE (ID)
;	 R8713		end %;
;	 R8714	
;	 R8715	macro
;	 R8716	     NMU$DLX_CLOSE = UD_CLOSE %,
;	 R8717	     NMU$DLX_INITIALIZE = UD_INIT %,
;	 R8718	     NMU$DLX_KNOWN_DEVICE = UD_CHK %,
		NMUCOM -- Network Management Utilities Common D 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 146
		Global Name Mappings				 3-Jan-1983 03:13:34	DNET61:<MCB.NML>NMUCOM.REQ.1 (9)

;	 R8719	     NMU$DLX_OPEN = UD_OPEN %,
;	 R8720	     NMU$DLX_READ = UD_READ %,
;	 R8721	     NMU$DLX_RETURN_CIRCUITS = UD_RET %,
;	 R8722	     NMU$DLX_TIMED_READ = UD_TREAD %,
;	 R8723	     NMU$DLX_TYPE = UD_TYPE %,
;	 R8724	     NMU$DLX_WRITE = UD_WRITE %,
;	 R8725	
;	MR8726	     NMU$DLX_ROUTINES =
;	MR8727	         NMU$DLX_OPEN,                  ! Open link
;	MR8728	         NMU$DLX_READ,                  ! Read MOP message on link
;	MR8729	         NMU$DLX_WRITE,                 ! Write MOP message on link
;	MR8730	         NMU$DLX_TYPE,                  ! Returns circuit MOP device type
;	MR8731	         NMU$DLX_INITIALIZE,            ! Initialize protocol on link
;	MR8732	         NMU$DLX_CLOSE                  ! Close link
;	 R8733	     %;
;	 R8734	
;	 R8735	!
;	 R8736	! NMX access routines (NMUMCB)
;	 R8737	!
;	 R8738	
;	 R8739	macro
;	MR8740	    $NMU_NMX_READ_EVENT (BUF_PTR, BUF_LEN) =
;	MR8741		begin
;	MR8742		external routine NMU$NMX_IO;
;	MR8743		NMU$NMX_IO (IO$RLB + 0, BUF_PTR, BUF_LEN)
;	 R8744		end %,
;	MR8745	    $NMU_NMX_READ_COMMAND (BUF_PTR, BUF_LEN) =
;	MR8746		begin
;	MR8747		external routine NMU$NMX_IO;
;	MR8748		NMU$NMX_IO (IO$RLB + 1, BUF_PTR, BUF_LEN)
;	 R8749		end %,
;	MR8750	    $NMU_NMX_RESPOND_COMMAND (BUF_PTR, BUF_LEN) =
;	MR8751		begin
;	MR8752		external routine NMU$NMX_IO;
;	MR8753		NMU$NMX_IO (IO$WLB + 1, BUF_PTR, BUF_LEN)
;	 R8754		end %;
;	 R8755	
;	 R8756	macro
;	 R8757	     NMU$NMX_IO = SS$NMX %;
;	 R8758	
;	 R8759	!
;	 R8760	! Interrupt manager (NMUINT)
;	 R8761	!
;	 R8762	
;	 R8763	macro
;	 R8764	     NMU$INTERRUPT_INITIALIZE = UX_INIT %;
;	 R8765	
;	 R8766	!
;	 R8767	! Utility routines (NMUUTL)
;	 R8768	!
;	 R8769	
;	 R8770	macro
		NMUCOM -- Network Management Utilities Common D 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 147
		Global Name Mappings				 3-Jan-1983 03:13:34	DNET61:<MCB.NML>NMUCOM.REQ.1 (9)

;	 R8771	     NMU$UTILITY_BUFFER_TEXT = UU_FBT %;
;	 R8772	
;	 R8773	!
;	 R8774	! TEXT processing (NMUTXT)
;	 R8775	!
;	 R8776	
;	 R8777	macro
;	 R8778	     NMU$TEXT = UT_TEXT %,
;	 R8779	
;	MR8780	     NMU$TEXT_MANAGER =
;	MR8781	         NMU$TEXT                       ! Directive driven text formatting
;	 R8782	     %;
		NMUCOM -- Network Management Utilities Common D 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 148
		Global Name Mappings				 3-Jan-1983 03:13:34	DNET61:<MCB.NML>NMUCOM.REQ.1 (10)

;	 R8783	
;	 R8784	%title ''
;	 R8785	%sbttl ''
;	 R8786	
;	 R8787	!
;	 R8788	! [End of NMUCOM.REQ]
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 149
								 3-Jan-1983 01:26:09	DNET61:<MCB.NML>NMLLIB.REQ.1 (3)

;	  8789	
;	  8790	require 'NMLCOM';			! NML common definitions
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 150
								 3-Jan-1983 00:56:41	DNET61:<MCB.NML>NMLCOM.REQ.1 (1)

;	 R8791	! NET:<PECKHAM.DEVELOPMENT>NMLCOM.REQ.2 22-Jun-82 11:52:42, Edit by PECKHAM
;	 R8792	!
;	 R8793	!   Add request block privledge bits.
;	 R8794	!
;	 R8795	! NET:<BRANDT.DEVELOPMENT>NMLCOM.REQ.1 8-Jun-82 10:56:11, Edit by BRANDT
;	 R8796	!
;	 R8797	!   Transfer definitions of NODE_ID buffers from NML.REQ to NMLCOM.REQ.
;	 R8798	!
;	 R8799	! NET:<BRANDT.DEVELOPMENT>NMLCOM.REQ.1 9-Jun-82 14:55:53, Edit by BRANDT
;	 R8800	!
;	 R8801	!   Add RB_NICE_ENTITY_ADR field to contain the address of memory
;	 R8802	!   allocated to contain the full node_id
;	 R8803	!
;	 R8804	! NET:<PECKHAM.DEVELOPMENT>NMLCOM.REQ.3  4-Jun-82 17:01:36, Edit by PECKHAM
;	 R8805	!
;	 R8806	! Add synonyms NML$CLEARABLE and NML$READ_ONLY.
;	 R8807	!
;	 R8808	! NET:<BRANDT.DEVELOPMENT>NMLCOM.REQ.1 10-May-82 9:55:53, Edit by BRANDT
;	 R8809	!
;	 R8810	!   Make RB_RESPONSE_DATA field a "tiny integer"
;	 R8811	!
;	 R8812	! NET:<BRANDT.DEVELOPMENT>NMLCOM.REQ.2 4-May-82 14:40:35, Edit by BRANDT
;	 R8813	!
;	 R8814	! Include RB_RESPONSE_DATA field to be set non-zero during response msg
;	 R8815	! processing if any response data is returned for this request.
;	 R8816	!
;	 R8817	! NET:<PECKHAM.DEVELOPMENT>NMLCOM.REQ.2 27-Apr-82 13:40:35, Edit by PECKHAM
;	 R8818	!
;	 R8819	! Include NML$DLW_* synonyms
;	 R8820	!
;	 R8821	! NET:<PECKHAM.DEVELOPMENT>NMLCOM.REQ.3 22-Apr-82 08:23:16, Edit by PECKHAM
;	 R8822	!
;	 R8823	! Change FT_ switch naming to NML$CFG_.
;	 R8824	!
;	 R8825	! NET:<VOBA.NML.DEVELOPMENT>NMLCOM.REQ.3 29-Mar-82 10:21:37, Edit by VOBA
;	 R8826	!
;	 R8827	! Move $NML$TEXT macro over from NMARCH.REQ.
;	 R8828	!
;	 R8829	! NET:<PECKHAM.DEVELOPMENT>NMLCOM.REQ.21 23-Mar-82 13:50:40, Edit by PECKHAM
;	 R8830	!
;	 R8831	! Enlarge Raw Event Block to include room for processed info.
;	 R8832	! Add event queue and event buffer definitions.
;	 R8833	! Change event logging global name mappings.
;	 R8834	! Add configuration switches.
;	 R8835	!
;	 R8836	! NET:<VOBA.NML.DEVELOPMENT>NMLCOM.REQ.3 18-Feb-82 17:22:49, Edit by VOBA
;	 R8837	!
;	 R8838	! Clean up code and update copyright date.
;	 R8839	!
;	 R8840	! NET:<VOBA.NML.DEVELOPMENT>NMLCOM.REQ.5 17-Feb-82 15:08:29, Edit by VOBA
;	 R8841	!
;	 R8842	! Add global synonym NL_PLU for NML$PARAMETER_LOOKUP.
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 151
								 3-Jan-1983 00:56:41	DNET61:<MCB.NML>NMLCOM.REQ.1 (1)

;	 R8843	!
;	 R8844	! NET:<GROSSMAN.NML-SOURCES>NMLCOM.REQ.3  9-Feb-82 16:25:31, Edit by GROSSMAN
;	 R8845	!
;	 R8846	! Add global synonym for NML$COUNTER_TIMER_TASK
;	 R8847	!
;	 R8848	! NET:<BRANDT.DEVELOP>NMLCOM.REQ.1 19-Jan-82 10:20:48, Edit by BRANDT
;	 R8849	!
;	 R8850	! Add NML$REQUEST_TERMINATE to NML$REQUEST_MANAGER macro
;	 R8851	!
;	 R8852	! NET:<GROSSMAN>NMLCOM.REQ.4 18-Jan-82 20:20:48, Edit by GROSSMAN
;	 R8853	!
;	 R8854	! Add synonyms for the NMLCTT entry points.
;	 R8855	!
;	 R8856	! NET:<DECNET20-V3P0.CEX>NMLCOM.REQ.3 15-Jan-82 16:31:49, Edit by PECKHAM
;	 R8857	!
;	 R8858	! Add REB structure for raw event logging
;	 R8859	!
;	 R8860	! NET:<VOBA.NML>NMLCOM.REQ.2 12-Jan-82 14:14:03, Edit by VOBA
;	 R8861	!
;	 R8862	! Add sub-entity type field for the MODULE entity in the NICE Request Block.
;	 R8863	!
;	 R8864	! NET:<DECNET20-V3P1.NMU.LIBRARY>NMLCOM.REQ.2 30-Jun-81 09:59:49, Edit by GUNN
;	 R8865	!
;	 R8866	! Add name for NML$CLR_VDB_PARAMETER.
;	 R8867	!
;	 R8868	! NET:<DECNET20-V3P1.BASELEVEL-2.SOURCES>NMLCOM.REQ.22 25-Jun-81 09:45:26, Edit by JENNESS
;	 R8869	!
;	 R8870	! Add name for NML$SET_VDB_PARAMETER.
;	 R8871	!
;	 R8872	! NET:<DECNET20-V3P1.NMU>NMLCOM.REQ.2 15-Jun-81 14:39:02, Edit by JENNESS
;	 R8873	!
;	 R8874	! Readability improvements.  Remove $literal/$distinct ... easier to
;	 R8875	! figure out literal values during debugging.
;	 R8876	!
;	 R8877	! NET:<DECNET20-V3P1.BASELEVEL-2.SOURCES>NMLCOM.REQ.17  4-Jun-81 08:31:32, Edit by SROBINSON
;	 R8878	!
;	 R8879	! Modify NML$REQUEST_MANAGER to not have routines not there in $MCB
;	 R8880	!
;	 R8881	! NET:<DECNET20-V3P1.NMU>NMLCOM.REQ.2 28-May-81 14:10:36, Edit by JENNESS
;	 R8882	!
;	 R8883	! Move LOAD_DATA_BLOCK, DUMP_DATA_BLOCK and TRIGGER_DATA_BLOCK into
;	 R8884	! NMLDTL.BLI (where they are used exclusively).
;	 R8885	!
;	 R8886	! NET:<DECNET20-V3P1.NML>NMLCOM.REQ.10 16-Apr-81 11:11:26, Edit by GUNN
;	 R8887	!
;	 R8888	! Add global routine NML$CODED_TEXT in NMLPRM.
;	 R8889	!
;	 R8890	! NET:<DECNET20-V3P1.NML>NMLCOM.REQ.9  8-Apr-81 15:50:10, Edit by JENNESS
;	 R8891	!
;	 R8892	! Add fields to LB (load data) block to ease parameter passing in
;	 R8893	! load/dump routines.
;	 R8894	!
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 152
								 3-Jan-1983 00:56:41	DNET61:<MCB.NML>NMLCOM.REQ.1 (1)

;	 R8895	! NET:<DECNET20-V3P1.NML>NMLCOM.REQ.7  7-Apr-81 08:28:45, Edit by GUNN
;	 R8896	!
;	 R8897	! Add comments to block structure definitions in order that they may
;	 R8898	! be located by the XDUMP utility.
;	 R8899	!
;	 R8900	! NET:<DECNET20-V3P1.NML>NMLCOM.REQ.6  3-Apr-81 13:44:06, Edit by GUNN
;	 R8901	!
;	 R8902	! Change LB fields defined as $byte to $tiny_integer.
;	 R8903	!
;	 R8904	! NET:<DECNET20-V3P1.BASELEVEL-2.MCB>NMLCOM.REQ.15  3-Apr-81 07:54:48, Edit by SROBINSON
;	 R8905	!
;	 R8906	! Fix RB_RETURN_CODE to be signed byte since all code checks to see if it
;	 R8907	! is +/- .
;	 R8908	!
;	 R8909	! NET:<DECNET20-V3P1.NML>NMLCOM.REQ.3  2-Apr-81 20:30:04, Edit by GUNN
;	 R8910	!
;	 R8911	! Change LB_NODE_ID and LB_HOST_ID to be pointers.
;	 R8912	!
;	 R8913	! NET:<DECNET20-V3P1.NML>NMLCOM.REQ.2  2-Apr-81 14:32:29, Edit by GUNN
;	 R8914	!
;	 R8915	! Add routine name macros for new routines in NMLVDB.
;	 R8916	!
;	 R8917	! NET:<DECNET20-V3P1.BASELEVEL-2.MCB>NMLCOM.REQ.2 30-Mar-81 06:35:28, Edit by SROBINSON
;	 R8918	!
;	 R8919	! Add support macros for Event Logging Modules
;	 R8920	!
;	 R8921	! NET:<DECNET20-V3P1.NML>NMLCOM.REQ.7 24-Mar-81 10:26:20, Edit by GUNN
;	 R8922	!
;	 R8923	! Add fields in Request Block to contain address of auxiliary 
;	 R8924	! block for LOAD, DUMP and TRIGGER processing. Define the structure
;	 R8925	! of the auxiliary LOAD, DUMP and TRIGGER blocks.
;	 R8926	! Also, change the order of some of the fields in the RB structure
;	 R8927	! to keep them functionally grouped.
;	 R8928	!
;	 R8929	! NET:<DECNET20-V3P1.NML>NMLCOM.REQ.13  3-Mar-81 16:16:54, Edit by GUNN
;	 R8930	!
;	 R8931	! Remove RB_aaa_SIZE fields from request block field definitions.
;	 R8932	!
		NMLCOM -- Network Management Layer Common Defin 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 153
								 3-Jan-1983 00:56:41	DNET61:<MCB.NML>NMLCOM.REQ.1 (2)

;	 R8933	%title 'NMLCOM -- Network Management Layer Common Definitions'
;	 R8934	
;	 R8935	!                    COPYRIGHT (c) 1980, 1981, 1982
;	 R8936	!                    DIGITAL EQUIPMENT CORPORATION
;	 R8937	!                        Maynard, Massachusetts
;	 R8938	!
;	 R8939	!     This software is furnished under a license and may  be  used
;	 R8940	!     and copied only in accordance with the terms of such license
;	 R8941	!     and with the inclusion of the above copyright notice.   This
;	 R8942	!     software  or any other copies thereof may not be provided or
;	 R8943	!     otherwise made available to any other person.  No  title  to
;	 R8944	!     and ownership of the software is hereby transferred.
;	 R8945	!
;	 R8946	!     The information  in  this  software  is  subject  to  change
;	 R8947	!     without  notice  and should not be construed as a commitment
;	 R8948	!     by DIGITAL EQUIPMENT CORPORATION.
;	 R8949	!
;	 R8950	!     DIGITAL assumes no responsibility for the use or reliability
;	 R8951	!     of  its  software  on  equipment  which  is  not supplied by
;	 R8952	!     DIGITAL.
;	 R8953	!
;	 R8954	
;	 R8955	!++
;	 R8956	! Facility: LSG DECnet Network Management
;	 R8957	!
;	 R8958	! Abstract: This file contains definitions  for data base formats  and
;	 R8959	!           interesting  values  used  when  communicating  with   the
;	 R8960	!           Network Management Layer.
;	 R8961	!
;	 R8962	! Environment: Bliss-36, Bliss-32 and Bliss-16
;	 R8963	!
;	 R8964	! Author: Steven M. Jenness, Creation date: 26-Sep-80
;	 R8965	!
;	 R8966	!--
		NMLCOM -- Network Management Layer Common Defin 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 154
								 3-Jan-1983 00:56:41	DNET61:<MCB.NML>NMLCOM.REQ.1 (3)

;	 R8967	!
;	 R8968	! Configuration switches
;	 R8969	!
;	 R8970	
;	 R8971	compiletime
;	 R8972	    NML$CFG_LOGGING_CONSOLE = $false,
;	 R8973	    NML$CFG_LOGGING_FILE = $false,
;	 R8974	    NML$CFG_LOGGING_MONITOR = $false,
;	 R8975	    NML$CFG_LOGGING_RECEIVER = $false,
;	 R8976	    NML$CFG_LOGGING_TRANSMITTER = $false;
;	 R8977	
;	LR8978	%if $MCB
;	 R8979	%then
;	 R8980	    %assign (NML$CFG_LOGGING_TRANSMITTER, $true)
;	 R8981	%fi
;	LR8982	%if $TOPS20
;	UR8983	%then
;	UR8984	    %assign (NML$CFG_LOGGING_FILE, $true)
;	 R8985	%fi
;	LR8986	%if $TOPS10
;	UR8987	%then
;	UR8988	    %assign (NML$CFG_LOGGING_FILE, $true)
;	 R8989	%fi
;	 R8990	
;	LR8991	%assign (NML$CFG_LOGGING_RECEIVER, NML$CFG_LOGGING_CONSOLE or
;	LR8992	                                   NML$CFG_LOGGING_FILE or
;	 R8993	                                   NML$CFG_LOGGING_MONITOR)
		NMLCOM -- Network Management Layer Common Defin 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 155
		Node ID Buffer Definitions			 3-Jan-1983 00:56:41	DNET61:<MCB.NML>NMLCOM.REQ.1 (4)

;	 R8994	%sbttl 'Node ID Buffer Definitions'
;	 R8995	
;	 R8996	!
;	 R8997	! NODE ID BUFFER definitions
;	 R8998	!
;	 R8999	
;	 R9000	literal
;	 R9001	    NODE_ID_BUFFER_LENGTH = 9,
;	 R9002	    NODE_ID_BUFFER_SIZE = ch$allocation (NODE_ID_BUFFER_LENGTH,8),
;	 R9003	    NODE_ID_BUFFER_ALLOCATION = NODE_ID_BUFFER_SIZE * %upval;
;	 R9004	
		NMLCOM -- Network Management Layer Common Defin 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 156
		Request Manager Definitions			 3-Jan-1983 00:56:41	DNET61:<MCB.NML>NMLCOM.REQ.1 (5)

;	 R9005	%sbttl 'Request Manager Definitions'
;	 R9006	
;	 R9007	! RB - Request block format definition
;	 R9008	!
;	 R9009	!    This is the format of the request block.  The address of a block
;	 R9010	!    in this format is passed between routines which wish to converse
;	 R9011	!    about a request.
;	 R9012	
;	 R9013	
;	 R9014	$field REQUEST_BLOCK_FIELDS =
;	 R9015	    set
;	 R9016	
;	 R9017	! Queue linkage fields
;	 R9018	
;	 R9019	    RB_REQUEST_QUEUE = [$sub_block (Q_ENTRY_SIZE)],
;	 R9020	    RB_PROCESS_QUEUE = [$sub_block (Q_ENTRY_SIZE)],
;	 R9021	
;	 R9022	! Request identification and status fields
;	 R9023	
;	 R9024	    RB_NUMBER = [$integer],             ! Request number
;	 R9025	    RB_TYPE = [$integer],               ! Request type (local/remote)
;	 R9026	    RB_TASK = [$address],               ! Processing task's task blk
;	 R9027	    RB_STATE = [$integer],              ! Request state
;	 R9028	
;	 R9029	! NICE request and response buffers
;	 R9030	
;	 R9031	    RB_NICE = [$address],               ! NICE message address
;	 R9032	    RB_RESPONSE = [$address],           ! NICE response msg address
;	 R9033	    RB_NICE_LENGTH = [$integer],        ! NICE message length
;	 R9034	    RB_NICE_ALLOCATION = [$integer],    ! NICE block (units)
;	 R9035	    RB_RESPONSE_LENGTH = [$integer],    ! Response message length
;	 R9036	    RB_RESPONSE_ALLOCATION = [$integer], ! Response block (units)
;	 R9037	
;	 R9038	! Request source information
;	 R9039	
;	 R9040	    RB_EXECUTOR = [$address],           ! EXECUTOR node id address
;	 R9041	    RB_SOURCE = [$address],             ! Source node id address
;	 R9042	    RB_COMPLETION = [$address],         ! Completion routine address
;	 R9043	    RB_DATA = [$address],               ! Request source data
;	 R9044	    RB_DATA_ALLOCATION = [$integer],    ! Data block (units)
;	 R9045	
;	 R9046	! Request access control information
;	 R9047	
;	 R9048	    RB_USER = [$pointer],               ! USER name string (ACCESS)
;	 R9049	    RB_USER_LENGTH = [$integer],        ! USER name length
;	 R9050	    RB_PASSWORD = [$pointer],           ! PASSWORD string (ACCESS)
;	 R9051	    RB_PASSWORD_LENGTH = [$integer],    ! PASSWORD string length
;	 R9052	    RB_ACCOUNT = [$pointer],            ! ACCOUNT string (ACCESS)
;	 R9053	    RB_ACCOUNT_LENGTH = [$integer],     ! ACCOUNT string length
;	 R9054	
;	 R9055	! Request processing data
;	 R9056	
		NMLCOM -- Network Management Layer Common Defin 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 157
		Request Manager Definitions			 3-Jan-1983 00:56:41	DNET61:<MCB.NML>NMLCOM.REQ.1 (5)

;	 R9057	    RB_NICE_POINTER = [$pointer],       ! Current NICE pointer
;	 R9058	    RB_NICE_POSITION = [$integer],      ! Current NICE byte position
;	 R9059	    RB_NICE_FUNCTION = [$byte],         ! NICE function code
;	 R9060	    RB_NICE_OPTION = [$byte],           ! NICE option byte
;	 R9061	    RB_NICE_ENTITY_TYPE = [$byte],      ! NICE entity type number
;	 R9062	    RB_NICE_SUB_ENTITY_TYPE = [$byte],
;	 R9063	    RB_NICE_ENTITY_ID_LENGTH = [$byte], ! NICE entity length
;	 R9064	    RB_PRV_LOCAL = [$bit],              ! special services allowed
;	 R9065	    RB_PRV_SYSTEM = [$bit],             ! System specific allowed
;	 R9066	    RB_PRV_SERVICE = [$bit],            ! Load/Dump/Trigger allowed
;	 R9067	    RB_PRV_TEST = [$bit],               ! Test allowed
;	 R9068	    RB_PRV_CHANGE = [$bit],             ! Change Parameters allowed
;	 R9069	    RB_PRV_READ = [$bit],               ! Read Parameters allowed
;	 R9070	    RB_NICE_ENTITY_ADR = [$address],    ! Allocated memory for entity id
;	 R9071	    RB_NICE_ENTITY = [$pointer],        ! NICE entity pointer
;	 R9072	    RB_NICE_PARAMETERS = [$pointer],    ! NICE parameters
;	 R9073	    RB_NICE_PARAMETER_LENGTH = [$integer], ! NICE parameter length
;	 R9074	    RB_NICE_QUALIFIER = [$pointer],     ! NICE parameter qualifier
;	 R9075	
;	 R9076	! LOAD, DUMP & TRIGGER auxiliary information
;	 R9077	
;	 R9078	    RB_LOAD_DATA = [$address],          ! Address of LOAD data block
;	 R9079	    RB_LOAD_DATA_ALLOCATION = [$integer],
;	 R9080	
;	 R9081	        $overlay (RB_LOAD_DATA)
;	 R9082	    RB_DUMP_DATA = [$address],          ! Address of DUMP data block
;	 R9083	    RB_DUMP_DATA_ALLOCATION = [$integer],
;	 R9084	        $continue
;	 R9085	
;	 R9086	        $overlay (RB_LOAD_DATA)
;	 R9087	    RB_TRIGGER_DATA = [$address],       ! Address of TRIGGER
;	 R9088	    RB_TRIGGER_DATA_ALLOCATION = [$integer], ! data block
;	 R9089	        $continue
;	 R9090	
;	 R9091	! Response data
;	 R9092	
;	 R9093	    RB_RETURN_CODE = [$tiny_integer],   ! NICE return code
;	 R9094	    RB_RESPONSE_DATA = [$tiny_integer], ! Non-zero if response data
;	 R9095	    RB_ERROR_DETAIL = [$integer],       ! NICE error detail
;	 R9096	    RB_ERROR_POINTER = [$pointer]       ! NICE error message pointer
;	 R9097	    tes;
;	 R9098	
;	 R9099	literal
;	 R9100	       REQUEST_BLOCK_SIZE = $field_set_size,
;	 R9101	       REQUEST_BLOCK_ALLOCATION = $field_set_units,
;	 R9102	       RB_REQUEST_QUEUE_OFFSET = %fieldexpand (RB_REQUEST_QUEUE, 0),
;	 R9103	       RB_PROCESS_QUEUE_OFFSET = %fieldexpand (RB_PROCESS_QUEUE, 0);
;	 R9104	
;	 R9105	macro
;	MR9106	     REQUEST_BLOCK =
;	 R9107	         block [REQUEST_BLOCK_SIZE] field (REQUEST_BLOCK_FIELDS) %;
;	 R9108	
		NMLCOM -- Network Management Layer Common Defin 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 158
		Request Manager Definitions			 3-Jan-1983 00:56:41	DNET61:<MCB.NML>NMLCOM.REQ.1 (5)

;	 R9109	!
;	 R9110	! Values for RB_STATE
;	 R9111	!
;	 R9112	
;	 R9113	literal
;	 R9114	       RB$WAITING = 1,                  ! Request is waiting to execute
;	 R9115	       RB$ACTIVE = 2,                   ! Request processing initiated
;	 R9116	       RB$DONE = 3,                     ! Request processing complete
;	 R9117	       RB$CANCELLED = 4,                ! Request was cancelled
;	 R9118	       RB$MORE = 5;                     ! Request partially complete
;	 R9119	
;	 R9120	!
;	 R9121	! Values for request type
;	 R9122	!
;	 R9123	
;	 R9124	literal
;	 R9125	       RT$LOCAL = 1,                    ! Request to be processed locally
;	 R9126	       RT$REMOTE = 2;                   ! Request to be processed remotely
		NMLCOM -- Network Management Layer Common Defin 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 159
		Event Logging Manager Definitions		 3-Jan-1983 00:56:41	DNET61:<MCB.NML>NMLCOM.REQ.1 (6)

;	 R9127	%sbttl 'Event Logging Manager Definitions'
;	 R9128	
;	 R9129	! REB - Raw Event Block format definition
;	 R9130	!
;	 R9131	!    This is the format of the block used to pass raw event data
;	 R9132	!    to NML$DECLARE_EVENT.  It also provides work areas for
;	 R9133	!    processed event information.
;	 R9134	
;	 R9135	$field RAW_EVENT_BLOCK_FIELDS =
;	 R9136	    set
;	 R9137	    REB_ENTITY_POINTER = [$pointer],    ! Pointer to entity-id string
;	 R9138	    REB_SOURCE_POINTER = [$pointer],    ! Pointer to source node string
;	 R9139	    REB_DATA_POINTER = [$pointer],      ! Pointer to event data
;	 R9140	    REB_DATA_LENGTH = [$integer],       ! Length of event data
;	 R9141	        $align (fullword)               !  (for sub-field access)
;	 R9142	    REB_EVENT_CODE = [$short_integer],  ! Event class/type
;	 R9143	    REB_SINK_FLAGS = [$short_integer],  ! Sink flags:
;	 R9144	        $overlay (REB_SINK_FLAGS)
;	 R9145	    REB_CONSOLE = [$bit],               !  Console sink
;	 R9146	    REB_FILE = [$bit],                  !  File sink
;	 R9147	    REB_MONITOR = [$bit],               !  Monitor sink
;	 R9148	        $continue
;	 R9149	        $align (fullword)               !  (for sub-field access)
;	 R9150	    REB_ENTITY_TYPE = [$short_integer], ! Entity type
;	 R9151	    REB_TIME_BLOCK = [$address]         ! Address of time block for event
;	 R9152	    $align (fullword)                   ! or zero if no time supplied.
;	 R9153	    tes;
;	 R9154	
;	 R9155	literal
;	 R9156	       RAW_EVENT_BLOCK_SIZE = $field_set_size,
;	 R9157	       RAW_EVENT_BLOCK_ALLOCATION = $field_set_units;
;	 R9158	
;	 R9159	macro
;	MR9160	     RAW_EVENT_BLOCK =
;	 R9161	         block [RAW_EVENT_BLOCK_SIZE] field (RAW_EVENT_BLOCK_FIELDS) %;
;	 R9162	
;	 R9163	!
;	 R9164	! Event queue header definitions.
;	 R9165	!  These are handled by the NML$EQUEUE_* routines.
;	 R9166	!  Only event buffer entries should be put on these queues.
;	 R9167	!
;	 R9168	! macro:   EVENT_QUEUE       Defines a queue header block
;	 R9169	! value:   EVENT_QUEUE_SIZE  Defines size of queue header block
;	 R9170	!
;	 R9171	
;	 R9172	$field EVENT_QUEUE_FIELDS =
;	 R9173	    set
;	 R9174	    EQ_QUEUE = [$sub_block (SQ_HEADER_SIZE)], ! Queue header
;	 R9175	    EQ_COUNT = [$short_integer],        ! Current number of events in queue
;	 R9176	    EQ_LENGTH = [$short_integer]        ! Maximum number of events queue-able
;	 R9177	    tes;
;	 R9178	
		NMLCOM -- Network Management Layer Common Defin 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 160
		Event Logging Manager Definitions		 3-Jan-1983 00:56:41	DNET61:<MCB.NML>NMLCOM.REQ.1 (6)

;	 R9179	literal
;	 R9180	       EVENT_QUEUE_SIZE = $field_set_size,
;	 R9181	       EVENT_QUEUE_ALLOCATION = $field_set_units;
;	 R9182	
;	 R9183	macro
;	MR9184	     EVENT_QUEUE =
;	 R9185	         block [EVENT_QUEUE_SIZE] field (EVENT_QUEUE_FIELDS) %;
;	 R9186	
;	 R9187	!
;	 R9188	! Transmitter queue header definitions.
;	 R9189	!  These are handled by the NML$EQUEUE_* routines.
;	 R9190	!  Only event buffer entries should be put on these queues.
;	 R9191	!
;	 R9192	! macro:   TRANSMITTER_QUEUE       Defines a queue header block
;	 R9193	! value:   TRANSMITTER_QUEUE_SIZE  Defines size of queue header block
;	 R9194	!
;	 R9195	
;	 R9196	$field TRANSMITTER_QUEUE_FIELDS =
;	 R9197	    set
;	 R9198	    TQ_QUEUE = [$sub_block (EVENT_QUEUE_SIZE)], ! Queue header
;	 R9199	    TQ_TRANSMITTER_TASK = [$address],
;	 R9200	        $align (FULLWORD)               ! For character pointer.
;	 R9201	    TQ_SINK_NODE = [$bytes (9 + 1)]
;	 R9202	    tes;
;	 R9203	
;	 R9204	literal
;	 R9205	       TRANSMITTER_QUEUE_SIZE = $field_set_size,
;	 R9206	       TRANSMITTER_QUEUE_ALLOCATION = $field_set_units;
;	 R9207	
;	 R9208	macro
;	MR9209	     TRANSMITTER_QUEUE =
;	 R9210	         block [TRANSMITTER_QUEUE_SIZE] field (TRANSMITTER_QUEUE_FIELDS) %;
;	 R9211	
;	 R9212	!
;	 R9213	! Event buffer block definitions
;	 R9214	!  These are handled by the NML$EQUEUE_* routines.
;	 R9215	!
;	 R9216	! macro:   EVENT_BUFFER       Defines
;	 R9217	! value:   EVENT_BUFFER_SIZE  Defines
;	 R9218	!
;	 R9219	
;	 R9220	$field EVENT_BUFFER_FIELDS =
;	 R9221	    set
;	 R9222	    EB_QUEUE = [$sub_block (Q_ENTRY_SIZE)], ! Queue link
;	 R9223	    EB_ALLOCATION = [$short_integer],   ! Length of allocated memory
;	 R9224	    EB_LENGTH = [$short_integer],       ! Length of message
;	 R9225	    EB_BUFFER = [$sub_block (0)]        ! Beginning of buffer with message
;	 R9226	    tes;
;	 R9227	
;	 R9228	literal
;	 R9229	       EVENT_BUFFER_SIZE = $field_set_size,
;	 R9230	       EVENT_BUFFER_ALLOCATION = $field_set_units;
		NMLCOM -- Network Management Layer Common Defin 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 161
		Event Logging Manager Definitions		 3-Jan-1983 00:56:41	DNET61:<MCB.NML>NMLCOM.REQ.1 (6)

;	 R9231	
;	 R9232	macro
;	MR9233	     EVENT_BUFFER =
;	 R9234	         block field (EVENT_BUFFER_FIELDS, Q_ENTRY_FIELDS) %;
;	 R9235	
;	 R9236	!
;	 R9237	! Response text handler (in case we have to go to UPPER CASE)
;	 R9238	!
;	 R9239	
;	 R9240	macro
;	MR9241	     $NML$TEXT [] =
;	 R9242	         %string (%remaining) %;
		NMLCOM -- Network Management Layer Common Defin 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 162
		Global Name Mappings				 3-Jan-1983 00:56:41	DNET61:<MCB.NML>NMLCOM.REQ.1 (7)

;	 R9243	%sbttl 'Global Name Mappings'
;	 R9244	
;	 R9245	!
;	 R9246	! Request manager (NMLQUE)
;	 R9247	!
;	 R9248	
;	 R9249	macro
;	 R9250	     NML$REQUEST_INITIALIZE = NL_INIT %,
;	 R9251	     NML$REQUEST_ENTER = NL_RENTER %,
;	 R9252	     NML$REQUEST_NEXT = NL_REMOVE %,
;	 R9253	     NML$REQUEST_FINISH = NL_FINISH %,
;	 R9254	     NML$REQUEST_ABORT = NL_ABORT %,
;	 R9255	     NML$REQUEST_TERMINATE = NL_TERM %,
;	 R9256	     NML$REQUEST_CANCEL = NL_CANCEL %,
;	 R9257	     NML$REQUEST_SHOW = NL_SHOW %;
;	 R9258	
;	 R9259	macro
;	MR9260	     NML$REQUEST_MANAGER =
;	MR9261	         NML$REQUEST_INITIALIZE : novalue, ! Initialize request manager
;	MR9262	         NML$REQUEST_ENTER,             ! Enter request onto request queue
;	MR9263	         NML$REQUEST_NEXT,              ! Get next request for processing
;	MR9264	         NML$REQUEST_FINISH             ! Signal completion of a request
;	MR9265	         %if not $MCB
;	MR9266	         %then ,
;	MR9267	              NML$REQUEST_ABORT,        ! Abort processing of a request
;	MR9268	              NML$REQUEST_TERMINATE,    ! Terminate processing of a
;	MR9269	                                        !   multi-response request
;	MR9270	              NML$REQUEST_CANCEL,       ! Cancel request not being processed
;	MR9271	              NML$REQUEST_SHOW          ! Return requests in queues
;	 R9272	         %fi %;
;	 R9273	
;	 R9274	!
;	 R9275	! NICE Request Processor (NMLNIC)
;	 R9276	!
;	 R9277	
;	 R9278	macro
;	 R9279	     NML$NICE_LISTENER = NL_LSN %,      ! Receive remote NICE request
;	 R9280	     NML$DEQUEUE_REQUEST = NL_DQR %,    ! Dequeue NICE request
;	 R9281	     NML$NICE_RESPONSE = NL_RSP %;      ! Process NICE response
;	 R9282	
;	 R9283	!
;	 R9284	! NICE Dump, Trigger, and Load Request Processor (NMLDTL)
;	 R9285	!
;	 R9286	
;	 R9287	macro
;	 R9288	     NML$DUMP = NL_DMP %,
;	 R9289	     NML$TRIGGER = NL_TRG %,
;	 R9290	     NML$LOAD = NL_LOD %;
;	 R9291	
;	 R9292	!
;	 R9293	! NICE Read, Change, and Zero Request Processor (NMLRCZ)
;	 R9294	!
		NMLCOM -- Network Management Layer Common Defin 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 163
		Global Name Mappings				 3-Jan-1983 00:56:41	DNET61:<MCB.NML>NMLCOM.REQ.1 (7)

;	 R9295	
;	 R9296	macro
;	 R9297	     NML$READ = NL_REA %,
;	 R9298	     NML$CHANGE = NL_CHG %,
;	 R9299	     NML$ZERO = NL_ZRO %;
;	 R9300	
;	 R9301	!
;	 R9302	! NICE Test Request Processor (NMLLBK)
;	 R9303	!
;	 R9304	
;	 R9305	macro
;	 R9306	     NML$TEST = NL_TST %;
;	 R9307	
;	 R9308	!
;	 R9309	! NICE System Specific Request Processor (NMLSPC)
;	 R9310	!
;	 R9311	
;	 R9312	macro
;	 R9313	     NML$SYSTEM_SPECIFIC = NL_SPC %;
;	 R9314	
;	 R9315	!
;	 R9316	! NML Parameter Support (NMLPRM)
;	 R9317	!
;	 R9318	
;	 R9319	macro
;	 R9320	     NML$VALID_PARAMETER = NL_PVL %,
;	 R9321	     NML$CLEARABLE = NL_CLR %,
;	 R9322	     NML$READ_ONLY = NL_RO %,
;	 R9323	     NML$PARAMETER_TEXT = NL_PTX %,
;	 R9324	     NML$CODED_TEXT = NL_PCT %,
;	 R9325	     NML$SUMMARY = NL_PSU %,
;	 R9326	     NML$STATUS = NL_PST %,
;	 R9327	     NML$CHARACTERISTIC = NL_PCH %,
;	 R9328	     NML$EXECUTOR_ONLY = NL_PEX %,
;	 R9329	     NML$VDB_PARAMETER = NL_PVD %,
;	 R9330	     NML$GET_PDB_DATA_TYPE = NL_PDT %,
;	 R9331	     NML$PARAMETER_DATA = NL_PDA %,
;	 R9332	     NML$PARAMETER_LOOKUP = NL_PLU %;
;	 R9333	
;	 R9334	!
;	 R9335	! Volatile Data Base Processor (NMLVDB)
;	 R9336	!
;	 R9337	
;	 R9338	macro
;	 R9339	     NML$VDB_INITIALIZE = NL_VDI %,
;	 R9340	     NML$VDB = NL_VDB %,
;	 R9341	     NML$GET_VDB_PARAMETER = NL_VGP %,
;	 R9342	     NML$SET_VDB_PARAMETER = NL_VSP %,
;	 R9343	     NML$CLR_VDB_PARAMETER = NL_VCP %,
;	 R9344	     NML$FIND_NDB = NL_VFN %;
;	 R9345	
;	 R9346	!
		NMLCOM -- Network Management Layer Common Defin 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 164
		Global Name Mappings				 3-Jan-1983 00:56:41	DNET61:<MCB.NML>NMLCOM.REQ.1 (7)

;	 R9347	! Permanent Data Base Processor (NMLPDB)
;	 R9348	!
;	 R9349	
;	 R9350	macro
;	 R9351	     NML$PDB_INITIALIZE = NL_PDI %,
;	 R9352	     NML$PDB_CHANGE = NL_PPC %,
;	 R9353	     NML$PDB_READ = NL_PPR %;
;	 R9354	
;	 R9355	!
;	 R9356	! Request transmitter (NMLXMT)
;	 R9357	!
;	 R9358	
;	 R9359	macro
;	 R9360	     NML$TRANSMITTER = NX_TRANS %;      ! Transmitter task
;	 R9361	
;	 R9362	!
;	 R9363	! Loopback mirror (NMLMRR)
;	 R9364	!
;	 R9365	
;	 R9366	macro
;	 R9367	     NML$MIRROR = NX_MIRROR %;          ! Loopback mirror task
;	 R9368	
;	 R9369	!
;	 R9370	! Nice listener (NMLRCV)
;	 R9371	!
;	 R9372	
;	 R9373	macro
;	 R9374	     NML$RECEIVE_NICE = NL_RCV %;
;	 R9375	
;	 R9376	!
;	 R9377	! Data Link Watcher (NMLDLW)
;	 R9378	!
;	 R9379	
;	 R9380	macro
;	 R9381	     NML$DLW_CALL = NW_CAL %,
;	 R9382	     NML$DLW_INITIALIZE = NW_INI %;
;	 R9383	
;	 R9384	!
;	 R9385	! Event Logging Modules (NMLEV*)
;	 R9386	!
;	 R9387	
;	 R9388	macro
;	 R9389	     NML$DECLARE_EVENT = EV_DEC %,      ! Log an internal NML event
;	 R9390	     NML$EQUEUE_INSERT = EQ_INS %,      ! Insert an entry on an event queue
;	 R9391	     NML$EQUEUE_REMOVE = EQ_REM %,      ! Remove an entry from an event queue
;	 R9392	     NML$EQUEUE_RESET = EQ_RES %,       ! Reset an event queue and set length
;	 R9393	     NML$EVENT_INITIALIZE = EV_INI %,   ! Initialize event logging
;	 R9394	     NML$EVENT_PROCESSOR = EV_PRO %,    ! Filter events and
;	 R9395	                                        ! distribute to targets
;	 R9396	     NML$EVENT_RECEIVER = EV_RCV %,     ! Receive events from other nodes
;	 R9397	     NML$EVENT_RECORDER = EV_REC %,     ! Send events to local sinks
;	 R9398	     NML$EVENT_TRANSMITTER = EV_XMT %,  ! Transmit events to target node
		NMLCOM -- Network Management Layer Common Defin 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 165
		Global Name Mappings				 3-Jan-1983 00:56:41	DNET61:<MCB.NML>NMLCOM.REQ.1 (7)

;	 R9399	     NML$LOGGING_CONSOLE = LG_CON %,    ! Send events to console sink
;	 R9400	     NML$LOGGING_FILE = LG_FIL %,       ! Send events to file sink
;	 R9401	     NML$LOGGING_MONITOR = LG_MON %,    ! Send events to monitor sink
;	 R9402	     NML$TRANSMITTER_QUEUE_GET = EV_GET %; ! Get a transmitter queue
;	 R9403	
;	 R9404	macro
;	MR9405	     NML$EVENT_MANAGER =
;	MR9406	         NML$DECLARE_EVENT : novalue,   ! Declare raw event
;	MR9407	         NML$EQUEUE_RESET : novalue,    ! Reset event queue
;	MR9408	         NML$EQUEUE_INSERT : novalue,   ! Insert event in event queue
;	MR9409	         NML$EQUEUE_REMOVE,             ! Remove event from event queue
;	MR9410	         NML$EVENT_INITIALIZE : novalue, ! Initialize EVENT manager
;	MR9411	         NML$EVENT_PROCESSOR : novalue, ! Process Raw Events
;	MR9412	         NML$EVENT_RECORDER : novalue,   ! Record Events
;	MR9413	         NML$TRANSMITTER_QUEUE_GET      ! Get a transmitter queue
;	 R9414	     %;
;	 R9415	
;	 R9416	!
;	 R9417	! Counter Timer Modules
;	 R9418	!
;	 R9419	
;	 R9420	macro
;	 R9421	     NML$COUNTER_TIMER_TASK = NL_CTT %,	! Counter Timer Task itself
;	 R9422	     NML$COUNTER_TIMER_SET = NL_SCT %,	! Sets counter timers
;	 R9423	     NML$COUNTER_TIMER_CLEAR = NL_CCT %; ! Clears counter timers
		NMLCOM -- Network Management Layer Common Defin 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 166
		Global Name Mappings				 3-Jan-1983 00:56:41	DNET61:<MCB.NML>NMLCOM.REQ.1 (8)

;	 R9424	
;	 R9425	%title ''
;	 R9426	%sbttl ''
;	 R9427	
;	 R9428	!
;	 R9429	! [End of NMLCOM.REQ]
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 167
								 3-Jan-1983 00:56:41	DNET61:<MCB.NML>NMLCOM.REQ.1 (9)

;	 R9430	
;	 R9431	! Local Modes:
;	 R9432	! Mode:BLISS
;	 R9433	! Auto Save Mode:2
;	 R9434	! Comment Column:40
;	 R9435	! Comment Rounding:+1
;	 R9436	! End:
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 168
								 3-Jan-1983 01:26:09	DNET61:<MCB.NML>NMLLIB.REQ.1 (3)

;	  9437	
;	  9438	require 'NML';                          ! NML internal definitions
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 169
								 3-Jan-1983 00:54:24	DNET61:<MCB.NML>NML.REQ.1 (1)

;	 R9439	! NET:<BRANDT.DEVELOPMENT>NML.REQ.1 8-Jun-82 10:56:11, Edit by BRANDT
;	 R9440	!
;	 R9441	!   Transfer definitions of NODE_ID buffers from NML.REQ to NMLCOM.REQ.
;	 R9442	!
;	 R9443	! NET:<VOBA.NML.DEVELOPMENT>NML.REQ.12 25-Mar-82 16:56:11, Edit by VOBA
;	 R9444	!
;	 R9445	! Define fields in entity data block structure to accomodate qualifier
;	 R9446	! sub-queues for qualified entities. For qualified entities, the parameter
;	 R9447	! variables are replaced by fields for queue headers, which point to
;	 R9448	! the sub-queues indexed by qualified parameters of the entities.
;	 R9449	! Clean up code and update copyright date.
;	 R9450	!
;	 R9451	! NET:<DECNET20-V3P1.NML>NML.REQ.5  6-Apr-81 09:24:55, Edit by GUNN
;	 R9452	!
;	 R9453	! Fix definition of NODE_DB_BLOCK to include common entity id fields.
;	 R9454	!
;	 R9455	! NET:<DECNET20-V3P1.NML>NML.REQ.3  2-Apr-81 10:39:51, Edit by GUNN
;	 R9456	!
;	 R9457	! Define fields in EDB to link EDB's on CIRCUIT id queue.
;	 R9458	!
;	 R9459	! NET:<DECNET20-V3P1.NML>NML.REQ.3 23-Feb-81 10:24:30, Edit by GUNN
;	 R9460	!
;	 R9461	! Add definitions for entity data bases.
;	 R9462	!
;	 R9463	! NET:<DECNET20-V3P1.NML>NML.REQ.1 20-Feb-81 08:50:46, Edit by GUNN
;	 R9464	!
;	 R9465	! Add definition for NODE ID buffer.
;	 R9466	!
		NML -- Network Management Layer Internal Defini 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 170
								 3-Jan-1983 00:54:24	DNET61:<MCB.NML>NML.REQ.1 (2)

;	 R9467	%title 'NML -- Network Management Layer Internal Definitions'
;	 R9468	
;	 R9469	!                    COPYRIGHT (c) 1980, 1981, 1982
;	 R9470	!                    DIGITAL EQUIPMENT CORPORATION
;	 R9471	!                        Maynard, Massachusetts
;	 R9472	!
;	 R9473	!     This software is furnished under a license and may  be  used
;	 R9474	!     and copied only in accordance with the terms of such license
;	 R9475	!     and with the inclusion of the above copyright notice.   This
;	 R9476	!     software  or any other copies thereof may not be provided or
;	 R9477	!     otherwise made available to any other person.  No  title  to
;	 R9478	!     and ownership of the software is hereby transferred.
;	 R9479	!
;	 R9480	!     The information  in  this  software  is  subject  to  change
;	 R9481	!     without  notice  and should not be construed as a commitment
;	 R9482	!     by DIGITAL EQUIPMENT CORPORATION.
;	 R9483	!
;	 R9484	!     DIGITAL assumes no responsibility for the use or reliability
;	 R9485	!     of  its  software  on  equipment  which  is  not supplied by
;	 R9486	!     DIGITAL.
;	 R9487	!
;	 R9488	
;	 R9489	!++
;	 R9490	! Facility: LSG DECnet Network Management
;	 R9491	!
;	 R9492	! Abstract: The definitions in this file are used internally
;	 R9493	!	    by the Network Management Layer.
;	 R9494	!
;	 R9495	! Environment: TOPS10/TOPS20 user mode, MCB RSX task level
;	 R9496	!
;	 R9497	! Author: Steven M. Jenness, Creation date: 10-Dec-80
;	 R9498	!
;	 R9499	!--
		NML -- Network Management Layer Internal Defini 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 171
								 3-Jan-1983 00:54:24	DNET61:<MCB.NML>NML.REQ.1 (3)

;	 R9500	
;	 R9501	!
;	 R9502	! EDB - Entity Data Block structure definition
;	 R9503	!
;	 R9504	
;	 R9505	$field ENTITY_DB_BLOCK_FIELDS =
;	 R9506	    set
;	 R9507	    EDB_QLINK = [$sub_block(Q_ENTRY_SIZE)], ! Queue header fields
;	 R9508	    EDB_ENTITY_ID = [$bytes(17)],       ! Entity id (AI-16)
;	 R9509	
;	LR9510	    %if $X25 and not $MCB               ! Parameter fields
;	UR9511	    %then
;	UR9512	    EDB_PARAMETER_FIELDS = [$sub_block(%if Q_HEADER_SIZE gtr 3
;	UR9513	                                       %then Q_HEADER_SIZE
;	UR9514	                                       %else 3 %fi)],
;	 R9515	    %else
;	 R9516	    EDB_PARAMETER_FIELDS = [$sub_block(3)],
;	 R9517	    %fi
;	 R9518	
;	 R9519	!   Overlaying
;	 R9520	
;	LR9521	    %if $X25 and not $MCB
;	UR9522	    %then
;	UR9523	        $overlay (EDB_ENTITY_ID)
;	UR9524	    EDB_QUALIFIER = [$bytes(17)],       ! Qualifier name string (AI-16)
;	UR9525	        $continue
;	 R9526	    %fi
;	 R9527	
;	 R9528	        $overlay (EDB_ENTITY_ID)        ! Special case fields for NODE
;	 R9529	    NDB_ENTITY_ID = [$bytes(9)],        ! NODE entity id
;	 R9530	    NDB_NODE_TYPE = [$bits(3)],         ! NODE type 
;	 R9531	        $continue
;	 R9532	
;	LR9533	    %if $X25 and not $MCB               ! The qualifier queue is defined for
;	UR9534	    %then                               ! the MODULE X25-ACCESS entity on the
;	UR9535	        $overlay (EDB_PARAMETER_FIELDS) ! TOPS side only.
;	UR9536	    EDB_QUALIFIER_QUEUE = [$sub_block(Q_HEADER_SIZE)],
;	UR9537	        $continue
;	 R9538	    %fi
;	 R9539	
;	 R9540	        $overlay (EDB_PARAMETER_FIELDS)
;	 R9541	    EDB_PARAMETER_COUNT = [$integer],   ! Count of number of parameters
;	 R9542	    EDB_PARAMETER_ALLOCATION = [$integer], ! Units of parameter vector
;	 R9543	    EDB_PARAMETER_VECTOR = [$address]   ! Address of parameter vector
;	 R9544	        $continue
;	 R9545	    tes;
;	 R9546	
;	 R9547	literal
;	 R9548	    ENTITY_DB_BLOCK_SIZE = $field_set_size, ! Size of block in words
;	 R9549	    ENTITY_DB_BLOCK_ALLOCATION = ENTITY_DB_BLOCK_SIZE * %upval;
;	 R9550	
;	 R9551	!
		NML -- Network Management Layer Internal Defini 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 172
								 3-Jan-1983 00:54:24	DNET61:<MCB.NML>NML.REQ.1 (3)

;	 R9552	! NDB - Node Data Block structure definition
;	 R9553	!
;	 R9554	
;	 R9555	$field NODE_DB_BLOCK_FIELDS =
;	 R9556	    set
;	 R9557	    EDB_FIELDS = [$sub_block(ENTITY_DB_BLOCK_SIZE)], ! Common EDB fields
;	 R9558	    NDB_CIRCUIT_QLINK = [$sub_block(Q_ENTRY_SIZE)], ! NODE circuit id list
;	 R9559	    NDB_SVC_CIRCUIT = [$pointer]        ! Pointer to SERVICE CIRCUIT id
;	 R9560	    tes;
;	 R9561	
;	 R9562	literal
;	 R9563	    NODE_DB_BLOCK_SIZE = $field_set_size,
;	 R9564	    NODE_DB_BLOCK_ALLOCATION = NODE_DB_BLOCK_SIZE * %upval;
;	 R9565	
;	 R9566	literal
;	 R9567	    NDB$EXECUTOR = 1;                   ! Code for EXECUTOR in NDB_NODE_TYPE
;	 R9568	
;	 R9569	macro
;	MR9570	    ENTITY_DB_BLOCK =
;	 R9571	        block [ENTITY_DB_BLOCK_SIZE] field (ENTITY_DB_BLOCK_FIELDS) %;
;	 R9572	
;	 R9573	macro
;	MR9574	    NODE_DB_BLOCK =
;	MR9575	        block [NODE_DB_BLOCK_SIZE]
;	 R9576	        field (ENTITY_DB_BLOCK_FIELDS,NODE_DB_BLOCK_FIELDS) %;
;	 R9577	
;	 R9578	!
;	 R9579	! PVB - Parameter Vector Block structure definition
;	 R9580	!
;	 R9581	
;	 R9582	$field PVB_ENTRY = 
;	 R9583	    set
;	 R9584	    PE_NUMBER = [$integer],             ! Parameter type number
;	 R9585	    PE_DATA = [$integer],               ! Parameter data
;	 R9586	
;	 R9587	!   Overlaying
;	 R9588	
;	 R9589	        $overlay (PE_DATA)
;	 R9590	    PE_ADDRESS = [$address],            ! or Address of parameter data
;	 R9591	        $continue
;	 R9592	
;	 R9593	        $overlay (PE_DATA)
;	 R9594	    PE_POINTER = [$pointer]             ! or Pointer to parameter data
;	 R9595	        $continue
;	 R9596	    tes;
;	 R9597	
;	 R9598	literal
;	 R9599	    PVB_ENTRY_SIZE = $field_set_size,   ! Size of entry in fullwords
;	 R9600	    PVB_ENTRY_ALLOCATION = $field_set_size * %upval; ! In units
;	 R9601	
;	 R9602	$field PARAMETER_VECTOR_BLOCK =
;	 R9603	    set
		NML -- Network Management Layer Internal Defini 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 173
								 3-Jan-1983 00:54:24	DNET61:<MCB.NML>NML.REQ.1 (3)

;	 R9604	    PVB_PARAMETER = [$sub_block(PVB_ENTRY_SIZE)] ! Single parameter entry
;	 R9605	    tes;
;	 R9606	
;	 R9607	macro
;	MR9608	    $NML$PVB_ENTRY_VECTOR (N) =
;	 R9609	        blockvector [N,PVB_ENTRY_SIZE] field (PVB_ENTRY) %;
;	 R9610	
;	 R9611	macro
;	MR9612	    $NML$PVB_ENTRY_BLOCK =
;	 R9613	        block [PVB_ENTRY_SIZE] field (PVB_ENTRY) %;
		NML -- Network Management Layer Internal Defini 24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 174
								 3-Jan-1983 00:54:24	DNET61:<MCB.NML>NML.REQ.1 (4)

;	 R9614	
;	 R9615	%title ''
;	 R9616	%sbttl ''
;	 R9617	
;	 R9618	!
;	 R9619	! [End of NML.REQ]
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 175
								 3-Jan-1983 00:54:24	DNET61:<MCB.NML>NML.REQ.1 (5)

;	 R9620	
;	 R9621	! Local Modes:
;	 R9622	! Mode:BLISS
;	 R9623	! Auto Save Mode:2
;	 R9624	! Comment Column:40
;	 R9625	! Comment Rounding:+1
;	 R9626	! End:
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 176
								 3-Jan-1983 01:26:09	DNET61:<MCB.NML>NMLLIB.REQ.1 (3)

;	  9627	
;	  9628	require
;	  9629	
;	  9630	%if $TOPS20 %then 'NMUT20' %fi
;	  9631	%if $TOPS10 %then 'NMUT10' %fi
;	  9632	%if $MCB    %then 'NMUMCB' %fi;
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 177
								24-May-1985 10:40:37	DNET61:<MCB.NML>NMUMCB.R16.3 (1)

;	 R9633	!EXODUS:<BRANNON.AP7.NMLMCB>NMUMCB.R16 1-Nov-83 13:43:06, Edit by BRANNON
;	 R9634	!
;	 R9635	! Fix TIME_PLUS bugs to handle exact hour correctly.
;	 R9636	!
;	 R9637	!NET:<BRANDT.DEVELOPMENT>NMUMCB.R16.1 29-Jun-82 15:29:19, Edit by BRANDT
;	 R9638	!
;	 R9639	! Include nesting count in interrupt off/on macros so nested calls work
;	 R9640	!
;	 R9641	!NET:<PECKHAM.DEVELOPMENT>NMUMCB.R16.2 26-Mar-82 08:09:19, Edit by PECKHAM
;	 R9642	!
;	 R9643	! Merge TIME_TOP and TIME_BOTTOM into TIME_SECOND in TIME_BLOCK.
;	 R9644	!
;	 R9645	!NET:<PECKHAM.DEVELOPMENT>NMUMCB.R16.2 17-Feb-82 11:01:39, Edit by PECKHAM
;	 R9646	!
;	 R9647	! Change MEMSIZE to reference MEMTOP instead of MEMSIZ.
;	 R9648	!
;	 R9649	!NET:<PECKHAM.DEVELOPMENT>NMUMCB.R16.2 13-Feb-82 22:34:16, Edit by PECKHAM
;	 R9650	!
;	 R9651	! Fix comparisons in TIME_PLUS
;	 R9652	!
;	 R9653	!NET:<PECKHAM.DEVELOPMENT>NMUMCB.R16.2 24-Jan-82 02:25:57, Edit by PECKHAM
;	 R9654	!
;	 R9655	! Change bit field definitions in TIME_BLOCK to word definitions
;	 R9656	! for more efficient access.
;	 R9657	!
;	 R9658	!NET:<PECKHAM.DEVELOPMENT>NMUMCB.R16.2 23-Jan-82 23:09:31, Edit by PECKHAM
;	 R9659	!
;	 R9660	! Fix bug in TIME_PLUS which was caught by operation priority
;	 R9661	!
;	 R9662	!NET:<PECKHAM.DEVELOPMENT>NMUMCB.R16.3 22-Jan-82 07:04:54, Edit by PECKHAM
;	 R9663	!
;	 R9664	! Correct parameter naming bug in TIME_DIFFERENCE_SECONDS.
;	 R9665	!
;	 R9666	!NET:<PECKHAM.DEVELOPMENT>NMUMCB.R16.2 21-Jan-82 12:19:57, Edit by PECKHAM
;	 R9667	!
;	 R9668	! Add macros TIME_DIFFERENCE_SECONDS and TIME_PLUS to compute the temporal
;	 R9669	! difference between two TIME_BLOCKS and to add an offset in seconds to a
;	 R9670	! TIME_BLOCK.
;	 R9671	!
;	 R9672	! NET:<DECNET20-V3P1.NMLLIB>NMUMCB.R16 02-Dec-81 09:49:20, Edit by THIGPEN
;	 R9673	!
;	 R9674	! Add WAIT_BLOCK for use in timing out NMU$SCHED_WAIT calls.
;	 R9675	!
;	 R9676	! NMUMCB - Network Management Utilities MCB definitions
;	 R9677	!
;	 R9678	!                    COPYRIGHT (c) 1980, 1981, 1982
;	 R9679	!                    DIGITAL EQUIPMENT CORPORATION
;	 R9680	!                        Maynard, Massachusetts
;	 R9681	!
;	 R9682	!     This software is furnished under a license and may  be  used
;	 R9683	!     and copied only in accordance with the terms of such license
;	 R9684	!     and with the inclusion of the above copyright notice.   This
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 178
								24-May-1985 10:40:37	DNET61:<MCB.NML>NMUMCB.R16.3 (1)

;	 R9685	!     software  or any other copies thereof may not be provided or
;	 R9686	!     otherwise made available to any other person.  No  title  to
;	 R9687	!     and ownership of the software is hereby transferred.
;	 R9688	!
;	 R9689	!     The information  in  this  software  is  subject  to  change
;	 R9690	!     without  notice  and should not be construed as a commitment
;	 R9691	!     by DIGITAL EQUIPMENT CORPORATION.
;	 R9692	!
;	 R9693	!     DIGITAL assumes no responsibility for the use or reliability
;	 R9694	!     of  its  software  on  equipment  which  is  not supplied by
;	 R9695	!     DIGITAL.
;	 R9696	!
;	 R9697	
;	 R9698	!++
;	 R9699	! Facility: LSG DECnet Network Management
;	 R9700	!
;	 R9701	! Abstract: This file contains definitions that are specific to
;	 R9702	!	    MCB.
;	 R9703	!
;	 R9704	! Environment: MCB
;	 R9705	!
;	 R9706	! Author: Scott G. Robinson, Creation date: 29-Dec-80
;	 R9707	!
;	 R9708	!--
;	 R9709	
;	 R9710	!<BLF/PAGE>
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 179
								24-May-1985 10:40:37	DNET61:<MCB.NML>NMUMCB.R16.3 (2)

;	 R9711	!
;	 R9712	! Other requirements for MCB
;	 R9713	!
;	 R9714	
;	 R9715	switches list (norequire);		! Suppress monitor symbol listing
;	 R9716	
;	 R9717	require 'BLI:RSX11M';			! RSX11 Definitions
;	 R11328	require 'NETDIR';			! RSX11 Network definitions
;	 R12172	%( switches list (yesrequire); )%
;	 R12173	
;	 R12174	!
;	 R12175	literal
;	 R12176		CONTEXT_SIZE = 1;		!Just the SP is context
;	 R12177	!<BLF/PAGE>
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 180
								24-May-1985 10:40:37	DNET61:<MCB.NML>NMUMCB.R16.3 (3)

;	 R12178	!
;	 R12179	! Semaphore LOCK/UNLOCK macros
;	 R12180	!
;	 R12181	! macro: LOCK
;	 R12182	!		This macro attempts a semaphore lock.  If the lock
;	 R12183	!		attempt is successful, a "true" value is returned.
;	 R12184	!
;	 R12185	!	LOCK (SEMAPHORE)
;	 R12186	!
;	 R12187	!	where SEMAPHORE is the address of a SEMAPHORE_BLOCK.
;	 R12188	
;	 R12189	macro
;	MR12190	    LOCK (SEMA_ADDR) =
;	MR12191		begin
;	MR12192		bind SEMBLK = SEMA_ADDR : SEMAPHORE_BLOCK;
;	MR12193		if .SEMBLK[SEMAPHORE] NEQ 0 then 0 else (SEMBLK[SEMAPHORE]=1)
;	MR12194		end
;	 R12195				%;
;	 R12196	!
;	 R12197	! macro: UNLOCK
;	 R12198	!
;	 R12199	!		This macro unlocks a semaphore that has been locked
;	 R12200	!		with a LOCK macro call.
;	 R12201	!
;	 R12202	!	UNLOCK (SEMAPHORE)
;	 R12203	!
;	 R12204	!	where SEMAPHORE is the address of a SEMAPHORE_BLOCK.
;	 R12205	
;	 R12206	macro
;	MR12207	    UNLOCK (SEMA_ADDR) =
;	MR12208		begin
;	MR12209		bind SEMBLK = SEMA_ADDR : SEMAPHORE_BLOCK;
;	MR12210		SEMBLK[SEMAPHORE] = 0;
;	MR12211		end
;	 R12212				 %;
;	 R12213	!<BLF/PAGE>
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 181
								24-May-1985 10:40:37	DNET61:<MCB.NML>NMUMCB.R16.3 (4)

;	 R12214	!
;	 R12215	! Task scheduling macros
;	 R12216	!
;	 R12217	! macro: CONTEXT_SWITCH
;	 R12218	!
;	 R12219	!		This macro swaps the current task with the
;	 R12220	!		specified future task.
;	 R12221	!
;	 R12222	!	CONTEXT_SWITCH (NEW_TASK)
;	 R12223	!
;	 R12224	!	where NEW_TASK is the address of the new task's task block.
;	 R12225	
;	 R12226	macro
;	MR12227	    CONTEXT_SWITCH (NEW_TASK) =
;	MR12228		begin
;	MR12229		    external routine SS$CTX : novalue;	! System specific routine
;	MR12230		    SS$CTX (NEW_TASK);
;	 R12231		end %;
;	 R12232	
;	 R12233	!
;	 R12234	! macro: CURRENT_TASK
;	 R12235	!
;	 R12236	!		This macro returns the address of the
;	 R12237	!		current task's task block.
;	 R12238	
;	 R12239	macro
;	MR12240	    CURRENT_TASK =
;	MR12241		begin
;	MR12242		    external CURTSK;		! Cell containing current task
;	MR12243		    .CURTSK
;	 R12244		end %;
;	 R12245	
;	 R12246	!
;	 R12247	! macro: TASK_INITIALIZE
;	 R12248	!
;	 R12249	!		This macro initializes a task's task block.
;	 R12250	!		Specifically it sets up the stack and the
;	 R12251	!		starting address so that the task will swap
;	 R12252	!		context properly the first time that it
;	 R12253	!		is scheduled.
;	 R12254	!
;	 R12255	!	TASK_INITIALIZE (TASK_BLOCK, STACK_SIZE)
;	 R12256	!
;	 R12257	!	where TK_BLOCK is the task's task block address
;	 R12258	!	      STACK_SIZE is the number of fullwords its stack.
;	 R12259	
;	 R12260	macro
;	MR12261	    TASK_INITIALIZE (TK_BLOCK, STACK_SIZE) =
;	MR12262		begin
;	MR12263		    external routine SS$TNI : novalue;	! System specific routine
;	MR12264		    SS$TNI (TK_BLOCK, STACK_SIZE);
;	 R12265		end %;
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 182
								24-May-1985 10:40:37	DNET61:<MCB.NML>NMUMCB.R16.3 (4)

;	 R12266	
;	 R12267	!<BLF/PAGE>
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 183
								24-May-1985 10:40:37	DNET61:<MCB.NML>NMUMCB.R16.3 (5)

;	 R12268	!
;	 R12269	! Interrupt system operation macros
;	 R12270	!
;	 R12271	! macro: CLEAR_INTERRUPT_SYSTEM
;	 R12272	!
;	 R12273	!		This macro clears the interrupt system.  All interrupts
;	 R12274	!		disabled.
;	 R12275	!
;	 R12276	
;	 R12277	macro
;	MR12278	    CLEAR_INTERRUPT_SYSTEM =
;	MR12279		begin
;	MR12280		%inform('CLEAR_INTERRUPT_SYSTEM is a NOOP for MCB')
;	 R12281		end %;
;	 R12282	
;	 R12283	!
;	 R12284	! macro: INITIALIZE_INTERRUPT_SYSTEM
;	 R12285	!
;	 R12286	!		This macro setups any initial values needed in
;	 R12287	!		the interrupt data base and informs the operating
;	 R12288	!		system about the interrupt vector tables.
;	 R12289	!
;	 R12290	
;	 R12291	macro
;	MR12292	    INITIALIZE_INTERRUPT_SYSTEM =
;	MR12293		begin
;	MR12294		%inform('INITIALIZE_INTERRUPT_SYSTEM is a NOOP for MCB')
;	 R12295		end %;
;	 R12296	
;	 R12297	!
;	 R12298	! macro: ACTIVATE_INTERRUPT
;	 R12299	!
;	 R12300	!		This macro enables a specific interrupt.  The
;	 R12301	!		variable HANDLE points to the relevant interrupt
;	 R12302	!		data base.
;	 R12303	
;	 R12304	macro
;	MR12305	    ACTIVATE_INTERRUPT =
;	MR12306		begin
;	MR12307		%inform('ACTIVATE_INTERRUPT is a NOOP for MCB')
;	 R12308		end %;
;	 R12309	
;	 R12310	!
;	 R12311	! macro: DEACTIVATE_INTERRUPT
;	 R12312	!
;	 R12313	!		This macro disables a specific interrupt.  The
;	 R12314	!		variable HANDLE is the index into the HANDLE_TAB
;	 R12315	!		interrup data base.
;	 R12316	
;	 R12317	macro
;	MR12318	    DEACTIVATE_INTERRUPT =
;	MR12319		begin
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 184
								24-May-1985 10:40:37	DNET61:<MCB.NML>NMUMCB.R16.3 (5)

;	MR12320		%inform('DEACTIVATE_INTERRUPT is a NOOP for MCB')
;	 R12321		end %;
;	 R12322	
;	 R12323	!
;	 R12324	! macro: INTERRUPT_ON
;	 R12325	!
;	 R12326	!		This macro enables the interrupt system.  If nested
;	 R12327	!		INTERRUPT_OFF calls have been made, this call only
;	 R12328	!		decrements the nesting count.
;	 R12329	
;	 R12330	macro
;	MR12331	    INTERRUPT_ON =
;	MR12332		begin
;	MR12333	        external INTNST;
;	MR12334		dsar$s();			! Interrupts off
;	MR12335		if (INTNST = .INTNST - 1) leq 0
;	MR12336		then
;	MR12337		    begin
;	MR12338		    INTNST = 0;			! Zero nesting count
;	MR12339		    enar$s();			! Interrupts on
;	MR12340		    end;
;	 R12341		end %;
;	 R12342	
;	 R12343	!
;	 R12344	! macro: INTERRUPT_OFF
;	 R12345	!
;	 R12346	!		This macro turns the interrupt system off.  It
;	 R12347	!		also increments the nesting count of times that
;	 R12348	!		it has been turned off.
;	 R12349	
;	 R12350	macro
;	MR12351	    INTERRUPT_OFF =
;	MR12352		begin
;	MR12353	        external INTNST;
;	MR12354		dsar$s();
;	MR12355	        INTNST = .INTNST + 1;           ! Increment nesting count
;	 R12356		end %;
;	 R12357	
;	 R12358	!
;	 R12359	! INTERRUPT routine declarations
;	 R12360	!
;	 R12361	
;	 R12362	macro
;	MR12363	    RSX$AST_PARAMETERS =
;	 R12364		RSX_EVMASK,RSX_PSW,RSX_PC,RSX_DSW %,
;	MR12365	    VANILLA_INTERRUPT_ROUTINE =
;	 R12366		(RSX$AST_PARAMETERS) : VANILLA_INTERRUPT_LINKAGE %,
;	MR12367	    TIMER_INTERRUPT_ROUTINE =
;	 R12368		(RSX$AST_PARAMETERS,TIME_EVENT_FLAG) :TIMER_INTERRUPT_LINKAGE%,
;	MR12369	    NETWORK_INTERRUPT_ROUTINE =
;	 R12370		(RSX$AST_PARAMETERS,NETWORK_STATUS_BLOCK) :NETWORK_INTERRUPT_LINKAGE%,
;	MR12371	    IO_INTERRUPT_ROUTINE =
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 185
								24-May-1985 10:40:37	DNET61:<MCB.NML>NMUMCB.R16.3 (5)

;	 R12372	        (RSX$AST_PARAMETERS,IO_STATUS_BLOCK): IO_INTERRUPT_LINKAGE%;
;	 R12373	
;	 R12374	macro
;	MR12375	    INTERRUPT_LINKAGE =
;	 R12376		rsx_ast(standard)%;
;	 R12377	
;	 R12378	linkage
;	 R12379	    VANILLA_INTERRUPT_LINKAGE =
;	 R12380		INTERRUPT_LINKAGE ,
;	 R12381	    TIMER_INTERRUPT_LINKAGE =
;	 R12382		INTERRUPT_LINKAGE ,
;	 R12383	    NETWORK_INTERRUPT_LINKAGE =
;	 R12384		INTERRUPT_LINKAGE ,
;	 R12385	    IO_INTERRUPT_LINKAGE =
;	 R12386	        INTERRUPT_LINKAGE ;
;	 R12387	
;	 R12388	macro
;	MR12389	    INTERRUPT_ROUTINE [] =
;	MR12390		(RSX$AST_PARAMETERS
;	MR12391			%if not %null (%remaining) %then
;	MR12392			, %remaining
;	MR12393			%fi
;	MR12394		) : VANILLA_INTERRUPT_LINKAGE
;	 R12395		%warn('Best to Use ???_INTERRUPT_ROUTINE') %;
;	 R12396	
;	 R12397	macro
;	MR12398	    ALLOCATE_INTERRUPT_CHANNEL =
;	MR12399		%warn('Who wants to ALLOCATE_INTERRUPT_CHANNEL?')
;	 R12400		%;
;	 R12401	
;	 R12402	macro
;	MR12403	    RELEASE_INTERRUPT_CHANNEL (CHANNEL) =
;	MR12404		%warn('Who supposedly has to RELEASE_INTERRUPT_CHANNEL?')
;	 R12405		%;
;	 R12406	!
;	 R12407	!<BLF/PAGE>
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 186
								24-May-1985 10:40:37	DNET61:<MCB.NML>NMUMCB.R16.3 (6)

;	 R12408	! System specific time interface
;	 R12409	!
;	 R12410	! This set of macros allows transparent manipulation of "time"
;	 R12411	! in a particular system.  The macros are defined to read time
;	 R12412	! from the operating system, read time with a offset, compare time,
;	 R12413	! set and clear interrupts on time.
;	 R12414	!
;	 R12415	!
;	 R12416	! Time block structure
;	 R12417	!
;	 R12418	!	This structure defines the format needed for a specific
;	 R12419	!	system to store a internal time/date value.
;	 R12420	!	It is patterned after the EVENT TIME needs of event logging
;	 R12421	!
;	 R12422	
;	 R12423	$field
;	 R12424	    TIME_BLOCK_FIELDS =
;	 R12425		set
;	 R12426		TIME_JULIAN = [$integer],	!Julian Half-Days
;	 R12427		TIME_SECOND = [$integer],	!Seconds in Half-Day
;	 R12428		TIME_MILLISECOND = [$integer]	!Milliseconds in second
;	 R12429						!or %o'100000'
;	 R12430		tes;
;	 R12431	
;	 R12432	literal
;	 R12433	    TIME_BLOCK_SIZE = $field_set_size,
;	 R12434	    TIME_BLOCK_ALLOCATION = $field_set_units;
;	 R12435	
;	 R12436	
;	 R12437	macro TIME_BLOCK = block [TIME_BLOCK_SIZE] field(TIME_BLOCK_FIELDS) %;
;	 R12438	
;	 R12439	!
;	 R12440	! Macro - TIME_PLUS
;	 R12441	!
;	 R12442	! Function -	This macro adds the second argument (which is in units of
;	 R12443	!		seconds) to the first argument which is a time block.
;	 R12444	!
;	 R12445	
;	 R12446	macro
;	MR12447	    TIME_PLUS (TIME, SECONDS) =
;	MR12448	    begin
;	MR12449		bind TBLK = TIME : TIME_BLOCK;
;	MR12450		local $NMU$SECS : unsigned;
;	MR12451	
;	MR12452	    $NMU$SECS = (SECONDS);
;	MR12453	
;	MR12454	    if .$NMU$SECS gequ (12*60*60)
;	MR12455	    then begin
;	MR12456		TBLK [TIME_JULIAN] = .TBLK [TIME_JULIAN] + 1;
;	MR12457		$NMU$SECS = .$NMU$SECS - (12*60*60);
;	MR12458		end;
;	MR12459	    TBLK [TIME_SECOND] = .TBLK [TIME_SECOND] + .$NMU$SECS;
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 187
								24-May-1985 10:40:37	DNET61:<MCB.NML>NMUMCB.R16.3 (6)

;	 R12460	    end %;
;	 R12461	
;	 R12462	!
;	 R12463	! Macro - TIME_DIFFERENCE_SECONDS
;	 R12464	!
;	 R12465	! Function - Compute the difference (in seconds) of two TIME_BLOCKS
;	 R12466	!
;	 R12467	
;	 R12468	macro
;	MR12469	    TIME_DIFFERENCE_SECONDS (TIME1, TIME2) =
;	MR12470	    begin
;	MR12471		local $NMU$SECS;
;	MR12472		external routine SS$TDF;
;	MR12473		SS$TDF(TIME1,TIME2,$NMU$SECS);
;	MR12474		.$NMU$SECS
;	 R12475	    end %;
;	 R12476	
;	 R12477	!
;	 R12478	! macro: TIME_INTERRUPT_CLEAR
;	 R12479	!
;	 R12480	!		This macro clears all outstanding timer interrupts.
;	 R12481	!
;	 R12482	
;	 R12483	macro
;	MR12484	    TIME_INTERRUPT_CLEAR =
;	MR12485		begin
;	MR12486		cmkt$s();
;	 R12487		end %;
;	 R12488	
;	 R12489	!
;	 R12490	! macro: TIME_INTERRUPT_SET
;	 R12491	!
;	 R12492	!		This macro sets a time interrupt.  It also
;	 R12493	!		defines the routine to be called when the
;	 R12494	!		interrupt occurs.
;	 R12495	!
;	 R12496	!		Note that since the interrupt channel is
;	 R12497	!		hard coded the time interrupt must be unique.
;	 R12498	!
;	 R12499	!	TIME_INTERRUPT_SET (TIME_BLK, TROUTINE)
;	 R12500	!
;	 R12501	!	where	TIM_BLK	is the time in the future for a interrupt
;	 R12502	!		ROUTINE	is the address of the interrupt service routine
;	 R12503	
;	 R12504	macro
;	MR12505	    TIME_INTERRUPT_SET (TIM_BLK, TROUTINE) =
;	MR12506		begin
;	MR12507		external routine SS$STI;
;	MR12508		SS$STI(TIM_BLK, TROUTINE);
;	 R12509		end %;
;	 R12510	
;	 R12511	
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 188
								24-May-1985 10:40:37	DNET61:<MCB.NML>NMUMCB.R16.3 (6)

;	 R12512	!
;	 R12513	! macro: TIME_CURRENT
;	 R12514	!
;	 R12515	!		This macro returns the current time in
;	 R12516	!		the host operating systems time format.
;	 R12517	!		This is the format needed to set timer
;	 R12518	!		interrupts.
;	 R12519	!
;	 R12520	!	TIME_CURRENT (OFFSET, TIM_BLK)
;	 R12521	!
;	 R12522	!	where	OFFSET	is the number of seconds to add to the
;	 R12523	!			actual current time.
;	 R12524	!		TIM_BLK	is the address of the time block in which
;	 R12525	!			to store the resulting time.
;	 R12526	
;	 R12527	macro
;	MR12528	    TIME_CURRENT (OFFSET, TIM_BLK) =
;	MR12529		begin
;	MR12530		external routine SS$GTM : novalue;
;	MR12531		SS$GTM(OFFSET, TIM_BLK);
;	 R12532		end %;
;	 R12533	
;	 R12534	!
;	 R12535	! macro: TIME_SET_NULL
;	 R12536	!
;	 R12537	!		This macro sets a time block to a null value.
;	 R12538	!		This value is used as a sentinel to check for
;	 R12539	!		a valid time value (null/not null).
;	 R12540	!
;	 R12541	!	TIME_SET_NULL (TIM_BLK)
;	 R12542	!
;	 R12543	!	where	TIM_BLK	is the address of the time block.
;	 R12544	
;	 R12545	macro
;	MR12546	    TIME_SET_NULL (TIM_BLK) =
;	MR12547		begin
;	MR12548		    bind TBLK = TIM_BLK : TIME_BLOCK;
;	MR12549		    TBLK [TIME_JULIAN] = -1;
;	 R12550		end %;
;	 R12551	
;	 R12552	!
;	 R12553	! macro: TIME_NOT_NULL
;	 R12554	!
;	 R12555	!		This macro checks to the value in a time block
;	 R12556	!		to see if it is not null (see TIME_SET_NULL).
;	 R12557	!
;	 R12558	!	TIME_NOT_NULL (TIM_BLK)
;	 R12559	!
;	 R12560	!	where	TIM_BLK	is the address of the time block to test.
;	 R12561	
;	MR12562	macro TIME_NOT_NULL (TIM_BLK) =
;	MR12563		begin
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 189
								24-May-1985 10:40:37	DNET61:<MCB.NML>NMUMCB.R16.3 (6)

;	MR12564		    bind TBLK = TIM_BLK : TIME_BLOCK;
;	MR12565		    .TBLK [TIME_JULIAN] neq -1
;	 R12566		end %;
;	 R12567	
;	 R12568	
;	 R12569	!
;	 R12570	! macro: TIME_NULL
;	 R12571	!
;	 R12572	!		This macro checks to the value in a time block
;	 R12573	!		to see if it is null (see TIME_SET_NULL).
;	 R12574	!
;	 R12575	!	TIME_NULL (TIM_BLK)
;	 R12576	!
;	 R12577	!	where	TIM_BLK	is the address of the time block to test.
;	 R12578	
;	MR12579	macro TIME_NULL (TIM_BLK) =
;	MR12580		begin
;	MR12581		    bind TBLK = TIM_BLK : TIME_BLOCK;
;	MR12582		    .TBLK [TIME_JULIAN] eql -1
;	 R12583		end %;
;	 R12584	
;	 R12585	!
;	 R12586	! macro: TIME_COPY
;	 R12587	!
;	 R12588	!		This macro copies the time from one time block
;	 R12589	!		to another time block.
;	 R12590	!
;	 R12591	!	TIME_COPY (TO_BLK, FRM_BLK)
;	 R12592	!
;	 R12593	!	where	TO_BLK	is the time block to copy the time to.
;	 R12594	!		FRM_BLK	is the time block to copy the time from.
;	 R12595	
;	MR12596	macro TIME_COPY (TO_BLK, FRM_BLK) =
;	MR12597		begin
;	MR12598		    bind TOBLK = TO_BLK : TIME_BLOCK,
;	MR12599			 FRMBLK = FRM_BLK : TIME_BLOCK;
;	MR12600	
;	MR12601		    TOBLK [TIME_JULIAN] = .FRMBLK [TIME_JULIAN];
;	MR12602		    TOBLK [TIME_SECOND] = .FRMBLK [TIME_SECOND];
;	MR12603		    TOBLK [TIME_MILLISECOND] = .FRMBLK [TIME_MILLISECOND];
;	 R12604		end %;
;	 R12605	
;	 R12606	!
;	 R12607	! macro: TIME_TEST
;	 R12608	!
;	 R12609	!		This macro tests the chronological relation of
;	 R12610	!		the values in two time blocks.  The test operator
;	 R12611	!		is specified as an argument to the macro.  The
;	 R12612	!		value returned by this macro is a boolean (true/false)
;	 R12613	!		from the test "TB1 TST_FNC TB2" (i.e. TB1 lss TB2).
;	 R12614	!
;	 R12615	!	TIME_TEST (TBLK1, TST_FNC, TBLK2)
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 190
								24-May-1985 10:40:37	DNET61:<MCB.NML>NMUMCB.R16.3 (6)

;	 R12616	!
;	 R12617	!	where	TBLK1	is the first time block.
;	 R12618	!		TST_FNC	is the test operator (LSS, GTR, EQL,..etc)
;	 R12619	!		TBLK2	is the second time time.
;	 R12620	
;	MR12621	macro TIME_TEST (TBLK1, TST_FNC, TBLK2) =
;	MR12622		begin
;	MR12623		    bind TIMBLK1 = TBLK1 : TIME_BLOCK,
;	MR12624			 TIMBLK2 = TBLK2 : TIME_BLOCK;
;	MR12625		    external routine SS$TDF;
;	MR12626		    local ABTIME;
;	MR12627		    (SS$TDF(TIMBLK1,TIMBLK2,ABTIME) TST_FNC 0)
;	 R12628		end %;
;	 R12629	
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 191
								24-May-1985 10:40:37	DNET61:<MCB.NML>NMUMCB.R16.3 (7)

;	 R12630	!
;	 R12631	! Wait Block Structure
;	 R12632	!
;	 R12633	!	This defines the WAIT_BLOCK used in timing out waiting for events,
;	 R12634	!	specifically those waits implemented by calling NMU$SCHED_WAIT.
;	 R12635	!
;	 R12636	   $field WAIT_BLOCK_FIELDS =
;	 R12637		set
;	 R12638		  WAITING_TASK	= [$address],			!task block addr, to ref semaphore
;	 R12639			$ALIGN(FULLWORD)
;	 R12640		  WAIT_EVENT	= [$address],			!addr of event block to wait on
;	 R12641			$ALIGN(FULLWORD)
;	 R12642		  WAIT_TIME	= [$sub_block(TIME_BLOCK_SIZE)]	!time at which to 'wake'
;	 R12643		tes;
;	 R12644	!
;	 R12645	   literal
;	 R12646		WAIT_BLOCK_SIZE = $field_set_size;
;	 R12647	!
;	 R12648	   macro
;	 R12649		WAIT_BLOCK = block [WAIT_BLOCK_SIZE] field (WAIT_BLOCK_FIELDS)%;
;	 R12650	!
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 192
								24-May-1985 10:40:37	DNET61:<MCB.NML>NMUMCB.R16.3 (8)

;	 R12651	!
;	 R12652	! Memory allocation
;	 R12653	!
;	 R12654	! macro: CORE_GET
;	 R12655	!
;	 R12656	!		This macro gets a block of memory from the
;	 R12657	!		operating system of the specified size.  The
;	 R12658	!		address of the block is returned as the value
;	 R12659	!		of the macro.
;	 R12660	!
;	 R12661	!	CORE_GET (BLOCK_SIZE)
;	 R12662	!
;	 R12663	!	where BLOCK_SIZE is the number of fullwords to be allocated.
;	 R12664	
;	 R12665	macro
;	MR12666	    CORE_GET (BLKSIZE) =
;	MR12667		begin
;	MR12668		external routine SS$COR;
;	MR12669		SS$COR(BLKSIZE)
;	 R12670		end %;
;	 R12671	
;	 R12672	!
;	 R12673	! MEMSIZE - return current address to top of memory
;	 R12674	!
;	 R12675	
;	 R12676	macro
;	MR12677	    MEMSIZE =
;	MR12678		begin
;	MR12679		external MEMTOP;
;	MR12680		MEMTOP
;	 R12681		end %;
;	 R12682	
;	 R12683	!<BLF/PAGE>
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 193
								24-May-1985 10:40:37	DNET61:<MCB.NML>NMUMCB.R16.3 (9)

;	 R12684	!
;	 R12685	! Process sleep and indefinite waits
;	 R12686	!
;	 R12687	! macro: PROCESS_SLEEP
;	 R12688	!
;	 R12689	!		This macro puts the current process to
;	 R12690	!		sleep for the specified amount of time.
;	 R12691	!		The process is not guaranteed to sleep
;	 R12692	!		the specified amount.
;	 R12693	!
;	 R12694	!	PROCESS_SLEEP (TIME)
;	 R12695	!
;	 R12696	!	where TIME is the number of milliseconds to sleep
;	 R12697	
;	 R12698	macro
;	MR12699	    PROCESS_SLEEP (TIME) =
;	MR12700		begin
;	MR12701		WTSE$S(32);
;	MR12702		CLEF$S(32);
;	 R12703		end %;
;	 R12704	
;	 R12705	!
;	 R12706	! macro: PROCESS_WAKE
;	 R12707	!
;	 R12708	!		This macro wakes up the current process.
;	 R12709	!		It may be called at interrupt level to
;	 R12710	!		complement the PROCESS_SLEEP function.
;	 R12711	!
;	 R12712	
;	 R12713	macro
;	MR12714	    PROCESS_WAKE =
;	MR12715		begin
;	MR12716		SETF$S(32)
;	 R12717		end %;
;	 R12718	
;	 R12719	!
;	 R12720	!<BLF/PAGE>
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 194
								24-May-1985 10:40:37	DNET61:<MCB.NML>NMUMCB.R16.3 (10)

;	 R12721	!
;	 R12722	! MCB Specific Network Definitions
;	 R12723	!
;	 R12724	$field
;	 R12725		NMU$NETSB$fields =		! Network QIO Status Block
;	 R12726		  set
;	 R12727		  NETSB$ERROR	= [$integer],	! Composite error code:
;	 R12728			$overlay(NETSB$ERROR)
;	 R12729		  	NETSB$ERR = [$tiny_integer], !error code
;	 R12730		  	NETSB$ERR1= [$tiny_integer], !0 = I/O error, -1 = directive error
;	 R12731			$continue
;	 R12732		  NETSB$IO_COUNT= [$integer],	! I/O count (bytes)
;	 R12733			$overlay(NETSB$IO_COUNT)
;	 R12734			NETSB$CNT = [$byte],	! Lower Byte
;	 R12735			NETSB$CNT1= [$byte],	! Upper Byte
;	 R12736			$continue
;	 R12737		  NETSB$LINK_ID = [$integer]	! LINK_ID for this operation
;	 R12738		  tes;
;	 R12739	
;	 R12740	literal
;	 R12741		NMU$_NETSB_SIZE = $field_set_size,
;	 R12742		NMU$_NETSB_ALLOCATION = $field_set_units;
;	 R12743	
;	 R12744	macro
;	MR12745		$NETWORK_STATUS_BLOCK =
;	 R12746		    BLOCK[NMU$_NETSB_SIZE]  FIELD( NMU$NETSB$fields ) %;
;	 R12747	
;	 R12748	literal
;	 R12749		NMU$_NETWORK_MAX_INCOMING = 3,	!The Maximum number of targets
;	 R12750		NMU$_NETWORK_MAX_OUTGOING = 5,	!The Maximum number of sources
;	 R12751		NMU$_NETWORK_MAX_LUNS = NMU$_NETWORK_MAX_INCOMING + NMU$_NETWORK_MAX_OUTGOING;	!The Maximum number of Network LUNS
;	 R12752	
;	 R12753	$literal
;	 R12754	        NMU$_CONSOLE_LUN = $distinct,	!The LUN to use for the CONSOLE
;	 R12755		NMU$_NM_DEVICE_LUN = $distinct, !The LUN for the NM: device
;	 R12756		NMU$_DL0_DEVICE_LUN = $distinct, !A LUN for DLX device access
;	 R12757		NMU$_DL1_DEVICE_LUN = $distinct,!A LUN for DLX device access
;	 R12758	! Note: all LUNs not associated with the network must be defined before here
;	 R12759		NMU$_NETWORK_LUN = $distinct;	!The LUN to use for Network Events
;	 R12760	! Note: NETWORK_LUNS go to NMU$NETWORK_LUN + NMU$_NUMBER_OF_LUNS
;	 R12761	
;	 R12762	$literal
;	 R12763		NMU$_CONSOLE_FLAG = $distinct,	!The Console Event Flag
;	 R12764		NMU$_NM_DEVICE_FLAG = $distinct,!The NM: device Event Flag
;	 R12765		NMU$_DL0_DEVICE_FLAG = $distinct,!A DLX device access Event Flag
;	 R12766		NMU$_DL1_DEVICE_FLAG = $distinct,!A DLX device access Event Flag
;	 R12767	! Note: all Event flags not associated with the network must be defined before here
;	 R12768		NMU$_NETWORK_FLAG = $distinct;	!The Event Flag for Network Waits
;	 R12769	! Note: NETWORK_FLAGS go to NMU$NETWORK_FLAG+ NMU$_NUMBER_OF_LUNS
;	 R12770	!
;	 R12771	! Define the NMUNET Data Structures
;	 R12772	!
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 195
								24-May-1985 10:40:37	DNET61:<MCB.NML>NMUMCB.R16.3 (10)

;	 R12773	require 'NMUNTS';
;	 R12957	!
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 196
								24-May-1985 10:40:37	DNET61:<MCB.NML>NMUMCB.R16.3 (11)

;	 R12958	!
;	 R12959	! Local Modes:
;	 R12960	! Mode:Fundamental
;	 R12961	! Comment Start:!
;	 R12962	! Comment Column:40
;	 R12963	! Comment Rounding:+1
;	 R12964	! Auto Save Mode:2
;	 R12965	! End:
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 197
								 3-Jan-1983 01:26:09	DNET61:<MCB.NML>NMLLIB.REQ.1 (3)

;	  12966	
;	  12967	![End of NMLLIB.REQ]
								24-May-1985 13:17:07	TOPS-20 Bliss-16 2A(530)	    Page 198
								 3-Jan-1983 01:26:09	DNET61:<MCB.NML>NMLLIB.REQ.1 (4)

;	  12968	
;	  12969	! Local Modes:
;	  12970	! Mode:BLISS
;	  12971	! Comment Start:! 
;	  12972	! Comment Column:40
;	  12973	! Comment Rounding:+1
;	  12974	! Auto Save Mode:2
;	  12975	! End:





; Run Time:	01:59.3
; Elapsed Time:	02:23.2
; Memory Used:	243 pages
; Library Precompilation Complete