perm filename IMP.MAC[IP,NET] blob sn#702351 filedate 1983-02-09 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00006 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002		UNIVERSAL IMP -- IMP SYSTEM SYMBOL DEFINITIONS  V 3
C00005 00003	IMP UUO PARAMETERS SUPPLIED IN THE AC OF CALL AC,[SIXBIT\IMPUUO\]
C00008 00004	IMP SYSTEM GETTAB TABLE AND SUBTABLE PARAMETERS
C00015 00005	RELATIVE ADDRESSES IN EXTENDED STATUS BLOCK (.IUXIS)
C00016 00006		.TNIAC==:↑D255		INTERPRET FOLLOWING AS COMMAND
C00018 ENDMK
C⊗;
	UNIVERSAL IMP -- IMP SYSTEM SYMBOL DEFINITIONS  V 3
	SUBTTL	SUNDBERG/EAT/EW13/drp	--	3 may 80

;[96bit] altered for extended host/imp number

;RELATIVE LOCATIONS IN THE CONNECTION BLOCK

.IBDEV==0		;DEVICE NAME
.IBSTT==1		;STATE, STATUS CODES RETURNED HERE.
			;<lh> job number
			;<rh> connection state.
	.isCls==↑d0		;; closed
	.isLst==↑d1		;; listen
	.isSyS==↑d2		;; SYN sent
	.isSRP==↑d3		;; SYN received, passive (from an .iuLsn)
	.isSRA==↑d4		;; SYN received, active (from an .iuCon)
	.isEst==↑d5		;; established
	.isFn1==↑d6		;; FIN wait 1
	.isFn2==↑d7		;; FIN wait 2
	.isCln==↑d8		;; Closing
	.isTim==↑d9		;; time wait
	.isClW==↑d10		;; Close wait
	.isLAc==↑d11		;; last ACK
.IBERR==1		;ERROR CODES RETURNED HERE (TOO)
	.IENOP==-1	;	UUO ISNT IMPLEMENTED
	.IEILU==0	;	ILLEGAL OPERATION
	.IENSD==1	;	NO SUCH DEVICE
	.IEDNA==2	;	DEVICE NOT AVAILABLE
	.IELNU==3	;	LOGICAL NAME ALREADY IN USE
	.IESTT==4	;	IMPROPER STATE
	.IESOF==5	;	OPEN FAILURE (REFUSED)
	.IESCF==6	;	CLOSE FAILURE
	.IECGT==7	;	Can't get there from here (can't find route
			;		to that host).
	.IEREQ==10	;	CONNECTION DOESN'T MATCH REQUEST
	.IESKT==11	;	ILLEGAL LOCAL SOCKET NUMBER (IN USE)
	.IEHST==12	;	ILLEGAL HOST NUMBER (0 OR TOO BIG)
	.IEDWN==13	;	HOST IS DOWN
	.IEADR==14	;	CONNECTION BLOCK ADDRESS CHECK
	.IETIM==15	;	NCP TIMEOUT
	.IEPAR==16	;	PARAMETER SPECIFICATION ERROR
	.IENCI==17	;	TTY NOT CONNECTED TO IMP
	.IEQUO==20	;	ILLEGAL QUOTE OR ESCAPE
	.IEPRV==21	;	NOT PRIVILEGED TO DO OPERATION
	.IENAI==22	;	device is not an IMP.
	.IENNU==23	;	Network not up.
.IBLCL==2		;LOCAL SOCKET NUMBER
.IBHST==3		;Site number: network/host/imp numbers
	Ih.Net==377b11		; network number
	Ih.Hst==377b19		; host number
	Ih.Imp==177777b35	; IMP number
.IBRMT==4		;REMOTE SOCKET NUMBER

.IBSIZ==5		;SIZE OF CONNECTION BLOCK
;IMP UUO PARAMETERS SUPPLIED IN THE AC OF CALL AC,[SIXBIT\IMPUUO\]

	IF.IEC==1B0	;ONLY BIT USED IN .IUXTT FNC - REFUSE SERVER'S
			;  OFFER TO ECHO
	IF.NWT==1B0	;DON'T WAIT FOR FUNCTION TO FINISH
	IF.PRV==1B1	;ENABLE PRIVILEGED OPERATIONS
	IF.ALS==1B2	;ABSOLUTE LOCAL SOCKET SPECIFIED
	If.New==0	; new format block being used (no longer used)

	IF.TIM==7B10	;TIMEOUT SETTING (4 * 2↑N)
	IF.FNC==177B17	;FUNCTION CODE
			;18-35 ADDRESS OF CONNECTION BLOCK

;FUNCTION CODES
	.IUSTT==0	;RETURN CONNECTION STATUS
	.IUCON==3	;CONNECT
	.IUCLS==4	;CLOSE THE CONNECTION
	.IULSN==5	;LISTEN ON THE CONNECTION
	.IUREQ==6	;LISTEN AND WAIT FOR A CONNECTION
	.IUXTT==7	;CROSS-PATCH THE TELETYPE
