Google
 

Trailing-Edge - PDP-10 Archives - mit_emacs_170_teco_1220 - emacs/itsbts.mid
There is 1 other file named itsbts.mid in the archive. Click here to see a list.
; -*-MIDAS-*-

;;; ITS BITS THAT ARE OFTEN NEEDED

.AUXIL

;;; CATALOGUE OF RESERVED BIT NAME AND CONSTANT PREFIXES IN ITS

.SEE %CA	;BITS IN CLRAC FOR CORE LINK DEVICE
.SEE %CB	;BITS FOR CORBLK SYMBOLIC SYSTEM CALL
.SEE %CL	;.CALL ARGUMENT TYPES.
.SEE %CLS	;BITS IN LH OF CLSTB ENTRY
.SEE %DC	;DTE20 IOELEVEN COMMANDS
.SEE %DP	;DATAPOINT CURSOR CONTROL CONSTANTS
.SEE %DT	;DTE20 COMMANDS BITS AND CONSTANTS
.SEE %DV	;BITS IN DEVTAB
.SEE %E		;.CALL AND OPEN ERROR CODES
.SEE %GO	;SUPDUP GRAPHICS PROTOCOL COMMANDS
.SEE %H1	;RP04 (RH10) ERROR REGISTER 1
.SEE %H3	;RP04 (RH10) ERROR REGISTER 3
.SEE %HD	;RH10 ERROR BITS IN DRIVE REGISTERS
.SEE %HI	;RH10 CONI BITS
.SEE %HM	;RP04 (RH10) COMMAND CONSTANTS
.SEE %HO	;RH10 CONO BITS
.SEE %HR	;RH10 CONTROLLER AND RP04 DRIVE REGISTER NUMBERS
.SEE %HS	;RP04 (RH10) STATUS REGISTER BITS
.SEE %HW	;FOR KL10, BITS IN RH OF RESULT OF APRID
.SEE %IOT	;BITS IN IOTTB
.SEE %JB	;BITS IN JBWST VARIABLE
.SEE %JG	;BITS IN JOBGET FIRST VALUE
.SEE %JO	;OPCODES IN JOBGET FIRST VALUE
.SEE %JS	;SPECIAL VALUES FOR <JOB> SPECS
.SEE %MA	;BITS IN MSRAC (MAGTAPE STATUS TABLE)
.SEE %NC	;NETWORK SOCKET CLOSE REASONS
.SEE %NS	;NETWORK SOCKET STATES
.SEE %OP	;BITS IN LH OF .OPTION USER VARIABLE
.SEE %PC	;KA10 PC FLAGS
.SEE %PF	;KL10 PAGE FAIL WORD BITS
.SEE %PI	;BITS IN PIRQC USER VARIABLE
.SEE %PJ	;BITS IN LH OF PIRQC USER VARIABLE
.SEE %PS	;KL10 PC FLAGS
.SEE %QA	;BITS IN QSRAC (DISK STATUS TABLE)
.SEE %QM	;DISK ACTION MODES IN RH OF QSRAC
.SEE %RL	;BITS FOR COMMANDS TO .REALT UUO
.SEE %SCV	;BITS IN SYSCVL TO CONTROL SYMBOLIC SYSTEM CALLS
.SEE %SS	;STY STATUS BITS IN STYSTS
.SEE %SW	;LH(USWST) BITS
.SEE %SY	;NAMES FOR SQUOZE FLAGS IN SYMBOL TABLES (NOT DEFINED IN ITS)
.SEE %TA	;BITS IN TTYSTA
.SEE %TB	;BITS IN TTYTBL USER VARIABLE
.SEE %TC	;BITS IN TTYCOM
.SEE %TD	;SOFTWARE TTY CURSOR CONTROL CODE CONSTANTS
.SEE %TF	;BITS IN TPFLAG
.SEE %TG	;BITS IN TTYST1 AND TTYST2
.SEE %TI	;BITS IN LEFT HALF OF TTY INPUT IOCHNM WORD
.SEE %TJ	;BITS IN LH OF TTY OPTPUT IOCHNM
.SEE %TN	;CONSTANTS FOR TCTYP
.SEE %TO	;BITS IN LEFT HALF OF TTYOPT
.SEE %TP	;BITS IN RIGHT HALF OF TTYOPT
.SEE %TQ	;BITS IN LEFT HALF OF TTYSMT
.SEE %TR	;BITS IN RIGHT HALF OF TTYSMT
.SEE %TS	;BITS IN TTYSTS
.SEE %TT	;BITS IN LEFT HALF OF TTYTYP
.SEE %TX	;ASCII CHARACTER BITS (META, TOP, CONTROL, ETC.)
.SEE %TY	;BITS IN RIGHT HALF OF TTYTYP
.SEE %UC	;FOR KL10, BITS IN LH OF RESULT OF APRID
.SEE %UM	;BITS IN UMAPS VARIABLE, AND ARGS TO PGLD, MPLD1, PLD1.
.SEE %UST	;BITS IN USTP VARIABLE.
.SEE %WY	;WHYINT CODES
.SEE $11	;BYTE POINTERS TO PDP11 FIELDS IN PDP-10 WORDS, ON AI 10-11 INTERFACE.
.SEE ..R	;ARGUMENT CODES FOR .BREAK 12, READING.
.SEE ..S	;ARGUMENT CODES FOR .BREAK 12, WRITING.

.SEE MMP	;BITS IN MMP ENTRY 1ST WORD L.H.
.SEE OPTTRP	;BITS IN LH OF .OPTION VARIABLE (OLD NAMES)
.SEE SCL	;BITS IN LH OF SUPCOR
.SEE SCR	;BITS IN RH OF SUPCOR
IFNDEF DEFSYM,[	;ALLOW USER TO USE SYMBOLS IN OTHER WAYS IF HE WISHES.
		;BUT NORMALLY, DEFSYM FOO==BAR DOES FOO==BAR WITH ERROR CHECK.
DEFINE DEFSYM X/
IRPS Z,,[X]
IFNDEF Z,.QUOTE/.QUOTE/X
.ELSE [
   $$TEM1==Z
   .QUOTE/.QUOTE/X
   IFN Z-$$TEM1,.ERR Z MULTIPLY .QUOTE`.QUOTE/DEFINED/`
]
.ISTOP
TERMIN TERMIN

IFLE .MLLIT,.ERR .MLLIT MUST BE 1; SETTING IT TO 1.
.MLLIT==1
$$TEMP==1
]
.ELSE $$TEMP==0
;OPEN-FAILURE CODE NAMES.
;3RD AND 4TH LETTER: "TM" = "TOO MANY", "BD" = "BAD OR ILLEGAL",
;	"TF" = "TOO FEW", "RO" = "READ-ONLY", "NA" = "NOT AVAILABLE",
;	"NS" = "NO SUCH", "EX" = "ALREADY EXISTS", "FL" = "FULL",
;	"NR" = "NOT READY".
;5TH AND 6TH LETTER: "JB" = "JOB", "RG" = "ARG", "DV" = "DEVICE",
;	"DR" = "DIRECTORY", "IO" = "DIRECTION", "FL" = "FILE", "FN" = "FILE NAME"
DEFSYM	%E==:-100			;BIT TYPEOUT MASK
DEFSYM	%ENSDV==:1	;NO SUCH DEVICE
DEFSYM	%ENSIO==:2	;WRONG DIRECTION
DEFSYM	%ETMTR==:3	;TOO MANY TRANSLATIONS
DEFSYM	%ENSFL==:4	;FILE NOT FOUND
DEFSYM	%EFLDR==:5	;DIRECTORY FULL
DEFSYM	%EFLDV==:6	;DEVICE FULL
DEFSYM	%ENRDV==:7	;DEVICE NOT READY
DEFSYM	%ENADV==:10	;DEVICE NOT AVAILABLE
DEFSYM	%EBDFN==:11	;ILLEGAL FILE NAME
DEFSYM	%ENSMD==:12	;MODE NOT AVAILABLE
DEFSYM	%EEXFL==:13	;FILE ALREADY EXISTS
DEFSYM	%EBDCH==:14	;BAD CHANNEL NUMBER
DEFSYM	%ETMRG==:15	;TOO MANY ARGUMENTS (CALL)
DEFSYM	%ENAPK==:16	;PACK NOT MOUNTED
	       ;17 FORMERLY DIRECTORY NOT AVAIL
