Newer
Older
$Id: cterm.txt,v 1.79 2020/04/28 19:39:13 deuce Exp $
CTerm terminal characteristics:
------------------------------
End of line behaviour (wrapping):
The cursor is moved to the first character of the next line
as soon as a character is written to the last column of the
current line, not on the next character. A tab will wrap
to the next line only if the current cursor position is the
last character on the line.
I'm often asked why I don't use VT semantics for wrapping.
The primary reason is that the person asking almost certainly
doesn't know what the VT semantics are, they just want
SyncTERM to behave the same as some other terminal they like.
Not only have the VT semantics never been properly
implemented in any terminal, they even varied between
different actual hardware VT terminals. Luckily, everything
is on the internet now, so you can see the details and results
here: https://github.com/mattiase/wraptest
This is implemented as described in STD-070 and can be enabled
using CSI = 4 h or disabled using CSI = 4 l. Note however that
when it is set in this way, it is cleared by a reset (RIS) so
if something will be sending arbitrary sequences (such as a
door) it should be re-enabled on return. It can also be set
using CSI = 5 h, but when set in this manner, it CANNOT be
cleared using a sequence.
Control characters:
In doorway mode, indicates that the next character is
a literal character. The IBM CP437 character will
be displayed. This allows ESC and other control
characters to be placed on the screen.
Non-destructive backspace. Moves cursor position to
the previous column unless the current column is the
first, in which case no operation is performed.
0x09 - HT:
Moves to the next horizontal tab stop. Does not overwrite
any characters in between. If there are no tab stops left
in the line, moves to the first position of the next line.
If the starting position is on the last line, will perform
a scroll, filling the new line at bottom with the current
attribute.
0x0A - LF:
Move cursor position to same column of the next row.
If current row is the last row, scrolls the screen up
and fills the new row with the current attribute.
0x0D - CR:
Move cursor position to column 1 of the current line
Control Codes:
--------------
Control codes are in the following format:
Legal combinations which are not handled are silently dropped.
ESC E Next Line (NEL)
Moves to the line home position of the next line.
(Same as CR LF)
ESC H Set Tab (HTS)
SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
ESC M Reverse Line Feed (RI)
Move up one line
SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
ESC P Device Control String (DCS)
Begins a string consisting of the characters 0x08 - 0x0d and
0x20-0x7e, terminated by a String Terminator (ST)
"CTerm:Font:p1:<b64>"
Indicates the string is a loadable font. (CTerm 1.213)
p1 is a font slot number, which must be higher than the last
default defined font (See CSI sp D for list of predefined
fonts). <b64> is the base64 encoded font data. Font size is
deduced from the size of the data. This replaces the now
deprecated CSI = Ps1 ; Ps2 {
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
[ p1 [ ; p2 ] ] q
Defaults: p1 = 0 p2 = 0
Indicates the string is a sixel sequence.
p1 selects the vertical height of a single pixel. This
may be overridden by the raster attributes command, and
is deprecated. Supported values
Value Vertical Size
----- -------------
0,1,5,6 2 pixels
2 5 pixels
3,4 3 pixels
7,8,9 1 pixel
p2 indicates if unset sixels should be set to the current
background colour. If p2 is 1, positions specified as 0
remain at their current colour.
Any additional parameters are ignored.
The rest of the string is made up of sixel data characters and
sixel control functions. Sixel data characters are in the
rage of '?' (0x3f) to '~' (0x7e). Each sixel data character
represents six vertical pixels. The data is extracted by
subtracting 0x3f from the ASCII value of the character.
The least significant bit is the topmost pixel.
Sixel Control Functions
! Pn X
Graphics Repeat Introducer
The character X is repeated Pn times.
" p1 ; p2 [ ; p3 [ ; p4 ] ]
Raster Attributes
p1 indicates the vertical size in pixels of each
sixel. p2 indicates the horizontal size in pixels.
p3 and p4 define the height and width (in sixels)
respectively of a block to fill with the background
colour. This block may not extend past the current
bottom of the screen. If any pixel data characters
proceed this command, it is ignored.
# p1
Colour Select
Selects the current foreground colour from the
sixel palette.
# p1 ; p2 ; p3 ; p4 ; p5
Palette map
Defines sixel palette entry p1 and sets it as the
current foreground colour. p2 specifies the colour
space to define the colour in, the only supported
value is 2. p3, p4, and p5 specify the red, green,
and blue content as a percentage (0-100).
$
Graphics Carriage Return
Returns the active position to the left border of
the same sixel row. Generally, one pass per colour
is used. In passes after the first one, sixels
with a value of zero are not overwritten with the
background colour.
-
Graphics New Line
Moves the active position to the left border of the
next sixel row.
$ q pt
Request Status String (DECRQSS)
pt is the intermediate and/or final characters of a control
function to query the status of. The terminal will send a
response in the format
DCS p1 $ r pt ST
p1 is 1 if the terminal supports querying the control
function and 0 if it does not.
pt is the characters in the control function except the CSI
characters.
Currently supported values of p1:
m Request SGR parameters
r Request top and bottom margins
s Request left and right margins
t Request height in lines
$| Request width in columns
*| Request height in lines
p1 [ ; p2 [ ; p3 ] ! z
Define Macro (DECDMAC)
Defaults: p2 = 0 p3 = 0
Sets a macro to be replayed using CSI Pn * z
p1 is the macro number to set, and make be between 0 and
63 inclusive.
If p2 is zero, the macro numbered p1 will be deleted. If
p2 is one, all macros are deleted.
If p3 is zero, the macro is defined using ASCII characters
(0x20 - 0x7e and 0xa0 - 0xff only) if p3 is one, the macro
is defined using hex pairs.
When the macro is defined using hex pairs, a repeat
sequence may be included in the format of ! Pn ; D..D ;
Pn specifies the number of repeats (default of one instance)
D..D is the sequence of pairs to send Pn times. The
terminating ; may be left out if the sequence to be
repeated ends at the end of the string.
ESC X Start Of String (SOS)
As the above strings, but may contain any characters except
a Start Of String sequence or a String Terminator sequence.
ESC \ String Terminator (ST)
ESC ] Operating System Command (OSC)
Begins a string consisting of the characters 0x08 - 0x0d and
0x20-0x7e, terminated by a String Terminator (ST)
Supported OSC values:
4;(pX;pY)...
Specifies one or more palette redefinitions.
pX is the palette index, and pY is the colour definition
Color format:
rgb:R/G/B
Where R, G, and B are a sequence of one to four
hex digits representing the value of the
red, green, and blue channels respectively.
SOURCE: xterm
104 [ ; Ps ... ]
Resets palette entry to default. If the entire string
is "104", resets all colours. Otherwise, only each index
separated by a semicolon is reset.
SOURCE: xterm
ESC ^ Privacy Message (PM)
Begins a string consisting of the characters 0x08 - 0x0d and
0x20-0x7e, terminated by a String Terminator (ST)
The string is currently ignored.
ESC _ Application Program String (APS)
Begins a string consisting of the characters 0x08 - 0x0d and
0x20-0x7e, terminated by a String Terminator (ST)
The string is currently ignored.
SyncTERM implements the following APS commands:
APS SyncTERM:C;S Ps1 Ps2 ST (Store file)
Where Ps1 is a filename and Ps2 is the base64 encoded
contents of the file. The named file is stored in the
cache directory for the current connection.
List files in cache. SyncTERM responds with
an APS string with lines separated by newlines. The
first line is always "SyncTERM:C;L\n" and for each
matching file, a line in the form
<Filename> TAB <MD5 sum> LF is sent
(ie: "coolfont.fnt\t595f44fec1e92a71d3e9e77456ba80d1\n")
And additional argument can be specified as a glob(3)
pattern (defaults to "*") in APS SyncTERM:C;L;Ps ST.
Where Pn is a font slot number (max 255) and Ps is a
filename in the cache. This sets font slot Pn to use
the specified font file.
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
APS SyncTERM:C;DrawPPM Ps... Ps2
Draws a PPM from the cache directory on the screen.
Ps2 is the filename and is required. Arguments for
Ps are optional. The following options can be included
(separated by semi-colons):
SX=#
Sets the left X position in the specified image
to copy from. Default = 0.
SY=#
Sets the top Y position in the specified image
to copy from. Default = 0.
SW=#
Sets the width of the portion of the image to
copy. Default = Image width - SX
SH=#
Sets the height of the portion of the image to
copy. Default = Image height - SH
DX=#
Sets the X position on the screen to draw the
image at. Default = 0.
DY=#
Sets the Y position on the screen to draw the
image at. Default = 0.
MX=#
Sets the X position in the mask to start
applying from. Default = 0.
MY=#
Sets the Y position in the mask to start
applying from. Default = 0.
MW=#
Sets the overall width of the mask (not the
width to apply). If MFILE is not specified,
and a mask is (ie: using MASK=), this is
required. If MFILE is specified, the width
is read from the file.
MH=#
Sets the overall height of the mask (not the
height to apply). If MFILE is not specified,
and a mask is (ie: using MASK=), this is
required. If MFILE is specified, the width
is read from the file.
MFILE=<filename>
Specifies a filename in the cache directory of
a PBM file specifying a mask of which pixels
to copy. Any pixel set to black (ie: 1) in the
PBM will be drawn from the source image. Pixels
set to white (ie: 0) will be left untouched.
MASK=<maskbits>
Specifies a base64-encoded bitmap, each set bit
will be drawn from the source image, cleared
bits will not be drawn. Requires MW= and MH=
to be specified.
MBUF
Uses the loaded mask buffer.
The PPM file may be raw (preferred) or text. SyncTERM
does not support more than 255 values per colour channel
and assumes it is correctly using the BT.709 gamma
transfer.
APS SyncTERM:C;LoadPPM Ps... Ps0
Loads a PPM to a buffer. Ps0 is the filename
B=#
Selects the buffer (0 or 1 only) to paste from.
APS SyncTERM:C;LoadPBM Ps... Ps0
Loads a PBM to a buffer. Ps0 is the filename
APS SyncTERM:P;Copy Ps...
Copies a portion of the screen into an internal buffer
for use with the Paste function. Defaults to copying
the entire screen.
B=#
Selects the buffer (0 or 1 only) to copy to.
X=#
Sets the left X position on the screen to start
copying at. Default = 0.
Y=#
Sets the top Y position on the screen to start
copying at. Default = 0.
W=#
Sets the width to copy.
Default = Screen width - X.
H=#
Sets the height to copy.
Default = Screen height - X.
APS SyncTERM:P,Paste Ps...
Pastes from the copied buffer. Supports the same
options as the Cache DrawPPM command except for the
filename, and adds the B= option.
B=#
Selects the buffer (0 or 1 only) to paste from.
ESC c Reset to Initial State (RIS)
Resets all the terminal settings, clears the screen, and homes
the cursor.
Control Sequences:
------------------
Control sequences start with the Control Sequence Introducer which is
ESC [ CSI will be used to express this from now on.
Control sequences are in the following format:
CSI {'0' (ZERO) to '?'}{SPACE to '/'}{'@' to '~'}
There may be multiple characters from the {'0' (ZERO) to '?'}
and {SPACE to '/'} before the terminating {'@' to '~'} character.
Legal combinations not handled are silently dropped.
Illegal combinations are displayed.
Sequence Parameters:
Parameters are expressed by the {'0' (ZERO) to '?'} character set.
Sequences which use parameters use decimal parameters separated by
If the parameter string begins with '<', '=', '>', or '?' then
this is a non-standard extension to the ANSI spec.
Pn Indicates a single numeric parameter
Pn1 ; Pn2 Two numeric parameters
Pn... Any number of numeric parameters
Ps Single selective parameter
Ps1 ; Ps1 Two selective parameters
Ps... Any numer of selective parameters
If a default is defined, the parameter is optional
Defaults: Pn = 1
Moves text from the current position to the right edge Pn characters
to the right, with rightmost characters going off-screen and the
resulting hole being filled with the current attribute.
SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
CSI Pn SP @ (SL)
Scroll Left
Defaults: Pn = 1
Shifts the contents of the screen left Pn columns(s) with
leftmost columns going off-screen and the resulting hole being
filled with the current attribute.
SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
Defaults: Pn = 1
Moves the cursor position up Pn lines from the current position.
Attempting to move past the screen boundaries stops the cursor
at the screen boundary.
SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
CSI Pn SP A (SR)
Scroll Right
Defaults: Pn = 1
Shifts the contents of the screen right Pn columns(s) with
rightmost columns going off-screen and the resulting hole being
filled with the current attribute.
SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
Defaults: Pn = 1
Moves the cursor position down Pn lines from the current position.
Attempting to move past the screen boundaries stops the cursor
at the screen boundary.
SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
Defaults: Pn = 1
Moves the cursor position right Pn columns from the current position.
Attempting to move past the screen boundaries stops the cursor
at the screen boundary.
SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
Defaults: Pn = 1
Moves the cursor position left Pn columns from the current position.
Attempting to move past the screen boundaries stops the cursor
at the screen boundary.
SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
CSI Ps1 ; Ps2 sp D (FNT)
"sp" indicates a single space character.
Sets font Ps1 to be the one indicated by Ps2. Currently four fonts are
supported. Ps2 must be between 0 and 255. Not all output types support
font selection. Only X11 and SDL currently do.
0 - Default font
1 - Font selected by the high intensity bit when CSI ? 31 h
2 - Font selected by the blink intensity bit when CSI ? 34 h
is enabled
3 - Font selected by both the high intensity and blink bits
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
Currently included fonts are:
0 - Codepage 437 English
1 - Codepage 1251 Cyrillic, (swiss)
2 - Russian koi8-r
3 - ISO-8859-2 Central European
4 - ISO-8859-4 Baltic wide (VGA 9bit mapped)
5 - Codepage 866 (c) Russian
6 - ISO-8859-9 Turkish
7 - haik8 codepage (use only with armscii8 screenmap)
8 - ISO-8859-8 Hebrew
9 - Ukrainian font koi8-u
10 - ISO-8859-15 West European, (thin)
11 - ISO-8859-4 Baltic (VGA 9bit mapped)
12 - Russian koi8-r (b)
13 - ISO-8859-4 Baltic wide
14 - ISO-8859-5 Cyrillic
15 - ARMSCII-8 Character set
16 - ISO-8859-15 West European
17 - Codepage 850 Multilingual Latin I, (thin)
18 - Codepage 850 Multilingual Latin I
19 - Codepage 885 Norwegian, (thin)
20 - Codepage 1251 Cyrillic
21 - ISO-8859-7 Greek
22 - Russian koi8-r (c)
23 - ISO-8859-4 Baltic
24 - ISO-8859-1 West European
25 - Codepage 866 Russian
26 - Codepage 437 English, (thin)
27 - Codepage 866 (b) Russian
28 - Codepage 885 Norwegian
29 - Ukrainian font cp866u
30 - ISO-8859-1 West European, (thin)
31 - Codepage 1131 Belarusian, (swiss)
32 - Commodore 64 (UPPER)
33 - Commodore 64 (Lower)
34 - Commodore 128 (UPPER)
35 - Commodore 128 (Lower)
36 - Atari
37 - P0T NOoDLE (Amiga)
38 - mO'sOul (Amiga)
39 - MicroKnight Plus (Amiga)
41 - MicroKnight (Amiga)
Not all fonts are supported in all modes. If a font is not supported
in the current mode, no action is taken, but there should be a
non-zero 'Font Selection result' value in the Font State Report.
SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
Defaults: Pn = 1
Moves the cursor to the first column of the line Pn down from the
current position. Attempting to move past the screen boundaries
stops the cursor at the screen boundary.
SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
Cursor Preceding Line
Moves the cursor to the first column of the row Pn up from the
current position. Attempting to move past the screen boundaries
stops the cursor at the screen boundary.
SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
Defaults: Pn = 1
Movies the cursor to column Pn of the current row.
SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
Cursor Position
Defaults: Pn1 = 1 Pn2 = 1
Moves the cursor to the Pn2th column of the Pn1th line.
SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
CSI Pn I (CHT)
Cursor Forward Tabulation
Defaults: Pn = 1
Move the cursor to the Pn-th next tab stop.
Basically the same as sending TAB Pn times.
SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
Defaults: Ps = 0
Erases from the current screen according to the value of Ps
0 - Erase from the current position to the end of the screen.
1 - Erase from the current position to the start of the screen.
2 - Erase entire screen. As a violation of ECMA-048, also moves
the cursor to position 1/1 as a number of BBS programs assume
this behaviour.
Erased characters are set to the current attribute.
SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
Defaults: Ps = 0
Erases from the current line according to the value pf Ps
0 - Erase from the current position to the end of the line.
1 - Erase from the current position to the start of the line.
2 - Erase entire line.
Erased characters are set to the current attribute.
SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
Defaults: Pn = 1
Inserts Pn lines at the current line position. The current line and
those after it are scrolled down and the new empty lines are filled
with the current attribute. If the cursor is not currently inside
the scrolling margins, has no effect.
SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
Defaults: Pn = 1
Deletes the current line and the Pn - 1 lines after it scrolling the
first non-deleted line up to the current line and filling the newly
empty lines at the end of the screen with the current attribute.
If the cursor is not currently inside the scrolling margins, has no
effect.
If "ANSI" Music is fully enabled (CSI = 2 M), performs "ANSI" music
instead.
See "ANSI" MUSIC section for more details.
SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
SOURCE: BANSI.TXT
NON-STANDARD EXTENSION.
Defaults: Ps = 0
Sets the current state of ANSI music parsing.
0 - Only CSI | will introduce an ANSI music string.
1 - Both CSI | and CSI N will introduce an ANSI music string.
2 - CSI |, CSI N, and CSI M will all introduce an ANSI music string.
In this mode, Delete Line will not be available.
SOURCE: CTerm only.
CSI N (BCAM)
BananaCom ANSI Music
If "ANSI" Music is set to BananaCom (CSI = 1 M) or fully enabled
(CSI = 2 M) performs "ANSI" music. See "ANSI" MUSIC section for more
Deletes the character at the current position by shifting all
characters from the current column + p1 left to the current column.
Opened blanks at the end of the line are filled with the current
attribute. If the cursor is not currently inside the scrolling
margins, has no effect.
SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
Defaults: Pn = 1
Scrolls all text on the screen up Pn lines. New lines emptied at the
SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
CSI ? Ps1 ; Ps2 S (XTSRGA)
XTerm Set or Request Graphics Attribute
If Ps1 is 2, and Ps2 is 1, replies with the graphics screen information
in the following format: CSI ? 2 ; 0 ; Px ; Py S
Where Px is the width of the screen in pixels and Py is the height.
SOURCE: XTerm
Defaults: Pn = 1
Scrolls all text on the screen down Pn lines. New lines emptied at the
SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
CSI U
NON-STANDARD (Disabled in current code)
Clear screen with default attribute.
This code is *supposed* to go to the "next page" according to the
ANSI/ECMA specs with CSI V going to "previous page"
Erase p1 characters starting at the current character. Will not erase
past the end of line.
Erased characters are set to the current attribute.
SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
Cursor Line Tabulation
Defaults: Pn = 1
Move the cursor to the Pn-th next tab stop.
Basically the same as sending TAB Pn times.
SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
Move the cursor to the p1th preceding tab stop. Will not go past the
SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
Character Position Absolute
Defaults: Pn = 1
Move the cursor to the specified position on the current row.
Will not go past the end of the line.
SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
Cursor Position Forward
Defaults: Pn = 1
Moves the cursor position forward Pn columns from the current position.
Attempting to move past the screen boundaries stops the cursor
at the screen boundary.
SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
Repeat
Defaults: Pn = 1
Repeats the previous graphic character Pn times. Will not repeat
escape sequences.
SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
Device Attributes
Defaults: Ps = 0
If Ps is 0, CTerm will reply with the sequence:
CSI = 67;84;101;114;109;pN c
64;84;101;114;109 is the ASCII values of the "CTerm" string. pN is the
CVS revision ID of CTerm with dots converted to semi-colons
(e.g. "1;156"). Use the CVS revision to detect if a specific feature
is available. If you are adding features to a forked version of cterm,
please do so by adding an extra parameter to the end, not by
incrementing any existing one!
SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
CTerm Device Attributes
Defaults: Ps = 0
If Pn is 0, CTerm will reply with the sequence:
CSI < 0 ; Ps... c
Possible values for Ps:
1 - Loadable fonts are availabe via Device Control Strings
2 - Bright Background (ie: DECSET 32) is supported
3 - Palette entries may be modified via an Operating System Command
4 - Pixel operations are supported (currently, sixel and PPM
5 - The current font may be selected via CSI Ps1 ; Ps2 sp D
6 - Extended palette is available
7 - Mouse is available
Line Position Absolute
Defaults: Ps = 1
Moves to row specified by Ps.
SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
CSI Pn SP d (TSR)
Tab Stop Remove
Defaults: None
Removes a tab stop at postion Pn.
SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
CSI Pn e (VPR)
Line Position Forward
Defaults: Ps = 1
Moves forward Ps rows.
SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
Character and Line Position
Defaults: Pn1 = 1 Pn2 = 1
Moves the cursor to the Pn2th column of the Pn1th line.
SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
CSI Ps g (TBC)
Tabulation Clear
Deletes tab stops according to the values of P1:
0 - Deletes tab stop at current position.
3 - Deletes all tab stops.
5 - Deletes all tab stops.
SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
NON-STANDARD EXTENSION
Enable DoorWay Mode
SOURCE: BANSI.TXT
CSI = 0 h (CTELCF)
NON-STANDARD EXTENSION
Enable Last Column Flag mode
SOURCE: CTerm
CSI = 1 h (CTFLCF)
NON-STANDARD EXTENSION
Force Last Column Flag mode
SOURCE: CTerm
NON-STANDARD EXTENSION
Set Mode
Sets one or more mode. The following modes are supported:
6 - Enable origin mode.
In this mode, position parameters are relative to the top left of
the scrolling region, not the screen. Defaults to reset.
SOURCE: Digital VT102 User Guide
7 - Enable auto wrap
This is the normal mode in which a write to the last column of a
row will move the cursor to the start of the next line triggering
a scroll if required to create a new line. Defaults to set.
SOURCE: Digital VT102 User Guide
9 - X10 compatible mouse reporting
Mouse button presses will send a CSI M <button> <x> <y>
Where <button> is ' ' + button number (0-based)
<x> and <y> are '!' + position (0-based)
SOURCE: xterm
25 - Display the cursor. Defaults to set.
SOURCE: "Installing and Using the VT320 Video Terminal"
31 - Enable bright alt character set
With this mode set, the bright (1) graphic rendition selects
characters from an alternate character set. Defaults to reset.
32 - Bright Intensity Disable
This makes the bright intensity bit not control the intensity.
Mostly for use with CSI ? 31 h to permit fonts in the same
colours. Defaults to reset.
33 - Blink to Bright Intensity Background
With this mode set, the blink (5,6) graphic renditions cause the
background colour to be high intensity rather than causing blink.
Defaults to reset.
34 - Enable blink alt character set
With this mode set, the blink (5, 6) graphic renditions selects
characters from an alternate character set. Defaults to reset
35 - Blink Disabled
This makes the blink (5, 6) graphic renditions not cause the
character to blink. Mostly for use with CSI ? 34 h to permit
fonts to be used without blinking. Defaults to reset.
69 - DEC Left Right Margin Mode enabled
Enables CSI s to set the left/right margins, and disables CSI s
from saving the current cursor position.
80 - Sixel Scrolling Enabled
When this is set, the sixel active position begins in the
upper-left corner of the currently active text position.
When the sixel active position reaches the bottom of the
page, the page is scrolled up. At the end of the sixel
string, a sixel newline is appended, and the current cursor
position is the one in which the bottom sixel is in.
Defaults to set.
SOURCE: VT330/VT340 Programmer Reference Manual
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
1000 - Normal tracking mode mouse reporting
Mouse button presses will send a CSI M <button> <x> <y>
Where <button> is ' ' + button number (0-based)
Mouse button releases will use a button number of 4
<x> and <y> are '!' + position (0-based)
SOURCE: xterm
1001 - Highlight tracking mode mouse reporting
(Not supported by SyncTERM)
SOURCE: xterm
1002 - Button-event tracking mode mouse reporting
Mouse button presses and movement when a button is pressed
will send a CSI M <button> <x> <y>
Where <button> is ' ' + button number (0-based)
32 is added to the button number for movement events.
Mouse button releases will use a button number of 4
<x> and <y> are '!' + position (0-based)
SOURCE: xterm
1003 - Any-event tracking mode mouse reporting
Mouse button presses and movement
will send a CSI M <button> <x> <y>
Where <button> is ' ' + button number (0-based)
32 is added to the button number for movement events.
Mouse button releases will use a button number of 4
<x> and <y> are '!' + position (0-based)
If no button is pressed, it acts as though button 0 is.
SOURCE: xterm
1004 - Focus-event tracking mode mouse reporting
(Not supported by SyncTERM)
SOURCE: xterm
1005 - UTF-8 encoded extended coordinates
(Not supported by SyncTERM)
SOURCE: xterm
1006 - SGR encoded extended coordinates
Instead of the CSI M method, the format of mouse reporting
is change to CSI < Pb ; Px ; Py M for presses and
CSI < Pb ; Px ; Py m for releases.
Instead of CSI M
Px and Py are one-based.
Pb remains the same (32 added for movement)
Button 3 is not used for release (separate code)
SOURCE: xterm
1007 - Alternate scroll mode
(Not supported by SyncTERM)
SOURCE: xterm
1015 - URXVT encoded extended coordinates
(Not supported by SyncTERM)
SOURCE: xterm
2004 - Set bracketed paste mode
SOURCE: xterm (https://invisible-island.net/xterm/xterm-paste64.html)
Character Position Backward
Defaults: Pn = 1
Moves the cursor position left Pn columns from the current position.
Attempting to move past the screen boundaries stops the cursor
at the screen boundary.
SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
Line Position Backward
Defaults: Pn = 1
Moves the cursor position up Pn lines from the current position.
Attempting to move past the screen boundaries stops the cursor
at the screen boundary.
SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
NON-STANDARD EXTENSION
Disable DoorWay Mode
SOURCE: BANSI.TXT
CSI = 0 l (CTDLCF)
NON-STANDARD EXTENSION
Disable Last Column Flag mode
SOURCE: CTerm
NON-STANDARD EXTENSION
Reset Mode
Resets one or more mode. The following modes are supported:
6 - Origin Mode
With this mode reset, position parameters are relative to the
top left of the screen, not the scrolling region. Defaults
to reset.
SOURCE: Digital VT102 User Guide
7 - Disable auto wrap
Resetting this mode causes a write to the last column of a to
leave the cursor where it was before the write occurred,
overwriting anything which was previously written to the same
position.
SOURCE: Digital VT102 User Guide
25 - Hide the cursor. Defaults to set.
SOURCE: "Installing and Using the VT320 Video Terminal"
31 - Disable bright alt character set
With this mode reset, the bright (1) graphic rendition does not
select an alternative font. Defaults to reset.
32 - Bright Intensity Enable
When reset, bright intensity graphics rendition behaves normally.
Defaults to reset.
33 - Disable Blink to Bright Intensity Background
With this mode set, the blink (5,6) graphic renditions do not
affect the background colour. Defaults to reset.
34 - Disable blink alt character set
With this mode reset, the blink (5, 6) graphic renditions do not
select characters from an alternate character set. Defaults to
reset.
35 - Blink Enable
With this mode reset, the blink (5,6) graphic renditions behave
normally (cause the characters to blink). Defaults to reset.
69 - DEC Left Right Margin Mode disabled
Disables CSI s from setting the left/right margins, and changes
it back to saving the current cursor position. The current
left/right margins are maintained.
80 - Sixel Scrolling Disabled
When this is reset, the sixel active position begins in the
upper-left corner of the page. Any commands that attempt to
advance the sixel position past the bottom of the page are
ignored. At the end of the sixel string, the current cursor