Google
 

Trailing-Edge - PDP-10 Archives - BB-R595B-SM_11-9-85 - mcb/nmx/nmxpar.lst
There is 1 other file named nmxpar.lst in the archive. Click here to see a list.
								25-Jan-1983 09:23:40	TOPS-20 Bliss-16 3(552)		    Page   1
								 4-Jan-1983 09:29:02	NETPKG:<NMX>NMXPAR.REQ.7 (1)

;	  0001	!                    COPYRIGHT (c) 1980, 1981, 1982
;	  0002	!                    DIGITAL EQUIPMENT CORPORATION
;	  0003	!                        Maynard, Massachusetts
;	  0004	!
;	  0005	!     This software is furnished under a license and may  be  used
;	  0006	!     and copied only in accordance with the terms of such license
;	  0007	!     and with the inclusion of the above copyright notice.   This
;	  0008	!     software  or any other copies thereof may not be provided or
;	  0009	!     otherwise made available to any other person.  No  title  to
;	  0010	!     and ownership of the software is hereby transferred.
;	  0011	!
;	  0012	!     The information  in  this  software  is  subject  to  change
;	  0013	!     without  notice  and should not be construed as a commitment
;	  0014	!     by DIGITAL EQUIPMENT CORPORATION.
;	  0015	!
;	  0016	!     DIGITAL assumes no responsibility for the use or reliability
;	  0017	!     of  its  software  on  equipment  which  is  not supplied by
;	  0018	!     DIGITAL.
;	  0019	
;	  0020	!+
;	  0021	! NMX Specific Parameters
;	  0022	!-
;	  0023	%if not %declared (XPO$K_VERSION) %then library 'XPORTX' %fi;
;	  0024	%if not %declared (MCB$K_VERSION) %then library 'MCBLIB' %fi;
;	  0025	library 'NMXLIB';
;	  0026	require 'RSXLIB';
;	  0478	require 'BLI:RSXEFC';
;	  1003	
;	  1004	$show(all)
;	  1005	
;	  1006	!+
;	  1007	! NMX linkages
;	  1008	!-
;	  1009	
;	  1010	linkage
;	  1011	    NMX$LKG_CCB = jsr (register = 4),
;	  1012	    NMX$LKG_DB_IOP = jsr (register = 5, register = 1),
;	  1013	    NMX$LKG_NMXID = jsr (register = 1),
;	  1014	    NMX$LKG_TYP_ENT = jsr (register = 0, register = 1),
;	  1015	    NMX$LKG_UCB_IOP = jsr (register = 5, register = 1);
;	  1016	
;	  1017	!+
;	  1018	! NMX Global Routine Name Synonyms
;	  1019	!-
;	  1020	
;	  1021	macro
;	  1022	    NMX$GET_NMX_CCB = NX_ITC %,         ! Convert IOP to CCB for NMX
;	  1023	    NMX$MAP_ENTITY_ID_TO_DB = NM_ENT %, ! Map entity-id into DB
;	  1024	    NMX$MAP_NMXID_TO_DB = NM_NMX %,     ! Map NMXID into DB
;	  1025	    NMX$RETURN_NMX_CCB = NX_RTC %;      ! Return NMX CCB
;	  1026	
;	  1027	!+
								25-Jan-1983 09:23:40	TOPS-20 Bliss-16 3(552)		    Page   2
								 4-Jan-1983 09:29:02	NETPKG:<NMX>NMXPAR.REQ.7 (1)

;	  1028	! Macros for global routines
;	  1029	!-
;	  1030	
;	  1031	macro
;	M 1032	    $NMX_GET_NMX_CCB (IOP, CCB) =
;	M 1033	        begin
;	M 1034	        %if not %declared (NMXDB)
;	M 1035	        %then
;	M 1036	        %if not %declared (MCB$GAW_PROCESS_DATA_BASE)
;	M 1037	        %then
;	M 1038	        external MCB$GAW_PROCESS_DATA_BASE : vector [2];
;	M 1039	        %fi
;	M 1040	        bind NMXDB = MCB$GAW_PROCESS_DATA_BASE [1] : ref NMXDB_BLOCK;
;	M 1041	        %fi
;	M 1042	
;	M 1043	        external routine
;	M 1044	            NMX$GET_NMX_CCB : NMX$LKG_DB_IOP;
;	M 1045	
;	M 1046	        (CCB = NMX$GET_NMX_CCB (NMXDB [NMX_BASE], IOP)) neqa 0
;	  1047	        end %,
;	M 1048	    $NMX_MAP_ENTITY_ID (TYPE, ENTITY_PTR) =
;	M 1049	        begin
;	M 1050	
;	M 1051	        external routine
;	M 1052	            NMX$MAP_ENTITY_ID_TO_DB : NMX$LKG_TYP_ENT;
;	M 1053	
;	M 1054	        NMX$MAP_ENTITY_ID_TO_DB (TYPE, ENTITY_PTR)
;	  1055	        end %,
;	M 1056	    $NMX_MAP_NMXID (NMXID) =
;	M 1057	        begin
;	M 1058	
;	M 1059	        external routine
;	M 1060	            NMX$MAP_NMXID_TO_DB : NMX$LKG_NMXID;
;	M 1061	
;	M 1062	        NMX$MAP_NMXID_TO_DB (NMXID)
;	  1063	        end %,
;	M 1064	    $NMX_RETURN_NMX_CCB (CCB) =
;	M 1065	        begin
;	M 1066	
;	M 1067	        external routine
;	M 1068	            NMX$RETURN_NMX_CCB : NMX$LKG_CCB novalue;
;	M 1069	
;	M 1070	        NMX$RETURN_NMX_CCB (CCB);
;	  1071	        end %,
;	M 1072	    $NMX_RETURN_RSX_IOP (IOP, STS, CNT) =
;	M 1073	        begin
;	M 1074	        %if not %declared (NMXDB)
;	M 1075	        %then
;	M 1076	        %if not %declared (MCB$GAW_PROCESS_DATA_BASE)
;	M 1077	        %then
;	M 1078	        external MCB$GAW_PROCESS_DATA_BASE : vector [2];
;	M 1079	        %fi
								25-Jan-1983 09:23:40	TOPS-20 Bliss-16 3(552)		    Page   3
								 4-Jan-1983 09:29:02	NETPKG:<NMX>NMXPAR.REQ.7 (1)

