----------------------- MS-DOS v6.22 Help: ANSI.SYS ------------------------
<Notes> <Examples>                                               <Index>
----------------------------------------------------------------------------

                                  ANSI.SYS

Defines functions that change display graphics, control cursor movement, and
reassign keys. The ANSI.SYS device driver supports ANSI terminal emulation
of escape sequences to control your system's screen and keyboard. An ANSI
escape sequence is a sequence of ASCII characters, the first two of which
are the escape character (1Bh) and the left-bracket character (5Bh). The
character or characters following the escape and left-bracket characters
specify an alphanumeric code that controls a keyboard or display function.
ANSI escape sequences distinguish between uppercase and lowercase letters;
for example,"A" and "a" have completely different meanings.

This device driver must be loaded by a <DEVICE> or <DEVICEHIGH> command in
your CONFIG.SYS file.

Note:  In this topic bold letters in syntax and ANSI escape sequences
       indicate text you must type exactly as it appears.

Syntax

    DEVICE=[drive:][path]ANSI.SYS [/X] [/K] [/R]

Parameter

[drive:][path]
   Specifies the location of the ANSI.SYS file.

Switches

/X
    Remaps extended keys independently on 101-key keyboards.

/K
    Causes ANSI.SYS to treat a 101-key keyboard like an 84-key
    keyboard. This is equivalent to the command SWITCHES=/K.
    If you usually use the SWITCHES=/K command, you will need
    to use the /K switch with ANSI.SYS.

/R
     Adjusts line scrolling to improve readability when ANSI.SYS
     is used with screen-reading programs (which make computers
     more accessible to people with disabilities).

Parameters used in ANSI escape sequences

Pn
    Numeric parameter. Specifies a decimal number.

Ps
    Selective parameter. Specifies a decimal number that you use to select
    a function. You can specify more than one function by separating the
    parameters with semicolons.

PL
    Line parameter. Specifies a decimal number that represents one of the
    lines on your display or on another device.

Pc
    Column parameter. Specifies a decimal number that represents one of the
    columns on your screen or on another device.

ANSI escape sequences for cursor movement, graphics, and keyboard settings

In the following list of ANSI escape sequences, the abbreviation ESC
represents the ASCII escape character 27 (1Bh), which appears at the
beginning of each escape sequence.

