RFC 110 UNKNOWN TERMINALS · ASCII · ARPANET

Conventions for Using an IBM 2741 Terminal as a User Console for Access to Network Server Hosts

How to type every ASCII character from a typewriter-style IBM 2741 terminal when logging in to ARPANET server hosts.

On rfc-editor.org ↗
PUBLISHED
March 1971
AUTHORS
J. Winett
STREAM
Legacy
UPDATED BY
RFC 135 — Response to NWG/RFC 110
CODES KEYABLE ON A 2741
92 (88 graphics plus 4 controls)
ASCII GRAPHICS NOT KEYABLE
7
ASCII CONTROLS NOT KEYABLE
31
FULL ASCII CODE SET
128 codes
CHARACTER ESCAPE
$NOT
DOI
10.17487/RFC0110

RFC text

Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                                          J. Winett
Request for Comments: 110                         MIT Lincoln Laboratory
NIC: 5809                                                  25 March 1971

    Conventions for Using an IBM 2741 Terminal as a User Console for
                     Access to Network Server Hosts

   Disclaimer

   This material has not been reviewed for public release and is
   intended only for use with the ARPA network.  It should not be quoted
   or cited in any publication not related to the ARPA network.

   TO: NIC
   FROM: Joel M. Winnet (LL)
   SUBJECT: Conventions for Using an IBM 2741 Terminal as a User
   Console for Access to Network Server Hosts

   An IBM terminal can be used to key in 92 different codes.  These
   include 88 graphics plus the 4 controls SP, BS, HT, and NL.  Each of
   these have defined ASCII codes except the cent graphic ([1]) and the
   New Line Control (NL).  When the NL character is keyed, the program
   receiving the keyboard input can translate this signal into the
   appropriate line end signal for the host which is being used.  That
   is, to a NL, CR, or LF code whichever is appropriate.  There are 7
   other ASCII graphic characters ( {, }, [, ], ^, \, `) and 31 other
   ASCII controls which cannot be keyed on a 2741 terminal.  A
   convention must be established so that all 128 ASCII codes can be
   keyed from a 2741 terminal.  This requires that one character be
   chosen as an escape (or prefix) character which,a together with
   following characters, can be converted into any desired ASCII code.
   In addition to this escape character, there are three other functions
   which are usually indicated by the typing of a single character key.
   These are:

      a) character delete -- to cause this character and the preceding
         character in the input line to be deleted.

      b) line delete -- to cause this character and all previous
         characters in the current input line to be deleted.

      c) logical line end -- to cause all characters keyed after the
         last logical line end character or last NL character up to this
         character to be considered as one logical line with this
         character being treated as if the NL key were entered.
         Characters following the logical line end character up to
         another logical line end character or a NL character are used
         for form another input line.

   Since characters keyed are normally sent to the Server Host, a method
   must be defined to allow characters keyed to be interpreted by the
   user program.  A system escape character can be used for this
   purpose.  On character at a time systems, the characters keyed
   between two system escape characters can be interpreted by the user
   program.  On line at a time systems, characters keyed after the
   system escape character and up to and including a NL character can be
   interpreted by the user program.  Lines interpreted by the user
   program are not sent to the Server Host.

   For those host systems which require use of the INS or INR network
   control commands, a method must be defined for causing these commands
   to be sent.  These can be sent on a command to the user program
   either after keying the system escape character or through the use of
   the 'attention' button on a 2741 terminal.  This choice will depend
   on the characteristics of the terminal user's operating system.

   Other commands to the user program might be to:

      a) suppress typeout of received messages

      b) restore typeout of received messages

      c) direct received message to a disk file

      d) direct keyed input to a disk file

      e) abort the user program

   The following characters are recommended for the special functions
   listed above:

      1. character escape $NOT [1]
      2. system escape     |
      3. character delete  @
      4. line delete      $CENT [1]
      5. logical linend    #

   For the 7 ASCII graphics not on a 2741 terminal, the following
   character escape and graphic pairs are recommended:

      $NOT <           to translate to         [
      $NOT >           to translate to         ]
      $NOT (           to translate to         {
      $NOT )           to translate to         }
      $NOT "           to translate to         ^
      $NOT /           to translate to         \
      $NOT '           to translate to         `
   To permit the special function characters to be keyed, the following
   character escape and graphic pairs are recommended:

      $NOT -           to translate to        $NOT
      $NOT :           to translate to         |
      $NOT ,           to translate to         @
      $NOT .           to translate to        $CENT
      $NOT =           to translate to         #

   To key in the ASCII control codes, it is recommended that the
   character escape followed by two letters be used to specify a control
   code.  These two letters are derived from the mnemonic name of the
   ASCII control function and are as follows:

      $NOT AC          to translate to         ACK             X'06'
      $NOT BE          to translate to         BEL             X'07'
      $NOT BS          to translate to         BS              X'08'
      $NOT CA          to translate to         CAN             X'18'
      $NOT CR          to translate to         CR              X'0D'
      $NOT D1          to translate to         DC1             X'11'
      $NOT D2          to translate to         DC2             X'12'
      $NOT D3          to translate to         DC3             X'13'
      $NOT D4          to translate to         DC4             X'14'
      $NOT DE          to translate to         DEL             X'7F'
      $NOT DL          to translate to         DLE             X'10'
      $NOT EM          to translate to         EM              X'19'
      $NOT EN          to translate to         ENQ             X'05'
      $NOT EO          to translate to         EOT             X'04'
      $NOT ES          to translate to         ESC             X'1B'
      $NOT EB          to translate to         ETB             X'17'
      $NOT EX          to translate to         ETX             X'03'
      $NOT FF          to translate to         FF              X'0C'
      $NOT FS          to translate to         FS              X'1C'
      $NOT GS          to translate to         GS              X'1D'
      $NOT HT          to translate to         HT              X'09'
      $NOT LF          to translate to         LF              X'0A'
      $NOT NA          to translate to         NAK             X'15'
      $NOT NU          to translate to         NUL             X'00'
      $NOT RS          to translate to         RS              X'1E'
      $NOT SI          to translate to         SI              X'0F'
      $NOT SO          to translate to         SO              X'0E'
      $NOT SH          to translate to         SOH             X'01'
      $NOT SP          to translate to         SP              X'20'
      $NOT ST          to translate to         STX             X'02'
      $NOT SU          to translate to         SUB             X'1A'
      $NOT SY          to translate to         SYN             X'16
      $NOT US          to translate to         US              X'1F'
      $NOT VT          to translate to         VT              X'0B'
   Note that the controls SP, BS, and HT can be specified using the
   character escape character or directly by keying the appropriate key
   on a 2741 terminal.

Endnote

   [1] The following identifiers are substituted for graphics not in
       ASCII:

         $CENT   Cent sign
         $NOT    Logical NOT ("bent bar")

   See the PDF version of this document for graphics that cannot be
   represented in ASCII format.


          [This RFC was put into machine readable form for entry]
          [into the online RFC archives by Lorrie Shiota, 10/02]

AI ELI5

On this page
PROBLEMAn IBM 2741 terminal can key only 92 codes, so it cannot key all 128 ASCII codes that server hosts expect: 7 ASCII graphics and 31 ASCII controls are missing, and its cent sign and New Line key have no ASCII code.
MECHANISMThe note picks one escape character and a few single-character functions, then defines escape pairs that stand in for each missing graphic and control code.
STATUS TODAYIt is a proposed set of conventions, not a standard. The unit metadata lists RFC 135 as an update to it.

§1The 2741 Terminal Problem

An IBM 2741 terminal can key in 92 different codes: 88 graphics plus four controls, SP, BS, HT and NL. Each of these has a defined ASCII code except the cent graphic and the New Line control.

When NL is keyed, the program receiving the keyboard input can translate it into whichever line end the host in use needs: NL, CR or LF.

The special typewriter has fewer keys than the language computers use. A few of its keys do not match anything, so we need a plan.

§2What Must Be Keyable

Seven ASCII graphics ({ } [ ] ^ \ `) and 31 ASCII controls cannot be keyed on a 2741. To reach all 128 ASCII codes, one character must be chosen as an escape (prefix) character that, together with the characters after it, converts into any desired ASCII code.

Three other functions are usually a single key: character delete (removes this character and the one before it), line delete (removes this character and all earlier ones on the line) and logical line end (treated as if NL were entered, so one physical line can hold several logical lines).

The note also wants a system escape character, so that keyed text can be read by the user program instead of being sent to the Server Host. The same user program may need to send the INS or INR network control commands, either after the system escape or through the 2741 'attention' button, depending on the user's operating system.

We need one secret key that says the next letters mean something special, plus keys for erasing a letter, erasing a line, and ending a thought early.

§3Recommended Special Characters

The note recommends these characters for the special functions. Because the cent sign and the logical NOT sign are not in ASCII, the text writes them as $CENT and $NOT.

  • Character escape: $NOT
  • System escape: |
  • Character delete: @
  • Line delete: $CENT
  • Logical line end: the # sign

The system escape also lets a user give other commands to the user program, such as suppressing or restoring typeout of received messages, sending received messages or keyed input to a disk file, or aborting the user program.

The note hands out jobs to keys: one key is the secret prefix, one erases a letter, one erases a line, and one talks to your own computer instead of the far one.

RECOMMENDED SPECIAL-FUNCTION CHARACTERS (RFC 110)
  • $NOTCharacter escape — Prefix that turns the next characters into any ASCII code.
  • |System escape — Lets keyed text go to the user program instead of the host.
  • @Character delete — Deletes this and the preceding character.
  • $CENTLine delete — Deletes this and all previous characters in the line.
  • #Logical line end — Ends a logical line as if NL were entered.

§4Escape Pairs for Missing Codes

For the seven missing ASCII graphics, the character escape plus one key is recommended: $NOT < gives [, $NOT > gives ], $NOT ( gives {, $NOT ) gives }, $NOT " gives ^, $NOT / gives \ and $NOT ' gives `.

The special function characters themselves can be keyed the same way, for example $NOT - for $NOT and $NOT : for |.

ASCII controls use the character escape followed by two letters taken from the control's mnemonic, for example $NOT BE for BEL (X'07') and $NOT ES for ESC (X'1B'). The controls SP, BS and HT can be keyed either way.

To type a missing symbol, press the secret key and then a stand-in key. For a missing control, press the secret key and two letters that spell its name.