;	M 1080	        bind NMXDB = MCB$GAW_PROCESS_DATA_BASE [1] : ref NMXDB_BLOCK;
;	M 1081	        %fi
;	M 1082	
;	M 1083	        local
;	M 1084	            $NMX$UCB : ref block field (UCB_FIELDS);
;	M 1085	
;	M 1086	        $MCB_MCB_TO_RSX (NMXDB [NMX_BASE], $NMX$UCB);
;	M 1087	        $RSX_FINISH_IOP (.$NMX$UCB, IOP, STS, CNT);
;	M 1088	        $MCB_RSX_TO_MCB (.$NMX$UCB);
;	  1089	        end %;
								25-Jan-1983 09:23:40	TOPS-20 Bliss-16 3(552)		    Page   4
								 4-Jan-1983 09:29:02	NETPKG:<NMX>NMXPAR.REQ.7 (2)

;	  1090	!+
;	  1091	! NMX Signal Definitions
;	  1092	!-
;	  1093	DECLARE_SEVERITY (NMX, ERROR, SEVERE);
;	  1094	
;	  1095	$NMX_SEVERE (NMX$_ILE, 'Internal Logic Error')
;	  1096	$NMX_SEVERE (NMX$_NNX, 'No NMX Process')
;	  1097	$NMX_SEVERE (NMX$_IFM, 'Invalid Function Modifier')      
;	  1098	$NMX_SEVERE (NMX$_ICP, 'Invalid CCB Parameters')
;	  1099	$NMX_ERROR (NMX$_IEC, 'Invalid Event Class')
;	  1100	$NMX_SEVERE (NMX$_IID, 'Invalid NMXID')
;	  1101	
;	  1102	
;	  1103	!
;	  1104	literal
;	  1105	    true = (1 eql 1),
;	  1106	    false = (1 eql 0);
;	  1107	
;	  1108	macro
;	M 1109	     RAD50 =
;	M 1110	         %if %bliss(bliss36)
;	M 1111	         %then %rad50_10
;	M 1112	         %else %rad50_11
;	  1113	         %fi %;
;	  1114	
;	  1115	structure
;	  1116	    BYTE_VECTOR [I; N] =
;	  1117	    %bliss16([N] (BYTE_VECTOR + I)<0, 8>)
;	  1118	    %bliss36([N/4] (BYTE_VECTOR + I/4)<(I mod 4)*8, 8>)
;	  1119	    ;
;	  1120	
;	  1121	!
;	  1122	! Macro - PUTB
;	  1123	!
;	  1124	! Function - To write a 8 bit value to the next position in
;	  1125	!            a DECnet byte string.  The pointer to the byte
;	  1126	!            string is updated to point to the next free position.
;	  1127	!
;	  1128	! Parameters -
;	  1129	!
;	  1130	!    VAL        8 Bit value to write
;	  1131	!    PTR_ADR    Address of byte string pointer
;	  1132	!
;	  1133	
;	  1134	macro
;	M 1135	     PUTB (VAL,PTR_ADR) =
;	  1136	         ch$wchar_a(VAL,PTR_ADR) % ;
;	  1137	
;	  1138	!
;	  1139	! Macro - PUTW
;	  1140	!
;	  1141	! Function - To write a 16 bit value as the next two bytes in
								25-Jan-1983 09:23:40	TOPS-20 Bliss-16 3(552)		    Page   5
								 4-Jan-1983 09:29:02	NETPKG:<NMX>NMXPAR.REQ.7 (2)

;	  1142	!            a DECnet byte string.  The pointer to the byte
;	  1143	!            string is updated to point to the next free position.
;	  1144	!
;	  1145	! Parameters -
;	  1146	!
;	  1147	!    VAL_PTR    Address of 16 bit value to write
;	  1148	!    PTR_ADR    Address of byte string pointer
;	  1149	
;	  1150	macro
;	M 1151	     PUTV (VAL,PTR_ADR) =
;	M 1152	         begin
;	M 1153	         ch$wchar_a((VAL and %o'377'),PTR_ADR);
;	M 1154	         ch$wchar_a((VAL^-8 and %o'377'),PTR_ADR);
;	  1155	         end %,
;	M 1156	     PUTW (VAL_PTR,PTR_ADR) = 
;	M 1157	         begin
;	M 1158	         bind VAL_ADR = VAL_PTR;
;	M 1159	         ch$wchar_a(.VAL_ADR<0,8,0>,PTR_ADR);
;	M 1160	         ch$wchar_a(.VAL_ADR<8,8,0>,PTR_ADR);
;	  1161	         end % ;
;	  1162	
;	  1163	!
								25-Jan-1983 09:23:40	TOPS-20 Bliss-16 3(552)		    Page   6
								 4-Jan-1983 09:29:02	NETPKG:<NMX>NMXPAR.REQ.7 (3)