ESC[PL;PcH
    Cursor Position: Moves the cursor to the specified position
    (coordinates). If you do not specify a position, the cursor moves to the
    home position--the upper-left corner of the screen (line 0, column
    0). This escape sequence works the same way as the following Cursor
    Position escape sequence.

ESC[PL;Pcf
    Cursor Position: Works the same way as the preceding Cursor Position
    escape sequence.

ESC[PnA
    Cursor Up: Moves the cursor up by the specified number of lines without
    changing columns. If the cursor is already on the top line, ANSI.SYS
    ignores this sequence.

ESC[PnB
    Cursor Down: Moves the cursor down by the specified number of lines
    without changing columns. If the cursor is already on the bottom line,
    ANSI.SYS ignores this sequence.

ESC[PnC
    Cursor Forward: Moves the cursor forward by the specified number of
    columns without changing lines. If the cursor is already in the
    rightmost column, ANSI.SYS ignores this sequence.

ESC[PnD
    Cursor Backward: Moves the cursor back by the specified number of
    columns without changing lines. If the cursor is already in the leftmost
    column, ANSI.SYS ignores this sequence.

ESC[s
    Save Cursor Position: Saves the current cursor position. You can move
    the cursor to the saved cursor position by using the Restore Cursor
    Position sequence.

ESC[u
    Restore Cursor Position: Returns the cursor to the position stored
    by the Save Cursor Position sequence.

ESC[2J
    Erase Display: Clears the screen and moves the cursor to the home
    position (line 0, column 0).

ESC[K
    Erase Line: Clears all characters from the cursor position to the
    end of the line (including the character at the cursor position).

ESC[Ps;...;Psm
    Set Graphics Mode: Calls the graphics functions specified by the
    following values. These specified functions remain active until the next
    occurrence of this escape sequence. Graphics mode changes the colors and
    attributes of text (such as bold and underline) displayed on the
    screen.

    Text attributes
       0    All attributes off
       1    Bold on
       4    Underscore (on monochrome display adapter only)
       5    Blink on
       7    Reverse video on
       8    Concealed on

    Foreground colors
       30    Black
       31    Red
       32    Green
       33    Yellow
       34    Blue
       35    Magenta
       36    Cyan
       37    White

    Background colors
       40    Black
       41    Red
       42    Green
       43    Yellow
       44    Blue
       45    Magenta
       46    Cyan
       47    White

    Parameters 30 through 47 meet the ISO 6429 standard.

ESC[=psh
    Set Mode: Changes the screen width or type to the mode specified
    by one of the following values:

       0      40 x 148 x 25 monochrome (text)
       1      40 x 148 x 25 color (text)
       2      80 x 148 x 25 monochrome (text)
       3      80 x 148 x 25 color (text)
       4      320 x 148 x 200 4-color (graphics)
       5      320 x 148 x 200 monochrome (graphics)
       6      640 x 148 x 200 monochrome (graphics)
       7      Enables line wrapping
      13      320 x 148 x 200 color (graphics)
      14      640 x 148 x 200 color (16-color graphics)
      15      640 x 148 x 350 monochrome (2-color graphics)
      16      640 x 148 x 350 color (16-color graphics)
      17      640 x 148 x 480 monochrome (2-color graphics)
      18      640 x 148 x 480 color (16-color graphics)
      19      320 x 148 x 200 color (256-color graphics)

ESC[=Psl
    Reset Mode: Resets the mode by using the same values that Set Mode
    uses, except for 7, which disables line wrapping. The last character
    in this escape sequence is a lowercase L.

ESC[code;string;...p
    Set Keyboard Strings: Redefines a keyboard key to a specified string.
    The parameters for this escape sequence are defined as follows:

    ***  Code is one or more of the values listed in the following table.
       These values represent keyboard keys and key combinations. When using
       these values in a command, you must type the semicolons shown in this
       table in addition to the semicolons required by the escape sequence.
       The codes in parentheses are not available on some keyboards.
       ANSI.SYS will not interpret the codes in parentheses for those
       keyboards unless you specify the /X switch in the DEVICE command for
       ANSI.SYS.

    ***  String is either the ASCII code for a single character or a string
       contained in quotation marks. For example, both 65 and "A" can be
       used to represent an uppercase A.

IMPORTANT:  Some of the values in the following table are not valid for all
            computers. Check your computer's documentation for values that
            are different.

Key                       Code      SHIFT+code  CTRL+code  ALT+code
---------------------------------------------------------------------------

F1                        0;59      0;84        0;94       0;104

F2                        0;60      0;85        0;95       0;105

F3                        0;61      0;86        0;96       0;106

F4                        0;62      0;87        0;97       0;107

F5                        0;63      0;88        0;98       0;108

F6                        0;64      0;89        0;99       0;109

F7                        0;65      0;90        0;100      0;110

F8                        0;66      0;91        0;101      0;111

F9                        0;67      0;92        0;102      0;112

F10                       0;68      0;93        0;103      0;113

F11                       0;133     0;135       0;137      0;139

F12                       0;134     0;136       0;138      0;140

HOME (num keypad)         0;71      55          0;119      --

UP ARROW (num keypad)     0;72      56          (0;141)    --

PAGE UP (num keypad)      0;73      57          0;132      --

LEFT ARROW (num keypad)   0;75      52          0;115      --

RIGHT ARROW (num          0;77      54          0;116      --
keypad)

END (num keypad)          0;79      49          0;117      --

DOWN ARROW (num keypad)   0;80      50          (0;145)    --

PAGE DOWN (num keypad)    0;81      51          0;118      --

INSERT (num keypad)       0;82      48          (0;146)    --

DELETE  (num keypad)      0;83      46          (0;147)    --

HOME                      (224;71)  (224;71)    (224;119)  (224;151)

UP ARROW                  (224;72)  (224;72)    (224;141)  (224;152)

PAGE UP                   (224;73)  (224;73)    (224;132)  (224;153)

LEFT ARROW                (224;75)  (224;75)    (224;115)  (224;155)

RIGHT ARROW               (224;77)  (224;77)    (224;116)  (224;157)

END                       (224;79)  (224;79)    (224;117)  (224;159)

DOWN ARROW                (224;80)  (224;80)    (224;145)  (224;154)

PAGE DOWN                 (224;81)  (224;81)    (224;118)  (224;161)

INSERT                    (224;82)  (224;82)    (224;146)  (224;162)

DELETE                    (224;83)  (224;83)    (224;147)  (224;163)

PRINT SCREEN              --        --          0;114      --

PAUSE/BREAK               --        --          0;0        --

BACKSPACE                 8         8           127        (0)

ENTER                     13        --          10         (0

TAB                       9         0;15        (0;148)    (0;165)

NULL                      0;3       --          --         --

A                         97        65          1          0;30

B                         98        66          2          0;48

C                         99        66          3          0;46

D                         100       68          4          0;32

E                         101       69          5          0;18

F                         102       70          6          0;33

G                         103       71          7          0;34

H                         104       72          8          0;35

I                         105       73          9          0;23

J                         106       74          10         0;36

K                         107       75          11         0;37

L                         108       76          12         0;38

M                         109       77          13         0;50

N                         110       78          14         0;49

O                         111       79          15         0;24

P                         112       80          16         0;25

Q                         113       81          17         0;16

R                         114       82          18         0;19

S                         115       83          19         0;31

T                         116       84          20         0;20

U                         117       85          21         0;22

V                         118       86          22         0;47

W                         119       87          23         0;17

X                         120       88          24         0;45

Y                         121       89          25         0;21

Z                         122       90          26         0;44

1                         49        33          --         0;120

2                         50        64          0          0;121

3                         51        35          --         0;122

4                         52        36          --         0;123

5                         53        37          --         0;124

6                         54        94          30         0;125

7                         55        38          --         0;126

8                         56        42          --         0;126

9                         57        40          --         0;127

0                         48        41          --         0;129

-                         45        95          31         0;130

=                         61        43          ---        0;131

[                         91        123         27         0;26

]                         93        125         29         0;27

                          92        124         28         0;43

;                         59        58          --         0;39

'                         39        34          --         0;40

,                         44        60          --         0;51

.                         46        62          --         0;52

/                         47        63          --         0;53

`                         96        126         --         (0;41)

ENTER (keypad)            13        --          10         (0;166)

/ (keypad)                47        47          (0;142)    (0;74)

* (keypad)                42        (0;144)     (0;78)     --

- (keypad)                45        45          (0;149)    (0;164)

+ (keypad)                43        43          (0;150)    (0;55)

5 (keypad)                (0;76)    53          (0;143)    --

                                      ***

<Syntax> <Examples>
----------------------------------------------------------------------------

                              ANSI.SYS--Notes

Remapping extended keys

If you have a keyboard with 101 keys, you may want to use the /X switch to
remap certain extended keys. For example, there are two HOME keys on
keyboards with 101 keys: One on the numeric keypad and the other in the
block of cursor-control keys. Unless you specify the /X switch, the two HOME
keys are the same to MS-DOS.

Ignoring extended keys

If you have a program that does not correctly interpret input from an
enhanced keyboard, use the /K switch with ANSI.SYS. Your enhanced keyboard
will then use conventional keyboard functions.

Using both the /X switch and the /K switch

You cannot specify ANSI.SYS with both the /X switch and the /K switch.

                                      ***

<Syntax> <Notes>
----------------------------------------------------------------------------

                             ANSI.SYS--Examples

To exchange the backslash and question-mark keys by using literal strings,
type the following escape sequence:

    ESC["\";"?"pESC["?";"\"p

To exchange the backslash and question-mark keys by using each key's ASCII
value, type the following escape sequence:

    ESC[92;63pESC[63;92p

To restore the backslash and question-mark keys to their original meanings,
type the following escape sequence:

    ESC[92;92pESC[63;63p

To specify that MS-DOS display a directory listing when you press the F2
key, type the following at the command prompt:

    prompt $e[0;60;"dir";13p

To specify a black screen background color and a high-intensity screen
foreground color, type the following at the command prompt:

    prompt $e[1;32;40m$p$g

                                      ***

----------------------------------------------------------------------------
<Top of page>
Last update: December 07, 2002 14:45 by
Content © 1997 Microsoft Corporation
All else © 2000-2005
Counter