Google
 

Trailing-Edge - PDP-10 Archives - BB-R595B-SM_11-9-85 - mcb/nmx/nmxcce.lst
There is 1 other file named nmxcce.lst in the archive. Click here to see a list.
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page   1
								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (1)

;	  0001	module NMXCCE (					! NMX CCP Common
;	  0002			ident = 'X01070'
;	  0003			) =
;	  0004	begin
;	  0005	!
;	  0006	!                    COPYRIGHT (c) 1980, 1981, 1982
;	  0007	!                    DIGITAL EQUIPMENT CORPORATION
;	  0008	!                        Maynard, Massachusetts
;	  0009	!
;	  0010	!     This software is furnished under a license and may  be  used
;	  0011	!     and copied only in accordance with the terms of such license
;	  0012	!     and with the inclusion of the above copyright notice.   This
;	  0013	!     software  or any other copies thereof may not be provided or
;	  0014	!     otherwise made available to any other person.  No  title  to
;	  0015	!     and ownership of the software is hereby transferred.
;	  0016	!
;	  0017	!     The information  in  this  software  is  subject  to  change
;	  0018	!     without  notice  and should not be construed as a commitment
;	  0019	!     by DIGITAL EQUIPMENT CORPORATION.
;	  0020	!
;	  0021	!     DIGITAL assumes no responsibility for the use or reliability
;	  0022	!     of  its  software  on  equipment  which  is  not supplied by
;	  0023	!     DIGITAL.
;	  0024	!
;	  0025	
;	  0026	!++
;	  0027	!
;	  0028	! FACILITY: MCB Network Management
;	  0029	!
;	  0030	! ABSTRACT:
;	  0031	!
;	  0032	!
;	  0033	!
;	  0034	! ENVIRONMENT: MCB V3.0
;	  0035	!
;	  0036	! AUTHOR: Scott G. Robinson	CREATION DATE: 14-May-81
;	  0037	!
;	  0038	! MODIFIED BY:
;	  0039	!
;	  0040	! 02	- Code compression.
;	  0041	! 03    - Modify CCB_STATE values and handling.
;	  0042	!         Add call to SC during SHOW CIRCUIT CHARACTERISTICS.
;	  0043	!       Alan D. Peckham, 14-Apr-82
;	  0044	! 04    - Complete rework of NM support.
;	  0045	! 05    - Fix GET_ENTITY to stop an operation if unrecognized component.
;	  0046	!         Set FORWARD_REQUEST to handle non-existent targets.
;	  0047	! 06    - Disallow SERVICE state for lines and circuits.
;	  0048	! 07    - Send node parameter #2500 to XPT.
;	  0049	!--
;	  0050	
;	  0051	!
;	  0052	! INCLUDE FILES:
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page   2
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (1)

;	  0053	!
;	  0054	
;	  0055	library 'XPORTX';
;	  0056	
;	  0057	library 'MCBLIB';
;	  0058	
;	  0059	library 'NMXPAR';
;	  0060	
;	  0061	library 'NMXLIB';
;	  0062	
;	  0063	!
;	  0064	! TABLE OF CONTENTS:
;	  0065	!
;	  0066	
;	  0067	linkage
;	  0068	    NMX_LKG_CCB = jsr (register = 4),
;	  0069	    NMX_LKG_CCB__VAL = jsr (register = 4; register = 1),
;	  0070	    NMX_LKG_DB_CCB_BLK = jsr (register = 5, register = 4, register = 2),
;	  0071	    NMX_LKG_DB_CCB_ENT = jsr (register = 5, register = 4, register = 3) :
;	  0072	        nopreserve (4);
;	  0073	
;	  0074	forward routine
;	  0075	    BADREQ : MCB_DB_CCB novalue,
;	  0076	    CKTCCP : MCB_DB_CCB novalue,
;	  0077	    CKTREQ : MCB_DB_CCB novalue,
;	  0078	    LINCCP : MCB_DB_CCB novalue,
;	  0079	    LINREQ : MCB_DB_CCB novalue,
;	  0080	    MODCCP : MCB_DB_CCB novalue,
;	  0081	    MODREQ : MCB_DB_CCB novalue,
;	  0082	    NODCCP : MCB_DB_CCB novalue,
;	  0083	    NODREQ : MCB_DB_CCB novalue,
;	  0084	    FORWARD_REQUEST : NMX_LKG_DB_CCB_ENT novalue,
;	  0085	    GET_ENTITY : NMX_LKG_DB_CCB_BLK,
;	  0086	    GET_ENTITY_LIST : NMX_LKG_DB_CCB_BLK novalue,
;	  0087	    NEXT_STATE : NMX_LKG_CCB,
;	  0088	    PARAMETER_NUMBER : NMX_LKG_CCB,
;	  0089	    REQUEST_COMPLETE : NMX_LKG_CCB novalue,
;	  0090	    SET_PARAMETER_NUMBER : NMX_LKG_CCB__VAL;
;	  0091	
;	  0092	!
;	  0093	! Literal values
;	  0094	!
;	  0095	
;	  0096	literal
;	  0097	    LINK_ON = 0,
;	  0098	    LINK_OFF = 1,
;	  0099	    LINK_SERVICE = 2,
;	  0100	    LINK_CLEARED = 3;
;	  0101	
;	  0102	!
;	  0103	! Externals
;	  0104	!
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page   3
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (1)

;	  0105	
;	  0106	external
;	  0107	    MCB$GAW_PROCESS_DATA_BASE : vector [2],
;	  0108	    MCB$GW_PROCESS_HANDLE;
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page   4
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (2)

;	  0109	global routine BADREQ (NMXDB, CCB) : MCB_DB_CCB novalue =
;	  0110	
;	  0111	!++
;	  0112	! FUNCTIONAL DESCRIPTION:
;	  0113	!
;	  0114	!    Complete an I/O function by returning NE$URC to the user for this IOP.
;	  0115	!
;	  0116	! FORMAL PARAMETERS:
;	  0117	!
;	  0118	!       RIOP - I/O Packet
;	  0119	!
;	  0120	! IMPLICIT INPUTS:
;	  0121	!
;	  0122	!	None
;	  0123	!
;	  0124	! IMPLICIT OUTPUTS:
;	  0125	!
;	  0126	!	None
;	  0127	!
;	  0128	! COMPLETION CODES:
;	  0129	!	None
;	  0130	!
;	  0131	! SIDE EFFECTS:
;	  0132	!
;	  0133	!        I/O Packet is returned to the user.
;	  0134	!--
;	  0135	
;	  0136	    begin
;	  0137	
;	  0138	    map
;	  0139	        CCB : ref NMX_CCB_BLOCK,
;	  0140		NMXDB : ref NMXDB_BLOCK;
;	  0141	
;	  0142	!
;	  0143	! Complete I/O request with IE_BAD
;	  0144	!
;	  0145	    CCB [C_STS] = $NM$ERR_URC;
;	  0146	    $NMX_RETURN_NMX_CCB (.CCB);
;	  0147	    end;					!End of BADREQ


						.TITLE	NMXCCE
						.IDENT	/X01070/

						.GLOBL	.CRDAT, .CRPIX, NX.RTC


						.SBTTL	BADREQ
000000						.PSECT	$CODE$,  RO 

000000	012764  177770  000014 		BADREQ::MOV	#-10,14(R4)			; *,*(CCB)				0145
000006	004767  000000G				JSR	PC,NX.RTC			;					0146
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page   5
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (2)

000012	000207 					RTS	PC				;					0109
; Routine Size:  6 words,	Routine Base:  $CODE$ + 0000
; Maximum stack depth per invocation:  1 word
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page   6
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (3)

;	  0148	global routine CKTCCP (NMXDB, CCB) : MCB_DB_CCB novalue =
;	  0149	
;	  0150	!++
;	  0151	! FUNCTIONAL DESCRIPTION:
;	  0152	!
;	  0153	!
;	  0154	!
;	  0155	! FORMAL PARAMETERS:
;	  0156	!
;	  0157	!	NMXDB - NMX Process Database
;	  0158	!	CCB   - The CCB to us
;	  0159	!
;	  0160	! IMPLICIT INPUTS:
;	  0161	!
;	  0162	!	None
;	  0163	!
;	  0164	! IMPLICIT OUTPUTS:
;	  0165	!
;	  0166	!	None
;	  0167	!
;	  0168	! ROUTINE VALUE:
;	  0169	!
;	  0170	!	None
;	  0171	!
;	  0172	! SIDE EFFECTS:
;	  0173	!
;	  0174	!	None
;	  0175	!--
;	  0176	
;	  0177	    begin
;	  0178	
;	  0179	    map
;	  0180		NMXDB : ref NMXDB_BLOCK,
;	  0181		CCB : ref NMX_CCB_BLOCK;
;	  0182	
;	  0183	    local
;	  0184		CKTBLK : ref NMX_CIRCUIT_BLOCK;
;	  0185	
;	  0186	!
;	  0187	! Setup our data structure pointers and process based upon the
;	  0188	! Network Management Function Code.
;	  0189	!
;	  0190	
;	  0191	    CKTBLK = GET_ENTITY (NMXDB [NMX_BASE], .CCB, NMXDB [NMX_CIRCUITS]);
;	  0192	    REQUEST_COMPLETE (.CCB);
;	  0193	    CCB [C_NMX_STATE] = NEXT_STATE (.CCB);
;	  0194	
;	  0195	    if .CCB [C_NMX_STATE] eql ST$DON
;	  0196	    then
;	  0197	        begin
;	  0198	
;	  0199	        local
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page   7
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (3)

;	  0200	            VALUE;
;	  0201	
;	  0202	        selectone SET_PARAMETER_NUMBER (.CCB; VALUE) of
;	  0203	            set
;	  0204	            [0] :                   ! Track STATE
;	  0205	                CKTBLK [LINK_STATE] = .VALUE;
;	  0206	            [otherwise] :
;	  0207	                0;
;	  0208	            tes;
;	  0209	
;	  0210	        end;
;	  0211	
;	  0212	    FORWARD_REQUEST (NMXDB [NMX_BASE], .CCB, .CKTBLK);
;	  0213	    end;					!of CKTCCP


						.SBTTL	CKTCCP
000000	010500 				CKTCCP::MOV	R5,R0				; NMXDB,*				0191
000002	062700  000022 				ADD	#22,R0
000006	010002 					MOV	R0,R2
000010	004767  000000V				JSR	PC,GET.ENTITY
000014	010002 					MOV	R0,R2				; *,CKTBLK
000016	004767  000000V				JSR	PC,REQUEST.COMPLETE		;					0192
000022	004767  000000V				JSR	PC,NEXT.STATE			;					0193
000026	010064  000032 				MOV	R0,32(R4)			; *,*(CCB)
000032	001006 					BNE	1$				;					0195
000034	004767  000000V				JSR	PC,SET.PARAMETER.NUMBER		;					0202
000040	005700 					TST	R0
000042	001002 					BNE	1$
000044	110162  000034 				MOVB	R1,34(R2)			; VALUE,*(CKTBLK)			0205
000050	010203 				1$:	MOV	R2,R3				; CKTBLK,*				0212
000052	004767  000000V				JSR	PC,FORWARD.REQUEST
000056	000207 					RTS	PC				;					0148
; Routine Size:  24 words,	Routine Base:  $CODE$ + 0014
; Maximum stack depth per invocation:  1 word
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page   8
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (4)

;	  0214	global routine CKTREQ (NMXDB, CCB) : MCB_DB_CCB  novalue =
;	  0215	
;	  0216	!++
;	  0217	! FUNCTIONAL DESCRIPTION:
;	  0218	!
;	  0219	!    Process the I/O Packet dispatched to us by NMX. Convert it to a CCB and
;	  0220	!    start processing the request.
;	  0221	!
;	  0222	! FORMAL PARAMETERS:
;	  0223	!
;	  0224	!	CCB - 
;	  0225	!
;	  0226	! IMPLICIT INPUTS:
;	  0227	!
;	  0228	!	Miscellaneous NMXDB items
;	  0229	!
;	  0230	! IMPLICIT OUTPUTS:
;	  0231	!
;	  0232	!	Miscellaneous NMXDB items
;	  0233	!
;	  0234	! ROUTINE VALUE:
;	  0235	!
;	  0236	!	None
;	  0237	!
;	  0238	! SIDE EFFECTS:
;	  0239	!
;	  0240	!	None
;	  0241	!--
;	  0242	
;	  0243	    begin
;	  0244	
;	  0245	    map
;	  0246		CCB : ref NMX_CCB_BLOCK,
;	  0247		NMXDB : ref NMXDB_BLOCK;
;	  0248	
;	  0249	!
;	  0250	!  If the function is N$FRET we process it directly.
;	  0251	!  If any other function Obtain the appropriate
;	  0252	!   CIRCUIT Block from our data base.
;	  0253	!
;	  0254	
;	  0255	    if .CCB [C_NM_FUNC] neq NMX$FNC_ret
;	  0256	    then
;	  0257	        begin
;	  0258	
;	  0259	        local
;	  0260	            CKTBLK : ref NMX_CIRCUIT_BLOCK;
;	  0261	
;	  0262	        CKTBLK = GET_ENTITY (NMXDB [NMX_BASE], .CCB, NMXDB [NMX_CIRCUITS]);
;	  0263	!
;	  0264	! We have a CIRCUIT Entity block which matches the Entity-Id. Determine
;	  0265	! processing based upon the Network Management Function Code.
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page   9
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (4)