;	  1164	!+
;	  1165	! Additional field definitions for IOP used by NMX
;	  1166	!-
;	  1167	
;	  1168	$field                                  ! This block is based at I_PRM in IOPs
;	  1169	    NMX_OVERLAY_IOP_FIELDS =
;	  1170	        set
;	  1171	           $overlay (I_PRM)
;	L 1172	        I_NMX_BIAS = [$address],        ! Buffer Descriptor Bias
; %PRINT:				  [10,0,16,0]   (+%O'24')
;	L 1173	        I_NMX_ADDR = [$address],        ! Buffer Descriptor Offset
; %PRINT:				  [11,0,16,0]   (+%O'26')
;	L 1174	        I_NMX_CNT = [$integer],         ! Buffer length
; %PRINT:				  [12,0,16,1]   (+%O'30')
;	L 1175	        I_NMX_TYPE = [$integer],        ! NMX_TYPE_FIELD in IOP
; %PRINT:				  [13,0,16,1]   (+%O'32')
;	L 1176	        I_NMX_ENTITY = [$address],      ! Address in user space of entity
; %PRINT:				  [14,0,16,0]   (+%O'34')
;	L 1177	        I_NMX_QUALIFIER= [$address],    ! Address in user space of qualifier
; %PRINT:				  [15,0,16,0]   (+%O'36')
;	L 1178	        I_NMX_TIME = [$address],        ! Address in user space of time block
; %PRINT:				  [16,0,16,0]   (+%O'40')
;	  1179	           $continue
;	  1180	           $overlay (I_NMX_TYPE)
;	  1181	         I_NM_QUAL = [$sub_field (I_NMX_TYPE, N$QUAL)],
;	  1182		 I_NM_FUNC = [$sub_field (I_NMX_TYPE, N$FFNC)],
;	  1183		 I_NM_ENTITY = [$sub_field (I_NMX_TYPE, N$IENT)],
;	  1184		 I_NM_SELECT = [$sub_field (I_NMX_TYPE, N$SELE)]
;	  1185	           $continue
;	  1186	        tes;
;	  1187	
;	  1188	macro
;	M 1189	     NMX_IOP_BLOCK =
;	  1190	         block field(IOP_FIELDS, NMX_OVERLAY_IOP_FIELDS) %;
;	  1191	
;	  1192	!
;	  1193	! RSX I/O Function Codes
;	  1194	!
;	  1195	
;	  1196	literal
;	  1197	    IOP_KIL = 0,			! Cancel I/O
;	  1198	    IOP_WLB = 1,			! Write Logical Block
;	  1199	    IOP_RLB = 2,			! Read Logical Block
;	  1200	    IOP_ATT = 3,			! Attach Device
;	  1201	    IOP_DET = 4,			! Detach Device
;	  1202	    IOP_MOU = 5,			! Mount Volume
;	  1203	    IOP_DMO = 6,			! Dismount Volume
;	  1204	    IOP_CLO = 7,			! Network close, from RSX
;	  1205	    IOP_FNA = 10,			! Find File in Directory
;	  1206	    IOP_RNA = 11,                       ! Remove File in Directory
;	  1207	    IOP_ENA = 12,                       ! Enter File in Directory
;	  1208	    IOP_ACR = 13,                       ! Access File for Read
								25-Jan-1983 09:23:40	TOPS-20 Bliss-16 3(552)		    Page   7
								 4-Jan-1983 09:29:02	NETPKG:<NMX>NMXPAR.REQ.7 (3)

;	  1209	    IOP_ACW = 14,                       ! Access File for Write
;	  1210	    IOP_ACE = 15,                       ! Access File for Extend
;	  1211	    IOP_DAC = 16,                       ! Deaccess File
;	  1212	    IOP_RVB = 17,                       ! Read Virtual Block
;	  1213	    IOP_WVB = 18,                       ! Write Virtual Block
;	  1214	    IOP_EXT = 19,                       ! Extend File
;	  1215	    IOP_CRE = 20,                       ! Create File
;	  1216	    IOP_DEL = 21,                       ! Delete File
;	  1217	    IOP_RAT = 22,                       ! Read File Attributes
;	  1218	    IOP_WAT = 23,                       ! Write File Attributes
;	  1219	    IOP_XMT = 25,			! Transmit data
;	  1220	    IOP_RCV = 26,			! Receive data
;	  1221	    IOP_CON = 27,			! Connect processing
;	  1222	    IOP_DSC = 28,			! Disconnect processing
;	  1223	    IOP_CTL = 29;			! Control
								25-Jan-1983 09:23:40	TOPS-20 Bliss-16 3(552)		    Page   8
								 4-Jan-1983 09:29:02	NETPKG:<NMX>NMXPAR.REQ.7 (4)

