Copyright (c) 1999 Massachusetts Institute of Technology This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ------------------------------ ITS TTY Variables: This file attempts to maintain up-to-date documentation on all the TTY variables. Those wonderful souls who update this information in anyway (additions, deletions, corrections) should describe their modifications in a brief note to INFO-ITS so that interested parties can correct their copies or conceptions without needing to print or read the entire file again. For example: :MAIL INFO-ITS I added documentation on the FOO variable to TTYVAR.^C ---------------------------------------------------------------------- For a more complete description of TTY handling see the file .INFO.;ITS TTY. This file exists primarily to facilitate lookup via the DOC program. Use :DOC TTYVAR to read the documentation of a specific variable. The system calls for reading and setting TTY variables are: CNSGET, CNSSET, OPEN, RCPOS, RFNAME, RSSIZE, SCML, SCPOS, STYGET, TTYGET, TTYSET, and TTYVAR. BIT names: Bit names begin with %Tx where x specifies which variable. Byte pointer names begin with $Tx. Here is a list of the prefixs in use and where they're found: %TA TTYSTA %TB .TTY %TC TTYCOM %TD output buffers (these are characters, not bits) %TF ? %TG TTYST1 and TTYST2 %TI IOCHNM (for input channels) %TJ IOCHNM (for output channels) %TN TCTYP (these are codes, not bits) %TO TTYOPT LH %TP TTYOPT RH %TS TTYSTS %TT TTYTYP LH %TX input buffers %TY TTYTYP RH HEIGHT: Screen Height (per-TTY) HEIGHT contains the number of lines on the screen. For printing terminals it is usually some large number. This variable can be read with the CNSGET, RSSIZE, and TTYVAR system calls and set with the CNSSET and TTYVAR system calls.  IDLTIM: Idle Time (per-TTY) IDLTIM contains the length of time since the last input character character was typed on the TTY, in 30'ths of a second. This variable can be read with the TTYVAR system call. IOCHNM: I/O channel bits (per-channel) Some of the control bits set first time options and some are per-channel. Those which are per-channel are marked below with a *. The standard names for these bits are also given. Control bits on input: 2.6 * %TIECH Read even if char needs pi echoing 2.5 * %TIPEK Don't remove char from buffer (peek) 2.3 * %TIACT Don't wait for activation char 2.2 * %TIINT Read even if char is an interrupt char and hasn't interrupted yet. 2.1 * %TINWT Do not wait for input. If no input is available, return -1 in unit mode, or return a partially filled block in block mode. 1.9 * %TIFUL Use the full TV character set if possible. In this mode, characters have this form: 2.3 %TXTOP Top. 2.2 Obsolete. Used to be Shift lock. 2.1 %TXSUP Super. Used to be Shift. 1.9 %TXMTA Meta. 1.8 %TXCTL Control. 1.7-1.1 %TXASC Ascii part of character. Of course, for non-TV's only %TXASC will be non-zero. 1.6 Set up 3 line echo area (like SCML of 3). 1.4 "DDT" mode. Initially clear the %TGPIE and %TGMPE bits for carriage return, line feed, and tab, thus causing them not to echo. 1.3 Image mode. Initially clear the %TGPIE and %TGMPE bits for all characters. 1.2 0 = unit mode, 1 = block mode. In block mode, ^C causes a block mode end of file. 1.1 0 = input. Control bits on output: 2.6 * %TJECH Echo mode output. 2.5 * %TJCTN Don't do line continuation. 2.4 * %TJSTP Channel is hung in **MORE**. Unusual in that the system modifies this bit. 2.3 * %TJDIS Recognize ^P cursor codes. 2.2 * %TJSIO Super-image output. No padding or cursor control is performed. 2.1 * %TJMOR Do not do **MORE** processing. 1.9 * %TJPP2 Output in the echo area if it exists. 1.6 Same as 2.2 - turns on %TJSIO. 1.5 Same as 2.3 - turns on %TJDIS. 1.4 Turns on %TJECH, %TJPP2, %TJMOR. 1.3 Image mode. Initially set %TGIMG bits for all characters. 1.2 0 = unit mode, 1 = block mode. In block mode output all ^C's are ignored. 1.1 1 = output. The I/O channel word for a TTY channel can be read with RFNAME. It is set by the OPEN call. ISPEED: Input Speed (per-TTY) ISPEED is the input speed of the terminal. It refers to the input speed code stored in the TTYTYP variable. However, it is not a speed code, but rather the speed in bits per second. Also, you are allowed to set the ISPEED variable, while you are not allowed to set the whole TTYTYP variable. This variable can be read and set with the TTYVAR system call.  OSPEED: Output Speed (per-TTY) OSPEED is the output speed of the terminal. It refers to the output speed code stored in the TTYTYP variable. However, it is not a speed code, but rather the speed in bits per second. Also, you are allowed to set the OSPEED variable, while you are not allowed to set the whole TTYTYP variable. This variable can be read and set with the TTYVAR system call. TCTYP: Terminal type code (per-TTY) 0 %TNPRT Printing terminal. 1 %TNDP Good Datapoint. 2 %TNODP Bad Datapoint ("loser"). 3 %TNIML Imlac. 4 %TNTEK Tektronix. 5 %TNTV PDP-11 TV. 6 %TNMEM Memowreck. 7 %TNSFW Software terminal (accepts internal ITS display codes, such as live in internal terminal output buffers; see ITS TTY for details). 10 %TNTRM Terminet. 11 %TNESC Display using ASCII standard display codes. 12 %TNDTM Datamedia. 13 %TNRAY Teleray 1061 14 %TNHDS Concept 100 15 %TNH19 Zenith H19 16 %TNAAA Ann Arbor Ambassador This variable can be read with the CNSGET and TTYVAR system calls and set with the CNSSET and TTYVAR system calls. TTYCOM: Com-link bits (per-TTY) 4.9 Communicate mode. 4.8 %TCLFT Local feed through (my job sees his typing). 4.7 %TCRFT Remote feed through (his job sees my typing). 4.6 %TCICO Input comm override (my job sees my typing). 4.5 %TCOCO Output comm override (I see my job's typing). 4.4 %TCRFS Refuse comm messages. 4.3 %TCQRY Query me if comm attempted to me. 4.2 %TCMTR The tty's motor is off, and must be turned on before next output. (Currently only Terminets get turned off.) 4.1 %TCECH The last output to this tty was PI echo. 3.9 %TCINP Someone waited for input since last home-up. 3.8 %TCDET Console's tree detached by top level interrupt. 3.7 %TCDNG Type bell (input buffer full). 3.6 %TCCBK Reading uname or tty number after ^_K. 3.5 %TCCBS Reading uname or tty number after ^_S. 3.4 %TCFPD First part of an output code sequence is done. 3.3 %TCTPN Type ^_N on leaving comm (unless user types it). 3.2 %TCPAD 0 => padding necessary on datapoint. 3.1 %TCHNG Done flag seems to be fried - time out quickly. 2.9-1.1 -1 if not in comm mode; otherwise number of next tty in circular list of those in comm mode together. Only the %TCICO, %TCOCO, %TCRFS, %TCQRY, %TCMTR, and %TCINP bits may be set. This variable can be read with the CNSGET and TTYVAR system calls and set with the CNSSET and TTYVAR system calls. TTYOPT: TTY capability and option bits (per-TTY) 4.8 %TOALT Standardize altmodes. 4.7 %TOCLC Convert lower case input to upper case. 4.6 %TOERS This tty can selectively erase. 4.5 %TOHDX This tty is half-duplex. 4.4 %TOMVB This tty can backspace directly. 4.3 %TOSAI This tty handles SAIL characters. 4.2 %TOSA1 Used to initialize %TSSAI for new jobs. 4.1 %TOOVR This tty can overprint correctly. 3.9 %TOMVU This tty can move its cursor upward. 3.8 %TOMOR Used to initialize %TSMOR for new jobs. 3.7 %TOROL Used to initialize %TSROL for new jobs. 3.6 %TORAW Don't optimize cursor motion. 3.5 %TOLWR This tty has a lower case keyboard. 3.4 %TOFCI This tty's keyboard has the full TV character set. 3.3 %TOIML This tty acts like an IMLAC. 3.2 %TOLID This tty can insert/delete lines. 3.1 %TOCID This tty can insert/delete characters. 2.9-2.7 $TPPLF How to pad line feeds: 0 Don't. 1 Two pad chars (Memorex, 2741). 2 Terminet. 2.6-2.4 $TPPCR How to pad carriage returns: 0 Don't. 4 Execuport. 1 Normal. 5 2741. 2 Double. 6 Memorex. 3 Unused. 7 Unused. For a Datapoint, number of pad chars before each string of cursor motion commands. For a Terminet, 0=no padding, 1,2,3,4,5 correspond to 10,15,30,60,120 cps. 2.3-2.1 $TPPTB How to pad tabs: 0 Tabs not allowed. Use pad chars. On displays, 0 don't use tabs. 1 use tabs. 2 use VT52-style absolute positioning. 1.9 %TPMTA Treat bit 1.8 of input characters as the meta bit. this is for terminals such as Telerays which have Edit keys. 1.8 %TPPRN interchange ( with [, and ) with ], on input. 1.7 %TPTEL Treat CRLF input as CR for TELNET protocol. 1.6 %TPCBS The ^\ intelligent terminal protocol is enabled. 1.5 %TP11T PDP-11 TV. Reflects %TY11T. 1.4 %TPORS Output reset really does something. 1.3 %TPRSC This tty can do region scrolling. 1.2 %TPIBC Oddball 2741-like tty. ;no longer defined 1.1 %TPIBM It really is a 2741. ;no longer defined This variable can be read with the CNSGET and TTYVAR system calls and set with the CNSSET and TTYVAR system calls. TTYROL: Scroll count (per-TTY) TTYROL contains the number of lines the TTY moves up when it scrolls. Scrolling occurs when a LF is sent while the cursor is on the last line. This variable can be read and set with the TTYVAR system call. TTYSTA: ? 4.9 %TACFM Tty does not need a console free message eventually (hasn't been in use since the last one). 4.8 %TAC.Z Tty is being ^Z'd. Shouldn't be on with %TACFM. If %TACFM and %TAC.Z are both 0, the tty is being freed and a console free message is immanent. 4.7 %TANJS This ^Z is being flushed because no job slots are available. If set, %TAC.Z will be 1 and %TACFM will be 0. 4.6-4.3 %TANEC Number of following chars to inhibit echo and ints for. This is used for the arg chars that follow Top-E, Top-S, Top-Y, etc. This variable can be read with the STYGET system call. TTYST1: Activation and Echo control word 1 (per-job) This variable contains six groups of six bits. Each group is as follows: 1.6 %TGMPE Echo at main program level (when IOT'ed). 1.5 %TGPIE Echo at interrupt level (when typed). 1.4 %TGIMG Echo in image mode. 1.3 %TGSPC Special hack: convert lower case to upper. 1.2 %TGACT Activation character. 1.1 %TGINT Interrupt character. The character groups are: 4.9-4.4 ^@-^F ^K ^L ^N-^R ^T-^Z ^\-^_ 4.3-3.7 Upper and lower case letters. 3.6-3.1 Digits. 2.9-2.4 ! " # $ % & ' , . : ; ? @ \ ` | ~ 2.3-1.7 + * - / = ^ _ 1.6-1.1 < > ( ) [ ] { } This variable can be read with the TTYGET system call and set with the TTYSET system call.  TTYST2: Activation and Echo control word 2 (per-job) This variable contains six more groups of six bits. Each group is as follows: 1.6 %TGMPE Echo at main program level (when IOT'ed). 1.5 %TGPIE Echo at interrupt level (when typed). 1.4 %TGIMG Echo in image mode. 1.3 %TGSPC Special hack: convert lower case to upper. 1.2 %TGACT Activation character. 1.1 %TGINT Interrupt character. The character groups are: 4.9-4.4 ^G ^S 4.3-3.7 ^I ^J (tab, linefeed) 3.6-3.1 altmode (33) 2.9-2.4 ^M (carriage return) 2.3-1.7 rubout (177) 1.6-1.1 space, ^H (backspace) This variable can be read with the TTYGET system call and set with the TTYSET system call. TTYSTS: TTY option bits (per-job) 4.9 %TSFRE Free console (not in use). 4.8 %TSCLE ^L should echo as "^L" (normally clears screen on displays). 4.7 %TSHDX Same as %TOHDX. Vestigial. 4.6 %TSFCO Use full 12-bit TV char set for output and echoing; echo META as BETA; echo CONTROL as ALPHA. 4.5 %TSALT Do not standardize altmodes. 4.4 %TSROL Scroll mode. 4.3 %TSSAI Echo and ascii output use SAIL character set. 4.2 %TSACT Next input IOT shouldn't wait for an activation character. 4.1 %TSNEA Don't echo in echo area; echo in M.P. Area. 3.9 %TSINT Next input character should interrupt even if it ordinarily would not (%TGINT = 0). 3.8 %TSMOR Inhibit **MORE** processing. 3.7 %TSATY Set whenever an .ATTY executed by some superior returns the tty to the job. 3.4 %TSNOE Defer echoing. 3.3 %TSLCZ Last character typed was ^Z. This bit causes .ATTY's to fail. 3.2 %TSSII Super-image input. The special actions of ^Z and ^_ are suppressed. 3.1 %TSCNS This is a console, not a device. 2.9-1.1 The user index of the job which controls the tty, or -1 if the tty is free. %TSFRE, %TSHDX, %TSLCZ, %TSCNS, and the RH may not be altered. This variable can be read with the TTYGET system call and set with the TTYSET system call. TTYTYP: Semi-permanent stuff (per-TTY) This variable may not be set, just read (but see ISPEED and OSPEED). 4.9 %TTLCL Local tty (i.e. right near the PDP-10). 4.8 %TT340 Near the 340 or a 340 slave. 4.7 %TT3HP High priority for grabbing 340. 4.3 %TTPAR Tty needs a parity bit generated by software. 4.2 %TTDDI Don't ding bell on excess input. 4.1 %TTIBM Datel (2741) line. 3.8-3.5 $TTISP Input speed code: 0 = unknown 6 = 1800 baud 13 = 40K baud 1 = 600 baud 7 = 2400 baud 14 = 50K baud 2 = 110 baud 10 = 4800 baud 15 = 80K baud 3 = 150 baud 11 = 9600 baud 16 unused 4 = 300 baud 12 = 25K baud 17 unused 5 = 1200 baud 3.4-3.1 $TTOSP Output speed code, as above. 2.9 %TYDPK Datapoint controller line. 2.8 %TYSTY Alter ego to a STY. 2.7 %TYNVA Nova tty (requiescat in pace). 2.6 %TYMTY Morton controller line. 2.5 %TYDIL Dial-up line. 2.4 %TY11T PDP-11 TV tty. 2.3 %TYDL DL-10 tty. 2.2 %TYOTY KA-10 console tty. 2.1 %TYETY DTE-20 tty. 1.9 %TYNTY TK-10 tty. 1.8 %TYMDM Dial-up line with modem control. 1.7 %TYKST KS-10 console tty. 1.6 %TYDZT DZ-11 tty on a KS-10. 1.5 %TYRLM ROLM data switch tty. This variable can be read with the CNSGET and TTYVAR system calls. WIDTH: Screen width (per-TTY) WIDTH contains the no. of usable print positions on a line for the TTY. It is usually one or two less than the actual no. of columns to allow room for a "!" in the last column to indicate typeout being continued on the next line (two columns are required when the terminal loses by automatically performing a CRLF operation when a character is output to the last column). This variable can be read with the CNSGET, RSSIZE and TTYVAR system calls and set with the CNSSET and TTYVAR system calls.