Google
 

Trailing-Edge - PDP-10 Archives - BB-R595B-SM_11-9-85 - mcb/nsp/ns2.lst
There is 1 other file named ns2.lst in the archive. Click here to see a list.
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page   1
								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (1)

;	  0001	module NS2 (	
;	  0002			ident = 'X01150'
;	  0003			) =
;	  0004	begin
;	  0005	
;	  0006	!
;	  0007	!                    COPYRIGHT (c) 1980, 1981, 1982
;	  0008	!                    DIGITAL EQUIPMENT CORPORATION
;	  0009	!                        Maynard, Massachusetts
;	  0010	!
;	  0011	!     This software is furnished under a license and may  be  used
;	  0012	!     and copied only in accordance with the terms of such license
;	  0013	!     and with the inclusion of the above copyright notice.   This
;	  0014	!     software  or any other copies thereof may not be provided or
;	  0015	!     otherwise made available to any other person.  No  title  to
;	  0016	!     and ownership of the software is hereby transferred.
;	  0017	!
;	  0018	!     The information  in  this  software  is  subject  to  change
;	  0019	!     without  notice  and should not be construed as a commitment
;	  0020	!     by DIGITAL EQUIPMENT CORPORATION.
;	  0021	!
;	  0022	!     DIGITAL assumes no responsibility for the use or reliability
;	  0023	!     of  its  software  on  equipment  which  is  not supplied by
;	  0024	!     DIGITAL.
;	  0025	!
;	  0026		
;	  0027	!++
;	  0028	!
;	  0029	! FACILITY:	Network Services Layer
;	  0030	!
;	  0031	! ABSTRACT:	This module allows the transmission and reception of
;	  0032	!		NSP Connect/Disconnect messages.
;	  0033	!
;	  0034	!
;	  0035	! ENVIRONMENT:	MCB
;	  0036	!
;	  0037	! AUTHOR:	Ron Platukis	CREATION DATE:	6-july-80
;	  0038	!
;	  0039	! MODIFIED BY:
;	  0040	!
;	  0041	!	Alan Peckham, Ron Platukis  22-Oct-80
;	  0042	! 01	- Move NDB bind in CCB_RETRN.
;	  0043	!	  Clear C_STS before sending CCB to XPT in XPT_XMIT.
;	  0044	!	  Set C_PRM4 to PDB address or -1 if Reserve Port in XPT_XMIT.
;	  0045	!	Ron Platukis  23-oct-80
;	  0046	! 02	- Set PORTstate negative if  Reserved Port.
;	  0047	!
;	  0048	! 03	Ron Platukis  24-dec-80
;	  0049	!	-Add Network Management Stuff.
;	  0050	!
;	  0051	! 04	Ron Platukis  13-jan-81
;	  0052	!	-Change linkages to BLISS, add access for NSP Data Base address.
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page   2
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (1)

;	  0053	!
;	  0054	! 05	Ron Platukis  20-jan-81
;	  0055	!	-Add Network Management event logging code.
;	  0056	!
;	  0057	! 06	Ron Platukis  16-feb-81
;	  0058	!	-Add code to check BUFFsync_dsc in FLUSH_QUEUES routine.
;	  0059	!
;	  0060	! 07	Ron Platukis  30-apr-81
;	  0061	!	-character move function overwrites temporary space in
;	  0062	!	routine SHOW_NODE_COUNTERS.
;	  0063	!
;	  0064	! 08	Ron Platukis  1-may-81
;	  0065	!	-Incorrect status code returned if successful completion
;	  0066	!	of routine RETURN_NODE_LIST.
;	  0067	!
;	  0068	! 09	Ron Platukis  12-june-81
;	  0069	!	-Include 600 series counters in SHOW_NODE_COUNTERS routine
;	  0070	!	if asked for local data.
;	  0071	!
;	  0072	! 10	Ron Platukis  22-september-81
;	  0073	!	-fix routine DI_RCV to send DC if in DI state and receive a DI.
;	  0074	!
;	  0075	! 11	Ron Platukis  2-february-82
;	  0076	!	-modify routine DC_RCV to set CONFIDENCE false if receive a No-Link.
;	  0077	!
;	  0078	! 12	Ron Platukis  2-march-82
;	  0079	!	-set entity type to "node" on event type 2
;	  0080	!
;	  0081	! 13	Alan Peckham  3-may-82
;	  0082	!	-Do not recognize node #0 in FIND_NDB.
;	  0083	!
;	  0084	! 14	Alan Peckham  22-nov-82
;	  0085	!       -Make EVENT_LOG use common event logging routines.
;	  0086	!	-Support seconds-since-last-zeroed counter:
;	  0087	!         Zero counter in NDB_GET.
;	  0088	!         Show counter in EVENT_LOG and SHOW_NODE_COUNTERS.
;	  0089	!       -Optimize SHOW_NODE_COUNTERS by removing loop.
;	  0090	!       -Zero NSPmax when zeroing counters for NSPself.
;	  0091	!
;	  0092	! 15	Alan Peckham  9-dec-82
;	  0093	!       -NDB_GET was not recycling node data bases.
;	  0094	!         The routine was re-coded for correctness and efficiency.
;	  0095	!--
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page   3
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (2)

;	  0096	!
;	  0097	! INCLUDE FILES:
;	  0098	!
;	  0099	library
;	  0100		'mcb:xportx';
;	  0101	library
;	  0102		'mcb:mcblib';
;	  0103	library
;	  0104		'mcb:nmxlib';
;	  0105	require
;	  0106		'nspbli:nsinfo';
;	  0218	require
;	  0219		'nspbli:nspdata';
;	  0705	
;	  0706	
;	  0707	
;	  0708	!
;	  0709	! TABLE OF CONTENTS:
;	  0710	!
;	  0711	forward routine
;	  0712		ACK_BLD:   novalue,
;	  0713		CA_BLD:  novalue,		!format a CA msg
;	  0714		CA_RCV: CALL$ novalue,		!process Connect Ack
;	  0715		CI_BLD:  CALL$  novalue,	!format a CI msg
;	  0716		CI_RECVD:  novalue,
;	  0717		CI_RCV: CALL$ novalue,		!process Connect Initiate
;	  0718		CC_BLD:  CALL$  novalue,	!format a CC msg
;	  0719		CC_RCV: CALL$ novalue,		!process Connect Confirm
;	  0720		CCB_HDR_GET:,
;	  0721		CCB_GET:,
;	  0722		CCB_RETRN: novalue,
;	  0723		CTL_RECVD:  CALL$ novalue,	!Free stalled Control messages
;	  0724		C_STSE:  novalue,
;	  0725		DADD: novalue,
;	  0726		DC_BLD:  CALL$  novalue,	!format a DC msg
;	  0727		DC_RCV: CALL$ novalue,		!process Disconnect Confirm
;	  0728		DI_BLD:  CALL$  novalue,	!format a DI msg
;	  0729		DI_RCV: CALL$ novalue,		!process Disconnect Initiate
;	  0730		DSC_RECVD:  novalue,
;	  0731		EVENT_LOG: CALL$ novalue,	! event logger
;	  0732		FCCTL: CALL$ novalue,		! Control (i.e., NM)
;	  0733		FIND_NDB:  ,			! Locate a Node Data base
;	  0734		FLUSH_QUEUES:  CALL$ novalue,
;	  0735		NDB_GET: CALL$,
;	  0736		NL_BLD:  CALL$ novalue,		!format a No-Link
;	  0737		NR_BLD:  CALL$ novalue,		!format a No-Resource
;	  0738		NSP_CONFIDENCE:  CALL$ novalue,	! report CONFIDENCE false to SC
;	  0739		RESV_PORT:  CALL$ novalue,	!Reserve Port Process
;	  0740		RETURN_NODE_LIST:  ,		!Network Management routines
;	  0741		SET_NODE_PARMS:  ,		!	""
;	  0742		SHOW_NODE_ITEMS:  ,		!	""
;	  0743		SHOW_NODE_COUNTERS:  ,		!	""
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page   4
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (2)

;	  0744		ZERO_NODE_COUNTERS:  ,		!	""
;	  0745		SHOW_ZERO_NODE_COUNTERS:  ,	!	""
;	  0746		UPDATE_DELAY:   novalue,	! Update round trip delay
;	  0747		XPT_XMIT:   novalue;		!queue CCB to XPT
;	  0748	
;	  0749	!
;	  0750	! MACROS:
;	  0751	!
;	  0752	macro
;	M 0753	    RAD50 (STR) =
;	  0754	    %if %bliss (bliss36) %then %rad50_10 STR %else %rad50_11 STR %fi %;
;	  0755	
;	  0756	!
;	  0757	! EQUATED SYMBOLS:
;	  0758	!
;	  0759	literal				! Autoparsing stuff
;	  0760		$16$ = 2^13,		! 16 bit wide counter
;	  0761		$32$ = 3^13,		! 32 bit wide counter
;	  0762		CNT = 1^15;		! Counter flag
;	  0763	
;	  0764	
;	  0765	!
;	  0766	! OWN STORAGE:
;	  0767	!
;	  0768		$MCB_PROCESS( name = NS2)
;	  0769	!
;	  0770	! EXTERNAL REFERENCES:
;	  0771	!
;	  0772	external
;	  0773		%name('.crdat'): vector[2],
;	  0774		$DSPCR;
;	  0775	
;	  0776		bind DB = %name('.crdat')[1]: ref block field(NSP_fields);
;	  0777	
;	  0778	
;	  0779	
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page   5
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (3)

;	  0780	routine ACK_BLD   ( CCB, PDB) :   novalue =	!
;	  0781		
;	  0782	!++
;	  0783	! FUNCTIONAL DESCRIPTION:
;	  0784	!	This routine formats an NSP Data Acknowledgement message.
;	  0785	!
;	  0786	! FORMAL PARAMETERS:
;	  0787	!	CCB = CCB address
;	  0788	!	PDB = Port Data Base Address
;	  0789	!
;	  0790	! IMPLICIT INPUTS:
;	  0791	!	DB = NSP Data Base Address
;	  0792	!
;	  0793	! IMPLICIT OUTPUTS:
;	  0794	!	None
;	  0795	!
;	  0796	! ROUTINE VALUE:
;	  0797	! COMPLETION CODES:
;	  0798	!	None
;	  0799	!
;	  0800	! SIDE EFFECTS:
;	  0801	!	None
;	  0802	!--
;	  0803		
;	  0804		begin
;	  0805		map CCB: ref block field(C_fields);
;	  0806		map PDB: ref block field(PORT_fields);
;	  0807	
;	  0808		local
;	  0809		PTR;
;	  0810	
;	  0811		PTR = .CCB[C_ADDR];
;	  0812	
;	  0813		ch$wchar_a( FLG_DAT_ACK, PTR);
;	  0814		ch$wchar_a( .PDB[L_rem_addr], PTR);
;	  0815		ch$wchar_a( .PDB[H_rem_addr], PTR);
;	  0816		ch$wchar_a( .PDB[PID], PTR);
;	  0817		ch$wchar_a( .PDB[ADDran], PTR);
;	  0818		PUT2BYTES( (.PDB[ACKdat_xmt] and %o'7777') + Q_ACK^12 + true^15, PTR);
;	  0819	
;	  0820		CCB[C_CNT] = ch$diff(.PTR, .CCB[C_ADDR]);
;	  0821		PDB[FLAGdat_ack] = false;
;	  0822		XPT_XMIT( .CCB, .PDB)	
;	  0823		end;


						.TITLE	NS2
						.IDENT	/X01150/


000000						.PSECT	......,  D  
000000	055230 				; HEADER
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page   6
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (3)

					U.43:	.RAD50	/NS2/
000002	000403 					.WORD	403
000004	000000 					.WORD	0
000006	000000 					.WORD	0
000010	000000 					.WORD	0
000012	000000G					.WORD	.DSPCR
000014	000000G					.WORD	.DSPCR
000016	000000G					.WORD	.DSPCR
000020	000000G					.WORD	MCB$V0
000022	000000G					.WORD	MCB$V1
000024	140310 					.WORD	140310
000026	143716 					.WORD	143716
000030	001400 					.WORD	1400
000032	000000 					.WORD	0
000034	000000 					.WORD	0
000036	000000 					.WORD	0


						.GLOBL	.DSPCR, MCB$V0, MCB$V1, .CRDAT
						.GLOBL	$DSPCR


	073470 				; SC
					U.1=		    73470
	055210 				; NSP
					U.2=		    55210
	114224 				; XPT
					U.3=		    114224
	114205 				; XPE
					U.4=		    114205
	055227 				; NS1
					U.5=		    55227
	055230 				; NS2
					U.6=		    55230


						.SBTTL	ACK.BLD
000000						.PSECT	$CODE$,  RO 

000000	004167  000000G			; ACK.BLD
					U.7:	JSR	R1,$SAVE4			;					0780
000004	016602  000016 				MOV	16(SP),R2			; CCB,*					0811
000010	016203  000020 				MOV	20(R2),R3			; *,PTR
000014	112723  000004 				MOVB	#4,(R3)+			; *,PTR					0813
000020	016601  000014 				MOV	14(SP),R1			; PDB,*					0814
000024	116123  000006 				MOVB	6(R1),(R3)+			; *,PTR
000030	116123  000007 				MOVB	7(R1),(R3)+			; *,PTR					0815
000034	116123  000004 				MOVB	4(R1),(R3)+			; *,PTR					0816
000040	116123  000005 				MOVB	5(R1),(R3)+			; *,PTR					0817
000044	016100  000030 				MOV	30(R1),R0			; *,TEMP				0818
000050	042700  170000 				BIC	#170000,R0			; *,TEMP
000054	162700  100000 				SUB	#100000,R0			; *,TEMP
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page   7
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (3)

000060	110023 					MOVB	R0,(R3)+			; TEMP,PTR
000062	010004 					MOV	R0,R4				; TEMP,*
000064	000304 					SWAB	R4
000066	110423 					MOVB	R4,(R3)+			; *,PTR
000070	010362  000022 				MOV	R3,22(R2)			; PTR,*					0820
000074	166262  000020  000022 			SUB	20(R2),22(R2)
000102	042761  020000  000040 			BIC	#20000,40(R1)			;					0821
000110	010246 					MOV	R2,-(SP)			;					0822
000112	010146 					MOV	R1,-(SP)
000114	004767  000000V				JSR	PC,U.42
000120	022626 					CMP	(SP)+,(SP)+			;					0804
000122	000207 					RTS	PC				;					0780

; Routine Size:  42 words,	Routine Base:  $CODE$ + 0000
; Maximum stack depth per invocation:  8 words


;	  0824	
;	  0825	
;	  0826	
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page   8
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (4)

;	  0827	routine CA_BLD   ( CCB, PDB) : novalue =	!
;	  0828		
;	  0829	!++
;	  0830	! FUNCTIONAL DESCRIPTION:
;	  0831	!	This routine formats an NSP Connect Acknowledgement message.
;	  0832	!
;	  0833	! FORMAL PARAMETERS:
;	  0834	!	CCB = CCB address
;	  0835	!	PDB = Port Data Base Address
;	  0836	!
;	  0837	! IMPLICIT INPUTS:
;	  0838	!	DB = NSP Data Base Address
;	  0839	!
;	  0840	! IMPLICIT OUTPUTS:
;	  0841	!	None
;	  0842	!
;	  0843	! ROUTINE VALUE:
;	  0844	! COMPLETION CODES:
;	  0845	!	None
;	  0846	!
;	  0847	! SIDE EFFECTS:
;	  0848	!	None
;	  0849	!--
;	  0850		
;	  0851		begin
;	  0852		map CCB: ref block field(C_fields);
;	  0853		map PDB: ref block field(PORT_fields);
;	  0854		
;	  0855		local
;	  0856		PTR;
;	  0857	
;	  0858		PTR = .CCB[C_ADDR];
;	  0859	
;	  0860		ch$wchar_a( FLG_CA, PTR);
;	  0861		ch$wchar_a( .PDB[L_rem_addr], PTR);
;	  0862		ch$wchar_a( .PDB[H_rem_addr], PTR);
;	  0863	
;	  0864		CCB[C_CNT] = ch$diff(.PTR, .CCB[C_ADDR]);
;	  0865		XPT_XMIT( .CCB, .PDB)	
;	  0866		end;


						.SBTTL	CA.BLD
000000	004167  000000G			; CA.BLD
					U.8:	JSR	R1,$SAVE2			;					0827
000004	016601  000012 				MOV	12(SP),R1			; CCB,*					0858
000010	016102  000020 				MOV	20(R1),R2			; *,PTR
000014	112722  000044 				MOVB	#44,(R2)+			; *,PTR					0860
000020	016600  000010 				MOV	10(SP),R0			; PDB,*					0861
000024	116022  000006 				MOVB	6(R0),(R2)+			; *,PTR
000030	116022  000007 				MOVB	7(R0),(R2)+			; *,PTR					0862
000034	010261  000022 				MOV	R2,22(R1)			; PTR,*					0864
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page   9
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (4)

000040	166161  000020  000022 			SUB	20(R1),22(R1)
000046	010146 					MOV	R1,-(SP)			;					0865
000050	010046 					MOV	R0,-(SP)			; PDB,*
000052	004767  000000V				JSR	PC,U.42
000056	022626 					CMP	(SP)+,(SP)+			;					0851
000060	000207 					RTS	PC				;					0827

; Routine Size:  25 words,	Routine Base:  $CODE$ + 0124
; Maximum stack depth per invocation:  6 words


;	  0867	
;	  0868	
;	  0869	
;	  0870	
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  10
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (5)

;	  0871	global routine CA_RCV   ( CCB, PDB) :CALL$ novalue =	!
;	  0872	
;	  0873	!++
;	  0874	! FUNCTIONAL DESCRIPTION:
;	  0875	!	This routine processes a received Connect Acknowledgement message.
;	  0876	!
;	  0877	! FORMAL PARAMETERS:
;	  0878	!	CCB = CCB address
;	  0879	!	PDB = Port Data Base Address
;	  0880	!
;	  0881	! IMPLICIT INPUTS:
;	  0882	!	DB = NSP Data Base Address
;	  0883	!
;	  0884	! IMPLICIT OUTPUTS:
;	  0885	!	None
;	  0886	!
;	  0887	! ROUTINE VALUE:
;	  0888	! COMPLETION CODES:
;	  0889	!	None
;	  0890	!
;	  0891	! SIDE EFFECTS:
;	  0892	!	None
;	  0893	!--
;	  0894	
;	  0895		begin
;	  0896		map CCB: ref block field(C_fields);
;	  0897		map PDB: ref block field(PORT_fields);
;	  0898	
;	  0899		If .PDB[PORTstate] eql N$SCI
;	  0900		Then
;	  0901			begin
;	  0902			PDB[PORTstate] = N$SCD;
;	  0903			UPDATE_DELAY( .PDB)
;	  0904			end;
;	  0905		CCB[C_FNC] = FC_RCE;
;	  0906		LLCRS$( .CCB)
;	  0907		end;


						.GLOBL	$SCHED


						.SBTTL	CA.RCV
000000	016500  000004 			CA.RCV::
					U.9:	MOV	4(R5),R0			; PDB(.AP.),*				0899
000004	121027  000006 				CMPB	(R0),#6
000010	001006 					BNE	1$
000012	112710  000011 				MOVB	#11,(R0)			;					0902
000016	010046 					MOV	R0,-(SP)			;					0903
000020	004767  000000V				JSR	PC,U.41
000024	005726 					TST	(SP)+				;					0901
000026	016500  000002 			1$:	MOV	2(R5),R0			; CCB(.AP.),*				0905
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  11
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (5)

000032	112760  000004  000012 			MOVB	#4,12(R0)
000040	010004 					MOV	R0,R4				;					0906
000042	004767  000000G				JSR	PC,$SCHED
000046	000207 					RTS	PC				;					0871

; Routine Size:  20 words,	Routine Base:  $CODE$ + 0206
; Maximum stack depth per invocation:  2 words


;	  0908	
;	  0909	
;	  0910	
;	  0911	
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  12
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (6)

;	  0912	global routine CC_BLD   ( CCB, PDB) :CALL$ novalue =	!
;	  0913		
;	  0914	!++
;	  0915	! FUNCTIONAL DESCRIPTION:
;	  0916	!	This routine formats an NSP Connect Confirm message.
;	  0917	!
;	  0918	! FORMAL PARAMETERS:
;	  0919	!	CCB = CCB address
;	  0920	!	PDB = Port Data Base Address
;	  0921	!
;	  0922	! IMPLICIT INPUTS:
;	  0923	!	DB = NSP Data Base Address
;	  0924	!
;	  0925	! IMPLICIT OUTPUTS:
;	  0926	!	None
;	  0927	!
;	  0928	! ROUTINE VALUE:
;	  0929	! COMPLETION CODES:
;	  0930	!	None
;	  0931	!
;	  0932	! SIDE EFFECTS:
;	  0933	
;	  0934	!	None
;	  0935	!--
;	  0936		
;	  0937		begin
;	  0938		map CCB: ref block field(C_fields);
;	  0939		map PDB: ref block field(PORT_fields);
;	  0940	
;	  0941		local
;	  0942		PTR;
;	  0943	
;	  0944		PTR = .CCB[C_ADDR];
;	  0945	
;	  0946		CCB[C_CHN] = .CCB[C_STK];
;	  0947	
;	  0948		ch$wchar_a( FLG_CC, PTR);
;	  0949		ch$wchar_a( .PDB[L_rem_addr], PTR);
;	  0950		ch$wchar_a( .PDB[H_rem_addr], PTR);
;	  0951		ch$wchar_a( .PDB[PID], PTR);
;	  0952		ch$wchar_a( .PDB[ADDran], PTR);
;	  0953		ch$wchar_a( .PDB[FLOWloc_typ]^2 + 1, PTR);
;	  0954		ch$wchar_a( 0, PTR);
;	  0955		PUT2BYTES( .DB[NSPbuf], PTR);
;	  0956	
;	  0957		CCB[C_CNT] = ch$diff(.PTR, .CCB[C_ADDR]);
;	  0958	
;	  0959		If .PDB[DELAYstr_tim] eql 0
;	  0960		Then
;	  0961			PDB[DELAYstr_tim] = 1;
;	  0962		XPT_XMIT( .CCB, .PDB)
;	  0963		end;
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  13
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (6)



						.SBTTL	CC.BLD
000000	016501  000002 			CC.BLD::
					U.13:	MOV	2(R5),R1			; CCB(.AP.),*				0944
000004	016102  000020 				MOV	20(R1),R2			; *,PTR
000010	016161  000004  000002 			MOV	4(R1),2(R1)			;					0946
000016	112722  000050 				MOVB	#50,(R2)+			; *,PTR					0948
000022	016505  000004 				MOV	4(R5),R5			; PDB(.AP.),*				0949
000026	116522  000006 				MOVB	6(R5),(R2)+			; *,PTR
000032	116522  000007 				MOVB	7(R5),(R2)+			; *,PTR					0950
000036	116522  000004 				MOVB	4(R5),(R2)+			; *,PTR					0951
000042	116522  000005 				MOVB	5(R5),(R2)+			; *,PTR					0952
000046	016500  000040 				MOV	40(R5),R0			;					0953
000052	072027  177772 				ASH	#-6,R0
000056	042700  177763 				BIC	#177763,R0
000062	010003 					MOV	R0,R3
000064	005203 					INC	R3
000066	110322 					MOVB	R3,(R2)+			; *,PTR
000070	105022 					CLRB	(R2)+				; PTR					0954
000072	016700  000002G				MOV	.CRDAT+2,R0			;					0955
000076	016000  000042 				MOV	42(R0),R0			; *,TEMP
000102	110022 					MOVB	R0,(R2)+			; TEMP,PTR
000104	010003 					MOV	R0,R3				; TEMP,*
000106	000303 					SWAB	R3
000110	110322 					MOVB	R3,(R2)+			; *,PTR
000112	010261  000022 				MOV	R2,22(R1)			; PTR,*					0957
000116	166161  000020  000022 			SUB	20(R1),22(R1)
000124	012700  000062 				MOV	#62,R0				;					0959
000130	060500 					ADD	R5,R0
000132	005710 					TST	(R0)
000134	001002 					BNE	1$
000136	012710  000001 				MOV	#1,(R0)				;					0961
000142	010146 				1$:	MOV	R1,-(SP)			;					0962
000144	010546 					MOV	R5,-(SP)
000146	004767  000000V				JSR	PC,U.42
000152	022626 					CMP	(SP)+,(SP)+			;					0937
000154	000207 					RTS	PC				;					0912

; Routine Size:  55 words,	Routine Base:  $CODE$ + 0256
; Maximum stack depth per invocation:  3 words


;	  0964	
;	  0965	
;	  0966	
;	  0967	
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  14
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (7)

;	  0968	global routine CC_RCV   ( CCB, PDB ) :CALL$ novalue =	!
;	  0969	
;	  0970	!++
;	  0971	! FUNCTIONAL DESCRIPTION:
;	  0972	!	This routine processes a received Connect Confirm message.
;	  0973	!
;	  0974	! FORMAL PARAMETERS:
;	  0975	!	CCB = CCB address
;	  0976	!	PDB = Port Data Base Address
;	  0977	!
;	  0978	! IMPLICIT INPUTS:
;	  0979	!	DB = NSP Data Base Address
;	  0980	!
;	  0981	! IMPLICIT OUTPUTS:
;	  0982	!	None
;	  0983	!
;	  0984	! ROUTINE VALUE:
;	  0985	! COMPLETION CODES:
;	  0986	!	None
;	  0987	!
;	  0988	! SIDE EFFECTS:
;	  0989	!	None
;	  0990	!--
;	  0991	
;	  0992		begin
;	  0993		map CCB: ref block field(C_fields);
;	  0994		map PDB: ref block field(PORT_fields);
;	  0995	
;	  0996		local
;	  0997		PTR,
;	  0998		NDB : ref block field(NODE_fields),
;	  0999		WK_CCB: ref block field(C_fields);
;	  1000	
;	  1001		PTR = ch$plus( .CCB[C_ADDR], 5 );
;	  1002		NDB = .PDB[NODElnk];
;	  1003	
;	  1004		If .PDB[BUFFctl] neq 0
;	  1005		Then
;	  1006			begin
;	  1007			CCB[C_FNC] = FC_RCE;
;	  1008			LLCRS$( .CCB);
;	  1009			return
;	  1010			end;
;	  1011	
;	  1012		MAP$( .CCB[C_BIAS]);
;	  1013		DB[SERVICES] = ch$rchar_a( PTR);
;	  1014		DB[INFO] = ch$rchar_a( PTR);
;	  1015		DB[SEGSIZE] = GET2BYTES( PTR);
;	  1016		MAP$( .DB[BIASports]);
;	  1017	
;	  1018		If (.DB[FCOPT] neq FLOWrsv) and
;	  1019		((.DB[SERVICES] and 1) neq 0) and
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  15
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (7)

;	  1020		((.DB[INFO] and %o'374') eql 0)
;	  1021		Then
;	  1022			begin
;	  1023			IF .PDB[PORTstate] eql N$SCI or
;	  1024			.PDB[PORTstate] eql N$SCD
;	  1025			Then
;	  1026				begin
;	  1027				MAP$( .DB[BIASnodes]);
;	  1028				DADD( NDB[NDb_rcv], .CCB[C_CNT] - CC_SIZE);
;	  1029				MAP$( .DB[BIASports]);
;	  1030				PDB[L_rem_addr] = .DB[L_SRCADDR];
;	  1031				PDB[H_rem_addr] = .DB[H_SRCADDR];
;	  1032				PDB[FLOWtyp_rem] = .DB[FCOPT];
;	  1033				PDB[VERSIONrem] = .DB[INFO];
;	  1034				PDB[SIZEseg] = MIN( .DB[SEGSIZE], .DB[NSPbuf]);
;	  1035				PDB[TIMERinact] = .DB[NSPact_tim];
;	  1036	
;	  1037				If .PDB[PORTstate] eql N$SCI
;	  1038				Then
;	  1039					UPDATE_DELAY( .PDB);
;	  1040				PDB[PORTstate] = N$SRUN;
;	  1041				PDB[FLAGdat_ack] = true;
;	  1042	
;	  1043				If CCB_GET( WK_CCB, .PDB)
;	  1044				Then
;	  1045					begin
;	  1046					WK_CCB[C_STK] = .CCB;
;	  1047					C_STSE( .WK_CCB, .PDB)
;	  1048					end
;	  1049				Else
;	  1050					begin
;	  1051					PDB[BUFFctl] = .CCB;
;	  1052					return
;	  1053					end;
;	  1054				If CCB_HDR_GET( 0, WK_CCB, .PDB)
;	  1055				Then
;	  1056					ACK_BLD( .WK_CCB, .PDB)
;	  1057				Else
;	  1058					PDB[FLAGdat_ack] = true;
;	  1059				return
;	  1060				end;
;	  1061			If .PDB[PORTstate] eql N$SRUN
;	  1062			Then
;	  1063				PDB[FLAGdat_ack] = true
;	  1064			end;
;	  1065		CCB[C_FNC] = FC_RCE;
;	  1066		LLCRS$( .CCB)
;	  1067		end;


						.GLOBL	KISAR6
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  16
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (7)


						.SBTTL	CC.RCV
000000	024646 				CC.RCV::
					U.14:	CMP	-(SP),-(SP)			;					0968
000002	016503  000002 				MOV	2(R5),R3			; CCB(.AP.),*				1001
000006	016301  000020 				MOV	20(R3),R1			; *,PTR
000012	062701  000005 				ADD	#5,R1				; *,PTR
000016	016505  000004 				MOV	4(R5),R5			; PDB(.AP.),*				1002
000022	016546  000010 				MOV	10(R5),-(SP)			; *,NDB
000026	012766  000050  000002 			MOV	#50,2(SP)			;					1004
000034	060566  000002 				ADD	R5,2(SP)
000040	005776  000002 				TST	@2(SP)
000044	001040 					BNE	2$				;					1007
000046	016367  000016  000000G			MOV	16(R3),KISAR6			;					1012
000054	016702  000002G				MOV	.CRDAT+2,R2			;					1013
000060	012704  000070 				MOV	#70,R4
000064	060204 					ADD	R2,R4
000066	112114 					MOVB	(R1)+,(R4)			; PTR,*
000070	112162  000072 				MOVB	(R1)+,72(R2)			; PTR,*					1014
000074	105000 					CLRB	R0				; TEMP					1015
000076	152100 					BISB	(R1)+,R0			; PTR,TEMP
000100	010046 					MOV	R0,-(SP)			; TEMP,*
000102	112166  000001 				MOVB	(R1)+,1(SP)			; PTR,*
000106	012600 					MOV	(SP)+,R0			; *,TEMP
000110	010062  000066 				MOV	R0,66(R2)			; TEMP,*
000114	016267  000014  000000G			MOV	14(R2),KISAR6			;					1016
000122	012700  000014 				MOV	#14,R0				;					1018
000126	141400 					BICB	(R4),R0
000130	001402 					BEQ	1$
000132	132714  000001 				BITB	#1,(R4)				;					1019
000136	001577 				1$:	BEQ	11$
000140	132762  000374  000072 			BITB	#374,72(R2)			;					1020
000146	001173 				2$:	BNE	11$
000150	121527  000006 				CMPB	(R5),#6				;					1023
000154	001403 					BEQ	3$
000156	121527  000011 				CMPB	(R5),#11			;					1024
000162	001157 					BNE	10$
000164	016267  000030  000000G		3$:	MOV	30(R2),KISAR6			;					1027
000172	011646 					MOV	(SP),-(SP)			; NDB,*					1028
000174	062716  000010 				ADD	#10,(SP)
000200	016346  000022 				MOV	22(R3),-(SP)
000204	162716  000011 				SUB	#11,(SP)
000210	004767  000000V				JSR	PC,U.20
000214	016704  000002G				MOV	.CRDAT+2,R4			;					1029
000220	016467  000014  000000G			MOV	14(R4),KISAR6
000226	116465  000055  000006 			MOVB	55(R4),6(R5)			;					1030
000234	116465  000056  000007 			MOVB	56(R4),7(R5)			;					1031
000242	012701  000040 				MOV	#40,R1				;					1032
000246	060501 					ADD	R5,R1
000250	116400  000070 				MOVB	70(R4),R0
000254	072027  000011 				ASH	#11,R0
000260	042700  163777 				BIC	#163777,R0
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  17
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (7)

