2013-09-30 14:14:38 -04:00
|
|
|
#ifndef VT100_h
|
|
|
|
#define VT100_h
|
|
|
|
//
|
|
|
|
// FILE: VT100.h
|
|
|
|
// AUTHOR: Rob Tillaart
|
|
|
|
// VERSION: 0.1.00
|
|
|
|
// PURPOSE: VT100 codes, to be sent by serial.print() et al.
|
|
|
|
// DATE: 2013-09-30
|
|
|
|
// URL:
|
|
|
|
//
|
|
|
|
// Released to the public domain
|
|
|
|
//
|
|
|
|
|
|
|
|
// a sourcec of VT100 codes
|
|
|
|
// http://ascii-table.com/ansi-escape-sequences-vt-100.php
|
|
|
|
|
|
|
|
|
|
|
|
// CHAR MODES
|
|
|
|
#define OFF "\033[0m"
|
|
|
|
#define BOLD "\033[1m"
|
|
|
|
#define LOWINTENS "\033[2m"
|
|
|
|
#define UNDERLINE "\033[4m"
|
|
|
|
#define BLINK "\033[5m"
|
|
|
|
#define REVERSE "\033[7m"
|
|
|
|
|
|
|
|
// POSITIONING
|
|
|
|
#define CLS "\033[2J" // Esc[2J Clear entire screen
|
2021-02-06 09:52:51 -05:00
|
|
|
#define GOTOXY(x,y) "\033[x;yH" // Esc[Line;ColumnH
|
2013-09-30 14:14:38 -04:00
|
|
|
#define HOME "\033[H"
|
|
|
|
|
|
|
|
#define CUD(x) "\033[xB" // Move cursor up n lines
|
|
|
|
// 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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// ADDITIONAL CODES depend on terminal if supported.
|
|
|
|
/*
|
|
|
|
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:
|
|
|
|
EscOP PF1
|
|
|
|
EscOQ PF2
|
|
|
|
EscOR PF3
|
|
|
|
EscOS PF4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Arrow Keys:
|
|
|
|
Reset Set
|
|
|
|
up EscA EscOA
|
|
|
|
down EscB EscOB
|
|
|
|
right EscC EscOC
|
|
|
|
left EscD EscOD
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Numeric Keypad Keys:
|
|
|
|
EscOp 0
|
|
|
|
EscOq 1
|
|
|
|
EscOr 2
|
|
|
|
EscOs 3
|
|
|
|
EscOt 4
|
|
|
|
EscOu 5
|
|
|
|
EscOv 6
|
|
|
|
EscOw 7
|
|
|
|
EscOx 8
|
|
|
|
EscOy 9
|
|
|
|
EscOm -(minus)
|
|
|
|
EscOl ,(comma)
|
|
|
|
EscOn .(period)
|
|
|
|
EscOM ^M
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Printing:
|
|
|
|
Esc[i Print Screen Print the current screen
|
|
|
|
Esc[1i Print Line Print the current line
|
|
|
|
Esc[4i Stop Print Log Disable log
|
|
|
|
Esc[5i Start Print Log Start log; all received text is echoed to a printer
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
#endif
|