$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 Control characters: 0x00 - NUL: 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. 0x07 - BEL: Beep 0x08 - BS: 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: ESC {'0' (ZERO) to '~'} 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) Sets a tab stop at the current column 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) Supported DCS string values: "CTerm:Font:p1:" 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). is the base64 encoded font data. Font size is deduced from the size of the data. This replaces the now deprecated CSI = Ps1 ; Ps2 { [ 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. The string is currently ignored. 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. APS SyncTERM:C;L Ps ST (List Files) 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 TAB 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. APS SyncTERM:C;SetFont Pn Ps 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. 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= 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= 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 a ';'. The use of a ':' from the set is reserved. 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 CSI Pn @ (ICH) Insert Character(s) 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 CSI Pn A (CUU) Cursor Up 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 CSI Pn B (CUD) Cursor Down 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 CSI Pn C (CUF) Cursor Right 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 CSI Pn D (CUB) Cursor Left 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) Font Selection Defaults: Ps1 = 0 Ps2 = 0 "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. Supported Ps1 values: 0 - Default font 1 - Font selected by the high intensity bit when CSI ? 31 h is enabled 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 when both CSI ? 31 h and CSI ? 34 h are enabled 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) 40 - Topaz Plus (Amiga) 41 - MicroKnight (Amiga) 42 - Topaz (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 CSI Pn E (CNL) Cursor Next Line 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 CSI Pn F (CPL) Cursor Preceding Line Defaults: Pn = 1 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 CSI Pn G (CHA) Cursor Character Absolute 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 CSI Pn1 ; Pn2 H (CUP) 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 CSI Ps J (ED) Erase in Page 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 SOURCE BANSI.TXT CSI Ps K (EL) Erase in Line 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 CSI Pn L (IL) Insert Line(s) 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 CSI Pn M (DL) Delete Line(s) / "ANSI" Music 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 CSI = Ps M (CTSAM) CTerm Set ANSI Music 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 "ANSI" Music / Not implemented. 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 details. SOURCE: BANSI.TXT CSI Pn P (DCH) Delete Character Defaults: Pn = 1 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 CSI Pn S (SU) Scroll Up Defaults: Pn = 1 Scrolls all text on the screen up Pn lines. New lines emptied at the bottom are filled with the current attribute. 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 CSI Pn T (SD) Scroll Down Defaults: Pn = 1 Scrolls all text on the screen down Pn lines. New lines emptied at the top are filled with the current attribute. 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" SOURCE: BANSI.TXT CSI Pn X (ECH) Erase Character Defaults: Pn = 1 Erase p1 characters starting at the current character. Will not erase past the end of line. Erased characters are set to the current attribute. This can erase across scroll margins. SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf CSI Pn Y (CVT) 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 CSI Pn Z (CBT) Cursor Backward Tabulation Defaults: Pn = 1 Move the cursor to the p1th preceding tab stop. Will not go past the start of the line. SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf CSI Pn ` (HPA) 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 CSI Pn a (HPR) 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 CSI Pn b (REP) 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 CSI Ps c (DA) 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 CSI < Ps c (CTDA) 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 - Palette entries may be modified via an Operating System Command string 3 - Pixel operations are supported (currently, sixel and PPM graphics) 4 - The current font may be selected via CSI Ps1 ; Ps2 sp D 5 - More than the standard 16 colours may by configured via Operating System Command strings 6 - Extended palette is available 7 - Mouse is available CSI Ps d (VPA) 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 CSI Pn1 ; Pn2 (HVP) 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 Defaults: Pn = 0 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 CSI = 255 h (BCSET) NON-STANDARD EXTENSION Enable DoorWay Mode SOURCE: BANSI.TXT CSI ? Ps... h (DECSET) 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