Selected ANSI (VT100) ESCape codes
----------------------------------
by Rob Elliott
  Illini Data Fido 115/100

These are ESCape codes that will be of most use to people designing VT100
graphics displays.  Not all of the codes are listed, just the most useful
ones.


What it does                                             The code
------------                              ESC = 27d      --------
Cursor up Pn lines                            `--------> ESC[PnA
Cursor down Pn lines                                     ESC[PnB
Cursor forward (right) Pn lines                          ESC[PnC
Cursor backward (left) Pn lines                          ESC[PnD
Cursor sent to line Pl and column Pc                     ESC[Pl;PcH or
                                                        ESC[Pl;Pcf
Cursor position saved                                    ESC7
Cursor position restored                                 ESC8

Change current line to double-height Top half            ESC#3
Change current line to double-height Bottom half         ESC#4
Change current line to normal size                       ESC#5
Change current line to double-width                      ESC#6

Character Attributes                             ESC[Ps;Ps;Ps;...Psm

                 Ps =  0 or none    All attributes off
                       1            Bold on
                       2            Underscore on
                       5            Blink on
                       7            Reverse video on

Erase from cursor to end of line                         ESC[K
Erase from cursor to end of screen                       ESC[J
Erase from beginning of line to cursor                   ESC[1K
Erase from beginning of screen to cursor                 ESC[1J
Erase entire line containing cursor                      ESC[2K
Erase entire screen                                      ESC[2J

United Kingdom Character Set                             ESC(A
United States (ASCII) Character Set                      ESC(B
Special graphics set (line drawing set)                  ESC(0

Set scrolling from top Pt to bottom Pb                   ESC[Pt;Pb
Set VT52 mode                                            ESC[?2l
Set 132 column mode                                      ESC[?3h
Set 80 column mode                                       ESC[?3l
Set smooth scroll                                        ESC[?4h
Set jump scroll                                          ESC[?4l
Set reverse screen (light background)                    ESC[?5h
Set normal screen (dark background)                      ESC[?5l


Line Drawing Character Set
--------------------------
When the line drawing set is entered, via ESC(0,

-This-               -will show-
 \                 Diamond
 a                 Checkerboard
 e                 Degree sign
 g                 Plus/minus sign
 j                 Lower-right box corner
 k                 Upper-right box corner
 l                 Upper-left box corner
 m                 Lower-left box corner
 n                 Intersecting lines
 o                 Horizontal line - Scan 1 (bottommost)
 p                 Horizontal line - Scan 3
 q                 Horizontal line - Scan 5 (use this to match box corners)
 r                 Horizontal line - Scan 7
 s                 Horizontal line - Scan 9 (topmost)
 t                 Left "T"
 u                 Right "T"
 v                 Top "T" (looks normal)
 w                 Bottom "T" (upside down)
 x                 Vertical bar
 y                 Less than or equal to sign
 z                 Greater than or equal to sign
 |                 Not equal to
 (                 Pi sign
 )                 UK pound sign
 ~                 Centered dot

       Window:        Line Sloping up:       A normal box:
        lqwql
        x x x                                 lqqqqqqqqk
        tqnqu              opqrs              x        x
        x x x                                 mqqqqqqqqj
        mqvqj


Notes
-----
I highly recommend including the following sequence at the beginning of each
ANSI file:

              ESC[?2lESC<

This makes the computer jump in and out of VT52 mode.  This resets all the
character sets to G0 designator (especially important) and everything else.
Using this will make sure the character sets show up only when they are
supposed to (no graphics characters when it's a text screen and vice versa).


On IBMs
-------
There are several ways to view these on an IBM PC.  To have ANSI codes work
locally (just TYPE the files and the displays appear) you can do several
things.

1.  Assign ANSI.SYS (free with PC-DOS) as a device driver.  Do this by putting
   this line in CONFIG.SYS:

       DEVICE=ANSI.SYS

2.  Download Fansi-Console (FCONSOLE) from any BBS that has it available,
   and install that as specified in the instructions.

To view the codes remotely, it's best to get a VT100 emulating terminal
program.  Many commercial programs have this option.  PC-VT, in the public
domain, was written explicitly for this emulation.  CrossTalk XVI, SmartCom II,
and PTel are some commercial programs with this support.


So...
-----
Send any questions or comments to Illini Data Fido 115/110.
If you call direct, make sure you're using a VT100 emulator!