Google
 

Trailing-Edge - PDP-10 Archives - BB-R595B-SM_11-9-85 - mcb/xpt/xpttim.lst
There is 1 other file named xpttim.lst in the archive. Click here to see a list.
XPTTIM								15-Nov-1984 10:35:05	TOPS-20 Bliss-16 2A(530)	    Page   1
								23-Sep-1983 09:48:18	RATS:<BANKS.MCB.XPT>XPTTIM.BLI.1 (1)

;	  0001	module XPTTIM	(
;	  0002			IDENT = 'X01150'
;	  0003			) =
;	  0004	begin
;	  0005	
;	  0006	!
;	  0007	!                    COPYRIGHT (c) 1980, 1981, 1982
;	  0008	!                    DIGITAL EQUIPMENT CORPORATION
;	  0009	!                        Maynard, Massachusetts
;	  0010	!
;	  0011	!     This software is furnished under a license and may  be  used
;	  0012	!     and copied only in accordance with the terms of such license
;	  0013	!     and with the inclusion of the above copyright notice.   This
;	  0014	!     software  or any other copies thereof may not be provided or
;	  0015	!     otherwise made available to any other person.  No  title  to
;	  0016	!     and ownership of the software is hereby transferred.
;	  0017	!
;	  0018	!     The information  in  this  software  is  subject  to  change
;	  0019	!     without  notice  and should not be construed as a commitment
;	  0020	!     by DIGITAL EQUIPMENT CORPORATION.
;	  0021	!
;	  0022	!     DIGITAL assumes no responsibility for the use or reliability
;	  0023	!     of  its  software  on  equipment  which  is  not supplied by
;	  0024	!     DIGITAL.
;	  0025	!
;	  0026	
;	  0027	!++
;	  0028	! 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								15-Nov-1984 10:35:05	TOPS-20 Bliss-16 2A(530)	    Page   2
X01150								23-Sep-1983 09:48:18	RATS:<BANKS.MCB.XPT>XPTTIM.BLI.1 (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	! 1.15	D. Brannon, 23-Sep-83
;	  0094	!	In TIMLTM fix the crash caused by calling INI_LIN with 2 args
;	  0095	!	instead of 3.  Also fixed the calls to TERM_LIN and TLITIM
;	  0096	!	that had the same problem.
;	  0097	!
;	  0098	!--
XPTTIM								15-Nov-1984 10:35:05	TOPS-20 Bliss-16 2A(530)	    Page   3
X01150								23-Sep-1983 09:48:18	RATS:<BANKS.MCB.XPT>XPTTIM.BLI.1 (2)

;	  0099	
;	  0100	!
;	  0101	! TABLE OF CONTENTS
;	  0102	!
;	  0103	
;	  0104	require 'XPTMAC';
;	  0202	forward routine
;	  0203		XPTTIM: MCB_DB_MOD novalue,
;	  0204	        TIMLTM: MCB_DB novalue,
;	  0205	        TIMPIN: MCB_DB novalue,
;	  0206	        GET_PIX,
;	  0207		GETNLN: novalue,
;	  0208		RE_QUEUE: novalue;
;	  0209	
;	  0210	!
;	  0211	! INCLUDE FILES:
;	  0212	!
;	  0213	
;	  0214	
;	  0215	!
;	  0216	! MACROS:
;	  0217	!
;	  0218	
;	  0219	!
;	  0220	! EQUATED SYMBOLS:
;	  0221	!
;	  0222	
;	  0223	!
;	  0224	! OWN STORAGE:
;	  0225	!
;	  0226	
;	  0227	!
;	  0228	! EXTERNAL REFERENCES:
;	  0229	!
;	  0230	
;	  0231	external routine
;	  0232	    XPEDB: novalue,
;	  0233	    TLIDB: novalue,
;	  0234	    DECTIM: novalue,
;	  0235	    UPDTIM: novalue,
;	  0236	    HELLO: LINKAGE_DB novalue,
;	  0237	    TLITIM: novalue;
;	  0238	
;	  0239	external $XPTLL: vector;
XPTTIM								15-Nov-1984 10:35:05	TOPS-20 Bliss-16 2A(530)	    Page   4
X01150								23-Sep-1983 09:48:18	RATS:<BANKS.MCB.XPT>XPTTIM.BLI.1 (3)

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


						.TITLE	XPTTIM
						.IDENT	/X01150/


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								15-Nov-1984 10:35:05	TOPS-20 Bliss-16 2A(530)	    Page   5
X01150								23-Sep-1983 09:48:18	RATS:<BANKS.MCB.XPT>XPTTIM.BLI.1 (3)



						.SBTTL	XPTTIM
000000						.PSECT	$CODE$,  RO 

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

; Routine Size:  3 words,	Routine Base:  $CODE$ + 0000
; Maximum stack depth per invocation:  1 word
XPTTIM								15-Nov-1984 10:35:05	TOPS-20 Bliss-16 2A(530)	    Page   6
X01150								23-Sep-1983 09:48:18	RATS:<BANKS.MCB.XPT>XPTTIM.BLI.1 (4)

;	  0311	
;	  0312	routine TIMLTM (XPTDB): MCB_DB novalue =
;	  0313	
;	  0314	!++
;	  0315	! FUNCTIONAL DESCRIPTION:
;	  0316	!
;	  0317	!  This routine is called once every time interval.  It updates
;	  0318	!  all the timers except T6 (which is updated in Transport Line
;	  0319	!  Interface), and then calls all of the routines in the indivi-
;	  0320	!  dual Transport modules which do timer processing.  In addition,
;	  0321	!  it redispatches all the CCBs on the retry queue.
;	  0322	!
;	  0323	! FORMAL PARAMETERS
;	  0324	!
;	  0325	!	XPTDB   	Address of Transport data base
;	  0326	!
;	  0327	! IMPLICIT INPUTS
;	  0328	!
;	  0329	!	None
;	  0330	!
;	  0331	! ROUTINE VALUE:
;	  0332	! COMPLETION CODES:
;	  0333	!
;	  0334	!	NONE.
;	  0335	!
;	  0336	! SIDE EFFECTS:
;	  0337	!
;	  0338	!	See the timer routines for each module.
;	  0339	!
;	  0340	!--
;	  0341	
;	  0342	begin
;	  0343	require 'XPTSYM';
;	  0380	!
;	  0381	!  Re-request a one-second timer interrupt
;	  0382	!
;	  0383	Timer = .Timer + 1;
;	  0384	!
;	  0385	!  Call the module timer routines
;	  0386	!
;	  0387	
;	  0388	if .Routing_clock neq 0
;	  0389	then if (Routing_clock = .Routing_clock - 1) eql 0 
;	  0390	     then begin
;	  0391	          Routing_clock = .Routing_timer;
;	  0392	          CALL$E(DECTIM,PD_XPE);        ! Check the routing data base
;	  0393	          end;
;	  0394	
;	  0395	if .Update_clock neq 0
;	  0396	then if (Update_clock = .Update_clock - 1) eql 0
;	  0397	     then begin
;	  0398	          Update_clock = .Update_timer;
XPTTIM								15-Nov-1984 10:35:05	TOPS-20 Bliss-16 2A(530)	    Page   7
X01150								23-Sep-1983 09:48:18	RATS:<BANKS.MCB.XPT>XPTTIM.BLI.1 (4)

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


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


						.SBTTL	TIMLTM
000000	162706  000006 			; TIMLTM
					U.2:	SUB	#6,SP				;					0312
XPTTIM								15-Nov-1984 10:35:05	TOPS-20 Bliss-16 2A(530)	    Page   8
X01150								23-Sep-1983 09:48:18	RATS:<BANKS.MCB.XPT>XPTTIM.BLI.1 (4)

000004	010566  000004 				MOV	R5,4(SP)
000010	105215 					INCB	(R5)				;					0383
000012	012701  000072 				MOV	#72,R1				;					0388
000016	060501 					ADD	R5,R1
000020	010100 					MOV	R1,R0
000022	005710 					TST	(R0)
000024	001420 					BEQ	1$
000026	005310 					DEC	(R0)				;					0389
000030	001016 					BNE	1$
000032	010501 					MOV	R5,R1				;					0391
000034	016110  000060 				MOV	60(R1),(R0)
000040	005046 					CLR	-(SP)				;					0392
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				;					0390
000066	012701  000074 			1$:	MOV	#74,R1				;					0395
000072	066601  000004 				ADD	4(SP),R1
000076	010100 					MOV	R1,R0
000100	005710 					TST	(R0)
000102	001421 					BEQ	2$
000104	005310 					DEC	(R0)				;					0396
000106	001017 					BNE	2$
000110	016601  000004 				MOV	4(SP),R1			;					0398
000114	016110  000062 				MOV	62(R1),(R0)
000120	005046 					CLR	-(SP)				;					0399
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				;					0397
000146	016600  000004 			2$:	MOV	4(SP),R0			;					0400
000152	016005  000020 				MOV	20(R0),R5			; *,LINEB
000156	016001  000022 				MOV	22(R0),R1			; *,$XPT$LINEB.CNT
000162	001462 					BEQ	9$
000164	012700  000044 			3$:	MOV	#44,R0				;					0404
000170	060500 					ADD	R5,R0				; LINEB,*
000172	005710 					TST	(R0)
000174	001406 					BEQ	4$
000176	005310 					DEC	(R0)				;					0405
000200	001004 					BNE	4$
000202	016510  000022 				MOV	22(R5),(R0)			; *(LINEB),*				0407
000206	052715  010000 				BIS	#10000,(R5)			; *,LINEB				0408
000212	032715  040000 			4$:	BIT	#40000,(R5)			; *,LINEB				0411
000216	001434 					BEQ	7$
000220	042715  040000 				BIC	#40000,(R5)			; *,LINEB				0413
000224	016600  000004 				MOV	4(SP),R0			;					0414
000230	032760  000001  000106 			BIT	#1,106(R0)
000236	001406 					BEQ	5$
XPTTIM								15-Nov-1984 10:35:05	TOPS-20 Bliss-16 2A(530)	    Page   9
X01150								23-Sep-1983 09:48:18	RATS:<BANKS.MCB.XPT>XPTTIM.BLI.1 (4)

000240	010546 					MOV	R5,-(SP)			; LINEB,*				0415
000242	012746  000001 				MOV	#1,-(SP)
000246	012746  000000G				MOV	#INI.LIN,-(SP)
000252	000405 					BR	6$
000254	010546 				5$:	MOV	R5,-(SP)			; LINEB,*				0416
000256	012746  000001 				MOV	#1,-(SP)
000262	012746  000000G				MOV	#TERM.LIN,-(SP)
000266	005046 				6$:	CLR	-(SP)
000270	016600  000014 				MOV	14(SP),R0
000274	116016  000003 				MOVB	3(R0),(SP)
000300	004767  000000G				JSR	PC,$CALLP
000304	062706  000010 				ADD	#10,SP				;					0412
000310	032715  010000 			7$:	BIT	#10000,(R5)			; *,LINEB				0419
000314	001402 					BEQ	8$
000316	004767  000000G				JSR	PC,HELLO			;					0420
000322	062705  000104 			8$:	ADD	#104,R5				; *,LINEB
000326	077162 					SOB	R1,3$				; $XPT$LINEB.CNT,*			0000
000330	005046 				9$:	CLR	-(SP)				;					0424
000332	012746  000000G				MOV	#TLITIM,-(SP)
000336	005046 					CLR	-(SP)
000340	016600  000012 				MOV	12(SP),R0
000344	116016  000003 				MOVB	3(R0),(SP)
000350	004767  000000G				JSR	PC,$CALLP
000354	012700  000110 				MOV	#110,R0				;					0432
000360	066600  000012 				ADD	12(SP),R0
000364	010066  000010 				MOV	R0,10(SP)
000370	012700  000106 				MOV	#106,R0				;					0433
000374	066600  000012 				ADD	12(SP),R0
000400	010066  000006 				MOV	R0,6(SP)
000404	016603  000010 			10$:	MOV	10(SP),R3			;					0432
000410	004767  000000G				JSR	PC,$CMQRM
000414	103424 					BCS	11$
000416	042776  000002  000006 			BIC	#2,@6(SP)			;					0433
000424	016601  000012 				MOV	12(SP),R1			;					0434
000430	105361  000140 				DECB	140(R1)
000434	005000 					CLR	R0				;					0435
000436	156400  000012 				BISB	12(R4),R0			; *(CCB),*
000442	010105 					MOV	R1,R5
000444	005003 					CLR	R3
000446	156403  000013 				BISB	13(R4),R3			; *(CCB),*
000452	004770  000000G				JSR	PC,@$XPTLL(R0)
000456	032776  000002  000006 			BIT	#2,@6(SP)			;					0437
000464	001747 					BEQ	10$
000466	062706  000014 			11$:	ADD	#14,SP				;					0312
000472	000207 					RTS	PC

; Routine Size:  158 words,	Routine Base:  $CODE$ + 0006
; Maximum stack depth per invocation:  8 words
XPTTIM								15-Nov-1984 10:35:05	TOPS-20 Bliss-16 2A(530)	    Page  10
X01150								23-Sep-1983 09:48:18	RATS:<BANKS.MCB.XPT>XPTTIM.BLI.1 (5)

;	  0442	
;	  0443	routine TIMPIN (XPTDB): MCB_DB novalue =
;	  0444	
;	  0445	!++
;	  0446	! FUNCTIONAL DESCRIPTION:
;	  0447	!
;	  0448	!  This routine is called during process initialization
;	  0449	!
;	  0450	! FORMAL PARAMETERS
;	  0451	!
;	  0452	!	XPTDB   	Address of Transport data base
;	  0453	!
;	  0454	! IMPLICIT INPUTS
;	  0455	!
;	  0456	!	?
;	  0457	!
;	  0458	! ROUTINE VALUE:
;	  0459	! COMPLETION CODES:
;	  0460	!
;	  0461	!	NONE.
;	  0462	!
;	  0463	! SIDE EFFECTS:
;	  0464	!
;	  0465	!--
;	  0466	
;	  0467	begin
;	  0468	
;	M 0469	macro RAD50(NAME) =
;	M 0470	    %IF %bliss(BLISS36) %THEN
;	M 0471		%RAD50_10 %string(NAME)
;	M 0472	    %ELSE
;	M 0473		%RAD50_11 %string(NAME)
;	  0474	    %FI %;
;	  0475	require 'XPTSYM';
;	  0512	
;	  0513	!
;	  0514	!  Initialization entry point:
;	  0515	!	. Get PIXes for TLI, XPE, NMX, and XPT itself
;	  0516	!	. Get Transport data base address and distribute it to
;	  0517	!	  TLI and XPE
;	  0518	!
;	  0519	
;	  0520	    XPTDB[XPTxpt]=GET_PIX(rad50(XPT));	! Pick up
;	  0521	    XPTDB[XPTxpe]=GET_PIX(rad50(XPE));	!   processes
;	  0522	    XPTDB[XPTtli]=GET_PIX(rad50(TLI));	!   PIXes for
;	  0523	    XPTDB[XPTnm]=GET_PIX(rad50(NMX));	!   communicating
;	  0524	    CALL$P(XPEDB,PD_XPE,.XPTDB);	! Give the data base address
;	  0525	    CALL$P(TLIDB,PD_TLI,.XPTDB);	!   to XPE and TLI
;	  0526	
;	  0527	end;				!End of TIMPIN
XPTTIM								15-Nov-1984 10:35:05	TOPS-20 Bliss-16 2A(530)	    Page  11
X01150								23-Sep-1983 09:48:18	RATS:<BANKS.MCB.XPT>XPTTIM.BLI.1 (5)

						.SBTTL	TIMPIN
000000	012746  114224 			; TIMPIN
					U.3:	MOV	#-63554,-(SP)			;					0520
000004	004767  000000V				JSR	PC,U.4
000010	110065  000004 				MOVB	R0,4(R5)			; *,*(XPTDB)
000014	012701  000002 				MOV	#2,R1				;					0521
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)			;					0522
000040	004767  000000V				JSR	PC,U.4
000044	110061  000001 				MOVB	R0,1(R1)
000050	012716  054640 				MOV	#54640,(SP)			;					0523
000054	004767  000000V				JSR	PC,U.4
000060	110065  000005 				MOVB	R0,5(R5)			; *,*(XPTDB)
000064	010516 					MOV	R5,(SP)				; XPTDB,*				0524
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,*				0525
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				;					0467
000136	000207 					RTS	PC				;					0443

