Google
 

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

;	  0001	module XPESEL	(
;	  0002			IDENT = 'X01090'
;	  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	!	Transport Select extension module: Contains INTERCEPT, which
;	  0033	!	maintains the Link Translate Table.
;	  0034	!	This routine was originally part of the XPTSEL module.
;	  0035	!
;	  0036	! ENVIRONMENT:	MCB
;	  0037	!
;	  0038	! AUTHOR: L. Webber , CREATION DATE:  5-Mar-81
;	  0039	!
;	  0040	! MODIFIED BY:
;	  0041	!
;	  0042	!	L. Webber, 5-Mar-81 VERSION 1.00
;	  0043	!
;	  0044	! 1.01	L. Webber, 19-Mar-81
;	  0045	!	Added $XPECLN to explicitly clean out an LTT entry.
;	  0046	!	Broke SCAN out as a top-level routine so that both other routines
;	  0047	!	could call it.
;	  0048	!
;	  0049	! 1.02	L. Webber, 14-Apr-81
;	  0050	!	Fix SCAN so that if it is given a 0 link address, any table entry
;	  0051	!	containing the specified node address is a hit.  This allows
;	  0052	!	$XPECLN to clear out all links for a specified node.
XPESEL								25-Jan-1983 09:58:21	TOPS-20 Bliss-16 2A(530)	    Page   2
X01090								30-Dec-1982 21:21:52	NETPKG:<XPT>XPESEL.BLI.8 (1)

;	  0053	!
;	  0054	! 1.03	L. Webber, 5-May-81
;	  0055	!	Change INTERCEPT so that when a duplicate CI is found, the matching
;	  0056	!	LTT entry is stolen for use by the new link.  (Note: this will do
;	  0057	!	horrible things if a real duplicate CI is encountered, i.e., one
;	  0058	!	where the duplicated link does not correspond to a defunct logical
;	  0059	!	link.)
;	  0060	!
;	  0061	! 1.04	L. Webber, 25-Jun-81
;	  0062	!	Add SEND_DC, a routine to format and send a DC message over a line.
;	  0063	!	Modify $XPECLN to send a DC if it is killing an ILT entry whose
;	  0064	!	"other end" (the one does not lead to the node responsible for the
;	  0065	!	table entry being killed) is a Phase II or TOPS20 node.
;	  0066	!
;	  0067	! 1.05	L. Webber, 21-Dec-81
;	  0068	!	Add CLN_RETRY to clean a specified circuit's CCBs out of the retry
;	  0069	!	queue.  This is called when the circuit goes down.
;	  0070	!
;	  0071	! 1.06	L. Webber, 3-Feb-81
;	  0072	!	Fix CLN_RETRY to tell _TERMINATE not to decrement INPUTcount when
;	  0073	!	returning a buffer; buffers on the retry queue aren't counted in
;	  0074	!	the first place.
;	  0075	!
;	  0076	! 1.07	L. Webber, 8-Feb-81
;	  0077	!	Fix 1.06 not to modify the buffer's CCB when returning it.
;	  0078	!
;	  0079	! 1.08	A. Peckham,20-Apr-82
;	  0080	!	Move $XPECLN global to low psect.
;	  0081	!       Eliminate GETLINE and GETNODE.
;	  0082	!
;	  0083	! 1.09	A. Peckham,2-Jul-82
;	  0084	!	Rename INTERCEPT to INTPH2.
;	  0085	!
;	  0086	!--
XPESEL								25-Jan-1983 09:58:21	TOPS-20 Bliss-16 2A(530)	    Page   3
X01090								30-Dec-1982 21:21:52	NETPKG:<XPT>XPESEL.BLI.8 (2)

;	  0087	
;	  0088	!
;	  0089	! INCLUDE FILES:
;	  0090	!
;	  0091	
;	  0092	require 'XPTMAC';
;	  0190	
;	  0191	!
;	  0192	! TABLE OF CONTENTS
;	  0193	!
;	  0194	
;	  0195	forward routine
;	  0196		SCAN,
;	  0197		INTPH2: CALL$,
;	  0198		CLEAN_LINK: CALL$ novalue,
;	  0199		SEND_DC: CALL$ novalue,
;	  0200		CLN_RETRY: novalue;
;	  0201	
;	  0202	!
;	  0203	! MACROS:
;	  0204	!
;	  0205	
;	  0206	!
;	  0207	! EQUATED SYMBOLS:
;	  0208	!
;	  0209	
;	  0210	!
;	  0211	! OWN STORAGE:
;	  0212	!
;	  0213	
;	  0214	literal JUMP_TO = %o'137';
;	  0215	
;	  0216	psect
;	  0217	    global = XPEJMP (nowrite, execute);
;	  0218	
;	  0219	global
;	  0220	    $XPECLN : vector [2] initial (JUMP_TO, CLEAN_LINK);
;	  0221	
;	  0222	undeclare JUMP_TO;
;	  0223	
;	  0224	!
;	  0225	! EXTERNAL REFERENCES:
;	  0226	!
;	  0227	
;	  0228	external routine
;	  0229	    _TERMINATE: CALL$ novalue;
XPESEL								25-Jan-1983 09:58:21	TOPS-20 Bliss-16 2A(530)	    Page   4
X01090								30-Dec-1982 21:21:52	NETPKG:<XPT>XPESEL.BLI.8 (3)

;	  0230	
;	  0231	routine SCAN (TABLE,HALF,NODE,LINK) =
;	  0232	
;	  0233	!++
;	  0234	! FUNCTIONAL DESCRIPTION:
;	  0235	!
;	  0236	! Scans the Link Translate Table for an entry matching a specified one.
;	  0237	!
;	  0238	! FORMAL PARAMETERS
;	  0239	!
;	  0240	!	TABLE	Address of a BLISS value to be set to the address of
;	  0241	!		the LTT entry found (if any).
;	  0242	!
;	  0243	!	HALF	Address of a BLISS value to be set to the "half" of
;	  0244	!		the table entry containing specified node/link pair:
;	  0245	!		0 for first half, 1 for second.
;	  0246	!
;	  0247	!	NODE	Node address of node/link pair to find.
;	  0248	!
;	  0249	!	LINK	Link address of node/link pair to find, or 0 for
;	  0250	!		"any link for the node"
;	  0251	!
;	  0252	! IMPLICIT INPUTS
;	  0253	!
;	  0254	!	Ph2link_table, Ph2link_allocation
;	  0255	!
;	  0256	! ROUTINE VALUE: "Success" or "failure"
;	  0257	! COMPLETION CODES:
;	  0258	!
;	  0259	!	-1	Failure: LTT and HALF contents are undefined.
;	  0260	!	other	Index (from 1 to the number of entries) of the LTT
;	  0261	!		entry of the first match found.
;	  0262	!
;	  0263	! SIDE EFFECTS:
;	  0264	!
;	  0265	!	NONE.
;	  0266	!
;	  0267	!--
;	  0268	
;	  0269	begin
;	  0270	
;	  0271	require 'XPTSYM';
;	  0308	bind LTT = .TABLE: ref block field(LTTfields);
;	  0309	
;	  0310	NODE = .NODE<0,16,0>;			! Mask node address and
;	  0311	LINK = .LINK<0,16,0>;			!  link address to 16 bits
;	  0312	LTT = .Ph2link_table;                   ! Address the first entry
;	  0313	
;	  0314	incr I from 1 to .Ph2link_allocated do  ! Scan the LTT entries
;	  0315	    begin
;	  0316	    .HALF = 0;				! Try the first pair first
;	  0317	    if ((.NODE eql .LTT[LTTnode1])	! Compare the pair in
XPESEL								25-Jan-1983 09:58:21	TOPS-20 Bliss-16 2A(530)	    Page   5
X01090								30-Dec-1982 21:21:52	NETPKG:<XPT>XPESEL.BLI.8 (3)

;	  0318	    and ((.LINK eql 0) or		!  the entry with
;	  0319		(.LINK eql .LTT[LTTlink1])))	!  the specified pair
;	  0320		then exitloop(.I);		! HIT
;	  0321	    .HALF = ..HALF + 1;			! Now try the second pair in the entry
;	  0322	    if ((.NODE eql .LTT[LTTnode2])	! Compare the pair in
;	  0323	    and ((.LINK eql 0) or		!  the entry with
;	  0324	    (.LINK eql .LTT[LTTlink2])))	!  the specified pair
;	  0325		then exitloop(.I)		! HIT
;	  0326	    else LTT = LTT[LTTlen];		! Go on to the next LTT entry
;	  0327	    end
;	  0328	end;				!End of SCAN


						.TITLE	XPESEL
						.IDENT	/X01090/


000000						.PSECT	XPEJMP,  RO 
000000	000137 				$XPECLN::
						.WORD	137
000002	000000V					.WORD	U.3


						.GLOBL	.TERMINATE, .CRDAT


						.SBTTL	SCAN
000000						.PSECT	$CODE$,  RO 

000000	004167  000000G			; SCAN
					U.1:	JSR	R1,$SAVE5			;					0231
000004	016605  000024 				MOV	24(SP),R5			; TABLE,*				0269
000010	016700  000002G				MOV	.CRDAT+2,R0			;					0312
000014	016015  000026 				MOV	26(R0),(R5)
000020	010002 					MOV	R0,R2				; XPTDB,*				0314
000022	016604  000022 				MOV	22(SP),R4			; HALF,*				0316
000026	005000 					CLR	R0				; I					0314
000030	000433 					BR	4$
000032	005014 				1$:	CLR	(R4)				;					0316
000034	011501 					MOV	(R5),R1				;					0317
000036	026611  000020 				CMP	20(SP),(R1)			; NODE,*
000042	001007 					BNE	2$
000044	016601  000016 				MOV	16(SP),R1			; LINK,*				0318
000050	001431 					BEQ	5$
000052	011503 					MOV	(R5),R3				;					0319
000054	020163  000002 				CMP	R1,2(R3)
000060	001425 					BEQ	5$				;					0320
000062	005214 				2$:	INC	(R4)				;					0321
000064	011501 					MOV	(R5),R1				;					0322
000066	026661  000020  000004 			CMP	20(SP),4(R1)			; NODE,*
000074	001007 					BNE	3$
000076	016601  000016 				MOV	16(SP),R1			; LINK,*				0323
XPESEL								25-Jan-1983 09:58:21	TOPS-20 Bliss-16 2A(530)	    Page   6
X01090								30-Dec-1982 21:21:52	NETPKG:<XPT>XPESEL.BLI.8 (3)

000102	001414 					BEQ	5$
000104	011503 					MOV	(R5),R3				;					0324
000106	020163  000006 				CMP	R1,6(R3)
000112	001410 					BEQ	5$				;					0325
000114	062715  000010 			3$:	ADD	#10,(R5)			;					0326
000120	005200 				4$:	INC	R0				; I					0314
000122	020062  000030 				CMP	R0,30(R2)			; I,*
000126	003741 					BLE	1$
000130	012700  177777 				MOV	#-1,R0
000134	000207 				5$:	RTS	PC				;					0231

; Routine Size:  47 words,	Routine Base:  $CODE$ + 0000
; Maximum stack depth per invocation:  7 words
XPESEL								25-Jan-1983 09:58:21	TOPS-20 Bliss-16 2A(530)	    Page   7
X01090								30-Dec-1982 21:21:52	NETPKG:<XPT>XPESEL.BLI.8 (4)

;	  0329	
;	  0330	global
;	  0331	routine INTPH2 (CCB,TYPE,DESTNODE,SRCNODE): CALL$ =
;	  0332	
;	  0333	!++
;	  0334	! FUNCTIONAL DESCRIPTION:
;	  0335	!
;	  0336	! This routine handles Phase II packets without routing headers.
;	  0337	! It maintains the Link Translate Table in the Transport Data Base
;	  0338	! and uses it to map link addresses into a destination node address.
;	  0339	!
;	  0340	! The routine is called in two contexts: TYPE 0, when a message is
;	  0341	! received without a routing header and the link addresses must be
;	  0342	! mapped into a destination; and TYPE 1, when a Phase II message is
;	  0343	! received destined for another Phase II node and an LTT entry must
;	  0344	! be created and maintained to allow TYPE 0 calls for other messages
;	  0345	! on the same link.
;	  0346	!
;	  0347	! FORMAL PARAMETERS
;	  0348	!
;	  0349	!	CCB - the pass-through CCB for the packet to be processed
;	  0350	!	TYPE - the message type: 0 = packet has no header
;	  0351	!				 1 = packet has a header or is a CI
;	  0352	!	DESTNODE - the destination node address for the packet.  This
;	  0353	!		   is an output for TYPE 0 and an input for TYPE 1.
;	  0354	!	SRCNODE - the source node address for the packet.  This is an
;	  0355	!		  output for TYPE 0 and an input for TYPE 1.
;	  0356	!
;	  0357	! IMPLICIT INPUTS
;	  0358	!
;	  0359	!	Nty, Nid, Nnm, Tid
;	  0360	!
;	  0361	! ROUTINE VALUE: "Success" or "failure" (TYPE 1 always returns "success")
;	  0362	! COMPLETION CODES:
;	  0363	!
;	  0364	!	CS_SUC		Success; for TYPE 0, the destination or source node
;	  0365	!			addresses are returned.
;	  0366	!     - $XPT$E_FMT	Failure; packet header format error. This may mean
;	  0367	!			that the packet cannot be associated with an active
;	  0368	!			LTT entry.
;	  0369	!     - $XPT$E_RNG	Failure; node number out of range.
;	  0370	!
;	  0371	! SIDE EFFECTS:
;	  0372	!
;	  0373	!	Maintains and modifies the Link Translate Table.
;	  0374	!
;	  0375	!--
;	  0376	
;	  0377	begin
;	  0378	
;	  0379	local LINEb;
;	  0380	require 'XPTSYM';
XPESEL								25-Jan-1983 09:58:21	TOPS-20 Bliss-16 2A(530)	    Page   8
X01090								30-Dec-1982 21:21:52	NETPKG:<XPT>XPESEL.BLI.8 (4)

;	  0417	require 'MCBCOM';
;	  0451	pointer PTR;
;	  0452	local ILINE,MSGFLG,SLINK,DLINK,DLINKX,RET,HALF,PTRA,LTTx;
;	  0453	local LTT: ref block field(LTTfields);
;	  0454	
;	  0455	MAPBUF(.CCB,PTRA,RET);			!Map to and address message buffer
;	  0456	PTR = .PTRA;
;	  0457	
;	  0458			!******************************!
;	  0459			!  TYPE 0 - no routing header  !
;	  0460			!******************************!
;	  0461	
;	  0462	if .TYPE eql 0 then begin
;	  0463	
;	  0464	!
;	  0465	!  Determine the source node address
;	  0466	!
;	  0467	
;	  0468	ILINE = .CCB[C_LIN];			!Determine input line
;	  0469	LINEb = $XPT_GET_LINE_DB(.ILINE);	!  and address its data base entry
;	  0470	if ((.Nty neq PhTwo)			!If the line doesn't have
;	  0471	and (.Nty neq TOPS20))			!  a Phase II adjacent node
;	  0472	then SIGNAL_STOP (CE_ERR)		!  then return "failure"
;	  0473	else .SRCNODE = .Nid;			!Otherwise, pick up source node address
;	  0474	
;	  0475	!
;	  0476	!  Parse the NSP header for the message
;	  0477	!
;	  0478	
;	  0479	MSGFLG = getb(PTR);			!NSP message flags
;	  0480	DLINK = getw(PTR);			!Destination link address
;	  0481	SLINK = getw(PTR);			!Source link address
;	  0482	
;	  0483	!
;	  0484	!  Scan the LTT for a match with the source node/link pair
;	  0485	!
;	  0486	
;	  0487	if SCAN (LTT,HALF,..SRCNODE,.SLINK)
;	  0488	
;	  0489	!
;	  0490	!  No match - only valid for CI and CC
;	  0491	!
;	  0492	
;	  0493	eql -1 then
;	  0494	    if ((.MSGFLG eql CI_MSGflgs)	!Any CI or CC message
;	  0495	    or (.MSGFLG eql CC_MSGflgs))	!with no routing header
;	  0496	    then begin				!must be assumed to be for self
;	  0497		.DESTNODE = .Tid;		!    Indicate that message is for Self
;	  0498		INTPH2(.CCB,1,.DESTNODE,	!    Re-call INTPH2
;	  0499		    .SRCNODE);			!      for Type 1 processing
;	  0500		return (CS_SUC)			!    Return "success"
;	  0501		end
XPESEL								25-Jan-1983 09:58:21	TOPS-20 Bliss-16 2A(530)	    Page   9
X01090								30-Dec-1982 21:21:52	NETPKG:<XPT>XPESEL.BLI.8 (4)

;	  0502	    else return (-$XPT$E_FMT)		!Not a CI or CC message - invalid
;	  0503	
;	  0504	!
;	  0505	!  Match - pick up the destination node/link pair from the LTT
;	  0506	!
;	  0507	
;	  0508	else begin
;	  0509	    if .HALF eql 0 then LTT = LTT[LTTnode2]; !Choose which half to use
;	  0510	    .DESTNODE = .LTT[LTTnode];
;	  0511	    DLINKX = .LTT[LTTlink];
;	  0512	
;	  0513	!
;	  0514	!  Invalid destination pair - return error
;	  0515	!
;	  0516	
;	  0517	    if ..DESTNODE gtru NN then
;	  0518		return (-$XPT$E_RNG)
;	  0519	    else if .DLINK neq .DLINKX then
;	  0520		return (-$XPT$E_FMT)
;	  0521	!
;	  0522	!  Destination pair is OK - return "success"
;	  0523	!	Also, delete the table entry if the message is a DC
;	  0524	!
;	  0525	
;	  0526	    else begin
;	  0527		if .MSGFLG eql DC_MSGflgs then INTPH2(.CCB,1,.DESTNODE,.SRCNODE);
;	  0528		return (CS_SUC)
;	  0529		end
;	  0530	    end
;	  0531	end
;	  0532	
;	  0533	
;	  0534			!***********************************!
;	  0535			!  TYPE 1 - routing header present  !
;	  0536			!***********************************!
;	  0537	
;	  0538	
;	  0539	else begin
;	  0540	
;	  0541	!
;	  0542	!  Skip over the routing header, if any
;	  0543	!
;	  0544	
;	  0545	MSGFLG = getb(PTR);
;	  0546	if biton(.MSGFLG,2) then begin		!Routing header present -
;	  0547	    RET = getb(PTR);			!Pick up dest. node name length
;	  0548	    PTR = ch$plus(.PTR,.RET);		!Skip over name
;	  0549	    RET = getb(PTR);			!Pick up source node name length
;	  0550	    PTR = ch$plus(.PTR,.RET);		!Skip over name
;	  0551	    MSGFLG = getb(PTR);			!Pick up NSP message flags
;	  0552	    end;
;	  0553	
XPESEL								25-Jan-1983 09:58:21	TOPS-20 Bliss-16 2A(530)	    Page  10
X01090								30-Dec-1982 21:21:52	NETPKG:<XPT>XPESEL.BLI.8 (4)

;	  0554	!
;	  0555	!  Pick up source and destination link addresses
;	  0556	!
;	  0557	
;	  0558	DLINK = getw(PTR);
;	  0559	SLINK = getw(PTR);
;	  0560	
;	  0561	!
;	  0562	!  Message not CI, CC, DI or DC - ignore it
;	  0563	!
;	  0564	
;	  0565	select .MSGFLG of
;	  0566	set
;	  0567	
;	  0568	!
;	  0569	!  CI message
;	  0570	!
;	  0571	
;	  0572	[CI_MSGflgs]:		begin
;	  0573	    if SCAN(LTT,HALF,..SRCNODE,.SLINK)	!Scan for a match on the source pair
;	  0574	    neq -1 then begin			 !Found: cannibalize the entry -
;	P 0575		BPT(XPT$_ICPT0,..SRCNODE,.SLINK, !  flag the "duplicate
;	  0576		    ..DESTNODE,.DLINK);          !    CI" event
;	  0577		if .HALF eql 0 then		 !  determine which half of
;	  0578		    LTT = LTT[LTTnode2];	 !    the entry the match was on
;	  0579		LTT[LTTnode] = ..DESTNODE;	 !  fill in the
;	  0580		LTT[LTTlink] = 0;		 !    other half
;	  0581		end
;	  0582	    else				 !Not found -
;	  0583		if SCAN(LTT,HALF,-1,-1)		 !  scan for a free entry
;	  0584		    eql -1 then	BPT(XPT$_NFI)	 !  none found - ignore message
;	  0585		else begin
;	  0586		    LTT[LTTnode1] = ..SRCNODE;	 !  fill in pair 1 in the entry
;	  0587		    LTT[LTTlink1] = .SLINK;	 !    with the source pair from the msg
;	  0588		    LTT[LTTnode2] = ..DESTNODE;	 !  fill in node slot 2 with dest. node
;	  0589		    LTT[LTTlink2] = 0;		 !    and clear link slot 2 for CC
;	  0590		    end
;	  0591			end;
;	  0592	
;	  0593	!
;	  0594	!  CC, DI or DC message - scan LTT for match on destination node/link pair
;	  0595	!
;	  0596	
;	  0597	[CC_MSGflgs,DI_MSGflgs,DC_MSGflgs]:	begin
;	  0598	    RET = SCAN (LTT,HALF,..DESTNODE,.DLINK);
;	  0599	    LTTx = .LTT;
;	  0600	    if .RET eql -1 then begin		!No match - BUG
;	  0601		if .MSGFLG neq DC_MSGflgs then
;	  0602		    BPT(XPT$_ICPT1,.MSGFLG,..SRCNODE,.SLINK,..DESTNODE,.DLINK);
;	  0603		return(CS_SUC)
;	  0604		end
;	  0605	    else if .HALF eql 0 then LTT = LTT[LTTnode2];	!Match - choose half
XPESEL								25-Jan-1983 09:58:21	TOPS-20 Bliss-16 2A(530)	    Page  11
X01090								30-Dec-1982 21:21:52	NETPKG:<XPT>XPESEL.BLI.8 (4)

;	  0606					end;
;	  0607	
;	  0608	!
;	  0609	!  CC or DI message - fill in second half of LTT entry
;	  0610	!
;	  0611	
;	  0612	[CC_MSGflgs,DI_MSGflgs]: begin
;	  0613	    if ..SRCNODE neq .LTT[LTTnode] then		!No source node match - BUG
;	P 0614		BPT(XPT$_ICPT2,.MSGFLG,..SRCNODE,.SLINK,
;	  0615		    ..DESTNODE,.DLINK)
;	  0616	    else LTT[LTTlink] = .SLINK;			!Fill in other link entry
;	  0617				 end;
;	  0618	
;	  0619	!
;	  0620	!  DC message - delete matched entry from LTT
;	  0621	!
;	  0622	
;	  0623	[DC_MSGflgs]:		begin
;	  0624	    if ((..SRCNODE eql .LTT[LTTnode])		! If the source node/link
;	  0625	    and (.SLINK eql .LTT[LTTlink]))		!   pair matches the
;	  0626	    then begin					!   LLT entry,
;	  0627		LTT = .LTTx;				!   clear out
;	  0628		incr I from 0 to 3 do			!   the entry
;	  0629		    VECTOR[.LTT,.I] = -1;		!
;	  0630		end;
;	  0631	!	then BPT(XPT$_ICPT2,.MSGFLG,..SRCNODE,		!* Old "unmatch" code:
;	  0632	!	    .SLINK,..DESTNODE,.DLINK);          	!* eliminate eventually
;	  0633				end;
;	  0634	tes;
;	  0635	
;	  0636	return (CS_SUC)		!Always return success; caller never looks
;	  0637	end;
;	  0638	end;				!End of INTPH2


						.GLOBL	KISAR6, GTLINE


						.SBTTL	INTPH2
000000	162706  000016 			INTPH2::
					U.2:	SUB	#16,SP				;					0331
000004	016503  000002 				MOV	2(R5),R3			; CCB(.AP.),*				0455
000010	016367  000016  000000G			MOV	16(R3),KISAR6
000016	016300  000020 				MOV	20(R3),R0			; *,PTRA
000022	016366  000022  000002 			MOV	22(R3),2(SP)			; *,RET
000030	010001 					MOV	R0,R1				; PTRA,PTR				0456
000032	005765  000004 				TST	4(R5)				; TYPE(.AP.)				0462
000036	001402 					BEQ	1$
000040	000167  000420 				JMP	12$
000044	005000 				1$:	CLR	R0				; ILINE					0468
000046	156300  000010 				BISB	10(R3),R0			; *,ILINE
000052	004767  000000G				JSR	PC,GTLINE			;					0469
XPESEL								25-Jan-1983 09:58:21	TOPS-20 Bliss-16 2A(530)	    Page  12
X01090								30-Dec-1982 21:21:52	NETPKG:<XPT>XPESEL.BLI.8 (4)

000056	010002 					MOV	R0,R2				; *,LINEB
000060	126227  000002  000004 			CMPB	2(R2),#4			; *(LINEB),*				0470
000066	001414 					BEQ	2$
000070	126227  000002  000005 			CMPB	2(R2),#5			; *(LINEB),*				0471
000076	001410 					BEQ	2$
000100	012746  177760 				MOV	#-20,-(SP)			;					0472
000104	012746  000001 				MOV	#1,-(SP)
000110	004767  000000G				JSR	PC,$STOP
000114	022626 					CMP	(SP)+,(SP)+
000116	000403 					BR	3$				;					0470
000120	016275  000004  000010 		2$:	MOV	4(R2),@10(R5)			; *(LINEB),SRCNODE(.AP.)		0473
000126	005002 				3$:	CLR	R2				; MSGFLG				0479
000130	152102 					BISB	(R1)+,R2			; PTR,MSGFLG
000132	112166  000014 				MOVB	(R1)+,14(SP)			; PTR,X					0480
000136	112166  000015 				MOVB	(R1)+,15(SP)			; PTR,X
000142	016666  000014  000004 			MOV	14(SP),4(SP)			; X,DLINK
000150	112166  000014 				MOVB	(R1)+,14(SP)			; PTR,X					0481
000154	112166  000015 				MOVB	(R1)+,15(SP)			; PTR,X
000160	016604  000014 				MOV	14(SP),R4			; X,SLINK
000164	012746  000014 				MOV	#14,-(SP)			;					0487
000170	060616 					ADD	SP,(SP)				; LTT,*
000172	012746  000014 				MOV	#14,-(SP)
000176	060616 					ADD	SP,(SP)				; HALF,*
000200	016566  000010  000012 			MOV	10(R5),12(SP)			; SRCNODE(.AP.),*
000206	017646  000012 				MOV	@12(SP),-(SP)
000212	010446 					MOV	R4,-(SP)			; SLINK,*
000214	004767  177422 				JSR	PC,U.1
000220	062706  000010 				ADD	#10,SP
000224	005200 					INC	R0				;					0493
000226	001033 					BNE	5$
000230	020227  000030 				CMP	R2,#30				; MSGFLG,*				0494
000234	001403 					BEQ	4$
000236	020227  000050 				CMP	R2,#50				; MSGFLG,*				0495
000242	001060 					BNE	8$
000244	016700  000002G			4$:	MOV	.CRDAT+2,R0			;					0497
000250	016075  000056  000006 			MOV	56(R0),@6(R5)			; *,DESTNODE(.AP.)
000256	016646  000006 				MOV	6(SP),-(SP)			;					0498
000262	016546  000006 				MOV	6(R5),-(SP)			; DESTNODE(.AP.),*
000266	012746  000001 				MOV	#1,-(SP)
000272	010346 					MOV	R3,-(SP)
000274	012746  000004 				MOV	#4,-(SP)
000300	012746  000136'				MOV	#INTPH2,-(SP)
000304	004767  000000G				JSR	PC,$CALL
000310	022626 					CMP	(SP)+,(SP)+
000312	000167  000644 				JMP	19$				;					0496
000316	005766  000010 			5$:	TST	10(SP)				; HALF					0509
000322	001003 					BNE	6$
000324	062766  000004  000012 			ADD	#4,12(SP)			; *,LTT
000332	016516  000006 			6$:	MOV	6(R5),(SP)			; DESTNODE(.AP.),*			0510
000336	017676  000012  000000 			MOV	@12(SP),@0(SP)			; LTT,*
000344	016600  000012 				MOV	12(SP),R0			; LTT,*					0511
000350	016001  000002 				MOV	2(R0),R1			; *,DLINKX
XPESEL								25-Jan-1983 09:58:21	TOPS-20 Bliss-16 2A(530)	    Page  13
X01090								30-Dec-1982 21:21:52	NETPKG:<XPT>XPESEL.BLI.8 (4)

000354	016700  000002G				MOV	.CRDAT+2,R0			;					0517
000360	027660  000000  000016 			CMP	@0(SP),16(R0)
000366	101403 					BLOS	7$
000370	012700  177776 				MOV	#-2,R0
000374	000405 					BR	9$
000376	026601  000004 			7$:	CMP	4(SP),R1			; DLINK,DLINKX				0519
000402	001404 					BEQ	10$
000404	012700  177774 			8$:	MOV	#-4,R0
000410	000167  000760 			9$:	JMP	28$
000414	020227  000110 			10$:	CMP	R2,#110				; MSGFLG,*				0527
000420	001017 					BNE	11$
000422	016646  000006 				MOV	6(SP),-(SP)
000426	016646  000002 				MOV	2(SP),-(SP)
000432	012746  000001 				MOV	#1,-(SP)
000436	010346 					MOV	R3,-(SP)
000440	012746  000004 				MOV	#4,-(SP)
000444	012746  000136'				MOV	#INTPH2,-(SP)
000450	004767  000000G				JSR	PC,$CALL
000454	062706  000014 				ADD	#14,SP
000460	000167  000704 			11$:	JMP	27$				;					0519
000464	005002 				12$:	CLR	R2				; MSGFLG				0545
000466	152102 					BISB	(R1)+,R2			; PTR,MSGFLG
000470	032702  000002 				BIT	#2,R2				; *,MSGFLG				0546
000474	001416 					BEQ	13$
000476	112166  000002 				MOVB	(R1)+,2(SP)			; PTR,RET				0547
000502	105066  000003 				CLRB	3(SP)				; RET
000506	066601  000002 				ADD	2(SP),R1			; RET,PTR				0548
000512	112166  000002 				MOVB	(R1)+,2(SP)			; PTR,RET				0549
000516	105066  000003 				CLRB	3(SP)				; RET
000522	066601  000002 				ADD	2(SP),R1			; RET,PTR				0550
000526	005002 					CLR	R2				; MSGFLG				0551
000530	152102 					BISB	(R1)+,R2			; PTR,MSGFLG
000532	112166  000014 			13$:	MOVB	(R1)+,14(SP)			; PTR,X					0558
000536	112166  000015 				MOVB	(R1)+,15(SP)			; PTR,X
000542	016666  000014  000004 			MOV	14(SP),4(SP)			; X,DLINK
000550	112166  000014 				MOVB	(R1)+,14(SP)			; PTR,X					0559
000554	112166  000015 				MOVB	(R1)+,15(SP)			; PTR,X
000560	016604  000014 				MOV	14(SP),R4			; X,SLINK
000564	020227  000030 				CMP	R2,#30				; MSGFLG,*				0565
000570	001115 					BNE	17$
000572	012746  000014 				MOV	#14,-(SP)			;					0573
000576	060616 					ADD	SP,(SP)				; LTT,*
000600	012746  000014 				MOV	#14,-(SP)
000604	060616 					ADD	SP,(SP)				; HALF,*
000606	017503  000010 				MOV	@10(R5),R3			; SRCNODE(.AP.),*
000612	010346 					MOV	R3,-(SP)
000614	010446 					MOV	R4,-(SP)			; SLINK,*
000616	004767  177020 				JSR	PC,U.1
000622	062706  000010 				ADD	#10,SP
000626	005200 					INC	R0				;					0574
000630	001434 					BEQ	15$
000632	016646  000004 				MOV	4(SP),-(SP)			; DLINK,*				0576
XPESEL								25-Jan-1983 09:58:21	TOPS-20 Bliss-16 2A(530)	    Page  14
X01090								30-Dec-1982 21:21:52	NETPKG:<XPT>XPESEL.BLI.8 (4)

000636	017546  000006 				MOV	@6(R5),-(SP)			; DESTNODE(.AP.),*
000642	010446 					MOV	R4,-(SP)			; SLINK,*
000644	010346 					MOV	R3,-(SP)
000646	012746  100052 				MOV	#-77726,-(SP)
000652	012746  000005 				MOV	#5,-(SP)
000656	004767  000000G				JSR	PC,$IGNAL
000662	005766  000024 				TST	24(SP)				; HALF					0577
000666	001003 					BNE	14$
000670	062766  000004  000026 			ADD	#4,26(SP)			; *,LTT					0578
000676	017576  000006  000026 		14$:	MOV	@6(R5),@26(SP)			; DESTNODE(.AP.),LTT			0579
000704	016600  000026 				MOV	26(SP),R0			; LTT,*					0580
000710	005060  000002 				CLR	2(R0)
000714	062706  000014 				ADD	#14,SP				;					0574
000720	000441 					BR	17$				;					0572
000722	012746  000014 			15$:	MOV	#14,-(SP)			;					0583
000726	060616 					ADD	SP,(SP)				; LTT,*
000730	012746  000014 				MOV	#14,-(SP)
000734	060616 					ADD	SP,(SP)				; HALF,*
000736	012746  177777 				MOV	#-1,-(SP)
000742	011646 					MOV	(SP),-(SP)
000744	004767  176672 				JSR	PC,U.1
000750	062706  000010 				ADD	#10,SP
000754	005200 					INC	R0				;					0584
000756	001010 					BNE	16$
000760	012746  100103 				MOV	#-77675,-(SP)
000764	012746  000001 				MOV	#1,-(SP)
000770	004767  000000G				JSR	PC,$IGNAL
000774	022626 					CMP	(SP)+,(SP)+
000776	000412 					BR	17$				;					0583
001000	016600  000012 			16$:	MOV	12(SP),R0			; LTT,*					0586
001004	010310 					MOV	R3,(R0)
001006	010460  000002 				MOV	R4,2(R0)			; SLINK,*				0587
001012	017560  000006  000004 			MOV	@6(R5),4(R0)			; DESTNODE(.AP.),*			0588
001020	005060  000006 				CLR	6(R0)				;					0589
001024	020227  000050 			17$:	CMP	R2,#50				; MSGFLG,*				0565
001030	001406 					BEQ	18$
001032	020227  000070 				CMP	R2,#70				; MSGFLG,*
001036	001403 					BEQ	18$
001040	020227  000110 				CMP	R2,#110				; MSGFLG,*
001044	001061 					BNE	22$
001046	012746  000014 			18$:	MOV	#14,-(SP)			;					0598
001052	060616 					ADD	SP,(SP)				; LTT,*
001054	012746  000014 				MOV	#14,-(SP)
001060	060616 					ADD	SP,(SP)				; HALF,*
001062	017546  000006 				MOV	@6(R5),-(SP)			; DESTNODE(.AP.),*
001066	016646  000012 				MOV	12(SP),-(SP)			; DLINK,*
001072	004767  176544 				JSR	PC,U.1
001076	010066  000012 				MOV	R0,12(SP)			; *,RET
001102	016603  000022 				MOV	22(SP),R3			; LTT,LTTX				0599
001106	020027  177777 				CMP	R0,#-1				; RET,*					0600
001112	001026 					BNE	20$
001114	020227  000110 				CMP	R2,#110				; MSGFLG,*				0601
XPESEL								25-Jan-1983 09:58:21	TOPS-20 Bliss-16 2A(530)	    Page  15
X01090								30-Dec-1982 21:21:52	NETPKG:<XPT>XPESEL.BLI.8 (4)

001120	001420 					BEQ	19$
001122	016616  000014 				MOV	14(SP),(SP)			; DLINK,*				0602
001126	017546  000006 				MOV	@6(R5),-(SP)			; DESTNODE(.AP.),*
001132	010446 					MOV	R4,-(SP)			; SLINK,*
001134	017546  000010 				MOV	@10(R5),-(SP)			; SRCNODE(.AP.),*
001140	010246 					MOV	R2,-(SP)			; MSGFLG,*
001142	012746  100063 				MOV	#-77715,-(SP)
001146	012746  000006 				MOV	#6,-(SP)
001152	004767  000000G				JSR	PC,$IGNAL
001156	062706  000014 				ADD	#14,SP
001162	062706  000010 			19$:	ADD	#10,SP				;					0600
001166	000500 					BR	27$
001170	005766  000020 			20$:	TST	20(SP)				; HALF					0605
001174	001003 					BNE	21$
001176	062766  000004  000022 			ADD	#4,22(SP)			; *,LTT
001204	062706  000010 			21$:	ADD	#10,SP				;					0597
001210	020227  000050 			22$:	CMP	R2,#50				; MSGFLG,*				0565
001214	001403 					BEQ	23$
001216	020227  000070 				CMP	R2,#70				; MSGFLG,*
001222	001031 					BNE	25$
001224	027576  000010  000012 		23$:	CMP	@10(R5),@12(SP)			; SRCNODE(.AP.),LTT			0613
001232	001421 					BEQ	24$
001234	016646  000004 				MOV	4(SP),-(SP)			; DLINK,*				0615
001240	017546  000006 				MOV	@6(R5),-(SP)			; DESTNODE(.AP.),*
001244	010446 					MOV	R4,-(SP)			; SLINK,*
001246	017546  000010 				MOV	@10(R5),-(SP)			; SRCNODE(.AP.),*
001252	010246 					MOV	R2,-(SP)			; MSGFLG,*
001254	012746  100073 				MOV	#-77705,-(SP)
001260	012746  000006 				MOV	#6,-(SP)
001264	004767  000000G				JSR	PC,$IGNAL
001270	062706  000016 				ADD	#16,SP
001274	000404 					BR	25$				;					0613
001276	016600  000012 			24$:	MOV	12(SP),R0			; LTT,*					0616
001302	010460  000002 				MOV	R4,2(R0)			; SLINK,*
001306	020227  000110 			25$:	CMP	R2,#110				; MSGFLG,*				0565
001312	001026 					BNE	27$
001314	027576  000010  000012 			CMP	@10(R5),@12(SP)			; SRCNODE(.AP.),LTT			0624
001322	001022 					BNE	27$
001324	016600  000012 				MOV	12(SP),R0			; LTT,*					0625
001330	020460  000002 				CMP	R4,2(R0)			; SLINK,*
001334	001015 					BNE	27$
001336	010366  000012 				MOV	R3,12(SP)			; LTTX,LTT				0627
001342	005000 					CLR	R0				; I					0628
001344	010001 				26$:	MOV	R0,R1				; I,*					0629
001346	006301 					ASL	R1
001350	066601  000012 				ADD	12(SP),R1			; LTT,*
001354	012711  177777 				MOV	#-1,(R1)
001360	005200 					INC	R0				; I					0628
001362	020027  000003 				CMP	R0,#3				; I,*
001366	003766 					BLE	26$
001370	012700  000001 			27$:	MOV	#1,R0				;					0462
001374	062706  000016 			28$:	ADD	#16,SP				;					0331
XPESEL								25-Jan-1983 09:58:21	TOPS-20 Bliss-16 2A(530)	    Page  16
X01090								30-Dec-1982 21:21:52	NETPKG:<XPT>XPESEL.BLI.8 (4)

001400	000207 					RTS	PC

; Routine Size:  385 words,	Routine Base:  $CODE$ + 0136
; Maximum stack depth per invocation:  18 words
XPESEL								25-Jan-1983 09:58:21	TOPS-20 Bliss-16 2A(530)	    Page  17
X01090								30-Dec-1982 21:21:52	NETPKG:<XPT>XPESEL.BLI.8 (5)

;	  0639	
;	  0640	global
;	  0641	routine CLEAN_LINK (NODE,LINK): CALL$ novalue =
;	  0642	
;	  0643	!++
;	  0644	! FUNCTIONAL DESCRIPTION:
;	  0645	!
;	  0646	! Cleans out the Link Translate Table.  All entries containing the
;	  0647	! node/link pair specified are deleted from the table.  If the link
;	  0648	! address specified is 0, all entries containing the specified node
;	  0649	! address are deleted.
;	  0650	!
;	  0651	! The purpose of this routine is to allow a link which has been closed
;	  0652	! due to timeout or other abnormal conditions, and which has not gone
;	  0653	! through the standard DI/DC interchange which would clean the link out
;	  0654	! of the Link Translate Table, to be cleaned out explicitly by NSP (for
;	  0655	! a local link) or the Decision module (for a route-through link).
;	  0656	!
;	  0657	! FORMAL PARAMETERS
;	  0658	!
;	  0659	!	NODE	Node address of link(s) to be deleted.  This will be the
;	  0660	!		local node address (if NSP called), or the address of a
;	  0661	!		node that has become unreachable.
;	  0662	!
;	  0663	!	LINK	Link address of link(s) to be deleted, or 0 for "all links
;	  0664	!		for the node".
;	  0665	!
;	  0666	! IMPLICIT INPUTS
;	  0667	!
;	  0668	!	NONE.
;	  0669	!
;	  0670	! ROUTINE VALUE:
;	  0671	! COMPLETION CODES:
;	  0672	!
;	  0673	!	NONE.
;	  0674	!
;	  0675	! SIDE EFFECTS:
;	  0676	!
;	  0677	!	Any messages which come into Transport for the link will cause
;	  0678	!	debugging SIGNALS (if present) to be invoked by INTPH2.
;	  0679	!
;	  0680	!--
;	  0681	
;	  0682	begin
;	  0683	
;	  0684	local LINEb,NODEb;
;	  0685	require 'XPTSYM';
;	  0722	local HALF,DN,DL,SL,DN_L,DN_P,SN_L,SN_P;
;	  0723	local LTT: ref block field(LTTfields);
;	  0724	local CCB: ref block field(C_XPT_fields);
;	  0725	
;	  0726	while (SCAN(LTT,HALF,.NODE,.LINK) neq -1)	! Scan for a matching entry
XPESEL								25-Jan-1983 09:58:21	TOPS-20 Bliss-16 2A(530)	    Page  18
X01090								30-Dec-1982 21:21:52	NETPKG:<XPT>XPESEL.BLI.8 (5)

;	  0727	do begin
;	  0728	    if .HALF eql 0 then begin
;	  0729		DN = .LTT[LTTnode2];
;	  0730		DL = .LTT[LTTlink2];
;	  0731		SL = .LTT[LTTlink1];
;	  0732		end
;	  0733	    else begin
;	  0734		DN = .LTT[LTTnode1];
;	  0735		DL = .LTT[LTTlink1];
;	  0736		SL = .LTT[LTTlink2];
;	  0737		end;
;	  0738	    NODEb = $XPT_GET_NODE_DB(.DN);
;	  0739	    LINEb = $XPT_GET_LINE_DB(.OL);
;	  0740	    if (not .Local_node
;	  0741	    and ((.Nty eql PhTwo) or (.Nty eql TOPS20))
;	  0742	    and (.Nid eql .DN)
;	  0743	    and $MCB_GET_CCB_AND_BUFFER(22,CCB)) then begin
;	  0744		CCB[C_XPT_ALLOCATION] = 22;
;	  0745		DN_L = .Nnml;
;	  0746		DN_P = byt$ptr(Nnm);
;	  0747		SN_L = .NODEname_length;
;	  0748		SN_P = byt$ptr(NODEname,0);
;	  0749		SEND_DC(.CCB,.LINEb,.DN_L,.DN_P,.SN_L,.SN_P,.DL,.SL,NO_PATH_ERROR);
;	  0750		end;
;	  0751	    LTT[LTTnode1] = -1;				!   Found one -
;	  0752	    LTT[LTTlink1] = -1;				!     clear it out
;	  0753	    LTT[LTTnode2] = -1;
;	  0754	    LTT[LTTlink2] = -1;
;	  0755	    end;
;	  0756	    
;	  0757	end;				!End of CLEAN_LINK


						.GLOBL	GTNODE, $CBBGT


						.SBTTL	CLEAN.LINK
000000	162706  000032 			CLEAN.LINK::
					U.3:	SUB	#32,SP				;					0641
000004	012746  000032 			1$:	MOV	#32,-(SP)			;					0726
000010	060616 					ADD	SP,(SP)				; LTT,*
000012	012746  000032 				MOV	#32,-(SP)
000016	060616 					ADD	SP,(SP)				; HALF,*
000020	016546  000002 				MOV	2(R5),-(SP)			; NODE(.AP.),*
000024	016546  000004 				MOV	4(R5),-(SP)			; LINK(.AP.),*
000030	004767  176204 				JSR	PC,U.1
000034	062706  000010 				ADD	#10,SP
000040	005200 					INC	R0
000042	001572 					BEQ	6$
000044	016602  000030 				MOV	30(SP),R2			; LTT,*					0729
000050	011766  000006 				MOV	(PC),6(SP)			;					0730
000054	060266  000006 				ADD	R2,6(SP)
XPESEL								25-Jan-1983 09:58:21	TOPS-20 Bliss-16 2A(530)	    Page  19
X01090								30-Dec-1982 21:21:52	NETPKG:<XPT>XPESEL.BLI.8 (5)

000060	012766  000002  000004 			MOV	#2,4(SP)			;					0731
000066	060266  000004 				ADD	R2,4(SP)
000072	005766  000026 				TST	26(SP)				; HALF					0728
000076	001012 					BNE	2$
000100	016266  000004  000002 			MOV	4(R2),2(SP)			; *,DN					0729
000106	017666  000006  000022 			MOV	@6(SP),22(SP)			; *,DL					0730
000114	017666  000004  000024 			MOV	@4(SP),24(SP)			; *,SL					0731
000122	000410 					BR	3$				;					0728
000124	011266  000002 			2$:	MOV	(R2),2(SP)			; *,DN					0734
000130	017666  000004  000022 			MOV	@4(SP),22(SP)			; *,DL					0735
000136	017666  000006  000024 			MOV	@6(SP),24(SP)			; *,SL					0736
000144	016600  000002 			3$:	MOV	2(SP),R0			; DN,*					0738
000150	004767  000000G				JSR	PC,GTNODE
000154	010066  000020 				MOV	R0,20(SP)			; *,NODEB
000160	111000 					MOVB	(R0),R0				; NODEB,*				0739
000162	004767  000000G				JSR	PC,GTLINE
000166	010016 					MOV	R0,(SP)				; *,LINEB
000170	032776  000400  000020 			BIT	#400,@20(SP)			; *,NODEB				0740
000176	001102 					BNE	5$
000200	126027  000002  000004 			CMPB	2(R0),#4			; *(LINEB),*				0741
000206	001404 					BEQ	4$
000210	126027  000002  000005 			CMPB	2(R0),#5			; *(LINEB),*
000216	001072 					BNE	5$
000220	011600 				4$:	MOV	(SP),R0				; LINEB,*				0742
000222	026066  000004  000002 			CMP	4(R0),2(SP)			; *(LINEB),DN
000230	001065 					BNE	5$
000232	012701  000026 				MOV	#26,R1				;					0743
000236	004767  000000G				JSR	PC,$CBBGT
000242	103460 					BCS	5$
000244	010403 					MOV	R4,R3				; $MCB$R4,CCB
000246	012763  000026  000034 			MOV	#26,34(R3)			; *,*(CCB)				0744
000254	011601 					MOV	(SP),R1				; LINEB,*				0745
000256	116100  000007 				MOVB	7(R1),R0			; *(LINEB),*
000262	010066  000010 				MOV	R0,10(SP)			; *,DN.L
000266	010166  000012 				MOV	R1,12(SP)			; LINEB,DN.P				0746
000272	062766  000010  000012 			ADD	#10,12(SP)			; *,DN.P
000300	016700  000002G				MOV	.CRDAT+2,R0			;					0747
000304	016066  000114  000014 			MOV	114(R0),14(SP)			; *,SN.L
000312	010066  000016 				MOV	R0,16(SP)			; XPTDB,SN.P				0748
000316	062766  000116  000016 			ADD	#116,16(SP)			; *,SN.P
000324	012746  000047 				MOV	#47,-(SP)			;					0749
000330	016646  000026 				MOV	26(SP),-(SP)			; SL,*
000334	016646  000026 				MOV	26(SP),-(SP)			; DL,*
000340	016646  000024 				MOV	24(SP),-(SP)			; SN.P,*
000344	016646  000024 				MOV	24(SP),-(SP)			; SN.L,*
000350	016646  000024 				MOV	24(SP),-(SP)			; DN.P,*
000354	016646  000024 				MOV	24(SP),-(SP)			; DN.L,*
000360	010146 					MOV	R1,-(SP)			; LINEB,*
000362	010346 					MOV	R3,-(SP)			; CCB,*
000364	012746  000011 				MOV	#11,-(SP)
000370	012746  000000V				MOV	#U.4,-(SP)
000374	004767  000000G				JSR	PC,$CALL
XPESEL								25-Jan-1983 09:58:21	TOPS-20 Bliss-16 2A(530)	    Page  20
X01090								30-Dec-1982 21:21:52	NETPKG:<XPT>XPESEL.BLI.8 (5)

000400	062706  000026 				ADD	#26,SP				;					0743
000404	012712  177777 			5$:	MOV	#-1,(R2)			;					0751
000410	011276  000004 				MOV	(R2),@4(SP)			;					0752
000414	011262  000004 				MOV	(R2),4(R2)			;					0753
000420	011276  000006 				MOV	(R2),@6(SP)			;					0754
000424	000167  177354 				JMP	1$				;					0726
000430	062706  000032 			6$:	ADD	#32,SP				;					0641
000434	000207 					RTS	PC

; Routine Size:  143 words,	Routine Base:  $CODE$ + 1540
; Maximum stack depth per invocation:  25 words
XPESEL								25-Jan-1983 09:58:21	TOPS-20 Bliss-16 2A(530)	    Page  21
X01090								30-Dec-1982 21:21:52	NETPKG:<XPT>XPESEL.BLI.8 (6)

;	  0758	
;	  0759	global
;	  0760	routine SEND_DC (CCB,LINEb,DEST_L,DEST_P,SOURCE_L,SOURCE_P,
;	  0761	                 DESTLNK,SRCLNK,REASON): CALL$ novalue =
;	  0762	
;	  0763	!++
;	  0764	! FUNCTIONAL DESCRIPTION:
;	  0765	!
;	  0766	! Constructs and sends a Phase II DC message over a given line.
;	  0767	!
;	  0768	! FORMAL PARAMETERS
;	  0769	!
;	  0770	!	CCB		CCB to use to send the DC.
;	  0771	!			CCB[C_BIAS]	A buffer large enough to contain the DC
;	  0772	!			CCB[C_ADDR]	  (anywhere from 12 to 22 bytes)
;	  0773	!			CCB[C_XPT_ALLOCATION]	The length of the buffer
;	  0774	!				  	(for its eventual release)
;	  0775	!
;	  0776	!	DEST_L		Length of the destination node name.  If this value
;	  0777	!			is zero, a routing header is not built.
;	  0778	!
;	  0779	!	DEST_P		Pointer to the destination node name.
;	  0780	!
;	  0781	!	SOURCE_L	Length of the source node name.
;	  0782	!
;	  0783	!	SOURCE_P	Pointer to the source name name.
;	  0784	!
;	  0785	!	DESTLNK		Destination link address.
;	  0786	!
;	  0787	!	SRCLNK		Source link address.
;	  0788	!
;	  0789	!	REASON		DC reason code.
;	  0790	!
;	  0791	! IMPLICIT INPUTS
;	  0792	!
;	  0793	!	NONE.
;	  0794	!
;	  0795	! ROUTINE VALUE:
;	  0796	! COMPLETION CODES:
;	  0797	!
;	  0798	!	NONE.
;	  0799	!
;	  0800	! SIDE EFFECTS:
;	  0801	!
;	  0802	!	NONE.
;	  0803	!
;	  0804	!--
;	  0805	
;	  0806	begin
;	  0807	
;	  0808	require 'XPTSYM';
;	  0845	map CCB: ref block field(C_XPT_fields);
XPESEL								25-Jan-1983 09:58:21	TOPS-20 Bliss-16 2A(530)	    Page  22
X01090								30-Dec-1982 21:21:52	NETPKG:<XPT>XPESEL.BLI.8 (6)

;	  0846	pointer P;
;	  0847	
;	  0848	P = .CCB[C_ADDR];				! Address message buffer
;	  0849	if .DEST_L neq 0 then begin			! Build a routing header:
;	  0850	    putb(PH2_RTflgs,P);				!   Routing flags
;	  0851	    putb(.DEST_L,P);				!   Dest. node name length
;	  0852	    P = ch$move(.DEST_L,.DEST_P,.P);		!   Destination node name
;	  0853	    putb(.SOURCE_L,P);				!   Source node name length
;	  0854	    P = ch$move(.SOURCE_L,.SOURCE_P,.P);	!   Source node name
;	  0855	    end;					! Build the message:
;	  0856	putb(DC_MSGflgs,P);				!   Message flags
;	  0857	putw(.DESTLNK,P);				!   Destination link address
;	  0858	putw(.SRCLNK,P);				!   Source link address
;	  0859	putw(.REASON,P);				!   Reason code
;	  0860	CCB[C_CNT] = ch$diff(.P,.CCB[C_ADDR]);		! Set up message length
;	  0861	
;	  0862	CCB[C_XPT_TYPE] = NOcode;			! Set "don't use counters" code
;	  0863	
;	  0864	CCB[C_HANDLE] = .TLIhandle;
;	  0865	CCB[C_FNC] = FC_XME;				! Send the
;	  0866	CCB[C_MOD] = TM_DAT;				!   message out
;	  0867	$MCB_SCHEDULE_CCB(.CCB);
;	  0868	
;	  0869	end;				!End of SEND_DC


						.GLOBL	$SCHED


						.SBTTL	SEND.DC
000000	005746 				SEND.DC::
					U.4:	TST	-(SP)				;					0760
000002	016504  000002 				MOV	2(R5),R4			; CCB(.AP.),*				0848
000006	016401  000020 				MOV	20(R4),R1			; *,P
000012	016500  000006 				MOV	6(R5),R0			; DEST.L(.AP.),*			0849
000016	001426 					BEQ	1$
000020	112721  000106 				MOVB	#106,(R1)+			; *,P					0850
000024	110021 					MOVB	R0,(R1)+			; *,P					0851
000026	010046 					MOV	R0,-(SP)			;					0852
000030	016546  000010 				MOV	10(R5),-(SP)			; DEST.P(.AP.),*
000034	010146 					MOV	R1,-(SP)			; P,*
000036	004767  000000G				JSR	PC,BL$MOV
000042	010001 					MOV	R0,R1				; *,P
000044	116521  000012 				MOVB	12(R5),(R1)+			; SOURCE.L(.AP.),P			0853
000050	016516  000012 				MOV	12(R5),(SP)			; SOURCE.L(.AP.),*			0854
000054	016546  000014 				MOV	14(R5),-(SP)			; SOURCE.P(.AP.),*
000060	010146 					MOV	R1,-(SP)			; P,*
000062	004767  000000G				JSR	PC,BL$MOV
000066	010001 					MOV	R0,R1				; *,P
000070	062706  000012 				ADD	#12,SP				;					0849
000074	112721  000110 			1$:	MOVB	#110,(R1)+			; *,P					0856
000100	016516  000016 				MOV	16(R5),(SP)			; DESTLNK(.AP.),X			0857
XPESEL								25-Jan-1983 09:58:21	TOPS-20 Bliss-16 2A(530)	    Page  23
X01090								30-Dec-1982 21:21:52	NETPKG:<XPT>XPESEL.BLI.8 (6)

000104	111621 					MOVB	(SP),(R1)+			; X,P
000106	116621  000001 				MOVB	1(SP),(R1)+			; X,P
000112	016516  000020 				MOV	20(R5),(SP)			; SRCLNK(.AP.),X			0858
000116	111621 					MOVB	(SP),(R1)+			; X,P
000120	116621  000001 				MOVB	1(SP),(R1)+			; X,P
000124	016516  000022 				MOV	22(R5),(SP)			; REASON(.AP.),X			0859
000130	111621 					MOVB	(SP),(R1)+			; X,P
000132	116621  000001 				MOVB	1(SP),(R1)+			; X,P
000136	010164  000022 				MOV	R1,22(R4)			; P,*					0860
000142	166464  000020  000022 			SUB	20(R4),22(R4)
000150	112764  000006  000032 			MOVB	#6,32(R4)			;					0862
000156	016500  000004 				MOV	4(R5),R0			; LINEB(.AP.),*				0864
000162	016064  000030  000010 			MOV	30(R0),10(R4)
000170	112764  000002  000012 			MOVB	#2,12(R4)			;					0865
000176	105064  000013 				CLRB	13(R4)				;					0866
000202	004767  000000G				JSR	PC,$SCHED			;					0867
000206	005726 					TST	(SP)+				;					0760
000210	000207 					RTS	PC

; Routine Size:  69 words,	Routine Base:  $CODE$ + 2176
; Maximum stack depth per invocation:  7 words
XPESEL								25-Jan-1983 09:58:21	TOPS-20 Bliss-16 2A(530)	    Page  24
X01090								30-Dec-1982 21:21:52	NETPKG:<XPT>XPESEL.BLI.8 (7)

;	  0870	
;	  0871	global
;	  0872	routine CLN_RETRY (LINEb): novalue =
;	  0873	
;	  0874	!++
;	  0875	! FUNCTIONAL DESCRIPTION:
;	  0876	!
;	  0877	! This routine cleans out of the retry queue all CCBs which:
;	  0878	!
;	  0879	!	1)  arrived over a specific circuit, or
;	  0880	!	2)  have as a destination the adjacent node over that circuit.
;	  0881	!
;	  0882	! FORMAL PARAMETERS
;	  0883	!
;	  0884	!	LINEb	Address of a circuit's data base entry.
;	  0885	!
;	  0886	! IMPLICIT INPUTS
;	  0887	!
;	  0888	!	NONE.
;	  0889	!
;	  0890	! ROUTINE VALUE:
;	  0891	! COMPLETION CODES:
;	  0892	!
;	  0893	!	NONE.
;	  0894	!
;	  0895	! SIDE EFFECTS:
;	  0896	!
;	  0897	!	NONE.
;	  0898	!
;	  0899	!--
;	  0900	
;	  0901	begin
;	  0902	
;	  0903	require 'XPTSYM';
;	  0940	local CCB: ref block field(C_XPT_fields);
;	  0941	
;	  0942	local TEMP_QUEUE: vector[2];
;	  0943	local LEN;
;	  0944	pointer P;
;	  0945	
;	  0946	$MCB_INITIALIZE_QUEUE(TEMP_QUEUE);
;	  0947	
;	  0948	!
;	  0949	!  Pick up each CCB on the retry queue.  If the CCB doesn't "belong" to
;	  0950	!  the specified circuit, place in the temporary holding queue.
;	  0951	!
;	  0952	
;	  0953	while $MCB_DEQUEUE_CCB(REqueue,CCB) do
;	  0954	    if not
;	  0955		((.CCB[C_LIN] eql .LINEnumber)		! CCB arrived over circuit
;	  0956		or begin
;	  0957		    MAP$(.CCB[C_BIAS]);			! Map to and
XPESEL								25-Jan-1983 09:58:21	TOPS-20 Bliss-16 2A(530)	    Page  25
X01090								30-Dec-1982 21:21:52	NETPKG:<XPT>XPESEL.BLI.8 (7)

;	  0958		    P = .CCB[C_ADDR];			!   address buffer
;	  0959		    if bitoff((getb(P)),%o'10') then	! No header -
;	  0960			FALSE				!   for local node
;	  0961		    else begin
;	  0962			LEN = getb(P);			! Pick up dest. name length
;	  0963			((.LEN eql .Nnml)		! Name length must match
;	  0964			and ch$eql(.LEN,.P,.LEN,	!   and names must compare
;	  0965			    byt$ptr(Nnm),0))    	! equal
;	  0966			end
;	  0967		    end)
;	  0968	    then CMQIN$(TEMP_QUEUE,.CCB)		! No match - keep this one
;	  0969	    else begin
;	  0970		local SAVE;				! Otherwise -
;	  0971		SAVE = .CCB[C_XPT_TYPE];		!   throw the CCB
;	  0972		CCB[C_XPT_TYPE] = NOcode;               !   out (but don't
;	  0973		_TERMINATE(.CCB,CE_DIS);		!   affect the quotas)
;	  0974		CCB[C_XPT_TYPE] = .SAVE;
;	  0975		end;
;	  0976	
;	  0977	!
;	  0978	!  Now put back everything we kept into the retry queue.
;	  0979	!
;	  0980	
;	  0981	while CMQRM$(TEMP_QUEUE,CCB) do
;	  0982	    CMQIN$(REqueue,.CCB);
;	  0983	
;	  0984	end;				!End of CLN_RETRY


						.GLOBL	$CMQRM, $CMQIN


						.SBTTL	CLN.RETRY
