ANSI.SYS is a device driver in the DOS operating system that provides extra console functions through ANSI escape sequences. It is partially based upon a subset of the text terminal control standard proposed by the ANSI X3L2 Technical Committee on Codes and Character Sets (the "X3 Committee").
Contents |
To use ANSI.SYS under MS-DOS, a line is added to the CONFIG.SYS (or CONFIG.NT under Windows NT based versions of Windows) file that reads:
device=(drive:)(path)ANSI.SYS
where (drive:) and (path) are the drive letter and path to the directory in which the file ANSI.SYS is found.
Once loaded, ANSI.SYS enabled code sequences that changed the colors of the cursor and characters on the screen, or enabled software programs to move the cursor up or down lines, enabled blinking text, and similar text graphics features. Using this driver, text could be displayed in 16 different colors ("foreground" colors), with 8 optional background colors. It also allowed for the changing of the video mode from standard 80x25 text mode to a number of different graphics modes (for example, 320x200, 640x200, 40-column text mode) depending on which video graphics card was installed.
An interesting feature about ANSI.SYS was that it allowed for the remapping of any key on the keyboard in order to perform shortcuts or macros for complex instructions. This feature was also used by evildoers to create simple trojans out of text files called "ANSI Bombs" laced with nefarious keyboard remaps. A number of antivirus utilities were written to ensure that, for example, the F3 function key wasn't remapped to DEL *.* or FORMAT C: and the N-key (for no) wasn't remapped to Y.
ANSI.SYS was extremely slow as it mapped to the BIOS calls. There were several replacements that directly mapped the video memory (similar to how most programs that did full-screen display worked on the IBM PC) that made console io useful. Typically these replacements also deleted the keyboard remapping functions and thus defused the "ANSI Bombs".
The file ANSI.SYS is a part of several Microsoft operating systems, including:
ANSI.SYS was required to run some software that used its cursor and color control functions. It could also be used to enable elaborate color codes in the command.com prompt. These uses were overshadowed by the use of ANSI.SYS in BBSes; ANSI escape sequences were used to enable BBSes to send elaborate text graphics more elaborate than ASCII art, and to control the cursor in ways that were used in a number of online games and similar features.
There are some escape sequences specific to ANSI.SYS.
Sequence | Effect |
---|---|
CSI = n h | Set screen mode. |
CSI = n l | Reset screen mode |
CSI code ; param [ ; param ] p | Redefines a key. |
Mode | Description | Mode | Description |
---|---|---|---|
0 | 40 × 25 mono | 1 | 40 × 25 color |
2 | 80 × 25 mono | 3 | 80 × 25 color |
4 | 320 × 200 color | 5 | 320 × 200 mono |
6 | 640 × 200 mono | 14 | 640 x 200 color (16-color graphics) |
13 | 320 x 200 color (graphics) | 19 | 320 x 200 color (256-color graphics) |
15 | 640 x 350 monochrome (2-color graphics) | 16 | 640 x 350 color (16-color graphics) |
17 | 640 x 480 monochrome (2-color graphics) | 18 | 640 x 480 color (16-color graphics) |
7 | Wrap at end of line |