; Routine Size:  48 words,	Routine Base:  $CODE$ + 0502
; Maximum stack depth per invocation:  8 words
XPTTIM								15-Nov-1984 10:35:05	TOPS-20 Bliss-16 2A(530)	    Page  12
X01150								23-Sep-1983 09:48:18	RATS:<BANKS.MCB.XPT>XPTTIM.BLI.1 (6)

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


						.GLOBL	P.DTGT, $CALLI


						.SBTTL	GET.PIX
000000	010146 				; GET.PIX
					U.4:	MOV	R1,-(SP)			;					0529
000002	005746 					TST	-(SP)
000004	012746  000002 				MOV	#2,-(SP)			;					0557
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								15-Nov-1984 10:35:05	TOPS-20 Bliss-16 2A(530)	    Page  13
X01150								23-Sep-1983 09:48:18	RATS:<BANKS.MCB.XPT>XPTTIM.BLI.1 (6)

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

; Routine Size:  26 words,	Routine Base:  $CODE$ + 0642
; Maximum stack depth per invocation:  7 words
XPTTIM								15-Nov-1984 10:35:05	TOPS-20 Bliss-16 2A(530)	    Page  14
X01150								23-Sep-1983 09:48:18	RATS:<BANKS.MCB.XPT>XPTTIM.BLI.1 (7)

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


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

