ANSI Escape sequences - VT100 / VT52

(ANSI Escape codes)

 

This document describes how to control a VT100 terminal.

ANSI escape sequence is a sequence of ASCII characters, the first two of which are the ASCII "Escape" character 27 (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.

Information is also available int the VT100 User Guide.

 

Esc[20h Set new line mode LMN
Esc[?1h Set cursor key to application DECCKM
none Set ANSI (versus VT52) DECANM
Esc[?3h Set number of columns to 132 DECCOLM
Esc[?4h Set smooth scrolling DECSCLM
Esc[?5h Set reverse video on screen DECSCNM
Esc[?6h Set origin to relative DECOM
Esc[?7h Set auto-wrap mode DECAWM
Esc[?8h Set auto-repeat mode DECARM
Esc[?9h Set interlacing mode DECINLM
 
Esc[20l Set line feed mode LMN
Esc[?1l Set cursor key to cursor DECCKM
Esc[?2l Set VT52 (versus ANSI) DECANM
Esc[?3l Set number of columns to 80 DECCOLM
Esc[?4l Set jump scrolling DECSCLM
Esc[?5l Set normal video on screen DECSCNM
Esc[?6l Set origin to absolute DECOM
Esc[?7l Reset auto-wrap mode DECAWM
Esc[?8l Reset auto-repeat mode DECARM
Esc[?9l Reset interlacing mode DECINLM
 
Esc= Set alternate keypad mode DECKPAM
Esc> Set numeric keypad mode DECKPNM
 
Esc(A Set United Kingdom G0 character set setukg0
Esc)A Set United Kingdom G1 character set setukg1
Esc(B Set United States G0 character set setusg0
Esc)B Set United States G1 character set setusg1
Esc(0 Set G0 special chars. & line set setspecg0
Esc)0 Set G1 special chars. & line set setspecg1
Esc(1 Set G0 alternate character ROM setaltg0
Esc)1 Set G1 alternate character ROM setaltg1
Esc(2 Set G0 alt char ROM and spec. graphics setaltspecg0
Esc)2 Set G1 alt char ROM and spec. graphics setaltspecg1
 
EscN Set single shift 2 SS2
EscO Set single shift 3 SS3
 
Esc[m Turn off character attributes SGR0
Esc[0m Turn off character attributes SGR0
Esc[1m Turn bold mode on SGR1
Esc[2m Turn low intensity mode on SGR2
Esc[4m Turn underline mode on SGR4
Esc[5m Turn blinking mode on SGR5
Esc[7m Turn reverse video on SGR7
Esc[8m Turn invisible text mode on SGR8
 
Esc[Line;Liner Set top and bottom lines of a window DECSTBM
 
Esc[ValueA Move cursor up n lines CUU
Esc[ValueB Move cursor down n lines CUD
Esc[ValueC Move cursor right n lines CUF
Esc[ValueD Move cursor left n lines CUB
Esc[H Move cursor to upper left corner cursorhome
Esc[;H Move cursor to upper left corner cursorhome
Esc[Line;ColumnH Move cursor to screen location v,h CUP
Esc[f Move cursor to upper left corner hvhome
Esc[;f Move cursor to upper left corner hvhome
Esc[Line;Columnf Move cursor to screen location v,h CUP
EscD Move/scroll window up one line IND
EscM Move/scroll window down one line RI
EscE Move to next line NEL
Esc7 Save cursor position and attributes DECSC
Esc8 Restore cursor position and attributes DECSC
 
EscH Set a tab at the current column HTS
Esc[g Clear a tab at the current column TBC
Esc[0g Clear a tab at the current column TBC
Esc[3g Clear all tabs TBC
 
Esc#3 Double-height letters, top half DECDHL
Esc#4 Double-height letters, bottom half DECDHL
Esc#5 Single width, single height letters DECSWL
Esc#6 Double width, single height letters DECDWL
 
Esc[K Clear line from cursor right EL0
Esc[0K Clear line from cursor right EL0
Esc[1K Clear line from cursor left EL1
Esc[2K Clear entire line EL2
 
Esc[J Clear screen from cursor down ED0
Esc[0J Clear screen from cursor down ED0
Esc[1J Clear screen from cursor up ED1
Esc[2J Clear entire screen ED2
 
Esc5n Device status report DSR
Esc0n Response: terminal is OK DSR
Esc3n Response: terminal is not OK DSR
 
Esc6n Get cursor position DSR
EscLine;ColumnR Response: cursor is at v,h CPR
 
Esc[c Identify what terminal type DA
Esc[0c Identify what terminal type (another) DA
Esc[?1;Value0c Response: terminal type code n DA
 
Escc Reset terminal to initial state RIS
 
Esc#8 Screen alignment display DECALN
Esc[2;1y Confidence power up test DECTST
Esc[2;2y Confidence loopback test DECTST
Esc[2;9y Repeat power up test DECTST
Esc[2;10y Repeat loopback test DECTST
 
Esc[0q Turn off all four leds DECLL0
Esc[1q Turn on LED #1 DECLL1
Esc[2q Turn on LED #2 DECLL2
Esc[3q Turn on LED #3 DECLL3
Esc[4q Turn on LED #4 DECLL4
 
 
Codes for use in VT52 compatibility mode
Esc< Enter/exit ANSI mode (VT52) setansi
 
Esc= Enter alternate keypad mode altkeypad
Esc> Exit alternate keypad mode numkeypad
 
EscF Use special graphics character set setgr
EscG Use normal US/UK character set resetgr
 
EscA Move cursor up one line cursorup
EscB Move cursor down one line cursordn
EscC Move cursor right one char cursorrt
EscD Move cursor left one char cursorlf
EscH Move cursor to upper left corner cursorhome
EscLineColumn Move cursor to v,h location cursorpos(v,h)
EscI Generate a reverse line-feed revindex
 
EscK Erase to end of current line cleareol
EscJ Erase to end of screen cleareos
 
EscZ Identify what the terminal is ident
Esc/Z Correct response to ident identresp

 

 

VT100 Special Key Codes

These are sent from the terminal back to the computer when the particular key is pressed. Note that the numeric keypad keys send different codes in numeric mode than in alternate mode. See escape codes above to change keypad mode.

 

Function Keys:

EscOPPF1
EscOQPF2
EscORPF3
EscOSPF4

 

Arrow Keys:

  Reset Set
up EscAEscOA
down EscBEscOB
right EscCEscOC
left EscDEscOD

 

Numeric Keypad Keys:

EscOp0
EscOq1
EscOr2
EscOs3
EscOt4
EscOu5
EscOv6
EscOw7
EscOx8
EscOy9
EscOm-(minus)
EscOl,(comma)
EscOn.(period)
EscOM^M

 

Printing:

Esc[i Print Screen Print the current screen
Esc[1iPrint Line Print the current line
Esc[4iStop Print Log Disable log
Esc[5iStart Print LogStart log; all received text is echoed to a printer