DC(IV)                       8/22/73                       DC(IV)


     dc - DC-11 communications interface


     The special files /dev/tty0, /dev/tty1, ...   refer  to  the

     DC11  asynchronous communications interfaces.  At the moment

     there are 12 of them, but the number is subject to change.

     When one of these files is opened, it causes the process  to

     wait  until a connection is established.  In practice user's

     programs seldom open these files; they are  opened  by  init

     and  become  a user's input and output file.  The very first

     typewriter file  open  in  a  process  becomes  the  control

     typewriter for that process.  The control typewriter plays a

     special role in  handling  quit  or  interrupt  signals,  as

     discussed  below.   The control typewriter is inherited by a

     child process during a fork.

     A terminal associated with one  of  these  files  ordinarily

     operates  in  full-duplex  mode.  Characters may be typed at

     any time, even while output is occurring, and are only  lost

     when  the system's character input buffers become completely

     choked, which is rare, or when the user has accumulated  the

     maximum  allowed  number  of input characters which have not

     yet been read by some program.  Currently this limit is  256

     characters.   When  the input limit is reached all the saved

     characters are thrown away without notice.

     When first opened, the interface mode is  150  baud;  either

     parity  accepted;  10  bits/character  (one  stop  bit); and

     newline action character.  The  system  delays  transmission

     after  sending  certain  function  characters.   Delays  for

     horizontal tab, newline, and form feed  are  calculated  for

     the  Teletype  Model  37;  the  delay for carriage return is

     calculated for the GE TermiNet 300.  Most of these operating

     states can be changed by using the system call stty(II).  In

     particular  the  following  hardware  states   are   program

     settable  independently  for  input  and  output  (see  DC11

     manual): 134.5, 150, 300, or 1200 baud; one or two stop bits

     on  output;  and  5,  6,  7,  or  8 data bits/character.  In

     addition, the  following  software  modes  can  be  invoked:

     acceptance  of  even parity, odd parity, or both; a raw mode

     in which all characters  may  be  read  one  at  a  time;  a

     carriage return (CR) mode in which CR is mapped into newline

     on input and either CR or line feed (LF)  cause  echoing  of

     the sequence LF-CR; mapping of upper case letters into lower

     case; suppression of echoing; suppression  of  delays  after

     function  characters;  and  the  printing of tabs as spaces.

     See getty(VII) for the way that terminal speed and type  are


     Normally, typewriter input is processed in units  of  lines.

     This  means  that  a  program  attempting  to  read  will be

     suspended until an entire line has  been  typed.   Also,  no

     matter  how  many characters are requested in the read call,

     at most one line  will  be  returned.   It  is  not  however

     necessary  to  read  a  whole  line  at  once; any number of

     characters may be requested in a  read,  even  one,  without

     losing information.

     During input, erase and kill processing  is  normally  done.

     The  character  `#'  erases the last character typed, except

     that it will not erase beyond the beginning of a line or  an

     EOT.   The  character  `@'  kills  the entire line up to the

     point where it was typed, but not beyond an EOT.  Both these

     characters operate on a keystroke basis independently of any

     backspacing or tabbing that may have been done.  Either  `@'

     or  `#' may be entered literally by preceding it by `\'; the

     erase or kill character remains, but the `\' disappears.

     In upper-case mode, all upper-case letters are  mapped  into

     the  corresponding lower-case letter.  The upper-case letter

     may be generated by preceding it by `\'.  In  addition,  the

     following  escape  sequences  are  generated  on  output and

     accepted on input:

            for     use

             `       \'

             |       \!

             ~       \^

             {       \(

             }       \)

     It is possible to use raw mode in which the program  reading

     is  awakened  on  each  character.  In raw mode, no erase or

     kill processing is done; and the  EOT,  quit  and  interrupt

     characters are not treated specially.

     The ASCII EOT character may be used to generate  an  end  of

     file  from  a  typewriter.  When an EOT is received, all the

     characters waiting to be read are immediately passed to  the

     program,  without waiting for a new-line.  Thus if there are

     no characters waiting, which is to say the EOT  occurred  at

     the  beginning  of  a  line,  zero characters will be passed

     back, and this is the standard end-of-file signal.  The  EOT

     is not passed on except in raw mode.

     When the carrier signal  from  the  dataset  drops  (usually

     because  the  user has hung up his terminal) a hangup signal

     is sent to all processes  with  the  typewriter  as  control

     typewriter.   Unless other arrangements have been made, this

     signal causes the processes to  terminate.   If  the  hangup

     signal  is  ignored,  any  read  returns with an end-of-file

     indication.  Thus programs which read a typewriter and  test

     for  end-of-file  on their input can terminate appropriately

     when hung up on.

     Two characters have a special meaning when typed.  The ASCII

     DEL character (sometimes called `rubout') is not passed to a

     program but generates an interrupt signal which is  sent  to

     all   processes  with  the  associated  control  typewriter.

     Normally each such  process  is  forced  to  terminate,  but

     arrangements  may  be made either to ignore the signal or to

     reveive a simulated trap to an  agreed-upon  location.   See

     signal (II).

     The ASCII character  FS  generates  the  quit  signal.   Its

     treatment  is  identical to the interrupt signal except that

     unless a receiving process has made  other  arrangements  it

     will  not  only  be terminated but a core image file will be

     generated.  See signal (II).

     Output is prosaic compared  to  input.   When  one  or  more

     characters are written, they are actually transmitted to the

     terminal  as  soon  as  previously-written  characters  have

     finished  typing.   Input  characters  are echoed by putting

     them in the output queue as they  arrive.   When  a  process

     produces  characters more rapidly than they can be typed, it

     will be suspended when its output queue exceeds some  limit.

     When  the  queue  has  drained  down  to  some threshold the

     program is resumed.   Even-parity  is  always  generated  on

     output.  The EOT character is not transmitted (except in raw

     mode) to prevent terminals which respond to it from  hanging



     /dev/tty[01234567abcd]   113B Dataphones


     kl (IV), getty (VII), stty (I, II),  gtty  (I,  II),  signal