Google
 

Trailing-Edge - PDP-10 Archives - BB-R598A-RM_1983 - swskit-v3/listings/xpt/top.list
There are no other files named top.list in the archive.
TOP								25-Jan-1983 10:03:57	TOPS-20 Bliss-16 2A(530)	    Page   1
								30-Dec-1982 21:17:33	NETPKG:<XPT>TOP.BLI.4 (1)

;	  0001	module TOP	(
;	  0002			IDENT = 'X01040'
;	  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	! FACILITY:	Application Services
;	  0029	!
;	  0030	! ABSTRACT:
;	  0031	!
;	  0032	!	Network Topology task - sends to anyone who connects to it a bit map
;	  0033	!	of the network topology.  The map, which is contained in a single
;	  0034	!	message, is of the following format:
;	  0035	!	
;	  0036	!		+----+----+----+----+       +-----+
;	  0037	!		| NN | n1 | n2 | n3 | * * * | nNN +   Field
;	  0038	!		+----+----+----+----+       +-----+
;	  0039	!		  2    .2   .2   .2           .2      Length (bytes.bits)
;	  0040	!	
;	  0041	!	where:
;	  0042	!	
;	  0043	!		NN	is the highest node number accessible from the local
;	  0044	!			node.
;	  0045	!		nX	is a two-bit field giving the topology status for node
;	  0046	!			X:
;	  0047	!	
;	  0048	!				00	Node not reachable
;	  0049	!				01	   (reserved)
;	  0050	!				10	Accessible Phase II node
;	  0051	!				11	Assessible Phase III node
;	  0052	!	
TOP								25-Jan-1983 10:03:57	TOPS-20 Bliss-16 2A(530)	    Page   2
X01040								30-Dec-1982 21:17:33	NETPKG:<XPT>TOP.BLI.4 (1)

;	  0053	!	As is the customary DECnet convention, the bit fields are arranged from
;	  0054	!	low-order to high-order in each byte, four to a byte, and the bytes are
;	  0055	!	arranged from beginning to end of the message.  Thus bits 0-1 of byte 2
;	  0056	!	(zero-based) in the message are for node 1, bits 2-3 of the byte are
;	  0057	!	for node 2, bits 0-1 of byte 3 are for node 5, and so forth.
;	  0058	!	
;	  0059	!	The total length of the message is (NN+3)/4 + 2 bytes.
;	  0060	!
;	  0061	! ENVIRONMENT:	MCB
;	  0062	!
;	  0063	! AUTHOR: L. Webber , CREATION DATE: 27-Jan-81
;	  0064	!
;	  0065	! MODIFIED BY:
;	  0066	!
;	  0067	!	27-Jan-81 : VERSION 1.00
;	  0068	!
;	  0069	! 1.01	L. Webber, 3-Mar-81
;	  0070	!	Quit ACCEPT_COMPLETE after an abort.
;	  0071	!
;	  0072	! 1.02	A. Peckham, 8-May-82
;	  0073	!	Eliminate GETLDB$ and RETLDB$ references.
;	  0074	!
;	  0075	! 1.04	A. Peckham, 21-May-82
;	  0076	!	Use state machine.
;	  0077	!
;	  0078	!--
TOP								25-Jan-1983 10:03:57	TOPS-20 Bliss-16 2A(530)	    Page   3
X01040								30-Dec-1982 21:17:33	NETPKG:<XPT>TOP.BLI.4 (2)

;	  0079	
;	  0080	!
;	  0081	! INCLUDE FILES:
;	  0082	!
;	  0083	
;	  0084	library 'MCB:MCBLIB';
;	  0085	library 'MCB:XPORTX';
;	  0086	library 'MCB:SCSYS';
;	  0087	require 'XPT:TOPMAC';
TOP								25-Jan-1983 10:03:57	TOPS-20 Bliss-16 2A(530)	    Page   4
X01040								30-Dec-1982 21:18:46	NETPKG:<XPT>TOPMAC.REQ.8 (1)

; %PRINT:				  [0,0,0,0]   (+%O'0')
; %PRINT:				  [0,0,8,0]   (+%O'0')
; %PRINT:				  [0,8,8,0]   (+%O'1')
; %PRINT:				  [1,0,8,0]   (+%O'2')
; %PRINT:				  [1,8,8,0]   (+%O'3')
; %PRINT:				  [2,0,16,1]   (+%O'4')
TOP								25-Jan-1983 10:03:57	TOPS-20 Bliss-16 2A(530)	    Page   5
X01040								30-Dec-1982 21:17:33	NETPKG:<XPT>TOP.BLI.4 (2)

;	  0159	
;	  0160	!
;	  0161	! TABLE OF CONTENTS
;	  0162	!
;	  0163	
;	  0164	forward routine
;	  0165		RCPDSP: MCB_DB_CCB_MOD novalue,
;	  0166		XCPDSP: MCB_DB_CCB_MOD novalue,
;	  0167		INIT_TOP: MCB_DB_MOD novalue,
;	  0168		RCV_CONNECT: MCB_DB_CCB novalue,
;	  0169	        RCV_ABORT: MCB_DB_CCB novalue,
;	  0170		ACCEPT_COMPLETE: MCB_DB_CCB novalue,
;	  0171		SEND_COMPLETE: MCB_DB_CCB novalue,
;	  0172		DISCONNECT_COMPLETE: MCB_DB_CCB novalue,
;	  0173	        ABORT: MCB_DB_CCB novalue,
;	  0174	        SEND_MESSAGE: MCB_DB_CCB novalue;
;	  0175	
;	  0176	!
;	  0177	! MACROS:
;	  0178	!
;	  0179	
;	M 0180	macro RAD50(NAME) =
;	M 0181	    %IF %bliss(BLISS36) %THEN
;	M 0182		%RAD50_10 %string(NAME)
;	M 0183	    %ELSE
;	M 0184		%RAD50_11 %string(NAME)
;	  0185	    %FI %;
;	  0186	
;	  0187	!
;	  0188	! EQUATED SYMBOLS:
;	  0189	!
;	  0190	
;	  0191	!
;	  0192	! OWN STORAGE:
;	  0193	!
;	  0194	
;	  0195	external routine $DSPCR: novalue;
;	  0196	
;	P 0197	bind $TOPLL = TABLE$ ($DSPCR, FC_CCP,	! Dispatch table:
;	P 0198	
;	P 0199		(FC_TIM,INIT_TOP),		!   Timer service
;	P 0200		(FC_XCP,XCPDSP),		!   Transmit complete
;	  0201		(FC_RCP,RCPDSP));		!   Receive complete
;	  0202	
;	  0203	$MCB_PROCESS(name=TOP,llc_dispatch=$TOPLL)
;	  0204	
;	  0205	!
;	  0206	! EXTERNAL REFERENCES:
;	  0207	!
;	  0208	
;	  0209	external
;	  0210	    MCB$GW_PROCESS_HANDLE;
TOP								25-Jan-1983 10:03:57	TOPS-20 Bliss-16 2A(530)	    Page   6
X01040								30-Dec-1982 21:17:33	NETPKG:<XPT>TOP.BLI.4 (3)

;	  0211	
;	  0212	routine RCPDSP (DB,CCB,MODD): MCB_DB_CCB_MOD novalue =
;	  0213	
;	  0214	!++
;	  0215	! FUNCTIONAL DESCRIPTION:
;	  0216	!
;	  0217	! Dispatches Receive Complete subfunctions.
;	  0218	!
;	  0219	! FORMAL PARAMETERS
;	  0220	!
;	  0221	!	DB	Process database
;	  0222	!	CCB	Function CCB
;	  0223	!	MODD	Modifier
;	  0224	!
;	  0225	! IMPLICIT INPUTS
;	  0226	!
;	  0227	!	NONE.
;	  0228	!
;	  0229	! ROUTINE VALUE:
;	  0230	! COMPLETION CODES:
;	  0231	!
;	  0232	!	NONE.
;	  0233	!
;	  0234	! SIDE EFFECTS:
;	  0235	!
;	  0236	!	NONE.
;	  0237	!
;	  0238	!--
;	  0239	
;	  0240	begin
;	  0241	
;	P 0242	DISPATCH$(.MODD,
;	P 0243	          TABLE$ ($DSPCR, 0,		! Sub-dispatch table
;	P 0244	                  (S$CNR,RCV_CONNECT),  !   Connect Received
;	P 0245	                  (S$DSR,RCV_ABORT)),   !   Abort Received
;	P 0246	          (.DB,.CCB),
;	  0247	          MCB_DB_CCB);
;	  0248	
;	  0249	end;				!End of RCPDSP


						.TITLE	TOP
						.IDENT	/X01040/


000000						.PSECT	......,  D  
000000	077550 				; HEADER
					U.12:	.RAD50	/TOP/
000002	000403 					.WORD	403
000004	000000 					.WORD	0
000006	000000 					.WORD	0
000010	000000 					.WORD	0
TOP								25-Jan-1983 10:03:57	TOPS-20 Bliss-16 2A(530)	    Page   7
X01040								30-Dec-1982 21:17:33	NETPKG:<XPT>TOP.BLI.4 (3)

000012	000000'					.WORD	U.11
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



000000						.PSECT	$PLIT$,  RO ,  D  
000000	000000G				P.AAA:	.WORD	$DSPCR
000002	000000G					.WORD	$DSPCR
000004	000000G					.WORD	$DSPCR
000006	000000G					.WORD	$DSPCR
000010	000000G					.WORD	$DSPCR
000012	000000V					.WORD	U.3
000014	000000V					.WORD	U.2
000016	000000'					.WORD	U.1
000020	000000G					.WORD	$DSPCR
000022	000000G					.WORD	$DSPCR
000024	000000V				P.AAB:	.WORD	U.4
000026	000000G					.WORD	$DSPCR
000030	000000G					.WORD	$DSPCR
000032	000000V					.WORD	U.5


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


	000000'				; $TOPLL
					U.11=		    P.AAA


						.SBTTL	RCPDSP
000000						.PSECT	$CODE$,  RO 

000000	004773  000024'			; RCPDSP
					U.1:	JSR	PC,@P.AAB(R3)			; *,*(MODD)				0247
000004	000207 					RTS	PC				;					0212

; Routine Size:  3 words,	Routine Base:  $CODE$ + 0000
; Maximum stack depth per invocation:  1 word
TOP								25-Jan-1983 10:03:57	TOPS-20 Bliss-16 2A(530)	    Page   8
X01040								30-Dec-1982 21:17:33	NETPKG:<XPT>TOP.BLI.4 (4)

;	  0250	
;	  0251	routine TIMDSP (DB,CCB,MODD): MCB_DB_CCB_MOD novalue =
;	  0252	
;	  0253	!++
;	  0254	! FUNCTIONAL DESCRIPTION:
;	  0255	!
;	  0256	! Dispatches Time subfunctions.
;	  0257	!
;	  0258	! FORMAL PARAMETERS
;	  0259	!
;	  0260	!	DB	Process database
;	  0261	!	CCB	Function CCB
;	  0262	!	MODD	Modifier
;	  0263	!
;	  0264	! IMPLICIT INPUTS
;	  0265	!
;	  0266	!	NONE.
;	  0267	!
;	  0268	! ROUTINE VALUE:
;	  0269	! COMPLETION CODES:
;	  0270	!
;	  0271	!	NONE.
;	  0272	!
;	  0273	! SIDE EFFECTS:
;	  0274	!
;	  0275	!	NONE.
;	  0276	!
;	  0277	!--
;	  0278	
;	  0279	begin
;	  0280	
;	P 0281	DISPATCH$(.MODD,
;	P 0282	          TABLE$ ($DSPCR, 0,		! Sub-dispatch table
;	P 0283	                  (FM_PIN,INIT_TOP),    !  Initialize
;	P 0284	                  (FM_CCB,SEND_MESSAGE)),! Use CCB
;	P 0285	          (.DB,.CCB),
;	  0286	          MCB_DB_CCB);
;	  0287	
;	  0288	end;				!End of TIMDSP



000034						.PSECT	$PLIT$,  RO ,  D  
000034	000000G				P.AAC:	.WORD	$DSPCR
000036	000000G					.WORD	$DSPCR
000040	000000G					.WORD	$DSPCR
000042	000000V					.WORD	U.3
000044	000000V					.WORD	U.10


						.SBTTL	TIMDSP
000006						.PSECT	$CODE$,  RO 
TOP								25-Jan-1983 10:03:57	TOPS-20 Bliss-16 2A(530)	    Page   9
X01040								30-Dec-1982 21:17:33	NETPKG:<XPT>TOP.BLI.4 (4)


000000	004773  000034'			; TIMDSP
					U.13:	JSR	PC,@P.AAC(R3)			; *,*(MODD)				0286
000004	000207 					RTS	PC				;					0251

; Routine Size:  3 words,	Routine Base:  $CODE$ + 0006
; Maximum stack depth per invocation:  1 word
TOP								25-Jan-1983 10:03:57	TOPS-20 Bliss-16 2A(530)	    Page  10
X01040								30-Dec-1982 21:17:33	NETPKG:<XPT>TOP.BLI.4 (5)

;	  0289	
;	  0290	routine XCPDSP (DB,CCB,MODD): MCB_DB_CCB_MOD novalue =
;	  0291	
;	  0292	!++
;	  0293	! FUNCTIONAL DESCRIPTION:
;	  0294	!
;	  0295	! Dispatches Transmit Complete subfunctions.
;	  0296	!
;	  0297	! FORMAL PARAMETERS
;	  0298	!
;	  0299	!	DB	Process database
;	  0300	!	CCB	Function CCB
;	  0301	!	MODD	Modifier
;	  0302	!
;	  0303	! IMPLICIT INPUTS
;	  0304	!
;	  0305	!	NONE.
;	  0306	!
;	  0307	! ROUTINE VALUE:
;	  0308	! COMPLETION CODES:
;	  0309	!
;	  0310	!	NONE.
;	  0311	!
;	  0312	! SIDE EFFECTS:
;	  0313	!
;	  0314	!	NONE.
;	  0315	!
;	  0316	!--
;	  0317	
;	  0318	begin
;	  0319	
;	P 0320	DISPATCH$(.MODD,
;	P 0321	          TABLE$ ($DSPCR, 0,                    ! Sub-dispatch table
;	P 0322	                  (S$ACC,ACCEPT_COMPLETE),	!   Accept complete
;	P 0323	                  (S$SND,SEND_COMPLETE),        !   Message sent
;	P 0324	                  (S$DIS,DISCONNECT_COMPLETE),	!   Disconnection completed
;	P 0325	                  (S$ABO,DISCONNECT_COMPLETE)),	!   Abort completed
;	P 0326	          (.DB,.CCB),
;	  0327	          MCB_DB_CCB);
;	  0328	
;	  0329	end;				!End of XCPDSP



000046						.PSECT	$PLIT$,  RO ,  D  
000046	000000G				P.AAD:	.WORD	$DSPCR
000050	000000V					.WORD	U.6
000052	000000G					.WORD	$DSPCR
000054	000000V					.WORD	U.7
000056	000000G					.WORD	$DSPCR
000060	000000G					.WORD	$DSPCR
000062	000000G					.WORD	$DSPCR
TOP								25-Jan-1983 10:03:57	TOPS-20 Bliss-16 2A(530)	    Page  11
X01040								30-Dec-1982 21:17:33	NETPKG:<XPT>TOP.BLI.4 (5)

000064	000000G					.WORD	$DSPCR
000066	000000V					.WORD	U.8
000070	000000V					.WORD	U.8


						.SBTTL	XCPDSP
000014						.PSECT	$CODE$,  RO 

000000	004773  000046'			; XCPDSP
					U.2:	JSR	PC,@P.AAD(R3)			; *,*(MODD)				0327
000004	000207 					RTS	PC				;					0290

; Routine Size:  3 words,	Routine Base:  $CODE$ + 0014
; Maximum stack depth per invocation:  1 word
TOP								25-Jan-1983 10:03:57	TOPS-20 Bliss-16 2A(530)	    Page  12
X01040								30-Dec-1982 21:17:33	NETPKG:<XPT>TOP.BLI.4 (6)

;	  0330	
;	  0331	routine INIT_TOP (DB,MODD): MCB_DB_MOD novalue =
;	  0332	
;	  0333	!++
;	  0334	! FUNCTIONAL DESCRIPTION:
;	  0335	!
;	  0336	! Performs process initialization for TOP:
;	  0337	!
;	  0338	!	1.  Acquires the Transport data base address from XPT.
;	  0339	!	2.  Gets a work CCB, to cut down the risk of resource
;	  0340	!	    failure.
;	  0341	!	3.  Calculates Session Control's PIX and stores it in
;	  0342	!	    the TOP data base.
;	  0343	!
;	  0344	! FORMAL PARAMETERS
;	  0345	!
;	  0346	!	DB	TOP data base address
;	  0347	!	MODD	Function modifier: must be FM_PIN
;	  0348	!
;	  0349	! IMPLICIT INPUTS
;	  0350	!
;	  0351	!	NONE.
;	  0352	!
;	  0353	! ROUTINE VALUE:
;	  0354	! COMPLETION CODES:
;	  0355	!
;	  0356	!	NONE.
;	  0357	!
;	  0358	! SIDE EFFECTS:
;	  0359	!
;	  0360	!	All subsequent processing for TOP assumes that the Session
;	  0361	!	Control PIX and the Transport data base address already exist
;	  0362	!	in the TOP data base.
;	  0363	!
;	  0364	!--
;	  0365	
;	  0366	begin
;	  0367	
;	  0368	map DB: ref block field(D_FIELDS);
;	  0369	
;	  0370	!
;	  0371	!  Get the PIX for Transport (temporarily)
;	  0372	!
;	  0373	
;	  0374	if not PDVID$(rad50(XPT),D_XPTPIX)
;	  0375	then SIGNAL_STOP($TOP$_CFG);
;	  0376	
;	  0377	end;				!End of INIT_TOP


						.GLOBL	P.DTGT, $CALLI
TOP								25-Jan-1983 10:03:57	TOPS-20 Bliss-16 2A(530)	    Page  13
X01040								30-Dec-1982 21:17:33	NETPKG:<XPT>TOP.BLI.4 (6)


						.SBTTL	INIT.TOP
000000	005746 				; INIT.TOP
					U.3:	TST	-(SP)				;					0331
000002	012746  000002 				MOV	#2,-(SP)			;					0374
000006	060616 					ADD	SP,(SP)				; $MCB$MY.INDEX,*
000010	012746  114224 				MOV	#-63554,-(SP)
000014	012746  000002 				MOV	#2,-(SP)
000020	012746  000000G				MOV	#P.DTGT,-(SP)
000024	004767  000000G				JSR	PC,$CALLI
000030	062706  000010 				ADD	#10,SP
000034	010003 					MOV	R0,R3				; *,$MCB$STATUS
000036	006000 					ROR	R0
000040	103001 					BCC	1$
000042	011601 					MOV	(SP),R1				; $MCB$MY.INDEX,$MCB$HANDLE
000044	010300 				1$:	MOV	R3,R0				; $MCB$STATUS,$MCB$STATUS
000046	006003 					ROR	R3				; $MCB$STATUS
000050	103002 					BCC	2$
000052	110165  000001 				MOVB	R1,1(R5)			; $MCB$HANDLE,*(DB)
000056	032700  000001 			2$:	BIT	#1,R0				; *,$MCB$STATUS
000062	001007 					BNE	3$
000064	012746  100024 				MOV	#-77754,-(SP)			;					0375
000070	012746  000001 				MOV	#1,-(SP)
000074	004767  000000G				JSR	PC,$STOP
000100	022626 					CMP	(SP)+,(SP)+
000102	005726 				3$:	TST	(SP)+				;					0331
000104	000207 					RTS	PC

; Routine Size:  35 words,	Routine Base:  $CODE$ + 0022
; Maximum stack depth per invocation:  6 words
TOP								25-Jan-1983 10:03:57	TOPS-20 Bliss-16 2A(530)	    Page  14
X01040								30-Dec-1982 21:17:33	NETPKG:<XPT>TOP.BLI.4 (7)

;	  0378	
;	  0379	routine RCV_CONNECT (DB,CCB): MCB_DB_CCB novalue =
;	  0380	
;	  0381	!++
;	  0382	! FUNCTIONAL DESCRIPTION:
;	  0383	!
;	  0384	! Processes an incoming connect.  Only one link at a time is allowed.
;	  0385	!
;	  0386	! FORMAL PARAMETERS
;	  0387	!
;	  0388	!	DB	TOP data base address
;	  0389	!	CCB	Function CCB
;	  0390	!
;	  0391	! IMPLICIT INPUTS
;	  0392	!
;	  0393	!	NONE.
;	  0394	!
;	  0395	! ROUTINE VALUE:
;	  0396	! COMPLETION CODES:
;	  0397	!
;	  0398	!	NONE.
;	  0399	!
;	  0400	! SIDE EFFECTS:
;	  0401	!
;	  0402	!	NONE.
;	  0403	!
;	  0404	!--
;	  0405	
;	  0406	begin
;	  0407	map DB: ref block field(D_FIELDS);
;	  0408	map CCB: ref block field(C_FIELDS);
;	  0409	
;	  0410	if .D_STATE neq DS_IDLE                 ! Link already in use -
;	  0411	then begin                              !   reject this one
;	  0412	     $SC_CONNECT_RECEIVED(.CCB,0,S_EOTB);
;	  0413	     return;
;	  0414	     end;
;	  0415	
;	  0416	D_STATE = DS_DO_ACCEPT;
;	  0417	D_LLA = .CCB[C_LIX];                    ! Save the LLA
;	  0418	D_SCPIX = .CCB[C_PIX];                  !  and SC PIX.
;	P 0419	$SC_CONNECT_RECEIVED(.CCB,              ! Acknowledge the connection
;	  0420	    .C_ULA,S_SSUC);
;	  0421	
;	  0422	SEND_MESSAGE(D_BASE,0)
;	  0423	end;				!End of RCV_CONNECT


						.GLOBL	$SCHED


						.SBTTL	RCV.CONNECT
TOP								25-Jan-1983 10:03:57	TOPS-20 Bliss-16 2A(530)	    Page  15
X01040								30-Dec-1982 21:17:33	NETPKG:<XPT>TOP.BLI.4 (7)

000000	010400 				; RCV.CONNECT
					U.4:	MOV	R4,R0				; *,CCB					0379
000002	105715 					TSTB	(R5)				; DB					0410
000004	001413 					BEQ	1$
000006	105060  000024 				CLRB	24(R0)				; *(CCB)				0412
000012	012760  177772  000014 			MOV	#-6,14(R0)			; *,*(CCB)
000020	112760  000004  000012 			MOVB	#4,12(R0)			; *,*(CCB)
000026	004767  000000G				JSR	PC,$SCHED
000032	000207 					RTS	PC				;					0411
000034	112715  000001 			1$:	MOVB	#1,(R5)				; *,DB					0416
000040	116065  000010  000002 			MOVB	10(R0),2(R5)			; *(CCB),*(DB)				0417
000046	116065  000011  000003 			MOVB	11(R0),3(R5)			; *(CCB),*(DB)				0418
000054	116760  000000G 000024 			MOVB	.CRPIX,24(R0)			; *,*(CCB)				0420
000062	012760  000001  000014 			MOV	#1,14(R0)			; *,*(CCB)
000070	112760  000004  000012 			MOVB	#4,12(R0)			; *,*(CCB)
000076	010004 					MOV	R0,R4				; CCB,*
000100	004767  000000G				JSR	PC,$SCHED
000104	005004 					CLR	R4				;					0422
000106	004767  000000V				JSR	PC,U.10
000112	000207 					RTS	PC				;					0379

; Routine Size:  38 words,	Routine Base:  $CODE$ + 0130
; Maximum stack depth per invocation:  1 word
TOP								25-Jan-1983 10:03:57	TOPS-20 Bliss-16 2A(530)	    Page  16
X01040								30-Dec-1982 21:17:33	NETPKG:<XPT>TOP.BLI.4 (8)

;	  0424	
;	  0425	routine RCV_ABORT (DB,CCB): MCB_DB_CCB novalue =
;	  0426	
;	  0427	!++
;	  0428	! FUNCTIONAL DESCRIPTION:
;	  0429	!
;	  0430	! Processes the completion of a disconnect or abort.  Since the
;	  0431	! disconnect cannot complete until the previous transmit has completed,
;	  0432	! and any abort will occur without any transmits outstanding, very little
;	  0433	! needs to be done in this routine.
;	  0434	!
;	  0435	! FORMAL PARAMETERS
;	  0436	!
;	  0437	!	DB	TOP data base address
;	  0438	!	CCB	Function CCB
;	  0439	!
;	  0440	! IMPLICIT INPUTS
;	  0441	!
;	  0442	!	NONE.
;	  0443	!
;	  0444	! ROUTINE VALUE:
;	  0445	! COMPLETION CODES:
;	  0446	!
;	  0447	!	NONE.
;	  0448	!
;	  0449	! SIDE EFFECTS:
;	  0450	!
;	  0451	!	NONE.
;	  0452	!
;	  0453	!--
;	  0454	
;	  0455	begin
;	  0456	map DB: ref block field(D_FIELDS);
;	  0457	map CCB: ref block field (C_fields);
;	  0458	
;	  0459	$SC_DISCONNECTED(.CCB);
;	  0460	
;	  0461	case .D_STATE from DS_LO to DS_HI of
;	  0462	    set
;	  0463	    [DS_DO_ACCEPT,DS_DO_DISCONNECT, DS_DO_ABORT]:
;	  0464	        D_STATE = DS_DO_ABORT;
;	  0465	    [inrange]:
;	  0466	        begin
;	  0467	        ABORT(D_BASE,0);
;	  0468	        end;
;	  0469	    tes;
;	  0470	
;	  0471	end;				!End of RCV_ABORT


						.SBTTL	RCV.ABORT
000000	112764  000004  000012 		; RCV.ABORT
TOP								25-Jan-1983 10:03:57	TOPS-20 Bliss-16 2A(530)	    Page  17
X01040								30-Dec-1982 21:17:33	NETPKG:<XPT>TOP.BLI.4 (8)

					U.5:	MOVB	#4,12(R4)			; *,*(CCB)				0459
000006	004767  000000G				JSR	PC,$SCHED
000012	005000 					CLR	R0				;					0461
000014	151500 					BISB	(R5),R0				; DB,*
000016	006300 					ASL	R0
000020	066007  000072'				ADD	P.AAE(R0),PC			; Case dispatch
000024	112715  000005 			1$:	MOVB	#5,(R5)				; *,DB					0464
000030	000207 					RTS	PC				;					0461
000032	005004 				2$:	CLR	R4				;					0467
000034	004767  000000V				JSR	PC,U.9
000040	000207 					RTS	PC				;					0425

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


000072						.PSECT	$PLIT$,  RO ,  D  

					P.AAE:						; CASE Table for RCV.ABORT+0020		0461
000072	000006 					.WORD	6				; [2$]
000074	000000 					.WORD	0				; [1$]
000076	000006 					.WORD	6				; [2$]
000100	000000 					.WORD	0				; [1$]
000102	000006 					.WORD	6				; [2$]
000104	000000 					.WORD	0				; [1$]
000106	000006 					.WORD	6				; [2$]
TOP								25-Jan-1983 10:03:57	TOPS-20 Bliss-16 2A(530)	    Page  18
X01040								30-Dec-1982 21:17:33	NETPKG:<XPT>TOP.BLI.4 (9)

;	  0472	
;	  0473	routine ACCEPT_COMPLETE (DB,CCB): MCB_DB_CCB novalue =
;	  0474	
;	  0475	!++
;	  0476	! FUNCTIONAL DESCRIPTION:
;	  0477	!
;	  0478	! This routine is invoked after the connect accept has completed.
;	  0479	! If the link hasn't aborted in the meanwhile, the routine gets
;	  0480	! an buffer large enough to contain the topology message, constructs
;	  0481	! the message, sends it out, and sticks a synchronous disconnect
;	  0482	! behind it.
;	  0483	!
;	  0484	! FORMAL PARAMETERS
;	  0485	!
;	  0486	!	DB	TOP data base address
;	  0487	!	CCB	Function CCB
;	  0488	!
;	  0489	! IMPLICIT INPUTS
;	  0490	!
;	  0491	!	None
;	  0492	!
;	  0493	! ROUTINE VALUE:
;	  0494	! COMPLETION CODES:
;	  0495	!
;	  0496	!	NONE.
;	  0497	!
;	  0498	! SIDE EFFECTS:
;	  0499	!
;	  0500	!	NONE.
;	  0501	!
;	  0502	!--
;	  0503	
;	  0504	begin
;	  0505	
;	  0506	map DB: ref block field(D_FIELDS);
;	  0507	map CCB: ref block field(C_FIELDS);
;	  0508	
;	  0509	selectone .D_STATE of
;	  0510	    set
;	  0511	    [DS_ACCEPTING]:
;	  0512	        ;
;	  0513	    [DS_DO_ABORT, DS_ABORTING]:
;	  0514	        return $MCB_RETURN_CCB(.CCB);
;	  0515	    [otherwise]:
;	  0516	        return ABORT(D_BASE,.CCB);
;	  0517	    tes;
;	  0518	
;	  0519	!
;	  0520	!  Error conditions:
;	  0521	!
;	  0522	!	1.  Link aborted.
;	  0523	!	2.  Unable to get a buffer to construct the message.
TOP								25-Jan-1983 10:03:57	TOPS-20 Bliss-16 2A(530)	    Page  19
X01040								30-Dec-1982 21:17:33	NETPKG:<XPT>TOP.BLI.4 (9)

;	  0524	!
;	  0525	
;	  0526	if (.CCB[C_STS] neq S_SSUC)
;	  0527	then return ABORT(D_BASE,.CCB);
;	  0528	
;	  0529	if not $MCB_GET_BUFFER(.D_ALLOCATION,CCB[C_ADDR])
;	  0530	then return ABORT(D_BASE,.CCB);
;	  0531	
;	  0532	SMAP$(CCB[C_BIAS]);
;	  0533	CCB[C_PRM5] = .D_ALLOCATION;
;	  0534	
;	  0535	!
;	  0536	!  Construct the message
;	  0537	!
;	  0538	
;	  0539	CALL$P(GETTOP, .D_XPTPIX, .CCB);
;	  0540	
;	P 0541	$SC_DATA_SEGMENT_TRANSMIT(.CCB,		! Send out
;	  0542	    .D_SCPIX,.D_LLA,.C_ULA,S$PEOM);     !   the message
;	  0543	
;	  0544	D_STATE = DS_DO_DISCONNECT;
;	  0545	SEND_MESSAGE(D_BASE,0);
;	  0546	end;				!End of ACCEPT_COMPLETE


						.GLOBL	$CCBRT, $CORGT, KISAR6, GETTOP
						.GLOBL	$CALLP


						.SBTTL	ACCEPT.COMPLETE
000306						.PSECT	$CODE$,  RO 

000000	005746 				; ACCEPT.COMPLETE
					U.6:	TST	-(SP)				;					0473
000002	010446 					MOV	R4,-(SP)
000004	010566  000002 				MOV	R5,2(SP)
000010	121527  000002 				CMPB	(R5),#2				;					0509
000014	001411 					BEQ	1$
000016	121527  000005 				CMPB	(R5),#5
000022	103426 					BLO	2$
000024	121527  000006 				CMPB	(R5),#6
000030	101023 					BHI	2$
000032	004767  000000G				JSR	PC,$CCBRT			;					0514
000036	000515 					BR	4$
000040	011600 				1$:	MOV	(SP),R0				;					0526
000042	026027  000014  000001 			CMP	14(R0),#1
000050	001013 					BNE	2$				;					0527
000052	016600  000002 				MOV	2(SP),R0			;					0529
000056	016001  000004 				MOV	4(R0),R1
000062	004767  000000G				JSR	PC,$CORGT
000066	103404 					BCS	2$
000070	011601 					MOV	(SP),R1
TOP								25-Jan-1983 10:03:57	TOPS-20 Bliss-16 2A(530)	    Page  20
X01040								30-Dec-1982 21:17:33	NETPKG:<XPT>TOP.BLI.4 (9)

000072	010061  000020 				MOV	R0,20(R1)			; $MCB$R0,*
000076	000406 					BR	3$
000100	016605  000002 			2$:	MOV	2(SP),R5			;					0530
000104	011604 					MOV	(SP),R4
000106	004767  000000V				JSR	PC,U.9
000112	000467 					BR	4$
000114	011600 				3$:	MOV	(SP),R0				;					0532
000116	016760  000000G 000016 			MOV	KISAR6,16(R0)
000124	016601  000002 				MOV	2(SP),R1			;					0533
000130	016160  000004  000034 			MOV	4(R1),34(R0)
000136	010046 					MOV	R0,-(SP)			;					0539
000140	012746  000001 				MOV	#1,-(SP)
000144	012746  000000G				MOV	#GETTOP,-(SP)
000150	011100 					MOV	(R1),R0
000152	105000 					CLRB	R0
000154	000300 					SWAB	R0
000156	010046 					MOV	R0,-(SP)
000160	004767  000000G				JSR	PC,$CALLP
000164	016600  000010 				MOV	10(SP),R0			;					0542
000170	016601  000012 				MOV	12(SP),R1
000174	116160  000003  000011 			MOVB	3(R1),11(R0)
000202	116160  000002  000010 			MOVB	2(R1),10(R0)
000210	116760  000000G 000024 			MOVB	.CRPIX,24(R0)
000216	112760  000004  000025 			MOVB	#4,25(R0)
000224	112760  000002  000012 			MOVB	#2,12(R0)
000232	112760  000006  000013 			MOVB	#6,13(R0)
000240	010004 					MOV	R0,R4
000242	004767  000000G				JSR	PC,$SCHED
000246	112776  000003  000012 			MOVB	#3,@12(SP)			;					0544
000254	016605  000012 				MOV	12(SP),R5			;					0545
000260	005004 					CLR	R4
000262	004767  000000V				JSR	PC,U.10
000266	062706  000010 				ADD	#10,SP				;					0504
000272	022626 				4$:	CMP	(SP)+,(SP)+			;					0473
000274	000207 					RTS	PC

; Routine Size:  95 words,	Routine Base:  $CODE$ + 0306
; Maximum stack depth per invocation:  7 words
TOP								25-Jan-1983 10:03:57	TOPS-20 Bliss-16 2A(530)	    Page  21
X01040								30-Dec-1982 21:17:33	NETPKG:<XPT>TOP.BLI.4 (10)

;	  0547	
;	  0548	routine SEND_COMPLETE (DB,CCB): MCB_DB_CCB novalue =
;	  0549	
;	  0550	!++
;	  0551	! FUNCTIONAL DESCRIPTION:
;	  0552	!
;	  0553	! Processes the completion of the message transmission.  Because
;	  0554	! a disconnect was sent after it, all that has to be done is to
;	  0555	! release the message buffer.
;	  0556	!
;	  0557	! FORMAL PARAMETERS
;	  0558	!
;	  0559	!	DB	TOP data base address
;	  0560	!	CCB	Function CCB
;	  0561	!
;	  0562	! IMPLICIT INPUTS
;	  0563	!
;	  0564	!	NONE.
;	  0565	!
;	  0566	! ROUTINE VALUE:
;	  0567	! COMPLETION CODES:
;	  0568	!
;	  0569	!	NONE.
;	  0570	!
;	  0571	! SIDE EFFECTS:
;	  0572	!
;	  0573	!	NONE.
;	  0574	!
;	  0575	!--
;	  0576	
;	  0577	begin
;	  0578	map DB: ref block field(D_FIELDS);
;	  0579	map CCB: ref block field (C_fields);
;	  0580	
;	  0581	$MCB_RETURN_CCB_AND_BUFFER(.D_ALLOCATION,.CCB);
;	  0582	end;				!End of SEND_COMPLETE


						.GLOBL	$CBBRT


						.SBTTL	SEND.COMPLETE
000000	016501  000004 			; SEND.COMPLETE
					U.7:	MOV	4(R5),R1			; *(DB),*				0581
000004	004767  000000G				JSR	PC,$CBBRT
000010	000207 					RTS	PC				;					0548

; Routine Size:  5 words,	Routine Base:  $CODE$ + 0604
; Maximum stack depth per invocation:  1 word
TOP								25-Jan-1983 10:03:57	TOPS-20 Bliss-16 2A(530)	    Page  22
X01040								30-Dec-1982 21:17:33	NETPKG:<XPT>TOP.BLI.4 (11)

;	  0583	
;	  0584	routine DISCONNECT_COMPLETE (DB,CCB): MCB_DB_CCB novalue =
;	  0585	
;	  0586	!++
;	  0587	! FUNCTIONAL DESCRIPTION:
;	  0588	!
;	  0589	! Processes the completion of a disconnect or abort.  Since the
;	  0590	! disconnect cannot complete until the previous transmit has completed,
;	  0591	! and any abort will occur without any transmits outstanding, very little
;	  0592	! needs to be done in this routine.
;	  0593	!
;	  0594	! FORMAL PARAMETERS
;	  0595	!
;	  0596	!	DB	TOP data base address
;	  0597	!	CCB	Function CCB
;	  0598	!
;	  0599	! IMPLICIT INPUTS
;	  0600	!
;	  0601	!	NONE.
;	  0602	!
;	  0603	! ROUTINE VALUE:
;	  0604	! COMPLETION CODES:
;	  0605	!
;	  0606	!	NONE.
;	  0607	!
;	  0608	! SIDE EFFECTS:
;	  0609	!
;	  0610	!	NONE.
;	  0611	!
;	  0612	!--
;	  0613	
;	  0614	begin
;	  0615	map DB: ref block field(D_FIELDS);
;	  0616	
;	  0617	$MCB_RETURN_CCB(.CCB);
;	  0618	D_STATE = DS_IDLE;
;	  0619	end;				!End of DISCONNECT_COMPLETE


						.SBTTL	DISCONNECT.COMPLETE
000000	004767  000000G			; DISCONNECT.COMPLETE
					U.8:	JSR	PC,$CCBRT			;					0617
000004	105015 					CLRB	(R5)				; DB					0618
000006	000207 					RTS	PC				;					0584

; Routine Size:  4 words,	Routine Base:  $CODE$ + 0616
; Maximum stack depth per invocation:  1 word
TOP								25-Jan-1983 10:03:57	TOPS-20 Bliss-16 2A(530)	    Page  23
X01040								30-Dec-1982 21:17:33	NETPKG:<XPT>TOP.BLI.4 (12)

;	  0620	
;	  0621	routine ABORT (DB,CCB): MCB_DB_CCB novalue =
;	  0622	
;	  0623	!++
;	  0624	! FUNCTIONAL DESCRIPTION:
;	  0625	!
;	  0626	! Abort the link.
;	  0627	!
;	  0628	! FORMAL PARAMETERS
;	  0629	!
;	  0630	!	DB	TOP data base address
;	  0631	!	CCB	Function CCB
;	  0632	!
;	  0633	! IMPLICIT INPUTS
;	  0634	!
;	  0635	!	NONE.
;	  0636	!
;	  0637	! ROUTINE VALUE:
;	  0638	! COMPLETION CODES:
;	  0639	!
;	  0640	!	NONE.
;	  0641	!
;	  0642	! SIDE EFFECTS:
;	  0643	!
;	  0644	!	NONE.
;	  0645	!
;	  0646	!--
;	  0647	
;	  0648	begin
;	  0649	map DB: ref block field(D_FIELDS);
;	  0650	map CCB: ref block field(C_FIELDS);
;	  0651	
;	  0652	D_STATE = DS_DO_ABORT;
;	  0653	SEND_MESSAGE(D_BASE, .CCB);
;	  0654	end;				!End of ABORT


						.SBTTL	ABORT
000000	112715  000005 			; ABORT
					U.9:	MOVB	#5,(R5)				; *,DB					0652
000004	004767  000000V				JSR	PC,U.10				;					0653
000010	000207 					RTS	PC				;					0621

; Routine Size:  5 words,	Routine Base:  $CODE$ + 0626
; Maximum stack depth per invocation:  1 word
TOP								25-Jan-1983 10:03:57	TOPS-20 Bliss-16 2A(530)	    Page  24
X01040								30-Dec-1982 21:17:33	NETPKG:<XPT>TOP.BLI.4 (13)

;	  0655	
;	  0656	routine SEND_MESSAGE (DB,CCB): MCB_DB_CCB novalue =
;	  0657	
;	  0658	!++
;	  0659	! FUNCTIONAL DESCRIPTION:
;	  0660	!
;	  0661	! Send a SC message appropriate to the state with the given CCB.
;	  0662	!
;	  0663	! FORMAL PARAMETERS
;	  0664	!
;	  0665	!	DB	TOP data base address
;	  0666	!	CCB	Function CCB
;	  0667	!
;	  0668	! IMPLICIT INPUTS
;	  0669	!
;	  0670	!	NONE.
;	  0671	!
;	  0672	! ROUTINE VALUE:
;	  0673	! COMPLETION CODES:
;	  0674	!
;	  0675	!	NONE.
;	  0676	!
;	  0677	! SIDE EFFECTS:
;	  0678	!
;	  0679	!	NONE.
;	  0680	!
;	  0681	!--
;	  0682	
;	  0683	begin
;	  0684	map DB: ref block field(D_FIELDS);
;	  0685	map CCB: ref block field(C_FIELDS);
;	  0686	
;	  0687	if .CCB eqla 0
;	  0688	then if not $MCB_GET_CCB(CCB)
;	  0689	     then return $MCB_REQUEST_CCB();
;	  0690	
;	  0691	case .D_STATE from DS_LO to DS_HI of
;	  0692	    set
;	  0693	    [DS_DO_ACCEPT]:
;	  0694	        begin
;	  0695	        D_STATE = DS_ACCEPTING;
;	P 0696	        $SC_ACCEPT(.CCB,.D_SCPIX,       ! Accept the connection
;	  0697	                   .D_LLA,.C_ULA,S$PSEG,(,,0));
;	  0698	        end;
;	  0699	    [DS_DO_DISCONNECT]:
;	  0700	        begin
;	  0701	        D_STATE = DS_DISCONNECTING;
;	  0702	        $SC_DISCONNECT(.CCB,.D_SCPIX,.D_LLA,.C_ULA,(,,0));
;	  0703	        end;
;	  0704	    [DS_DO_ABORT]:
;	  0705	        begin
;	  0706	        D_STATE = DS_ABORTING;
TOP								25-Jan-1983 10:03:57	TOPS-20 Bliss-16 2A(530)	    Page  25
X01040								30-Dec-1982 21:17:33	NETPKG:<XPT>TOP.BLI.4 (13)

;	  0707	        $SC_ABORT(.CCB,.D_SCPIX,.C_ULA,(,,0));
;	  0708	        end;
;	  0709	    [inrange]:
;	  0710	        $MCB_RETURN_CCB(.CCB);
;	  0711	    tes;
;	  0712	
;	  0713	end;				!End of SEND_MESSAGE


						.GLOBL	$CCBGT, $CCBRQ


						.SBTTL	SEND.MESSAGE
000000	010401 				; SEND.MESSAGE
					U.10:	MOV	R4,R1				; *,CCB					0656
000002	001010 					BNE	2$				;					0687
000004	004767  000000G				JSR	PC,$CCBGT			;					0688
000010	103402 					BCS	1$
000012	010401 					MOV	R4,R1				; $MCB$R4,CCB
000014	000403 					BR	2$
000016	004767  000000G			1$:	JSR	PC,$CCBRQ			;					0689
000022	000207 					RTS	PC
000024	005000 				2$:	CLR	R0				;					0691
000026	151500 					BISB	(R5),R0				; DB,*
000030	006300 					ASL	R0
000032	066007  000110'				ADD	P.AAF(R0),PC			; Case dispatch
000036	112715  000002 			3$:	MOVB	#2,(R5)				; *,DB					0695
000042	116561  000003  000011 			MOVB	3(R5),11(R1)			; *(DB),*(CCB)				0697
000050	116561  000002  000010 			MOVB	2(R5),10(R1)			; *(DB),*(CCB)
000056	116761  000000G 000024 			MOVB	.CRPIX,24(R1)			; *,*(CCB)
000064	112761  000001  000025 			MOVB	#1,25(R1)			; *,*(CCB)
000072	005061  000022 				CLR	22(R1)				; *(CCB)
000076	111561  000012 				MOVB	(R5),12(R1)			; *,*(CCB)
000102	111561  000013 				MOVB	(R5),13(R1)			; *,*(CCB)
000106	000444 					BR	6$
000110	112715  000004 			4$:	MOVB	#4,(R5)				; *,DB					0701
000114	116561  000003  000011 			MOVB	3(R5),11(R1)			; *(DB),*(CCB)				0702
000122	116561  000002  000010 			MOVB	2(R5),10(R1)			; *(DB),*(CCB)
000130	116761  000000G 000024 			MOVB	.CRPIX,24(R1)			; *,*(CCB)
000136	005061  000022 				CLR	22(R1)				; *(CCB)
000142	112761  000002  000012 			MOVB	#2,12(R1)			; *,*(CCB)
000150	112761  000020  000013 			MOVB	#20,13(R1)			; *,*(CCB)
000156	000420 					BR	6$
000160	112715  000006 			5$:	MOVB	#6,(R5)				; *,DB					0706
000164	116561  000003  000011 			MOVB	3(R5),11(R1)			; *(DB),*(CCB)				0707
000172	116761  000000G 000024 			MOVB	.CRPIX,24(R1)			; *,*(CCB)
000200	005061  000022 				CLR	22(R1)				; *(CCB)
000204	112761  000002  000012 			MOVB	#2,12(R1)			; *,*(CCB)
000212	112761  000022  000013 			MOVB	#22,13(R1)			; *,*(CCB)
000220	010104 				6$:	MOV	R1,R4				; CCB,*
000222	004767  000000G				JSR	PC,$SCHED
000226	000207 					RTS	PC				;					0691
TOP								25-Jan-1983 10:03:57	TOPS-20 Bliss-16 2A(530)	    Page  26
X01040								30-Dec-1982 21:17:33	NETPKG:<XPT>TOP.BLI.4 (13)

000230	010104 				7$:	MOV	R1,R4				; CCB,*					0710
000232	004767  000000G				JSR	PC,$CCBRT
000236	000207 					RTS	PC				;					0656

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


000110						.PSECT	$PLIT$,  RO ,  D  

					P.AAF:						; CASE Table for SEND.MESSAGE+0032	0691
000110	000172 					.WORD	172				; [7$]
000112	000000 					.WORD	0				; [3$]
000114	000172 					.WORD	172				; [7$]
000116	000052 					.WORD	52				; [4$]
000120	000172 					.WORD	172				; [7$]
000122	000122 					.WORD	122				; [5$]
000124	000172 					.WORD	172				; [7$]



;	  0714	
;	  0715	end				!End of Module TOP
;	  0716	eludom



;					OTS external references
						.GLOBL	$STOP


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




;				LIBRARY STATISTICS
;
;					     -------- Symbols --------    Blocks
;	File				     Total    Loaded   Percent      Read
;
;  NETPKG:<MCB>MCBLIB.L16.15		       372        69        18         0
;  NETPKG:<MCB>XPORTX.L16.15		       599        29         4         0
;  NETPKG:<MCB>SCSYS.L16.13		       113        21        18         0
TOP								25-Jan-1983 10:03:57	TOPS-20 Bliss-16 2A(530)	    Page  27
X01040								30-Dec-1982 21:17:33	NETPKG:<XPT>TOP.BLI.4 (13)



; Size:		288 code + 59 data words
; Run Time:	00:11.4
; Elapsed Time:	00:39.6
; Memory Used:	39 pages
; Compilation Complete