Google
 

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

;	  0001	module TLITIM	(
;	  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 Line Interface timer service routine: updates all timers
;	  0033	!	and calls the timer routines LINTIM and LISTENER.
;	  0034	!
;	  0035	! ENVIRONMENT:	MCB
;	  0036	!
;	  0037	! AUTHOR: L. Webber , CREATION DATE: 19-Dec-79
;	  0038	!
;	  0039	! MODIFIED BY:
;	  0040	!
;	  0041	!	L. Webber, 19-Dec-79 : VERSION 1.00
;	  0042	!
;	  0043	! 1.01	L. Webber, 2-Apr-80
;	  0044	!	Modify to support node and line sub-data-bases
;	  0045	!
;	  0046	! 1.02	L. Webber, 15-Apr-80
;	  0047	!	Add process initialization code
;	  0048	!
;	  0049	! 1.03	L. Webber, 27-Jun-80
;	  0050	!	Modify to use MCBLIB macros
;	  0051	!
;	  0052	! 1.04	L. Webber, 11-Dec-80
TLITIM								25-Jan-1983 10:02:40	TOPS-20 Bliss-16 2A(530)	    Page   2
X01140								30-Dec-1982 21:16:35	NETPKG:<XPT>TLITIM.BLI.8 (1)

;	  0053	!	Modify to support MCB 3.1
;	  0054	!
;	  0055	! 1.05	L. Webber, 20-Jan-81
;	  0056	!	Modify initialization procedure to:
;	  0057	!	  . Update _CRDAT instead of $XPTDB
;	  0058	!	  . No longer take NLN as a parameter
;	  0059	!	thus making XPE read-only.
;	  0060	!
;	  0061	! 1.06	L. Webber, 26-Jan-81
;	  0062	!	Added Event Logging and Counter Updating
;	  0063	!
;	  0064	! 1.07	L. Webber, 24-Feb-81
;	  0065	!	TLITIM is not a dispatch routine any more; it is CALL$P'd
;	  0066	!	from Transport.
;	  0067	!
;	  0068	! 1.08	L. Webber, 27-Feb-81
;	  0069	!	Add dummy "timer routine" TLINOP for process initialization.
;	  0070	!
;	  0071	! 1.09	L. Webber, 16-Mar-81
;	  0072	!	Make INI_LIN CALL$ linkage
;	  0073	!
;	  0074	! 1.10	L. Webber, 2-Apr-81
;	  0075	!	Generate the "reason" parameter item in the Event Buffer via a
;	  0076	!	call to EP_REASON.
;	  0077	!
;	  0078	! 1.11	L. Webber, 2-Apr-81
;	  0079	!	Add LIX as NMXID in event logging.
;	  0080	!
;	  0081	! 1.12	L. Webber, 6-Apr-81
;	  0082	!	Add initialization timer maintenance.
;	  0083	!
;	  0084	! 1.13	L. Webber, 24-Sep-81
;	  0085	!	Change event logging to use new macros to build event buffer.
;	  0086	!
;	  0087	! 1.14	A. Peckham, 19-Apr-82
;	  0088	!	Eliminate references to LOG_EVENT, GETLINE.
;	  0089	!       Rework Listen_clock support.
;	  0090	!
;	  0091	!--
TLITIM								25-Jan-1983 10:02:40	TOPS-20 Bliss-16 2A(530)	    Page   3
X01140								30-Dec-1982 21:16:35	NETPKG:<XPT>TLITIM.BLI.8 (2)

;	  0092	
;	  0093	!
;	  0094	!  INCLUDE FILES:
;	  0095	!
;	  0096	
;	  0097	require 'XPTMAC';
;	  0195	
;	  0196	!
;	  0197	! TABLE OF CONTENTS
;	  0198	!
;	  0199	
;	  0200	forward routine
;	  0201		TLITIM: CALL$ novalue,
;	  0202	        INITIALIZER: LINKAGE_DB novalue,
;	  0203		LISTENER: LINKAGE_DB novalue,
;	  0204		TLIDB: CALL$ novalue;
;	  0205	
;	  0206	!
;	  0207	! MACROS:
;	  0208	!
;	  0209	
;	  0210	!
;	  0211	! EQUATED SYMBOLS:
;	  0212	!
;	  0213	
;	  0214	!
;	  0215	! OWN STORAGE:
;	  0216	!
;	  0217	
;	  0218	!
;	  0219	! EXTERNAL REFERENCES:
;	  0220	!
;	  0221	
;	  0222	external routine
;	  0223	    LINRVR: LINKAGE_DB novalue;
TLITIM								25-Jan-1983 10:02:40	TOPS-20 Bliss-16 2A(530)	    Page   4
X01140								30-Dec-1982 21:16:35	NETPKG:<XPT>TLITIM.BLI.8 (3)

;	  0224	
;	  0225	global
;	  0226	routine TLITIM: CALL$ novalue =
;	  0227	
;	  0228	!++
;	  0229	! FUNCTIONAL DESCRIPTION:
;	  0230	!
;	  0231	! This routine is called once every time interval.  It updates Listen_clock
;	  0232	! and then calls the routines INITIALIZER or LISTENER if it expires.
;	  0233	! It also initiates resource recovery if a line needs it.
;	  0234	!
;	  0235	! FORMAL PARAMETERS
;	  0236	!
;	  0237	!	NONE.
;	  0238	!
;	  0239	! IMPLICIT INPUTS
;	  0240	!
;	  0241	!	Listen_clock, LINEfunction
;	  0242	!
;	  0243	! ROUTINE VALUE:
;	  0244	! COMPLETION CODES:
;	  0245	!
;	  0246	!	NONE.
;	  0247	!
;	  0248	! SIDE EFFECTS:
;	  0249	!
;	  0250	!	See the timer routines.
;	  0251	!
;	  0252	!--
;	  0253	
;	  0254	begin
;	  0255	require 'XPTSYM';
;	  0292	label LISTEN_CHECKER;
;	  0293	
;	  0294	$XPT_for_each_LINEb_do_begin
;	  0295	     if .Listen_clock neq 0
;	  0296	     then if (Listen_clock = .Listen_clock - 1) eql 0
;	  0297	          then case .LINEstate from HA to RU of
;	  0298	                   set
;	  0299	                   [RU]:
;	  0300	                       begin
;	  0301	                       Listen_clock = .Listen_timer;
;	  0302	                       LISTENER(.LINEb);
;	  0303	                       end;
;	  0304	                   [TI,TV,TC]:
;	  0305	                       INITIALIZER(.LINEb);
;	  0306	                   [inrange]:
;	  0307	                       ;
;	  0308	                   tes;
;	  0309	
;	  0310	     if .LINEfunction gtr 0 then LINRVR(.LINEb);
;	  0311	
TLITIM								25-Jan-1983 10:02:40	TOPS-20 Bliss-16 2A(530)	    Page   5
X01140								30-Dec-1982 21:16:35	NETPKG:<XPT>TLITIM.BLI.8 (3)

;	  0312	$XPT_next_LINEb_end;
;	  0313	
;	  0314	end;				!End of TLITIM


						.TITLE	TLITIM
						.IDENT	/X01140/

						.GLOBL	LINRVR, .CRDAT


						.SBTTL	TLITIM
000000						.PSECT	$CODE$,  RO 

000000	016700  000002G			TLITIM::
					U.1:	MOV	.CRDAT+2,R0			;					0292
000004	016005  000020 				MOV	20(R0),R5			; *,LINEB
000010	016001  000022 				MOV	22(R0),R1			; *,$XPT$LINEB.CNT
000014	001432 					BEQ	6$
000016	012700  000046 			1$:	MOV	#46,R0				;					0295
000022	060500 					ADD	R5,R0				; LINEB,*
000024	005710 					TST	(R0)
000026	001415 					BEQ	4$
000030	005310 					DEC	(R0)				;					0296
000032	001013 					BNE	4$
000034	111502 					MOVB	(R5),R2				; LINEB,*				0297
000036	006302 					ASL	R2
000040	066207  000000'				ADD	P.AAA(R2),PC			; Case dispatch
000044	016510  000024 			2$:	MOV	24(R5),(R0)			; *(LINEB),*				0301
000050	004767  000000V				JSR	PC,U.3				;					0302
000054	000402 					BR	4$				;					0297
000056	004767  000000V			3$:	JSR	PC,U.2				;					0305
000062	105765  000040 			4$:	TSTB	40(R5)				; *(LINEB)				0310
000066	003402 					BLE	5$
000070	004767  000000G				JSR	PC,LINRVR
000074	062705  000104 			5$:	ADD	#104,R5				; *,LINEB
000100	077132 					SOB	R1,1$				; $XPT$LINEB.CNT,*			0000
000102	000207 				6$:	RTS	PC				;					0226

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


000000						.PSECT	$PLIT$,  RO ,  D  

					P.AAA:						; CASE Table for TLITIM+0040		0297
000000	000016 					.WORD	16				; [4$]
000002	000016 					.WORD	16				; [4$]
000004	000016 					.WORD	16				; [4$]
000006	000016 					.WORD	16				; [4$]
000010	000016 					.WORD	16				; [4$]
000012	000012 					.WORD	12				; [3$]
TLITIM								25-Jan-1983 10:02:40	TOPS-20 Bliss-16 2A(530)	    Page   6
X01140								30-Dec-1982 21:16:35	NETPKG:<XPT>TLITIM.BLI.8 (3)

000014	000012 					.WORD	12				; [3$]
000016	000012 					.WORD	12				; [3$]
000020	000000 					.WORD	0				; [2$]
TLITIM								25-Jan-1983 10:02:40	TOPS-20 Bliss-16 2A(530)	    Page   7
X01140								30-Dec-1982 21:16:35	NETPKG:<XPT>TLITIM.BLI.8 (4)

;	  0315	
;	  0316	routine INITIALIZER (LINEb): LINKAGE_DB novalue =
;	  0317	
;	  0318	!++
;	  0319	! FUNCTIONAL DESCRIPTION:
;	  0320	!
;	  0321	!  INITIALIZATION TIMER
;	  0322	!
;	  0323	!  If a circuit is in its initialization sequence (TI, TV or TC state), a
;	  0324	!  timer will be kept.  If the timer expires without the circuit going to RU
;	  0325	!  state or the initialization failing, the circuit is reinitialized.
;	  0326	!
;	  0327	! FORMAL PARAMETERS
;	  0328	!
;	  0329	!	NONE.
;	  0330	!
;	  0331	! IMPLICIT INPUTS
;	  0332	!
;	  0333	!	None
;	  0334	!
;	  0335	! ROUTINE VALUE:
;	  0336	! COMPLETION CODES:
;	  0337	!
;	  0338	!	NONE.
;	  0339	!
;	  0340	! SIDE EFFECTS:
;	  0341	!
;	  0342	!	Retries an initialization function.
;	  0343	!
;	  0344	!--
;	  0345	
;	  0346	begin
;	  0347	require 'XPTSYM';
;	  0384	
;	  0385	COUNTER_INCREMENT(LINEb,XPTini_fail);   ! Increment the init. fails ctr
;	  0386	$NM_LOG_BEGIN();                        ! declare a "line down" event
;	  0387	PARAMETER_C_1(5,uplit(5));
;	  0388	$NM_LOG_END(4^6+$XPT$E_ILF,.NMXid);
;	  0389	CALL$L(INI_LIN,.LINEb);
;	  0390	end;				!End of INITIALIZER


000022	000005 				P.AAB:	.WORD	5


						.GLOBL	$IC8, $NLBEG, $DPC1, $NLEND, INI.LIN


						.SBTTL	INITIALIZER
000104						.PSECT	$CODE$,  RO 

000000	004167  000000G			; INITIALIZER
TLITIM								25-Jan-1983 10:02:40	TOPS-20 Bliss-16 2A(530)	    Page   8
X01140								30-Dec-1982 21:16:35	NETPKG:<XPT>TLITIM.BLI.8 (4)

					U.2:	JSR	R1,$SAVE5			;					0316
000004	010502 					MOV	R5,R2				; *,LINEB
000006	062705  000103 				ADD	#103,R5				;					0385
000012	010500 					MOV	R5,R0
000014	004767  000000G				JSR	PC,$IC8
000020	004767  000000G				JSR	PC,$NLBEG			;					0386
000024	012746  000005 				MOV	#5,-(SP)			;					0387
000030	116700  000022'				MOVB	P.AAB,R0
000034	004767  000000G				JSR	PC,$DPC1
000040	012700  000413 				MOV	#413,R0				;					0388
000044	016201  000034 				MOV	34(R2),R1			; *(LINEB),*
000050	004767  000000G				JSR	PC,$NLEND
000054	010216 					MOV	R2,(SP)				; LINEB,*				0389
000056	012746  000001 				MOV	#1,-(SP)
000062	012746  000000G				MOV	#INI.LIN,-(SP)
000066	004767  000000G				JSR	PC,$CALL
000072	062706  000006 				ADD	#6,SP				;					0346
000076	000207 					RTS	PC				;					0316

; Routine Size:  32 words,	Routine Base:  $CODE$ + 0104
; Maximum stack depth per invocation:  10 words
TLITIM								25-Jan-1983 10:02:40	TOPS-20 Bliss-16 2A(530)	    Page   9
X01140								30-Dec-1982 21:16:35	NETPKG:<XPT>TLITIM.BLI.8 (5)

;	  0391	
;	  0392	routine LISTENER (LINEb): LINKAGE_DB novalue =
;	  0393	
;	  0394	!++
;	  0395	! FUNCTIONAL DESCRIPTION:
;	  0396	!
;	  0397	! This routine is called on a time interval.  For each active line with
;	  0398	! a Phase III neighbor, it checks LINEflags to be sure that at least one
;	  0399	! message has been received since T4 last expired.  If no message has been
;	  0400	! received on the tine, the line is brought down.
;	  0401	!
;	  0402	! FORMAL PARAMETERS
;	  0403	!
;	  0404	!	NONE.
;	  0405	!
;	  0406	! IMPLICIT INPUTS
;	  0407	!
;	  0408	!	T4, LINEstate, Nty, LINEflags
;	  0409	!
;	  0410	! ROUTINE VALUE:
;	  0411	! COMPLETION CODES:
;	  0412	!
;	  0413	!	NONE.
;	  0414	!
;	  0415	! SIDE EFFECTS:
;	  0416	!
;	  0417	!	One or more lines may be restarted.
;	  0418	!
;	  0419	!--
;	  0420	
;	  0421	begin
;	  0422	require 'XPTSYM';
;	  0459	
;	  0460	!
;	  0461	!  Check the line for aptness
;	  0462	!
;	  0463	
;	  0464	selectoneu .Nty of
;	  0465	    set
;	  0466	    [Full, Small]:
;	  0467	        begin
;	  0468	!
;	  0469	!  If we got here, no data has been received to reset the timer.
;	  0470	!
;	  0471	        COUNTER_INCREMENT(LINEb,XPTlinedn);!  increment "line downs" ctr,
;	  0472	        $NM_LOG_BEGIN();                !  log "line failed -
;	  0473	        PARAMETER_C_1(5,uplit(10));     !  listener timeout" event
;	  0474	        $NM_LOG_END(4^6+$XPT$E_LLF,.NMXid);
;	  0475	        CALL$L(INI_LIN,.LINEb);         !  and restart the line
;	  0476	        end;
;	  0477	     [otherwise]:
;	  0478	         ;
TLITIM								25-Jan-1983 10:02:40	TOPS-20 Bliss-16 2A(530)	    Page  10
X01140								30-Dec-1982 21:16:35	NETPKG:<XPT>TLITIM.BLI.8 (5)

;	  0479	     tes;
;	  0480	
;	  0481	end;				!End of LISTENER



000024						.PSECT	$PLIT$,  RO ,  D  
000024	000012 				P.AAC:	.WORD	12


						.SBTTL	LISTENER
000204						.PSECT	$CODE$,  RO 

000000	004167  000000G			; LISTENER
					U.3:	JSR	R1,$SAVE5			;					0392
000004	010502 					MOV	R5,R2				; *,LINEB
000006	116200  000002 				MOVB	2(R2),R0			; *(LINEB),*				0464
000012	020027  000002 				CMP	R0,#2
000016	103437 					BLO	1$
000020	020027  000003 				CMP	R0,#3
000024	101034 					BHI	1$
000026	062705  000102 				ADD	#102,R5				;					0471
000032	010500 					MOV	R5,R0
000034	004767  000000G				JSR	PC,$IC8
000040	004767  000000G				JSR	PC,$NLBEG			;					0472
000044	012746  000005 				MOV	#5,-(SP)			;					0473
000050	116700  000024'				MOVB	P.AAC,R0
000054	004767  000000G				JSR	PC,$DPC1
000060	012700  000407 				MOV	#407,R0				;					0474
000064	016201  000034 				MOV	34(R2),R1			; *(LINEB),*
000070	004767  000000G				JSR	PC,$NLEND
000074	010216 					MOV	R2,(SP)				; LINEB,*				0475
000076	012746  000001 				MOV	#1,-(SP)
000102	012746  000000G				MOV	#INI.LIN,-(SP)
000106	004767  000000G				JSR	PC,$CALL
000112	062706  000006 				ADD	#6,SP				;					0467
000116	000207 				1$:	RTS	PC				;					0392

; Routine Size:  40 words,	Routine Base:  $CODE$ + 0204
; Maximum stack depth per invocation:  10 words
TLITIM								25-Jan-1983 10:02:40	TOPS-20 Bliss-16 2A(530)	    Page  11
X01140								30-Dec-1982 21:16:35	NETPKG:<XPT>TLITIM.BLI.8 (6)

;	  0482	
;	  0483	global
;	  0484	routine TLIDB (DBADDR): CALL$ novalue =
;	  0485	
;	  0486	!++
;	  0487	! FUNCTIONAL DESCRIPTION:
;	  0488	!
;	  0489	! This routine is called from the XPT process on initialization
;	  0490	! and passes the address of the Transport data base.
;	  0491	!
;	  0492	! FORMAL PARAMETERS
;	  0493	!
;	  0494	!	DBADDR	The address of the Transport data base
;	  0495	!
;	  0496	! IMPLICIT INPUTS
;	  0497	!
;	  0498	!	NONE.
;	  0499	!
;	  0500	! ROUTINE VALUE:
;	  0501	! COMPLETION CODES:
;	  0502	!
;	  0503	!	NONE.
;	  0504	!
;	  0505	! SIDE EFFECTS:
;	  0506	!
;	  0507	!	NONE.
;	  0508	!
;	  0509	!--
;	  0510	
;	  0511	begin
;	  0512	external
;	  0513	    MCB$GAW_PROCESS_DATA_BASE: vector[2];
;	  0514	
;	  0515	MCB$GAW_PROCESS_DATA_BASE[1] = .DBADDR;	! Save the data base address
;	  0516	end;				!End of TLIDB


						.SBTTL	TLIDB
000000	016567  000002  000002G		TLIDB::
					U.4:	MOV	2(R5),.CRDAT+2			; DBADDR(.AP.),*			0515
000006	000207 					RTS	PC				;					0484

; Routine Size:  4 words,	Routine Base:  $CODE$ + 0324
; Maximum stack depth per invocation:  0 words


;	  0517	
;	  0518	end				!End of module TLITIM
;	  0519	eludom
TLITIM								25-Jan-1983 10:02:40	TOPS-20 Bliss-16 2A(530)	    Page  12
X01140								30-Dec-1982 21:16:35	NETPKG:<XPT>TLITIM.BLI.8 (6)

;					OTS external references
						.GLOBL	$SAVE5, $CALL


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




;				LIBRARY STATISTICS
;
;					     -------- Symbols --------    Blocks
;	File				     Total    Loaded   Percent      Read
;
;  NETPKG:<MCB>XPORTX.L16.15		       599         0         0         0
;  NETPKG:<MCB>MCBLIB.L16.15		       372         4         1         0
;  NETPKG:<MCB>NMXLIB.L16.13		       200         8         4         0
;  NETPKG:<XPT>XPTLIB.L16.3		       510       145        28         0





; Size:		110 code + 11 data words
; Run Time:	00:03.7
; Elapsed Time:	00:16.4
; Memory Used:	28 pages
; Compilation Complete
ADDRESS				 149+	 151+	 152+	 154+	 155+	 157+	 158+	 164+	 165+	 168+	 169+	 170+
BPT				 178+#	 190+#
BUFCHK				 182+	 183+#	 192+	 193+#
CALL$L				 389	 475
CALL$				 201	 204	 226#	 484#
CHKBUF				 185+*	 186+
COUNTER_INCREMENT		 385	 471
DBADDR				 484	 515
FULL				 466
GETQ				 149+#
GETW				 128+#	 151+	 152+
HA				 297
I				 173+	 175+
INITIALIZER			 202	 305	 316*
INI_LIN				 389	 475
J				 173+	 175+
LINEBLOCK			 282+	 374+	 449+
LINEB				 280+	 282+	 302	 305	 310	 316	 372+	 374+	 385	 389	 392	 447+
				 449+	 471	 475
LINEFUNCTION			 310
LINESTATE			 297
LINKAGE_DB			 202	 203	 223	 316#	 392#
LINRVR				 223*	 310
LISTENER			 203	 302	 392*
LISTEN_CHECKER			 292
LISTEN_CLOCK			 295	 296#	 301#
LISTEN_TIMER			 301
M				 173+	 174+
MATRIX				 173+#	 175+
MCB$GAW_PROCESS_DATA_BASE	 285+	 286+	 289+	 377+	 378+	 381+	 452+	 453+	 456+	 513	 515#
N				 173+	 174+
NL				 173+	 175+
NMXID				 388	 474
NODEBLOCK			 277+	 369+	 444+
NODEB				 275+	 277+	 367+	 369+	 442+	 444+
NOP				 190+	 191+	 193+
NO_LINEB			 281+	 373+	 448+
NO_NODEB			 276+	 368+	 443+
NTY				 464
PARAMETER_C_1			 387	 473
PTR				 128+	 131+	 132+	 135+	 138+	 139+	 145+	 146+	 149+	 151+	 152+	 154+
				 157+	 158+	 159+	 160+	 164+	 165+
PUTQ				 154+#
PUTW				 135+#	 164+	 165+
RU				 297	 299
SMALL				 466
TC				 304
TI				 304
TLIDB				 204	 484*
TLITIM				   1#	 201	 226*
TV				 304
UNIT				 173+#	 174+	 175+
VALUE				 135+	 136+	 138+	 139+	 144+
X				 130+	 131+#	 132+#	 133+	 143+	 144+#	 145+	 146+
XPTDBBLOCK			 291+	 383+	 458+
XPTDB				 288+	 289+#	 290+	 380+	 381+#	 382+	 455+	 456+#	 457+
XPTINI_FAIL			 385
XPTLINEDN			 471
ZEROQ				 168+#
$NM_LOG_BEGIN			 386	 472
$NM_LOG_END			 388	 474
$XPT$E_ILF			 388
$XPT$E_LLF			 474
$XPT_FOR_EACH_LINEB_DO_BEGIN	 294
$XPT_NEXT_LINEB_END		 312
%CTCE				 136+	 155+
%REMAINING			 180+