;	  1224	!+
;	  1225	! Additional field definitions for CCB used by NMX
;	  1226	!-
;	  1227	
;	  1228	$field
;	  1229	     NMX_OVERLAY_CCB_FIELDS =
;	  1230	         set
;	  1231	            $overlay(C_LIX)
;	L 1232	         C_NMX_EID = [$integer],        ! Full EID specification
; %PRINT:				  [4,0,16,1]   (+%O'10')
;	  1233	            $continue
;	  1234	            $overlay (C_PRM1)
;	L 1235	         C_NMX_TYPE = [$address],       ! NMX_TYPE_FIELD in CCB
; %PRINT:				  [10,0,16,0]   (+%O'24')
;	  1236	            $continue
;	  1237	            $overlay (C_PRM3)
;	L 1238	         C_NMX_CNT = [$address],        ! Amount left in buffer
; %PRINT:				  [12,0,16,0]   (+%O'30')
;	L 1239	         C_NMX_STATE = [$address],      ! Current processing State for function
; %PRINT:				  [13,0,16,0]   (+%O'32')
;	L 1240	         C_NMX_IOP = [$address]         ! Address of IOP for this CCB
; %PRINT:				  [14,0,16,0]   (+%O'34')
;	  1241	            $continue
;	  1242	         tes;
;	  1243	
;	  1244	macro
;	M 1245	     NMX_CCB_BLOCK =
;	  1246	         block field(C_NM_FIELDS, NMX_OVERLAY_CCB_FIELDS) %;
;	  1247	
;	  1248	literal
;	  1249	       NMX_NMPAR_SIZE = NMX_NMPAR_LEN,
;	  1250	       NMX_NMPAR_ALLOCATION = NMX_NMPAR_LENGTH;
;	  1251	
;	  1252	macro
;	M 1253	     NMX_NMPAR_BLOCK =
;	  1254	         block[NMX_NMPAR_SIZE] field(NMX_NMPAR_FIELDS) %;
;	  1255	
;	  1256	!++
;	  1257	! Entity state machine descriptions
;	  1258	!--
;	  1259	$literal
;	L 1260	    ST$INI = $distinct,		        ! (not sent yet)
; %PRINT:				  1
;	L 1261	    ST$SC  = $distinct,		        ! Session Control
; %PRINT:				  2
;	L 1262	    ST$NSP = $distinct,                 ! Network Services
; %PRINT:				  3
;	L 1263	    ST$XPT = $distinct,                 ! Transport
; %PRINT:				  4
;	L 1264	    ST$OWN = $distinct,                 ! Line/circuit Owner
; %PRINT:				  5
;	L 1265	    ST$PRO = $distinct,                 ! Line/circuit Provider
								25-Jan-1983 09:23:40	TOPS-20 Bliss-16 3(552)		    Page   9
								 4-Jan-1983 09:29:02	NETPKG:<NMX>NMXPAR.REQ.7 (4)

; %PRINT:				  6
;	  1266	    ST$DON = 0,                         ! Done
;	  1267	    ST$LO = min (ST$INI, ST$SC, ST$NSP, ST$XPT, ST$OWN, ST$PRO, ST$DON),
;	  1268	    ST$HI = max (ST$INI, ST$SC, ST$NSP, ST$XPT, ST$OWN, ST$PRO, ST$DON);
;	  1269	
								25-Jan-1983 09:23:40	TOPS-20 Bliss-16 3(552)		    Page  10
								 4-Jan-1983 09:29:02	NETPKG:<NMX>NMXPAR.REQ.7 (5)

;	  1270	!
;	  1271	! Entity data base entry.
;	  1272	! This field set describes an entry in the NMX data base
;	  1273	! which contains the information to find an entity block
;	  1274	! for the supported entities (LINE, CIRCUIT, and MODULE).
;	  1275	!
;	  1276	
;	  1277	$field
;	  1278	    NMX_ENTITY_BLOCK_FIELDS =
;	  1279	        set
;	L 1280	        NMX_ENTITY_BLOCK_BIAS = [$integer],
; %PRINT:				  [0,0,16,1]   (+%O'0')
;	L 1281	        NMX_ENTITY_BLOCK_ADDRESS = [$address],
; %PRINT:				  [1,0,16,0]   (+%O'2')
;	L 1282	        NMX_ENTITY_BLOCK_ENTRIES = [$integer],
; %PRINT:				  [2,0,16,1]   (+%O'4')
;	L 1283	        NMX_ENTITY_BLOCK_LENGTH = [$address]
; %PRINT:				  [3,0,16,0]   (+%O'6')
;	  1284	        tes;
;	  1285	
;	  1286	literal
;	L 1287	    NMX_ENTITY_BLOCK_SIZE = $field_set_size,
; %PRINT:				  4 fullwords
;	L 1288	    NMX_ENTITY_BLOCK_ALLOCATION = $field_set_units;
; %PRINT:				  8 addressable units
;	  1289	
;	  1290	macro
;	M 1291	    NMX_ENTITY_BLOCK =
;	  1292	        block[NMX_ENTITY_BLOCK_SIZE] field (NMX_ENTITY_BLOCK_FIELDS) %;
;	  1293	
;	  1294	!
;	  1295	!       Event queue block
;	  1296	!
;	  1297	$field
;	  1298	    NMX_EVENT_FIELDS =
;	  1299	        set
;	L 1300	        EVENT_QUEUE = [$sub_block(2)],  ! Queue of Processed Events
; %PRINT:				  [0,0,0,0]   (+%O'0')
;	L 1301	        EVENT_QUEUE_COUNT = [$tiny_integer],    ! Number of Outstanding Events
; %PRINT:				  [2,0,8,1]   (+%O'4')
;	L 1302	        EVENT_QUEUE_LENGTH = [$tiny_integer],   ! Maximum event queue depth
; %PRINT:				  [2,8,8,1]   (+%O'5')
;	L 1303	        EVENTS_PROCESSED = [$integer],  ! Events processed
; %PRINT:				  [3,0,16,1]   (+%O'6')
;	L 1304	        EVENTS_LOST = [$integer]        ! Events lost
; %PRINT:				  [4,0,16,1]   (+%O'10')
;	  1305	        tes;
;	  1306	
;	  1307	literal
;	L 1308	    NMX_EVENT_SIZE = $field_set_size,
; %PRINT:				  5 fullwords
;	L 1309	    NMX_EVENT_ALLOCATION = $field_set_units;
								25-Jan-1983 09:23:40	TOPS-20 Bliss-16 3(552)		    Page  11
								 4-Jan-1983 09:29:02	NETPKG:<NMX>NMXPAR.REQ.7 (5)