DEFSYM	%ENSDR==:20	;NON-EXISTENT DIRECTORY
DEFSYM	%ELCDV==:21	;LOCAL DEVICE ONLY
DEFSYM	%ESCO==: 22	;SELF-CONTRADICTORY OPEN
DEFSYM	%ENAFL==:23	;FILE LOCKED
DEFSYM	%ETMDR==:24	;M.F.D. FULL
DEFSYM	%EMCHN==:25	;DEVICE NOT ASSIGNABLE TO THIS PROCESSOR
DEFSYM	%ERODV==:26	;DEVICE WRITE-LOCKED
DEFSYM	%ETMLK==:27	;LINK DEPTH EXCEEDED
DEFSYM	%ETFRG==:30	;TOO FEW ARGUMENTS (CALL)
DEFSYM	%EROJB==:31	;CAN'T MODIFY JOB
DEFSYM	%EROPG==:32	;CAN'T GET THAT ACCESS TO PAGE
DEFSYM	%EBDRG==:33	;MEANINGLESS ARGS
DEFSYM	%EBDDV==:34	;WRONG TYPE DEVICE
DEFSYM	%ENSJB==:35	;NO SUCH JOB
DEFSYM	%EBOJ==: 36	;VALID CLEAR OR STORED SET
DEFSYM	%ENACR==:37	;NO CORE AVAILABLE
DEFSYM	%ETOP==: 40	;NOT TOP LEVEL
DEFSYM	%ENAPP==:41	;OTHER END OF PIPELINE GONE OR NOT OPEN
DEFSYM	%ENAJB==:42	;JOB GONE OR GOING AWAY
DEFSYM	%ENSCL==:43	;ILLEGAL SYSTEM CALL NAME
DEFSYM	%ENSCH==:44	;CHANNEL NOT OPEN
DEFSYM	%ENRBF==:45	;INPUT BUFFER EMPTY OR OUTPUT BUFFER FULL
DEFSYM	%EBDFL==:46	;UNRECOGNIZABLE FILE (LOAD)
DEFSYM	%EBDLK==:47	;LINK TO NON-EXISTENT FILE

NOPNLS==:47	;NO DEFSYM BECAUSE THIS SYMBOL IS NOT TO BE PREDEFINED TO USERS
; BITS IN .PIRQC USER VARIABLE - FIRST-WORD INTERRUPTS
; CLASSES ARE:
;  [1] STOPS JOB AND INTERRUPTS SUPERIOR (FATAL INTR)
;  [2] STOPS JOB AND INTERRUPTS SUPERIOR UNLESS ENABLED
;  [3] DOES NOTHING UNLESS ENABLED
; BITS IN THE LH HAVE TWO NAMES: %PI... AS A BIT IN THE WORD,
;  AND %PJ... SHIFTED DOWN BY 18. BITS.

.SEE PIRQC

DEFSYM	%PI==:525252,,525252		;FOR BIT-TYPEOUT MODE
DEFSYM	%PIRLT==:200000,,	;REAL-TIME TIMER WENT OFF	[3]
DEFSYM	%PIRUN==:100000,,	;RUN-TIME TIMER WENT OFF	[3]
DEFSYM	%PIDCL==:10000,,	;DEFERRED CALL			[1]
DEFSYM	%PIATY==:4000,,		;WAS JUST GIVEN THE TTY		[3]
DEFSYM	%PITTY==:2000,,		;DON'T HAVE TTY (SEE %TBINT)	[2]
DEFSYM	%PIPAR==:1000,,		;MEMORY PARITY ERROR		[2]
DEFSYM	%PIFOV==:400,,		;FLOATING OVERFLOW		[3]
DEFSYM	%PIWRO==:200,,		;WRITE IN READ-ONLY PAGE	[2]
DEFSYM	%PIFET==:100,,		;FETCHED INSN FROM IMPURE PAGE	[2]
DEFSYM	%PITRP==:40,,		;SYSTEM UUO IN TRAP MODE	[2]
DEFSYM	%PIDBG==:2,,		;SYSTEM BEING DEBUGGED STATE CHG[3]
DEFSYM	%PILOS==:1,,		;.LOSE INSTRUCTION EXECUTED	[2]
DEFSYM	%PICLI==:400000		;CLI DEVICE OPENED TO THIS JOB	[3]
DEFSYM	%PIPDL==:200000		;PUSHDOWN LIST OVERFLOW		[2]
DEFSYM	%PILTP==:100000		;LIGHT PEN			[3]
DEFSYM	%PIMAR==:40000		;MAR ADDRESS TRAP		[2]
DEFSYM	%PIMPV==:20000		;MEMORY PROTECTION VIOLATION	[2]
DEFSYM	%PICLK==:10000		;SLOW (1/2 SEC) CLOCK		[3]
DEFSYM	%PI1PR==:4000		;SINGLE-INSTRUCTION PROCEED	[1]
DEFSYM	%PIBRK==:2000		;.BREAK INSTRUCTION EXECUTED	[1]
DEFSYM	%PIOOB==:1000		;ADDRESS OUT OF BOUNDS		[2]
DEFSYM	%PIIOC==:400		;I/O CHANNEL ERROR		[2]
DEFSYM	%PIVAL==:200		;.VALUE INSTRUCTION EXECUTED	[1]
DEFSYM	%PIDWN==:100		;SYSTEM GOING DOWN STATUS CHANGE[3]
DEFSYM	%PIILO==:40		;ILLEGAL OPERATION (E.G. UUO)   [2]
DEFSYM	%PIDIS==:20		;DISPLAY MEMORY PROTECT		[2]
DEFSYM	%PIARO==:10		;ARITHMETIC OVERFLOW		[3]
DEFSYM	%PIB42==:4		;BAD LOCATION 42		[1]
DEFSYM	%PIC.Z==:2		;^Z OR CALL TYPED		[1]
DEFSYM	%PITYI==:1		;TTY INPUT (OBSOLETE)		[3]

DEFSYM	%PJ==:1,,525252			;BIT TYPEOUT MASK
DEFSYM	%PJRLT==:200000		;REAL-TIME TIMER WENT OFF	[3]
DEFSYM	%PJRUN==:100000		;RUN-TIME TIMER WENT OFF	[3]
DEFSYM	%PJDCL==:10000		;DEFERRED CALL			[1]
DEFSYM	%PJATY==:4000		;WAS JUST GIVEN THE TTY		[3]
DEFSYM	%PJTTY==:2000		;DON'T HAVE TTY (SEE %TBINT)	[2]
DEFSYM	%PJPAR==:1000		;MEMORY PARITY ERROR		[2]
DEFSYM	%PJFOV==:400		;FLOATING OVERFLOW		[3]
DEFSYM	%PJWRO==:200		;WRITE IN READ-ONLY PAGE	[2]
DEFSYM	%PJFET==:100		;FETCHED INSN FROM IMPURE PAGE	[2]
DEFSYM	%PJTRP==:40		;SYSTEM UUO IN TRAP MODE	[2]
DEFSYM	%PJDBG==:2		;SYSTEM BEING DEBUGGED STATE CHG[3]
DEFSYM	%PJLOS==:1		;.LOSE INSTRUCTION EXECUTED	[2]
;;; PC FLAGS (LEFT HALF)

DEFSYM	%PC==:1,,525240		;FOR BIT-TYPEOUT MODE
DEFSYM	%PCARO==:400000		;ARITHMETIC OVERFLOW
DEFSYM	%PCCR0==:200000		;CARRY OUT OF BIT 0
DEFSYM	%PCCR1==:100000		;CARRY OUT OF BIT 1
DEFSYM	%PCFOV==:040000		;FLOATING OVERFLOW
DEFSYM	%PCFPD==:020000		;FIRST PART DONE (E.G. ILDB PTR INCREMENTED, BYTE NOT FETCHED)
DEFSYM	%PCUSR==:010000		;USER MODE
DEFSYM	%PCUIO==:004000		;USER I/O
DEFSYM	%PCPUR==:002000		;GIVE %PIFET IF FETCH INSTR FROM WRITABLE PAGE (KA-10 ONLY)
DEFSYM	%PCSPC==:001000		;"SPECIAL" - OBSOLETE
DEFSYM	%PC1PR==:000400		;1 PROCEED - GIVE %PI1PR AFTER ONE INSTRUCTION
DEFSYM	%PCX17==:000200		;XR 17 = PC (AI ONLY)
DEFSYM	%PCFXU==:000100		;FLOATING EXPONENT UNDERFLOW
DEFSYM	%PCDIV==:000040		;DIVIDE ERROR

;;; PC FLAGS FOR KL-10

DEFSYM	%PS==:1,,525240		;FOR BIT-TYPEOUT MODE
DEFSYM	%PSPCP==:400000		;PREVIOUS CONTEXT PUBLIC - PXCT CAN'T REFERENCE CONCEALED PAGE
				;THIS APPLIES ONLY IN EXEC MODE.  IN USER MODE IS STILL %PCARO
