Jump to content

ANSI escape code

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Niceguyjoey (talk | contribs) at 02:13, 10 November 2004 (remove advert). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

ANSI escape codes are used to specify visual effects on text terminals. They are typically initiated with the characters \e (backslash-'e') and [ (left bracket). From the MS-DOS prompt command, the escape character can be specified as $e, e.g. prompt $e[44m;... would specify a blue background as part of the prompt. In QBasic or GWBASIC, the code would be CHR$(27) or CHR$(&H1B) (for those of you who prefer hexadecimal). (27d or 1Bh is the same code as the keyboard code when you press the button ESC on your keyboard.) DOS systems need a driver for the ANSI codes - typically ansi.sys, but there are others used.

Some ANSI codes
Code Effect
ESC [nA Moves the cursor up n rows. If the cursor is already at the top of the screen, this has no effect. If n is not given, 1 is used.
ESC [nB Moves the cursor down n rows. If the cursor is already at the bottom of the screen, this has no effect. If n is not given, 1 is used.
ESC [nC Moves the cursor right n rows. If the cursor is already at the edge of the screen, this has no effect. If n is not given, 1 is used.
ESC [nD Moves the cursor left n rows. If the cursor is already at the edge of the screen, this has no effect. If n is not given, 1 is used.
ESC [n;mf Moves the cursor to row n, column m. If n is not given, 1 is used.
ESC [n;mH Moves the cursor to row n, column m. If n is not given, 1 is used.
ESC [=nh Set screen mode.
ESC [2J Clears screen and sends cursor home.
ESC [K Erases to end of the line.
ESC [=nl Reset screen mode.
ESC [n...km Sets graphics parameters.
ESC [code;param[;param]p Redefines a key.
ESC [n;mR Sets the cursor to row n, column m, and reports this to the system.
ESC [s Saves the cursor position.
ESC [u Restores the cursor position.
Screen modes
Code Effect
0 40 x 25 mono
1 40 x 25 colour
2 80 x 25 mono
3 80 x 25 colour
4 320 x 200 colour
5 320 x 200 mono
6 640 x 200 mono
7 Wrap at end of line
Graphics parameters
Code Effect
0 All attributes off
1 Bold
2 Faint
3 Italic
5 Blink
6 Rapid blink
7 Reverse video
8 Concealed
30 Black foreground
31 Red foreground
32 Green foreground
33 Yellow foreground
34 Blue foreground
35 Magenta foreground
36 Cyan foreground
37 White foreground
40 Black background
41 Red background
42 Green background
43 Yellow background
44 Blue background
45 Magenta background
46 Cyan background
47 White background
48 Subscript
49 Superscript


Examples: ESC[0;68;"DIR";13p - This re-assigns the key F10 to send to the keyboard buffer the string "DIR" and ENTER, which in the DOS command line would display the contents of the current directory.

ESC[2J - This clears the screen and locates the cursor to the y,x position 0,0.

ESC[32m - This makes text green. Normally the green would be dark, dull green, so you may wish to enable Bold with the code ESC[1m which would make it bright green.

ESC[s - This saves the cursor position. Using the code ESC[u will restore it to the position. Say the current cursor position is 7(y) and 10(x). The code ESC[s will save those two numbers. Now you can move to a different cursor position, such as 20(y) and 3(x), using the code ESC[20;3H or ESC[20;3f. Now if you use the code ESC[u the cursor position will return to 7(y) and 10(x).