RFC 698
Telnet extended ASCII option
RFC 698 ๐ TELNET Extended ASCII Option ๐
okay bestie, this one is from July 1975 ๐ธ and it's from the NIC (Network Information Center, NIC #32964). It's titled TELNET EXTENDED ASCII OPTION โจ. The title block doesn't name any authors, and it doesn't say what category or status it has, or whether it obsoletes or updates anything ๐. So I'm not gonna invent any of that ๐ .
1. Command Name and Code โจ
Okay so the option is called EXTEND-ASCII, and its code is 17 ๐ฅ:
EXTEND-ASCII 17
2. Command Meanings ๐
Here's where the commands get juicy ๐. Each one is written out with its option name, so you can see exactly what's happening.
IAC WILL EXTEND-ASCII
The sender of this command is asking for permission to start sending extended ASCII, or is confirming that it's now allowed to start ๐ฆ. Extended ASCII is normal ASCII with extra "control" bits added on top, and certain programs on the host computer treat those bits in special ways ๐ง.
IAC WON'T EXTEND-ASCII
If the connection is already running in extended ASCII mode, the sender of this one is demanding that the receiver switch back to sending data characters in standard NVT ASCII ๐ญ. If the connection is not already in extended ASCII mode, the sender is refusing to start sending extended ASCII ๐. (Note that "The sender" starts with a capital letter in the original; that's just how it was typed, and the meaning is the same.)
IAC DO EXTEND-ASCII
The sender is asking the receiver to start sending extended ASCII, or confirming that the receiver is allowed to start sending it ๐.
IAC DON'T EXTEND-ASCII
The sender is demanding that the receiver stop sending data in extended ASCII mode, or not start doing so in the first place ๐ โโ๏ธ.
IAC SB EXTASC
<high order bits (bits 15-8)><low order bits (bits 7-0)> IAC SE
This command sends one extended ASCII character as two 8-bit bytes ๐. Each of those bytes holds 8 data bits ๐ซถ.
3. Default ๐
The default is the "don't" and "won't" side of things:
DON'T EXTEND-ASCII
WON'T EXTEND-ASCII
Which basically means i.e., only use standard NVT ASCII ๐.
4. Motivation ๐ฆ
Okay the why is so real ๐ญ. Several sites on the net, like SU-AI and MIT-AI, have keyboards where almost all 128 characters are printable ๐คฏ. They use one or more extra bits as "control" bits, either as command modifiers or to separate typed text from commands going to programs ๐ฅ. Without those extra bits, some characters can't be entered as text, because they're already used for control purposes โจ. The Greek letter "beta," for example, is CONTROL-C on a TELNET connection, and that's the key used for stopping your job ๐. On top of that, a bunch of commonly used programs at those sites need those extra bits to run properly ๐ . So we need some way to send characters wider than 8 bits ๐ธ.
5. Description of the option ๐
This option lets you send extended ASCII ๐.
Experience has shown that most of the time people type 7-bit ASCII, with the occasional "control" character sprinkled in ๐. So normal NVT ASCII is expected to handle the 7-bit ASCII, and extended ASCII gets sent as an escape character sequence ๐ง.
What those extra bits mean depends on the user program ๐ฎ. At SU-AI and MIT-AI, the first two bits beyond the normal 7-bit ASCII get passed to the user program, and they're defined like this:
Bit 8 (or 200 octal) is the CONTROL bit
Bit 9 (or 400 octal) is the META bit
NOTE: "CONTROL" is used in a non-standard way here. It usually refers to codes 0-37 in NVT ASCII ๐. CONTROL and META get echoed by putting a prefix in front of the normal character: 013 (integral symbol) for CONTROL and 014 (plus-minus) for META ๐ . If both are present, it's called CONTROL-META and gets echoed as 013 014 followed by the 7-bit character ๐.
6. Description of Stanford Extended ASCII Characters ๐
Okay this section is a little extra, but it's still important ๐ค. It describes the extended graphic character set used at SU-AI, just for reference ๐. This specific character set is not required as part of the extended ASCII TELNET option, so you don't have to use it ๐. Characters marked "hidden" are alternate graphic meanings for codes that are normally format effectors, which certain typesetting programs use ๐จ๏ธ.
Code Graphic represented
000 null (hidden vertically centered dot)
001 downward arrow
002 alpha (all Greek letters are lowercase)
003 beta
004 logical and (caret)
005 logical not (dash with downward extension)
006 epsilon
007 pi
010 lambda
011 tab (hidden gamma)
012 linefeed (hidden delta)
013 vertical tab (hidden integral)
014 formfeed (hidden plus-minus)
015 carriage return (hidden circled-plus)
016 infinity
017 del (partial differential)
020 proper subset (right-opening horseshoe)
021 proper superset (left-opening horseshoe)
022 intersection (down-opening horseshoe)
023 union (up-opening horseshoe)
024 universal quantifier (upside-down A)
025 existential quantifier (backwards E)
026 circled-times
027 left-right double headed arrow
030 underbar
031 right pointing arrow
032 tilde
033 not-equal
034 less-than-or-equal
035 greater-than-or-equal
036 equivalence (column of 3 horizontal bars)
037 logical or (V shape)
040-135 as in standard ASCII
136 upward pointing arrow
137 left pointing arrow
140-174 as in standard ASCII
175 altmode (prints as lozenge)
176 right brace
177 rubout (hidden circumflex)
That's the whole thing, bestie ๐ซถโจ. The original's last page is just blank space, so there's nothing else in it ๐.
๐ฆ where this page comes from
- ietf: rfc698 1975-07
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms