Google
 

Trailing-Edge - PDP-10 Archives - BB-R598A-RM_1983 - swskit-v3/listings/xpt/xpttim.list
There are no other files named xpttim.list in the archive.
XPTTIM								25-Jan-1983 09:53:35	TOPS-20 Bliss-16 2A(530)	    Page   1
								30-Dec-1982 21:48:58	NETPKG:<XPT>XPTTIM.BLI.8 (1)

;	  0001	module XPTTIM	(
;	  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	!	Transport timer service routine: updates all timers and calls the timer
;	  0033	!	routines in the various Transport process modules.
;	  0034	!
;	  0035	! ENVIRONMENT:	MCB
;	  0036	!
;	  0037	! AUTHOR: L. Webber , CREATION DATE: 27-Jul-79
;	  0038	!
;	  0039	! MODIFIED BY:
;	  0040	!
;	  0041	!	27-Jul-79 : VERSION 1.00
;	  0042	!
;	  0043	! 1.01	L. Webber, 19-Dec-79
;	  0044	!	Deleted update of T6 timer and call to LISTENER
;	  0045	!
;	  0046	! 1.02	L. Webber, 4-Apr-80
;	  0047	!	Change call to DECTIM to extension process call
;	  0048	!
;	  0049	! 1.03	L. Webber, 15-Apr-80
;	  0050	!	Add process initialization code to initialize the pointer
;	  0051	!	to the Transport Data Base
;	  0052	!
XPTTIM								25-Jan-1983 09:53:35	TOPS-20 Bliss-16 2A(530)	    Page   2
X01140								30-Dec-1982 21:48:58	NETPKG:<XPT>XPTTIM.BLI.8 (1)

;	  0053	! 1.04	L. Webber, 30-Jun-80
;	  0054	!	Modify to use MCBLIB macros
;	  0055	!
;	  0056	! 1.05	L. Webber, 11-Dec-80
;	  0057	!	Modify to support MCB 3.1
;	  0058	!
;	  0059	! 1.06	L. Webber, 20-Jan-81
;	  0060	!	Add code to set up PIXes of other processes in the Transport
;	  0061	!	data base; also don't pass NLN any more.
;	  0062	!
;	  0063	! 1.07	L. Webber, 9-Feb-81
;	  0064	!	Fix resource recovery code so it recognizes a resource failure
;	  0065	!	during the redispatch of a CCB, and stops dispatching CCBs.
;	  0066	!
;	  0067	! 1.08	L. Webber, 10-Feb-81
;	  0068	!	The Update module is now in XPE; CALL$E to UPDTIM.
;	  0069	!	The Hello module is also in XPE; CALL$E to HELLO.
;	  0070	!
;	  0071	! 1.09	L. Webber, 18-Feb-81
;	  0072	!	Add debugging code to maintain a count of buffers on the retry
;	  0073	!	  queue.
;	  0074	!
;	  0075	! 1.10	L. Webber, 24-Feb-81
;	  0076	!	CALL$P TLITIM when the timer goes off.
;	  0077	!	Put in the new form of timer maintenance.
;	  0078	!
;	  0079	! 1.11	L. Webber, 27-Feb-81
;	  0080	!	Get the PIX for the XNM process.
;	  0081	!
;	  0082	! 1.12	L. Webber, 10-Mar-81
;	  0083	!	Fix input quota accounting for buffers going onto the retry
;	  0084	!	queue; they will be counted again when redispatched.
;	  0085	!
;	  0086	! 1.13	L. Webber, 23-Feb-82
;	  0087	!	Add maintenance of DLLquota.
;	  0088	!
;	  0089	! 1.14	A. Peckham,19-Apr-82
;	  0090	!	Eliminate references to GETLINE.
;	  0091	!       Optimize linkages.
;	  0092	!
;	  0093	!--
XPTTIM								25-Jan-1983 09:53:35	TOPS-20 Bliss-16 2A(530)	    Page   3
X01140								30-Dec-1982 21:48:58	NETPKG:<XPT>XPTTIM.BLI.8 (2)

;	  0094	
;	  0095	!
;	  0096	! TABLE OF CONTENTS
;	  0097	!
;	  0098	
;	  0099	require 'XPTMAC';
;	  0197	forward routine
;	  0198		XPTTIM: MCB_DB_MOD novalue,
;	  0199	        TIMLTM: MCB_DB novalue,
;	  0200	        TIMPIN: MCB_DB novalue,
;	  0201	        GET_PIX,
;	  0202		GETNLN: novalue,
;	  0203		RE_QUEUE: novalue;
;	  0204	
;	  0205	!
;	  0206	! INCLUDE FILES:
;	  0207	!
;	  0208	
;	  0209	
;	  0210	!
;	  0211	! MACROS:
;	  0212	!
;	  0213	
;	  0214	!
;	  0215	! EQUATED SYMBOLS:
;	  0216	!
;	  0217	
;	  0218	!
;	  0219	! OWN STORAGE:
;	  0220	!
;	  0221	
;	  0222	!
;	  0223	! EXTERNAL REFERENCES:
;	  0224	!
;	  0225	
;	  0226	external routine
;	  0227	    XPEDB: novalue,
;	  0228	    TLIDB: novalue,
;	  0229	    DECTIM: novalue,
;	  0230	    UPDTIM: novalue,
;	  0231	    HELLO: LINKAGE_DB novalue,
;	  0232	    TLITIM: novalue;
;	  0233	
;	  0234	external $XPTLL: vector;
XPTTIM								25-Jan-1983 09:53:35	TOPS-20 Bliss-16 2A(530)	    Page   4
X01140								30-Dec-1982 21:48:58	NETPKG:<XPT>XPTTIM.BLI.8 (3)

;	  0235	
;	  0236	global
;	  0237	routine XPTTIM (XPTDB,MODIFIER): MCB_DB_MOD novalue =
;	  0238	
;	  0239	!++
;	  0240	! FUNCTIONAL DESCRIPTION:
;	  0241	!
;	  0242	!  Dispatch FC_TIM related services
;	  0243	!
;	  0244	! FORMAL PARAMETERS
;	  0245	!
;	  0246	!	XPTDB   	Address of Transport data base
;	  0247	!	MODIFIER	Modifier code
;	  0248	!
;	  0249	! IMPLICIT INPUTS
;	  0250	!
;	  0251	!	?
;	  0252	!
;	  0253	! ROUTINE VALUE:
;	  0254	! COMPLETION CODES:
;	  0255	!
;	  0256	!	NONE.
;	  0257	!
;	  0258	! SIDE EFFECTS:
;	  0259	!
;	  0260	!
;	  0261	!--
;	  0262	
;	  0263	begin
;	  0264	require 'XPTSYM';
;	  0301	external routine $DSPCR;
;	P 0302	DISPATCH$(.MODIFIER,TABLE$($DSPCR,FD_TIM,
;	P 0303	    (FM_PIN, TIMPIN),
;	  0304	    (FM_LTM, TIMLTM)),(.XPTDB),MCB_DB);
;	  0305	end;				!End of XPTTIM


						.TITLE	XPTTIM
						.IDENT	/X01140/


000000						.PSECT	$PLIT$,  RO ,  D  
000000	000000G				P.AAA:	.WORD	$DSPCR
000002	000000V					.WORD	U.2
000004	000000G					.WORD	$DSPCR
000006	000000V					.WORD	U.3
000010	000000G					.WORD	$DSPCR
000012	000000G					.WORD	$DSPCR


						.GLOBL	XPEDB, TLIDB, DECTIM, UPDTIM, HELLO
						.GLOBL	TLITIM, $XPTLL, .CRDAT, $DSPCR
XPTTIM								25-Jan-1983 09:53:35	TOPS-20 Bliss-16 2A(530)	    Page   5
X01140								30-Dec-1982 21:48:58	NETPKG:<XPT>XPTTIM.BLI.8 (3)



						.SBTTL	XPTTIM
000000						.PSECT	$CODE$,  RO 

000000	004773  000000'			XPTTIM::
					U.1:	JSR	PC,@P.AAA(R3)			; *,*(MODIFIER)				0304
000004	000207 					RTS	PC				;					0237

; Routine Size:  3 words,	Routine Base:  $CODE$ + 0000
; Maximum stack depth per invocation:  1 word
XPTTIM								25-Jan-1983 09:53:35	TOPS-20 Bliss-16 2A(530)	    Page   6
X01140								30-Dec-1982 21:48:58	NETPKG:<XPT>XPTTIM.BLI.8 (4)

;	  0306	
;	  0307	routine TIMLTM (XPTDB): MCB_DB novalue =
;	  0308	
;	  0309	!++
;	  0310	! FUNCTIONAL DESCRIPTION:
;	  0311	!
;	  0312	!  This routine is called once every time interval.  It updates
;	  0313	!  all the timers except T6 (which is updated in Transport Line
;	  0314	!  Interface), and then calls all of the routines in the indivi-
;	  0315	!  dual Transport modules which do timer processing.  In addition,
;	  0316	!  it redispatches all the CCBs on the retry queue.
;	  0317	!
;	  0318	! FORMAL PARAMETERS
;	  0319	!
;	  0320	!	XPTDB   	Address of Transport data base
;	  0321	!
;	  0322	! IMPLICIT INPUTS
;	  0323	!
;	  0324	!	None
;	  0325	!
;	  0326	! ROUTINE VALUE:
;	  0327	! COMPLETION CODES:
;	  0328	!
;	  0329	!	NONE.
;	  0330	!
;	  0331	! SIDE EFFECTS:
;	  0332	!
;	  0333	!	See the timer routines for each module.
;	  0334	!
;	  0335	!--
;	  0336	
;	  0337	begin
;	  0338	require 'XPTSYM';
;	  0375	!
;	  0376	!  Re-request a one-second timer interrupt
;	  0377	!
;	  0378	Timer = .Timer + 1;
;	  0379	!
;	  0380	!  Call the module timer routines
;	  0381	!
;	  0382	
;	  0383	if .Routing_clock neq 0
;	  0384	then if (Routing_clock = .Routing_clock - 1) eql 0 
;	  0385	     then begin
;	  0386	          Routing_clock = .Routing_timer;
;	  0387	          CALL$E(DECTIM,PD_XPE);        ! Check the routing data base
;	  0388	          end;
;	  0389	
;	  0390	if .Update_clock neq 0
;	  0391	then if (Update_clock = .Update_clock - 1) eql 0
;	  0392	     then begin
;	  0393	          Update_clock = .Update_timer;
XPTTIM								25-Jan-1983 09:53:35	TOPS-20 Bliss-16 2A(530)	    Page   7
X01140								30-Dec-1982 21:48:58	NETPKG:<XPT>XPTTIM.BLI.8 (4)

;	  0394	          CALL$E(UPDTIM,PD_XPE);        ! Routing timer
;	  0395	          end;
;	  0396	
;	  0397	$XPT_for_each_LINEb_do_begin
;	  0398	
;	  0399	    if .Hello_clock neq 0
;	  0400	    then if (Hello_clock = .Hello_clock - 1) eql 0
;	  0401	         then begin
;	  0402	              Hello_clock = .Hello_timer;
;	  0403	              Send_hello = true;
;	  0404	              end;
;	  0405	
;	  0406	    if .Service_line
;	  0407	    then begin
;	  0408	         Service_line = false;
;	  0409	         if BITON(.XPTflags,Running)
;	  0410	         then CALL$P(INI_LIN,PD_TLI)
;	  0411	         else CALL$P(TERM_LIN,PD_TLI);
;	  0412	         end;
;	  0413	
;	  0414	    If .Send_hello
;	  0415	    then HELLO(.LINEb);
;	  0416	
;	  0417	$XPT_next_LINEb_end;
;	  0418	
;	  0419	CALL$P(TLITIM,PD_TLI);                  ! Listen timers
;	  0420	
;	  0421	!
;	  0422	!  Redispatch the contents of the retry queue
;	  0423	!
;	  0424	
;	  0425	while true do begin
;	  0426	    local CCB : ref block field (C_FIELDS);
;	  0427	    if not $MCB_DEQUEUE_CCB(REqueue,CCB) then exitloop;
;	  0428	    clearbit(XPTflags,Rfail);		! Clear "resource failure" flag
;	  0429	    REqueue_count = .REqueue_count - 1;	! Decrement retry queue length
;	  0430	    DISPATCH$(.CCB[C_FNC],$XPTLL,(.XPTDB,.CCB,.CCB[C_MOD]),MCB_DB_CCB_MOD);
;	  0431	                                        ! Dispatch the CCB
;	  0432	    if biton(.XPTflags,Rfail) then	! If a resource failure occured,
;	  0433		exitloop;                       !   quit
;	  0434	    end;
;	  0435	
;	  0436	end;				!End of TIMLTM


						.GLOBL	$CALLE, INI.LIN, $CALLP, TERM.LIN
						.GLOBL	$CMQRM


						.SBTTL	TIMLTM
000000	162706  000006 			; TIMLTM
					U.2:	SUB	#6,SP				;					0307
XPTTIM								25-Jan-1983 09:53:35	TOPS-20 Bliss-16 2A(530)	    Page   8
X01140								30-Dec-1982 21:48:58	NETPKG:<XPT>XPTTIM.BLI.8 (4)

000004	010566  000004 				MOV	R5,4(SP)
000010	105215 					INCB	(R5)				;					0378
000012	012701  000072 				MOV	#72,R1				;					0383
000016	060501 					ADD	R5,R1
000020	010100 					MOV	R1,R0
000022	005710 					TST	(R0)
000024	001420 					BEQ	1$
000026	005310 					DEC	(R0)				;					0384
000030	001016 					BNE	1$
000032	010501 					MOV	R5,R1				;					0386
000034	016110  000060 				MOV	60(R1),(R0)
000040	005046 					CLR	-(SP)				;					0387
000042	012746  000000G				MOV	#DECTIM,-(SP)
000046	005046 					CLR	-(SP)
000050	010500 					MOV	R5,R0
000052	116016  000002 				MOVB	2(R0),(SP)
000056	004767  000000G				JSR	PC,$CALLE
000062	062706  000006 				ADD	#6,SP				;					0385
000066	012701  000074 			1$:	MOV	#74,R1				;					0390
000072	066601  000004 				ADD	4(SP),R1
000076	010100 					MOV	R1,R0
000100	005710 					TST	(R0)
000102	001421 					BEQ	2$
000104	005310 					DEC	(R0)				;					0391
000106	001017 					BNE	2$
000110	016601  000004 				MOV	4(SP),R1			;					0393
000114	016110  000062 				MOV	62(R1),(R0)
000120	005046 					CLR	-(SP)				;					0394
000122	012746  000000G				MOV	#UPDTIM,-(SP)
000126	005046 					CLR	-(SP)
000130	010100 					MOV	R1,R0
000132	116016  000002 				MOVB	2(R0),(SP)
000136	004767  000000G				JSR	PC,$CALLE
000142	062706  000006 				ADD	#6,SP				;					0392
000146	016600  000004 			2$:	MOV	4(SP),R0			;					0395
000152	016005  000020 				MOV	20(R0),R5			; *,LINEB
000156	016001  000022 				MOV	22(R0),R1			; *,$XPT$LINEB.CNT
000162	001456 					BEQ	9$
000164	012700  000044 			3$:	MOV	#44,R0				;					0399
000170	060500 					ADD	R5,R0				; LINEB,*
000172	005710 					TST	(R0)
000174	001406 					BEQ	4$
000176	005310 					DEC	(R0)				;					0400
000200	001004 					BNE	4$
000202	016510  000022 				MOV	22(R5),(R0)			; *(LINEB),*				0402
000206	052715  010000 				BIS	#10000,(R5)			; *,LINEB				0403
000212	032715  040000 			4$:	BIT	#40000,(R5)			; *,LINEB				0406
000216	001430 					BEQ	7$
000220	042715  040000 				BIC	#40000,(R5)			; *,LINEB				0408
000224	016600  000004 				MOV	4(SP),R0			;					0409
000230	032760  000001  000106 			BIT	#1,106(R0)
000236	001404 					BEQ	5$
XPTTIM								25-Jan-1983 09:53:35	TOPS-20 Bliss-16 2A(530)	    Page   9
X01140								30-Dec-1982 21:48:58	NETPKG:<XPT>XPTTIM.BLI.8 (4)

000240	005046 					CLR	-(SP)				;					0410
000242	012746  000000G				MOV	#INI.LIN,-(SP)
000246	000403 					BR	6$
000250	005046 				5$:	CLR	-(SP)				;					0411
000252	012746  000000G				MOV	#TERM.LIN,-(SP)
000256	005046 				6$:	CLR	-(SP)
000260	016600  000012 				MOV	12(SP),R0
000264	116016  000003 				MOVB	3(R0),(SP)
000270	004767  000000G				JSR	PC,$CALLP
000274	062706  000006 				ADD	#6,SP				;					0407
000300	032715  010000 			7$:	BIT	#10000,(R5)			; *,LINEB				0414
000304	001402 					BEQ	8$
000306	004767  000000G				JSR	PC,HELLO			;					0415
000312	062705  000104 			8$:	ADD	#104,R5				; *,LINEB
000316	077156 					SOB	R1,3$				; $XPT$LINEB.CNT,*			0000
000320	005046 				9$:	CLR	-(SP)				;					0419
000322	012746  000000G				MOV	#TLITIM,-(SP)
000326	005046 					CLR	-(SP)
000330	016600  000012 				MOV	12(SP),R0
000334	116016  000003 				MOVB	3(R0),(SP)
000340	004767  000000G				JSR	PC,$CALLP
000344	012700  000110 				MOV	#110,R0				;					0427
000350	066600  000012 				ADD	12(SP),R0
000354	010066  000010 				MOV	R0,10(SP)
000360	012700  000106 				MOV	#106,R0				;					0428
000364	066600  000012 				ADD	12(SP),R0
000370	010066  000006 				MOV	R0,6(SP)
000374	016603  000010 			10$:	MOV	10(SP),R3			;					0427
000400	004767  000000G				JSR	PC,$CMQRM
000404	103424 					BCS	11$
000406	042776  000002  000006 			BIC	#2,@6(SP)			;					0428
000414	016601  000012 				MOV	12(SP),R1			;					0429
000420	105361  000140 				DECB	140(R1)
000424	005000 					CLR	R0				;					0430
000426	156400  000012 				BISB	12(R4),R0			; *(CCB),*
000432	010105 					MOV	R1,R5
000434	005003 					CLR	R3
000436	156403  000013 				BISB	13(R4),R3			; *(CCB),*
000442	004770  000000G				JSR	PC,@$XPTLL(R0)
000446	032776  000002  000006 			BIT	#2,@6(SP)			;					0432
000454	001747 					BEQ	10$
000456	062706  000014 			11$:	ADD	#14,SP				;					0307
000462	000207 					RTS	PC

; Routine Size:  154 words,	Routine Base:  $CODE$ + 0006
; Maximum stack depth per invocation:  7 words
XPTTIM								25-Jan-1983 09:53:35	TOPS-20 Bliss-16 2A(530)	    Page  10
X01140								30-Dec-1982 21:48:58	NETPKG:<XPT>XPTTIM.BLI.8 (5)

;	  0437	
;	  0438	routine TIMPIN (XPTDB): MCB_DB novalue =
;	  0439	
;	  0440	!++
;	  0441	! FUNCTIONAL DESCRIPTION:
;	  0442	!
;	  0443	!  This routine is called during process initialization
;	  0444	!
;	  0445	! FORMAL PARAMETERS
;	  0446	!
;	  0447	!	XPTDB   	Address of Transport data base
;	  0448	!
;	  0449	! IMPLICIT INPUTS
;	  0450	!
;	  0451	!	?
;	  0452	!
;	  0453	! ROUTINE VALUE:
;	  0454	! COMPLETION CODES:
;	  0455	!
;	  0456	!	NONE.
;	  0457	!
;	  0458	! SIDE EFFECTS:
;	  0459	!
;	  0460	!--
;	  0461	
;	  0462	begin
;	  0463	
;	M 0464	macro RAD50(NAME) =
;	M 0465	    %IF %bliss(BLISS36) %THEN
;	M 0466		%RAD50_10 %string(NAME)
;	M 0467	    %ELSE
;	M 0468		%RAD50_11 %string(NAME)
;	  0469	    %FI %;
;	  0470	require 'XPTSYM';
;	  0507	
;	  0508	!
;	  0509	!  Initialization entry point:
;	  0510	!	. Get PIXes for TLI, XPE, NMX, and XPT itself
;	  0511	!	. Get Transport data base address and distribute it to
;	  0512	!	  TLI and XPE
;	  0513	!
;	  0514	
;	  0515	    XPTDB[XPTxpt]=GET_PIX(rad50(XPT));	! Pick up
;	  0516	    XPTDB[XPTxpe]=GET_PIX(rad50(XPE));	!   processes
;	  0517	    XPTDB[XPTtli]=GET_PIX(rad50(TLI));	!   PIXes for
;	  0518	    XPTDB[XPTnm]=GET_PIX(rad50(NMX));	!   communicating
;	  0519	    CALL$P(XPEDB,PD_XPE,.XPTDB);	! Give the data base address
;	  0520	    CALL$P(TLIDB,PD_TLI,.XPTDB);	!   to XPE and TLI
;	  0521	
;	  0522	end;				!End of TIMPIN
XPTTIM								25-Jan-1983 09:53:35	TOPS-20 Bliss-16 2A(530)	    Page  11
X01140								30-Dec-1982 21:48:58	NETPKG:<XPT>XPTTIM.BLI.8 (5)

						.SBTTL	TIMPIN
000000	012746  114224 			; TIMPIN
					U.3:	MOV	#-63554,-(SP)			;					0515
000004	004767  000000V				JSR	PC,U.4
000010	110065  000004 				MOVB	R0,4(R5)			; *,*(XPTDB)
000014	012701  000002 				MOV	#2,R1				;					0516
000020	060501 					ADD	R5,R1				; XPTDB,*
000022	012716  114205 				MOV	#-63573,(SP)
000026	004767  000000V				JSR	PC,U.4
000032	110011 					MOVB	R0,(R1)
000034	012716  077351 				MOV	#77351,(SP)			;					0517
000040	004767  000000V				JSR	PC,U.4
000044	110061  000001 				MOVB	R0,1(R1)
000050	012716  054640 				MOV	#54640,(SP)			;					0518
000054	004767  000000V				JSR	PC,U.4
000060	110065  000005 				MOVB	R0,5(R5)			; *,*(XPTDB)
000064	010516 					MOV	R5,(SP)				; XPTDB,*				0519
000066	012746  000001 				MOV	#1,-(SP)
000072	012746  000000G				MOV	#XPEDB,-(SP)
000076	005046 					CLR	-(SP)
000100	111116 					MOVB	(R1),(SP)
000102	004767  000000G				JSR	PC,$CALLP
000106	010516 					MOV	R5,(SP)				; XPTDB,*				0520
000110	012746  000001 				MOV	#1,-(SP)
000114	012746  000000G				MOV	#TLIDB,-(SP)
000120	005046 					CLR	-(SP)
000122	116116  000001 				MOVB	1(R1),(SP)
000126	004767  000000G				JSR	PC,$CALLP
000132	062706  000016 				ADD	#16,SP				;					0462
000136	000207 					RTS	PC				;					0438

; Routine Size:  48 words,	Routine Base:  $CODE$ + 0472
; Maximum stack depth per invocation:  8 words
XPTTIM								25-Jan-1983 09:53:35	TOPS-20 Bliss-16 2A(530)	    Page  12
X01140								30-Dec-1982 21:48:58	NETPKG:<XPT>XPTTIM.BLI.8 (6)

;	  0523	
;	  0524	routine GET_PIX (NAME) =
;	  0525	
;	  0526	!++
;	  0527	! FUNCTIONAL DESCRIPTION:
;	  0528	!
;	  0529	!  Get the process index for the given process name
;	  0530	!
;	  0531	! FORMAL PARAMETERS
;	  0532	!
;	  0533	!	NAME   	RAD50 name of desired process
;	  0534	!
;	  0535	! IMPLICIT INPUTS
;	  0536	!
;	  0537	!	None
;	  0538	!
;	  0539	! ROUTINE VALUE:
;	  0540	! COMPLETION CODES:
;	  0541	!
;	  0542	!	NONE.
;	  0543	!
;	  0544	! SIDE EFFECTS:
;	  0545	!
;	  0546	!	None
;	  0547	!
;	  0548	!--
;	  0549	
;	  0550	begin
;	  0551	local PIX;
;	  0552	if $MCB_GET_PROCESS_HANDLE (.NAME,PIX) then .PIX else 0
;	  0553	end;				!End of GET_PIX


						.GLOBL	P.DTGT, $CALLI


						.SBTTL	GET.PIX
000000	010146 				; GET.PIX
					U.4:	MOV	R1,-(SP)			;					0524
000002	005746 					TST	-(SP)
000004	012746  000002 				MOV	#2,-(SP)			;					0552
000010	060616 					ADD	SP,(SP)				; $MCB$MY.INDEX,*
000012	016646  000010 				MOV	10(SP),-(SP)			; NAME,*
000016	012746  000002 				MOV	#2,-(SP)
000022	012746  000000G				MOV	#P.DTGT,-(SP)
000026	004767  000000G				JSR	PC,$CALLI
000032	062706  000010 				ADD	#10,SP
000036	010001 					MOV	R0,R1				; *,$MCB$STATUS
000040	006000 					ROR	R0
000042	103001 					BCC	1$
000044	011600 					MOV	(SP),R0				; $MCB$MY.INDEX,PIX
000046	032701  000001 			1$:	BIT	#1,R1				; *,$MCB$STATUS
XPTTIM								25-Jan-1983 09:53:35	TOPS-20 Bliss-16 2A(530)	    Page  13
X01140								30-Dec-1982 21:48:58	NETPKG:<XPT>XPTTIM.BLI.8 (6)

000052	001001 					BNE	2$
000054	005000 					CLR	R0
000056	005726 				2$:	TST	(SP)+				;					0524
000060	012601 					MOV	(SP)+,R1
000062	000207 					RTS	PC

; Routine Size:  26 words,	Routine Base:  $CODE$ + 0632
; Maximum stack depth per invocation:  7 words
XPTTIM								25-Jan-1983 09:53:35	TOPS-20 Bliss-16 2A(530)	    Page  14
X01140								30-Dec-1982 21:48:58	NETPKG:<XPT>XPTTIM.BLI.8 (7)

;	  0554	
;	  0555	routine GETNLN: novalue =
;	  0556	
;	  0557	!++
;	  0558	! FUNCTIONAL DESCRIPTION:
;	  0559	!
;	  0560	! Puts the value of NLN from the data base into an OWN intermediate
;	  0561	! location (for the use of STRUCTURE references and such, which cannot
;	  0562	! reference BOUND variables)
;	  0563	!
;	  0564	! FORMAL PARAMETERS
;	  0565	!
;	  0566	!	NONE.
;	  0567	!
;	  0568	! IMPLICIT INPUTS
;	  0569	!
;	  0570	!	NONE.
;	  0571	!
;	  0572	! ROUTINE VALUE:
;	  0573	! COMPLETION CODES:
;	  0574	!
;	  0575	!	NONE.
;	  0576	!
;	  0577	! SIDE EFFECTS:
;	  0578	!
;	  0579	!	NONE.
;	  0580	!
;	  0581	!--
;	  0582	
;	  0583	begin
;	  0584	
;	  0585	require 'XPTSYM';
;	  0622	
;	  0623	0;      		! This routine now has no function.
;	  0624	
;	  0625	end;				!End of GETNLN


						.SBTTL	GETNLN
000000	000207 				; GETNLN
					U.5:	RTS	PC				;					0555

; Routine Size:  1 word,	Routine Base:  $CODE$ + 0716
; Maximum stack depth per invocation:  0 words
XPTTIM								25-Jan-1983 09:53:35	TOPS-20 Bliss-16 2A(530)	    Page  15
X01140								30-Dec-1982 21:48:58	NETPKG:<XPT>XPTTIM.BLI.8 (8)

;	  0626	
;	  0627	global
;	  0628	routine RE_QUEUE (CCB): novalue =
;	  0629	
;	  0630	!++
;	  0631	! FUNCTIONAL DESCRIPTION:
;	  0632	!
;	  0633	! Puts a CCB on the retry queue.  The CCB will be redispatched the next
;	  0634	! time XPTTIM is called (on a timer interval).
;	  0635	!
;	  0636	! FORMAL PARAMETERS
;	  0637	!
;	  0638	!	CCB	CCB to be put on the retry queue. It must be a CCB which
;	  0639	!		was dispatched to Transport by another process, in the
;	  0640	!		same condition as when it was dispatched.
;	  0641	!
;	  0642	! IMPLICIT INPUTS
;	  0643	!
;	  0644	!	REqueue
;	  0645	!
;	  0646	! ROUTINE VALUE:
;	  0647	! COMPLETION CODES:
;	  0648	!
;	  0649	!	NONE.
;	  0650	!
;	  0651	! SIDE EFFECTS:
;	  0652	!
;	  0653	!	The CCB will be redispatched at some time in the future.
;	  0654	!
;	  0655	!--
;	  0656	
;	  0657	begin
;	  0658	
;	  0659	local LINEb;
;	  0660	require 'XPTSYM';
;	  0697	map CCB: ref block field(C_fields);
;	  0698	
;	  0699	setbit(XPTflags,Rfail);			! Flag a recoverable resource failure
;	  0700	$MCB_QUEUE_CCB(REqueue,.CCB);           ! Chain in the CCB
;	  0701	REqueue_count = .REqueue_count + 1;	! Increment retry queue length
;	  0702	if .CCB[C_FNC] eql FC_RCP then begin	! Adjust buffer input count
;	  0703	    LINEb = $XPT_GET_LINE_DB(.CCB[C_LIX]); !   and global input quota
;	  0704	    INPUTcount = .INPUTcount - 1;	!   as if the buffer
;	  0705	    DLLquota = .DLLquota + 1;		!   were terminated
;	  0706	    end
;	  0707	else BPT(XPT$_REQU);
;	  0708	
;	  0709	end;				!End of RE_QUEUE


						.GLOBL	$CMQIN, GTLINE
XPTTIM								25-Jan-1983 09:53:35	TOPS-20 Bliss-16 2A(530)	    Page  16
X01140								30-Dec-1982 21:48:58	NETPKG:<XPT>XPTTIM.BLI.8 (8)


						.SBTTL	RE.QUEUE
000000	004167  000000G			RE.QUEUE::
					U.6:	JSR	R1,$SAVE4			;					0628
000004	016700  000002G				MOV	.CRDAT+2,R0			;					0699
000010	052760  000002  000106 			BIS	#2,106(R0)
000016	016604  000014 				MOV	14(SP),R4			; CCB,*					0700
000022	010003 					MOV	R0,R3				; XPTDB,*
000024	062703  000110 				ADD	#110,R3
000030	004767  000000G				JSR	PC,$CMQIN
000034	016700  000002G				MOV	.CRDAT+2,R0
000040	105260  000140 				INCB	140(R0)				;					0701
000044	126427  000012  000016 			CMPB	12(R4),#16			;					0702
000052	001014 					BNE	1$
000054	005000 					CLR	R0				;					0703
000056	156400  000010 				BISB	10(R4),R0
000062	004767  000000G				JSR	PC,GTLINE
000066	105360  000043 				DECB	43(R0)				; *(LINEB)				0704
000072	016700  000002G				MOV	.CRDAT+2,R0
000076	105260  000035 				INCB	35(R0)				;					0705
000102	000207 					RTS	PC				;					0702
000104	012746  100122 			1$:	MOV	#-77656,-(SP)			;					0707
000110	012746  000001 				MOV	#1,-(SP)
000114	004767  000000G				JSR	PC,$IGNAL
000120	022626 					CMP	(SP)+,(SP)+
000122	000207 					RTS	PC				;					0628

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


;	  0710	
;	  0711	end				!End of module XPTTIM
;	  0712	eludom



;					OTS external references
						.GLOBL	$SAVE4, $IGNAL


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




;				LIBRARY STATISTICS
;
XPTTIM								25-Jan-1983 09:53:35	TOPS-20 Bliss-16 2A(530)	    Page  17
X01140								30-Dec-1982 21:48:58	NETPKG:<XPT>XPTTIM.BLI.8 (8)

;					     -------- Symbols --------    Blocks
;	File				     Total    Loaded   Percent      Read
;
;  NETPKG:<MCB>XPORTX.L16.15		       599         0         0         0
;  NETPKG:<MCB>MCBLIB.L16.15		       372        49        13         0
;  NETPKG:<MCB>NMXLIB.L16.13		       200         0         0         0
;  NETPKG:<XPT>XPTLIB.L16.3		       510       157        30         0





; Size:		274 code + 6 data words
; Run Time:	00:06.7
; Elapsed Time:	00:26.7
; Memory Used:	46 pages
; Compilation Complete
ADDRESS				 151+	 153+	 154+	 156+	 157+	 159+	 160+	 166+	 167+	 170+	 171+	 172+
BITON				 409	 432
BLISS36				 465
BPT				 180+#	 192+#	 707
BUFCHK				 184+	 185+#	 194+	 195+#
CALL$E				 387	 394
CALL$P				 410	 411	 419	 519	 520
CCB				 426	 427	 430	 628	 697	 700	 702	 703
CHKBUF				 187+*	 188+
CLEARBIT			 428
C_FIELDS			 426	 697
C_FNC				 430	 702
C_LIX				 703
C_MOD				 430
DECTIM				 229	 387
DISPATCH$			 302	 430
DLLQUOTA			 705#
FALSE				 408
FC_RCP				 702
FD_TIM				 302
FM_LTM				 304
FM_PIN				 303
GETNLN				 202	 555*
GETQ				 151+#
GETW				 130+#	 153+	 154+
GET_PIX				 201	 515	 516	 517	 518	 524*
HELLO_CLOCK			 399	 400#	 402#
HELLO_TIMER			 402
HELLO				 231	 415
I				 175+	 177+
INI_LIN				 410
INPUTCOUNT			 704#
J				 175+	 177+
LINEBLOCK			 291+	 365+	 497+	 612+	 687+
LINEB				 289+	 291+	 363+	 365+	 415	 495+	 497+	 610+	 612+	 659	 685+	 687+
				 703#
LINKAGE_DB			 231
M				 175+	 176+
MATRIX				 175+#	 177+
MCB$GAW_PROCESS_DATA_BASE	 294+	 295+	 298+	 368+	 369+	 372+	 500+	 501+	 504+	 615+	 616+	 619+
				 690+	 691+	 694+
MCB_DB				 199	 200	 304	 307#	 438#
MCB_DB_CCB_MOD			 430
MCB_DB_MOD			 198	 237#
MODIFIER			 237	 302
N				 175+	 176+
NAME				 464	 466	 468	 524	 552
NL				 175+	 177+
NMX				 518
NODEBLOCK			 286+	 360+	 492+	 607+	 682+
NODEB				 284+	 286+	 358+	 360+	 490+	 492+	 605+	 607+	 680+	 682+
NOP				 192+	 193+	 195+
NO_LINEB			 290+	 364+	 496+	 611+	 686+
NO_NODEB			 285+	 359+	 491+	 606+	 681+
PD_TLI				 410	 411	 419	 520
PD_XPE				 387	 394	 519
PIX				 551	 552
PTR				 130+	 133+	 134+	 137+	 140+	 141+	 147+	 148+	 151+	 153+	 154+	 156+
				 159+	 160+	 161+	 162+	 166+	 167+
PUTQ				 156+#
PUTW				 137+#	 166+	 167+
RAD50				 464#	 515	 516	 517	 518
REQUEUE				 427	 700
REQUEUE_COUNT			 429#	 701#
RE_QUEUE			 203	 628*
RFAIL				 428	 432	 699
ROUTING_CLOCK			 383	 384#	 386#
ROUTING_TIMER			 386
RUNNING				 409
SEND_HELLO			 403#	 414
SERVICE_LINE			 406	 408#
SETBIT				 699
TABLE$				 302
TERM_LIN			 411
TIMER				 378#
TIMLTM				 199	 304	 307*
TIMPIN				 200	 303	 438*
TLI				 517
TLIDB				 228	 520
TLITIM				 232	 419
TRUE				 403	 425
UNIT				 175+#	 176+	 177+
UPDATE_CLOCK			 390	 391#	 393#
UPDATE_TIMER			 393
UPDTIM				 230	 394
VALUE				 137+	 138+	 140+	 141+	 146+
X				 132+	 133+#	 134+#	 135+	 145+	 146+#	 147+	 148+
XPE				 516
XPEDB				 227*	 519
XPT				 515
XPT$_REQU			 707
XPTDBBLOCK			 300+	 374+	 506+	 621+	 696+
XPTDB				 237	 297+	 298+#	 299+	 304	 307	 371+	 372+#	 373+	 430	 438	 503+
				 504+#	 505+	 515#	 516#	 517#	 518#	 519	 520	 618+	 619+#	 620+	 693+
				 694+#	 695+
XPTFLAGS			 409	 428	 432	 699
XPTNM				 518
XPTTIM				   1#	 198	 237*
XPTTLI				 517
XPTXPE				 516
XPTXPT				 515
ZEROQ				 170+#
$DSPCR				 301*	 302
$MCB_DEQUEUE_CCB		 427
$MCB_GET_PROCESS_HANDLE		 552
$MCB_QUEUE_CCB			 700
$XPTLL				 234	 430
$XPT_FOR_EACH_LINEB_DO_BEGIN	 397
$XPT_GET_LINE_DB		 703
$XPT_NEXT_LINEB_END		 417
%CTCE				 138+	 157+
%REMAINING			 182+