This  document  explains the how the ANSI escape sequences are
defined for the IBM PC.

Notes:

1.  The default value is used when no explicit value is given
    or a value of zero is given.

2.  Pn  -  Numeric  parameter.   A decimal  number  specified
    with ASCII digits.

3.  Ps - Selective parameter.     Any decimal number  that  is
    is  used  to  select a subfunction.  Multiple subfunctions
    may  be  selected  by  separating  the   parameters   with
    semi-colons.

C U R S O R   F U N C T I O N S

CUP - Cursor Postion

      ESC [ Pl ; Pc H

HVP - Horizontal & Vertical Postion

      ESC [ Pl ; Pc f

   CUP  and  HVP  move the cursor to the position specified by
the parameters.  The first parameter specifies the line number
and  the  second  parameter  specifies the column number.  The
default value is one.  When no parameters are given the cursor
is moved to the home postion.

CUU - Cursor Up

      ESC [ Pn A

   Moves the cursor up one line without changing columns.  The
value of Pn determines the number of lines moved.  The default
value for Pn is one.  This sequence is ignored if  the  cursor
is already on the top line.

CUD - Cursor Down

      ESC [ Pn B

   Moves the cursor down one line  without  changing  columns.
The  value  of  Pn  determines the number of lines moved.  The
default value for Pn is one.  This sequence is ignored if  the
cursor is already on the bottom line.

CUF - Cursor Forward

      ESC [ Pn C

   Moves the cursor forword one column without changing lines.
The  value  of Pn determines the number of columns moved.  The
default value for Pn is one.  This sequence is ignored if  the
cursor is  already in the rightmost column.

      ESC [ Pn D

Moves the cursor back one column without changing lines.  The
value of Pn determines the number of columns moved.  The default
value for Pn is one.  This sequence is ignored if the cursor
is already in the leftmost column.

DSR  - Device Status Report

       ESC [ 6 n

The  console  driver  will output a CPR sequence on receipt of
DSR.

CPR - Cursor Position Report (from console driver to system)

       ESC [ Pn ; Pn R

   The  CPR  sequence  reports  current  cursor  position  via
standard  input.   The  first  parameter specifies the current
line and the second parameter specifies the current column.

SCP - Save Cursor Postion

       ESC [ s

   The current cursor position is saved.  This cursor position
can be restored with the RCP sequence.

RCP - Restore cursor position

       ESC [ u

   Restores  the  cursor position to the value it had when the
console driver received the SCP sequence.

E R A S I N G

ED - Erase Display

     ESC [ 2 J

Erases  all  of  the  screen  and  the cursor goes to the home
position.

EL - Erase Line

     ESC [ K

   Erases from  the cursor to the end of the line and includes
the cursor position.



M O D E S   O F   O P E R A T I O N

SGR - Set Graphics Rendition

      ESC [ Ps ; ... ; Ps m

Invokes  the  graphic rendition specified by the parameter(s).
All  following  characters  are  rendered  according  to   the
parameter(s) until the next occurence of SGR.

Parameter     Parameter Function

   0            All Attributes Off
   1            Bold On
   4            Underscore On           (monochrome displays
                                        only)
   5            Blink On
   7            Reverse Video On
   8            Concealed On            (ISO 6429 standard)
  30            Black foreground        (ISO 6429 standard)
  31            Red foreground          (ISO 6429 standard)
  32            Green foreground        (ISO 6429 standard)
  33            Yellow foreground       (ISO 6429 standard)
  34            Blue foreground         (ISO 6429 standard)
  35            Magenta foreground      (ISO 6429 standard)
  36            Cyan foreground         (ISO 6429 standard)
  37            White foregound         (ISO 6429 standard)
  40            Black background        (ISO 6429 standard)
  41            Red background          (ISO 6429 standard)
  42            Green background        (ISO 6429 standard)
  43            Yellow background       (ISO 6429 standard)
  44            Blue background         (ISO 6429 standard)
  45            Magenta background      (ISO 6429 standard)
  46            Cyan background         (ISO 6429 standard)
  47            White backgound         (ISO 6429 standard)

SM  - Set Mode          (IBM/MICROSOFT Private)

      ESC [ = Ps h
or    ESC [ = h
or    ESC [ = 0 h
or    ESC [ ? 7 h


Invokes the screen width or type specified by the parameter.

Parameter     Parameter Function

   0            40 x 25 black and white
   1            40 x 25 color
   2            80 x 25 black and white
   3            80 x 25 color

   4            320 x 200 color
   5            320 x 200 black and white
   6            640 x 200 black and white
   7            wrap at end of line


RM - Reset Mode

      ESC [ = Ps l
or    ESC [ = l
or    ESC [ = 0 l
or    ESC [ ? 7 l


   Parameters are the  same  as  SM  (Set  Mode)  except  that
parameter 7 will reset wrap at end of line mode.


K E Y B O A R D   R E - A S S I G N M E N T

Although not part of the ANSI 3.64-1979 or ISO  6429  standard
the  IBM  PC  keyboard  re-assignment was done in a compatible
way.

The control sequence is:

     ESC [ Pn ; Pn ; ... Pn p
or   ESC [ "string" ; p
or   ESC [ Pn ; "string" ; Pn ; Pn ; "string" ; Pn p
or   any other combination of strings and decimal numbers

The  final  code in the control sequence ("p") is one reserved
for private use the by ANSI 3.64-1979 standard.

The first ASCII code in the  control  sequence  defines  which
code  is  being  mapped.   The  remaining  numbers  define the
sequence  of  ASCII  codes  generated   when   this   key   is
intercepted.

To  every  rule  there is an exception, however!  If the first
code in the sequence is zero (NUL) then the first  and  second
code make up an extended ASCII re-definition.

Here are some examples:

1.  Reassign the Q and q key to the A and a key (and the other
    way as well):

    ESC [ 6 5 ; 8 1 p               A becomes Q
    ESC [ 9 7 ; 1 1 3 p             a becomes q
    ESC [ 8 1 ; 6 5 p               Q becomes A
    ESC [ 1 1 3 ; 9 7 p             q becomes a

2.  Reassign  the  F10  key  to to a dir command followed by a
    carriage return:

    ESC [ 0 ; 6 8 ; " d i r " ; 1 3 p

    The 0;68 is the extended ASCII code for the F10  key.   13
    decimal is a carriage return
������������������������������������������