Google
 

Trailing-Edge - PDP-10 Archives - SRI_NIC_PERM_SRC_1_19910112 - 7/ft3/monitor/stanford/tcptcp.dif
There are no other files named tcptcp.dif in the archive.

; TCPTCP.MAC.1 & <MONITOR>TCPTCP.MAC.1 24-Feb-89 1914	PAGE 1



LINE 1, PAGE 1
1)	;[MACBETH.STANFORD.EDU]SRC:<7.FT2.MONITOR.STANFORD>TCPTCP.MAC.3, 20-Jun-88 15:39:28, Edit by A.ALDERSON
1)	; V7.0 FT Clock tape
1)	;[MACBETH]SRC:<7.FT2.MONITOR.STANFORD>TCPTCP.MAC.2,  7-Apr-88 14:47:33, Edit by A.APPLEHACKS
1)	; FT7.2 Merge
1)	;[MACBETH]SRC:<7.FT1.MONITOR.STANFORD>TCPTCP.MAC.2,  1-Feb-88 19:08:09, Edit by A.APPLEHACKS
1)	; FT7 Merge
1)	;;SIERRA::SRC:<6.1.MONITOR.STANFORD>TCPTCP.MAC.48,  8-Dec-86 15:56:24, Edit by GROSSMAN
1)	;; Prevent negative window sizes near PKTIZ7.  This prevents buffers from
1)	;; getting smashed and causing subsequent havoc (ILMNRF's, INTFRx's, et. al.).
1)	;;SRC:<6.1.MONITOR.STANFORD>TCPTCP.MAC.47,  5-Nov-86 13:26:51, Edit by BILLW
1)	;; Send a Maximum Segment Length Option in SYN packets...
1)	;; Try to avoid one-way gateway problems by aborting SYN.SYN connections
1)	;;   on first retransmission if they contain a funny host status.
1)	;;PS:<6-1-MONITOR>TCPTCP.MAC.46, 31-Mar-86 15:56:12, Edit by BILLW
1)	;; CLYNN (Via KLH) fix for receiving duplicate data.
1)	;;PS:<6-1-MONITOR>TCPTCP.MAC.43, 25-Mar-86 00:42:41, Edit by BILLW
1)	;; advertize optimistic windows based on number of interupt level
1)	;; buffer that are available at NUWNDO.
1)	;;PS:<6-1-MONITOR>TCPTCP.MAC.42, 11-Mar-86 17:34:56, Edit by BILLW
1)	;;in PKTIZE, recognize TSTVO as meaning a data packet should be sent
1)	;;PS:<6-1-MONITOR>TCPTCP.MAC.41, 10-Mar-86 00:46:02, Edit by BILLW
1)	;;rewrite CHKADD.  now TCBs are hashed on LP/FH/FP, if possible.
1)	;;PS:<6-1-MONITOR>TCPTCP.MAC.32, 19-Feb-86 01:12:57, Edit by BILLW
1)	;;undo FP hashing.  Never call TRMPKT - it fragments Free space horribly
1)	;;PS:<6-1-MONITOR>TCPTCP.MAC.28, 13-Feb-86 17:17:59, Edit by BILLW
1)	;; include Foriegn port in TCB hash table key.
1)	;; at PRCAC4-1, change PZ signaling (Hedrick's hung connection fix).
1)	;;PS:<6-1-MONITOR>TCPTCP.MAC.27, 13-Feb-86 01:19:28, Edit by BILLW
1)	;; redo time-out avoidance on closed window by updating PDCT
1)	;;PS:<6-1-MONITOR>TCPTCP.MAC.25, 11-Feb-86 16:23:38, Edit by BILLW
1)	;; Create RSIGNAL, and use it at REMSEx for requeing Rxmiter
1)	;;PS:<6-1-MONITOR>TCPTCP.MAC.24,  4-Feb-86 23:30:59, Edit by BILLW
1)	;; make a stab at correcting fencepst error at PRCAC4+n
1)	;;PS:<6-1-MONITOR>TCPTCP.MAC.23,  4-Feb-86 18:27:58, Edit by BILLW
1)	;; add other stuff from <6-1-exp-mon>:  interval rounding at SIGNAL,
1)	;; TIMCALs for TCP processes, TSKAGN counter.
1)	;;PS:<6-1-MONITOR>TCPTCP.MAC.22,  4-Feb-86 02:25:31, Edit by BILLW
1)	;; A lot of things cause RX to be run, besides RX and PZ.  Have these
1)	;; NOT signal RX if the send window is 0.  Some of them probably need
1)	;; to not signal RX under other circumstances too. (REMSE7, PRCAC4)
1)	;;PS:<6-1-MONITOR>TCPTCP.MAC.21,  3-Feb-86 17:56:03, Edit by BILLW
1)	;; Modify XFRDAT, PRCDAT, SNDDA1, USRBFF, USRBFE so that they understand
1)	;;  TCPJFN buffers are in monitor space, and dont thrash the pager.
1)	;;PS:<6-1-MONITOR>TCPTCP.MAC.20, 30-Jan-86 02:22:17, Edit by BILLW
1)	;; When calling TVTCSO from BG, set T2 to -1 (means scan ALL TVTs)
1)	;;PS:<6-1-MONITOR>TCPTCP.MAC.19, 18-Dec-85 15:14:59, Edit by BILLW
1)	;; Dont timeout connections waiting for a 0 window to open. (REXM11)
1)	;; respond to ACKs beyond the window with an ACK of out own. (PRCAX1)

