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