000264	042711  014000 				BIC	#14000,(R1)
000270	050011 					BIS	R0,(R1)
000272	116400  000072 				MOVB	72(R4),R0			;					1033
000276	006300 					ASL	R0
000300	006300 					ASL	R0
000302	042700  177763 				BIC	#177763,R0
000306	142765  000014  000042 			BICB	#14,42(R5)
000314	150065  000042 				BISB	R0,42(R5)
000320	016400  000066 				MOV	66(R4),R0			;					1034
000324	020064  000042 				CMP	R0,42(R4)
000330	003402 					BLE	4$
000332	016400  000042 				MOV	42(R4),R0
000336	010065  000072 			4$:	MOV	R0,72(R5)
000342	116465  000004  000036 			MOVB	4(R4),36(R5)			;					1035
000350	121527  000006 				CMPB	(R5),#6				;					1037
000354	001003 					BNE	5$
000356	010516 					MOV	R5,(SP)				;					1039
000360	004767  000000V				JSR	PC,U.41
000364	112715  000013 			5$:	MOVB	#13,(R5)			;					1040
000370	052711  020000 				BIS	#20000,(R1)			;					1041
000374	012716  000010 				MOV	#10,(SP)			;					1043
000400	060616 					ADD	SP,(SP)				; WK.CCB,*
000402	010546 					MOV	R5,-(SP)
000404	004767  000000V				JSR	PC,U.16
000410	005726 					TST	(SP)+
000412	006000 					ROR	R0
000414	103012 					BCC	6$
000416	016600  000010 				MOV	10(SP),R0			; WK.CCB,*				1046
000422	010360  000004 				MOV	R3,4(R0)
000426	010016 					MOV	R0,(SP)				; WK.CCB,*				1047
000430	010546 					MOV	R5,-(SP)
000432	004767  000000V				JSR	PC,U.19
000436	005726 					TST	(SP)+				;					1045
000440	000403 					BR	7$				;					1043
000442	010376  000006 			6$:	MOV	R3,@6(SP)			;					1051
000446	000423 					BR	9$				;					1043
000450	005016 				7$:	CLR	(SP)				;					1054
000452	012746  000012 				MOV	#12,-(SP)
000456	060616 					ADD	SP,(SP)				; WK.CCB,*
000460	010546 					MOV	R5,-(SP)
000462	004767  000000V				JSR	PC,U.15
000466	022626 					CMP	(SP)+,(SP)+
000470	006000 					ROR	R0
000472	103007 					BCC	8$
000474	016616  000010 				MOV	10(SP),(SP)			; WK.CCB,*				1056
000500	010546 					MOV	R5,-(SP)
000502	004767  176636 				JSR	PC,U.7
000506	005726 					TST	(SP)+
000510	000402 					BR	9$				;					1054
000512	052711  020000 			8$:	BIS	#20000,(R1)			;					1058
000516	022626 				9$:	CMP	(SP)+,(SP)+			;					1023
000520	000414 					BR	12$				;					1026
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  18
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (7)

000522	121527  000013 			10$:	CMPB	(R5),#13			;					1061
000526	001003 					BNE	11$
000530	052765  020000  000040 			BIS	#20000,40(R5)			;					1063
000536	112763  000004  000012 		11$:	MOVB	#4,12(R3)			;					1065
000544	010304 					MOV	R3,R4				;					1066
000546	004767  000000G				JSR	PC,$SCHED
000552	062706  000006 			12$:	ADD	#6,SP				;					0968
000556	000207 					RTS	PC

; Routine Size:  184 words,	Routine Base:  $CODE$ + 0434
; Maximum stack depth per invocation:  8 words


;	  1068	
;	  1069	
;	  1070	
;	  1071	
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  19
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (8)

;	  1072	routine CCB_HDR_GET ( CCB, LCCB, PDB ) =	!
;	  1073	
;	  1074	!++
;	  1075	! FUNCTIONAL DESCRIPTION:
;	  1076	!	This routine allocates a CCB and a header buffer from DSR space.
;	  1077	!
;	  1078	! FORMAL PARAMETERS:
;	  1079	!	CCB = CCB address
;	  1080	!	LCCB = CCB Address to stack
;	  1081	!	PDB = Port Data Base address
;	  1082	!
;	  1083	! IMPLICIT INPUTS:
;	  1084	!	None
;	  1085	!
;	  1086	! IMPLICIT OUTPUTS:
;	  1087	!	None
;	  1088	!
;	  1089	! ROUTINE VALUE:
;	  1090	! COMPLETION CODES:
;	  1091	!	None
;	  1092	!
;	  1093	! SIDE EFFECTS:
;	  1094	!	None
;	  1095	!--
;	  1096	
;	  1097	
;	  1098		begin
;	  1099		map CCB: ref block field(C_fields);
;	  1100		map PDB: ref block field(PORT_fields);
;	  1101		map LCCB: ref block field(C_fields);
;	  1102	
;	  1103		If not CCBGT$(.LCCB)
;	  1104		Then
;	  1105			return false;
;	  1106		begin
;	  1107		bind XCCB = .LCCB: ref block field(C_fields);
;	  1108		XCCB[C_STK] = 0;
;	  1109		XCCB[C_CHN] = 0;
;	  1110		XCCB[C_PRM1] = 0;
;	  1111		XCCB[C_PRM2] = 0;
;	  1112		XCCB[C_PRM3] = 0;
;	  1113		XCCB[C_PRM4] = 0;
;	  1114		XCCB[C_PRM5] = 0;
;	  1115		XCCB[C_BIAS] = 0;
;	  1116	
;	  1117		If not $MCB_GET_DSR( hdb_size, XCCB[C_ADDR])
;	  1118		Then
;	  1119			begin
;	  1120			CCBRT$(..LCCB);
;	  1121			return false;
;	  1122			end;
;	  1123		If .CCB neq 0
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  20
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (8)

;	  1124		Then
;	  1125			XCCB[C_STK] = .CCB;
;	  1126		end;
;	  1127		If .PDB neq -1
;	  1128		Then
;	  1129			PDB[COUNTres] = .PDB[COUNTres] + 1;
;	  1130		return true;
;	  1131		end;


						.GLOBL	$CCBGT, $DSRGT, $CCBRT


						.SBTTL	CCB.HDR.GET
000000	004167  000000G			; CCB.HDR.GET
					U.15:	JSR	R1,$SAVE4			;					1072
000004	004767  000000G				JSR	PC,$CCBGT			;					1103
000010	103460 					BCS	5$
000012	010476  000016 				MOV	R4,@16(SP)			; $MCB$R4,LCCB
000016	010402 					MOV	R4,R2				; LCCB,*				1108
000020	005062  000004 				CLR	4(R2)
000024	005062  000002 				CLR	2(R2)				;					1109
000030	005062  000024 				CLR	24(R2)				;					1110
000034	005062  000026 				CLR	26(R2)				;					1111
000040	005062  000030 				CLR	30(R2)				;					1112
000044	005062  000032 				CLR	32(R2)				;					1113
000050	005062  000034 				CLR	34(R2)				;					1114
000054	005062  000016 				CLR	16(R2)				;					1115
000060	012701  000014 				MOV	#14,R1				;					1117
000064	004767  000000G				JSR	PC,$DSRGT
000070	103403 					BCS	1$
000072	010062  000020 				MOV	R0,20(R2)			; $MCB$R0,*
000076	000405 					BR	2$
000100	017604  000016 			1$:	MOV	@16(SP),R4			; LCCB,*				1120
000104	004767  000000G				JSR	PC,$CCBRT
000110	000420 					BR	5$				;					1119
000112	016600  000020 			2$:	MOV	20(SP),R0			; CCB,*					1123
000116	001402 					BEQ	3$
000120	010062  000004 				MOV	R0,4(R2)			;					1125
000124	026627  000014  177777 		3$:	CMP	14(SP),#-1			; PDB,*					1127
000132	001404 					BEQ	4$
000134	016600  000014 				MOV	14(SP),R0			; PDB,*					1129
000140	005260  000054 				INC	54(R0)
000144	012700  000001 			4$:	MOV	#1,R0				;					1098
000150	000207 					RTS	PC
000152	005000 				5$:	CLR	R0				;					1072
000154	000207 					RTS	PC

; Routine Size:  55 words,	Routine Base:  $CODE$ + 1214
; Maximum stack depth per invocation:  6 words

;	  1132	
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  21
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (8)

;	  1133	
;	  1134	
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  22
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (9)

;	  1135	routine CCB_GET (CCB, PDB) =	!
;	  1136	
;	  1137	!++
;	  1138	! FUNCTIONAL DESCRIPTION:
;	  1139	!	This routine allocates a CCB.
;	  1140	!
;	  1141	! FORMAL PARAMETERS:
;	  1142	!	CCB = CCB address
;	  1143	!	PDB = Port Data Base address
;	  1144	!
;	  1145	! IMPLICIT INPUTS:
;	  1146	!	None
;	  1147	!
;	  1148	! IMPLICIT OUTPUTS:
;	  1149	!	None
;	  1150	!
;	  1151	! ROUTINE VALUE:
;	  1152	! COMPLETION CODES:
;	  1153	!	None
;	  1154	!
;	  1155	! SIDE EFFECTS:
;	  1156	!	None
;	  1157	!--
;	  1158	
;	  1159	
;	  1160		begin
;	  1161		map PDB: ref block field(PORT_fields);
;	  1162	
;	  1163		local 
;	  1164		LCCB: ref block field(C_fields);
;	  1165	
;	  1166		If not CCBGT$(LCCB)
;	  1167		Then
;	  1168			return false;
;	  1169		LCCB[C_STK] = 0;
;	  1170		LCCB[C_CHN] = 0;
;	  1171		LCCB[C_BIAS] = 0;
;	  1172		LCCB[C_ADDR] = 0;
;	  1173		LCCB[C_PRM1] = 0;
;	  1174		LCCB[C_PRM2] = 0;
;	  1175		LCCB[C_PRM3] = 0;
;	  1176		LCCB[C_PRM4] = 0;
;	  1177		LCCB[C_PRM5] = 0;
;	  1178	
;	  1179		If .PDB neq -1
;	  1180		Then
;	  1181			PDB[COUNTres] = .PDB[COUNTres] + 1;
;	  1182		.CCB = .LCCB;
;	  1183		return true;
;	  1184		end;
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  23
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (9)

						.SBTTL	CCB.GET
000000	010446 				; CCB.GET
					U.16:	MOV	R4,-(SP)			;					1135
000002	004767  000000G				JSR	PC,$CCBGT			;					1166
000006	103437 					BLO	2$				;					1168
000010	005064  000004 				CLR	4(R4)				; *(LCCB)				1169
000014	005064  000002 				CLR	2(R4)				; *(LCCB)				1170
000020	005064  000016 				CLR	16(R4)				; *(LCCB)				1171
000024	005064  000020 				CLR	20(R4)				; *(LCCB)				1172
000030	005064  000024 				CLR	24(R4)				; *(LCCB)				1173
000034	005064  000026 				CLR	26(R4)				; *(LCCB)				1174
000040	005064  000030 				CLR	30(R4)				; *(LCCB)				1175
000044	005064  000032 				CLR	32(R4)				; *(LCCB)				1176
000050	005064  000034 				CLR	34(R4)				; *(LCCB)				1177
000054	026627  000004  177777 			CMP	4(SP),#-1			; PDB,*					1179
000062	001404 					BEQ	1$
000064	016600  000004 				MOV	4(SP),R0			; PDB,*					1181
000070	005260  000054 				INC	54(R0)
000074	010476  000006 			1$:	MOV	R4,@6(SP)			; LCCB,CCB				1182
000100	012700  000001 				MOV	#1,R0				;					1160
000104	000401 					BR	3$
000106	005000 				2$:	CLR	R0				;					1135
000110	012604 				3$:	MOV	(SP)+,R4
000112	000207 					RTS	PC

; Routine Size:  38 words,	Routine Base:  $CODE$ + 1372
; Maximum stack depth per invocation:  2 words


;	  1185	
;	  1186	
;	  1187	
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  24
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (10)

;	  1188	routine CCB_RETRN   ( CCB, PDB):  novalue =	!
;	  1189	
;	  1190	!++
;	  1191	! FUNCTIONAL DESCRIPTION:
;	  1192	!	This routine deallocates a CCB.
;	  1193	!
;	  1194	! FORMAL PARAMETERS:
;	  1195	!	CCB = CCB address
;	  1196	!	PDB = Port Data Base address
;	  1197	!
;	  1198	! IMPLICIT INPUTS:
;	  1199	!	DB = NSP data base address
;	  1200	!
;	  1201	! IMPLICIT OUTPUTS:
;	  1202	!	None
;	  1203	!
;	  1204	! ROUTINE VALUE:
;	  1205	! COMPLETION CODES:
;	  1206	!	None
;	  1207	!
;	  1208	! SIDE EFFECTS:
;	  1209	!	None
;	  1210	!--
;	  1211	
;	  1212	
;	  1213		begin
;	  1214		map PDB: ref block field(PORT_fields);
;	  1215	
;	  1216		local
;	  1217		temp,
;	  1218		NDB : ref block field(NODE_fields),
;	  1219		CLZ_CCB: ref block field(C_fields);
;	  1220	
;	  1221		CCBRT$( .CCB);
;	  1222	
;	  1223		If .PDB neq -1
;	  1224		Then
;	  1225			begin
;	  1226			PDB[COUNTres] = .PDB[COUNTres] - 1;
;	  1227	
;	  1228			If .PDB[PORTstate] eql N$SCL and
;	  1229			.PDB[COUNTres] eql 0
;	  1230			Then
;	  1231				begin
;	  1232				NDB = .PDB[NODElnk];
;	  1233				PDB[FLAGinuse] = false;
;	  1234				CMQRM$( PDB[MSG_queue], CLZ_CCB);
;	  1235				CLZ_CCB[C_FNC] = FC_XCP;
;	  1236				CLZ_CCB[C_STS] = N$SSUC;
;	  1237				LLCRS$( .CLZ_CCB);
;	  1238				end;
;	  1239			End;
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  25
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (10)

;	  1240		end;


						.GLOBL	$CMQRM


						.SBTTL	CCB.RETRN
000000	004167  000000G			; CCB.RETRN
					U.17:	JSR	R1,$SAVE4			;					1188
000004	016604  000016 				MOV	16(SP),R4			; CCB,*					1221
000010	004767  000000G				JSR	PC,$CCBRT
000014	016603  000014 				MOV	14(SP),R3			; PDB,*					1223
000020	020327  177777 				CMP	R3,#-1
000024	001431 					BEQ	1$
000026	005363  000054 				DEC	54(R3)				;					1226
000032	121327  000017 				CMPB	(R3),#17			;					1228
000036	001024 					BNE	1$
000040	005763  000054 				TST	54(R3)				;					1229
000044	001021 					BNE	1$
000046	016304  000010 				MOV	10(R3),R4			; *,NDB					1232
000052	142763  000001  000042 			BICB	#1,42(R3)			;					1233
000060	062703  000102 				ADD	#102,R3				;					1234
000064	004767  000000G				JSR	PC,$CMQRM
000070	112764  000014  000012 			MOVB	#14,12(R4)			; *,*(CLZ.CCB)				1235
000076	012764  000001  000014 			MOV	#1,14(R4)			; *,*(CLZ.CCB)				1236
000104	004767  000000G				JSR	PC,$SCHED			;					1237
000110	000207 				1$:	RTS	PC				;					1188

; Routine Size:  37 words,	Routine Base:  $CODE$ + 1506
; Maximum stack depth per invocation:  6 words


;	  1241	
;	  1242	
;	  1243	
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  26
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (11)

;	  1244	global routine CTL_RECVD ( PDB) : CALL$  novalue =	!
;	  1245	
;	  1246	!++
;	  1247	! FUNCTIONAL DESCRIPTION:
;	  1248	!	This routine attempts to clear out BUFFctl queue if non-zero.
;	  1249	!
;	  1250	! FORMAL PARAMETERS:
;	  1251	!	PDB = Port Data Base address
;	  1252	!
;	  1253	! IMPLICIT INPUTS:
;	  1254	!	DB = NSP data base address
;	  1255	!
;	  1256	! IMPLICIT OUTPUTS:
;	  1257	!	None
;	  1258	!
;	  1259	! ROUTINE VALUE:
;	  1260	! COMPLETION CODES:
;	  1261	!	None
;	  1262	!
;	  1263	! SIDE EFFECTS:
;	  1264	!	None
;	  1265	!--
;	  1266	
;	  1267		begin
;	  1268		map PDB: ref block field(PORT_fields);
;	  1269	
;	  1270		local
;	  1271		GOT_CCB: ref block field(C_fields),
;	  1272		CA_CCB: ref block field(C_fields);	
;	  1273	
;	  1274		Selectone .PDB[PORTstate] of
;	  1275		Set
;	  1276		[N$SNR, N$SRUN, N$SRJ]:
;	  1277	
;	  1278			begin
;	  1279			If CCB_GET(GOT_CCB, .PDB)
;	  1280			Then
;	  1281				begin
;	  1282				GOT_CCB[C_STK] = .PDB[BUFFctl];
;	  1283				C_STSE( .GOT_CCB, .PDB);
;	  1284				PDB[BUFFctl] = 0
;	  1285				End
;	  1286			Else
;	  1287				return;
;	  1288			end;
;	  1289	
;	  1290		[N$SDN]:
;	  1291	
;	  1292			begin
;	  1293			If CCB_GET(GOT_CCB, .PDB)
;	  1294			Then
;	  1295				begin
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  27
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (11)

;	  1296				GOT_CCB[C_STK] = .PDB[BUFFctl];
;	  1297				DSC_RECVD( .GOT_CCB, .PDB);
;	  1298				PDB[BUFFctl] = 0
;	  1299				end
;	  1300			Else
;	  1301				return
;	  1302			end;
;	  1303	
;	  1304		[N$SCR]:
;	  1305	
;	  1306			begin
;	  1307			If CCB_GET( GOT_CCB, .PDB)
;	  1308			Then
;	  1309				begin
;	  1310				If not CCB_HDR_GET( 0, CA_CCB, .PDB)
;	  1311				Then
;	  1312					begin
;	  1313					CCB_RETRN( .GOT_CCB, .PDB);
;	  1314					return
;	  1315					end;
;	  1316				CA_BLD( .CA_CCB, .PDB);
;	  1317				GOT_CCB[C_STK] = .PDB[BUFFctl];
;	  1318				CI_RECVD( .GOT_CCB, .PDB);
;	  1319				PDB[BUFFctl] = 0;
;	  1320				end
;	  1321			Else
;	  1322				return;
;	  1323			end;
;	  1324	
;	  1325		[N$SCN]:
;	  1326	
;	  1327			begin
;	  1328			If CCB_GET(GOT_CCB, .PDB)
;	  1329			Then
;	  1330				begin
;	  1331				CALL$L( NSP_CONFIDENCE, .GOT_CCB, .PDB);
;	  1332				CA_CCB = .PDB[BUFFctl];
;	  1333				CA_CCB[C_FNC] = FC_RCE;
;	  1334				LLCRS$( .CA_CCB);
;	  1335				CALL$L( FLUSH_QUEUES,  .PDB, N$EABR);
;	  1336				end
;	  1337			Else
;	  1338				return;
;	  1339			end;
;	  1340	
;	  1341		Tes;
;	  1342		end;


						.SBTTL	CTL.RECVD
000000	024646 				CTL.RECVD::
					U.18:	CMP	-(SP),-(SP)			;					1244
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  28
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (11)

000002	016505  000002 				MOV	2(R5),R5			; PDB(.AP.),*				1274
000006	121527  000007 				CMPB	(R5),#7
000012	001406 					BEQ	1$
000014	121527  000012 				CMPB	(R5),#12
000020	002426 					BLT	2$
000022	121527  000013 				CMPB	(R5),#13
000026	003023 					BGT	2$
000030	012746  000004 			1$:	MOV	#4,-(SP)			;					1279
000034	060616 					ADD	SP,(SP)				; GOT.CCB,*
000036	010546 					MOV	R5,-(SP)
000040	004767  177506 				JSR	PC,U.16
000044	022626 					CMP	(SP)+,(SP)+
000046	006000 					ROR	R0
000050	103175 					BCC	9$
000052	016600  000002 				MOV	2(SP),R0			; GOT.CCB,*				1282
000056	016560  000050  000004 			MOV	50(R5),4(R0)
000064	010046 					MOV	R0,-(SP)			; GOT.CCB,*				1283
000066	010546 					MOV	R5,-(SP)
000070	004767  000000V				JSR	PC,U.19
000074	000425 					BR	3$				;					1284
000076	121527  000016 			2$:	CMPB	(R5),#16			;					1274
000102	001025 					BNE	4$
000104	012746  000004 				MOV	#4,-(SP)			;					1293
000110	060616 					ADD	SP,(SP)				; GOT.CCB,*
000112	010546 					MOV	R5,-(SP)
000114	004767  177432 				JSR	PC,U.16
000120	022626 					CMP	(SP)+,(SP)+
000122	006000 					ROR	R0
000124	103147 					BCC	9$
000126	016600  000002 				MOV	2(SP),R0			; GOT.CCB,*				1296
000132	016560  000050  000004 			MOV	50(R5),4(R0)
000140	010046 					MOV	R0,-(SP)			; GOT.CCB,*				1297
000142	010546 					MOV	R5,-(SP)
000144	004767  000000V				JSR	PC,U.25
000150	005065  000050 			3$:	CLR	50(R5)				;					1298
000154	000434 					BR	5$				;					1295
000156	121527  000002 			4$:	CMPB	(R5),#2				;					1274
000162	001053 					BNE	7$
000164	012746  000004 				MOV	#4,-(SP)			;					1307
000170	060616 					ADD	SP,(SP)				; GOT.CCB,*
000172	010546 					MOV	R5,-(SP)
000174	004767  177352 				JSR	PC,U.16
000200	022626 					CMP	(SP)+,(SP)+
000202	006000 					ROR	R0
000204	103117 					BCC	9$
000206	005046 					CLR	-(SP)				;					1310
000210	012746  000004 				MOV	#4,-(SP)
000214	060616 					ADD	SP,(SP)				; CA.CCB,*
000216	010546 					MOV	R5,-(SP)
000220	004767  177150 				JSR	PC,U.15
000224	062706  000006 				ADD	#6,SP
000230	006000 					ROR	R0
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  29
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (11)

000232	103407 					BLO	6$
000234	016646  000002 				MOV	2(SP),-(SP)			; GOT.CCB,*				1313
000240	010546 					MOV	R5,-(SP)
000242	004767  177420 				JSR	PC,U.17
000246	022626 				5$:	CMP	(SP)+,(SP)+			;					1310
000250	000475 					BR	9$				;					1312
000252	011646 				6$:	MOV	(SP),-(SP)			; CA.CCB,*				1316
000254	010546 					MOV	R5,-(SP)
000256	004767  176022 				JSR	PC,U.8
000262	016600  000006 				MOV	6(SP),R0			; GOT.CCB,*				1317
000266	016560  000050  000004 			MOV	50(R5),4(R0)
000274	010016 					MOV	R0,(SP)				; GOT.CCB,*				1318
000276	010546 					MOV	R5,-(SP)
000300	004767  000000V				JSR	PC,U.11
000304	005065  000050 				CLR	50(R5)				;					1319
000310	000453 					BR	8$				;					1309
000312	121527  000020 			7$:	CMPB	(R5),#20			;					1274
000316	001052 					BNE	9$
000320	012746  000004 				MOV	#4,-(SP)			;					1328
000324	060616 					ADD	SP,(SP)				; GOT.CCB,*
000326	010546 					MOV	R5,-(SP)
000330	004767  177216 				JSR	PC,U.16
000334	022626 					CMP	(SP)+,(SP)+
000336	006000 					ROR	R0
000340	103041 					BCC	9$
000342	010546 					MOV	R5,-(SP)			;					1331
000344	016646  000004 				MOV	4(SP),-(SP)			; GOT.CCB,*
000350	012746  000002 				MOV	#2,-(SP)
000354	012746  000000V				MOV	#U.33,-(SP)
000360	004767  000000G				JSR	PC,$CALL
000364	022626 					CMP	(SP)+,(SP)+
000366	016566  000050  000004 			MOV	50(R5),4(SP)			; *,CA.CCB				1332
000374	016600  000004 				MOV	4(SP),R0			; CA.CCB,*				1333
000400	112760  000004  000012 			MOVB	#4,12(R0)
000406	010004 					MOV	R0,R4				; CA.CCB,*				1334
000410	004767  000000G				JSR	PC,$SCHED
000414	012716  177773 				MOV	#-5,(SP)			;					1335
000420	010546 					MOV	R5,-(SP)
000422	012746  000002 				MOV	#2,-(SP)
000426	012746  000000V				MOV	#U.29,-(SP)
000432	004767  000000G				JSR	PC,$CALL
000436	022626 					CMP	(SP)+,(SP)+
000440	062706  000006 			8$:	ADD	#6,SP				;					1330
000444	022626 				9$:	CMP	(SP)+,(SP)+			;					1244
000446	000207 					RTS	PC

; Routine Size:  148 words,	Routine Base:  $CODE$ + 1620
; Maximum stack depth per invocation:  8 words


;	  1343	
;	  1344	
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  30
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (11)

;	  1345	
;	  1346	
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  31
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (12)

;	  1347	routine C_STSE   ( CCB, PDB):  novalue = !
;	  1348	
;	  1349	!++
;	  1350	! FUNCTIONAL DESCRIPTION:
;	  1351	!	This routine generates a CONNECT-STATUS call to Session Control.
;	  1352	!
;	  1353	! FORMAL PARAMETERS:
;	  1354	!	CCB = CCB address
;	  1355	!	PDB = Port Data Base address
;	  1356	!
;	  1357	! IMPLICIT INPUTS:
;	  1358	!	DB = NSP data base address
;	  1359	!
;	  1360	! IMPLICIT OUTPUTS:
;	  1361	!	None
;	  1362	!
;	  1363	! ROUTINE VALUE:
;	  1364	! COMPLETION CODES:
;	  1365	!	None
;	  1366	!
;	  1367	! SIDE EFFECTS:
;	  1368	!	None
;	  1369	!--
;	  1370	
;	  1371	
;	  1372		begin
;	  1373		map PDB: ref block field(PORT_fields);
;	  1374		map CCB: ref block field(C_fields);
;	  1375	
;	  1376		bind STK_CCB = .CCB[C_STK]: block field(C_fields);
;	  1377	
;	  1378		CCB[C_FNC] = FC_RCP;
;	  1379		CCB[C_MOD] = N_SCNS;
;	  1380		CCB[C_LIX] = .PDB[PID];
;	  1381		CCB[C_BIAS] = .STK_CCB[C_BIAS];
;	  1382	
;	  1383		Selectone .PDB[PORTstate] of
;	  1384		Set
;	  1385	
;	  1386		[N$SNR]:
;	  1387			begin
;	  1388			CCB[C_STS] = N$EOPN;
;	  1389			CCB[C_CNT] = 0;
;	  1390			CCB[C_ADDR] = 0;
;	  1391			end;
;	  1392	
;	  1393		[N$SRJ]:
;	  1394			begin
;	  1395			CCB[C_STS] = N$SREJ;
;	  1396			CCB[C_CNT] = .STK_CCB[C_CNT] - DI_SIZE;
;	  1397			CCB[C_ADDR] = ch$plus(.STK_CCB[C_ADDR], DI_SIZE);
;	  1398			end;
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  32
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (12)

;	  1399	
;	  1400		[N$SRUN]:
;	  1401			begin
;	  1402			CCB[C_STS] = N$SACC;
;	  1403			CCB[C_CNT] = .STK_CCB[C_CNT] - CC_SIZE;
;	  1404			CCB[C_ADDR] = ch$plus(.STK_CCB[C_ADDR], CC_SIZE);
;	  1405			end;
;	  1406		Tes;
;	  1407		CCB[C_PIX] = .DB[NSPsc_pix];
;	  1408		LLCRS$( .CCB);
;	  1409		end;


						.SBTTL	C.STSE
000000	004167  000000G			; C.STSE
					U.19:	JSR	R1,$SAVE4			;					1347
000004	016604  000016 				MOV	16(SP),R4			; CCB,*					1376
000010	016401  000004 				MOV	4(R4),R1			;					1372
000014	112764  000016  000012 			MOVB	#16,12(R4)			;					1378
000022	112764  000002  000013 			MOVB	#2,13(R4)			;					1379
000030	016600  000014 				MOV	14(SP),R0			; PDB,*					1380
000034	116064  000004  000010 			MOVB	4(R0),10(R4)
000042	016164  000016  000016 			MOV	16(R1),16(R4)			;					1381
000050	111000 					MOVB	(R0),R0				; PDB,*					1383
000052	020027  000007 				CMP	R0,#7
000056	001010 					BNE	1$
000060	012764  177774  000014 			MOV	#-4,14(R4)			;					1388
000066	005064  000022 				CLR	22(R4)				;					1389
000072	005064  000020 				CLR	20(R4)				;					1390
000076	000445 					BR	3$				;					1383
000100	020027  000012 			1$:	CMP	R0,#12
000104	001020 					BNE	2$
000106	012764  000003  000014 			MOV	#3,14(R4)			;					1395
000114	016164  000022  000022 			MOV	22(R1),22(R4)			;					1396
000122	162764  000005  000022 			SUB	#5,22(R4)
000130	016164  000020  000020 			MOV	20(R1),20(R4)			;					1397
000136	062764  000005  000020 			ADD	#5,20(R4)
000144	000422 					BR	3$				;					1383
000146	020027  000013 			2$:	CMP	R0,#13
000152	001017 					BNE	3$
000154	012764  000002  000014 			MOV	#2,14(R4)			;					1402
000162	016164  000022  000022 			MOV	22(R1),22(R4)			;					1403
000170	162764  000011  000022 			SUB	#11,22(R4)
000176	016164  000020  000020 			MOV	20(R1),20(R4)			;					1404
000204	062764  000011  000020 			ADD	#11,20(R4)
000212	016700  000002G			3$:	MOV	.CRDAT+2,R0			;					1407
000216	116064  000044  000011 			MOVB	44(R0),11(R4)
000224	004767  000000G				JSR	PC,$SCHED			;					1408
000230	000207 					RTS	PC				;					1347

; Routine Size:  77 words,	Routine Base:  $CODE$ + 2270
; Maximum stack depth per invocation:  6 words
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  33
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (12)

;	  1410	
;	  1411	
;	  1412	
;	  1413	
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  34
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (13)

;	  1414	global routine CI_BLD  ( CCB, PDB) :CALL$ novalue =	!
;	  1415		
;	  1416	!++
;	  1417	! FUNCTIONAL DESCRIPTION:
;	  1418	!	This routine formats an NSP Connect Initiate message.
;	  1419	!
;	  1420	! FORMAL PARAMETERS:
;	  1421	!	CCB = CCB address
;	  1422	!	PDB = Port Data Base Address
;	  1423	!
;	  1424	! IMPLICIT INPUTS:
;	  1425	!	DB = NSP Data Base Address
;	  1426	!
;	  1427	! IMPLICIT OUTPUTS:
;	  1428	!	None
;	  1429	!
;	  1430	! ROUTINE VALUE:
;	  1431	! COMPLETION CODES:
;	  1432	!	None
;	  1433	!
;	  1434	! SIDE EFFECTS:
;	  1435	!	None
;	  1436	!--
;	  1437	
;	  1438		begin
;	  1439		map CCB: ref block field(C_fields);
;	  1440		map PDB: ref block field(PORT_fields);
;	  1441	
;	  1442		local
;	  1443		NDB : ref block field(NODE_fields),
;	  1444		PTR;
;	  1445	
;	  1446		PTR = .CCB[C_ADDR];
;	  1447		NDB = .PDB[NODElnk];
;	  1448		ch$wchar_a( FLG_CI, PTR);
;	  1449		ch$wchar_a( 0, PTR);
;	  1450		ch$wchar_a( 0, PTR);
;	  1451		ch$wchar_a( .PDB[PID], PTR);
;	  1452		ch$wchar_a( .PDB[ADDran], PTR);
;	  1453		ch$wchar_a( .PDB[FLOWloc_typ]^2 + 1, PTR);
;	  1454		ch$wchar_a( 0, PTR);
;	  1455		PUT2BYTES( .DB[NSPbuf], PTR);
;	  1456	
;	  1457		CCB[C_CNT] = ch$diff(.PTR, .CCB[C_ADDR]);
;	  1458		CCB[C_CHN] = .CCB[C_STK];
;	  1459		PDB[DELAYstr_tim] = 1;
;	  1460		MAP$( .DB[BIASnodes]);
;	  1461		NDB[NDc_xmt] = .NDB[NDc_xmt] + 1;
;	  1462		MAP$( .DB[BIASports]);
;	  1463		XPT_XMIT( .CCB, .PDB)
;	  1464		end;
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  35
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (13)


						.SBTTL	CI.BLD
000000	016503  000002 			CI.BLD::
					U.10:	MOV	2(R5),R3			; CCB(.AP.),*				1446
000004	016304  000020 				MOV	20(R3),R4			; *,PTR
000010	016502  000004 				MOV	4(R5),R2			; PDB(.AP.),*				1447
000014	016205  000010 				MOV	10(R2),R5			; *,NDB
000020	112724  000030 				MOVB	#30,(R4)+			; *,PTR					1448
000024	105024 					CLRB	(R4)+				; PTR					1449
000026	105024 					CLRB	(R4)+				; PTR					1450
000030	116224  000004 				MOVB	4(R2),(R4)+			; *,PTR					1451
000034	116224  000005 				MOVB	5(R2),(R4)+			; *,PTR					1452
000040	016200  000040 				MOV	40(R2),R0			;					1453
000044	072027  177772 				ASH	#-6,R0
000050	042700  177763 				BIC	#177763,R0
000054	010001 					MOV	R0,R1
000056	005201 					INC	R1
000060	110124 					MOVB	R1,(R4)+			; *,PTR
000062	105024 					CLRB	(R4)+				; PTR					1454
000064	016701  000002G				MOV	.CRDAT+2,R1			;					1455
000070	016100  000042 				MOV	42(R1),R0			; *,TEMP
000074	110024 					MOVB	R0,(R4)+			; TEMP,PTR
000076	010046 					MOV	R0,-(SP)			; TEMP,*
000100	000316 					SWAB	(SP)
000102	112624 					MOVB	(SP)+,(R4)+			; *,PTR
000104	010463  000022 				MOV	R4,22(R3)			; PTR,*					1457
000110	166363  000020  000022 			SUB	20(R3),22(R3)
000116	016363  000004  000002 			MOV	4(R3),2(R3)			;					1458
000124	012762  000001  000062 			MOV	#1,62(R2)			;					1459
000132	016167  000030  000000G			MOV	30(R1),KISAR6			;					1460
000140	005265  000032 				INC	32(R5)				; *(NDB)				1461
000144	016167  000014  000000G			MOV	14(R1),KISAR6			;					1462
000152	010346 					MOV	R3,-(SP)			;					1463
000154	010246 					MOV	R2,-(SP)
000156	004767  000000V				JSR	PC,U.42
000162	022626 					CMP	(SP)+,(SP)+			;					1438
000164	000207 					RTS	PC				;					1414