; TCPTCP.MAC.1 & <MONITOR>TCPTCP.MAC.1 24-Feb-89 1914	PAGE 2


1)	;;PS:<6-1-MONITOR>TCPTCP.MAC.18,  5-Dec-85 19:35:07, Edit by BILLW
1)	;; change ack strategy in NUWNDO.   FRCPKT if both window (after
1)	;;  SWS avoidance) AND the ACK point change (as per RFC813)
1)	;;PS:<6-1-MONITOR>TCPTCP.MAC.17, 29-Nov-85 18:57:38, Edit by BILLW
1)	;; Scan TVTs BEFORE running Packetizer (at TCPPRC)
1)	;;PS:<6-1-MONITOR>TCPTCP.MAC.16,  7-Nov-85 04:54:15, Edit by BILLW
1)	;; Count rxmitted packets per TCB.  See also ANAUNV
1)	;;PS:<6-1-MONITOR>TCPTCP.MAC.15,  7-Nov-85 00:04:37, Edit by BILLW
1)	;; remove the UNRINT bugchk, but leave the test/replacement.
1)	;;PS:<6-1-MONITOR>TCPTCP.MAC.14, 25-Oct-85 02:39:40, Edit by BILLW
1)	;; expand TSOPS idea into "interactiveness" concept.  A connection
1)	;; is maximally intervactive if a packet is sent every time a packet
1)	;; is received, and minimally interactive if it never sends any packets.
1)	;; In the first case, you want to wait a bit to try to piggyback acks
1)	;; on the outgoing data, but in the second case this introduces delays,
1)	;; and you want to send acks immediately.  Inverse "interactiveness"
1)	;; can be approximated by counting the number of packets received
1)	;; between each one sent.  If greater than N, send ACKs immediately.
1)	;;PS:<6-1-MONITOR>TCPTCP.MAC.13, 24-Oct-85 02:23:49, Edit by BILLW
1)	;; If we haven't sent any data packets on connection, dont delay acks
1)	;; Update Max and Min RTT (TMXRT, TMNRT)) regardless of interval algorithm
1)	;;  being used. (requires ANAUNV change to make TMNRT and TSMRT seperate!)
1)	;; make bugchk use a number (80 ms) rather than TCPRXN.
1)	;; undo Alan's patch to set SMRT to minimum RTT
1)	;;PS:<6-1-MONITOR>TCPTCP.MAC.12, 22-Oct-85 16:42:04, Edit by BILLW
1)	;; add BUGCHK if retransmitter is run more often than TCPRXN
1)	;; update TRXI (in TCB) with new-style calculated retransmit interval
1)	;;<6-1-MONITOR.FT6>TCPTCP.MAC.5, 27-Aug-85 10:44:36, Edit by WHP4
1)	;;Stanford changes
1)	;; BUFHNT - make BFR an extended address
1)	;; Alan Larson's TCP retransmission performance fix at REMSE5+1
1)	;; Fix TOWNR to use global job numbers
1)	;; Fix lockup of large data transfers due to silly window silliness
1)	;; Fix lossage in BUFHNT
1)	;
1)	; UPD ID= 8633, RIP:<7.MONITOR>TCPTCP.MAC.4,  11-Feb-88 18:55:11 by GSCOTT
1)	;TCO 7.1218 - Update copyright date.
1)	; UPD ID= 57, RIP:<7.MONITOR>TCPTCP.MAC.3,  28-Jul-87 14:31:13 by RASPUZZI
1)	;TCO 7.1027 - Prevent ILMNRFs or possible ILPSECs out of TRMPKT.
1)	; *** Edit 7187 to TCPTCP.MAC by MELOHN on 8-Nov-85 (TCO 6-1-1552)
1)	; Fix BUFHNT to not call USRBFF with a zero pointer, zeroing TCPBDQ and looping
1)	; 
LINE 1, PAGE 1
2)	;[SRI-NIC]SRC:<6-1-MONITOR>TCPTCP.MAC.6, 19-Nov-87 04:28:28, Edit by MKL
2)	; in TCPXXO, make sure option length isn't too bogus
2)	;[SRI-NIC]SRC:<6-1-MONITOR>TCPTCP.MAC.4, 19-Nov-87 03:41:24, Edit by MKL
2)	; at INPRO2, flush packets if headers don't fit
2)	;[SRI-NIC]SRC:<6-1-MONITOR>TCPTCP.MAC.3, 22-Feb-87 22:18:34, Edit by MKL
2)	; fix a bug in SNDMSL
2)	;[SRI-NIC]XS:<NEWMON>TCPTCP.MAC.2,  8-Dec-86 13:16:19, Edit by MKL
2)	; add fix at PKTIZ7 from Sweer@Sumex.

