Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ termiox(7) — NEWS-os 5.0.1

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

stty(1)

ioctl(2)

termio(7)



termiox(7)             DEVICES AND MODULES             termiox(7)



NAME
     termiox - extended general terminal interface

DESCRIPTION
     The extended general terminal interface supplements the ter-
     mio(7)  general  terminal  interface  by  adding support for
     asynchronous hardware flow control, isochronous flow control
     and  clock  modes,  and  local implementations of additional
     asynchronous features.  Some systems may not support all  of
     these  capabilities  because  of either hardware or software
     limitations. Other systems may not permit certain  functions
     to  be disabled. In these cases the appropriate bits will be
     ignored. See <termiox.h> for your system to find  out  which
     capabilities are supported.

  Hardware Flow Control Modes
     Hardware flow control supplements the termio(7) IXON, IXOFF,
     and  IXANY  character  flow control.  Character flow control
     occurs when one device controls the data transfer of another
     device  by  the  insertion of control characters in the data
     stream between devices. Hardware flow  control  occurs  when
     one  device  controls  the  data  transfer of another device
     using electrical control signals on wires (circuits) of  the
     asynchronous  interface.   Isochronous hardware flow control
     occurs when one device controls the data transfer of another
     device  by  asserting or removing the transmit clock signals
     of that device. Character flow  control  and  hardware  flow
     control may be simultaneously set.

     In asynchronous, full duplex applications, the  use  of  the
     Electronic  Industries  Association's  EIA-232-D  Request To
     Send (RTS) and Clear To Send (CTS) circuits is the preferred
     method  of  hardware  flow  control.  An  interface to other
     hardware flow control methods is included to provide a stan-
     dard interface to these existing methods.

     The  EIA-232-D  standard  specified   only   uni-directional
     hardware  flow control - the Data Circuit-terminating Equip-
     ment or Data Communications Equipment (DCE) indicates to the
     Data Terminal Equipment (DTE) to stop transmitting data. The
     termiox(7) interface allows  both  uni-directional  and  bi-
     directional  hardware flow control; when bi-directional flow
     control is enabled, either the DCE or DTE  can  indicate  to
     each  other  to stop transmitting data across the interface.
     Note: It is assumed that the asynchronous port is configured
     as  a  DTE.  If the connected device is also a DTE and not a
     DCE, then DTE to DTE (e.g., terminal or printer connected to
     computer)  hardware flow control is possible by using a null
     modem to interconnect the appropriate data and control  cir-
     cuits.





                                                                1





termiox(7)             DEVICES AND MODULES             termiox(7)



  Clock Modes
     Isochronous communication is  a  variation  of  asynchronous
     communication  whereby two communicating devices may provide
     transmit and/or receive clock to each other.  Incoming clock
     signals  can  be  taken  from the baud rate generator on the
     local isochronous port controller, from CCITT  V.24  circuit
     114,  Transmitter  Signal  Element Timing - DCE source (EIA-
     232-D pin 15), or from CCITT V.24 circuit 115, Receiver Sig-
     nal  Element Timing - DCE source (EIA-232-D pin 17).  Outgo-
     ing clock signals can be sent on  CCITT  V.24  circuit  113,
     Transmitter  Signal  Element  Timing - DTE source (EIA-232-D
     pin 24), on CCITT V.24 circuit 128, Receiver Signal  Element
     Timing - DTE source (no EIA-232-D pin), or not sent at all.

     In terms of clock modes, traditional asynchronous communica-
     tion is implemented simply by using the local baud rate gen-
     erator as the incoming transmit and receive clock source and
     not outputting any clock signals.

  Terminal Parameters
     The parameters that control the behavior of devices  provid-
     ing  the  termiox  interface  are  specified  by the termiox
     structure,  defined  in  the  <sys/termiox.h>  header  file.
     Several  ioctl(2)  system  calls  that fetch or change these
     parameters use this structure:

          #define      NFF  5
          struct       termiox {
             unsigned short   xhflag;     /* hardware flow control
                                              modes */
             unsigned short   xcflag;     /* clock modes */
             unsigned short   xrflag[NFF];/* reserved modes */
             unsigned short   xsflag;     /* spare local modes */
          };

     The xhflag field describes hardware flow control modes:

          RTSXOFF 0000001  Enable RTS hardware flow control on input.
          CTSXON  0000002  Enable CTS hardware flow control on output.
          DTRXOFF 0000004  Enable DTR hardware flow control on input.
          CDXON   0000010  Enable CD hardware flow control on output.
          ISXOFF  0000020  Enable isochronous hardware flow control on
                           input.

     The EIA-232-D DTR and CD circuits are used  to  establish  a
     connection  between  two  systems.   The RTS circuit is also
     used to establish a connection with a modem.  Thus, both DTR
     and  RTS  are activated when an asynchronous port is opened.
     If DTR is used for hardware flow control, then RTS  must  be
     used for connectivity.  If CD is used for hardware flow con-
     trol, then CTS must be used for connectivity.  Thus, RTS and
     DTR  (or  CTS  and CD) cannot both be used for hardware flow



                                                                2