; Routine Size:  1 word,	Routine Base:  $CODE$ + 0726
; Maximum stack depth per invocation:  0 words
XPTTIM								15-Nov-1984 10:35:05	TOPS-20 Bliss-16 2A(530)	    Page  15
X01150								23-Sep-1983 09:48:18	RATS:<BANKS.MCB.XPT>XPTTIM.BLI.1 (8)

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


						.GLOBL	$CMQIN, GTLINE
XPTTIM								15-Nov-1984 10:35:05	TOPS-20 Bliss-16 2A(530)	    Page  16
X01150								23-Sep-1983 09:48:18	RATS:<BANKS.MCB.XPT>XPTTIM.BLI.1 (8)


						.SBTTL	RE.QUEUE
000000	004167  000000G			RE.QUEUE::
					U.6:	JSR	R1,$SAVE4			;					0633
000004	016700  000002G				MOV	.CRDAT+2,R0			;					0704
000010	052760  000002  000106 			BIS	#2,106(R0)
000016	016604  000014 				MOV	14(SP),R4			; CCB,*					0705
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)				;					0706
000044	126427  000012  000016 			CMPB	12(R4),#16			;					0707
000052	001014 					BNE	1$
000054	005000 					CLR	R0				;					0708
000056	156400  000010 				BISB	10(R4),R0
000062	004767  000000G				JSR	PC,GTLINE
000066	105360  000043 				DECB	43(R0)				; *(LINEB)				0709
000072	016700  000002G				MOV	.CRDAT+2,R0
000076	105260  000035 				INCB	35(R0)				;					0710
000102	000207 					RTS	PC				;					0707
000104	012746  100122 			1$:	MOV	#-77656,-(SP)			;					0712
000110	012746  000001 				MOV	#1,-(SP)
000114	004767  000000G				JSR	PC,$IGNAL
000120	022626 					CMP	(SP)+,(SP)+
000122	000207 					RTS	PC				;					0633

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