; %PRINT:				  10 addressable units
;	  1310	
;	  1311	macro
;	M 1312	    NMX_EVENT_BLOCK =
;	  1313	        block[NMX_EVENT_SIZE] field (NMX_EVENT_FIELDS) %;
;	  1314	!
;	  1315	!       Event filter mask block
;	  1316	!
;	  1317	$field
;	  1318	    NMX_FILTER_FIELDS =
;	  1319	        set
;	L 1320	        FILTER_MASK = [$BITS (32)]      ! 32 bit mask
; INFO#158	................................1  L1:1320
; %INFORM:	space reserved for field but null field defined
; Error occurred expanding macro $XPO$FIELD, called from macro $BITS, called from source
; %PRINT:				  [0,0,0,0]   (+%O'0')
;	  1321	        tes;
;	  1322	
;	  1323	literal
;	L 1324	    NMX_FILTER_SIZE = $field_set_size,
; %PRINT:				  2 fullwords
;	L 1325	    NMX_FILTER_ALLOCATION = $field_set_units;
; %PRINT:				  4 addressable units
;	  1326	!
;	  1327	!	NMX Resident Data Base format
;	  1328	!
;	  1329	$field
;	  1330	    NMXDB_FIELDS =
;	  1331	        set
;	L 1332	        NMX_BASE = [$sub_block (0)],    ! Field for base of NMXDB
; %PRINT:				  [0,0,0,0]   (+%O'0')
;	L 1333	        NMX_TIMER_COUNT = [$byte],      ! MCB LLC Timer Service Byte
; %PRINT:				  [0,0,8,0]   (+%O'0')
;	L 1334	        NMX_TIMER_BYTE  = [$byte],      ! Reserved Byte
; %PRINT:				  [0,8,8,0]   (+%O'1')
;	L 1335	        NMX_NMX_EID = [$integer],
; %PRINT:				  [1,0,16,1]   (+%O'2')
;	  1336	            $overlay (NMX_NMX_EID)
;	L 1337	        NMX_NMX_LIN = [$byte],
; %PRINT:				  [1,0,8,0]   (+%O'2')
;	L 1338	        NMX_NMX_PIX = [$byte],          ! PIX of NMX process
; %PRINT:				  [1,8,8,0]   (+%O'3')
;	  1339	            $continue
;	L 1340	        NMX_SC_EID = [$integer],
; %PRINT:				  [2,0,16,1]   (+%O'4')
;	  1341	            $overlay (NMX_SC_EID)
;	L 1342	        NMX_SC_LIN = [$byte],
; %PRINT:				  [2,0,8,0]   (+%O'4')
;	L 1343	        NMX_SC_PIX = [$byte],           ! PIX of SC process
; %PRINT:				  [2,8,8,0]   (+%O'5')
;	  1344	            $continue
;	L 1345	        NMX_NSP_EID = [$integer],
								25-Jan-1983 09:23:40	TOPS-20 Bliss-16 3(552)		    Page  12
								 4-Jan-1983 09:29:02	NETPKG:<NMX>NMXPAR.REQ.7 (5)