; TCPTCP.MAC.1 & <MONITOR>TCPTCP.MAC.1 24-Feb-89 1914	PAGE 3


2)	;SRC:<6.1.MONITOR.STANFORD>TCPTCP.MAC.47,  5-Nov-86 13:26:51, Edit by BILLW
2)	; Send a Maximum Segment Length Option in SYN packets...
2)	; Try to avoid one-way gateway problems by aborting SYN.SYN connections
2)	;   on first retransmission if they contain a funny host status.
2)	;PS:<6-1-MONITOR>TCPTCP.MAC.46, 31-Mar-86 15:56:12, Edit by BILLW
2)	; CLYNN (Via KLH) fix for receiving duplicate data.
2)	;PS:<6-1-MONITOR>TCPTCP.MAC.43, 25-Mar-86 00:42:41, Edit by BILLW
2)	; advertize optimistic windows based on number of interupt level
2)	; buffer that are available at NUWNDO.
2)	;PS:<6-1-MONITOR>TCPTCP.MAC.42, 11-Mar-86 17:34:56, Edit by BILLW
2)	;in PKTIZE, recognize TSTVO as meaning a data packet should be sent
2)	;PS:<6-1-MONITOR>TCPTCP.MAC.41, 10-Mar-86 00:46:02, Edit by BILLW
2)	;rewrite CHKADD.  now TCBs are hashed on LP/FH/FP, if possible.
2)	;PS:<6-1-MONITOR>TCPTCP.MAC.32, 19-Feb-86 01:12:57, Edit by BILLW
2)	;undo FP hashing.  Never call TRMPKT - it fragments Free space horribly
2)	;PS:<6-1-MONITOR>TCPTCP.MAC.28, 13-Feb-86 17:17:59, Edit by BILLW
2)	; include Foriegn port in TCB hash table key.
2)	; at PRCAC4-1, change PZ signaling (Hedrick's hung connection fix).
2)	;PS:<6-1-MONITOR>TCPTCP.MAC.27, 13-Feb-86 01:19:28, Edit by BILLW
2)	; redo time-out avoidance on closed window by updating PDCT
2)	;PS:<6-1-MONITOR>TCPTCP.MAC.25, 11-Feb-86 16:23:38, Edit by BILLW
2)	; Create RSIGNAL, and use it at REMSEx for requeing Rxmiter
2)	;PS:<6-1-MONITOR>TCPTCP.MAC.24,  4-Feb-86 23:30:59, Edit by BILLW
2)	; make a stab at correcting fencepst error at PRCAC4+n
2)	;PS:<6-1-MONITOR>TCPTCP.MAC.23,  4-Feb-86 18:27:58, Edit by BILLW
2)	; add other stuff from <6-1-exp-mon>:  interval rounding at SIGNAL,
2)	; TIMCALs for TCP processes, TSKAGN counter.
2)	;PS:<6-1-MONITOR>TCPTCP.MAC.22,  4-Feb-86 02:25:31, Edit by BILLW
2)	; A lot of things cause RX to be run, besides RX and PZ.  Have these
2)	; NOT signal RX if the send window is 0.  Some of them probably need
2)	; to not signal RX under other circumstances too. (REMSE7, PRCAC4)
2)	;PS:<6-1-MONITOR>TCPTCP.MAC.21,  3-Feb-86 17:56:03, Edit by BILLW
2)	; Modify XFRDAT, PRCDAT, SNDDA1, USRBFF, USRBFE so that they understand
2)	;  TCPJFN buffers are in monitor space, and dont thrash the pager.
2)	;PS:<6-1-MONITOR>TCPTCP.MAC.20, 30-Jan-86 02:22:17, Edit by BILLW
2)	; When calling TVTCSO from BG, set T2 to -1 (means scan ALL TVTs)
2)	;PS:<6-1-MONITOR>TCPTCP.MAC.19, 18-Dec-85 15:14:59, Edit by BILLW
2)	; Dont timeout connections waiting for a 0 window to open. (REXM11)
2)	; respond to ACKs beyond the window with an ACK of out own. (PRCAX1)
2)	;PS:<6-1-MONITOR>TCPTCP.MAC.18,  5-Dec-85 19:35:07, Edit by BILLW
2)	; change ack strategy in NUWNDO.   FRCPKT if both window (after
2)	;  SWS avoidance) AND the ACK point change (as per RFC813)
2)	;PS:<6-1-MONITOR>TCPTCP.MAC.17, 29-Nov-85 18:57:38, Edit by BILLW
2)	; Scan TVTs BEFORE running Packetizer (at TCPPRC)
2)	;PS:<6-1-MONITOR>TCPTCP.MAC.16,  7-Nov-85 04:54:15, Edit by BILLW
2)	; Count rxmitted packets per TCB.  See also ANAUNV
2)	;PS:<6-1-MONITOR>TCPTCP.MAC.15,  7-Nov-85 00:04:37, Edit by BILLW
2)	; remove the UNRINT bugchk, but leave the test/replacement.
2)	;PS:<6-1-MONITOR>TCPTCP.MAC.14, 25-Oct-85 02:39:40, Edit by BILLW
2)	; expand TSOPS idea into "interactiveness" concept.  A connection
2)	; is maximally intervactive if a packet is sent every time a packet