termiox(7)             DEVICES AND MODULES             termiox(7)



     control at the  same  time.   Other  mutual  exclusions  may
     apply,  such  as  the  simultaneous setting of the termio(7)
     HUPCL and the termiox(7) DTRXOFF bits,  which  use  the  DTE
     ready line for different functions.

     Variations of different hardware flow control methods may be
     selected  by setting the the appropriate bits.  For example,
     bi-directional RTS/CTS flow control is selected  by  setting
     both  the RTSXOFF and CTSXON bits and bi-directional DTR/CTS
     flow control is selected by setting  both  the  DTRXOFF  and
     CTSXON.   Modem control or uni-directional CTS hardware flow
     control is selected by setting only the CTSXON bit.

     As previously mentioned, it is assumed that the local  asyn-
     chronous  port  (e.g.,  computer) is configured as a DTE. If
     the connected device (e.g., printer) is also a  DTE,  it  is
     assumed that the device is connected to the computer's asyn-
     chronous port via a null modem that swaps  control  circuits
     (typically  RTS  and  CTS). The connected DTE drives RTS and
     the null modem swaps RTS and CTS so that the remote  RTS  is
     received as CTS by the local DTE. In the case that CTSXON is
     set for hardware flow control, printer's lowering of its RTS
     would  cause  CTS seen by the computer to be lowered. Output
     to the printer is suspended until the printer's  raising  of
     its  RTS,  which  would cause CTS seen by the computer to be
     raised.

     If RTSXOFF is set, the Request To Send (RTS) circuit  (line)
     will  be  raised, and if the asynchronous port needs to have
     its input stopped, it will lower the Request To  Send  (RTS)
     line.   If  the  RTS line is lowered, it is assumed that the
     connected device will stop its output until RTS is raised.

     If CTSXON is set, output will occur only  if  the  Clear  To
     Send (CTS) circuit (line) is raised by the connected device.
     If the CTS line is lowered by the connected  device,  output
     is suspended until CTS is raised.

     If DTRXOFF is set, the DTE Ready (DTR) circuit  (line)  will
     be  raised,  and  if the asynchronous port needs to have its
     input stopped, it will lower the DTE Ready (DTR)  line.   If
     the  DTR  line  is lowered, it is assumed that the connected
     device will stop its output until DTR is raised.

     If CDXON is set, output will occur only if the Received Line
     Signal  Detector  (CD)  circuit (line) is raised by the con-
     nected device.  If the CD line is lowered by  the  connected
     device, output is suspended until CD is raised.

     If ISXOFF is set, and if the isochronous port needs to  have
     its  input  stopped, it will stop the outgoing clock signal.
     It is assumed that the connected device is using this  clock



                                                                3





termiox(7)             DEVICES AND MODULES             termiox(7)



     signal  to  create  its  output.   Transit and receive clock
     sources are programmed using the  xcflag  fields.   If  the
     port is not programmed for external clock generation, ISXOFF
     is ignored. Output isochronous flow control is supported  by
     appropriate clock source programming using the xcflag field
     and enabled at the remote connected device.

     The xcflag field specifies the system  treatment  of  clock
     modes.

          XMTCLK  0000007  Transmit clock source:
          XCIBRG  0000000  Get transmit clock from internal baud rate
                           generator.
          XCTSET  0000001  Get transmit clock from transmitter signal
                           element timing (DCE source) lead, CCITT
                           V.24 circuit 114, EIA-232-D pin 15.
          XCRSET  0000002  Get transmit clock from receiver signal
                           element timing (DCE source) lead, CCITT
                           V.24 circuit 115, EIA-232-D pin 17.
          RCVCLK  0000070  Receive clock source:
          RCIBRG  0000000  Get receive clock from internal baud rate
                           generator.
          RCTSET  0000010  Get receive clock from transmitter signal
                           element timing (DCE source) lead, CCITT
                           V.24 circuit 114, EIA-232-D pin 15.
          RCRSET  0000020  Get receive clock from receiver signal
                           element timing (DCE source) lead, CCITT
                           V.24 circuit 115, EIA-232-D pin 17.
          TSETCLK 0000700  Transmitter signal element timing (DTE source)
                           lead, CCITT V.24 circuit 113, EIA-232-D
                           pin 24, clock source:
          TSETCOFF         0000000TSET clock not provided.
          TSETCRBRG        0000100Output receive baud rate generator on
                           circuit 113.
          TSETCTBRG        0000200Output transmit baud rate generator on
                           circuit 113.
          TSETCTSET        0000300Output transmitter signal element timing
                           (DCE source) on circuit 113.
          TSETCRSET        0000400Output receiver signal element timing
                           (DCE source) on circuit 113.
          RSETCLK 0007000  Receiver signal element timing (DTE source)
                           lead, CCITT V.24 circuit 128, no EIA-232-D
                           pin, clock source:
          RSETCOFF         0000000RSET clock not provided.
          RSETCRBRG        0001000Output receive baud rate generator on
                           circuit 128.
          RSETCTBRG        0002000Output transmit baud rate generator on
                           circuit 128.
          RSETCTSET        0003000Output transmitter signal element timing
                           (DCE source) on circuit 128.
          RSETCRSET        0004000Output receiver signal element timing
                           (DCE) on circuit 128.



                                                                4