;	  0266	!
;	  0267	        begin
;	  0268	
;	  0269	        literal
;	  0270	            STATE_SERVICE = 2;
;	  0271	
;	  0272	        local
;	  0273	            VALUE;
;	  0274	
;	  0275	        selectone SET_PARAMETER_NUMBER (.CCB; VALUE) of
;	  0276	            set
;	  0277	            [0] :                   ! Verify STATE
;	  0278	                selectone .VALUE of
;	  0279	                    set
;	  0280	                    [STATE_SERVICE] :
;	  0281	                        begin
;	  0282	                        CCB [C_STS] = $NM$ERR_IPV;
;	  0283	                        CCB [C_NMX_STATE] = ST$DON;
;	  0284	                        end;
;	  0285	                    [otherwise] :
;	  0286	                        0;
;	  0287	                    tes;
;	  0288	            [otherwise] :
;	  0289	                0;
;	  0290	            tes;
;	  0291	
;	  0292	        end;
;	  0293	        CCB [C_NMX_STATE] = NEXT_STATE (.CCB);
;	  0294	        FORWARD_REQUEST (NMXDB [NMX_BASE], .CCB, .CKTBLK);
;	  0295	        end
;	  0296	    else
;	  0297	        GET_ENTITY_LIST (NMXDB [NMX_BASE], .CCB, NMXDB [NMX_CIRCUITS]);
;	  0298	
;	  0299	    end;					!of CKTREQ


						.SBTTL	CKTREQ
000000	010500 				CKTREQ::MOV	R5,R0				; NMXDB,*				0262
000002	062700  000022 				ADD	#22,R0
000006	116401  000024 				MOVB	24(R4),R1			; *(CCB),*				0255
000012	042701  177401 				BIC	#177401,R1
000016	020127  000014 				CMP	R1,#14
000022	001430 					BEQ	2$
000024	010002 					MOV	R0,R2				;					0262
000026	004767  000000V				JSR	PC,GET.ENTITY
000032	010002 					MOV	R0,R2				; *,CKTBLK
000034	004767  000000V				JSR	PC,SET.PARAMETER.NUMBER		;					0275
000040	005700 					TST	R0
000042	001010 					BNE	1$
000044	020127  000002 				CMP	R1,#2				; VALUE,*				0278
000050	001005 					BNE	1$
000052	012764  177760  000014 			MOV	#-20,14(R4)			; *,*(CCB)				0282
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page  10
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (4)

000060	005064  000032 				CLR	32(R4)				; *(CCB)				0283
000064	004767  000000V			1$:	JSR	PC,NEXT.STATE			;					0293
000070	010064  000032 				MOV	R0,32(R4)			; *,*(CCB)
000074	010203 					MOV	R2,R3				; CKTBLK,*				0294
000076	004767  000000V				JSR	PC,FORWARD.REQUEST
000102	000207 					RTS	PC				;					0255
000104	010002 				2$:	MOV	R0,R2				;					0297
000106	004767  000000V				JSR	PC,GET.ENTITY.LIST
000112	000207 					RTS	PC				;					0214
; Routine Size:  38 words,	Routine Base:  $CODE$ + 0074
; Maximum stack depth per invocation:  1 word
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page  11
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (5)

;	  0300	global routine LINCCP (NMXDB, CCB) : MCB_DB_CCB novalue =
;	  0301	
;	  0302	!++
;	  0303	! FUNCTIONAL DESCRIPTION:
;	  0304	!
;	  0305	!    Process LINE Control Completes; Essentially terminate I/O requests.
;	  0306	!
;	  0307	! FORMAL PARAMETERS:
;	  0308	!
;	  0309	!	NMXDB - NMX Process Database
;	  0310	!	CCB   - The CCB to us
;	  0311	!
;	  0312	! IMPLICIT INPUTS:
;	  0313	!
;	  0314	!	None
;	  0315	!
;	  0316	! IMPLICIT OUTPUTS:
;	  0317	!
;	  0318	!	None
;	  0319	!
;	  0320	! ROUTINE VALUE:
;	  0321	!
;	  0322	!	None
;	  0323	!
;	  0324	! SIDE EFFECTS:
;	  0325	!
;	  0326	!	None
;	  0327	!--
;	  0328	
;	  0329	    begin
;	  0330	
;	  0331	    map
;	  0332		NMXDB : ref NMXDB_BLOCK,
;	  0333		CCB : ref NMX_CCB_BLOCK;
;	  0334	
;	  0335	    local
;	  0336		LINBLK : ref NMX_LINE_BLOCK;
;	  0337	
;	  0338	!
;	  0339	! Setup our data structure pointers and process based upon the
;	  0340	! Network Management Function Code.
;	  0341	!
;	  0342	
;	  0343	    LINBLK = GET_ENTITY (NMXDB [NMX_BASE], .CCB, NMXDB [NMX_LINES]);
;	  0344	    REQUEST_COMPLETE (.CCB);
;	  0345	    CCB [C_NMX_STATE] = NEXT_STATE (.CCB);
;	  0346	
;	  0347	    if .CCB [C_NMX_STATE] eql ST$DON
;	  0348	    then
;	  0349	        begin
;	  0350	
;	  0351	        local
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page  12
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (5)

;	  0352	            VALUE;
;	  0353	
;	  0354	        selectone SET_PARAMETER_NUMBER (.CCB; VALUE) of
;	  0355	            set
;	  0356	            [0] :                   ! Track STATE
;	  0357	                LINBLK [LINK_STATE] = .VALUE;
;	  0358	            [1120] :                ! Track SERVICE TIMER
;	  0359	                begin
;	  0360	
;	  0361	                local
;	  0362	                    CKTBLK : ref NMX_CIRCUIT_BLOCK;
;	  0363	
;	  0364	                CKTBLK = GET_ENTITY (NMXDB [NMX_BASE], .CCB, NMXDB [NMX_CIRCUITS]);
;	  0365	
;	  0366	                if .CKTBLK neqa 0
;	  0367	                then
;	  0368	                    CKTBLK [CIRCUIT_SERVICE_TIMER] = .VALUE/1000;
;	  0369	
;	  0370	                end;
;	  0371	            [otherwise] :
;	  0372	                0;
;	  0373	            tes;
;	  0374	
;	  0375	        end;
;	  0376	
;	  0377	    FORWARD_REQUEST (NMXDB [NMX_BASE], .CCB, .LINBLK);
;	  0378	    end;					!of LINCCP


						.SBTTL	LINCCP
000000	010500 				LINCCP::MOV	R5,R0				; NMXDB,*				0343
000002	062700  000012 				ADD	#12,R0
000006	010002 					MOV	R0,R2
000010	004767  000000V				JSR	PC,GET.ENTITY
000014	010003 					MOV	R0,R3				; *,LINBLK
000016	004767  000000V				JSR	PC,REQUEST.COMPLETE		;					0344
000022	004767  000000V				JSR	PC,NEXT.STATE			;					0345
000026	010064  000032 				MOV	R0,32(R4)			; *,*(CCB)
000032	001030 					BNE	2$				;					0347
000034	004767  000000V				JSR	PC,SET.PARAMETER.NUMBER		;					0354
000040	005700 					TST	R0
000042	001003 					BNE	1$
000044	110163  000034 				MOVB	R1,34(R3)			; VALUE,*(LINBLK)			0357
000050	000421 					BR	2$				;					0354
000052	020027  002140 			1$:	CMP	R0,#2140
000056	001016 					BNE	2$
000060	010500 					MOV	R5,R0				; NMXDB,*				0364
000062	062700  000022 				ADD	#22,R0
000066	010002 					MOV	R0,R2
000070	004767  000000V				JSR	PC,GET.ENTITY
000074	010002 					MOV	R0,R2				; *,CKTBLK
000076	001406 					BEQ	2$				;					0366
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page  13
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (5)

000100	005701 					TST	R1				;					0368
000102	006700 					SXT	R0
000104	071027  001750 				DIV	#1750,R0
000110	010062  000040 				MOV	R0,40(R2)			; *,*(CKTBLK)
000114	004767  000000V			2$:	JSR	PC,FORWARD.REQUEST		;					0377
000120	000207 					RTS	PC				;					0300
; Routine Size:  41 words,	Routine Base:  $CODE$ + 0210
; Maximum stack depth per invocation:  1 word
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page  14
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (6)

;	  0379	global routine LINREQ (NMXDB, CCB) : MCB_DB_CCB novalue =
;	  0380	
;	  0381	!++
;	  0382	! FUNCTIONAL DESCRIPTION:
;	  0383	!
;	  0384	!	Convert RSX I/O operation to MCB operation
;	  0385	!	on LINE Entities.
;	  0386	!
;	  0387	! FORMAL PARAMETERS:
;	  0388	!
;	  0389	!	IOP - I/O Packet
;	  0390	!
;	  0391	! IMPLICIT INPUTS:
;	  0392	!
;	  0393	!	None
;	  0394	!
;	  0395	! IMPLICIT OUTPUTS:
;	  0396	!
;	  0397	!	None
;	  0398	!
;	  0399	! ROUTINE VALUE:
;	  0400	!
;	  0401	!	None
;	  0402	!
;	  0403	! SIDE EFFECTS:
;	  0404	!
;	  0405	!	None
;	  0406	!--
;	  0407	
;	  0408	    begin
;	  0409	
;	  0410	    map
;	  0411		CCB : ref NMX_CCB_BLOCK,
;	  0412		NMXDB : ref NMXDB_BLOCK;
;	  0413	
;	  0414	!
;	  0415	!  If the function is N$FRET we process it directly.
;	  0416	!  If any other function Obtain the appropriate
;	  0417	!   LINE Block from our data base.
;	  0418	!
;	  0419	
;	  0420	    if .CCB [C_NM_FUNC] neq NMX$FNC_ret
;	  0421	    then
;	  0422	        begin
;	  0423	
;	  0424	        local
;	  0425	            LINBLK : ref NMX_LINE_BLOCK;
;	  0426	
;	  0427	        LINBLK = GET_ENTITY (NMXDB [NMX_BASE], .CCB, NMXDB [NMX_LINES]);
;	  0428	
;	  0429	!
;	  0430	! We have a LINE Entity block which matches the Entity-Id. Determine
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page  15
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (6)

;	  0431	! processing based upon the Network Management Function Code.
;	  0432	!
;	  0433	        begin
;	  0434	
;	  0435	        literal
;	  0436	            STATE_SERVICE = 2;
;	  0437	
;	  0438	        local
;	  0439	            VALUE;
;	  0440	
;	  0441	        selectone SET_PARAMETER_NUMBER (.CCB; VALUE) of
;	  0442	            set
;	  0443	            [0] :                   ! Verify STATE
;	  0444	                selectone .VALUE of
;	  0445	                    set
;	  0446	                    [STATE_SERVICE] :
;	  0447	                        begin
;	  0448	                        CCB [C_STS] = $NM$ERR_IPV;
;	  0449	                        CCB [C_NMX_STATE] = ST$DON;
;	  0450	                        end;
;	  0451	                    [otherwise] :
;	  0452	                        0;
;	  0453	                    tes;
;	  0454	            [otherwise] :
;	  0455	                0;
;	  0456	            tes;
;	  0457	
;	  0458	        end;
;	  0459	        CCB [C_NMX_STATE] = NEXT_STATE (.CCB);
;	  0460	        FORWARD_REQUEST (NMXDB [NMX_BASE], .CCB, .LINBLK);
;	  0461	        end
;	  0462	    else
;	  0463	        GET_ENTITY_LIST (NMXDB [NMX_BASE], .CCB, NMXDB [NMX_LINES]);
;	  0464	
;	  0465	    end;					!of LINREQ


						.SBTTL	LINREQ
000000	010500 				LINREQ::MOV	R5,R0				; NMXDB,*				0427
000002	062700  000012 				ADD	#12,R0
000006	116401  000024 				MOVB	24(R4),R1			; *(CCB),*				0420
000012	042701  177401 				BIC	#177401,R1
000016	020127  000014 				CMP	R1,#14
000022	001430 					BEQ	2$
000024	010002 					MOV	R0,R2				;					0427
000026	004767  000000V				JSR	PC,GET.ENTITY
000032	010002 					MOV	R0,R2				; *,LINBLK
000034	004767  000000V				JSR	PC,SET.PARAMETER.NUMBER		;					0441
000040	005700 					TST	R0
000042	001010 					BNE	1$
000044	020127  000002 				CMP	R1,#2				; VALUE,*				0444
000050	001005 					BNE	1$
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page  16
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (6)

000052	012764  177760  000014 			MOV	#-20,14(R4)			; *,*(CCB)				0448
000060	005064  000032 				CLR	32(R4)				; *(CCB)				0449
000064	004767  000000V			1$:	JSR	PC,NEXT.STATE			;					0459
000070	010064  000032 				MOV	R0,32(R4)			; *,*(CCB)
000074	010203 					MOV	R2,R3				; LINBLK,*				0460
000076	004767  000000V				JSR	PC,FORWARD.REQUEST
000102	000207 					RTS	PC				;					0420
000104	010002 				2$:	MOV	R0,R2				;					0463
000106	004767  000000V				JSR	PC,GET.ENTITY.LIST
000112	000207 					RTS	PC				;					0379
; Routine Size:  38 words,	Routine Base:  $CODE$ + 0332
; Maximum stack depth per invocation:  1 word
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page  17
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (7)

;	  0466	global routine MODCCP (NMXDB, CCB) : MCB_DB_CCB novalue =
;	  0467	
;	  0468	!++
;	  0469	! FUNCTIONAL DESCRIPTION:
;	  0470	!
;	  0471	!    Process MODULE Control Completes; Essentially terminate I/O requests.
;	  0472	!
;	  0473	! FORMAL PARAMETERS:
;	  0474	!
;	  0475	!	NMXDB - NMX Process Database
;	  0476	!	CCB   - The CCB to us
;	  0477	!
;	  0478	! IMPLICIT INPUTS:
;	  0479	!
;	  0480	!	None
;	  0481	!
;	  0482	! IMPLICIT OUTPUTS:
;	  0483	!
;	  0484	!	None
;	  0485	!
;	  0486	! ROUTINE VALUE:
;	  0487	!
;	  0488	!	None
;	  0489	!
;	  0490	! SIDE EFFECTS:
;	  0491	!
;	  0492	!	None
;	  0493	!--
;	  0494	
;	  0495	    begin
;	  0496	
;	  0497	    map
;	  0498		NMXDB : ref NMXDB_BLOCK,
;	  0499		CCB : ref NMX_CCB_BLOCK;
;	  0500	
;	  0501	    local
;	  0502		MODBLK : ref NMX_MODULE_BLOCK;
;	  0503	
;	  0504	!
;	  0505	! Setup our data structure pointers and process based upon the
;	  0506	! Network Management Function Code.
;	  0507	!
;	  0508	
;	  0509	    MODBLK = GET_ENTITY (NMXDB [NMX_BASE], .CCB, NMXDB [NMX_MODULES]);
;	  0510	    REQUEST_COMPLETE (.CCB);
;	  0511	    CCB [C_NMX_STATE] = NEXT_STATE (.CCB);
;	  0512	    FORWARD_REQUEST (NMXDB [NMX_BASE], .CCB, .MODBLK);
;	  0513	    end;					!of MODCCP


						.SBTTL	MODCCP