; TCPTCP.MAC.1 & <MONITOR>TCPTCP.MAC.1 24-Feb-89 1914	PAGE 4


2)	; is received, and minimally interactive if it never sends any packets.
2)	; In the first case, you want to wait a bit to try to piggyback acks
2)	; on the outgoing data, but in the second case this introduces delays,
2)	; and you want to send acks immediately.  Inverse "interactiveness"
2)	; can be approximated by counting the number of packets received
2)	; between each one sent.  If greater than N, send ACKs immediately.
2)	;PS:<6-1-MONITOR>TCPTCP.MAC.13, 24-Oct-85 02:23:49, Edit by BILLW
2)	; If we haven't sent any data packets on connection, dont delay acks
2)	; Update Max and Min RTT (TMXRT, TMNRT)) regardless of interval algorithm
2)	;  being used. (requires ANAUNV change to make TMNRT and TSMRT seperate!)
2)	; make bugchk use a number (80 ms) rather than TCPRXN.
2)	; undo Alan's patch to set SMRT to minimum RTT
2)	;PS:<6-1-MONITOR>TCPTCP.MAC.12, 22-Oct-85 16:42:04, Edit by BILLW
2)	; add BUGCHK if retransmitter is run more often than TCPRXN
2)	; update TRXI (in TCB) with new-style calculated retransmit interval
2)	;<6-1-MONITOR.FT6>TCPTCP.MAC.5, 27-Aug-85 10:44:36, Edit by WHP4
2)	;Stanford changes
2)	; BUFHNT - make BFR an extended address
2)	; Alan Larson's TCP retransmission performance fix at REMSE5+1
2)	; Fix TOWNR to use global job numbers
2)	; Fix lockup of large data transfers due to silly window silliness
2)	; Fix lossage in BUFHNT
2)	;


LINE 133, PAGE 1
1)	;	COPYRIGHT (c) DIGITAL EQUIPMENT CORPORATION 1984, 1988.
1)	;	ALL RIGHTS RESERVED.
1)	;
1)	;	THIS SOFTWARE IS FURNISHED UNDER A  LICENSE AND MAY BE USED AND  COPIED
1)	;	ONLY IN  ACCORDANCE  WITH  THE  TERMS OF  SUCH  LICENSE  AND  WITH  THE
1)	;	INCLUSION OF THE ABOVE  COPYRIGHT NOTICE.  THIS  SOFTWARE OR ANY  OTHER
1)	;	COPIES THEREOF MAY NOT BE PROVIDED  OR OTHERWISE MADE AVAILABLE TO  ANY
1)	;	OTHER PERSON.  NO  TITLE TO  AND OWNERSHIP  OF THE  SOFTWARE IS  HEREBY
1)	;	TRANSFERRED.
1)	;
1)	;	THE INFORMATION IN THIS  SOFTWARE IS SUBJECT  TO CHANGE WITHOUT  NOTICE
1)	;	AND SHOULD  NOT  BE CONSTRUED  AS  A COMMITMENT  BY  DIGITAL  EQUIPMENT
1)	;	CORPORATION.
1)	;
1)	;	DIGITAL ASSUMES NO  RESPONSIBILITY FOR  THE USE OR  RELIABILITY OF  ITS
1)	;	SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY DIGITAL.
   {Skipped 1 page and 1 line}
1)		SEARCH	ANAUNV,PROLOG
1)		TTITLE	(TCPTCP,TCPTCP,< - ARPANET Transmission Control Protocol>)
1)	
1)	Comment \
LINE 1, PAGE 2
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY  BE  USED
2)	;OR COPIED ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE.
2)	;

; TCPTCP.MAC.1 & <MONITOR>TCPTCP.MAC.1 24-Feb-89 1914	PAGE 5


