b986182d3c3baee53ee5cf2b419040a3ccb7bdae
[its.git] / system / bits.117
1 ; -*-MIDAS-*-
2 ;;; Copyright (c) 1999 Massachusetts Institute of Technology
3 ;;;
4 ;;; This program is free software; you can redistribute it and/or
5 ;;; modify it under the terms of the GNU General Public License as
6 ;;; published by the Free Software Foundation; either version 2 of the
7 ;;; License, or (at your option) any later version.
8 ;;;
9 ;;; This program is distributed in the hope that it will be useful,
10 ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
11 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 ;;; General Public License for more details.
13 ;;;
14 ;;; You should have received a copy of the GNU General Public License
15 ;;; along with this program; if not, write to the Free Software
16 ;;; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
17
18
19 ;;; ITS BITS THAT ARE OFTEN NEEDED
20
21 .AUXIL
22
23 ;;; CATALOGUE OF RESERVED BIT NAME AND CONSTANT PREFIXES IN ITS
24
25 .SEE %CA        ;BITS IN CLRAC FOR CORE LINK DEVICE
26 .SEE %CB        ;BITS FOR CORBLK SYMBOLIC SYSTEM CALL
27 .SEE %CL        ;.CALL ARGUMENT TYPES.
28 .SEE %CLS       ;BITS IN LH OF CLSTB ENTRY
29 .SEE %DC        ;DTE20 IOELEVEN COMMANDS
30 .SEE %DF        ;T-300 FAULT (DSCFLT)
31 .SEE %DM        ;T-300 COMMAND (DSCCMD)
32 .SEE %DO        ;DSK OPEN MODE BITS
33 .SEE %DP        ;DATAPOINT CURSOR CONTROL CONSTANTS
34 .SEE %DS        ;T-300 STATUS (DSCSTS)
35 .SEE %DT        ;DTE20 COMMANDS BITS AND CONSTANTS
36 .SEE %DV        ;BITS IN DEVTAB
37 .SEE %E         ;.CALL AND OPEN ERROR CODES
38 .SEE %GO        ;SUPDUP GRAPHICS PROTOCOL COMMANDS
39 .SEE %H1        ;RP04 (RH10/RH11) ERROR REGISTER 1
40 .SEE %H3        ;RP04 (RH10/RH11) ERROR REGISTER 3
41 .SEE %HA        ;RP04 (RH10/RH11) ADDRESS REGISTER
42 .SEE %HC        ;RP04 (RH10) CONTROL REGISTER
43 .SEE %HD        ;RH10 ERROR BITS IN DRIVE REGISTERS
44 .SEE %HI        ;RH10 CONI BITS
45 .SEE %HM        ;RP04 (RH10/RH11) COMMAND CONSTANTS
46 .SEE %HO        ;RH10 CONO BITS
47 .SEE %HR        ;RH10 CONTROLLER AND RP04 DRIVE REGISTER NUMBERS
48                 ; OR RH11 UNIBUS REGISTER ADDRESSES
49 .SEE %HS        ;RP04 (RH10/RH11) STATUS REGISTER BITS
50 .SEE %HW        ;FOR KL AND KS, BITS IN RH OF RESULT OF APRID
51 .SEE %HX        ;RH11 BITS IN %HRCS1
52 .SEE %HY        ;RH11 BITS IN %HRCS2
53 .SEE %IL        ;Interlan NI1010 bits and constants
54 .SEE %IOT       ;BITS IN IOTTB
55 .SEE %IR        ;BITS IN IP ROUTE ENTRY FLAGS
56 .SEE %JB        ;BITS IN JBWST VARIABLE
57 .SEE %JG        ;BITS IN JOBGET FIRST VALUE
58 .SEE %JO        ;OPCODES IN JOBGET FIRST VALUE
59 .SEE %JS        ;SPECIAL VALUES FOR <JOB> SPECS
60 .SEE %KE        ;BITS IN KS10 MEMORY STATUS REGISTER (KSECCS)
61 .SEE %LH        ;BITS AND CONSTANTS FOR ACC LH/DH IMP INTERFACE (KS10)
62 .SEE %MA        ;BITS IN MSRAC (MAGTAPE STATUS TABLE)
63 .SEE %NC        ;NETWORK SOCKET CLOSE REASONS
64 .SEE %NE        ;ETHERNET - constants and bits (%EN taken..)
65 .SEE %NO        ;INTERNET - bits for TCPOPN system call
66 .SEE %NS        ;NETWORK SOCKET STATES
67 .SEE %NT        ;INTERNET - TCP channel states (almost = to %NS.  See also %NX)
68 .SEE %NX        ;INTERNET - TCP connection close reasons (almost = to %NC)
69 .SEE %OP        ;BITS IN LH OF .OPTION USER VARIABLE
70 .SEE %PC        ;KA10 PC FLAGS
71 .SEE %PF        ;KL10 AND KS10 PAGE FAIL WORD BITS (DEFINITIONS DIFFER
72                 ; BETWEEN MACHINES)
73 .SEE %PI        ;BITS IN PIRQC USER VARIABLE
74 .SEE %PJ        ;BITS IN LH OF PIRQC USER VARIABLE
75 .SEE %PS        ;KL10 AND KS10 PC FLAGS
76 .SEE %QA        ;BITS IN QSRAC (DISK STATUS TABLE)
77 .SEE %QM        ;DISK ACTION MODES IN RH OF QSRAC
78 .SEE %RL        ;BITS FOR COMMANDS TO .REALT UUO
79 .SEE %SCV       ;BITS IN SYSCVL TO CONTROL SYMBOLIC SYSTEM CALLS
80 .SEE %SS        ;STY STATUS BITS IN STYSTS
81 .SEE %SW        ;LH(USWST) BITS
82 .SEE %SY        ;NAMES FOR SQUOZE FLAGS IN SYMBOL TABLES (NOT DEFINED IN ITS)
83 .SEE %TA        ;BITS IN TTYSTA
84 .SEE %TB        ;BITS IN TTYTBL USER VARIABLE
85 .SEE %TC        ;BITS IN TTYCOM
86 .SEE %TD        ;SOFTWARE TTY CURSOR CONTROL CODE CONSTANTS
87 .SEE %TF        ;BITS IN TPFLAG
88 .SEE %TG        ;BITS IN TTYST1 AND TTYST2
89 .SEE %TI        ;BITS IN LEFT HALF OF TTY INPUT IOCHNM WORD
90 .SEE %TJ        ;BITS IN LH OF TTY OPTPUT IOCHNM
91 .SEE %TM        ;BITS AND CONSTANTS FOR TM03/RH11 TAPE CONTROLLER (KS10)
92 .SEE %TN        ;CONSTANTS FOR TCTYP
93 .SEE %TO        ;BITS IN LEFT HALF OF TTYOPT
94 .SEE %TP        ;BITS IN RIGHT HALF OF TTYOPT
95 .SEE %TQ        ;BITS IN LEFT HALF OF TTYSMT
96 .SEE %TR        ;BITS IN RIGHT HALF OF TTYSMT
97 .SEE %TS        ;BITS IN TTYSTS
98 .SEE %TT        ;BITS IN LEFT HALF OF TTYTYP
99 .SEE %TX        ;ASCII CHARACTER BITS (META, TOP, CONTROL, ETC.)
100 .SEE %TY        ;BITS IN RIGHT HALF OF TTYTYP
101 .SEE %UB        ;BITS IS KS10 UNIBUS STATUS REGISTER (UBASTA)
102 .SEE %UC        ;FOR KL AND KS, BITS IN LH OF RESULT OF APRID
103 .SEE %UM        ;BITS IN UMAPS VARIABLE, AND ARGS TO PGLD, MPLD1, PLD1.
104 .SEE %UP        ;BITS IN KS10 UNIBUS PAGE MAP (WHEN MAP IS READ) (UBAPAG)
105 .SEE %UQ        ;BITS IN KS10 UNIBUS PAGE MAP (WHEN MAP IS WRITTEN) (UBAPAG)
106 .SEE %UST       ;BITS IN USTP VARIABLE.
107 .SEE %WY        ;WHYINT CODES
108 .SEE $11        ;BYTE POINTERS TO PDP11 FIELDS IN PDP-10 WORDS, ON AI-KA
109                 ;10-11 INTERFACE.
110 .SEE ..R        ;ARGUMENT CODES FOR .BREAK 12, READING.
111 .SEE ..S        ;ARGUMENT CODES FOR .BREAK 12, WRITING.
112 .SEE .XC        ;INTERNET - TCP connection close reasons (almost = to %NC)
113                 ; (Old names.  Use %NX instead.)
114
115 .SEE MMP        ;BITS IN MMP ENTRY 1ST WORD L.H.
116 .SEE OPTTRP     ;BITS IN LH OF .OPTION VARIABLE
117                 ; (Old names.  Use %OP instead)
118 .SEE SCL        ;BITS IN LH OF SUPCOR
119 .SEE SCR        ;BITS IN RH OF SUPCOR
120 \f
121 IFNDEF DEFSYM,[ ;ALLOW USER TO USE SYMBOLS IN OTHER WAYS IF HE WISHES.
122                 ;BUT NORMALLY, DEFSYM FOO==BAR DOES FOO==BAR WITH ERROR CHECK.
123 DEFINE DEFSYM X/
124 IRPS Z,,[X]
125 IFNDEF Z,.QUOTE/.QUOTE/\16X\16
126 .ELSE [
127    $$TEM1==Z
128    .QUOTE/.QUOTE/\16X\16
129    IFN Z-$$TEM1,.ERR Z MULTIPLY .QUOTE`.QUOTE/DEFINED/`
130 ]
131 .ISTOP
132 TERMIN TERMIN
133
134 IFLE .MLLIT,.ERR .MLLIT MUST BE 1; SETTING IT TO 1.
135 .MLLIT==1
136 $$TEMP==1
137 ]
138 .ELSE $$TEMP==0
139 \f
140 ;OPEN-FAILURE CODE NAMES.
141 ;3RD AND 4TH LETTER: "TM" = "TOO MANY", "BD" = "BAD OR ILLEGAL",
142 ;       "TF" = "TOO FEW", "RO" = "READ-ONLY", "NA" = "NOT AVAILABLE",
143 ;       "NS" = "NO SUCH", "EX" = "ALREADY EXISTS", "FL" = "FULL",
144 ;       "NR" = "NOT READY".
145 ;5TH AND 6TH LETTER: "JB" = "JOB", "RG" = "ARG", "DV" = "DEVICE",
146 ;       "DR" = "DIRECTORY", "IO" = "DIRECTION", "FL" = "FILE",
147 ;       "FN" = "FILE NAME"
148 DEFSYM  %E==:-100                       ;BIT TYPEOUT MASK
149 DEFSYM  %ENSDV==:1      ;NO SUCH DEVICE
150 DEFSYM  %ENSIO==:2      ;WRONG DIRECTION
151 DEFSYM  %ETMTR==:3      ;TOO MANY TRANSLATIONS
152 DEFSYM  %ENSFL==:4      ;FILE NOT FOUND
153 DEFSYM  %EFLDR==:5      ;DIRECTORY FULL
154 DEFSYM  %EFLDV==:6      ;DEVICE FULL
155 DEFSYM  %ENRDV==:7      ;DEVICE NOT READY
156 DEFSYM  %ENADV==:10     ;DEVICE NOT AVAILABLE
157 DEFSYM  %EBDFN==:11     ;ILLEGAL FILE NAME
158 DEFSYM  %ENSMD==:12     ;MODE NOT AVAILABLE
159 DEFSYM  %EEXFL==:13     ;FILE ALREADY EXISTS
160 DEFSYM  %EBDCH==:14     ;BAD CHANNEL NUMBER
161 DEFSYM  %ETMRG==:15     ;TOO MANY ARGUMENTS (CALL)
162 DEFSYM  %ENAPK==:16     ;PACK NOT MOUNTED
163                ;17 FORMERLY DIRECTORY NOT AVAIL
164 DEFSYM  %ENSDR==:20     ;NON-EXISTENT DIRECTORY
165 DEFSYM  %ELCDV==:21     ;LOCAL DEVICE ONLY
166 DEFSYM  %ESCO==: 22     ;SELF-CONTRADICTORY OPEN
167 DEFSYM  %ENAFL==:23     ;FILE LOCKED
168 DEFSYM  %ETMDR==:24     ;M.F.D. FULL
169 DEFSYM  %EMCHN==:25     ;DEVICE NOT ASSIGNABLE TO THIS PROCESSOR
170 DEFSYM  %ERODV==:26     ;DEVICE WRITE-LOCKED
171 DEFSYM  %ETMLK==:27     ;LINK DEPTH EXCEEDED
172 DEFSYM  %ETFRG==:30     ;TOO FEW ARGUMENTS (CALL)
173 DEFSYM  %EROJB==:31     ;CAN'T MODIFY JOB
174 DEFSYM  %EROPG==:32     ;CAN'T GET THAT ACCESS TO PAGE
175 DEFSYM  %EBDRG==:33     ;MEANINGLESS ARGS
176 DEFSYM  %EBDDV==:34     ;WRONG TYPE DEVICE
177 DEFSYM  %ENSJB==:35     ;NO SUCH JOB
178 DEFSYM  %EBOJ==: 36     ;VALID CLEAR OR STORED SET
179 DEFSYM  %ENACR==:37     ;NO CORE AVAILABLE
180 DEFSYM  %ETOP==: 40     ;NOT TOP LEVEL
181 DEFSYM  %ENAPP==:41     ;OTHER END OF PIPELINE GONE OR NOT OPEN
182 DEFSYM  %ENAJB==:42     ;JOB GONE OR GOING AWAY
183 DEFSYM  %ENSCL==:43     ;ILLEGAL SYSTEM CALL NAME
184 DEFSYM  %ENSCH==:44     ;CHANNEL NOT OPEN
185 DEFSYM  %ENRBF==:45     ;INPUT BUFFER EMPTY OR OUTPUT BUFFER FULL
186 DEFSYM  %EBDFL==:46     ;UNRECOGNIZABLE FILE (LOAD)
187 DEFSYM  %EBDLK==:47     ;LINK TO NON-EXISTENT FILE
188
189 NOPNLS==:47     ;NO DEFSYM BECAUSE THIS SYMBOL IS NOT TO BE PREDEFINED TO USERS
190 \f
191 ; BITS IN .PIRQC USER VARIABLE - FIRST-WORD INTERRUPTS
192 ; CLASSES ARE:
193 ;  [1] STOPS JOB AND INTERRUPTS SUPERIOR (FATAL INTR)
194 ;  [2] STOPS JOB AND INTERRUPTS SUPERIOR UNLESS ENABLED
195 ;  [3] DOES NOTHING UNLESS ENABLED
196 ; BITS IN THE LH HAVE TWO NAMES: %PI... AS A BIT IN THE WORD,
197 ;  AND %PJ... SHIFTED DOWN BY 18. BITS.
198
199 .SEE PIRQC
200
201 DEFSYM  %PI==:525252,,525252            ;FOR BIT-TYPEOUT MODE
202 DEFSYM  %PIRLT==:200000,,       ;REAL-TIME TIMER WENT OFF       [3]
203 DEFSYM  %PIRUN==:100000,,       ;RUN-TIME TIMER WENT OFF        [3]
204 DEFSYM  %PINXI==:40000,,        ;NON-EX IO REG (KS10 UNIBUS)    [2]
205 DEFSYM  %PIJST==:20000,,        ;JOB STATUS DISPLAY REQUEST     [3]
206 DEFSYM  %PIDCL==:10000,,        ;DEFERRED CALL                  [1]
207 DEFSYM  %PIATY==:4000,,         ;WAS JUST GIVEN THE TTY         [3]
208 DEFSYM  %PITTY==:2000,,         ;DON'T HAVE TTY (SEE %TBINT)    [2]
209 DEFSYM  %PIPAR==:1000,,         ;MEMORY PARITY ERROR            [2]
210 DEFSYM  %PIFOV==:400,,          ;FLOATING OVERFLOW              [3]
211 DEFSYM  %PIWRO==:200,,          ;WRITE IN READ-ONLY PAGE        [2]
212 DEFSYM  %PIFET==:100,,          ;FETCHED INSN FROM IMPURE PAGE  [2]
213 DEFSYM  %PITRP==:40,,           ;SYSTEM UUO IN TRAP MODE        [1]
214 DEFSYM  %PIDBG==:2,,            ;SYSTEM BEING DEBUGGED STATE CHG[3]
215 DEFSYM  %PILOS==:1,,            ;.LOSE INSTRUCTION EXECUTED     [2]
216 DEFSYM  %PICLI==:400000         ;CLI DEVICE OPENED TO THIS JOB  [3]
217 DEFSYM  %PIPDL==:200000         ;PUSHDOWN LIST OVERFLOW         [3]
218 DEFSYM  %PILTP==:100000         ;LIGHT PEN                      [3]
219 DEFSYM  %PIMAR==:40000          ;MAR ADDRESS TRAP               [2]
220 DEFSYM  %PIMPV==:20000          ;MEMORY PROTECTION VIOLATION    [2]
221 DEFSYM  %PICLK==:10000          ;SLOW (1/2 SEC) CLOCK           [3]
222 DEFSYM  %PI1PR==:4000           ;SINGLE-INSTRUCTION PROCEED     [1]
223 DEFSYM  %PIBRK==:2000           ;.BREAK INSTRUCTION EXECUTED    [1]
224 DEFSYM  %PIOOB==:1000           ;ADDRESS OUT OF BOUNDS          [2]
225 DEFSYM  %PIIOC==:400            ;I/O CHANNEL ERROR              [2]
226 DEFSYM  %PIVAL==:200            ;.VALUE INSTRUCTION EXECUTED    [1]
227 DEFSYM  %PIDWN==:100            ;SYSTEM GOING DOWN STATUS CHANGE[3]
228 DEFSYM  %PIILO==:40             ;ILLEGAL OPERATION (E.G. UUO)   [2]
229 DEFSYM  %PIDIS==:20             ;DISPLAY MEMORY PROTECT         [2]
230 DEFSYM  %PIARO==:10             ;ARITHMETIC OVERFLOW            [3]
231 DEFSYM  %PIB42==:4              ;BAD LOCATION 42                [1]
232 DEFSYM  %PIC.Z==:2              ;^Z OR CALL TYPED               [1]
233 DEFSYM  %PITYI==:1              ;TTY INPUT (OBSOLETE)           [3]
234
235 DEFSYM  %PJ==:1,,525252                 ;BIT TYPEOUT MASK
236 DEFSYM  %PJRLT==:200000         ;REAL-TIME TIMER WENT OFF       [3]
237 DEFSYM  %PJRUN==:100000         ;RUN-TIME TIMER WENT OFF        [3]
238 DEFSYM  %PJNXI==:40000          ;NON-EX IO REG (KS10 UNIBUS)    [2]
239 DEFSYM  %PJJST==:20000          ;JOB STATUS DISPLAY REQUEST     [3]
240 DEFSYM  %PJDCL==:10000          ;DEFERRED CALL                  [1]
241 DEFSYM  %PJATY==:4000           ;WAS JUST GIVEN THE TTY         [3]
242 DEFSYM  %PJTTY==:2000           ;DON'T HAVE TTY (SEE %TBINT)    [2]
243 DEFSYM  %PJPAR==:1000           ;MEMORY PARITY ERROR            [2]
244 DEFSYM  %PJFOV==:400            ;FLOATING OVERFLOW              [3]
245 DEFSYM  %PJWRO==:200            ;WRITE IN READ-ONLY PAGE        [2]
246 DEFSYM  %PJFET==:100            ;FETCHED INSN FROM IMPURE PAGE  [2]
247 DEFSYM  %PJTRP==:40             ;SYSTEM UUO IN TRAP MODE        [1]
248 DEFSYM  %PJDBG==:2              ;SYSTEM BEING DEBUGGED STATE CHG[3]
249 DEFSYM  %PJLOS==:1              ;.LOSE INSTRUCTION EXECUTED     [2]
250 \f
251 ;;; PC FLAGS (LEFT HALF)
252
253 DEFSYM  %PC==:1,,525240         ;FOR BIT-TYPEOUT MODE
254 DEFSYM  %PCARO==:400000         ;ARITHMETIC OVERFLOW
255 DEFSYM  %PCCR0==:200000         ;CARRY OUT OF BIT 0
256 DEFSYM  %PCCR1==:100000         ;CARRY OUT OF BIT 1
257 DEFSYM  %PCFOV==:040000         ;FLOATING OVERFLOW
258 DEFSYM  %PCFPD==:020000         ;FIRST PART DONE
259                                 ; (E.G. ILDB PTR INCREMENTED, BYTE NOT FETCHED)
260 DEFSYM  %PCUSR==:010000         ;USER MODE
261 DEFSYM  %PCUIO==:004000         ;USER I/O
262 DEFSYM  %PCPUR==:002000         ;GIVE %PIFET IF FETCH INSTR FROM WRITABLE
263                                 ; PAGE (KA-10 ONLY)
264 DEFSYM  %PCSPC==:001000         ;"SPECIAL" - OBSOLETE
265 DEFSYM  %PC1PR==:000400         ;1 PROCEED - GIVE %PI1PR AFTER ONE INSTRUCTION
266 DEFSYM  %PCX17==:000200         ;XR 17 = PC (AI-KA ONLY)
267 DEFSYM  %PCFXU==:000100         ;FLOATING EXPONENT UNDERFLOW
268 DEFSYM  %PCDIV==:000040         ;DIVIDE ERROR
269
270 ;;; PC FLAGS FOR KL-10 AND KS-10
271
272 DEFSYM  %PS==:1,,525240         ;FOR BIT-TYPEOUT MODE
273 DEFSYM  %PSARO==:400000         ;ARITHMETIC OVERFLOW
274 DEFSYM  %PSPCP==:400000         ;PREVIOUS CONTEXT PUBLIC - PXCT CAN'T
275                                 ;REFERENCE CONCEALED PAGE THIS APPLIES ONLY
276                                 ;IN EXEC MODE.  IN USER MODE AND ON KS IS
277                                 ;STILL %PSARO.
278 DEFSYM  %PSCR0==:200000         ;CARRY OUT OF BIT 0
279 DEFSYM  %PSCR1==:100000         ;CARRY OUT OF BIT 1
280 DEFSYM  %PSFOV==:040000         ;FLOATING OVERFLOW
281 DEFSYM  %PSFPD==:020000         ;FIRST PART DONE (E.G. ILDB PTR
282                                 ;INCREMENTED, BYTE NOT FETCHED)
283 DEFSYM  %PSUSR==:010000         ;USER MODE   ;  0       0       1       1
284 DEFSYM  %PSUIO==:004000         ;USER I/O    ;; KERNEL  SUPERV  CONCEAL PUBLIC
285 DEFSYM  %PSPUB==:002000         ;PUBLIC MODE ;  0       1       0       1
286                                 ;%PSPUB ALWAYS 0 ON KS.
287 DEFSYM  %PSPCU==:004000         ;IN EXEC MODE %PSUIO MEANS PREVIOUS CONTEXT
288                                 ;USER.
289 DEFSYM  %PSINH==:001000         ;INHIBIT ADDRESS BREAK & TRAP 3 (TURNS OFF
290                                 ;AFTER 1 INST)  %PSINH ALWAYS 0 ON KS.
291 DEFSYM  %PSTR2==:000400         ;TRAP 2 (PDL OVERFLOW)      ;TRAP 1 PLUS TRAP 2
292 DEFSYM  %PSTR1==:000200         ;TRAP 1 (ARITH OVERFLOW)    ; MAKES TRAP 3
293                                                             ; (ONE PROCEED
294                                                             ; ON KL) 
295 DEFSYM  %PSFXU==:000100         ;FLOATING EXPONENT UNDERFLOW
296 DEFSYM  %PSDIV==:000040         ;DIVIDE ERROR
297
298 DEFSYM  %PS1PR==:001600         ;BITS TO SET TO CAUSE A 1-PROCEED ON KL.
299 \f
300 ; INTERNET and ARPANET
301
302 .SEE NETRFC
303 DEFSYM  %NQ==:1,,525252 ; Control bits for NETRFC system call
304 DEFSYM  %NQREF==:1      ; Refuse this connection request.  Arg 2 must be a
305                         ; previously returned RFC identifier.
306
307 .SEE TCPOPN
308 DEFSYM  %NO==:1,,525252 ; Control bits for TCPOPN system call
309 DEFSYM  %NOLSN==:100    ; Listen mode - wait for SYN (request for conn)
310
311 DEFSYM  %NS==:,-1       ; NCP (old ARPANET) SOCKET STATES
312 DEFSYM  %NSCLS==:0      ;CLS RECEIVED.  CONNECTION CLOSED (IMSCLS GIVES REASON)
313 DEFSYM  %NSLSN==:1      ;LISTENING FOR RFC
314 DEFSYM  %NSRFC==:2      ;RFC RECEIVED WHILE IN LISTENING STATE
315 DEFSYM  %NSRCL==:3      ;CLS RECEIVED WHILE IN RFC RECEIVED STATE
316 DEFSYM  %NSRFS==:4      ;RFC SENT
317 DEFSYM  %NSOPN==:5      ;CONNECTION OPEN
318 DEFSYM  %NSRFN==:6      ;RFNM WAIT ON WRITE LINK
319 DEFSYM  %NSCLW==:7      ;CLS SENT.  WAITING FOR MATCHING CLS
320 DEFSYM  %NSCLI==:10     ;CLS RECEIVED BUT INPUT STILL AVAILABLE
321 DEFSYM  %NSINP==:11     ;INPUT AVAILABLE
322
323 DEFSYM  %NT==:,,-1      ; TCP port states as seen by user
324         ; Legend: - Pre-Open, * Open, + Post-open, ? impossible.
325         ;       I = can read, O = can write.
326         ; Note that the input and output channels for a TCP connection
327         ; will usually have different states.  Also, note that
328         ; for all practical purposes, %NT and %NS symbols with the same
329         ; value have the same meaning.  SYN = Request for connection.
330                         ; In Out
331 DEFSYM  %NTCLS==:0      ; -  -  Closed (reason available from WHYINT)
332 DEFSYM  %NTLSN==:1      ; -  -  Listening for a SYN
333 DEFSYM  %NTSYR==:2      ; -  -  SYN received
334 DEFSYM  %NTCLU==:3      ; +  ?  Being closed by fgn host
335 DEFSYM  %NTSYN==:4      ; -  -  SYN sent, waiting for response
336 DEFSYM  %NTOPN==:5      ; *I *O Open
337 DEFSYM  %NTWRT==:6      ; ?  *O Output buffer full
338 DEFSYM  %NTCLX==:7      ; ?  +  Being closed by user
339 DEFSYM  %NTCLI==:10     ; +I ?  Closing/closed, input still available
340 DEFSYM  %NTINP==:11     ; *I ?  Open, input available
341
342
343 DEFSYM  %NC==:,-1       ; NCP (old ARPANET) CLOSE REASONS (IN IMSCLS)
344 DEFSYM  %NCNTO==:0      ;NEVER OPENED
345 DEFSYM  %NCUSR==:1      ;CLSED BY USER
346 DEFSYM  %NCFRN==:2      ;CLSED BY FOREIGN HOST
347 DEFSYM  %NCRST==:3      ;RST
348 DEFSYM  %NCDED==:4      ;HOST DEAD
349 DEFSYM  %NCINC==:5      ;INCOMPLETE TRANSMISSION
350 DEFSYM  %NCBYT==:6      ;BYTE SIZE MISMATCH.
351 DEFSYM  %NCNCP==:7      ;OUR NCP WENT DOWN.
352 DEFSYM  %NCRFS==:10     ;REQUEST FOR CONNECTION REFUSED
353
354 ;;; .XC is being phased out for the name %NX instead.
355 ;;; The .XC symbols will be flushed "soon".
356
357 DEFSYM  .XC==,,-1       ; TCP port cls reasons (valid for ALL post-open states)
358                         ; Note .XC and %NC symbols with the same value
359                         ; have pretty much the same meanings.
360 DEFSYM  .XCNTO==:0      ; Never opened
361 DEFSYM  .XCUSR==:1      ; Closed by user
362 DEFSYM  .XCFRN==:2      ; Closed by foreign host
363 DEFSYM  .XCRST==:3      ; Fgn host refused or aborted connection.
364 DEFSYM  .XCDED==:4      ; Fgn host dead (not used yet)
365 DEFSYM  .XCINC==:5      ; Incomplete transmission (retransmission timeout)
366                         ; This is the usual indication when a foreign host
367                         ; or the intervening network crashes.
368         ;     ==:6      ; Byte size mismatch - can't happen
369 DEFSYM  .XCNCP==:7      ; Local TCP went down (not used yet)
370 DEFSYM  .XCRFS==:10     ; RST received while in SYN-SENT state.
371                         ; (foreign host refused connection)
372
373 DEFSYM  %NX==,,-1       ; TCP port cls reasons (valid for ALL post-open states)
374                         ; Note %NX and %NC symbols with the same value
375                         ; have pretty much the same meanings.
376 DEFSYM  %NXNTO==:0      ; Never opened
377 DEFSYM  %NXUSR==:1      ; Closed by user
378 DEFSYM  %NXFRN==:2      ; Closed by foreign host
379 DEFSYM  %NXRST==:3      ; Fgn host refused or aborted connection.
380 DEFSYM  %NXDED==:4      ; Fgn host dead (not used yet)
381 DEFSYM  %NXINC==:5      ; Incomplete transmission (retransmission timeout)
382                         ; This is the usual indication when a foreign host
383                         ; or the intervening network crashes.
384         ;     ==:6      ; Byte size mismatch - can't happen
385 DEFSYM  %NXNCP==:7      ; Local TCP went down (not used yet)
386 DEFSYM  %NXRFS==:10     ; RST received while in SYN-SENT state.
387                         ; (foreign host refused connection)
388
389
390 \f
391 ;;; BITS IN RESULT OF APRID (BLKI APR,) ON KL-10 AND KS-10
392 DEFSYM  %UC==:1,,525000         ;FOR BIT-TYPEOUT MODE
393 DEFSYM  $UCOPT==:331100         ;MICROCODE OPTIONS:
394 DEFSYM  %UCKLP==:400000         ; KL-10-STYLE PAGING
395 DEFSYM  %UCITS==:20000          ; ITS-STYLE PAGING
396 DEFSYM  %UCTRK==:1000           ; TRACKS FEATURE
397 DEFSYM  $UCVRS==:221100         ;MICROCODE VERSION NUMBER
398 DEFSYM  %UCVRS==:1
399 DEFSYM  %HW==:0,,527777         ;FOR BIT-TYPEOUT MODE
400 DEFSYM  $HWOPT==:140600         ;HARDWARE OPTIONS
401 DEFSYM  $HWSER==:001400         ;PROCESSOR SERIAL NUMBER
402
403
404 ;;; .CALL ARGUMENT TYPES
405 DEFSYM  %CL==:1,,400777
406 DEFSYM  %CLIN==:0               ;INPUT ARGUMENT
407 DEFSYM  %CLIMM==:1000           ;IMMEDIATE ARGUMENT
408 DEFSYM  %CLOUT==:2000           ;OUTPUT ARGUMENT
409 DEFSYM  %CLERR==:3000           ;ERROR CODE OUTPUT ARGUMENT
410 DEFSYM  %CLBTW==:4000           ;DIRECT CONTROL BITS
411 DEFSYM  %CLBIT==:5000           ;IMMEDIATE CONTROL BITS
412
413
414 ;;; CONTROL BITS FOR CORBLK SYSTEM CALL
415
416 .SEE NCORBLK
417 DEFSYM  %CB==:0,,525252                 ;FOR BIT-TYPEOUT MODE
418 DEFSYM  %CBWRT==:400000         ;TRY FOR WRITE ACCESS, OK IF CAN'T GET IT
419 DEFSYM  %CBRED==:200000         ;TRY FOR READ ACCESS, OK IF CAN'T GET IT
420 DEFSYM  %CBNDW==:100000         ;NEED WRITE ACCESS, FAIL IF CAN'T GET IT
421 DEFSYM  %CBPUB==:040000         ;MAKE PAGE PUBLIC, REQUIRES WRITE ACCESS
422 DEFSYM  %CBPRV==:020000         ;MAKE PAGE PRIVATE, REQUIRES WRITE ACCESS
423 DEFSYM  %CBNDR==:010000         ;NEED READ ACCESS, FAIL IF CAN'T GET IT
424 DEFSYM  %CBCPY==:004000         ;MAKE A COPY (DISK FILES ONLY)
425 DEFSYM  %CBLOK==:002000         ;LOCK PAGE IN CORE.
426 DEFSYM  %CBULK==:001000         ;UNLOCK PAGE (ALLOW SWAP-OUT)
427 DEFSYM  %CBSLO==:000400         ;MAY ONLY RESIDE IN SLOWEST MEMORY
428 DEFSYM  %CBUSL==:000200         ;ALLOWS USE OF ANY MEMORY.
429                 ;ABOVE BITS ALL ZERO MEANS DELETE PAGE FROM MAP
430
431 ;;; SPECIAL VALUES FOR <JOB> SPECS
432
433 DEFSYM  %JS==:,,-1
434 DEFSYM  %JSELF==:,,-1           ;SELF (ALL <JOB> SPECS)
435 DEFSYM  %JSTVB==:,,-2           ;11TV BUFFER (CORBLK)
436 DEFSYM  %JSNUL==:,,-3           ;NULL JOB (KLPERF)
437 DEFSYM  %JSALL==:,,-4           ;ALL JOBS (KLPERF)
438 DEFSYM  %JSNEW==:,,-5           ;FRESH PAGE (CORBLK)
439 DEFSYM  %JSABS==:,,-6           ;ABSOLUTE CORE (CORBLK)
440 DEFSYM  %JSNUM==:400000         ;THIS + JOB # => THAT JOB (ALL <JOB> SPECS)
441 DEFSYM  %JSSIX==:400376         ;PDP6 IS USER NUMBER 376
442 DEFSYM  %JSSUP==:400377         ;SUPERIOR (ALL <JOB> SPECS)
443 ;A <JOB> SPEC MAY ALSO BE THE NUMBER OF A CHANNEL OPEN ON USR:, BOJ:, OR STY:
444
445 ;;; CONTROL BITS FOR ".REALT AC," UUO.
446 ;;; FLAG BITS ARE IN LH(AC).
447
448 .SEE AREALT
449 DEFSYM  %RL==:1,,525252         ;FOR BIT-TYPEOUT MODE
450 DEFSYM  %RLFLS==:400000         ;FLUSH OLD TIMER
451 DEFSYM  %RLSET==:200000         ;SET NEW CLOCK RATE
452 DEFSYM  %RLUSR==:100000         ;TRY TO SEIZE REAL TIME USER FACILITY
453 DEFSYM  %RLPSD==:020000         ;ONLY WANT PSEUDO REAL TIME
454 DEFSYM  %RLNPS==:040000         ;CANNOT ACCEPT PSEUDO REAL TIME
455 DEFSYM  %RLBLK==:010000         ;PROGRAM TO BE BLOCKED EXCEPT FOR HIGH PRIORITY
456                                 ; PHASE OR INTERRUPT LEVEL
457 DEFSYM  %RLGET==:004000         ;GET PREVIOUS STATUS IN WORDS 3+4
458                                 ;REMAINING BITS MUST BE ZERO
459 \f
460 ;;; BITS OF .OPTION USER VARIABLE.
461
462 .SEE OPTION
463 DEFSYM  OPTTRP==:400000         ;ALL SYSTEM UUOS TRAP TO SUPERIOR (%PITRP)
464 DEFSYM  OPTDEC==:100000         ;UUOS 40,41 AND 47 ARE USER UUOS
465                 ;THE FOLLOWING 3 BITS ARE NOT USED BY SYSTEM.
466                 ;THEY ARE FOR COMMUNICATION FROM SUPERIOR.
467 DEFSYM  OPTCMD==:040000         ;SUPERIOR SAYS IT HAS CMD STRING - DO
468                                 ; .BREAK 12,.
469 DEFSYM  OPTBRK==:020000         ;SUPERIOR SAYS IT HANDLES ALL .BREAK'S.
470 DEFSYM  OPTDDT==:010000         ;SUPERIOR SAYS HE'S DDT. (CLEARED WHEN DDT
471                                 ; DISOWNS)
472 DEFSYM  OPTINT==:004000         ;NEW STYLE VECTORING INTS.
473 DEFSYM  OPTOJB==:002000         ;ALLOW OTHER JOBS TO OPEN ME ON THE OJB
474                                 ; DEVICE.  OPENING ME ON OJB DEVICE TURNS
475                                 ; ME INTO A JOB DEVICE.
476 DEFSYM  OPTLOK==:001000         ;ENABLE SWITCH-UNLOCKING FEATURE
477                 .SEE IODCSW     ; SEE COMMENT THERE FOR DESCRIPTION.
478 DEFSYM  OPTLIV==:000400         ;DON'T KILL THIS TOP LEVEL JOB WHEN SYS
479                                 ; GOES DOWN.
480 DEFSYM  OPTOPC==:000200         ;INTERRUPTS THAT ABORT AN INSTRUCTION
481                                 ; SHOULD LEAVE THE PC POINTING TO THAT
482                                 ; INSTRUCTION (OTHERWISE IT GETS AOS'ED)
483 DEFSYM  OPTLSP==:000100         ;SUPERIOR SAYS HE'S LISP
484 DEFSYM  OPTLKF==:000040         ;UNLOCK LOCKS ON FATAL INTERRUPT IN
485                 .SEE SYSDT      ; TOP-LEVEL NON-DISOWNED JOB.
486
487 ;;; NEW NAMES FOR BITS IN LH(.OPTION)
488
489 DEFSYM  %OP==:525252(1)         ;FOR BIT-TYPEOUT MODE
490 DEFSYM  %OPTRP==:400000         ;ALL SYSTEM UUOS TRAP TO SUPERIOR (%PITRP)
491 DEFSYM  %OPDEC==:100000         ;UUOS 40,41 AND 47 ARE USER UUOS
492                 ;THE FOLLOWING 3 BITS ARE NOT USED BY SYSTEM.
493                 ;THEY ARE FOR COMMUNICATION FROM SUPERIOR.
494 DEFSYM  %OPCMD==:040000         ;SUPERIOR SAYS IT HAS CMD STRING - DO
495                                 ; .BREAK 12,.
496 DEFSYM  %OPBRK==:020000         ;SUPERIOR SAYS IT HANDLES ALL .BREAK'S.
497 DEFSYM  %OPDDT==:010000         ;SUPERIOR SAYS HE'S DDT. (CLEARED WHEN DDT
498                                 ; DISOWNS)
499 DEFSYM  %OPINT==:004000         ;NEW STYLE VECTORING INTS.
500 DEFSYM  %OPOJB==:002000         ;ALLOW OTHER JOBS TO OPEN ME ON THE OJB
501                                 ; DEVICE.  OPENING ME ON OJB DEVICE TURNS
502                                 ; ME INTO A JOB DEVICE.
503 DEFSYM  %OPLOK==:001000         ;ENABLE SWITCH-UNLOCKING FEATURE
504                 .SEE IODCSW     ; SEE COMMENT THERE FOR DESCRIPTION.
505 DEFSYM  %OPLIV==:000400         ;DON'T KILL THIS TOP LEVEL JOB WHEN SYS
506                                 ; GOES DOWN.
507 DEFSYM  %OPOPC==:000200         ;INTERRUPTS THAT ABORT AN INSTRUCTION
508                                 ; SHOULD LEAVE THE PC POINTING TO THAT
509                                 ; INSTRUCTION (OTHERWISE IT GETS AOS'ED)
510 DEFSYM  %OPLSP==:000100         ;SUPERIOR SAYS HE'S LISP
511 DEFSYM  %OPLKF==:000040         ;UNLOCK LOCKS ON FATAL INTERRUPT IN
512                 .SEE SYSDT      ; TOP-LEVEL NON-DISOWNED JOB.
513
514 ;;; LOSING ERROR CODES
515
516 DEFSYM  %LS==:777400            ;RH OF .LOSE INSTRUCTION
517 DEFSYM  %LSINT==:1
518 DEFSYM  %LSSYS==:1000           ;INTERPRET LAST OPEN LOSS CODE, USING .BCHN
519 DEFSYM  %LSFIL==:1400           ; DO THAT AND PRINT FILE NAMES FROM CALL'S CHNL
520
521 ;;; FIRST RESULT OF .CALL WHYINT
522
523 DEFSYM  %WY==:,-1
524 DEFSYM  %WYTYI==:1              ;TTY INPUT
525 DEFSYM  %WYTYO==:2              ;TTY OUTPUT
526 DEFSYM  %WYSTI==:3              ;STY INPUT
527 DEFSYM  %WYSTO==:4              ;STY OUTPUT
528 DEFSYM  %WYNET==:5              ;ARPANET (NCP)
529 DEFSYM  %WYCHA==:6              ;CHAOS NET
530 DEFSYM  %WYTCP==:7              ;INTERNET (TCP)
531 DEFSYM  %WYUBI==:10             ;UNIBUS INTERRUPT
532 \f
533 ;I/O MODES FOR OPENS.
534
535 DEFSYM  .UAI==0                 ;UNIT ASCII INPUT.
536 DEFSYM  .UAO==1                 ;UNIT ASCII OUTPUT.
537 DEFSYM  .BAI==2                 ;BLOCK ASCII INPUT.
538 DEFSYM  .BAO==3                 ;BLOCK ASCII OUTPUT.
539 DEFSYM  .UII==4                 ;UNIT IMAGE INPUT.
540 DEFSYM  .UIO==5                 ;UNIT IMAGE OUTPUT.
541 DEFSYM  .BII==6                 ;BLOCK IMAGE INPUT.
542 DEFSYM  .BIO==7                 ;BLOCK IMAGE OUTPUT.
543
544 ;OPEN BITS FOR DEVICE DSK:
545
546 DEFSYM  %DO==1,,525252          ;BIT TYPEOUT MASK
547 DEFSYM  %DOOUT==1
548 DEFSYM  %DOBLK==2
549 DEFSYM  %DOIMG==4
550 DEFSYM  %DONRF==10              ;DON'T SET REFERENCE DATE.
551 DEFSYM  %DONLK==20              ;DON'T CHASE LINKS.
552 DEFSYM  %DORWT==40              ;ON OUTPUT OPEN, MAKES WOULD-BE READERS
553                                 ;WAIT TILL WE CLOSE.
554 DEFSYM  %DOWOV==100000          ;WRITE OVER (USE WITH %DOOUT, TO OVERWRITE
555                                 ;EXISTING FILE). 
556
557 ;ARGUMENT CODES FOR .BREAK 12,'S.
558 ;..R AND ..S ARE BIT TYPEOUT MASKS, NOT MADE PREDEFINED TO MIDAS
559 ;SINCE THEY ARE USEFUL ONLY IN DDT, WHICH DEFINES THEM ITSELF.
560
561 ..R==0                          ;(FOR .SEE)
562 DEFSYM  ..RSTART==1             ;READ STARTING ADDRESS
563 DEFSYM  ..RLFILE==2             ;READ LOADED FILE'S NAMES
564 DEFSYM  ..RSTP==3               ;READ SYMBOL TABLE POINTER
565 DEFSYM  ..RSYM==4               ;READ VALUE OF SYMBOL.
566 DEFSYM  ..RJCL==5               ;READ JOB COMMAND LINE.
567 DEFSYM  ..RPFILE==6             ;READ :PRINT FILENAME DEFAULTS.
568 DEFSYM  ..RSTB==7               ;READ WHOLE SYMBOL TABLE.
569 DEFSYM  ..RCONV==10             ;READ NAME OF SYMBOL CLOSEST IN VALUE TO
570                                 ; ARGUMENT.
571 DEFSYM  ..RLJB==13              ;READ IDX OF PREVIOUSLY CURRENT JOB.
572 DEFSYM  ..RRND==14              ;READ RANDOM JOB-SPECIFIC BITS.
573 DEFSYM  ..RPUR==15              ;UNPURIFY PAGE
574 DEFSYM  ..RHSNAME==16           ;ASK SUPERIOR TO LOOKUP AN HSNAME FROM XUNAME
575 DEFSYM  ..RMAIL==17             ;ASK A SUPERIOR TO LOOKUP USER'S MAIL FILE NAME
576
577 ..S==0                          ;(FOR .SEE)
578 DEFSYM  ..SSTART==400001        ;SET STARTING ADDRESS
579 DEFSYM  ..SLFILE==400002        ;SET LOADED FILE'S NAMES
580 DEFSYM  ..SSYM==400004          ;SET VALUE OF SYMBOL.
581 DEFSYM  ..SJCL==400005          ;CLEAR JOB COMMAND LINE.
582 DEFSYM  ..SPFILE==400006        ;SET :PRINT FILENAME DEFAULTS.
583 DEFSYM  ..SSTB==400007          ;PASS WHOLE SYMBOL TABLE TO SUPERIOR.
584 DEFSYM  ..SRND==400014          ;SET RANDOM JOB-SPECIFIC BITS.
585 DEFSYM  ..SPUR==400015          ;SAME AS ..RPUR
586
587 ;.CALL JOBGET
588 ;ARG 1 - BOJ CHNL
589 ;UP TO SIX WDS RETURNED
590 ;WD1 BITS:
591 DEFSYM  %JG==:1,,525252
592                 ;4.9-4.7 => IMAGE/ASCII, BLOCK/UNIT, OUTPUT/INPUT
593                 ;    4.9-4.7 SHOULDN'T BE USED, SINCE THE FULL MODE IS IN
594                 ;    WD7 ON AN OPEN
595 DEFSYM  %JGCLS==:40000  ;4.6 => CLOSE (NOTE 4.5 USED TO BE A CLS BIT ALSO)
596 DEFSYM  %JGSIO==:1000   ;4.1 => SIOT (ONLY IF OPCODE = 1)
597 DEFSYM  %JGFPD==:200    ;3.8 => THIS CALL WAS PCLSRED AND IS RESTARTING
598 ;1.4-1.1 => TYPE OF OPERATION
599 DEFSYM  %JO==:,,-1
600 DEFSYM  %JOOPN==:0      ;OPEN
601 DEFSYM  %JOIOT==:1      ;IOT/SIOT
602 DEFSYM  %JOLNK==:2      ;MLINK
603 DEFSYM  %JORST==:3      ;RESET
604 DEFSYM  %JORCH==:4      ;RCHST
605 DEFSYM  %JOACC==:5      ;ACCESS
606 DEFSYM  %JORNM==:6      ;FDELE (DELETE OR RENAME)
607 DEFSYM  %JORWO==:7      ;FDELE (RENAME WHILE OPEN)
608 DEFSYM  %JOCAL==:10     ;SYMBOLIC .CALL
609 \f
610 ;MODE BITS FOR TTY OPENS:
611 ;3.1 0 -> IN 1 -> OUT
612 ;3.2 0 -> UNIT 1 -> BLOCK
613
614 ;OUTPUT
615 ;3.3 => IMAGE MODE (SET ALL %TGIMG BITS IN TTYST1 AND TTYST2)
616 ;3.4 0 -> NORMAL 1 -> ECHO MODE OUTPUT (SET %TJECH, %TJPP2, %TJMOR).
617 ;3.5 0 -> NORMAL 1 -> DISPLAYMODE, LOOK FOR ^P (SET %TJDIS).
618 ;3.6 0 -> NORMAL 1 -> SUPER-IMAGE OUTPUT (SET %TJSIO).
619 ;OUTPUT IOCHNM BITS MAY ALSO BE SPECIFIED, EXCEPT FOR
620 ;%TJCNS, %TJCP1, AND %TJCP2
621
622 ;INPUT
623 ;3.3 => IMAGE MODE (CLEAR ALL ECHO BITS IN TTYST1, TTYST2).
624 ;3.4 => "DDT" (DON'T ECHO CR, LF, TAB)
625 ;3.6 => WANT 3 LINES IN ECHO AREA.
626 ;INPUT IOCHNM BITS MAY ALSO BE SPECIFIED, EXCEPT FOR %TICNS.
627
628 ;BITS 3.4 AND 3.6 ON INPUT, AND BIT 3.3, HAVE EFFECT
629 ;ONLY ON THE FIRST OPEN IN EITHER DIRECTION.
630 ;(THEY ARE OBSOLETED BY THE TTYSET SYSTEM CALL)
631
632 ;BITS IN LH OF A TTY CHANNEL IOCHNM WORD
633 ;THESE BITS MAY BE TEMPORARILY COMPLEMENTED BY SPECIFYING
634 ;THEM IN THE CONTROL-BIT ARGUMENT TO A SYMBOLIC IOT
635 ;(EXCEPT FOR %TICNS AND $TIIDX).
636 DEFSYM  %TI==:1,,525277         ;BIT TYPEOUT MASK
637 DEFSYM  %TJ==:1,,525277         ;BIT TYPEOUT MASK
638
639 DEFSYM  %TICNS==:400000 ;4.9 1-> CONSOLE 0 -> DEVICE
640 DEFSYM  %TJCNS==:400000 ;4.9 1-> CONSOLE 0 -> DEVICE
641
642 ;THE FOLLOWING INTERPRETATIONS OF BITS ARE FOR OUTPUT ONLY.
643 DEFSYM  %TJCP1==:200000 ;^P-CODE ANTICIPATION STATE.
644 DEFSYM  %TJCP2==:100000 ; ".  0=>NORMAL, 1=> CHAR AFTER ^P, 2=> ^PH, 3=>^PV.
645 DEFSYM  %TJECH==:40000  ;SET => ECHO MODE OUTPUT.-MODE OUTPUT (ALL CHARS
646                         ; OUTPUT THE WAY THEY WOULD BE ECHOED)
647 DEFSYM  %TJCTN==:20000  ;SET => DON'T DO LINE-CONTINUATION.
648 DEFSYM  %TJSTP==:10000  ;SET => THIS CHANNEL IS HUNG IN **MORE**.
649 DEFSYM  %TJDIS==:4000   ;SET => LOOK FOR ^P CODES.
650 DEFSYM  %TJSIO==:2000   ;SET => SUPERIMAGE OUTPUT, NO PADDING OR CURSOR CTL.
651 DEFSYM  %TJMOR==:1000   ;SET => DON'T DO **MORE** PROCESSING.
652 DEFSYM  %TJPP2==:400    ;SET => USE ALTERNATE PC PPR (THE ECHO AREA)
653 DEFSYM  %TJINK==:200    ;SET => NEXT CHAR OUT TAKEN AS PRINTING
654                         ; REGARDLESS (^PI)
655 DEFSYM  %TJHDE==:100    ;SET => ACCOUTING FOR CURSOR MOTION DUE TO
656                         ;CHAR ECHOED ON A HALF-DUPLEX TTY.
657
658 ;INPUT
659 DEFSYM  %TIECH==:40000  ;CAN READ EVEN IF CHAR NEEDS PI ECHOING.
660 DEFSYM  %TIPEK==:20000  ;DON'T REMOVE CHAR FROM BUFFER.
661 DEFSYM  %TIACT==:4000   ;SET => DON'T WAIT FOR ACTIVATION CHARACTER.
662 DEFSYM  %TIINT==:2000   ;SET => CAN READ A CHAR EVEN IF IT IS SUPPOSED TO
663                         ; INTERRUPT & HASN'T YET.
664 DEFSYM  %TINWT==:1000   ;SET => IF NO INPUT AVAILABLE, DON'T WAIT, JUST
665                         ; RETURN -1.
666 DEFSYM  %TIFUL==:400    ;SET => GIVE FULL CHARACTER (SIGNIFICANT ON IMLAX, TVS)
667
668 DEFSYM  $TIIDX==:220600 ;3.6-3.1 CONSOLE #, OR 77 FOR A "DISOWNED" CONSOLE
669                         ; TTY CHNL, IE, ONE THAT CORRESPONDS TO NO REAL TTY.
670                         ; THEY EXIST ONLY IN TREES WITH NO TTY, IN JOBS
671                         ; THAT CAME FROM TREES WITH TTYS.
672 DEFSYM  %TIIDX==:1      ;FOR BIT TYPEOUT MODE
673 DEFSYM  %TJIDX==:1      ;FOR BIT TYPEOUT MODE
674 DEFSYM  %TINON==:77     ;"TTY #" FOR A CHANNEL WITH NO REAL TTY.
675 \f
676 ;EACH CHARACTER IN THE INPUT BUFFER OCCUPIES 18 BITS
677 ;THE UPPER BITS ARE AS FOLLOWS (NOTE THAT AN IOTTED
678 ;CHARACTER MAY ACTUALLY CONTAIN %TXPIE, %TXMPE, %TXECI, OR %TXINT)
679 DEFSYM  %TX==:525200            ;BIT TYPEOUT MASK
680 DEFSYM  %TXMPE==:400000 ;MAIN PROGRAM ECHO CHARACTER
681 DEFSYM  %TXPIE==:200000 ;PI ECHO CHARACTER
682 ; DEFSYM %TXCOM==:100000        ;COM MODE ECHO CHAR; DO PI ECHO EVEN IF HDX
683 ;                       ; TTY. 
684 ; DEFSYM %TXIGN==:40000 ;IGNORE THIS CHAR AT .IOT TIME.
685 ; DEFSYM %TXACT==:20000 ;THIS IS AN ACTIVATION CHAR.
686 ; THESE CAN'T BE NEEDED EXCEPT INSIDE THE SYSTEM.
687 DEFSYM  %TXINT==:10000  ;THIS CHAR SHOULD INTERRUPT THE USER.
688 ;GAP
689 DEFSYM  %TXECI==:2000   ;THIS CHAR WAS ECHOED BY AN ECHOIN SYSTEM CALL.
690
691 ;NOW COME THE BITS OF THE CHARACTER ITSELF:
692 DEFSYM  %TXTOP==:4000   ;The "TOP" key.
693 ;GAP
694 DEFSYM  %TXSFT==:1000   ;What used to be the "SHIFT" key is now the
695 DEFSYM  %TXSUP==:1000   ;"SUPER" key. (def'ed in this order for DDT)
696 DEFSYM  %TXMTA==:400    ;"META" key.
697 DEFSYM  %TXCTL==:200    ;"CONTROL" key.
698 DEFSYM  %TXASC==:177    ;The ASCII part of the character.
699
700 ;DISPLAY COMMANDS (WHICH LIVE IN THE OUTPUT BUFFER).
701 ;NOTE THAT ALL OF THEM HAVE 200-BIT SET.
702 DEFSYM  %TD==:777400
703 DEFSYM  %TDMOV==:200    ;MOVE CURSOR
704 DEFSYM  %TDMV1==:201    ;DUMMY COMMAND CREATED BY TYMOV.
705                         ;MAKES IT POSSIBLE FOR TYMOV TO STOP WHEN BUFFER FULL
706                         ;AND BE REENTERED NEXT INTERRUPT.
707 DEFSYM  %TDEOF==:202    ;CLEAR REST OF PAGE
708 DEFSYM  %TDEOL==:203    ;CLEAR REST OF LINE
709 DEFSYM  %TDDLF==:204    ;DELETE FORWARD (FOR IMLACS AND TVS)
710 DEFSYM  %TDMTF==:205    ;MOTOR OFF (FOR TERMINETS)
711 DEFSYM  %TDMTN==:206    ;MOTOR ON (FOR TERMINETS)
712 DEFSYM  %TDCRL==:207    ;CRLF ON DATAPOINTS, IMLACS.
713 DEFSYM  %TDNOP==:210    ;NO-OP FOR SUPERDUPERIMAGE MODE.
714 DEFSYM  %TDBS==:211     ;BACKSPACE (FOR TTY'S WITH %TORAW SET).
715 DEFSYM  %TDLF==:212     ;LINEFEED (").
716 DEFSYM  %TDRCR==:213    ;CARRET (").
717 DEFSYM  %TDORS==:214    ;"OUTPUT RESET" FOR SAKE OF SOFTWARE TTYS
718 DEFSYM  %TDQOT==:215    ;MYSTERY COMMAND -- SEND IN A JINGLE IN 25 WORDS OR
719                         ; LESS AND WIN
720 DEFSYM  %TDFS==:216     ;CURSOR FORWARD ONE COLUMN
721 DEFSYM  %TDMV0==:217    ;MOVE CURSOR, FOLLOWED BY NEW VERT POS, NEW HOR POS
722 DEFSYM  %TDCLR==:220    ;CLEAR THE SCREEN
723 DEFSYM  %TDBEL==:221    ;DING THE BELL
724 DEFSYM  %TDINI==:222    ;SYSTEM JUST CAME UP, RE-INITIALIZE INTELLIGENT
725                         ; TERMINAL
726 DEFSYM  %TDILP==:223    ;INSERT LINE-POSITION, FOLLOW BY COUNT
727 DEFSYM  %TDDLP==:224    ;DELETE LINE-POSITION, FOLLOW BY COUNT
728 DEFSYM  %TDICP==:225    ;INSERT CHARACTER-POSITION, FOLLOW BY COUNT
729 DEFSYM  %TDDCP==:226    ;DELETE CHARACTER-POSITION, FOLLOW BY COUNT
730 DEFSYM  %TDBOW==:227    ;ENTER BLACK ON WHITE MODE
731 DEFSYM  %TDRST==:230    ;DESELECT ALL SPECIAL MODES (SUCH AS BLACK-ON-WHITE).
732 DEFSYM  %TDGRF==:231    ;ENTER GRAPHICS MODE
733 DEFSYM  %TDRSU==:232    ;REGION SCROLL UP
734 DEFSYM  %TDRSD==:233    ;REGION SCROLL DOWN
735
736 ; Apparently codes 234 - 237 are used for an undocumented kludge for
737 ; sending ARDS graphics protocol.  See SYSENG;IMPRIN (the source of
738 ; :ARDPRN).
739
740 ;%TDSYN THROUGH %TDMLT ARE USED ONLY ON TERMINALS WHICH HAVE %TRLED SET IN
741 ; TTYSMT.
742 DEFSYM  %TDSYN==:240    ;RESYNCH REPLY TO LOCAL EDITING TERMINAL
743 DEFSYM  %TDECO==:241    ;ASK TERMINAL TO TRY LOCAL EDITING BY SENDING A
744                         ; RESYNCH.
745 DEFSYM  %TDEDF==:242    ;SET LOCAL EDITING TERMINAL COMMAND DEFINITION.
746                         ; FOLLOWED BY TWO BYTES, DECODED AS DESCRIBED IN
747                         ; LOCAL EDITING PROTOCOL.
748 DEFSYM  %TDNLE==:243    ;STOP DOING LOCAL EDITING.
749 DEFSYM  %TDTSP==:244    ;DISPLAYS LIKE SPACE, BUT IS PART OF A TAB.  USED
750                         ; ONLY FOR LOCAL EDITING TERMINALS, TO ENABLE THEM
751                         ; DISTINGUISH SPACES FROM TABS.
752 DEFSYM  %TDCTB==:245    ;THIS LINE IS CONTINUED AT THE BEGINNING.
753 DEFSYM  %TDCTE==:246    ;THIS LINE IS CONTINUED AT THE END.
754 DEFSYM  %TDMLT==:247    ;%TDMLT <N> => NEXT <N> COLS ARE DISPLAY REP FOR
755                         ; ONE CHAR OF TEXT. 
756 ;%TDSVL THROUGH %TDSLL ARE USED ON TERMINALS WHICH HAVE NONZERO %TRLSV.
757 DEFSYM  %TDSVL==:250    ;<N> <L1> <L2> => SAVE <N> LINES' CONTENTS UNDER
758                         ; LABELS STARTING WITH <L2>*200+<L1>.
759 DEFSYM  %TDRSL==:251    ;SAME THREE ARGS.  RESTORE LABELED CONTENTS ONTO
760                         ; <N> LINES.
761 DEFSYM  %TDSSR==:252    ;<BEG> <END+1> SET RANGE OF COLUMNS TO COPY IN
762                         ; %TDSVL, %TDRSL.
763 DEFSYM  %TDSLL==:253    ;<L1> <L2> SET LABEL FOR NEXT LINE PUSHED OFF
764                         ; SCREEN LOCALLY.
765 DEFSYM  %TDMAX==:254    ;1 + LARGEST DISPLAY CODE.
766 \f
767 ;THE TCTYP WORD FOR A TTY CONTAINS A NUMBER WHICH SAYS HOW TO
768 ;PERFORM CURSOR-CONTROL FUNCTIONS ON THE TTY. THE POSSIBILITIES ARE:
769 DEFSYM  %TN==:777777
770 DEFSYM  %TNPRT==:0      ;PRINTING TTY.
771 DEFSYM  %TNDP==:1       ;TTY USES DATAPOINT CURSOR CTL CODES.
772 DEFSYM  %TNODP==:2      ;TTY IS A LOSING DATAPOINT.
773 DEFSYM  %TNIML==:3      ;TTY USES IMLAC CURSOR CODES.
774 DEFSYM  %TNTEK==:4      ;TEKTRONIX 4000 SERIES
775 DEFSYM  %TNTV==:5       ;TTY IS A KNIGHT TV DISPLAY.
776 DEFSYM  %TNMEM==:6      ;TTY IS A MEMOWRECK.
777 DEFSYM  %TNSFW==:7      ;"SOFTWARE" TTY THAT WANTS I.T.S. CURSOR-MOTION CODES.
778 DEFSYM  %TNTRM==:10     ;TTY IS A TERMINET.
779 DEFSYM  %TNESC==:11     ;TTY WANTS ASCII STANDARD ESCAPE SEQUENCES. (E.G. VT52)
780 DEFSYM  %TNDTM==:12     ;DATAMEDIA
781 DEFSYM  %TNRAY==:13     ;TELERAY 1061
782 DEFSYM  %TNHDS==:14     ;HDS CONCEPT-100
783 DEFSYM  %TNH19==:15     ;H19
784 DEFSYM  %TNAAA==:16     ;Ann Arbor Ambassador
785 DEFSYM  %TNMAX==:17
786
787
788 ;TTYOPT WORD DESCRIBES CHARACTERISTICS OF THE PARTICULAR
789 ;TERMINAL ATTACHED TO EACH LINE.
790
791 ;LEFT HALF BITS ARE:
792 DEFSYM  %TO==:1,,525252         ;BIT TYPEOUT MASK
793 DEFSYM  %TOALT==:200000 ;4.8 => STANDARDIZE ALTMODES.
794 DEFSYM  %TOCLC==:100000 ;4.7 => CONVERT LOWER CASE TO UPPER.
795 DEFSYM  %TOERS==:40000  ;4.6 => THIS TTY CAN SELECTIVELY ERASE.
796 DEFSYM  %TOHDX==:20000  ;4.5 => THIS TTY IS HALF-DUPLEX.
797 DEFSYM  $TOHDX==:370100
798 DEFSYM  %TOMVB==:10000  ;4.4 => THIS TTY CAN BACKSPACE.
799 DEFSYM  %TOSAI==:4000   ;4.3 => THIS TTY HAS SAIL CHAR SET ON OUTPUT.
800 DEFSYM  %TOSA1==:2000   ;4.2 INIT %TSSAI OF NEW JOBS.
801 DEFSYM  %TOOVR==:1000   ;4.1 => THIS TTY CAN OVERPRINT SUCCESSFULLY.
802 DEFSYM  %TOMVU==:400    ;3.9 => THIS TTY CAN MOVE CURSOR UP (I.E. IT'S A
803                         ; DISPLAY).
804 DEFSYM  %TOMOR==:200    ;3.8 => DO **MORE** PROCESSING ON THIS TTY
805                         ; (ACTUALLY JUST USED TO INIT %TSMOR FOR NEW JOBS).
806 DEFSYM  %TOROL==:100    ;3.7 SIMILARLY, INIT %TSROL FOR NEW JOBS.
807 DEFSYM  %TORAW==:40     ;3.6 => SUPPRESS CURSOR MOTION OPTIMIZATION.
808 DEFSYM  %TOLWR==:20     ;3.5 => THIS TTY HAS LOWER CASE KEYBOARD.
809 DEFSYM  %TOFCI==:10     ;3.4 => KEYBOARD CAN GENERATE FULL 12-BIT CHARACTER SET
810 DEFSYM  %TOIML==:4      ;3.3 => SPACE, BS DON'T EQUAL ^PF, ^PB; ALSO ^PC
811                         ; SENDS ^L.
812 DEFSYM  %TOLID==:2      ;3.2 => %TDILP, %TDDLP WORK (INSERT AND DELETE LINES)
813 DEFSYM  %TOCID==:1      ;3.1 => %TDICP, %TDDCP WORK
814                         ; (INSERT AND DELETE CHARACTERS)
815
816 ;RIGHT HALF:
817 DEFSYM  %TP==:707252            ;BIT TYPEOUT MASK
818 DEFSYM  %TPPLF==:100000
819 DEFSYM  $TPPLF==:170300 ;3-BIT FIELD SAYING HOW TO PAD LF.
820                         ; 0 - DON'T. 1 - MEMOWRECK, 2741. 2 - TERMINET.
821 DEFSYM  %TPPCR==:10000
822 DEFSYM  $TPPCR==:140300 ;3-BIT FIELD SAYING HOW TO PAD CR.
823                         ; 7 - UNUSED. 6 - MEMOWRECK. 5 - 2741. 4 - EXECUPORT.
824                         ; 0 - DON'T. 1 - NORMAL. 2 - DOUBLE.
825                         ; ON DATAPOINTS, = # CHARS PADDING NEEDED FOR ALL
826                         ; CURSOR MOTION. 
827                         ; 4 IS RIGHT FOR 2400 BAUD; 3, FOR 1200.
828                         ; ON TERMINETS, 0 => NO PADDING, ELSE 1,2,3,4,5
829                         ; ARE PADDING FOR SPEEDS 10,15,30,60,120 CPS.
830 DEFSYM  %TPPCW==:6      ;FOR MEMO WRECK.
831 DEFSYM  %TPPTB==:1000
832 DEFSYM  $TPPTB==:110300 ;3 BIT FIELD SAYING HOW MUCH PADDING NEEDED AFTER
833                         ; TAB.  0 => TABS NOT ALLOWED; ELSE 1 +<# PADDING
834                         ; CHARS NEEDED> BUT ON A DISPLAY, TABS ARE NEVER
835                         ; PADDED AND THIS FIELD IS 1 TO USE TABS, 2 TO USE
836                         ; ABSOLUTE CURSOR POSITIONING, 3 TO USE BOTH, 0 TO
837                         ; USE NEITHER.
838 DEFSYM  %TPMTA==:400    ;1.9 => HARDWARE META KEY SETS 8TH BIT
839 DEFSYM  %TPPRN==:200    ;1.8 => INTERCHANGE () WITH [] ON INPUT
840 DEFSYM  %TPTEL==:100    ;1.7 => HANDLE CR-LF ON INPUT AS CR, FOR TELNET
841                         ; PROTOCOL
842 DEFSYM  %TPCBS==:40     ;1.6 => ENABLE SPECIAL HANDLING OF CONTROL BACK
843                         ; SLASH ON INPUT (THE "INTELLIGENT TERMINAL
844                         ; PROTOCOL").
845 DEFSYM  %TP11T==:20     ;1.5 => PDP-11 TV TTY. REFLECTS %TY11T.  NOT
846                         ; SETTABLE BY USER.
847 DEFSYM  %TPORS==:10     ;1.4 => OUTPUT RESET ON THIS TTY SHOULD REALLY DO
848                         ; SOMETHING.
849 DEFSYM  %TPRSC==:4      ;1.3 => THIS TTY SUPPORTS %TDRSU, %TDRSD
850
851 ;DEFINE BITS WHICH ARE USER-OPTIONS
852 DEFSYM  %TOUSR==:%TOCLC+%TOSA1+%TOMOR+%TOROL
853 DEFSYM  %TPUSR==:%TPPRN+1       ;THE 1 IS TO AVOID INTEFERING WITH BIT-TYPE-OUT
854 \f
855 DEFSYM  %TQ==1,,701725  ;TTY "SMARTS" BITS IN LH(TTYSMT)
856 DEFSYM  %TQIM1==300000  ;TTY IS A PDS1
857 DEFSYM  %TQIM4==200000  ;TTY IS A PDS4
858 DEFSYM  %TQP11==100000  ;TTY IS A PDP11
859 DEFSYM  %TQMCH==700000  ;4.7-4.9 MACHINE TYPE, 0 => NOTHING SPECIAL
860 DEFSYM  %TQGRF==1       ;3.1 UNDERSTANDS GRAPHICS PROTOCOL
861 DEFSYM  %TQGPH==1       ;3.1 UNDERSTANDS GRAPHICS PROTOCOL (OBSOLETE NAME)
862 DEFSYM  %TQSET==2       ;3.2 HAS MULTIPLE OBJECT SETS
863 DEFSYM  %TQREC==4       ;3.3 HAS RECTANGLE COMMANDS
864 DEFSYM  %TQXOR==10      ;3.4 HAS XOR MODE
865 DEFSYM  %TQBNK==20      ;3.5 HAS BLINKING
866 DEFSYM  %TQVIR==40      ;3.6 VIRTUAL COORDINATES
867 DEFSYM  %TQHGT==76000   ;4.2-4.6 CHARACTER HEIGHT IN DOTS
868 DEFSYM  %TQWID==1700    ;3.7-4.1 CHARACTER WIDTH IN DOTS
869
870 DEFSYM  %TR==534052     ;RH(TTYSMT)
871 DEFSYM  %TRGIN==400000  ;2.9 HAS GRAPHIC INPUT
872 DEFSYM  %TRGHC==200000  ;2.8 HAS GRAPHIC HARDCOPY
873 DEFSYM  %TRLED==100000  ;2.7 HAS LOCAL EDITING PROTOCOL.
874 DEFSYM  %TRSCN==040000  ;2.6 HAS RASTER COMMANDS
875 DEFSYM  %TRLSV==034000  ;2.3-2.5 NONZERO MEANS TERMINAL SUPPORTS 4**N SAVED
876                         ; LINES.
877 DEFSYM  %TRTIM==003700
878 DEFSYM  $TRTIM==060500  ;5 BIT FIELD WHICH IS THE SIGNED OFFSET FROM GMT
879                         ; MINUS #o20; A VALUE OF ZERO MEANS DON'T KNOW,
880                         ; DON'T CARE, OR USER PROGRAM HASN'T IMPLEMENTED IT
881                         ; YET
882
883 ;GROUP NUMBER              CHARACTERS
884 ;[      0               ^A-^F ^K-^L ^N-^R ^T-^Z ^] ^^ ^_ ^@ ^\
885 ;       1               A-Z   LOWER CASE A-Z
886 ;       2               0-9
887 ;       3               !"#$(DOLLAR)%&',.:;?@\ (ACCENT GRAVE)
888 ;                        (VERTICAL BAR) (TILDE)
889 ;       4               *+-/=^_
890 ;       5               <>[]() (LEFT BRACE) (RIGHT BRACE)
891 ;       6               ^G ^S
892 ;       7               LF ^I(TAB)
893 ;       10              (ALTMODE)
894 ;       11              CR
895 ;       12              RUBOUT
896 ;       13              SPACE ^H(BACKSPACE)
897
898 ;TTYST1 HAS GROUPS 0 THROUGH 5 FROM LEFT TO RIGHT
899 ;TTYST2 HAS 6 THROUGH 13
900 ;EACH GROUP HAS SIX BITS AS FOLLOWS:
901 DEFSYM  %TG==:777725            ;BIT TYPEOUT MASK
902 DEFSYM  %TGINT==:1      ;N.1 => INTERRUPT ON THIS GROUP
903 DEFSYM  %TGACT==:2      ;N.2 => ACTIVATE ON THIS GROUP (FOR SWAPPING)
904 DEFSYM  %TGSPC==:4      ;N.3 => SPECIAL HACKS.
905                         ; (THIS SET ON GROUP 1 => CONVERT LOWER CASE) 
906 DEFSYM  %TGIMG==:10     ;N.4 => IMAGE MODE OUTPUT (N.4=0  => ASCII MODE)
907                         ;N.6-N.5 => ECHO MODE
908                         ;       00 => NO ECHO
909 DEFSYM  %TGPIE==:20     ;       01 => PI  ECHO (ECHO CHARACTER WHEN TYPED)
910 DEFSYM  %TGMPE==:40     ;       10 => MAIN PROGRAM ECHO (ECHO WHEN MAIN
911                         ;             PROGRAM RECEIVES CHARACTER)
912
913 ;TTYSTS HAS RANDOM BITS ASSOCIATED WITH THE TELETYPE
914 DEFSYM  %TS==:1,,525252         ;BIT TYPEOUT MASK
915 DEFSYM  %TSFRE==:400000 ;4.9 => TTY FREE
916 DEFSYM  %TSCLE==:200000 ;4.8 => ECHO ^L AS UPARROW-L EVEN ON DISPLAYS
917                         ;(OTHERWISE WOULD ECHO AS CLEAR SCREEN)
918 DEFSYM  %TSHDX==:100000 ;4.7 REFLECTS %TOHDX BIT.
919 DEFSYM  %TSFCO==:040000 ;4.6 => HANDLE 9-BIT CHARS ON OUTPUT, USING ALPHA,
920                         ; BETA, EPSILON.
921 DEFSYM  %TSALT==:020000 ;4.5 => DON'T STANDARDIZE ALTMODE.
922 DEFSYM  %TSROL==:010000 ;4.4 => SCROLL MODE.
923 DEFSYM  %TSSAI==:004000 ;4.3 => ECHO AND ASCII MODE SHOULD USE SAIL CHAR SET.
924 DEFSYM  %TSACT==:002000 ;4.2 => GOBBLE NEXT CHAR REGARDLESS OF ACTIVATION
925                         ; STATUS
926 DEFSYM  %TSNEA==:001000 ;4.1 => DON'T ECHO IN ECHO AREA; ECHO IN M.P. AREA
927 DEFSYM  %TSINT==:000400 ;3.9 => INT ON NEXT CHAR REGARDLESS
928 DEFSYM  %TSMOR==:000200 ;3.8 => INHIBIT **MORE**.
929 DEFSYM  %TSATY==:000100 ;3.7 SET BY .ATTY, SAYS TTY WAS TAKEN AWAY & RETURNED.
930                         ;3.6-3.5 UNUSED.
931 DEFSYM  %TSNOE==:000010 ;3.4 => DEFER ECHOING, AND MAKE INPUT IOT'S ACT AS
932                         ; IF %TIECH=1.
933 DEFSYM  %TSLCZ==:000004 ;3.3 => LAST CHARACTER TYPED WAS ^Z
934                         ; (NOT PRECEEDED BY ^_)
935 DEFSYM  %TSSII==:000002 ;3.2 => SUPER IMAGE INPUT MODE.  ^Z AND ^_ INHIBITED.
936 DEFSYM  %TSCNS==:000001 ;3.1 => TTY IN USE AS CONSOLE CONTROLLING A TREE.
937 DEFSYM  $TSCNS==:220100
938                         ;RH => USER INDEX
939                         ;       -1 => NO USER
940 \f
941 ;TTYCOM VARIABLE.
942 ;4.9 => TTY IN COMMUNICATE MODE
943 DEFSYM  %TC==:1,,525252         ;BIT TYPEOUT MASK
944 DEFSYM  %TCLFT==:200000 ;4.8 => LOCAL FEED THROUGH (SET IF MY PRGM
945                         ; RECEIVING HIS CHRS)
946 DEFSYM  %TCRFT==:100000 ;4.7 => REMOTE FEED THROUGH (SET IF HIS PRGM
947                         ; RECEIVING MY CHRS)
948 DEFSYM  %TCICO==:40000  ;4.6 => INPUT COMMUNICATE OVERRIDE (SET IF MY
949                         ; CONSOLE FEEDING MY PRGM EVEN THO IN COMM MODE).
950                         ; ALSO IMPLIES OUTPUT OVER-RIDE
951 DEFSYM  %TCOCO==:20000  ;4.5 => OUTPUT COMMUNICATE OVERRIDE (SET IF MY
952                         ; PRGM'S OUTPUT TO APPEAR ON MY CONSOLE ONLY EVEN
953                         ; THO IN COM MODE)
954                         ;4.4-4.3 => MESSAGE RECEIPT SWITCH
955                         ;  00 => ACCEPT
956 DEFSYM  %TCRFS==:10000  ;  10 => REFUSE
957 DEFSYM  %TCQRY==:4000   ;  01 => INTERROGATE
958 DEFSYM  %TCMTR==:2000   ;4.2  SET FOR TTY WHOSE MOTOR IS OFF & MUST BE
959                         ; TURNED ON BEFORE ANY OTHER OUTPUT IS DONE.  (ONLY
960                         ; TERMINETS HAVE THEIR MOTORS SHUT OFF BY ITS).
961 DEFSYM  %TCECH==:1000   ;4.1 THE OUTPUT BUFFER CONTAINS ECHOING OUTPUT.
962                         ; THIS MAKES OUTPUT RESET DO NOTHING.  THE BUFFER
963                         ; MUST NOT CONTAIN ECHO OUTPUT AND NORMAL OUTPUT AT
964                         ; ONE TIME.
965 DEFSYM  %TCLED==:400    ;3.9 JOB WHICH OWNS TTY WANTS LOCAL EDITING IN
966                         ; TERMINAL.  SET BY CTL BIT 1.1 IN SCPOS; CLEARED
967                         ; BY SWITCHING JOBS.
968 DEFSYM  %TCDET==:200    ;3.8 CONSOLE'S TREE DETACHED BY TOP LEVEL
969                         ; INTERRUPT.  SET BY NDETAC AS SIGNAL TO SYSCFM
970                         ; (CNSL-FREE-MSG TYPER)
971 DEFSYM  %TCDNG==:100    ;3.7 => TYPE BELL ON TTY (BECAUSE INPUT BFR FULL).
972 DEFSYM  %TCCBK==:40     ;3.6 => READING UNAME OR TTY # AFTER ^_K.
973 DEFSYM  %TCCBS==:20     ;3.5 => READING UNAME OR TTY # AFTER ^_S.
974 DEFSYM  %TCFPD==:10     ;3.4 => FIRST PART OF MULTI-CHAR OUTPUT SEQUENCE DONE.
975 DEFSYM  %TCTPN==:4      ;3.3 TYPE ^_N ON LEAVING COM MODE (UNLESS USER
976                         ; EXPLICITLY TYPES ^_N)
977 DEFSYM  %TCPAD==:2      ;3.2  0 => PADDING NECESSARY ON DATAPOINT.
978 DEFSYM  %TCHNG==:1      ;3.1 TTY'S DONE FLAG APPEARS TO BE FRIED, TIME OUT
979                         ; QUICKLY
980 ;RH => USER INDEX COMMUNICATING WITH (-1 NONE)
981
982 ;TTYTYP TABLE
983 ;THIS TABLE HOLDS BITS THAT DESCRIBE THE LINE
984 ;AND ITS CONTROLLER, RATHER THAN THE TTY ATTACHED TO THE LINE.
985 DEFSYM  %TT==:1,,525360         ;BIT TYPEOUT MASK
986 DEFSYM  %TTLCL==:400000 ;BIT 4.9 ONE => LOCAL TTY
987 DEFSYM  %TT340==:200000 ;BIT 4.8 ONE => CONSOLE NEXT TO 340 OR A 340 SLAVE
988 DEFSYM  %TT3HP==:100000 ;BIT 4.7 HIGH PRIORITY ON 340
989 DEFSYM  %TTPAR==:004000 ;BIT 4.3
990 DEFSYM  %TTDDI==:002000 ;BIT 4.2 DONT DING ON EXCESS INPUT
991 DEFSYM  $TTISP==:260400 ;3.8-3.5 INPUT SPEED CODE
992 DEFSYM  %TTISP==:20
993 DEFSYM  $TTOSP==:220400 ;3.4-3.1 OUTPUT SPEED CODE
994 DEFSYM  %TTOSP==:1
995 ;RIGHT HALF BITS
996 DEFSYM  %TY==:525252            ;BIT TYPEOUT MASK
997 DEFSYM  %TYDPK==:400000 ;BIT 2.9 (DATAPOINT KLUDGE TTY LINE)
998 DEFSYM  %TYSTY==:200000 ;BIT 2.8 PSEUDO TTY
999 DEFSYM  %TYNVA==:100000 ;BIT 2.7 NOVA TTY
1000 DEFSYM  %TYMTY==:040000 ;BIT 2.6 MORTON BOX
1001 DEFSYM  %TYDIL==:020000 ;BIT 2.5 DIAL UP
1002 DEFSYM  %TY11T==:010000 ;BIT 2.4 PDP-11 TV TTY.
1003 DEFSYM  %TYDL==:004000  ;BIT 2.3 DL-11 TTY
1004 DEFSYM  %TYOTY==:002000 ;BIT 2.2 KA-10 CONSOLE TTY
1005 DEFSYM  %TYETY==:001000 ;BIT 2.1 DTE20 TTY
1006 DEFSYM  %TYNTY==:000400 ;BIT 1.9 TK-10 TTY
1007 DEFSYM  %TYMDM==:000200 ;BIT 1.8 LINE DETECTS DIALINS AND HANGUPS
1008 DEFSYM  %TYKST==:000100 ;BIT 1.7 KS-10 CONSOLE TTY
1009 DEFSYM  %TYDZT==:000040 ;BIT 1.6 DZ-11 TTY ON KS-10
1010 DEFSYM  %TYRLM==:000020 ;BIT 1.5 ROLM DATA SWITCH
1011
1012 ;SPEED CODES ARE DOCUMENTED ON PAGE 3 OF ITS (DEFINE SPEED1)
1013 \f
1014 ;SUPDUP GRAPHICS PROTOCOL COMMANDS:
1015
1016 DEFSYM  %GO==:,,-1
1017
1018 DEFSYM  %GODLR==:101    ;<p>  Draw line relative, from the cursor to <p>.
1019 DEFSYM  %GODPR==:102    ;<p>  Draw point relative, at <p>.
1020 DEFSYM  %GODRR==:103    ;<p>  Draw rectangle relative, corners at <p> and
1021                         ;     at the current cursor position.
1022 DEFSYM  %GODCH==:104    ;<string> <0>
1023                         ;Display the chars of <string> starting at the current
1024                         ;graphics cursor position.
1025 DEFSYM  %GODSC==:105    ;<scan bits> <terminater> Draws scan bits starting at
1026                         ;the current gaphics cursor position. <scan bits> come
1027                         ;in bits of 6-6-4. <terminater> has 100 bit (character
1028                         ;gobbled) or 200 bit (interpreted as %TD code) set.
1029 DEFSYM  %GODRN==:106    ;<run bits> <0> Draw run length encoded raster line
1030                         ;starting at current graphic cursor. Low six bits are
1031                         ;count. 100 bit determines point type (on/off).
1032
1033 DEFSYM  %GODLA==:121    ;<p>  Draw line absolute, from the cursor to <p>.
1034                         ;     The same effect as %GODLR, but the arg absolute.
1035 DEFSYM  %GODPA==:122    ;<p>  Draw point absolute, at <p>.
1036 DEFSYM  %GODRA==:123    ;<p>  Draw rectangle absolute, corners at <p> and
1037                         ;     at the current cursor position.
1038
1039 DEFSYM  %GOELR==:141    ;<p>  Erase line relative, from the cursor to <p>.
1040 DEFSYM  %GOEPR==:142    ;<p>  Erase point relative, at <p>.
1041 DEFSYM  %GOERR==:143    ;<p>  Erase rectangle relative, corners at <p> and
1042                         ;     at the current cursor position.
1043 DEFSYM  %GOECH==:144    ;<string> <0>
1044                         ;Erase the chars of <string> starting at the current
1045                         ;graphics cursor position.
1046 DEFSYM  %GOESC==:145    ;<scan bits> <terminater>. Erase scan bits starting at
1047                         ;the current graphics cursor position. 
1048 DEFSYM  %GOERN==:146    ;<run bits> <0> Erase run-length encoded rasters
1049                         ;starting at current grphaics cursor position. 
1050
1051 DEFSYM  %GOELA==:161    ;<p>  Erase line absolute, from the cursor to <p>.
1052 DEFSYM  %GOEPA==:162    ;<p>  Erase point absolute, at <p>.
1053 DEFSYM  %GOERA==:163    ;<p>  Erase rectangle absolute, corners at <p> and
1054                         ;     at the current cursor position.
1055
1056 DEFSYM  %GOMVR==:001    ;<p>  Move cursor to point <p>
1057 DEFSYM  %GOMVA==:021    ;<p>  Move cursor to point <p>, absolute address.
1058 DEFSYM  %GOXOR==:002    ;     Turn on XOR mode.  Bit matrix terminals only.
1059 DEFSYM  %GOIOR==:022    ;     Turn off XOR mode.
1060 DEFSYM  %GOSET==:003    ;<n>  Select set.  <n> is a 1-character set number,
1061                         ;     0 - 177.
1062 DEFSYM  %GOMSR==:004    ;<p>  Move set origin to <p>.  Display list
1063                         ;     terminals only.
1064 DEFSYM  %GOMSA==:024    ;<p>  Move set origin to <p>, absolute address.
1065 DEFSYM  %GOINV==:006    ;     Make current set invisible.
1066 DEFSYM  %GOVIS==:026    ;     Make current set visible.
1067 DEFSYM  %GOBNK==:007    ;     Make current set blink.  Canceled by %GOINV
1068                         ;     or %GOVIS.
1069 DEFSYM  %GOCLR==:010    ;     Erase whole screen.
1070 DEFSYM  %GOCLS==:030    ;     Erase entire current set (display list
1071                         ;     terminals).
1072 DEFSYM  %GOPSH==:011    ;     Push all input-stream status information, to be
1073                         ;     restored when graphics mode is exited.
1074 DEFSYM  %GOVIR==:012    ;     Start using virtual co-ordinates
1075 DEFSYM  %GOPHY==:032    ;     Resume giving co-ordinates in units of dots.
1076 DEFSYM  %GOHRD==:013    ;<n>  Divert output to output subdevice <n>.
1077                         ;     <n>=0 reselects the main display screen.
1078 DEFSYM  %GOGIN==:014    ;<n>  Request graphics input (mouse, tablet, etc).
1079                         ;     <n> is the reply code to include in the answer.
1080 DEFSYM  %GOLMT==:015    ;<p1> <p2>
1081                         ;Limits graphics to a subrectangle of the
1082                         ;screen.  %GOCLR will clear only that area.
1083                         ;This is for those who would use the rest for text.
1084 \f
1085 ;THE TTYTBL VARIABLE EXISTS FOR EACH JOB.
1086 ;IT DESCRIBES THE ATTY-DTTY STATE OF THE JOB
1087 ;AND OTHER THINGS THAT HAVE TO DO WITH THE TREE'S
1088 ;CONTROLLING TTY ONLY.
1089 DEFSYM  %TB==:1,,525277         ;BIT TYPEOUT MASK
1090 DEFSYM  %TBNOT==:400000 ;4.9 THIS JOB DOES NOT HAVE THE TTY NOW.
1091 DEFSYM  %TBNVR==:200000 ;4.8 IF JOB DOESN'T HAVE TTY, OPENS SHOULD FAIL.
1092 DEFSYM  %TBINT==:100000 ;4.7 IF JOB DOESN'T HAVE TTY, ATTEMPT TO USE TTY
1093                         ; SHOULD INTERRUPT.
1094 DEFSYM  %TBWAT==:040000 ;4.6 IF SET, OVERRIDES %TBINT AND %TBNVR, AND
1095                         ; FORCES TTY USAGE ATTEMPTS TO HANG. MAY BE ALTERED
1096                         ; ONLY BY SUPERIOR.
1097 DEFSYM  %TBDTY==:010000 ;4.4 THE JOB DOESN'T HAVE THE TTY, BUT IT IS IN A
1098                         ; DTTY'ING STATE. IN OTHER WORDS, THIS JOB DOESN'T
1099                         ; WANT TO GIVE THE TTY TO ONE OF ITS INFERIORS.
1100 DEFSYM  %TBOUT==:004000 ;4.3 ALLOW TYPEOUT EVEN IF DON'T HAVE TTY (SETTABLE
1101                         ; BY SUPERIOR)
1102 DEFSYM  %TBINF==:002000 ;4.2 ALLOW INFERIORS TO TAKE ADVANTAGE OF THEIR
1103                         ; %TBOUTS.
1104 DEFSYM  %TBOIG==:001000 ;4.1 IGNORE OUTPUT (NORMALLY SET BY SUPERIOR).
1105                         ; OVERRIDES %TBWAT, %TBINT.
1106 DEFSYM  %TBIIN==:000400 ;3.9 INTERRUPT ON ATTEMPT TO DO INPUT.  OVERRIDES
1107                         ; %TBWAT.  NORMALLY SET BY SUPERIOR.
1108 DEFSYM  $TBECL==:220600 ;3-6-3.1 # ECHO LINES IF I DONT HAVE DISPLAY
1109 DEFSYM  %TBECL==:77
1110
1111 ;RH - IF %TBNOT IS 0, THE RH HAS THE TTY NUMBER.
1112 ;OTHERWISE, IF %TBDTY IS 0, THE RH HAS THE USR INDEX OF
1113 ;THE INFERIOR THAT THIS JOB GAVE OR WOULD LIKE TO GIVE
1114 ;THE TTY TO. OTHERWISE, THE RH IS 0.
1115
1116 ;BITS IN THE PER-STY VARIABLE STYSTS, RETURNED BY STYGET SYSTEM CALL.
1117 DEFSYM  %SS==:1,,525252                 ;BIT TYPEOUT MASK
1118 DEFSYM  %SSHNG==:400000         ;4.9 = 1 => DON'T HANG ON INPUT IOTS
1119 DEFSYM  %SSUSE==:200000         ;4.8 = 1 => IN USE
1120 DEFSYM  %SSINT==:100000         ;4.7 = 1 => HAVE GIVEN INT ON STY OUTPUT
1121                                 ; CHNS ALREADY
1122 DEFSYM  %SSONT==:040000         ;4.6 = 1 => DITTO FOR STY INPUT (TTY OUTPUT)
1123 DEFSYM  %SSOHG==:20000          ;4.5 = 1 => DON'T HANG ON OUTPUT IOT
1124                                 ;RH = USER INDEX THAT HAS IT OPEN
1125
1126
1127 IFN $$TEMP, EXPUNGE DEFSYM