000000	010500 				MODCCP::MOV	R5,R0				; NMXDB,*				0509
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page  18
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (7)

000002	062700  000032 				ADD	#32,R0
000006	010002 					MOV	R0,R2
000010	004767  000000V				JSR	PC,GET.ENTITY
000014	010001 					MOV	R0,R1				; *,MODBLK
000016	004767  000000V				JSR	PC,REQUEST.COMPLETE		;					0510
000022	004767  000000V				JSR	PC,NEXT.STATE			;					0511
000026	010064  000032 				MOV	R0,32(R4)			; *,*(CCB)
000032	010103 					MOV	R1,R3				; MODBLK,*				0512
000034	004767  000000V				JSR	PC,FORWARD.REQUEST
000040	000207 					RTS	PC				;					0466
; Routine Size:  17 words,	Routine Base:  $CODE$ + 0446
; Maximum stack depth per invocation:  1 word
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page  19
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (8)

;	  0514	global routine MODREQ (NMXDB, CCB) : MCB_DB_CCB novalue =
;	  0515	
;	  0516	!++
;	  0517	! FUNCTIONAL DESCRIPTION:
;	  0518	!
;	  0519	!	Convert RSX I/O operation to MCB operation
;	  0520	!	on MODULE Entities.
;	  0521	!
;	  0522	! FORMAL PARAMETERS:
;	  0523	!
;	  0524	!	IOP - I/O Packet
;	  0525	!
;	  0526	! IMPLICIT INPUTS:
;	  0527	!
;	  0528	!	None
;	  0529	!
;	  0530	! IMPLICIT OUTPUTS:
;	  0531	!
;	  0532	!	None
;	  0533	!
;	  0534	! ROUTINE VALUE:
;	  0535	!
;	  0536	!	None
;	  0537	!
;	  0538	! SIDE EFFECTS:
;	  0539	!
;	  0540	!	None
;	  0541	!--
;	  0542	
;	  0543	    begin
;	  0544	
;	  0545	    map
;	  0546		CCB : ref NMX_CCB_BLOCK,
;	  0547		NMXDB : ref NMXDB_BLOCK;
;	  0548	
;	  0549	!
;	  0550	!  If the function is N$FRET we process it directly.
;	  0551	!  If any other function Obtain the appropriate
;	  0552	!   MODULE Block from our data base.
;	  0553	!
;	  0554	
;	  0555	    if .CCB [C_NM_FUNC] neq NMX$FNC_ret
;	  0556	    then
;	  0557	        begin
;	  0558	
;	  0559	        local
;	  0560	            MODBLK : ref NMX_MODULE_BLOCK;
;	  0561	
;	  0562	        MODBLK = GET_ENTITY (NMXDB [NMX_BASE], .CCB, NMXDB [NMX_MODULES]);
;	  0563	!
;	  0564	! We have a LINE Entity block which matches the Entity-Id. Determine
;	  0565	! processing based upon the Network Management Function Code.
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page  20
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (8)

;	  0566	!
;	  0567	        CCB [C_NMX_STATE] = NEXT_STATE (.CCB);
;	  0568	        FORWARD_REQUEST (NMXDB [NMX_BASE], .CCB, .MODBLK);
;	  0569	        end
;	  0570	    else
;	  0571	        GET_ENTITY_LIST (NMXDB [NMX_BASE], .CCB, NMXDB [NMX_MODULES]);
;	  0572	
;	  0573	    end;					!of MODREQ


						.SBTTL	MODREQ
000000	010500 				MODREQ::MOV	R5,R0				; NMXDB,*				0562
000002	062700  000032 				ADD	#32,R0
000006	116401  000024 				MOVB	24(R4),R1			; *(CCB),*				0555
000012	042701  177401 				BIC	#177401,R1
000016	020127  000014 				CMP	R1,#14
000022	001414 					BEQ	1$
000024	010002 					MOV	R0,R2				;					0562
000026	004767  000000V				JSR	PC,GET.ENTITY
000032	010001 					MOV	R0,R1				; *,MODBLK
000034	004767  000000V				JSR	PC,NEXT.STATE			;					0567
000040	010064  000032 				MOV	R0,32(R4)			; *,*(CCB)
000044	010103 					MOV	R1,R3				; MODBLK,*				0568
000046	004767  000000V				JSR	PC,FORWARD.REQUEST
000052	000207 					RTS	PC				;					0555
000054	010002 				1$:	MOV	R0,R2				;					0571
000056	004767  000000V				JSR	PC,GET.ENTITY.LIST
000062	000207 					RTS	PC				;					0514
; Routine Size:  26 words,	Routine Base:  $CODE$ + 0510
; Maximum stack depth per invocation:  1 word
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page  21
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (9)

;	  0574	global routine NODCCP (NMXDB, CCB) : MCB_DB_CCB novalue =
;	  0575	
;	  0576	!++
;	  0577	! FUNCTIONAL DESCRIPTION:
;	  0578	!
;	  0579	!	Process Control-Completes associated with NODE
;	  0580	!	Entities. Either complete the I/O request or
;	  0581	!	issue another CCB to advance state.
;	  0582	!
;	  0583	! FORMAL PARAMETERS:
;	  0584	!
;	  0585	!	NMXDB - NMX Process Database
;	  0586	!	CCB   - The CCB to us
;	  0587	!
;	  0588	! IMPLICIT INPUTS:
;	  0589	!
;	  0590	!	None
;	  0591	!
;	  0592	! IMPLICIT OUTPUTS:
;	  0593	!
;	  0594	!	None
;	  0595	!
;	  0596	! ROUTINE VALUE:
;	  0597	!
;	  0598	!	None
;	  0599	!
;	  0600	! SIDE EFFECTS:
;	  0601	!
;	  0602	!	A CCB may be sent out for another round.
;	  0603	!--
;	  0604	
;	  0605	    begin
;	  0606	
;	  0607	    map
;	  0608		NMXDB : ref NMXDB_BLOCK,
;	  0609		CCB : ref NMX_CCB_BLOCK;
;	  0610	
;	  0611	    REQUEST_COMPLETE (.CCB);
;	  0612	    CCB [C_NMX_STATE] = NEXT_STATE (.CCB);
;	  0613	
;	  0614	    if .CCB [C_NMX_STATE] eql ST$DON
;	  0615	    then
;	  0616	        begin
;	  0617	
;	  0618	        local
;	  0619	            NODE_NUMBER,
;	  0620	            VALUE;
;	  0621	
;	  0622	        begin
;	  0623	
;	  0624	        bind
;	  0625	            NMPAR = .CCB [C_NM_NMPAR] : block field (NMX_NMPAR_FIELDS);
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page  22
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (9)

;	  0626	
;	  0627	        byt$string_short (byt$ptr (NMPAR [NMX_NMPAR_ENTITY]), NODE_NUMBER);
;	  0628	        end;
;	  0629	
;	  0630	        selectone SET_PARAMETER_NUMBER (.CCB; VALUE) of
;	  0631	            set
;	  0632	            [500] :                     ! Track NAME
;	  0633	                selectone .NODE_NUMBER of
;	  0634	                    set
;	  0635	                    [0, .NMXDB [NMX_EXECUTOR_NUMBER]] :
;	  0636	                        begin
;	  0637	                        VALUE = .VALUE<0, 8> + 1;
;	P 0638	                        $MCB_MOVE_BUFFER_TO_BUFFER (.VALUE, (.CCB [C_BIAS], .CCB [C_ADDR]),
;	  0639	                                                    byt$ptr (NMXDB [NMX_EXECUTOR_NAME]));
;	  0640	                        end;
;	  0641	                    [otherwise] :
;	  0642	                        0;
;	  0643	                    tes;
;	  0644	            [502] :                     ! Track ADDRESS
;	  0645	                begin
;	  0646	                NMXDB [NMX_EXECUTOR_NUMBER] = .VALUE;
;	  0647	                %(how do we get the name ?)%
;	  0648	                end;
;	  0649	            [otherwise] :
;	  0650	                0;
;	  0651	            tes;
;	  0652	
;	  0653	        end;
;	  0654	
;	  0655	    FORWARD_REQUEST (NMXDB [NMX_BASE], .CCB, 0);
;	  0656	    end;


						.GLOBL	$MVFBF


						.SBTTL	NODCCP
000000	005746 				NODCCP::TST	-(SP)				;					0574
000002	004767  000000V				JSR	PC,REQUEST.COMPLETE		;					0611
000006	004767  000000V				JSR	PC,NEXT.STATE			;					0612
000012	010064  000032 				MOV	R0,32(R4)			; *,*(CCB)
000016	001055 					BNE	3$				;					0614
000020	016400  000026 				MOV	26(R4),R0			; *(CCB),*				0627
000024	012701  000004 				MOV	#4,R1
000030	060001 					ADD	R0,R1
000032	005211 					INC	(R1)
000034	011100 					MOV	(R1),R0
000036	116016  177777 				MOVB	-1(R0),(SP)			; *,NODE.NUMBER
000042	005211 					INC	(R1)
000044	011100 					MOV	(R1),R0
000046	116066  177777  000001 			MOVB	-1(R0),1(SP)			; *,NODE.NUMBER+1
000054	004767  000000V				JSR	PC,SET.PARAMETER.NUMBER		;					0630
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page  23
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (9)

000060	020027  000764 				CMP	R0,#764
000064	001025 					BNE	2$
000066	011602 					MOV	(SP),R2				; NODE.NUMBER,*				0633
000070	001403 					BEQ	1$
000072	020265  000042 				CMP	R2,42(R5)			; *,*(NMXDB)
000076	001025 					BNE	3$
000100	042701  177400 			1$:	BIC	#177400,R1			; *,VALUE				0637
000104	005201 					INC	R1				; VALUE
000106	010500 					MOV	R5,R0				; NMXDB,*				0639
000110	062700  000044 				ADD	#44,R0
000114	016446  000016 				MOV	16(R4),-(SP)			; *(CCB),*
000120	016446  000020 				MOV	20(R4),-(SP)			; *(CCB),*
000124	010002 					MOV	R0,R2
000126	010103 					MOV	R1,R3				; VALUE,*
000130	004767  000000G				JSR	PC,$MVFBF
000134	022626 					CMP	(SP)+,(SP)+			;					0636
000136	000405 					BR	3$				;					0633
000140	020027  000766 			2$:	CMP	R0,#766				;					0630
000144	001002 					BNE	3$
000146	010165  000042 				MOV	R1,42(R5)			; VALUE,*(NMXDB)			0646
000152	005003 				3$:	CLR	R3				;					0655
000154	004767  000000V				JSR	PC,FORWARD.REQUEST
000160	005726 					TST	(SP)+				;					0574
000162	000207 					RTS	PC
; Routine Size:  58 words,	Routine Base:  $CODE$ + 0574
; Maximum stack depth per invocation:  4 words
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page  24
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (10)

;	  0657	global routine NODREQ (NMXDB, CCB) : MCB_DB_CCB novalue =
;	  0658	
;	  0659	!++
;	  0660	! FUNCTIONAL DESCRIPTION:
;	  0661	!
;	  0662	!	Process RSX I/O Packet for the NODE Entity by setting up a CCB
;	  0663	!	and sending it to appropriate processes.  !  ! FORMAL
;	  0664	! PARAMETERS:
;	  0665	!
;	  0666	!	IOP - I/O Packet
;	  0667	!
;	  0668	! IMPLICIT INPUTS:
;	  0669	!
;	  0670	!	Miscellaneous NMX Data Base Items
;	  0671	!
;	  0672	! IMPLICIT OUTPUTS:
;	  0673	!
;	  0674	!	None
;	  0675	!
;	  0676	! ROUTINE VALUE:
;	  0677	!
;	  0678	!	None
;	  0679	!
;	  0680	! SIDE EFFECTS:
;	  0681	!
;	  0682	!	The IOP completion could be deferred until processing of
;	  0683	!  a CCB completes.
;	  0684	!--
;	  0685	
;	  0686	    begin
;	  0687	
;	  0688	    map
;	  0689		CCB : ref NMX_CCB_BLOCK,
;	  0690		NMXDB : ref NMXDB_BLOCK;
;	  0691	
;	  0692	!
;	  0693	! The IOP was successfully converted to a CCB format. Determine processing
;	  0694	! based upon the network management function code.
;	  0695	!
;	  0696	
;	  0697	    CCB [C_NMX_STATE] = NEXT_STATE (.CCB);
;	  0698	    FORWARD_REQUEST (NMXDB [NMX_BASE], .CCB, 0);
;	  0699	    end;					! of NODREQ


						.SBTTL	NODREQ
000000	004767  000000V			NODREQ::JSR	PC,NEXT.STATE			;					0697
000004	010064  000032 				MOV	R0,32(R4)			; *,*(CCB)
000010	005003 					CLR	R3				;					0698
000012	004767  000000V				JSR	PC,FORWARD.REQUEST
000016	000207 					RTS	PC				;					0657
; Routine Size:  8 words,	Routine Base:  $CODE$ + 0760
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page  25
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (10)

; Maximum stack depth per invocation:  1 word
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page  26
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (11)