2)	;COPYRIGHT  (C)  DIGITAL  EQUIPMENT  CORPORATION  1976, 1985.
2)	;ALL RIGHTS RESERVED.
2)	
2)	
2)		SEARCH	ANAUNV,PROLOG
2)		TTITLE	(TCPTCP,TCPTCP,< - ARPANET Transmission Control Protocol>)
2)	
2)		IFNDEF REL6,<REL6==1>
2)	
2)	Comment \


LINE 1, PAGE 3
1)	^L	Subttl	Table of Contents
1)	
1)	;		     Table of Contents for TCPTCP
1)	;
1)	;				  Section		      Page
1)	;
1)	;
1)	;    1. TCP Process  . . . . . . . . . . . . . . . . . . . . .   4
1)	;    2. TCP Input Processor  . . . . . . . . . . . . . . . . .  14
1)	;    3. TCP Reasembler . . . . . . . . . . . . . . . . . . . .  48
1)	;    4. TCP Packetizer . . . . . . . . . . . . . . . . . . . .  63
1)	;    5. TCP Retransmitter  . . . . . . . . . . . . . . . . . .  87
1)	;    6. TCP Background Routines  . . . . . . . . . . . . . . .  95
1)	;    7. TCP Delayed Actions  . . . . . . . . . . . . . . . . . 104
1)	;    8. TCP Miscellaneous Routines . . . . . . . . . . . . . . 107
1)	;    9. TCP Option Routines  . . . . . . . . . . . . . . . . . 125
1)	;   10. Packet Printer . . . . . . . . . . . . . . . . . . . . 146
1)	;   11. TCP Statistics Routines  . . . . . . . . . . . . . . . 156
1)	;   12. TCP Buffer handling routines . . . . . . . . . . . . . 160
1)	;   13. TCP User Responses from TCP  . . . . . . . . . . . . . 168
1)	;   14. End of TCPTCP  . . . . . . . . . . . . . . . . . . . . 179
1)	^L	SUBTTL	TCP Process
LINE 1, PAGE 3
2)	^L	SUBTTL	TCP Process


LINE 29, PAGE 8
1)		CALLX (MSEC1,TVTOPR)	; Operate TCP Virtual Terminals
1)		SKIPE TCPFLG		; Further work to do?
LINE 29, PAGE 7
2)		IFE REL6,<CALL TVTOPR>	; Operate TCP Virtual Terminals
2)		IFN REL6,<CALLX (MSEC1,TVTOPR)> ; Operate TCP Virtual Terminals
2)		SKIPE TCPFLG		; Further work to do?

; TCPTCP.MAC.1 & <MONITOR>TCPTCP.MAC.1 24-Feb-89 1914	PAGE 6



LINE 3, PAGE 15
1)		XSWAPCD
1)	
1)	COMMENT	!
LINE 3, PAGE 14
2)	IFE REL6,<SWAPCD>
2)	IFN REL6,<XSWAPCD>
2)	
2)	COMMENT	!


LINE 16, PAGE 17
1)		CALL PKTEND		; Get seq. number of End of Pkt plus 1
LINE 16, PAGE 16
2)	IFN NICSW,<	
2)		LOAD T1,PIPL,(PKT)	; Get total IP length in bytes
2)		LOAD T2,PIDO,(PKT)	; Get IP header length in words
2)		LOAD T3,PTDO,(TPKT)	; Get TCP header length in words
2)		ADD T2,T3		; Add header lengths
2)		LSH T2,2		; Convert to bytes
2)		CAML T1,T2		; Is packet big enough for headers?
2)		 JRST INPRO3		; Yes, continue then
2)	;flush bogus packet
2)		AOS BADPCT		; Count bad packets
2)		CALL RETPKT		; Return the packet 
2)		JRST INPRO0		; And do next packet
2)	INPRO3:
2)	>;IFN NICSW
2)		CALL PKTEND		; Get seq. number of End of Pkt plus 1


LINE 26, PAGE 33
1)		CALLX (MSEC1,TVTOSP)	; Find out if anything waiting to go
1)		POP P,T2		; Recover addr of line block
LINE 26, PAGE 32
2)		IFE REL6,<CALL TVTOSP>	; Find out if anything waiting to go
2)		IFN REL6,<CALLX (MSEC1,TVTOSP)> ; Find out if anything waiting to go
2)		POP P,T2		; Recover addr of line block


LINE 34, PAGE 40
1)	IFE STANSW,<
LINE 34, PAGE 39
2)		LOAD T2,TMXRT,(TCB)	; MAX Round Trip time
2)		CAMLE T1,T2		; Is this longer?
2)		  STOR T1,TMXRT,(TCB)	; Save new max
2)	IFE STANSW,<

; TCPTCP.MAC.1 & <MONITOR>TCPTCP.MAC.1 24-Feb-89 1914	PAGE 7