; Routine Size:  59 words,	Routine Base:  $CODE$ + 2522
; Maximum stack depth per invocation:  3 words


;	  1465		
;	  1466		
;	  1467	
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  36
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (14)

;	  1468	routine CI_RECVD   ( CCB, PDB):  novalue = !
;	  1469	
;	  1470	!++
;	  1471	! FUNCTIONAL DESCRIPTION:
;	  1472	!	This routine generates a CONNECT-RECIEVED call to Session
;	  1473	!	Control.
;	  1474	!
;	  1475	! FORMAL PARAMETERS:
;	  1476	!	CCB = CCB address
;	  1477	!	PDB = Port Data Base address
;	  1478	!
;	  1479	! IMPLICIT INPUTS:
;	  1480	!	DB = NSP data base address
;	  1481	
;	  1482	!
;	  1483	! IMPLICIT OUTPUTS:
;	  1484	!	None
;	  1485	!
;	  1486	! ROUTINE VALUE:
;	  1487	! COMPLETION CODES:
;	  1488	!	None
;	  1489	!
;	  1490	! SIDE EFFECTS:
;	  1491	!	None
;	  1492	!--
;	  1493	
;	  1494	
;	  1495		begin
;	  1496		map PDB: ref block field(PORT_fields);
;	  1497		map CCB: ref block field(C_fields);
;	  1498	
;	  1499		bind STK_CCB = .CCB[C_STK]: block field(C_fields);
;	  1500	
;	  1501		CCB[C_FNC] = FC_RCP;
;	  1502		CCB[C_MOD] = N_RCON;
;	  1503		CCB[C_LIX] = .PDB[PID];
;	  1504		CCB[C_CNT] = .STK_CCB[C_CNT] - CI_SIZE;
;	  1505		CCB[C_BIAS] = .STK_CCB[C_BIAS];
;	  1506		CCB[C_ADDR] = ch$plus(.STK_CCB[C_ADDR], CI_SIZE);
;	  1507		CCB[C_PRM1] = .STK_CCB[C_PRM1];
;	  1508		CCB[C_PIX] = .DB[NSPsc_pix];
;	  1509		LLCRS$( .CCB);
;	  1510		end;


						.SBTTL	CI.RECVD
000000	004167  000000G			; CI.RECVD
					U.11:	JSR	R1,$SAVE4			;					1468
000004	016604  000016 				MOV	16(SP),R4			; CCB,*					1499
000010	016401  000004 				MOV	4(R4),R1			;					1495
000014	112764  000016  000012 			MOVB	#16,12(R4)			;					1501
000022	112764  000004  000013 			MOVB	#4,13(R4)			;					1502
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  37
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (14)

000030	016600  000014 				MOV	14(SP),R0			; PDB,*					1503
000034	116064  000004  000010 			MOVB	4(R0),10(R4)
000042	016164  000022  000022 			MOV	22(R1),22(R4)			;					1504
000050	162764  000011  000022 			SUB	#11,22(R4)
000056	016164  000016  000016 			MOV	16(R1),16(R4)			;					1505
000064	016164  000020  000020 			MOV	20(R1),20(R4)			;					1506
000072	062764  000011  000020 			ADD	#11,20(R4)
000100	016164  000024  000024 			MOV	24(R1),24(R4)			;					1507
000106	016700  000002G				MOV	.CRDAT+2,R0			;					1508
000112	116064  000044  000011 			MOVB	44(R0),11(R4)
000120	004767  000000G				JSR	PC,$SCHED			;					1509
000124	000207 					RTS	PC				;					1468

; Routine Size:  43 words,	Routine Base:  $CODE$ + 2710
; Maximum stack depth per invocation:  6 words


;	  1511	
;	  1512	
;	  1513	
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  38
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (15)

;	  1514	global routine CI_RCV   ( CCB, PDB) :CALL$ novalue =	!
;	  1515	
;	  1516	!++
;	  1517	! FUNCTIONAL DESCRIPTION:
;	  1518	!	This routine processes a received Connect Initiate message.
;	  1519	!
;	  1520	! FORMAL PARAMETERS:
;	  1521	!	CCB = CCB address
;	  1522	!	PDB = Port Data Base Address
;	  1523	!
;	  1524	! IMPLICIT INPUTS:
;	  1525	!	DB = NSP Data Base Address
;	  1526	!
;	  1527	! IMPLICIT OUTPUTS:
;	  1528	!	None
;	  1529	!
;	  1530	! ROUTINE VALUE:
;	  1531	! COMPLETION CODES:
;	  1532	!	None
;	  1533	!
;	  1534	! SIDE EFFECTS:
;	  1535	!	None
;	  1536	!--
;	  1537	
;	  1538		begin
;	  1539		map CCB: ref block field(C_fields);
;	  1540		map PDB: ref block field(PORT_fields);
;	  1541	
;	  1542		local
;	  1543		GOT_CCB: ref block field(C_fields),
;	  1544		CA_CCB: ref block field(C_fields),
;	  1545		PTR,
;	  1546		temp;
;	  1547	
;	  1548		bind NODE = .DB[ADDRnodes]: blockvector[0, ND_SIZE] field(NODE_fields);
;	  1549	
;	  1550		PTR = ch$plus( .CCB[C_ADDR], 5 );
;	  1551	
;	  1552		MAP$( .CCB[C_BIAS]);
;	  1553		DB[SERVICES] = ch$rchar_a( PTR);
;	  1554		DB[INFO] = ch$rchar_a( PTR);
;	  1555		DB[SEGSIZE] = GET2BYTES( PTR);
;	  1556		MAP$( .DB[BIASports]);
;	  1557	
;	  1558		If (.DB[FCOPT] neq FLOWrsv) and
;	  1559		(.DB[L_DSTADDR] eql 0 and .DB[H_DSTADDR] eql 0) and
;	  1560		((.DB[SERVICES] and 1) neq 0) and
;	  1561		((.DB[INFO] and %o'374') eql 0)
;	  1562		Then
;	  1563			begin
;	  1564			If not CALL$L( NDB_GET, .CCB, temp)
;	  1565			Then
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  39
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (15)

;	  1566				begin
;	  1567				CALL$L(RESV_PORT, .CCB);
;	  1568				return
;	  1569				end
;	  1570			Else
;	  1571				begin
;	  1572				bind NDB = .temp: block field(NODE_fields);
;	  1573				PDB[NODElnk] = .temp;
;	  1574				MAP$( .DB[BIASnodes]);
;	  1575				NDB[NDc_rcv] = .NDB[NDc_rcv] + 1;
;	  1576				DADD( NDB[NDb_rcv], .CCB[C_CNT] - CI_SIZE);
;	  1577				MAP$( .DB[BIASports]);
;	  1578				PDB[NODErem] = .CCB[C_PRM1];
;	  1579	
;	  1580				If .PDB[NODErem] eql .DB[NSPself]
;	  1581				Then
;	  1582					PDB[CHANNEL] = .CCB[C_LIX]
;	  1583				Else
;	  1584					PDB[CHANNEL] = 0;
;	  1585				PDB[PORTstate] = N$SCR;
;	  1586				DB[NSPmax] = .DB[NSPmax] + 1;
;	  1587				PDB[FLOWtyp_rem] = .DB[FCOPT];
;	  1588				PDB[VERSIONrem] = .DB[VER];
;	  1589				PDB[L_rem_addr] = .DB[L_SRCADDR];
;	  1590				PDB[H_rem_addr] = .DB[H_SRCADDR];
;	  1591				PDB[SIZEseg] = MIN( .DB[SEGSIZE], .DB[NSPbuf]);
;	  1592	
;	  1593				If CCB_GET( GOT_CCB, .PDB)
;	  1594				Then
;	  1595					begin
;	  1596					If not CCB_HDR_GET( 0, CA_CCB, .PDB)
;	  1597					Then
;	  1598						begin
;	  1599						CCB_RETRN( .GOT_CCB, .PDB);
;	  1600						PDB[BUFFctl] = .CCB;
;	  1601						return
;	  1602						end;
;	  1603					CA_BLD( .CA_CCB, .PDB);
;	  1604					GOT_CCB[C_STK] = .CCB;
;	  1605					CI_RECVD( .GOT_CCB, .PDB);
;	  1606					end
;	  1607				Else
;	  1608					PDB[BUFFctl] = .CCB;
;	  1609	
;	  1610				end
;	  1611			end
;	  1612		Else
;	  1613			begin
;	  1614			CCB[C_FNC] = FC_RCE;
;	  1615			LLCRS$( .CCB)
;	  1616			end
;	  1617		end;
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  40
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (15)



						.SBTTL	CI.RCV
000000	162706  000006 			CI.RCV::
					U.12:	SUB	#6,SP				;					1514
000004	016702  000002G				MOV	.CRDAT+2,R2			;					1548
000010	016504  000002 				MOV	2(R5),R4			; CCB(.AP.),*				1550
000014	016400  000020 				MOV	20(R4),R0			; *,PTR
000020	016467  000016  000000G			MOV	16(R4),KISAR6			;					1552
000026	012703  000070 				MOV	#70,R3				;					1553
000032	060203 					ADD	R2,R3
000034	062700  000005 				ADD	#5,R0				; *,PTR
000040	112013 					MOVB	(R0)+,(R3)			; PTR,*
000042	112062  000072 				MOVB	(R0)+,72(R2)			; PTR,*					1554
000046	105001 					CLRB	R1				; TEMP					1555
000050	152001 					BISB	(R0)+,R1			; PTR,TEMP
000052	010146 					MOV	R1,-(SP)			; TEMP,*
000054	112066  000001 				MOVB	(R0)+,1(SP)			; PTR,*
000060	012601 					MOV	(SP)+,R1			; *,TEMP
000062	010162  000066 				MOV	R1,66(R2)			; TEMP,*
000066	016267  000014  000000G			MOV	14(R2),KISAR6			;					1556
000074	012700  000014 				MOV	#14,R0				;					1558
000100	141300 					BICB	(R3),R0
000102	001410 					BEQ	1$
000104	105762  000053 				TSTB	53(R2)				;					1559
000110	001013 					BNE	4$
000112	105762  000054 				TSTB	54(R2)
000116	001010 					BNE	4$
000120	132713  000001 				BITB	#1,(R3)				;					1560
000124	001002 				1$:	BNE	3$
000126	000167  000466 			2$:	JMP	13$
000132	132762  000374  000072 		3$:	BITB	#374,72(R2)			;					1561
000140	001372 				4$:	BNE	2$
000142	012746  000006 				MOV	#6,-(SP)			;					1564
000146	060616 					ADD	SP,(SP)				; TEMP,*
000150	010446 					MOV	R4,-(SP)
000152	012746  000002 				MOV	#2,-(SP)
000156	012746  000000V				MOV	#U.30,-(SP)
000162	004767  000000G				JSR	PC,$CALL
000166	062706  000010 				ADD	#10,SP
000172	006000 					ROR	R0
000174	103410 					BLO	5$
000176	010446 					MOV	R4,-(SP)			;					1567
000200	012746  000001 				MOV	#1,-(SP)
000204	012746  000000V				MOV	#U.34,-(SP)
000210	004767  000000G				JSR	PC,$CALL
000214	000553 					BR	9$				;					1564
000216	016601  000004 			5$:	MOV	4(SP),R1			; TEMP,*				1572
000222	016502  000004 				MOV	4(R5),R2			; PDB(.AP.),*				1573
000226	010162  000010 				MOV	R1,10(R2)
000232	016700  000002G				MOV	.CRDAT+2,R0			;					1574
000236	016067  000030  000000G			MOV	30(R0),KISAR6
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  41
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (15)

000244	005261  000030 				INC	30(R1)				;					1575
000250	010146 					MOV	R1,-(SP)			;					1576
000252	062716  000010 				ADD	#10,(SP)
000256	016446  000022 				MOV	22(R4),-(SP)
000262	162716  000011 				SUB	#11,(SP)
000266	004767  000000V				JSR	PC,U.20
000272	016701  000002G				MOV	.CRDAT+2,R1			;					1577
000276	016167  000014  000000G			MOV	14(R1),KISAR6
000304	016462  000024  000002 			MOV	24(R4),2(R2)			;					1578
000312	026261  000002  000002 			CMP	2(R2),2(R1)			;					1580
000320	001004 					BNE	6$
000322	116462  000010  000001 			MOVB	10(R4),1(R2)			;					1582
000330	000402 					BR	7$				;					1580
000332	105062  000001 			6$:	CLRB	1(R2)				;					1584
000336	112712  000002 			7$:	MOVB	#2,(R2)				;					1585
000342	005261  000012 				INC	12(R1)				;					1586
000346	116100  000070 				MOVB	70(R1),R0			;					1587
000352	072027  000011 				ASH	#11,R0
000356	042700  163777 				BIC	#163777,R0
000362	042762  014000  000040 			BIC	#14000,40(R2)
000370	050062  000040 				BIS	R0,40(R2)
000374	116100  000072 				MOVB	72(R1),R0			;					1588
000400	006300 					ASL	R0
000402	006300 					ASL	R0
000404	042700  177763 				BIC	#177763,R0
000410	142762  000014  000042 			BICB	#14,42(R2)
000416	150062  000042 				BISB	R0,42(R2)
000422	116162  000055  000006 			MOVB	55(R1),6(R2)			;					1589
000430	116162  000056  000007 			MOVB	56(R1),7(R2)			;					1590
000436	016100  000066 				MOV	66(R1),R0			;					1591
000442	020061  000042 				CMP	R0,42(R1)
000446	003402 					BLE	8$
000450	016100  000042 				MOV	42(R1),R0
000454	010062  000072 			8$:	MOV	R0,72(R2)
000460	012716  000006 				MOV	#6,(SP)				;					1593
000464	060616 					ADD	SP,(SP)				; GOT.CCB,*
000466	010246 					MOV	R2,-(SP)
000470	004767  175640 				JSR	PC,U.16
000474	005726 					TST	(SP)+
000476	006000 					ROR	R0
000500	103043 					BCC	11$
000502	005016 					CLR	(SP)				;					1596
000504	012746  000006 				MOV	#6,-(SP)
000510	060616 					ADD	SP,(SP)				; CA.CCB,*
000512	010246 					MOV	R2,-(SP)
000514	004767  175436 				JSR	PC,U.15
000520	022626 					CMP	(SP)+,(SP)+
000522	006000 					ROR	R0
000524	103412 					BLO	10$
000526	016616  000006 				MOV	6(SP),(SP)			; GOT.CCB,*				1599
000532	010246 					MOV	R2,-(SP)
000534	004767  175710 				JSR	PC,U.17
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  42
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (15)

000540	010462  000050 				MOV	R4,50(R2)			;					1600
000544	062706  000006 			9$:	ADD	#6,SP				;					1596
000550	000430 					BR	14$				;					1598
000552	016616  000004 			10$:	MOV	4(SP),(SP)			; CA.CCB,*				1603
000556	010246 					MOV	R2,-(SP)
000560	004767  174302 				JSR	PC,U.8
000564	016600  000010 				MOV	10(SP),R0			; GOT.CCB,*				1604
000570	010460  000004 				MOV	R4,4(R0)
000574	010016 					MOV	R0,(SP)				; GOT.CCB,*				1605
000576	010246 					MOV	R2,-(SP)
000600	004767  177046 				JSR	PC,U.11
000604	022626 					CMP	(SP)+,(SP)+			;					1595
000606	000402 					BR	12$				;					1593
000610	010462  000050 			11$:	MOV	R4,50(R2)			;					1608
000614	022626 				12$:	CMP	(SP)+,(SP)+			;					1571
000616	000405 					BR	14$				;					1558
000620	112764  000004  000012 		13$:	MOVB	#4,12(R4)			;					1614
000626	004767  000000G				JSR	PC,$SCHED			;					1615
000632	062706  000006 			14$:	ADD	#6,SP				;					1514
000636	000207 					RTS	PC

; Routine Size:  208 words,	Routine Base:  $CODE$ + 3036
; Maximum stack depth per invocation:  8 words


;	  1618	
;	  1619	
;	  1620	
;	  1621	
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  43
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (16)

;	  1622	routine DADD ( double_word, value ) :novalue =		!
;	  1623	
;	  1624	!++
;	  1625	! FUNCTIONAL DESCRIPTION:
;	  1626	!	This routine performs double percision arithemitic.
;	  1627	!
;	  1628	! FORMAL PARAMETERS:
;	  1629	!	DOUBLE_WORD = address to add VALUE to
;	  1630	!	VALUE = value to add to DOUBLE_WORD
;	  1631	!
;	  1632	! IMPLICIT INPUTS:
;	  1633	!	None
;	  1634	!
;	  1635	! IMPLICIT OUTPUTS:
;	  1636	!	None
;	  1637	!
;	  1638	! ROUTINE VALUE:
;	  1639	! COMPLETION CODES:
;	  1640	!	None
;	  1641	!
;	  1642	! SIDE EFFECTS:
;	  1643	!	None
;	  1644	!--
;	  1645	
;	  1646	
;	  1647		begin
;	  1648		builtin  ROT;
;	  1649		map double_word: ref block field(long_word);
;	  1650	
;	  1651		if rot(double_word[low] = .double_word[low] + .value, 1)
;	  1652		then
;	  1653			begin
;	  1654			if rot(double_word[hi] = .double_word[hi] + 1, 1)
;	  1655			then
;	  1656				begin
;	  1657				double_word[low] = -1;
;	  1658				double_word[hi] = -1;
;	  1659				end
;	  1660			end
;	  1661		end;


						.SBTTL	DADD
000000	010146 				; DADD
					U.20:	MOV	R1,-(SP)			;					1622
000002	016601  000006 				MOV	6(SP),R1			; DOUBLE.WORD,*				1651
000006	011100 					MOV	(R1),R0
000010	066600  000004 				ADD	4(SP),R0			; VALUE,*
000014	010011 					MOV	R0,(R1)
000016	103013 					BCC	1$
000020	016100  000002 				MOV	2(R1),R0			;					1654
000024	062700  000001 				ADD	#1,R0
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  44
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (16)

000030	010061  000002 				MOV	R0,2(R1)
000034	103004 					BCC	1$
000036	012711  177777 				MOV	#-1,(R1)			;					1657
000042	011161  000002 				MOV	(R1),2(R1)			;					1658
000046	012601 				1$:	MOV	(SP)+,R1			;					1622
000050	000207 					RTS	PC

; Routine Size:  21 words,	Routine Base:  $CODE$ + 3676
; Maximum stack depth per invocation:  2 words


;	  1662	
;	  1663	
;	  1664	
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  45
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (17)

;	  1665	global routine DC_BLD   ( CCB, PDB) :CALL$ novalue =	!
;	  1666		
;	  1667	!++
;	  1668	! FUNCTIONAL DESCRIPTION:
;	  1669	!	This routine formats an NSP Disconnect Confirm message.
;	  1670	!
;	  1671	! FORMAL PARAMETERS:
;	  1672	!	CCB = CCB address
;	  1673	!	PDB = Port Data Base Address
;	  1674	!
;	  1675	! IMPLICIT INPUTS:
;	  1676	!	DB = NSP Data Base Address
;	  1677	!
;	  1678	! IMPLICIT OUTPUTS:
;	  1679	!	None
;	  1680	!
;	  1681	! ROUTINE VALUE:
;	  1682	! COMPLETION CODES:
;	  1683	!	None
;	  1684	!
;	  1685	! SIDE EFFECTS:
;	  1686	!	None
;	  1687	!--
;	  1688		
;	  1689		begin
;	  1690		map CCB: ref block field(C_fields);
;	  1691		map PDB: ref block field(PORT_fields);
;	  1692		
;	  1693		local
;	  1694		PTR;
;	  1695	
;	  1696		PTR = .CCB[C_ADDR];
;	  1697	
;	  1698		ch$wchar_a( FLG_DC, PTR);
;	  1699		ch$wchar_a( .PDB[L_rem_addr], PTR);
;	  1700		ch$wchar_a( .PDB[H_rem_addr], PTR);
;	  1701		ch$wchar_a( .PDB[PID], PTR);
;	  1702		ch$wchar_a( .PDB[ADDran], PTR);
;	  1703		ch$wchar_a( 42, PTR);
;	  1704		ch$wchar_a( 0, PTR);
;	  1705	
;	  1706		CCB[C_CNT] = ch$diff(.PTR, .CCB[C_ADDR]);
;	  1707		PDB[FLAGsnd_dc] = false;
;	  1708		XPT_XMIT( .CCB, .PDB)	
;	  1709		end;


						.SBTTL	DC.BLD
000000	016501  000002 			DC.BLD::
					U.21:	MOV	2(R5),R1			; CCB(.AP.),*				1696
000004	016100  000020 				MOV	20(R1),R0			; *,PTR
000010	112720  000110 				MOVB	#110,(R0)+			; *,PTR					1698
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  46
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (17)

000014	016505  000004 				MOV	4(R5),R5			; PDB(.AP.),*				1699
000020	116520  000006 				MOVB	6(R5),(R0)+			; *,PTR
000024	116520  000007 				MOVB	7(R5),(R0)+			; *,PTR					1700
000030	116520  000004 				MOVB	4(R5),(R0)+			; *,PTR					1701
000034	116520  000005 				MOVB	5(R5),(R0)+			; *,PTR					1702
000040	112720  000052 				MOVB	#52,(R0)+			; *,PTR					1703
000044	105020 					CLRB	(R0)+				; PTR					1704
000046	010061  000022 				MOV	R0,22(R1)			; PTR,*					1706
000052	166161  000020  000022 			SUB	20(R1),22(R1)
000060	042765  100000  000040 			BIC	#100000,40(R5)			;					1707
000066	010146 					MOV	R1,-(SP)			;					1708
000070	010546 					MOV	R5,-(SP)
000072	004767  000000V				JSR	PC,U.42
000076	022626 					CMP	(SP)+,(SP)+			;					1689
000100	000207 					RTS	PC				;					1665

; Routine Size:  33 words,	Routine Base:  $CODE$ + 3750
; Maximum stack depth per invocation:  3 words


;	  1710	
;	  1711	
;	  1712	
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  47
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (18)

;	  1713	global routine DC_RCV   ( CCB, PDB ) :CALL$ novalue =	!
;	  1714	
;	  1715	!++
;	  1716	! FUNCTIONAL DESCRIPTION:
;	  1717	!	This routine processes a received Disconnect Confirm message.
;	  1718	!
;	  1719	! FORMAL PARAMETERS:
;	  1720	!	CCB = CCB address
;	  1721	!	PDB = Port Data Base Address
;	  1722	!
;	  1723	! IMPLICIT INPUTS:
;	  1724	!	DB = NSP Data Base Address
;	  1725	!
;	  1726	! IMPLICIT OUTPUTS:
;	  1727	!	None
;	  1728	!
;	  1729	! ROUTINE VALUE:
;	  1730	! COMPLETION CODES:
;	  1731	!	None
;	  1732	!
;	  1733	! SIDE EFFECTS:
;	  1734	!	None
;	  1735	!--
;	  1736	
;	  1737		begin
;	  1738		map CCB: ref block field(C_fields);
;	  1739		map PDB: ref block field(PORT_fields);
;	  1740	
;	  1741		local
;	  1742		PTR,
;	  1743		WK_CCB: ref block field(C_fields);
;	  1744	
;	  1745		PTR = ch$plus( .CCB[C_ADDR], 5 );
;	  1746		MAP$( .CCB[C_BIAS]);
;	  1747		DB[REASON] = GET2BYTES( PTR);
;	  1748		MAP$( .DB[BIASports]);
;	  1749	
;	  1750		Selectone .DB[REASON] of
;	  1751		Set
;	  1752		[1]:
;	  1753	
;	  1754			begin
;	  1755			PDB[PORTstate] = N$SNR;
;	  1756			If CCB_GET( WK_CCB, .PDB)
;	  1757			Then
;	  1758				begin
;	  1759				WK_CCB[C_STK] = .CCB;
;	  1760				C_STSE( .WK_CCB, .PDB);
;	  1761				return
;	  1762				end
;	  1763			Else
;	  1764				begin
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  48
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (18)

;	  1765				If .PDB[BUFFctl] eql 0
;	  1766				Then
;	  1767					begin
;	  1768					PDB[BUFFctl] = .CCB;
;	  1769					return
;	  1770					end;
;	  1771				end;
;	  1772			end;
;	  1773		[41]:
;	  1774			begin
;	  1775			If .PDB[PORTstate] eql  N$SCC or
;	  1776			.PDB[PORTstate] eql N$SRUN or
;	  1777			.PDB[PORTstate] eql N$SDR or
;	  1778			.PDB[PORTstate] eql N$SDI
;	  1779			Then
;	  1780				begin
;	  1781				PDB[PORTstate] = N$SCN;
;	  1782				PDB[TIMERcon] = 0;
;	  1783				PDB[TIMERdat] = 0;
;	  1784				PDB[TIMERoth] = 0;
;	  1785				If .PDB[CONFIDENCE]
;	  1786				Then
;	  1787					begin
;	  1788					If CCB_GET( WK_CCB, .PDB)
;	  1789					Then
;	  1790						CALL$L( NSP_CONFIDENCE, .WK_CCB, .PDB)
;	  1791					Else
;	  1792						begin
;	  1793						If .PDB[BUFFctl] eql 0
;	  1794						Then
;	  1795							begin
;	  1796							PDB[BUFFctl] = .CCB;
;	  1797							return
;	  1798							end;
;	  1799		
;	  1800						end;
;	  1801					end;
;	  1802				end;
;	  1803			CALL$L( FLUSH_QUEUES,  .PDB, N$EABR);
;	  1804			end;
;	  1805		[42]:
;	  1806	
;	  1807			begin
;	  1808			If .PDB[PORTstate] eql N$SDR or
;	  1809			.PDB[PORTstate] eql N$SDI or
;	  1810			.PDB[PORTstate] eql N$SDIC
;	  1811			Then
;	  1812				begin
;	  1813				If .PDB[PORTstate] eql N$SDR
;	  1814				Then
;	  1815					PDB[PORTstate] = N$SDRC
;	  1816				Else
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  49
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (18)

;	  1817					PDB[PORTstate] = N$SDIC;
;	  1818				PDB[TIMERcon] = 0;
;	  1819				UPDATE_DELAY( .PDB);
;	  1820	
;	  1821				If CMQRM$( PDB[MSG_queue], WK_CCB)
;	  1822				Then
;	  1823					begin
;	  1824					WK_CCB[C_STS] = N$SSUC;
;	  1825					WK_CCB[C_FNC] = FC_XCP;
;	  1826					LLCRS$( .WK_CCB)
;	  1827					end;
;	  1828				end;
;	  1829			end;
;	  1830		[otherwise]:
;	  1831	
;	  1832			begin
;	  1833			If .PDB[VERSIONrem] eql V3_1 
;	  1834			Then
;	  1835				begin
;	  1836				If .PDB[PORTstate] eql N$SCI
;	  1837				Then
;	  1838					begin
;	  1839					PDB[PORTstate] = N$SRJ;
;	  1840					UPDATE_DELAY( .PDB);
;	  1841	
;	  1842					If CCB_GET( WK_CCB, .PDB)
;	  1843					Then
;	  1844						begin
;	  1845						WK_CCB[C_STK] = .CCB;
;	  1846						C_STSE( .WK_CCB, .PDB);
;	  1847						return
;	  1848						end
;	  1849					Else
;	  1850						begin
;	  1851						If .PDB[BUFFctl] eql 0
;	  1852						Then
;	  1853							begin
;	  1854							PDB[BUFFctl] = .CCB;
;	  1855							return
;	  1856							end;
;	  1857						end
;	  1858					end
;	  1859				Else
;	  1860					begin
;	  1861					If .PDB[PORTstate] eql  N$SCC or
;	  1862					.PDB[PORTstate] eql N$SRUN or
;	  1863					.PDB[PORTstate] eql N$SDR or
;	  1864					.PDB[PORTstate] eql N$SDI
;	  1865					Then
;	  1866						begin
;	  1867						PDB[PORTstate] = N$SCN;
;	  1868						PDB[TIMERcon] = 0;
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  50
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (18)

;	  1869						PDB[TIMERdat] = 0;
;	  1870						PDB[TIMERoth] = 0;
;	  1871						If .PDB[CONFIDENCE]
;	  1872						Then
;	  1873							begin
;	  1874							If CCB_GET( WK_CCB, .PDB)
;	  1875							Then
;	  1876								CALL$L( NSP_CONFIDENCE, .WK_CCB, .PDB)
;	  1877							Else
;	  1878								begin
;	  1879								If .PDB[BUFFctl] eql 0
;	  1880								Then
;	  1881									begin
;	  1882									PDB[BUFFctl] = .CCB;
;	  1883									return
;	  1884									end;
;	  1885								end;
;	  1886							end;
;	  1887						end;					
;	  1888					end;
;	  1889				CALL$L( FLUSH_QUEUES,  .PDB, N$EABR);
;	  1890				end;
;	  1891			end;
;	  1892		Tes;
;	  1893		CCB[C_FNC] = FC_RCE;
;	  1894		LLCRS$( .CCB)
;	  1895		end;


						.SBTTL	DC.RCV
000000	005746 				DC.RCV::
					U.22:	TST	-(SP)				;					1713
000002	016501  000002 				MOV	2(R5),R1			; CCB(.AP.),*				1745
000006	016100  000020 				MOV	20(R1),R0			; *,PTR
000012	016167  000016  000000G			MOV	16(R1),KISAR6			;					1746
000020	016704  000002G				MOV	.CRDAT+2,R4			;					1747
000024	062700  000005 				ADD	#5,R0				; *,PTR
000030	105003 					CLRB	R3				; TEMP
000032	152003 					BISB	(R0)+,R3			; PTR,TEMP
000034	010346 					MOV	R3,-(SP)			; TEMP,*
000036	112066  000001 				MOVB	(R0)+,1(SP)			; PTR,*
000042	012603 					MOV	(SP)+,R3			; *,TEMP
000044	010364  000064 				MOV	R3,64(R4)			; TEMP,*
000050	010400 					MOV	R4,R0				; DB,*					1748
000052	016067  000014  000000G			MOV	14(R0),KISAR6
000060	010300 					MOV	R3,R0				;					1750
000062	020027  000001 				CMP	R0,#1
000066	001026 					BNE	2$
000070	016503  000004 				MOV	4(R5),R3			; PDB(.AP.),*				1755
000074	112713  000007 				MOVB	#7,(R3)
000100	012746  000002 				MOV	#2,-(SP)			;					1756
000104	060616 					ADD	SP,(SP)				; WK.CCB,*
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  51
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (18)

000106	010346 					MOV	R3,-(SP)
000110	004767  175204 				JSR	PC,U.16
000114	022626 					CMP	(SP)+,(SP)+
000116	006000 					ROR	R0
000120	103005 					BCC	1$
000122	011600 					MOV	(SP),R0				; WK.CCB,*				1759
000124	010160  000004 				MOV	R1,4(R0)
000130	010046 					MOV	R0,-(SP)			; WK.CCB,*				1760
000132	000576 					BR	14$
000134	005763  000050 			1$:	TST	50(R3)				;					1765
000140	001144 					BNE	13$
000142	000452 					BR	5$				;					1768
000144	020027  000051 			2$:	CMP	R0,#51				;					1750
000150	001052 					BNE	6$
000152	016503  000004 				MOV	4(R5),R3			; PDB(.AP.),*				1775
000156	121327  000005 				CMPB	(R3),#5
000162	001411 					BEQ	3$
000164	121327  000013 				CMPB	(R3),#13			;					1776
000170	001406 					BEQ	3$
000172	121327  000003 				CMPB	(R3),#3				;					1777
000176	001403 					BEQ	3$
000200	121327  000014 				CMPB	(R3),#14			;					1778
000204	001167 					BNE	18$
000206	112713  000020 			3$:	MOVB	#20,(R3)			;					1781
000212	005063  000016 				CLR	16(R3)				;					1782
000216	005063  000012 				CLR	12(R3)				;					1783
000222	005063  000014 				CLR	14(R3)				;					1784
000226	131363  000042 				BITB	(R3),42(R3)			;					1785
000232	001554 					BEQ	18$
000234	012746  000002 				MOV	#2,-(SP)			;					1788
000240	060616 					ADD	SP,(SP)				; WK.CCB,*
000242	010346 					MOV	R3,-(SP)
000244	004767  175050 				JSR	PC,U.16
000250	022626 					CMP	(SP)+,(SP)+
000252	006000 					ROR	R0
000254	103002 					BHIS	4$				;					1790
000256	000167  000404 				JMP	22$
000262	005763  000050 			4$:	TST	50(R3)				;					1793
000266	001152 					BNE	20$
000270	010163  000050 			5$:	MOV	R1,50(R3)			;					1796
000274	000531 					BR	16$				;					1795
000276	020027  000052 			6$:	CMP	R0,#52				;					1750
000302	001053 					BNE	12$
000304	016503  000004 				MOV	4(R5),R3			; PDB(.AP.),*				1808
000310	005000 					CLR	R0
000312	121327  000003 				CMPB	(R3),#3
000316	001002 					BNE	7$
000320	005200 					INC	R0
000322	000406 					BR	8$
000324	121327  000014 			7$:	CMPB	(R3),#14			;					1809
000330	001403 					BEQ	8$
000332	121327  000015 				CMPB	(R3),#15			;					1810
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  52
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (18)

