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]

ISO Plain Language

On this page
PROBLEMAn IBM 2741 terminal can key only 92 codes, so it cannot produce 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 of their own.
MECHANISMThe note chooses one escape character and a few single-key functions, then pairs the escape character with other keys to stand in for each missing graphic and control code.
STATUS TODAYIt is a proposed set of conventions rather than a standard, and 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 the 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 that signal into whichever line end the host in use needs: NL, CR or LF.

The terminal has fewer keys than the language computers use, and a few of its keys do not match any character. Something has to fill the gap.

§2What Has to Be Keyable

Seven ASCII graphics and 31 ASCII controls cannot be keyed on a 2741, so some way is needed to reach all 128 ASCII codes. The note requires one character to 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 shown by a single key. Character delete removes this character and the one before it. Line delete removes this character and every earlier character in the current line. Logical line end is treated as if NL were entered, so one physical line can hold several logical lines.

A system escape character is also needed, so that keyed text can be read by the user program instead of being sent to the Server Host. Lines read that way are not sent onward. A user program may also need to send the INS or INR network control commands, either after the system escape character or through the attention button on the terminal, depending on the user's operating system.

The plan needs one prefix key that marks the next keys as special, plus keys for erasing one character, erasing a whole line, and ending a line early.

§3Recommended Special Characters

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

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

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

The note gives each job to a key: one is the prefix, one erases a character, one erases a line, and one lets you talk to your own program instead of the distant host.

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

§4Escape Pairs for the Missing Codes

For the seven missing ASCII graphics, the recommendation is the character escape followed by one key: $NOT < gives [, $NOT > gives ], $NOT ( gives {, $NOT ) gives }, $NOT / gives \ and $NOT ' gives `. The double-quote key after the escape gives ^.

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

For the ASCII controls, the character escape is followed by two letters taken from the control's mnemonic. Examples are $NOT BE for BEL (X'07') and $NOT ES for ESC (X'1B'). The controls SP, BS and HT can be keyed either directly or with the escape.

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