;	  0700	routine FORWARD_REQUEST (NMXDB, CCB, GENBLK) : NMX_LKG_DB_CCB_ENT novalue =
;	  0701	
;	  0702	!++
;	  0703	! FUNCTIONAL DESCRIPTION:
;	  0704	!
;	  0705	!	Set up the next destination for this CCB.
;	  0706	!
;	  0707	! FORMAL PARAMETERS:
;	  0708	!
;	  0709	!	CCB   - The CCB to us
;	  0710	!
;	  0711	! IMPLICIT INPUTS:
;	  0712	!
;	  0713	!	None
;	  0714	!
;	  0715	! IMPLICIT OUTPUTS:
;	  0716	!
;	  0717	!	None
;	  0718	!
;	  0719	! ROUTINE VALUE:
;	  0720	!
;	  0721	!	None
;	  0722	!
;	  0723	! SIDE EFFECTS:
;	  0724	!
;	  0725	!	A CCB may be sent out for another round.
;	  0726	!--
;	  0727	
;	  0728	    begin
;	  0729	
;	  0730	    map
;	  0731		CCB : ref NMX_CCB_BLOCK,
;	  0732	        GENBLK : ref NMX_GENERAL_BLOCK,
;	  0733		NMXDB : ref NMXDB_BLOCK;
;	  0734	
;	  0735	    CCB [C_FNC] = FC_CTL;
;	  0736	
;	  0737	    case .CCB [C_NMX_STATE] from ST$LO to ST$HI of
;	  0738	        set
;	  0739	        [ST$SC] :
;	  0740	            CCB [C_NMX_EID] = .NMXDB [NMX_SC_EID];
;	  0741	        [ST$NSP] :
;	  0742	            CCB [C_NMX_EID] = .NMXDB [NMX_NSP_EID];
;	  0743	        [ST$XPT] :
;	  0744	            CCB [C_NMX_EID] = .NMXDB [NMX_XPT_EID];
;	  0745	        [ST$OWN] :
;	  0746	            CCB [C_NMX_EID] = .GENBLK [GENERAL_OWNER_ID];
;	  0747	        [ST$PRO] :
;	  0748	            CCB [C_NMX_EID] = .GENBLK [GENERAL_PROVIDER_ID];
;	  0749	        [inrange] :
;	  0750	            begin
;	  0751	            $NMX_RETURN_NMX_CCB (.CCB);
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page  27
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (11)

;	  0752	            return;
;	  0753	            end;
;	  0754	        tes;
;	  0755	
;	  0756	    if .CCB [C_NMX_EID] eql 0       ! If no destination
;	  0757	    then                            ! then
;	  0758	        begin                       ! send it back to ourselves.
;	  0759	        case .CCB [C_NM_FUNC] from NMX$FNC_lo to NMX$FNC_hi of
;	  0760	            set
;	  0761	            [NMX$FNC_sho, NMX$FNC_szc, NMX$FNC_ret] :
;	  0762	                CCB [C_CNT] = 0;
;	  0763	            [inrange] :
;	  0764	                0;
;	  0765	            tes;
;	  0766	        CCB [C_FNC] = FC_CCP;
;	  0767	        CCB [C_PIX] = .MCB$GW_PROCESS_HANDLE;
;	  0768	        end;
;	  0769	
;	  0770	    $MCB_SCHEDULE_CCB (.CCB);
;	  0771	    end;


						.GLOBL	$SCHED


						.SBTTL	FORWARD.REQUEST
000000	010346 				FORWARD.REQUEST:
						MOV	R3,-(SP)			;					0700
000002	112764  000010  000012 			MOVB	#10,12(R4)			; *,*(CCB)				0735
000010	016400  000032 				MOV	32(R4),R0			; *(CCB),*				0737
000014	006300 					ASL	R0
000016	066007  000000'				ADD	P.AAA(R0),PC			; Case dispatch
000022	016564  000004  000010 		1$:	MOV	4(R5),10(R4)			; *(NMXDB),*(CCB)			0740
000030	000423 					BR	7$				;					0737
000032	016564  000006  000010 		2$:	MOV	6(R5),10(R4)			; *(NMXDB),*(CCB)			0742
000040	000417 					BR	7$				;					0737
000042	016564  000010  000010 		3$:	MOV	10(R5),10(R4)			; *(NMXDB),*(CCB)			0744
000050	000413 					BR	7$				;					0737
000052	016364  000026  000010 		4$:	MOV	26(R3),10(R4)			; *(GENBLK),*(CCB)			0746
000060	000407 					BR	7$				;					0737
000062	016364  000024  000010 		5$:	MOV	24(R3),10(R4)			; *(GENBLK),*(CCB)			0748
000070	000403 					BR	7$				;					0737
000072	004767  000000G			6$:	JSR	PC,NX.RTC			;					0751
000076	000430 					BR	11$				;					0750
000100	012700  000010 			7$:	MOV	#10,R0				;					0756
000104	060400 					ADD	R4,R0				; CCB,*
000106	005710 					TST	(R0)
000110	001021 					BNE	10$
000112	116403  000024 				MOVB	24(R4),R3			; *(CCB),*				0759
000116	006203 					ASR	R3
000120	042703  177600 				BIC	#177600,R3
000124	005303 					DEC	R3
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page  28
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (11)

000126	006303 					ASL	R3
000130	066307  000016'				ADD	P.AAB(R3),PC			; Case dispatch
000134	005064  000022 			8$:	CLR	22(R4)				; *(CCB)				0762
000140	112764  000022  000012 		9$:	MOVB	#22,12(R4)			; *,*(CCB)				0766
000146	116760  000000G 000001 			MOVB	.CRPIX,1(R0)			;					0767
000154	004767  000000G			10$:	JSR	PC,$SCHED			;					0770
000160	012603 				11$:	MOV	(SP)+,R3			;					0700
000162	000207 					RTS	PC
; Routine Size:  58 words,	Routine Base:  $CODE$ + 1000
; Maximum stack depth per invocation:  2 words


000000						.PSECT	$PLIT$,  RO ,  D  

					P.AAA:						; CASE Table for FORWARD.REQUEST+0016	0737
000000	000050 					.WORD	50				; [6$]
000002	000050 					.WORD	50				; [6$]
000004	000000 					.WORD	0				; [1$]
000006	000010 					.WORD	10				; [2$]
000010	000020 					.WORD	20				; [3$]
000012	000030 					.WORD	30				; [4$]
000014	000040 					.WORD	40				; [5$]

					P.AAB:						; CASE Table for FORWARD.REQUEST+0130	0759
000016	000004 					.WORD	4				; [9$]
000020	000004 					.WORD	4				; [9$]
000022	000004 					.WORD	4				; [9$]
000024	000000 					.WORD	0				; [8$]
000026	000000 					.WORD	0				; [8$]
000030	000000 					.WORD	0				; [8$]
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page  29
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (12)

;	  0772	routine GET_ENTITY (NMXDB, CCB, ENTBLK) : NMX_LKG_DB_CCB_BLK =
;	  0773	
;	  0774	!++
;	  0775	! FUNCTIONAL DESCRIPTION:
;	  0776	!
;	  0777	!    Get the entity block for the entity in NMPAR.
;	  0778	!
;	  0779	! FORMAL PARAMETERS:
;	  0780	!
;	  0781	!    .CCB - address of the formatted CCB
;	  0782	!
;	  0783	! IMPLICIT INPUTS:
;	  0784	!
;	  0785	!    Misc GENERAL_BLOCK items
;	  0786	!
;	  0787	! IMPLICIT OUTPUTS:
;	  0788	!
;	  0789	!	None
;	  0790	!
;	  0791	! ROUTINE VALUE:
;	  0792	!
;	  0793	!       Address of entity block descriptor
;	  0794	!
;	  0795	! SIDE EFFECTS:
;	  0796	!
;	  0797	!       None
;	  0798	!
;	  0799	!--
;	  0800	
;	  0801	    begin
;	  0802	
;	  0803	    map
;	  0804		CCB : ref NMX_CCB_BLOCK,
;	  0805	        ENTBLK : ref vector,
;	  0806		NMXDB : ref NMXDB_BLOCK;
;	  0807	
;	  0808	    label
;	  0809	        LOOK_FOR_ENTITY;
;	  0810	
;	  0811	    bind
;	  0812	        NMPAR = .CCB [C_NM_NMPAR] : block field (NMX_NMPAR_FIELDS);
;	  0813	
;	  0814	LOOK_FOR_ENTITY:
;	  0815	    begin
;	  0816	
;	  0817	    local
;	  0818		ENTCNT,
;	  0819		ENTADR : ref NMX_GENERAL_BLOCK;
;	  0820	
;	  0821	    MAP$ (.ENTBLK [0]);
;	  0822	    ENTBLK = ENTBLK [1];	%(to force auto-increment)%
;	  0823	    ENTADR = .ENTBLK [0];
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page  30
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (12)

;	  0824	    ENTBLK = ENTBLK [1];	%(to force auto-increment)%
;	  0825	    if .ENTADR eqla 0 then leave LOOK_FOR_ENTITY;
;	  0826	    ENTCNT = .ENTBLK [0];
;	  0827	    ENTBLK = ENTBLK [1];	%(to force auto-increment)%
;	  0828	    if .ENTCNT eql 0 then leave LOOK_FOR_ENTITY;
;	  0829	!
;	  0830	! Search through Entity BLOCKs looking for a matching one.
;	  0831	!
;	  0832	
;	  0833	    do
;	  0834		begin
;	  0835	
;	  0836	        if ch$eql (.ENTADR [GENERAL_NAME_LENGTH] + 1,
;	  0837	                   byt$ptr (ENTADR [GENERAL_NAME]),
;	  0838	                   .ENTADR [GENERAL_NAME_LENGTH] + 1,
;	  0839	                   byt$ptr (NMPAR [NMX_NMPAR_ENTITY]))
;	  0840	        then return .ENTADR;
;	  0841	
;	  0842		ENTADR = .ENTADR + .ENTBLK [0];
;	  0843		end
;	  0844	    while (ENTCNT = .ENTCNT - 1) neq 0;
;	  0845	
;	  0846	    end;
;	  0847	    CCB [C_STS] = $NM$ERR_URC;
;	  0848	    CCB [C_NMX_STATE] = ST$DON;
;	  0849	    return 0
;	  0850	    end;					!of GET_ENTITY


						.GLOBL	KISAR6


						.SBTTL	GET.ENTITY
001164						.PSECT	$CODE$,  RO 

000000	004167  000000G			GET.ENTITY:
						JSR	R1,$SAVE5			;					0772
000004	012267  000000G				MOV	(R2)+,KISAR6			; ENTBLK,*				0821
000010	012201 					MOV	(R2)+,R1			; ENTBLK,ENTADR				0823
000012	001426 					BEQ	3$				;					0825
000014	012205 					MOV	(R2)+,R5			; ENTBLK,ENTCNT				0826
000016	001424 					BEQ	3$				;					0828
000020	111100 				1$:	MOVB	(R1),R0				; ENTADR,*				0836
000022	005200 					INC	R0
000024	010046 					MOV	R0,-(SP)			;					0839
000026	010146 					MOV	R1,-(SP)			; ENTADR,*
000030	010046 					MOV	R0,-(SP)
000032	016446  000026 				MOV	26(R4),-(SP)			; *(CCB),*
000036	062716  000004 				ADD	#4,(SP)
000042	005046 					CLR	-(SP)
000044	004767  000000G				JSR	PC,BL$EQL
000050	062706  000012 				ADD	#12,SP
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page  31
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (12)

000054	006000 					ROR	R0
000056	103002 					BCC	2$
000060	010100 					MOV	R1,R0				; ENTADR,*				0840
000062	000207 					RTS	PC
000064	061201 				2$:	ADD	(R2),R1				; ENTBLK,ENTADR				0842
000066	077524 					SOB	R5,1$				; ENTCNT,*				0844
000070	012764  177770  000014 		3$:	MOV	#-10,14(R4)			; *,*(CCB)				0847
000076	005064  000032 				CLR	32(R4)				; *(CCB)				0848
000102	005000 					CLR	R0				;					0801
000104	000207 					RTS	PC				;					0772
; Routine Size:  35 words,	Routine Base:  $CODE$ + 1164
; Maximum stack depth per invocation:  12 words
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page  32
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (13)

;	  0851	routine GET_ENTITY_LIST (NMXDB, CCB, ENTBLK) : NMX_LKG_DB_CCB_BLK novalue =
;	  0852	
;	  0853	!++
;	  0854	! FUNCTIONAL DESCRIPTION:
;	  0855	!
;	  0856	!    Return to the buffer pointed to by the CCB the entire list of
;	  0857	!    Entities in this data base.
;	  0858	!
;	  0859	! FORMAL PARAMETERS:
;	  0860	!
;	  0861	!    .CCB - address of the formatted CCB
;	  0862	!    .ENTBLK - address of entity block descriptor
;	  0863	!
;	  0864	! IMPLICIT INPUTS:
;	  0865	!
;	  0866	!    Misc GENERAL_BLOCK items
;	  0867	!
;	  0868	! IMPLICIT OUTPUTS:
;	  0869	!
;	  0870	!	None
;	  0871	!
;	  0872	! ROUTINE VALUE:
;	  0873	!
;	  0874	!       None
;	  0875	!
;	  0876	! SIDE EFFECTS:
;	  0877	!
;	  0878	!       None
;	  0879	!
;	  0880	!--
;	  0881	
;	  0882	    begin
;	  0883	
;	  0884	    map
;	  0885		CCB : ref NMX_CCB_BLOCK,
;	  0886		ENTBLK : ref NMX_ENTITY_BLOCK,
;	  0887		NMXDB : ref NMXDB_BLOCK;
;	  0888	
;	  0889	    local
;	  0890	        APR6,
;	  0891		GENBLK : ref block field (NMX_GENERAL_FIELDS, NMX_LINK_FIELDS),
;	  0892	        SELECTOR;
;	  0893	
;	  0894	    macro
;	M 0895	        $return =
;	M 0896	            begin
;	M 0897	            MAP$ (.APR6);
;	M 0898	            $NMX_RETURN_NMX_CCB (.CCB);
;	M 0899	            return
;	  0900	            end %;
;	  0901	
;	  0902	!
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page  33
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (13)