000336	001045 					BNE	13$
000340	006000 				8$:	ROR	R0				;					1813
000342	103003 					BCC	9$
000344	112713  000004 				MOVB	#4,(R3)				;					1815
000350	000402 					BR	10$				;					1813
000352	112713  000015 			9$:	MOVB	#15,(R3)			;					1817
000356	005063  000016 			10$:	CLR	16(R3)				;					1818
000362	010346 					MOV	R3,-(SP)			;					1819
000364	004767  000000V				JSR	PC,U.41
000370	062703  000102 				ADD	#102,R3				;					1821
000374	004767  000000G				JSR	PC,$CMQRM
000400	103412 					BCS	11$
000402	010466  000002 				MOV	R4,2(SP)			; $MCB$R4,WK.CCB
000406	012764  000001  000014 			MOV	#1,14(R4)			;					1824
000414	112764  000014  000012 			MOVB	#14,12(R4)			;					1825
000422	004767  000000G				JSR	PC,$SCHED			;					1826
000426	005726 				11$:	TST	(SP)+				;					1812
000430	000554 					BR	25$				;					1750
000432	016503  000004 			12$:	MOV	4(R5),R3			; PDB(.AP.),*				1833
000436	116300  000042 				MOVB	42(R3),R0
000442	042700  177763 				BIC	#177763,R0
000446	020027  000004 				CMP	R0,#4
000452	001143 				13$:	BNE	25$
000454	121327  000006 				CMPB	(R3),#6				;					1836
000460	001042 					BNE	19$
000462	112713  000012 				MOVB	#12,(R3)			;					1839
000466	010346 					MOV	R3,-(SP)			;					1840
000470	004767  000000V				JSR	PC,U.41
000474	012716  000002 				MOV	#2,(SP)				;					1842
000500	060616 					ADD	SP,(SP)				; WK.CCB,*
000502	010346 					MOV	R3,-(SP)
000504	004767  174610 				JSR	PC,U.16
000510	005726 					TST	(SP)+
000512	006000 					ROR	R0
000514	103012 					BCC	15$
000516	016600  000002 				MOV	2(SP),R0			; WK.CCB,*				1845
000522	010160  000004 				MOV	R1,4(R0)
000526	010016 					MOV	R0,(SP)				; WK.CCB,*				1846
000530	010346 				14$:	MOV	R3,-(SP)
000532	004767  175460 				JSR	PC,U.19
000536	022626 					CMP	(SP)+,(SP)+			;					1842
000540	000516 					BR	26$				;					1844
000542	012700  000050 			15$:	MOV	#50,R0				;					1851
000546	060300 					ADD	R3,R0
000550	005710 					TST	(R0)
000552	001003 					BNE	17$
000554	010110 					MOV	R1,(R0)				;					1854
000556	005726 					TST	(SP)+				;					1851
000560	000506 				16$:	BR	26$				;					1853
000562	005726 				17$:	TST	(SP)+				;					1838
000564	000463 				18$:	BR	24$				;					1836
000566	121327  000005 			19$:	CMPB	(R3),#5				;					1861
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  53
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (18)

000572	001411 					BEQ	21$
000574	121327  000013 				CMPB	(R3),#13			;					1862
000600	001406 					BEQ	21$
000602	121327  000003 				CMPB	(R3),#3				;					1863
000606	001403 					BEQ	21$
000610	121327  000014 				CMPB	(R3),#14			;					1864
000614	001047 				20$:	BNE	24$
000616	112713  000020 			21$:	MOVB	#20,(R3)			;					1867
000622	005063  000016 				CLR	16(R3)				;					1868
000626	005063  000012 				CLR	12(R3)				;					1869
000632	005063  000014 				CLR	14(R3)				;					1870
000636	131363  000042 				BITB	(R3),42(R3)			;					1871
000642	001434 					BEQ	24$
000644	012746  000002 				MOV	#2,-(SP)			;					1874
000650	060616 					ADD	SP,(SP)				; WK.CCB,*
000652	010346 					MOV	R3,-(SP)
000654	004767  174440 				JSR	PC,U.16
000660	022626 					CMP	(SP)+,(SP)+
000662	006000 					ROR	R0
000664	103014 					BCC	23$
000666	010346 				22$:	MOV	R3,-(SP)			;					1876
000670	016646  000002 				MOV	2(SP),-(SP)			; WK.CCB,*
000674	012746  000002 				MOV	#2,-(SP)
000700	012746  000000V				MOV	#U.33,-(SP)
000704	004767  000000G				JSR	PC,$CALL
000710	062706  000010 				ADD	#10,SP
000714	000407 					BR	24$				;					1874
000716	012700  000050 			23$:	MOV	#50,R0				;					1879
000722	060300 					ADD	R3,R0
000724	005710 					TST	(R0)
000726	001002 					BNE	24$
000730	010110 					MOV	R1,(R0)				;					1882
000732	000421 					BR	26$				;					1881
000734	012746  177773 			24$:	MOV	#-5,-(SP)			;					1889
000740	010346 					MOV	R3,-(SP)
000742	012746  000002 				MOV	#2,-(SP)
000746	012746  000000V				MOV	#U.29,-(SP)
000752	004767  000000G				JSR	PC,$CALL
000756	062706  000010 				ADD	#10,SP				;					1835
000762	112761  000004  000012 		25$:	MOVB	#4,12(R1)			;					1893
000770	010104 					MOV	R1,R4				;					1894
000772	004767  000000G				JSR	PC,$SCHED
000776	005726 				26$:	TST	(SP)+				;					1713
001000	000207 					RTS	PC

; Routine Size:  257 words,	Routine Base:  $CODE$ + 4052
; Maximum stack depth per invocation:  6 words


;	  1896	
;	  1897	
;	  1898	
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  54
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (18)

;	  1899	
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  55
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (19)

;	  1900	global routine DI_BLD   ( CCB, PDB) :CALL$ novalue =!
;	  1901		
;	  1902	!++
;	  1903	! FUNCTIONAL DESCRIPTION:
;	  1904	!	This routine formats an NSP Disconnect Initiate message.
;	  1905	!
;	  1906	! FORMAL PARAMETERS:
;	  1907	!	CCB = CCB address
;	  1908	!	PDB = Port Data Base Address
;	  1909	!
;	  1910	! IMPLICIT INPUTS:
;	  1911	!	DB = NSP Data Base Address
;	  1912	!
;	  1913	! IMPLICIT OUTPUTS:
;	  1914	!	None
;	  1915	!
;	  1916	! ROUTINE VALUE:
;	  1917	! COMPLETION CODES:
;	  1918	!	None
;	  1919	!
;	  1920	! SIDE EFFECTS:
;	  1921	!	None
;	  1922	!--
;	  1923		
;	  1924		begin
;	  1925		map CCB: ref block field(C_fields);
;	  1926		map PDB: ref block field(PORT_fields);
;	  1927	
;	  1928		local
;	  1929		PTR;
;	  1930	
;	  1931		PTR = .CCB[C_ADDR];
;	  1932	
;	  1933		CCB[C_CHN] = .CCB[C_STK];
;	  1934	
;	  1935		ch$wchar_a( FLG_DI, PTR);
;	  1936		ch$wchar_a( .PDB[L_rem_addr], PTR);
;	  1937		ch$wchar_a( .PDB[H_rem_addr], PTR);
;	  1938		ch$wchar_a( .PDB[PID], PTR);
;	  1939		ch$wchar_a( .PDB[ADDran], PTR);
;	  1940	
;	  1941		CCB[C_CNT] = ch$diff(.PTR, .CCB[C_ADDR]);
;	  1942	
;	  1943		If .PDB[DELAYstr_tim] eql 0
;	  1944		Then
;	  1945			PDB[DELAYstr_tim] = 1;
;	  1946		XPT_XMIT( .CCB, .PDB)	
;	  1947		end;


						.SBTTL	DI.BLD
000000	016500  000002 			DI.BLD::
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  56
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (19)

					U.23:	MOV	2(R5),R0			; CCB(.AP.),*				1931
000004	016002  000020 				MOV	20(R0),R2			; *,PTR
000010	016060  000004  000002 			MOV	4(R0),2(R0)			;					1933
000016	112722  000070 				MOVB	#70,(R2)+			; *,PTR					1935
000022	016501  000004 				MOV	4(R5),R1			; PDB(.AP.),*				1936
000026	116122  000006 				MOVB	6(R1),(R2)+			; *,PTR
000032	116122  000007 				MOVB	7(R1),(R2)+			; *,PTR					1937
000036	116122  000004 				MOVB	4(R1),(R2)+			; *,PTR					1938
000042	116122  000005 				MOVB	5(R1),(R2)+			; *,PTR					1939
000046	010260  000022 				MOV	R2,22(R0)			; PTR,*					1941
000052	166060  000020  000022 			SUB	20(R0),22(R0)
000060	012705  000062 				MOV	#62,R5				;					1943
000064	060105 					ADD	R1,R5
000066	005715 					TST	(R5)
000070	001002 					BNE	1$
000072	012715  000001 				MOV	#1,(R5)				;					1945
000076	010046 				1$:	MOV	R0,-(SP)			;					1946
000100	010146 					MOV	R1,-(SP)
000102	004767  000000V				JSR	PC,U.42
000106	022626 					CMP	(SP)+,(SP)+			;					1924
000110	000207 					RTS	PC				;					1900

; Routine Size:  37 words,	Routine Base:  $CODE$ + 5054
; Maximum stack depth per invocation:  3 words


;	  1948	
;	  1949		
;	  1950	
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  57
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (20)

;	  1951	global routine DI_RCV   ( CCB, PDB ) :CALL$ novalue =	!
;	  1952	
;	  1953	!++
;	  1954	! FUNCTIONAL DESCRIPTION:
;	  1955	!	This routine processes a received Disconnect Initiate message.
;	  1956	!
;	  1957	! FORMAL PARAMETERS:
;	  1958	!	CCB = CCB address
;	  1959	!	PDB = Port Data Base Address
;	  1960	!
;	  1961	! IMPLICIT INPUTS:
;	  1962	!	DB = NSP Data Base Address
;	  1963	!
;	  1964	! IMPLICIT OUTPUTS:
;	  1965	!	None
;	  1966	!
;	  1967	! ROUTINE VALUE:
;	  1968	! COMPLETION CODES:
;	  1969	!	None
;	  1970	!
;	  1971	! SIDE EFFECTS:
;	  1972	!	None
;	  1973	!--
;	  1974	
;	  1975		begin
;	  1976		map CCB: ref block field(C_fields);
;	  1977		map PDB: ref block field(PORT_fields);
;	  1978	
;	  1979		local
;	  1980		NDB : ref block field(NODE_fields),
;	  1981		NO_RCE,
;	  1982		WK_CCB: ref block field(C_fields);
;	  1983	
;	  1984		NO_RCE = false;
;	  1985		NDB = .PDB[NODElnk];
;	  1986	
;	  1987		If .PDB[BUFFctl] neq 0
;	  1988		Then
;	  1989			begin
;	  1990			CCB[C_FNC] = FC_RCE;
;	  1991			LLCRS$( .CCB);
;	  1992			return
;	  1993			end;
;	  1994	
;	  1995		Selectone .PDB[PORTstate] of
;	  1996		Set
;	  1997	
;	  1998		[N$SDI]:
;	  1999			begin
;	  2000			PDB[PORTstate] = N$SDIC;
;	  2001			PDB[DELAYstr_tim] = 0;
;	  2002			PDB[TIMERcon] = 0;
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  58
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (20)

;	  2003			CALL$L( FLUSH_QUEUES,  .PDB, N$EABR);
;	  2004			end;
;	  2005	
;	  2006		[N$SCI, N$SCD, N$SRUN]:
;	  2007			begin
;	  2008			If .PDB[PORTstate] eql N$SCI
;	  2009			Then
;	  2010				UPDATE_DELAY( .PDB);
;	  2011			If .PDB[PORTstate] eql N$SCI or
;	  2012			.PDB[PORTstate] eql N$SCD
;	  2013			Then
;	  2014				begin
;	  2015				PDB[PORTstate] = N$SRJ;
;	  2016				PDB[L_rem_addr] = .DB[L_SRCADDR];
;	  2017				PDB[H_rem_addr] = .DB[H_SRCADDR];
;	  2018				end;
;	  2019			If .PDB[PORTstate] eql N$SRUN
;	  2020			Then
;	  2021				begin
;	  2022				PDB[PORTstate] = N$SDN;
;	  2023				CALL$L( FLUSH_QUEUES,  .PDB, N$EABR);
;	  2024				PDB[DELAYstr_tim] = 0;
;	  2025				PDB[TIMERdat] = 0;
;	  2026				PDB[TIMERoth] = 0;
;	  2027				end;
;	  2028			MAP$( .DB[BIASnodes]);
;	  2029			DADD( NDB[NDb_rcv], .CCB[C_CNT] - DI_SIZE);
;	  2030			MAP$( .DB[BIASports]);
;	  2031	
;	  2032			If CCB_GET( WK_CCB, .PDB)
;	  2033			Then
;	  2034				begin
;	  2035				WK_CCB[C_STK] = .CCB;
;	  2036	
;	  2037				If .PDB[PORTstate] eql N$SRJ
;	  2038				Then
;	  2039					C_STSE( .WK_CCB, .PDB)
;	  2040				Else
;	  2041					DSC_RECVD( .WK_CCB, .PDB);
;	  2042				end
;	  2043			Else
;	  2044				PDB[BUFFctl] = .CCB;
;	  2045			NO_RCE = true;
;	  2046			end;
;	  2047		Tes;
;	  2048	
;	  2049		If .PDB[PORTstate] eql N$SDN or
;	  2050		.PDB[PORTstate] eql N$SRJ or
;	  2051		.PDB[PORTstate] eql N$SDIC
;	  2052		Then
;	  2053			begin
;	  2054			If CCB_HDR_GET( 0, WK_CCB, .PDB)
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  59
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (20)

;	  2055			Then
;	  2056				CALL$L(DC_BLD,  .WK_CCB, .PDB)
;	  2057			Else
;	  2058				PDB[FLAGsnd_dc] = true
;	  2059			end;
;	  2060	
;	  2061		If .NO_RCE eql false
;	  2062		Then
;	  2063			begin
;	  2064			CCB[C_FNC] = FC_RCE;
;	  2065			LLCRS$( .CCB)
;	  2066			end;
;	  2067		end;


						.SBTTL	DI.RCV
000000	005746 				DI.RCV::
					U.24:	TST	-(SP)				;					1951
000002	005046 					CLR	-(SP)				; NO.RCE				1984
000004	016502  000004 				MOV	4(R5),R2			; PDB(.AP.),*				1985
000010	016201  000010 				MOV	10(R2),R1			; *,NDB
000014	012703  000050 				MOV	#50,R3				;					1987
000020	060203 					ADD	R2,R3
000022	005713 					TST	(R3)
000024	001402 					BEQ	1$				;					1990
000026	000167  000510 				JMP	18$
000032	121227  000014 			1$:	CMPB	(R2),#14			;					1995
000036	001021 					BNE	2$
000040	112712  000015 				MOVB	#15,(R2)			;					2000
000044	005062  000062 				CLR	62(R2)				;					2001
000050	005062  000016 				CLR	16(R2)				;					2002
000054	012746  177773 				MOV	#-5,-(SP)			;					2003
000060	010246 					MOV	R2,-(SP)
000062	012746  000002 				MOV	#2,-(SP)
000066	012746  000000V				MOV	#U.29,-(SP)
000072	004767  000000G				JSR	PC,$CALL
000076	022626 					CMP	(SP)+,(SP)+
000100	000552 					BR	13$				;					1999
000102	121227  000006 			2$:	CMPB	(R2),#6				;					1995
000106	001411 					BEQ	4$
000110	121227  000011 				CMPB	(R2),#11
000114	001403 					BEQ	3$
000116	121227  000013 				CMPB	(R2),#13
000122	001142 					BNE	14$
000124	121227  000006 			3$:	CMPB	(R2),#6				;					2008
000130	001007 					BNE	5$
000132	010246 				4$:	MOV	R2,-(SP)			;					2010
000134	004767  000000V				JSR	PC,U.41
000140	005726 					TST	(SP)+
000142	121227  000006 				CMPB	(R2),#6				;					2011
000146	001403 					BEQ	6$
000150	121227  000011 			5$:	CMPB	(R2),#11			;					2012
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  60
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (20)

000154	001012 					BNE	7$
000156	112712  000012 			6$:	MOVB	#12,(R2)			;					2015
000162	016700  000002G				MOV	.CRDAT+2,R0			;					2016
000166	116062  000055  000006 			MOVB	55(R0),6(R2)
000174	116062  000056  000007 			MOVB	56(R0),7(R2)			;					2017
000202	121227  000013 			7$:	CMPB	(R2),#13			;					2019
000206	001023 					BNE	8$
000210	112712  000016 				MOVB	#16,(R2)			;					2022
000214	012746  177773 				MOV	#-5,-(SP)			;					2023
000220	010246 					MOV	R2,-(SP)
000222	012746  000002 				MOV	#2,-(SP)
000226	012746  000000V				MOV	#U.29,-(SP)
000232	004767  000000G				JSR	PC,$CALL
000236	005062  000062 				CLR	62(R2)				;					2024
000242	005062  000012 				CLR	12(R2)				;					2025
000246	005062  000014 				CLR	14(R2)				;					2026
000252	062706  000010 				ADD	#10,SP				;					2021
000256	016700  000002G			8$:	MOV	.CRDAT+2,R0			;					2028
000262	016067  000030  000000G			MOV	30(R0),KISAR6
000270	010146 					MOV	R1,-(SP)			; NDB,*					2029
000272	062716  000010 				ADD	#10,(SP)
000276	016504  000002 				MOV	2(R5),R4			; CCB(.AP.),*
000302	016446  000022 				MOV	22(R4),-(SP)
000306	162716  000005 				SUB	#5,(SP)
000312	004767  176172 				JSR	PC,U.20
000316	016700  000002G				MOV	.CRDAT+2,R0			;					2030
000322	016067  000014  000000G			MOV	14(R0),KISAR6
000330	012716  000006 				MOV	#6,(SP)				;					2032
000334	060616 					ADD	SP,(SP)				; WK.CCB,*
000336	010246 					MOV	R2,-(SP)
000340	004767  173640 				JSR	PC,U.16
000344	005726 					TST	(SP)+
000346	006000 					ROR	R0
000350	103022 					BCC	11$
000352	016600  000006 				MOV	6(SP),R0			; WK.CCB,*				2035
000356	010460  000004 				MOV	R4,4(R0)
000362	121227  000012 				CMPB	(R2),#12			;					2037
000366	001005 					BNE	9$
000370	010016 					MOV	R0,(SP)				;					2039
000372	010246 					MOV	R2,-(SP)
000374	004767  174502 				JSR	PC,U.19
000400	000404 					BR	10$				;					2037
000402	010016 				9$:	MOV	R0,(SP)				;					2041
000404	010246 					MOV	R2,-(SP)
000406	004767  000000V				JSR	PC,U.25
000412	005726 				10$:	TST	(SP)+				;					2034
000414	000401 					BR	12$				;					2032
000416	010413 				11$:	MOV	R4,(R3)				;					2044
000420	012766  000001  000004 		12$:	MOV	#1,4(SP)			; *,NO.RCE				2045
000426	022626 				13$:	CMP	(SP)+,(SP)+			;					2007
000430	121227  000016 			14$:	CMPB	(R2),#16			;					2049
000434	001406 					BEQ	15$
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  61
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (20)

000436	121227  000012 				CMPB	(R2),#12			;					2050
000442	001403 					BEQ	15$
000444	121227  000015 				CMPB	(R2),#15			;					2051
000450	001032 					BNE	17$
000452	005046 				15$:	CLR	-(SP)				;					2054
000454	012746  000006 				MOV	#6,-(SP)
000460	060616 					ADD	SP,(SP)				; WK.CCB,*
000462	010246 					MOV	R2,-(SP)
000464	004767  173336 				JSR	PC,U.15
000470	062706  000006 				ADD	#6,SP
000474	006000 					ROR	R0
000476	103014 					BCC	16$
000500	010246 					MOV	R2,-(SP)			;					2056
000502	016646  000004 				MOV	4(SP),-(SP)			; WK.CCB,*
000506	012746  000002 				MOV	#2,-(SP)
000512	012746  003750'				MOV	#DC.BLD,-(SP)
000516	004767  000000G				JSR	PC,$CALL
000522	062706  000010 				ADD	#10,SP
000526	000403 					BR	17$				;					2053
000530	052762  100000  000040 		16$:	BIS	#100000,40(R2)			;					2058
000536	005716 				17$:	TST	(SP)				; NO.RCE				2061
000540	001010 					BNE	19$
000542	016500  000002 			18$:	MOV	2(R5),R0			; CCB(.AP.),*				2064
000546	112760  000004  000012 			MOVB	#4,12(R0)
000554	010004 					MOV	R0,R4				;					2065
000556	004767  000000G				JSR	PC,$SCHED
000562	022626 				19$:	CMP	(SP)+,(SP)+			;					1951
000564	000207 					RTS	PC

; Routine Size:  187 words,	Routine Base:  $CODE$ + 5166
; Maximum stack depth per invocation:  7 words


;	  2068	
;	  2069	
;	  2070	
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  62
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (21)

;	  2071	routine DSC_RECVD   ( CCB, PDB):  novalue = !
;	  2072	
;	  2073	!++
;	  2074	! FUNCTIONAL DESCRIPTION:
;	  2075	!	This routine generates a DISCONNECT-RECIEVED call to Session
;	  2076	!	Control.
;	  2077	!
;	  2078	! FORMAL PARAMETERS:
;	  2079	!	CCB = CCB address
;	  2080	!	PDB = Port Data Base address
;	  2081	!
;	  2082	! IMPLICIT INPUTS:
;	  2083	!	DB = NSP data base address
;	  2084	!
;	  2085	! IMPLICIT OUTPUTS:
;	  2086	!	None
;	  2087	!
;	  2088	! ROUTINE VALUE:
;	  2089	! COMPLETION CODES:
;	  2090	!	None
;	  2091	!
;	  2092	! SIDE EFFECTS:
;	  2093	!	None
;	  2094	!--
;	  2095	
;	  2096	
;	  2097		begin
;	  2098		map PDB: ref block field(PORT_fields);
;	  2099		map CCB: ref block field(C_fields);
;	  2100	
;	  2101		bind STK_CCB = .CCB[C_STK]: block field(C_fields);
;	  2102	
;	  2103		CCB[C_FNC] = FC_RCP;
;	  2104		CCB[C_MOD] = N_RDSC;
;	  2105		CCB[C_LIX] = .PDB[PID];
;	  2106		CCB[C_BIAS] = .STK_CCB[C_BIAS];
;	  2107		CCB[C_CNT] = .STK_CCB[C_CNT] - DI_SIZE;
;	  2108		CCB[C_ADDR] = ch$plus(.STK_CCB[C_ADDR], DI_SIZE);
;	  2109		CCB[C_PIX] = .DB[NSPsc_pix];
;	  2110		LLCRS$( .CCB);
;	  2111		end;


						.SBTTL	DSC.RECVD
000000	004167  000000G			; DSC.RECVD
					U.25:	JSR	R1,$SAVE4			;					2071
000004	016604  000016 				MOV	16(SP),R4			; CCB,*					2101
000010	016401  000004 				MOV	4(R4),R1			;					2097
000014	112764  000016  000012 			MOVB	#16,12(R4)			;					2103
000022	112764  000006  000013 			MOVB	#6,13(R4)			;					2104
000030	016600  000014 				MOV	14(SP),R0			; PDB,*					2105
000034	116064  000004  000010 			MOVB	4(R0),10(R4)
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  63
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (21)

000042	016164  000016  000016 			MOV	16(R1),16(R4)			;					2106
000050	016164  000022  000022 			MOV	22(R1),22(R4)			;					2107
000056	162764  000005  000022 			SUB	#5,22(R4)
000064	016164  000020  000020 			MOV	20(R1),20(R4)			;					2108
000072	062764  000005  000020 			ADD	#5,20(R4)
000100	016700  000002G				MOV	.CRDAT+2,R0			;					2109
000104	116064  000044  000011 			MOVB	44(R0),11(R4)
000112	004767  000000G				JSR	PC,$SCHED			;					2110
000116	000207 					RTS	PC				;					2071

; Routine Size:  40 words,	Routine Base:  $CODE$ + 5754
; Maximum stack depth per invocation:  6 words


;	  2112	
;	  2113	
;	  2114	
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  64
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (22)

;	  2115	global routine EVENT_LOG ( type, aux, PDB, CCB) :  CALL$  novalue  = !
;	  2116	
;	  2117	!++
;	  2118	! FUNCTIONAL DESCRIPTION:
;	  2119	!	This routine logs events.
;	  2120	!
;	  2121	! FORMAL PARAMETERS:
;	  2122	!	type = event type to log
;	  2123	!	aux = auxillary data required to log event
;	  2124	!	PDB = Port data base address
;	  2125	!	CCB = CCB address
;	  2126	!
;	  2127	! IMPLICIT INPUTS:
;	  2128	!	DB = NSP data base address
;	  2129	!
;	  2130	! IMPLICIT OUTPUTS:
;	  2131	!	None
;	  2132	!
;	  2133	! ROUTINE VALUE:
;	  2134	! COMPLETION CODES:
;	  2135	!	None
;	  2136	!
;	  2137	! SIDE EFFECTS:
;	  2138	!	None
;	  2139	!--
;	  2140	
;	  2141	
;	  2142		begin
;	  2143		map CCB: ref block field(C_fields);
;	  2144		map PDB: ref block field(PORT_fields);
;	  2145	
;	  2146		local
;	  2147		save_bias,
;	  2148		temp;
;	  2149	
;	  2150		SMAP$( save_bias);
;	  2151	        MAP$( .CCB[C_BIAS]);
;	  2152	        $NM_LOG_BEGIN();
;	  2153	
;	  2154		Case .type from invmsg to invflw of
;	  2155		Set
;	  2156			[invmsg]:
;	  2157				begin
;	  2158	                        PARAMETER_HI( 0, 12, .CCB[C_ADDR]);
;	  2159				end;			
;	  2160	
;	  2161			[invflw]:	
;	  2162				begin
;	  2163	                        PARAMETER_HI( 0, 12, .CCB[C_ADDR]);
;	  2164	                        PARAMETER_DS_1( 1, aux);
;	  2165				end;
;	  2166		Tes;
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  65
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (22)

;	  2167		$NM_LOG_END((.type + NSP_class_event^6), 0);
;	  2168		MAP$( .save_bias);			
;	  2169		end;


						.GLOBL	$NLBEG, $DPHI, $DPDS1, $NLEND


						.SBTTL	EVENT.LOG
000000	016703  000000G			EVENT.LOG::
					U.26:	MOV	KISAR6,R3			; *,SAVE.BIAS				2150
000004	016500  000010 				MOV	10(R5),R0			; CCB(.AP.),*				2151
000010	016067  000016  000000G			MOV	16(R0),KISAR6
000016	004767  000000G				JSR	PC,$NLBEG			;					2152
000022	016502  000010 				MOV	10(R5),R2			; CCB(.AP.),*				2158
000026	016500  000002 				MOV	2(R5),R0			; TYPE(.AP.),*				2154
000032	006300 					ASL	R0
000034	066007  000000'				ADD	P.AAA(R0),PC			; Case dispatch
000040	005046 				1$:	CLR	-(SP)				;					2158
000042	012700  000014 				MOV	#14,R0
000046	016201  000020 				MOV	20(R2),R1
000052	004767  000000G				JSR	PC,$DPHI
000056	000415 					BR	3$				;					2154
000060	005046 				2$:	CLR	-(SP)				;					2163
000062	012700  000014 				MOV	#14,R0
000066	016201  000020 				MOV	20(R2),R1
000072	004767  000000G				JSR	PC,$DPHI
000076	012716  000001 				MOV	#1,(SP)				;					2164
000102	116500  000004 				MOVB	4(R5),R0			; AUX(.AP.),*
000106	004767  000000G				JSR	PC,$DPDS1
000112	016500  000002 			3$:	MOV	2(R5),R0			; TYPE(.AP.),*				2167
000116	062700  000300 				ADD	#300,R0
000122	005001 					CLR	R1
000124	004767  000000G				JSR	PC,$NLEND
000130	010367  000000G				MOV	R3,KISAR6			; SAVE.BIAS,*				2168
000134	005726 					TST	(SP)+				;					2142
000136	000207 					RTS	PC				;					2115

; Routine Size:  48 words,	Routine Base:  $CODE$ + 6074
; Maximum stack depth per invocation:  2 words


000000						.PSECT	$PLIT$,  RO ,  D  

					P.AAA:						; CASE Table for EVENT.LOG+0034		2154
000000	000000 					.WORD	0				; [1$]
000002	000020 					.WORD	20				; [2$]



;	  2170	
;	  2171	
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  66
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (22)

;	  2172	
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  67
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (23)

;	  2173	global routine FCCTL ( CCB, FCM): CALL$ novalue =
;	  2174	
;	  2175	!++
;	  2176	! FUNCTIONAL DESCRIPTION:
;	  2177	!	This routine is activated by a control request from
;	  2178	!	Network Management.
;	  2179	!
;	  2180	! FORMAL PARAMETERS:
;	  2181	!	CCB	CCB to pass to handler routine
;	  2182	!	FCM	Function code modifier (Must be FM_NM)
;	  2183	!
;	  2184	! IMPLICIT INPUTS:
;	  2185	!	CCB Contents
;	  2186	!	DB	Data base address
;	  2187	!
;	  2188	! IMPLICIT OUTPUTS:
;	  2189	!	None
;	  2190	!
;	  2191	! ROUTINE VALUE:
;	  2192	! COMPLETION CODES:
;	  2193	!	None
;	  2194	!
;	  2195	! SIDE EFFECTS:
;	  2196	!	None
;	  2197	!--
;	  2198	
;	  2199		begin
;	  2200		map CCB: ref block field (C_NM_FIELDS);
;	  2201	
;	  2202		local
;	  2203		STATUS;
;	  2204	
;	  2205		MAP$( .DB[BIASnodes]);
;	  2206		STATUS =
;	  2207			begin
;	  2208			if .FCM neq FM_NM
;	  2209			then $NM$ERR_MPE
;	  2210			else
;	  2211			    begin
;	  2212			    case .CCB [C_NM_ENTITY] from NMX$ENT_lo to NMX$ENT_hi of
;	  2213				set
;	  2214				[NMX$ENT_nod]: 			! NM fnc for node parameter
;	  2215				    begin
;	  2216				    case .CCB [C_NM_FUNC] from NMX$FNC_lo to NMX$FNC_hi of
;	  2217					set 			! *** NODE ***
;	  2218					[NMX$FNC_set]:
;	  2219						SET_NODE_PARMS ( .CCB);	! Set parameters
;	  2220					[NMX$FNC_zro]:
;	  2221						ZERO_NODE_COUNTERS( .CCB);	! Zero counters
;	  2222	
;	  2223					[NMX$FNC_sho]:
;	  2224						SHOW_NODE_ITEMS ( .CCB);	! Show selected items
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  68
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (23)

;	  2225					[NMX$FNC_szc]:
;	  2226						SHOW_ZERO_NODE_COUNTERS( .CCB);	! Zero and show counters
;	  2227					[NMX$FNC_ret]:
;	  2228						RETURN_NODE_LIST ( .CCB);	! Return selected items
;	  2229					[inrange, outrange]:
;	  2230						$NM$ERR_MPE;
;	  2231					tes
;	  2232				    end;
;	  2233	
;	  2234				[inrange, outrange]:
;	  2235					$NM$ERR_MPE;
;	  2236				tes
;	  2237			    end
;	  2238			end;
;	  2239	
;	  2240		CCB[C_FNC] = FC_CCP;
;	  2241		CCB[C_STS] = .STATUS;
;	  2242		LLCRS$( .CCB);
;	  2243		end;


						.SBTTL	FCCTL
006234						.PSECT	$CODE$,  RO 

000000	016700  000002G			FCCTL::
					U.27:	MOV	.CRDAT+2,R0			;					2205
000004	016067  000030  000000G			MOV	30(R0),KISAR6
000012	026527  000004  000006 			CMP	4(R5),#6			; FCM(.AP.),*				2208
000020	001034 					BNE	3$				;					2207
000022	016500  000002 				MOV	2(R5),R0			; CCB(.AP.),*				2212
000026	016004  000024 				MOV	24(R0),R4			;					2211
000032	072427  177770 				ASH	#-10,R4
000036	042704  177760 				BIC	#177760,R4
000042	005304 					DEC	R4
000044	020427  000004 				CMP	R4,#4
000050	101020 					BHI	3$
000052	006304 					ASL	R4
000054	066407  000004'				ADD	P.AAB(R4),PC			; Case dispatch
000060	000414 				1$:	BR	3$
000062	116001  000024 			2$:	MOVB	24(R0),R1			;					2215
000066	006201 					ASR	R1
000070	042701  177600 				BIC	#177600,R1
000074	005301 					DEC	R1
000076	020127  000005 				CMP	R1,#5
000102	101003 					BHI	3$
000104	006301 					ASL	R1
000106	066107  000016'				ADD	P.AAC(R1),PC			; Case dispatch
000112	012700  177773 			3$:	MOV	#-5,R0				; *,STATUS
000116	000424 					BR	10$
000120	010046 				4$:	MOV	R0,-(SP)			;					2219
000122	004767  000000V				JSR	PC,U.36
000126	000417 					BR	9$
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  69
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (23)

