Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ tset(1) — A/UX 2.0

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

csh(1)

sh(1)

stty(1)

termcap(4)

ttytype(4)

environ(5)




tset(1) tset(1)
NAME tset, reset - set or reset the terminal to a sensible state SYNOPSIS tset [-] [-a type] [-A] [-d type] [-ec] [-Ec] [-kc] [-I] [-m port] [-p type] [-Q] [-r] [-s] [-S] reset DESCRIPTION tset causes terminal-dependent processing, such as setting erase and kill characters, setting or resetting delays, and so on. It first determines the type of terminal involved, names for which are specified by the /etc/termcap data base, and then does necessary initializations and mode settings. In the case where no argument types are specified, tset sim- ply reads the terminal type out of the environment variable TERM and reinitializes the terminal. The rest of this manu- al page concerns itself with type initialization, typically done once at login, and flag options used at initialization time to determine the terminal type and set up terminal modes. When used in a startup script .profile (for sh(1) users) or .login (for csh(1) users), it is desirable to give informa- tion about the types of terminals usually used when connect- ing to the computer through a modem. These ports are ini- tially identified as being dialup, plugboard, or arpanet, and so on. To specify which terminal type is usually used on these ports, -m (map) is followed by the appropriate port type identifier, an optional baud specification, and the terminal type to be used if the mapping conditions are sa- tisfied. If more than one mapping is specified, the first applicable mapping prevails. A missing type identifier matches all identifiers. Bauds are specified as with stty(1), and are compared with the speed of the diagnostic output (which is almost always the control terminal). The baud test may be any combination of: >, =, <, @, and !; @ is a synonym for = and ! inverts the sense of the test. To avoid problems with metacharac- ters, it is best to place the entire argument to -m (map) within '' characters; users of csh(1) must also put a \ be- fore any ! used here. Thus, tset -m 'dialup>300:adm3a' -m dialup:dw2 \ -m 'plugboard:?adm3a' causes the terminal type to be set to an adm3a if the port in use is a dialup at a speed greater than 300 baud; to a April, 1990 1



tset(1) tset(1)
dw2 if the port is a dialup at a speed of 300 baud or less. Note: The above command can be entered on one line by omitting the backslash character. If the type above begins with a question mark, you are asked if you really want that type. A null response means to use that type; otherwise, another type can be entered which will be used instead. Therefore, in this case, you will be queried on a plugboard port as to whether you are using an adm3a. For other ports the port type will be taken from the /etc/ttytype file or a final, default type flag option may be given on the command line, not preceded by a -m. It is often desirable to return the terminal type, as speci- fied by the -m flag options, and information about the ter- minal to a shell's environment. This can be done using the -s flag option; using the Bourne shell, sh(1), eval `tset -s options... ` or using the C shell, csh(1). tset -s options... > tset$$ source tset$$ rm tset$$ These commands cause tset to generate as output a sequence of shell commands which place the variables TERM and TERMCAP in the environment; see environ(5). Once it knows the terminal type, tset engages in terminal mode setting. This normally involves sending an initializa- tion sequence to the terminal and setting the single charac- ter erase (and optionally the line-kill (full line erase)) characters. tset reports these settings by printing the di- agnostic messages Kill set to c and Erase set to c on the standard error output, unless the -Q flag option is speci- fied. On terminals that can backspace but not overstrike (such as a CRT), and when the erase character is the default erase character (# on standard systems), the erase character is changed to a CONTROL-H (backspace). Other flag options are -A Prompts the user for the terminal type -ec Set the erase character to be the named character c on 2 April, 1990



tset(1) tset(1)
all terminals, the default being the backspace charac- ter on the terminal, usually CONTROL-H. -kc Similar to -e, but for the line kill character, rather than the erase character; c defaults to CONTROL-X (for purely historical reasons); CONTROL-U is the preferred setting. No kill processing is done if -k is not specified. -I Suppresses outputting terminal initialization strings. -Q Suppresses printing the Erase set to and Kill set to messages. -S Outputs the strings to be assigned to TERM and TERMCAP in the environment, rather than commands for a shell. For compatibility with earlier versions of tset, a number of flags are accepted whose use is discouraged: -d type Equivalent to -m dialup:type. -p type Equivalent to -m plugboard:type. -a type Equivalent to -m arpanet:type. -Ec Sets the erase character to c only if the termi- nal can backspace. - Prints the terminal type on the standard output. -r Prints the terminal type on the diagnostic out- put. reset sets the terminal to cooked mode, turns off cbreak and raw modes, turns on nl, and restores special undefined char- acters to their default values. This is most useful after a program dies, leaving a terminal in a funny state; you have to type newline reset newline to get it to work, since RETURN (CONTROL-M) may not be recog- nized in this state; often none of the input will be echoed. It is a good idea to follow reset with tset. EXAMPLES A typical .login file for a csh user that invokes tset would be: set noglob set term = (`tset -e -S -r -d\?h19`) setenv TERM "$term[1]" April, 1990 3



tset(1) tset(1)
setenv TERMCAP "$term[2]" unset term noglob This .login sets the environment variables TERM and TERMCAP for the user's current terminal according to the file /etc/ttytype. If the terminal line is a dialup line, the user is prompted for the proper terminal type. reset returns the user's terminal to a usable state after being accidentally set by an interrupted process. FILES /bin/tset /bin/reset /etc/ttytype /etc/termcap SEE ALSO csh(1), sh(1), stty(1), termcap(4), ttytype(4), environ(5). BUGS Should be merged with stty(1). reset doesn't set tabs properly; it can't intuitively read personal choices for interrupt and line kill characters, so it leaves these set to the local system standards. It could be well argued that the shell should be responsible for insuring that the terminal remains in a sane state; this would eliminate the need for this program. 4 April, 1990

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026