000000	004167  000000G			CLN.RETRY::
					U.5:	JSR	R1,$SAVE5			;					0872
000004	162706  000006 				SUB	#6,SP
000010	005066  000002 				CLR	2(SP)				; $MCB$HIS.QUEUE			0946
000014	012766  000002  000004 			MOV	#2,4(SP)			; *,$MCB$HIS.QUEUE+2
000022	060666  000004 				ADD	SP,4(SP)			; $MCB$HIS.QUEUE,$MCB$HIS.QUEUE+2
000026	016602  000024 				MOV	24(SP),R2			; LINEB,*				0955
000032	016703  000002G			1$:	MOV	.CRDAT+2,R3			;					0953
000036	062703  000110 				ADD	#110,R3
000042	004767  000000G				JSR	PC,$CMQRM
000046	103474 					BCS	4$
000050	010405 					MOV	R4,R5				; $MCB$R4,CCB
000052	126562  000010  000026 			CMPB	10(R5),26(R2)			; *(CCB),*				0955
000060	001444 					BEQ	3$
000062	016567  000016  000000G			MOV	16(R5),KISAR6			; *(CCB),*				0957
000070	016501  000020 				MOV	20(R5),R1			; *(CCB),P				0958
000074	132721  000010 				BITB	#10,(R1)+			; *,P					0959
000100	001425 					BEQ	2$
000102	112116 					MOVB	(R1)+,(SP)			; P,LEN					0962
XPESEL								25-Jan-1983 09:58:21	TOPS-20 Bliss-16 2A(530)	    Page  26
X01090								30-Dec-1982 21:21:52	NETPKG:<XPT>XPESEL.BLI.8 (7)