000130	010046 				5$:	MOV	R0,-(SP)			;					2221
000132	004767  000000V				JSR	PC,U.39
000136	000413 					BR	9$
000140	010046 				6$:	MOV	R0,-(SP)			;					2224
000142	004767  000000V				JSR	PC,U.37
000146	000407 					BR	9$
000150	010046 				7$:	MOV	R0,-(SP)			;					2226
000152	004767  000000V				JSR	PC,U.40
000156	000403 					BR	9$
000160	010046 				8$:	MOV	R0,-(SP)			;					2228
000162	004767  000000V				JSR	PC,U.35
000166	005726 				9$:	TST	(SP)+
000170	016504  000002 			10$:	MOV	2(R5),R4			; CCB(.AP.),*				2240
000174	112764  000022  000012 			MOVB	#22,12(R4)
000202	010064  000014 				MOV	R0,14(R4)			; STATUS,*				2241
000206	004767  000000G				JSR	PC,$SCHED			;					2242
000212	000207 					RTS	PC				;					2173

; Routine Size:  70 words,	Routine Base:  $CODE$ + 6234
; Maximum stack depth per invocation:  2 words


000004						.PSECT	$PLIT$,  RO ,  D  

					P.AAB:						; CASE Table for FCCTL+0054		2211
000004	000002 					.WORD	2				; [2$]
000006	000032 					.WORD	32				; [3$]
000010	000032 					.WORD	32				; [3$]
000012	000032 					.WORD	32				; [3$]
000014	000032 					.WORD	32				; [3$]

					P.AAC:						; CASE Table for FCCTL+0106		2215
000016	000006 					.WORD	6				; [4$]
000020	000000 					.WORD	0				; [3$]
000022	000016 					.WORD	16				; [5$]
000024	000026 					.WORD	26				; [6$]
000026	000036 					.WORD	36				; [7$]
000030	000046 					.WORD	46				; [8$]



;	  2244	
;	  2245	
;	  2246	
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  70
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (24)

;	  2247	routine FIND_NDB ( NODEADDR):   =
;	  2248	
;	  2249	!++
;	  2250	! FUNCTIONAL DESCRIPTION:
;	  2251	!	Locate the NDB for the Node addressed by NM_ENT in NMPAR
;	  2252	!
;	  2253	! FORMAL PARAMETERS:
;	  2254	!	NODEADDR	Address to return NDB address
;	  2255	!
;	  2256	! IMPLICIT INPUTS:
;	  2257	!	DB		Data base address
;	  2258	!	PARBLK & NMPAR inputs, as pointed at by CCB.
;	  2259	!
;	  2260	! IMPLICIT OUTPUTS:
;	  2261	!	None
;	  2262	!
;	  2263	! ROUTINE VALUE:
;	  2264	!	Operation status code
;	  2265	!
;	  2266	! COMPLETION CODES:
;	  2267	!	None
;	  2268	!
;	  2269	!
;	  2270	! SIDE EFFECTS:
;	  2271	!	None
;	  2272	!--
;	  2273	
;	  2274		begin
;	  2275		bind NODE = .DB[ADDRnodes]: blockvector[ 0, ND_SIZE] field( NODE_fields);
;	  2276	        If ..NODEADDR eql 0 then return false;
;	  2277		Incr j from 0 to (.DB[NSPt_nodes] -1) do
;	  2278			begin
;	  2279			bind NDB = NODE[ .j, 0, 0, 0, 0]: block field(NODE_fields);
;	  2280			If .NDB[NDaddr] eql ..NODEADDR 
;	  2281			Then
;	  2282				begin
;	  2283				.NODEADDR = NDB;
;	  2284				return true
;	  2285				end
;	  2286			end;
;	  2287		false
;	  2288		end;


						.SBTTL	FIND.NDB
006450						.PSECT	$CODE$,  RO 

000000	004167  000000G			; FIND.NDB
					U.28:	JSR	R1,$SAVE4			;					2247
000004	016703  000002G				MOV	.CRDAT+2,R3			;					2275
000010	016604  000014 				MOV	14(SP),R4			; NODEADDR,*				2276
000014	005714 					TST	(R4)
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  71
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (24)

000016	001422 					BEQ	4$
000020	010300 					MOV	R3,R0				; DB,*					2277
000022	005002 					CLR	R2				; J
000024	000414 					BR	3$
000026	010201 				1$:	MOV	R2,R1				; J,*					2279
000030	070127  000042 				MUL	#42,R1
000034	066301  000032 				ADD	32(R3),R1
000040	021114 					CMP	(R1),(R4)			;					2280
000042	001004 					BNE	2$
000044	010114 					MOV	R1,(R4)				;					2283
000046	012700  000001 				MOV	#1,R0				;					2282
000052	000207 					RTS	PC
000054	005202 				2$:	INC	R2				; J					2277
000056	020260  000036 			3$:	CMP	R2,36(R0)			; J,*
000062	002761 					BLT	1$
000064	005000 				4$:	CLR	R0				;					2247
000066	000207 					RTS	PC

; Routine Size:  28 words,	Routine Base:  $CODE$ + 6450
; Maximum stack depth per invocation:  6 words


;	  2289	
;	  2290	
;	  2291	
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  72
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (25)

;	  2292	global routine FLUSH_QUEUES ( PDB, status_code) : CALL$ novalue =	!
;	  2293	
;	  2294	!++
;	  2295	! FUNCTIONAL DESCRIPTION:
;	  2296	!	This routine flushes all of NSP's processing queues.
;	  2297	!
;	  2298	! FORMAL PARAMETERS:
;	  2299	!	PDB = Port Data Base address
;	  2300	!	STATUS_CODE = Code to return to Session Control
;	  2301	!
;	  2302	! IMPLICIT INPUTS:
;	  2303	!	DB = NSP data base address
;	  2304	!
;	  2305	! IMPLICIT OUTPUTS:
;	  2306	!	None
;	  2307	!
;	  2308	! ROUTINE VALUE:
;	  2309	! COMPLETION CODES:
;	  2310	!	None
;	  2311	!
;	  2312	! SIDE EFFECTS:
;	  2313	!	None
;	  2314	!--
;	  2315	
;	  2316	
;	  2317		begin
;	  2318		map PDB: ref block field(PORT_fields);
;	  2319	
;	  2320	
;	  2321		local 
;	  2322		RTN_CCB: ref block field(C_fields),
;	  2323		STK_CCB: ref block field(C_fields);
;	  2324	
;	  2325		While CMQRM$(PDB[INT_queue], rtn_ccb) do
;	  2326			begin
;	  2327			RTN_CCB[C_STS] = .status_code;
;	  2328			RTN_CCB[C_FNC] = FC_XCP;
;	  2329			LLCRS$( .RTN_CCB)
;	  2330			end;
;	  2331	
;	  2332		If .PDB[BUFFrcv_int] neq 0
;	  2333		Then
;	  2334			begin
;	  2335			RTN_CCB = .PDB[BUFFrcv_int];
;	  2336			PDB[BUFFrcv_int] = 0;
;	  2337			RTN_CCB[C_FNC] = FC_RCE;
;	  2338			LLCRS$( .RTN_CCB)
;	  2339			end;
;	  2340		
;	  2341		If .PDB[BUFFctl] neq 0
;	  2342		Then
;	  2343			begin
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  73
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (25)

;	  2344			RTN_CCB = .PDB[BUFFctl];
;	  2345			PDB[BUFFctl] = 0;
;	  2346			RTN_CCB[C_FNC] = FC_RCE;
;	  2347			LLCRS$( .RTN_CCB)
;	  2348			end;
;	  2349	
;	  2350		If .PDB[BUFFsync_dsc] neq 0
;	  2351		Then
;	  2352			begin
;	  2353			RTN_CCB = .PDB[BUFFsync_dsc];
;	  2354			PDB[BUFFsync_dsc] = 0;
;	  2355			RTN_CCB[C_FNC] = FC_XCP;
;	  2356			RTN_CCB[C_STS] = .status_code;
;	  2357			LLCRS$( .RTN_CCB)
;	  2358			end;
;	  2359	
;	  2360		While ( rtn_ccb = .PDB[ACK_queue]) neq 0 do
;	  2361			begin
;	  2362			PDB[ACK_queue] = .rtn_ccb[C_LNK];
;	  2363	
;	  2364			If (.RTN_CCB[C_PRM3] and N$FCMP) neq 0
;	  2365			Then
;	  2366				begin
;	  2367				STK_CCB = .RTN_CCB[C_STK];
;	  2368				STK_CCB[C_STS] = .status_code;
;	  2369				STK_CCB[C_FNC] = FC_XCP;
;	  2370				LLCRS$( .STK_CCB)
;	  2371				end;
;	  2372			CCBRT$( .rtn_ccb);
;	  2373			PDB[COUNTres] = .PDB[COUNTres] -1
;	  2374			end;
;	  2375	
;	  2376		While CMQRM$(PDB[MSG_queue], rtn_ccb) do
;	  2377			begin
;	  2378			RTN_CCB[C_STS] = .status_code;
;	  2379			RTN_CCB[C_FNC] = FC_XCP;
;	  2380			LLCRS$( .RTN_CCB)
;	  2381			end;
;	  2382	
;	  2383		While CMQRM$(PDB[OTHack_queue], rtn_ccb) do
;	  2384			begin
;	  2385			RTN_CCB[C_STS] = .status_code;
;	  2386			RTN_CCB[C_FNC] = FC_XCP;
;	  2387			LLCRS$( .RTN_CCB)
;	  2388			end;
;	  2389	
;	  2390		While CMQRM$(PDB[INTR_queue], rtn_ccb) do
;	  2391			begin
;	  2392			RTN_CCB[C_STS] = .status_code;
;	  2393			RTN_CCB[C_FNC] = FC_XCP;
;	  2394			LLCRS$( .RTN_CCB)
;	  2395			end;
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  74
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (25)

;	  2396	
;	  2397		While CMQRM$(PDB[DATR_queue], rtn_ccb) do
;	  2398			begin
;	  2399			RTN_CCB[C_STS] = .status_code;
;	  2400			RTN_CCB[C_FNC] = FC_XCP;
;	  2401			LLCRS$( .RTN_CCB)
;	  2402			end;
;	  2403	
;	  2404	
;	  2405		While CMQRM$(PDB[BUFF_queue], rtn_ccb) do
;	  2406			begin
;	  2407			RTN_CCB[C_STS] = .status_code;
;	  2408			RTN_CCB[C_FNC] = FC_XCP;
;	  2409			LLCRS$( .RTN_CCB)
;	  2410			end;
;	  2411	
;	  2412		While CMQRM$(PDB[RCVMSG_queue], rtn_ccb) do
;	  2413			begin
;	  2414			RTN_CCB[C_FNC] = FC_RCE;
;	  2415			LLCRS$( .RTN_CCB)
;	  2416			end;
;	  2417	
;	  2418		end;


						.SBTTL	FLUSH.QUEUES
000000	016500  000002 			FLUSH.QUEUES::
					U.29:	MOV	2(R5),R0			; PDB(.AP.),*				2325
000004	010003 					MOV	R0,R3
000006	062703  000076 				ADD	#76,R3
000012	016505  000004 				MOV	4(R5),R5			; STATUS.CODE(.AP.),*			2327
000016	004767  000000G			1$:	JSR	PC,$CMQRM			;					2325
000022	103411 					BCS	2$
000024	010401 					MOV	R4,R1				; $MCB$R4,RTN.CCB
000026	010561  000014 				MOV	R5,14(R1)			; *,*(RTN.CCB)				2327
000032	112761  000014  000012 			MOVB	#14,12(R1)			; *,*(RTN.CCB)				2328
000040	004767  000000G				JSR	PC,$SCHED			;					2329
000044	000764 					BR	1$				;					2325
000046	012703  000046 			2$:	MOV	#46,R3				;					2332
000052	060003 					ADD	R0,R3
000054	005713 					TST	(R3)
000056	001410 					BEQ	3$
000060	011301 					MOV	(R3),R1				; *,RTN.CCB				2335
000062	005013 					CLR	(R3)				;					2336
000064	112761  000004  000012 			MOVB	#4,12(R1)			; *,*(RTN.CCB)				2337
000072	010104 					MOV	R1,R4				; RTN.CCB,*				2338
000074	004767  000000G				JSR	PC,$SCHED
000100	012703  000050 			3$:	MOV	#50,R3				;					2341
000104	060003 					ADD	R0,R3
000106	005713 					TST	(R3)
000110	001410 					BEQ	4$
000112	011301 					MOV	(R3),R1				; *,RTN.CCB				2344
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  75
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (25)

000114	005013 					CLR	(R3)				;					2345
000116	112761  000004  000012 			MOVB	#4,12(R1)			; *,*(RTN.CCB)				2346
000124	010104 					MOV	R1,R4				; RTN.CCB,*				2347
000126	004767  000000G				JSR	PC,$SCHED
000132	012703  000044 			4$:	MOV	#44,R3				;					2350
000136	060003 					ADD	R0,R3
000140	005713 					TST	(R3)
000142	001412 					BEQ	5$
000144	011301 					MOV	(R3),R1				; *,RTN.CCB				2353
000146	005013 					CLR	(R3)				;					2354
000150	112761  000014  000012 			MOVB	#14,12(R1)			; *,*(RTN.CCB)				2355
000156	010561  000014 				MOV	R5,14(R1)			; *,*(RTN.CCB)				2356
000162	010104 					MOV	R1,R4				; RTN.CCB,*				2357
000164	004767  000000G				JSR	PC,$SCHED
000170	016001  000116 			5$:	MOV	116(R0),R1			; *,RTN.CCB				2360
000174	001426 					BEQ	7$
000176	011160  000116 				MOV	(R1),116(R0)			; RTN.CCB,*				2362
000202	032761  000004  000030 			BIT	#4,30(R1)			; *,*(RTN.CCB)				2364
000210	001412 					BEQ	6$
000212	016103  000004 				MOV	4(R1),R3			; *(RTN.CCB),STK.CCB			2367
000216	010563  000014 				MOV	R5,14(R3)			; *,*(STK.CCB)				2368
000222	112763  000014  000012 			MOVB	#14,12(R3)			; *,*(STK.CCB)				2369
000230	010304 					MOV	R3,R4				; STK.CCB,*				2370
000232	004767  000000G				JSR	PC,$SCHED
000236	010104 				6$:	MOV	R1,R4				; RTN.CCB,*				2372
000240	004767  000000G				JSR	PC,$CCBRT
000244	005360  000054 				DEC	54(R0)				;					2373
000250	000747 					BR	5$				;					2360
000252	010003 				7$:	MOV	R0,R3				;					2376
000254	062703  000102 				ADD	#102,R3
000260	004767  000000G			8$:	JSR	PC,$CMQRM
000264	103411 					BCS	9$
000266	010401 					MOV	R4,R1				; $MCB$R4,RTN.CCB
000270	010561  000014 				MOV	R5,14(R1)			; *,*(RTN.CCB)				2378
000274	112761  000014  000012 			MOVB	#14,12(R1)			; *,*(RTN.CCB)				2379
000302	004767  000000G				JSR	PC,$SCHED			;					2380
000306	000764 					BR	8$				;					2376
000310	010003 				9$:	MOV	R0,R3				;					2383
000312	062703  000122 				ADD	#122,R3
000316	004767  000000G			10$:	JSR	PC,$CMQRM
000322	103411 					BCS	11$
000324	010401 					MOV	R4,R1				; $MCB$R4,RTN.CCB
000326	010561  000014 				MOV	R5,14(R1)			; *,*(RTN.CCB)				2385
000332	112761  000014  000012 			MOVB	#14,12(R1)			; *,*(RTN.CCB)				2386
000340	004767  000000G				JSR	PC,$SCHED			;					2387
000344	000764 					BR	10$				;					2383
000346	010003 				11$:	MOV	R0,R3				;					2390
000350	062703  000106 				ADD	#106,R3
000354	004767  000000G			12$:	JSR	PC,$CMQRM
000360	103411 					BCS	13$
000362	010401 					MOV	R4,R1				; $MCB$R4,RTN.CCB
000364	010561  000014 				MOV	R5,14(R1)			; *,*(RTN.CCB)				2392
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  76
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (25)

000370	112761  000014  000012 			MOVB	#14,12(R1)			; *,*(RTN.CCB)				2393
000376	004767  000000G				JSR	PC,$SCHED			;					2394
000402	000764 					BR	12$				;					2390
000404	010003 				13$:	MOV	R0,R3				;					2397
000406	062703  000112 				ADD	#112,R3
000412	004767  000000G			14$:	JSR	PC,$CMQRM
000416	103411 					BCS	15$
000420	010401 					MOV	R4,R1				; $MCB$R4,RTN.CCB
000422	010561  000014 				MOV	R5,14(R1)			; *,*(RTN.CCB)				2399
000426	112761  000014  000012 			MOVB	#14,12(R1)			; *,*(RTN.CCB)				2400
000434	004767  000000G				JSR	PC,$SCHED			;					2401
000440	000764 					BR	14$				;					2397
000442	010003 				15$:	MOV	R0,R3				;					2405
000444	062703  000130 				ADD	#130,R3
000450	004767  000000G			16$:	JSR	PC,$CMQRM
000454	103411 					BCS	17$
000456	010401 					MOV	R4,R1				; $MCB$R4,RTN.CCB
000460	010561  000014 				MOV	R5,14(R1)			; *,*(RTN.CCB)				2407
000464	112761  000014  000012 			MOVB	#14,12(R1)			; *,*(RTN.CCB)				2408
000472	004767  000000G				JSR	PC,$SCHED			;					2409
000476	000764 					BR	16$				;					2405
000500	062700  000134 			17$:	ADD	#134,R0				;					2412
000504	010003 				18$:	MOV	R0,R3
000506	004767  000000G				JSR	PC,$CMQRM
000512	103407 					BCS	19$
000514	010401 					MOV	R4,R1				; $MCB$R4,RTN.CCB
000516	112761  000004  000012 			MOVB	#4,12(R1)			; *,*(RTN.CCB)				2414
000524	004767  000000G				JSR	PC,$SCHED			;					2415
000530	000765 					BR	18$				;					2412
000532	000207 				19$:	RTS	PC				;					2292

; Routine Size:  174 words,	Routine Base:  $CODE$ + 6540
; Maximum stack depth per invocation:  1 word


;	  2419	
;	  2420	
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  77
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (26)

;	  2421	global routine NDB_GET  ( CCB, RTN_NDB):  CALL$  = !
;	  2422	
;	  2423	!++
;	  2424	! FUNCTIONAL DESCRIPTION:
;	  2425	!	This routine attempts to find a Node Data Base entry for the node
;	  2426	!	in question.
;	  2427	!
;	  2428	! FORMAL PARAMETERS:
;	  2429	!	CCB = CCB address
;	  2430	!	RTN_NDB = address to return found NDB address
;	  2431	!
;	  2432	! IMPLICIT INPUTS:
;	  2433	!	DB = NSP data base address
;	  2434	!
;	  2435	! IMPLICIT OUTPUTS:
;	  2436	!	None
;	  2437	!
;	  2438	! ROUTINE VALUE:
;	  2439	! COMPLETION CODES:
;	  2440	!	None
;	  2441	!
;	  2442	! SIDE EFFECTS:
;	  2443	!	None
;	  2444	!--
;	  2445	
;	  2446	
;	  2447		begin
;	  2448		map CCB: ref block field(C_fields);
;	  2449		map RTN_NDB: block field(NODE_fields);
;	  2450	        label NDB_FOUND, NODE_FOUND;
;	  2451	        local NNDB: ref block field(NODE_fields),
;	  2452	              FNDB: ref block field(NODE_fields);
;	  2453	
;	  2454		MAP$ (.DB[BIASnodes]);
;	  2455	        NNDB = .DB[ADDRnodes];
;	  2456	        FNDB = 0;
;	  2457	NDB_FOUND: begin
;	  2458	NODE_FOUND: begin
;	  2459	
;	  2460	        decru J from .DB[NSPt_nodes] to 1
;	  2461	        do begin
;	  2462	           if .NNDB[NDaddr] eql .CCB[C_PRM1]
;	  2463	           then leave NODE_FOUND;
;	  2464	           if (.NNDB[NDactive] eql 0)
;	  2465	           then begin
;	  2466	                if (.FNDB eqla 0)
;	  2467	                then FNDB = .NNDB
;	  2468	                else if (.FNDB[NDaddr] neq 0)
;	  2469	                     then if (.NNDB[NDaddr] eql 0)
;	  2470	                          then FNDB = .NNDB;
;	  2471	                end;
;	  2472	           NNDB = vector[.NNDB,ND_SIZE];
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  78
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (26)

;	  2473	           end;
;	  2474	
;	  2475	        If (NNDB = .FNDB) eqla 0 then leave NDB_FOUND;
;	  2476	
;	  2477	        If .NNDB[NDaddr] neq 0
;	  2478	        Then begin                      ! Issue "data base reused" event
;	  2479	             literal event_code = (dbruse + NSP_class_event^6) or %o'100000';
;	  2480	             $NM_LOG_BEGIN();
;	  2481	             COUNTER_16_TIME( 0, NNDB[NDtime_zeroed]);
;	  2482	             COUNTER_32( 600, NNDB[NDb_rcv]);
;	  2483	             COUNTER_32( 601, NNDB[NDb_xmt]);
;	  2484	             COUNTER_32( 610, NNDB[NDm_rcv]);
;	  2485	             COUNTER_32( 611, NNDB[NDm_xmt]);
;	  2486	             COUNTER_16( 620, NNDB[NDc_rcv]);
;	  2487	             COUNTER_16( 621, NNDB[NDc_xmt]);
;	  2488	             COUNTER_16( 630, NNDB[NDtimeout]);
;	  2489	             COUNTER_16( 640, NNDB[NDc_rej]);
;	  2490	             COUNTER_16( 700, NNDB[NDactive]);
;	  2491	             $NM_LOG_END(event_code, .NNDB[NDaddr]);
;	  2492	             end;
;	  2493	
;	  2494	        decru J from ND_SIZE to 1
;	  2495	        do begin
;	  2496	           map FNDB: ref vector;
;	  2497	           FNDB[0] = 0;
;	  2498	           FNDB = FNDB[1];
;	  2499	           end;
;	  2500	
;	  2501	        $NM_TIME( NNDB[NDtime_zeroed]);
;	  2502	        NNDB[NDaddr] = .CCB[C_PRM1];
;	  2503	        end;                            ! of NODE_FOUND
;	  2504	
;	  2505	        NNDB[NDactive] = .NNDB[NDactive] + 1;
;	  2506	        end;                            ! of NDB_FOUND
;	  2507	
;	  2508	        MAP$( .DB[BIASports]);
;	  2509	        if (.RTN_NDB = .NNDB) neqa 0 then true else false
;	  2510		end;


						.GLOBL	$DT16, $DC32, $DC16, $ST32


						.SBTTL	NDB.GET
000000	016700  000002G			NDB.GET::
					U.30:	MOV	.CRDAT+2,R0			;					2454
000004	016067  000030  000000G			MOV	30(R0),KISAR6
000012	016004  000032 				MOV	32(R0),R4			; *,NNDB				2455
000016	005003 					CLR	R3				; FNDB					2456
000020	016502  000002 				MOV	2(R5),R2			; CCB(.AP.),*				2462
000024	016000  000036 				MOV	36(R0),R0			; *,J					2460
000030	001420 					BEQ	4$
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  79
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (26)

000032	021462  000024 			1$:	CMP	(R4),24(R2)			; NNDB,*				2462
000036	001545 					BEQ	7$				;					2463
000040	005764  000002 				TST	2(R4)				; *(NNDB)				2464
000044	001007 					BNE	3$
000046	005703 					TST	R3				; FNDB					2466
000050	001404 					BEQ	2$				;					2467
000052	005713 					TST	(R3)				; FNDB					2468
000054	001403 					BEQ	3$
000056	005714 					TST	(R4)				; NNDB					2469
000060	001001 					BNE	3$
000062	010403 				2$:	MOV	R4,R3				; NNDB,FNDB				2470
000064	062704  000042 			3$:	ADD	#42,R4				; *,NNDB				2472
000070	077020 					SOB	R0,1$				; J,*					0000
000072	010304 				4$:	MOV	R3,R4				; FNDB,NNDB				2475
000074	001530 					BEQ	8$
000076	005714 					TST	(R4)				; NNDB					2477
000100	001511 					BEQ	5$
000102	004767  000000G				JSR	PC,$NLBEG			;					2480
000106	012746  140000 				MOV	#-40000,-(SP)			;					2481
000112	012700  000004 				MOV	#4,R0
000116	060400 					ADD	R4,R0				; NNDB,*
000120	004767  000000G				JSR	PC,$DT16
000124	012716  161130 				MOV	#-16650,(SP)			;					2482
000130	012700  000010 				MOV	#10,R0
000134	060400 					ADD	R4,R0				; NNDB,*
000136	004767  000000G				JSR	PC,$DC32
000142	012716  161131 				MOV	#-16647,(SP)			;					2483
000146	012700  000014 				MOV	#14,R0
000152	060400 					ADD	R4,R0				; NNDB,*
000154	004767  000000G				JSR	PC,$DC32
000160	012716  161142 				MOV	#-16636,(SP)			;					2484
000164	012700  000020 				MOV	#20,R0
000170	060400 					ADD	R4,R0				; NNDB,*
000172	004767  000000G				JSR	PC,$DC32
000176	012716  161143 				MOV	#-16635,(SP)			;					2485
000202	012700  000024 				MOV	#24,R0
000206	060400 					ADD	R4,R0				; NNDB,*
000210	004767  000000G				JSR	PC,$DC32
000214	012716  141154 				MOV	#-36624,(SP)			;					2486
000220	016400  000030 				MOV	30(R4),R0			; *(NNDB),*
000224	004767  000000G				JSR	PC,$DC16
000230	012716  141155 				MOV	#-36623,(SP)			;					2487
000234	016400  000032 				MOV	32(R4),R0			; *(NNDB),*
000240	004767  000000G				JSR	PC,$DC16
000244	012716  141166 				MOV	#-36612,(SP)			;					2488
000250	016400  000036 				MOV	36(R4),R0			; *(NNDB),*
000254	004767  000000G				JSR	PC,$DC16
000260	012716  141200 				MOV	#-36600,(SP)			;					2489
000264	016400  000034 				MOV	34(R4),R0			; *(NNDB),*
000270	004767  000000G				JSR	PC,$DC16
000274	012716  141274 				MOV	#-36504,(SP)			;					2490
000300	016400  000002 				MOV	2(R4),R0			; *(NNDB),*
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  80
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (26)

000304	004767  000000G				JSR	PC,$DC16
000310	012700  100302 				MOV	#-77476,R0			;					2491
000314	011401 					MOV	(R4),R1				; NNDB,*
000316	004767  000000G				JSR	PC,$NLEND
000322	005726 					TST	(SP)+				;					2478
000324	012700  000021 			5$:	MOV	#21,R0				; *,J					2494
000330	005023 				6$:	CLR	(R3)+				; FNDB					2497
000332	077002 					SOB	R0,6$				; J,*					0000
000334	012700  000004 				MOV	#4,R0				;					2501
000340	060400 					ADD	R4,R0				; NNDB,*
000342	004767  000000G				JSR	PC,$ST32
000346	016214  000024 				MOV	24(R2),(R4)			; *,NNDB				2502
000352	005264  000002 			7$:	INC	2(R4)				; *(NNDB)				2505
000356	016700  000002G			8$:	MOV	.CRDAT+2,R0			;					2508
000362	016067  000014  000000G			MOV	14(R0),KISAR6
000370	010475  000004 				MOV	R4,@4(R5)			; NNDB,RTN.NDB(.AP.)			2509
000374	001403 					BEQ	9$
000376	012700  000001 				MOV	#1,R0
000402	000207 					RTS	PC
000404	005000 				9$:	CLR	R0
000406	000207 					RTS	PC				;					2421

; Routine Size:  132 words,	Routine Base:  $CODE$ + 7274
; Maximum stack depth per invocation:  2 words


;	  2511	
;	  2512	
;	  2513	
;	  2514		
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  81
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (27)

;	  2515	global routine NL_BLD   ( CCB, RDB) : CALL$ novalue =	!
;	  2516		
;	  2517	!++
;	  2518	! FUNCTIONAL DESCRIPTION:
;	  2519	!	This routine formats an NSP No Link message.
;	  2520	!
;	  2521	! FORMAL PARAMETERS:
;	  2522	!	CCB = CCB address
;	  2523	!	RDB = Reserved Port Data Base Address
;	  2524	!
;	  2525	! IMPLICIT INPUTS:
;	  2526	!	DB = NSP Data Base Address
;	  2527	!
;	  2528	! IMPLICIT OUTPUTS:
;	  2529	!	None
;	  2530	!
;	  2531	! ROUTINE VALUE:
;	  2532	! COMPLETION CODES:
;	  2533	!	None
;	  2534	!
;	  2535	! SIDE EFFECTS:
;	  2536	!	None
;	  2537	!--
;	  2538		
;	  2539		begin
;	  2540		map CCB: ref block field(C_fields);
;	  2541		map RDB: ref block field(PORT_fields);
;	  2542	
;	  2543		local
;	  2544		PTR;
;	  2545	
;	  2546		PTR = .CCB[C_ADDR];
;	  2547	
;	  2548		ch$wchar_a( FLG_DC, PTR);
;	  2549		ch$wchar_a( .RDB[L_rem_addr], PTR);
;	  2550		ch$wchar_a( .RDB[H_rem_addr], PTR);
;	  2551		ch$wchar_a( .RDB[PID], PTR);
;	  2552		ch$wchar_a( .RDB[ADDran], PTR);
;	  2553		ch$wchar_a( 41, PTR);
;	  2554		ch$wchar_a( 0, PTR);
;	  2555	
;	  2556		CCB[C_CNT] = ch$diff(.PTR, .CCB[C_ADDR]);
;	  2557		XPT_XMIT( .CCB, .RDB)
;	  2558		end;


						.SBTTL	NL.BLD
000000	016501  000002 			NL.BLD::
					U.31:	MOV	2(R5),R1			; CCB(.AP.),*				2546
000004	016100  000020 				MOV	20(R1),R0			; *,PTR
000010	112720  000110 				MOVB	#110,(R0)+			; *,PTR					2548
000014	016505  000004 				MOV	4(R5),R5			; RDB(.AP.),*				2549
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  82
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (27)

000020	116520  000006 				MOVB	6(R5),(R0)+			; *,PTR
000024	116520  000007 				MOVB	7(R5),(R0)+			; *,PTR					2550
000030	116520  000004 				MOVB	4(R5),(R0)+			; *,PTR					2551
000034	116520  000005 				MOVB	5(R5),(R0)+			; *,PTR					2552
000040	112720  000051 				MOVB	#51,(R0)+			; *,PTR					2553
000044	105020 					CLRB	(R0)+				; PTR					2554
000046	010061  000022 				MOV	R0,22(R1)			; PTR,*					2556
000052	166161  000020  000022 			SUB	20(R1),22(R1)
000060	010146 					MOV	R1,-(SP)			;					2557
000062	010546 					MOV	R5,-(SP)
000064	004767  000000V				JSR	PC,U.42
000070	022626 					CMP	(SP)+,(SP)+			;					2539
000072	000207 					RTS	PC				;					2515

; Routine Size:  30 words,	Routine Base:  $CODE$ + 7704
; Maximum stack depth per invocation:  3 words


;	  2559		
;	  2560	
;	  2561	
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  83
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (28)

;	  2562	global routine NR_BLD   ( CCB, RDB) : CALL$ novalue =	!
;	  2563		
;	  2564	!++
;	  2565	! FUNCTIONAL DESCRIPTION:
;	  2566	!	This routine formats an NSP No Resources message.
;	  2567	!
;	  2568	! FORMAL PARAMETERS:
;	  2569	!	CCB = CCB address
;	  2570	!	RDB = Reserved Port Data Base Address
;	  2571	!
;	  2572	! IMPLICIT INPUTS:
;	  2573	!	DB = NSP Data Base Address
;	  2574	!
;	  2575	! IMPLICIT OUTPUTS:
;	  2576	!	None
;	  2577	!
;	  2578	! ROUTINE VALUE:
;	  2579	! COMPLETION CODES:
;	  2580	!	None
;	  2581	!
;	  2582	! SIDE EFFECTS:
;	  2583	!	None
;	  2584	!--
;	  2585		
;	  2586		begin
;	  2587		map CCB: ref block field(C_fields);
;	  2588		map RDB: ref block field(PORT_fields);
;	  2589	
;	  2590		local
;	  2591		PTR;
;	  2592	
;	  2593		PTR = .CCB[C_ADDR];
;	  2594	
;	  2595		ch$wchar_a( FLG_DC, PTR);
;	  2596		ch$wchar_a( .RDB[L_rem_addr], PTR);
;	  2597		ch$wchar_a( .RDB[H_rem_addr], PTR);
;	  2598		ch$wchar_a( .RDB[PID], PTR);
;	  2599		ch$wchar_a( .RDB[ADDran], PTR);
;	  2600		ch$wchar_a( 1, PTR);
;	  2601		ch$wchar_a( 0, PTR);
;	  2602	
;	  2603		CCB[C_CNT] = ch$diff(.PTR, .CCB[C_ADDR]);
;	  2604		XPT_XMIT( .CCB, .RDB)
;	  2605		end;


						.SBTTL	NR.BLD