; %PRINT:				  [3,0,16,1]   (+%O'6')
;	  1346	            $overlay (NMX_NSP_EID)
;	L 1347	        NMX_NSP_LIN = [$byte],
; %PRINT:				  [3,0,8,0]   (+%O'6')
;	L 1348	        NMX_NSP_PIX = [$byte],          ! PIX of NSP process
; %PRINT:				  [3,8,8,0]   (+%O'7')
;	  1349	            $continue
;	L 1350	        NMX_XPT_EID = [$integer],
; %PRINT:				  [4,0,16,1]   (+%O'10')
;	  1351	            $overlay (NMX_XPT_EID)
;	L 1352	        NMX_XPT_LIN = [$byte],
; %PRINT:				  [4,0,8,0]   (+%O'10')
;	L 1353	        NMX_XPT_PIX = [$byte],          ! PIX of XPT process
; %PRINT:				  [4,8,8,0]   (+%O'11')
;	  1354	            $continue
;	L 1355	        NMX_LINES = [$sub_block(NMX_ENTITY_BLOCK_SIZE)],
; %PRINT:				  [5,0,0,0]   (+%O'12')
;	L 1356	        NMX_CIRCUITS = [$sub_block(NMX_ENTITY_BLOCK_SIZE)],
; %PRINT:				  [9,0,0,0]   (+%O'22')
;	L 1357	        NMX_MODULES = [$sub_block(NMX_ENTITY_BLOCK_SIZE)],
; %PRINT:				  [13,0,0,0]   (+%O'32')
;	L 1358	        NMX_EXECUTOR_NUMBER = [$integer],       ! Executor node-id
; %PRINT:				  [17,0,16,1]   (+%O'42')
;	L 1359	        NMX_EXECUTOR_NAME = [$byte_string (7)],
; %PRINT:				  [18,0,0,0]   (+%O'44')
;	  1360	           $overlay (NMX_EXECUTOR_NAME)
;	L 1361	        NMX_EXECUTOR_NAME_LENGTH = [$tiny_integer],
; %PRINT:				  [18,0,8,1]   (+%O'44')
;	  1362	           $continue
;	L 1363	        NMX_NEXT_LUN_ID = [$tiny_integer],
; %PRINT:				  [21,8,8,1]   (+%O'53')
;	  1364	            $align (fullword)
;	L 1365	        NMX_LUN_QUEUE = [$sub_block(2)],   ! Queue of Open LUN Blocks
; %PRINT:				  [22,0,0,0]   (+%O'54')
;	  1366	                                           ! Event Filter Masks for classes
;	L 1367	        NMX_EVENT_FILTERS = [$sub_block(7*NMX_FILTER_SIZE)], ! [0 to 6]
; %PRINT:				  [24,0,0,0]   (+%O'60')
;	L 1368	        NMX_SYSTEM_FILTERS = [$sub_block(NMX_FILTER_SIZE)],  ! [96 to 127]
; %PRINT:				  [38,0,0,0]   (+%O'114')
;	L 1369	        NMX_EVENT_QUEUE = [$sub_block (NMX_EVENT_SIZE)],
; %PRINT:				  [40,0,0,0]   (+%O'120')
;	L 1370	        NMX_EVENT_IOPS = [$sub_block(2)],  ! Queue of IOPs awaiting Events
; %PRINT:				  [45,0,0,0]   (+%O'132')
;	L 1371	        NMX_EVENTS_SIGNALED = [$integer],  ! Number of Events Signaled
; %PRINT:				  [47,0,16,1]   (+%O'136')
;	L 1372	        NMX_EVENTS_LOGGED = [$integer],    ! Number of Events Logged
; %PRINT:				  [48,0,16,1]   (+%O'140')
;	L 1373	        NMX_NMLINI_ADDR = [$address],      ! NML initialization buffer address
; %PRINT:				  [49,0,16,0]   (+%O'142')
;	L 1374	        NMX_NMLINI_CNT = [$short_integer]  ! NML initialization buffer length
; %PRINT:				  [50,0,16,1]   (+%O'144')
;	  1375	        tes;
								25-Jan-1983 09:23:40	TOPS-20 Bliss-16 3(552)		    Page  13
								 4-Jan-1983 09:29:02	NETPKG:<NMX>NMXPAR.REQ.7 (5)

;	  1376	
;	  1377	literal
;	L 1378	       NMXDB_SIZE = $field_set_size,
; %PRINT:				  51 fullwords
;	L 1379	       NMXDB_ALLOCATION = $field_set_units,
; %PRINT:				  102 addressable units
;	  1380	       MAX_EVENT_QUEUE_DEPTH = 3;	!added here 01OCT81 used in LOG_EVENT
;	  1381	
;	  1382	macro
;	M 1383	     NMXDB_BLOCK =
;	  1384	        block[NMXDB_SIZE] field(NMXDB_FIELDS) %;
;	  1385	!
;	  1386	$field
;	  1387	      NMX_GENERAL_FIELDS =              ! These define common fields in entity blocks
;	  1388	          set
;	L 1389	          GENERAL_NAME = [$byte_string (17)],  ! The Name of this Entity in I-16 format
; %PRINT:				  [0,0,0,0]   (+%O'0')
;	  1390	              $overlay (GENERAL_NAME)
;	L 1391	          GENERAL_NAME_LENGTH = [$tiny_integer],
; %PRINT:				  [0,0,8,1]   (+%O'0')
;	  1392	              $continue
;	L 1393	          GENERAL_SYSTEM_FLAGS = [$byte],       ! Specified at Create Time
; %PRINT:				  [8,8,8,0]   (+%O'21')
;	  1394	          $align(word)
;	L 1395	          GENERAL_ID = [$integer],      ! The Logging ID for this Entity
; %PRINT:				  [9,0,16,1]   (+%O'22')
;	  1396	              $overlay (GENERAL_ID)
;	L 1397	              GENERAL_ID_INDEX = [$byte],       ! The Table Index
; %PRINT:				  [9,0,8,0]   (+%O'22')
;	L 1398	              GENERAL_ID_TYPE = [$byte],        ! The Entity Type
; %PRINT:				  [9,8,8,0]   (+%O'23')
;	  1399	              $continue
;	L 1400	          GENERAL_PROVIDER_ID = [$integer],     ! The Provider's CCB Id
; %PRINT:				  [10,0,16,1]   (+%O'24')
;	  1401	              $overlay (GENERAL_PROVIDER_ID)
;	L 1402	              GENERAL_PROVIDER_LIX = [$byte],   ! Line Index (Well,... Almost)
; %PRINT:				  [10,0,8,0]   (+%O'24')
;	L 1403	              GENERAL_PROVIDER_PIX = [$byte],   ! Process Index
; %PRINT:				  [10,8,8,0]   (+%O'25')
;	  1404	              $continue
;	L 1405	          GENERAL_OWNER_ID = [$integer],        ! The Owner's CCB Id
; %PRINT:				  [11,0,16,1]   (+%O'26')
;	  1406	              $overlay (GENERAL_OWNER_ID)
;	L 1407	              GENERAL_OWNER_LIX = [$byte],      ! Line Index (Well,... Almost)
; %PRINT:				  [11,0,8,0]   (+%O'26')
;	L 1408	              GENERAL_OWNER_PIX = [$byte]       ! Process Index
; %PRINT:				  [11,8,8,0]   (+%O'27')
;	  1409	              $continue
;	  1410	          tes;
;	  1411	
;	  1412	literal
;	L 1413	       NMX_GENERAL_SIZE = $field_set_size,
								25-Jan-1983 09:23:40	TOPS-20 Bliss-16 3(552)		    Page  14
								 4-Jan-1983 09:29:02	NETPKG:<NMX>NMXPAR.REQ.7 (5)