LINE 21, PAGE 50
1)		CALLX (MSEC1,TVTCHK)	; Lock the terminal data base
1)		  JRST [JUMPLE T2,REASMN ;Nothing locked (inactive, becoming active)
LINE 21, PAGE 49
2)		IFE REL6,<CALL TVTCHK>	; Lock the terminal data base
2)		IFN REL6,<CALLX (MSEC1,TVTCHK)> ; Lock the terminal data base
2)		  JRST [JUMPLE T2,REASMN ;Nothing locked (inactive, becoming active)


LINE 8, PAGE 51
1)		CALLX (MSEC1,TVTISP)	; Get space in input buffer
1)		JRST REASM3		; Forge ahead to (say) open conn/closing
LINE 8, PAGE 50
2)		IFE REL6,<CALL TVTISP>	; Get space in input buffer
2)		IFN REL6,<CALLX (MSEC1,TVTISP)> ; Get space in input buffer
2)		JRST REASM3		; Forge ahead to (say) open conn/closing


LINE 32, PAGE 53
1)		CALLX (MSEC1,TVTISP)
1)		JUMPE BFR,REAS14	; Jump if no buffer
LINE 32, PAGE 52
2)		IFE REL6,<CALL TVTISP>	; Get space in input buffer
2)		IFN REL6,<CALLX (MSEC1,TVTISP)>
2)		JUMPE BFR,REAS14	; Jump if no buffer


LINE 51, PAGE 53
1)		CALLX (MSEC1,PRCTVT)	; Process TVT chr on line in T2
1)		JRST REAS15
LINE 52, PAGE 52
2)		IFE REL6,<CALL PRCTVT>	; Process TVT chr on line in T2
2)		IFN REL6,<CALLX (MSEC1,PRCTVT)> ; Process TVT chr on line in T2
2)		JRST REAS15


LINE 22, PAGE 59
1)		CALLX (MSEC1,TVTISP)	; Get space in input buffer
1)	NUWND1:
LINE 22, PAGE 58
2)		IFE REL6,<CALL TVTISP>	; Get space in input buffer
2)		IFN REL6,<CALLX (MSEC1,TVTISP)> ; Get space in input buffer
2)	NUWND1:

; TCPTCP.MAC.1 & <MONITOR>TCPTCP.MAC.1 24-Feb-89 1914	PAGE 8



LINE 3, PAGE 64
1)		XSWAPCD
1)	
1)	COMMENT !
LINE 3, PAGE 63
2)	IFE REL6,<SWAPCD>
2)	IFN REL6,<XSWAPCD>
2)	
2)	COMMENT !


LINE 10, PAGE 67
1)		CALLX (MSEC1,TVTOSP)	; Find out if anything waiting to go
1)		MOVE BUFCNT,T1		; May be zero
LINE 10, PAGE 66
2)		IFE REL6,<CALL TVTOSP>	; Find out if anything waiting to go
2)		IFN REL6,<CALLX (MSEC1,TVTOSP)> ; Find out if anything waiting to go
2)		MOVE BUFCNT,T1		; May be zero


LINE 67, PAGE 68
1)		  SKIPGE WNDSPC		; Did window size go negative?
1)		   SETZ WNDSPC,		;  Yes, then make it zero
1)		ENDIF.			; 
LINE 67, PAGE 67
2)		  CAIGE WNDSPC,0
2)		   MOVEI WNDSPC,0
2)		ENDIF.			; 


LINE 31, PAGE 70
1)		CALLX (MSEC1,SNDTVT)	; Send data from a virtual terminal
1)		SETONE PEOL,(TPKT)	; Hussle up receiver
LINE 31, PAGE 69
2)		IFE REL6,<CALL SNDTVT>	; Send data from a virtual terminal
2)		IFN REL6,<CALLX (MSEC1,SNDTVT)> ; Send data from a virtual terminal
2)		SETONE PEOL,(TPKT)	; Hussle up receiver


LINE 10, PAGE 74
1)		CALLX (MSEC1,TVTOSP)
1)		STOR T1,TSBYT,(TCB)
LINE 10, PAGE 73
2)		IFE REL6,<CALL TVTOSP>	; Get amount of output waiting
2)		IFN REL6,<CALLX (MSEC1,TVTOSP)>
2)		STOR T1,TSBYT,(TCB)

; TCPTCP.MAC.1 & <MONITOR>TCPTCP.MAC.1 24-Feb-89 1914	PAGE 9



LINE 45, PAGE 75
1)	        SKIPGE T1,NTPSIZ(P1) 	; Get max size for that (interface) net
1)		 RET			; none or 0, use normal packet length
LINE 46, PAGE 74
2)	IFE NICSW,<
2)	        SKIPGE T1,NTPSIZ(P1) 	; Get max size for that (interface) net
2)	>
2)	IFN NICSW,<
2)	        SKIPG T1,NTPSIZ(P1) 	; Get max size for that (interface) net
2)	>
2)		 RET			; none or 0, use normal packet length