000000	016501  000002 			NR.BLD::
					U.32:	MOV	2(R5),R1			; CCB(.AP.),*				2593
000004	016100  000020 				MOV	20(R1),R0			; *,PTR
000010	112720  000110 				MOVB	#110,(R0)+			; *,PTR					2595
000014	016505  000004 				MOV	4(R5),R5			; RDB(.AP.),*				2596
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  84
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (28)

000020	116520  000006 				MOVB	6(R5),(R0)+			; *,PTR
000024	116520  000007 				MOVB	7(R5),(R0)+			; *,PTR					2597
000030	116520  000004 				MOVB	4(R5),(R0)+			; *,PTR					2598
000034	116520  000005 				MOVB	5(R5),(R0)+			; *,PTR					2599
000040	112720  000001 				MOVB	#1,(R0)+			; *,PTR					2600
000044	105020 					CLRB	(R0)+				; PTR					2601
000046	010061  000022 				MOV	R0,22(R1)			; PTR,*					2603
000052	166161  000020  000022 			SUB	20(R1),22(R1)
000060	010146 					MOV	R1,-(SP)			;					2604
000062	010546 					MOV	R5,-(SP)
000064	004767  000000V				JSR	PC,U.42
000070	022626 					CMP	(SP)+,(SP)+			;					2586
000072	000207 					RTS	PC				;					2562

; Routine Size:  30 words,	Routine Base:  $CODE$ + 10000
; Maximum stack depth per invocation:  3 words


;	  2606		
;	  2607	
;	  2608	
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  85
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (29)

;	  2609	global routine NSP_CONFIDENCE ( CCB, PDB): CALL$ novalue = !
;	  2610	
;	  2611	!++
;	  2612	! FUNCTIONAL DESCRIPTION:
;	  2613	!	This routine generates a CONFIDENCE call to Session Control.
;	  2614	!
;	  2615	! FORMAL PARAMETERS:
;	  2616	!	CCB = CCB address
;	  2617	!	PDB = Port Data Base address
;	  2618	!
;	  2619	! IMPLICIT INPUTS:
;	  2620	!	DB = NSP data base address
;	  2621	!
;	  2622	! IMPLICIT OUTPUTS:
;	  2623	!	None
;	  2624	!
;	  2625	! ROUTINE VALUE:
;	  2626	! COMPLETION CODES:
;	  2627	!	None
;	  2628	!
;	  2629	! SIDE EFFECTS:
;	  2630	!	None
;	  2631	!--
;	  2632	
;	  2633	
;	  2634		begin
;	  2635		map PDB: ref block field(PORT_fields);
;	  2636		map CCB: ref block field(C_fields);
;	  2637	
;	  2638		PDB[CONFIDENCE] = false;
;	  2639		SIGNAL( NSP$_CFN,.PDB[PID]);
;	  2640		
;	  2641		CCB[C_FNC] = FC_RCP;
;	  2642		CCB[C_MOD] = N_SCNF;
;	  2643		CCB[C_LIX] = .PDB[PID];
;	  2644		CCB[C_STS] = N$ECON;
;	  2645		CCB[C_PIX] = .DB[NSPsc_pix];
;	  2646		CCB[C_ADDR] = 0;
;	  2647		CCB[C_STK] = 0;
;	  2648		LLCRS$( .CCB);
;	  2649		end;


						.SBTTL	NSP.CONFIDENCE
000000	016500  000004 			NSP.CONFIDENCE::
					U.33:	MOV	4(R5),R0			; PDB(.AP.),*				2638
000004	142760  000020  000042 			BICB	#20,42(R0)
000012	010001 					MOV	R0,R1				;					2639
000014	005046 					CLR	-(SP)
000016	116116  000004 				MOVB	4(R1),(SP)
000022	012746  100103 				MOV	#-77675,-(SP)
000026	012746  000002 				MOV	#2,-(SP)
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  86
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (29)

000032	004767  000000G				JSR	PC,$IGNAL
000036	016504  000002 				MOV	2(R5),R4			; CCB(.AP.),*				2641
000042	112764  000016  000012 			MOVB	#16,12(R4)
000050	105064  000013 				CLRB	13(R4)				;					2642
000054	116164  000004  000010 			MOVB	4(R1),10(R4)			;					2643
000062	012764  177776  000014 			MOV	#-2,14(R4)			;					2644
000070	016700  000002G				MOV	.CRDAT+2,R0			;					2645
000074	116064  000044  000011 			MOVB	44(R0),11(R4)
000102	005064  000020 				CLR	20(R4)				;					2646
000106	005064  000004 				CLR	4(R4)				;					2647
000112	004767  000000G				JSR	PC,$SCHED			;					2648
000116	062706  000006 				ADD	#6,SP				;					2634
000122	000207 					RTS	PC				;					2609

; Routine Size:  42 words,	Routine Base:  $CODE$ + 10074
; Maximum stack depth per invocation:  4 words


;	  2650	
;	  2651	
;	  2652	
;	  2653	
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  87
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (30)

;	  2654	global routine RESV_PORT ( CCB ) :CALL$ novalue =	!
;	  2655	
;	  2656	!++
;	  2657	! FUNCTIONAL DESCRIPTION:
;	  2658	!	This routine is the reserve port process for NSP.
;	  2659	!
;	  2660	! FORMAL PARAMETERS:
;	  2661	!	CCB = CCB address
;	  2662	!
;	  2663	! IMPLICIT INPUTS:
;	  2664	!	DB = NSP Data Base Address
;	  2665	!
;	  2666	! IMPLICIT OUTPUTS:
;	  2667	!	None
;	  2668	!
;	  2669	! ROUTINE VALUE:
;	  2670	! COMPLETION CODES:
;	  2671	!	None
;	  2672	!
;	  2673	! SIDE EFFECTS:
;	  2674	!	None
;	  2675	!--
;	  2676	
;	  2677		begin
;	  2678		map CCB: ref block field(C_fields);
;	  2679	
;	  2680		bind NODE = .DB[ADDRnodes]: blockvector[0, ND_SIZE] field(NODE_fields);
;	  2681	
;	  2682		local
;	  2683		RDB: ref block field( PORT_fields),
;	  2684		temp;
;	  2685	
;	  2686		bind RPORT = .DB[ADDRresv]: blockvector[0, RDB_size] field(PORT_fields);
;	  2687		MAP$( .DB[BIASresv]);
;	  2688	
;	  2689		RDB = (Incr j from 0 to .DB[NSPt_rsv] -1 do
;	  2690			begin
;	  2691			bind X = RPORT[.j, 0, 0, 0, 0]: block field(PORT_fields);
;	  2692	
;	  2693			If .X[MSGtyp] eql MSG_NONE
;	  2694			Then
;	  2695				exitloop X
;	  2696			end);
;	  2697		If .RDB neq -1
;	  2698		Then
;	  2699			begin		
;	  2700			MAP$( .DB[BIASnodes]);
;	  2701	
;	  2702			temp = ( Incr j from 0 to .DB[NSPt_nodes] - 1 do
;	  2703				begin
;	  2704				bind NDB = NODE[ .j, 0, 0, 0, 0]: block field(NODE_fields);
;	  2705				If .NDB[NDaddr] eql .CCB[C_PRM1]
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  88
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (30)

;	  2706				Then
;	  2707					exitloop NDB
;	  2708				end);
;	  2709			MAP$( .DB[BIASresv]);
;	  2710	
;	  2711			If .temp neq -1
;	  2712			Then
;	  2713				RDB[NODElnk] = .temp
;	  2714			Else
;	  2715				RDB[NODElnk] = 0;
;	  2716			RDB[NODErem] = .CCB[C_PRM1];
;	  2717			RDB[CHANNEL] = .CCB[C_LIX];
;	  2718			RDB[L_rem_addr] = .DB[L_SRCADDR];
;	  2719			RDB[H_rem_addr] = .DB[H_SRCADDR];
;	  2720	
;	  2721			Selectone .DB[MSGFLG] of
;	  2722			Set
;	  2723			[FLG_CI]:
;	  2724				begin
;	  2725				RDB[MSGtyp] = N_RES;
;	  2726				RDB[ADDRloc] = 0;
;	  2727	
;	  2728				If .RDB[NODElnk] neq 0
;	  2729				Then
;	  2730					begin
;	  2731					local NDB :ref block field(NODE_fields);
;	  2732					NDB = .RDB[NODElnk];
;	  2733					MAP$( .DB[BIASnodes]);
;	  2734					NDB[NDc_rej] = .NDB[NDc_rej] + 1;
;	  2735					MAP$( .DB[BIASresv]);
;	  2736					end;
;	  2737				If CCB_HDR_GET( 0, temp, -1)
;	  2738				Then
;	  2739					begin
;	  2740					CALL$L( NR_BLD,  .temp, .RDB);
;	  2741					RDB[MSGtyp] = MSG_NONE;
;	  2742					end
;	  2743	
;	  2744				end;
;	  2745			[FLG_CC, FLG_DI, FLG_INT, FLG_REQ, FLG_NBEOM, FLG_BOM, FLG_EOM, FLG_BEOM]:
;	  2746				begin
;	  2747				RDB[MSGtyp] = N_LNK;
;	  2748				RDB[PID] = .DB[L_DSTADDR];
;	  2749				RDB[ADDran] = .DB[H_DSTADDR];
;	  2750	
;	  2751				If CCB_HDR_GET( 0, temp, -1)
;	  2752				Then
;	  2753					begin
;	  2754					CALL$L(NL_BLD,  .temp, .RDB);
;	  2755					RDB[MSGtyp] = MSG_NONE;
;	  2756					end
;	  2757				end
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  89
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (30)

;	  2758			Tes;
;	  2759			end;
;	  2760	
;	  2761		CCB[C_FNC] = FC_RCE;
;	  2762		LLCRS$( .CCB)
;	  2763		end;


						.SBTTL	RESV.PORT
000000	005746 				RESV.PORT::
					U.34:	TST	-(SP)				;					2654
000002	016703  000002G				MOV	.CRDAT+2,R3			;					2680
000006	016346  000024 				MOV	24(R3),-(SP)			;					2687
000012	011667  000000G				MOV	(SP),KISAR6
000016	005000 					CLR	R0				; J					2689
000020	000413 					BR	3$
000022	010001 				1$:	MOV	R0,R1				; J,*					2691
000024	070127  000012 				MUL	#12,R1
000030	066301  000026 				ADD	26(R3),R1
000034	121127  177775 				CMPB	(R1),#-3			;					2693
000040	001002 					BNE	2$
000042	010102 					MOV	R1,R2				; *,RDB					2695
000044	000406 					BR	4$
000046	005200 				2$:	INC	R0				; J					2689
000050	020063  000022 			3$:	CMP	R0,22(R3)			; J,*
000054	002762 					BLT	1$
000056	012702  177777 				MOV	#-1,R2				; *,RDB
000062	020227  177777 			4$:	CMP	R2,#-1				; RDB,*					2697
000066	001002 					BNE	5$
000070	000167  000444 				JMP	15$
000074	016367  000030  000000G		5$:	MOV	30(R3),KISAR6			;					2700
000102	016504  000002 				MOV	2(R5),R4			; CCB(.AP.),*				2705
000106	005000 					CLR	R0				; J					2702
000110	000411 					BR	7$
000112	010001 				6$:	MOV	R0,R1				; J,*					2704
000114	070127  000042 				MUL	#42,R1
000120	066301  000032 				ADD	32(R3),R1
000124	021164  000024 				CMP	(R1),24(R4)			;					2705
000130	001406 					BEQ	8$				;					2707
000132	005200 					INC	R0				; J					2702
000134	020063  000036 			7$:	CMP	R0,36(R3)			; J,*
000140	002764 					BLT	6$
000142	012701  177777 				MOV	#-1,R1
000146	010166  000002 			8$:	MOV	R1,2(SP)			; *,TEMP
000152	011667  000000G				MOV	(SP),KISAR6			;					2709
000156	012701  000010 				MOV	#10,R1				;					2713
000162	060201 					ADD	R2,R1				; RDB,*
000164	026627  000002  177777 			CMP	2(SP),#-1			; TEMP,*				2711
000172	001403 					BEQ	9$
000174	016611  000002 				MOV	2(SP),(R1)			; TEMP,*				2713
000200	000401 					BR	10$				;					2711
000202	005011 				9$:	CLR	(R1)				;					2715
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  90
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (30)

000204	016462  000024  000002 		10$:	MOV	24(R4),2(R2)			; *,*(RDB)				2716
000212	016504  000002 				MOV	2(R5),R4			; CCB(.AP.),*				2717
000216	116462  000010  000001 			MOVB	10(R4),1(R2)			; *,*(RDB)
000224	116362  000055  000006 			MOVB	55(R3),6(R2)			; *,*(RDB)				2718
000232	116362  000056  000007 			MOVB	56(R3),7(R2)			; *,*(RDB)				2719
000240	005004 					CLR	R4				;					2721
000242	156304  000052 				BISB	52(R3),R4
000246	020427  000030 				CMP	R4,#30
000252	001042 					BNE	12$
000254	112712  000376 				MOVB	#376,(R2)			; *,RDB					2725
000260	005062  000004 				CLR	4(R2)				; *(RDB)				2726
000264	005711 					TST	(R1)				;					2728
000266	001410 					BEQ	11$
000270	011101 					MOV	(R1),R1				; *,NDB					2732
000272	016367  000030  000000G			MOV	30(R3),KISAR6			;					2733
000300	005261  000034 				INC	34(R1)				; *(NDB)				2734
000304	011667  000000G				MOV	(SP),KISAR6			;					2735
000310	005046 				11$:	CLR	-(SP)				;					2737
000312	012746  000006 				MOV	#6,-(SP)
000316	060616 					ADD	SP,(SP)				; TEMP,*
000320	012746  177777 				MOV	#-1,-(SP)
000324	004767  170444 				JSR	PC,U.15
000330	062706  000006 				ADD	#6,SP
000334	006000 					ROR	R0
000336	103100 					BCC	15$
000340	010246 					MOV	R2,-(SP)			; RDB,*					2740
000342	016646  000004 				MOV	4(SP),-(SP)			; TEMP,*
000346	012746  000002 				MOV	#2,-(SP)
000352	012746  010000'				MOV	#NR.BLD,-(SP)
000356	000462 					BR	14$
000360	005704 				12$:	TST	R4				;					2721
000362	001425 					BEQ	13$
000364	020427  000020 				CMP	R4,#20
000370	001422 					BEQ	13$
000372	020427  000040 				CMP	R4,#40
000376	001417 					BEQ	13$
000400	020427  000050 				CMP	R4,#50
000404	001414 					BEQ	13$
000406	020427  000060 				CMP	R4,#60
000412	001411 					BEQ	13$
000414	020427  000070 				CMP	R4,#70
000420	001406 					BEQ	13$
000422	020427  000100 				CMP	R4,#100
000426	001403 					BEQ	13$
000430	020427  000140 				CMP	R4,#140
000434	001041 					BNE	15$
000436	112712  000377 			13$:	MOVB	#377,(R2)			; *,RDB					2747
000442	116362  000053  000004 			MOVB	53(R3),4(R2)			; *,*(RDB)				2748
000450	116362  000054  000005 			MOVB	54(R3),5(R2)			; *,*(RDB)				2749
000456	005046 					CLR	-(SP)				;					2751
000460	012746  000006 				MOV	#6,-(SP)
000464	060616 					ADD	SP,(SP)				; TEMP,*
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  91
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (30)

000466	012746  177777 				MOV	#-1,-(SP)
000472	004767  170276 				JSR	PC,U.15
000476	062706  000006 				ADD	#6,SP
000502	006000 					ROR	R0
000504	103015 					BCC	15$
000506	010246 					MOV	R2,-(SP)			; RDB,*					2754
000510	016646  000004 				MOV	4(SP),-(SP)			; TEMP,*
000514	012746  000002 				MOV	#2,-(SP)
000520	012746  007704'				MOV	#NL.BLD,-(SP)
000524	004767  000000G			14$:	JSR	PC,$CALL
000530	112712  000375 				MOVB	#375,(R2)			; *,RDB					2755
000534	062706  000010 				ADD	#10,SP				;					2753
000540	016500  000002 			15$:	MOV	2(R5),R0			; CCB(.AP.),*				2761
000544	112760  000004  000012 			MOVB	#4,12(R0)
000552	010004 					MOV	R0,R4				;					2762
000554	004767  000000G				JSR	PC,$SCHED
000560	022626 					CMP	(SP)+,(SP)+			;					2654
000562	000207 					RTS	PC

; Routine Size:  186 words,	Routine Base:  $CODE$ + 10220
; Maximum stack depth per invocation:  7 words


;	  2764	
;	  2765	
;	  2766	
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  92
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (31)

;	  2767	routine RETURN_NODE_LIST ( CCB):   =
;	  2768	
;	  2769	!++
;	  2770	! FUNCTIONAL DESCRIPTION:
;	  2771	!	Return list of known nodes.
;	  2772	!
;	  2773	! FORMAL PARAMETERS:
;	  2774	!	CCB	CCB address
;	  2775	!
;	  2776	! IMPLICIT INPUTS:
;	  2777	!	DB	Data base address
;	  2778	!	PARBLK & NMPAR inputs, as pointed at by CCB.
;	  2779	!
;	  2780	! IMPLICIT OUTPUTS:
;	  2781	!	None
;	  2782	!
;	  2783	! ROUTINE VALUE:
;	  2784	!	Operation status code
;	  2785	!
;	  2786	! COMPLETION CODES:
;	  2787	!	None
;	  2788	!
;	  2789	!
;	  2790	! SIDE EFFECTS:
;	  2791	!	None
;	  2792	!--
;	  2793	
;	  2794		begin
;	  2795		map
;	  2796		CCB: ref block field (C_NM_FIELDS);
;	  2797	
;	  2798		
;	  2799		bind NODE = .DB[ADDRnodes]: blockvector[ 0, ND_SIZE] field( NODE_fields);
;	  2800		local
;	  2801		STS,
;	  2802		BUF_PTR,
;	  2803		BUF_LEN,
;	  2804		NODEADDR;
;	  2805	
;	  2806		BUF_PTR = .CCB [C_ADDR];
;	  2807		BUF_LEN = .CCB [C_CNT];
;	  2808		STS = NM$SUC;
;	  2809	
;	  2810		Incr j from 0 to (.DB[NSPt_nodes] -1) do
;	  2811			begin
;	  2812			bind NDB = NODE[ .j, 0, 0, 0, 0]: block field(NODE_fields);
;	  2813	
;	  2814			If .NDB[NDaddr] neq 0
;	  2815			Then
;	  2816				begin
;	  2817				IF .BUF_LEN lss 3
;	  2818				Then
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  93
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (31)

;	  2819					(sts = $NM$ERR_IMF;exitloop);
;	  2820				NODEADDR = .NDB[NDaddr];
;	  2821				MAP$( .CCB[C_BIAS]);
;	  2822				byt$short_string( NODEADDR, BUF_PTR);
;	  2823				ch$wchar_a( 0, BUF_PTR);
;	  2824				MAP$( .DB[BIASnodes]);
;	  2825				BUF_LEN = .BUF_LEN - 3;
;	  2826				end;
;	  2827			end;
;	  2828		CCB[C_CNT] = ch$diff( .BUF_PTR, .CCB[C_ADDR]);
;	  2829		return .STS
;	  2830		end;


						.SBTTL	RETURN.NODE.LIST
000000	004167  000000G			; RETURN.NODE.LIST
					U.35:	JSR	R1,$SAVE5			;					2767
000004	016703  000002G				MOV	.CRDAT+2,R3			;					2799
000010	016600  000016 				MOV	16(SP),R0			; CCB,*					2806
000014	016046  000020 				MOV	20(R0),-(SP)			; *,BUF.PTR
000020	016005  000022 				MOV	22(R0),R5			; *,BUF.LEN				2807
000024	012702  000001 				MOV	#1,R2				; *,STS					2808
000030	010300 					MOV	R3,R0				; DB,*					2810
000032	016046  000036 				MOV	36(R0),-(SP)
000036	005000 					CLR	R0				; J
000040	000451 					BR	4$
000042	010001 				1$:	MOV	R0,R1				; J,*					2812
000044	070127  000042 				MUL	#42,R1
000050	066301  000032 				ADD	32(R3),R1
000054	005711 					TST	(R1)				;					2814
000056	001441 					BEQ	3$
000060	020527  000003 				CMP	R5,#3				; BUF.LEN,*				2817
000064	002003 					BGE	2$
000066	012702  177776 				MOV	#-2,R2				; *,STS					2819
000072	000436 					BR	5$
000074	011104 				2$:	MOV	(R1),R4				; *,NODEADDR				2820
000076	016601  000022 				MOV	22(SP),R1			; CCB,*					2821
000102	016167  000016  000000G			MOV	16(R1),KISAR6
000110	010401 					MOV	R4,R1				; NODEADDR,NUM				2822
000112	110176  000002 				MOVB	R1,@2(SP)			; NUM,BUF.PTR
000116	005266  000002 				INC	2(SP)				; BUF.PTR
000122	000301 					SWAB	R1				; NUM
000124	110176  000002 				MOVB	R1,@2(SP)			; NUM,BUF.PTR
000130	005266  000002 				INC	2(SP)				; BUF.PTR
000134	105076  000002 				CLRB	@2(SP)				; BUF.PTR				2823
000140	005266  000002 				INC	2(SP)				; BUF.PTR
000144	016701  000002G				MOV	.CRDAT+2,R1			;					2824
000150	016167  000030  000000G			MOV	30(R1),KISAR6
000156	162705  000003 				SUB	#3,R5				; *,BUF.LEN				2825
000162	005200 				3$:	INC	R0				; J					2810
000164	020016 				4$:	CMP	R0,(SP)				; J,*
000166	002725 					BLT	1$
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  94
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (31)

000170	016601  000022 			5$:	MOV	22(SP),R1			; CCB,*					2828
000174	010103 					MOV	R1,R3				; CCB,*
000176	016600  000002 				MOV	2(SP),R0			; BUF.PTR,*
000202	166300  000020 				SUB	20(R3),R0
000206	010061  000022 				MOV	R0,22(R1)
000212	010200 					MOV	R2,R0				; STS,*					2794
000214	022626 					CMP	(SP)+,(SP)+			;					2767
000216	000207 					RTS	PC

; Routine Size:  72 words,	Routine Base:  $CODE$ + 11004
; Maximum stack depth per invocation:  9 words


;	  2831	
;	  2832	
;	  2833	
;	  2834	
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  95
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (32)

;	  2835	routine SET_NODE_PARMS ( CCB):   =
;	  2836	
;	  2837	!++
;	  2838	! FUNCTIONAL DESCRIPTION:
;	  2839	!	Perform setting of specified node parameter.
;	  2840	!
;	  2841	! FORMAL PARAMETERS:
;	  2842	!	CCB	CCB address
;	  2843	!
;	  2844	! IMPLICIT INPUTS:
;	  2845	!	DB	Data base address
;	  2846	!	PARBLK & NMPAR inputs, as pointed at by CCB.
;	  2847	!
;	  2848	! IMPLICIT OUTPUTS:
;	  2849	!	None
;	  2850	!
;	  2851	! ROUTINE VALUE:
;	  2852	!	Operation status code
;	  2853	!
;	  2854	! COMPLETION CODES:
;	  2855	!	None
;	  2856	!
;	  2857	! SIDE EFFECTS:
;	  2858	!	None
;	  2859	!--
;	  2860	
;	  2861	    begin
;	  2862		map CCB: ref block field (C_NM_FIELDS);
;	  2863	    local
;	  2864		NIX,
;	  2865		BUF_PTR,
;	  2866		PARM_NUM,
;	  2867		TIMER;
;	  2868	    bind
;	  2869		NMP = CCB [C_NM_NMPAR]: ref block field (NMX_NMPAR_FIELDS),
;	  2870		NMPAR = NMP [NMX_NMPAR_ENTITY];
;	  2871	
;	  2872	
;	  2873	    BUF_PTR = .CCB [C_ADDR];
;	  2874	    MAP$ (.CCB [C_BIAS]);
;	  2875	    byt$string_short (BUF_PTR, PARM_NUM);
;	  2876	
;	  2877	    selectone .PARM_NUM of
;	  2878		set
;	  2879		[502]:			! Set node number
;	  2880			begin
;	  2881			If not .DB[NSPrunning]
;	  2882			Then
;	  2883				byt$string_short( BUF_PTR, DB[NSPself])
;	  2884			Else
;	  2885				return $NM$ERR_CWS
;	  2886			end;
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  96
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (32)

;	  2887	
;	  2888		[710]:			! Set max links
;	  2889			begin
;	  2890			return $NM$ERR_OPF
;	  2891			end;
;	  2892	
;	  2893		[720]:			! Set local delay factor
;	  2894			begin
;	  2895			DB[NSPdelay] = ch$rchar( .BUF_PTR);
;	  2896			end;
;	  2897	
;	  2898		[721]:			! Set local delay weight
;	  2899			begin
;	  2900			DB[NSPweight] = ch$rchar( .BUF_PTR);
;	  2901			end;
;	  2902	
;	  2903		[722]:			! Set inactivity timer
;	  2904			begin
;	  2905			byt$string_short( BUF_PTR, DB[NSPact_tim])
;	  2906			end;
;	  2907	
;	  2908		[723]:			! Set retransmission threshold
;	  2909			begin
;	  2910			byt$string_short( BUF_PTR, DB[NSPretrans])
;	  2911			end;
;	  2912	
;	  2913		[otherwise]:
;	  2914			return $NM$ERR_UPT
;	  2915		tes;
;	  2916		
;	  2917		MAP$( .DB[BIASports]);
;	  2918		return NM$SUC
;	  2919		end;


						.SBTTL	SET.NODE.PARMS
000000	004167  000000G			; SET.NODE.PARMS
					U.36:	JSR	R1,$SAVE2			;					2835
000004	016600  000010 				MOV	10(SP),R0			; CCB,*					2869
000010	016002  000020 				MOV	20(R0),R2			; *,BUF.PTR				2873
000014	016067  000016  000000G			MOV	16(R0),KISAR6			;					2874
000022	112246 					MOVB	(R2)+,-(SP)			; BUF.PTR,PARM.NUM			2875
000024	112266  000001 				MOVB	(R2)+,1(SP)			; BUF.PTR,PARM.NUM+1
000030	011600 					MOV	(SP),R0				; PARM.NUM,*				2877
000032	020027  000766 				CMP	R0,#766
000036	001016 					BNE	2$
000040	016701  000002G				MOV	.CRDAT+2,R1			;					2881
000044	132761  000004  000072 			BITB	#4,72(R1)
000052	001005 					BNE	1$
000054	112261  000002 				MOVB	(R2)+,2(R1)			; BUF.PTR,*				2883
000060	112261  000003 				MOVB	(R2)+,3(R1)			; BUF.PTR,*
000064	000460 					BR	8$				;					2880
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  97
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (32)

000066	012700  177765 			1$:	MOV	#-13,R0				;					2885
000072	000464 					BR	9$
000074	020027  001306 			2$:	CMP	R0,#1306			;					2877
000100	001003 					BNE	3$
000102	012700  177747 				MOV	#-31,R0				;					2889
000106	000456 					BR	9$
000110	020027  001320 			3$:	CMP	R0,#1320			;					2877
000114	001005 					BNE	4$
000116	016701  000002G				MOV	.CRDAT+2,R1			;					2895
000122	111261  000006 				MOVB	(R2),6(R1)			; BUF.PTR,*
000126	000437 					BR	8$				;					2877
000130	020027  001321 			4$:	CMP	R0,#1321
000134	001005 					BNE	5$
000136	016701  000002G				MOV	.CRDAT+2,R1			;					2900
000142	111261  000007 				MOVB	(R2),7(R1)			; BUF.PTR,*
000146	000427 					BR	8$				;					2877
000150	020027  001322 			5$:	CMP	R0,#1322
000154	001007 					BNE	6$
000156	016700  000002G				MOV	.CRDAT+2,R0			;					2905
000162	112260  000004 				MOVB	(R2)+,4(R0)			; BUF.PTR,*
000166	112260  000005 				MOVB	(R2)+,5(R0)			; BUF.PTR,*
000172	000415 					BR	8$				;					2877
000174	020027  001323 			6$:	CMP	R0,#1323
000200	001007 					BNE	7$
000202	016700  000002G				MOV	.CRDAT+2,R0			;					2910
000206	112260  000010 				MOVB	(R2)+,10(R0)			; BUF.PTR,*
000212	112260  000011 				MOVB	(R2)+,11(R0)			; BUF.PTR,*
000216	000403 					BR	8$				;					2877
000220	012700  177772 			7$:	MOV	#-6,R0				;					2914
000224	000407 					BR	9$
000226	016700  000002G			8$:	MOV	.CRDAT+2,R0			;					2917
000232	016067  000014  000000G			MOV	14(R0),KISAR6
000240	012700  000001 				MOV	#1,R0				;					2861
000244	005726 				9$:	TST	(SP)+				;					2835
000246	000207 					RTS	PC

; Routine Size:  84 words,	Routine Base:  $CODE$ + 11224
; Maximum stack depth per invocation:  5 words


;	  2920	
;	  2921	
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  98
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (33)

;	  2922	routine SHOW_NODE_ITEMS ( CCB):   =
;	  2923	
;	  2924	!++
;	  2925	! FUNCTIONAL DESCRIPTION:
;	  2926	!	Show specified items
;	  2927	!
;	  2928	! FORMAL PARAMETERS:
;	  2929	!	CCB	CCB address
;	  2930	!
;	  2931	! IMPLICIT INPUTS:
;	  2932	!	PARBLK & NMPAR inputs, as pointed at by CCB.
;	  2933	!	DB	Data base address
;	  2934	!
;	  2935	! IMPLICIT OUTPUTS:
;	  2936	!	None
;	  2937	!
;	  2938	! ROUTINE VALUE:
;	  2939	!	Operation status code
;	  2940	!
;	  2941	! COMPLETION CODES:
;	  2942	!	None
;	  2943	!
;	  2944	! SIDE EFFECTS:
;	  2945	!	None
;	  2946	!--
;	  2947	
;	  2948		begin
;	  2949		map
;	  2950		CCB: ref block field (C_NM_FIELDS);
;	  2951	
;	  2952	
;	  2953		local
;	  2954		DAT_LST: ref vector,
;	  2955		PARM_NUM,
;	  2956		NDB: ref block field(NODE_fields),
;	  2957		HOLDIT,
;	  2958		STS;
;	  2959	
;	  2960		bind
;	  2961		NMP = CCB [C_NM_NMPAR]: ref block field (NMX_NMPAR_FIELDS),
;	  2962		NMPAR = NMP [NMX_NMPAR_ENTITY];
;	  2963	
;	  2964		NDB = .NMPAR;
;	  2965	
;	  2966		DAT_LST = (selectone .CCB [C_NM_SELECT] of
;	  2967			set
;	  2968			[NMX$SEL_cha]:
;	  2969				begin
;	  2970				if .NMPAR eql .DB[NSPself]
;	  2971				then
;	  2972					plit (700, 710, 720, 721, 722, 723)
;	  2973				else
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page  99
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (33)

;	  2974					plit( -1)
;	  2975				end;
;	  2976			[NMX$SEL_sum, NMX$SEL_sta]:
;	  2977				plit (600, 601);
;	  2978			[otherwise]:
;	  2979				plit (-1);
;	  2980		tes);
;	  2981	
;	  2982		IF .CCB [C_NM_SELECT] eql NMX$sel_cou
;	  2983		Then
;	  2984			begin
;	  2985			STS = SHOW_NODE_COUNTERS( .CCB );
;	  2986			return .STS
;	  2987			end;
;	  2988	
;	  2989	
;	  2990		$NM_RESPONSE_BEGIN( .CCB);
;	  2991	
;	  2992		incr I from 0 to .DAT_LST [-1]-1 do
;	  2993			selectone .DAT_LST [.I] of
;	  2994			set
;	  2995			[-1]:	CCB[C_STS] = NM$SUC;
;	  2996	
;	  2997			[600]:			! Active Links to remote
;	  2998				begin
;	  2999				If .NDB eql .DB[NSPself]
;	  3000				Then
;	  3001					begin
;	  3002					PARAMETER_DU_2( 600, DB[NSPmax]);
;	  3003					exitloop	
;	  3004					end;
;	  3005	
;	  3006				If not FIND_NDB( NDB)
;	  3007				Then
;	  3008					begin
;	  3009					CCB[C_CNT] = 0;
;	  3010					return NM$SUC
;	  3011					end
;	  3012				Else
;	  3013					begin
;	  3014					PARAMETER_DU_2( 600, NDB[NDACTIVE]);
;	  3015					end;
;	  3016				end;
;	  3017			
;	  3018			[601]:			! Node Delay
;	  3019				begin
;	  3020				PARAMETER_DU_2( 601, NDB[NDdelay]);
;	  3021				end;
;	  3022	
;	  3023			[700]:			! NSP Version
;	  3024				begin
;	  3025				bind ralph = uplit(3,2,0): vector;
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page 100
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (33)