; %PRINT:				  12 fullwords
;	L 1414	       NMX_GENERAL_ALLOCATION = $field_set_units;
; %PRINT:				  24 addressable units
;	  1415	
;	  1416	macro
;	M 1417	     NMX_GENERAL_BLOCK =
;	  1418	         block[NMX_GENERAL_SIZE] field(NMX_GENERAL_FIELDS) %;
;	  1419	
;	  1420	!+
;	  1421	! Link service block
;	  1422	!-
;	  1423	
;	  1424	$field
;	  1425	    NMX_LINK_FIELDS =
;	  1426	        set
;	L 1427	        LINK_GENERAL = [$sub_block(NMX_GENERAL_SIZE)],
; %PRINT:				  [0,0,0,0]   (+%O'0')
;	L 1428	        LINK_USER_ID = [$integer],
; %PRINT:				  [12,0,16,1]   (+%O'30')
;	L 1429	        LINK_LUN_BLOCK = [$address],     ! Address of assigned LUN block
; %PRINT:				  [13,0,16,0]   (+%O'32')
;	L 1430	        LINK_STATE = [$tiny_integer],
; %PRINT:				  [14,0,8,1]   (+%O'34')
;	L 1431	        LINK_SUBSTATE = [$tiny_integer],
; %PRINT:				  [14,8,8,1]   (+%O'35')
;	L 1432	        LINK_SERVICE_STATE = [$tiny_integer],
; %PRINT:				  [15,0,8,1]   (+%O'36')
;	L 1433	        LINK_SERVICE_SUBSTATE = [$tiny_integer]
; %PRINT:				  [15,8,8,1]   (+%O'37')
;	  1434	        tes;
;	  1435	
;	  1436	literal
;	L 1437	    NMX_LINK_SIZE = $field_set_size,
; %PRINT:				  16 fullwords
;	L 1438	    NMX_LINK_ALLOCATION = $field_set_units;
; %PRINT:				  32 addressable units
;	  1439	
;	  1440	macro
;	M 1441	    NMX_LINK_BLOCK =
;	  1442	        block[NMX_LINK_SIZE] field (NMX_GENERAL_FIELDS, NMX_LINK_FIELDS) %;
;	  1443	
;	  1444	$literal
;	L 1445	    SS$OFF = $DISTINCT,
; %PRINT:				  1
;	  1446	    SS$PASSIVE = 0,                     ! Link service states
;	L 1447	    SS$PASSIVE_OPEN = $DISTINCT,
; %PRINT:				  2
;	L 1448	    SS$REFLECTING = $DISTINCT,
; %PRINT:				  3
;	L 1449	    SS$CLOSED = $DISTINCT,
; %PRINT:				  4
;	L 1450	    SS$OPEN = $DISTINCT,
								25-Jan-1983 09:23:40	TOPS-20 Bliss-16 3(552)		    Page  15
								 4-Jan-1983 09:29:02	NETPKG:<NMX>NMXPAR.REQ.7 (5)

; %PRINT:				  5
;	L 1451	    SS$CLOSED_REFLECTING = $DISTINCT,
; %PRINT:				  6
;	  1452	    SS$HIGH = max (SS$OFF, SS$PASSIVE, SS$PASSIVE_OPEN, SS$REFLECTING, SS$CLOSED, SS$OPEN, SS$CLOSED_REFLECTING);
;	  1453	
;	  1454	$literal
;	  1455	    SB$IDLE = 0,                        ! Line service substates
;	L 1456	    SB$REFLECTING = $DISTINCT,
; %PRINT:				  1
;	L 1457	    SB$LOADING = $DISTINCT,
; %PRINT:				  2
;	L 1458	    SB$DUMPING = $DISTINCT,
; %PRINT:				  3
;	L 1459	    SB$TRIGGERING = $DISTINCT,
; %PRINT:				  4
;	L 1460	    SB$LOOPING = $DISTINCT;
; %PRINT:				  5
;	  1461	
;	  1462	$field
;	  1463	    NMX_CIRCUIT_FIELDS =                ! These define the CIRCUIT_BLOCK
;	  1464		set
;	L 1465	        CIRCUIT_LINK = [$sub_block(NMX_LINK_SIZE)],
; %PRINT:				  [0,0,0,0]   (+%O'0')
;	  1466	        $align(word)
;	L 1467	        CIRCUIT_SERVICE_TIMER = [$integer]
; %PRINT:				  [16,0,16,1]   (+%O'40')
;	  1468		tes;
;	  1469	
;	  1470	literal
;	L 1471	        NMX_CIRCUIT_BLOCK_SIZE = $field_set_size,
; %PRINT:				  17 fullwords
;	L 1472	        NMX_CIRCUIT_BLOCK_ALLOCATION = $field_set_units;
; %PRINT:				  34 addressable units
;	  1473	
;	  1474	macro
;	M 1475	     NMX_CIRCUIT_BLOCK =
;	  1476	         block [NMX_CIRCUIT_BLOCK_SIZE] field(NMX_CIRCUIT_FIELDS, NMX_LINK_FIELDS, NMX_GENERAL_FIELDS) %;
;	  1477	!
;	  1478	$field
;	  1479	    NMX_LINE_FIELDS =                   ! These define the LINE_BLOCK
;	  1480		set
;	L 1481	        LINE_LINK = [$sub_block(NMX_LINK_SIZE)]
; %PRINT:				  [0,0,0,0]   (+%O'0')
;	  1482	        $align(word)
;	  1483		tes;
;	  1484	
;	  1485	literal
;	L 1486	        NMX_LINE_BLOCK_SIZE = $field_set_size,
; %PRINT:				  16 fullwords
;	L 1487	        NMX_LINE_BLOCK_ALLOCATION = $field_set_units;
; %PRINT:				  32 addressable units
;	  1488	
								25-Jan-1983 09:23:40	TOPS-20 Bliss-16 3(552)		    Page  16
								 4-Jan-1983 09:29:02	NETPKG:<NMX>NMXPAR.REQ.7 (5)

