Network Working Group J. Winett
Request for Comments: 452 JMW
NIC: 14136 8 February 1973
TELNET Command at Host LL
The attached writeup documents the use of the TELNET command at Host
LL for uses under the CP/CMS time-sharing system. This command
provides for use in a HALF DUPLEX or FULL DUPLEX mode and can be used
with ASCII codes or with EBCDIC codes (i.e., transparent mode). The
keyboard conventions allow for entering all ASCII codes using a
CONTROL character followed by another character for the codes not
present on an IBM 2741 terminal. In addition a number of local
TELNET control commands have been defined which allows the mode of
operation to be changed, the redefinition of special characters, the
sending of TELNET control codes, as well as for obtaining input from
a file instead of from the terminal. These later features provide
for a rudimentary file transfer facility.
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.
TELNET
Purpose:
To access another terminal oriented system on the ARPA network.
Format:
TELNET host <tag> RESUME EBCDIC HALFDUP
1 OPEN ASCII FULLDUP
host - either the hexadecimal code for a foreign network service
site or a standard mnemonic for a foreign site. See
Figure 1.
tag - the identifier for the local connections to the network.
The tag is used together with the address of the virtual
machine descriptor table (UTABLE) to form local socket
numbers which are used in the network protocol.
RESUME - used to reactivate communications with a foreign site
after having previously left the TELNET command leaving
the connections open.
Winett [Page 1]
RFC 452 TELNET Command at Host LL February 1973
EBCDIC - to communicate with EBCDIC codes. The default is network
ASCII.
HALFDUP - to operate under a half duplex protocol, i.e. with a
locked keyboard.
The EBCDIC HALFDUP the protocol assumes that the TELNET
break code (circle C) will be received to indicate when
the keyboard should be locked for input.
In ASCII HALFDUP the keyboard will lock after a line of
input and will unlock after one or more lines have been
received for output. An external interrupt will also
unlock a locked keyboard.
The default is full duplex where the keyboard is always
unlocked for input. A null line is required to
temporarily lock the keyboard in order to receive output.
Usage:
A number of hosts on the ARPA network provide TELNET service. A
Network Virtual Terminal (NVT) has been specified so that using
sites can write one TELNET program which maps a local terminal
into the NVT to access any serving site on the network. Once
communication has been established between a using site and a
serving site, keyed input is sent to the serving system and output
from the serving site, when received, is typed on the local
terminal.
The NVT protocol requires that the keyboard be capable of entering
all of the 128 ASCII codes together with a number of the TELNET
control codes. To support an NVT with an IBM 2741 terminal, it is
necessary to adapt a control convention for entering codes which
are not associated with single keys on the keyboard. In addition,
since CP/CMS processes input from a 2741 on a line at a time
terminated with a newline, a means must be establish for entering
a sequence of characters for transmission which is not terminated
with a newline code.
When TELNET is initiated the message
ENTER CONTROL CHARACTER
is typed. A non-blank character should then be entered which
defines the character which, in combination with another
character, will be used to enter codes not associated with single
Winett [Page 2]
RFC 452 TELNET Command at Host LL February 1973
keys. The control character is also used for other special
control functions as described below.
Codes:
The NVT usually requires that characters be transmitted in an
eight bit ASCII code. Since the TELNET command is written to
process EBCDIC codes ASCII codes received are translated into
ASCII before being sent to a serving site. Figure 2 gives the
complete definition of EBCDIC indicating the EBCDIC controls and
EBCDIC graphics. Figure 3 gives the codes for the ASCII controls
and graphics. The complete mapping between 8-bit EBCDIC codes and
8-bit network ASCII codes is shown in Figure 4. The EBCDIC
newline code (NL) is mapped into the ASCII codes for the pair of
characters CR-IF.
The following ASCII/EBCDIC mapping is used for the non-EBCDIC
graphics:
ASCII EBCDIC
TILDE (7E) = (A1) NOT
BAR (7C) = (6A) OR
BACK SLASH (5C) = (EO)
CARAT (5E) = (71)
GRAVE (6O) = (79)
LEFT BRACE (7B) = (8B)
RIGHT BRACE (7D) = (9B)
LEFT BRACKET (5B) = (AD)
RIGHT BRACKET (5D) = (BD)
The ASCII control DC3 (X' 13') maps to the EBCDIC control TM
(X'13'). The ASCII control NUL (X' oo') is sent to the terminal
as the EBCDIC code for NULL (X' oo') and is not mapped into an
IDLE (X'17').
The TELNET control hide-your-input is mapped into the EBCDIC code
for bypass (print suppress) and the TELNET control noecho is
mapped into the EBCDIC code for restore (print restore). If the
TELNET control for echo is received, a message is printed and it
is mapped into an IDLE. Similarly, if the TELNET control for
break is received, a message is printed and it is mapped into an
IDLE unless operation is in EBCDIC HALFDUP mode in which case the
break is used to indicate that any received characters should be
printed and the keyboard unlocked for input. If a data mark or an
interrupt is received, no action is taken except to print a
message to notify the user of this occurrence.
Winett [Page 3]
RFC 452 TELNET Command at Host LL February 1973
Input:
When the control character is entered, the following character is
mapped into a different code than that which it is normally mapped
into, except when the following character is a space or a
character not defined to have a meaning when preceded by the
control character. Figure 5 gives the mapping of the characters
on a 2741 keyboard when preceded by a control character. The
following 2741 keyboard characters do not have a different meaning
when preceded by the control character.
$ # * % &
+ - = _
. , : ;
! | ? (cent sign)
SPACE
BACKSPACE
TAB
When a character is mapped into its control code, the control
character is mapped into the code for IDLE. If the control
character is entered as the last character before the newline key
is entered, the sequence of characters entered is transmitted
without the newline code. That is, the newline code is not
transmitted when it is preceded by the control character.
When the 2741 keyboard is unlocked for input, characters received
cannot be typed until the keyboard is locked again. After a line
is entered, received characters can then be typed. When operating
in full duplex or ASCII half duplex, a null line entered will
allow received characters to be typed but will not cause the new
line code to be transmitted. To cause a null line, i.e., just the
new line code to be transmitted, the control character should be
entered as the only character in the input line. In EBCDIC
HALFDUP a null line entered will cause a null line to be
transmitted.
Output:
ASCII output received from the NVT is converted into EBCDIC with
the sequences CR-LF converted into IDLE-NL. The EBCDIC characters
are then sent to the terminal. Note that not all 128 ASCII codes
when converted to EBCDIC will print on a 2741. Of the 95 ASCII
graphics and the 8 ASCII controls which are defined for the NVT
printer, the following are not visible or audible:
Winett [Page 4]
RFC 452 TELNET Command at Host LL February 1973
CARAT
GRAVE
BACK SLASH
LEFT BRACE
RIGHT BRACE
LEFT BRACKET
RIGHT BRACKET
ASCII CONTROL BELL (BEL)
ASCII CONTROL VERTICAL TAB (HT)
ASCII CONTROL FORM FEED (FF)
ASCII CONTROL CARRIAGE RETURN (CR)
Figure 6 shows how the EBCDIC codes from X' 40' through X' FF'
will appear on a 2741 terminal. Figure 7 shows how the EBCDIC
codes will appear when printed with a PN train on the offline
printer and Figure 8 shows how these codes appear when printed
with a TN train.
Controls:
If the first character in an input line is the control character
and the next character is a space, the rest of the line is
interpreted as a TELNET control command. A control command
consists of a control word and parameters separated by spaces.
Controls are defined which permit TELNET controls to be
transmitted to the serving site, allow input to come from a file
or output to go to a file, allow CMS functions or transient
commands to be issued, redefine the control character or TELNET
mode, close connections or leave the TELNET command with
connections still open, as well as controls to support a reader,
punch, and printer with RJS operation. The controls are described
below.
CONTROL x
Where x is the new control character
CLOSE
To close all connections and quit
QUIT
To leave TELNET
EBCDIC
To go into transparent mode, i.e., no translation
Winett [Page 5]
RFC 452 TELNET Command at Host LL February 1973
ASCII
To translate input and output to network ASCII
Break
To send the TELNET break code
SYNC
To send the TELNET data mark code and an interrupt
AATN
To send a TELNET break and a SYNC
HIDE-YOUR-INPUT
To send the TELNET hide you input code
NOECHO
To send the TELNET noecho code
ECHO
To send the TELNET echo code
CMS command arg1...argN
To issue CMS core resident function or transient command.
INPUT fn ft
* TERMIN
* *
To get input from a file If fn is defaulted, input is reset to
come from the terminal. If fn is * file input resumes after the
last line read. After an EOF, the next line read will be the
first line of the file.
An external interrupt while input is coming from a file will cause
the line number of the next line to be read from the file to be
typed and input to be reset to come from the terminal.
Winett [Page 6]
RFC 452 TELNET Command at Host LL February 1973
OUTPUT fn OFF TERM INPUT INOUT
* ON NOTERM NOINPUT OUTPUT
To write output to the file "fn TERMOUT". If fn is defaulted,
output is reset to go to the terminal. If fn is *, file OUTPUT is
resumed with the same options as were last used.
For Output to the Terminal:
If the last character is a CR, a line with just the control
character is typed on the next line (with a NL)
If the last character is not a NL or a CR, the line is typed
without a NL (i.e., with TYPE).
For Output to a File:
If just a NL is in the line, just the control character is sent to
the file.
If the last CHAR is not NL or CR, the control character is added
after the last character, except if 130 characters must be sent to
the file.
If the last CHAR is a CR, it is included in the file.
OFF causes all output to be discarded.
ON is the default, and causes output to the terminal.
TERM causes output to also go to the terminal.
NOTERM is the default, and causes output to go the file but not to
the terminal.
OUTPUT is the default and causes just terminal output to be put to
the file "FN termout".
INPUT causes both terminal input but not output to be put to the
output file.
NOINPUT is defaulted and causes input to not go to the file.
PURGE
To purge all output currently received by the NCP.
*****NOT YET IMPLEMENTED*****
Winett [Page 7]
RFC 452 TELNET Command at Host LL February 1973
READER fn ft
* READER
To send a job to the RJS system at UCLA's CCN.
If fn and ft are defaulted, input will come from the card reader.
PRINTER fn ft
* PRINTER
To receive printer output from the RJS system at UCLA's CCN.
To receive punch output from the RJS system at UCLA's CCN.
If fn and ft are defaulted, output goes to the printer.
PUNCH fn ft
* PUNCH
If fn and ft are defaulted, output goes to the punch.
HOST SITE MACHINE SYSTEM HOST NUMBER
DEC OCT HEX
NMC UCLA SIGNA-7 SEX 1 1 01
ARC SRI PDP-10 NIC 2 2 02
UCSB UCSB 360/75 OS/MVT 3 3 03
UTAH UTAH PDP-10 TENEX 4 4 04
MULTICS MIT H-645 MULTICS 6 6 06
SDC SDC 370/155 ADEPT 8 10 08
HARV HARVARD PDP-10 4S72 9 11 09
LL LL 360/67 CP/CMS 10 12 0A
CASE CASE PDP-10 10/50 13 15 0D
CMU CMU PDP-10 TOPS-10 14 16 0E
ILLIAC AMES 360/67 TTS/360 16 18 10
AMES AMES B-6500 ? 15 17 0F
CCN UCLA 360/91 OS/MVT 65 101 41
SRI SRI-AI PDP-10 TENEX 66 102 42
BBNA BBN PDP-10 TENEX 69 105 45
DMCG MIT PDP-10 ITS 70 106 46
RAND RAND-RCC PDP-10 TENEX 71 107 47
TX2 LL TX-2 APEX 74 112 4A
BBNB BBN PDP-10 TENEX 133 205 85
MIATI MIT PDP-10 ITS 134 206 86
Serving Hosts on the APRA Network
Figure 1
Winett [Page 8]
RFC 452 TELNET Command at Host LL February 1973
[[See Figure 2 in PDF file.]]
Extended Binary-Coded Decimal Interchange Code (EBCDIC)
FIGURE 2
and
[[See Figure 3 in PDF file.]]
USA Standard Code for Information Interchange (USASCII)
FIGURE 3
ASCII ASCII ASCII SYMBOLS EBCDIC EBCDIC
DEC OCT HEX HEX DEC
0 0 (00) NUL (00) 00
1 1 (01) SOH (01) 01
2 2 (02) STX (02) 02
3 3 (03) ETX (03) 03
4 4 (04) EOT (37) 55
5 5 (05) ENQ (2D) 45
6 6 (06) ACK (2E) 46
7 7 (07) BEL (2F) 47
8 10 (08) BS (16) 22
9 11 (09) HT (05) 05
10 12 (0A) LF (25) 37
11 13 (0B) VT (0B) 11
12 14 (0C) FF (0C) 12
13 15 (0D) CR (0D) 13
14 16 (0E) SO (0E) 14
15 17 (0F) SI (0F) 15
16 20 (10) DLE (10) 16
17 21 (11) DC1 (11) 17
18 22 (12) DC2 (12) 18
19 23 (13) DC3 (13) 19
20 24 (14) DC4 (3C) 60
21 25 (15) NAK (3D) 61
22 26 (16) SYN (32) 50
23 27 (17) ETB (26) 38
24 30 (18) CAN (18) 24
25 31 (19) EM (19) 25
26 32 (1A) SUB (3F) 63
27 33 (1B) CTL (27) 39
28 34 (1C) FS (1C) 28
29 35 (1D) GS (1D) 29
30 36 (1E) RS (1E) 30
31 37 (1F) US (1F) 31
32 40 (20) SP (40) 64
33 41 (21) ! (5A) 90
Winett [Page 9]
RFC 452 TELNET Command at Host LL February 1973
34 42 (22) " (7F) 127
35 43 (23) # (7B) 123
36 44 (24) $ (5B) 91
37 45 (25) % (6C) 108
38 46 (26) & (50) 80
39 47 (27) ' (7D) 124
40 50 (28) ( (4D) 77
41 51 (29) ) (5D) 93
42 52 (2A) * (5C) 92
43 53 (2B) + (4E) 78
44 54 (2C) , (6D) 109
45 55 (2D) - (60) 96
46 56 (2E) . (4B) 75
47 57 (2F) / (61) 97
48 60 (30) 0 (F0) 240
49 61 (31) 1 (F1) 241
50 62 (32) 2 (F2) 242
51 63 (33) 3 (F3) 243
52 64 (34) 4 (F4) 244
53 65 (35) 5 (F5) 245
54 66 (36) 6 (F6) 246
55 67 (37) 7 (F7) 247
56 70 (38) 8 (F8) 248
57 71 (39) 9 (F9) 249
58 72 (3A) : (7A) 122
59 73 (3B) ; (5E) 94
60 74 (3C) < (4C) 76
61 75 (3D) = (7E) 126
62 76 (3E) > (6E) 110
63 77 (3F) ? (6F) 111
64 100 (40) @ (7C) 124
65 101 (41) A (C1) 193
66 102 (42) B (C2) 194
67 103 (43) C (C3) 195
68 104 (44) D (C4) 196
69 105 (45) E (C5) 197
70 106 (46) F (C6) 198
71 107 (47) G (C7) 199
72 110 (48) H (C8) 200
73 111 (49) I (C9) 201
74 112 (4A) J (D1) 209
75 113 (4B) K (D2) 210
76 114 (4C) L (D3) 211
77 115 (4D) M (D4) 212
78 116 (4E) N (D5) 213
79 117 (4F) O (D6) 214
80 120 (50) P (D7) 215
81 121 (51) Q (D8) 216
Winett [Page 10]
RFC 452 TELNET Command at Host LL February 1973
82 122 (52) R (D9) 217
83 123 (53) S (E2) 226
84 124 (54) T (E3) 227
85 125 (55) U (E4) 228
86 126 (56) V (E5) 229
87 127 (57) W (E6) 230
88 130 (58) 8 (E7) 231
89 131 (59) Y (E8) 232
90 132 (5A) Z (E9) 233
91 133 (5B) [ (AD) 173
92 134 (5C) (cent sign) (4A) 74 (BACK-SLASH)
93 135 (5D) ] (BD) 189
94 136 (5E) (71) 113 (CARAT)
95 137 (5F) _ (6D) 109
96 140 (60) (79) 121 (GRAVE)
97 141 (61) a (81) 129
98 142 (62) b (82) 130
99 143 (63) c (83) 131
100 144 (64) d (84) 132
101 145 (65) e (85) 133
102 146 (66) f (86) 134
103 147 (67) g (87) 135
104 150 (68) h (88) 136
105 151 (69) i (89) 137
106 152 (6A) j (91) 145
107 153 (6B) k (92) 146
108 154 (6C) l (93) 147
109 155 (6D) m (94) 148
110 156 (6E) n (95) 149
111 157 (6F) o (96) 150
112 160 (70) p (97) 151
113 161 (71) q (98) 152
114 162 (72) r (99) 153
115 163 (73) s (A2) 162
116 164 (74) t (A3) 163
117 165 (75) u (A4) 164
118 166 (76) v (A5) 165
119 167 (77) w (A6) 166
120 170 (78) x (A7) 167
121 171 (79) y (A8) 168
122 172 (7A) z (A9) 169
123 173 (7B) { (8B) 139
124 174 (7C) | (4F) 79 (BAR/OR)
125 175 (7D) } (9B) 155
126 176 (7E) (broken bar) (5F) 95 (TILDE/NOT)
127 177 (7F) DEL (07) 7
Winett [Page 11]
RFC 452 TELNET Command at Host LL February 1973
ASCII ASCII ASCII TELNET EBCDIC EBCDIC
DEC OCT HEX CONTROLS HEX DEC
128 100 (80) DATA-MARK (80) 128
129 101 (81) BREAK (38) 56
130 102 (82) NOP (17) 23 IDLE
131 103 (83) NOECHO (14) 20 RESTORE
132 104 (84) ECHO (23) 35
133 105 (85) HIDE-YOUR INPUT (24) 36 BYPASS
ASCII/EBCDIC Code Mappings
FIGURE 4
EBCDIC EBCDIC ASCII
CENT (4A) = ESC (27) (1B)
CTL < (4C) = LEFT BRACKET (AD) (5B)
CTL > (6E) = RIGHT BRACKET (BD) (5D)
CTL ( (4D) = LEFT BRACE (8B) (7B)
CTL ) (5D) = RIGHT BRACE (9B) (7D)
CTL / (61) = BACK SLASH (4A) (5C)
CTL " (7F) = CARAT (71) (5E)
CTL ' (7D) = GRAVE (79) (60)
CTL 6 (F6) = FS (1C) (1C)
CTL 7 (F7) = GS (1D) (1D)
CTL 8 (F8) = RS (1E) (1E)
CTL 9 (F9) = US (1F) (1F)
CTL _ (6D) = US (1F) (1F)
CTL (broken bar) (5F) = DEL (07) (7F)
CTL @ (7C) = NUL (00) (00)
CTL A (C1) = SOH (01) (01)
CTL B (C2) = STX (02) (02)
CTL C (C3) = ETX (03) (03)
CTL D (C4) = EOT (37) (04)
CTL E (C5) = ENQ (2D) (05)
CTL F (C6) = ACK (2E) (06)
CTL G (C7) = BEL (2F) (07)
CTL H (C8) = BS (16) (08)
CTL I (C9) = HT (05) (09)
CTL J (D1) = LF (25) (0A)
CTL K (D2) = VT (0B) (0B)
CTL L (D3) = FF (0C) (0C)
CTL M (D4) = CR (0D) (0D)
Winett [Page 12]
RFC 452 TELNET Command at Host LL February 1973
CTL N (D5) = SO (0E) (0E)
CTL O (D6) = SI (0F) (0F)
CTL P (D7) = DLE (10) (10)
CTL Q (D8) = DC1 (11) (11)
CTL R (D9) = DC2 (12) (12)
CTL S (E2) = DC3 (13) (13)
CTL T (E3) = DC4 (3C) (14)
CTL U (E4) = NAK (3D) (15)
CTL V (E5) = SYN (32) (16)
CTL W (E6) = ETB (26) (17)
CTL X (E7) = CAN (18) (18)
CTL Y (E8) = EM (19) (19)
CTL Z (E9) = SUB (3F) (1A)
EBCDIC EBCDIC ASCII
CTL 1 (F1) = BREAK (38) (81) - CIRCLE C
CTL 2 (F2) = NOP (17) (82) - IDLE
CTL 3 (F3) = NO ECHO (14) (83) - RESTORE
CTL 4 (F4) = ECHO (23) (84)
CTL 5 (F5) = HIDE YOU INPUT (24) (85) - BYPASS
DATA MARK (80) CANNOT BE ENTERED FROM THE KEYBOARD
THE FOLLOWING 2741 KEYBOARD CHARACTERS DO NOT
HAVE A MEANING AS A CONTROL:
$ # * % &
+ - = _
. , :
! | ? (cent sign)
SPACE
BACKSPACE
TAB
Keyboard Control Character Mappings
FIGURE 5 (CONTINUED)
Winett [Page 13]
RFC 452 TELNET Command at Host LL February 1973
[[See Figure in PDF file.]]
Hex Code X'xy' for Characters on a 2741 Terminal
[[See Figure in PDF file.]]
Decimal Code D 'xxy" for Characters on a 2741 terminal
HT X'05' = D'005' Horizontal Tab
LC X'06' = D'006' Lower Case
RES X'14' = D'020' Print Restore
NL X'15' = D'021' New Line
BS X'16' = D'022' Back Space
IL X'17' = D'023' Idle
BYP X'24' = D'036' Print Bypass
LF X'25' = D'037' Line Feed
UC X'36' = D'054' Upper Case
Hex Code X'xy' and Decimal Code D'xxy' for 2741 Control Codes
[[See Figure in PDF file.]]
Hex Code X'xy' for Characters on the PN train
[[See Figure in PDF file.]]
Decimal Code D'xxy' for characters on the PN train
[[See Figure in PDF file.]]
Hex Code X'xy' for Characters on th TN train
[[See Figure in PDF file.]]
Decimal Code D'xxy' for Characters on the TN train
[This RFC was put into machine readable form for entry]
[into the online RFC archives by Helene Morin, Via Genie,12/1999]
Winett [Page 14]