;	  3026				PARAMETER_CM( 700, 3);
;	  3027				PARAMETER_DU_1( ,ralph[0]);
;	  3028				PARAMETER_DU_1( ,ralph[1]);
;	  3029				PARAMETER_DU_1( ,ralph[2]);
;	  3030				end;
;	  3031	
;	  3032			[710]:			! Max Links
;	  3033				begin
;	  3034				PARAMETER_DU_2( 710, DB[NSPtotal]);
;	  3035				end;
;	  3036	
;	  3037			[720]:			! NSP Delay
;	  3038				begin
;	  3039				PARAMETER_DU_1( 720, DB[NSPdelay]);
;	  3040				end;
;	  3041	
;	  3042			[721]:			! NSP Weight
;	  3043				begin
;	  3044				PARAMETER_DU_1( 721, DB[NSPweight]);
;	  3045				end;
;	  3046	
;	  3047			[722]:			! NSP Inactivity
;	  3048				begin
;	  3049				PARAMETER_DU_2( 722, DB[NSPact_tim]);
;	  3050				end;
;	  3051	
;	  3052			[723]:			! NSP Retransmit
;	  3053				begin
;	  3054				PARAMETER_DU_2( 723, DB[NSPretrans]);
;	  3055				end;
;	  3056	
;	  3057			Tes;
;	  3058	
;	  3059	    $NM_RESPONSE_END( .CCB);
;	  3060	    return .CCB[C_STS]
;	  3061	    end;



000032						.PSECT	$PLIT$,  RO ,  D  
000032	000006 					.WORD	6				; Plit count word
000034	001274 				P.AAD:	.WORD	1274
000036	001306 					.WORD	1306
000040	001320 					.WORD	1320
000042	001321 					.WORD	1321
000044	001322 					.WORD	1322
000046	001323 					.WORD	1323
000050	000001 					.WORD	1				; Plit count word
000052	177777 				P.AAE:	.WORD	-1
000054	000002 					.WORD	2				; Plit count word
000056	001130 				P.AAF:	.WORD	1130
000060	001131 					.WORD	1131
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page 101
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (33)

000062	000001 					.WORD	1				; Plit count word
000064	177777 				P.AAG:	.WORD	-1
000066	000003 				P.AAH:	.WORD	3
000070	000002 					.WORD	2
000072	000000 					.WORD	0


						.GLOBL	$NRBEG, $DPDU2, $DPCM, $TPDU1
						.GLOBL	$DPDU1, $NREND


	000066'				; RALPH
					U.115=		    P.AAH


						.SBTTL	SHOW.NODE.ITEMS
011474						.PSECT	$CODE$,  RO 

000000	004167  000000G			; SHOW.NODE.ITEMS
					U.37:	JSR	R1,$SAVE5			;					2922
000004	016605  000016 				MOV	16(SP),R5			; CCB,*					2961
000010	016501  000026 				MOV	26(R5),R1			;					2962
000014	062701  000004 				ADD	#4,R1
000020	011146 					MOV	(R1),-(SP)			; *,NDB					2964
000022	016504  000024 				MOV	24(R5),R4			;					2966
000026	072427  177764 				ASH	#-14,R4
000032	042704  177760 				BIC	#177760,R4
000036	020427  000003 				CMP	R4,#3
000042	001013 					BNE	2$
000044	016700  000002G				MOV	.CRDAT+2,R0			;					2970
000050	021660  000002 				CMP	(SP),2(R0)
000054	001003 					BNE	1$
000056	012701  000034'				MOV	#P.AAD,R1			; *,DAT.LST				2969
000062	000415 					BR	4$
000064	012701  000052'			1$:	MOV	#P.AAE,R1			; *,DAT.LST
000070	000412 					BR	4$				;					2966
000072	005704 				2$:	TST	R4
000074	003406 					BLE	3$
000076	020427  000002 				CMP	R4,#2
000102	003003 					BGT	3$
000104	012701  000056'				MOV	#P.AAF,R1			; *,DAT.LST
000110	000402 					BR	4$
000112	012701  000064'			3$:	MOV	#P.AAG,R1			; *,DAT.LST
000116	020427  000004 			4$:	CMP	R4,#4				;					2982
000122	001005 					BNE	5$
000124	010546 					MOV	R5,-(SP)			;					2985
000126	004767  000000V				JSR	PC,U.38
000132	005726 					TST	(SP)+				;					2982
000134	000455 					BR	9$				;					2984
000136	010504 				5$:	MOV	R5,R4				;					2990
000140	004767  000000G				JSR	PC,$NRBEG
000144	005002 					CLR	R2				; I					2992
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page 102
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (33)

000146	000167  000414 				JMP	22$
000152	010204 				6$:	MOV	R2,R4				; I,*					2993
000154	006304 					ASL	R4
000156	060104 					ADD	R1,R4				; DAT.LST,*
000160	021427  177777 				CMP	(R4),#-1
000164	001004 					BNE	7$
000166	012765  000001  000014 			MOV	#1,14(R5)			;					2995
000174	000573 					BR	21$				;					2993
000176	021427  001130 			7$:	CMP	(R4),#1130
000202	001042 					BNE	11$
000204	016700  000002G				MOV	.CRDAT+2,R0			;					2999
000210	021660  000002 				CMP	(SP),2(R0)			; NDB,*
000214	001011 					BNE	8$
000216	012746  001130 				MOV	#1130,-(SP)			;					3002
000222	010003 					MOV	R0,R3				; DB,*
000224	016300  000012 				MOV	12(R3),R0
000230	004767  000000G				JSR	PC,$DPDU2
000234	005726 					TST	(SP)+				;					3003
000236	000560 					BR	23$
000240	012746  000002 			8$:	MOV	#2,-(SP)			;					3006
000244	060616 					ADD	SP,(SP)				; NDB,*
000246	004767  174502 				JSR	PC,U.28
000252	005726 					TST	(SP)+
000254	006000 					ROR	R0
000256	103405 					BLO	10$
000260	005065  000022 				CLR	22(R5)				;					3009
000264	012700  000001 				MOV	#1,R0				;					3008
000270	000550 				9$:	BR	24$
000272	012746  001130 			10$:	MOV	#1130,-(SP)			;					3014
000276	016603  000002 				MOV	2(SP),R3			; NDB,*
000302	016300  000002 				MOV	2(R3),R0
000306	000523 					BR	19$
000310	021427  001131 			11$:	CMP	(R4),#1131			;					2993
000314	001007 					BNE	12$
000316	012746  001131 				MOV	#1131,-(SP)			;					3020
000322	016603  000002 				MOV	2(SP),R3			; NDB,*
000326	016300  000040 				MOV	40(R3),R0
000332	000511 					BR	19$
000334	021427  001274 			12$:	CMP	(R4),#1274			;					2993
000340	001023 					BNE	13$
000342	012746  001274 				MOV	#1274,-(SP)			;					3026
000346	012700  000003 				MOV	#3,R0
000352	004767  000000G				JSR	PC,$DPCM
000356	116700  000066'				MOVB	U.115,R0			;					3027
000362	004767  000000G				JSR	PC,$TPDU1
000366	116700  000070'				MOVB	U.115+2,R0			;					3028
000372	004767  000000G				JSR	PC,$TPDU1
000376	116700  000072'				MOVB	U.115+4,R0			;					3029
000402	004767  000000G				JSR	PC,$TPDU1
000406	000465 					BR	20$				;					3024
000410	021427  001306 			13$:	CMP	(R4),#1306			;					2993
000414	001007 					BNE	14$
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page 103
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (33)

000416	012746  001306 				MOV	#1306,-(SP)			;					3034
000422	016703  000002G				MOV	.CRDAT+2,R3
000426	016300  000020 				MOV	20(R3),R0
000432	000451 					BR	19$
000434	021427  001320 			14$:	CMP	(R4),#1320			;					2993
000440	001007 					BNE	15$
000442	012746  001320 				MOV	#1320,-(SP)			;					3039
000446	016703  000002G				MOV	.CRDAT+2,R3
000452	116300  000006 				MOVB	6(R3),R0
000456	000411 					BR	16$
000460	021427  001321 			15$:	CMP	(R4),#1321			;					2993
000464	001011 					BNE	17$
000466	012746  001321 				MOV	#1321,-(SP)			;					3044
000472	016703  000002G				MOV	.CRDAT+2,R3
000476	116300  000007 				MOVB	7(R3),R0
000502	004767  000000G			16$:	JSR	PC,$DPDU1
000506	000425 					BR	20$				;					3043
000510	021427  001322 			17$:	CMP	(R4),#1322			;					2993
000514	001007 					BNE	18$
000516	012746  001322 				MOV	#1322,-(SP)			;					3049
000522	016703  000002G				MOV	.CRDAT+2,R3
000526	016300  000004 				MOV	4(R3),R0
000532	000411 					BR	19$
000534	021427  001323 			18$:	CMP	(R4),#1323			;					2993
000540	001011 					BNE	21$
000542	012746  001323 				MOV	#1323,-(SP)			;					3054
000546	016703  000002G				MOV	.CRDAT+2,R3
000552	016300  000010 				MOV	10(R3),R0
000556	004767  000000G			19$:	JSR	PC,$DPDU2
000562	005726 				20$:	TST	(SP)+				;					3053
000564	005202 				21$:	INC	R2				; I					2992
000566	020261  177776 			22$:	CMP	R2,-2(R1)			; I,*(DAT.LST)
000572	002002 					BGE	23$
000574	000167  177352 				JMP	6$
000600	010504 				23$:	MOV	R5,R4				;					3059
000602	004767  000000G				JSR	PC,$NREND
000606	016500  000014 				MOV	14(R5),R0			;					2948
000612	005726 				24$:	TST	(SP)+				;					2922
000614	000207 					RTS	PC

; Routine Size:  199 words,	Routine Base:  $CODE$ + 11474
; Maximum stack depth per invocation:  9 words


;	  3062	
;	  3063	
;	  3064	
;	  3065	
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page 104
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (34)

;	  3066	Routine SHOW_NODE_COUNTERS ( CCB):   =
;	  3067	
;	  3068	!++
;	  3069	! FUNCTIONAL DESCRIPTION:
;	  3070	!	Show specified items
;	  3071	!
;	  3072	! FORMAL PARAMETERS:
;	  3073	!	CCB	CCB address
;	  3074	!
;	  3075	! IMPLICIT INPUTS:
;	  3076	!	DB	Data base address
;	  3077	!	PARBLK & NMPAR inputs, as pointed at by CCB.
;	  3078	!
;	  3079	! IMPLICIT OUTPUTS:
;	  3080	!	None
;	  3081	!
;	  3082	! ROUTINE VALUE:
;	  3083	!	Operation status code
;	  3084	!
;	  3085	! COMPLETION CODES:
;	  3086	!	None
;	  3087	!
;	  3088	! SIDE EFFECTS:
;	  3089	!	None
;	  3090	!--
;	  3091	
;	  3092		begin
;	  3093		map
;	  3094		CCB: ref block field (C_NM_FIELDS);
;	  3095	
;	  3096	
;	  3097		bind
;	  3098		NMP = CCB [C_NM_NMPAR]: ref block field (NMX_NMPAR_FIELDS),
;	  3099		NMPAR = NMP [NMX_NMPAR_ENTITY];
;	  3100	
;	  3101		local
;	  3102		NDB: ref block field(NODE_fields);
;	  3103	
;	  3104		$NM_RESPONSE_BEGIN( .CCB);
;	  3105		NDB = .NMPAR;
;	  3106	
;	  3107	        If FIND_NDB( NDB)
;	  3108	        Then
;	  3109	            begin
;	  3110	            COUNTER_16_TIME( 0, NDB[NDtime_zeroed]);
;	  3111	            COUNTER_32( 600, NDB[NDb_rcv]);
;	  3112	            COUNTER_32( 601, NDB[NDb_xmt]);
;	  3113	            COUNTER_32( 610, NDB[NDm_rcv]);
;	  3114	            COUNTER_32( 611, NDB[NDm_xmt]);
;	  3115	            COUNTER_16( 620, NDB[NDc_rcv]);
;	  3116	            COUNTER_16( 621, NDB[NDc_xmt]);
;	  3117	            COUNTER_16( 630, NDB[NDtimeout]);
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page 105
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (34)

;	  3118	            COUNTER_16( 640, NDB[NDc_rej]);
;	  3119	            If .NDB[NDaddr] eql .DB[NSPself]
;	  3120	            Then
;	  3121	                COUNTER_16( 700, DB[NSPmax]);
;	  3122	            end;
;	  3123	
;	  3124		$NM_RESPONSE_END( .CCB);
;	  3125		return .CCB[C_STS]
;	  3126		end;


						.SBTTL	SHOW.NODE.COUNTERS
000000	004167  000000G			; SHOW.NODE.COUNTERS
					U.38:	JSR	R1,$SAVE4			;					3066
000004	005746 					TST	-(SP)
000006	016604  000016 				MOV	16(SP),R4			; CCB,*					3098
000012	016401  000026 				MOV	26(R4),R1			;					3099
000016	062701  000004 				ADD	#4,R1
000022	004767  000000G				JSR	PC,$NRBEG			;					3104
000026	011116 					MOV	(R1),(SP)			; *,NDB					3105
000030	012746  000002 				MOV	#2,-(SP)			;					3107
000034	060616 					ADD	SP,(SP)				; NDB,*
000036	004767  174074 				JSR	PC,U.28
000042	005726 					TST	(SP)+
000044	006000 					ROR	R0
000046	103112 					BCC	2$
000050	012746  140000 				MOV	#-40000,-(SP)			;					3110
000054	016601  000002 				MOV	2(SP),R1			; NDB,*
000060	012700  000004 				MOV	#4,R0
000064	060100 					ADD	R1,R0
000066	004767  000000G				JSR	PC,$DT16
000072	012716  161130 				MOV	#-16650,(SP)			;					3111
000076	012700  000010 				MOV	#10,R0
000102	060100 					ADD	R1,R0
000104	004767  000000G				JSR	PC,$DC32
000110	012716  161131 				MOV	#-16647,(SP)			;					3112
000114	012700  000014 				MOV	#14,R0
000120	060100 					ADD	R1,R0
000122	004767  000000G				JSR	PC,$DC32
000126	012716  161142 				MOV	#-16636,(SP)			;					3113
000132	012700  000020 				MOV	#20,R0
000136	060100 					ADD	R1,R0
000140	004767  000000G				JSR	PC,$DC32
000144	012716  161143 				MOV	#-16635,(SP)			;					3114
000150	012700  000024 				MOV	#24,R0
000154	060100 					ADD	R1,R0
000156	004767  000000G				JSR	PC,$DC32
000162	012716  141154 				MOV	#-36624,(SP)			;					3115
000166	016100  000030 				MOV	30(R1),R0
000172	004767  000000G				JSR	PC,$DC16
000176	012716  141155 				MOV	#-36623,(SP)			;					3116
000202	016100  000032 				MOV	32(R1),R0
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page 106
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (34)

000206	004767  000000G				JSR	PC,$DC16
000212	012716  141166 				MOV	#-36612,(SP)			;					3117
000216	016100  000036 				MOV	36(R1),R0
000222	004767  000000G				JSR	PC,$DC16
000226	012716  141200 				MOV	#-36600,(SP)			;					3118
000232	016100  000034 				MOV	34(R1),R0
000236	004767  000000G				JSR	PC,$DC16
000242	016700  000002G				MOV	.CRDAT+2,R0			;					3119
000246	021160  000002 				CMP	(R1),2(R0)
000252	001007 					BNE	1$
000254	012716  141274 				MOV	#-36504,(SP)			;					3121
000260	010001 					MOV	R0,R1				; DB,*
000262	016100  000012 				MOV	12(R1),R0
000266	004767  000000G				JSR	PC,$DC16
000272	005726 				1$:	TST	(SP)+				;					3109
000274	004767  000000G			2$:	JSR	PC,$NREND			;					3124
000300	016400  000014 				MOV	14(R4),R0			;					3092
000304	005726 					TST	(SP)+				;					3066
000306	000207 					RTS	PC

; Routine Size:  100 words,	Routine Base:  $CODE$ + 12312
; Maximum stack depth per invocation:  8 words


;	  3127	
;	  3128	
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page 107
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (35)

;	  3129	Routine SHOW_ZERO_NODE_COUNTERS ( CCB):   =
;	  3130	
;	  3131	!++
;	  3132	! FUNCTIONAL DESCRIPTION:
;	  3133	!	Show specified items
;	  3134	!
;	  3135	! FORMAL PARAMETERS:
;	  3136	!	CCB	CCB address
;	  3137	!
;	  3138	! IMPLICIT INPUTS:
;	  3139	!	DB	Data base address
;	  3140	!	PARBLK & NMPAR inputs, as pointed at by CCB.
;	  3141	!
;	  3142	! IMPLICIT OUTPUTS:
;	  3143	!	None
;	  3144	!
;	  3145	! ROUTINE VALUE:
;	  3146	!	Operation status code
;	  3147	!
;	  3148	! COMPLETION CODES:
;	  3149	!	None
;	  3150	!
;	  3151	! SIDE EFFECTS:
;	  3152	!	None
;	  3153	!--
;	  3154		begin
;	  3155		local
;	  3156		STS;
;	  3157	
;	  3158		STS = SHOW_NODE_COUNTERS( .CCB);
;	  3159		if .sts neq NM$SUC then return .STS;
;	  3160		STS = ZERO_NODE_COUNTERS( .CCB);
;	  3161		return .STS
;	  3162		end;


						.SBTTL	SHOW.ZERO.NODE.COUNTERS
000000	010146 				; SHOW.ZERO.NODE.COUNTERS
					U.40:	MOV	R1,-(SP)			;					3129
000002	016646  000004 				MOV	4(SP),-(SP)			; CCB,*					3158
000006	004767  177456 				JSR	PC,U.38
000012	010001 					MOV	R0,R1				; *,STS
000014	020127  000001 				CMP	R1,#1				; STS,*					3159
000020	001005 					BNE	1$
000022	016616  000006 				MOV	6(SP),(SP)			; CCB,*					3160
000026	004767  000000V				JSR	PC,U.39
000032	010001 					MOV	R0,R1				; *,STS
000034	005726 				1$:	TST	(SP)+				;					3129
000036	010100 					MOV	R1,R0				; STS,*					3154
000040	012601 					MOV	(SP)+,R1			;					3129
000042	000207 					RTS	PC
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page 108
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (35)

; Routine Size:  18 words,	Routine Base:  $CODE$ + 12622
; Maximum stack depth per invocation:  3 words


;	  3163	
;	  3164	
;	  3165	
;	  3166	
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page 109
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (36)

;	  3167	Routine ZERO_NODE_COUNTERS ( CCB):   =
;	  3168	
;	  3169	!++
;	  3170	! FUNCTIONAL DESCRIPTION:
;	  3171	!	Zero out node counters for a perticular node.
;	  3172	!
;	  3173	! FORMAL PARAMETERS:
;	  3174	!	CCB	CCB address
;	  3175	!
;	  3176	! IMPLICIT INPUTS:
;	  3177	!	DB	Data base address
;	  3178	!	PARBLK & NMPAR inputs, as pointed at by CCB.
;	  3179	!
;	  3180	! IMPLICIT OUTPUTS:
;	  3181	!	None
;	  3182	!
;	  3183	! ROUTINE VALUE:
;	  3184	!	Operation status code
;	  3185	!
;	  3186	! COMPLETION CODES:
;	  3187	!	None
;	  3188	!
;	  3189	! SIDE EFFECTS:
;	  3190	!	None
;	  3191	!--
;	  3192	
;	  3193		begin
;	  3194		map
;	  3195		CCB: ref block field (C_NM_FIELDS);
;	  3196	
;	  3197	
;	  3198		bind
;	  3199		NMP = CCB [C_NM_NMPAR]: ref block field (NMX_NMPAR_FIELDS),
;	  3200		NMPAR = NMP [NMX_NMPAR_ENTITY];
;	  3201	
;	  3202		local
;	  3203		NDB: ref block field(NODE_fields),
;	  3204		DAT_LST: ref vector;
;	  3205	
;	  3206		NDB = .NMPAR;
;	  3207	
;	  3208		If not FIND_NDB( NDB)
;	  3209		Then
;	  3210			return NM$SUC;
;	  3211	
;	  3212		ch$fill( 0, 24, byt$ptr( NDB[NDb_rcv]));
;	  3213	        $NM_TIME( NDB[NDtime_zeroed]);
;	  3214	
;	  3215	        If .NDB[NDaddr] eql .DB[NSPself]
;	  3216	        Then
;	  3217	            DB[NSPmax] = 0;
;	  3218	
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page 110
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (36)

;	  3219		NM$SUC
;	  3220		end;


						.SBTTL	ZERO.NODE.COUNTERS
000000	010146 				; ZERO.NODE.COUNTERS
					U.39:	MOV	R1,-(SP)			;					3167
000002	016600  000004 				MOV	4(SP),R0			; CCB,*					3199
000006	062700  000026 				ADD	#26,R0
000012	011000 					MOV	(R0),R0				;					3200
000014	062700  000004 				ADD	#4,R0
000020	011046 					MOV	(R0),-(SP)			; *,NDB					3206
000022	012746  000002 				MOV	#2,-(SP)			;					3208
000026	060616 					ADD	SP,(SP)				; NDB,*
000030	004767  173526 				JSR	PC,U.28
000034	005726 					TST	(SP)+
000036	006000 					ROR	R0
000040	103030 					BHIS	2$				;					3210
000042	005046 					CLR	-(SP)				;					3212
000044	012746  000030 				MOV	#30,-(SP)
000050	016601  000004 				MOV	4(SP),R1			; NDB,*
000054	012746  000010 				MOV	#10,-(SP)
000060	060116 					ADD	R1,(SP)
000062	004767  000000G				JSR	PC,BL$FIL
000066	012700  000004 				MOV	#4,R0				;					3213
000072	060100 					ADD	R1,R0
000074	004767  000000G				JSR	PC,$ST32
000100	016700  000002G				MOV	.CRDAT+2,R0			;					3215
000104	021160  000002 				CMP	(R1),2(R0)
000110	001002 					BNE	1$
000112	005060  000012 				CLR	12(R0)				;					3217
000116	062706  000006 			1$:	ADD	#6,SP				;					3193
000122	012700  000001 			2$:	MOV	#1,R0				;					3167
000126	005726 					TST	(SP)+
000130	012601 					MOV	(SP)+,R1
000132	000207 					RTS	PC

; Routine Size:  46 words,	Routine Base:  $CODE$ + 12666
; Maximum stack depth per invocation:  6 words


;	  3221	
;	  3222	
;	  3223	
;	  3224	
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page 111
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (37)

;	  3225	routine UPDATE_DELAY ( PDB) :   novalue =	!
;	  3226	
;	  3227	!++
;	  3228	! FUNCTIONAL DESCRIPTION:
;	  3229	!	This routine calculates the round trip delay for NSp messages.
;	  3230	!
;	  3231	! FORMAL PARAMETERS:
;	  3232	!	PDB = Port Data Base Address
;	  3233	!
;	  3234	! IMPLICIT INPUTS:
;	  3235	!	DB = NSP Data Base Address
;	  3236	!
;	  3237	! IMPLICIT OUTPUTS:
;	  3238	!	None
;	  3239	!
;	  3240	! ROUTINE VALUE:
;	  3241	! COMPLETION CODES:
;	  3242	!	None
;	  3243	!
;	  3244	! SIDE EFFECTS:
;	  3245	!	None
;	  3246	!--
;	  3247	
;	  3248		begin
;	  3249		map PDB: ref block field(PORT_fields);
;	  3250	
;	  3251		local
;	  3252		DELAYtime,
;	  3253		NDB : ref block field(NODE_fields);
;	  3254	
;	  3255		NDB = .PDB[NODElnk];
;	  3256	
;	  3257		If .PDB[DELAYstr_tim] neq 0
;	  3258		Then
;	  3259			begin
;	  3260			DELAYtime = .PDB[DELAYstr_tim];
;	  3261	
;	  3262			If .DELAYtime gtr 1
;	  3263			Then
;	  3264				DELAYtime = .DELAYtime - 1;
;	  3265			MAP$( .DB[BIASnodes]);
;	  3266	
;	  3267			If .NDB[NDdelay] eql 0
;	  3268			Then
;	  3269				NDB[NDdelay] = .DELAYtime
;	  3270			Else
;	  3271				begin
;	  3272				DELAYtime = .DELAYtime - .NDB[NDdelay];
;	  3273				NDB[NDdelay] = .NDB[NDdelay] + (.DELAYtime / (.DB[NSPweight] + 1))
;	  3274				end;
;	  3275			MAP$( .DB[BIASports]);
;	  3276			PDB[DELAYstr_tim] = 0;
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page 112
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (37)

;	  3277			end
;	  3278		end;


						.SBTTL	UPDATE.DELAY
000000	004167  000000G			; UPDATE.DELAY
					U.41:	JSR	R1,$SAVE5			;					3225
000004	016600  000016 				MOV	16(SP),R0			; PDB,*					3255
000010	016002  000010 				MOV	10(R0),R2			; *,NDB
000014	012705  000062 				MOV	#62,R5				;					3257
000020	060005 					ADD	R0,R5
000022	005715 					TST	(R5)
000024	001437 					BEQ	4$
000026	011501 					MOV	(R5),R1				; *,DELAYTIME				3260
000030	020127  000001 				CMP	R1,#1				; DELAYTIME,*				3262
000034	003401 					BLE	1$
000036	005301 					DEC	R1				; DELAYTIME				3264
000040	016703  000002G			1$:	MOV	.CRDAT+2,R3			;					3265
000044	016367  000030  000000G			MOV	30(R3),KISAR6
000052	012704  000040 				MOV	#40,R4				;					3267
000056	060204 					ADD	R2,R4				; NDB,*
000060	005714 					TST	(R4)
000062	001002 					BNE	2$
000064	010114 					MOV	R1,(R4)				; DELAYTIME,*				3269
000066	000412 					BR	3$				;					3267
000070	161401 				2$:	SUB	(R4),R1				; *,DELAYTIME				3272
000072	005002 					CLR	R2				;					3273
000074	156302  000007 				BISB	7(R3),R2
000100	005202 					INC	R2
000102	005701 					TST	R1
000104	006700 					SXT	R0
000106	071002 					DIV	R2,R0
000110	061400 					ADD	(R4),R0
000112	010014 					MOV	R0,(R4)
000114	016367  000014  000000G		3$:	MOV	14(R3),KISAR6			;					3275
000122	005015 					CLR	(R5)				;					3276
000124	000207 				4$:	RTS	PC				;					3225

; Routine Size:  43 words,	Routine Base:  $CODE$ + 13022
; Maximum stack depth per invocation:  7 words


;	  3279	
;	  3280	
;	  3281	
;	  3282	
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page 113
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (38)

;	  3283	routine XPT_XMIT   ( CCB, XXDB) :   novalue =	!
;	  3284	
;	  3285	!++
;	  3286	! FUNCTIONAL DESCRIPTION:
;	  3287	!	This routine passes packets to Transport for delivery to a remote
;	  3288	!	NSP.
;	  3289	!
;	  3290	!
;	  3291	! FORMAL PARAMETERS:
;	  3292	!	CCB = CCB address
;	  3293	!	XXDB = Reserved/Port Data Base Address
;	  3294	!
;	  3295	! IMPLICIT INPUTS:
;	  3296	!	DB = NSP Data Base Address
;	  3297	!
;	  3298	! IMPLICIT OUTPUTS:
;	  3299	!	None
;	  3300	!
;	  3301	! ROUTINE VALUE:
;	  3302	! COMPLETION CODES:
;	  3303	!	None
;	  3304	!
;	  3305	! SIDE EFFECTS:
;	  3306	!	None
;	  3307	!--
;	  3308	
;	  3309		begin
;	  3310		map CCB: ref block field(C_fields);
;	  3311		map XXDB: ref block field(PORT_fields);
;	  3312	
;	  3313	
;	  3314		local
;	  3315		NDB: ref block field(NODE_fields),
;	  3316		temp;
;	  3317	
;	  3318		NDB = .XXDB[NODElnk];
;	  3319	
;	  3320		If .XXDB[PORTstate] lss 0
;	  3321		Then
;	  3322			CCB[C_PRM4] = -1
;	  3323		Else
;	  3324			CCB[C_PRM4] = .XXDB;
;	  3325		CCB[C_FNC] = FC_XME;
;	  3326		CCB[C_MOD] = FM_DAT;
;	  3327		CCB[C_LIX] = .XXDB[CHANNEL];
;	  3328		CCB[C_PIX] = .DB[NSPxpt_pix];
;	  3329		CCB[C_STS] = 0;
;	  3330		CCB[C_PRM1] = .DB[NSPself];
;	  3331		CCB[C_PRM2] = .XXDB[NODErem];
;	  3332	
;	  3333		If .NDB neq 0
;	  3334		Then
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page 114
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (38)

;	  3335			begin
;	  3336			SMAP$( temp);
;	  3337			MAP$( .DB[BIASnodes]);
;	  3338			DADD( NDB[NDm_xmt], 1);
;	  3339			MAP$( .temp);
;	  3340			end;
;	  3341		LLCRS$( .CCB)
;	  3342		end;


						.SBTTL	XPT.XMIT
000000	004167  000000G			; XPT.XMIT
					U.42:	JSR	R1,$SAVE4			;					3283
000004	016601  000014 				MOV	14(SP),R1			; XXDB,*				3318
000010	016102  000010 				MOV	10(R1),R2			; *,NDB
000014	016604  000016 				MOV	16(SP),R4			; CCB,*					3322
000020	105711 					TSTB	(R1)				;					3320
000022	002004 					BGE	1$
000024	012764  177777  000032 			MOV	#-1,32(R4)			;					3322
000032	000402 					BR	2$				;					3320
000034	010164  000032 			1$:	MOV	R1,32(R4)			;					3324
000040	112764  000002  000012 		2$:	MOVB	#2,12(R4)			;					3325
000046	105064  000013 				CLRB	13(R4)				;					3326
000052	116164  000001  000010 			MOVB	1(R1),10(R4)			;					3327
000060	016700  000002G				MOV	.CRDAT+2,R0			;					3328
000064	116064  000050  000011 			MOVB	50(R0),11(R4)
000072	005064  000014 				CLR	14(R4)				;					3329
000076	016064  000002  000024 			MOV	2(R0),24(R4)			;					3330
000104	016164  000002  000026 			MOV	2(R1),26(R4)			;					3331
000112	005702 					TST	R2				; NDB					3333
000114	001417 					BEQ	3$
000116	016701  000000G				MOV	KISAR6,R1			; *,TEMP				3336
000122	016067  000030  000000G			MOV	30(R0),KISAR6			;					3337
000130	010246 					MOV	R2,-(SP)			; NDB,*					3338
000132	062716  000024 				ADD	#24,(SP)
000136	012746  000001 				MOV	#1,-(SP)
000142	004767  170360 				JSR	PC,U.20
000146	010167  000000G				MOV	R1,KISAR6			; TEMP,*				3339
000152	022626 					CMP	(SP)+,(SP)+			;					3335
000154	004767  000000G			3$:	JSR	PC,$SCHED			;					3341
000160	000207 					RTS	PC				;					3283

; Routine Size:  57 words,	Routine Base:  $CODE$ + 13150
; Maximum stack depth per invocation:  8 words


;	  3343	
;	  3344	
;	  3345	end
;	  3346	eludom
NS2								25-Jan-1983 10:53:40	TOPS-20 Bliss-16 2A(530)	    Page 115
X01150								30-Dec-1982 20:26:23	NETPKG:<NSP>NS2.BLI.9 (38)


;					OTS external references
						.GLOBL	$SAVE5, $SAVE4, $SAVE2, $CALL
						.GLOBL	$IGNAL, BL$FIL


;					PSECT SUMMARY
;
;	Psect Name			Words	  Attributes
;	 ......				   16	    RW ,  D  ,  LCL,  REL,  CON
;	 $CODE$				 2925	    RO ,  I  ,  LCL,  REL,  CON
;	 $PLIT$				   30	    RO ,  D  ,  LCL,  REL,  CON




;				LIBRARY STATISTICS
;
;					     -------- Symbols --------    Blocks
;	File				     Total    Loaded   Percent      Read
;
;  NETPKG:<MCB>XPORTX.L16.15		       599        38         6         0
;  NETPKG:<MCB>MCBLIB.L16.15		       372        56        15         0
;  NETPKG:<MCB>NMXLIB.L16.13		       200        62        31         0





; Size:		2925 code + 46 data words
; Run Time:	00:57.1
; Elapsed Time:	03:14.3
; Memory Used:	63 pages
; Compilation Complete
A				 280+	 281+	 283+	 284+	 286+	 287+	 290+	 291+
ACKDAT_XMT			 487+#	 818
ACKHEAD				 550+#
ACKNUM				 377+#	 378+
ACKOTH_XMT			 489+#
ACKRCV_DAT			 491+#
ACKTAIL				 552+#
ACK_BLD				 712	 780*	1056
ACK_QUEUE			 548+#	 549+	2360	2362
ADDRAN				 456+#	 817	 952	1452	1702	1939	2552	2599	2749
ADDRLOC				 453+#	 454+	2726
ADDRNODES			 343+#	1548	2275	2455	2680	2799
ADDRPORTS			 325+#
ADDRREM				 458+#	 459+
ADDRRESV			 337+#	2686
AUX				2115	2164
B				 280+	 281+	 283+	 284+	 286+	 287+	 290+	 291+
BIASNODES			 341+#	1027	1460	1574	2028	2205	2454	2700	2733	2824	3265	3337
BIASPORTS			 323+#	1016	1029	1462	1556	1577	1748	2030	2508	2917	3275
BIASRESV			 335+#	2687	2709	2735
BLISS16				 652+
BLISS36				 307+	 309+	 311+	 313+	 315+	 317+	 319+	 327+	 329+	 332+	 345+	 359+
				 656+	 661+	 665+	 669+	 674+	 679+	 684+	 754