;	  0715	
;	  0716	end				!End of module XPTTIM
;	  0717	eludom



;					OTS external references
						.GLOBL	$SAVE4, $IGNAL


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




;				LIBRARY STATISTICS
;
XPTTIM								15-Nov-1984 10:35:05	TOPS-20 Bliss-16 2A(530)	    Page  17
X01150								23-Sep-1983 09:48:18	RATS:<BANKS.MCB.XPT>XPTTIM.BLI.1 (8)

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





; Size:		278 code + 6 data words
; Run Time:	00:07.9
; Elapsed Time:	00:39.2
; Memory Used:	46 pages
; Compilation Complete
ADDRESS				 156+	 158+	 159+	 161+	 162+	 164+	 165+	 171+	 172+	 175+	 176+	 177+
BITON				 414	 437
BLISS36				 470
BPT				 185+#	 197+#	 712
BUFCHK				 189+	 190+#	 199+	 200+#
CALL$E				 392	 399
CALL$P				 415	 416	 424	 524	 525
CCB				 431	 432	 435	 633	 702	 705	 707	 708
CHKBUF				 192+*	 193+
CLEARBIT			 433
C_FIELDS			 431	 702
C_FNC				 435	 707
C_LIX				 708
C_MOD				 435
DECTIM				 234	 392
DISPATCH$			 307	 435
DLLQUOTA			 710#
FALSE				 413
FC_RCP				 707
FD_TIM				 307
FM_LTM				 309
FM_PIN				 308
GETNLN				 207	 560*
GETQ				 156+#
GETW				 135+#	 158+	 159+
GET_PIX				 206	 520	 521	 522	 523	 529*
HELLO_CLOCK			 404	 405#	 407#
HELLO_TIMER			 407
HELLO				 236	 420
I				 180+	 182+
INI_LIN				 415
INPUTCOUNT			 709#
J				 180+	 182+
LINEBLOCK			 296+	 370+	 502+	 617+	 692+
LINEB				 294+	 296+	 368+	 370+	 415	 416	 420	 500+	 502+	 615+	 617+	 664
				 690+	 692+	 708#