LINE 3, PAGE 88
1)		XSWAPCD
1)	
1)	COMMENT	!
LINE 3, PAGE 87
2)	IFE REL6,<SWAPCD>
2)	IFN REL6,<XSWAPCD>
2)	
2)	COMMENT	!


LINE 3, PAGE 96
1)		XSWAPCD
1)	
1)	COMMENT	!
LINE 3, PAGE 95
2)	IFE REL6,<SWAPCD>
2)	IFN REL6,<XSWAPCD>
2)	
2)	COMMENT	!


LINE 33, PAGE 96
1)		CALLX (MSEC1,TVTCSO)	; Force scan of TVT for output
1)		 NOP
LINE 34, PAGE 95
2)	 	IFE REL6,<CALL TVTCSO>	; Force scan of TVT for output
2)	 	IFN REL6,<CALLX (MSEC1,TVTCSO)> ; Force scan of TVT for output
2)		 NOP

; TCPTCP.MAC.1 & <MONITOR>TCPTCP.MAC.1 24-Feb-89 1914	PAGE 10



LINE 3, PAGE 105
1)		XSWAPCD
1)	
1)	COMMENT	!
LINE 3, PAGE 104
2)	IFE REL6,<SWAPCD>
2)	IFN REL6,<XSWAPCD>
2)	
2)	COMMENT	!


LINE 3, PAGE 108
1)		XSWAPCD
1)	
1)	;CHKWND
LINE 3, PAGE 107
2)	IFE REL6,<SWAPCD>
2)	IFN REL6,<XSWAPCD>
2)	
2)	;CHKWND


LINE 28, PAGE 112
1)		IFE. T1			;[7.1027] Killed because no space?
1)		  MOVX T1,PT%TKT	;[7.1027] Want trace?
1)		  TDNE T1,INTTRC	;[7.1027] Test for trace
1)		  CALL PRNPKT		;[7.1027] (T1/) Trace wanted, so trace taken
1)		  SETZ T1,		;[7.1027] Reset T1 so we don't crash
1)		  JRST TRMPK9		;[7.1027] Don't copy into non-existant packet
1)		ENDIF.			;[7.1027]
1)		PUSH P,T1		; Save for later
LINE 28, PAGE 111
2)		JUMPE T1,[MOVX T1,PT%TKT ; Killed because no space
2)			TDNE T1,INTTRC	; Want trace?
2)			  CALL PRNPKT	; Yes
2)			JRST TRMPK9]	; Don't copy into non-X packet
2)		PUSH P,T1		; Save for later


LINE 22, PAGE 115
1)		 CAMN T1,JOBNO		; Must stay in this job
1)		  CAIA			; OK to think about this TCB
LINE 22, PAGE 114
2)	IFE STANSW,<
2)		 CAMN T1,JOBNO		; Must stay in this job
2)	>;IFE STANSW
2)	IFN STANSW,<
2)		 CAMN T1,GBLJNO		; Must stay in this job
2)	>;IFN STANSW

; TCPTCP.MAC.1 & <MONITOR>TCPTCP.MAC.1 24-Feb-89 1914	PAGE 11


2)		  CAIA			; OK to think about this TCB


LINE 3, PAGE 129
1)		XSWAPCD
1)	
1)	COMMENT	!
LINE 3, PAGE 128
2)	IFE REL6,<SWAPCD>
2)	IFN REL6,<XSWAPCD>
2)	
2)	COMMENT	!


LINE 18, PAGE 133
1)	IFDEF  NA'U,<XCDSEC,,NA'U>
1)	IFNDEF NA'U,<XCDSEC,,X>> ; End of DEFINE OPTION
1)	
1)	OPTCOF==.-IOPNU		; Is user option valid
LINE 18, PAGE 132
2)	IFE REL6,<
2)	IFDEF  NA'U,<MSEC1,,NA'U>
2)	IFNDEF NA'U,<MSEC1,,X>>
2)	IFN REL6,<
2)	IFDEF  NA'U,<XCDSEC,,NA'U>
2)	IFNDEF NA'U,<XCDSEC,,X>>> ; End of DEFINE OPTION
2)	
2)	OPTCOF==.-IOPNU		; Is user option valid


LINE 36, PAGE 139
1)		SUBI RC,1		; Count option code
LINE 36, PAGE 138
2)	IFN NICSW,<
2)		CAIGE OPT,2		; Make sure at least this long
2)		 MOVEI OPT,2		; So we don't lose
2)	>;IFN NICSW
2)		SUBI RC,1		; Count option code


LINE 19, PAGE 148
1)	INFOW(OTAB,<XCDSEC,,W'OPNU>)
1)	INFOW(POR,<POINT 8,TCB'W'R(TCB),7>)
LINE 19, PAGE 147
2)	IFE REL6,<INFOW(OTAB,<MSEC1,,W'OPNU>)>
2)	IFN REL6,<INFOW(OTAB,<XCDSEC,,W'OPNU>)>
2)	INFOW(POR,<POINT 8,TCB'W'R(TCB),7>)