termiox(7)             DEVICES AND MODULES             termiox(7)



     If the XMTCLK field has a value of XCIBRG the transmit clock
     is  taken from the hardware internal baud rate generator, as
     in normal asynchronous transmission.  If XMTCLK = XCTSET the
     transmit  clock is taken from the Transmitter Signal Element
     Timing  (DCE  source)  circuit.   If  XMTCLK  =  XCRSET  the
     transmit  clock  is  taken  from the Receiver Signal Element
     Timing (DCE source) circuit.

     If the RCVCLK field has a value of RCIBRG the receive  clock
     is  taken from the hardware Internal Baud Rate Generator, as
     in normal asynchronous transmission.  If RCVCLK = RCTSET the
     receive  clock  is taken from the Transmitter Signal Element
     Timing (DCE source) circuit.  If RCVCLK = RCRSET the receive
     clock  is taken from the Receiver Signal Element Timing (DCE
     source) circuit.

     If the TSETCLK field has a value of TSETCOFF the Transmitter
     Signal  Element  Timing  (DTE source) circuit is not driven.
     If TSETCLK = TSETCRBRG the Transmitter Signal Element Timing
     (DTE source) circuit is driven by the Receive Baud Rate Gen-
     erator.  If TSETCLK = TSETCTBRG the Transmitter Signal  Ele-
     ment  Timing  (DTE source) circuit is driven by the Transmit
     Baud Rate Generator.  If TSETCLK = TSETCTSET the Transmitter
     Signal  Element Timing (DTE source) circuit is driven by the
     Transmitter Signal Element Timing (DCE source).  If  TSETCLK
     =  TSETCRBRG  the  Transmitter  Signal  Element  Timing (DTE
     source) circuit is driven by  the  Receiver  Signal  Element
     Timing (DCE source).

     If the RSETCLK field has a value of  RSETCOFF  the  Receiver
     Signal  Element  Timing  (DTE source) circuit is not driven.
     If RSETCLK = RSETCRBRG the Receiver  Signal  Element  Timing
     (DTE source) circuit is driven by the Receive Baud Rate Gen-
     erator. If RSETCLK = RSETCTBRG the Receiver  Signal  Element
     Timing  (DTE  source) circuit is driven by the Transmit Baud
     Rate Generator.  If RSETCLK = RSETCTSET the Receiver  Signal
     Element  Timing  (DTE  source)  circuit  is  driven  by  the
     Transmitter Signal Element Timing (DCE source).  If  RSETCLK
     =  RSETCRBRG the Receiver Signal Element Timing (DTE source)
     circuit is driven by the Receiver Signal Element Timing (DCE
     source).

     The xrflag is reserved for future interface definitions and
     should  not be used by any implementations.  The xsflag may
     be used by local implementations wishing to customize  their
     terminal interface using the termiox(7) ioctl system calls.

IOCTLS
     The ioctl(2) system calls have the form:

          ioctl (fildes, command, arg)
          struct termiox *arg;



                                                                5





termiox(7)             DEVICES AND MODULES             termiox(7)



     The commands using this form are:

          TCGETX
               The argument is a pointer to a termiox  structure.
               The  current  terminal  parameters are fetched and
               stored into that structure.

          TCSETX
               The argument is a pointer to a termiox  structure.
               The  current  terminal parameters are set from the
               values stored in that  structure.  The  change  is
               immediate.

          TCSETXW
               The argument is a pointer to a termiox  structure.
               The  current  terminal parameters are set from the
               values stored in that structure. The change occurs
               after  all  characters queued for output have been
               transmitted.  This form should be used when chang-
               ing parameters that will affect output.

          TCSETXF
               The argument is a pointer to a termiox  structure.
               The  current  terminal parameters are set from the
               values stored in that structure. The change occurs
               after  all  characters queued for output have been
               transmitted; all characters queued for  input  are
               discarded and then the change occurs.

FILES
     /dev/*

SEE ALSO
     stty(1), ioctl(2), termio(7).





















                                                                6



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