;	  0903	! Setup to loop through all Entity items
;	  0904	!
;	  0905	    SMAP$ (APR6);
;	  0906	    MAP$ (.ENTBLK [NMX_ENTITY_BLOCK_BIAS]);
;	  0907	    CCB [C_NMX_STATE] = ST$DON;
;	  0908	    CCB [C_STS] = $NM$ERR_OCM;
;	  0909	    SELECTOR = 0;
;	  0910	    if .CCB [C_NM_SELECT] eql NMX$SEL_act then SELECTOR = not .SELECTOR;
;	  0911	    GENBLK = .ENTBLK [NMX_ENTITY_BLOCK_ADDRESS];    ! Start scanning here
;	  0912	!
;	  0913	! Loop through all GENERAL_BLOCKS writing the IDs to the user buffer.
;	  0914	!
;	  0915	
;	  0916	    decru CNT from .ENTBLK [NMX_ENTITY_BLOCK_ENTRIES] to 1
;	  0917	    do
;	  0918		begin
;	  0919	
;	  0920		local
;	  0921		    LENGTH;
;	  0922	
;	  0923		LENGTH = .GENBLK [GENERAL_NAME_LENGTH];	    ! Length of string is first byte
;	  0924	
;	  0925	        if (.LENGTH neq 0) and
;	  0926	           ((.SELECTOR eql 0) or
;	  0927	            (selectone .GENBLK [LINK_STATE] of
;	  0928	                 set
;	  0929	                 [LINK_ON, LINK_SERVICE] :
;	  0930	                     true;          ! Only links in ON or SERVICE state
;	  0931	                 [otherwise] :
;	  0932	                     false;         ! otherwise pass this one by.
;	  0933	                 tes))
;	  0934		then
;	  0935		    begin
;	  0936		    LENGTH = .LENGTH + 1;	! Determine whether next ID fits
;	  0937	
;	  0938		    if (CCB [C_CNT] = .CCB [C_CNT] - .LENGTH) lss 0 then $return;
;	  0939	
;	  0940		    $MCB_MOVE_BUFFER_TO_BUFFER (.LENGTH, byt$ptr (GENBLK [GENERAL_NAME]), (.CCB [C_BIAS], .CCB [C_ADDR]));
;	  0941		    CCB [C_ADDR] = ch$plus (.CCB [C_ADDR], .LENGTH);
;	  0942	            CCB [C_NMX_CNT] = .CCB [C_NMX_CNT] + .LENGTH;
;	  0943		    end;
;	  0944	
;	  0945		GENBLK = .GENBLK + .ENTBLK [NMX_ENTITY_BLOCK_LENGTH];
;	  0946		end;
;	  0947	
;	L 0948	    CCB [C_STS] = $NM$_SUC;
; %PRINT:	Function Completed Successfuly
;	  0949	    $return;
;	  0950	    end;					!of GET_ENTITY_LIST


						.GLOBL	$MVTBF
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page  34
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (13)



						.SBTTL	GET.ENTITY.LIST
000000	004167  000000G			GET.ENTITY.LIST:
						JSR	R1,$SAVE5			;					0851
000004	005746 					TST	-(SP)
000006	010246 					MOV	R2,-(SP)
000010	016746  000000G				MOV	KISAR6,-(SP)			; *,APR6				0905
000014	011267  000000G				MOV	(R2),KISAR6			;					0906
000020	005064  000032 				CLR	32(R4)				; *(CCB)				0907
000024	012764  177774  000014 			MOV	#-4,14(R4)			; *,*(CCB)				0908
000032	005046 					CLR	-(SP)				; SELECTOR				0909
000034	016400  000024 				MOV	24(R4),R0			; *(CCB),*				0910
000040	042700  007777 				BIC	#7777,R0
000044	020027  020000 				CMP	R0,#20000
000050	001001 					BNE	1$
000052	005116 					COM	(SP)				; SELECTOR
000054	016600  000004 			1$:	MOV	4(SP),R0			;					0911
000060	016066  000002  000006 			MOV	2(R0),6(SP)			; *,GENBLK
000066	016005  000004 				MOV	4(R0),R5			; *,CNT					0916
000072	001445 					BEQ	5$
000074	117601  000006 			2$:	MOVB	@6(SP),R1			; GENBLK,LENGTH				0923
000100	001434 					BEQ	4$				;					0925
000102	005716 					TST	(SP)				; SELECTOR				0926
000104	001410 					BEQ	3$
000106	016602  000006 				MOV	6(SP),R2			; GENBLK,*				0927
000112	116200  000034 				MOVB	34(R2),R0			; *(GENBLK),*
000116	001403 					BEQ	3$
000120	020027  000002 				CMP	R0,#2
000124	001022 					BNE	4$
000126	005201 				3$:	INC	R1				; LENGTH				0936
000130	160164  000022 				SUB	R1,22(R4)			; LENGTH,*(CCB)				0938
000134	100427 					BMI	6$
000136	016446  000016 				MOV	16(R4),-(SP)			; *(CCB),*				0940
000142	016446  000020 				MOV	20(R4),-(SP)			; *(CCB),*
000146	016602  000012 				MOV	12(SP),R2			; GENBLK,*
000152	010103 					MOV	R1,R3				; LENGTH,*
000154	004767  000000G				JSR	PC,$MVTBF
000160	060164  000020 				ADD	R1,20(R4)			; LENGTH,*(CCB)				0941
000164	060164  000030 				ADD	R1,30(R4)			; LENGTH,*(CCB)				0942
000170	022626 					CMP	(SP)+,(SP)+			;					0935
000172	016600  000004 			4$:	MOV	4(SP),R0			;					0945
000176	066066  000006  000006 			ADD	6(R0),6(SP)			; *,GENBLK
000204	077545 					SOB	R5,2$				; CNT,*					0000
000206	012764  000001  000014 		5$:	MOV	#1,14(R4)			; *,*(CCB)				0948
000214	016667  000002  000000G		6$:	MOV	2(SP),KISAR6			; APR6,*
000222	004767  000000G				JSR	PC,NX.RTC
000226	062706  000010 				ADD	#10,SP				;					0851
000232	000207 					RTS	PC
; Routine Size:  78 words,	Routine Base:  $CODE$ + 1272
; Maximum stack depth per invocation:  13 words
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page  35
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (14)

;	  0951	routine NEXT_STATE (CCB) : NMX_LKG_CCB =
;	  0952	
;	  0953	!++
;	  0954	! FUNCTIONAL DESCRIPTION:
;	  0955	!
;	  0956	!	Set up the next destination for this CCB.
;	  0957	!
;	  0958	! FORMAL PARAMETERS:
;	  0959	!
;	  0960	!	CCB   - The CCB to us
;	  0961	!
;	  0962	! IMPLICIT INPUTS:
;	  0963	!
;	  0964	!	None
;	  0965	!
;	  0966	! IMPLICIT OUTPUTS:
;	  0967	!
;	  0968	!	None
;	  0969	!
;	  0970	! ROUTINE VALUE:
;	  0971	!
;	  0972	!	Next state
;	  0973	!
;	  0974	! SIDE EFFECTS:
;	  0975	!
;	  0976	!	None
;	  0977	!--
;	  0978	
;	  0979	    begin
;	  0980	
;	  0981	    map
;	  0982		CCB : ref NMX_CCB_BLOCK;
;	  0983	
;	  0984	    literal
;	  0985	        ST$BAD = ST$DON;
;	  0986	
;	  0987	    bind
;	  0988	        ENTITY = .CCB [C_NM_ENTITY],
;	  0989	        FUNCTION = .CCB [C_NM_FUNC],
;	  0990	        SELECTOR = .CCB [C_NM_SELECT],
;	  0991	        STATE = .CCB [C_NMX_STATE];
;	  0992	
;	  0993	    case ENTITY from NMX$ENT_lo to NMX$ENT_hi of
;	  0994	        set
;	  0995	        [NMX$ENT_nod] :
;	  0996	            !
;	  0997	            ! [Session Control] -> [NSP] -> [Transport] -> Done
;	  0998	            !
;	  0999	            case FUNCTION from  NMX$FNC_lo to NMX$FNC_hi of
;	  1000	                set
;	  1001	                [NMX$FNC_sho] :
;	  1002	                    case STATE from ST$LO to ST$HI of
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page  36
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (14)

;	  1003	                        set
;	  1004	                        [ST$INI] :
;	  1005	                            ST$SC;
;	  1006	                        [ST$SC] :
;	  1007	                            ST$NSP;
;	  1008	                        [ST$NSP] :
;	  1009	                            ST$XPT;
;	  1010	                        [ST$XPT] :
;	  1011	                            ST$DON;
;	  1012	                        [inrange] :
;	  1013	                            ST$BAD;
;	  1014	                        tes;
;	  1015	                [NMX$FNC_set, NMX$FNC_clr] :
;	  1016	                    case STATE from ST$LO to ST$HI of
;	  1017	                        set
;	  1018	                        [ST$INI] :
;	  1019	                            selectone PARAMETER_NUMBER (.CCB) of
;	  1020	                                set
;	  1021	                                [700 to 799] :
;	  1022	                                    ST$NSP;
;	  1023	                                [900 to 999, 2500] :
;	  1024	                                    ST$XPT;
;	  1025	                                [otherwise] :
;	  1026	                                    ST$SC;
;	  1027	                                tes;
;	  1028	                        [inrange] :
;	  1029	                            ST$DON;
;	  1030	                        tes;
;	  1031	                [NMX$FNC_zro, NMX$FNC_szc] :
;	  1032	                    case STATE from ST$LO to ST$HI of
;	  1033	                        set
;	  1034	                        [ST$INI] :
;	  1035	                            ST$NSP;
;	  1036	                        [ST$NSP] :
;	  1037	                            ST$XPT;
;	  1038	                        [ST$XPT] :
;	  1039	                            ST$DON;
;	  1040	                        [inrange] :
;	  1041	                            ST$BAD;
;	  1042	                        tes;
;	  1043	                [NMX$FNC_ret] :
;	  1044	                    case SELECTOR from NMX$SEL_lo to NMX$SEL_hi of
;	  1045	                        set
;	  1046	                        [NMX$SEL_kno] :
;	  1047	                            case STATE from ST$LO to ST$HI of
;	  1048	                                set
;	  1049	                                [ST$INI] :
;	  1050	                                    ST$XPT;
;	  1051	                                [ST$XPT] :
;	  1052	                                    ST$SC;
;	  1053	                                [ST$SC] :
;	  1054	                                    ST$DON;
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page  37
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (14)

;	  1055	                                [inrange] :
;	  1056	                                    ST$BAD;
;	  1057	                                tes;
;	  1058	                        [NMX$SEL_act] :
;	  1059	                            case STATE from ST$LO to ST$HI of
;	  1060	                                set
;	  1061	                                [ST$INI] :
;	  1062	                                    ST$XPT;
;	  1063	                                [ST$XPT] :
;	  1064	                                    ST$DON;
;	  1065	                                [inrange] :
;	  1066	                                    ST$BAD;
;	  1067	                                tes;
;	  1068	                        [NMX$SEL_lop] :
;	  1069	                            case STATE from ST$LO to ST$HI of
;	  1070	                                set
;	  1071	                                [ST$INI] :
;	  1072	                                    ST$SC;
;	  1073	                                [ST$SC] :
;	  1074	                                    ST$DON;
;	  1075	                                [inrange] :
;	  1076	                                    ST$BAD;
;	  1077	                                tes;
;	  1078	                        [inrange] :
;	  1079	                            ST$BAD;
;	  1080	                        tes;
;	  1081	                [inrange] :
;	  1082	                    ST$BAD;
;	  1083	                tes;
;	  1084	        [NMX$ENT_lin] :
;	  1085	            !
;	  1086	            ! [Owner] -> [Provider] -> Done
;	  1087	            !
;	  1088	            case FUNCTION from NMX$FNC_lo to NMX$FNC_hi of
;	  1089	                set
;	  1090	                [NMX$FNC_sho] :
;	  1091	                    case SELECTOR from NMX$SEL_lo to NMX$SEL_hi of
;	  1092	                        set
;	  1093	                        [NMX$SEL_sta, NMX$SEL_sum] :
;	  1094	                            case STATE from ST$LO to ST$HI of
;	  1095	                                set
;	  1096	                                [ST$INI] :
;	  1097	                                    ST$OWN;
;	  1098	                                [ST$OWN] :
;	  1099	                                    ST$PRO;
;	  1100	                                [ST$PRO] :
;	  1101	                                    ST$DON;
;	  1102	                                [inrange] :
;	  1103	                                    ST$BAD;
;	  1104	                                tes;
;	  1105	                        [inrange] :
;	  1106	                            case STATE from ST$LO to ST$HI of
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page  38
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (14)

;	  1107	                                set
;	  1108	                                [ST$INI] :
;	  1109	                                    ST$PRO;
;	  1110	                                [ST$PRO] :
;	  1111	                                    ST$DON;
;	  1112	                                [inrange] :
;	  1113	                                    ST$BAD;
;	  1114	                                tes;
;	  1115	                        tes;
;	  1116	                [NMX$FNC_set, NMX$FNC_clr] :
;	  1117	                    case STATE from ST$LO to ST$HI of
;	  1118	                        set
;	  1119	                        [ST$INI] :
;	  1120	                            selectone PARAMETER_NUMBER (.CCB) of
;	  1121	                                set
;	  1122	                                [0] :
;	  1123	                                    ST$OWN;
;	  1124	                                [otherwise] :
;	  1125	                                    ST$PRO;
;	  1126	                                tes;
;	  1127	                        [ST$OWN] :
;	  1128	                            ST$DON;
;	  1129	                        [ST$PRO] :
;	  1130	                            ST$DON;
;	  1131	                        [inrange] :
;	  1132	                            ST$BAD;
;	  1133	                        tes;
;	  1134	                [NMX$FNC_zro, NMX$FNC_szc] :
;	  1135	                    case STATE from ST$LO to ST$HI of
;	  1136	                        set
;	  1137	                        [ST$INI] :
;	  1138	                            ST$OWN;
;	  1139	                        [ST$OWN] :
;	  1140	                            ST$PRO;
;	  1141	                        [ST$PRO] :
;	  1142	                            ST$DON;
;	  1143	                        [inrange] :
;	  1144	                            ST$BAD;
;	  1145	                        tes;
;	  1146	                [inrange] :
;	  1147	                    ST$BAD;
;	  1148	                tes;
;	  1149	        [NMX$ENT_ckt] :
;	  1150	            !
;	  1151	            ! [Session Control] -> [Owner] -> [Provider] -> Done
;	  1152	            !
;	  1153	            case FUNCTION from NMX$FNC_lo to NMX$FNC_hi of
;	  1154	                set
;	  1155	                [NMX$FNC_sho] :
;	  1156	                    case STATE from ST$LO to ST$HI of
;	  1157	                        set
;	  1158	                        [ST$INI] :
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page  39
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (14)