;[tcp]	.IUXNT==↑D9	;SEND AN INTERRUPT
;[tcp]	.IUANT==↑D10	;SET UP INTERRUPT TRAP ADDRESS
	.IUVRS==↑D11	;RETURN SOFTWARE VERSION NUMBERS
	.IUDEA==↑D12	;DEASSIGN
	.IULHS==↑D13	;RETURN THE LOCAL HOST NUMBER
;[tcp]	.IUGVB==↑D15	;SEND A GVB
	.IUITY==↑D16	;TRANSLATE BETWEEN TTY'S AND IMP'S
	.IUXWT==↑D17	;WAIT FOR CROSSPATCH TO BE BROKEN
	.IUPES==↑D18	;SET QUOTES AND ESCAPES
	.IURES==↑D19	;READ QUOTES AND ESCAPES
	.IUPCP==↑D20	;SET USER CONNECTION PARAMETER WORD
	.IURCP==↑D21	;READ USER CONNECTION PARAMETER WORD
	.IUXIS==↑D22	;RETURN EXTENDED IMP STATUS
;[tcp]	.IUTRC==↑D23	;TURN ON AND OFF TRACE MOD
;[tcp]	.IUIAL==↑D24	;SPECIFY DESIRED INPUT ALLOCATION

;PRIVILEGED FUNCTION CODES
	.IUNOP==↑D64	;SEND NO-OP TO HOST	[tcp] no longer legal
	.IURST==↑D65	;SEND A RESET		[tcp] no longer legal
	.IUALL==↑D66	;SEND AN ALLOCATE	[tcp] no longer legal
	.IUECO==↑D69	;SEND AN ECHO		[tcp] no longer legal
	.IUINI==↑D70	;REINITIALIZE THE NCP
	.IUDWN==↑D71	;BRING DOWN IMP SYSTEM
	.IUUP==↑D72	;BRING UP THE IMP SYSTEM
;IMP SYSTEM GETTAB TABLE AND SUBTABLE PARAMETERS

	.GTIMP==-1		;IMP SYSTEM GETTAB TABLE NUMBER.
				;  ALL ENTRIES ACCESSED THRU GETTAB
				;  SUBTABLE NUMBERS, AS DEFINED BELOW

	%ISIHM==0,,.GTIMP	;IMP-HOST MESSAGE COUNTS, BY TYPE
	%IsEPL==1,,.GtImp	;[96bit] Error in previous leader
				;	 messages by error type.
	  %IsEc0==0		; error flip-flop set
	  %IsEc1==1		; message too small
	  %IsEc2==2		; message of illegal type
	  %IsEc3==3		; message in wrong format
	  %IsEcu==4		; unknown error code in EPL message
	%IsINC==2,,.GtIMP	;[96bit] Incomplete message error
	  %IsIn0==0		; destination did not accept message promptly
	  %IsIn1==1		; message was too long
	  %IsIn2==2		; host took too long to send message body
	  %IsIn3==3		; message lost due to IMP or circuit failure
	  %IsIn4==4		; IMP had insufficient resourses
	  %IsIn5==5		; Source IMP I/O failure
	  %IsInu==6		; unknown error code in INC message
	%ISDMF==3,,.GTIMP	;IMP DATA MESSAGE FAULTS, BY ITEM NUMBER
	  %ISIHF==0		;  INTERFACE HARDWARE FAULTS
	  %ISNIP==1		;  message is not IP
	  %ISBMT==2		;  BAD MESSAGE TYPE ERRORS
	  %ISDDR==3		;  DISCARDED RFNMS
	  %ISSDR==4		;  SIMULATED (TIMED OUT) DATA RFNMS
	  %ISOOB==6		;  out of buffers during TTY output
	  %ISIme==7		;  ImpMak errors
	%ISBHS==4,,.GTIMP	;IMP BUFFER HANDLING STATISTICS, BY ITEM NUMBER
	  %ISIBO==0		;  IMP BUFFER OVERRUNS
	  %ISNFB==1		;  INSTANTANEOUS NUMBER OF FREE BUFFERS
	  %ISAFB==2		;  10↑4 * AVERAGE BUFFER UTILIZATION
	%ISHMS==5,,.GTIMP	;HISTOGRAM REC'D DATA MSG SIZES, BY POWER OF 2
	%ISIPE==6,,.GtImp	; internet protocol processing errors
	  %isipl==0		; byte stream shorter than IP leader
	  %isipp==1		; IP protocol field contained a protocol
				;	  the monitor doesn't support.
	  %isipv==2		; wrong version IP messages
	  %isipc==3		; checksum of IP leader failed.
	  %isipu==4		; unknown option seen in IP message
	%isIPD==7,,.gtImp	; data collected about IP activities
	  %isIPO==0		; number of IP messages processed which
				;  options had options.
	  %isIPF==1		;  number of fragmented messages seen
	  %isIFD==2		;  number of fragmented messages
				;	  actually reassembled.
	%ISICE==10,,.GtImp	; internet control message protocol errors
	  %isicl==0		; not enough data in stream for ICMP leader
	  %isicd==1		; not enough data in stream for ICMP message
	  %isicc==2		; checksum of ICMP message failed.
	  %isicu==3		; ICMP message type unknown.
	%ISICM==11,,.GtImp	; count of ICMP message types.
	%ISTCE==12,,.GtImp	; transmission control protocol errors
	  %istcl==0		;  data ends before TCP leader
	  %istcm==1		;  data ends before TCP message
	  %istcc==2		;  checksum error in TCP leader
				;	  and/or message.
	  %istcp==3		;  incoming connection attempted on a port
				;	  the monitor does not support.
	  %istcd==4		;  no free DDB when needed
	  %istct==5		;  no free ITY when needed
	  %istcu==6		;  unknown option seen in TCP leader
	  %istcw==7		;  TCP leader with options seen
	  %istcn==10		;  when deciding whether or not to
				;	retranmit a message, found a
				;	message that thought it was
				;	in the retransmission queue,
				;	but was not.
	  %istcr==11		;  TCP packets retransmitted.
	  %istfs==12		;  future messages seen
	  %istfu==13		;  future messages used
	  %istmo==14		;  messages completely out of window
	  %istmf==15		;  messages with their fronts out of window
	  %istme==15		;  messages with their ends out of window
	%isTCI==13,,.GtImp	; TCP input message types.  same subfield
				;  offsets as %isTCO immediately below.
	%isTCO==14,,.GtImp	; TCP output message types.
				; each word is incremented whenever a TCP
				;  message comes in with the corresponding
				;  bit on.  note that any message can have
				;  several different bits on, all of which
				;  will be counted.
	  %isiFn==0		; FIN
	  %isiSn==1		; SYN
	  %isiRs==2		; reset
	  %isiPs==3		; PUSH
	  %isiAc==4		; ACK
	  %isiUr==5		; Urgent