000104	105066  000001 				CLRB	1(SP)				; LEN
000110	116200  000007 				MOVB	7(R2),R0			;					0963
000114	021600 					CMP	(SP),R0				; LEN,*
000116	001016 					BNE	2$
000120	011646 					MOV	(SP),-(SP)			; LEN,*					0965
000122	010146 					MOV	R1,-(SP)			; P,*
000124	016646  000004 				MOV	4(SP),-(SP)			; LEN,*
000130	010246 					MOV	R2,-(SP)
000132	062716  000010 				ADD	#10,(SP)
000136	005046 					CLR	-(SP)
000140	004767  000000G				JSR	PC,BL$EQL
000144	062706  000012 				ADD	#12,SP
000150	006000 					ROR	R0
000152	103407 					BLO	3$
000154	012703  000002 			2$:	MOV	#2,R3				;					0968
000160	060603 					ADD	SP,R3				; TEMP.QUEUE,*
000162	010504 					MOV	R5,R4				; CCB,*
000164	004767  000000G				JSR	PC,$CMQIN
000170	000720 					BR	1$				;					0954
000172	012703  000032 			3$:	MOV	#32,R3				;					0971
000176	060503 					ADD	R5,R3				; CCB,*
000200	111304 					MOVB	(R3),R4				; *,SAVE
000202	112713  000006 				MOVB	#6,(R3)				;					0972
000206	012746  177520 				MOV	#-260,-(SP)			;					0973
000212	010546 					MOV	R5,-(SP)			; CCB,*
000214	012746  000002 				MOV	#2,-(SP)
000220	012746  000000G				MOV	#.TERMINATE,-(SP)
000224	004767  000000G				JSR	PC,$CALL
000230	110413 					MOVB	R4,(R3)				; SAVE,*				0974
000232	062706  000010 				ADD	#10,SP				;					0969
000236	000675 					BR	1$				;					0953
000240	012703  000002 			4$:	MOV	#2,R3				;					0981
000244	060603 					ADD	SP,R3				; TEMP.QUEUE,*
000246	004767  000000G				JSR	PC,$CMQRM
000252	103410 					BCS	5$
000254	010405 					MOV	R4,R5				; $MCB$R4,CCB
000256	016703  000002G				MOV	.CRDAT+2,R3			;					0982
000262	062703  000110 				ADD	#110,R3
000266	004767  000000G				JSR	PC,$CMQIN
000272	000762 					BR	4$				;					0981
000274	062706  000006 			5$:	ADD	#6,SP				;					0872
000300	000207 					RTS	PC

; Routine Size:  97 words,	Routine Base:  $CODE$ + 2410
; Maximum stack depth per invocation:  15 words


;	  0985	
;	  0986	end				!End of module XPESEL
;	  0987	eludom
XPESEL								25-Jan-1983 09:58:21	TOPS-20 Bliss-16 2A(530)	    Page  27
X01090								30-Dec-1982 21:21:52	NETPKG:<XPT>XPESEL.BLI.8 (7)


;					OTS external references
						.GLOBL	$SAVE5, $CALL, $STOP, $IGNAL, BL$EQL
						.GLOBL	BL$MOV


;					PSECT SUMMARY
;
;	Psect Name			Words	  Attributes
;	 XPEJMP				    2	    RO ,  I  ,  LCL,  REL,  CON
;	 $CODE$				  741	    RO ,  I  ,  LCL,  REL,  CON




;				LIBRARY STATISTICS
;
;					     -------- Symbols --------    Blocks
;	File				     Total    Loaded   Percent      Read
;
;  NETPKG:<MCB>XPORTX.L16.15		       599         2         0         0
;  NETPKG:<MCB>MCBLIB.L16.15		       372        41        11         0
;  NETPKG:<MCB>NMXLIB.L16.13		       200         0         0         0
;  NETPKG:<XPT>XPTLIB.L16.3		       510       196        38         0