;	  1159	                            ST$SC;
;	  1160	                        [ST$SC] :
;	  1161	                            ST$OWN;
;	  1162	                        [ST$OWN] :
;	  1163	                            ST$PRO;
;	  1164	                        [ST$PRO] :
;	  1165	                            ST$DON;
;	  1166	                        [inrange] :
;	  1167	                            ST$BAD;
;	  1168	                        tes;
;	  1169	                [NMX$FNC_set, NMX$FNC_clr] :
;	  1170	                    case STATE from ST$LO to ST$HI of
;	  1171	                        set
;	  1172	                        [ST$INI] :
;	  1173	                            selectone PARAMETER_NUMBER (.CCB) of
;	  1174	                                set
;	  1175	                                [1000 to 1500] :
;	  1176	                                    ST$PRO;
;	  1177	                                [otherwise] :
;	  1178	                                    ST$OWN;
;	  1179	                                tes;
;	  1180	                        [ST$OWN] :
;	  1181	                            ST$DON;
;	  1182	                        [ST$PRO] :
;	  1183	                            ST$DON;
;	  1184	                        [inrange] :
;	  1185	                            ST$BAD;
;	  1186	                        tes;
;	  1187	                [NMX$FNC_zro, NMX$FNC_szc] :
;	  1188	                    case STATE from ST$LO to ST$HI of
;	  1189	                        set
;	  1190	                        [ST$INI] :
;	  1191	                            ST$OWN;
;	  1192	                        [ST$OWN] :
;	  1193	                            ST$PRO;
;	  1194	                        [ST$PRO] :
;	  1195	                            ST$DON;
;	  1196	                        [inrange] :
;	  1197	                            ST$BAD;
;	  1198	                        tes;
;	  1199	                [inrange] :
;	  1200	                    ST$BAD;
;	  1201	                tes;
;	  1202	        [NMX$ENT_mod] :
;	  1203	            !
;	  1204	            ! [Provider] -> Done
;	  1205	            !
;	  1206	            case STATE from ST$LO to ST$HI of
;	  1207	                set
;	  1208	                [ST$INI] :
;	  1209	                    ST$PRO;
;	  1210	                [ST$PRO] :
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page  40
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (14)

;	  1211	                    ST$DON;
;	  1212	                [inrange] :
;	  1213	                    ST$BAD;
;	  1214	                tes;
;	  1215	        [inrange] :
;	  1216	            ST$BAD;
;	  1217	        tes
;	  1218	
;	  1219	    end;


						.SBTTL	NEXT.STATE
000000	004167  000000G			NEXT.STATE:
						JSR	R1,$SAVE2			;					0951
000004	012701  000024 				MOV	#24,R1				;					0988
000010	060401 					ADD	R4,R1				; CCB,*
000012	016400  000032 				MOV	32(R4),R0			; *(CCB),*				0979
000016	011102 					MOV	(R1),R2				;					0993
000020	072227  177770 				ASH	#-10,R2
000024	042702  177760 				BIC	#177760,R2
000030	005302 					DEC	R2
000032	006302 					ASL	R2
000034	066207  000032'				ADD	P.AAC(R2),PC			; Case dispatch
000040	111102 				1$:	MOVB	(R1),R2				;					0999
000042	006202 					ASR	R2
000044	042702  177600 				BIC	#177600,R2
000050	005302 					DEC	R2
000052	006302 					ASL	R2
000054	066207  000044'				ADD	P.AAD(R2),PC			; Case dispatch
000060	010001 				2$:	MOV	R0,R1				;					1002
000062	006301 					ASL	R1
000064	066107  000060'				ADD	P.AAE(R1),PC			; Case dispatch
000070	000547 				3$:	BR	29$
000072	010001 				4$:	MOV	R0,R1				;					1016
000074	006301 					ASL	R1
000076	066107  000076'				ADD	P.AAF(R1),PC			; Case dispatch
000102	004767  000000V			5$:	JSR	PC,PARAMETER.NUMBER		;					1019
000106	020027  001274 				CMP	R0,#1274
000112	002403 					BLT	6$
000114	020027  001437 				CMP	R0,#1437
000120	003416 					BLE	9$
000122	020027  001604 			6$:	CMP	R0,#1604
000126	002403 					BLT	7$
000130	020027  001747 				CMP	R0,#1747
000134	003433 					BLE	14$
000136	020027  004704 			7$:	CMP	R0,#4704
000142	001122 					BNE	29$
000144	000427 					BR	14$
000146	010001 				8$:	MOV	R0,R1				;					1032
000150	006301 					ASL	R1
000152	066107  000114'				ADD	P.AAG(R1),PC			; Case dispatch
000156	012700  000003 			9$:	MOV	#3,R0
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page  41
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (14)

000162	000207 					RTS	PC
000164	011101 				10$:	MOV	(R1),R1				;					1044
000166	072127  177764 				ASH	#-14,R1
000172	042701  177760 				BIC	#177760,R1
000176	005301 					DEC	R1
000200	006301 					ASL	R1
000202	066107  000132'				ADD	P.AAH(R1),PC			; Case dispatch
000206	006300 				11$:	ASL	R0				;					1047
000210	066007  000142'				ADD	P.AAI(R0),PC			; Case dispatch
000214	000403 				12$:	BR	14$
000216	006300 				13$:	ASL	R0				;					1059
000220	066007  000160'				ADD	P.AAJ(R0),PC			; Case dispatch
000224	012700  000004 			14$:	MOV	#4,R0
000230	000207 					RTS	PC
000232	006300 				15$:	ASL	R0				;					1069
000234	066007  000176'				ADD	P.AAK(R0),PC			; Case dispatch
000240	000463 				16$:	BR	29$
000242	111102 				17$:	MOVB	(R1),R2				;					1088
000244	006202 					ASR	R2
000246	042702  177600 				BIC	#177600,R2
000252	005302 					DEC	R2
000254	006302 					ASL	R2
000256	066207  000214'				ADD	P.AAL(R2),PC			; Case dispatch
000262	011101 				18$:	MOV	(R1),R1				;					1091
000264	072127  177764 				ASH	#-14,R1
000270	042701  177760 				BIC	#177760,R1
000274	005301 					DEC	R1
000276	006301 					ASL	R1
000300	066107  000230'				ADD	P.AAM(R1),PC			; Case dispatch
000304	006300 				19$:	ASL	R0				;					1094
000306	066007  000240'				ADD	P.AAN(R0),PC			; Case dispatch
000312	000462 				20$:	BR	33$
000314	006300 				21$:	ASL	R0				;					1106
000316	066007  000256'				ADD	P.AAO(R0),PC			; Case dispatch
000322	000464 				22$:	BR	35$
000324	010001 				23$:	MOV	R0,R1				;					1117
000326	006301 					ASL	R1
000330	066107  000274'				ADD	P.AAP(R1),PC			; Case dispatch
000334	004767  000000V			24$:	JSR	PC,PARAMETER.NUMBER		;					1120
000340	005700 					TST	R0
000342	001054 					BNE	35$
000344	000445 					BR	33$
000346	010001 				25$:	MOV	R0,R1				;					1135
000350	006301 					ASL	R1
000352	066107  000312'				ADD	P.AAQ(R1),PC			; Case dispatch
000356	000440 				26$:	BR	33$
000360	111101 				27$:	MOVB	(R1),R1				;					1153
000362	006201 					ASR	R1
000364	042701  177600 				BIC	#177600,R1
000370	005301 					DEC	R1
000372	006301 					ASL	R1
000374	066107  000330'				ADD	P.AAR(R1),PC			; Case dispatch
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page  42
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (14)

000400	010001 				28$:	MOV	R0,R1				;					1156
000402	006301 					ASL	R1
000404	066107  000344'				ADD	P.AAS(R1),PC			; Case dispatch
000410	012700  000002 			29$:	MOV	#2,R0
000414	000207 					RTS	PC
000416	010001 				30$:	MOV	R0,R1				;					1170
000420	006301 					ASL	R1
000422	066107  000362'				ADD	P.AAT(R1),PC			; Case dispatch
000426	004767  000000V			31$:	JSR	PC,PARAMETER.NUMBER		;					1173
000432	020027  001750 				CMP	R0,#1750
000436	002410 					BLT	33$
000440	020027  002734 				CMP	R0,#2734
000444	003005 					BGT	33$
000446	000412 					BR	35$
000450	010001 				32$:	MOV	R0,R1				;					1188
000452	006301 					ASL	R1
000454	066107  000400'				ADD	P.AAU(R1),PC			; Case dispatch
000460	012700  000005 			33$:	MOV	#5,R0
000464	000207 					RTS	PC
000466	006300 				34$:	ASL	R0				;					1206
000470	066007  000416'				ADD	P.AAV(R0),PC			; Case dispatch
000474	012700  000006 			35$:	MOV	#6,R0
000500	000207 					RTS	PC
000502	005000 				36$:	CLR	R0				;					0993
000504	000207 					RTS	PC				;					0951
; Routine Size:  163 words,	Routine Base:  $CODE$ + 1526
; Maximum stack depth per invocation:  4 words


000032						.PSECT	$PLIT$,  RO ,  D  

					P.AAC:						; CASE Table for NEXT.STATE+0034	0993
000032	000000 					.WORD	0				; [1$]
000034	000202 					.WORD	202				; [17$]
000036	000442 					.WORD	442				; [36$]
000040	000320 					.WORD	320				; [27$]
000042	000426 					.WORD	426				; [34$]

					P.AAD:						; CASE Table for NEXT.STATE+0054	0999
000044	000012 					.WORD	12				; [4$]
000046	000012 					.WORD	12				; [4$]
000050	000066 					.WORD	66				; [8$]
000052	000000 					.WORD	0				; [2$]
000054	000066 					.WORD	66				; [8$]
000056	000104 					.WORD	104				; [10$]

					P.AAE:						; CASE Table for NEXT.STATE+0064	1002
000060	000412 					.WORD	412				; [36$]
000062	000320 					.WORD	320				; [29$]
000064	000066 					.WORD	66				; [9$]
000066	000134 					.WORD	134				; [14$]
000070	000412 					.WORD	412				; [36$]
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page  43
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (14)

000072	000412 					.WORD	412				; [36$]
000074	000412 					.WORD	412				; [36$]

					P.AAF:						; CASE Table for NEXT.STATE+0076	1016
000076	000400 					.WORD	400				; [36$]
000100	000000 					.WORD	0				; [5$]
000102	000400 					.WORD	400				; [36$]
000104	000400 					.WORD	400				; [36$]
000106	000400 					.WORD	400				; [36$]
000110	000400 					.WORD	400				; [36$]
000112	000400 					.WORD	400				; [36$]

					P.AAG:						; CASE Table for NEXT.STATE+0152	1032
000114	000324 					.WORD	324				; [36$]
000116	000000 					.WORD	0				; [9$]
000120	000324 					.WORD	324				; [36$]
000122	000046 					.WORD	46				; [14$]
000124	000324 					.WORD	324				; [36$]
000126	000324 					.WORD	324				; [36$]
000130	000324 					.WORD	324				; [36$]

					P.AAH:						; CASE Table for NEXT.STATE+0202	1044
000132	000000 					.WORD	0				; [11$]
000134	000010 					.WORD	10				; [13$]
000136	000024 					.WORD	24				; [15$]
000140	000274 					.WORD	274				; [36$]

					P.AAI:						; CASE Table for NEXT.STATE+0210	1047
000142	000266 					.WORD	266				; [36$]
000144	000010 					.WORD	10				; [14$]
000146	000266 					.WORD	266				; [36$]
000150	000266 					.WORD	266				; [36$]
000152	000174 					.WORD	174				; [29$]
000154	000266 					.WORD	266				; [36$]
000156	000266 					.WORD	266				; [36$]

					P.AAJ:						; CASE Table for NEXT.STATE+0220	1059
000160	000256 					.WORD	256				; [36$]
000162	000000 					.WORD	0				; [14$]
000164	000256 					.WORD	256				; [36$]
000166	000256 					.WORD	256				; [36$]
000170	000256 					.WORD	256				; [36$]
000172	000256 					.WORD	256				; [36$]
000174	000256 					.WORD	256				; [36$]

					P.AAK:						; CASE Table for NEXT.STATE+0234	1069
000176	000242 					.WORD	242				; [36$]
000200	000150 					.WORD	150				; [29$]
000202	000242 					.WORD	242				; [36$]
000204	000242 					.WORD	242				; [36$]
000206	000242 					.WORD	242				; [36$]
000210	000242 					.WORD	242				; [36$]
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page  44
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (14)

000212	000242 					.WORD	242				; [36$]

					P.AAL:						; CASE Table for NEXT.STATE+0256	1088
000214	000042 					.WORD	42				; [23$]
000216	000042 					.WORD	42				; [23$]
000220	000064 					.WORD	64				; [25$]
000222	000000 					.WORD	0				; [18$]
000224	000064 					.WORD	64				; [25$]
000226	000220 					.WORD	220				; [36$]

					P.AAM:						; CASE Table for NEXT.STATE+0300	1091
000230	000000 					.WORD	0				; [19$]
000232	000000 					.WORD	0				; [19$]
000234	000010 					.WORD	10				; [21$]
000236	000010 					.WORD	10				; [21$]

					P.AAN:						; CASE Table for NEXT.STATE+0306	1094
000240	000170 					.WORD	170				; [36$]
000242	000146 					.WORD	146				; [33$]
000244	000170 					.WORD	170				; [36$]
000246	000170 					.WORD	170				; [36$]
000250	000170 					.WORD	170				; [36$]
000252	000162 					.WORD	162				; [35$]
000254	000170 					.WORD	170				; [36$]

					P.AAO:						; CASE Table for NEXT.STATE+0316	1106