;RELATIVE ADDRESSES IN EXTENDED STATUS BLOCK (.IUXIS)
	.XSNUM==0	;NUMBER OF WORDS THAT FOLLOW
	.XSDEV==1	; IMP DEVICE NAME
	.XSIST==2	; STATE (+ ERROR CODES)
	.XSILS==3	; LOCAL SOCKET
	.XSIHS==4	; HOST NUMBER
	.XSIRS==5	; REMOTE SOCKET
	.XSPrt==6	; protocol of tranmission level
	.XSRWn==7	; receive window allocation
	.XSSWn==10	; send window allocation
	.XSIOS==11	; I/O STATUS BITS
	.XSRTT==12	; current retransmission timeout (gives indication
			;  round trip time for this connection)

	.XSSIZ==13	;SIZE OF EXTENDED STATUS BLOCK


;DEVICE-DEPENDENT I/O STATUS BITS
	IO.DAT==1B25	;INPUT DATA IS AVAILABLE
	.TNIAC==:↑D255		;INTERPRET FOLLOWING AS COMMAND
	.TNSE==↑D241		;END SUBNEGOTIATION PARAMETERS

	.TNNOP==↑D241		;NO-OP
	.TNDM==	↑D242		;DATA MARK
	.TNBRK==↑D243		;BREAK (OR REVERSE BREAK)
	.TNIP==	↑D244		;INTERRUPT PROCESS
	.TNAO==	↑D245		;ABORT OUTPUT
	.TNAYT==↑D246		;ARE YOU THERE
	.TNEC==	↑D247		;ERASE CHARACTER
	.TNEL==	↑D248		;ERASE LINE
	.TNGA==	↑D249		;GO AHEAD
	.TNSB==	↑D250		;SUB-NEGOTIATE
	.TNWIL==↑D251		;WILL
	.TNWNT==↑D252		;WON'T
	.TNDO==	↑D253		;DO
	.TNDNT==↑D254		;DON'T

	.TOBIN==0		;TRANSMIT BINARY OPTION
	.TOECH==1		;ECHO OPTION
	.TORCP==2		;RECONNECTION PROTOCOL OPTION
	.TOSGA==3		;SUPPRESS GO-AHEAD OPTION
	.TOAMS==4		;APPROXIMATE MESSAGE SIZE OPTION
	.TOSTT==5		;STATUS OPTION
	.TOTIM==6		;TIMING MARK OPTION
	.TORCT==7		;REMOTE CONT. TRANS AND ECHOING
	.TOXOL==↑D255		;EXTENDED OPTIONS LIST OPTION

	END