BUFFCTL				 510+#	1004	1051	1282	1284	1296	1298	1317	1319	1332	1600	1608
				1765	1768	1793	1796	1851	1854	1879	1882	1987	2044	2341	2344
				2345
BUFFHEAD			 561+#
BUFFRCV_INT			 509+#	2332	2335	2336
BUFFSYNC_DSC			 508+#	2350	2353	2354
BUFFTAIL			 563+#
BUFF_QUEUE			 559+#	 560+	2405
BUF_LEN				2803	2807#	2817	2825#
BUF_PTR				2802	2806#	2822	2823	2828	2865	2873#	2875	2883	2895	2900	2905
				2910
BYT$PTR				3212
BYT$SHORT_STRING		2822
BYT$STRING_SHORT		2875	2883	2905	2910
BYTE_VECTOR			 651+#	 654+	 658+
CALL$L				1331	1335	1564	1567	1790	1803	1876	1889	2003	2023	2056	2740
				2754
CALL$				 714	 715	 717	 718	 719	 723	 726	 727	 728	 729	 731	 732
				 734	 735	 736	 737	 738	 739	 871#	 912#	 968#	1244#	1414#	1514#
				1665#	1713#	1900#	1951#	2115#	2173#	2292#	2421#	2515#	2562#	2609#	2654#
CA_BLD				 713	 827*	1316	1603
CA_CCB				1272	1310	1316	1332#	1333#	1334	1544	1596	1603
CA_RCV				 714	 871*
CA_SIZE				 590+#
CCB				 272+	 274+#	 275+	 276+	 780	 805	 811	 820#	 822	 827	 852	 858
				 864#	 865	 871	 896	 905#	 906	 912	 938	 944	 946#	 957#	 962
				 968	 993	1001	1007#	1008	1012	1028	1046	1051	1065#	1066	1072
				1099	1123	1125	1135	1182#	1188	1221	1347	1374	1376	1378#	1379#
				1380#	1381#	1388#	1389#	1390#	1395#	1396#	1397#	1402#	1403#	1404#	1407#
				1408	1414	1439	1446	1457#	1458#	1463	1468	1497	1499	1501#	1502#
				1503#	1504#	1505#	1506#	1507#	1508#	1509	1514	1539	1550	1552	1564
				1567	1576	1578	1582	1600	1604	1608	1614#	1615	1665	1690	1696
				1706#	1708	1713	1738	1745	1746	1759	1768	1796	1845	1854	1882
				1893#	1894	1900	1925	1931	1933#	1941#	1946	1951	1976	1990#	1991
				2029	2035	2044	2064#	2065	2071	2099	2101	2103#	2104#	2105#	2106#
				2107#	2108#	2109#	2110	2115	2143	2151	2158	2163	2173	2200	2212
				2216	2219	2221	2224	2226	2228	2240#	2241#	2242	2421	2448	2462
				2502	2515	2540	2546	2556#	2557	2562	2587	2593	2603#	2604	2609
				2636	2641#	2642#	2643#	2644#	2645#	2646#	2647#	2648	2654	2678	2705
				2716	2717	2761#	2762	2767	2796	2806	2807	2821	2828#	2835	2862
				2869	2873	2874	2922	2950	2961	2966	2982	2985	2990	2995#	3009#
				3059	3060	3066	3094	3098	3104	3124	3125	3129	3158	3160	3167
				3195	3199	3283	3310	3322#	3324#	3325#	3326#	3327#	3328#	3329#	3330#
				3331#	3341
CCBGT$				1103	1166
CCBRT$				1120	1221	2372
CCB_GET				 721	1043	1135*	1279	1293	1307	1328	1593	1756	1788	1842	1874
				2032
CCB_HDR_GET			 720	1054	1072*	1310	1596	2054	2737	2751
CCB_RETRN			 722	1188*	1313	1599
CC_BLD				 718	 912*
CC_RCV				 719	 968*
CC_SIZE				 589+#	1028	1403	1404
CHANNEL				 451+#	1582	1584	2717	3327
CI_BLD				 715	1414*
CI_RCV				 717	1514*
CI_RECVD			 716	1318	1468*	1605
CI_SIZE				 588+#	1504	1506	1576
CLZ_CCB				1219	1234	1235#	1236#	1237
CMP_EQL				 286+#
CMP_LEQ				 283+#
CMP_LSS				 280+#
CMP_NEQ				 290+#
CMQPT$				 272+#
CMQRM$				1234	1821	2325	2376	2383	2390	2397	2405	2412
CNT				 762#
CONFIDENCE			 505+#	1785	1871	2638
COUNTDAT_RETRANS		 511+#
COUNTER_16_TIME			2481	3110
COUNTER_16			2486	2487	2488	2489	2490	3115	3116	3117	3118	3121
COUNTER_32			2482	2483	2484	2485	3111	3112	3113	3114
COUNTLOC_INT			 514+#
COUNTOTH_RETRANS		 512+#
COUNTRES			 513+#	1129	1181	1226	1229	2373
CTL_RECVD			 723	1244*
C_ADDR				 811	 820	 858	 864	 944	 957	1001	1117	1172	1390	1397	1404
				1446	1457	1506	1550	1696	1706	1745	1931	1941	2108	2158	2163
				2546	2556	2593	2603	2646	2806	2828	2873
C_BIAS				1012	1115	1171	1381	1505	1552	1746	2106	2151	2821	2874
C_CHN				 946	1109	1170	1458	1933
C_CNT				 820	 864	 957	1028	1389	1396	1403	1457	1504	1576	1706	1941
				2029	2107	2556	2603	2807	2828	3009
C_FIELDS			 805	 852	 896	 938	 993	 999	1099	1101	1107	1164	1219	1271
				1272	1374	1376	1439	1497	1499	1539	1543	1544	1690	1738	1743
				1925	1976	1982	2099	2101	2143	2322	2323	2448	2540	2587	2636
				2678	3310
C_FNC				 905	1007	1065	1235	1333	1378	1501	1614	1825	1893	1990	2064
				2103	2240	2328	2337	2346	2355	2369	2379	2386	2393	2400	2408
				2414	2641	2761	3325
C_LIX				1380	1503	1582	2105	2643	2717	3327
C_LNK				2362
C_MOD				1379	1502	2104	2642	3326
C_NM_ENTITY			2212
C_NM_FIELDS			2200	2796	2862	2950	3094	3195
C_NM_FUNC			2216
C_NM_NMPAR			2869	2961	3098	3199
C_NM_SELECT			2966	2982
C_PIX				1407	1508	2109	2645	3328
C_PRM1				1110	1173	1507	1578	2462	2502	2705	2716	3330
C_PRM2				1111	1174	3331
C_PRM3				1112	1175	2364
C_PRM4				1113	1176	3322	3324
C_PRM5				1114	1177
C_STK				 946	1046	1108	1125	1169	1282	1296	1317	1376	1458	1499	1604
				1759	1845	1933	2035	2101	2367	2647
C_STSE				 724	1047	1283	1347*	1760	1846	2039
C_STS				1236	1388	1395	1402	1824	2241	2327	2356	2368	2378	2385	2392
				2399	2407	2644	2995	3060	3125	3329
DADD				 725	1028	1576	1622*	2029	3338
DATRES				 520+#
DATRHEAD			 545+#
DATRTAIL			 547+#
DATR_QUEUE			 543+#	 544+	2397
DAT_LST				2954	2966#	2992	2993	3204
DB				 776#	 955	1013#	1014#	1015#	1016	1018	1019	1020	1027	1029	1030
				1031	1032	1033	1034	1035	1407	1455	1460	1462	1508	1548	1553#
				1554#	1555#	1556	1558	1559	1560	1561	1574	1577	1580	1586#	1587
				1588	1589	1590	1591	1747#	1748	1750	2016	2017	2028	2030	2109
				2205	2275	2277	2454	2455	2460	2508	2645	2680	2686	2687	2689
				2700	2702	2709	2718	2719	2721	2733	2735	2748	2749	2799	2810
				2824	2881	2883	2895#	2900#	2905	2910	2917	2970	2999	3002	3034
				3039	3044	3049	3054	3119	3121	3215	3217#	3265	3273	3275	3328
				3330	3337
DBRUSE				 631+#	2479
DC_BLD				 726	1665*	2056
DC_RCV				 727	1713*
DECLARE_SEVERITY		 689+
DELAYMSG_NUM			 515+#
DELAYSTR_TIM			 517+#	 959	 961	1459	1943	1945	2001	2024	3257	3260	3276
DELAYTIME			3252	3260#	3262	3264#	3269	3272#	3273
DI_BLD				 728	1900*
DI_RCV				 729	1951*
DI_SIZE				 591+#	1396	1397	2029	2107	2108
DOUBLE_WORD			1622	1649	1651#	1654#	1657#	1658#
DSC_RECVD			 730	1297	2041	2071*
EQLU				 287+
EVB_SIZE			 628+#
EVENT_CODE			2479#	2491
EVENT_LOG			 731	2115*
FALSE				 276+	 583+#	 821	1105	1121	1168	1233	1707	1984	2061	2276	2287
				2509	2638
FCCTL				 732	2173*
FCM				2173	2208
FCMOD				 374+#
FCOPT				 391+#	1018	1032	1558	1587
FCVALINT			 375+#
FCVAL				 393+#
FC_CCP				2240
FC_DATA				 618+#
FC_DONT				 616+#
FC_INTERRUPT			 619+#
FC_NCHG				 617+#
FC_RCE				 905	1007	1065	1333	1614	1893	1990	2064	2337	2346	2414	2761
FC_RCP				1378	1501	2103	2641
FC_SEND				 615+#
FC_XCP				1235	1825	2328	2355	2369	2379	2386	2393	2400	2408
FC_XME				3325
FILL1				 364+#
FILL5				 390+#
FIND_NDB			 733	2247*	3006	3107	3208
FLAGDAT_ACK			 499+#	 821	1041	1058	1063
FLAGINUSE			 502+#	1233
FLAGNEW_MSG			 503+#
FLAGOTH_ACK			 500+#
FLAGSEG				 506+#
FLAGSND_DC			 501+#	1707	2058
FLG_BEOM			 603+#	2745
FLG_BOM				 601+#	2745
FLG_CA				 607+#	 860
FLG_CC				 606+#	 948	2745
FLG_CI				 605+#	1448	2723
FLG_DAT_ACK			 612+#	 813
FLG_DC				 609+#	1698	2548	2595
FLG_DI				 608+#	1935	2745
FLG_EOM				 602+#	2745
FLG_INT				 611+#	2745
FLG_NBEOM			 604+#	2745
FLG_NOP				 614+#
FLG_OTH_ACK			 613+#
FLG_REQ				 610+#	2745
FLOWDAT_REM			 494+#
FLOWINT_REM			 495+#
FLOWLOC_TYP			 496+#	 953	1453
FLOWMSG				 593+#
FLOWNONE			 587+#
FLOWRSV				 594+#	1018	1558
FLOWSEG				 592+#
FLOWSW_REM			 497+#
FLOWTYP_REM			 498+#	1032	1587
FLUSH_QUEUES			 734	1335	1803	1889	2003	2023	2292*
FM_DAT				3326
FM_NM				2208
FNDB				2452	2456#	2466	2467#	2468	2470#	2475	2496	2497#	2498#
FULLWORD			 307+	 309+	 311+	 313+	 315+	 317+	 319+	 327+	 329+	 332+	 345+	 359+
				 361+	 376+	 383+	 385+	 478+	 480+	 482+	 484+	 486+	 488+	 490+	 492+
				 507+	 516+
GET2BYTES			 642+#	1015	1555	1747
GOT_CCB				1271	1279	1282#	1283	1293	1296#	1297	1307	1313	1317#	1318	1328
				1331	1543	1593	1599	1604#	1605
HDB_SIZE			 626+#	1117
HI				 254+#	1654	1658
HOLDIT				2957
H_DSTADDR			 369+#	1559	2749
H_NSPBUF			 352+#
H_REM_ADDR			 461+#	 815	 862	 950	1031	1590	1700	1937	2017	2550	2597	2719
H_SIZESEG			 525+#
H_SRCADDR			 371+#	1031	1590	2017	2719
I				 651+	 654+	 658+	2992	2993
INFO				 394+#	 395+	 689+	1014	1020	1033	1554	1561
INTHEAD				 530+#
INTRHEAD			 540+#
INTRTAIL			 542+#
INTR_QUEUE			 538+#	 539+	2390
INTTAIL				 532+#
INT_QUEUE			 528+#	 529+	2325
INVFLW				 630+#	2154	2161
INVMSG				 629+#	2154	2156
J				2277	2279	2460	2494	2689	2691	2702	2704	2810	2812
LCCB				1072	1101	1103	1107	1120	1164	1166	1169#	1170#	1171#	1172#	1173#
				1174#	1175#	1176#	1177#	1182
LLCRS$				 906	1008	1066	1237	1334	1408	1509	1615	1826	1894	1991	2065
				2110	2242	2329	2338	2347	2357	2370	2380	2387	2394	2401	2409
				2415	2648	2762	3341
LONG_WORD			 251+#	1649
LOW				 253+#	1651	1657
LSFLAGS				 372+#	 373+
LS_RSV				 620+#
L_DSTADDR			 368+#	1559	2748
L_NSPBUF			 351+#
L_REM_ADDR			 460+#	 814	 861	 949	1030	1589	1699	1936	2016	2549	2596	2718
L_SIZESEG			 524+#
L_SRCADDR			 370+#	1030	1589	2016	2718
MAP$				1012	1016	1027	1029	1460	1462	1552	1556	1574	1577	1746	1748
				2028	2030	2151	2168	2205	2454	2508	2687	2700	2709	2733	2735
				2821	2824	2874	2917	3265	3275	3337	3339
MORE_FIELDS			 471+#	 575+
MSGFLG				 362+#	 363+	2721
MSGHEAD				 535+#
MSGTAIL				 537+#
MSGTYP				 449+#	2693	2725	2741	2747	2755
MSG_CHAIN			 527+#
MSG_NONE			 625+#	2693	2741	2755
MSG_QUEUE			 533+#	 534+	1234	1821	2376
N				 651+	 654+	 658+
N$EABL				 182+#
N$EABO				 174+#
N$EABR				 175+#	1335	1803	1889	2003	2023
N$ECLS				 180+#
N$ECON				 171+#	2644
N$ELST				 178+#
N$EMTL				 179+#
N$ENUR				 181+#
N$EOPN				 173+#	1388
N$ERES				 170+#
N$ERMO				 177+#
N$ERUN				 183+#
N$ESTE				 172+#
N$ETMI				 176+#
N$ETRN				 184+#
N$FBOM				 193+#
N$FCMP				 194+#	2364
N$FEOM				 192+#
N$FMES				 191+#
N$FSEG				 190+#
N$HI				 166+#
N$LO				 185+#
N$SACC				 168+#	1402
N$SCC				 204+#	1775	1861
N$SCD				 208+#	 902	1024	2006	2012
N$SCI				 205+#	 899	1023	1037	1836	2006	2008	2011
N$SCL				 214+#	1228
N$SCN				 215+#	1325	1781	1867
N$SCR				 201+#	1304	1585
N$SDIC				 212+#	1810	1817	2000	2051
N$SDI				 211+#	1778	1809	1864	1998
N$SDN				 213+#	1290	2022	2049
N$SDRC				 203+#	1815
N$SDR				 202+#	1777	1808	1813	1863
N$SNC				 207+#
N$SNR				 206+#	1276	1386	1755
N$SO				 200+#
N$SREJ				 167+#	1395
N$SRJ				 209+#	1276	1393	1839	2015	2037	2050
N$SRUN				 210+#	1040	1061	1276	1400	1776	1862	2006	2019
N$SSUC				 169+#	1236	1824
NAME				 768#
NDACTIVE			 419+#	2464	2490	2505	3014
NDADDR				 418+#	2280	2462	2468	2469	2477	2491	2502	2705	2814	2820	3119
				3215
NDB				 998	1002#	1028	1218	1232#	1443	1447#	1461#	1572#	1575#	1576	1980
				1985#	2029	2279#	2280	2283	2704#	2705	2707	2731	2732#	2734#	2812#
				2814	2820	2956	2964#	2999	3006	3014	3020	3102	3105#	3107	3110
				3111	3112	3113	3114	3115	3116	3117	3118	3119	3203	3206#	3208
				3212	3213	3215	3253	3255#	3267	3269#	3272	3273#	3315	3318#	3333
				3338
NDB_FOUND			2450	2457	2475
NDB_GET				 735	1564	2421*
NDB_RCV				 421+#	1028	1576	2029	2482	3111	3212
NDB_XMT				 422+#	2483	3112
NDC_RCV				 425+#	1575	2486	3115
NDC_REJ				 427+#	2489	2734	3118
NDC_XMT				 426+#	1461	2487	3116
NDDELAY				 429+#	3020	3267	3269	3272	3273
NDM_RCV				 423+#	2484	3113
NDM_XMT				 424+#	2485	3114	3338
NDTIMEOUT			 428+#	2488	3117
NDTIME_ZEROED			 420+#	2481	2501	3110	3213
ND_SIZE				 433+#	1548	2275	2472	2494	2680	2799
NIX				2864
NL_BLD				 736	2515*	2754
NM$SUC				2808	2918	2995	3010	3159	3210	3219
NMP				2869#	2870	2961#	2962	3098#	3099	3199#	3200
NMPAR				2870#	2962#	2964	2970	3099#	3105	3200#	3206
NMX$ENT_HI			2212
NMX$ENT_LO			2212
NMX$ENT_NOD			2214
NMX$FNC_HI			2216
NMX$FNC_LO			2216
NMX$FNC_RET			2227
NMX$FNC_SET			2218
NMX$FNC_SHO			2223
NMX$FNC_SZC			2225
NMX$FNC_ZRO			2220
NMX$SEL_CHA			2968
NMX$SEL_COU			2982
NMX$SEL_STA			2976
NMX$SEL_SUM			2976
NMX_NMPAR_ENTITY		2870	2962	3099	3200
NMX_NMPAR_FIELDS		2869	2961	3098	3199
NNDB				2451	2455#	2462	2464	2467	2469	2470	2472#	2475#	2477	2481	2482
				2483	2484	2485	2486	2487	2488	2489	2490	2491	2501	2502#	2505#
				2509
NODE				1548#	2275#	2279	2680#	2704	2799#	2812
NODEADDR			2247	2276	2280	2283#	2804	2820#	2822
NODELNK				 463+#	1002	1232	1447	1573	1985	2713	2715	2728	2732	3255	3318
NODEREM				 452+#	1578	1580	2716	3331
NODE_FIELDS			 416+#	 998	1218	1443	1548	1572	1980	2275	2279	2449	2451	2452
				2680	2704	2731	2799	2812	2956	3102	3203	3253	3315
NODE_FOUND			2450	2458	2463
NO_RCE				1981	1984#	2045#	2061
NR_BLD				 737	2562*	2740
NS1				 679+#
NS2				   1#	 684+#	 768
NSP				 665+#	 689+
NSP$_CFN			 701+	2639
NSP$_DSP			 694+
NSP$_ERR			 691+
NSP$_ICE			 695+
NSP$_MSG			 698+
NSP$_NTE			 692+
NSP$_RNG			 693+
NSP$_RTE			 699+
NSP$_RUS			 700+
NSPACT_TIM			 310+#	1035	2905	3049
NSPBOM				 247+#
NSPBUF				 349+#	 350+	 955	1034	1455	1591
NSPDELAY			 312+#	2895	3039
NSPEOM				 248+#
NSPEVENT_BUF			 346+#
NSPMAX				 318+#	1586	3002	3121	3217
NSPNODES			 339+#	 340+
NSPNS0_PIX			 355+#
NSPNS1_PIX			 356+#
NSPNS2_PIX			 357+#
NSPNXT_PORT			 348+#
NSPPORTS			 321+#	 322+
NSPRESERVED			 333+#	 334+
NSPRETRANS			 316+#	2910	3054
NSPRUNNING			 397+#	2881
NSPSC_PIX			 354+#	1407	1508	2109	2645
NSPSELF				 308+#	1580	2883	2970	2999	3119	3215	3330
NSPTIMER			 306+#
NSPTOTAL			 328+#	3034
NSPT_NODES			 347+#	2277	2460	2702	2810
NSPT_RSV			 330+#	2689
NSPVERSION			 360+#
NSPWEIGHT			 314+#	2900	3044	3273
NSPXPT_PIX			 358+#	3328
NSP_CLASS_EVENT			 627+#	2167	2479
NSP_CONFIDENCE			 738	1331	1790	1876	2609*
NSP_FIELDS			 304+#	 776
NSP_SIZE			 401+#
NUMBER				 379+#
NUMDAT				 479+#
NUMHIGH				 485+#
NUMOTH				 483+#
NUMSENT				 481+#
N_GSTA				 138+#
N_GSTS				 135+#
N_LNK				 624+#	2747
N_PCLS				 137+#
N_POPN				 136+#
N_RCON				 153+#	1502
N_RDAT				 155+#
N_RDSC				 154+#	2104
N_RES				 623+#	2725
N_RHI				 160+#
N_RINT				 156+#	 160+
N_SCNF				 151+#	2642
N_SCNS				 152+#	1379
N_XABT				 143+#
N_XACC				 140+#
N_XBUF				 148+#
N_XCON				 139+#
N_XDAT				 144+#
N_XDRQ				 147+#
N_XDSC				 142+#
N_XHI				 159+#
N_XINI				 149+#	 159+
N_XINT				 145+#
N_XIRQ				 146+#
N_XREJ				 141+#
OTHACK_QUEUE			 553+#	 554+	2383
OTHDREQUEST			 600+#
OTHHEAD				 555+#
OTHINTERRUPT			 598+#
OTHIREQUEST			 599+#
OTHREADY			 595+#
OTHRES				 521+#
OTHSENT				 596+#
OTHSTATE			 518+#
OTHTAIL				 557+#
OTHTIMEOUT			 597+#
OTHTYP				 519+#
PARAMETER_CM			3026
PARAMETER_DS_1			2164
PARAMETER_DU_1			3027	3028	3029	3039	3044
PARAMETER_DU_2			3002	3014	3020	3034	3049	3054
PARAMETER_HI			2158	2163
PARM_NUM			2866	2875	2877	2955
PDB				 780	 806	 814	 815	 816	 817	 818	 821#	 822	 827	 853	 861
				 862	 865	 871	 897	 899	 902#	 903	 912	 939	 949	 950	 951
				 952	 953	 959	 961#	 962	 968	 994	1002	1004	1023	1024	1030#
				1031#	1032#	1033#	1034#	1035#	1037	1039	1040#	1041#	1043	1047	1051#
				1054	1056	1058#	1061	1063#	1072	1100	1127	1129#	1135	1161	1179
				1181#	1188	1214	1223	1226#	1228	1229	1232	1233#	1234	1244	1268
				1274	1279	1282	1283	1284#	1293	1296	1297	1298#	1307	1310	1313
				1316	1317	1318	1319#	1328	1331	1332	1335	1347	1373	1380	1383
				1414	1440	1447	1451	1452	1453	1459#	1463	1468	1496	1503	1514
				1540	1573#	1578#	1580	1582#	1584#	1585#	1587#	1588#	1589#	1590#	1591#
				1593	1596	1599	1600#	1603	1605	1608#	1665	1691	1699	1700	1701
				1702	1707#	1708	1713	1739	1755#	1756	1760	1765	1768#	1775	1776
				1777	1778	1781#	1782#	1783#	1784#	1785	1788	1790	1793	1796#	1803
				1808	1809	1810	1813	1815#	1817#	1818#	1819	1821	1833	1836	1839#
				1840	1842	1846	1851	1854#	1861	1862	1863	1864	1867#	1868#	1869#
				1870#	1871	1874	1876	1879	1882#	1889	1900	1926	1936	1937	1938
				1939	1943	1945#	1946	1951	1977	1985	1987	1995	2000#	2001#	2002#
				2003	2008	2010	2011	2012	2015#	2016#	2017#	2019	2022#	2023	2024#
				2025#	2026#	2032	2037	2039	2041	2044#	2049	2050	2051	2054	2056
				2058#	2071	2098	2105	2115	2144	2292	2318	2325	2332	2335	2336#
				2341	2344	2345#	2350	2353	2354#	2360	2362#	2373#	2376	2383	2390
				2397	2405	2412	2609	2635	2638#	2639	2643	3225	3249	3255	3257
				3260	3276#
PDB_SIZE			 572+#
PID				 455+#	 816	 951	1380	1451	1503	1701	1938	2105	2551	2598	2639
				2643	2748
PORTSTATE			 447+#	 448+	 899	 902	1023	1024	1037	1040	1061	1228	1274	1383
				1585	1755	1775	1776	1777	1778	1781	1808	1809	1810	1813	1815
				1817	1836	1839	1861	1862	1863	1864	1867	1995	2000	2008	2011
				2012	2015	2019	2022	2037	2049	2050	2051	3320
PORT_FIELDS			 575+#	 806	 853	 897	 939	 994	1100	1161	1214	1268	1373	1440
				1496	1540	1691	1739	1926	1977	2098	2144	2318	2541	2588	2635
				2683	2686	2691	3249	3311
PTR				 634+	 638+	 639+	 642+	 645+	 646+	 809	 811#	 813	 814	 815	 816
				 817	 818	 820	 856	 858#	 860	 861	 862	 864	 942	 944#	 948
				 949	 950	 951	 952	 953	 954	 955	 957	 997	1001#	1013	1014
				1015	1444	1446#	1448	1449	1450	1451	1452	1453	1454	1455	1457
				1545	1550#	1553	1554	1555	1694	1696#	1698	1699	1700	1701	1702
				1703	1704	1706	1742	1745#	1747	1929	1931#	1935	1936	1937	1938
				1939	1941	2544	2546#	2548	2549	2550	2551	2552	2553	2554	2556
				2591	2593#	2595	2596	2597	2598	2599	2600	2601	2603
PUT2BYTES			 634+#	 818	 955	1455
QUAL				 380+#
QUEUE				 272+	 274+	 275+#
Q_ACK				 621+#	 818
Q_FLG				 381+#
Q_NAK				 622+#
RAD50				 753#
RALPH				3025#	3027	3028	3029
RCVHEAD				 566+#
RCVMSG_QUEUE			 564+#	 565+	2412
RCVTAIL				 568+#
RDB				2515	2541	2549	2550	2551	2552	2557	2562	2588	2596	2597	2598
				2599	2604	2683	2689#	2697	2713#	2715#	2716#	2717#	2718#	2719#	2725#
				2726#	2728	2732	2740	2741#	2747#	2748#	2749#	2754	2755#
RDB_SIZE			 468+#	2686
REASON				 386+#	1747	1750
REAS_PTR			 558+#
RESV_PORT			 739	1567	2654*
RETURN_NODE_LIST		 740	2228	2767*
ROT				1648	1651	1654
RPORT				2686#	2691
RTN_CCB				2322	2325	2327#	2328#	2329	2335#	2337#	2338	2344#	2346#	2347	2353#
				2355#	2356#	2357	2360#	2362	2364	2367	2372	2376	2378#	2379#	2380
				2383	2385#	2386#	2387	2390	2392#	2393#	2394	2397	2399#	2400#	2401
				2405	2407#	2408#	2409	2412	2414#	2415
RTN_NDB				2421	2449	2509#
SAVE_BIAS			2147	2150	2168
SC				 661+#
SEGNUM				 384+#
SEGSIZE				 387+#	1015	1034	1555	1591
SERVICES			 388+#	 389+	1013	1019	1553	1560
SET_NODE_PARMS			 741	2219	2835*
SEVERE				 689+
SHOW_NODE_COUNTERS		 743	2985	3066*	3158
SHOW_NODE_ITEMS			 742	2224	2922*
SHOW_ZERO_NODE_COUNTERS		 745	2226	3129*
SIZESEG				 522+#	 523+	1034	1591
SMAP$				2150	3336
SOME_END			 464+#	 473+
SOME_FIELDS			 445+#	 575+
STATUS				2203	2206#	2241
STATUS_CODE			2292	2327	2356	2368	2378	2385	2392	2399	2407
STK_CCB				1376#	1381	1396	1397	1403	1404	1499#	1504	1505	1506	1507	2101#
				2106	2107	2108	2323	2367#	2368#	2369#	2370
STR				 753	 754
STS				2801	2808#	2819#	2829	2958	2985#	2986	3156	3158#	3159	3160#	3161
SUBTYPE				 366+#
TEMP				 636+	 637+#	 638+	 639+	 644+	 645+#	 646+#	 647+	1217	1546	1564	1572
				1573	2148	2684	2702#	2711	2713	2737	2740	2751	2754	3316	3336
				3339
TIMERCON			 477+#	1782	1818	1868	2002
TIMERDAT			 474+#	1783	1869	2025
TIMERINACT			 493+#	1035
TIMEROTH			 476+#	1784	1870	2026
TIMER				2867
TRUE				 276+	 584+#	 818	1041	1058	1063	1130	1183	2045	2058	2284	2509
TYPE				 365+#	2115	2154	2167
UPDATE_DELAY			 746	 903	1039	1819	1840	2010	3225*
V3_1				 585+#	1833
V3_2				 586+#
VAL				 634+	 637+
VALUE				1622	1651
VER				 396+#	1588
VERSIONREM			 504+#	1033	1588	1833
WK_CCB				 999	1043	1046#	1047	1054	1056	1743	1756	1759#	1760	1788	1790
				1821	1824#	1825#	1826	1842	1845#	1846	1874	1876	1982	2032	2035#
				2039	2041	2054	2056
X				2691#	2693	2695
XCCB				1107#	1108#	1109#	1110#	1111#	1112#	1113#	1114#	1115#	1117	1125#
XPE				 674+#
XPT				 669+#
XPT_XMIT			 747	 822	 865	 962	1463	1708	1946	2557	2604	3283*
XXDB				3283	3311	3318	3320	3324	3327	3331
ZERO_NODE_COUNTERS		 744	2221	3160	3167*
$16$				 760#
$32$				 761#
$ADDRESX			 321+	 323+	 325+	 333+	 335+	 337+	 339+	 341+	 343+	 463+	 508+	 509+
				 510+	 520+	 521+	 527+	 528+	 530+	 532+	 533+	 535+	 537+	 538+	 540+
				 542+	 543+	 545+	 547+	 548+	 550+	 552+	 553+	 555+	 557+	 558+	 559+
				 561+	 563+	 564+	 566+	 568+
$ALIGN				 307+	 309+	 311+	 313+	 315+	 317+	 319+	 327+	 329+	 332+	 345+	 359+
				 361+	 376+	 383+	 385+	 478+	 480+	 482+	 484+	 486+	 488+	 490+	 492+
				 507+	 516+
$BIT				 381+	 397+	 497+	 499+	 500+	 501+	 502+	 503+	 505+	 506+
$BITS				 364+	 365+	 366+	 374+	 375+	 379+	 380+	 390+	 391+	 396+	 496+	 498+
				 504+
$BYTE				 312+	 314+	 351+	 352+	 354+	 355+	 356+	 357+	 358+	 360+	 362+	 368+
				 369+	 370+	 371+	 372+	 388+	 393+	 394+	 451+	 455+	 456+	 460+	 461+
				 493+	 494+	 495+	 511+	 512+	 518+	 519+	 524+	 525+
$CONTINUE			 324+	 336+	 342+	 353+	 367+	 382+	 392+	 450+	 457+	 462+	 475+	 526+
				 531+	 536+	 541+	 546+	 551+	 556+	 562+	 567+
$DSPCR				 774
$FIELD				 250+	 303+	 415+	 444+
$FIELD_SET_SIZE			 258+	 401+	 433+	 468+	 572+
$INTEGER			 253+	 254+	 418+	 419+	 425+	 426+	 427+	 428+	 429+	 513+
$LONG_WORD			 261+#	 421+	 422+	 423+	 424+
$MCB_GET_DSR			1117
$MCB_PROCESS			 768
$NM$ERR_CWS			2885
$NM$ERR_IMF			2819
$NM$ERR_MPE			2209	2230	2235
$NM$ERR_OPF			2890
$NM$ERR_UPT			2914
$NM_LOG_BEGIN			2152	2480
$NM_LOG_END			2167	2491
$NM_RESPONSE_BEGIN		2990	3104
$NM_RESPONSE_END		3059	3124
$NM_TIME			2501	3213
$NSP$LENGTH			 258+#	 262+	 265+
$NSP_INFO			 698+	 699+	 700+	 701+
$NSP_SEVERE			 691+	 692+	 693+	 694+	 695+
$OVERLAY			 322+	 334+	 340+	 350+	 363+	 373+	 378+	 389+	 395+	 448+	 454+	 459+
				 473+	 523+	 529+	 534+	 539+	 544+	 549+	 554+	 560+	 565+
$POINTER			 346+
$SHORT_INTEGER			 306+	 308+	 310+	 316+	 318+	 328+	 330+	 347+	 348+	 349+	 377+	 384+
				 386+	 387+	 452+	 453+	 458+	 474+	 476+	 477+	 479+	 481+	 483+	 485+
				 487+	 489+	 491+	 514+	 515+	 517+	 522+
$SUB_BLOCK			 262+	 464+
$TIME				 420+
$TINY_INTEGER			 447+	 449+