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.
Winett, J., "Conventions for Using an IBM 2741 Terminal as a User Console for Access to Network Server Hosts", RFC 110, DOI 10.17487/RFC0110, March 1971, <https://www.rfc-editor.org/info/rfc110>.
@misc{rfc110,
series = {Request for Comments},
number = 110,
howpublished = {RFC 110},
publisher = {RFC Editor},
doi = {10.17487/RFC0110},
url = {https://www.rfc-editor.org/info/rfc110},
author = {J. Winett},
title = {{Conventions for Using an IBM 2741 Terminal as a User Console for Access to Network Server Hosts}},
pagetotal = 4,
year = 1971,
month = mar,
} RFC text
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
§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.
- $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.