Google
 

Trailing-Edge - PDP-10 Archives - BB-R595B-SM_11-9-85 - mcb/xpt/xpe16.lst
There is 1 other file named xpe16.lst in the archive. Click here to see a list.
XPE16								25-Jan-1983 09:59:26	TOPS-20 Bliss-16 2A(530)	    Page   1
								30-Dec-1982 21:19:41	NETPKG:<XPT>XPE16.B16.8 (1)

;	  0001	module XPE16	(
;	  0002			IDENT = 'X01140'
;	  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:	Transport
;	  0029	!
;	  0030	! ABSTRACT:
;	  0031	!
;	  0032	!	16-bit or RSX-11M dependent routines for transport
;	  0033	!
;	  0034	! ENVIRONMENT:	MCB
;	  0035	!
;	  0036	! AUTHOR: L. Webber , CREATION DATE: 20-Jul-79
;	  0037	!
;	  0038	! MODIFIED BY:
;	  0039	!
;	  0040	!	20-Jul-79 : VERSION 1.00
;	  0041	!
;	  0042	! 1.01	L. Webber, 21-Oct-80
;	  0043	!	Change C_BUF and C_BUFA references to C_BIAS and C_ADDR
;	  0044	!
;	  0045	! 1.02	L. Webber, 11-Dec-80
;	  0046	!	Modify to support MCB 3.1
;	  0047	!
;	  0048	! 1.03	L. Webber, 11-Feb-81
;	  0049	!	Made XPT16 into three parallel modules: XPT16, TLI16 and XPE16.
;	  0050	!	This mod. also comprises the addition of several new entry points
;	  0051	!	over the last year.  This is the last of the identically numbered
;	  0052	!	mods. for the three -16 modules.
XPE16								25-Jan-1983 09:59:26	TOPS-20 Bliss-16 2A(530)	    Page   2
X01140								30-Dec-1982 21:19:41	NETPKG:<XPT>XPE16.B16.8 (1)

;	  0053	!
;	  0054	! 1.04	L. Webber, 11-Feb-81
;	  0055	!	Delete entries GET_EX, GET_BLK, GETSDB, RETSDB, $CDBV, GETXDB and
;	  0056	!	$CBDMG from the XPE -16 module.
;	  0057	!
;	  0058	! 1.05	L. Webber, 23-Feb-81
;	  0059	!	Fix LOG_EVENT class and event buffer specification.
;	  0060	!
;	  0061	! 1.06	L. Webber, 25-Feb-81
;	  0062	!	Move $CDBV and $CBDMG over from XPT16
;	  0063	!
;	  0064	! 1.07	L. Webber, 27-Feb-81
;	  0065	!	Make $CDBV and $CBDMG CALL$
;	  0066	!
;	  0067	! 1.08	L. Webber, 16-Mar-81
;	  0068	!	Add UNSPAWN routine
;	  0069	!
;	  0070	! 1.09	L. Webber, 3-Apr-81
;	  0071	!	Signal the ENTITY in LOG_EVENT.
;	  0072	!
;	  0073	! 1.10	L. Webber, 30-Jun-81
;	  0074	!	Fix UNSPAWN to return a buffer of the right length.
;	  0075	!
;	  0076	! 1.11	L. Webber, 24-Sep-81
;	  0077	!	Take out routines EP_REASON, EP_EXNODE.
;	  0078	!
;	  0079	! 1.12	L. Webber, 24-Sep-81
;	  0080	!	Take out reference to Event_Buffer in LOG_EVENT.
;	  0081	!
;	  0082	! 1.13	A. Peckham, 19-Apr-82
;	  0083	!	Add XPT$GET_LINE_DB and XPT$GET_NODE_DB routines.
;	  0084	!	Move $CBDMG and $CDBV back to XPT16.
;	  0085	!
;	  0086	! 1.14	A. Peckham, 6-May-82
;	  0087	!	Eliminate GETLINE, GETNODE, LOG_EVENT, MAPIN, RLS_BLK.
;	  0088	!
;	  0089	!--
XPE16								25-Jan-1983 09:59:26	TOPS-20 Bliss-16 2A(530)	    Page   3
X01140								30-Dec-1982 21:19:41	NETPKG:<XPT>XPE16.B16.8 (2)

;	  0090	
;	  0091	!
;	  0092	! INCLUDE FILES:
;	  0093	!
;	  0094	
;	  0095	require 'XPTMAC';
;	  0193	
;	  0194	!
;	  0195	! TABLE OF CONTENTS
;	  0196	!
;	  0197	
;	  0198	forward routine
;	  0199		XPT$GET_LINE_DB: XPT$LKG_NUM,
;	  0200		XPT$GET_NODE_DB: XPT$LKG_NUM;
;	  0201	
;	  0202	!
;	  0203	! MACROS:
;	  0204	!
;	  0205	
;	  0206	!
;	  0207	! EQUATED SYMBOLS:
;	  0208	!
;	  0209	
;	  0210	!
;	  0211	! OWN STORAGE:
;	  0212	!
;	  0213	
;	  0214	!
;	  0215	! EXTERNAL REFERENCES:
;	  0216	!
XPE16								25-Jan-1983 09:59:26	TOPS-20 Bliss-16 2A(530)	    Page   4
X01140								30-Dec-1982 21:19:41	NETPKG:<XPT>XPE16.B16.8 (3)

;	  0217	global routine XPT$GET_LINE_DB (LINE) : XPT$LKG_NUM =
;	  0218	
;	  0219	!++
;	  0220	! FUNCTIONAL DESCRIPTION:
;	  0221	!
;	  0222	! Returns the base address of the line data base entry for
;	  0223	! the specified line
;	  0224	!
;	  0225	! FORMAL PARAMETERS
;	  0226	!
;	  0227	!	LINE	Line number whose data base entry is to be
;	  0228	!		located
;	  0229	!
;	  0230	! IMPLICIT INPUTS
;	  0231	!
;	  0232	!	XPTDB
;	  0233	!
;	  0234	! ROUTINE VALUE:
;	  0235	!
;	  0236	!	The address of the line data base entry for .LINE
;	  0237	!
;	  0238	! SIDE EFFECTS:
;	  0239	!
;	  0240	!	NONE.
;	  0241	!
;	  0242	!--
;	  0243	
;	  0244	begin
;	  0245	require 'XPTSYM';
;	  0282	
;	  0283	LINE = .LINE - 1;
;	  0284	if .LINE lssu NLN
;	  0285	then
;	  0286	    begin
;	  0287	    LINE = .LINE*LINElength;
;	  0288	    .XPTDB[XPTlindb] + .LINE
;	  0289	    end
;	  0290	else
;	  0291	    0
;	  0292	end;				!End of XPT$GET_LINE_DB


						.TITLE	XPE16
						.IDENT	/X01140/

						.GLOBL	.CRDAT


						.SBTTL	GTLINE
000000						.PSECT	$CODE$,  RO 

000000	010146 				GTLINE::
XPE16								25-Jan-1983 09:59:26	TOPS-20 Bliss-16 2A(530)	    Page   5
X01140								30-Dec-1982 21:19:41	NETPKG:<XPT>XPE16.B16.8 (3)

					U.1:	MOV	R1,-(SP)			;					0217
000002	010001 					MOV	R0,R1				; *,LINE
000004	005301 					DEC	R1				; LINE					0283
000006	016700  000002G				MOV	.CRDAT+2,R0			;					0284
000012	020160  000022 				CMP	R1,22(R0)			; LINE,*
000016	103010 					BHIS	1$
000020	070127  000104 				MUL	#104,R1				;					0287
000024	016700  000002G				MOV	.CRDAT+2,R0			;					0288
000030	016000  000020 				MOV	20(R0),R0
000034	060100 					ADD	R1,R0				; LINE,*
000036	000401 					BR	2$				;					0284
000040	005000 				1$:	CLR	R0
000042	012601 				2$:	MOV	(SP)+,R1			;					0217
000044	000207 					RTS	PC

; Routine Size:  19 words,	Routine Base:  $CODE$ + 0000
; Maximum stack depth per invocation:  2 words
XPE16								25-Jan-1983 09:59:26	TOPS-20 Bliss-16 2A(530)	    Page   6
X01140								30-Dec-1982 21:19:41	NETPKG:<XPT>XPE16.B16.8 (4)

;	  0293	global routine XPT$GET_NODE_DB (NODE) : XPT$LKG_NUM =
;	  0294	
;	  0295	!++
;	  0296	! FUNCTIONAL DESCRIPTION:
;	  0297	!
;	  0298	! Returns the base address of the node data base entry for
;	  0299	! the specified node number
;	  0300	!
;	  0301	! FORMAL PARAMETERS
;	  0302	!
;	  0303	!	NODE	Node number of the node whose data base is to be
;	  0304	!		located
;	  0305	!
;	  0306	! IMPLICIT INPUTS
;	  0307	!
;	  0308	!	XPTDB
;	  0309	!
;	  0310	! ROUTINE VALUE:
;	  0311	!
;	  0312	!	Address of the node data base entry for .NODE
;	  0313	!
;	  0314	! SIDE EFFECTS:
;	  0315	!
;	  0316	!	NONE.
;	  0317	!
;	  0318	!--
;	  0319	
;	  0320	begin
;	  0321	require 'XPTSYM';
;	  0358	
;	  0359	NODE = .NODE - 1;
;	  0360	if .NODE lssu NN
;	  0361	then
;	  0362	    begin
;	  0363	    NODE = .NODE*NODElength;
;	  0364	    .XPTDB[XPTnoddb] + .NODE
;	  0365	    end
;	  0366	else
;	  0367	    0
;	  0368	end;				!End of XPT$GET_NODE_DB


						.SBTTL	GTNODE
000000	010146 				GTNODE::
					U.2:	MOV	R1,-(SP)			;					0293
000002	010001 					MOV	R0,R1				; *,NODE
000004	005301 					DEC	R1				; NODE					0359
000006	016700  000002G				MOV	.CRDAT+2,R0			;					0360
000012	020160  000016 				CMP	R1,16(R0)			; NODE,*
000016	103012 					BHIS	1$
000020	010100 					MOV	R1,R0				; NODE,*				0363
000022	072027  000003 				ASH	#3,R0
XPE16								25-Jan-1983 09:59:26	TOPS-20 Bliss-16 2A(530)	    Page   7
X01140								30-Dec-1982 21:19:41	NETPKG:<XPT>XPE16.B16.8 (4)

000026	010001 					MOV	R0,R1				; *,NODE
000030	016700  000002G				MOV	.CRDAT+2,R0			;					0364
000034	016000  000012 				MOV	12(R0),R0
000040	060100 					ADD	R1,R0				; NODE,*
000042	000401 					BR	2$				;					0360
000044	005000 				1$:	CLR	R0
000046	012601 				2$:	MOV	(SP)+,R1			;					0293
000050	000207 					RTS	PC

; Routine Size:  21 words,	Routine Base:  $CODE$ + 0046
; Maximum stack depth per invocation:  2 words
XPE16								25-Jan-1983 09:59:26	TOPS-20 Bliss-16 2A(530)	    Page   8
X01140								30-Dec-1982 21:19:41	NETPKG:<XPT>XPE16.B16.8 (5)

;	  0369	global routine UNSPAWN(CCB): novalue =
;	  0370	
;	  0371	!++
;	  0372	! FUNCTIONAL DESCRIPTION:
;	  0373	!
;	  0374	! Untangles a CCB spawned by Transport:
;	  0375	!
;	  0376	!	1.  If the CCB has a buffer of its own, release it.
;	  0377	!	2.  If the pass-through CCB (the one the spawned CCB points to)
;	  0378	!	    has had its buffer pointer adjusted, un-adjust it.
;	  0379	!	3.  Release the spawned CCB.
;	  0380	!
;	  0381	! FORMAL PARAMETERS
;	  0382	!
;	  0383	!	CCB	Address of the spawned CCB.
;	  0384	!
;	  0385	! IMPLICIT INPUTS
;	  0386	!
;	  0387	!	NONE.
;	  0388	!
;	  0389	! ROUTINE VALUE:
;	  0390	! COMPLETION CODES:
;	  0391	!
;	  0392	!	NONE.
;	  0393	!
;	  0394	! SIDE EFFECTS:
;	  0395	!
;	  0396	!	NONE.
;	  0397	!
;	  0398	!--
;	  0399	
;	  0400	begin
;	  0401	
;	  0402	map CCB: ref block field(C_XPT_fields);
;	  0403	bind CCB_P = .CCB[C_STK]: block field(C_fields);
;	  0404	local ADJ;
;	  0405	
;	  0406	if ((ADJ=.CCB[C_XPT_ADJUST]) neq 0) then begin  ! Nonzero adjustment factor:
;	  0407	    CCB_P[C_ADDR] = ch$plus(.CCB_P[C_ADDR],-.ADJ); !   readjust pass-through
;	  0408	    CCB_P[C_CNT] = .CCB_P[C_CNT] + .ADJ;	   !   buffer descriptor
;	  0409	    end;
;	  0410	if ((.CCB[C_CHN] neq 0)			! If the spawned CCB
;	  0411	and (.CCB[C_BIAS] neq 0)) then		!   has an SDB of
;	P 0412	    $MCB_RETURN_CCB_AND_BUFFER		!   its own, release
;	  0413		(.CCB[C_XPT_ALLOCATION],.CCB)	!   them both
;	  0414	else $MCB_RETURN_CCB(.CCB);		! Otherwise, just release the CCB
;	  0415	
;	  0416	end;				!End of UNSPAWN


						.GLOBL	$CBBRT, $CCBRT
XPE16								25-Jan-1983 09:59:26	TOPS-20 Bliss-16 2A(530)	    Page   9
X01140								30-Dec-1982 21:19:41	NETPKG:<XPT>XPE16.B16.8 (5)


						.SBTTL	UNSPAWN
000000	004167  000000G			UNSPAWN::
						JSR	R1,$SAVE4			;					0369
000004	016604  000014 				MOV	14(SP),R4			; CCB,*					0403
000010	116400  000033 				MOVB	33(R4),R0			; *,ADJ					0406
000014	001406 					BEQ	1$
000016	016401  000004 				MOV	4(R4),R1			;					0407
000022	160061  000020 				SUB	R0,20(R1)			; ADJ,*
000026	060061  000022 				ADD	R0,22(R1)			; ADJ,*					0408
000032	005764  000002 			1$:	TST	2(R4)				;					0410
000036	001410 					BEQ	2$
000040	005764  000016 				TST	16(R4)				;					0411
000044	001405 					BEQ	2$
000046	016401  000034 				MOV	34(R4),R1			;					0413
000052	004767  000000G				JSR	PC,$CBBRT
000056	000207 					RTS	PC				;					0410
000060	004767  000000G			2$:	JSR	PC,$CCBRT			;					0414
000064	000207 					RTS	PC				;					0369

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


;	  0417	
;	  0418	end				!End of module XPE16
;	  0419	eludom



;					OTS external references
						.GLOBL	$SAVE4


;					PSECT SUMMARY
;
;	Psect Name			Words	  Attributes
;	 $CODE$				   67	    RO ,  I  ,  LCL,  REL,  CON




;				LIBRARY STATISTICS
;
;					     -------- Symbols --------    Blocks
;	File				     Total    Loaded   Percent      Read
;
;  NETPKG:<MCB>XPORTX.L16.15		       599         0         0         0
;  NETPKG:<MCB>MCBLIB.L16.15		       372        24         6         0
;  NETPKG:<MCB>NMXLIB.L16.13		       200         0         0         0
;  NETPKG:<XPT>XPTLIB.L16.3		       510        93        18         0
XPE16								25-Jan-1983 09:59:26	TOPS-20 Bliss-16 2A(530)	    Page  10
X01140								30-Dec-1982 21:19:41	NETPKG:<XPT>XPE16.B16.8 (5)





; Size:		67 code + 0 data words
; Run Time:	00:02.7
; Elapsed Time:	00:09.3
; Memory Used:	25 pages
; Compilation Complete
ADDRESS				 147+	 149+	 150+	 152+	 153+	 155+	 156+	 162+	 163+	 166+	 167+	 168+
ADJ				 404	 406#	 407	 408
BPT				 176+#	 188+#
BUFCHK				 180+	 181+#	 190+	 191+#
CCB				 369	 402	 403	 406	 410	 411	 413	 414
CCB_P				 403#	 407#	 408#
CHKBUF				 183+*	 184+
C_ADDR				 407
C_BIAS				 411
C_CHN				 410
C_CNT				 408
C_FIELDS			 403
C_STK				 403
C_XPT_ADJUST			 406
C_XPT_ALLOCATION		 413
C_XPT_FIELDS			 402
GETQ				 147+#
GETW				 126+#	 149+	 150+
I				 171+	 173+
J				 171+	 173+
LINE				 217	 283#	 284	 287#	 288
LINEBLOCK			 272+	 348+
LINEB				 270+	 272+	 346+	 348+
LINELENGTH			 287
M				 171+	 172+
MATRIX				 171+#	 173+
MCB$GAW_PROCESS_DATA_BASE	 275+	 276+	 279+	 351+	 352+	 355+
N				 171+	 172+
NL				 171+	 173+
NLN				 284
NN				 360
NODE				 293	 359#	 360	 363#	 364
NODEBLOCK			 267+	 343+
NODEB				 265+	 267+	 341+	 343+
NODELENGTH			 363
NOP				 188+	 189+	 191+
NO_LINEB			 271+	 347+
NO_NODEB			 266+	 342+
PTR				 126+	 129+	 130+	 133+	 136+	 137+	 143+	 144+	 147+	 149+	 150+	 152+
				 155+	 156+	 157+	 158+	 162+	 163+
PUTQ				 152+#
PUTW				 133+#	 162+	 163+
UNIT				 171+#	 172+	 173+
UNSPAWN				 369*
VALUE				 133+	 134+	 136+	 137+	 142+
X				 128+	 129+#	 130+#	 131+	 141+	 142+#	 143+	 144+
XPE16				   1#
XPT$GET_LINE_DB			 199	 217*
XPT$GET_NODE_DB			 200	 293*
XPT$LKG_NUM			 199	 200	 217#	 293#
XPTDBBLOCK			 281+	 357+
XPTDB				 278+	 279+#	 280+	 288	 354+	 355+#	 356+	 364
XPTLINDB			 288
XPTNODDB			 364
ZEROQ				 166+#
$MCB_RETURN_CCB_AND_BUFFER	 412
$MCB_RETURN_CCB			 414
%CTCE				 134+	 153+
%REMAINING			 178+