; Size:		741 code + 2 data words
; Run Time:	00:13.3
; Elapsed Time:	00:45.9
; Memory Used:	69 pages
; Compilation Complete
ADDRESS				 144+	 146+	 147+	 149+	 150+	 152+	 153+	 159+	 160+	 163+	 164+	 165+
BITOFF				 959
BITON				 546
BPT				 173+#	 185+#	 575	 584	 602	 614
BUFCHK				 177+	 178+#	 187+	 188+#
BYT$PTR				 746	 748	 965
CALL$				 197	 198	 199	 229	 331#	 641#	 761#
CCB				 331	 448+	 455	 468	 498	 527	 724	 743	 744#	 749	 760	 845
				 848	 860#	 862#	 864#	 865#	 866#	 867	 940	 953	 955	 957	 958
				 968	 971	 972#	 973	 974#	 981	 982
CCBFIELDS			 443+	 445+#
CC_MSGFLGS			 495	 597	 612
CE_DIS				 973
CE_ERR				 472
CHKBUF				 180+*	 181+
CI_MSGFLGS			 494	 572
CLEAN_LINK			 198	 220	 641*
CLN_RETRY			 200	 872*
CMQIN$				 968	 982
CMQRM$				 981
CS_SUC				 500	 528	 603	 636
C_ADDR				 848	 860	 958
C_BIAS				 957
C_CNT				 860
C_FIELDS			 445+	 448+
C_FNC				 865
C_HANDLE			 864
C_LIN				 468	 955
C_MOD				 866
C_XPT_ALLOCATION		 744
C_XPT_FIELDS			 724	 845	 940
C_XPT_TYPE			 862	 971	 972	 974
DC_MSGFLGS			 527	 597	 601	 623	 856
DESTLNK				 761	 857
DESTNODE			 331	 497#	 498	 510#	 517	 527	 576	 579	 588	 598	 602	 615
DEST_L				 760	 849	 851	 852
DEST_P				 760	 852
DI_MSGFLGS			 597	 612
DL				 722	 730#	 735#	 749
DLINKX				 452	 511#	 519
DLINK				 452	 480#	 519	 558#	 576	 598	 602	 615
DN				 722	 729#	 734#	 738	 742
DN_L				 722	 745#	 749
DN_P				 722	 746#	 749
FALSE				 960
FC_XME				 865
GETB				 479	 545	 547	 549	 551	 959	 962
GETQ				 144+#
GETW				 123+#	 146+	 147+	 480	 481	 558	 559
HALF				 231	 316#	 321#	 452	 487	 509	 573	 577	 583	 598	 605	 722
				 726	 728