;	  1489	macro
;	M 1490	     NMX_LINE_BLOCK =
;	  1491	         block [NMX_LINE_BLOCK_SIZE] field(NMX_LINE_FIELDS, NMX_LINK_FIELDS, NMX_GENERAL_FIELDS) %;
;	  1492	!
;	  1493	$field
;	  1494	    NMX_MODULE_FIELDS =                ! These define the MODULE_BLOCK
;	  1495		set
;	L 1496	        MODULE_GENERAL = [$sub_block(NMX_GENERAL_SIZE)]
; %PRINT:				  [0,0,0,0]   (+%O'0')
;	  1497		tes;
;	  1498	
;	  1499	literal
;	L 1500	        NMX_MODULE_BLOCK_SIZE = $field_set_size,
; %PRINT:				  12 fullwords
;	L 1501	        NMX_MODULE_BLOCK_ALLOCATION = $field_set_units;
; %PRINT:				  24 addressable units
;	  1502	
;	  1503	macro
;	M 1504	     NMX_MODULE_BLOCK =
;	  1505	         block [NMX_MODULE_BLOCK_SIZE] field(NMX_MODULE_FIELDS, NMX_GENERAL_FIELDS) %;
;	  1506	!
;	  1507	!
;	M 1508	macro $NM$_SUC =
;	M 1509	      NM$SUC
;	  1510	      %print('Function Completed Successfuly') %;
;	  1511	!
								25-Jan-1983 09:23:40	TOPS-20 Bliss-16 3(552)		    Page  17
								 4-Jan-1983 09:29:02	NETPKG:<NMX>NMXPAR.REQ.7 (6)

;	  1512	!+
;	  1513	! NMX Queue Management Definitions
;	  1514	!-
;	  1515	
;	  1516	! Field mapping for queue header
;	  1517	$field QHD_FIELDS =
;	  1518	    set
;	L 1519	    Q_HEAD = [$address],
; %PRINT:				  [0,0,16,0]   (+%O'0')
;	L 1520	    Q_TAIL = [$address]
; %PRINT:				  [1,0,16,0]   (+%O'2')
;	  1521	    tes;
;	  1522	
;	  1523	macro
;	M 1524	    $NMX_QUEUE_INITIALIZE (QUE) =
;	M 1525	        begin
;	M 1526		bind
;	M 1527		    $NMX$QUE = QUE: block field (QHD_FIELDS);
;	M 1528	
;	M 1529	        $NMX$QUE [Q_HEAD] = 0;
;	M 1530	        $NMX$QUE [Q_TAIL] = $NMX$QUE [Q_HEAD]
;	  1531	        end %,
;	  1532	
;	M 1533	    $NMX_ENQUEUE (QUE, STR) =		! Queue STR to tail of QUE
;	M 1534		begin
;	M 1535		bind
;	M 1536		    $NMX$QUE = QUE: block field (QHD_FIELDS),
;	M 1537		    $NMX$STR = STR: block field (QHD_FIELDS);
;	M 1538	
;	M 1539		$NMX$STR [Q_HEAD] = 0;
;	M 1540		.$NMX$QUE [Q_TAIL] = $NMX$STR [Q_HEAD];
;	M 1541		$NMX$QUE [Q_TAIL] = $NMX$STR [Q_HEAD]
;	  1542		end %,
;	  1543	
;	M 1544	    $NMX_DEQUEUE (QUE, STR) =		! Dequeue from QUE to STR
;	M 1545		begin
;	M 1546	
;	M 1547	        linkage
;	M 1548	            $NMX$LKG_QUE = jsr (register = 0; register = 1) :
;	M 1549	                nopreserve (1, 2, 3) preserve (0, 4, 5) clearstack valuecbit;
;	M 1550	
;	M 1551	        external routine
;	M 1552	            $QRMVF : $NMX$LKG_QUE;
;	M 1553	
;	M 1554	        ! not C-bit = true
;	M 1555	
;	M 1556	        not $QRMVF (QUE; STR)
;	  1557		end %;
;	  1558	!
;	  1559	$show(none)
;	  1560	!
;	  1561	!	*** End of NMXPAR ***
								25-Jan-1983 09:23:40	TOPS-20 Bliss-16 3(552)		    Page  18
								 4-Jan-1983 09:29:02	NETPKG:<NMX>NMXPAR.REQ.7 (6)

;	  1562	!




;				LIBRARY STATISTICS
;
;					     -------- Symbols --------    Blocks
;	File				     Total    Loaded   Percent      Read
;
;  NETPKG:<MCB>XPORTX.L16.15		       599        42         7         0
;  NETPKG:<MCB>MCBLIB.L16.15		       372        11         2         0
;  NETPKG:<MCB>NMXLIB.L16.13		       200        18         9         0




; Information:	1
; Warnings:	0
; Errors:	0

; Run Time:	   00:17.8
; Elapsed Time:	   00:47.3
; Memory Used:	49 pages
; Library Precompilation Complete