oem.hlp (Table of Contents; Topic list)
Important Notice
The pages on this site contain documentation for very old MS-DOS software, purely for historical purposes. If you're looking for up-to-date documentation, particularly for programming, you should not rely on the information found here, as it will be woefully out of date.
ANSI.SYS
Notes  Example
────────────────────────────────────────────────────────────────────────────
 
                                  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)    ──
 
                                      ♦