I				 168+	 170+	 314	 320	 325	 628#	 629
ILINE				 452	 468#	 469
INTPH2				 197	 331*	 498	 527
J				 168+	 170+
JUMP_TO				 214#	 220	 222
LEN				 943	 962#	 963	 964
LINEBLOCK			 298+	 407+	 712+	 835+	 930+
LINEB				 296+	 298+	 379	 405+	 407+	 469#	 684	 710+	 712+	 739#	 749	 760
				 833+	 835+	 872	 928+	 930+
LINENUMBER			 955
LINK				 231	 311#	 318	 319	 323	 324	 641	 726
LOCAL_NODE			 740
LTT				 308#	 312#	 317	 319	 322	 324	 326#	 453	 487	 509#	 510	 511
				 573	 578#	 579#	 580#	 583	 586#	 587#	 588#	 589#	 598	 599	 605#
				 613	 616#	 624	 625	 627#	 629	 723	 726	 729	 730	 731	 734
				 735	 736	 751#	 752#	 753#	 754#
LTTFIELDS			 308	 453	 723
LTTLEN				 326
LTTLINK				 511	 580	 616	 625
LTTLINK1			 319	 587	 731	 735	 752
LTTLINK2			 324	 589	 730	 736	 754
LTTNODE				 510	 579	 613	 624
LTTNODE1			 317	 586	 734	 751
LTTNODE2			 322	 509	 578	 588	 605	 729	 753
LTTX				 452	 599#	 627
M				 168+	 169+
MAP$				 957
MAPBUF				 455
MATRIX				 168+#	 170+
MCB$GAW_PROCESS_DATA_BASE	 301+	 302+	 305+	 410+	 411+	 414+	 715+	 716+	 719+	 838+	 839+	 842+
				 933+	 934+	 937+
