[net.rumor] 8-bit ASCII

gnu (02/17/83)

8-bit Ascii has existed for awhile.  ANSI standard X3.41 (of about 1973)
defines the mapping between 7-bit and 8-bit.  ANSI standard X3.64 (of
about 1979) uses and clarifies the X3.41 method.

Basically, "character sets" come in 94-char chunks, which overlay onto
hex 21 thru 7E of the Ascii-7 chart.  (20 is space and 7F is DEL -- both
are fixed.)  In 7-bit Ascii, if you want to use characters from more than
one set, you have to use control characters or sequences to shift your
"current character set" around.  ESC ) X where X is a letter, sets the
current character set to a specific one (the letters are standardized; 'B'
is US ASCII).

In 8-bit Ascii, there are two current character sets, one used for characters
with the high bit off, one for high-bit-on chars.  You pick them with
ESC ) X and ESC ( X.

X3.41 defined this and defined the mapping from 7-bit to 8-bit and vice
verse.  7-bit Ascii users can define two current chars sets too, with the
same escape codes, and use SO (Shift Out) to get to the high-bit set and
SI (Shift In) to get to the usual set.  SI/SO are undefined in 8-bit Ascii.
Thus you can build a little state machine that translates Ascii-7 to Ascii-8
or back, by sending SI or SO whenever the high-order bit changes.

There are also "command sets" like the character sets except they come in
32's (00 thru 1F).  8-bit users can use two such, 00-1F and 80-9F.  X3.64
defines a number of controls in the 80-9F range; you get at them in 7-bit
Ascii by trickery with ESC prefixing.  Thus the ESC [ that appears on the
front of all the X3.64 (eg, VT100) control sequences is really an 8-bit
control translated into the 7-bit environment.  It's called CSI (control
sequence introducer), if you care.

Personally, I'm glad that DEC built the VT100 with such slavish attention to
X3.64, since many people building VT100 emulators also did so.  *Flame:*
Unfortunately, cretinous companies like Televideo went right on defining
their own random control characters, so we will continue to have horrid
terminal support problems for a long while.  **Flame off**  I wish DEC had
made 8-bit Ascii a Setup option on the VT100, since that would have also
encouraged others to do it.  Tom Hastings, take note!  (I consulted to
Anderson-Jacobson on their terminal designs -- they wouldn't put it in since
absolutely no market existed for it -- no hosts use it.  Chicken and egg.)

	John Gilmore, Sun Microsystems