LINKAGE_DB			 236
M				 180+	 181+
MATRIX				 180+#	 182+
MCB$GAW_PROCESS_DATA_BASE	 299+	 300+	 303+	 373+	 374+	 377+	 505+	 506+	 509+	 620+	 621+	 624+
				 695+	 696+	 699+
MCB_DB				 204	 205	 309	 312#	 443#
MCB_DB_CCB_MOD			 435
MCB_DB_MOD			 203	 242#
MODIFIER			 242	 307
N				 180+	 181+
NAME				 469	 471	 473	 529	 557
NL				 180+	 182+
NMX				 523
NODEBLOCK			 291+	 365+	 497+	 612+	 687+
NODEB				 289+	 291+	 363+	 365+	 495+	 497+	 610+	 612+	 685+	 687+
NOP				 197+	 198+	 200+
NO_LINEB			 295+	 369+	 501+	 616+	 691+
NO_NODEB			 290+	 364+	 496+	 611+	 686+
PD_TLI				 415	 416	 424	 525
PD_XPE				 392	 399	 524
PIX				 556	 557
PTR				 135+	 138+	 139+	 142+	 145+	 146+	 152+	 153+	 156+	 158+	 159+	 161+
				 164+	 165+	 166+	 167+	 171+	 172+
PUTQ				 161+#
PUTW				 142+#	 171+	 172+
RAD50				 469#	 520	 521	 522	 523
REQUEUE				 432	 705
REQUEUE_COUNT			 434#	 706#
RE_QUEUE			 208	 633*
RFAIL				 433	 437	 704
ROUTING_CLOCK			 388	 389#	 391#
ROUTING_TIMER			 391
RUNNING				 414
SEND_HELLO			 408#	 419
SERVICE_LINE			 411	 413#
SETBIT				 704
TABLE$				 307
TERM_LIN			 416
TIMER				 383#
TIMLTM				 204	 309	 312*
TIMPIN				 205	 308	 443*
TLI				 522
TLIDB				 233	 525
TLITIM				 237	 424
TRUE				 408	 430
UNIT				 180+#	 181+	 182+
UPDATE_CLOCK			 395	 396#	 398#
UPDATE_TIMER			 398
UPDTIM				 235	 399
VALUE				 142+	 143+	 145+	 146+	 151+
X				 137+	 138+#	 139+#	 140+	 150+	 151+#	 152+	 153+
XPE				 521
XPEDB				 232*	 524
XPT				 520
XPT$_REQU			 712
XPTDBBLOCK			 305+	 379+	 511+	 626+	 701+
XPTDB				 242	 302+	 303+#	 304+	 309	 312	 376+	 377+#	 378+	 435	 443	 508+
				 509+#	 510+	 520#	 521#	 522#	 523#	 524	 525	 623+	 624+#	 625+	 698+
				 699+#	 700+
XPTFLAGS			 414	 433	 437	 704
XPTNM				 523
XPTTIM				   1#	 203	 242*
XPTTLI				 522
XPTXPE				 521
XPTXPT				 520
ZEROQ				 175+#
$DSPCR				 306*	 307
$MCB_DEQUEUE_CCB		 432
$MCB_GET_PROCESS_HANDLE		 557
$MCB_QUEUE_CCB			 705
$XPTLL				 239	 435
$XPT_FOR_EACH_LINEB_DO_BEGIN	 402
$XPT_GET_LINE_DB		 708
$XPT_NEXT_LINEB_END		 422
%CTCE				 143+	 162+
%REMAINING			 187+