MSGFLG				 452	 479#	 494	 495	 527	 545#	 546	 551#	 565	 601	 602	 614
N				 168+	 169+
NID				 473	 742
NL				 168+	 170+
NN				 517
NNM				 746	 965
NNML				 745	 963
NODE				 231	 310#	 317	 322	 641	 726
NODEBLOCK			 293+	 402+	 707+	 830+	 925+
NODEB				 291+	 293+	 400+	 402+	 684	 705+	 707+	 738#	 828+	 830+	 923+	 925+
NODENAME			 748
NODENAME_LENGTH			 747
NOP				 185+	 186+	 188+
NO_LINEB			 297+	 406+	 711+	 834+	 929+
NO_NODEB			 292+	 401+	 706+	 829+	 924+
NO_PATH_ERROR			 749
NTY				 470	 471	 741
OL				 739
P				 846	 848#	 850	 851	 852#	 853	 854#	 856	 857	 858	 859	 860
				 944	 958#	 959	 962	 964
PH2LINK_ALLOCATED		 314
PH2LINK_TABLE			 312
PH2_RTFLGS			 850
PHTWO				 470	 741
POINTER				 451	 846	 944
PTR				 123+	 126+	 127+	 130+	 133+	 134+	 140+	 141+	 144+	 146+	 147+	 149+
				 152+	 153+	 154+	 155+	 159+	 160+	 451	 456#	 479	 480	 481	 545
				 547	 548#	 549	 550#	 551	 558	 559
PTRA				 452	 455	 456
PUTB				 850	 851	 853	 856
PUTQ				 149+#
PUTW				 130+#	 159+	 160+	 857	 858	 859
REASON				 761	 859
REQUEUE				 953	 982
RET				 452	 455	 547#	 548	 549#	 550	 598#	 600
SAVE				 970	 971#	 974
SCAN				 196	 231*	 487	 573	 583	 598	 726
SEND_DC				 199	 749	 760*
SL				 722	 731#	 736#	 749
SLINK				 452	 481#	 487	 559#	 573	 575	 587	 602	 614	 616	 625
SN_L				 722	 747#	 749
SN_P				 722	 748#	 749
SOURCE_L			 760	 853	 854
SOURCE_P			 760	 854
SRCLNK				 761	 858
SRCNODE				 331	 473#	 487	 499	 527	 573	 575	 586	 602	 613	 614	 624
TABLE				 231	 308
TEMP_QUEUE			 942	 946	 968	 981
TID				 497
TLIHANDLE			 864
TM_DAT				 866
TYPE				 331	 462
UNIT				 168+#	 169+	 170+
VALUE				 130+	 131+	 133+	 134+	 139+
X				 125+	 126+#	 127+#	 128+	 138+	 139+#	 140+	 141+
XPEJMP				 217
XPESEL				   1#
XPT$_ICPT0			 575
XPT$_ICPT1			 602
XPT$_ICPT2			 614
XPT$_NFI			 584
XPTDBBLOCK			 307+	 416+	 721+	 844+	 939+
XPTDB				 304+	 305+#	 306+	 413+	 414+#	 415+	 718+	 719+#	 720+	 841+	 842+#	 843+
				 936+	 937+#	 938+
ZEROQ				 163+#
_TERMINATE			 229*	 973
$MCB_DEQUEUE_CCB		 953
$MCB_GET_CCB_AND_BUFFER		 743
$MCB_INITIALIZE_QUEUE		 946
$MCB_SCHEDULE_CCB		 867
$XPECLN				 220
$XPT$E_FMT			 502	 520
$XPT$E_RNG			 518
$XPT_GET_LINE_DB		 469	 739
$XPT_GET_NODE_DB		 738
%CTCE				 131+	 150+
%REMAINING			 175+