000256	000160 					.WORD	160				; [36$]
000260	000152 					.WORD	152				; [35$]
000262	000160 					.WORD	160				; [36$]
000264	000160 					.WORD	160				; [36$]
000266	000160 					.WORD	160				; [36$]
000270	000160 					.WORD	160				; [36$]
000272	000160 					.WORD	160				; [36$]

					P.AAP:						; CASE Table for NEXT.STATE+0330	1117
000274	000146 					.WORD	146				; [36$]
000276	000000 					.WORD	0				; [24$]
000300	000146 					.WORD	146				; [36$]
000302	000146 					.WORD	146				; [36$]
000304	000146 					.WORD	146				; [36$]
000306	000146 					.WORD	146				; [36$]
000310	000146 					.WORD	146				; [36$]

					P.AAQ:						; CASE Table for NEXT.STATE+0352	1135
000312	000124 					.WORD	124				; [36$]
000314	000102 					.WORD	102				; [33$]
000316	000124 					.WORD	124				; [36$]
000320	000124 					.WORD	124				; [36$]
000322	000124 					.WORD	124				; [36$]
000324	000116 					.WORD	116				; [35$]
000326	000124 					.WORD	124				; [36$]
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page  45
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (14)

					P.AAR:						; CASE Table for NEXT.STATE+0374	1153
000330	000016 					.WORD	16				; [30$]
000332	000016 					.WORD	16				; [30$]
000334	000050 					.WORD	50				; [32$]
000336	000000 					.WORD	0				; [28$]
000340	000050 					.WORD	50				; [32$]
000342	000102 					.WORD	102				; [36$]

					P.AAS:						; CASE Table for NEXT.STATE+0404	1156
000344	000072 					.WORD	72				; [36$]
000346	000000 					.WORD	0				; [29$]
000350	000050 					.WORD	50				; [33$]
000352	000072 					.WORD	72				; [36$]
000354	000072 					.WORD	72				; [36$]
000356	000064 					.WORD	64				; [35$]
000360	000072 					.WORD	72				; [36$]

					P.AAT:						; CASE Table for NEXT.STATE+0422	1170
000362	000054 					.WORD	54				; [36$]
000364	000000 					.WORD	0				; [31$]
000366	000054 					.WORD	54				; [36$]
000370	000054 					.WORD	54				; [36$]
000372	000054 					.WORD	54				; [36$]
000374	000054 					.WORD	54				; [36$]
000376	000054 					.WORD	54				; [36$]

					P.AAU:						; CASE Table for NEXT.STATE+0454	1188
000400	000022 					.WORD	22				; [36$]
000402	000000 					.WORD	0				; [33$]
000404	000022 					.WORD	22				; [36$]
000406	000022 					.WORD	22				; [36$]
000410	000022 					.WORD	22				; [36$]
000412	000014 					.WORD	14				; [35$]
000414	000022 					.WORD	22				; [36$]

					P.AAV:						; CASE Table for NEXT.STATE+0470	1206
000416	000006 					.WORD	6				; [36$]
000420	000000 					.WORD	0				; [35$]
000422	000006 					.WORD	6				; [36$]
000424	000006 					.WORD	6				; [36$]
000426	000006 					.WORD	6				; [36$]
000430	000006 					.WORD	6				; [36$]
000432	000006 					.WORD	6				; [36$]
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page  46
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (15)

;	  1220	routine PARAMETER_NUMBER (CCB) : NMX_LKG_CCB =
;	  1221	
;	  1222	!++
;	  1223	! FUNCTIONAL DESCRIPTION:
;	  1224	!
;	  1225	!       Get the number of the parameter being set/cleared
;	  1226	!
;	  1227	! FORMAL PARAMETERS:
;	  1228	!
;	  1229	!	None
;	  1230	!
;	  1231	! IMPLICIT INPUTS:
;	  1232	!
;	  1233	!	None
;	  1234	!
;	  1235	! IMPLICIT OUTPUTS:
;	  1236	!
;	  1237	!	None
;	  1238	!
;	  1239	! ROUTINE VALUE:
;	  1240	!
;	  1241	!	None
;	  1242	!
;	  1243	! SIDE EFFECTS:
;	  1244	!
;	  1245	!	None
;	  1246	!--
;	  1247	
;	  1248	    begin
;	  1249	
;	  1250	    map
;	  1251		CCB : ref NMX_CCB_BLOCK;
;	  1252	
;	  1253	    stacklocal
;	  1254	        PARNUM,
;	  1255	        SAVE_MAP;
;	  1256	
;	  1257	    PARNUM = -1;
;	  1258	    SMAP$ (SAVE_MAP);
;	  1259	
;	  1260	    if .CCB [C_CNT] gtr 0
;	  1261	    then
;	  1262	        begin
;	  1263	
;	  1264	        local
;	  1265	            PTR;
;	  1266	
;	  1267	        MAP$ (.CCB [C_BIAS]);
;	  1268	        PTR = .CCB [C_ADDR];
;	  1269	        byt$string_short (PTR, PARNUM);
;	  1270	        end;
;	  1271	
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page  47
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (15)

;	  1272	    MAP$ (.SAVE_MAP);
;	  1273	    .PARNUM
;	  1274	    end;					!of PARAMETER_NUMBER


						.SBTTL	PARAMETER.NUMBER
002234						.PSECT	$CODE$,  RO 

000000	012746  177777 			PARAMETER.NUMBER:
						MOV	#-1,-(SP)			; *,PARNUM				1257
000004	016746  000000G				MOV	KISAR6,-(SP)			; *,SAVE.MAP				1258
000010	005764  000022 				TST	22(R4)				; *(CCB)				1260
000014	003411 					BLE	1$
000016	016467  000016  000000G			MOV	16(R4),KISAR6			; *(CCB),*				1267
000024	016400  000020 				MOV	20(R4),R0			; *(CCB),PTR				1268
000030	112066  000002 				MOVB	(R0)+,2(SP)			; PTR,PARNUM				1269
000034	112066  000003 				MOVB	(R0)+,3(SP)			; PTR,PARNUM+1
000040	011667  000000G			1$:	MOV	(SP),KISAR6			; SAVE.MAP,*				1272
000044	016600  000002 				MOV	2(SP),R0			; PARNUM,*				1273
000050	022626 					CMP	(SP)+,(SP)+			;					1220
000052	000207 					RTS	PC
; Routine Size:  22 words,	Routine Base:  $CODE$ + 2234
; Maximum stack depth per invocation:  2 words
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page  48
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (16)

;	  1275	routine REQUEST_COMPLETE (CCB) : NMX_LKG_CCB novalue =
;	  1276	
;	  1277	!++
;	  1278	! FUNCTIONAL DESCRIPTION:
;	  1279	!
;	  1280	!	Process function completion
;	  1281	!
;	  1282	! FORMAL PARAMETERS:
;	  1283	!
;	  1284	!	CCB   - The CCB to us
;	  1285	!
;	  1286	! IMPLICIT INPUTS:
;	  1287	!
;	  1288	!	None
;	  1289	!
;	  1290	! IMPLICIT OUTPUTS:
;	  1291	!
;	  1292	!	None
;	  1293	!
;	  1294	! ROUTINE VALUE:
;	  1295	!
;	  1296	!	None
;	  1297	!
;	  1298	! SIDE EFFECTS:
;	  1299	!
;	  1300	!	None
;	  1301	!--
;	  1302	
;	  1303	    begin
;	  1304	
;	  1305	    map
;	  1306		CCB : ref NMX_CCB_BLOCK;
;	  1307	
;	L 1308	    if .CCB [C_STS] neq $NM$_SUC then CCB [C_NMX_STATE] = ST$DON;
; %PRINT:	Function Completed Successfuly
;	  1309	
;	  1310	    !
;	  1311	    ! Update buffer ptr/cnt for returned data
;	  1312	    !
;	  1313	    case .CCB [C_NM_FUNC] from NMX$FNC_lo to NMX$FNC_hi of
;	  1314		set
;	  1315		[NMX$FNC_sho, NMX$FNC_szc] :
;	  1316		    begin
;	  1317	            bind
;	  1318	                IOP = .CCB [C_NMX_IOP] : NMX_IOP_BLOCK;
;	  1319		    CCB [C_NMX_CNT] = .CCB [C_NMX_CNT] + .CCB [C_CNT];
;	  1320		    CCB [C_ADDR] = ch$plus (.CCB [C_ADDR], .CCB [C_CNT]);
;	  1321		    CCB [C_CNT] = .IOP [I_NMX_CNT] - .CCB [C_NMX_CNT];
;	  1322		    end;
;	  1323		[NMX$FNC_ret] :
;	  1324		    begin
;	  1325	            bind
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page  49
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (16)

;	  1326	                IOP = .CCB [C_NMX_IOP] : NMX_IOP_BLOCK,
;	  1327	                NMPAR = .CCB [C_NM_NMPAR] : block field (NMX_NMPAR_FIELDS);
;	  1328	            CCB [C_NMX_CNT] = .CCB [C_CNT];
;	  1329	            NMPAR [NMX_NMPAR_RETURN_CNT] = .CCB [C_CNT];
;	  1330	            CCB [C_ADDR] = .IOP [I_NMX_ADDR];   ! TEMPORARY for XPT
;	  1331		    CCB [C_CNT] = .IOP [I_NMX_CNT];
;	  1332		    end;
;	  1333		[inrange] :
;	  1334	            0;
;	  1335		tes;
;	  1336	
;	  1337	    end;


						.SBTTL	REQUEST.COMPLETE
000000	004167  000000G			REQUEST.COMPLETE:
						JSR	R1,$SAVE2			;					1275
000004	026427  000014  000001 			CMP	14(R4),#1			; *(CCB),*				1308
000012	001402 					BEQ	1$
000014	005064  000032 				CLR	32(R4)				; *(CCB)
000020	116400  000024 			1$:	MOVB	24(R4),R0			; *(CCB),*				1313
000024	006200 					ASR	R0
000026	042700  177600 				BIC	#177600,R0
000032	005300 					DEC	R0
000034	006300 					ASL	R0
000036	066007  000434'				ADD	P.AAW(R0),PC			; Case dispatch
000042	016400  000034 			2$:	MOV	34(R4),R0			; *(CCB),*				1316
000046	012701  000022 				MOV	#22,R1				;					1319
000052	060401 					ADD	R4,R1				; CCB,*
000054	061164  000030 				ADD	(R1),30(R4)			; *,*(CCB)
000060	061164  000020 				ADD	(R1),20(R4)			; *,*(CCB)				1320
000064	016002  000030 				MOV	30(R0),R2			;					1321
000070	166402  000030 				SUB	30(R4),R2			; *(CCB),*
000074	010211 					MOV	R2,(R1)
000076	000207 					RTS	PC				;					1313
000100	016401  000034 			3$:	MOV	34(R4),R1			; *(CCB),*				1324
000104	016400  000026 				MOV	26(R4),R0			; *(CCB),*
000110	012702  000022 				MOV	#22,R2				;					1328
000114	060402 					ADD	R4,R2				; CCB,*
000116	011264  000030 				MOV	(R2),30(R4)			; *,*(CCB)
000122	011260  000004 				MOV	(R2),4(R0)			;					1329
000126	016164  000026  000020 			MOV	26(R1),20(R4)			; *,*(CCB)				1330
000134	016112  000030 				MOV	30(R1),(R2)			;					1331
000140	000207 				4$:	RTS	PC				;					1275
; Routine Size:  49 words,	Routine Base:  $CODE$ + 2310
; Maximum stack depth per invocation:  4 words


000434						.PSECT	$PLIT$,  RO ,  D  

					P.AAW:						; CASE Table for REQUEST.COMPLET+0036	1313
000434	000076 					.WORD	76				; [4$]
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page  50
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (16)

000436	000076 					.WORD	76				; [4$]
000440	000076 					.WORD	76				; [4$]
000442	000000 					.WORD	0				; [2$]
000444	000000 					.WORD	0				; [2$]
000446	000036 					.WORD	36				; [3$]
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page  51
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (17)

;	  1338	routine SET_PARAMETER_NUMBER (CCB; VALUE) : NMX_LKG_CCB__VAL =
;	  1339	
;	  1340	!++
;	  1341	! FUNCTIONAL DESCRIPTION:
;	  1342	!
;	  1343	!       Get the number of the parameter being set/cleared
;	  1344	!
;	  1345	! FORMAL PARAMETERS:
;	  1346	!
;	  1347	!	None
;	  1348	!
;	  1349	! IMPLICIT INPUTS:
;	  1350	!
;	  1351	!	None
;	  1352	!
;	  1353	! IMPLICIT OUTPUTS:
;	  1354	!
;	  1355	!	None
;	  1356	!
;	  1357	! ROUTINE VALUE:
;	  1358	!
;	  1359	!	None
;	  1360	!
;	  1361	! SIDE EFFECTS:
;	  1362	!
;	  1363	!	None
;	  1364	!--
;	  1365	
;	  1366	    begin
;	  1367	
;	  1368	    map
;	  1369		CCB : ref NMX_CCB_BLOCK;
;	  1370	
;	  1371	    macro
;	M 1372	        $return =
;	M 1373	            begin
;	M 1374	            MAP$ (.SAVE_MAP);
;	M 1375	            return .PARNUM
;	  1376	            end %;
;	  1377	
;	  1378	    stacklocal
;	  1379	        PARNUM,
;	  1380	        SAVE_MAP;
;	  1381	
;	  1382	    PARNUM = -1;
;	  1383	    SMAP$ (SAVE_MAP);
;	  1384	
;	  1385	    if .CCB [C_NM_FUNC] neq NMX$FNC_set then $return;
;	  1386	
;	L 1387	    if .CCB [C_STS] neq $NM$_SUC then $return;
; %PRINT:	Function Completed Successfuly
;	  1388	
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page  52
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (17)

;	  1389	    if .CCB [C_CNT] eql 0 then $return;
;	  1390	
;	  1391	    begin
;	  1392	
;	  1393	    local
;	  1394	        PTR;
;	  1395	
;	  1396	    MAP$ (.CCB [C_BIAS]);
;	  1397	    PTR = .CCB [C_ADDR];
;	  1398	    byt$string_short (PTR, PARNUM);
;	  1399	    byt$string_short (PTR, VALUE);
;	  1400	    end;
;	  1401	    MAP$ (.SAVE_MAP);
;	  1402	    .PARNUM
;	  1403	    end;					!of SET_PARAMETER_NUMBER


						.SBTTL	SET.PARAMETER.NUMBER