DEFSYM	%PSCR0==:200000		;CARRY OUT OF BIT 0
DEFSYM	%PSCR1==:100000		;CARRY OUT OF BIT 1
DEFSYM	%PSFOV==:040000		;FLOATING OVERFLOW
DEFSYM	%PSFPD==:020000		;FIRST PART DONE (E.G. ILDB PTR INCREMENTED, BYTE NOT FETCHED)
DEFSYM	%PSUSR==:010000		;USER MODE	;	0	0	1	1
DEFSYM	%PSUIO==:004000		;USER I/O	;;;	KERNEL	SUPERV	CONCEAL	PUBLIC
DEFSYM	%PSPUB==:002000		;PUBLIC MODE	;	0	1	0	1
DEFSYM	%PSPCU==:004000		;IN EXEC MODE %PSUIO MEANS PREVIOUS CONTEXT USER.
DEFSYM	%PSINH==:001000		;INHIBIT ADDRESS BREAK & TRAP 3 (TURNS OFF AFTER 1 INST)
DEFSYM	%PSTR2==:000400		;TRAP 2 (PDL OVERFLOW)	    ;TRAP 1 PLUS TRAP 2
DEFSYM	%PSTR1==:000200		;TRAP 1 (ARITH OVERFLOW)    ; MAKES TRAP 3 (ONE PROCEED)
DEFSYM	%PSFXU==:000100		;FLOATING EXPONENT UNDERFLOW
DEFSYM	%PSDIV==:000040		;DIVIDE ERROR

DEFSYM	%PS1PR==:001600		;BITS TO SET TO CAUSE A 1-PROCEED.

;ARPA NETWORK
DEFSYM	%NS==:,-1	;SOCKET STATES
DEFSYM	%NSCLS==:0	;CLS RECEIVED.  CONNECTION CLOSED (IMSCLS GIVES REASON)
DEFSYM	%NSLSN==:1	;LISTENING FOR RFC
DEFSYM	%NSRFC==:2	;RFC RECEIVED WHILE IN LISTENING STATE
DEFSYM	%NSRCL==:3	;CLS RECEIVED WHILE IN RFC RECEIVED STATE
DEFSYM	%NSRFS==:4	;RFC SENT
DEFSYM	%NSOPN==:5	;CONNECTION OPEN
DEFSYM	%NSRFN==:6	;RFNM WAIT ON WRITE LINK
DEFSYM	%NSCLW==:7	;CLS SENT.  WAITING FOR MATCHING CLS
DEFSYM	%NSCLI==:10	;CLS RECEIVED BUT INPUT STILL AVAILABLE
DEFSYM	%NSINP==:11	;INPUT AVAILABLE

DEFSYM	%NC==:,-1	;CLS REASONS (IN IMSCLS)
DEFSYM	%NCNTO==:0	;NEVER OPENED
DEFSYM	%NCUSR==:1	;CLSED BY USER
DEFSYM	%NCFRN==:2	;CLSED BY FOREIGN HOST
DEFSYM	%NCRST==:3	;RST
DEFSYM	%NCDED==:4	;HOST DEAD
DEFSYM	%NCINC==:5	;INCOMPLETE TRANSMISSION
DEFSYM	%NCBYT==:6	;BYTE SIZE MISMATCH.
DEFSYM	%NCNCP==:7	;OUR NCP WENT DOWN.
DEFSYM	%NCRFS==:10	;REQUEST FOR CONNECTION REFUSED
;;; BITS IN RESULT OF APRID (BLKI APR,) ON KL-10
DEFSYM	%UC==:1,,525000		;FOR BIT-TYPEOUT MODE
DEFSYM	$UCOPT==:331100		;MICROCODE OPTIONS:
DEFSYM	%UCKLP==:400000		; KL-10-STYLE PAGING
DEFSYM	%UCITS==:20000		; ITS-STYLE PAGING
DEFSYM	%UCTRK==:1000		; TRACKS FEATURE
DEFSYM	$UCVRS==:221100		;MICROCODE VERSION NUMBER
DEFSYM	%UCVRS==:1
DEFSYM	%HW==:0,,527777		;FOR BIT-TYPEOUT MODE
DEFSYM	$HWOPT==:140600		;HARDWARE OPTIONS
DEFSYM	$HWSER==:001400		;PROCESSOR SERIAL NUMBER


;;; .CALL ARGUMENT TYPES
DEFSYM	%CL==:1,,400777
DEFSYM	%CLIN==:0		;INPUT ARGUMENT
DEFSYM	%CLIMM==:1000		;IMMEDIATE ARGUMENT
DEFSYM	%CLOUT==:2000		;OUTPUT ARGUMENT
DEFSYM	%CLERR==:3000		;ERROR CODE OUTPUT ARGUMENT
DEFSYM	%CLBTW==:4000		;DIRECT CONTROL BITS
DEFSYM	%CLBIT==:5000		;IMMEDIATE CONTROL BITS


;;; CONTROL BITS FOR CORBLK SYSTEM CALL

.SEE NCORBLK
DEFSYM	%CB==:0,,525252			;FOR BIT-TYPEOUT MODE
DEFSYM	%CBWRT==:400000		;TRY FOR WRITE ACCESS, OK IF CAN'T GET IT
DEFSYM	%CBRED==:200000		;TRY FOR READ ACCESS, OK IF CAN'T GET IT
DEFSYM	%CBNDW==:100000		;NEED WRITE ACCESS, FAIL IF CAN'T GET IT
DEFSYM	%CBPUB==:040000		;MAKE PAGE PUBLIC, REQUIRES WRITE ACCESS
DEFSYM	%CBPRV==:020000		;MAKE PAGE PRIVATE, REQUIRES WRITE ACCESS
DEFSYM	%CBNDR==:010000		;NEED READ ACCESS, FAIL IF CAN'T GET IT
DEFSYM	%CBCPY==:004000		;MAKE A COPY (DISK FILES ONLY)
DEFSYM	%CBLOK==:002000		;LOCK PAGE IN CORE.
DEFSYM	%CBULK==:001000		;UNLOCK PAGE (ALLOW SWAP-OUT)
DEFSYM	%CBSLO==:000400		;MAY ONLY RESIDE IN SLOWEST MEMORY
DEFSYM	%CBUSL==:000200		;ALLOWS USE OF ANY MEMORY.
		;ABOVE BITS ALL ZERO MEANS DELETE PAGE FROM MAP

;;; SPECIAL VALUES FOR <JOB> SPECS

DEFSYM	%JS==:,,-1
DEFSYM	%JSELF==:,,-1		;SELF (ALL <JOB> SPECS)
DEFSYM	%JSTVB==:,,-2		;11TV BUFFER (CORBLK)
DEFSYM	%JSNUL==:,,-3		;NULL JOB (KLPERF)
DEFSYM	%JSALL==:,,-4		;ALL JOBS (KLPERF)
DEFSYM	%JSNEW==:,,-5		;FRESH PAGE (CORBLK)
DEFSYM	%JSABS==:,,-6		;ABSOLUTE CORE (CORBLK)
DEFSYM	%JSNUM==:400000		;THIS + JOB # => THAT JOB (ALL <JOB> SPECS)
DEFSYM	%JSSIX==:400376		;PDP6 IS USER NUMBER 376
DEFSYM	%JSSUP==:400377		;SUPERIOR (ALL <JOB> SPECS)
;A <JOB> SPEC MAY ALSO BE THE NUMBER OF A CHANNEL OPEN ON USR:, BOJ:, OR STY:

;;; CONTROL BITS FOR ".REALT AC," UUO.
;;; FLAG BITS ARE IN LH(AC).

.SEE AREALT
DEFSYM	%RL==:1,,525252		;FOR BIT-TYPEOUT MODE
DEFSYM	%RLFLS==:400000		;FLUSH OLD TIMER
DEFSYM	%RLSET==:200000		;SET NEW CLOCK RATE
DEFSYM	%RLUSR==:100000		;TRY TO SEIZE REAL TIME USER FACILITY
DEFSYM	%RLPSD==:020000		;ONLY WANT PSEUDO REAL TIME
DEFSYM	%RLNPS==:040000		;CANNOT ACCEPT PSEUDO REAL TIME
DEFSYM	%RLBLK==:010000		;PROGRAM TO BE BLOCKED EXCEPT FOR HIGH PRIORITY
				; PHASE OR INTERRUPT LEVEL
DEFSYM	%RLGET==:004000		;GET PREVIOUS STATUS IN WORDS 3+4
				;REMAINING BITS MUST BE ZERO
