Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

csh(1)

sh(1)

stty(1)

environ(5)

ttytype(4)

termcap(5)



     tset(1)                                                   tset(1)



     NAME
          tset, reset - set or reset the teletype bits to a sensible
          state

     SYNOPSIS
          tset [-e] [-k] [-I] [-m port] [-Q] [-s] [-S]
          reset

     DESCRIPTION
          tset causes terminal-dependent processing, such as setting
          erase and kill characters, setting or resetting delays, and
          the like.  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 simply reads the terminal type out of the
          environment variable TERM and re-initializes the terminal.
          The rest of this manual concerns itself with type
          initialization, done typically 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
          information about the types of terminal usually used, for
          terminals which are connected to the computer through a
          modem.  These ports are initially identified as being dialup
          or plugboard or arpanet, etc.  To specify which terminal
          type is usually used on these ports, -m is followed by the
          appropriate port type identifier, an optional baud-rate
          specification, and the terminal type to be used if the
          mapping conditions are satisfied.  If more than one mapping
          is specified, the first applicable mapping prevails.  A
          missing type identifier matches all identifiers.

          Baud rates 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 rate test may be any
          combination of: >, =, <, @, and !; @ is a synonym for = and
          ! inverts the sense of the test.  To avoid problems with
          metacharacters, it is best to place the entire argument to
          -m within '' characters; users of csh(1) must also put a \
          before 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
          dw2 if the port is (otherwise) a dialup (i.e., at 300 baud



     Page 1                                        (last mod. 1/22/87)





     tset(1)                                                   tset(1)



          or less).  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.  Thus, 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
          specified by the -m flag options, and information about the
          terminal 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
          initialization sequence to the terminal and setting the
          single character erase (and optionally the line-kill (full
          line erase)) characters.

          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:

          -e  set the erase character to be the named character c on
              all terminals, the default being the backspace character
              on the terminal, usually CONTROL-h.

          -k  is 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.




     Page 2                                        (last mod. 1/22/87)





     tset(1)                                                   tset(1)



          -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.

          reset sets the terminal to cooked mode, turns off cbreak and
          raw modes, turns on nl, and restores special characters that
          are undefined to their default values.

          This is most useful after a program dies, leaving a terminal
          in a funny state; you have to type newlineresetnewline to
          get it to work then to the shell, as RETURN often doesn't
          work; often none of this will echo.

          It is a good idea to follow reset with tset(1) .

     EXAMPLE
          A typical csh .login file using tset would be:

               set noglob
               set term = (`tset -e -S -r -d\?h19`)
               setenv TERM "$term[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       terminal ID to type map database

          /etc/termcap       terminal capability database

     SEE ALSO
          csh(1), sh(1), stty(1), environ(5), ttytype(4), termcap(5).

     BUGS
          Should be merged with stty(1).

          reset doesn't set tabs properly; it can't intuit personal



     Page 3                                        (last mod. 1/22/87)





     tset(1)                                                   tset(1)



          choices for interrupt and line kill characters, so it leaves
          these set to the local system standards.

          It could well be 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.

     NOTES
          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

          -E  c      Sets the erase character to c only if the
                     terminal can backspace.

          -          prints the terminal type on the standard output

          -r         prints the terminal type on the diagnostic
                     output.































     Page 4                                        (last mod. 1/22/87)



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