home *** CD-ROM | disk | FTP | other *** search
/ PC World 1999 August / PCWorld_1999-08_cd.bin / doc / HOWTO / Text-Terminal-HOWTO < prev    next >
Text File  |  1999-06-14  |  273KB  |  6,073 lines

  1.   The Linux Text-Terminal-HOWTO
  2.   David S. Lawyer  <mailto:bf347@lafn.org>
  3.   v1.06, June 1999
  4.  
  5.   This document explains what text terminals are, how they work, how to
  6.   install and configure them, and provides some info on how to repair
  7.   them.  It may be of some use even if you don't have a terminal manual.
  8.   While it's written for real terminals on a Linux system, some of it is
  9.   also applicable to terminal emulation and may be helpful for non-Linux
  10.   systems.
  11.   ______________________________________________________________________
  12.  
  13.   Table of Contents
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.   1. Introduction
  68.  
  69.      1.1 Copyright, Trademarks, Disclaimer, & Credits
  70.         1.1.1 Copyright
  71.         1.1.2 Trademarks
  72.         1.1.3 Disclaimer
  73.         1.1.4 Credits
  74.      1.2 Future Plans: You Can Help
  75.      1.3 New Versions of this HOWTO
  76.      1.4 Related HOWTO's
  77.      1.5 Terminology Used in this Document
  78.      1.6 What is a Terminal ?
  79.  
  80.   2. Types of Terminals
  81.  
  82.      2.1 Dumb Terminals
  83.      2.2 Text Terminals
  84.      2.3 Graphics Terminals
  85.         2.3.1 Serial Line Graphics Terminals
  86.         2.3.2 Fast Graphics Terminals (often known by other names)
  87.      2.4 Quasi-Terminals (= Quasi-Computers)
  88.      2.5 Emulation on a PC
  89.  
  90.   3. Quick Install
  91.  
  92.   4. Why Use a Terminal ?
  93.  
  94.      4.1 Intro to Why Use a Terminal
  95.      4.2 Lower Hardware Costs ?
  96.      4.3 Control of Software
  97.      4.4 Hardware Upgrades
  98.      4.5 Other Advantages of Terminals
  99.      4.6 Major Disadvantages of Terminals
  100.      4.7 Are Text Terminals Obsolete ?
  101.  
  102.   5. Overview of How Terminals Work (in Linux)
  103.  
  104.      5.1 Device Names
  105.      5.2 Login/Logout
  106.      5.3 Half/Full Duplex
  107.      5.4 Terminal Memory
  108.      5.5 Commands for the Terminal
  109.      5.6 Lack of Standardization Solved by Terminfo
  110.      5.7 The Interface
  111.      5.8 Emulation
  112.      5.9 The Console
  113.  
  114.   6. Terminal Special Files such as /dev/tty
  115.  
  116.      6.1 Serial Port Terminals
  117.      6.2 Pseudo Terminals
  118.      6.3 The Controlling Terminal /dev/tty
  119.      6.4 /dev/ttyIN "Terminals"
  120.      6.5 The Console: /dev/ttyN
  121.      6.6 Creating a Device with "mknod"
  122.  
  123.   7. Some Details on How Terminals Work
  124.  
  125.      7.1 Terminal Memory Details
  126.      7.2 Early Terminals
  127.      7.3 Escape Sequences and Control Codes (intro)
  128.         7.3.1 Control Codes
  129.         7.3.2 Escape Sequences
  130.      7.4 Display Attributes & Magic Cookies
  131.  
  132.   8. Special Features of Some Terminals
  133.      8.1 Color
  134.      8.2 Multiple Sessions
  135.      8.3 Printer/Auxiliary Port
  136.      8.4 Pages
  137.      8.5 Character-Sets
  138.      8.6 Fonts
  139.      8.7 Keyboards & Special Keys
  140.  
  141.   9. Terminal Emulation; the Console
  142.  
  143.      9.1 Terminal Emulation
  144.         9.1.1 Intro to Terminal Emulation
  145.         9.1.2 Don't Use TERM For Emulation
  146.         9.1.3 Communication (Dialing) programs
  147.         9.1.4 Emulation under X-Windows
  148.         9.1.5 Real Terminals Better
  149.      9.2 Testing Terminal Emulation
  150.      9.3 The Linux Console
  151.  
  152.   10. Flow Control (Handshaking)
  153.  
  154.      10.1 Why Is Flow Control Needed ?
  155.      10.2 Padding
  156.      10.3 Overrunning a Serial Port
  157.      10.4 Stop Sending
  158.      10.5 Keyboard Lock
  159.      10.6 Resume Sending
  160.      10.7 Hardware Flow Control (RTS/CTS etc.)
  161.         10.7.1 RTS/CTS, DTR, and DTR/DSR Flow Control
  162.         10.7.2 Connecting Up DTR or DTR/DSR Flow Control
  163.         10.7.3 Old RTS/CTS Handshaking Is Different
  164.         10.7.4 Reverse Channel
  165.      10.8 Is Hardware Flow Control Done by Hardware ?
  166.      10.9 Obsolete ?? ETX/ACK or ENQ/ACK Flow Control
  167.  
  168.   11. Physical Connection
  169.  
  170.      11.1 Multiport I/O Cards (Adapters)
  171.      11.2 Direct Cable Connection.
  172.         11.2.1 Null Modem Cable Pin-out (3, 4, or 5 conductor)
  173.         11.2.2 Standard Null Modem Cable Pin-out (7 conductor)
  174.         11.2.3 Length Limitations
  175.         11.2.4 Hardware Flow Control Cables
  176.         11.2.5 Cable Tips
  177.         11.2.6 A Kludge using Twisted-Pair Cable
  178.         11.2.7 Cable Grounding
  179.      11.3 Modem Connection
  180.         11.3.1 Dialing Out From a Terminal
  181.         11.3.2 Terminal Gets Dialed Into
  182.      11.4 Terminal Server Connection
  183.      11.5 Connector and Adapter Types
  184.         11.5.1 Sex of Connector/Adapters
  185.         11.5.2 Types of Adapters
  186.         11.5.3 DB Connectors
  187.         11.5.4 RJ Modular Connectors
  188.      11.6 Making or Modifying a Cable
  189.         11.6.1 Buy or Make ?
  190.         11.6.2 Pin Numbers
  191.         11.6.3 Installing DB Connectors on Cable Ends
  192.         11.6.4 Installing RJ Connectors
  193.  
  194.   12. Set-Up (Configure) in General
  195.  
  196.      12.1 Intro to Set-Up
  197.      12.2 Terminal Set-Up (Configure) Overview
  198.      12.3 Computer Set-Up (Configure) Overview
  199.      12.4 Many Options
  200.      12.5 Communication Interface Options
  201.         12.5.1 Speed
  202.         12.5.2 Parity & Should You Use It ?
  203.         12.5.3 Bits/Character
  204.         12.5.4 Which Flow Control (Handshaking) ?
  205.         12.5.5 Port Select
  206.      12.6 Quick Attempt
  207.  
  208.   13. Terminal Set-Up (Configure) Details
  209.  
  210.      13.1 Send Escape Sequences to the Terminal
  211.      13.2 Older Terminals Set-Up
  212.      13.3 Getting Into Set-Up (Configuration) Mode
  213.      13.4 Communication Options
  214.      13.5 Saving the Set-up
  215.      13.6 Set-Up Options/Parameters
  216.      13.7 Emulation {Personality} {{Terminal Modes}}
  217.      13.8 Display Options
  218.         13.8.1 Character Cell Size {Char Cell}
  219.         13.8.2 Columns/Lines
  220.         13.8.3 Cursor
  221.         13.8.4 Display Attributes (Magic Cookies)
  222.         13.8.5 Display Control Characters {Monitor}
  223.         13.8.6 Double Width/Height
  224.         13.8.7 Reverse Video {Display} (Background Light/Dark)
  225.         13.8.8 Status Line
  226.         13.8.9 Upon 80/132 Change: Clear or Preserve?
  227.      13.9 Page Related Options
  228.         13.9.1 Page Size
  229.         13.9.2 Coupling (of cursor & display)
  230.      13.10 Reporting and Answerback
  231.         13.10.1 Answerback Message (String)
  232.         13.10.2 Auto Answerback
  233.         13.10.3 Answerback Concealed
  234.         13.10.4 Terminal ID {ANSI ID}
  235.      13.11 Keyboard Options
  236.         13.11.1 Keyclick
  237.         13.11.2 Caps Lock {Keylock}
  238.         13.11.3 Auto Repeat {Repeat}
  239.         13.11.4 Margin Bell
  240.         13.11.5 Remapping the Keys
  241.         13.11.6 Corner Key (for Wyse only)
  242.         13.11.7 Numeric Keypad or Arrow Keys Sends
  243.         13.11.8 What does shifted-del and shifted-bs send?
  244.         13.11.9 PC Scan Codes
  245.         13.11.10 Alternate Characters
  246.      13.12 Meaning of Received Control Codes
  247.         13.12.1 Auto New Line {Newline}
  248.         13.12.2 Auto Line Feed {Rcv CR}
  249.         13.12.3 Recognize Del (Wyse Only ??) or Null
  250.      13.13 Where New Text Goes
  251.         13.13.1 Line Wrap
  252.         13.13.2 Scrolling
  253.         13.13.3 New Page?
  254.      13.14 Function Keys
  255.      13.15 Block Mode Options
  256.         13.15.1 Forms Display
  257.         13.15.2 Send Entire Block ?
  258.         13.15.3 Region to Send
  259.         13.15.4 Block/Page terminator
  260.      13.16 Locks
  261.      13.17 Screen Saver {Scrn Saver}
  262.      13.18 Printer
  263.  
  264.   14. Computer Set-Up (Configure) Details
  265.      14.1 Getty (in /etc/inittab)
  266.         14.1.1 Agetty (may be named getty)
  267.         14.1.2 getty (part of getty_ps)
  268.         14.1.3 Mgetty
  269.      14.2 Stty & Setserial
  270.         14.2.1 Setserial
  271.         14.2.2 Where to Run Setserial ?
  272.         14.2.3 Stty
  273.         14.2.4 Where to Put the Stty Command ?
  274.      14.3 Terminfo & Termcap (brief)
  275.      14.4 Setting TERM and TERMINFO
  276.      14.5 Rarely Needed /etc/ttytype File
  277.      14.6 Login Restrictions
  278.      14.7 Run Command Only If TERM=my_term_type
  279.         14.7.1 Example for ls Function
  280.  
  281.   15. Terminfo and Termcap (detailed)
  282.  
  283.      15.1 Intro to Terminfo
  284.      15.2 Terminfo Database
  285.         15.2.1 Terminfo Compiler (tic)
  286.         15.2.2 Look at Your Terminfo
  287.         15.2.3 Deleting Data Not Needed
  288.      15.3 Modifying Terminfo Files
  289.      15.4 Init String
  290.      15.5 TERM Variable
  291.      15.6 Terminfo/Termcap Documents
  292.  
  293.   16. Using the Terminal
  294.  
  295.      16.1 Intro to Using Terminal
  296.      16.2 Starting Up the Terminal
  297.      16.3 Terminal (Serial) Device Driver
  298.      16.4 Problems with Editors
  299.         16.4.1 emacs and ^Q
  300.         16.4.2 vi and Cursor-Keys
  301.      16.5 Color ls Corruption
  302.      16.6 Display Freezes (hung terminal)
  303.      16.7 Corrupted Terminal Interface
  304.         16.7.1 Symptoms
  305.         16.7.2 Sent Terminal Binary Characters
  306.         16.7.3 Abnormally Exited a Program
  307.      16.8 Special (Control) Characters
  308.         16.8.1 Command-Line Editing
  309.         16.8.2 Interrupting (& Quit, Suspend, EOF, Flush)
  310.         16.8.3 Stop/Start Scrolling
  311.         16.8.4 Take Next Character Literally
  312.      16.9 Viewing Latin-1 Files on a 7-bit Terminal
  313.      16.10 Inspecting the Interface
  314.      16.11 Changing the Terminal Settings
  315.         16.11.1 setterm
  316.         16.11.2 tput
  317.         16.11.3 echo
  318.         16.11.4 Saving Changes
  319.      16.12 Make a Terminal the Console
  320.         16.12.1 For Kernels 2.2 or higher
  321.         16.12.2 For Kernels before 2.2
  322.         16.12.3 Can I Run Linux without a Monitor (PC Console) ?
  323.      16.13 Multiple Sessions
  324.      16.14 Logging Out
  325.      16.15 Chatting between Terminals, Spying
  326.  
  327.   17. Trouble-Shooting (software)
  328.  
  329.      17.1 Terminal Was Working OK
  330.      17.2 Terminal Newly Installed
  331.      17.3 Is the Terminal OK ?
  332.      17.4 Missing Text
  333.      17.5 Getty Respawning Too Rapidly
  334.         17.5.1 No Modem Control Voltage
  335.         17.5.2 Key Shorted
  336.      17.6 Fails Just After Login
  337.      17.7 Can't Login
  338.      17.8 Garbled Login Prompt
  339.      17.9 No Sign of any Login Prompt
  340.         17.9.1 Diagnose Problem from the Console
  341.         17.9.2 Measure Voltages
  342.      17.10 Serial Monitoring/Diagnostics
  343.      17.11 Local Mode
  344.      17.12 Serial Electrical Test Equipment
  345.         17.12.1 Breakout Gadgets, etc.
  346.         17.12.2 Measuring Voltages
  347.         17.12.3 Taste Voltage
  348.  
  349.   18. Repair & Diagnose
  350.  
  351.      18.1 Repair Books & Websites
  352.         18.1.1 Books
  353.         18.1.2 Websites
  354.      18.2 Safety
  355.      18.3 Appearance of Display
  356.      18.4 Diagnose
  357.         18.4.1 Terminal Made a Noise
  358.         18.4.2 Terminal Made No Noise
  359.      18.5 Error Messages on the Screen
  360.         18.5.1 Keyboard Error
  361.         18.5.2 Checksum Error in NVR
  362.      18.6 Capacitors
  363.      18.7 Keyboards
  364.         18.7.1 Interchangeability
  365.         18.7.2 How They Work
  366.         18.7.3 One Press Types 2 Different Characters
  367.         18.7.4 Modern vs Old Keyboards
  368.         18.7.5 Keyboard Doesn't Work At All
  369.         18.7.6 Typing b Displays bb, etc. (doubled)
  370.         18.7.7 The Keyboard Types By Itself
  371.         18.7.8 Liquid Spilled on the Keyboard
  372.         18.7.9 Cleaning Keyboard Contacts
  373.            18.7.9.1 Keyboards with Membranes
  374.            18.7.9.2 Keyboards with Individual Switches
  375.  
  376.   19. Appendix A: General
  377.  
  378.      19.1 List of Linux Terminal Commands
  379.         19.1.1 Sending a Command to the Terminal
  380.         19.1.2 Configuring the Terminal Device Driver
  381.         19.1.3 Terminfo
  382.         19.1.4 Other
  383.      19.2 The Internet and Books
  384.         19.2.1 Terminal Info on the Internet
  385.         19.2.2 Books Related to Terminals
  386.         19.2.3 Entire Books on Terminals
  387.         19.2.4 Books with Chapters on Terminals
  388.      19.3 Non-Linux OS's
  389.  
  390.   20. Appendix B: Escape Sequence Commands Terminology
  391.  
  392.      20.1 Esc Sequence List
  393.      20.2 8-bit Control Codes
  394.      20.3 Printer Esc
  395.      20.4 Reports
  396.      20.5 Cursor Movements
  397.      20.6 Pages (definition)
  398.  
  399.   21. Appendix C: Serial Communications on EIA-232 (RS-232)
  400.  
  401.      21.1 Intro to Serial Communication
  402.      21.2 Voltages
  403.         21.2.1 Voltage for a Bit
  404.         21.2.2 Voltage Sequence for a Byte
  405.      21.3 Parity Explained
  406.      21.4 Forming a Byte (Framing)
  407.      21.5 Limitations of EIA-232
  408.         21.5.1 Low Speed & Short Distance
  409.         21.5.2 Successors to EIA-232
  410.         21.5.3 Line Drivers
  411.      21.6 Synchronization & Synchronous
  412.         21.6.1 How "Asynchronous" is Synchronized
  413.         21.6.2 Defining Asynchronous vs Synchronous
  414.         21.6.3 Synchronous Communication
  415.      21.7 Block Mode
  416.         21.7.1 Intro to Block Mode
  417.         21.7.2 Types of Block Modes, Forms
  418.         21.7.3 Efficiency
  419.      21.8 EIA-232 (RS-232) Books
  420.      21.9 Serial Software
  421.  
  422.   22. Appendix D: Notes by Brand Name
  423.  
  424.      22.1 CIT
  425.      22.2 IBM Terminals
  426.         22.2.1 IBM 3153
  427.      22.3 Teletypes
  428.      22.4 VT (DEC)
  429.      22.5 Wyse
  430.         22.5.1 Wyse 99-GT
  431.         22.5.2 Wyse 150
  432.  
  433.  
  434.   ______________________________________________________________________
  435.  
  436.   1.  Introduction
  437.  
  438.   For a quick attempt to install a terminal see ``Quick Install''.
  439.  
  440.  
  441.   1.1.  Copyright, Trademarks, Disclaimer, & Credits
  442.  
  443.   1.1.1.  Copyright
  444.  
  445.   Copyright 1998 by David S. Lawyer.  Please freely copy and distribute
  446.   (sell or give away) this document.  Derivative works are permitted
  447.   provided you: 1. Make a good faith effort to insure that a copy
  448.   (including any master copy) gets on the Internet at an appropriate
  449.   site for free downloading.  2. License the work in the spirit of this
  450.   license, or use GPL (Free Software Foundation) 3. Make a good faith
  451.   effort to contact the maintainer (or principal copyright owners if
  452.   there is no maintainer) to let them know what you have done.  If the
  453.   changes are extensive, then you should also attempt to make more such
  454.   contacts before and possibly during your project.  4. Give full credit
  455.   to significant previous authors and contributors although the credits
  456.   section need not exceed 1% of the length of the document.
  457.  
  458.  
  459.   1.1.2.  Trademarks
  460.  
  461.   If certain words are trademarks, the context should make it clear to
  462.   whom they belong.  For example "MS Windows NT" implies that "Windows
  463.   NT" belongs to Microsoft (MS). Mac is by Apple Computer.  Trademarks
  464.   belong to their respective owners.
  465.  
  466.  
  467.   1.1.3.  Disclaimer
  468.  
  469.   Much of the info in this HOWTO was obtained from the Internet,
  470.   obsolete manuals, etc. and may be unreliable (although I've done some
  471.   double checking in some cases).  While I haven't intentionally tried
  472.   to mislead you, there are likely a number of errors in this document.
  473.   Please let me know about them.  Since this is free documentation, it
  474.   should be obvious that I cannot be held legally responsible for any
  475.   errors.
  476.  
  477.  
  478.   1.1.4.  Credits
  479.  
  480.   Much of the section "Physical Connection" is from Serial-HOWTO v.
  481.   1.11 by Greg Hankins.  His "How Do I Set Up A Terminal Connected To My
  482.   PC?"  was incorporated into version 1.00 at various places.  The
  483.   portions not incorporated were on topics already covered in my
  484.   previous version v0.05.
  485.  
  486.  
  487.   1.2.  Future Plans: You Can Help
  488.  
  489.   Please let me know of any errors in facts, opinions, logic, spelling,
  490.   grammar, clarity, links, etc.  But first, if the date is over a few
  491.   months old, check to see that you have the latest version.  Please
  492.   send me any info that you think belongs in this document.
  493.  
  494.   Starting with version 1.00, a first attempt was made to help people
  495.   set up terminals without recourse to a terminal manual.  Much more is
  496.   needed in this respect.  One way to solve this problem would be if
  497.   terminal manufacturers put their manuals on the Internet.  I suggest
  498.   that you encourage them to do so.  The task of providing information
  499.   on how to configure most terminals in this HOWTO is daunting.  There
  500.   are so many different terminals, but there are far fewer models than
  501.   there used to be in the 1980,s so the task is not totally infeasible.
  502.  
  503.   Please send me any surplus terminal manuals which you may have,
  504.   especially on terminals made within the past 10 years (but I'll accept
  505.   older ones also).  Also, you might want to write up something on a
  506.   certain terminal to put in the Appendix D: Notes by Brand Name.  My
  507.   email in 1998 is  <mailto:bf347@lafn.org>.
  508.  
  509.  
  510.   1.3.  New Versions of this HOWTO
  511.  
  512.   New versions of the Text-Terminal-HOWTO will be available to browse
  513.   and/or download at LDP mirror sites.  For a list of mirror sites see:
  514.   <http://metalab.unc.edu/LDP/mirrors.html>.  Various formats are
  515.   available.  If you only want to quickly check the date of the latest
  516.   version look at:  <http://metalab.unc.edu/LDP/HOWTO/Text-Terminal-
  517.   HOWTO.html>.
  518.  
  519.  
  520.   1.4.  Related HOWTO's
  521.  
  522.   Go to the web-sites shown above to get these.
  523.  
  524.   ╖  Serial-HOWTO has info on Multiport Serial Cards used for both
  525.      terminals and banks of modems.  It has general technical info on
  526.      the serial port.  Info on text-terminals will be removed.
  527.  
  528.  
  529.   ╖  Modem-HOWTO
  530.  
  531.   ╖  Serial-Programming-HOWTO
  532.  
  533.   ╖  Xterminal-HOWTO (unmaintained).  It's at
  534.      <http://sunsite.unc.edu/pub/Linux/docs/HOWTO/unmaintained/mini/Xterminal>
  535.  
  536.  
  537.   1.5.  Terminology Used in this Document
  538.  
  539.   Configuration means the same as set-up.  While Linux commands take
  540.   options (using - symbols), options in a broader sense include various
  541.   other types of choices.  Install in the broad sense includes setting
  542.   up (configuring) software and hardware.  A statement that I suspect is
  543.   true (but may not be) ends with 2 question marks: ??  If you know for
  544.   sure, let me know.
  545.  
  546.  
  547.   1.6.  What is a Terminal ?
  548.  
  549.   A terminal consists of a screen and keyboard that one uses to
  550.   communicate remotely with a (host) computer.  One uses it just like it
  551.   was a personal computer but the terminal is remote from the host
  552.   computer (on the other side of the room or even on the other side of
  553.   the world).  Programs execute on the host computer but the results
  554.   display on the terminal screen.  Its computational ability is
  555.   relatively low (otherwise it would be a computer and not a terminal).
  556.   This computational ability is generally limited to the ability to
  557.   display what is sent to it (possibly including full-screen graphics)
  558.   and the ability to send to the host what is typed at the keyboard.
  559.  
  560.   In the days of mainframes from the mid 1970's to the mid 1980's, most
  561.   people used terminals to communicate with computers.  They typed in
  562.   programs, ran programs, wrote documents, issued printing commands,
  563.   etc.  A cable connected the terminal to the computer (often
  564.   indirectly).  It was called a terminal since it was located at the
  565.   terminal end of this cable.
  566.  
  567.   If you've been using Linux (except for X-Window use) with a computer
  568.   monitor and keyboard you already know what a terminal is because you
  569.   have been using one (or more precisely a "virtual terminal").  The
  570.   monitor (along with the keyboard) is called the console, but it
  571.   emulates a terminal.  In X-Windows: xterm, rxvt, and zterm emulate
  572.   terminals.
  573.  
  574.   A real terminal is different from a monitor because it's a different
  575.   electronic setup.  A text terminal is often connected to a serial port
  576.   of the computer via a long cable.  Thus, in contrast to a monitor
  577.   which is usually located right next to the computer, a terminal may be
  578.   quite a distance away from its host computer.  The video card inside a
  579.   computer stores the video image seen on the monitor screen.  For a
  580.   terminal, the equivalent of this video card is built right into the
  581.   terminal but since text terminals are often monochrome without much
  582.   graphics, the capabilities of its "video card" are rather weak.  Also,
  583.   most text terminals do not have mice.
  584.  
  585.   In network client-server terminology, one might think that the
  586.   terminal is the client and that the host computer is the server.  The
  587.   terminal has been called a "thin client" by some.  This is not
  588.   actually true since the only "service" the host provides is to receive
  589.   every letter typed at the keyboard and react to this just like a
  590.   computer would.  The terminal is like a window into the computer just
  591.   like a monitor (and keyboard) are.  You may have already used virtual
  592.   terminals in Linux (by pressing Alt-F2, etc.).  A real terminal is
  593.   just like running such a virtual terminal on its own screen and
  594.   keyboard.  In contrast to using a virtual terminal at the console
  595.   (monitor), this allows another person to sit at the real terminal and
  596.   use the computer simultaneously with others.
  597.  
  598.  
  599.   2.  Types of Terminals
  600.  
  601.   2.1.  Dumb Terminals
  602.  
  603.   There are various conflicting definitions of "dumb terminal" but as
  604.   time goes by, more and more terminals are called dumb.  This document
  605.   mainly covers text terminals which display only text on the screen.
  606.   It might be titled "Dumb-Terminal-HOWTO" but in some magazines
  607.   articles any terminal, no matter how smart, including ones which
  608.   present a full graphical user interface (GUI), are called dumb.  If
  609.   all terminals are "dumb" then there is no point of prefixing the word
  610.   "dumb" to terminal (except as a sales pitch to sell computers or the
  611.   like in place of "smart" terminals).  Due to the ambiguous meaning of
  612.   "dumb terminal" it is not classified here as a type of terminal.
  613.  
  614.  
  615.   2.2.  Text Terminals
  616.  
  617.   For a text terminal, a 2-way flow of information between the computer
  618.   and the terminal takes place over the cable that connects them
  619.   together.  This flow is in ASCII bytes where each byte usually
  620.   represents a character.  Bytes typed at the keyboard go to the
  621.   computer and most bytes from the computer are displayed on the
  622.   terminal screen.  Special bytes (or sequences of bytes) from the
  623.   computer tell the terminal where to move the cursor to, what to erase,
  624.   where to begin and end underlining and/or blinking and/or bold, etc.
  625.   There are often hundreds of such special commands and many terminals
  626.   can even change fonts.
  627.  
  628.   The communication uses characters (letters) encoded using a code chart
  629.   for the character set being used.  Usually, the first 128 bytes out of
  630.   256 possible bytes use ASCII codes.  Terminals for Unix-like systems,
  631.   normally connect to computers via a cable running between the
  632.   asynchronous serial ports (RS-232-C = EIA-232-D) of the host computer
  633.   and terminal.  Sometimes the connection is via modem or terminal
  634.   server, etc.
  635.  
  636.   Other names for text terminals are "serial terminal", "character-cell
  637.   terminal", "ASCII/ANSI terminal", "asynchronous terminal", "data
  638.   terminal", "video terminal" and "video display terminal" (VDT).  In
  639.   olden days "video display unit" (VDU) was used for terminals but
  640.   strictly speaking, it excludes the keyboard.
  641.  
  642.   "Block mode" was used exclusively by old IBM mainframe terminals but
  643.   many modern terminals also have this capability (which is not used
  644.   much).  The characters you type are temporarily retained in the
  645.   terminal memory (and may possibly be edited by a built-in editor at
  646.   the terminal).  Then when the send key (or the like) is pressed, a
  647.   block of characters (sometimes just a line of characters) is sent to
  648.   the computer all at once.  Block mode (as of late 1998) is not
  649.   supported by Linux.  Block mode makes the terminal a block device (and
  650.   not a character device).  See section ``Block Mode''.
  651.  
  652.  
  653.   2.3.  Graphics Terminals
  654.  
  655.   To a limited degree some ASCII symbols can provide graphics on text
  656.   terminals.  One may form  arrows <--- and draw boxes with _ and |.
  657.   With special graphic character sets, even more is possible.  None of
  658.   these are really graphics terminals.  However, the term "graphics
  659.   terminal" is sometimes applied to all text-only terminals since text
  660.   is a limited form of graphics.
  661.   There are two basic types of graphics displays: raster and vector
  662.   (rarely used).  Raster graphics (bit-mapped) puts dots on the screen
  663.   by horizontal scan lines drawn by an electron beam (or by activating
  664.   pixels or dots on a flat screen).  Vector graphic displays use smart
  665.   electronics to draw lines and curves with an electron beam that can
  666.   move in any direction.  Vector graphics draws high quality lines
  667.   without zig-zags but is both rare and expensive.  Raster graphics is
  668.   almost universally used today.  For PC's, images encoded in vector
  669.   graphic format are sometimes used but they are translated to raster
  670.   graphics format for display (with a drop in image quality).
  671.  
  672.  
  673.   2.3.1.  Serial Line Graphics Terminals
  674.  
  675.   Most of this document also applies to these.  Most of these can also
  676.   function as text terminals.  The protocols for such graphics include:
  677.   Tektronix Vector Graphics, ReGIS (DEC), Sixel (DEC), and NAPLPS (North
  678.   American Presentation Level Protocol Syntax).
  679.  
  680.  
  681.   2.3.2.  Fast Graphics Terminals (often known by other names)
  682.  
  683.   None of these covered in this document.  A terminal that deserves to
  684.   be called smart is a graphics terminal which can rapidly display full-
  685.   screen graphics just like a PC monitor.  It will also have a mouse.
  686.   Bytes sent to it often represent bit-maps for pictures (and other
  687.   graphics).  It will often use a high-speed connection to the computer
  688.   using twisted pair or coax cable.  X-Window terminals are such
  689.   devices.  See the link to Xterminal-HOWTO at ``Related HOWTO's''
  690.  
  691.   For displaying a MS-Windows GUI there are at various types of
  692.   interfaces and terminals: Winterm using WinFrame software from Citrix
  693.   is one.  Another (based in part on Citrix's code) is Hydra (code name)
  694.   by Microsoft, also known as "Windows Terminal Server" which works with
  695.   versions 4 or higher of MS Windows NT.  Citrix uses its ICA protocol
  696.   and has created an add-on to Hydra known as pICAsso so that WinFrame
  697.   (ICA) based terminals can use the Hydra system.  Hydra is also multi-
  698.   user.  There is also the "MultiConsole Personal Terminal" by Unbounded
  699.   Technologies and Tektronix had its own multi-user interface but will
  700.   now support Hydra.  A magazine article in 1997 called Winterm a "dumb
  701.   terminal" but it's really pretty smart.  Such terminals are often
  702.   called "thin clients", but some thin clients are more that just
  703.   terminals as they can execute Java code sent to them, etc.
  704.  
  705.  
  706.   2.4.  Quasi-Terminals (= Quasi-Computers)
  707.  
  708.   "Quasi" is my terminology (not standard).  These are neither true
  709.   computers nor terminals but are something in-between.  Network
  710.   Computers (NC's) are computers with a CPU but no hard Disk.  They are
  711.   full-graphics and connect to a server computer.  They are different
  712.   from terminals since the programs they run execute on their own CPU
  713.   chips.  Java code may be sent to them for execution.  They should work
  714.   on IP networks and might work under a server running Linux.  Wintel
  715.   established a "NetPC" which, unlike the NC, is almost a PC computer.
  716.   However, it has no removable disks so users can't install their own
  717.   software or obtain copies of anything.
  718.  
  719.  
  720.   2.5.  Emulation on a PC
  721.  
  722.   Since a PC has a screen and keyboard (as does a terminal) but also has
  723.   much more computing power, it's easy to use some of this computing
  724.   power to make the PC computer behave like a text terminal.  This is
  725.   "terminal emulation".  It's not strictly a type of terminal since
  726.   emulation could, in theory, emulate any of the above types (but the
  727.   most common is the emulation of a text terminal).  See ``Terminal
  728.   Emulation''
  729.  
  730.  
  731.   3.  Quick Install
  732.  
  733.   This is a quick procedure to install a terminal without going through
  734.   a ``Setup'' procedure for both the terminal and the host computer.  It
  735.   probably will not work right if the terminal happens to have been set
  736.   up incompatible with the computer.  If you don't understand some of it
  737.   you'll need to consult other parts of this document for more info.
  738.  
  739.   To install a terminal, first look in /etc/termcap or terminfo.src to
  740.   find an entry for it (see ``Terminfo and Termcap (detailed)'').
  741.   Figure out what serial port you'll connect it to and what the tty
  742.   designation is for that port (e.g. ttyS1, see ``Device Names'').  As
  743.   the root user, edit /etc/inittab and add a getty command next to the
  744.   other getty commands.  The format of the getty command depends on
  745.   which getty program you use.  agetty (called just getty in the Debian
  746.   distribution) is the easiest (no configuration file).  See the "info"
  747.   or "man re getty.  For getty parameters use the terminfo (or termcap)
  748.   name (such as vt100) for your terminal.  Type in a baud-rate that the
  749.   terminal supports.  But if you set the baud too high you may need to
  750.   use (See``Flow Control'').
  751.  
  752.   Then physically connect the main serial port of the terminal to the
  753.   chosen serial port of the computer with a null-modem cable and turn on
  754.   the terminal.  Don't expect most ready-made cables to be wired
  755.   correctly for hardware flow control.  Make sure the baud-rate of the
  756.   terminal is set the same as you gave to getty and that its "data bits"
  757.   is 8.  Then at the computer console type "init q" to apply the changes
  758.   you made to the inittab file.  You should now see a login prompt at
  759.   the terminal.  If you don't, tap the terminal's return key.  If this
  760.   doesn't work read more of this document and/or see ``Trouble-
  761.   Shooting''.
  762.  
  763.  
  764.   4.  Why Use a Terminal ?
  765.  
  766.   4.1.  Intro to Why Use a Terminal
  767.  
  768.   PC's are so powerful today that one such computer can often support
  769.   several persons using it at once, especially if they are doing low-
  770.   load tasks such as text editing, data entry, etc.  One way to do this
  771.   is to connect a number of terminals to a single computer (host
  772.   computer) by modems or direct cable connection.  To do this, one needs
  773.   a multi-user operating system such as Linux.  This has been called
  774.   "time sharing" but it's not good terminology today since "distributed"
  775.   computing over a network is also a type of time sharing.  It might be
  776.   better described as "centralized" computing.  But the central computer
  777.   may be connected to the rest of the world via a network so that
  778.   terminal users may send email, browse the Internet with the "lynx"
  779.   browser, etc.  So it's not exactly "centralized" either.
  780.  
  781.   Terminals have seldom been used with PC's because the popular
  782.   operating systems used for them (Windows, DOS, and Mac) were not
  783.   multiuser until 1998 (available for MS Windows NT) and previously
  784.   could not support terminals.  Now that Linux, a multiuser operating
  785.   system, is freely available for PC's, the use of terminals with PC's
  786.   becomes more feasible.  The drawback is that text terminals are not
  787.   smart enough to support the type of graphical user interface (GUI)
  788.   that many computer users today normally expect.
  789.  
  790.  
  791.  
  792.  
  793.   4.2.  Lower Hardware Costs ?
  794.  
  795.   When Computers (including PCs) were quite expensive, lower hardware
  796.   costs was a significant advantage of using terminals.  Today with
  797.   cheap PCs the cost savings is problematical.  Here's what I wrote
  798.   years ago when PCs were more expensive.  It's still true today but of
  799.   less significance.
  800.  
  801.   If several people use the same computer as the same time, there is a
  802.   reduction in the amount of hardware needed for the same level of
  803.   service.  One type of savings is due to code sharing.  The application
  804.   files on hard disks are shared as well as shared libraries in memory
  805.   (even when people are running different programs provided they use
  806.   some of the same functions in their code).  Another type of savings is
  807.   due to reduction of peak load.  The hardware of a single PC may be
  808.   idle most of the time as people slowly type in information, think,
  809.   talk, or are away from their desks.  Having several people on the same
  810.   computer at once makes good use of much of this idle time which would
  811.   otherwise be wasted.
  812.  
  813.   These savings are substantial.  One may roughly estimate (using
  814.   statistical theory) that for 9 persons (8 terminals & 1 console) the
  815.   shared PC only needs only about 3 times as much capacity (in memory,
  816.   disk storage, CPU(s), etc.) as a single PC in order to provide the
  817.   same level of service per person.  Thus the computational hardware for
  818.   such a shared system should only cost about 1/3 as much per user.
  819.   However, the cost of the display hardware (CRT's, keyboards, video
  820.   electronics, etc.) is about the same for both cases.  The terminals
  821.   have the added cost of requiring additional serial ports at the host
  822.   computer.
  823.  
  824.   For a fair comparison with PC's, the terminals should have the same
  825.   capabilities as the PC monitors.  Unfortunately, color graphic
  826.   terminals for Linux (X-windows) with high speed communication is a
  827.   niche market with high prices so in this case there may not be much
  828.   (if any) savings in hardware costs.  But for text terminals there will
  829.   be some savings, especially if the terminals are obtained used at low
  830.   cost.
  831.  
  832.  
  833.   4.3.  Control of Software
  834.  
  835.   For centralized computing, software (and the updates to software) only
  836.   need be installed on one host computer instead of several.  The person
  837.   in charge of this computer may control the software which is installed
  838.   on it.  This is advantageous if the person controlling the host
  839.   computer does an excellent job and knows about the needs and
  840.   preferences of the other users.  Users can be prevented from playing
  841.   games or surfing the Internet by not installing the software (or by
  842.   otherwise restricting access to it).  Whether or not centralized
  843.   control is desirable depends on the situation.
  844.  
  845.  
  846.   4.4.  Hardware Upgrades
  847.  
  848.   With terminals, the computer hardware upgrades take place on only one
  849.   computer instead of many.  This saves installation labor effort.
  850.   While the cost of the hardware for the host computer upgrade will be
  851.   more than that for a single PC (since the host needs more computing
  852.   power than a PC), the cost will be significantly less than upgrading a
  853.   number of PC's being used instead of terminals.
  854.  
  855.  
  856.  
  857.  
  858.  
  859.   4.5.  Other Advantages of Terminals
  860.  
  861.  
  862.  
  863.   ╖  The elimination of noise from fans and disk drives provided the
  864.      terminals are not close to the computer.
  865.  
  866.   ╖  The users of the terminals can share data and files and send e-mail
  867.      to each other.  It's similar to a local network.
  868.  
  869.  
  870.   4.6.  Major Disadvantages of Terminals
  871.  
  872.  
  873.  
  874.   ╖  Text terminals have no high-speed graphic display (or high
  875.      resolution graphics) although they can often use graphic character
  876.      sets to draw boxes, etc.  This lack limits the software that may be
  877.      used on it.
  878.  
  879.   ╖  If the host computer goes down, then no one can use the terminals
  880.      either (unless there is another computer to connect to).
  881.  
  882.  
  883.   4.7.  Are Text Terminals Obsolete ?
  884.  
  885.   Text terminals are technologically obsolete because for a slightly
  886.   higher cost of hardware, one could build a smart terminal (with the
  887.   same quality of display).  This wasn't always the the case since
  888.   around 1980 memory cost thousands of dollars per megabyte.  Today with
  889.   low costs for memory and processors, one could make a text terminal
  890.   smart for only about a 10% or 20% increase in hardware cost.
  891.  
  892.   The reasons that text terminals are not yet obsolete are:
  893.  
  894.   ╖  There is no satisfactory standard interface for smart graphics
  895.      terminals.  The MS Hydra system is for MS Windows NT, while X-
  896.      Windows is not as efficient as it should be (and X-Windows
  897.      terminals are too costly).
  898.  
  899.   ╖  Many people don't need full screen graphics.
  900.  
  901.   ╖  Text terminals are low in cost and allegedly take longer to become
  902.      obsolete, yet can give access to a much newer (and powerful)
  903.      computer.
  904.  
  905.   ╖  Since running a text-terminal (in contrast to a full-graphics
  906.      terminal) doesn't consume much of a modern PC's resources, a large
  907.      number of terminals may be run from one PC.
  908.  
  909.  
  910.   5.  Overview of How Terminals Work (in Linux)
  911.  
  912.   See also section ``Some Details on How Terminals Work''
  913.  
  914.  
  915.   5.1.  Device Names
  916.  
  917.   Each terminal is connected to a serial port on the host computer
  918.   (often just a PC).  The ports have names: ttyS0, ttyS1, ttyS2 etc.
  919.   These are represented by special files found in the /dev (device)
  920.   directory.  /dev/ttyS0 corresponds to COM1 in DOS or Windows.  ttyS1
  921.   is COM2, etc.  See ``Terminal Special Files'' for details on these and
  922.   related "devices" such as cua.
  923.  
  924.  
  925.   5.2.  Login/Logout
  926.  
  927.   When the host computer starts up it runs the program getty (see
  928.   Serial-HOWTO 4.1 & 7.2) on each serial port which has a terminal on it
  929.   (as specified in the file etc/inittab).  The getty program runs the
  930.   "login" program to log people in.  A "login:" prompt appears on the
  931.   screen.  People at the terminals log in (after giving their passwords)
  932.   and then have access to the computer.  When it's time to shut the
  933.   terminal down, one normally logs out and turns the terminal off.  See
  934.   ``Login Restrictions'' regarding restricting logins (including
  935.   allowing the root user to log in at terminal).
  936.  
  937.  
  938.   5.3.  Half/Full Duplex
  939.  
  940.   If one watches someone typing at a terminal, the letters one types
  941.   simultaneously appear on the screen.  A naive person might think that
  942.   what one types is being sent directly from the keyboard to the screen
  943.   with a copy going to the computer (half-duplex like, see next
  944.   paragraph).  What is usually going on is that what is typed at the
  945.   keyboard is directly sent only to the host computer which in turn
  946.   echoes back to the terminal each character it receives (called full-
  947.   duplex).  In some cases (such as passwords or terse editor commands)
  948.   the typed letters are not echoed back.
  949.  
  950.   Full-duplex means that there are two (dual) one-way communication
  951.   links.  Full-duplex is the norm for terminals.  Half-duplex is half of
  952.   a duplex, meaning that there is only a single one-way communication
  953.   link.  This link must be shared by communications going in both
  954.   directions and only one direction may be used at a time.  In this case
  955.   the computer would not be able to echo the characters you type (and
  956.   send to it) so the terminal would need to also send each character you
  957.   type directly to the terminal screen.  Some terminals have a half-
  958.   duplex mode of operation which is seldom used.
  959.  
  960.  
  961.   5.4.  Terminal Memory
  962.  
  963.   The image on a CRT tube will fade away almost instantly unless it is
  964.   frequently redrawn on the screen by a beam of electrons shot onto the
  965.   face of the tube.  Since text sent to a terminal needs to stay on the
  966.   screen, the image on the screen must be stored in the memory chips of
  967.   the terminal and the electron beam must repeatedly scan the screen
  968.   (say 60 times per second) to maintain the image.  See ``Terminal
  969.   Memory Details'' for more details.
  970.  
  971.  
  972.   5.5.  Commands for the Terminal
  973.  
  974.   The terminal is under the control of the computer.  The computer not
  975.   only sends the terminal text to display on the screen but also sends
  976.   the terminal commands which are acted on.  These are ``Control Codes''
  977.   (bytes) and ``escape sequences''.  For example, the CR (carriage
  978.   return) control code moves the cursor the the left hand edge of the
  979.   screen.  A certain escape sequence (several bytes where the first byte
  980.   is the "escape" control code) can move the cursor to the location on
  981.   the screen specified by parameters placed inside the escape sequence.
  982.  
  983.   The ``first terminals'' had only a few such commands but modern
  984.   terminals have hundreds of them.  The appearance of the display may be
  985.   changed for certain regions: such as bright, dim, underline, blink,
  986.   and reverse video.   A speaker in a terminal can "click" when any key
  987.   is pressed or beep if a mistake has occurred.  Function keys may be
  988.   programmed for special meanings.  Various fonts may exist.  The
  989.   display may be scrolled up or down.  Specified parts of the screen may
  990.   be erased.  Various types of flow control may be used to stop the flow
  991.   of data when bytes are being sent to the terminal faster than the
  992.   terminal can handle them.  There are many more as you will see from
  993.   looking over an advanced terminal manual or from the Internet links
  994.   ``Esc Sequence List''
  995.  
  996.  
  997.   5.6.  Lack of Standardization Solved by Terminfo
  998.  
  999.   While terminals made for the US all used the same ASCII code for the
  1000.   alphabet (except for IBM terminals which used EBCDIC), they
  1001.   unfortunately did not all use the same escape sequences.  This
  1002.   happened even after various ANSI (and ISO) standards were established
  1003.   since these standards were never quite advanced enough.  Furthermore,
  1004.   older terminals often lacked the capabilities of newer terminals.
  1005.   This might cause problems.  For example, the computer might send a
  1006.   terminal an escape sequence telling it to split the screen up into two
  1007.   windows of specified size, not realizing that the terminal was
  1008.   incapable of doing this.
  1009.  
  1010.   To overcome these problems a database called "termcap" (now
  1011.   "terminfo") was established.  This database resides in certain files
  1012.   on the computer and has a section of it (sometimes an entire file) for
  1013.   each model of terminal.  For each model (such as VT100) a list of
  1014.   capabilities is provided including a list of certain escape sequences
  1015.   available and what they do.  See Section ``Termcap and Terminfo
  1016.   (detailed)'' for more details.  Application programs may utilize this
  1017.   database by calling certain C-Library programs.  One large set of such
  1018.   programs (over 200) is named "ncurses" and are listed in the manual
  1019.   page for ncurses.
  1020.  
  1021.  
  1022.   5.7.  The Interface
  1023.  
  1024.   The environment variable TERM is the type of terminal Linux thinks you
  1025.   are using.  Some application programs use this to look up the
  1026.   capabilities in the terminfo database so TERM needs to be set
  1027.   correctly.   But there is more to a correct interface than the
  1028.   computer knowing about the capabilities of the terminal.
  1029.  
  1030.   For bytes to flow from the computer to the terminal the terminal must
  1031.   be set to receive the bytes at the same baud rate (bits per second) as
  1032.   they are sent out from the terminal.  If the terminal is set to
  1033.   receive at 19,200 baud and the computer sends out characters at 9600
  1034.   baud, only garbage (or perhaps nothing) will be seen on the screen.
  1035.   One selects the baud rate for a terminal (as well as many other
  1036.   features) from the terminals "set-up" menus at the terminal.  Most
  1037.   terminals have a large number of options in their "set-up" menus  (see
  1038.   ``Terminal Set-Up (Configure) Details'').  The computer serial port
  1039.   has options also and these options must be set up in a compatible way
  1040.   (see ``Computer Set-Up (Configure) Details''.
  1041.  
  1042.  
  1043.   5.8.  Emulation
  1044.  
  1045.   Most terminals today have more than one emulation (personality or
  1046.   "terminal mode").  The terminal model numbers of terminals formerly
  1047.   made by DEC (Digital Equipment Corporation now Compaq) start with VT
  1048.   (e.g. VT100).  Many other terminals which are not VT100 may be set up
  1049.   to emulate a VT100.  Wyse is a major terminal manufacturer and most of
  1050.   their terminals can emulate various DEC terminals such at VT100 and
  1051.   VT220.  Thus if you want to, say, use a VT320 terminal you may either
  1052.   use a real VT320 in "native" personality or possibly use some other
  1053.   terminal capable of emulating a VT320.  The "native" personalities
  1054.   usually have more capabilities so, other things being equal, "native"
  1055.   is usually the best to use.
  1056.  
  1057.   The most common type of emulation is to use a PC like it was a vt100
  1058.   terminal (or the like).  Programs loaded into the PC's memory permits
  1059.   this.  In Linux (unless you're in X-windows) the PC monitor (called
  1060.   the console) emulates a terminal of type "Linux" (close to vt100).
  1061.   Even certain windows within X-windows emulate terminals.  See
  1062.   ``Terminal Emulation''.
  1063.  
  1064.  
  1065.   5.9.  The Console
  1066.  
  1067.   On a PC, the monitor is known as the console.  It emulates a terminal
  1068.   of type "Linux".  One logs on to it as a virtual terminal.  See ``The
  1069.   Console: /dev/tty?''.  It receives messages from the kernel regarding
  1070.   booting and shutdown progress.  One may have the messages that
  1071.   normally go to the console, go to the terminal.  To get this you must
  1072.   manually patch the kernel, except that for kernel 2.2 (or higher) it
  1073.   is a "make config" option.  See ``Make a Terminal the Console''.
  1074.  
  1075.  
  1076.   6.  Terminal Special Files such as /dev/tty
  1077.  
  1078.   "tty" is an abbreviation for "Teletype".  The first terminals were
  1079.   Teletypes (like remotely controlled typewriters).  See subsection
  1080.   ``Teletypes''.
  1081.  
  1082.  
  1083.   6.1.  Serial Port Terminals
  1084.  
  1085.   The computer considers each serial port to be a "device".  It's
  1086.   sometimes called a terminal device since at one time terminals were
  1087.   the common use for the serial port.  For each such serial port there
  1088.   is a special file in the /dev (device) directory.  /dev/ttyS0 is the
  1089.   special file for the serial port known as COM1 in the DOS/Windows
  1090.   world.  To send text to a terminal you may redirect standard output of
  1091.   some command-line command to the appropriate special file.  For
  1092.   example typing "echo test > /dev/ttyS1" at the command prompt should
  1093.   send the word "test" to the terminal on ttyS1 (COM2) provided you have
  1094.   write permission on /dev/ttyS1.  Similarly, typing "cat my_file >
  1095.   /dev/ttyS0" will send the contents of the file my_file to COM1
  1096.   (ttyS0).
  1097.  
  1098.   In addition to ttyS0 (/dev/ttyS0), ttyS1, ttyS2, etc. (the "S" stands
  1099.   for Serial port) there is also a "cua" series: cua0, cua1, cua2, etc.
  1100.   cua0 is the same port as ttyS0, etc.  The "cu" of cua stands for
  1101.   CalloUt.  The ttyS series are Posix compliant while using cua may
  1102.   permit the opening of a port that the modem control lines say is not
  1103.   ready.  Starting with kernel version 2.2 cua is obsolete and a warning
  1104.   message is issued when you attempt to use it (although it still
  1105.   works).  For the past few years it has only been included with Linux
  1106.   for backwards compatibility.  A programmer can arrange things so that
  1107.   ttyS can behave just like cua, so cua is not really needed.
  1108.  
  1109.  
  1110.   6.2.  Pseudo Terminals
  1111.  
  1112.   Pseudo terminals have no unique physical connector on the computer.
  1113.   They are used to emulate a serial port.  For example, if someone
  1114.   connects via telnet to your computer over a network, they may wind up
  1115.   connected to the device /dev/ptyp2 (a pseudo terminal port).  In X-
  1116.   Windows, the terminal emulator program, xterm (or rxvt), uses pseudo
  1117.   terminals.  Ham radio programs under Linux also use them.  Using
  1118.   certain application software it is possible to have 2 or more pseudo
  1119.   terminals attached to the same physical serial port.
  1120.  
  1121.   Pseudo terminals come in pairs such as ttyp3 and ptyp3.  The pty... is
  1122.   the master or controlling terminal and the tty... is the slave.  ttyq5
  1123.   is also a pseudo terminal as is ttysc (c is a hexadecimal digit).
  1124.   More precisely, pseudo master terminals are /dev/pty[p-s]N and the
  1125.   corresponding slaves are /dev/tty[p-s]N where N is a hexadecimal
  1126.   digit.
  1127.  
  1128.  
  1129.   6.3.  The Controlling Terminal /dev/tty
  1130.  
  1131.   /dev/tty stands for the controlling terminal (if any) for the current
  1132.   process (the process that uses "/dev/tty" in a command).  To find out
  1133.   which tty's are attached to which processes use the "ps -a" command at
  1134.   the shell prompt (command line).  Look at the "tty" column.  For the
  1135.   shell process you're in, /dev/tty is the terminal you are now using.
  1136.   Type "tty" at the shell prompt to see what it is (see manual pg.
  1137.   tty(1)).  /dev/tty is something like a link to the actually terminal
  1138.   device name with some additional features for C-programmers: see the
  1139.   manual page tty(4).
  1140.  
  1141.  
  1142.   6.4.  /dev/ttyIN "Terminals"
  1143.  
  1144.   N stands for an integer.  One use of these in Linux is with the ISDN
  1145.   driver package: isdn4linux.  The ttyIN is something like ttySN.  There
  1146.   is also a cuiN  which is something like cuaN.  The ttyI and cui
  1147.   emulate modems and may be given modem commands.
  1148.  
  1149.  
  1150.   6.5.  The Console: /dev/ttyN
  1151.  
  1152.   In Linux the PC monitor is usually called the console and has several
  1153.   device special files associated with it: tty0, tty1, tty2, etc.  When
  1154.   you log in you are on tty1.  To go to tty2 press Alt-F2.  tty1, tty2,
  1155.   etc. are "virtual terminals" (sometimes called "virtual consoles").
  1156.   You may log in to different virtual terminals and thus have a few
  1157.   different sessions with the computer going on at the same time.  You
  1158.   switch between them using the Alt-F?  key where "?" is the virtual-
  1159.   terminal number you want.  The console is also known as /dev/tty0 and
  1160.   system messages may go to that device and display on your console.
  1161.   Only the system or the root user may write to /dev/tty0 to which
  1162.   /dev/console is sometimes linked.  System messages may also be written
  1163.   directly to the hardware address of the console thus bypassing
  1164.   /dev/tty0.  For more info on the console see ``The Linux Console''.
  1165.  
  1166.  
  1167.   6.6.  Creating a Device with "mknod"
  1168.  
  1169.   The /dev directory comes supplied with many device special files.  If
  1170.   you need something that's not there you may try to create it with the
  1171.   "mknod" command.  See the manual page ttys(4) for how to do this for
  1172.   serial ports.  To use mknod you must know the major and minor device
  1173.   numbers.  You might be able to infer the numbers you need by using the
  1174.   "ls -l" command in the /dev directory.  It will display the major and
  1175.   minor numbers of existing special files.
  1176.  
  1177.  
  1178.   7.  Some Details on How Terminals Work
  1179.  
  1180.   If you know almost nothing about terminals, it's suggested that you
  1181.   first read ``Introduction'' and also read ``Overview of How Terminals
  1182.   Work''.
  1183.  
  1184.  
  1185.   7.1.  Terminal Memory Details
  1186.  
  1187.   The terminal screen refreshes itself at perhaps 60 times per second
  1188.   from an image stored in the memory of the terminal.  For a PC the
  1189.   monitor's image is stored on the video card inside the computer but
  1190.   for a terminal, the equivalent of the video card is inside the
  1191.   terminal.  For a text terminal the storage of the image uses little
  1192.   memory.  Instead of putting every dot (pixel) on the screen into
  1193.   memory and requiring the storage of about a quarter-million dots, a
  1194.   much more efficient method of storage is used.
  1195.  
  1196.   A screen-full of text may be represented inside the terminal memory by
  1197.   ASCII bytes, one for each character on the screen.   An entire screen
  1198.   only takes about 2K ASCII bytes.  To display these characters, the
  1199.   terminal must also know the bit-map (the shape) of each of the almost
  1200.   100 printable ASCII characters.  With a bit-map of a character using
  1201.   say 15 bytes, only about 1.5K of memory is needed for the bit-maps of
  1202.   all the ASCII characters (the font).  This ASCII text and font memory
  1203.   is scanned so that the resulting image is put on the screen about 60
  1204.   times each second.  This is a form of shared memory where a single
  1205.   bit-map of a letter such as the letter e, is shared by all of the many
  1206.   letter e's which appear on a screen-full of text.  Low memory
  1207.   requirements meant low costs to produce monitors in the early 1980's
  1208.   when the cost of memory was several thousand times higher than it is
  1209.   today (costing then several dollars per kilobyte).
  1210.  
  1211.  
  1212.   7.2.  Early Terminals
  1213.  
  1214.   The first terminals were something like remotely controlled
  1215.   typewriters which could only "display" (print on paper) the character
  1216.   stream sent to them from the computer.  The earliest models were
  1217.   called ``Teletypes''.  The name "tty" is just an abbreviation for
  1218.   "Teletype".   Early terminals could do a line feed and a carriage
  1219.   return just like a typewriter and ring a bell when a bell character
  1220.   was received.  Due to the lack of significant capabilities this was
  1221.   the first type of terminal to be labeled "dumb".  This type of
  1222.   terminal interface (using a terminal type called "dumb") is sometimes
  1223.   used today when the computer can't figure out what kind of a terminal
  1224.   it is communicating with.
  1225.  
  1226.  
  1227.   7.3.  Escape Sequences and Control Codes (intro)
  1228.  
  1229.   Terminals have many capabilities some of which are always present and
  1230.   some of which require commands from the computer to change or
  1231.   activate.  To exercise all these capabilities under the control of the
  1232.   computer requires that special codes be established so that the
  1233.   computer can tell the terminal what to do.  There are two major type
  1234.   of such codes: escape sequences and control codes (control
  1235.   characters).  There are many times more escape sequences than control
  1236.   codes.
  1237.  
  1238.  
  1239.   7.3.1.  Control Codes
  1240.  
  1241.   The control codes (or control characters) consist of the first 32
  1242.   bytes of the ASCII alphabet.  They include the following: carriage-
  1243.   return (cursor to far left), line-feed (cursor down one line),
  1244.   backspace, escape-character, tab, and bell.  They do not normally show
  1245.   on the screen.  There is usually a command which you may give to your
  1246.   terminal which will result in them being displayed when they are
  1247.   received by the terminal.  It's called something like "Display
  1248.   Controls" or "Monitor".  If you do this then the display may look a
  1249.   mess since escape sequences, which all start with the ESC (escape)
  1250.   control character, are no longer executed.  Words which should appear
  1251.   at the top or bottom of the screen will show up in other locations.
  1252.   The escape sequences to reposition the cursor display on the screen
  1253.   but the cursor doesn't move to where the escape sequence says.
  1254.  
  1255.   7.3.2.  Escape Sequences
  1256.  
  1257.   Since there are not nearly enough control codes to do everything (and
  1258.   for some reason, not all of them are utilized) many escape sequences
  1259.   are used.  They consist of the "escape" (ESC) control character
  1260.   followed by a sequence of ordinary characters.  Upon receiving an
  1261.   escape character, the terminal examines the characters following it so
  1262.   that it may interpret the sequence and carry out the intended command
  1263.   from the computer.  Once it recognizes the end of a valid sequence,
  1264.   further characters received just display on the screen (unless they
  1265.   are control codes or more escape sequences).  Some escape sequences
  1266.   may take parameters (or arguments) such as the coordinates on the
  1267.   screen to move the cursor to.  The parameters become a part of the
  1268.   escape sequence.  An ``Esc Sequence List'' is on the web for some
  1269.   terminals, but it's terse.
  1270.  
  1271.   A list of the escape sequences for your terminal should be in the
  1272.   "programmers manual" for the terminal.  Except for very old terminals,
  1273.   there may be two or three hundred such sequences.  If you don't have a
  1274.   such manual it's not easy to find them.  Some of the sequences are
  1275.   available on the Internet.  One link is ``Esc Sequence List''.  By
  1276.   searching the Internet for one sequence (such as ESC[5m) you may come
  1277.   across a long list of them.
  1278.  
  1279.   Another way to determine some of them is to find the terminfo entry
  1280.   (termcap) for the terminal and mentally decode it.  See ``Terminfo and
  1281.   Termcap (detailed)'' in this document and/or the ``Termcap Manual'' on
  1282.   the Internet.  Unfortunately, the terminfo (termcap) for a terminal
  1283.   often does not list all of the escape sequences which the terminal has
  1284.   available for use, but fortunately, the most important ones are
  1285.   usually there.
  1286.  
  1287.  
  1288.   7.4.  Display Attributes & Magic Cookies
  1289.  
  1290.   Terminals have various methods of generating character attributes such
  1291.   as bold, reverse-video, underlining, etc.  There should be no need for
  1292.   the user to worry about how how this is done, except that it creates
  1293.   problems for some old terminals and there is sometimes an option for
  1294.   this in the set-up menu of newer terminals.
  1295.  
  1296.   The magic cookie method is obsolete.  It's the simplest (and worst)
  1297.   method of defining attributes: Use a certain byte for the start of an
  1298.   attribute and another to end that attribute.  For example, a "start
  1299.   underlining" magic cookie byte is placed just before the first word to
  1300.   be underlined.  These extra bytes are put into the memory of the
  1301.   screen page, just like character bytes that display as characters.
  1302.   But this might foul up the count of the number of characters per line
  1303.   since non-printable magic cookie characters are intermingled with
  1304.   other printable characters.  This sometimes causes problems.
  1305.  
  1306.   A better method which uses more memory is to assign an attribute byte
  1307.   (or half=byte, etc.) to each displayed character.  This method is used
  1308.   by PC video cards (for text) for the common PC monitor.
  1309.  
  1310.  
  1311.   8.  Special Features of Some Terminals
  1312.  
  1313.   8.1.  Color
  1314.  
  1315.   While the common monochrome terminal is not a color terminal it may
  1316.   have a fixed "color" display other than white such as green or amber.
  1317.   All terminals have black (electron beam turned off = zero brightness).
  1318.   A real color terminal can change the color of the text and background
  1319.   to many different colors while a monochrome terminal can only change
  1320.   the brightness of a fixed color.
  1321.   However, changing the brightness, etc. gives a lot of possibilities.
  1322.   For example, a black and white (monochrome) terminal can have white,
  1323.   grey, and black by varying the brightness.  Some words can be black on
  1324.   a light grey background while other are highlighted by black on white.
  1325.   In addition there is white on black, underlining, and blinking.
  1326.  
  1327.   Color works like the color on a computer monitor or TV screen.  The
  1328.   CRT has three colors of dots on it with each color controlled by its
  1329.   own electron beam (3 beams).  Monochrome has inherently better
  1330.   resolution since it doesn't depend on dots permanently fixed on the
  1331.   screen.  For text terminals the only use of color is to differentiate
  1332.   text and this advantage is not always worth the cost of worse
  1333.   resolution.  Thus monochrome may be better since it also costs less.
  1334.  
  1335.  
  1336.   8.2.  Multiple Sessions
  1337.  
  1338.   For dual sessions the terminal has two serial ports of equal status.
  1339.   Each port is connected to a serial port on a different computer.  Thus
  1340.   one may log in to two different computers with each session displaying
  1341.   in a split-screen window.   Alternatively, each session may run full-
  1342.   screen with a "hot" key (or the like) to switch between sessions.  One
  1343.   could also connect to two different serial ports on the same computer
  1344.   and log in twice (similar to "virtual terminals" at the console).  The
  1345.   program "screen" will make any ordinary terminal (single session)
  1346.   connected to a single computer run two or more "sessions".
  1347.  
  1348.  
  1349.   8.3.  Printer/Auxiliary Port
  1350.  
  1351.   Many terminals have a connector on the rear for such a port.  It may
  1352.   be labeled as "Aux" or "Printer", etc.  Some printer ports are for
  1353.   parallel printers while others are for serial printers.  If a printer
  1354.   is connected to the printer or auxiliary port, then pressing certain
  1355.   keys will print the screen.  One may also have everything that
  1356.   displays on the screen go also to the printer.  If the port is an
  1357.   auxiliary port, one may connect this to another computer and almost
  1358.   have dual sessions as above.  However, the video memory inside the
  1359.   terminal may not retain both sessions so you may need to refresh the
  1360.   screen when switching to the other session.  There will likely not be
  1361.   a hot key either but possibly a programmable function key may be
  1362.   programmed to do this.  There exists various key combinations and
  1363.   escape sequences for controlling such a port.  See ``Printer Esc''.
  1364.  
  1365.   There is a program called vtprint which is designed to send a print
  1366.   job to your terminal to be printed on a printer attached to the
  1367.   terminal.  It's homepage is http://people.qualcomm.com/garrett/vtprint
  1368.   .  It's also a included (as of 1998) in the Debian distribution of
  1369.   Linux.  xprt (also in Debian) seems to do something similar, but only
  1370.   for X-Window terminals ??
  1371.  
  1372.  
  1373.   8.4.  Pages
  1374.  
  1375.   Many terminals permit the storage of more than one page in their video
  1376.   memory.  Sometimes the page size is the same as the screen, but
  1377.   sometimes it is larger so that scrolling will reveal unseen parts of a
  1378.   page.  So when one looks at a screen, there may be hidden text on the
  1379.   same page above or below the display.  In addition, if there is more
  1380.   than just one page, there may be hidden text on these other pages.
  1381.   One use for pages is on terminals that support dual sessions.  Each
  1382.   session may have its own page and one may switch back and forth
  1383.   between them.
  1384.  
  1385.   Even if you only have a one-page-terminal with the page sized equal to
  1386.   what is displayed on the screen, you will still see other pages of a
  1387.   file (etc.) as the host sends more data to the terminal.  One
  1388.   advantage to having additional pages stored in the terminal memory is
  1389.   so that you can jump to them instantly without waiting a second or so
  1390.   for them to be transmitted from the host.
  1391.  
  1392.   I know of no Linux application program that exploits the use of
  1393.   multiple pages.  Let me know if you know of any.  There is a
  1394.   commercial program called "Multiscreen" which supports this but
  1395.   probably not for Linux ??  Multiscreen is reported to be part of SCO
  1396.   and is something like the virtual terminals on a Linux PC console.
  1397.   The Linux program "screen" makes it look like you have multiple pages
  1398.   but they are stored in the computer and but you can have only one
  1399.   page-like window for each running program.
  1400.  
  1401.  
  1402.   8.5.  Character-Sets
  1403.  
  1404.   A character-set is normally represented by a list (or table or chart)
  1405.   of characters along with the byte code assigned to each character.
  1406.   The codes for a byte range from 0 to 255 (00 to FF in hexadecimal).
  1407.   In MS-DOS, character-set tables are called "code-pages".  You should
  1408.   examine such a table if you're not familiar with them.  They are
  1409.   sometimes included in printer and terminal manuals but may be
  1410.   difficult to find.
  1411.  
  1412.   ASCII is one of the most common character-sets used on text terminals.
  1413.   It is a 7-bit code but can be made into 8-bit if the first bit (high
  1414.   order bit) is always set to 0.  Other character-sets are usually
  1415.   available (except on very old terminals where the only choice is
  1416.   ASCII).  The first half of most character-sets are the conventional
  1417.   ASCII characters and the second half (the characters with the high-
  1418.   order bit set to 1) belong to a wide variety of character-sets.
  1419.   Character sets are often ISO standards.  To get specialized character
  1420.   sets on a terminal, you may need to download a soft-font for that
  1421.   character-set into the memory of the terminal.
  1422.  
  1423.   Besides ASCII, there are some other common character-sets, all 8-bit.
  1424.   CP stands for Code Page character sets invented by IBM: CP-437 (DOS
  1425.   ECS), CP-850 (Multilingual Latin 1 --not the same as ISO Latin-1),
  1426.   ISO-8859-1 (Latin-1), ANSI (derived from Latin-1).  MS Windows uses
  1427.   ANSI while the Internet often uses Latin-1.  There are several
  1428.   ISO-8859 character sets in addition to Latin-1.  These include Greek
  1429.   (-7), Arabic (-6), Eastern European (-2), and Russian (-5).  There are
  1430.   many others.  For example, KOI8-R is more commonly used for Russian
  1431.   than IS0-8859-5.  Unicode is a very large character-set where each
  1432.   character is represented by 2 bytes instead on just one byte.
  1433.  
  1434.   More info re character-sets are:
  1435.  
  1436.   ╖  Manual pages: ASCII and latin1
  1437.  
  1438.   ╖  HOWTO's for various languages (likely written in that language).
  1439.      See "Cyrillic" for Russian.
  1440.  
  1441.   ╖  <http://www.cc.columbia.edu/kermit/charsets.html> for a short
  1442.      listing of various character-set names.
  1443.  
  1444.   ╖  <http://www.pku.edu.cn/on_line/w3html/International/Overview.html>
  1445.      for info on character-sets and the Internet.
  1446.  
  1447.   ╖  Languages, Countries and Character Sets
  1448.      <http://www.w3.org/International/O-charset-lang.html>
  1449.  
  1450.   ╖  <http://vancouver-webpages.com/multilingual/> name="Using Multiple
  1451.      Languages in HTML">
  1452.  
  1453.      Once you've found the character set name (or number) you are
  1454.      interested in, you may search for more info about it on the
  1455.      Internet.
  1456.  
  1457.  
  1458.   8.6.  Fonts
  1459.  
  1460.   Most terminals made after the mid 1980's can accept downloaded soft-
  1461.   font.  This means that they can display almost any character set
  1462.   provided that you can find the soft-font for it.  If you can't find
  1463.   the needed soft-font, you can always create your own.  A free font
  1464.   editor for this is called BitFontEdit (written by the author of this
  1465.   document) and (in 1998) was at
  1466.   Europe:  <http://www.funet.fi/pub/culture/russian/comp/cyril-term/>
  1467.   N. America:
  1468.   <ftp://cs.utk.edu/pub/shuford/terminal/BitFontEdit.tar.gz>
  1469.  
  1470.  
  1471.   8.7.  Keyboards & Special Keys
  1472.  
  1473.   Terminal keyboards often have a number of keys that one doesn't find
  1474.   on a PC keyboard.  Few (if any) actual terminals will have all of
  1475.   these keys and most will have additional keys not listed here.  Some
  1476.   have a large number of special purpose keys such as terminals made for
  1477.   use with cash registers.  There are often many more key meanings than
  1478.   shown here since these keys often have extended meanings when used in
  1479.   conjunction with other keys (such as shift and control).
  1480.  
  1481.  
  1482.   ╖  BREAK sends a very long 0 bit (space = +12 V) of duration 300 to
  1483.      700 milliseconds to the host.  The host may interpret this as an
  1484.      interrupt if stty has set brkint or ignore it if ignbrk is set.
  1485.  
  1486.   ╖  NO SCROLL stops the screen from scrolling like ^S does.  Depressing
  1487.      it again resumes scrolling.  Uses flow control signals to do this.
  1488.  
  1489.   ╖  REPEAT if held down with an other key, forces repeated output of
  1490.      that other key even if the auto-repeat option is set to off.
  1491.  
  1492.   ╖  LINE FEED sends the line feed character ^J to the host.  Seldom
  1493.      used.
  1494.  
  1495.   ╖  SET-UP allows the manual configuration of the terminal via menus.
  1496.      Sometimes purposely disabled by putting a block under it so it
  1497.      can't be pressed down.  Sometimes another key such as shift or
  1498.      control must be pressed at the same time. See ``Getting Into Set-Up
  1499.      (Configuration) Mode''.
  1500.  
  1501.   ╖  LOCAL disconnects the terminal from the host.  In local, what one
  1502.      types goes directly to the screen.  Useful for testing.
  1503.  
  1504.   ╖  RETURN is the same as the "enter" key on a PC.  It usually sends a
  1505.      carriage return to the host which normally get translated to a new-
  1506.      line character by the host's device driver.  On some terminals it
  1507.      may be set up to send something else.
  1508.  
  1509.   ╖  F1, F2, ... or PF1, PF2, ... are function keys which usually may be
  1510.      programmed to send out a sequence of bytes (characters).  See
  1511.      ``Function Keys''
  1512.  
  1513.  
  1514.   9.  Terminal Emulation; the Console
  1515.  
  1516.  
  1517.  
  1518.  
  1519.   9.1.  Terminal Emulation
  1520.  
  1521.   9.1.1.  Intro to Terminal Emulation
  1522.  
  1523.   Since a PC has a screen and keyboard (as does a terminal) but also has
  1524.   much more computing power, it's easy to use some of this computing
  1525.   power to make the PC computer behave like a text terminal.  Emulation
  1526.   software is available for MS Windows and comes built-in with recent
  1527.   versions of MS Windows.  Most Linux software can only emulate a VT100,
  1528.   VT102, or VT100/ANSI.  If you find out about any others, let me know.
  1529.   Since most PC's have color monitors but VT100 and VT102 were designed
  1530.   for a monochrome monitor, the emulation usually adds color
  1531.   capabilities (and a choice of colors).  Sometimes the emulation is not
  1532.   100% perfect but this usually causes few problems.  For using a Mac
  1533.   computer to emulate a terminal see the mini-howto: Mac-Terminal.
  1534.  
  1535.  
  1536.   9.1.2.  Don't Use TERM For Emulation
  1537.  
  1538.   Some have thought they could create an emulator at a Linux console
  1539.   (monitor) by setting the environment variable TERM to the type of
  1540.   terminal they would like to emulate.  This does not work.  When one
  1541.   does this they are in effect falsely declaring that the terminal they
  1542.   are now using (of type Linux) is of some other type --but it isn't.
  1543.   It's just like they plugged in a terminal of type A to a serial port
  1544.   and then set TERM to type B, thereby falsely declaring that their
  1545.   terminal is of type B.  In this case, application programs such as
  1546.   editors that make use of the TERM setting will send escape codes
  1547.   intended for a type B terminal to a type A terminal resulting in a
  1548.   corrupted interface.  Even with this corruption the terminal may still
  1549.   be usable since many different types of terminals will use identical
  1550.   escape sequences for many (but not all) commands.
  1551.  
  1552.  
  1553.   9.1.3.  Communication (Dialing) programs
  1554.  
  1555.   An emulation program is often combined with a modem dialing program
  1556.   (such as Minicom, Seyon, or Kermit) so that one may (for example) dial
  1557.   up public libraries to use their catalogs and indexes, (or even read
  1558.   magazine articles).  Seyon is only for use with X-windows and can
  1559.   emulate Tektronix 4014 terminals.  Emulators exist under DOS such as
  1560.   telix and procomm work just as well.  The terminal emulated is often
  1561.   the old VT100, VT102, or ANSI (like VT100).
  1562.  
  1563.  
  1564.   9.1.4.  Emulation under X-Windows
  1565.  
  1566.   Xterm (obsolete ??) may be run under X-Windows which can emulate a
  1567.   VT102, VT220, or Tektronix 4014.  There is also an xterm emulation
  1568.   (although there is no real terminal named "xterm").   If you don't
  1569.   need the Tektronix 4014 emulation (a vector graphics terminal; see
  1570.   ``Graphics Terminals'') you may use eterm.  Predecessors to eterm are
  1571.   rxvt and xvt.  eterm supports pixmaps.
  1572.  
  1573.   For non-Latin alphabets, kterm is for Kanji terminal emulation (or for
  1574.   other non-Latin alphabets) while xcin is for Chinese.  There is also
  1575.   9term emulation.  This seems to be more than just an emulator as it
  1576.   has a built-in editor and scroll-bars.  It was designed for Plan 9, a
  1577.   Unix-like operating system from AT&T.
  1578.  
  1579.  
  1580.   9.1.5.  Real Terminals Better
  1581.  
  1582.   Unless you are using X-Windows with a large display, a real terminal
  1583.   is often nicer to use than emulating one.  It usually costs less, has
  1584.   better resolution for text, and has no disk drives to make annoying
  1585.   noises.  Some real terminals can emulate various other models of
  1586.   terminals but it's still a real terminal.
  1587.  
  1588.  
  1589.   9.2.  Testing Terminal Emulation
  1590.  
  1591.   For the VT series terminals there is a test program: vttest to help
  1592.   determine if a terminal behaves correctly like a vt53, vt100, vt102,
  1593.   vt220, vt320, vt420 etc.  There is no documentation but it has menus
  1594.   and is easy to use.  To compile it run the configure script and then
  1595.   type "make".  It may be downloaded from:
  1596.   <ftp://ftp.clark/net:/pub/dickey/vttest/>.  An alternate download site
  1597.   is:  <http://sunsite.unc.edu/pub/Linux/utils/console/>
  1598.  
  1599.  
  1600.   9.3.  The Linux Console
  1601.  
  1602.   The console for a PC Linux system is the computer monitor  It emulates
  1603.   a terminal of type "Linux".  There is no way (unless you want to spend
  1604.   days rewriting the kernel code) to get it to emulate anything else.
  1605.   Setting the TERM environment variable to type of terminal other than
  1606.   "Linux" will not result in emulating that other terminal.  It will
  1607.   only result in a corrupted interface since you have falsely declared
  1608.   (via the TERM variable) that your "terminal" is of a type different
  1609.   from what it is.  See ``Don't Use TERM For Emulation''
  1610.  
  1611.   The "Linux" emulation is flexible and has features which go well
  1612.   beyond those of the vt102 terminal which it was intended to emulate.
  1613.   These include the ability to use custom fonts and easily re-map the
  1614.   keyboard (without patching the source code and recompiling the kernel
  1615.   as is required for the case of a real terminal).  These extra features
  1616.   reside in the console driver software and not in the emulation
  1617.   software but the results are like it was part of the emulation.
  1618.  
  1619.   Many commands exist (see Keyboard-and-Console-HOWTO) to utilize these
  1620.   added features.   Real terminals, which use neither scan codes nor VGA
  1621.   cards, unfortunately can't use most of these features.  One may
  1622.   recompile Linux to make a terminal receive the messages which normally
  1623.   go to the console.  See ``Make a Terminal the Console''.
  1624.  
  1625.  
  1626.   10.  Flow Control (Handshaking)
  1627.  
  1628.   Flow control (= handshaking = pacing)  is to prevent too fast of a
  1629.   flow of bytes from overrunning a terminal, computer, modem or other
  1630.   device.  Overrunning is when a device can't process what it is
  1631.   receiving quickly enough and thus loses bytes and/or makes other
  1632.   serious errors.  What flow control does is to halt the flow of bytes
  1633.   until the terminal (for example) is ready for some more bytes.  Flow
  1634.   control sends its signal to halt the flow in a direction opposite to
  1635.   the flow of bytes it wants to stop.  Flow control must both be set at
  1636.   the terminal and at the computer.
  1637.  
  1638.   There are 2 types of flow control: hardware and software (Xon/Xoff or
  1639.   DC1/DC3).  Hardware flow control uses dedicated signal wires such as
  1640.   RTS/CTS or DTR/DSR while software flow control signals by sending DC1
  1641.   or DC3 control bytes in the normal data wires.  For hardware flow
  1642.   control, the cable must be correctly wired.
  1643.  
  1644.   The flow of data bytes in the cable between 2 serial ports is bi-
  1645.   directional so there are 2 different flows (and wires) to consider:
  1646.  
  1647.   1. Byte flow from the computer to the terminal
  1648.  
  1649.   2. Byte flow from the terminal keyboard to the computer.
  1650.  
  1651.   10.1.  Why Is Flow Control Needed ?
  1652.  
  1653.   You might ask: "Why not send at a speed slow enough so that the device
  1654.   will not be overrun and then flow control is not needed?"  This is
  1655.   possible but it's usually significantly slower than sending faster and
  1656.   using flow control.  One reason for this is that one can't just set
  1657.   the serial port baud rate at any desired speed such as 14,500, since
  1658.   only a discrete number of choices are available.  The best choice is
  1659.   to select a rate that is a little higher than the device can keep up
  1660.   with but then use flow control to make things work right.
  1661.  
  1662.   If one decides to not use flow control, then the speed must be set low
  1663.   enough to cope with the worst case situation.  For a terminal, this is
  1664.   when one sends escape sequences to it to do complex tasks that take
  1665.   more time than normal.  In the case of a modem (with data compression
  1666.   but no flow control) the speed from the computer to the modem must be
  1667.   slow enough so that this same speed is usable on the phone line, since
  1668.   in the worst case the data is random and can't be compressed.  If one
  1669.   failed to use flow control, the speed (with data compression turned
  1670.   on) would be no faster than without using any compression at all.
  1671.  
  1672.   Buffers are of some help in handling worst case situations of short
  1673.   duration.  The buffer stores bytes that come in too fast to be
  1674.   processed at once, and saves them for processing later.
  1675.  
  1676.  
  1677.   10.2.  Padding
  1678.  
  1679.   Another way to handle a "worst case" situation (without using flow
  1680.   control or buffers) is to add a bunch of nulls (bytes of value zero)
  1681.   to escape sequences.  Sometimes DEL's are used instead provided they
  1682.   have no other function.  See ``Recognize Del''.
  1683.  
  1684.   The escape sequence starts the terminal doing something, and while the
  1685.   terminal is busy doing it, it receives a bunch of nulls which it
  1686.   ignores.  When it gets the last null, it has completed its task and is
  1687.   ready for the next command.  This is called null padding.  These nulls
  1688.   formerly were called "fill characters".  These nulls are added just to
  1689.   "waste" time, but it's not all wasted since the terminal is usually
  1690.   kept busy doing something else while the nulls are being received.  It
  1691.   was much used in the past before flow control became popular.  To be
  1692.   efficient, just the right amount of nulls should be added and figuring
  1693.   out this is tedious.  It was often done by trial and error since
  1694.   terminal manuals are of little or no help.  If flow control doesn't
  1695.   work right or is not implemented, padding is one solution.  Some of
  1696.   the options to the stty command involve padding.
  1697.  
  1698.  
  1699.   10.3.  Overrunning a Serial Port
  1700.  
  1701.   One might wonder how overrunning is possible at a serial port since
  1702.   both the sending and receiving serial ports involved in a transmission
  1703.   of data bytes are set for the same speed (in bits/sec) such as 19,200.
  1704.   The reason is that although the receiving serial port electronics can
  1705.   handle the incoming flow rate, the hardware/software that fetches and
  1706.   processes the bytes from the serial port sometimes can't cope with the
  1707.   high flow rate.
  1708.  
  1709.   One cause of this is that the serial port's hardware buffer is quite
  1710.   small.  Older serial ports had a hardware buffer size of only one byte
  1711.   (inside the UART chip).  If that one received byte of data in the
  1712.   buffer is not removed (fetched) by CPU instructions before the next
  1713.   byte arrives, that byte is lost (the buffer is overrun).  Newer
  1714.   UART's, namely most 16550's, have 16-byte buffers (but may be set to
  1715.   emulate a one-byte buffer) and are less likely to overrun.  It may be
  1716.   set to issue an interrupt when the number of bytes in its buffer
  1717.   reaches 1, 4, 8, or 14 bytes.  It's the job of another computer chip
  1718.   (usually the main CPU chip for a computer) to take these incoming
  1719.   bytes out of this small hardware buffer and process them (as well as
  1720.   perform other tasks).
  1721.  
  1722.   When contents of this small hardware receive buffer reaches the
  1723.   specified limit (one byte for old UART'S) an interrupt is issued.
  1724.   Then the computer interrupts what it was doing and software checks to
  1725.   find out what happened.  It finally determines that it needs to fetch
  1726.   a byte (or more) from the serial port's buffer.  It takes these
  1727.   byte(s) and puts them into a larger buffer (also a serial port buffer)
  1728.   that the kernel maintains in main memory.  For the transmit buffer,
  1729.   the serial hardware issues an interrupt when the buffer is empty (or
  1730.   nearly so) to tell the CPU to put some more bytes into it to send out.
  1731.  
  1732.   Terminals also have serial ports and buffers similar to the computer.
  1733.   Since the flow rate of bytes to the terminal is usually much greater
  1734.   than the flow in the reverse direction from the keyboard to the host
  1735.   computer, it's the terminal that is most likely to suffer overrunning.
  1736.   Of course, if you're using a computer as a terminal (by emulation),
  1737.   then it is likewise subject to overrunning.
  1738.  
  1739.   Risky situations where overrunning is more likely are:  1. When
  1740.   another process has disabled interrupts (for a computer).  2. When the
  1741.   serial port buffer in main (or terminal) memory is about to overflow.
  1742.  
  1743.  
  1744.   10.4.  Stop Sending
  1745.  
  1746.   When its appears that the receiver is about to be overwhelmed by
  1747.   incoming bytes, it sends a signal to the sender to stop sending.  That
  1748.   is flow control and the flow control signals are always sent in a
  1749.   direction opposite to the flow of data which they control (although
  1750.   not in the same channel or wire).  This signal may either be a control
  1751.   character (^S = DC3 = Xoff) sent as an ordinary data byte on the data
  1752.   wire (in-band signalling), or a voltage transition from positive to
  1753.   negative in the dtr-to-cts (or other) signal wire (out-of-band
  1754.   signalling).  Using Xoff is called "software flow control" and using
  1755.   the voltage transition in a dedicated signal wire (inside the cable)
  1756.   is called hardware flow control.
  1757.  
  1758.  
  1759.   10.5.  Keyboard Lock
  1760.  
  1761.   When a terminal is told to stop sending, the terminal "locks" its
  1762.   keyboard.  This seldom happens but when it does, a message or light
  1763.   should inform you that the keyboard is locked.  Anything you type at a
  1764.   locked keyboard is ignored.  The term "locked" is also used when the
  1765.   computer is told to stop sending to a terminal.  The keyboard is not
  1766.   locked so that whatever you type goes to the computer.  Since the
  1767.   computer can't send anything back to you, characters you type don't
  1768.   display on the screen and it may seem like the keyboard is locked but
  1769.   it's not.
  1770.  
  1771.  
  1772.   10.6.  Resume Sending
  1773.  
  1774.   When the receiver has caught up with its processing and is ready to
  1775.   receive more data bytes it signals the sender.  For software flow
  1776.   control this signal is the control character ^Q = DC1 = Xon which is
  1777.   sent on the regular data line.  For hardware flow control the voltage
  1778.   in a signal line goes from negative (negated) to positive (asserted).
  1779.   If a terminal is told to resume sending the keyboard is then unlocked
  1780.   and ready to use.
  1781.  
  1782.  
  1783.   10.7.  Hardware Flow Control (RTS/CTS etc.)
  1784.  
  1785.   Some older terminals have no hardware flow control while others used a
  1786.   wide assortment of different pins on the serial port for this.  The
  1787.   most popular today seems to be the DTR pin (or both the DTR pin and
  1788.   the DSR pin).
  1789.  
  1790.  
  1791.   10.7.1.  RTS/CTS, DTR, and DTR/DSR Flow Control
  1792.  
  1793.   Linux PC's use RTS/CTS flow control, but DTR/DSR flow control (used by
  1794.   some terminals) behaves similarly.  DTR flow control (in one direction
  1795.   only and also used by some terminals) is only the DTR part of DTR/DSR
  1796.   flow control.
  1797.  
  1798.   RTS/CTS uses the pins RTS and CTS on the serial (EIA-232) connector.
  1799.   RTS means "Request To Send".  When this pin stays asserted (positive
  1800.   voltage) at the receiver it means: keep sending data to me.  If RTS is
  1801.   negated (voltage goes negative) it negates "Request To Send" which
  1802.   means: request not to send to me (stop sending).  When the receiver is
  1803.   ready for more input, it asserts RTS requesting the other side to
  1804.   resume sending.  For computers and terminals (both DTE type equipment)
  1805.   the RTS pin sends the flow control signal to the CTS pin (Clear To
  1806.   Send) on the other end of the cable.  That is, the RTS pin on one end
  1807.   of the cable is connected to the CTS pin at the other end.
  1808.  
  1809.   For a modem (DCE equipment) it's a different scheme since the modem's
  1810.   RTS pin receives the signal and its CTS pin sends.  While this may
  1811.   seem confusing, there are valid historical reasons for this which are
  1812.   too involved to discuss here.
  1813.  
  1814.   Terminals usually have either DTR or DTR/DSR flow control.  DTR flow
  1815.   control is the same as DTR/DSR flow control but it's only one-way and
  1816.   the DSR pin is not used.  For DTR/DSR flow control at a terminal, the
  1817.   DTR signal is like the signal sent from the RTS pin and the DSR pin is
  1818.   just like the CTS pin.
  1819.  
  1820.  
  1821.   10.7.2.  Connecting Up DTR or DTR/DSR Flow Control
  1822.  
  1823.   Some terminals use only DTR flow control.  This is only one-way flow
  1824.   control to keep the terminal from being overrun.  It doesn't protect
  1825.   the computer from someone typing too fast for the computer to handle
  1826.   it.  In a standard null modem cable the DTR pin at the terminal is
  1827.   connected to the DSR pin at the computer.  But Linux doesn't support
  1828.   DTR/DSR flow control (although drivers for some multiport boards may
  1829.   support DTR/DSR flow control.)  A way around this problem is to simply
  1830.   wire the DTR pin at the terminal to connect to the CTS pin at the
  1831.   computer and set RTS/CTS flow control (stty crtscts).  The fact that
  1832.   it's only one way will not affect anything so long as the host doesn't
  1833.   get overwhelmed by your typing speed and drop RTS in a vain attempt to
  1834.   lock your keyboard.  See ``Keyboard Lock''.  For DTR/DSR flow control
  1835.   (if your terminal supports this two-way flow control) you do the
  1836.   above.  But you also connect the DSR pin at the terminal to the RTS
  1837.   pin at the computer.  Then you are protected if you type too fast.
  1838.  
  1839.  
  1840.   10.7.3.  Old RTS/CTS Handshaking Is Different
  1841.  
  1842.   What is confusing is that there is the original use of RTS where it
  1843.   means about the opposite of the previous explanation above.  This
  1844.   original meaning is: I Request To Send to you.  This request was
  1845.   intended to be sent from a terminal (or computer) to a modem which, if
  1846.   it decided to grant the request, would send back an asserted CTS from
  1847.   its CTS pin to the CTS pin of the computer: You are Cleared To Send to
  1848.   me.  Note that in contrast to the modern RTS/CTS bi-directional flow
  1849.   control, this only protects the flow in one direction: from the
  1850.   computer (or terminal) to the modem.
  1851.  
  1852.   For older terminals, RTS may have this meaning and goes high when the
  1853.   terminal has data to send out.  The above use is a form of flow
  1854.   control since if the modem wants the computer to stop sending it drops
  1855.   CTS (connected to CTS at the computer) and the computer stops sending.
  1856.  
  1857.  
  1858.   10.7.4.  Reverse Channel
  1859.  
  1860.   Old hard-copy terminals may have a reverse channel pin (such as pin
  1861.   19) which behaves like the RTS pin in RTS/CTS flow control.  This pin
  1862.   but will also be negated if paper or ribbon runs out.  It's often
  1863.   feasible to connect this pin to the CTS pin of the host computer.
  1864.   There may be a dip switch to set the polarity of this signal.
  1865.  
  1866.  
  1867.   10.8.  Is Hardware Flow Control Done by Hardware ?
  1868.  
  1869.   Some think that hardware flow control is done by hardware but (unless
  1870.   you are using an intelligent serial card with several serial ports)
  1871.   it's actually done by your operating system software.  UART chips and
  1872.   associated hardware usually know nothing at all about hardware flow
  1873.   control.  When a hardware flow control signal is received, the signal
  1874.   wire flips polarity and the hardware gives an electrical interrupt
  1875.   signal to the CPU.  However, the hardware has no idea what this
  1876.   interrupt means.  The CPU stops what it was doing and jumps to a table
  1877.   in main memory that tells the CPU where to go to find a program which
  1878.   will find out what happened and what to do about it.
  1879.  
  1880.   It's this program (part of the serial device driver) that stops (or
  1881.   resumes) the sending.  This program checks the contents of registers
  1882.   in the UART chip to find out that a certain wire has changed polarity.
  1883.   Then the software realizes that a flow control signal has been
  1884.   received and goes about stopping (or starting) the flow.  However, if
  1885.   it's a stop signal that has been received, the flow stops almost
  1886.   instantly when the signal arrives because the interrupt has stopped
  1887.   whatever the CPU was doing (including the program that was sending the
  1888.   data and putting it in the serial ports hardware buffers for
  1889.   transmission).  However any bytes (up to 16) which were already in the
  1890.   serial port's hardware transmit buffer will still get transmitted ??
  1891.   Thus the hardware almost instantly stops the flow only because it's
  1892.   reaction to a hardware signal is to interrupt and stop everything the
  1893.   CPU was doing.
  1894.  
  1895.  
  1896.   10.9.  Obsolete ?? ETX/ACK or ENQ/ACK Flow Control
  1897.  
  1898.   This is also software flow control and requires a device driver that
  1899.   knows about it.  Bytes are sent in packets (via the async serial port)
  1900.   with each packet terminated by an ETX (End of Text) control character.
  1901.   When the terminal gets an ETX it waits till it is ready to receive the
  1902.   next packet and then returns an ACK (Acknowledge).  When the computer
  1903.   gets the ACK, it then send the next packet.  And so on.  This is not
  1904.   supported by Linux ??   Some HP terminals use the same scheme but use
  1905.   ENQ instead of ETX.
  1906.  
  1907.  
  1908.   11.  Physical Connection
  1909.  
  1910.   Multiport boards allow many terminals (or modems) to be connected to
  1911.   one PC computer.  A terminal may be connected to its host computer
  1912.   either by a direct cable connection, via a modem, or via a terminal
  1913.   server.
  1914.  
  1915.   11.1.  Multiport I/O Cards (Adapters)
  1916.  
  1917.   Additional serial cards may be purchased which have many serial ports
  1918.   on them called "multiport boards".  These boards are not covered in
  1919.   this HOWTO but there is quite a lot of coverage in the Serial-HOWTO
  1920.   One company which had (in 1998) below average prices is ByteRunner
  1921.   <http://www.byterunner.com/cgi-bin/goto.cgi?FILE=iocards.html>.
  1922.  
  1923.  
  1924.   11.2.  Direct Cable Connection.
  1925.  
  1926.   The simplest way to connect a terminal to a host computer is via a
  1927.   direct connection to a serial port on the computer.  Most PC's come
  1928.   with a couple of serial ports, but one is usually used by a mouse.
  1929.   For the EIA-232 port, you need a null modem cable that crosses over
  1930.   the transmit and receive wires.  If you want hardware flow control,
  1931.   you will probably use the DTR pin (or both the DTR and DSR pins).
  1932.  
  1933.   Make sure you have the right kind of cable.  A null modem cable bought
  1934.   at a computer store may do it (if it's long enough), but it probably
  1935.   will not work for hardware flow control.  Such a cable may be labeled
  1936.   as a serial printer cable.  See this to help determine if you should
  1937.   ``Buy or Make'' your own cable.  Make sure you are connecting to your
  1938.   PC's serial port at the male DB25 or the DB9, and not your parallel
  1939.   port (female DB25).
  1940.  
  1941.  
  1942.   11.2.1.  Null Modem Cable Pin-out (3, 4, or 5 conductor)
  1943.  
  1944.   If you only have DTR flow control (one-way) you may eliminate the RTS-
  1945.   to-DSR wire.  If you have no hardware flow control, then you may also
  1946.   eliminate the CTS-to-DTR wire.  Then if you have 2@ twisted pairs, you
  1947.   may then use 2 wires for signal ground per ``A Kludge using Twisted-
  1948.   Pair Cable''.  For a DB25 connector on your PC, you need:
  1949.  
  1950.  
  1951.  
  1952.     PC male DB25                          Terminal DB25
  1953.       TxD   Transmit Data       2 --> 3       RxD   Receive Data
  1954.       RxD   Receive Data        3 <-- 2       TxD   Transmit Data
  1955.       SG    Signal Ground       7 --- 7       SG    Signal Ground
  1956.       CTS   Clear To Send       5 <--20       DTR   Data Terminal Ready
  1957.       RTS   Request To Send     4 --> 6       DSR   Data Set Ready
  1958.  
  1959.  
  1960.   If you have a DB9 connector on your serial port, try the following:
  1961.  
  1962.           PC DB9                                 Terminal DB25
  1963.       RxD   Receive Data        2 <-- 2       TxD   Transmit Data
  1964.       TxD   Transmit Data       3 --> 3       RxD   Receive Data
  1965.       SG    Signal Ground       5 --- 7       SG    Signal Ground
  1966.       CTS   Clear To Send       8 <--20       DTR   Data Terminal Ready
  1967.       RTS   Request To Send     7 --> 6       DSR   Data Set Ready   **
  1968.  
  1969.  
  1970.  
  1971.   The above don't have modem control lines so be sure to give a "local"
  1972.   option to getty (which is equivalent to "stty clocal").  Also if you
  1973.   need hardware flow control it must be enabled at your computer (use a
  1974.   -h flag with agetty) ( equivalent to "stty crtscts" ).
  1975.  
  1976.  
  1977.   11.2.2.  Standard Null Modem Cable Pin-out (7 conductor)
  1978.  
  1979.   The following diagrams show full "standard" null modem cables.  One
  1980.   that you purchase is apt to be wired this way.  They will work for
  1981.   terminals using software (Xon/Xoff) flow control (or no flow control).
  1982.   However, they don't work for hardware flow control since most
  1983.   terminals support DTR or DTR/DSR flow control (handshaking) but Linux
  1984.   doesn't.
  1985.  
  1986.  
  1987.   PC male DB25                            Terminal DB25
  1988.   TxD   Transmit Data         2 --> 3     RxD   Receive Data
  1989.   RxD   Receive Data          3 <-- 2     TxD   Transmit Data
  1990.   RTS   Request To Send       4 --> 5     CTS   Clear To Send
  1991.   CTS   Clear To Send         5 <-- 4     RTS   Request To Send
  1992.   DSR   Data Set Ready        6
  1993.                               |
  1994.   DCD   Carrier Detect        8 <-- 20    DTR   Data Terminal Ready
  1995.   SG    Signal Ground         7 --- 7     SG    Signal Ground
  1996.                                     6     DSR   Data Set Ready
  1997.                                     |
  1998.   DTR   Data Terminal Ready  20 --> 8     DCD   Carrier Detect
  1999.  
  2000.  
  2001.  
  2002.   Alternatively, a full DB9-DB25 null modem cable (will not  work with
  2003.   terminal hardware handshaking; see above):
  2004.  
  2005.   PC DB9                                  Terminal DB25
  2006.   RxD   Receive Data          2 <-- 2     TxD   Transmit Data
  2007.   TxD   Transmit Data         3 --> 3     RxD   Receive Data
  2008.                                     6     DSR   Data Set Ready
  2009.                                     |
  2010.   DTR   Data Terminal Ready   4 --> 8     DCD   Carrier Detect
  2011.   GND   Signal Ground         5 --- 7     GND   Signal Ground
  2012.   DCD   Carrier Detect        1
  2013.                               |
  2014.   DSR   Data Set Ready        6 <-- 20    DTR   Data Terminal Ready
  2015.   RTS   Request To Send       7 --> 5     CTS   Clear To Send
  2016.   CTS   Clear To Send         8 <-- 4     RTS   Request To Send
  2017.   (RI   Ring Indicator        9 not needed)
  2018.  
  2019.  
  2020.   (Yes, the pins 2 and 3 really do have the opposite meanings in DB9
  2021.   connectors than in DB25 connectors!)
  2022.  
  2023.   Using the above 2 connections provide full modem control signals and
  2024.   seemingly allow one to set "stty -clocal".  Then one must turn on the
  2025.   terminal first (asserts DTR) before the port may be opened in a normal
  2026.   manner by getty, etc.  But there is likely to be trouble if you fail
  2027.   to turn on the terminal first (see ``Getty Respawning Too Rapidly'').
  2028.   For this reason one should use "stty clocal" which is the default
  2029.   (ignores modem control lines) and the additional wires in these cables
  2030.   then serve no useful purpose.
  2031.  
  2032.   In olden days when it may not have been this easy to ignore modem
  2033.   control signals etc, the following "trick" was done for cables that
  2034.   lacked conductors for modem control: on your computer side of the
  2035.   connector, connect RTS and CTS together, and also connect DSR, DCD and
  2036.   DTR together.  This way, when the computer needs a certain handshaking
  2037.   signal to proceed, it will get it (falsely) from itself.
  2038.  
  2039.  
  2040.   11.2.3.  Length Limitations
  2041.  
  2042.   A cable longer than a 50 feet or so may not work properly at high
  2043.   speed.  Much longer lengths sometimes work OK, especially if the speed
  2044.   is low and/or the cable is a special low-capacitance type and/or the
  2045.   electronics of the receiving end are extra sensitive.  It is claimed
  2046.   that under ideal conditions at 9600 baud, 1000 feet works OK.  One way
  2047.   to cover long distances is to install 2@ line drivers near each serial
  2048.   port so as to convert unbalanced to balanced (and conversely) and then
  2049.   use twisted pair cabling.  But line drivers are expensive.
  2050.  
  2051.  
  2052.   11.2.4.  Hardware Flow Control Cables
  2053.  
  2054.   If you expect to use hardware flow control (handshaking) you will
  2055.   likely need to make up your own cable (or order one made).  Of course,
  2056.   if the connecters on the ends of a used cable remove, you might rewire
  2057.   it.  See ``Installing DB Connectors''.  You will need to determine
  2058.   whether or not the terminal uses the DTR pin for this, and if not,
  2059.   what pin (or pins) it uses.  The set-up menus may give you a clue on
  2060.   this since there may be an option for enabling "DTR handshaking" (or
  2061.   flow control) which of course implies that it uses the DTR pin.  It
  2062.   may also use the DSR pin.  See ``Hardware Flow Control'' for a
  2063.   detailed explanation of it.  Older terminals may have no provision for
  2064.   hardware flow control.
  2065.  
  2066.  
  2067.   11.2.5.  Cable Tips
  2068.  
  2069.   The normal "straight thru" cable will not work unless you are using it
  2070.   as an extension cable in conjunction with either a null modem cable or
  2071.   a null modem adapter.  Make sure that the connectors on the cable ends
  2072.   will mate with the connectors on the hardware.  One may use telephone
  2073.   cable which is at least 4-conductor (and possibly twisted pair).
  2074.   Shielded, special low-capacitance cable computer cable is best.
  2075.  
  2076.  
  2077.   11.2.6.  A Kludge using Twisted-Pair Cable
  2078.  
  2079.   Although none of the EIA-232 signals are balanced for twisted pair one
  2080.   may attempt to use twisted-pair cable with it.  Use one pair for
  2081.   transmit and another for receive.  To do this connect signal ground to
  2082.   one wire in each of these 2 pair.  Only part of the signal ground
  2083.   current flows in the desired wire but it may help.  Due to the lower
  2084.   inductance of the twisted pair circuit (as compared to ground return
  2085.   current by some other path)  more return (ground) current will confine
  2086.   itself to the desired twisted pair than one would expect from only
  2087.   resistance calculations.  This is especially true at higher
  2088.   frequencies since inductive impedance increases with frequency.  The
  2089.   rectangular wave of the serial port contains high frequency harmonics.
  2090.  
  2091.  
  2092.   11.2.7.  Cable Grounding
  2093.  
  2094.   Pin 1 (of a DB25) should be chassis ground (also earth ground) but on
  2095.   cheap serial ports it may not even be connected to anything.  A 9-pin
  2096.   connector doesn't even have a chassis ground.  The signal ground is
  2097.   pin 7 and is usually grounded to chassis ground.  This means that part
  2098.   of the signal current will flow thru the ground wires of the building
  2099.   wiring (undesirable).  Cable shields are supposed to be only grounded
  2100.   at one end of the cable, but it may be better to ground both ends
  2101.   since it's better to have current in the shield than in the building
  2102.   wiring ??
  2103.  
  2104.  
  2105.   11.3.  Modem Connection
  2106.  
  2107.   Using a terminal-modem combination (without a computer) one may
  2108.   connect to BBS's.  Some BBS's (such a free-nets) permit Internet
  2109.   access via the text browser lynx which will work on text terminals.
  2110.   Thus with an old terminal and external modem, one may connect to the
  2111.   Internet.  If one connects to a host computer on which one has an
  2112.   account, then one may sometimes store ones work (or downloads) on the
  2113.   host computer.
  2114.  
  2115.  
  2116.   11.3.1.  Dialing Out From a Terminal
  2117.  
  2118.   Instead of connecting a terminal (or computer emulating a terminal)
  2119.   directly to a host computer using a cable it may be connected to the
  2120.   host via a telephone line (or dedicated private line) with a modem at
  2121.   each end of the line.  The terminal (or computer) will usually dial
  2122.   out on a phone line to a host computer.
  2123.  
  2124.   This dialing out is commonly done using a PC computer with a modem to
  2125.   call a BBS or ISP where the PC emulates a terminal once it's
  2126.   connected.  If you use a real terminal for this it's more difficult
  2127.   since the real terminal isn't very intelligent and doesn't give as
  2128.   much feedback to the user.  For dialing out, many terminals can store
  2129.   one or more telephone numbers as messages which may be "set-up" into
  2130.   them and are sent out to the modem by pressing certain function keys.
  2131.   Many modems can also store phone numbers.  The modem initiation
  2132.   sequence must precede the telephone number.  The host computer may use
  2133.   "mgetty" (a getty for use with modems) to log in someone who has
  2134.   dialed in to the host.
  2135.  
  2136.  
  2137.   11.3.2.  Terminal Gets Dialed Into
  2138.  
  2139.   It's common for a computer running Linux to get dialed into.  The
  2140.   caller gets a login prompt and logs in.  At first glance, it may seem
  2141.   strange how a dumb terminal (not connected to any computer) could
  2142.   accept an incoming call, but it can.  One possible reason for doing
  2143.   this is to save on phone bills where rates are not symmetric.  Your
  2144.   terminal needs to be set up for dial-in: Set the modem at your
  2145.   terminal for automatic answer (Register S0 set to 2 will answer on the
  2146.   2nd ring).  You turn on the terminal and modem before you expect a
  2147.   call and when the call comes in you get a login prompt and log in.
  2148.  
  2149.   The host computer that dials out to your terminal needs to do
  2150.   something quite unusual.  As soon as your modem answers, it needs to
  2151.   run login (getty).   A host may do this by running the Linux program
  2152.   "callback" sometimes named "cb".  Callback is for having computer A
  2153.   call computer B, and then B hangs up and calls A back.  This is what
  2154.   you want if you are using computer A to emulate a terminal.  For the
  2155.   case of a real terminal this may be too complex a task so the host may
  2156.   utilize only the "back" part of the callback program.  The setup file
  2157.   for callback must be properly configured at the host.  Callback makes
  2158.   the call to the terminal and then has mgetty run a login on that port.
  2159.   Mgetty by itself (as of early 1998) is only for dial-in calls but
  2160.   there is work being done to incorporate callback features into it and
  2161.   thus make it able to dial-out.  By the time you read this, mgetty may
  2162.   be all you need.
  2163.  
  2164.  
  2165.   11.4.  Terminal Server Connection
  2166.  
  2167.   A terminal server is something like an intelligent switch that can
  2168.   connect many terminals (or modems) to one or more computers.  It's not
  2169.   a mechanical switch so it may change the speeds and protocols of the
  2170.   streams of data that go thru it.  A number of companies make terminal
  2171.   servers: Xyplex, Cisco, 3Com, Computone, Livingston, etc.  There are
  2172.   many different types and capabilities.  Another HOWTO is needed to
  2173.   compare and describe them (including the possibility of creating your
  2174.   own terminal server with a Linux PC).  Most are used for modem
  2175.   connections rather than directly connected terminals.
  2176.  
  2177.   One use for them is to connect many terminals (or modems) to a high
  2178.   speed network which connects to host computers.  Of course the
  2179.   terminal server must have the computing power and software to run
  2180.   network protocols so it is in some ways like a computer.  The terminal
  2181.   server may interact with the user and ask what computer to connect to,
  2182.   etc. or it may connect without asking.  One may sometimes send jobs to
  2183.   a printer thru a terminal server.
  2184.  
  2185.   A PC today has enough computing power to act like a terminal server
  2186.   for text terminals except that each serial port should have its own
  2187.   hardware interrupt.  PC's only have a few spare interrupts for this
  2188.   purpose and since they are hard-wired you can't create more by
  2189.   software.  A solution is to use an advanced multiport serial card
  2190.   which has its own system of interrupts (or on lower cost models,
  2191.   shares one of the PC's interrupts between a number of ports).  See
  2192.   Serial-HOWTO for more info about such cards.  If such a PC runs Linux
  2193.   with getty running on many serial ports it might be thought of as a
  2194.   terminal server.  It is in effect a terminal server if it is linked to
  2195.   other PC's over a network and if its job is mainly to pass thru data
  2196.   and handle the serial port interrupts every 14 (or so) bytes.
  2197.   Software called "radius" is sometimes used.
  2198.  
  2199.   Today real terminal servers serve more than just terminals.  They also
  2200.   serve PC's which emulate terminals, and are sometimes connected to a
  2201.   bank of modems connected to phone lines.  Some even include built-in
  2202.   modems.  If a terminal (or PC emulating one) is connected directly to
  2203.   a modem, the modem at the other end of the line could be connected to
  2204.   a terminal server.  In some cases the terminal server by default
  2205.   expects the callers to use PPP packets, something that real text
  2206.   terminals don't generate.
  2207.  
  2208.  
  2209.   11.5.  Connector and Adapter Types
  2210.  
  2211.   A connector is more-or-less permanently attached to the end of a cable
  2212.   or to a hardware unit.  There are two basic types of connectors used
  2213.   in serial communications: 1. DBxx with pins (such as DB25) and 2.
  2214.   modular telephone-style connectors.
  2215.  
  2216.   An adapter looks about like a connector but it has two ends.  It is
  2217.   just like a cable that is so short that there is no cable part left at
  2218.   all --just different connectors on each end is all that remains.  The
  2219.   adapter just plugs in on each side.  It allows two incompatible
  2220.   connectors to mate with each other by going in between them.
  2221.   Sometimes the purpose of the adapter is to interchange wires.
  2222.   Obviously, one may use a special cable (perhaps homemade) as a
  2223.   substitute for an adapter.
  2224.  
  2225.  
  2226.   11.5.1.  Sex of Connector/Adapters
  2227.  
  2228.   Connectors (or one side of adapters) are either male or female.  The
  2229.   connectors that have pins are male and the ones that have sockets
  2230.   (sometimes also called pins) are female.  For modular connectors, the
  2231.   ones with exposed contacts are plugs while the ones with internal
  2232.   contacts (not easy to see) are jacks.  Plugs are male; jacks are
  2233.   female.
  2234.  
  2235.  
  2236.   11.5.2.  Types of Adapters
  2237.  
  2238.   There are three basic types of adapters: null modem, gender changers
  2239.   and port adapters.  Some adapters perform more than one of these three
  2240.   functions.
  2241.  
  2242.   ╖  null modem adapter: Reroutes wires.  Like a null modem cable.
  2243.  
  2244.  
  2245.   ╖  gender changer: Changes the sex of a cable end.  Two connectors of
  2246.      the same sex can now connect (mate) with each other.
  2247.  
  2248.   ╖  port adapter: Goes from one type of connector to another (DB9 to DB
  2249.      25, etc.)
  2250.  
  2251.  
  2252.  
  2253.   11.5.3.  DB Connectors
  2254.  
  2255.   (For how to install a DB connector on the ends of a cable see
  2256.   ``Installing DB Connectors''.)  These come in 9 or 25 pins.  The
  2257.   EIA-232 specs. call for 25 pins but since most of these pins are not
  2258.   used on ordinary serial ports, 9 pins is sufficient. See ``DB9-DB25''
  2259.   for the pin-out.  The pins are usually numbered if you look closely
  2260.   enough or use a magnifying glass.
  2261.  
  2262.  
  2263.   11.5.4.  RJ Modular Connectors
  2264.  
  2265.   These look like modern telephone connectors but are sometimes not
  2266.   compatible with telephone connectors.  See also ``Installing RJ
  2267.   Connectors''.  They may be 6, 8, or 10 conductor.  RJ11/14 is a 4-6
  2268.   conductor telephone plug.  A look-alike is a MMJ connector
  2269.   (6-conductor) used on later model VT (and other) terminals.   MMJ has
  2270.   an offset tab and is not compatible with RJ11/14.  However, some
  2271.   connectors have been made that are compatible with both MMJ or
  2272.   RJ11/14.  The MMJ pin-out is: 1-DTR, 2-TXD, 3-TXD GND, 4-RXD GND,
  2273.   5-RXD, 6-DSR.
  2274.  
  2275.   A null-modem cable with MMJ (or RJ11/14) connectors will connect: 1-6,
  2276.   2-5, and 3-4.  Note that such a cable support DTR/DSR flow control
  2277.   which is not supported (yet) by Linux.  Making up your own 6-conductor
  2278.   null-modem cable is very simple if you understand that the ordinary
  2279.   4-conductor telephone cable from the wall to your telephone, used in
  2280.   hundreds of millions of homes, is also a null-modem cable.  Find one
  2281.   and wire your cable the same way.
  2282.  
  2283.   If you lay such a cable (or your terminal null-modem cable) flat on
  2284.   the floor (with no twists) you will note that both plugs on the ends
  2285.   have their gold contacts facing up (or both facing down).  Although
  2286.   it's symmetrical, it is also null- modem if you think about it a bit.
  2287.   One may put a few such cables together with inline couplers and
  2288.   everything works OK because each inline coupler is also a null-modem
  2289.   adapter.  Two null-modem devices in series result in a straight-thru
  2290.   connection.
  2291.  
  2292.   RJ45 and RJ48 are 8-conductor (or 10-conductor for some computer
  2293.   applications) telephone plugs.  The 10-conductor ones are allegedly
  2294.   wider and will not mate with 8-conductor ones.  They are used for both
  2295.   flat telephone cable and round twisted pair cable.  The cable end of
  2296.   the connector may be different for round and flat cable and both RJ45
  2297.   and RJ48 may be 8 or 10 conductor so make sure you get the right one.
  2298.   RJ48 has an extra tab so that a RJ48 plug will not push into a RJ45
  2299.   jack (but a RJ45 plug will mate with a RJ48 jack).  They're used on
  2300.   some multiport serial cards and networks.  Heres the pin numbers for
  2301.   an 8-conductor:
  2302.  
  2303.  
  2304.  
  2305.  
  2306.  
  2307.  
  2308.  
  2309.  
  2310.  
  2311.     Plug                          Jack
  2312.     (Looking at the end           (Looking at the cavity
  2313.      end of a cable)               in a wall)
  2314.        .__________.                   .__________.
  2315.        | 87654321 |                   | 12345678 |
  2316.        |__.    .__|                   |__.    .__|
  2317.           |____|                         |____|
  2318.  
  2319.  
  2320.  
  2321.  
  2322.   11.6.  Making or Modifying a Cable
  2323.  
  2324.   11.6.1.  Buy or Make ?
  2325.  
  2326.   You may try to buy a short, null modem cable.  They are often labeled
  2327.   as serial printer cables (but serial printers are not very popular
  2328.   today and neither are the cables).  Unfortunately, they will probably
  2329.   not work for hardware flow control.  Make sure the connectors on the
  2330.   cable ends will fit the connectors on your computer and terminal.
  2331.  
  2332.   But if you need longer cables to connect up terminals or need hardware
  2333.   flow control, how do you get the right cables?  The right ready-made
  2334.   cables may be difficult to find (you might find them by searching the
  2335.   Internet), especially if you want to use a minimum (say 4) of
  2336.   conductors.  One option is to get them custom made, which is likely to
  2337.   be fairly expensive although you might find someone to make them at
  2338.   prices not too much higher than ready-made cable (I did).  Another
  2339.   alternative is to make your own.  This may require special tools.  If
  2340.   you can find it, used cable can be a real bargain but you will
  2341.   probably need to rewire the connectors.  Most connectors that come
  2342.   with short cables are permanently molded to the cable and can't be
  2343.   rewired but most custom-made and homemade cables have connectors that
  2344.   can be rewired.  One advantage of making your own cable is that the
  2345.   skills you learn will come in handy if a cable breaks (or goes bad) or
  2346.   if you need to make up another cable in a hurry.
  2347.  
  2348.  
  2349.   11.6.2.  Pin Numbers
  2350.  
  2351.   The numbers of the pins should be engraved in the plastic of the
  2352.   connector.  Each pin should have a number next to it.  You may need a
  2353.   magnifying glass to read them.
  2354.  
  2355.  
  2356.   11.6.3.  Installing DB Connectors on Cable Ends
  2357.  
  2358.   See ``DB Connectors'' for a brief description of them.  Unfortunately,
  2359.   most cables one purchases today have molded connectors on each end and
  2360.   can't be modified.  Others have connectors which unscrew and can be
  2361.   rewired.  If you are making up cable or modifying an existing one then
  2362.   you need to know about pins.  There are two types: soldered and
  2363.   crimped.
  2364.  
  2365.   The crimped pins require a special crimping tool and also need an
  2366.   "insertion/extraction" tool.  But once you have these tools, making up
  2367.   and modifying cable may be faster than soldering.  If you are
  2368.   connecting two wires to one pin (also needed if you want to jumper one
  2369.   connected pin to another pin) then soldering is faster (for these
  2370.   pins).  This is because the crimped pins can only take one wire each
  2371.   while the soldered ones can accept more than one wire per pin.
  2372.  
  2373.   To insert crimped pins just push them in by hand or with the tool.
  2374.   Removing a pin with the tool is a little tricky.  You must put the
  2375.   tool tip around a wire at the the back of a pin and insert it as far
  2376.   as it will go into the hole (about 1 1/2 cm.).  One tool tip requires
  2377.   spreading a little to get it over the wire but for this tip the pin
  2378.   should be easier to remove.  Then pull on both the tool and the wire
  2379.   with a gentle pull.  If it doesn't come out, the tool was likely not
  2380.   inserted correctly so either push it in more or twist it to a
  2381.   different position.   Perhaps you should have used another tip that
  2382.   goes more around the pin.  Using this tool, one may readily convert a
  2383.   straight-thru cable to a null-modem cable, etc.
  2384.  
  2385.   There can be problems using the "insertion/extraction" tool.  If the
  2386.   tools will not insert on the back of the pin, it could be that the pin
  2387.   was not neatly crimped to the wire and is sort of square where it
  2388.   should be round, etc.  If a pin starts to come out but will not pull
  2389.   out all the way, the pin may be bent.  Look at it under a magnifying
  2390.   glass.  Straightening a pin with needle-nose pliers may damage the
  2391.   gold plating.  Sometimes a stuck pin may be pushed out with a thick
  2392.   screwdriver blade tip (or the like) but if you push too hard you may
  2393.   gouge the plastic hole or bend the pin:.
  2394.  
  2395.   Don't try soldering unless you know what you're doing or have read
  2396.   about how to do it.
  2397.  
  2398.  
  2399.   11.6.4.  Installing RJ Connectors
  2400.  
  2401.   These are telephone modular connecters one type of which is used for
  2402.   most ordinary telephones.  But there are many different types (see
  2403.   ``RJ Modular Connectors'').
  2404.  
  2405.   These are not easy to reuse.  You might be able to pull the wires out,
  2406.   push in something wedged that would lift up the gold-colored contacts
  2407.   and reuse the connector.  There are special crimping tools used to
  2408.   install them; a different tool for each type.
  2409.  
  2410.   If you don't have a crimping tool, installation is still possible (but
  2411.   difficult) using a small screwdriver (and possibly a hammer).  Push in
  2412.   the cable wires and then push each gold-colored contact down hard with
  2413.   a small screwdriver that will just fit between the insulating ridges
  2414.   between the contacts.  You may damage it if you fail to use a
  2415.   screwdriver with a head almost the same thickness as the contacts or
  2416.   if the screwdriver slips off the contact as you are pushing it down.
  2417.   You may also use a small hammer to pound on the screwdriver (push
  2418.   first by hand).
  2419.  
  2420.   Be sure to not hurt the "remove lever" on the connecter when you push
  2421.   in the contacts.  Don't just set it down on a table and push in the
  2422.   contacts.  Instead, put a shim (about 1 mm thick) that fits snugly in
  2423.   the crevice between the lever and the body.  For such a shim you may
  2424.   use thick cardboard, several calling cards, or wood.  Since the bottom
  2425.   of the connector (that you will put on the table) isn't level (due to
  2426.   the "remove lever), make sure that the table top has something a
  2427.   little soft on it (like a sheet of cardboard) to help support the non-
  2428.   level connector.  Even better would be to put another 1mm shim under
  2429.   the first 6mm of the connector, supporting it just under where you see
  2430.   the contacts.  A soft tabletop wouldn't hurt either.  Another method
  2431.   (I've never done this) is to hold the connector in a vice but be
  2432.   careful not to break the connector.
  2433.  
  2434.   As compared to using a crimping tool, installing it per above takes a
  2435.   lot longer and is much more prone to errors and failure but it's
  2436.   sometimes more expedient and a lot cheaper than buying a special tool
  2437.   if you only have one or two connectors to install.
  2438.  
  2439.  
  2440.  
  2441.  
  2442.  
  2443.   12.  Set-Up (Configure) in General
  2444.  
  2445.   12.1.  Intro to Set-Up
  2446.  
  2447.   Configuring (Set-Up) involves both storing a configuration in the non-
  2448.   volatile memory of the terminal, and putting commands in start-up
  2449.   files (on you hard disk) that will run each time the computer is
  2450.   powered on (or possibly only when the run-level changes).  This
  2451.   section gives an overview of configuring and covers the configuring of
  2452.   the essential communication options for both the terminal and the
  2453.   computer.  The next two major sections cover in detail the
  2454.   configuration of the terminal (see ``Terminal Set-Up'' and the
  2455.   computer (see ``Computer Set-Up (Configure) Details''.
  2456.  
  2457.  
  2458.   12.2.  Terminal Set-Up (Configure) Overview
  2459.  
  2460.   When a terminal is installed it's necessary to configure the physical
  2461.   terminal by saving (in its non-volatile memory which is not lost when
  2462.   the terminal is powered off) the characteristics it will have when it
  2463.   is powered on.  You might be lucky and have a terminal that has
  2464.   already been set-up correctly for your installation so that little or
  2465.   no terminal configuration is required.
  2466.  
  2467.   There are two basic ways of configuring a terminal.  One is to sit at
  2468.   the terminal and go thru a series of set-up menus.  Another is to send
  2469.   escape sequences to it from the host computer.  Before you can send
  2470.   anything to the terminal (such as the above escape sequences), its
  2471.   ``Communication Interface'') options such as the baud rate must be set
  2472.   up to match those of the computer.  This can only be done by sitting
  2473.   at the terminal since the communications must be set up right before
  2474.   the computer and the terminal can "talk" to each other.  See
  2475.   ``Terminal Set-Up''.
  2476.  
  2477.  
  2478.   12.3.  Computer Set-Up (Configure) Overview
  2479.  
  2480.   Besides possibly sending escape sequences from the computer to
  2481.   configure the terminal, there is the configuring of the computer
  2482.   itself to handle the terminal.  If your lucky, all you need to do is
  2483.   to put a "getty" command in the /etc/inittab file so that a "login:"
  2484.   prompt will be sent to the terminal when the computer starts up.  See
  2485.   ``Getty'' for details.
  2486.  
  2487.   The computer communicates with the terminal using the device driver
  2488.   software (part of the kernel).  The serial device driver has a default
  2489.   configuration and is also partly (sometimes fully) configured by the
  2490.   getty program before running "login" at each terminal.  However,
  2491.   additional configuration is sometimes needed using programs named
  2492.   "stty" and "setserial".  These programs (if needed) must be run each
  2493.   time the computer starts up since this configuration is lost each time
  2494.   the computer powers down.  See ``Computer Set-Up (Configure)
  2495.   Details''.
  2496.  
  2497.  
  2498.   12.4.  Many Options
  2499.  
  2500.   There are a great many configuration options for you to choose from.
  2501.   The communication options must be set right or the terminal will not
  2502.   work at all.  Other options may be set wrong, but will cause no
  2503.   problem since the features they set may not be used.  For example, if
  2504.   you don't have a printer connected to the terminal it makes no
  2505.   difference how the printer configuration parameters are set inside the
  2506.   terminal.  This last statement is not 100% correct.  Suppose that you
  2507.   have no printer but the compute (by mistake) sends the terminal a
  2508.   command to redirect all characters (data) from the computer to the
  2509.   printer only.  Then nothing will display on the screen and your
  2510.   terminal will be dead.  Some terminals have a configuration option to
  2511.   inform the terminal that no printer is attached.  In this case the
  2512.   terminal will ignore any command to redirect output to the "printer"
  2513.   and the above problem will never happen.  However, this doesn't help
  2514.   much since there are many other erroneous commands that can be sent to
  2515.   your terminal that will really foul things up.  This is likely to
  2516.   happen if you send the terminal a binary file by accident.
  2517.  
  2518.   In some cases a wrong setting will not cause any problem until you
  2519.   happen to run a rare application program that expects the terminal to
  2520.   be set a certain way.  Other options govern only the appearance of the
  2521.   display and the terminal will work fine if they are set wrong but may
  2522.   not be as pleasant to look at.
  2523.  
  2524.   Some options concern only the terminal and do not need to be set at
  2525.   the computer.  For example: Do you want black letters on a light
  2526.   background?  This is easier on the eyes than a black background.
  2527.   Should a key repeat when held down?  Should the screen wrap when a
  2528.   line runs off the right end of the screen?  Should keys click?
  2529.  
  2530.  
  2531.   12.5.  Communication Interface Options
  2532.  
  2533.   Some of these communication settings (options) are for both the
  2534.   terminal and the computer and they must be set exactly the same for
  2535.   both: speed, parity, bits/character, and flow control.  Other
  2536.   communication options are only set at the terminal (and only a couple
  2537.   of these are essential to establish communications).  Still others
  2538.   such as the address and interrupt (IRQ) of the physical port ttyS2 are
  2539.   set only at the computer using the "setserial" command.  Until all of
  2540.   the above essential options are compatibly set up there can be no
  2541.   satisfactory serial communication (and likely no communication at all)
  2542.   between the terminal and the computer.  For the terminal, one must set
  2543.   these options manually by menus at each terminal (or by using some
  2544.   sort of special cartridge at each terminal).  The host computer is
  2545.   configured by running commands each time the computer is powered up
  2546.   (or when people log in).  Sometimes the getty program (found in the
  2547.   /etc/inittab file) which starts the login process will take care of
  2548.   this for the computer.  See ``Getty (in /etc/inittab)''
  2549.  
  2550.   The settings for both the computer and the terminal are:
  2551.  
  2552.   ╖  ``Speed (bits/second) ''
  2553.  
  2554.   ╖  ``Parity ''
  2555.  
  2556.   ╖  ``Bits per Character ''
  2557.  
  2558.   ╖  ``Flow Control ''
  2559.  
  2560.   Some essential settings for the terminal alone are:
  2561.  
  2562.   ╖  ``Port Select''
  2563.  
  2564.   ╖  Set communication to full duplex (=FDX on Wyse terminals)
  2565.  
  2566.  
  2567.   If the  ``Getty (in /etc/inittab)'' program can't set up the computer
  2568.   side the way you want, then you may need to use one (or both) of the
  2569.   ``Stty & Setserial'' commands.
  2570.  
  2571.  
  2572.  
  2573.  
  2574.  
  2575.   12.5.1.  Speed
  2576.  
  2577.   These must be set the same on both the terminal and the computer.  The
  2578.   speed is the bits/sec (bps or baud rate).  Use the highest speed that
  2579.   works without errors.  Enabling flow control may make higher speeds
  2580.   possible.  There may be two speeds to set at the terminal: Transmit
  2581.   and Receive, sometimes abbreviated T and R.  Usually they are both set
  2582.   the same since stty in Linux doesn't seem to have the option yet of
  2583.   setting them differently.  (There is an option to do this with the
  2584.   "stty" command but it seems to actually set them both the same.)
  2585.   Common speeds are 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, ...
  2586.   The slower speeds (like 600) are for printers and hard-copy terminals.
  2587.  
  2588.  
  2589.   12.5.2.  Parity & Should You Use It ?
  2590.  
  2591.   For a definition see ``Parity Explained''.  Parity-disabled is often
  2592.   the default.  To enable parity, you must both enable it and then
  2593.   select either even or odd parity.  It probably makes no difference if
  2594.   it's odd or even.  For terminals there are sometimes settings for both
  2595.   transmit and receive parity.  You should set both of these the same
  2596.   since stty at the computer doesn't permit setting them differently.
  2597.  
  2598.   Should you use parity  at all?  Parity, while not really necessary, is
  2599.   nice to have.  If you don't have parity, then you may get an incorrect
  2600.   letter here and there and wind up trying to correct spelling errors
  2601.   that don't really exist.  However parity comes at a cost.  First, it's
  2602.   a little more complicated to set up since the default is usually no
  2603.   parity.  Secondly, parity will slow down the speed with which bytes
  2604.   travel over the serial cable since there will be one more bit per
  2605.   byte.  This may or may not slow down the effective speed.
  2606.  
  2607.   For example, a hard-copy terminal is usually limited by the mechanics
  2608.   of the printing process.  Increasing the bytes/sec when the computer
  2609.   (its UART chip) is transmitting only results in more flow-control
  2610.   "halt" signals to allow the mechanical printing to catch up.  Due to
  2611.   more flow-control waits the effective speed is no better without
  2612.   parity than with it.  The situation is similar for some terminals:
  2613.   After you implement parity there may be fewer flow-control waits per
  2614.   unit time resulting in more bits/sec (average).  However, due to the
  2615.   added parity bits the bytes/sec (average) stays the same.
  2616.  
  2617.   One option is to install terminals with no parity.  Then if parity
  2618.   errors are noticed, it can be implemented later.  To spot possible
  2619.   errors with no parity, look for any spelling errors you don't think
  2620.   you made.  If you spot such an error, refresh the screen (retransmit
  2621.   from the computer).  If the error goes away, then it's likely a parity
  2622.   error.  If too many such errors happen (such as more than one every
  2623.   few hundred screens) then corrective action is needed such as:  Enable
  2624.   parity and/or reduce speed, and/or use a shorter/better cable.
  2625.   Enabling parity will not reduce the number of errors but it will tell
  2626.   you when an error has happened.
  2627.  
  2628.   Just the opposite policy is to initially enable parity.  Then if no
  2629.   parity errors (error symbols on the CRT) are ever seen (over a
  2630.   reasonable period of time, say a month or two) it may be safely
  2631.   disabled.
  2632.  
  2633.  
  2634.   12.5.3.  Bits/Character
  2635.  
  2636.   This is the character size (the number of data bits per character
  2637.   excluding any parity bit).  For ASCII it's 7,  but it's 8 for ISO
  2638.   character sets.  If you are only going to use ASCII characters, then
  2639.   select 7-bits since it's faster to transmit 7 bits than 8.  Some older
  2640.   terminals will only display 7-bit characters.
  2641.   12.5.4.  Which Flow Control (Handshaking) ?
  2642.  
  2643.   The choice is between "hardware" (for example rts/cts or dtr/cts) or
  2644.   "software" (Xon/Xoff) flow control.  (The Adds terminal menu
  2645.   incorrectly use "Xon/Xoff" to mean any kind of flow control.)  While
  2646.   hardware flow control may be faster (if the one or two extra wires for
  2647.   it are available in the cable and if the terminal supports it) in most
  2648.   cases Xon/Xoff should work OK.  Some people report that they solved
  2649.   disturbing problems (see below) by converting to hardware flow control
  2650.   but software flow control has worked fine at other installations (and
  2651.   for me personally).
  2652.  
  2653.   If you use software (Xon/Xoff) flow control and have users who don't
  2654.   know about it, then they may accidentally send an Xoff to the host and
  2655.   lock up their terminal.  While it's locked, they may type frantically
  2656.   in a vain attempt to unlock it.  Then when Xon is finally sent to
  2657.   restore communication, all that was typed in haste gets executed,
  2658.   perhaps with unexpected results.  They can't do this with hardware
  2659.   flow control.  See ``Flow Control'' for an explanation of flow
  2660.   control.
  2661.  
  2662.  
  2663.   12.5.5.  Port Select
  2664.  
  2665.   Since most terminals have two or more connectors on the back, it is
  2666.   usually possible to assign one of these connecters to connect to the
  2667.   host computer and assign another connector to be the printer port.
  2668.   The connector may have a name next to it (inspect it) and this name
  2669.   (such as Aux, Serial 2, or Modem) may be assigned to either be the
  2670.   main host connection or the printer connection (or the like).
  2671.  
  2672.  
  2673.   12.6.  Quick Attempt
  2674.  
  2675.   While all the above may seem overly complex, to get a terminal working
  2676.   is often fairly simple.  The ``Quick Install'' section describes a
  2677.   simple way to try to do this.  But if that doesn't work or if you want
  2678.   to make the display look better and perform better, more reading will
  2679.   be needed.
  2680.  
  2681.  
  2682.   13.  Terminal Set-Up (Configure) Details
  2683.  
  2684.   Except for the next subsection on sending escape sequences to the
  2685.   terminal, this section mainly presents the details of setting up the
  2686.   terminal manually by sitting at the terminal and going thru menus.  If
  2687.   you haven't already done so, you should read ``Terminal Set-Up
  2688.   (Configure) Overview''.  It's best if you have a terminal manual, but
  2689.   even it you don't there is information here on many of the options
  2690.   which you might possibly need to set.
  2691.  
  2692.   The communication parameters such as its baud rate must always be set
  2693.   up at the terminal since if this is not done there can be no
  2694.   communication with the terminal.   Once communication is established
  2695.   you have two choices for doing the rest the terminal configuration.
  2696.   You may continue to configure manually at the terminal and save the
  2697.   results in the terminal's non-volatile memory or you may do this by
  2698.   sending escape sequences to the terminal from the computer each time
  2699.   the terminal is powered on (or the like).
  2700.  
  2701.   If you know how to set up and save a good configuration inside the
  2702.   terminal it may be the best way.  If you don't, you might want to just
  2703.   send the init string from terminfo to your terminal each time you use
  2704.   the terminal.  Perhaps doing nothing will still give you a usable
  2705.   terminal.  You (or an application program) can always change things by
  2706.   sending certain escape sequences to the terminal.
  2707.   13.1.  Send Escape Sequences to the Terminal
  2708.  
  2709.   Once the communication interface is established, the rest of the
  2710.   configuration of the terminals may sometimes be done by sending escape
  2711.   sequences to the terminals from the computer.  If you have a large
  2712.   number of terminals, it may be worthwhile to write (or locate) a shell
  2713.   script to automatically do this.  There may (or may not) be a command
  2714.   you can send to a terminal to tell it to save its current set-up in
  2715.   its non-volatile memory so that it will be present the next time the
  2716.   terminal is powered on.
  2717.  
  2718.   There is an simple way to send these escape sequences and a complex
  2719.   way.  For the simple way you never look up escape sequences but issue
  2720.   commands that automatically find an appropriate escape sequence in the
  2721.   terminfo database and send that.  Unfortunately, not all the escape
  2722.   sequences which you might want to send are always in the terminfo
  2723.   database.  Thus the more complex (but possibly better) way is to
  2724.   directly send escape sequences.
  2725.  
  2726.   For this complex method you'll need an advanced manual.  Old terminal
  2727.   manuals once included a detailed list of escape sequences but newer
  2728.   ones usually don't.  To find them you may need to purchase another
  2729.   manual called the "programmers manual" (or the like) which is not
  2730.   supplied with the terminal.  A ``Esc Sequence List'' for some
  2731.   terminals is on the Internet but it's terse and likely incomplete.
  2732.  
  2733.   Even without a manual or the like, you may still send commands to
  2734.   configure the terminal by using the programs "tput" and "setterm".
  2735.   See ``Changing the Terminal Settings''.  You could just send the
  2736.   terminal an init string from the terminfo entry if the init string
  2737.   sets up the terminal the way want it.  See ``Init String''.  Unless
  2738.   you plan to have these sequences sent from the computer to the
  2739.   terminal each time the terminal is powered on, you must somehow save
  2740.   the settings in the non-volatile memory of the terminal.
  2741.  
  2742.  
  2743.   13.2.  Older Terminals Set-Up
  2744.  
  2745.   On older terminals look at the keyboard for labels just above the top
  2746.   row of numeric keys.  If they exist, these labels may be what these
  2747.   keys do in set-up mode.  Some older terminals may have only one "set-
  2748.   up" menu.  Still older ones have physical switches.  In some cases not
  2749.   all the switches are well labeled but they may be well concealed.  Of
  2750.   course, if you set something with a switch, it's "saved" and there is
  2751.   no need to save the setting in non-volatile memory.
  2752.  
  2753.  
  2754.   13.3.  Getting Into Set-Up (Configuration) Mode
  2755.  
  2756.   To select options (configure) at the terminal, you must first enter
  2757.   "set-up" mode and then select options (i.e. configure) using menus
  2758.   stored inside the terminal and displayed on the screen.  To do this,
  2759.   the terminal does not even need to be connected to a computer.  How to
  2760.   get into set-up mode is covered in the terminal's manual, but here's
  2761.   some hints:
  2762.  
  2763.   If there's a "set-up" key try pressing it.  Also try it shifted.
  2764.  
  2765.   ╖  Wyse: First try the shifted "Select" key; then substitute Ctrl for
  2766.      shifted in all of the above.
  2767.  
  2768.   ╖  VT, Dorio: F3 may be the set-up key.  On VT420 and later models
  2769.      this key may have been programmed to do something else so turn off
  2770.      the power.  When you turn on the power again, hit the F3 key as
  2771.      soon as you get an initial screen message.
  2772.  
  2773.   ╖  IBM: 3151: Ctrl-ScrollLock.  3153: Ctrl-Minus_on_Keypad (or like
  2774.      3151)
  2775.  
  2776.   To move around in the set-up menus, try the arrow keys.  Use Return,
  2777.   Space, or a special key ("toggle" on old terminals) to select.  To
  2778.   exit set-up mode select exit from a menu (or on some older terminals
  2779.   press the set-up key again).
  2780.  
  2781.  
  2782.   13.4.  Communication Options
  2783.  
  2784.   For the terminal to work at all, speed, parity, bits/character, and
  2785.   communication mode must be set correctly.  Incorrect flow control may
  2786.   cause loss and/or corruption of data seen on the screen. The essential
  2787.   communication options were dealt with (for both the terminal and
  2788.   computer) in another section:  See ``Communication Interface''.  The
  2789.   following list provides some links to that section, as well as some
  2790.   additional communication options set only at the terminal.
  2791.  
  2792.  
  2793.   ╖  ``Speed (bits/second) '' (baud rate): 9600, 19200, etc.
  2794.  
  2795.   ╖  ``Parity:'' none, even, odd, mark, space
  2796.  
  2797.   ╖  ``Bits per Character '' {Data}: 7 or 8
  2798.  
  2799.   ╖  ``Flow Control:'' or Handshake {Hndshk}: none, Xon-Xoff, or
  2800.      hardware (DTR, etc).
  2801.  
  2802.   ╖  Receiver Handshake {Rcv Hndshk} protects data being Received by the
  2803.      terminal by transmitting flow-control signals to the host.
  2804.  
  2805.   ╖  Transmitter Handshake {Xmt Hndshk} is protection of data being
  2806.      Transmitted by the terminal.   The terminal receives flow-control
  2807.      signals (and locks/unlocks the keyboard).  Includes "Incoming
  2808.      Xon/Xoff".
  2809.  
  2810.   ╖  number of stop bits: 1 or 2. See ``Voltage Sequence for a Byte''
  2811.  
  2812.   ╖  Flow control level {Rcv Hndshk Level} {{Xoff at ...}}: Flow control
  2813.      will send "stop" when this number of bytes in the terminal's buffer
  2814.      is exceeded.
  2815.  
  2816.   ╖  ``Communication Mode'' {Comm}: ``Full Duplex {FDX}, Half Duplex
  2817.      {HDX}'' {{Local Echo}}, ``Local Mode'' {{Online/Local}}
  2818.  
  2819.   ╖  Transmit Rate (Speed) Limit {Xmt Lim}: limits the transmit rate to
  2820.      the specified cps (chars/sec) even though the baud rate setting may
  2821.      be at a higher speed.
  2822.  
  2823.   ╖  Function-Key Rate Limit: as above but for function key messages.
  2824.  
  2825.   ╖  ``Port Select'': Which physical connecter is for the host {Host
  2826.      Port} ?
  2827.  
  2828.  
  2829.   13.5.  Saving the Set-up
  2830.  
  2831.   Your set-up must be saved in the non-volatile memory of the terminal
  2832.   so that it will be effective the next time you turn on the terminal.
  2833.   If you fail to save it, then the new settings will be lost when you
  2834.   turn off the terminal.  Before you go to the trouble of setting up a
  2835.   terminal, make sure that you know how to save the settings.  For
  2836.   modern terminals the save command is done via a menu.  In some older
  2837.   terminals, only the manual tells how to save.  For many of these you
  2838.   press Ctrl-S to save.
  2839.   13.6.  Set-Up Options/Parameters
  2840.  
  2841.   See the Teemworld's Set-Up <http://www.pericom-
  2842.   usa.com/twdocs/doc/twusec7.htm> for a description of many of these
  2843.   parameter as used in terminal emulation.  Emulation is often a little
  2844.   different than an actual terminal.
  2845.  
  2846.   What follows in this section describes some of the options which are
  2847.   available in the set-up menus of many terminals.  Options are also
  2848.   called parameters or features.  Many options may be called "modes".
  2849.   Setting options is often called "configuring".  Many of these options
  2850.   may also be set by sending certain escape sequences to the terminal.
  2851.   Different models and brands of terminals have various options and the
  2852.   same option may be called by different names (not all of which are
  2853.   given here) Terse names used by Wyse are enclosed in {...}.  Names
  2854.   used mostly for VT terminals are enclosed in {{...}}.
  2855.  
  2856.  
  2857.   13.7.  Emulation {Personality} {{Terminal Modes}}
  2858.  
  2859.   Most modern terminals can emulate several other terminals.  The
  2860.   terminal can likely do more if it is set to emulate itself (actually
  2861.   no emulation) {native personality}.   Sometimes there are 2 different
  2862.   emulations for the same model of terminal.  For example VT220-7
  2863.   emulates a VT200 with 7-bits/byte while VT220-8 emulates a VT220 with
  2864.   8-bits/byte (256 possible characters).
  2865.  
  2866.   Older models of terminals usually have fewer features than newer
  2867.   models.  Suppose one wanted to emulate an old terminal but also wanted
  2868.   some of the advanced capabilities of the later model terminal they are
  2869.   sitting at.  This is sometimes possible (to some degree).  This
  2870.   feature is sometimes called {Enhance} (or Enhanced ??).
  2871.  
  2872.  
  2873.   13.8.  Display Options
  2874.  
  2875.   13.8.1.  Character Cell Size {Char Cell}
  2876.  
  2877.   This is the size of the cell in which a character fits.  It is
  2878.   measured in pixels (=tiny dots).  The more dots, the better the
  2879.   resolution.   10x16 is 10 dots wide by 16 dots high (16 rows and 10
  2880.   columns).  Note the notation is inverted as compared to the notation
  2881.   for matrix dimensions which gives rows (height) first..  Also, the
  2882.   character cell includes rows and columns of pixels allocated for the
  2883.   space between adjacent characters so the cell size which defines the
  2884.   boundaries of an actual character may be smaller.
  2885.  
  2886.  
  2887.   13.8.2.  Columns/Lines
  2888.  
  2889.   Usually 80 columns and 24 or 25 lines.  This means that there may be
  2890.   up to 80 characters in a row (line) on the screen.   Many terminals
  2891.   have a 132 column option but unless you have a large screen, the tiny
  2892.   characters may be hard to read. {{Set 132 column mode}}
  2893.  
  2894.  
  2895.   13.8.3.  Cursor
  2896.  
  2897.   The cursor may be set to appear as a rectangle (= block) {Blk}.  Other
  2898.   options are underline {Line} or blinking.  I prefer non-blinking
  2899.   {Steady} block since it's big enough to find quickly but there is no
  2900.   distractive blinking.  If you set it invisible (an option on some
  2901.   terminals) it will disappear but new letters will appear on the screen
  2902.   as you type at the invisible cursor.
  2903.  
  2904.  
  2905.   13.8.4.  Display Attributes (Magic Cookies)
  2906.  
  2907.   ``Display Attributes'' may either be magic cookies or be attribute
  2908.   bytes assigned to each character.  For magic cookies, there is a limit
  2909.   to their extent: Are they in effect to the end of the line or to the
  2910.   end of the page?  It's best to use attribute bytes (which could
  2911.   actually be half-bytes = nibbles).
  2912.  
  2913.  
  2914.   13.8.5.  Display Control Characters {Monitor}
  2915.  
  2916.   May be called various names such as "Display Controls".  When off
  2917.   (normal) it's "Interpret Controls".  When set on, you see the escape
  2918.   sequences from the host (which you normally never see on the screen).
  2919.   So that these sequences may be viewed in sequence on a line, they are
  2920.   not acted upon (interpreted) by the terminal.  Except that a CR LF
  2921.   sequence creates a new line.  See ``Control Codes''.
  2922.  
  2923.  
  2924.   13.8.6.  Double Width/Height
  2925.  
  2926.   Some terminals can have their characters double width and/or double
  2927.   height.  This feature is seldom needed.  When changing a line to
  2928.   double width (DW) the right half (RH) is pushed off the screen and
  2929.   there is the question of whether or not to delete (erase) it.
  2930.   "Preserve" means to keep the RH of DW lines.  When in double height
  2931.   mode, it may be necessary to send each such line twice (the 2nd time
  2932.   down one row) in order to get a double-height line on the screen.
  2933.  
  2934.  
  2935.   13.8.7.  Reverse Video {Display} (Background Light/Dark)
  2936.  
  2937.   Normal video is light (white, green, amber) letters (foreground) on a
  2938.   dark (black) background.  Reverse video {Display Light} is the
  2939.   opposite: black text on a light background.  This is easier on the
  2940.   eyes (unless the room is dark).
  2941.  
  2942.  
  2943.   13.8.8.  Status Line
  2944.  
  2945.   A status line is a line at the top or bottom of the screen that
  2946.   displays info about the application program you are running.  It's
  2947.   often highlighted in some way.  With a status line enabled, an
  2948.   application can send the terminal a special escape sequence which
  2949.   means that the text that follows is for the status line.  However,
  2950.   many applications don't use this feature but instead only simulate a
  2951.   real status line by direct cursor positioning.  The ordinary user
  2952.   looking at it doesn't know the difference.
  2953.  
  2954.  
  2955.   13.8.9.  Upon 80/132 Change: Clear or Preserve?
  2956.  
  2957.   When switching the number of columns from 80 to 132 (or conversely)
  2958.   should the data displayed in the old format be erased (cleared) or
  2959.   preserved? {80/132 Clr} {{Screen Width Change}}.  It should make no
  2960.   difference how you set this option since if an application program
  2961.   uses 132 columns, it should set this option appropriately via a
  2962.   control sequence.
  2963.  
  2964.  
  2965.   13.9.  Page Related Options
  2966.  
  2967.   For a Wyse terminal to be able to access multiple pages of display
  2968.   memory {Multipage} must be set to on.
  2969.  
  2970.  
  2971.   13.9.1.  Page Size
  2972.  
  2973.   The terminal memory may be divided up into a number of pages.  See
  2974.   ``Pages'' and ``Pages (definition)'' for explanations of pages.  You
  2975.   may partition the page memory into a number of pages of selected
  2976.   length.  Linux applications don't seem to use pages at present so it
  2977.   shouldn't make much difference how you set this up.
  2978.  
  2979.  
  2980.   13.9.2.  Coupling (of cursor & display)
  2981.  
  2982.   The terminal memory may be divided up into a number of pages.  See
  2983.   ``Pages'' and ``Pages'' for explanations of pages.  When the cursor is
  2984.   moved to a location in video memory not currently displayed (such as
  2985.   another page, or on the same page but to a location not displayed on
  2986.   the screen) should the display change to let one view the new cursor
  2987.   location?  If so, this is called "Coupling".  For cursor movement
  2988.   within the same page there is "Vertical Coupling" and "Horizontal
  2989.   Coupling".  For movement to another page there is "Page Coupling".
  2990.  
  2991.  
  2992.   13.10.  Reporting and Answerback
  2993.  
  2994.   The terminal will identify itself and its state, or send out a pre-
  2995.   recorded message in response to certain escape sequences.
  2996.  
  2997.  
  2998.   13.10.1.  Answerback Message (String)
  2999.  
  3000.   You may write a short message during set-up which may optionally be
  3001.   sent to the host at power-up or be sent to the host in response to a
  3002.   request from the host (perhaps the ENQ (inquire) control character).
  3003.  
  3004.  
  3005.   13.10.2.  Auto Answerback
  3006.  
  3007.   If set, sends the answerback message to the host at power-on without
  3008.   the host asking for it.  Do any "getty" processes look for this ??
  3009.  
  3010.  
  3011.   13.10.3.  Answerback Concealed
  3012.  
  3013.   If set, will never let anyone see the answerback message (except of
  3014.   course the host computer).  If it needs to be changed, deselect
  3015.   "answerback concealed" and the formerly concealed message will be
  3016.   destroyed so you then may enter a new message (but you don't get to
  3017.   see the old one).
  3018.  
  3019.  
  3020.   13.10.4.  Terminal ID {ANSI ID}
  3021.  
  3022.   The terminal send this reply in answer to a request for identity.
  3023.  
  3024.  
  3025.   13.11.  Keyboard Options
  3026.  
  3027.   13.11.1.  Keyclick
  3028.  
  3029.   When set, pressing any key makes a click (broadcast by a tiny
  3030.   loudspeaker in the keyboard).  These clicks annoy some people and I
  3031.   think it's best to set keyclick off.
  3032.  
  3033.  
  3034.  
  3035.  
  3036.  
  3037.   13.11.2.  Caps Lock {Keylock}
  3038.  
  3039.   When the Caps-Lock key is down, should only the alphabetic keys
  3040.   generate shifted characters?  If set to {Caps} or upper-case-only then
  3041.   hitting a number key with the Caps-Lock on will type the number.  To
  3042.   get the symbol above the number one must manually hold down the shift
  3043.   key.  This is the normal mode.  If set to {Shift} then all keys type
  3044.   the shifted character when Caps-Lock is on (hitting the 5 key should
  3045.   type % without holding down Shift, etc.).
  3046.  
  3047.  
  3048.   13.11.3.  Auto Repeat {Repeat}
  3049.  
  3050.   If a key is held down then that key is repeatedly "typed".  This is
  3051.   handy for repeatedly typing the same character to create a line across
  3052.   the page.
  3053.  
  3054.  
  3055.   13.11.4.  Margin Bell
  3056.  
  3057.   When the cursor is 8 columns away from the right side of the display,
  3058.   a bell is rung (like on an old typewriter).  Almost all editors will
  3059.   automatically create a new line if needed (no need to hit the Return
  3060.   key) so this feature is seldom needed.
  3061.  
  3062.  
  3063.   13.11.5.  Remapping the Keys
  3064.  
  3065.   The code sent to the host when a key is pressed is normally the ASCII
  3066.   code for that key (depends also on Shift and Control key).  On some
  3067.   terminals you may make any key send any code you wish.  That is, you
  3068.   may completely remap the keyboard by setting up the terminal that way.
  3069.   This may be useful for some foreign languages and Dvorak keyboard
  3070.   layouts, etc. which permit one to type faster.
  3071.  
  3072.  
  3073.   13.11.6.  Corner Key (for Wyse only)
  3074.  
  3075.   Wyse terminals have a key near the lower left corner which may be set
  3076.   to assume various functions.  Its either labelled "Funct", "Compose
  3077.   Character" or "Alt".  When set to {Hold} No-Scroll it stops the flow
  3078.   of data (using flow control) to the terminal.  Hitting the key again
  3079.   restores normal flow.  When set to {Compose} it permits one to
  3080.   generate a limited number of pre-defined non-Latin characters.  When
  3081.   set to Meta, it makes it a meta shift key which sets the high-order
  3082.   bit on each byte.  When set to {Funct} (and pressed) any alphanumeric
  3083.   key pressed gets a header (SOH) and trailer (CR) byte framing the
  3084.   ASCII byte code.  When set to {Kpd Compose} (and pressed) then typing
  3085.   a decimal number on the numeric keys (followed by "enter") sends out
  3086.   the same number in hexadecimal ??
  3087.  
  3088.  
  3089.   13.11.7.  Numeric Keypad or Arrow Keys Sends
  3090.  
  3091.   The numeric keypad (the rectangle of mostly numeric keys to the right
  3092.   of the main part of the keyboard) can be set to send special codes
  3093.   which will do special things in certain application programs.  Ditto
  3094.   for the arrow keys.  There is thus a "normal" mode where they send
  3095.   what is shown on the keycap (or the normal code sequence for an arrow-
  3096.   key) and an "application" mode where a special escape sequence is
  3097.   sent.  In some cases there is a "hex" numeric mode which is almost
  3098.   like normal numeric mode except that 6 non-numeric keys send the
  3099.   letters A-F.  Thus one may type for example "B36F" on the numeric
  3100.   keypad.
  3101.  
  3102.  
  3103.   13.11.8.  What does shifted-del and shifted-bs send?
  3104.  
  3105.   Depending on how they're set up shifted-del sometimes sends the
  3106.   control character CAN and shifted backspace sometimes sends DEL.
  3107.  
  3108.  
  3109.   13.11.9.  PC Scan Codes
  3110.  
  3111.   Newer terminals can emulate a PC keyboard by sending PC scan codes
  3112.   (see Keyboard-and-Console-HOWTO) instead of ASCII codes.  This would
  3113.   be used if you were directly connected to a PC running Dos/Windows.
  3114.   Set {Keycode} to {Scan}.  Emulating the Dec "PCTerm" should do this
  3115.   and more.  A serial port under Linux can't cope with such scan codes.
  3116.  
  3117.  
  3118.   13.11.10.  Alternate Characters
  3119.  
  3120.   Some keys may have alternative letters on them.  When keys is set to
  3121.   "Typewriter" they send what they would normally send on a typewriter.
  3122.   When keys is set to something else the alternative characters are
  3123.   sent.
  3124.  
  3125.  
  3126.   13.12.  Meaning of Received Control Codes
  3127.  
  3128.   13.12.1.  Auto New Line {Newline}
  3129.  
  3130.   In this case "New Line" means a new line starting at the left margin
  3131.   below the current line.  In Linux and C "new line" (NL) may have a
  3132.   different meaning: the line-feed control character LF also called new-
  3133.   line or NL.  This is because in Linux text files, the LF character
  3134.   means a "new line starts here" so it's labeled NL.  Normally, a LF
  3135.   (NL) sent to a terminal only results in the cursor jumping down one
  3136.   line below where is was and does not result in a new line.
  3137.  
  3138.   If Auto New Line is set, the above "normal" situation is canceled and
  3139.   a physical new line is created on the display upon receiving a LF from
  3140.   the host.  This is exactly what one wants in Linux.  Except that (when
  3141.   Auto New Line is set) the Return (or Enter) key sends a CR LF sequence
  3142.   to the host (for Wyse and VT100, but for VT420 ??).  Since Linux uses
  3143.   LF as a "new line" marker in files, Linux would like only a LF to be
  3144.   sent (and not a CR LF).  Thus the "New Line" option is seldom used.
  3145.   Instead, the required translations are made by the serial port device
  3146.   driver by default.  It is as if one gave the command "stty onlcr
  3147.   icrnl" but you don't need to do this since it's the default.
  3148.  
  3149.  
  3150.   13.12.2.  Auto Line Feed {Rcv CR}
  3151.  
  3152.   This is just another type of "Auto New Line".  When a CR (carriage
  3153.   return) character is received, a LF (line feed) action is added
  3154.   resulting in a new line being displayed.  Since Linux marks the end of
  3155.   lines with LF, this option is not used.
  3156.  
  3157.  
  3158.   13.12.3.  Recognize Del (Wyse Only ??) or Null
  3159.  
  3160.   If off, the DEL character received by the terminal is ignored.  If on
  3161.   the DEL performs a destructive backspace.  Null characters are usually
  3162.   ignored in any case.  Both DEL and NULL are sometimes used for
  3163.   padding.  See ``Padding''
  3164.  
  3165.  
  3166.  
  3167.  
  3168.  
  3169.   13.13.  Where New Text Goes
  3170.  
  3171.   13.13.1.  Line Wrap
  3172.  
  3173.   Also called "Auto Wrap(around)".  What happens when the right edge of
  3174.   the screen is reached (col. 80, etc) and no return character (or the
  3175.   like) has been sent from the host?  If Line Wrap is set, then the rest
  3176.   of the line displays on the line below, etc.  Otherwise, the rest of
  3177.   the line is lost and is not seen on the screen.  Any good application
  3178.   should provide "return" characters so that wrap happens before the end
  3179.   of the screen is reached.  But a raw copy command (and other
  3180.   situations) may not do this so it's usually best to set line wrap.
  3181.  
  3182.   For an 80 col. screen, most terminals only wrap if the 81st character
  3183.   from the host is a graphic (printable) character.  This allows for the
  3184.   case where 81st character from the host might be "return" or a
  3185.   "newline" (non-graphic characters) which means that the application is
  3186.   handing the wrapping OK and intervention by the terminal is not
  3187.   needed.
  3188.  
  3189.  
  3190.   13.13.2.  Scrolling
  3191.  
  3192.   Scrolling {Scrl} is where all the lines on the screen move up or down.
  3193.   Its also called "panning" which includes movement sideways.  In
  3194.   ordinary scrolling lines roll off the bottom or top of the screen and
  3195.   disappear, and new lines from the host appear at the opposite edge
  3196.   (top or bottom).  There are 3 types of this: smooth, jump, or burst.
  3197.   Burst is not really scrolling since its an instant replacement of an
  3198.   old screenfull by a new one (although some lines on the new screen may
  3199.   be from the old screen).  Jump is where new lines jump into view one
  3200.   at a time.  Smooth {Smth} is where the text moves at a steady speed
  3201.   upward or downward.  If the smooth scroll rate is slow enough, one may
  3202.   read the newly visible lines when they are still scrolling (in
  3203.   motion).
  3204.  
  3205.   Smooth scrolling on slow terminals was once useful since one could
  3206.   continue reading as the display was scrolling.  But with higher baud
  3207.   rates, jump scroll is so fast that little time is lost as the new
  3208.   display appears.  Since it takes a little longer to read scrolling
  3209.   text than fixed text, it may actually waste more time if smooth
  3210.   scrolling is selected.
  3211.  
  3212.   If (auto)scrolling {Autoscrl} is disabled, then new text from the host
  3213.   must go somewhere so it is put at the top of the display.  If the old
  3214.   text is not erased, the new text merges (nonsensically) into the old.
  3215.   If the old text is erased, then the new text is out of context.  So
  3216.   keep (auto)scrolling enabled.
  3217.  
  3218.  
  3219.   13.13.3.  New Page?
  3220.  
  3221.   See ``Pages'' and ``Pages'' for explanations of pages.  When the
  3222.   current page is full (the last line is finished) should the page
  3223.   scroll, or should a new page be created (leaving the previous page
  3224.   stored in the terminal's display memory).  If {Autopage} is set, then
  3225.   a new page is created.  Since you are probably not using pages, you
  3226.   should probably set this to off.
  3227.  
  3228.  
  3229.   13.14.  Function Keys
  3230.  
  3231.   These are the keys labeled F1, F2, etc.  On older terminals they may
  3232.   be labeled PF1, PF2, etc. where the P stands for Programmable.  Some
  3233.   keyboards have both.  One may program (redefine) these keys to send
  3234.   out a string of user-defined bytes.  They may often be easily
  3235.   "programmed" using a certain set-up menu {FKey}.  On some terminals,
  3236.   one may also specify where this string is sent to when the key is
  3237.   pressed.  In "normal" mode, pressing the key is just like typing the
  3238.   string at the keyboard.  In "local" mode pressing the key sends it to
  3239.   the terminal (just like if the terminal was in local mode).  This may
  3240.   be used to send escape sequences to the terminal so as to configure it
  3241.   in a special way.  In "remote" mode, the string is always sent out the
  3242.   serial port to the host computer (even if the terminal is in local
  3243.   mode).
  3244.  
  3245.  
  3246.   13.15.  Block Mode Options
  3247.  
  3248.   Some options are only for the case of ``Block Mode''.  This option is
  3249.   powerful since it provides forms and takes load off the host computer
  3250.   by transmitting in bursts.  But it's more complicated to set up and is
  3251.   thus not used too much.
  3252.  
  3253.  
  3254.   13.15.1.  Forms Display
  3255.  
  3256.   In block mode some regions of the screen are for the text of forms and
  3257.   are thus write-protected "Prot" {WPRT}.  Options may set the
  3258.   characters in these regions to appear dim, reverse video {WPRT Rev},
  3259.   and/or underlined {WPRT Undrln}.  {WPRT Intensity} may be set to dim,
  3260.   normal, or even blank (invisible)
  3261.  
  3262.  
  3263.   13.15.2.  Send Entire Block ?
  3264.  
  3265.   Should write-protected text (the original text in the form) be sent to
  3266.   the host upon transmission of a block: {Send All} or is write-
  3267.   protected text also read-protected: {Send Erasable}
  3268.  
  3269.  
  3270.   13.15.3.  Region to Send
  3271.  
  3272.   Should the entire screen be sent or just the scrolling region?  {Send
  3273.   Area}.  Should the sending stop when the current cursor position is
  3274.   reached?  If {Xfer Term} is set to Cursor, only the data on the screen
  3275.   up to the cursor is sent.
  3276.  
  3277.  
  3278.   13.15.4.  Block/Page terminator
  3279.  
  3280.   What is the termination symbol to be appended to a block of data?
  3281.   {Blk End} or at the end of a page {Send Term}ination.
  3282.  
  3283.  
  3284.   13.16.  Locks
  3285.  
  3286.   There are various types of Locks.  One is the Locked keyboard due to
  3287.   flow control.  See ``Keyboard Lock'' Another lock {Feature Lock} is
  3288.   that which prohibits the host computer from changing the terminal set-
  3289.   up by sending certain escape sequences to the terminal.  Placing such
  3290.   a lock may result in unexpected behavior as application programs send
  3291.   escape sequences to the terminals that are ignored.  Not all set-up
  3292.   parameters lock.  Unless you have a good reason to do so, you should
  3293.   not enable such locking.
  3294.  
  3295.   A Function Key lock will prohibit the computer from redefining what a
  3296.   programmable function key sends.  You may want to use this if you have
  3297.   something important programmed into the function keys.
  3298.  
  3299.  
  3300.  
  3301.   13.17.  Screen Saver {Scrn Saver}
  3302.  
  3303.   Also called "CRT Saver".  This turns off (or dims) the screen after
  3304.   the terminal is not used for a period of time.  It prolongs the life
  3305.   of the screen and may save some energy.  Hitting any key will usually
  3306.   restore the screen and may "execute" that key so it's best to hit the
  3307.   shift-key, etc.
  3308.  
  3309.  
  3310.   13.18.  Printer
  3311.  
  3312.   For Wyse, if there is no {Printer Attached} set it to Off.  It's not
  3313.   essential to do this, but if you do it any escape sequence to send
  3314.   text to the printer (instead of the terminal) will be ignored.
  3315.  
  3316.   Setting up the printer port is about the same (usually simpler) as
  3317.   setting up the communications on the main port.  There are a couple of
  3318.   options specific to the printer.  Is the printer a serial or parallel
  3319.   printer?  If it's parallel it should be designated as such in setup
  3320.   and connected to the parallel port on the terminal (if there is one).
  3321.   Should a FF (form feed) be sent to the printer at the end of a print
  3322.   job?  If {Print Term} is set to FF, this will happen.
  3323.  
  3324.  
  3325.   14.  Computer Set-Up (Configure) Details
  3326.  
  3327.   There are various files to edit to set up the computer for terminals.
  3328.   If you're lucky, you'll only need to edit /etc/inittab.  One does this
  3329.   by editing at the console (or from any working terminal).
  3330.  
  3331.  
  3332.   14.1.  Getty (in /etc/inittab)
  3333.  
  3334.   In order to have a login process run on a serial port when the
  3335.   computer starts up (or switches run levels) a getty command must be
  3336.   put into the /etc/inittab file.  Getty GETs a TTY (a terminal) going.
  3337.   Each terminal needs its own getty command.  There is also at least one
  3338.   getty command for the console in every /etc/inittab file.  Find this
  3339.   and put the getty commands for the real terminals next to it.  This
  3340.   file may contain sample getty lines for text terminals that are
  3341.   commented out so that all you need to do is to uncomment them (remove
  3342.   the leading #) and change a few arguments.
  3343.  
  3344.   The arguments which are permitted depend on which getty you use:
  3345.   The gettys best for directly connected terminals are:
  3346.  
  3347.   ╖  agetty (sometimes just called getty): Easy to set up. No config
  3348.      files.  Simple to use with modems.  See ``Agetty''
  3349.  
  3350.   ╖  ``getty (part of getty_ps)''
  3351.  
  3352.      Two gettys best for modem lines are:
  3353.  
  3354.   ╖  mgetty: for modems; use with terminals possible but poorly
  3355.      documented
  3356.  
  3357.   ╖  uugetty: for modems only; part of getty_ps package
  3358.  
  3359.      A simple getty to use for console login:
  3360.  
  3361.   ╖  mingetty: for consoles only
  3362.  
  3363.  
  3364.   If you don't have the getty you want, it may be downloaded from Serial
  3365.   Software <http://sunsite.unc.edu/pub/Linux/system/serial/>.
  3366.  
  3367.   If you are not using modem control lines (for example if you only use
  3368.   the minimum number of 3 conductors: transmit, receive, and common
  3369.   signal ground) you should let getty know this by using a "local" flag.
  3370.   The format of this depends on which getty you use.
  3371.  
  3372.  
  3373.   14.1.1.  Agetty (may be named getty)
  3374.  
  3375.   An example line in /etc/inittab:
  3376.   S1:23:respawn:/sbin/getty -L 19200 ttyS1 vt102
  3377.   S1 is from ttyS1.  23 means that getty is run upon entering run levels
  3378.   2 or 3.  respawn means that if getty is killed, it will automatically
  3379.   start up (respawn) again.  /sbin/getty is the getty command.  The -L
  3380.   means Local (ignore modem control signals).  19200 is the baud rate.
  3381.   ttyS1 means /dev/ttyS1 (COM2 in MS-DOS).  vt102 is the type of
  3382.   terminal and this getty will set the environment variable TERM to this
  3383.   value.  There are no configuration files.  Type "init q" on the
  3384.   command line after editing getty and you should see a login prompt.
  3385.  
  3386.   The agetty program will auto-detect any parity set inside the
  3387.   terminal.  If you use stty to set parity, agetty will automatically
  3388.   unset it since it doesn't want the serial driver stripping off the
  3389.   parity bit since it to see it as part of an 8-bit character in order
  3390.   to detect parity.  Thus if you use parity, enable it only at the
  3391.   terminals and let agetty auto-detect it and set it at the computer.
  3392.   The login prompt will look garbled until you type something and getty
  3393.   sets the parity.  Let me know if you find a way to get a clean-looking
  3394.   login prompt with parity using agetty.  The garbled prompt will deter
  3395.   visitors, etc. from trying to login (if that's what you want).
  3396.  
  3397.  
  3398.   14.1.2.  getty (part of getty_ps)
  3399.  
  3400.   (This is from the old Serial-HOWTO by Greg Hankins)
  3401.   Add entries for getty to use for your terminal in  the configuration
  3402.   file /etc/gettydefs if there they aren't already there:
  3403.  
  3404.  
  3405.  
  3406.        # 38400 bps Dumb Terminal entry
  3407.        DT38400# B38400 CS8 CLOCAL # B38400 SANE -ISTRIP CLOCAL #@S @L login: #DT38400
  3408.  
  3409.        # 19200 bps Dumb Terminal entry
  3410.        DT19200# B19200 CS8 CLOCAL # B19200 SANE -ISTRIP CLOCAL #@S @L login: #DT19200
  3411.  
  3412.        # 9600 bps Dumb Terminal entry
  3413.        DT9600# B9600 CS8 CLOCAL # B9600 SANE -ISTRIP CLOCAL #@S @L login: #DT9600
  3414.  
  3415.  
  3416.  
  3417.  
  3418.   If you want, you can make getty print interesting things in the login
  3419.   banner.  In my examples, I have the system name and the serial line
  3420.   printed.  You can add other things:
  3421.  
  3422.  
  3423.  
  3424.  
  3425.  
  3426.  
  3427.  
  3428.  
  3429.  
  3430.  
  3431.  
  3432.  
  3433.   @B    The current (evaluated at the time the @B is seen) bps rate.
  3434.   @D    The current date, in MM/DD/YY.
  3435.   @L    The serial line to which getty is attached.
  3436.   @S    The system name.
  3437.   @T    The current time, in HH:MM:SS (24-hour).
  3438.   @U    The number of currently signed-on users.  This is  a
  3439.         count of the number of entries in the /etc/utmp file
  3440.         that have a non-null ut_name field.
  3441.   @V    The value of VERSION, as given in the defaults file.
  3442.   To display a single '@' character, use either '\@' or '@@'.
  3443.  
  3444.  
  3445.  
  3446.  
  3447.   When you are done editing /etc/gettydefs, you can verify that the
  3448.   syntax is correct by doing:
  3449.  
  3450.  
  3451.        linux# getty -c /etc/gettydefs
  3452.  
  3453.  
  3454.  
  3455.  
  3456.   Make sure there is no getty or uugetty config file for the serial port
  3457.   that your terminal is attached to (/etc/default/{uu}getty.ttySN or
  3458.   /etc/conf.{uu}getty.ttySN), as this will probably interfere with
  3459.   running getty on a terminal.  Remove the file if it exits.
  3460.  
  3461.   Edit your /etc/inittab file to run getty on the serial port
  3462.   (substituting in the correct information for your environment - port,
  3463.   speed, and default terminal type):
  3464.  
  3465.  
  3466.        S1:23:respawn:/sbin/getty ttyS1 DT9600 vt100
  3467.  
  3468.  
  3469.  
  3470.  
  3471.   Restart init:
  3472.  
  3473.  
  3474.        linux# init q
  3475.  
  3476.  
  3477.  
  3478.  
  3479.   At this point, you should see a login prompt on your terminal.  You
  3480.   may have to hit return to get the terminal's attention.
  3481.  
  3482.  
  3483.   14.1.3.  Mgetty
  3484.  
  3485.   The m stands for modem.  This program is primarily for modems but it
  3486.   will work for text-terminals.  It's poorly documented (as of mid 1998)
  3487.   for terminals and you may need to wade thru much documentation for
  3488.   modems in order to figure out how to use it for terminals.  Look at
  3489.   /etc/mgetty/mgetty.config for an example of configuring a terminal.
  3490.  
  3491.  
  3492.   14.2.  Stty & Setserial
  3493.  
  3494.   There is both a "stty" command and a "setserial" command for setting
  3495.   up the serial ports.   Some (or all) of the needed stty settings can
  3496.   be done via getty and there may be no need to use setserial so you may
  3497.   not need to use either command.  These two commands (stty and
  3498.   setserial) set up different aspects of the serial port.  Stty does the
  3499.   most while setserial configures the low-level stuff such as interrupts
  3500.   and port addresses.  To "save" the settings, these commands must be
  3501.   written in certain files (shell scripts) which run each time the
  3502.   computer starts up.  You may also use the stty and setserial commands
  3503.   on the command line but such settings will be lost as soon at you turn
  3504.   off the computer.
  3505.  
  3506.  
  3507.   14.2.1.  Setserial
  3508.  
  3509.   Setserial tells the serial port driver both the interrupt (IRQ) number
  3510.   and the port IO address.  It can tell you what type of UART chips you
  3511.   have if you use the autoconfig parameter.  It can set the time that
  3512.   the port will keep operating after it's closed (in order to output any
  3513.   characters still in its buffer in main RAM).  This is needed at slow
  3514.   baud rates of 1200 or lower.  For the serial port to work, the serial
  3515.   module (for the Linux kernel) must be loaded.  If you use more than 2
  3516.   serial ports and want to assign unique IRQ numbers (or use more than 4
  3517.   serial ports), then you need to use setserial.  If your serial port is
  3518.   plug-and-play you should look in the Modem-HOWTO or eventually, the
  3519.   Serial-HOWTO.
  3520.  
  3521.  
  3522.   14.2.2.  Where to Run Setserial ?
  3523.  
  3524.   To modify (or add) a setserial command, edit the shell script that
  3525.   runs setserial.  Where it resides depends on your distribution.  It
  3526.   might be in a /etc/rc.d directory in a "rc.serial" file.  You might
  3527.   need to create your own file for it.  In the Debian distribution it
  3528.   was the 0setserial file in /etc/rc.boot.
  3529.  
  3530.  
  3531.   14.2.3.  Stty
  3532.  
  3533.   You probably don't need to use the "stty" command to configure if you
  3534.   use one of the two suggested gettys to do the equivalent of stty ...
  3535.   You still may need to use the stty command to see how the serial port
  3536.   is configured and may need to consult the stty man page.
  3537.  
  3538.   Stty does most of the configuration of the serial port (but the
  3539.   default plus what you change with getty should set things up OK).  To
  3540.   see how it's now set for the terminal (or console) you're now at type
  3541.   at the shell prompt: stty -a.  For other terminals (such as ttyS1)
  3542.   type: stty -a < /dev/ttyS1.  Here are some of the items stty
  3543.   configures: speed (bits/sec), parity, bits/byte, # of stop bits, strip
  3544.   8th bit?, modem control signals, flow control, break signal, end-of-
  3545.   line markers, change case, padding, beep if buffer overrun?, echo,
  3546.   allow background tasks to write to terminal?, define special (control)
  3547.   characters (such as what keys to press for interrupt).  See the stty
  3548.   man or info page for more details.  Also see the man page: termios
  3549.   which covers the same options set by stty but (as of mid 1998) covers
  3550.   features which the stty man page fails to mention.  For use of some
  3551.   special characters see ``Special (Control) Characters''
  3552.  
  3553.   With some implementations of getty (getty_ps package), the commands
  3554.   that one would normally give to stty are typed into a getty
  3555.   configuration file: /etc/gettydefs.  Even without this configuration
  3556.   file, the getty command line may be sufficient to set things up so
  3557.   that you don't need stty.
  3558.  
  3559.   One may write C programs which change the stty configuration, etc.
  3560.   Looking at the documentation for this may help one better understand
  3561.   the use of the stty command (and its many possible arguments).
  3562.   Serial-Programming-HOWTO is useful.  The manual page: termios contains
  3563.   a description of the C-language structure (of type termios) which
  3564.   stores the stty configuration in computer memory.  Many of the flag
  3565.   names in this C-structure are almost the same (and do the same thing)
  3566.   as the arguments to the stty command.
  3567.  
  3568.  
  3569.   14.2.4.  Where to Put the Stty Command ?
  3570.  
  3571.   If getty sets up things OK, then you may skip this sub-section.  To
  3572.   have stty set up the terminal each time the computer starts up you
  3573.   need to put the stty command in a file that will be executed each time
  3574.   the computer is started up (Linux boots).  This file should be run
  3575.   before getty starts.  There are many possible places to put it.  If it
  3576.   gets put in more than one place and you only know about (or remember)
  3577.   one of those places, then a conflict is likely.  So make sure to
  3578.   document (perhaps in your terminal manual) where it's located.
  3579.  
  3580.   One good place to put it would be in the same file that runs setserial
  3581.   when the system is booted.  See ``Where to Run Setserial?''.  It would
  3582.   seem best to put it after the setserial command so that the low level
  3583.   stuff is done first.  In the Debian distribution there is an
  3584.   /etc/init.d/bootmisc.sh script but it currently runs before 0setserial
  3585.   does.
  3586.  
  3587.  
  3588.   14.3.  Terminfo & Termcap (brief)
  3589.  
  3590.   See ``Terminfo and Termcap (detailed)'' for a more detailed discussion
  3591.   of termcap.  Many application programs that you run use the terminfo
  3592.   (formerly termcap) data base.  This has an entry for each model or
  3593.   type (such as vt100) of terminal and tells what the terminal can do,
  3594.   what codes to send for various actions, and what codes to send to the
  3595.   terminal to initialize it.
  3596.  
  3597.   Since many terminals (and PC's also) can emulate other terminals and
  3598.   have various "modes" of operation, there may be several terminfo
  3599.   entries from which to choose for a given physical terminal.  They
  3600.   usually will have similar names.  The last parameter of getty (for
  3601.   both agetty and getty_ps) should be the terminfo name of the terminal
  3602.   (or terminal emulation) that you are using (such as vt100).
  3603.  
  3604.   The terminfo does more than just specify what the terminal is capable
  3605.   of doing and disclose what codes to send to the terminal to get it to
  3606.   do those things.  It also specifies what "bold" will look like (will
  3607.   it be reverse video or will it be high intensity, etc.), what the
  3608.   cursor will look like, if the letters will be black, white, or some
  3609.   other color, etc.  In PC terminology these are called "preferences".
  3610.   It also specifies initialization codes to send to the terminal
  3611.   (analogous to the init strings sent to modems).  Such strings are not
  3612.   automatically sent to the terminal by Linux.  See ``Init String''.  If
  3613.   you don't like the way the display on the screen looks and behaves you
  3614.   may need to edit (and then update) the terminfo (or termcap) file.
  3615.   See ``Terminfo Compiler (tic)'' for how to update.
  3616.  
  3617.  
  3618.   14.4.  Setting TERM and TERMINFO
  3619.  
  3620.   These are two environment variables for terminals, but you may not
  3621.   need to do anything about them.  TERM must always be set to the name
  3622.   of the terminal you are using.  TERMINFO contains the path to the
  3623.   terminfo data base, but may not be needed if the database is in a
  3624.   default location (or TERMINFO could be set automatically by a file
  3625.   that comes with your distribution of Linux).
  3626.  
  3627.   Fortunately, the getty program usually sets TERM for you just before
  3628.   login.  This  permits application programs to find the name of your
  3629.   terminal and then look up the terminal capabilities in the terminfo
  3630.   data base.  See ``TERM Variable'' for more details on TERM.
  3631.   If your terminfo data base can't be found you may see an error message
  3632.   about it on your terminal.  If this happens it's time to check out
  3633.   where terminfo resides and set TERMINFO if needed.  You may find out
  3634.   where the terminfo database is by searching for a common terminfo file
  3635.   such as "vt100" using the "locate" command.  Make sure that your
  3636.   terminal is in this database.  An example of setting TERMINFO is:
  3637.   export TERMINFO=/usr/share/terminfo (put this in /etc/profile or the
  3638.   like).  If the data for your terminal in this data base is not to your
  3639.   liking, you may need to edit it.  See ``Terminfo & Termcap (brief)''.
  3640.  
  3641.  
  3642.   14.5.  Rarely Needed /etc/ttytype File
  3643.  
  3644.   The configuration file /etc/ttytype is used to map /dev/ttySn's to
  3645.   terminal names per terminfo.  tset uses it, but if the TERM
  3646.   environment variable is already set correctly, then this file is not
  3647.   needed.  Since the Linux getty sets TERM for each tty, you don't need
  3648.   this file.  In other Unix-like systems such as FreeBSD, the file
  3649.   /etc/ttys maps ttys to much more, such as the appropriate getty
  3650.   command, and the category of connection (such as "dialup").  An
  3651.   example line of Linux ttytype: vt220 ttyS1
  3652.  
  3653.  
  3654.   14.6.  Login Restrictions
  3655.  
  3656.   By default, the root user may not login from a terminal.  To permit
  3657.   this you must create (or edit) the file /etc/securetty per the manual
  3658.   page "securetty".  To restrict logins of certain users and/or certain
  3659.   terminals, etc. edit /etc/login.access (this replaces the old
  3660.   /etc/usertty file ??).  /etc/login.def determines if /etc/securetty is
  3661.   to be used and could be edited so as to make /etc/securetty not needed
  3662.   (or not used).  /etc/porttime restricts the times at which certain
  3663.   ttys and users may use the computer.  If there are too many failed
  3664.   login attempt by a user, that user may be prohibited from ever logging
  3665.   in again.  See the man page "faillog" for how to control this.
  3666.  
  3667.  
  3668.   14.7.  Run Command Only If TERM=my_term_type
  3669.  
  3670.   Sometimes there are commands that one wants to execute at start-up
  3671.   only for a certain type of terminal.  To do this for the stty command
  3672.   is no problem since one uses the redirection operator < to specify
  3673.   which terminal the command is for.  But what about shell aliases or
  3674.   functions?  You may want to make a function for the ls command so it
  3675.   will color-code the listing of directories only on color terminals or
  3676.   consoles.  For monochrome terminals you want the same function name
  3677.   (but a different function body) which will use symbols as a substitute
  3678.   for color-coding.  Where to put such function definitions that are to
  3679.   be different for different terminals?
  3680.  
  3681.   You may put them inside an "if" statement in /etc/profile which runs
  3682.   at startup each time one logs on.  The conditional "if" statement
  3683.   defines certain functions, etc. only if the terminal is of a specified
  3684.   type.
  3685.  
  3686.  
  3687.   14.7.1.  Example for ls Function
  3688.  
  3689.   While much of what this if statement does could be done in the
  3690.   configuration file for dircolors, here's an example for the case of
  3691.   the bash shell:
  3692.  
  3693.  
  3694.  
  3695.  
  3696.  
  3697.   ______________________________________________________________________
  3698.   if [ $TERM = linux ]; then
  3699.       eval `dircolors`;
  3700.   elif [ $TERM = vt220 ]; then
  3701.       ls () { command ls -F $* ; }# to export the function ls():
  3702.       declare -xf ls
  3703.   else echo "From /etc/profile: Unknown terminal type $TERM"
  3704.   fi
  3705.   ______________________________________________________________________
  3706.  
  3707.  
  3708.  
  3709.  
  3710.   15.  Terminfo and Termcap (detailed)
  3711.  
  3712.   15.1.  Intro to Terminfo
  3713.  
  3714.   Terminfo (formerly Termcap) is a database of terminal capabilities and
  3715.   more.  For every (well almost) model of terminal it tells application
  3716.   programs what the terminal is capable of doing.  It tells what escape
  3717.   sequences (or control characters) to send to the terminal in order to
  3718.   do things such as move the cursor to a new location, erase part of the
  3719.   screen, scroll the screen, change modes, change appearance (colors,
  3720.   brightness, blinking, underlining, reverse video etc.).  After about
  3721.   1980, many terminals supported over a hundred different commands (some
  3722.   of which take numeric parameters).
  3723.  
  3724.   The terminfo abbreviations are usually longer than those of termcap
  3725.   and thus it's easier to guess what they mean.  The manual pages for
  3726.   terminfo are more detailed (and include the old termcap
  3727.   abbreviations).  Thus, unless you are already committed to termcap,
  3728.   you should use the terminfo files.
  3729.  
  3730.  
  3731.   15.2.  Terminfo Database
  3732.  
  3733.   The terminfo database is compiled and thus has a source part and a
  3734.   compiled part.  The old termcap database has only a source part but
  3735.   this source can, by a single command, be both converted to terminfo
  3736.   source and then compiled.  Thus you may get by without having any
  3737.   terminfo source since the termcap source can create the compiled
  3738.   terminfo database.
  3739.  
  3740.   To see if your terminal (say vt100) is in the terminfo data base type
  3741.   "locate vt100".  It may show /usr/lib/terminfo/v/vt100 or
  3742.   /usr/share/terminfo/v/vt100 which are possible locations of the
  3743.   compiled terminfo files.  Some older programs may expect it to be in
  3744.   the /etc/terminfo directory.  Unless this terminfo data base happens
  3745.   to be  located where every program that needs it expects to find it,
  3746.   then the environment variable TERMINFO should be set to the path to
  3747.   this database.  Example: TERMINFO=/usr/share/terminfo
  3748.  
  3749.   The source code you use may reside in /etc/termcap and/or in
  3750.   terminfo.src (or another name).  See the man pages: terminfo(5) or
  3751.   termcap(5) for the format required to create (or modify) these files.
  3752.   The file terminfo.src may be in various locations on your computer or
  3753.   it may not be included with your linux distribution.  Use the locate
  3754.   command to try to find it.  It is available for downloading (under the
  3755.   name termtypes.ti) from  <http://sagan.earthspace.net/terminfo>
  3756.  
  3757.  
  3758.   15.2.1.  Terminfo Compiler (tic)
  3759.  
  3760.   The data in the source files is compiled with the "tic" program which
  3761.   is capable of converting between termcap format and terminfo format.
  3762.   Thus you can create a compiled terminfo data base from termcap source.
  3763.   The installation program which was used to install Linux probably
  3764.   installed the compiled files on your hard disk so you don't need to
  3765.   compile anything unless you modify /etc/termcap (or terminfo.src ).
  3766.   "tic" will automatically install the resulting compiled files into a
  3767.   terminfo directory ready to be used by application programs.
  3768.  
  3769.  
  3770.   15.2.2.  Look at Your Terminfo
  3771.  
  3772.   It's a good idea to take a look at the terminfo entry for the terminal
  3773.   you are using (source code of course) and read the comments.  A quick
  3774.   way to inspect it without comments is to just type "infocmp".  But the
  3775.   comments may tell you something special about the terminal such as how
  3776.   you need to set it up so that it will work correctly with the terminfo
  3777.   database.
  3778.  
  3779.  
  3780.   15.2.3.  Deleting Data Not Needed
  3781.  
  3782.   In order to save disk space, one may delete all of the database except
  3783.   for the terminals types that you have (or might need in the future).
  3784.   Don't delete any of the termcaps for a "Linux terminal" (the console)
  3785.   or the xterm ones if you use X-Windows.  The terminal type "dumb" may
  3786.   be needed when an application program can't figure out what type of
  3787.   terminal you are using.  It would save disk space if install programs
  3788.   only installed the terminfo for the terminals that you have and if you
  3789.   could get a termcap for a newly installed terminal over the Internet
  3790.   in a few seconds.
  3791.  
  3792.  
  3793.   15.3.  Modifying Terminfo Files
  3794.  
  3795.   Some of the supplied terminfo entries can be improved.  For example,
  3796.   most terminals have a graphics character set which may be used for
  3797.   drawing boxes with solid lines (not dashed lines).  If you see dashed
  3798.   lines in application programs like minicom, then perhaps the reason is
  3799.   that the graphics capability was not put into the terminfo file.  You
  3800.   may add it by finding out what symbols to use from the manual (in this
  3801.   case you must assign values to: enacs, rmacs, and smacs) and then edit
  3802.   the source file.  Then by using "tic" you may compile it.  "tic"
  3803.   should automatically put the compiled terminfo file in the correct
  3804.   directory reserved for it.
  3805.  
  3806.   If you would like to find a better terminfo than the one supplied, you
  3807.   might try searching the Internet (but what you find may be worse).  If
  3808.   your new terminfo entry is better than the old one and it seems stable
  3809.   (you've used it for a while with no problems) then you should send a
  3810.   copy to the maintainer of terminfo as noted at the start of the source
  3811.   file for terminfo (or termcap).
  3812.  
  3813.  
  3814.   15.4.  Init String
  3815.  
  3816.   Included in the terminfo are often a couple of initialization strings
  3817.   which may be sent to the terminal to initialize it.  This may change
  3818.   the appearance of the screen, change what mode the terminal is in,
  3819.   and/or make the terminal emulate another terminal.  An initialization
  3820.   string is not automatically sent to the terminal to initialize it.
  3821.   One might expect that the getty program should do this but if it did,
  3822.   one could make a change to the set-up at the terminal and this change
  3823.   wouldn't be implemented because the init string would automatically
  3824.   cancel it.  You must use a command given on the command line (or in a
  3825.   shell script) to send the init string such.  Such commands are:
  3826.   "tset", "tput init", or "setterm -initialize".  Sometimes there is no
  3827.   need to send the init string since the terminal may set itself up
  3828.   correctly when it is powered on (using options/preferences one has set
  3829.   up and saved in non-volatile memory of the terminal).
  3830.  
  3831.  
  3832.   15.5.  TERM Variable
  3833.  
  3834.   The Environment variable TERM should be set to the type of terminal
  3835.   which you are using.  It is normally set by the terminal_type
  3836.   parameter passed to the getty program (look at it in the /etc/inittab
  3837.   file).  This name must be in the Terminfo data base.  Just type "set"
  3838.   at the command line to see what TERM is set to (or type: tset -q).  At
  3839.   a console (monitor) TERM is set to "linux" which is the PC monitor
  3840.   emulating a fictitious terminal model named "linux".  Since "linux" is
  3841.   close to a vt100 terminal and many text terminals are also, the
  3842.   "linux" designation will sometimes work as a temporary expedient with
  3843.   a text terminal.
  3844.  
  3845.   If more than one type of terminal may be connected to the same port
  3846.   (/dev/tty...) (for example, if there is a switch to permit different
  3847.   terminal types to use the same serial port, or if the port is
  3848.   connected to a modem to which people call in from different types of
  3849.   terminals) then TERM needs to be set each time someone connects to the
  3850.   serial port.  There is often a query escape sequence so that the
  3851.   computer may ask the terminal what type it is.  Another way is to ask
  3852.   the user to type in (or select) the type of terminal s/he is using.
  3853.   You may need to use tset for this or write a short shell script to
  3854.   handle this.
  3855.  
  3856.  
  3857.   One way to do this is to use "tset" (see the manual page).  tset tries
  3858.   to determine the terminal name of the terminal you are using.  Then it
  3859.   looks up the data in terminfo and sends your terminal an init string.
  3860.   It can also set the value of TERM.  For example, a user dials in and
  3861.   logs in.  The .profile login script is executed which contains within
  3862.   it the following statement: eval `tset -s ?vt100`.  This results in:
  3863.   The user is asked if s/he is using a vt100.  The user either responds
  3864.   yes or types in the actual terminal type s/he is using.  Then tset
  3865.   sends the init string and sets TERM to this terminal name (type).
  3866.  
  3867.  
  3868.   15.6.  Terminfo/Termcap Documents
  3869.  
  3870.  
  3871.  
  3872.   ╖
  3873.  
  3874.   ╖  manual pages for terminfo(5) (best) and/or termcap(5).  The Termcap
  3875.      Manual <http://www.delorie.com/gnu/docs/termcap/termcap_toc.html>
  3876.      (2nd ed.) by Richard M. Stallman is a GNU manual which is somewhat
  3877.      obsolete.  Although dated 1992, it fails to even mention terminfo.
  3878.  
  3879.   ╖  the files: terminfo.src and /etc/termcap have info about various
  3880.      versions of termcap files, naming conventions for terminals, and
  3881.      special capabilities code named u6-u9. If you don't have one, go to
  3882.      <http://sagan.earthspace.net/terminfo>
  3883.  
  3884.   ╖  "Termcap and Terminfo" is a book published by O'Reilly in 1988.
  3885.  
  3886.  
  3887.   16.  Using the Terminal
  3888.  
  3889.   16.1.  Intro to Using Terminal
  3890.  
  3891.   This section is about controlling the terminal-computer interface
  3892.   and/or changing the terminal set-up while using the terminal.  It
  3893.   explains (or points to explanations of) how the user of a terminal can
  3894.   control and inspect the interface and how to use various commands
  3895.   provided by the device driver.  It does not explain how to use the
  3896.   many application programs, shells or most Linux utilities.  Two
  3897.   commands commonly used at the terminal are:
  3898.  
  3899.  
  3900.   ╖  clear (to clear the screen)
  3901.  
  3902.   ╖  reset (to reset the terminal)
  3903.  
  3904.  
  3905.   16.2.  Starting Up the Terminal
  3906.  
  3907.   Of course the power must be on for the terminal to work.  If you don't
  3908.   see a login prompt hit the "return" (or "enter") key a few times.
  3909.   Then type your account name (followed by a return/enter) and your
  3910.   password when prompted for it (also followed by return/enter).  Make
  3911.   sure not to type all capital letters.  If you do, the computer may
  3912.   think that you have an old terminal that can't send lowercase letters
  3913.   and the serial driver may set itself up to send only capital letters
  3914.   to the terminal.
  3915.  
  3916.   If nothing happens, make sure that both the host computer and the
  3917.   terminal are OK.  If the host computer is shut down (no power) what
  3918.   you type at the terminal keyboard may appear on the screen since the
  3919.   transmit and receive pins at the computer may be connected together
  3920.   resulting in echoing of characters by an "off" computer.  If you can't
  3921.   log in when the host computer is running, see ``Trouble-Shooting''.
  3922.  
  3923.  
  3924.   16.3.  Terminal (Serial) Device Driver
  3925.  
  3926.   When typing at the command line, the shell (such as the Bash shell) is
  3927.   reading what you type and reacting to it.  What you type first passes
  3928.   thru the terminal driver part of your operating system.  This driver
  3929.   may translate certain characters (such as changing the "return"
  3930.   character generated by the "return" key into a "new-line" character
  3931.   for Linux files).  It also recognizes certain control codes which you
  3932.   may type at the keyboard such as ^C to interrupt the execution of a
  3933.   program.  It also normally echoes what you type back to the display.
  3934.   ``Stty'' may be used to configure how this terminal driver behaves,
  3935.   including disabling some (or all) of its functionality.
  3936.  
  3937.  
  3938.   16.4.  Problems with Editors
  3939.  
  3940.   There may be some problems with using both emacs and vi on some
  3941.   terminals.
  3942.  
  3943.  
  3944.   16.4.1.  emacs and ^Q
  3945.  
  3946.   If software flow control exists, then the ^Q command in emacs will
  3947.   freeze the display.  The fix is to map this to another key-press by
  3948.   configuring emacs that way.
  3949.  
  3950.  
  3951.   16.4.2.  vi and Cursor-Keys
  3952.  
  3953.   Vi uses the esc-key as a command to exit insert mode.  If one hits an
  3954.   arrow-key (cursor-key) an escape sequence (starting with the ESC
  3955.   character) is sent to the host.  Vi must distinguish between these two
  3956.   meanings of ESC.  A smart vi (such as vim) should be able to detect
  3957.   the difference by noting the key that follows the esc-key.
  3958.  
  3959.   On VT terminals the left-arrow-key may be either set to send ESC [ D
  3960.   or ESC O D.  The other arrow keys are similar but use A, B, and C
  3961.   instead of D.  If you're having problems, choose ESC [ D since the "O"
  3962.   in the other alternative could be interpreted by vi as a command to
  3963.   "Open a line".  The "[" should be interpreted by vi to mean that an
  3964.   arrow-key has been pressed.  ESC [ D will be sent provided "Cursor Key
  3965.   Application Mode" has not been set.  ESC [ D is normally the default
  3966.   so everything is seemingly OK.  Except that many termcaps contain a
  3967.   string (not the init string) which sets what you want to avoid:
  3968.   "Application Mode".  Editors may send this string to the terminal when
  3969.   the editor starts up.  Now you are in trouble.
  3970.  
  3971.   This string has the termcap code "ks" (smkx in terminfo) meaning
  3972.   enable the function (and related) keys (including the arrow keys).  An
  3973.   application enables these keys by sending the "ks" string to the
  3974.   terminal.  Whoever wrote the termcap reasoned that if an application
  3975.   wants to enable these keys, then they should be put into "Application
  3976.   Mode" since this is an "application", but you don't want this.
  3977.  
  3978.   The Linux console has no "ks" string so you can't fall into this trap
  3979.   at the console.  For other terminals you may need to edit the termcap
  3980.   (or terminfo) or use another termcap entry.  You need to change not
  3981.   only the "ks" string but also the termcap definitions of what they
  3982.   send: kd, kl, kr, ku.  Then run tic to install it.
  3983.  
  3984.   For vim (vi iMproved) there is a way to set it up to work OK with ESC
  3985.   O D (so you don't need to edit termcap): See vim help for
  3986.   "vt100-cursor-keys".  You may run "gitkeys" and then press your cursor
  3987.   keys to see what they send but they may be set to send something
  3988.   different when you're in an editor.
  3989.  
  3990.  
  3991.   16.5.  Color ls Corruption
  3992.  
  3993.   If ls is corrupting your terminal emulation with the color feature,
  3994.   turn it off.  ls --color, and ls --colour all use the color feature.
  3995.   Some installations have ls set to use color by default.  Check
  3996.   /etc/profile, etc.  for ls aliases.  See ``Example for ls Function''
  3997.   for how to have ls do color for the console and do monochrome for
  3998.   terminals.
  3999.  
  4000.  
  4001.   16.6.  Display Freezes (hung terminal)
  4002.  
  4003.   The symptom of a hung terminal is where what you type doesn't display
  4004.   on the terminal (or in some cases displays but doesn't do anything).
  4005.   If what you type is invisible (or does nothing) type ^Q to restart
  4006.   flow (if flow control stopped it).  Hanging may also be due to:
  4007.   ``Sent Terminal Binary'' or ``Abnormally Exited a Program''
  4008.   If you didn't do any of these two, then your program could by buggy or
  4009.   you interaction with it fatally illegal.
  4010.  
  4011.   If you want to quit the program you were running and you can't do it
  4012.   by the usual methods (some programs have special keys you must hit to
  4013.   exit) then try killing it from another terminal using "top" or "kill".
  4014.   If the process refuses to die, you may try sending it signal 9 from
  4015.   top which should force it to exit.  The "9" type of forced exit may
  4016.   leave some temporary files lying around as well as a corrupted
  4017.   interface.  Killing the login shell should result in a startup of
  4018.   getty with a new login prompt.
  4019.  
  4020.  
  4021.   People new to Linux may unintentionally press Ctrl-S (^S) (or the "No
  4022.   Scroll" key) which mysteriously freezes the screen (although that is
  4023.   what this key is supposed to do if you use software flow-control).  To
  4024.   restore normal screen interaction, press Ctrl-Q (^Q).  Note that
  4025.   everything typed during the "freeze" gets executed but you don't see
  4026.   any report of this until you hit ^Q.  Thus when it's frozen, don't
  4027.   type anything drastic that might destroy files, etc.  One argument for
  4028.   using hardware flow-control is to prevent such freezes.
  4029.  
  4030.  
  4031.   16.7.  Corrupted Terminal Interface
  4032.  
  4033.   This includes the case of a "frozen display" = "hung terminal" of the
  4034.   previous section.
  4035.  
  4036.  
  4037.   16.7.1.  Symptoms
  4038.  
  4039.   When the display doesn't look right, or when what you type doesn't
  4040.   display correctly (if at all), or nothing happens when you type a
  4041.   command, you may have a corrupted terminal interface.  In rare cases
  4042.   when the serial port hardware gets itself corrupted, the only fix may
  4043.   be to cycle power (turn off the PC and reboot).  The corruption may be
  4044.   due to things such as bug in the program you're using, a hardware
  4045.   failure (including an obscure hardware defect that you can normally
  4046.   live with), or possibly an incorrect configuration.  If everything was
  4047.   working normally but it suddenly goes bad, it may be that the
  4048.   interface got corrupted by something you did.  Three mistakes you
  4049.   might have made to corrupt the interface are:
  4050.  
  4051.  
  4052.   ╖  ``Sent Terminal Binary''
  4053.  
  4054.   ╖  ``Abnormally Exited a Program''
  4055.  
  4056.   ╖  ``Typed ctrl-S by mistake''
  4057.  
  4058.  
  4059.   16.7.2.  Sent Terminal Binary Characters
  4060.  
  4061.   Your terminal will change its characteristics if sent certain escape
  4062.   sequences or control characters.  It you inadvertently try to display
  4063.   a binary file, it might by chance contain such sequences which may put
  4064.   your terminal into some strange mode of operation or even make it
  4065.   unusable.  Always view or edit a binary file with programs designed
  4066.   for that purpose so that this doesn't happen.  Most editors and pagers
  4067.   will handle binary OK so as not to corrupt the interface.  Some may
  4068.   display a message telling you that they can't edit binary.  But using
  4069.   "cat ...." or "cp .... /dev/tty.." where .... is a binary file, will
  4070.   send the binary to the terminal and likely corrupt things.
  4071.  
  4072.   Corruption it can also happen when using a communications program
  4073.   where a remote computer may send binary to your screen.  There are
  4074.   numerous other ways it can happen so be prepared for it.  Even a
  4075.   supposed ASCII file may contain unwanted control codes.
  4076.  
  4077.   To fix this problem reset the terminal.  You may try typing either
  4078.   "reset" or "setterm -reset" (although you may not be able to see what
  4079.   you're typing).  This will send the reset string from the terminfo
  4080.   entry to the terminal.  If the correct set-up has been saved inside
  4081.   the terminal, then pressing a special key(s) (perhaps in setup mode)
  4082.   may restore this setting.  Then you might still need to use "reset" to
  4083.   send the init string if you use it to set up your terminal.
  4084.  
  4085.  
  4086.   16.7.3.  Abnormally Exited a Program
  4087.  
  4088.   Large application programs (such as editors) often use the stty
  4089.   command (or the like) in their code to temporarily change the stty
  4090.   configuration when you are running the program.  This may put the
  4091.   device driver into "raw" mode so that every character you type goes
  4092.   directly thru to the application program.  Echoing by the driver is
  4093.   disabled so that everything you see on the screen comes directly from
  4094.   the application program.  Thus many control commands (such as ^C) may
  4095.   not work within such applications.
  4096.  
  4097.   When you tell such an application to quit, the application program
  4098.   first restores the stty settings to what they were before the
  4099.   application program started.  If you abnormally exit the program (you
  4100.   may guess this has happened when what you type no longer displays on
  4101.   the screen) then you may still be in "raw mode" on the command line.
  4102.  
  4103.   To get out of raw mode and restore the normal stty settings type "stty
  4104.   sane".  However, you must type this just after a "return" and end it
  4105.   with a "return".   But hitting the "return" key doesn't do the job
  4106.   since the "return" code no longer gets translated to the new-line
  4107.   characters that the shell is waiting for.  So just type new-line (^J)
  4108.   instead of "return".  The "sane" terminal interface may not be exactly
  4109.   the same as the normal one but it usually works.  "stty sane" may also
  4110.   be useful to get out of a corrupted interface due to other causes.
  4111.  
  4112.  
  4113.   16.8.  Special (Control) Characters
  4114.  
  4115.   A number of control characters which you may type at the keyboard are
  4116.   "caught" by the terminal driver and perform various tasks.  To see
  4117.   these control commands type: stty -a and look at lines 2-4.  They are
  4118.   tersely explained in the stty manual pages.  They may be changed to
  4119.   different control characters or disabled using the stty command.  Thus
  4120.   your control characters might be different than those described below.
  4121.   They are used for command-line editing, interrupting, scrolling, and
  4122.   to pass the next character thru transparently.
  4123.  
  4124.  
  4125.   16.8.1.  Command-Line Editing
  4126.  
  4127.   While the terminal driver has a few commands for command-line editing,
  4128.   some shells have a built-in real editor (such as "readline" in the
  4129.   Bash shell).  Such an editor is normally on by default so you don't
  4130.   need to do anything to enable it.  If it's available you don't need to
  4131.   learn many of the following commands although they often still work
  4132.   along with the command-line editor.  The most important to learn are
  4133.   ^C (interrupt), ^D, and how to stop scrolling.
  4134.  
  4135.  
  4136.   ╖  Delete-key (shown by stty as ^?) erases the last character
  4137.  
  4138.   ╖  ^U kills (deletes) the line
  4139.  
  4140.   ╖  ^W deletes a word backwards
  4141.  
  4142.   ╖  ^R reprints the line.  Useful mainly on hard copy terminals ??
  4143.  
  4144.  
  4145.   16.8.2.  Interrupting (& Quit, Suspend, EOF, Flush)
  4146.  
  4147.  
  4148.  
  4149.   ╖  ^C interrupts.  Exits the program and returns you to the command-
  4150.      line prompt.
  4151.  
  4152.   ╖  ^/ quits.  Same as interrupt ^C but weaker.  Also dumps a "core"
  4153.      file (which you likely have no use for) into your working
  4154.      directory.
  4155.  
  4156.   ╖  ^Z suspends.  Stops the program and puts it in the background.
  4157.      Type fg to restart it.
  4158.  
  4159.   ╖  ^D end of file.  If typed at the command-line prompt, exits the
  4160.      shell and goes to where you were before the shell started.
  4161.  
  4162.   ╖  ^O flush.  Not implemented in Linux.  Sends output to /dev/null.
  4163.  
  4164.  
  4165.   16.8.3.  Stop/Start Scrolling
  4166.  
  4167.   If what you want to see scrolls off the bottom of the screen, you may
  4168.   prevent this by sending a "stop" signal (^S or Xoff) to the host
  4169.   (provided Xon-Xoff ``Flow Control'' is enabled).  Send a "start signal
  4170.   to resume (^Q or Xon).  Some terminals have a "No Scroll" key which
  4171.   will alternately send Xoff and Xon or possibly send the hardware flow
  4172.   control signals ??   Here's what ctrl-S (^S) and ctrl-Q (^Q) do:
  4173.  
  4174.  
  4175.   ╖  ^S stops scrolling (Xoff)
  4176.  
  4177.   ╖  ^Q resume scrolling (Xon)
  4178.  
  4179.   If you want to both stop scrolling and quit, use ^C.  If you want to
  4180.   stop scrolling to do something else but want to keep the program that
  4181.   was generating the output in memory so you can resume scrolling later,
  4182.   use ^Z suspend.
  4183.  
  4184.   An alternative scrolling method is to pipe the output thru a pager
  4185.   such as more, less, or most.  However, the output might not be
  4186.   standard output but could be error output which the pager doesn't
  4187.   recognize.  To fix this you may need to use redirection "2>&1" to get
  4188.   the pager to work OK.  It is often simpler to just use ^S and ^Q
  4189.   unless you need to scroll backwards.
  4190.  
  4191.   At a PC console (emulating a terminal) you may scroll backwards by
  4192.   using Shift-PageUp.  This is frequently needed since the scrolling is
  4193.   often too fast to stop using ^S.  Once you've scrolled backwards
  4194.   Shift-PageDown will scroll forward again.
  4195.  
  4196.  
  4197.   16.8.4.  Take Next Character Literally
  4198.  
  4199.   ^V sends the next character typed (usually a control character)
  4200.   directly thru the device driver with no action or interpretation.
  4201.   Echoed back are two ASCII characters such as ^C.
  4202.  
  4203.  
  4204.   16.9.  Viewing Latin-1 Files on a 7-bit Terminal
  4205.  
  4206.   Some "text" files are 8-bit Latin1 (see ``Character-Sets'').  If you
  4207.   have a terminal that will not display Latin1 (or don't have the Latin1
  4208.   character set selected), then a bullet symbol will display as a 7,
  4209.   etc.  When viewing manual pages (they are Latin1) you may give the
  4210.   option -7 to man so as to translate the 7's, etc. to something close
  4211.   to a bullet (in ASCII).  Are there some pagers that make these
  4212.   translations ??
  4213.  
  4214.  
  4215.   16.10.  Inspecting the Interface
  4216.  
  4217.   These utility programs will provide information about the terminal
  4218.   interface:
  4219.  
  4220.   ╖  gitkeys: shows what byte(s) each key sends to the host.
  4221.  
  4222.   ╖  tty: shows what tty port you are connected to.
  4223.  
  4224.  
  4225.   ╖  set: shows the value of TERM (the terminfo entry name)
  4226.  
  4227.   ╖  stty -a: shows all stty settings.
  4228.  
  4229.   ╖  setserial -g /dev/tty?? (you fill in ??) shows UART type, port
  4230.      address and IRQ number.
  4231.  
  4232.   ╖  infocmp: shows the current terminfo entry (less comments)
  4233.  
  4234.  
  4235.   16.11.  Changing the Terminal Settings
  4236.  
  4237.   The terminal settings are normally set once when the terminal is
  4238.   installed using the setup procedures in the terminal manual.  However,
  4239.   some settings may be changed when the terminal is in use.  You
  4240.   normally would not give any "stty" of "setserial" commands when the
  4241.   terminal is in use as they are likely to corrupt the terminal
  4242.   interface.  However, there are changes you may make to the appearance
  4243.   of the terminal screen or to its behavior without destroying the
  4244.   integrity of the interface.  Sometimes these changes are made
  4245.   automatically by application programs so you may not need to deal with
  4246.   them.
  4247.  
  4248.   One direct method of making such changes is to use the setup key (or
  4249.   the like) at the terminal and then use menus or the like to make the
  4250.   changes.  To do this you may need to be familiar with the terminal.
  4251.   The other 3 methods send an escape sequence from the computer to the
  4252.   terminal to make the changes.  These 3 examples show different methods
  4253.   of doing this to set reverse video:
  4254.  
  4255.  
  4256.   1. setterm -reverse
  4257.  
  4258.   2. tput -rev
  4259.  
  4260.   3. echo ^[[7m
  4261.  
  4262.  
  4263.   16.11.1.  setterm
  4264.  
  4265.   This is the easiest command to use.  It uses long options (but doesn't
  4266.   use the -- before them).  It consults the terminfo database to
  4267.   determine what code to send.  You may change the color, brightness,
  4268.   linewrap, keyboard repeat, cursor appearance, etc.
  4269.  
  4270.  
  4271.   16.11.2.  tput
  4272.  
  4273.   The "tput" command is similar to "setterm" but instead of using
  4274.   ordinary words as arguments, you must use the abbreviations used by
  4275.   terminfo.  Many of the abbreviations are quite terse and hard to
  4276.   remember.
  4277.  
  4278.  
  4279.   16.11.3.  echo
  4280.  
  4281.   In the example "echo ^[[7m" to set reverse video, the ^[ is the escape
  4282.   character.  To type it type ^V^[ (or ^V followed by the escape key).
  4283.   To use this "echo" method you must find out what code to use from a
  4284.   terminal manual or from terminfo or termcap.  It's simpler to use
  4285.   setterm or tput although echo will execute a little faster.  So you
  4286.   might use echo ... in shell scripts which deal with only one type of
  4287.   terminal.
  4288.  
  4289.  
  4290.  
  4291.   16.11.4.  Saving Changes
  4292.  
  4293.   When you turn off the terminal the changes you made will be lost
  4294.   (unless you saved them in non-volatile terminal memory by going into
  4295.   set-up mode and saving it).  If you want to use them again without
  4296.   having to retype them, put the commands in a shell script or make it a
  4297.   shell function.  Then run it when you want to make the changes.  One
  4298.   way to make the changes semi-permanent is to put the commands in a
  4299.   file that runs each time you login or start up the computer.
  4300.  
  4301.  
  4302.   16.12.  Make a Terminal the Console
  4303.  
  4304.   This is also called a "serial console".  Many messages from the system
  4305.   are normally only sent to the console.  Some of the messages sent to
  4306.   the console at boot-time may also be seen on a terminal after the boot
  4307.   succeeds by typing the command: dmesg.  If the boot fails this will
  4308.   not be of any use.  It's possible to modify the Linux kernel so as to
  4309.   make a terminal serve as the console and receive all the messages from
  4310.   Linux intended for the console.  Unfortunately, the messages from the
  4311.   BIOS will be lost as they will not show on the terminal.  The
  4312.   "console" is now located on a serial port and thus called a "serial
  4313.   console".  Of course it will not have the colors, fonts, graphical
  4314.   capabilities, and keyboard remapping possibilities of the real PC
  4315.   console.
  4316.  
  4317.   Prior to kernel 2.2 you had to manually patch the kernel.  Starting
  4318.   with kernel 2.2, support is built into the kernel provided the kernel
  4319.   has been compiled with a "make config" option to do this.  These two
  4320.   cases are covered in the next two sub-sections:
  4321.  
  4322.  
  4323.   16.12.1.  For Kernels 2.2 or higher
  4324.  
  4325.   The instructions for creating a serial-console are included with
  4326.   source code documentation in the file: serial-console.txt.  Normally,
  4327.   the device /dev/console is linked tty0 (the PC console).  For a
  4328.   serial-console you create a new /dev/console which is a true device
  4329.   (and not linked to something else).  You must also put a statement
  4330.   regarding the serial-console into /etc/lilo.conf and then run lilo.
  4331.   See the above mentioned documentation for details.
  4332.  
  4333.  
  4334.   16.12.2.  For Kernels before 2.2
  4335.  
  4336.   The Linux Journal in April 1997 had an article on patching the Linux
  4337.   kernel.  You add a couple of #defines at the start of
  4338.   src/linux/drivers/char/console.c:
  4339.  
  4340.  
  4341.   #define CONFIG_SERIAL_ECHO
  4342.   #define SERIAL_ECHO_PORT 0x2f8  /* Serial port address  */
  4343.  
  4344.   The following was not in the Linux Journal article.
  4345.   In kernel 2.+ (and earlier ??) you need to also set the baud
  4346.   rate (unless 9600 is OK).  Find these 2 lines:
  4347.  
  4348.   serial_echo_outb(0x00, UART_DLM); /* 9600 baud */
  4349.   serial_echo_outb(0x0c, UART_DLL);
  4350.  
  4351.   Change 0x0c in the line above (depending on the baud rate you want):
  4352.  
  4353.   115200 baud: 0x01       19200 baud: 0x06        2400 baud: 0x30
  4354.    57600 baud: 0x02        9600 baud: 0x0c        1200 baud: 0x60
  4355.    38400 baud: 0x03        4800 baud: 0x18
  4356.  
  4357.   If you currently use the console to select which operating system to
  4358.   boot (using LILO), but would like to do this from a terminal, then you
  4359.   need to add a line to the /etc/lilo.conf file.   See the manual page
  4360.   for lilo.conf and search for "serial=".
  4361.  
  4362.  
  4363.   16.12.3.  Can I Run Linux without a Monitor (PC Console) ?
  4364.  
  4365.   Yes, you use a terminal and make it behave like the console per above.
  4366.   You will likely still need a video card since most BIOSs require one
  4367.   to get the PC started.  Your BIOS may also require a keyboard to get
  4368.   started or it may have an option where you can set the BIOS not to
  4369.   require a keyboard.
  4370.  
  4371.  
  4372.   16.13.  Multiple Sessions
  4373.  
  4374.   The "screen" package runs multiple sessions something like virtual
  4375.   terminals on the console: See ``The Console: /dev/tty?''.  However,
  4376.   this is not like "pages" (``Pages'') since the image of the pages are
  4377.   stored in the host computer and not inside the terminal as they are
  4378.   with "pages".
  4379.  
  4380.  
  4381.   16.14.  Logging Out
  4382.  
  4383.   To log out type either "logout" or "exit".   Under some circumstances
  4384.   your request will be refused, but you should be told why.  One reason
  4385.   for refusal is if you are not in the same shell into which you logged
  4386.   into.  Another way to log out is to press ^D.  Since ^D is also used
  4387.   for other purposes, you may not want it to log you out.  If you set
  4388.   IGNOREEOF in the Bash shell then ^D will no longer log you out.
  4389.  
  4390.  
  4391.   16.15.  Chatting between Terminals, Spying
  4392.  
  4393.   If two persons logged into terminals on the same host computer want to
  4394.   chat with each other they may use the "write" or the "talk" program.
  4395.   Across the internet, chatting may be done using the "lynx" browser.
  4396.   For spying on what someone else is doing at their terminal see the
  4397.   "ttysnoop" program.
  4398.  
  4399.  
  4400.   17.  Trouble-Shooting (software)
  4401.  
  4402.   If you suspect that the problem is a hardware problem, see the
  4403.   ``Repair and Diagnose'' section.  If the problem involves the serial
  4404.   port itself see the Serial-HOWTO.
  4405.  
  4406.   Here is a list of possible problems:
  4407.  
  4408.   ╖  ``Is the Terminal OK ?''  Suspect the terminal is defective.
  4409.  
  4410.   ╖  ``Missing Text'' Either skips over some text or displays some text
  4411.      OK and hangs.
  4412.  
  4413.   ╖  ``Getty Respawning Too Rapidly'' (console error message)
  4414.  
  4415.   ╖  ``Fails Just After Login''
  4416.  
  4417.   ╖  ``Can't Login'' but login prompt is OK.
  4418.  
  4419.   ╖  ``Garbled Login Prompt''
  4420.  
  4421.   ╖  ``No Sign of any Login Prompt''
  4422.  
  4423.   There are two cases where the terminal goes bad.  One is when it's
  4424.   been recently working OK and suddenly goes bad.  This is discussed in
  4425.   the next sub-section.  The other case is where things don't work right
  4426.   just after you install a terminal.  For this case you may skip over
  4427.   the next section.
  4428.  
  4429.  
  4430.   17.1.  Terminal Was Working OK
  4431.  
  4432.   When a formerly working terminal suddenly goes bad it is often easy to
  4433.   find the problem.  That's because if you think about what recently
  4434.   happened it will likely give a clue to the cause of the problem.
  4435.  
  4436.   The problem may be obvious such as an error message when the terminal
  4437.   is first turned on.  If it makes a noise it likely needs repair.  See
  4438.   ``Repair & Diagnose''.  First, think about what has been done or
  4439.   changed recently as it's likely the cause of the problem.  Did the
  4440.   problem happen just after new system software was installed or after a
  4441.   change in the configuration?
  4442.  
  4443.   If the terminal isn't responding correctly (if at all) to what you
  4444.   type to it, you may have a ``Corrupted Terminal Interface''.
  4445.  
  4446.  
  4447.   17.2.  Terminal Newly Installed
  4448.  
  4449.   If you've just connected up a terminal to a computer per instructions
  4450.   and it doesn't work this section is for you.  If a terminal that
  4451.   formerly worked OK doesn't work now then see ``Terminal Was Working
  4452.   OK'' If you suspect that the serial port on your computer may be
  4453.   defective you might try running a diagnostic test program on it.  At
  4454.   present (June 1998) it seems that Linux doesn't yet have such a
  4455.   diagnostic program so you may need to run diagnostics under MS
  4456.   DOS/Windows.  There are some programs to monitor the various serial
  4457.   lines such at DTR, CTS, etc. and this may help.  See ``Serial
  4458.   Monitoring/Diagnostics''
  4459.  
  4460.   One approach is to first see if the the terminal will work by trying
  4461.   to copy a file to the terminal (cp my_file /dev/ttyS?) under the most
  4462.   simple situation.  This means with the modem control lines disabled
  4463.   and at a show speed that doesn't need flow control (make sure that any
  4464.   hardware flow control is disabled).  If this copy works, then make the
  4465.   situation a little more complicated and see if it still works, etc.,
  4466.   etc.  When the trouble appears just after you made a change, then that
  4467.   change is likely the source of the trouble.  Actually, its more
  4468.   efficient (but more complex) to jump from the simple situation to
  4469.   about half way to the final configuration so that the test eliminates
  4470.   about half of the remaining possible causes of the problem.  Then
  4471.   repeat this methodology for the next test.  This way it would only
  4472.   take about 10 tests to find the cause out of a thousand possible
  4473.   causes.  You should deviate a little from this method based on hunches
  4474.   and clues.
  4475.  
  4476.  
  4477.   17.3.  Is the Terminal OK ?
  4478.  
  4479.   A good terminal will usually start up with some words on the screen.
  4480.   If these words convey no error message, its probably OK.  If there is
  4481.   no sign of power (no lights on, etc.) re-plug in the computer power
  4482.   cord at both ends.  Make sure there is power at the wall jack (or at
  4483.   the extension cord end).  Try another power cord if you have one.
  4484.   Make sure the terminal is turned on and that its fuse is not blown.  A
  4485.   blank (or dim) screen may sometimes be fixed by just turning up the
  4486.   brightness and contrast using knobs or a keyboard key in set-up mode.
  4487.   If it still won't work See ``Repair & Diagnose'' for tips on repairing
  4488.   it.
  4489.   If the terminal starts up OK, but you suspect that something may be
  4490.   wrong with it, go into "local mode" where is works like a typewriter
  4491.   and try typing on it.  See ``Local Mode''.
  4492.  
  4493.  
  4494.   17.4.  Missing Text
  4495.  
  4496.   If some text displays on the terminal OK and then it stops without
  4497.   finishing (in the middle of a word, etc.) or if chunks of text are
  4498.   missing, you likely have a problem with flow control.  If you can't
  4499.   figure out right away what's causing it, decrease the speed.  If that
  4500.   fixes it, it's likely a flow control problem.  It may be that flow
  4501.   control is not working at all due to failure to configure it
  4502.   correctly, or due to incorrect cable wiring (for hardware flow
  4503.   control).  See ``Flow Control''
  4504.  
  4505.   If single characters are missing, perhaps the serial port is being
  4506.   overrun by too fast a speed.  Try a slower baud rate.
  4507.  
  4508.   If you are using a baud rate under 1200 (very slow, mostly used for
  4509.   old hard-copy terminals and printers) and the text gets truncated,
  4510.   then the problem may be in the serial device driver.  See Printing-
  4511.   HOWTO under "Serial devices" on how to fix this.
  4512.  
  4513.  
  4514.   17.5.  Getty Respawning Too Rapidly
  4515.  
  4516.   17.5.1.  No Modem Control Voltage
  4517.  
  4518.   If getty can't open and/or use a port because of the lack of a
  4519.   positive modem control voltage on one of the pins, then getty might be
  4520.   killed.  Then, per the instructions in inittab, getty respawns and
  4521.   tries again, only to be killed again, etc., etc.  You may see an error
  4522.   message indicating that due to getty respawning too rapidly it has
  4523.   been temporarily disabled.  Try using the "local" option with getty
  4524.   and/or check the modem control settings and voltages.
  4525.  
  4526.  
  4527.   17.5.2.  Key Shorted
  4528.  
  4529.   Another possible cause of getty respawning is if a keyboard key is
  4530.   shorted, giving the same result as if the key was continuously held
  4531.   down.  With auto-repeat enabled, this "types" thousands characters to
  4532.   the login prompt.  Look for a screen filled with all the same
  4533.   character (in some cases with 2 or more different characters).
  4534.  
  4535.  
  4536.   17.6.  Fails Just After Login
  4537.  
  4538.   If you can login OK but then you can't use the terminal it may be
  4539.   because the starting of the login shell has reconfigured the terminal
  4540.   (to an incorrect setting) by a command which someone put into one of
  4541.   the files that are run when you login and a shell starts.  These files
  4542.   include /etc/profile and  /.bashrc.  Look for a command starting with
  4543.   "stty" or "setserial" and make sure that it's correct.  Even if it's
  4544.   done OK in one initialization file, it may be reset incorrectly in
  4545.   another initialization file that you are not aware of.  Ways to get
  4546.   into the systems to fix it are to use another terminal or console, use
  4547.   a rescue diskette, or type: "linux single" at the lilo prompt which
  4548.   puts you into single user mode without running startup files.
  4549.  
  4550.  
  4551.   17.7.  Can't Login
  4552.  
  4553.   If you get a login prompt but get no response (or perhaps a garbled
  4554.   response) to your login attempts a possible cause is that the
  4555.   communication is bad one-way from the terminal to the computer.  If
  4556.   you're not already using the "local" option with getty, do so to
  4557.   disable the modem control lines.  See ``Getty (in /etc/inittab)''.
  4558.   You might also disable hardware flow control (stty -crtscts) if it was
  4559.   enabled.  If it now works OK then your modem control lines are likely
  4560.   either not wired correctly or there's a mistake in your set-up.  Some
  4561.   terminals allow setting different values (such as baud rate) for send
  4562.   and receive so the receive could be OK but the send bad.
  4563.  
  4564.   If you get a message saying something like "login failed" then if
  4565.   there is no error in typing or in the password, there may be some
  4566.   restrictions on logins which will not allow you to log in.
  4567.   Unfortunately, this message, may not tell you why it failed.  See
  4568.   ``Login Restrictions''
  4569.  
  4570.  
  4571.   17.8.  Garbled Login Prompt
  4572.  
  4573.   This may be due to using the wrong character set, transmission errors
  4574.   due to too high of a baud rate, incompatible baud rates or
  4575.   incompatible parity.  If it's a variety of strange characters you have
  4576.   the wrong character set or a high order bit is being set by mistake.
  4577.   If words are misspelled, try a lower baud rate.  For baud or parity
  4578.   incompatibilities you see a lot of the same "error character" which
  4579.   represents a real character that can't be displayed correctly due to
  4580.   an error in parity or baud rate.
  4581.  
  4582.   If you are using agetty (often just named getty), the agetty program
  4583.   will detect and set parity if you type something.   Try it with a
  4584.   return to see if it fixes possible parity errors.
  4585.  
  4586.  
  4587.   17.9.  No Sign of any Login Prompt
  4588.  
  4589.   This is when nothing at all happens at the terminal, but the terminal
  4590.   seems to be working OK.  One of the first things to do is to make sure
  4591.   that all cable connections are tight and connected correctly.  Other
  4592.   problems could be: A baud rate mismatch, broken hardware, or Getty not
  4593.   running.  At this point two different avenues of approach are (you may
  4594.   pursue more than one at a time).
  4595.  
  4596.  
  4597.   ╖  ``Diagnose Problem from the Console''
  4598.  
  4599.   ╖  Measure Voltages I ``Measure  Voltages''
  4600.  
  4601.  
  4602.   17.9.1.  Diagnose Problem from the Console
  4603.  
  4604.   At the console (or another working terminal), use "top" or "ps -al" to
  4605.   see if getty is running on the port.  Don't confuse it with getty
  4606.   programs running on other ports or on the virtual consoles.  You will
  4607.   not get a login prompt unless getty runs.  If it's running then you
  4608.   may disable it so that you can try to copy a file to the terminal as a
  4609.   test.
  4610.  
  4611.   To disable getty, edit /etc/inittab and comment out the getty command
  4612.   with an initial # so that it will not respawn after you kill it.  Then
  4613.   kill the old getty using the k key while in "top".
  4614.  
  4615.   To copy a short file to the terminal (It might be a good idea to try
  4616.   this near the start of the installation process before setting up
  4617.   getty) use the Linux copy command such as: cp file_name /dev/ttyS1.
  4618.   If it doesn't work, use stty to make the interface as simple as
  4619.   possible with everything disabled (such as hardware flow control:
  4620.   -crtscts; parity, and modem control signals: clocal).  Be sure the
  4621.   baud rates and the bits/byte are the same.  If nothing happens verify
  4622.   that the port is alive with a voltmeter per the next section.
  4623.  
  4624.  
  4625.   17.9.2.  Measure Voltages
  4626.  
  4627.   If you have a voltmeter handy check for -12 V (-5 to -15) at pin 3
  4628.   (receive data) at the terminal side of the null modem cable.  The
  4629.   positive lead of the meter should be connected to a good ground (the
  4630.   metal connectors on the ends of cables are often not grounded).  If
  4631.   there is no such negative voltage then check for it at the transmit
  4632.   pin (TxD) on the computer (see ``DB9-DB25'' for the pin-out).  If it's
  4633.   present there but not at the receive pin (RxD) at the terminal, then
  4634.   the cable is bad (loose connection, broken wire, or not a null modem).
  4635.   If voltage is absent, then the serial port on the computer is dead.
  4636.   Test it with software diagnostics or replace it.
  4637.  
  4638.   If the serial port is alive, you may want to send a file to it (with
  4639.   modem controls disabled) and see if anything gets to it.  To check for
  4640.   a transmitted signal with an analog voltmeter, look at the needle at
  4641.   -12 V when the line is idle.  Then start sending a file (or start
  4642.   getty).  You should see the needle dropping to 0 and fluttering about
  4643.   0 as it measures short-run averages of the bit stream.  You can see
  4644.   this also on the AC scale provided that your meter has a capacitor to
  4645.   block out DC voltages when on the AC scale.  If it doesn't, then the
  4646.   idle DC of -12 V will cause a high false AC reading.  Without a meter,
  4647.   you could connect a good device (such as another terminal or an
  4648.   external  modem) to the serial port and see if it works OK.
  4649.  
  4650.  
  4651.   17.10.  Serial Monitoring/Diagnostics
  4652.  
  4653.   A few Linux programs will monitor the modem control lines and indicate
  4654.   if they are positive (1) or negative (0).
  4655.  
  4656.   ╖  statserial (in Debian distribution)
  4657.  
  4658.   ╖  serialmon (doesn't monitor RTS, CTS, DSR but logs other functions)
  4659.  
  4660.   ╖  modemstat (only works on Linux PC consoles.  Will coexist with the
  4661.      command line)
  4662.  
  4663.      You may already have them.  If not, go to Serial Software
  4664.      <http://sunsite.unc.edu/pub/Linux/system/serial/>.  When using
  4665.      these, bear in mind that what you see is the state of the lines at
  4666.      the host computer.  The situation at the terminal will be different
  4667.      since some wires are often missing from cables while other wires
  4668.      cross over.  As of June 1998, I know of no diagnostic program in
  4669.      Linux for the serial port.
  4670.  
  4671.  
  4672.   17.11.  Local Mode
  4673.  
  4674.   In local mode, the terminal disconnects from the computer and behaves
  4675.   like a typewriter (only it doesn't type on paper but on the screen).
  4676.   Going back into on-line reconnects to the computer allowing you to
  4677.   resume activities at the same point where you left off when you went
  4678.   into "local".  This is useful both for testing the terminal and for
  4679.   educational purposes.  When in local mode you may type escape
  4680.   sequences (starting with the ESC key) and observe what they do.  If
  4681.   the terminal doesn't work correctly in local mode, it's unlikely that
  4682.   it will work correctly when connected to the computer.  If you're not
  4683.   exactly sure what an escape sequence does, you can try it out in local
  4684.   mode.  You might also use it for trying out a terminal that is for
  4685.   sale.  To get into local mode you first enter set-up mode and then
  4686.   select "local" from a menu (or press a certain key).  See ``Getting
  4687.   Into Set-Up (Configuration) Mode''.
  4688.  
  4689.  
  4690.   17.12.  Serial Electrical Test Equipment
  4691.  
  4692.   17.12.1.  Breakout Gadgets, etc.
  4693.  
  4694.   While a multimeter (used as a voltmeter) may be all that you need for
  4695.   just a few terminals, simple special test equipment has been made for
  4696.   testing serial port lines.  Some are called "breakout ... " where
  4697.   breakout means to break out conductors from a cable.  These gadgets
  4698.   have a couple of connectors on them and insert into the serial cable.
  4699.   Some have test points for connecting a voltmeter.  Others have LED
  4700.   lamps which light when certain modem control lines are asserted
  4701.   (turned on).  Still others have jumpers so that you can connect any
  4702.   wire to any wire.  Some have switches.
  4703.  
  4704.   Radio Shack sells (in 1998) a "RS-232 Troubleshooter" or "RS-232 Line
  4705.   Tester" which checks TD, RD, CD, RTS, CTS, DTR, and DSR.  A green
  4706.   light means on (+12 v) while red means off (-12 v).  They also sell a
  4707.   "RS-232 Serial Jumper Box" which permits connecting the pins anyway
  4708.   you choose.
  4709.  
  4710.  
  4711.   17.12.2.  Measuring Voltages
  4712.  
  4713.   Any voltmeter or multimeter, even the cheapest that sells for about
  4714.   $10, should work fine.  Trying to use other methods for checking
  4715.   voltage is tricky.  Don't use a LED unless it has a series resistor to
  4716.   reduce the voltage across the LED.  A 470 ohm resistor is used for a
  4717.   20 ma LED (but not all LED's are 20 ma).  The LED will only light for
  4718.   a certain polarity so you may test for + or - voltages.  Does anyone
  4719.   make such a gadget for automotive circuit testing??  Logic probes may
  4720.   be damaged if you try to use them since the TTL voltages for which
  4721.   they are designed are only 5 volts.  Trying to use a 12 V incandescent
  4722.   light bulb is not a good idea.  It won't show polarity and due to
  4723.   limited output current of the UART it probably will not even light up.
  4724.  
  4725.   To measure voltage on a female connector you may plug in a bent paper
  4726.   clip into the desired opening.  The paper clip's diameter should be no
  4727.   larger than the pins so that it doesn't damage the contact.  Clip an
  4728.   alligator clip (or the like) to the paper clip to connect up.
  4729.  
  4730.  
  4731.   17.12.3.  Taste Voltage
  4732.  
  4733.   As a last resort, if you have no test equipment and are willing to
  4734.   risk getting shocked (or even electrocuted) you can always taste the
  4735.   voltage.  Before touching one of the test leads with your tongue, test
  4736.   them to make sure that there is no high voltage on them.  Touch both
  4737.   leads (at the same time) to one hand to see if they shock you.  Then
  4738.   if no shock, wet the skin contact points by licking and repeat.  If
  4739.   this test gives you a shock, you certainly don't want to use your
  4740.   tongue.
  4741.  
  4742.   For the test for 12 V, Lick a finger and hold one test lead in it.
  4743.   Put the other test lead on your tongue.  If the lead on your tongue is
  4744.   positive, there will be a noticeable taste.  You might try this with
  4745.   flashlight batteries first so you will know what taste to expect.
  4746.  
  4747.  
  4748.   18.  Repair & Diagnose
  4749.  
  4750.   Repairing a terminal has much in common with repairing a monitor
  4751.   and/or keyboard.  Sometimes the built-in diagnostics of the terminal
  4752.   will tell you what is wrong on the screen.  If not, then by the
  4753.   symptoms, one may often isolate the trouble to one of the following:
  4754.   bad keyboard, CRT dead, terminal digital electronics failure.  It's
  4755.   best to have a service manual, but even if you don't have one, many
  4756.   terminals may still be repaired.
  4757.  
  4758.  
  4759.   18.1.  Repair Books & Websites
  4760.  
  4761.   18.1.1.  Books
  4762.  
  4763.   Bigelow, Stephen J.: Troubleshooting & Repairing Computer Monitors,
  4764.   2nd edition, McGraw-Hill, 1997.  Doesn't cover the character
  4765.   generation electronics nor the keyboard.
  4766.  
  4767.  
  4768.   18.1.2.  Websites
  4769.  
  4770.   The FAQ  <http://www.repairfaq.org> for the newsgroup:
  4771.   sci.electronics.repair is long and comprehensive, although it doesn't
  4772.   cover terminals per se.  See the section "Computer and Video
  4773.   Monitors".  Much of this information is applicable to terminals as are
  4774.   the sections: "Testing Capacitors", "Testing Flyback Transformers",
  4775.   etc.  Perhaps in the future, the "info" on repair in this HOWTO will
  4776.   consist mainly of links to the above FAQ (or the like).  Shuford's
  4777.   repair archive
  4778.   <http://www.cs.utk.edu/~shuford/terminal/repair_hints_news.txt> of
  4779.   newsgroup postings on terminal repair is another source of info.
  4780.  
  4781.  
  4782.   18.2.  Safety
  4783.  
  4784.   CRT's use high voltage of up to 30,000 volts for color (less for
  4785.   monochrome).  Be careful not to touch this voltage if the set is on
  4786.   and the cover off.  It probably won't kill you even if you do since
  4787.   the amount of current it can supply is limited.  But it is likely to
  4788.   badly burn and shock you, etc.  High voltage can jump across air gaps
  4789.   and go thru cracked insulation so keep your hands a safe distance from
  4790.   it.  You should notice the well-insulated high voltage cable connected
  4791.   to one side of the picture tube.  Even when the set is off, there is
  4792.   still enough residual voltage on the picture tube cable connection to
  4793.   give you quite a shock.  To discharge this voltage when the set is
  4794.   unplugged use a screwdriver (insulated handle) with the metal blade
  4795.   grounded to the picture tube ground cable with a jumper wire.  Don't
  4796.   use chassis ground.
  4797.  
  4798.   The lower voltages (of hundreds of volts) can be even more dangerous
  4799.   since they are not current limited.  It is even more dangerous if your
  4800.   hands are wet or if you are wearing a metal watchband, ring or the
  4801.   like.  In rare cases people have been killed by it so be careful.  The
  4802.   lowest voltages of only several volts on digital circuitry are fairly
  4803.   safe but don't touch anything (except with a well insulated tool)
  4804.   unless you know for sure.
  4805.  
  4806.  
  4807.   18.3.  Appearance of Display
  4808.  
  4809.   If the display is too dim, turn up the brightness and/or contrast.
  4810.   using knobs on the exterior of the unit (if they exist).  If the
  4811.   width, height or centering is incorrect, there are often control knobs
  4812.   for these.  For some older terminals one must press an arrow key (or
  4813.   the like) in set-up mode.
  4814.  
  4815.   You may need to remove the cover to make adjustments, especially on
  4816.   older models.  You could arrange things so that a large mirror is in
  4817.   front of the terminal so as to view the display in the mirror while
  4818.   making adjustments.  The adjustments to turn may be on a printed
  4819.   circuit board.  While a screwdriver (possibly Phillips-head) may be
  4820.   all that's needed, inductors may require special TV alignment tools
  4821.   (plastic hex wrenches, etc.).  The abbreviated name of the adjustment
  4822.   should be printed on the circuit board.  For example, here are some
  4823.   such names:
  4824.  
  4825.  
  4826.   ╖  V-Size adjusts the Vertical height (Size)
  4827.  
  4828.   ╖  H-Size adjusts the Horizontal width (Size).  It may be an inductor.
  4829.  
  4830.   ╖  V-Pos adjusts the Vertical Position
  4831.  
  4832.   ╖  H-Pos adjusts the Horizontal Position
  4833.  
  4834.   ╖  V-Lin adjusts Vertical Linearity (Use if width of scan lines
  4835.      differs at the top and bottom of the screen)
  4836.  
  4837.   ╖  V-Hold adjusts Vertical Hold (Use if screen is uncontrollable
  4838.      scrolling)
  4839.  
  4840.   ╖  Bright adjusts brightness (an external knob may also exist)
  4841.  
  4842.   ╖  Sub-Bright adjusts brightness of subdued intensity mode (often the
  4843.      normal mode: dimmer than bold or bright mode).
  4844.  
  4845.   Changing linearity may change the size so that it will need to be
  4846.   readjusted.  A terminal that has been stored for some time may have a
  4847.   small display rectangle on the screen surrounded by a large black
  4848.   border.  If it's difficult to adjust, wait a while before adjusting it
  4849.   since it will likely recover some with use (the black borders will
  4850.   shrink).
  4851.  
  4852.  
  4853.   18.4.  Diagnose
  4854.  
  4855.   18.4.1.  Terminal Made a Noise
  4856.  
  4857.   If the terminal made some noise just before it failed (or when you
  4858.   turn it on after it failed) that noise is a clue to what is wrong.  If
  4859.   you hear a sparking noise or see/smell smoke, immediately turn the
  4860.   terminal off to prevent further damage.  The problem is likely in the
  4861.   high voltage power supply of several thousand volts.  Remove the cover
  4862.   and if the bad spot is not evident, turn it on again for a short time
  4863.   in a dimly lit room to look for arcing.  The high voltage cable (runs
  4864.   between the flyback transformer and the side of the picture tube) may
  4865.   have broken insulation that arcs to ground.  Fix it with high-voltage
  4866.   insulating dope, or special electrical tape designed say for 10,000
  4867.   volts.
  4868.  
  4869.   The flyback transformer (high voltage) may make only a faint clicking
  4870.   or sparking noise if it fails.  You may not hear it until you turn the
  4871.   terminal off for a while to rest and then turn it back on again.  To
  4872.   track down the noise you may use a piece of small rubber tubing (such
  4873.   as used in automobiles) as a stethoscope  to listen to it.  But while
  4874.   you are listening for the noise, the terminal is suffering more damage
  4875.   so try find it fast (but not so fast as to risk getting shocked).
  4876.  
  4877.   A short in the power supply may cause a fuse to blow with a pop.
  4878.   Replacing a blown fuse may not solve the problem as the same short may
  4879.   blow the fuse again.  Inspect for any darkened spots due to high heat
  4880.   and test those components.  Shorted power transistors may cause the
  4881.   fuse to blow.  They may be tested with a transistor checker or even
  4882.   with an ohm-meter.  Use the low ohm scale on an ohm-meter so that the
  4883.   voltage applied by the meter is low.  This will reduce the possible
  4884.   damage to good components caused by this test voltage.
  4885.   If the terminal has been exposed to dampness such as being stored in a
  4886.   damp place or near a kitchen with steam from cooking, a fix may be to
  4887.   dry out the unit.  Heating a "failed" flyback transformer with a blow
  4888.   dryer for several minutes may restore it.
  4889.  
  4890.  
  4891.   18.4.2.  Terminal Made No Noise
  4892.  
  4893.   A blank screen may be due to someone turning the brightness control to
  4894.   the lowest level or to aging.  The next thing to do is to check the
  4895.   cables for loose or broken connections.  If there is no sign of power,
  4896.   substitute a new power cord after making sure that the power outlet on
  4897.   the wall is "hot".
  4898.  
  4899.   If the keyboard is suspected, try it on another terminal of the same
  4900.   type or substitute a good keyboard.  Wiggle the keyboard cable ends
  4901.   and the plug.  Wires inside cables may break, especially near their
  4902.   ends.  If the break is verified by wiggling it (having the problem go
  4903.   on and off in synchronization with the wiggles), then one may either
  4904.   get a new cable or cut into the cable and re-solder the breaks, etc.
  4905.  
  4906.   One of the first things to do if the keyboard works is to put the
  4907.   terminal into ``Local Mode''.  If it works OK in local, then the
  4908.   problem is likely in the connection to the host computer (or incorrect
  4909.   interface) or in the UART chips of the terminal.
  4910.  
  4911.   By carefully inspecting the circuitry, one may often find the cause of
  4912.   the problem.  Look for discoloration, cracks, etc.  An intermittent
  4913.   problem may sometimes be found by tapping on components with a ball-
  4914.   point pen (not the metal tip of course).  A break in the conductor of
  4915.   a printed circuit board may sometimes be revealed by flexing the
  4916.   board.  Solder that looks like it formed a drop or a solder joint with
  4917.   little solder may need re-soldering.  Soldering may heat up
  4918.   transistors (and other components) and damage them so use a heat sink
  4919.   if feasible.
  4920.  
  4921.   If you have a common brand of terminal, you may be able to search
  4922.   newsgroup postings on the Internet to find out what the most frequent
  4923.   types of problems are for your terminal and perhaps information on how
  4924.   to fix them.
  4925.  
  4926.   To see if the digital electronics work, try (using a good keyboard)
  4927.   typing at the bad terminal.   Try to read this typing at a good
  4928.   terminal (or the console) using the copy command or with a terminal
  4929.   communication program such as Minicom.  You may need to hit the return
  4930.   key at the terminal in order to send a line.  One may ask the bad
  4931.   terminal for its identity etc. from another terminal.  This will show
  4932.   if two-way communication works.
  4933.  
  4934.  
  4935.   18.5.  Error Messages on the Screen
  4936.  
  4937.   You are in luck if you see an error message on the screen.  This
  4938.   usually happens when you first turn the terminal on.
  4939.  
  4940.  
  4941.   18.5.1.  Keyboard Error
  4942.  
  4943.   This usually means that the keyboard is not plugged in, or that the
  4944.   connection is loose.  For more serious problems see ``Keyboards''
  4945.  
  4946.  
  4947.   18.5.2.  Checksum Error in NVR
  4948.  
  4949.   NVR is "Non-Volatile RAM".  This means that the NVR where the set-up
  4950.   information is stored has become corrupted.  The terminal will likely
  4951.   still work but the configuration that was last saved when someone last
  4952.   configured the terminal has likely been lost.  Try configuring again
  4953.   and then save it.  It might work.  On very old terminals (early
  4954.   1980's) there was a battery-powered CMOS to save the configuration so
  4955.   in this case the problem could be just a dead battery.  Sometimes the
  4956.   EEPROM chip (no battery needed) goes bad after too many saves.  It may
  4957.   be hard to find.  If you can't fix it you are either stuck with the
  4958.   default configuration or you may have escape sequences sent to the
  4959.   terminal when you start it up to try to configure it.
  4960.  
  4961.  
  4962.   18.6.  Capacitors
  4963.  
  4964.   Electrolytic capacitors have a metal shell and are may become weak or
  4965.   fail if they set for years without being used.  Sometimes just leaving
  4966.   the terminal on for a while will help partially restore them.  If you
  4967.   can, exercise any terminals you have in storage by turning them on for
  4968.   a while every year or two.
  4969.  
  4970.  
  4971.   18.7.  Keyboards
  4972.  
  4973.   18.7.1.  Interchangeability
  4974.  
  4975.   The keyboards for terminals are not the same as keyboards for PC's.
  4976.   The difference is not only in the key layout but in the codes
  4977.   generated when a key is pressed.  Also, keyboards for various brands
  4978.   and models of terminals are not always interchangeable with each
  4979.   other.  Sometimes one get an "incompatible" keyboard to partially work
  4980.   on a terminal.  All the ASCII keys will work OK, but special keys such
  4981.   as set-up and break will not work correctly.
  4982.  
  4983.  
  4984.   18.7.2.  How They Work
  4985.  
  4986.   Most keyboards just make a simple contact between two conductors when
  4987.   you press a key.  Electronics inside a chip in the keyboard converts
  4988.   this contact closure into a code sent over the keyboard's external
  4989.   cable.  Instead of having a separate wire (or conductor) going from
  4990.   each key to the chip, the following type scheme is used.  Number the
  4991.   conductors say from 1-10 and A-J.  For example: conductor 3 goes to
  4992.   several keys and conductor B goes to several keys, but only one key
  4993.   has both conductors 3 and B going to it.  When that key is pressed, a
  4994.   short circuit is established between 3 and B.  The chip senses this
  4995.   short and knows what key has been pressed.  Such a scheme reduces the
  4996.   number of conductors needed (and  reduces the number of pins needed on
  4997.   the chip).  It's a similar scheme to what is called a "crossbar
  4998.   switch".
  4999.  
  5000.  
  5001.   18.7.3.  One Press Types 2 Different Characters
  5002.  
  5003.   If, due to a defect, conductors 3 and 4 become shorted together then
  5004.   pressing the 3-B key will also short 4 and B and the chip will think
  5005.   that both keys 3-B and 4-B have been pressed.  This is likely to type
  5006.   2 different characters when all you wanted was one character.
  5007.  
  5008.  
  5009.   18.7.4.  Modern vs Old Keyboards
  5010.  
  5011.   While the modern keyboard and the old fashioned type look about the
  5012.   same, the mechanics of operation are different.  The old ones have
  5013.   individual key switches under the key-caps with each switch enclosed
  5014.   in a hard plastic case.  The modern ones use large flexible plastic
  5015.   sheets (membrane) the size of the keyboard.  A plastic sheet with
  5016.   holes in it is sandwiched between two other plastic sheets containing
  5017.   printed circuits (including contact points).  When you press a key,
  5018.   the two "printed" sheets are pressed together at a certain point,
  5019.   closing the contacts printed on the sheets at that point.
  5020.  
  5021.  
  5022.   18.7.5.  Keyboard Doesn't Work At All
  5023.  
  5024.   If none of the keys work try another keyboard (if you have one) to
  5025.   verify that the keyboard is the problem.  The most likely cause is a
  5026.   broken wire inside the cord (cable) that connects it to the terminal.
  5027.   The most likely location of the break is at either end of the cord.
  5028.   Try wigging the ends of the cord while tapping on a key to see if it
  5029.   works intermittently.  If you find a bad spot, you may carefully cut
  5030.   into the cord with a knife at the bad spot and splice the broken
  5031.   conductor.  Sometimes just a drop of solder will splice it.  Seal up
  5032.   the cord with electrical tape, glue, or caulk.
  5033.  
  5034.  
  5035.   18.7.6.  Typing b Displays bb, etc. (doubled)
  5036.  
  5037.   If all characters appear double there is likely nothing wrong with the
  5038.   keyboard.  Instead, your terminal has likely been incorrectly set up
  5039.   for half-duplex (HDX or local echo=on) and every character you type is
  5040.   echoed back both from the electronics inside your terminal and from
  5041.   your host computer.  If the two characters are not the same, there may
  5042.   be a short circuit inside your keyboard.  See ``One Press Types 2
  5043.   Different Characters''
  5044.  
  5045.  
  5046.   18.7.7.  The Keyboard Types By Itself
  5047.  
  5048.   If a key is shorted out it is likely to type out a large number of the
  5049.   same character if auto-repeat is enabled.  If more than one key is
  5050.   shorted out then repeating sequences of a few characters will be
  5051.   typed.  This may cause getty to respawn too fast if it happens at the
  5052.   login prompt.  See ``Key Shorted''.  The fix is to clean the contacts
  5053.   per ``Cleaning Keyboard Contacts''.
  5054.  
  5055.  
  5056.   18.7.8.  Liquid Spilled on the Keyboard
  5057.  
  5058.   If water or watery liquid has been spilled on the keyboard (or if it
  5059.   was exposed to rain, heavy dew, or dampness) some keys may not work
  5060.   right.  The dampness may cause a key to short out (like it was pressed
  5061.   down all the time) and you may see the screen fill up with that letter
  5062.   if auto-repeat is enabled.  If it's gotten wet and then partially (or
  5063.   fully) dried out, certain keys may not work due to deposits on the
  5064.   contact surfaces.  For the modern type of keyboard, one may readily
  5065.   take apart the plastic sheets inside and dry/clean them.  For the old
  5066.   type one may let it dry out in the sun or oven (low temp.).  When it's
  5067.   dry it may still need contact cleaner on some keys as explained below.
  5068.  
  5069.  
  5070.   18.7.9.  Cleaning Keyboard Contacts
  5071.  
  5072.   18.7.9.1.  Keyboards with Membranes
  5073.  
  5074.   On some newer keyboards, the plastic sheets (membranes) are easy to
  5075.   remove for inspection and cleaning if needed.  You only need to remove
  5076.   several screws to take apart the keyboard and get to the sheets.  On
  5077.   some old IBM keyboards the sheets can't be removed without breaking
  5078.   off many plastic tabs which will need to be repaired with glue to put
  5079.   back (probably not worthwhile to repair).  Such a keyboard may
  5080.   sometimes be made to work by flexing, twisting, and/or pounding the
  5081.   assembly containing the plastic sheets.
  5082.  
  5083.   18.7.9.2.  Keyboards with Individual Switches
  5084.  
  5085.   What follows is for older keyboards that have separate hard plastic
  5086.   switches for each key.  Before going to all the work of cleaning
  5087.   electrical contacts first try turning the keyboard upside-down and
  5088.   working the bad keys.  This may help dislodge dirt, especially if you
  5089.   press the key hard and fast to set up vibration.
  5090.  
  5091.   Often the key-caps may be removed by prying them upward using a small
  5092.   screwdriver as a lever while preventing excessive tilting with a
  5093.   finger.  There exists a special tool known as keycap puller but you
  5094.   can get by without it.  (Warning: Key-caps on modern keyboards don't
  5095.   pry up.)  The key-cap may tilt a bit and wobble as it comes loose.  It
  5096.   may even fly up and onto the floor.  Then you have two choices on how
  5097.   to clean the contacts: Use contact cleaner spray directly on top of
  5098.   the key switch, or take the key switch apart and clean it.  Still
  5099.   another choice is to replace the key switch with a new or used one.
  5100.  
  5101.   Directly spraying contact cleaner or the like (obtained at an
  5102.   electronics store) into the top of the key switch is the fastest
  5103.   method but may not work and it also might damage the plastic.  Before
  5104.   spraying, clean the area next to the switch rods.  With the keyboard
  5105.   live (or with the key contacts connected to an ohm-meter) use the tube
  5106.   which came with the spray to squirt cleaner so it will get inside the
  5107.   key switch.  Don't let the cleaning liquid get under nearby keys where
  5108.   it may pick up dust and then seep (with the dust) into other key
  5109.   switches.  If you make this mistake you may fix one key but damage
  5110.   nearby keys.
  5111.  
  5112.   Possible tilt the keyboard so that the cleaner flows into the
  5113.   contacts.  For the CIT101e terminal with an Alps keyboard, this means
  5114.   tilting the digit row up toward the ceiling.  Work the key switch up
  5115.   and down with a pen or small screwdriver handle to avoid getting the
  5116.   toxic cleaner liquid on your skin (or wear gloves).  Finally turn the
  5117.   keyboard upside-down while working the key to drain off remaining
  5118.   cleaner.  The more cleaner you squirt in the more likely it will fix
  5119.   it but it is also more likely to do more damage to the plastic, so use
  5120.   what you think is just enough to do the job.  Once the key works OK,
  5121.   work it up and down a little more and test it a half minute later,
  5122.   etc. to make sure it will still work OK.
  5123.  
  5124.   Sometimes a key works fine when the contacts inside are saturated with
  5125.   contact cleaner liquid, but when the liquid dries a few minutes later
  5126.   then the resulting scale on the contacts prevents good contact and the
  5127.   key works erratically (if at all).  Operating the key when the liquid
  5128.   is drying inside may help.  Some switches have the contacts nearly
  5129.   sealed inside so little if any contact cleaner reaches the contacts.
  5130.   The cleaner that does get to the contacts may carry contamination with
  5131.   it (cleaning around the tops before spraying helps minimize this).
  5132.  
  5133.   If you need to disassemble the key switch, first inspect it to see how
  5134.   it is installed and comes apart.  Sometimes one may remove the cover
  5135.   of the switch without removing the switch from the keyboard.  To do
  5136.   this pry up (or pull up) the top of the key switch after prying apart
  5137.   thin plastic tabs that retain it.  Don't pry too hard or you may break
  5138.   the thin plastic.  If this can't be done, you may have to unsolder the
  5139.   switch and remove it in order to take it apart (or replace it).  Once
  5140.   the switch has been taken apart you still may not be able to see the
  5141.   contacts if the contact surfaces are sandwiched together (nearly
  5142.   touching).  You may get contact cleaner on the contacts by slightly
  5143.   prying apart the conducting surfaces and squirting cleaner between
  5144.   them.  There may be some kind of clip holding the contact surfaces
  5145.   together which needs to be removed before prying these surfaces apart.
  5146.   With cleaner on the contacts, work them.  Tilting the keyboard or
  5147.   inverting it may help.  Take care not to loose small parts as they may
  5148.   fly up into the air when taking apart a key switch.
  5149.   19.  Appendix A: General
  5150.  
  5151.   19.1.  List of Linux Terminal Commands
  5152.  
  5153.   19.1.1.  Sending a Command to the Terminal
  5154.  
  5155.  
  5156.   ╖  ``setterm'': long options
  5157.  
  5158.   ╖  ``tput'': terse options
  5159.  
  5160.   ╖  tset: initializes only
  5161.  
  5162.   ╖  clear: clears screen
  5163.  
  5164.   ╖  reset: sends reset string
  5165.  
  5166.  
  5167.   19.1.2.  Configuring the Terminal Device Driver
  5168.  
  5169.  
  5170.   ╖  ``setserial'':
  5171.  
  5172.   ╖  ``stty''
  5173.  
  5174.  
  5175.   19.1.3.  Terminfo
  5176.  
  5177.  
  5178.   ╖  ``Terminfo Compiler (tic)'' terminfo compiler & translator
  5179.  
  5180.   ╖  toe: shows list of terminals for which you have terminfo files
  5181.  
  5182.   ╖  ``infocmp'' compares or displays terminfo entries
  5183.  
  5184.  
  5185.   19.1.4.  Other
  5186.  
  5187.  
  5188.   ╖  gitkeys: shows what bytes each key sends to the host.
  5189.  
  5190.   ╖  tty: shows what tty port you are connected to.
  5191.  
  5192.   ╖  set (or tset -q): shows the value of TERM, the terminfo entry name
  5193.  
  5194.   ╖  ``tset'': sets TERM interactively and initializes
  5195.  
  5196.  
  5197.   19.2.  The Internet and Books
  5198.  
  5199.   19.2.1.  Terminal Info on the Internet
  5200.  
  5201.  
  5202.  
  5203.   ╖  Shuford's Website
  5204.      <http://www.cs.utk.edu/~shuford/terminal_index.html> at the
  5205.      University of Tennessee has a great deal of useful information
  5206.      about text terminals.
  5207.  
  5208.   ╖  Boundless <http://www.boundless.com/textterm/> purchased the VT and
  5209.      Dorio terminal business from DEC.  To get Specs select either ADDS,
  5210.      VT, or DORIO links.  Then select a "data sheet" link.  Then on the
  5211.      data sheet select the "Go to Specs" link.
  5212.  
  5213.   ╖  Wyse <http://www.wyse.com/terminal/> is a major manufacturer of
  5214.      terminals.  See also Old Wyse  terminal Specs
  5215.      <http://www.wyse.com/service/faq/wysetter.htm>
  5216.  
  5217.   ╖  Escape Seqs.; N. America <http://www.pericom-
  5218.      usa.com/twdocs/doc/twproae.htm> or Escape Seqs.; Europe
  5219.      <http://www.pericom.co.uk/teemworld/doc/twproae.htm> is a list of
  5220.      escape sequences (and control codes) for some terminal emulations
  5221.      (including VT 100, 300, 420, and Wyse).
  5222.  
  5223.   ╖  comp.terminals is the newsgroup for terminals
  5224.  
  5225.  
  5226.   19.2.2.  Books Related to Terminals
  5227.  
  5228.  
  5229.  
  5230.   ╖  EIA-232 serial port see ``EIA-232 (RS-232) Books''.
  5231.  
  5232.   ╖  Repair see ``Repair Books &  Websites''.
  5233.  
  5234.   ╖  Terminfo database see ``Termcap Documents''
  5235.  
  5236.  
  5237.   19.2.3.  Entire Books on Terminals
  5238.  
  5239.   As far as I know, there is no satisfactory book on text terminals
  5240.   (unless you are interested in antique terminals of the 1970's).
  5241.  
  5242.   ╖  Handbook of Interactive Computer Terminals by Duane E. Sharp;
  5243.      Reston Publishing Co. 1977. (mostly obsolete)
  5244.  
  5245.   ╖  Communicating with Display Terminals by Roger K. deBry; McGraw-Hill
  5246.      1985.  (mostly on IBM synchronous terminals)
  5247.  
  5248.   The "HANDBOOK ... " presents brief specifications of over 100
  5249.   different models of antique terminals made in the early 1970's by over
  5250.   60 different companies.  It also explains how they work physically but
  5251.   incorrectly shows a diagram for a CRT which uses electrostatic
  5252.   deflection of the electron beam (p. 36).  Terminals actually used
  5253.   magnetic deflection (even in the 1970's).  This book explains a number
  5254.   of advanced technical concepts such as "random scan" and "color
  5255.   penetration principle".
  5256.  
  5257.   The "COMMUNICATING ... " book in contrast to the "Handbook ... "
  5258.   ignores the physical and electronic details of terminals.  It has an
  5259.   entire chapter explaining binary numbers (which is not needed in a
  5260.   book on terminals since this information is widely available
  5261.   elsewhere).  It seems to mostly cover old IBM terminals (mainly the
  5262.   3270) in block and synchronous modes of operation.  It's of little use
  5263.   for the commonly used ANSI terminals used today on Unix-like systems.
  5264.   Although it does discuss them a little it doesn't show the various
  5265.   wiring schemes used to connect them to serial ports.
  5266.  
  5267.  
  5268.   19.2.4.  Books with Chapters on Terminals
  5269.  
  5270.   These chapters cover almost nothing about the terminals themselves and
  5271.   their capabilities.  Rather, these chapters are mostly about how to
  5272.   set up the computer (and its terminal driver) to work with terminals.
  5273.   Due to the differences of different Unix-like systems, much of the
  5274.   information does not not apply to Linux.
  5275.  
  5276.  
  5277.   ╖  Unix Power Tools by Jerry Peck et. al.  O'Reilly 1998.  Ch. 5
  5278.      Setting Up Your Terminal, Ch. 41: Terminal and Serial Line
  5279.      Settings, Ch. 42: Problems With Terminals
  5280.  
  5281.   ╖  Advanced Programming in the Unix Environment by W. Richard Stevens
  5282.      Addison-Wesley, 1993.  Ch. 11: Terminal I/O, Ch. 19: Pseudo
  5283.      Terminals
  5284.  
  5285.   ╖  Essential System Administration by Aleen Frisch, 2nd ed.  O'Reilly,
  5286.      1998.  Ch. 11: Terminals and Modems.
  5287.  
  5288.   The "UNIX POWER TOOLS" book has 3 short chapters on text terminals.
  5289.   It covers less ground than this HOWTO but gives more examples to help
  5290.   you.
  5291.  
  5292.   The "ADVANCED PROGRAMMING ... " Chapter 11 covers only the device
  5293.   driver included in the operating system to deal with terminals.  It
  5294.   explains the parameters one gives to the stty command to configure the
  5295.   terminal.
  5296.  
  5297.   The "ESSENTIAL SYSTEM ..." book's chapter has more about terminals
  5298.   than modems.  It seems well written.
  5299.  
  5300.  
  5301.   19.3.  Non-Linux OS's
  5302.  
  5303.   The configuration of the host computer for terminals for non-Linux
  5304.   operating systems is usually significantly different than for Linux.
  5305.   Here are some links to on-line manuals for Unix-like systems.
  5306.  
  5307.  
  5308.   ╖  SCO's OpenServer Adding Serial Terminals
  5309.      <http://www2.sco.com:1996/HANDBOOK/serial_terminal_adding.html> in
  5310.      SCO OpenServer Handbook.
  5311.  
  5312.   ╖  Hewlett-Packard's HP-UX Configuring Terminals and Modems
  5313.      <http://www.software.hp.com/OS_transition/DOCS/PERIPH/TERMS3.HTM>
  5314.  
  5315.  
  5316.  
  5317.   20.  Appendix B: Escape Sequence Commands Terminology
  5318.  
  5319.   These are sometimes called "control sequences".  This section of Text-
  5320.   Terminal-HOWTO is incomplete (and may never be complete as there are
  5321.   such a huge number of control sequences).  This section is for
  5322.   reference and perhaps really belongs in something that would be called
  5323.   "Text-Terminal-Programming-HOWTO".
  5324.  
  5325.   An example of an ANSI standard escape sequence is ESC[5B which moves
  5326.   the cursor down 5 lines.  ESC is the Escape character.  The parameter
  5327.   5 is included in the sequence.  If it were 7 the cursor would move
  5328.   down 7 lines, etc.  A listing for this sequence as "move cursor down x
  5329.   lines: ESC[xB" is easy to to understand.  But command jargon such as:
  5330.   "tertiary device attribute request" is less comprehensible.  This
  5331.   section will try to explain some of the more arcane jargon used for
  5332.   escape sequence commands.  A full listing (including the escape
  5333.   sequence codes for the ANSI standard) is a "wish list" project.  Since
  5334.   many escape sequences do the same thing as is done when setting up the
  5335.   terminal with ``Set-Up Options'', such escape sequences options will
  5336.   not be repeated here.
  5337.  
  5338.  
  5339.   20.1.  Esc Sequence List
  5340.  
  5341.   For a list of many (but not all) escape sequences for various
  5342.   terminals see Escape Seqs.; N. America <http://www.pericom-
  5343.   usa.com/twdocs/doc/twproae.htm> or Escape Seqs.; Europe
  5344.   <http://www.pericom.co.uk/teemworld/doc/twproae.htm>.  These are  used
  5345.   for terminal emulation and are not always the same as on the
  5346.   corresponding real terminal..  A list for VT (not maintained) may be
  5347.   found at Emulators FAQ <http:/www.cs.ruu.nl/wais/html/na-
  5348.   dir/emulators-faq/part3.html>.  Search for "VT".
  5349.  
  5350.  
  5351.   20.2.  8-bit Control Codes
  5352.  
  5353.   Table of 8-bit DEC control codes (in hexadecimal).  Work on VT2xx or
  5354.   later.  CSI is the most common.
  5355.  
  5356.   ACRONYM  FULL_NAME                      HEX     REPLACES
  5357.   IND Index (down one line)               84      ESC D
  5358.   NEL Next Line                           85      ESC E
  5359.   RI  Reverse Index (one line up)         8D      ESC M
  5360.   SS2 Single Shift 2                      8E      ESC N
  5361.   SS3 Single Shift 3                      8F      ESC O
  5362.   DCS Device Control String               90      ESC P
  5363.   CSI Control Sequence Introducer)        9B      ESC [
  5364.   ST  String Terminator                   9C      ESC \
  5365.  
  5366.  
  5367.  
  5368.  
  5369.   20.3.  Printer Esc
  5370.  
  5371.  
  5372.  
  5373.   ╖  Auto Print on/off: When on, data from the host is also teed (sent)
  5374.      to the printer port of the terminal (and also shows on the terminal
  5375.      screen).
  5376.  
  5377.   ╖  Print Controller on/off: When on, data from the host is sent only
  5378.      to the printer (nothing shows on the terminal screen).
  5379.  
  5380.  
  5381.   20.4.  Reports
  5382.  
  5383.   These sequences are usually a request sent from the host to request a
  5384.   report from the terminal.  The terminal responds by sending a report
  5385.   (actually another escape sequence) to the host which has embedded in
  5386.   it certain values telling the host about the current state of the
  5387.   terminal.  In some cases a report may be sent to the host even if it
  5388.   wasn't asked for.  This sometimes happens when set-up is exited.  By
  5389.   default no unsolicited reports should be sent.
  5390.  
  5391.  
  5392.   ╖  Request for Status (Report Operating Status):  Meaning of replies
  5393.      for VT100 is either "I'm OK" or "I'm not OK"
  5394.  
  5395.   ╖  Request for Device Attributes:  The "device" is usually the
  5396.      printer.  Is there a printer?  Is it ready?
  5397.  
  5398.   ╖  Reqest for Tertiary Device Attributes (VT):  Reply is report that
  5399.      was entered during set-up.  The tertiary device is the 3rd device
  5400.      (the printer or auxiliary port device ??).  The 1st device may be
  5401.      the host computer and the 2nd device the terminal.
  5402.  
  5403.   ╖  Request for Terminal Parameters:  What is the parity, baud rate,
  5404.      byte width, etc.  This request doesn't seem to make much sense,
  5405.      since if the host didn't already know this it couldn't communicate
  5406.      with the terminal or send a reply.
  5407.  
  5408.  
  5409.  
  5410.  
  5411.  
  5412.  
  5413.   20.5.  Cursor Movements
  5414.  
  5415.   The cursor is where the next character received from the host will be
  5416.   displayed.  Most of the cursor movements are self-explanatory.  "index
  5417.   cursor" means to move the cursor down one line.  Cursor movements may
  5418.   be relative to the current position such as "move 4 spaces left" or
  5419.   absolute such as "move to row 3, column 39".  Absolute is called
  5420.   "Direct Cursor Positioning" or "Direct Cursor Addressing".
  5421.  
  5422.   The home position is row 1 col. 1 (index origin is 1).  But where this
  5423.   home position is on the physical screen is not completely clear.  If
  5424.   "Cursor Origin Mode" = "Relative Origin Mode" is set, then home is at
  5425.   the top of the scrolling region (not necessarily the top of the
  5426.   screen) at the left edge of the screen.  If "Absolute Origin Mode" is
  5427.   set (the same as unsetting any of the two modes in the previous
  5428.   sentence) then home is at the upper left corner of the screen.  On
  5429.   some old terminals if "Cursor Origin Mode" is set it means that it's
  5430.   relative.
  5431.  
  5432.  
  5433.   20.6.  Pages (definition)
  5434.  
  5435.   See ``Pages'' for an explanation of pages.  There are a number of
  5436.   escape sequences to deal with pages.  Text may be copied from one page
  5437.   to another and one may move the cursor from page to page.  Switching
  5438.   pages may or may not be automatic: when the screen becomes full (page
  5439.   1) then more data from the host goes to page 2.  The cursor may only
  5440.   be on one page at a time and characters which are sent to the terminal
  5441.   go there.  If that page is not being displayed, new text will be
  5442.   received by the terminal and go into display memory, but you will not
  5443.   see it (until the terminal is switched to that page).
  5444.  
  5445.  
  5446.   21.  Appendix C: Serial Communications on EIA-232 (RS-232)
  5447.  
  5448.   21.1.  Intro to Serial Communication
  5449.  
  5450.   (Eventually, much of this section should be put into the Serial-
  5451.   HOWTO.)  Text terminals on Unix-like systems (and on PC's) are usually
  5452.   connected to an asynchronous 232 serial port of a computer.  It's
  5453.   usually a RS-232-C, EIA-232-D, or EIA-232-E.  These three are almost
  5454.   the same thing.  The original RS prefix became EIA (Electronics
  5455.   Industries Association) and later EIA/TIA after EIA merged with TIA
  5456.   (Telecommunications Industries Association).  The EIA-232 spec
  5457.   provides also for synchronous (sync) communication but the hardware to
  5458.   support sync is almost always missing on PC's.  The RS designation is
  5459.   obsolete but is still in use.  EIA will be used in this article.
  5460.  
  5461.   The serial port is more than just a physical connector on the back of
  5462.   a computer or terminal.  It includes the associated electronics which
  5463.   must produce signals conforming to the EIA-232 specification.  The
  5464.   standard connector has 25 pins, most of which are unused.  An
  5465.   alternative connector has only 9 pins.  One pin is used to send out
  5466.   data bytes and another to receive data bytes.  Another pin is a common
  5467.   signal ground.  The other "useful" pins are used mainly for signalling
  5468.   purposes with a steady negative voltage meaning "off" and a steady
  5469.   positive voltage meaning "on".
  5470.  
  5471.   The UART (Universal Asynchronous Receiver-Transmitter) chip does most
  5472.   of the work.  Today, the functionality of this chip is usually built
  5473.   into another chip.
  5474.  
  5475.  
  5476.  
  5477.  
  5478.  
  5479.   21.2.  Voltages
  5480.  
  5481.   21.2.1.  Voltage for a Bit
  5482.  
  5483.   At the EIA-232 serial port, voltages are bipolar (positive or negative
  5484.   with respect to ground) and should be about 12 volts in magnitude
  5485.   (some are 5 or 10 volts).   For the transmit and receive pins +12
  5486.   volts is a 0-bit (sometimes called "space") and -12 volts is a 1-bit
  5487.   (sometimes called "mark").  This is known as inverted logic since
  5488.   normally a 0-bit is both false and negative while a one is normally
  5489.   both true and positive.  Although the receive and transmit pins are
  5490.   inverted logic, other pins (modem control lines) are normal logic with
  5491.   a positive voltage being true (or "on" or "asserted") and a negative
  5492.   voltage being false (or "off" or "negated").  Zero voltage has no
  5493.   meaning (except it usually means that the unit is powered off).
  5494.  
  5495.   A range of voltages is allowed.  The specs say the magnitude of a
  5496.   transmitted signal should be between 5 and 15 volts but must never
  5497.   exceed 25 V.  Any voltage received under 3 V is undefined (but some
  5498.   terminals will accept a lower voltage as valid).  One sometimes sees
  5499.   erroneous claims that the voltage is commonly 5 volts (or even 3
  5500.   volts) but it's usually 11-12 volts.  If you are using a EIA-422 port
  5501.   on a Mac computer as an EIA-232 (requires a special cable) or EIA-423
  5502.   then the voltage will actually be only 5 V.  The discussion here
  5503.   assumes 12 V.  There is much confusion about voltages on the Internet.
  5504.  
  5505.   Note that normal computer logic normally is just a few volts (5 volts
  5506.   was once the standard) so that if you try to use test equipment
  5507.   designed for testing 3-5 volt computer logic (TTL) on the 12 volts of
  5508.   a serial port, it may damage the test equipment.
  5509.  
  5510.  
  5511.   21.2.2.  Voltage Sequence for a Byte
  5512.  
  5513.   The transmit pin (TxD) is held at -12 V (mark) at idle when nothing is
  5514.   being sent.  To start a byte it jumps to +12 V (space) for the start
  5515.   bit and remains at +12 V for the duration (period) of the start bit.
  5516.   Next comes the low-order bit of the data byte.  If it's a 0-bit
  5517.   nothing changes and the line remains at +12 V for another bit-period.
  5518.   Then comes the next bit, etc.  Finally, a parity bit may be sent and
  5519.   then a -12 V (mark) stop bit.  The line remains at -12 V (idle) until
  5520.   the next start bit.  Note that there is no return to 0 volts and thus
  5521.   there is no simple way (except by a synchronizing signal) to tell
  5522.   where one bit ends and the next one begins for the case where 2
  5523.   consecutive bits are the same polarity (both zero or both one).
  5524.  
  5525.   A 2nd stop bit would also be -12 V, just the same as the first stop
  5526.   bit.  Since there is no signal to mark the boundaries between these
  5527.   bits, the only effect of the 2nd stop bit is that the line must remain
  5528.   at -12 V idle twice as long.  The receiver has no way of detecting the
  5529.   difference between a 2nd stop bit and a longer idle time between
  5530.   bytes.  Thus communications works OK if one end uses one stop bit and
  5531.   the other end uses 2 stop bits, but using only one stop bit is
  5532.   obviously faster.  In rare cases 1 1/2 stop bits are used.  This means
  5533.   that the line is kept at -12 V for 1 1/2 time periods (like a stop bit
  5534.   50% wider than normal).
  5535.  
  5536.  
  5537.   21.3.  Parity Explained
  5538.  
  5539.   Characters are normally transmitted with either 7 or 8 bits (of data).
  5540.   An additional parity bit may (or may not) be appended to this
  5541.   resulting in a byte length of 7, 8 or 9 bits.  Some terminal emulators
  5542.   and older terminals do not allow 9 bits.  Some prohibit 9 bits if 2
  5543.   stop bits are used (since this would make the total number of bits too
  5544.   large: 12 bits total).
  5545.   The parity may be set to odd, even or none (mark and space parity may
  5546.   be options on some terminals).  With odd parity, the parity bit is
  5547.   selected so that the number of 1-bits in a byte, including the parity
  5548.   bit, is odd.  If a such a byte gets corrupted by a bit being flipped,
  5549.   the result is an illegal byte of even parity.  This error will be
  5550.   detected and if it's an incoming byte to the terminal an error-
  5551.   character symbol will appear on the screen.  Even parity works in a
  5552.   similar manner with all legal bytes (including the parity bit) having
  5553.   an even number of 1-bits.  During set-up, the number of bits per
  5554.   character usually means only the number of data bits per byte (7 for
  5555.   true ASCII and 8 for various ISO character sets).
  5556.  
  5557.   A "mark" is a 1-bit (or logic 1) and a "space" is a 0-bit (or logic
  5558.   0).  For mark parity, the parity bit is always a one-bit.  For space
  5559.   parity it's always a zero-bit.  Mark or space parity only wastes
  5560.   bandwidth and should be avoided when feasible.  "No parity" means that
  5561.   no parity bit is added.   For terminals that don't permit 9 bit bytes,
  5562.   "no parity" must be selected when using 8 bit character sets since
  5563.   there is no room for a parity bit.
  5564.  
  5565.  
  5566.   21.4.  Forming a Byte (Framing)
  5567.  
  5568.   In serial transmission of bytes via EIA-232 ports, the low-order bit
  5569.   is always sent first.  Serial ports on PC's use asynchronous
  5570.   communication where there is a start bit and a stop bit to mark the
  5571.   beginning and end of a byte.  This is called framing and the framed
  5572.   byte is sometimes called a frame.  As a result a total of 9, 10, or 11
  5573.   bits are sent per byte with 10 being the most common.   8-N-1 means 8
  5574.   data bits, No parity, 1 stop bit.  This adds up to 10 bits total when
  5575.   one counts the start bit.  One stop bit is almost universally used.
  5576.   At 110 bits/sec (and sometimes at 300 bits/sec) 2 stop bits were once
  5577.   used but today the 2nd stop bit is used only in very unusual
  5578.   situations (or by mistake since it seemingly still works OK that way).
  5579.  
  5580.  
  5581.   21.5.  Limitations of EIA-232
  5582.  
  5583.   21.5.1.  Low Speed & Short Distance
  5584.  
  5585.   The conventional EIA-232 serial port is inherently low speed and is
  5586.   severely limited in distance.  Ads often read "high speed" but it can
  5587.   only work at high speed over very short distances such as to a modem
  5588.   located right next to the computer.  All of the wires use a common
  5589.   ground return so that twisted-pair technology (needed for high speeds)
  5590.   can't be used without additional hardware.  However some computers
  5591.   have more modern interfaces.  See ``Successors to EIA-232''.
  5592.  
  5593.   It is somewhat tragic that the RS-232 standard from 1969 did not use
  5594.   twisted pair technology which could operate about a hundred times
  5595.   faster.  Twisted pairs have been used in telephone cables since the
  5596.   late 1800's.  In 1888 (over 110 years ago) the "Cable Conference"
  5597.   reported its support of twisted-pair (for telephone systems) and
  5598.   pointed out its advantages.  But over 80 years after this approval by
  5599.   the "Cable Conference", RS-232 failed to utilize it.   Since RS-232
  5600.   was originally designed for connecting a terminal to a low speed modem
  5601.   located nearby, the need for high speed and longer distance
  5602.   transmission was apparently not recognized.
  5603.  
  5604.  
  5605.   21.5.2.  Successors to EIA-232
  5606.  
  5607.   A number of EIA standards have been established for higher speeds and
  5608.   longer distances using twisted-pair (balanced) technology.  Balanced
  5609.   transmission can sometimes be a hundred times faster than unbalanced
  5610.   EIA-232.  For a given speed, the distance (maximum cable length) may
  5611.   be many times longer with twisted pair.  But PC-s keep being made with
  5612.   the "obsolete" EIA-232 since it works OK with modems connected to slow
  5613.   telephone lines, and it works OK with mice.
  5614.  
  5615.   One exception is Apple's Mac computer with its EIA-232/EIA-422 GeoPort
  5616.   which provides twisted-pairs (balanced) for transmit and receive.  It
  5617.   uses a small round "mini-DIN" connector.  It also provides
  5618.   conventional EIA-232 but only at 5 volts (which is still legal
  5619.   EIA-232).  However, due to the fact that Macs cost more than PC's,
  5620.   they are seldom used as a host computer for terminals.  Some newer
  5621.   terminals use EIA-423 but this is just like the unbalanced EIA-232 and
  5622.   can be connected to a EIA-232 port.  This EIA-423 is only 5 volts, but
  5623.   the specs call for higher speeds than the EIA-232 (which will be of no
  5624.   help on a long run where it's the unbalance that causes interference).
  5625.  
  5626.   EIA-530-A (balanced but can also be used unbalanced) at 2Mbits/s
  5627.   (balanced) was intended to be a replacement for EIA-232 but few have
  5628.   been installed.  It uses the same 25-pin connector as EIA-232.  The
  5629.   High Speed Serial Interface ( HSSI = EIA-612/613) uses a 50-pin
  5630.   connector and goes up to about 50 Mbits/s but the distance is limited
  5631.   to only several meters.  The Universal Serial Bus (USB) is being built
  5632.   into PCI chips.  It is 12 Mbits/s over a twisted pair with a 4-pin
  5633.   connector (2 wires are power supply) but it also is limited to short
  5634.   distances of at most 5 meters (depends on configuration).
  5635.  
  5636.  
  5637.   21.5.3.  Line Drivers
  5638.  
  5639.   For a text terminal, the EIA-232 speeds are fast enough but the usable
  5640.   cable length is often too short.  Balanced technology could fix this.
  5641.   The common method of obtaining balanced communication with a text
  5642.   terminal is to install 2@ line drivers in the serial line to convert
  5643.   unbalanced to balanced (and conversely).  They are a specialty item
  5644.   and are expensive if purchased new.
  5645.  
  5646.  
  5647.   21.6.  Synchronization & Synchronous
  5648.  
  5649.   21.6.1.  How "Asynchronous" is Synchronized
  5650.  
  5651.   Per EIA-232 there are only two states of the transmit (or receive)
  5652.   wire: mark (-12 V) or space (+12 V).  There is no state of 0 V.  Thus
  5653.   a sequence of 1-bits is transmitted by just a steady -12 V with no
  5654.   markers of any kind between bits.  For the receiver to detect
  5655.   individual bits it must always have a clock signal which is in
  5656.   synchronization with the transmitter clock.  Such clocks generate a
  5657.   "tick" in synchronization with each transmitted (or received) bit.
  5658.  
  5659.   For asynchronous transmission, synchronization is achieved by framing
  5660.   each byte with a start bit and a stop bit (done by hardware).  The
  5661.   receiver listens on the line for a start bit and when it detects one
  5662.   it starts its clock ticking.  It uses this clock tick to time the
  5663.   reading of the next 7, 8 or 9 bits.  (It actually is a little more
  5664.   complex than this since several samples of a bit are often taken and
  5665.   this requires additional timing ticks.)  Then the stop bit is read,
  5666.   the clock stops and the receiver waits for the next start bit.  Thus
  5667.   async is actually synchronized during the reception of a single byte
  5668.   but there is no synchronization between one byte and the next byte.
  5669.  
  5670.  
  5671.   21.6.2.  Defining Asynchronous vs Synchronous
  5672.  
  5673.   Asynchronous (async) means "not synchronous".  In practice, an async
  5674.   signal is what the async serial port sends and receives which is a
  5675.   stream of bytes each delimited by a start and stop bit.  Synchronous
  5676.   (sync) is most everything else.  But this doesn't explain the basic
  5677.   concepts.
  5678.  
  5679.   In theory, synchronous means that bytes are sent out at a constant
  5680.   rate one after another (in step with a clock signal tick ).
  5681.   Asynchronous bytes may be sent out erratically with various time
  5682.   intervals between bytes (like someone typing characters at a
  5683.   keyboard).
  5684.  
  5685.   There are borderline situations that need to be classified as either
  5686.   sync or async.  The async serial port often sends out bytes in a
  5687.   steady stream which would make this a synchronous case but since they
  5688.   still have the start/stop bits (which makes it possible to send them
  5689.   out erratically) its called async.  Another case is where data bytes
  5690.   (without any start-stop bits) are put into packets with possible
  5691.   erratic spacing between one packet and the next.  This is called sync
  5692.   since the bytes within each packet must be transmitted synchronously.
  5693.  
  5694.  
  5695.   21.6.3.  Synchronous Communication
  5696.  
  5697.   Did you ever wonder what all the unused pins are for on a 25-pin
  5698.   connector for the serial port?  Most of them are for use in
  5699.   synchronous communication which is seldom implemented on PC's.  There
  5700.   are pins for sync timing signals as well as for a sync reverse
  5701.   channel.  The EIA-232 spec provides for both sync and async but PC's
  5702.   use a UART (Universal Asynchronous Receiver/Transmitter) chip such as
  5703.   a 16450, 16550A, or 16650 and can't deal with sync.  For sync one
  5704.   needs a USART chip or the equivalent where the "S" stands for
  5705.   Synchronous.  Since sync is a niche market, a sync serial port is
  5706.   likely to be quite expensive.
  5707.  
  5708.   Besides the sync part of the EIA-232, there are various other EIA
  5709.   synchronous standards.  For EIA-232, 3 pins of the connector are
  5710.   reserved for clock (or timing) signals.  Sometimes it's a modem's task
  5711.   to generate some timing signals making it impossible to use
  5712.   synchronous communications without a synchronous modem (or without a
  5713.   device called a "synchronous modem eliminator" which provides the
  5714.   timing signals).
  5715.  
  5716.   Although few serial ports are sync, synchronous communication does
  5717.   often take place over telephone lines using modems which use V.42
  5718.   error correction.  This strips off the start/stop bits and puts the
  5719.   date bytes in packets resulting in synchronous operation over the
  5720.   phone line.
  5721.  
  5722.  
  5723.   21.7.  Block Mode
  5724.  
  5725.   21.7.1.  Intro to Block Mode
  5726.  
  5727.   Block mode is seldom used with Linux.  In block mode when one types at
  5728.   a terminal, the results are saved in the terminal memory and are not
  5729.   sent just yet to the host computer.  Such terminals often have built-
  5730.   in editing capabilities.  When the user presses certain keys (such as
  5731.   the send key) what has been saved in the terminal memory is sent to
  5732.   the host computer.  Now the Linux editors vi and emacs, react
  5733.   instantly to pressing certain keys but in the above situation such
  5734.   keys will be pressed and nothing will happen since nothing is sent
  5735.   when a key is pressed.  Thus using a block mode terminal will not
  5736.   allow the use of such interactive programs.  The old IBM mainframe
  5737.   interface uses block mode (see ``IBM Terminals '' so many IBM
  5738.   terminals are block-mode only and also synchronous (see Section
  5739.   ``Synchronization & Synchronous'').
  5740.  
  5741.  
  5742.  
  5743.   21.7.2.  Types of Block Modes, Forms
  5744.  
  5745.   Block mode may itself have various sub-modes such as "page" (a page at
  5746.   a time) and "line" (a line at a time).  Some terminals have both block
  5747.   transmission modes and conventional character modes and may be
  5748.   switched from one mode to another.  Async terminals which have block
  5749.   modes include HP2622A, VT130, VT131, VT330, VT340, and Visual500.
  5750.   Many later model terminals can emulate block mode.  Block modes may
  5751.   include a forms capability where the host computer sends a form to the
  5752.   terminal.  Then the user fills it out and hits the send key which
  5753.   sends only the data in the form back to the host computer.  The form
  5754.   itself (not the data) is displayed on the screen in protected fields
  5755.   which don't get transmitted to the host.
  5756.  
  5757.  
  5758.   21.7.3.  Efficiency
  5759.  
  5760.   Block mode takes a great deal of load off the host computer,
  5761.   especially if the host computer's hardware is designed for block modes
  5762.   (as IBM mainframes were).  In character mode every character typed is
  5763.   sent immediately to the serial port and usually causes an interrupt at
  5764.   the host computer.  The host that receives the byte must stop whatever
  5765.   it is doing and fetch that character from the port hardware.  Even
  5766.   with UART's that have FIFO hardware buffers, the hardware timeout is
  5767.   normally only the transmission time of 3 bytes so that an interrupt is
  5768.   usually issued for every character typed.
  5769.  
  5770.   In true block mode a long block of characters is received using only
  5771.   one interrupt.  If block mode is used with conventional async FIFO
  5772.   serial ports, an interrupt is needed only every 14 bytes since they
  5773.   have 16-byte hardware buffers.  Thus much of the load and overhead of
  5774.   interrupt handling is eliminated and the computer has more time to do
  5775.   other tasks when block mode is used.
  5776.  
  5777.   A significant savings for block mode occurs if the terminal is
  5778.   connected to its host via a network.  Without block mode, every
  5779.   character (byte) typed is sent in its own packet including all the
  5780.   overhead bytes (40 in a TCP/IP packet as used on the Internet).  With
  5781.   block mode, a large number of characters are sent in a single packet.
  5782.  
  5783.  
  5784.   21.8.  EIA-232 (RS-232) Books
  5785.  
  5786.   (Note: The first book covers much more than just EIA-232.)
  5787.  
  5788.   ╖  Black, Uyless D.: Physical Layer Interfaces & Protocols, IEEE
  5789.      Computer Society Press, Los Alamitos, CA, 1996.
  5790.  
  5791.   ╖  Campbell, Joe: The RS-232 Solution, 2nd ed., Sybex, 1982.
  5792.  
  5793.   ╖  Putnam, Byron W.: RS-232 Simplified, Prentice Hall, 1987.
  5794.  
  5795.   ╖  Seyer, Martin D.: RS-232 Made Easy, 2nd ed., Prentice Hall, 1991.
  5796.  
  5797.  
  5798.   21.9.  Serial Software
  5799.  
  5800.   See Serial Software <ftp://sunsite.unc.edu/pub/Linux/system/serial/>
  5801.   for Linux software for the serial ports including getty and port
  5802.   monitors.
  5803.  
  5804.  
  5805.   22.  Appendix D: Notes by Brand Name
  5806.  
  5807.   Here are notes by brand name that were too specific to a certain
  5808.   terminal to be put elsewhere in this HOWTO.  If you have some info to
  5809.   contribute on a certain terminal that is not covered elsewhere, it
  5810.   could go here.  Various models and brands often have much in common
  5811.   which only need be written about in one place.  It would be nice to
  5812.   have for each terminal model, a large set of links linking to the
  5813.   documentation relevant to that model (including escape codes).  There
  5814.   are so many models of terminals that such a task would be quite
  5815.   onerous and I, David Lawyer (as of 1998), have no intention of
  5816.   attempting this.  If terminal manufacturers would only make their
  5817.   manuals available on the net, then all this might not be needed.
  5818.  
  5819.  
  5820.   22.1.  CIT
  5821.  
  5822.   CIT terminals were made in Japan in the 1980's for CIE Terminals.
  5823.   They ceased to be imported in the late 1980's.  The company, CIE,
  5824.   still makes CItoh printers (in 1997) but has no parts for its
  5825.   abandoned terminals.  Ernie at (714) 453-9555 in Irvine CA sells (in
  5826.   1997) some parts for models 224, 326, etc. but has nothing for the 80
  5827.   and 101.  (The document you are now reading was written mostly on the
  5828.   101e.)
  5829.  
  5830.   To save the Set-Up parameters press ^S when in Set-Up mode.  cit80:
  5831.   Contrast: knob on rear of terminal, cit101e: Brightness: use up/down
  5832.   arrow keys in Set-Up mode.
  5833.  
  5834.  
  5835.   22.2.  IBM Terminals
  5836.  
  5837.   Don't confuse IBM terminals with IBM PC monitors.  Many IBM terminals
  5838.   don't use ASCII but instead use an 8-bit EBCDIC code.  It's claimed
  5839.   that in EBCDIC the bit order of transmission is reversed from normal
  5840.   with the high-order bit going first.  The IBM mainframe communication
  5841.   standards are a type of synchronous communication in block mode (sends
  5842.   large packets of characters).  Two standards are "BISYNC" and "SNA"
  5843.   (which includes networking standards).  Many of their terminals
  5844.   connect with coax cable (RG62A/U) and naive persons may think the
  5845.   "BNC" connecter on the terminal is for ethernet (but it's not).
  5846.  
  5847.   While this IBM system is actually  more efficient than what is
  5848.   normally used in Linux, terminals meeting this IBM standard will not
  5849.   currently work with Linux.  However, some IBM terminals are
  5850.   asynchronous ASCII terminals and should work with Linux on PC's.  The
  5851.   numbers 31xx may work with the exception that 317x and 319x are not
  5852.   ASCII terminals.  Before getting an IBM terminal, make sure there is a
  5853.   termcap (terminfo) for it.  If their isn't, it likely will not work
  5854.   with Linux.  Even if there is a terminfo, it may not work.  For
  5855.   example, there is a termcap for 327x but the 3270 is an EBCDIC
  5856.   synchronous terminal.
  5857.  
  5858.   The 3270 series includes the 3278 (late 1970's), 3279 with color and
  5859.   graphics, and the 3274 terminal controller (something like the 3174).
  5860.   They may be used for both BISYNC and SNA.  The 3290 has a split screen
  5861.   (splits into quarters).
  5862.  
  5863.   The synchronous IBM terminals don't connect directly to the IBM
  5864.   mainframe, but connect to a "terminal controller" (sometimes called
  5865.   "cluster controller" or "communication controller").  Some of these
  5866.   controllers can convert a synchronous signal to asynchronous so that
  5867.   in this case a synchronous terminal could indirectly connect to a
  5868.   Unix-like host computer via its serial port.  But there is still a
  5869.   major problem and that is block transmission.  See section ``Block
  5870.   Mode''.
  5871.  
  5872.  
  5873.  
  5874.  
  5875.   22.2.1.  IBM 3153
  5876.  
  5877.   It's claimed that the Aux port is DCE and uses a straight-thru cable.
  5878.  
  5879.  
  5880.   22.3.  Teletypes
  5881.  
  5882.   These are antiques and represent the oldest terminals.  They are like
  5883.   remotely controlled typewriters but are large and noisy.  Made by the
  5884.   Teletype Corp., the first models were made in the 1920's and predate
  5885.   the computer by over 30 years.  Early models used electro-mechanical
  5886.   relays and rotating distributors instead of electronics.  Their Baudot
  5887.   code was only 5-bits per character as compared to 7-bit ASCII.  See
  5888.   the book "Small Computer Systems Handbook" by Sol Libes, Hayden Books,
  5889.   1978: pp. 138-141 ("Teletypes").
  5890.  
  5891.  
  5892.   22.4.  VT (DEC)
  5893.  
  5894.   Digital Equipment Corporation made the famous VT series of terminals
  5895.   including the commonly emulated VT100.  In 1995 they sold their
  5896.   terminal business to SunRiver which is now named Boundless
  5897.   Technologies.  More information is available at Shuford's Website
  5898.   <http://www.cs.utk.edu/~shuford/terminal_index.html> Information on
  5899.   current products is available from the Boundless website.  See
  5900.   ``Terminal Info on the Internet''.
  5901.  
  5902.   VT220: Some have a BNC connector for video output (not for input).
  5903.   Sometimes people erroneously think this is for an ethernet connection.
  5904.  
  5905.   VT520: Supports full DTR/DSR flow control.
  5906.  
  5907.  
  5908.   22.5.  Wyse
  5909.  
  5910.   Wyse has some FAQ's for terminal numbers under 100 (such as WY60).
  5911.   See  <http://www.wyse.com/service/faq/wysetter.htm> For the specs on
  5912.   more recent terminals see See  <http://www.wyse.com/terminal/>.
  5913.  
  5914.  
  5915.   22.5.1.  Wyse 99-GT
  5916.  
  5917.   Here is the setup Menus of the Wyse99GT (late 1980's).  Note that TERM
  5918.   means "termination" (character) and not "terminal".
  5919.  
  5920.  
  5921.  
  5922.  
  5923.  
  5924.  
  5925.  
  5926.  
  5927.  
  5928.  
  5929.  
  5930.  
  5931.  
  5932.  
  5933.  
  5934.  
  5935.  
  5936.  
  5937.  
  5938.  
  5939.  
  5940.  
  5941.     WYSE 99-GT Terminal Set-Up as used at the University of CA, Irvine
  5942.                   by David Lawyer, April 1990
  5943.  
  5944.                           F1 DISP:
  5945.   COLUMNS=80              LINES=24                CELL SIZE=10 X 13
  5946.   STATUS LINE=STANDARD    BACKGROUND=DARK         SCROLL SPEED=JUMP
  5947.   SCREEN SAVER=OFF        CURSOR=BLINK BLOCK      DISPLAY CURSOR=ON
  5948.   ATTRIBUTE=CHAR          END OF LINE WRAP=ON     AUTO SCROLL=ON
  5949.   ----------------------------------------------------------------------------
  5950.                           F2  GENERAL:
  5951.   PERSONALITY=VT 100      ENHANCE=ON              FONT LOAD=OFF
  5952.   COMM MODE=FULL DUPLEX   RCVD CR=CR              SEND ACK=ON
  5953.   RESTORE TABS=ON         ANSWERBACK MODE=OFF     ANSWERBACK CONCEAL=OFF
  5954.   WIDTH CHANGE CLEAR=OFF  MONITOR=OFF             TEST=OFF
  5955.   ----------------------------------------------------------------------------
  5956.                           F3 KEYBRD:
  5957.   KEYCLICK=OFF            KEYLOCK=CAPS            KEY REPEAT=ON
  5958.   RETURN=CR               ENTER=CR                FUNCT KEY=HOLD
  5959.   XMT LIMIT=NONE          FKEY XMT LIMIT=NONE     BREAK=170MS
  5960.   LANGUAGE=US             MARGIN BELL=OFF         PRINTER RCV=OFF
  5961.   ----------------------------------------------------------------------------
  5962.                           F4 COMM:
  5963.   DATA/PRINTER=AUX/MODEM    MDM RCV BAUD RATE=9600  MDM XMT BAUD RATE=9600
  5964.   MDM DATA/STOP BITS=8/1    MDM RCV HNDSHAKE=NONE   MDM XMT HNDSHAKE=NONE
  5965.   MDM PARITY=NONE           AUX BAUD RATE=9600      AUX DATA/STOP BITS=8/1
  5966.   AUX RCV HNDSHAKE=NONE     AUX XMT HNDSHAKE=NONE   AUX PARITY=NONE
  5967.   (There is a main port (Modem=MDM) and an Auxiliary Port (AUX)
  5968.   ----------------------------------------------------------------------------
  5969.                           F5 MISC 1:
  5970.   WARNING BELL=ON         FKEY LOCK=OFF           FEATURE LOCK=ON
  5971.   KEYPAD=NUMERIC          DEL=DEL/CAN             XFER TERM=EOS
  5972.   CURSOR KEYS=NORMAL      MARGIN CTRL=0           DEL FOR LOW Y=ON
  5973.   GIN TERM=CR             CHAR MODE=MULTINATIONAL
  5974.   ----------------------------------------------------------------------------
  5975.                           F6 MISC 2:
  5976.   LOCAL=OFF               SEND=ALL                PRINT=NATIONAL
  5977.   PORT=EIA DATA           SEND AREA=SCREEN        PRINT AREA=SCREEN
  5978.   DISCONNECT=60 MSEC      SEND TERM=NONE          PRINT TERM=NONE
  5979.   PRINT MODE=NORMAL       VT100 ID=VT100          POUND=US
  5980.   ----------------------------------------------------------------------------
  5981.   F7 TABS: You should see several "T" characters spaced 8 dots apart.
  5982.       If you don't, hit backspace.
  5983.   F8 F/KEYS: Normally you will see no definitions for the Function Keys
  5984.       here (unless someone has set them up and saved them).  This means that
  5985.       they will normally generate their default settings (not displayed here).
  5986.       <ctrl><F5> shows the "user defined definition" of the F5 key, etc.
  5987.   F9 A/BACK: Normally not defined: ANSWERBACK =
  5988.   F10 EXIT: Selecting "DEFAULT ALL" will make the factory default settings
  5989.       the default.
  5990.  
  5991.  
  5992.  
  5993.   HINTS on use of WY-99GT User's Guide: Note that much that is missing
  5994.   from this Guide may be found in the WY-99GT Programmer's Guide.  The
  5995.   VT100 emulation (personality) is known as ANSI and uses ANSI key codes
  5996.   per p. A-10+ even though the keyboard may be ASCII.  A sub-heading on
  5997.   p. A-13 "ASCII Keyboard" also pertains to VT100 because it has an
  5998.   "ANSI KEY ..." super-heading a few pages previously.  But not all
  5999.   ASCII keyboard headings pertain to VT100 since they may fall under a
  6000.   non-ANSI personality super-heading which may found be a few pages
  6001.   previously.  Appendix H is the "ANSI Command Guide" except for the
  6002.   VT52 (ANSI) personality which is found in Appendix G.
  6003.  
  6004.  
  6005.  
  6006.  
  6007.   22.5.2.  Wyse 150
  6008.  
  6009.   When exiting set-up using F12, hitting space changes "no" to "yes" to
  6010.   save the set-up.  The sentence to the left of this no/yes is about
  6011.   "vertical alignment" and has nothing to do with this no/yes for saving
  6012.   the set-up (confusing menu design).
  6013.  
  6014.   END OF Text-Terminal-HOWTO -- Dave Lawyer
  6015.  
  6016.  
  6017.  
  6018.  
  6019.  
  6020.  
  6021.  
  6022.  
  6023.  
  6024.  
  6025.  
  6026.  
  6027.  
  6028.  
  6029.  
  6030.  
  6031.  
  6032.  
  6033.  
  6034.  
  6035.  
  6036.  
  6037.  
  6038.  
  6039.  
  6040.  
  6041.  
  6042.  
  6043.  
  6044.  
  6045.  
  6046.  
  6047.  
  6048.  
  6049.  
  6050.  
  6051.  
  6052.  
  6053.  
  6054.  
  6055.  
  6056.  
  6057.  
  6058.  
  6059.  
  6060.  
  6061.  
  6062.  
  6063.  
  6064.  
  6065.  
  6066.  
  6067.  
  6068.  
  6069.  
  6070.  
  6071.  
  6072.  
  6073.