;;; BITS OF .OPTION USER VARIABLE.

.SEE OPTION
DEFSYM	OPTTRP==:400000		;ALL SYSTEM UUOS TRAP TO SUPERIOR (%PITRP)
DEFSYM	OPTDEC==:100000		;UUOS 40,41 AND 47 ARE USER UUOS
		;THE FOLLOWING 3 BITS ARE NOT USED BY SYSTEM.
		;THEY ARE FOR COMMUNICATION FROM SUPERIOR.
DEFSYM	OPTCMD==:040000		;SUPERIOR SAYS IT HAS CMD STRING - DO .BREAK 12,.
DEFSYM	OPTBRK==:020000		;SUPERIOR SAYS IT HANDLES ALL .BREAK'S.
DEFSYM	OPTDDT==:010000		;SUPERIOR SAYS HE'S DDT. (CLEARED WHEN DDT DISOWNS)
DEFSYM	OPTINT==:004000		;NEW STYLE VECTORING INTS.
DEFSYM	OPTOJB==:002000		;ALLOW OTHER JOBS TO OPEN ME ON THE OJB DEVICE.
				;OPENING ME ON OJB DEVICE TURNS ME INTO A JOB DEVICE.
DEFSYM	OPTLOK==:001000		;ENABLE SWITCH-UNLOCKING FEATURE
		.SEE IODCSW	;SEE COMMENT THERE FOR DESCRIPTION.
