Google
 

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

;	  0001	module XPTRCV	(
;	  0002			IDENT = 'X01220'
;	  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	!	This module processes all messages received from the DLL.  Based on the
;	  0033	!	first (control) character of the message, the message is passed to one
;	  0034	!	of the following routines:
;	  0035	!
;	  0036	!	MESSAGE TYPE		ACTION		ROUTINE		MODULE
;	  0037	!
;	  0038	!	Alarm			Throw away	TERMINATE	Forwarding
;	  0039	!
;	  0040	!	Phase III Data 		Route it	RCVDAT		Select
;	  0041	!
;	  0042	!	Phase II Data		Route it	RCVPH2		Select
;	  0043	!
;	  0044	!	Routing			Process it	RCVROU		Decision
;	  0045	!
;	  0046	!	Invalid or other	Throw away	TERMINATE	Forwarding
;	  0047	!	control message
;	  0048	!
;	  0049	! ENVIRONMENT:	MCB
;	  0050	!
;	  0051	! AUTHOR: L. Webber , CREATION DATE: 30-Jul-79
;	  0052	!
XPTRCV								25-Jan-1983 09:50:30	TOPS-20 Bliss-16 2A(530)	    Page   2
X01220								30-Dec-1982 21:38:05	NETPKG:<XPT>XPTRCV.BLI.8 (1)

;	  0053	! MODIFIED BY:
;	  0054	!
;	  0055	!	L. Webber, 30-Jul-79 : VERSION 01
;	  0056	!
;	  0057	! 1.01	L. Webber, 24-Oct-79
;	  0058	!	Bring the module into conformance with the design specification
;	  0059	!
;	  0060	! 1.02	L. Webber, 20-Dec-79
;	  0061	!	Modifications associated with breaking Transport Line Interface out
;	  0062	!
;	  0063	! 1.03	L. Webber, 4-Apr-80
;	  0064	!	Change call to RCVROU to an extension process call
;	  0065	!
;	  0066	! 1.04	L. Webber, 11-Dec-80
;	  0067	!	Modify to support MCB 3.1
;	  0068	!
;	  0069	! 1.05	L. Webber, 26-Jan-80
;	  0070	!	Add counter updating on bad message
;	  0071	!
;	  0072	! 1.06	L. Webber, 9-Feb-81
;	  0073	!	Change references to TERMINATE to CALL$E
;	  0074	!
;	  0075	! 1.07	L. Webber, 9-Feb-81
;	  0076	!	Change back to direct call; an interface routine has been added.
;	  0077	!
;	  0078	! 1.08	L. Webber, 18-Feb-81
;	  0079	!	Add debugging code to maintain a count of receive buffers outstanding
;	  0080	!	to Transport from the DLL.
;	  0081	!
;	  0082	! 1.09	L. Webber, 24-Feb-81
;	  0083	!	Add validity checking of Hello message (call to RCVHEL)
;	  0084	!
;	  0085	! 1.10	L. Webber, 17-Mar-81
;	  0086	!	Change call to INI_LIN from CALL$E to CALL$P so that a CCB queued
;	  0087	!	by INI_LIN will have come from TLI.
;	  0088	!
;	  0089	! 1.11	L. Webber, 23-Feb-82
;	  0090	!	Add maintenance of DLLquota to RCVBUF.
;	  0091	!
;	  0092	! 1.12	L. Webber,26-Feb-82
;	  0093	!	Enhance 1.11 to keep counters (data packets are assumed to
;	  0094	!	be transit.)
;	  0095	!
;	  0096	! 1.22	A. Peckham,19-Apr-82
;	  0097	!	Eliminate references to GETLINE.
;	  0098	!
;	  0099	!--
XPTRCV								25-Jan-1983 09:50:30	TOPS-20 Bliss-16 2A(530)	    Page   3
X01220								30-Dec-1982 21:38:05	NETPKG:<XPT>XPTRCV.BLI.8 (2)

;	  0100	
;	  0101	!
;	  0102	! TABLE OF CONTENTS
;	  0103	!
;	  0104	
;	  0105	forward routine
;	  0106		RCVBUF: novalue;
;	  0107	
;	  0108	!
;	  0109	! INCLUDE FILES:
;	  0110	!
;	  0111	
;	  0112	!
;	  0113	! MACROS:
;	  0114	!
;	  0115	
;	  0116	require 'XPTMAC';
;	  0214	
;	  0215	!
;	  0216	! EQUATED SYMBOLS:
;	  0217	!
;	  0218	
;	  0219	!
;	  0220	! OWN STORAGE:
;	  0221	!
;	  0222	
;	  0223	!
;	  0224	! EXTERNAL REFERENCES:
;	  0225	!
;	  0226	
;	  0227	external routine
;	  0228	    TERMINATE: novalue,
;	  0229	    RCVDAT: novalue,    
;	  0230	    RCVPH2: novalue,
;	  0231	    RCVROU: novalue;
XPTRCV								25-Jan-1983 09:50:30	TOPS-20 Bliss-16 2A(530)	    Page   4
X01220								30-Dec-1982 21:38:05	NETPKG:<XPT>XPTRCV.BLI.8 (3)

;	  0232	
;	  0233	global
;	  0234	routine RCVBUF (CCB): novalue =
;	  0235	
;	  0236	!++
;	  0237	! FUNCTIONAL DESCRIPTION:
;	  0238	!
;	  0239	!  Processes a message received from the Data Link Layer.
;	  0240	!
;	  0241	! FORMAL PARAMETERS
;	  0242	!
;	  0243	!	CCB - Address of the RDB containing the message
;	  0244	!
;	  0245	! IMPLICIT INPUTS
;	  0246	!
;	  0247	!	NONE.
;	  0248	!
;	  0249	! ROUTINE VALUE:
;	  0250	! COMPLETION CODES:
;	  0251	!
;	  0252	!	NONE.
;	  0253	!
;	  0254	! SIDE EFFECTS:
;	  0255	!
;	  0256	!	NONE.
;	  0257	!
;	  0258	!--
;	  0259	
;	  0260	begin
;	  0261	local LINEb;
;	  0262	require 'XPTSYM';
;	  0299	require 'MCBCOM';
;	  0333	local BUFPTR,CTL;
;	  0334	
;	  0335	LINEb = $XPT_GET_LINE_DB(.CCB[C_LIX]);
;	  0336	
;	  0337	!
;	  0338	!  Map the buffer into our address space and pick up flags byte
;	  0339	!
;	  0340	
;	  0341	MAPBUF(.CCB,BUFPTR);
;	  0342	CTL = getb(BUFPTR);			!Pick up the flags byte
;	  0343	
;	  0344	!
;	  0345	!  Increment the count of receive buffers Transport is responsible for.
;	  0346	!  If we already have enough buffers from the DLL, reject this one.
;	  0347	!
;	  0348	
;	  0349	INPUTcount = .INPUTcount + 1;
;	  0350	DLLquota = .DLLquota - 1;
;	  0351	if .DLLquota lss 0 then
;	  0352	    if .Nty neq PhTwo then begin			
XPTRCV								25-Jan-1983 09:50:30	TOPS-20 Bliss-16 2A(530)	    Page   5
X01220								30-Dec-1982 21:38:05	NETPKG:<XPT>XPTRCV.BLI.8 (3)

;	  0353		TERMINATE(.CCB,CE_RTE);			! If we have all the
;	  0354		if .CTL<0,2> eql 2 then begin		!   packets we can handle,
;	  0355		    COUNTER_INCREMENT(LINEb,XPTxit_cng);!   throw this one away
;	  0356		    COUNTER_INCREMENT(LINEb,XPTxit_rcv);!   and increment the
;	  0357		    end;				!   counters now
;	  0358		return;
;	  0359	        end;
;	  0360	
;	  0361	!
;	  0362	! Dispatch based on protocol type
;	  0363	!
;	  0364	
;	  0365	if not .Ph2circuit
;	  0366	then begin
;	  0367	     !
;	  0368	     ! Phase III protocol
;	  0369	     !
;	  0370	     if .CTL<0,1> eql 0
;	  0371	     then begin
;	  0372	          if .CTL<6,1> eql 0
;	  0373	          then begin
;	  0374	               if (.CTL and %b'10100101') eql 0
;	  0375	               then RCVDAT(.CCB)        ! Route phase III data message
;	  0376	               else begin
;	  0377	                    COUNTER_INCREMENT(XPTDB,XPTfmt_loss);
;	  0378	                    TERMINATE(.CCB,CS_SUC);     !    throw it away
;	  0379	                    end;
;	  0380	               end
;	  0381	          else RCVPH2(.CCB);            ! Route phase II message
;	  0382	          end
;	  0383	     else begin
;	  0384	          if (.CTL and %b'11110000') eql 0
;	  0385	          then begin
;	  0386	               case .CTL<1,3> from 0 to 7 of
;	  0387	                   set
;	  0388	                   [0,1,2]:
;	  0389	                       TERMINATE(.CCB,CS_SUC);  !    throw it away
;	  0390	                   [3]:
;	  0391	                       CALL$E(RCVROU,PD_XPE,.CCB);
;	  0392	                   [inrange]:
;	  0393	                       begin
;	  0394	                       COUNTER_INCREMENT(XPTDB,XPTfmt_loss);
;	  0395	                       TERMINATE(.CCB,CS_SUC);  !    throw it away
;	  0396	                       end;
;	  0397	                   tes;
;	  0398	               end
;	  0399	          else begin
;	  0400	               COUNTER_INCREMENT(XPTDB,XPTfmt_loss);
;	  0401	               TERMINATE(.CCB,CS_SUC);  !    throw it away
;	  0402	               end;
;	  0403	          end;
;	  0404	     end
XPTRCV								25-Jan-1983 09:50:30	TOPS-20 Bliss-16 2A(530)	    Page   6
X01220								30-Dec-1982 21:38:05	NETPKG:<XPT>XPTRCV.BLI.8 (3)

;	  0405	else begin
;	  0406	     !
;	  0407	     ! Phase II protocol
;	  0408	     !
;	  0409	     if .CTL<1,1> eql 1
;	  0410	     then RCVPH2(.CCB)                  ! Route phase II message
;	  0411	     else if .CTL<0,7> neq (2^2 + 5^4)
;	  0412	          then RCVPH2(.CCB)             ! Route phase II message
;	  0413	          else TERMINATE(.CCB,CS_SUC);  !    throw it away
;	  0414	     end;
;	  0415	
;	  0416	end;				!End of RCVBUF


						.TITLE	XPTRCV
						.IDENT	/X01220/

						.GLOBL	TERMINATE, RCVDAT, RCVPH2, RCVROU
						.GLOBL	.CRDAT, GTLINE, KISAR6, $IC32
						.GLOBL	$IC8, $CALLE


						.SBTTL	RCVBUF
000000						.PSECT	$CODE$,  RO 

000000	004167  000000G			RCVBUF::
					U.1:	JSR	R1,$SAVE3			;					0234
000004	016602  000012 				MOV	12(SP),R2			; CCB,*					0335
000010	005000 					CLR	R0
000012	156200  000010 				BISB	10(R2),R0
000016	004767  000000G				JSR	PC,GTLINE
000022	010003 					MOV	R0,R3				; *,LINEB
000024	016267  000016  000000G			MOV	16(R2),KISAR6			;					0341
000032	016200  000020 				MOV	20(R2),R0			; *,BUFPTR
000036	005001 					CLR	R1				; CTL					0342
000040	152001 					BISB	(R0)+,R1			; BUFPTR,CTL
000042	105263  000043 				INCB	43(R3)				; *(LINEB)				0349
000046	016700  000002G				MOV	.CRDAT+2,R0
000052	105360  000035 				DECB	35(R0)				;					0350
000056	100034 					BPL	3$				;					0351
000060	126327  000002  000004 			CMPB	2(R3),#4			; *(LINEB),*				0352
000066	001430 					BEQ	3$
000070	010246 					MOV	R2,-(SP)			;					0353
000072	012746  177730 				MOV	#-50,-(SP)
000076	004767  000000G				JSR	PC,TERMINATE
000102	010100 					MOV	R1,R0				; CTL,*					0354
000104	042700  177774 				BIC	#177774,R0
000110	020027  000002 				CMP	R0,#2
000114	001013 					BNE	2$
000116	012700  000100 				MOV	#100,R0				;					0355
000122	060300 					ADD	R3,R0				; LINEB,*
000124	005210 					INC	(R0)
XPTRCV								25-Jan-1983 09:50:30	TOPS-20 Bliss-16 2A(530)	    Page   7
X01220								30-Dec-1982 21:38:05	NETPKG:<XPT>XPTRCV.BLI.8 (3)

000126	001001 					BNE	1$
000130	005310 					DEC	(R0)
000132	010300 				1$:	MOV	R3,R0				; LINEB,*				0356
000134	062700  000070 				ADD	#70,R0
000140	004767  000000G				JSR	PC,$IC32
000144	022626 				2$:	CMP	(SP)+,(SP)+			;					0352
000146	000207 					RTS	PC
000150	032763  001000  000002 		3$:	BIT	#1000,2(R3)			; *,*(LINEB)				0365
000156	001053 					BNE	8$
000160	032701  000001 				BIT	#1,R1				; *,CTL					0370
000164	001021 					BNE	5$
000166	032701  000100 				BIT	#100,R1				; *,CTL					0372
000172	001055 					BNE	9$
000174	032701  000245 				BIT	#245,R1				; *,CTL					0374
000200	001004 					BNE	4$
000202	010246 					MOV	R2,-(SP)			;					0375
000204	004767  000000G				JSR	PC,RCVDAT
000210	000460 					BR	12$				;					0374
000212	016700  000002G			4$:	MOV	.CRDAT+2,R0			;					0377
000216	062700  000133 				ADD	#133,R0
000222	004767  000000G				JSR	PC,$IC8
000226	000443 					BR	10$				;					0378
000230	032701  000360 			5$:	BIT	#360,R1				; *,CTL					0384
000234	001366 					BNE	4$
000236	010100 					MOV	R1,R0				; CTL,*					0386
000240	042700  177761 				BIC	#177761,R0
000244	066007  000000'				ADD	P.AAA(R0),PC			; Case dispatch
000250	000432 				6$:	BR	10$				;					0389
000252	010246 				7$:	MOV	R2,-(SP)			;					0391
000254	012746  000001 				MOV	#1,-(SP)
000260	012746  000000G				MOV	#RCVROU,-(SP)
000264	016700  000002G				MOV	.CRDAT+2,R0
000270	005046 					CLR	-(SP)
000272	116016  000002 				MOVB	2(R0),(SP)
000276	004767  000000G				JSR	PC,$CALLE
000302	022626 					CMP	(SP)+,(SP)+
000304	000421 					BR	11$				;					0386
000306	032701  000002 			8$:	BIT	#2,R1				; *,CTL					0409
000312	001005 					BNE	9$				;					0410
000314	042701  177600 				BIC	#177600,R1			;					0411
000320	020127  000130 				CMP	R1,#130
000324	001404 					BEQ	10$
000326	010246 				9$:	MOV	R2,-(SP)			;					0412
000330	004767  000000G				JSR	PC,RCVPH2
000334	000406 					BR	12$				;					0411
000336	010246 				10$:	MOV	R2,-(SP)			;					0413
000340	012746  000001 				MOV	#1,-(SP)
000344	004767  000000G				JSR	PC,TERMINATE
000350	005726 				11$:	TST	(SP)+
000352	005726 				12$:	TST	(SP)+				;					0260
000354	000207 					RTS	PC				;					0234
XPTRCV								25-Jan-1983 09:50:30	TOPS-20 Bliss-16 2A(530)	    Page   8
X01220								30-Dec-1982 21:38:05	NETPKG:<XPT>XPTRCV.BLI.8 (3)

; Routine Size:  119 words,	Routine Base:  $CODE$ + 0000
; Maximum stack depth per invocation:  9 words


000000						.PSECT	$PLIT$,  RO ,  D  

					P.AAA:						; CASE Table for RCVBUF+0244		0386
000000	000066 					.WORD	66				; [10$]
000002	000066 					.WORD	66				; [10$]
000004	000066 					.WORD	66				; [10$]
000006	000002 					.WORD	2				; [7$]
000010	177742 					.WORD	36				; [4$]
000012	177742 					.WORD	36				; [4$]
000014	177742 					.WORD	36				; [4$]
000016	177742 					.WORD	36				; [4$]
XPTRCV								25-Jan-1983 09:50:30	TOPS-20 Bliss-16 2A(530)	    Page   9
X01220								30-Dec-1982 21:38:05	NETPKG:<XPT>XPTRCV.BLI.8 (4)

;	  0417	
;	  0418	end				!End of Module XPTRCV
;	  0419	eludom



;					OTS external references
						.GLOBL	$SAVE3


;					PSECT SUMMARY
;
;	Psect Name			Words	  Attributes
;	 $PLIT$				    8	    RO ,  D  ,  LCL,  REL,  CON
;	 $CODE$				  119	    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        27         7         0
;  NETPKG:<MCB>NMXLIB.L16.13		       200         2         1         0
;  NETPKG:<XPT>XPTLIB.L16.3		       510       137        26         0





; Size:		119 code + 8 data words
; Run Time:	00:04.0
; Elapsed Time:	00:15.9
; Memory Used:	45 pages
; Compilation Complete
ADDRESS				 168+	 170+	 171+	 173+	 174+	 176+	 177+	 183+	 184+	 187+	 188+	 189+
BPT				 197+#	 209+#
BUFCHK				 201+	 202+#	 211+	 212+#
BUFPTR				 333	 341	 342
CALL$E				 391
CCB				 234	 330+	 335	 341	 353	 375	 378	 381	 389	 391	 395	 401
				 410	 412	 413
CCBFIELDS			 325+	 327+#
CE_RTE				 353
CHKBUF				 204+*	 205+
COUNTER_INCREMENT		 355	 356	 377	 394	 400
CS_SUC				 378	 389	 395	 401	 413
CTL				 333	 342#	 354	 370	 372	 374	 384	 386	 409	 411
C_FIELDS			 327+	 330+
C_LIX				 335
DLLQUOTA			 350#	 351
GETB				 342
GETQ				 168+#
GETW				 147+#	 170+	 171+
I				 192+	 194+
INPUTCOUNT			 349#
J				 192+	 194+
LINEBLOCK			 289+
LINEB				 261	 287+	 289+	 335#	 355	 356
M				 192+	 193+
MAPBUF				 341
MATRIX				 192+#	 194+
MCB$GAW_PROCESS_DATA_BASE	 292+	 293+	 296+
N				 192+	 193+
NL				 192+	 194+
NODEBLOCK			 284+
NODEB				 282+	 284+
NOP				 209+	 210+	 212+
NO_LINEB			 288+
NO_NODEB			 283+
NTY				 352
PD_XPE				 391
PH2CIRCUIT			 365
PHTWO				 352
PTR				 147+	 150+	 151+	 154+	 157+	 158+	 164+	 165+	 168+	 170+	 171+	 173+
				 176+	 177+	 178+	 179+	 183+	 184+
PUTQ				 173+#
PUTW				 154+#	 183+	 184+
RCVBUF				 106	 234*
RCVDAT				 229	 375
RCVPH2				 230	 381	 410	 412
RCVROU				 231	 391
TERMINATE			 228*	 353	 378	 389	 395	 401	 413
UNIT				 192+#	 193+	 194+
VALUE				 154+	 155+	 157+	 158+	 163+
X				 149+	 150+#	 151+#	 152+	 162+	 163+#	 164+	 165+
XPTDBBLOCK			 298+
XPTDB				 295+	 296+#	 297+	 377	 394	 400
XPTFMT_LOSS			 377	 394	 400
XPTRCV				   1#
XPTXIT_CNG			 355
XPTXIT_RCV			 356
ZEROQ				 187+#
$XPT_GET_LINE_DB		 335
%CTCE				 155+	 174+
%REMAINING			 199+