ANSI and VT100 Terminal Control Escape Sequences

From Free Knowledge Base- The DUCK Project: information for everyone
Revision as of 16:58, 22 August 2012 by Admin (Talk | contribs)

Jump to: navigation, search

The terminal control sequences that follow the ESC character are dependent on which terminal the control codes were generated for. Many terminal emulators support color and cursor control through a system of escape sequences. One such standard is commonly referred to as ANSI Color. Several terminal specifications are based on the ANSI color standard, including VT100.

<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

  • Disables line wrapping.

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>(

  • Set default font.

Font Set G1 <ESC>)

  • Set alternate font.

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

  • Clears all tabs.