DEFSYM	OPTLIV==:000400		;DON'T KILL THIS TOP LEVEL JOB WHEN SYS GOES DOWN
DEFSYM	OPTOPC==:000200		;INTERRUPTS THAT ABORT AN INSTRUCTION SHOULD
				;LEAVE THE PC POINTING TO THAT INSTRUCTION
				;(OTHERWISE IT GETS AOS'ED)
DEFSYM	OPTLSP==:000100		;SUPERIOR SAYS HE'S LISP
DEFSYM	OPTLKF==:000040		;UNLOCK LOCKS ON FATAL INTERRUPT

;;; NEW NAMES FOR BITS IN LH(.OPTION)

DEFSYM	%OP==:525252(1)		;FOR BIT-TYPEOUT MODE
DEFSYM	%OPTRP==:400000		;ALL SYSTEM UUOS TRAP TO SUPERIOR (%PITRP)
DEFSYM	%OPDEC==:100000		;UUOS 40,41 AND 47 ARE USER UUOS
		;THE FOLLOWING 3 BITS ARE NOT USED BY SYSTEM.
		;THEY ARE FOR COMMUNICATION FROM SUPERIOR.
DEFSYM	%OPCMD==:040000		;SUPERIOR SAYS IT HAS CMD STRING - DO .BREAK 12,.
DEFSYM	%OPBRK==:020000		;SUPERIOR SAYS IT HANDLES ALL .BREAK'S.
DEFSYM	%OPDDT==:010000		;SUPERIOR SAYS HE'S DDT. (CLEARED WHEN DDT DISOWNS)
DEFSYM	%OPINT==:004000		;NEW STYLE VECTORING INTS.
DEFSYM	%OPOJB==:002000		;ALLOW OTHER JOBS TO OPEN ME ON THE OJB DEVICE.
				;OPENING ME ON OJB DEVICE TURNS ME INTO A JOB DEVICE.
DEFSYM	%OPLOK==:001000		;ENABLE SWITCH-UNLOCKING FEATURE
		.SEE IODCSW	;SEE COMMENT THERE FOR DESCRIPTION.
DEFSYM	%OPLIV==:000400		;DON'T KILL THIS TOP LEVEL JOB WHEN SYS GOES DOWN
DEFSYM	%OPOPC==:000200		;INTERRUPTS THAT ABORT AN INSTRUCTION SHOULD
				;LEAVE THE PC POINTING TO THAT INSTRUCTION
				;(OTHERWISE IT GETS AOS'ED)
DEFSYM	%OPLSP==:000100		;SUPERIOR SAYS HE'S LISP
DEFSYM	%OPLKF==:000040		;UNLOCK LOCKS ON FATAL INTERRUPT

;;; LOSING ERROR CODES

DEFSYM	%LS==:777400		;RH OF .LOSE INSTRUCTION
DEFSYM	%LSINT==:1
DEFSYM	%LSSYS==:1000		;INTERPRET LAST OPEN LOSS CODE, USING .BCHN
DEFSYM	%LSFIL==:1400		; DO THAT AND PRINT FILE NAMES FROM CALL'S CHNL

;;; FIRST RESULT OF .CALL WHYINT

DEFSYM	%WY==:,-1
DEFSYM	%WYTYI==:1		;TTY INPUT
DEFSYM	%WYTYO==:2		;TTY OUTPUT
DEFSYM	%WYSTI==:3		;STY INPUT
DEFSYM	%WYSTO==:4		;STY OUTPUT
DEFSYM	%WYNET==:5		;ARPANET
DEFSYM	%WYCHA==:6		;CHAOS NET
;I/O MODES FOR OPENS.

DEFSYM	.UAI==0			;UNIT ASCII INPUT.
DEFSYM	.UAO==1			;UNIT ASCII OUTPUT.
DEFSYM	.BAI==2			;BLOCK ASCII INPUT.
DEFSYM	.BAO==3			;BLOCK ASCII OUTPUT.
DEFSYM	.UII==4			;UNIT IMAGE INPUT.
DEFSYM	.UIO==5			;UNIT IMAGE OUTPUT.
DEFSYM	.BII==6			;BLOCK IMAGE INPUT.
DEFSYM	.BIO==7			;BLOCK IMAGE OUTPUT.


;ARGUMENT CODES FOR .BREAK 12,'S.
;..R AND ..S ARE BIT TYPEOUT MASKS, NOT MADE PREDEFINED TO MIDAS
;SINCE THEY ARE USEFUL ONLY IN DDT, WHICH DEFINES THEM ITSELF.

..R==0				;(FOR .SEE)
DEFSYM	..RSTART==1		;READ STARTING ADDRESS
DEFSYM	..RLFILE==2		;READ LOADED FILE'S NAMES
DEFSYM	..RSTP==3		;READ SYMBOL TABLE POINTER
DEFSYM	..RSYM==4		;READ VALUE OF SYMBOL.
DEFSYM	..RJCL==5		;READ JOB COMMAND LINE.
DEFSYM	..RPFILE==6		;READ :PRINT FILENAME DEFAULTS.
DEFSYM	..RSTB==7		;READ WHOLE SYMBOL TABLE.
DEFSYM	..RCONV==10		;READ NAME OF SYMBOL CLOSEST IN VALUE TO ARGUMENT.
DEFSYM	..RLJB==13		;READ IDX OF PREVIOUSLY CURRENT JOB.

..S==0				;(FOR .SEE)
DEFSYM	..SSTART==400001	;SET STARTING ADDRESS
DEFSYM	..SLFILE==400002	;SET LOADED FILE'S NAMES
DEFSYM	..SSYM==400004		;SET VALUE OF SYMBOL.
DEFSYM	..SJCL==400005		;CLEAR JOB COMMAND LINE.
DEFSYM	..SPFILE==400006	;SET :PRINT FILENAME DEFAULTS.
DEFSYM	..SSTB==400007		;PASS WHOLE SYMBOL TABLE TO SUPERIOR.


;.CALL JOBGET
;ARG 1 - BOJ CHNL
;UP TO SIX WDS RETURNED
;WD1 BITS:
DEFSYM	%JG==:1,,525252
		;4.9-4.7 => IMAGE/ASCII, BLOCK/UNIT, OUTPUT/INPUT
		;    4.9-4.7 SHOULDN'T BE USED, SINCE THE FULL MODE IS IN WD7 ON AN OPEN
DEFSYM	%JGCLS==:40000	;4.6 => CLOSE  (NOTE 4.5 USED TO BE A CLS BIT ALSO)
DEFSYM	%JGSIO==:1000	;4.1 => SIOT (ONLY IF OPCODE = 1)
DEFSYM	%JGFPD==:200	;3.8 => THIS CALL WAS PCLSRED AND IS RESTARTING
;1.4-1.1 => TYPE OF OPERATION
DEFSYM	%JO==:,,-1
DEFSYM	%JOOPN==:0	;OPEN
DEFSYM	%JOIOT==:1	;IOT/SIOT
DEFSYM	%JOLNK==:2	;MLINK
DEFSYM	%JORST==:3	;RESET
DEFSYM	%JORCH==:4	;RCHST
DEFSYM	%JOACC==:5	;ACCESS
DEFSYM	%JORNM==:6	;FDELE (DELETE OR RENAME)
DEFSYM	%JORWO==:7	;FDELE (RENAME WHILE OPEN)
DEFSYM	%JOCAL==:10	;SYMBOLIC .CALL
;MODE BITS FOR TTY OPENS:
;3.1 0 -> IN 1 -> OUT
;3.2 0 -> UNIT 1 -> BLOCK

;OUTPUT
;3.3 => IMAGE MODE (SET ALL %TGIMG BITS IN TTYST1 AND TTYST2)
;3.4 0 -> NORMAL 1 -> ECHO MODE OUTPUT (SET %TJECH, %TJPP2, %TJMOR).
;3.5 0 -> NORMAL 1 -> DISPLAYMODE, LOOK FOR ^P (SET %TJDIS).
;3.6 0 -> NORMAL 1 -> SUPER-IMAGE OUTPUT (SET %TJSIO).
;OUTPUT IOCHNM BITS MAY ALSO BE SPECIFIED, EXCEPT FOR
;%TJCNS, %TJCP1, AND %TJCP2

;INPUT
;3.3 => IMAGE MODE (CLEAR ALL ECHO BITS IN TTYST1, TTYST2).
;3.4 => "DDT" (DON'T ECHO CR, LF, TAB)
;3.6 => WANT 3 LINES IN ECHO AREA.
;INPUT IOCHNM BITS MAY ALSO BE SPECIFIED, EXCEPT FOR %TICNS.

;BITS 3.4 AND 3.6 ON INPUT, AND BIT 3.3, HAVE EFFECT
;ONLY ON THE FIRST OPEN IN EITHER DIRECTION.
;(THEY ARE OBSOLETED BY THE TTYSET SYSTEM CALL)

;BITS IN LH OF A TTY CHANNEL IOCHNM WORD
;THESE BITS MAY BE TEMPORARILY COMPLEMENTED BY SPECIFYING
;THEM IN THE CONTROL-BIT ARGUMENT TO A SYMBOLIC IOT
;(EXCEPT FOR %TICNS AND $TIIDX).
DEFSYM	%TI==:1,,525277		;BIT TYPEOUT MASK
DEFSYM	%TJ==:1,,525277		;BIT TYPEOUT MASK

DEFSYM	%TICNS==:400000	;4.9 1-> CONSOLE 0 -> DEVICE
DEFSYM	%TJCNS==:400000	;4.9 1-> CONSOLE 0 -> DEVICE

;THE FOLLOWING INTERPRETATIONS OF BITS ARE FOR OUTPUT ONLY.
DEFSYM	%TJCP1==:200000	;^P-CODE ANTICIPATION STATE.
DEFSYM	%TJCP2==:100000	; ".  0=>NORMAL, 1=> CHAR AFTER ^P, 2=> ^PH, 3=>^PV.
DEFSYM	%TJECH==:40000	;SET => ECHO MODE OUTPUT.-MODE OUTPUT (ALL CHARS OUTPUT THE
			;WAY THEY WOULD BE ECHOED)
DEFSYM	%TJCTN==:20000	;SET => DON'T DO LINE-CONTINUATION.
DEFSYM	%TJSTP==:10000	;SET => THIS CHANNEL IS HUNG IN **MORE**.
DEFSYM	%TJDIS==:4000	;SET => LOOK FOR ^P CODES.
DEFSYM	%TJSIO==:2000	;SET => SUPERIMAGE OUTPUT, NO PADDING OR CURSOR CTL.
DEFSYM	%TJMOR==:1000	;SET => DON'T DO **MORE** PROCESSING.
DEFSYM	%TJPP2==:400	;SET => USE ALTERNATE PC PPR (THE ECHO AREA)
DEFSYM	%TJINK==:200	;SET => NEXT CHAR OUT TAKEN AS PRINTING REGARDLESS (^PI)
DEFSYM	%TJHDE==:100	;SET => ACCOUTING FOR CURSOR MOTION DUE TO
			;CHAR ECHOED ON A HALF-DUPLEX TTY.

;INPUT
DEFSYM	%TIECH==:40000	;CAN READ EVEN IF CHAR NEEDS PI ECHOING.
DEFSYM	%TIPEK==:20000	;DON'T REMOVE CHAR FROM BUFFER.
DEFSYM	%TIACT==:4000	;SET => DON'T WAIT FOR ACTIVATION CHARACTER.
DEFSYM	%TIINT==:2000	;SET => CAN READ A CHAR EVEN IF IT IS SUPPOSED TO INTERRUPT & HASN'T YET.
DEFSYM	%TINWT==:1000	;SET => IF NO INPUT AVAILABLE, DON'T WAIT, JUST RETURN -1.
DEFSYM	%TIFUL==:400	;SET => GIVE FULL CHARACTER (SIGNIFICANT ON IMLAX, TVS)

DEFSYM	$TIIDX==:220600	;3.6-3.1 CONSOLE #, OR 77 FOR A "DISOWNED" CONSOLE TTY CHNL
;IE, ONE THAT CORRESPONDS TO NO REAL TTY. THEY EXIST ONLY IN
;TREES WITH NO TTY, IN JOBS THAT CAM FROM TREES WITH TTYS.
DEFSYM	%TIIDX==:1	;FOR BIT TYPEOUT MODE
DEFSYM	%TJIDX==:1	;FOR BIT TYPEOUT MODE
DEFSYM	%TINON==:77	;"TTY #" FOR A CHANNEL WITH NO REAL TTY.
;EACH CHARACTER IN THE INPUT BUFFER OCCUPIES 18 BITS
;THE UPPER BITS ARE AS FOLLOWS (NOTE THAT AN IOTTED
;CHARACTER MAY ACTUALLY CONTAIN %TXPIE, %TXMPE, OR %TXINT)
DEFSYM	%TX==:525200		;BIT TYPEOUT MASK
DEFSYM	%TXMPE==:400000	;MAIN PROGRAM ECHO CHARACTER
DEFSYM	%TXPIE==:200000	;PI ECHO CHARACTER
; DEFSYM %TXCOM==:100000	;COM MODE ECHO CHAR; DO PI ECHO EVEN IF HDX TTY.
; DEFSYM %TXIGN==:40000	;IGNORE THIS CHAR AT .IOT TIME.
; DEFSYM %TXACT==:20000	;THIS IS AN ACTIVATION CHAR.
; THESE CAN'T BE NEEDED EXCEPT INSIDE THE SYSTEM.
DEFSYM	%TXINT==:10000	;THIS CHAR SHOULD INTERRUPT THE USER.

;NOW COME THE BITS OF THE CHARACTER ITSELF:
DEFSYM	%TXTOP==:4000	;"TOP" KEY.
DEFSYM	%TXSFL==:2000	;"SHIFT-LOCK" KEY.
DEFSYM	%TXSFT==:1000	;"SHIFT" KEY.
DEFSYM	%TXMTA==:400	;"META" KEY.
DEFSYM	%TXCTL==:200	;"CONTROL" KEY.
DEFSYM	%TXASC==:177	;THE ASCII PART OF THE CHARACTER.

;DISPLAY COMMANDS (WHICH LIVE IN THE OUTPUT BUFFER).
;NOTE THAT ALL OF THEM HAVE 200-BIT SET.
DEFSYM	%TD==:777400
DEFSYM	%TDMOV==:200	;MOVE CURSOR
DEFSYM	%TDMV1==:201	;DUMMY COMMAND CREATED BY TYMOV.
			;MAKES IT POSSIBLE FOR TYMOV TO STOP WHEN BUFFER FULL
			;AND BE REENTERED NEXT INTERRUPT.
DEFSYM	%TDEOF==:202	;CLEAR REST OF PAGE
DEFSYM	%TDEOL==:203	;CLEAR REST OF LINE
DEFSYM	%TDDLF==:204	;DELETE FORWARD (FOR IMLACS AND TVS)
DEFSYM	%TDMTF==:205	;MOTOR OFF (FOR TERMINETS)
DEFSYM	%TDMTN==:206	;MOTOR ON (FOR TERMINETS)
DEFSYM	%TDCRL==:207	;CRLF ON DATAPOINTS, IMLACS.
DEFSYM	%TDNOP==:210	;NO-OP FOR SUPERDUPERIMAGE MODE.
DEFSYM	%TDBS==:211	;BACKSPACE (FOR TTY'S WITH %TORAW SET).
DEFSYM	%TDLF==:212	;LINEFEED (").
DEFSYM	%TDRCR==:213	;CARRET (").
DEFSYM	%TDORS==:214	;"OUTPUT RESET" FOR SAKE OF SOFTWARE TTYS
DEFSYM	%TDQOT==:215	;MYSTERY COMMAND -- SEND IN A JINGLE IN 25 WORDS OR LESS AND WIN
DEFSYM	%TDFS==:216	;CURSOR FORWARD ONE COLUMN
DEFSYM	%TDMV0==:217	;MOVE CURSOR, FOLLOWED BY NEW VERT POS, NEW HOR POS
DEFSYM	%TDCLR==:220	;CLEAR THE SCREEN
DEFSYM	%TDBEL==:221	;DING THE BELL
DEFSYM	%TDINI==:222	;SYSTEM JUST CAME UP, RE-INITIALIZE INTELLIGENT TERMINAL
DEFSYM	%TDILP==:223	;INSERT LINE-POSITION, FOLLOW BY COUNT
DEFSYM	%TDDLP==:224	;DELETE LINE-POSITION, FOLLOW BY COUNT
DEFSYM	%TDICP==:225	;INSERT CHARACTER-POSITION, FOLLOW BY COUNT
DEFSYM	%TDDCP==:226	;DELETE CHARACTER-POSITION, FOLLOW BY COUNT
DEFSYM	%TDBOW==:227	;ENTER BLACK ON WHITE MODE
DEFSYM	%TDRST==:230	;DESELECT ALL SPECIAL MODES (SUCH AS BLACK-ON-WHITE).
DEFSYM	%TDGRF==:231	;ENTER GRAPHICS MODE
DEFSYM	%TDMAX==:232	;1 + LARGEST DISPLAY CODE.
;THE TCTYP WORD FOR A TTY CONTAINS A NUMBER WHICH SAYS HOW TO
;PERFORM CURSOR-CONTROL FUNCTIONS ON THE TTY. THE POSSIBILITIES ARE:
DEFSYM	%TN==:777777
DEFSYM	%TNPRT==:0	;PRINTING TTY.
DEFSYM	%TNDP==:1	;TTY USES DATAPOINT CURSOR CTL CODES.
DEFSYM	%TNODP==:2	;TTY IS A LOSING DATAPOINT.
DEFSYM	%TNIML==:3	;TTY USES IMLAC CURSOR CODES.
DEFSYM	%TNTEK==:4	;TEKTRONIX 4000 SERIES
DEFSYM	%TNTV==:5	;TTY IS A KNIGHT TV DISPLAY.
DEFSYM	%TNMEM==:6	;TTY IS A MEMOWRECK.
DEFSYM	%TNSFW==:7	;"SOFTWARE" TTY THAT WANTS I.T.S. CURSOR-MOTION CODES.
DEFSYM	%TNTRM==:10	;TTY IS A TERMINET.
DEFSYM	%TNESC==:11	;TTY WANTS ASCII STANDARD ESCAPE SEQUENCES. (E.G. VT52)
DEFSYM	%TNDTM==:12	;DATAMEDIA
DEFSYM	%TNMAX==:13


;TTYOPT WORD DESCRIBES CHARACTERISTICS OF THE PARTICULAR
;TERMINAL ATTACHED TO EACH LINE.

;LEFT HALF BITS ARE:
DEFSYM	%TO==:1,,525252		;BIT TYPEOUT MASK
DEFSYM	%TOALT==:200000	;4.8 => STANDARDIZE ALTMODES.
DEFSYM	%TOCLC==:100000	;4.7 => CONVERT LOWER CASE TO UPPER.
DEFSYM	%TOERS==:40000	;4.6 => THIS TTY CAN SELECTIVELY ERASE.
DEFSYM	%TOHDX==:20000	;4.5 => THIS TTY IS HALF-DUPLEX.
DEFSYM	$TOHDX==:370100
DEFSYM	%TOMVB==:10000	;4.4 => THIS TTY CAN BACKSPACE.
DEFSYM	%TOSAI==:4000	;4.3 => THIS TTY HAS SAIL CHAR SET ON OUTPUT.
DEFSYM	%TOSA1==:2000	;4.2 INIT %TSSAI OF NEW JOBS.
DEFSYM	%TOOVR==:1000	;4.1 => THIS TTY CAN OVERPRINT SUCCESSFULLY.
DEFSYM	%TOMVU==:400	;3.9 => THIS TTY CAN MOVE CURSOR UP (I.E. IT'S A DISPLAY).
DEFSYM	%TOMOR==:200	;3.8 => DO **MORE** PROCESSING ON THIS TTY
			;(ACTUALLY JUST USED TO INIT %TSMOR FOR NEW JOBS).
DEFSYM	%TOROL==:100	;3.7 SIMILARLY, INIT %TSROL FOR NEW JOBS.
DEFSYM	%TORAW==:40	;3.6 => SUPPRESS CURSOR MOTION OPTIMIZATION.
DEFSYM	%TOLWR==:20	;3.5 => THIS TTY HAS LOWER CASE KEYBOARD.
DEFSYM	%TOFCI==:10	;3.4 => KEYBOARD CAN GENERATE FULL 12-BIT CHARACTER SET
DEFSYM	%TOIML==:4	;3.3 => SPACE, BS DON'T EQUAL ^PF, ^PB; ALSO ^PC SENDS ^L.
DEFSYM	%TOLID==:2	;3.2 => %TDILP, %TDDLP WORK (INSERT AND DELETE LINES)
DEFSYM	%TOCID==:1	;3.1 => %TDICP, %TDDCP WORK (INSERT AND DELETE CHARACTERS)

;RIGHT HALF:
DEFSYM	%TP==:707252		;BIT TYPEOUT MASK
DEFSYM	%TPPLF==:100000
DEFSYM	$TPPLF==:170300	;3-BIT FIELD SAYING HOW TO PAD LF.
			;0 - DON'T. 1 - MEMOWRECK, 2741. 2 - TERMINET.
DEFSYM	%TPPCR==:10000
DEFSYM	$TPPCR==:140300	;3-BIT FIELD SAYING HOW TO PAD CR.
			;7 - UNUSED. 6 - MEMOWRECK. 5 - 2741. 4 - EXECUPORT.
			;0 - DON'T. 1 - NORMAL. 2 - DOUBLE.
			;ON DATAPOINTS, = # CHARS PADDING NEEDED FOR ALL CURSOR MOTION.
			;4 IS RIGHT FOR 2400 BAUD; 3, FOR 1200.
			;ON TERMINETS, 0 => NO PADDING, ELSE 1,2,3,4,5
			;ARE PADDING FOR SPEEDS 10,15,30,60,120 CPS.
DEFSYM	%TPPCW==:6	;FOR MEMO WRECK.
DEFSYM	%TPPTB==:1000
DEFSYM	$TPPTB==:110300	;3 BIT FIELD SAYING HOW MUCH PADDING NEEDED AFTER TAB.
			;0 => TABS NOT ALLOWED; ELSE 1 +<# PADDING CHARS NEEDED>
			;BUT ON A DISPLAY, TABS ARE NEVER PADDED AND THIS FIELD IS
			;1 TO USE TABS, 2 TO USE ABSOLUTE CURSOR POSITIONING,
			;3 TO USE BOTH, 0 TO USE NEITHER.
DEFSYM	%TPPRN==:200	;1.8 => INTERCHANGE () WITH [] ON INPUT
DEFSYM	%TPTEL==:100	;1.7 => HANDLE CR-LF ON INPUT AS CR, FOR TELNET PROTOCOL
DEFSYM	%TPCBS==:40	;1.6 => ENABLE SPECIAL HANDLING OF CONTROL BACK SLASH ON INPUT
			 ;(THE "INTELLIGENT TERMINAL PROTOCOL").
DEFSYM	%TP11T==:20	;1.5 => PDP-11 TV TTY. REFLECTS %TY11T.
			;NOT SETTABLE BY USER.
DEFSYM	%TPORS==:10	;1.4 => OUTPUT RESET ON THIS TTY SHOULD REALLY DO SOMETHING.

;DEFINE BITS WHICH ARE USER-OPTIONS
DEFSYM	%TOUSR==:%TOCLC+%TOSA1+%TOMOR+%TOROL
DEFSYM	%TPUSR==:%TPPRN+1	;THE 1 IS TO AVOID INTEFERING WITH BIT-TYPE-OUT
DEFSYM	%TQ==1,,701725	;TTY "SMARTS" BITS IN LH(TTYSMT)
DEFSYM	%TQIM1==300000	;TTY IS A PDS1
DEFSYM	%TQIM4==200000	;TTY IS A PDS4
DEFSYM	%TQP11==100000	;TTY IS A PDP11
DEFSYM	%TQMCH==700000	;4.7-4.9 MACHINE TYPE, 0 => NOTHING SPECIAL
DEFSYM	%TQGPH==1	;3.1 UNDERSTANDS GRAPHICS PROTOCOL
DEFSYM	%TQSET==2	;3.2 HAS MULTIPLE OBJECT SETS
DEFSYM	%TQREC==4	;3.3 HAS RECTANGLE COMMANDS
DEFSYM	%TQXOR==10	;3.4 HAS XOR MODE
DEFSYM	%TQBNK==20	;3.5 HAS BLINKING
DEFSYM	%TQVIR==40	;3.6 VIRTUAL COORDINATES
DEFSYM	%TQHGT==76000	;4.2-4.6 CHARACTER HEIGHT IN DOTS
DEFSYM	%TQWID==1700	;3.7-4.1 CHARACTER WIDTH IN DOTS

DEFSYM	%TR==525252	;RH(TTYSMT)
DEFSYM	%TRGIN==400000	;2.9 HAS GRAPHIC INPUT
DEFSYM	%TRGHC==200000	;2.8 HAS GRAPHIC HARDCOPY

;GROUP NUMBER		   CHARACTERS
;[	0		^A-^F ^K-^L ^N-^R ^T-^Z ^] ^^ ^_ ^@ ^\
;	1		A-Z   LOWER CASE A-Z
;	2		0-9
;	3		!"#$(DOLLAR)%&',.:;?@\ (ACCENT GRAVE) (VERTICAL BAR) (TILDE)
;	4		*+-/=^_
;	5		<>[]() (LEFT BRACE) (RIGHT BRACE)
;	6		^G ^S
;	7		LF ^I(TAB)
;	10		(ALTMODE)
;	11		CR
;	12		RUBOUT
;	13		SPACE ^H(BACKSPACE)

;TTYST1 HAS GROUPS 0 THROUGH 5 FROM LEFT TO RIGHT
;TTYST2 HAS 6 THROUGH 13
;EACH GROUP HAS SIX BITS AS FOLLOWS:
DEFSYM	%TG==:777725		;BIT TYPEOUT MASK
DEFSYM	%TGINT==:1	;N.1 => INTERRUPT ON THIS GROUP
DEFSYM	%TGACT==:2	;N.2 => ACTIVATE ON THIS GROUP (FOR SWAPPING)
DEFSYM	%TGSPC==:4	;N.3 => SPECIAL HACKS.  (THIS SET ON GROUP 1 => CONVERT LOWER CASE)
DEFSYM	%TGIMG==:10	;N.4 => IMAGE MODE OUTPUT (N.4=0  => ASCII MODE)
			;N.6-N.5 => ECHO MODE
			;	00 => NO ECHO
DEFSYM	%TGPIE==:20	;	01 => PI  ECHO (ECHO CHARACTER WHEN TYPED)
DEFSYM	%TGMPE==:40	;	10 => MAIN PROGRAM ECHO (ECHO WHEN MAIN PROGRAM RECEIVES CHARACTER)

;TTYSTS HAS RANDOM BITS ASSOCIATED WITH THE TELETYPE
DEFSYM	%TS==:1,,525252		;BIT TYPEOUT MASK
DEFSYM	%TSFRE==:400000	;4.9 => TTY FREE
DEFSYM	%TSCLE==:200000	;4.8 => ECHO ^L AS UPARROW-L EVEN ON DISPLAYS
			;(OTHERWISE WOULD ECHO AS CLEAR SCREEN)
DEFSYM	%TSHDX==:100000	;4.7 REFLECTS %TOHDX BIT.
DEFSYM	%TSFCO==:040000	;4.6 => HANDLE 9-BIT CHARS ON OUTPUT, USING ALPHA, BETA.
DEFSYM	%TSALT==:020000	;4.5 => DON'T STANDARDIZE ALTMODE.
DEFSYM	%TSROL==:010000	;4.4 => SCROLL MODE.
DEFSYM	%TSSAI==:004000	;4.3 => ECHO AND ASCII MODE SHOULD USE SAIL CHAR SET.
DEFSYM	%TSACT==:002000	;4.2 => GOBBLE NEXT CHAR REGARDLESS OF ACTIVATION STATUS
DEFSYM	%TSINT==:000400	;3.9 => INT ON NEXT CHAR REGARDLESS
DEFSYM	%TSMOR==:000200	;3.8 => INHIBIT **MORE**.
DEFSYM	%TSATY==:000100	;3.7 SET BY .ATTY, SAYS TTY WAS TAKEN AWAY & RETURNED.
			;3.6-3.5 UNUSED.
DEFSYM	%TSNOE==:000010	;3.4 => DEFER ECHOING, AND MAKE INPUT IOT'S ACT AS IF %TIECH=1.
DEFSYM	%TSLCZ==:000004	;3.3 => LAST CHARACTER TYPED WAS ^Z (NOT PRECEEDED BY ^_)
DEFSYM	%TSSII==:000002	;3.2 => SUPER IMAGE INPUT MODE
DEFSYM	%TSCNS==:000001	;3.1 => CONSOLE
DEFSYM	$TSCNS==:220100
			;RH => USER INDEX
			;	-1 => NO USER
;TTYCOM VARIABLE.
;4.9 => TTY IN COMMUNICATE MODE
DEFSYM	%TC==:1,,525252		;BIT TYPEOUT MASK
DEFSYM	%TCLFT==:200000	;4.8 => LOCAL FEED THROUGH (SET IF MY PRGM RECEIVING HIS CHRS)
DEFSYM	%TCRFT==:100000	;4.7 => REMOTE FEED THROUGH (SET IF HIS PRGM RECEIVING MY CHRS)
DEFSYM	%TCICO==:40000	;4.6 => INPUT COMMUNICATE OVERRIDE (SET IF MY CONSOLE FEEDING
			; MY PRGM EVEN THO IN COMM MODE).  ALSO IMPLIES OUTPUT OVER-RIDE
DEFSYM	%TCOCO==:20000	;4.5 => OUTPUT COMMUNICATE OVERRIDE (SET IF MY PRGM'S OUTPUT TO APPEAR ON MY CONSOLE ONLY EVEN THO IN COM MODE)
;4.4-4.3 => MESSAGE RECEIPT SWITCH
			;00 => ACCEPT
DEFSYM	%TCRFS==:10000	;10 => REFUSE
DEFSYM	%TCQRY==:4000	;01 => INTERROGATE
DEFSYM	%TCMTR==:2000	;4.2  SET FOR TTY WHOSE MOTOR IS OFF & MUST BE TURNED
;ON BEFORE ANY OTHER OUTPUT IS DONE.
;(ONLY TERMINETS HAVE THEIR MOTORS SHUT OFF BY ITS).
DEFSYM	%TCECH==:1000	;4.1 THE OUTPUT BUFFER CONTAINS ECHOING OUTPUT.
			;THIS MAKES OUTPUT RESET DO NOTHING.
			;THE BUFFER MUST NOT CONTAIN ECHO OUTPUT AND NORMAL OUTPUT AT ONE TIME.
DEFSYM	%TCDET==:200	;3.8 CONSOLE'S TREE DETACHED BY TOP LEVEL INTERRUPT.
		;SET BY NDETAC AS SIGNAL TO SYSCFM (CNSL-FREE-MSG TYPER)
DEFSYM	%TCDNG==:100	;3.7 => TYPE BELL ON TTY (BECAUSE INPUT BFR FULL).
DEFSYM	%TCCBK==:40	;3.6 => READING UNAME OR TTY # AFTER ^_K.
DEFSYM	%TCCBS==:20	;3.5 => READING UNAME OR TTY # AFTER ^_S.
DEFSYM	%TCFPD==:10	;3.4 => FIRST PART OF MULTI-CHAR OUTPUT SEQUENCE DONE.
DEFSYM	%TCTPN==:4	;3.3 TYPE ^_N ON LEAVING COM MODE (UNLESS USER EXPLICITLY TYPES ^_N)
DEFSYM	%TCPAD==:2	;3.2  0 => PADDING NECESSARY ON DATAPOINT.
DEFSYM	%TCHNG==:1	;3.1 TTY'S DONE FLAG APPEARS TO BE FRIED, TIME OUT QUICKLY
;RH => USER INDEX COMMUNICATING WITH (-1 NONE)

;TTYTYP TABLE
;THIS TABLE HOLDS BITS THAT DESCRIBE THE LINE
;AND ITS CONTROLLER, RATHER THAN THE TTY ATTACHED TO THE LINE.
DEFSYM	%TT==:1,,525270		;BIT TYPEOUT MASK
DEFSYM	%TTLCL==:400000	;BIT 4.9 ONE => LOCAL TTY
DEFSYM	%TT340==:200000	;BIT 4.8 ONE => CONSOLE NEXT TO 340 OR A 340 SLAVE
DEFSYM	%TT3HP==:100000	;BIT 4.7 HIGH PRIORITY ON 340
DEFSYM	%TTPAR==:004000	;BIT 4.3
DEFSYM	%TTDDI==:002000	;BIT 4.2 DONT DING ON EXCESS INPUT
DEFSYM	$TTISP==:260400	;3.8-3.5 INPUT SPEED CODE
DEFSYM	%TTISP==:20
DEFSYM	$TTOSP==:220400	;3.4-3.1 OUTPUT SPEED CODE
DEFSYM	%TTOSP==:1
;RIGHT HALF BITS
DEFSYM	%TY==:525252		;BIT TYPEOUT MASK
DEFSYM	%TYDPK==:400000	;BIT 2.9 (DATAPOINT KLUDGE TTY LINE)
DEFSYM	%TYSTY==:200000	;BIT 2.8 PSEUDO TTY
DEFSYM	%TYNVA==:100000	;BIT 2.7 NOVA TTY
DEFSYM	%TYMTY==:040000	;BIT 2.6 MORTON BOX
DEFSYM	%TYDIL==:020000	;BIT 2.5 DIAL UP
DEFSYM	%TY11T==:010000	;BIT 2.4 PDP-11 TV TTY.
DEFSYM	%TYDL==:004000	;BIT 2.3 DL-11 TTY
DEFSYM	%TYOTY==:002000	;BIT 2.2 KA-10 CONSOLE TTY
DEFSYM	%TYETY==:001000	;BIT 2.1 DTE20 TTY
DEFSYM	%TYNTY==:000400	;BIT 1.9 TK-10 TTY
DEFSYM	%TYMDM==:000200	;BIT 1.8 LINE DETECTS DIALINS AND HANGUPS

;SPEED CODES ARE DOCUMENTED ON PAGE 3 OF ITS (DEFINE SPEED1)
;SUPDUP GRAPHICS PROTOCOL COMMANDS:

DEFSYM	%GO==:,,-1

DEFSYM  %GODLR==:101	;<p>  Draw line relative, from the cursor to <p>.
DEFSYM  %GODPR==:102	;<p>  Draw point relative, at <p>.
DEFSYM  %GODRR==:103	;<p>  Draw rectangle relative, corners at <p> and
			;     at the current cursor position.
DEFSYM	%GODCH==:104	;<string> <0>
			;Display the chars of <string> starting at the current
			;graphics cursor position.

DEFSYM	%GODLA==:121	;<p>  Draw line absolute, from the cursor to <p>.
			;     The same effect as %GODLR, but the arg absolute.
DEFSYM	%GODPA==:122	;<p>  Draw point absolute, at <p>.
DEFSYM	%GODRA==:123	;<p>  Draw rectangle absolute, corners at <p> and
			;     at the current cursor position.

DEFSYM	%GOELR==:141	;<p>  Erase line relative, from the cursor to <p>.
DEFSYM	%GOEPR==:142	;<p>  Erase point relative, at <p>.
DEFSYM	%GOERR==:143	;<p>  Erase rectangle relative, corners at <p> and
			;     at the current cursor position.
DEFSYM	%GOECH==:144	;<string> <0>
			;Erase the chars of <string> starting at the current
			;graphics cursor position.

DEFSYM	%GOELA==:161	;<p>  Erase line absolute, from the cursor to <p>.
DEFSYM	%GOEPA==:162	;<p>  Erase point absolute, at <p>.
DEFSYM	%GOERA==:163	;<p>  Erase rectangle absolute, corners at <p> and
			;     at the current cursor position.

DEFSYM	%GOMVR==:001	;<p>  Move cursor to point <p>
DEFSYM	%GOMVA==:021	;<p>  Move cursor to point <p>, absolute address.
DEFSYM	%GOXOR==:002	;     Turn on XOR mode.  Bit matrix terminals only.
DEFSYM	%GOIOR==:022	;     Turn off XOR mode.
DEFSYM	%GOSET==:003	;<n>  Select set.  <n> is a 1-character set number, 0 - 177.
DEFSYM	%GOMSR==:004	;<p>  Move set origin to <p>.  Display list terminals only.
DEFSYM	%GOMSA==:024	;<p>  Move set origin to <p>, absolute address.
DEFSYM	%GOINV==:006	;     Make current set invisible.
DEFSYM	%GOVIS==:026	;     Make current set visible.
DEFSYM	%GOBNK==:007	;     Make current set blink.  Canceled by %GOINV or %GOVIS.
DEFSYM	%GOCLR==:010	;     Erase whole screen.
DEFSYM	%GOCLS==:030	;     Erase entire current set (display list terminals).
DEFSYM	%GOPSH==:011	;     Push all input-stream status information, to be
			;     restored when graphics mode is exited.
DEFSYM	%GOVIR==:012	;     Start using virtual co-ordinates
DEFSYM	%GOPHY==:032	;     Resume giving co-ordinates in units of dots.
DEFSYM	%GOHRD==:013	;<n>  Divert output to output subdevice <n>.
			;     <n>=0 reselects the main display screen.
DEFSYM	%GOGIN==:014	;<n>  Request graphics input (mouse, tablet, etc).
			;     <n> is the reply code to include in the answer.
DEFSYM	%GOLMT==:015	;<p1> <p2>
			;Limits graphics to a subrectangle of the
			;screen.  %GOCLR will clear only that area.
			;This is for those who would use the rest for text.
;THE TTYTBL VARIABLE EXISTS FOR EACH JOB.
;IT DESCRIBES THE ATTY-DTTY STATE OF THE JOB
;AND OTHER THINGS THAT HAVE TO DO WITH THE TREE'S
;CONTROLLING TTY ONLY.
DEFSYM	%TB==:1,,525277		;BIT TYPEOUT MASK
DEFSYM	%TBNOT==:400000	;4.9 THIS JOB DOES NOT HAVE THE TTY NOW.
DEFSYM	%TBNVR==:200000	;4.8 IF JOB DOESN'T HAVE TTY, OPENS SHOULD FAIL.
DEFSYM	%TBINT==:100000	;4.7 IF JOB DOESN'T HAVE TTY, ATTEMPT TO USE TTY SHOULD INTERRUPT.
DEFSYM	%TBWAT==:040000	;4.6 IF SET, OVERRIDES %TBINT AND %TBNVR, AND FORCES TTY USAGE
			;ATTEMPTS TO HANG. MAY BE ALTERED ONLY BY SUPERIOR.
DEFSYM	%TBDTY==:010000	;4.4 THE JOB DOESN'T HAVE THE TTY, BUT IT IS IN A DTTY'ING
			 ;STATE. IN OTHER WORDS, THIS JOB DOESN'T WANT TO
			 ;GIVE THE TTY TO ONE OF ITS INFERIORS.
DEFSYM	%TBOUT==:004000	;4.3 ALLOW TYPEOUT EVEN IF DON'T HAVE TTY (SETTABLE BY SUP)
DEFSYM	%TBINF==:002000	;4.2 ALLOW INFERIORS TO TAKE ADVANTAGE OF THEIR %TBOUTS.
DEFSYM	$TBECL==:220600	;3-6-3.1 # ECHO LINES IF I DONT HAVE DISPLAY
DEFSYM	%TBECL==:77

;RH - IF %TBNOT IS 0, THE RH HAS THE TTY NUMBER.
;OTHERWISE, IF %TBDTY IS 0, THE RH HAS THE USR INDEX OF
;THE INFERIOR THAT THIS JOB GAVE OR WOULD LIKE TO GIVE
;THE TTY TO. OTHERWISE, THE RH IS 0.

;BITS IN THE PER-STY VARIABLE STYSTS, RETURNED BY STYGET SYSTEM CALL.
DEFSYM	%SS==:1,,525252			;BIT TYPEOUT MASK
DEFSYM	%SSHNG==:400000		;4.9=1 => DON'T HANG ON INPUT IOTS
DEFSYM	%SSUSE==:200000		;4.8=1 => IN USE
DEFSYM	%SSINT==:100000		;4.7 = 1 => HAVE GIVEN INT ON STY OUTPUT CHNS ALREADY
DEFSYM	%SSONT==:040000		;4.6 = 1 => DITTO FOR STY INPUT (TTY OUTPUT)
DEFSYM	%SSOHG==:20000		;4.5 = 1 => DON'T HANG ON OUTPUT IOT
				;RH = USER INDEX THAT HAS IT OPEN


IFN $$TEMP, EXPUNGE DEFSYM