; TCPTCP.MAC.1 & <MONITOR>TCPTCP.MAC.1 24-Feb-89 1914	PAGE 12



LINE 3, PAGE 150
1)		XSWAPCD
1)	
1)	COMMENT	!
LINE 3, PAGE 149
2)	IFE REL6,<SWAPCD>
2)	IFN REL6,<XSWAPCD>
2)	
2)	COMMENT	!


LINE 3, PAGE 160
1)		XSWAPCD
1)	
1)	COMMENT	!
LINE 3, PAGE 159
2)	IFE REL6,<SWAPCD>
2)	IFN REL6,<XSWAPCD>
2)	
2)	COMMENT	!


LINE 1, PAGE 162
1)	;TSTAMP
LINE 13, PAGE 160
2)	>;IFN IPPDSW!STANSW
   {Skipped 1 page and 1 line}
2)	IFN IPPDSW,<
2)	;TSTAMP


LINE 1, PAGE 163
1)	;TIMCAL
LINE 1, PAGE 162
2)	>;IFN IPPDSW
2)	IFN IPPDSW!STANSW,< ;;; Stanford will use TIMCAL without other IPPDSW stuff
2)	;TIMCAL


LINE 16, PAGE 163
1)		CALLX (MSEC1,GETFRT)	; Get fork's runtime til now
1)	>;IFN STANSW
LINE 18, PAGE 162
2)	IFE REL6,<CALL GETFRT>		; Get fork's runtime til now
2)	IFN REL6,<CALLX (MSEC1,GETFRT)>
2)	>;IFN STANSW

; TCPTCP.MAC.1 & <MONITOR>TCPTCP.MAC.1 24-Feb-89 1914	PAGE 13



LINE 27, PAGE 163
1)		CALLX (MSEC1,GETFRT)	; Get fork's runtime til now
1)	>;IFN STANSW
1)	IFE STANSW,<
1)		CALL GETFRT		; Get the runtime now, after the funcal
1)	>;IFE STANSW
LINE 30, PAGE 162
2)	IFE REL6,<CALL GETFRT>		; Get fork's runtime til now
2)	IFN REL6,<CALLX (MSEC1,GETFRT)>
2)	>;IFN STANSW
2)	IFE STANSW,<
2)		CALL GETFRT		; Get fork's runtime til now
2)	>;IFE STANSW


LINE 41, PAGE 163
1)	IFE STANSW,<
1)		ADDM T4,(T3)		; Avoid double charges
LINE 45, PAGE 162
2)	IFE STANSW,<;;This seems to result in negative runtimes for processes!
2)		ADDM T4,(T3)		; Avoid double charges


LINE 3, PAGE 164
1)		XSWAPCD
1)	
1)		DEFAC (FX,Q3)		; Must agree with PROLOG, PAGEM
LINE 3, PAGE 163
2)	IFE REL6,<SWAPCD>
2)	IFN REL6,<XSWAPCD>
2)	
2)		DEFAC (FX,Q3)		; Must agree with PROLOG, PAGEM


LINE 3, PAGE 172
1)		XSWAPCD
1)	
1)	COMMENT	!
LINE 3, PAGE 171
2)	IFE REL6,<SWAPCD>
2)	IFN REL6,<XSWAPCD>
2)	
2)	COMMENT	!

; TCPTCP.MAC.1 & <MONITOR>TCPTCP.MAC.1 24-Feb-89 1914	PAGE 14



LINE 21, PAGE 174
1)		CALLX (MSEC1,TVTCLS)	; Go close the Virtual terminal
1)		JRST USREVX
1)	
1)	USREV4:	
1)		CALLX (MSEC1,TVTOPN)	; Open a TCP Virtual Terminal
1)		JUMPE T1,USREVX		; Done if TVT assigned
LINE 21, PAGE 173
2)		IFE REL6,<CALL TVTCLS>	; Go close the Virtual terminal
2)		IFN REL6,<CALLX (MSEC1,TVTCLS)> ; Go close the Virtual terminal
2)		JRST USREVX
2)	
2)	USREV4:	
2)		IFE REL6,<CALL TVTOPN>	; Open a TCP Virtual Terminal
2)		IFN REL6,<CALLX (MSEC1,TVTOPN)> ; Open a TCP Virtual Terminal
2)		JUMPE T1,USREVX		; Done if TVT assigned


LINE 12, PAGE 182
1)		JUMPE BFR,R		; [7187] if no buffer, return now
1)		SETZRO TRCB,(TCB)	; no more receive buffer
LINE 12, PAGE 181
2)		SETZRO TRCB,(TCB)	; no more receive buffer