002452						.PSECT	$CODE$,  RO 

000000	162706  000006 			SET.PARAMETER.NUMBER:
						SUB	#6,SP				;					1338
000004	012766  177777  000004 			MOV	#-1,4(SP)			; *,PARNUM				1382
000012	016766  000000G 000002 			MOV	KISAR6,2(SP)			; *,SAVE.MAP				1383
000020	116400  000024 				MOVB	24(R4),R0			; *(CCB),*				1385
000024	042700  177401 				BIC	#177401,R0
000030	020027  000002 				CMP	R0,#2
000034	001023 					BNE	1$
000036	026427  000014  000001 			CMP	14(R4),#1			; *(CCB),*				1387
000044	001017 					BNE	1$
000046	005764  000022 				TST	22(R4)				; *(CCB)				1389
000052	001414 					BEQ	1$
000054	016467  000016  000000G			MOV	16(R4),KISAR6			; *(CCB),*				1396
000062	016400  000020 				MOV	20(R4),R0			; *(CCB),PTR				1397
000066	112066  000004 				MOVB	(R0)+,4(SP)			; PTR,PARNUM				1398
000072	112066  000005 				MOVB	(R0)+,5(SP)			; PTR,PARNUM+1
000076	112016 					MOVB	(R0)+,(SP)			; PTR,VALUE				1399
000100	112066  000001 				MOVB	(R0)+,1(SP)			; PTR,VALUE+1
000104	016667  000002  000000G		1$:	MOV	2(SP),KISAR6			; SAVE.MAP,*				1401
000112	016600  000004 				MOV	4(SP),R0			; PARNUM,*				1402
000116	012601 					MOV	(SP)+,R1			; VALUE,*				1338
000120	022626 					CMP	(SP)+,(SP)+
000122	000207 					RTS	PC
; Routine Size:  42 words,	Routine Base:  $CODE$ + 2452
; Maximum stack depth per invocation:  3 words


;	  1404	
;	  1405	end
;	  1406	
;	  1407	eludom
NMXCCE								25-Jan-1983 09:25:47	TOPS-20 Bliss-16 3(552)		    Page  53
X01070								 3-Jan-1983 18:44:59	NETPKG:<NMX>NMXCCE.BLI.8 (17)



;					OTS external references
						.GLOBL	$SAVE5, $SAVE2, BL$EQL


;					PSECT SUMMARY
;
;	Psect Name			Words	  Attributes
;	 $CODE$				  703	    RO ,  I  ,  LCL,  REL,  CON
;	 $PLIT$				  148	    RO ,  D  ,  LCL,  REL,  CON




;				LIBRARY STATISTICS
;
;					     -------- Symbols --------    Blocks
;	File				     Total    Loaded   Percent      Read
;
;  NETPKG:<MCB>XPORTX.L16.15		       599         3         0         0
;  NETPKG:<MCB>MCBLIB.L16.15		       372        30         8         0
;  NETPKG:<NMX>NMXPAR.L16.30		       968       136        14         0
;  NETPKG:<MCB>NMXLIB.L16.13		       200        45        22         0





;	  1408	! Local Modes:
;	  1409	! Comment Column:36
;	  1410	! Comment Start:!
;	  1411	! Mode:BLISS
;	  1412	! Auto Save Mode:2
;	  1413	! End:
; Size:		703 code + 148 data words
; Run Time:	   00:14.8
; Elapsed Time:	   00:48.6
; Memory Used:	59 pages
; Compilation Complete
APR6				 890	 897	 905
BADREQ				  75	 109*
BYT$PTR				 627	 639	 837	 839	 940
BYT$STRING_SHORT		 627	1269	1398	1399
CCB				 109	 139	 145#	 146	 148	 181	 191	 192	 193#	 195	 202	 212
				 214	 246	 255	 262	 275	 282#	 283#	 293#	 294	 297	 300	 333
				 343	 344	 345#	 347	 354	 364	 377	 379	 411	 420	 427	 441
				 448#	 449#	 459#	 460	 463	 466	 499	 509	 510	 511#	 512	 514
				 546	 555	 562	 567#	 568	 571	 574	 609	 611	 612#	 614	 625
				 630	 638	 655	 657	 689	 697#	 698	 700	 731	 735#	 737	 740#
				 742#	 744#	 746#	 748#	 751	 756	 759	 762#	 766#	 767#	 770	 772
				 804	 812	 847#	 848#	 851	 885	 898	 907#	 908#	 910	 938#	 940
				 941#	 942#	 948#	 951	 982	 988	 989	 990	 991	1019	1120	1173
				1220	1251	1260	1267	1268	1275	1306	1308#	1313	1318	1319#	1320#
				1321#	1326	1327	1328#	1329	1330#	1331#	1338	1369	1385	1387	1389
				1396	1397
CIRCUIT_SERVICE_TIMER		 368
CKTBLK				 184	 191#	 205#	 212	 260	 262#	 294	 362	 364#	 366	 368#
CKTCCP				  76	 148*
CKTREQ				  77	 214*
CNT				 916
C_ADDR				 638	 940	 941	1268	1320	1330	1397
C_BIAS				 638	 940	1267	1396
C_CNT				 762	 938	1260	1319	1320	1321	1328	1329	1331	1389
C_FNC				 735	 766
C_NMX_CNT			 942	1319	1321	1328
C_NMX_EID			 740	 742	 744	 746	 748	 756
C_NMX_IOP			1318	1326
C_NMX_STATE			 193	 195	 283	 293	 345	 347	 449	 459	 511	 567	 612	 614
				 697	 737	 848	 907	 991	1308
C_NM_ENTITY			 988
C_NM_FUNC			 255	 420	 555	 759	 989	1313	1385
C_NM_NMPAR			 625	 812	1327
C_NM_SELECT			 910	 990
C_PIX				 767
C_STS				 145	 282	 448	 847	 908	 948	1308	1387
ENTADR				 819	 823#	 825	 836	 837	 838	 840	 842#
ENTBLK				 772	 805	 821	 822#	 823	 824#	 826	 827#	 842	 851	 886	 906
				 911	 916#	 945
ENTCNT				 818	 826#	 828	 844#
ENTITY				 988#	 993
FALSE				 932
FC_CCP				 766
FC_CTL				 735
FORWARD_REQUEST			  84	 212	 294	 377	 460	 512	 568	 655	 698	 700*
FUNCTION			 989#	 999	1088	1153
GENBLK				 700	 732	 746	 748	 891	 911#	 923#	 927	 940	 945#
GENERAL_NAME			 837	 940
GENERAL_NAME_LENGTH		 836	 838	 923
GENERAL_OWNER_ID		 746
GENERAL_PROVIDER_ID		 748
GET_ENTITY_LIST			  86	 297	 463	 571	 851*
GET_ENTITY			  85	 191	 262	 343	 364	 427	 509	 562	 772*
IOP				1318#	1321	1326#	1330	1331
I_NMX_ADDR			1330
I_NMX_CNT			1321	1331
LINBLK				 336	 343#	 357#	 377	 425	 427#	 460
LINCCP				  78	 300*
LINK_CLEARED			 100#
LINK_OFF			  98#
LINK_ON				  97#	 929
LINK_SERVICE			  99#	 929
LINK_STATE			 205	 357	 927
LINREQ				  79	 379*
LOOK_FOR_ENTITY			 809	 814	 825	 828
MAP$				 821	 897	 906	1267	1272	1374	1396	1401
MCB$GAW_PROCESS_DATA_BASE	 107
MCB$GW_PROCESS_HANDLE		 108	 767
MCB_DB_CCB			  75	  76	  77	  78	  79	  80	  81	  82	  83	 109#	 148#	 214#
				 300#	 379#	 466#	 514#	 574#	 657#
MODBLK				 502	 509#	 512	 560	 562#	 568
MODCCP				  80	 466*
MODREQ				  81	 514*
NEXT_STATE			  87	 193	 293	 345	 459	 511	 567	 612	 697	 951*
NMPAR				 625#	 627	 812#	 839	1327#	1329#
NMX$ENT_CKT			1149
NMX$ENT_HI			 993
NMX$ENT_LIN			1084
NMX$ENT_LO			 993
NMX$ENT_MOD			1202
NMX$ENT_NOD			 995
NMX$FNC_CLR			1015	1116	1169
NMX$FNC_HI			 759	 999	1088	1153	1313
NMX$FNC_LO			 759	 999	1088	1153	1313
NMX$FNC_RET			 255	 420	 555	 761	1043	1323
NMX$FNC_SET			1015	1116	1169	1385
NMX$FNC_SHO			 761	1001	1090	1155	1315
NMX$FNC_SZC			 761	1031	1134	1187	1315
NMX$FNC_ZRO			1031	1134	1187
NMX$SEL_ACT			 910	1058
NMX$SEL_HI			1044	1091
NMX$SEL_KNO			1046
NMX$SEL_LOP			1068
NMX$SEL_LO			1044	1091
NMX$SEL_STA			1093
NMX$SEL_SUM			1093
NMXCCE				   1#
NMXDB_BLOCK			 140	 180	 247	 332	 412	 498	 547	 608	 690	 733	 806	 887
NMXDB				 109	 140	 148	 180	 191	 212	 214	 247	 262	 294	 297	 300
				 332	 343	 364	 377	 379	 412	 427	 460	 463	 466	 498	 509
				 512	 514	 547	 562	 568	 571	 574	 608	 635	 639	 646#	 655
				 657	 690	 698	 700	 733	 740	 742	 744	 772	 806	 851	 887
NMX_BASE			 191	 212	 262	 294	 297	 343	 364	 377	 427	 460	 463	 509
				 512	 562	 568	 571	 655	 698
NMX_CCB_BLOCK			 139	 181	 246	 333	 411	 499	 546	 609	 689	 731	 804	 885
				 982	1251	1306	1369
NMX_CIRCUITS			 191	 262	 297	 364
NMX_CIRCUIT_BLOCK		 184	 260	 362
NMX_ENTITY_BLOCK		 886
NMX_ENTITY_BLOCK_ADDRESS	 911
NMX_ENTITY_BLOCK_BIAS		 906
NMX_ENTITY_BLOCK_ENTRIES	 916
NMX_ENTITY_BLOCK_LENGTH		 945
NMX_EXECUTOR_NAME		 639
NMX_EXECUTOR_NUMBER		 635	 646
NMX_GENERAL_BLOCK		 732	 819
NMX_GENERAL_FIELDS		 891
NMX_IOP_BLOCK			1318	1326
NMX_LINES			 343	 427	 463
NMX_LINE_BLOCK			 336	 425
NMX_LINK_FIELDS			 891
NMX_LKG_CCB			  68#	  87	  88	  89	 951#	1220#	1275#
NMX_LKG_CCB__VAL		  69#	  90	1338#
NMX_LKG_DB_CCB_BLK		  70#	  85	  86	 772#	 851#
NMX_LKG_DB_CCB_ENT		  71#	  84	 700#
NMX_MODULES			 509	 562	 571
NMX_MODULE_BLOCK		 502	 560
NMX_NMPAR_ENTITY		 627	 839
NMX_NMPAR_FIELDS		 625	 812	1327
NMX_NMPAR_RETURN_CNT		1329
NMX_NSP_EID			 742
NMX_SC_EID			 740
NMX_XPT_EID			 744
NODCCP				  82	 574*
NODE_NUMBER			 619	 627	 633
NODREQ				  83	 657*
PARAMETER_NUMBER		  88	1019	1120	1173	1220*
PARNUM				1254	1257#	1269	1273	1375	1379	1382#	1398	1402
PTR				1265	1268#	1269	1394	1397#	1398	1399
REQUEST_COMPLETE		  89	 192	 344	 510	 611	1275*
SAVE_MAP			1255	1258	1272	1374	1380	1383	1401
SELECTOR			 892	 909#	 910#	 926	 990#	1044	1091
SET_PARAMETER_NUMBER		  90	 202	 275	 354	 441	 630	1338*
SMAP$				 905	1258	1383
ST$BAD				 985#	1013	1041	1056	1066	1076	1079	1082	1103	1113	1132	1144
				1147	1167	1185	1197	1200	1213	1216
ST$DON				 195	 283	 347	 449	 614	 848	 907	 985	1011	1029	1039	1054
				1064	1074	1101	1111	1128	1130	1142	1165	1181	1183	1195	1211
				1308
ST$HI				 737	1002	1016	1032	1047	1059	1069	1094	1106	1117	1135	1156
				1170	1188	1206
ST$INI				1004	1018	1034	1049	1061	1071	1096	1108	1119	1137	1158	1172
				1190	1208
ST$LO				 737	1002	1016	1032	1047	1059	1069	1094	1106	1117	1135	1156
				1170	1188	1206
ST$NSP				 741	1007	1008	1022	1035	1036
ST$OWN				 745	1097	1098	1123	1127	1138	1139	1161	1162	1178	1180	1191
				1192
ST$PRO				 747	1099	1100	1109	1110	1125	1129	1140	1141	1163	1164	1176
				1182	1193	1194	1209	1210
ST$SC				 739	1005	1006	1026	1052	1053	1072	1073	1159	1160
ST$XPT				 743	1009	1010	1024	1037	1038	1050	1051	1062	1063
STATE_SERVICE			 270#	 280	 436#	 446
STATE				 991#	1002	1016	1032	1047	1059	1069	1094	1106	1117	1135	1156
				1170	1188	1206
TRUE				 930
VALUE				 200	 202	 205	 273	 275	 278	 352	 354	 357	 368	 439	 441
				 444	 620	 630	 637#	 638	 646	1338	1399
$MCB_MOVE_BUFFER_TO_BUFFER	 638	 940
$MCB_SCHEDULE_CCB		 770
$NM$ERR_IPV			 282	 448
$NM$ERR_OCM			 908
$NM$ERR_URC			 145	 847
$NM$_SUC			 948	1308	1387
$NMX_RETURN_NMX_CCB		 146	 751	 898
$RETURN				 895#	 938	 949	1372#	1385	1387	1389