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