Many computer terminals and terminal emulators support colour and
cursor control through a system of escape sequences. One such standard
is commonly referred to as ANSI Colour. Several terminal
specifications are based on the ANSI colour standard, including VT100.
The following is a partial listing of the VT100 control set.
<ESC>
represents the ASCII “escape”
character, 0x1B. Bracketed tags represent modifiable decimal
parameters; eg. {ROW}
would be replaced by a row
number.
Device Status
The following codes are
used for reporting terminal/display settings, and vary depending on the
implementation:
Query Device Code <ESC>[c
- Requests a
Report Device Code
response from
the device.
Report Device Code <ESC>[{code}0c
- Generated by the device in response to
Query Device
Code
request.
Query Device Status <ESC>[5n
- Requests a
Report Device Status
response
from the device.
Report Device OK <ESC>[0n
- Generated by the device in response to a
Query Device
Status
request; indicates that device is functioning
correctly.
Report Device Failure <ESC>[3n
- Generated by the device in response to a
Query Device
Status
request; indicates that device is functioning
improperly.
Query Cursor Position <ESC>[6n
- Requests a
Report Cursor Position
response
from the device.
Report Cursor Position <ESC>[{ROW};{COLUMN}R
- Generated by the device in response to a
Query Cursor
Position
request; reports current cursor position.
Terminal Setup
The
h
and l
codes are used for
setting terminal/display mode, and vary depending on the implementation.
Line Wrap is one of the few setup codes that tend to be used
consistently:
Reset Device <ESC>c
- Reset all terminal settings to default.
Enable Line Wrap <ESC>[7h
- Text wraps to next line if longer than the length of the display
area.
Disable Line Wrap <ESC>[7l
Fonts
Some terminals support multiple
fonts: normal/bold, swiss/italic, etc. There are a variety of special
codes for certain terminals; the following are fairly standard:
Font Set G0 <ESC>(
Font Set G1 <ESC>)
Cursor Control
Cursor Home <ESC>[{ROW};{COLUMN}H
- Sets the cursor position where subsequent text will begin. If no
row/column parameters are provided (ie. <ESC>[H
),
the cursor will move to the home position, at the upper left
of the screen.
Cursor Up <ESC>[{COUNT}A
- Moves the cursor up by COUNT rows; the default count is
1.
Cursor Down <ESC>[{COUNT}B
- Moves the cursor down by COUNT rows; the default count is
1.
Cursor Forward <ESC>[{COUNT}C
- Moves the cursor forward by COUNT columns; the
default count is 1.
Cursor Backward <ESC>[{COUNT}D
- Moves the cursor backward by COUNT columns; the
default count is 1.
Force Cursor Position <ESC>[{ROW};{COLUMN}f
- Identical to
Cursor Home
.
Save Cursor <ESC>[s
- Save current cursor position.
Unsave Cursor <ESC>[u
- Restores cursor position after a
Save Cursor
.
Save Cursor & Attrs <ESC>7
- Save current cursor position.
Restore Cursor & Attrs <ESC>8
- Restores cursor position after a
Save Cursor
.
Scrolling
Scroll Screen <ESC>[r
- Enable scrolling for entire display.
Scroll Screen <ESC>[{start};{end}r
- Enable scrolling from row
{start}
to row
{end}
.
Scroll Down <ESC>D
- Scroll display down one line.
Scroll Up <ESC>M
- Scroll display up one line.
Tab Control
Set Tab <ESC>H
- Sets a tab at the current position.
Clear Tab <ESC>[g
- Clears tab at the current position.
Clear All Tabs <ESC>[3g
Erasing Text
Erase End of Line <ESC>[K
- Erases from the current cursor position to the end of the current
line.
Erase Start of Line <ESC>[1K
- Erases from the current cursor position to the start of the
current line.
Erase Line <ESC>[2K
- Erases the entire current line.
Erase Down <ESC>[J
- Erases the screen from the current line down to the bottom of the
screen.
Erase Up <ESC>[1J
- Erases the screen from the current line up to the top of the
screen.
Erase Screen <ESC>[2J
- Erases the screen with the background colour and moves the cursor
to home.
Printing
Some terminals support local
printing:
Print Screen <ESC>[i
- Print the current screen.
Print Line <ESC>[1i
Stop Print Log <ESC>[4i
Start Print Log <ESC>[5i
- Start log; all received text is echoed to a printer.
Define Key
Set Key Definition <ESC>[{key};"{string}"p
- Associates a string of text to a keyboard key.
{key}
indicates the key by its ASCII value in decimal.
Set Display Attributes
Set Attribute Mode <ESC>[{attr1};...;{attrn}m
-By: John