############################################################################## # # # [Table.Codes] Concept Data Base # # # # Copyright (c) 1998 by Lars Doelle # # This file is part of Konsole # ############################################################################## # This is work in progress. The overall goal is to link the documentation of # konsole closely to it's source. Further, the source could be organize such # that the emulation dependent parts are separated from everything else. # If this goal is matched, the emulation independent parts have to undergo # documentation, also. # # Refere to [db.trans] for not-yet-integrated stuff. # # What has to be done in any case is to merge db.trans into this file and to # make a script that extracts it again. From db.trans, we then generate parts # of the decoder (the semantic assignment). # # db2.pl contains as script able to slit TEScreen.C into the emulation # (in)dependent parts due to [db.trans]. # # A like thing has to be done for TEmuVt102.C/h and for TEScreen.h. # # The missing link in the moment is a proper handling of all the Ps arguments # that refere to different routines (subfunction of an esc code). ## Section Text ############## Introduction.html

Introduction

In a traditional UNIX installation a single machine (host) served several users by means of terminals attached to this host by a serial cable. These terminals (end points) where specialized devices, either regular ttys (printer with keyboard) or later more sophisticated things with cathode ray tubes.

Today, hardware has become so cheap, that each single user could be provided with a complete host/display combination for the former price of a terminal.

Additional, and here we come to the X in the emulation, display devices have become graphical while the original terminal where only able to show characters but not graphics.

To allow programs designed for the original configuration to be used in the contemporary setup, "terminal emulations" where invented. In these emulations, the whole original setup is simulated.

The serial cable is folded into the operating system as a sort of loop back device, and a program, the terminal emulation, uses modern means of graphical user interfaces to behave like an earlier terminal. To complete the picture, the host in the diagram is replaced by the application that runs in the emulation (typically a shell or an old editor). So, terminal emulations are in fact interfaces to character oriented applications.

This document describes the implementations of a program named "konsole", which is such an X terminal emulation. Since konsole is distributed under the GPL, meaning that it's source code is available to whoever likes to hack on it, the program would be incomplete without a proper introduction into the code and it's concepts. Thus, this text is to complement the program and the source with the remaining informations to make a complete product.

A first refinement

Before we can come to the actual implementation, quite some notions have to be introduced. We have to get us an idea what a terminal emulation does in more detail.

To this end, a simple model of the terminal and it's operation is given, which is later extended and refined as we come deeper into matter and implementation.

At some level conception, a terminal can be described as a (abstract) data model. This means it has some type of state together with operations on that data type. These operations are somehow encoded to be passed over the serial line.

The concrete model is often loosely named the "emulation", the specific encoding chosen, the "protocol".

There are two principle models in use. The first, stream like one, which is related to a tty, consideres the terminal as an indefinit long and wide sheet of paper on which a printer head types the characters that come in over the line. Typical examples are shell scripts, make and other programs producing sequential protocols of their activity. Their basic data type is a list of list of characters.

The second principle model is used by applications written especially for crt devices, so called full screen applications. These treat the terminal as a matrix of characters where each position can be individually addressed and written to. Typical representatives are full screen editors like vi and emacs, file managers like mc and mail readers like mutt.

Though the second model is newer, it's age does not imply a preference. To the contrary, both models have a right for their own and are both to be supported. The first model is fully expressed within konsole in form of it's ref:history buffer.

Note, that although the second model definitely build on the first one in almost any respect, it cannot fully express it, since it introduces a finite line length, while the first model works with indefinite lines.

Since application with both view of things are typically run within the same session, some effort has been made within konsole to maintain both ideas simultaniously, but only with limited success so far.

In both models, the notion of a current position (historically a printer's head, nowadays visualized by a cursor) is present. "Printing" a character at the current position and advancing the head together with the starting a new line are the most fundamental operations of the emulation.

The full screen model basically adds the possibility to position the cursor and to overwrite and clear the screen.

A plethora of additional (more or less useful) commands are then added on this by every specific emulation, see below for the awful details.

Parts of the model

All the following in this section is an outline.

Parts of the terminal description

Sequences.html Conceptually, the commands to the terminal emulation are encoded if form of byte sequences to meet the restrictions of the transport media. These sequences have pretty different originations and therefore the format of the sequences are inhomogenous.

Refering both to their origin and form, one can group the overall encoding schemes as follows:

.
NamePatternScopeComment
Printable Ascii Characters32..126ASCII ECMA This is the most original pattern of all. The characters to be displayed are passed over the chanel and are interpreted by the terminal (emulation) as instructions to display the corresponding glyph of the ascii character set. Contempory emulations include the upper half (128..255) of the extentions to the national ascii character sets, also.
Ascii Control Characters0..26,28..31,127ASCII ECMA Ascii defines some non-printable, but format effecting characters, too. Depending on the emulation, at least some of them are given a meaning. The typically implemented ones are those that are handled by a teletype like device.
Simple Escape SequenceESC CECMA These sequences are made up from an ESC character followed by exactly one other character in the range ???..???.
CSI Sequence ESC [ Parameters {I} C ECMA

The remaining codes are nonstandard but traditionalized hacks.

DEC hacks ESC C D VT100
XTERM hacks ESC ] Pn ; text BEL XTERM

VT52 uses a different (incompatible) set of escape codes. VT100 includes the VT52 emulation as a mode.

Simple Escape SequenceESC CVT52
Complex Escape SequenceESC Y X YVT52
.

More on Control Sequences

.

Control Characters

. Control characters (codes 0x00 - 0x1f inclusive) are specifically excluded from the control sequence syntax, but may be embedded within a control sequence. Embedded control characters are executed as soon as they are encountered by a VT100. The processing of the control sequence then continues with the next character received. The exceptions are: if the ESC character occurs, the current control sequence is aborted, and a new one commences beginning with the ESC just received. If the character CAN (0x0c) or the character SUB (0x0e) occurs, the current control sequence is aborted. The ability to embed control characters allows the synchronization characters XON and XOFF to be interpreted properly without affecting the control sequence.

.

CSI Sequences

.
Control Sequence Introducer (CSI):
An escape sequence that provides supplementary controls and is itself a prefix affecting the interpretation of a limited number of contiguous characters. In the VT100, the CSI is: <ESC>[ .
Parameter:
1. A string of zero or more decimal characters which represent a single value. Leading zeros are ignored. The decimal characters have a range of 0 (060) to 9 (071).
2. The value so represented. .
Numeric Parameter:
A parameter that represents a number, designated by Pn. .
Selective Parameter:
A parameter that selects a subfunction from a specified set of subfunctions, designated by Ps. In general, a control sequence with more than one selective parameter causes the same effect as several control sequences, each with one selective parameter, e.g., CSI Psa; Psb; Psc F is identical to CSI Psa F CSI Psb F CSI Psc F. .
Parameter String:
A string of parameters separated by a semicolon. .
Default:
A function-dependent value that is assumed when no explicit value, or a value of 0, is specified. .
Final character:
A character whose bit combination terminates an escape or control sequence.
. EXAMPLE: Control sequence to turn off all character attributes, then turn on underscore and blink attributes (SGR). .

The octal representation of this string is:

     033 0133 060 073 064 073 065 0155
    <ESC>   [   0   ;   4   ;   5    m
  
. Alternate sequences which will accomplish the same thing: . .

DEC hacks

. These form two groups of commands.

In one first the first character is a hash (#) and the following a digit. This command group is used to denote VT100 specific instructions and can safely be sonsidered to be obsolete. See DECALN, DECDHLB, DECDHLT, DECDWL and DECSWL.

The second one is used to specify character set mappings (see SCS). A CSI instruction to do this is specified in ECMA, and this should be used as a replacement. .

XTERM hacks

ConceptDB.html The following text is a collection of several sorts of definitions and explainations. It is incomplete in many respects and a working draft. .

All of the following control sequences are transmitted from the Host to VT100 unless otherwise noted. All of the control sequences are a subset of those defined in ANSI X 3.64 1977 and ANSI X 3.41 1974.

The following text conforms to these formatting conventions:

.

The following attributes below have the following meaning:

Operations.html

## Keyboard ################################################################# KEYBOARD.head Keyboard Events KEYBOARD.emus KONSOLE KEYBOARD.sect Event KEYBOARD.text FIXME. explain KEYBOARD.table.Codes Key|Code:4 AltButton|"\033" Return|MODE_NewLine ? "\r\n" : "\r" Backspace|MODE_BsHack ? "\x7f" : "\x08" Delete|MODE_BsHack ? "\033[3~" : "\x7f" Up|!MODE_Ansi ?"\033A" : MODE_AppCuKeys ?"\033OA" : "\033[A" Down|!MODE_Ansi ?"\033B" : MODE_AppCuKeys ?"\033OB" : "\033[B" Right|!MODE_Ansi ?"\033C" : MODE_AppCuKeys ?"\033OC" : "\033[C" Left|!MODE_Ansi ?"\033D" : MODE_AppCuKeys ?"\033OD" : "\033[D" F1|Xterm? "\033[11~": "\033[[A" F2|Xterm? "\033[12~": "\033[[B" F3|Xterm? "\033[13~": "\033[[C" F4|Xterm? "\033[14~": "\033[[D" F5|Xterm? "\033[15~": "\033[[E" F6|"\033[17~" F7|"\033[18~" F8|"\033[19~" F9|"\033[20~" F10|"\033[21~" F11|"\033[23~" F12|"\033[24~" Home|"\033[7~" End|"\033[8~" Prior|"\033[5~" Next|"\033[6~" Insert|"\033[2~" Control_Space|"\x00" Control_Print|reportAnswerBack() Ascii|Character MOUSE.head Mouse Events MOUSE.emus KONSOLE MOUSE.sect Event MOUSE.text FIXME. explain CHA.head Cursor Horizontal Absolute CHA.emus ECMA KONSOLE CHA.sect Command.Cursor CHA.code CSI|G|{Pn} CHA.text FIXME. explain CHA.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|xterm|scr|setCursorX|p|see above DCH.head Delete Character DCH.emus ECMA KONSOLE DCH.sect Command.Delete DCH.code CSI|P|{Pn} DCH.text FIXME. explain DCH.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|xterm|scr|deleteChars|p|see above DECRST.head DEC Private Reset Mode DECRST.emus VT100 KONSOLE DECRST.sect Command.SetMode DECRST.code PRI|l|{Ps;...} DECRST.text FIXME. explain DECRST.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning 1|VT100|emu|resetMode|MODE_AppCuKeys|Meaning 2|VT100|emu|resetMode|MODE_Ansi|Meaning 3|VT100|emu|setColumns|80|Meaning 4|VT100|emu|Ignored||Meaning 5|VT100|scr|resetMode|MODE_Screen|Meaning 6|VT100|scr|resetMode|MODE_Origin|Meaning 7|VT100|scr|resetMode|MODE_Wrap|Meaning 8|VT100|emu|Ignored||Meaning 9|VT100|emu|Ignored||Meaning 25|VT100|emu|resetMode|MODE_Cursor|Meaning 47|xterm|emu|resetMode|MODE_AppScreen|Meaning 1000|xterm|emu|resetMode|MODE_Mouse1000|Meaning 1001|xterm|emu|Ignored||Meaning 1047|xterm|emu|resetMode|MODE_AppScreen|Meaning 1048|xterm|scr|restoreCursor||Meaning DECSET.head DEC Private Set Mode DECSET.emus VT100 KONSOLE DECSET.sect Command.SetMode DECSET.code PRI|h|{Ps;...} DECSET.text FIXME. explain DECSET.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning 1|VT100|emu|setMode|MODE_AppCuKeys|Meaning 3|VT100|emu|setColumns|132|Meaning 4|VT100|emu|Ignored||Meaning 5|VT100|scr|setMode|MODE_Screen|Meaning 6|VT100|scr|setMode|MODE_Origin|Meaning 7|VT100|scr|setMode|MODE_Wrap|Meaning 8|VT100|emu|Ignored||Meaning 9|VT100|emu|Ignored||Meaning 25|VT100|emu|setMode|MODE_Cursor|Meaning 47|xterm|emu|setMode|MODE_AppScreen|Meaning 1000|xterm|emu|setMode|MODE_Mouse1000|Meaning 1001|xterm|emu|Ignored||Meaning 1047|xterm|emu|setMode|MODE_AppScreen|Meaning 1048|xterm|scr|saveCursor||Meaning DL.head Delete Line DL.emus ECMA KONSOLE DL.sect Command.Delete DL.code CSI|M|{Pn} DL.text FIXME. explain DL.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|konsole|scr|deleteLines|p|see above ECH.head Erase Character ECH.emus ECMA KONSOLE ECH.sect Command.Erase ECH.code CSI|X|{Pn} ECH.text FIXME. explain ECH.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|konsole|scr|eraseChars|p|see above ICH.head Insert Character ICH.emus ECMA KONSOLE ICH.sect Command.Insert ICH.code CSI|@|{Pn} ICH.text FIXME. explain ICH.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|konsole|scr|insertChars|p|see above IL.head Insert Line IL.emus KONSOLE IL.sect Command.Insert IL.code CSI|L|{Pn} IL.text FIXME. explain IL.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|xterm|scr|insertLines|p|see above LS2.head Lock Shift Two LS2.emus KONSOLE LS2.sect Command.RenderMode LS2.code ESC|n| LS2.text FIXME. explain LS2.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|xterm|scr|useCharset|2|see above LS3.head Lock Shift Three LS3.emus KONSOLE LS3.sect Command.RenderMode LS3.code ESC|o| LS3.text FIXME. explain LS3.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|xterm|scr|useCharset|3|see above MC.head Media Copy MC.emus ECMA VT100 MC.sect Command.NoImp MC.code CSI|i|{Pn} MC.text FIXME. explain MC.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning 0|VT100|emu|Ignored||Meaning VPA.head Vertical Position Absolute VPA.emus ECMA KONSOLE VPA.sect Command.Cursor VPA.code CSI|d|{Pn} VPA.text FIXME. explain VPA.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|xterm|scr|setCursorY|p|see above XTERESTORE.head XTerm Private Restore Mode XTERESTORE.emus XTERM KONSOLE XTERESTORE.sect Command.SetMode XTERESTORE.code PRI|r|{Ps;...} XTERESTORE.text FIXME. explain XTERESTORE.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning 1|xterm|emu|restoreMode|MODE_AppCuKeys|Meaning 6|xterm|scr|restoreMode|MODE_Origin|Meaning 7|xterm|scr|restoreMode|MODE_Wrap|Meaning 1000|xterm|emu|restoreMode|MODE_Mouse1000|Meaning 1001|xterm|emu|Ignored||Meaning XTESAVE.head XTerm Private Save Mode XTESAVE.emus XTERM KONSOLE XTESAVE.sect Command.SetMode XTESAVE.code PRI|s|{Ps;...} XTESAVE.text FIXME. explain XTESAVE.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning 1|xterm|emu|saveMode|MODE_AppCuKeys|Meaning 6|xterm|scr|saveMode|MODE_Origin|Meaning 7|xterm|scr|saveMode|MODE_Wrap|Meaning 1000|xterm|emu|saveMode|MODE_Mouse1000|Meaning 1001|xterm|emu|Ignored||Meaning NUL.head Null NUL.emus VT100 XTERM Linux KONSOLE NUL.sect Command.Ignored NUL.code CTL|0x00| NUL.text NUL is used as media- or time-fill. It is ignored by Konsole, but may be sensible for devices which requiere a recognizable amount of time to complete some commands (e.g. form feed on a non-buffering printing device). NUL.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|emu|Ignored||see above SOH.head Start Of Heading SOH.emus VT100 XTERM Linux KONSOLE SOH.sect Command.Ignored SOH.code CTL|0x01| SOH.text Ignored SOH.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|emu|Ignored||see above STX.head Start Of Text STX.emus VT100 XTERM Linux KONSOLE STX.sect Command.Ignored STX.code CTL|0x02| STX.text Ignored STX.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|emu|Ignored||see above ETX.head End Of Text ETX.emus VT100 XTERM Linux KONSOLE ETX.sect Command.Ignored ETX.code CTL|0x03| ETX.text Ignored ETX.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|emu|Ignored||see above EOT.head End Of Transmission EOT.emus VT100 XTERM Linux KONSOLE EOT.sect Command.Ignored EOT.code CTL|0x04| EOT.text Ignored EOT.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|emu|Ignored||see above ENQ.head Enquiry ENQ.emus VT100 ENQ.sect Command.Request ENQ.code CTL|0x05| ENQ.text Transmit the ANSWERBACK message. The answerback message can be loaded in SET-UP B (i.e. is a configurable string). ENQ.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|emu|reportAnswerBack||see above ACK.head Acknowledge ACK.emus VT100 XTERM Linux KONSOLE ACK.sect Command.Ignored ACK.code CTL|0x06| ACK.text Ignored ACK.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|emu|Ignored||see above BEL.head Bell BEL.emus VT100 BEL.sect Command BEL.code CTL|0x07| BEL.text Sound bell BEL.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|gui|Bell||see above BS.head Back Space BS.emus VT100 BS.sect Command.Cursor BS.code CTL|0x08| BS.text Move cursor to the left one position, unless it is at the left margin, in which case no action is taken. BS.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|scr|BackSpace||see above HT.head Horizontal Tabulation HT.emus VT100 HT.sect Command.Cursor HT.code CTL|0x09| HT.text Move cursor to the next tab stop, or to the right margin if no further tabs are set. HT.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|scr|Tabulate||see above LF.head Line Feed LF.emus VT100 LF.sect Command.Cursor LF.code CTL|0x0a| LF.text Causes either a line feed or new line operation (See \ref:LNM.) LF.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|emu|NewLine||see above VT.head Vertical Tabulation VT.emus VT100 VT.sect Command.Cursor VT.code CTL|0x0b| VT.text Same as \ref:LF. VT.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|emu|NewLine||see above FF.head Form Feed FF.emus VT100 FF.sect Command.Cursor FF.code CTL|0x0c| FF.text Same as \ref:LF. FF.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|emu|NewLine||see above CR.head Carriage Return CR.emus VT100 CR.sect Command.Cursor CR.code CTL|0x0d| CR.text Move the cursor to the left margin of the current line. CR.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|scr|Return||see above LS0.head Lock Shift Zero (Shift Out - SO) LS0.emus VT100 LS0.sect Command.RenderMode LS0.code CTL|0x0e| LS0.text Invoke the G1 character set, as designated by the \ref:SCS control sequence. LS0.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|scr|useCharset|1|see above LS1.head Lock Shift One (Shift In - SI) LS1.emus VT100 LS1.sect Command.RenderMode LS1.code CTL|0x0f| LS1.text Invoke the G0 character set, as selected by the ( sequence. LS1.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|scr|useCharset|0|see above DLE.head Data Link Escape DLE.emus VT100 XTERM Linux KONSOLE DLE.sect Command.Ignored DLE.code CTL|0x10| DLE.text Ignored DLE.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|emu|Ignored||see above DC1.head Device Control One DC1.emus VT100 DC1.sect Ignored DC1.code CTL|0x11| DC1.text Causes terminal to resume transmission (XON). DC1.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|emu|Ignored||see above DC2.head Device Control Two DC2.emus VT100 XTERM Linux KONSOLE DC2.sect Command.Ignored DC2.code CTL|0x12| DC2.text Ignored DC2.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|emu|Ignored||see above DC3.head Device Control Three DC3.emus VT100 XTERM Linux KONSOLE DC3.sect Command.Ignored DC3.code CTL|0x13| DC3.text Causes terminal to stop transmitting all codes except XOFF and XON (XOFF). DC3.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|emu|Ignored||see above DC4.head Device Control Four DC4.emus VT100 XTERM Linux KONSOLE DC4.sect Command.Ignored DC4.code CTL|0x14| DC4.text Ignored DC4.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|emu|Ignored||see above NAK.head Negative Acknowledge NAK.emus VT100 XTERM Linux KONSOLE NAK.sect Command.Ignored NAK.code CTL|0x15| NAK.text Ignored NAK.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|emu|Ignored||see above SYN.head Synchronous Idle SYN.emus VT100 XTERM Linux KONSOLE SYN.sect Command.Ignored SYN.code CTL|0x16| SYN.text Ignored SYN.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|emu|Ignored||see above ETB.head End Of Transmission Block ETB.emus VT100 XTERM Linux KONSOLE ETB.sect Command.Ignored ETB.code CTL|0x17| ETB.text Ignored ETB.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|emu|Ignored||see above CAN.head Cancel CAN.emus VT100 CAN.sect Command CAN.code CTL|0x18| CAN.text If sent during a control sequence, the sequence id immediately terminated and not executed. It also causes the error character (checkerboard) to be displayed. CAN.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|scr|ShowCharacter|2|see above EM.head End Of Medium EM.emus VT100 XTERM Linux KONSOLE EM.sect Command.Ignored EM.code CTL|0x19| EM.text Ignored EM.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|emu|Ignored||see above SUB.head Substitute SUB.emus VT100 SUB.sect Command SUB.code CTL|0x1a| SUB.text Same as \ref:CAN. SUB.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|scr|ShowCharacter|2|see above ESC.head Escape ESC.emus ECMA VT100 ESC.sect Ignored ESC.code CTL|0x1b| ESC.text Introduces a control sequence. ESC.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|emu|Ignored||see above FS.head File Separator (IS4 - Information Separator Four) FS.emus VT100 XTERM Linux KONSOLE FS.sect Command.Ignored FS.code CTL|0x1c| FS.text Ignored FS.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|emu|Ignored||see above GS.head Group Separator (IS3 - Information Separator Three) GS.emus VT100 XTERM Linux KONSOLE GS.sect Command.Ignored GS.code CTL|0x1d| GS.text Ignored GS.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|emu|Ignored||see above RS.head Record Separator (IS2 - Information Separator Two) RS.emus VT100 XTERM Linux KONSOLE RS.sect Command.Ignored RS.code CTL|0x1e| RS.text Ignored RS.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|emu|Ignored||see above US.head Unit Separator (IS1 - Information Separator One) US.emus VT100 XTERM Linux KONSOLE US.sect Command.Ignored US.code CTL|0x1f| US.text Ignored US.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|emu|Ignored||see above DEL.head Delete Character DEL.emus VT100 DEL.sect Command.Ignored DEL.code DEL|| DEL.text Ignored CPR.head Cursor Position Report CPR.emus ECMA VT100 CPR.sect Reply CPR.code CSI|R|{Pn;Pn} CPR.dflt 1 1 CPR.text The CPR sequence reports the active position by means of the parameters. This sequence has two parameter values, the first specifying the line and the second specifying the column. The default condition with no parameters present, or parameters of 0, is equivalent to a cursor at home position. . The numbering of the lines depends upon the state of the Origin Mode (\ref:DECOM). . This control sequence is sent in reply to a device status report (\ref:DSRREQ) command sent from the host. CUB.head Cursor Backward CUB.emus ECMA VT100 CUB.sect Command.Cursor Event CUB.code CSI|D|{Pn} CUB.dflt 1 CUB.text Moves the cursor to the left. The distance moved is determined by the parameter. If the parameter missing, zero, or one, the cursor is moved one position. The cursor cannot be moved past the left margin. CUB.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|scr|cursorLeft|p|see above CUD.head Cursor Down CUD.emus ECMA VT100 CUD.sect Command.Cursor Event CUD.code CSI|B|{Pn} CUD.dflt 1 CUD.text Moves the cursor down a number of lines as specified in the parameter without changing columns. The cursor cannot be moved past the bottom margin. CUD.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|scr|cursorDown|p|see above CUF.head Cursor Foreward CUF.emus ECMA VT100 CUF.sect Command.Cursor Event CUF.code CSI|C|{Pn} CUF.dflt 1 CUF.text Moves the cursor to the right a number of positions specified in the parameter. The cursor cannot be moved past the right margin. CUF.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|scr|cursorRight|p|see above CUP.head Cursor Position CUP.emus ECMA VT100 CUP.sect Command.Cursor CUP.code CSI|H|{Pn;Pn} CUP.dflt 1 1 CUP.text Moves the curor to the position specified by the parameters. The first parameter specifies the line, and the second specifies the column. A value of zero for either line or column moves the cursor to the first line or column in the display. The default string (H) homes the cursor. In the VT100, this command behaves identically to it's format effector counterpart, \ref:HVP. . The numbering of the lines depends upon the state of the Origin Mode (\ref:DECOM). CUP.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|scr|setCursorYX|p,q|see above CUU.head Cursor Up CUU.emus ECMA VT100 CUU.sect Command.Cursor Event CUU.code CSI|A|{Pn} CUU.dflt 1 CUU.text Moves the cursor up without changing columns. The cursor is moved up a number of lines as indicated by the parameter. The cursor cannot be moved beyond the top margin. CUU.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|scr|cursorUp|p|see above DA.head Device Attributes Request DA.emus ECMA VT100 DA.sect Command.Request DA.code CSI|c|{Pn} DA.dflt 0 DA.text The host requests the VT100 to send a DA sequence to indentify itself. This is done by sending the DA sequence with no parameters, or with a parameter of zero. The device replies by (\ref:DECDA). DA.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|emu|reportTerminalType||see above DECDA.head Device Attributes Reply DECDA.emus VT100 DECDA.sect Reply DECDA.code PRI|c|{1;Pn} DECDA.text Response to the \ref:DA request (VT100 to host) is generated by the VT100 as a DECDA control sequence with the numeric parameters as follows: DECDA.table.Pn Pn|Meaning:4 0|No options 1|Processor Option (STP) 2|Advanced Video Option (AVO) 3|AVO and STP 4|Graphics Option (GPO) 5|GPO and STP 6|GPO and AVO DECALN.head Screen Alignment Display DECALN.emus VT100 DECALN.sect Command DECALN.code HSH|8| DECALN.text Causes the VT100 to fill it's screen with uppercase Es for screen focus and alignment. DECALN.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|scr|helpAlign||see above DECANM.head ANSI/VT52 Mode DECANM.emus VT100 DECANM.sect Mode DECANM.text This is a private parameter to the \ref:SM and \ref:RM control sequences. The reset state causes only VT52 compatible escape sequences to be recognized. The set state causes only ANSI compatible escape sequences to be recognized. See the entries for \ref:MODES, \ref:SM, \ref:RM and \ref:VT52ANSI. DECARM.head Auto Repeat Mode DECARM.emus VT100 DECARM.sect Mode DECARM.text This is a private parameter to the \ref:SM and \ref:RM control sequences. The reset state causes no keyboard keys to auto-repeat, the set state causes most of them to. See \ref:MODES, \ref:SM and \ref:RM. DECAWM.head Autowrap Mode DECAWM.emus VT100 DECAWM.sect Mode DECAWM.text This is a private parameter to the \ref:SM and \ref:RM control sequences. The reset state prevents the cursor from moving when characters are received while at the right margin. The set state causes these characters to advance to the next line, causing a scroll up if required and permitted. See \ref:MODES, \ref:SM, and \ref:RM. DECCKM.head Cursor Keys Mode DECCKM.emus VT100 DECCKM.sect Mode DECCKM.text This is a private parameter to the \ref:SM and \ref:RM control requences. This mode is only effective when the terminal is in keypad application mode (\ref:DECKPAM) and the ANSI/VT52 mode (\ref:DECANM) is set. Under these conditions, if this mode is reset, the cursor keys will send ANSI cursor control commands. If setm the cursor keys will send application function commands. See \ref:MODES, \ref:RM, and \ref:SM. DECCOLM.head Column Mode DECCOLM.emus VT100 DECCOLM.sect Mode DECCOLM.text This is a private parameter to the \ref:SM and \ref:RM control sequences. The reset state causes an 80 column screen to be used. The set state causes a 132 column screen to be used. See \ref:MODES, \ref:RM, and \ref:SM. DECDHLT.head Double Height Line (Top) DECDHLT.emus VT100 DECDHLT.sect Command.NoImp DECDHLT.code HSH|3| DECDHLT.text Cause the line containing the cursor to become the top half of a double-height, double width line. If the line was single width single height, all characters to the right of the center of the screen will be lost. The cursor remains over the same character position, unless it would be to the right of the right margin, in which case it is moved to the right margin. . \ref:DECDHLB and \ref:DECDHLT should be used in pairs on adjacent lines with each line containing the same character string. DECDHLT.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|emu|Ignored||see above DECDHLB.head Double Height Line (Bottom) DECDHLB.emus VT100 DECDHLB.sect Command.NoImp DECDHLB.code HSH|4| DECDHLB.text This sequence cause the line containing the cursor to become the bottom half of a double-height, double width line. If the line was single width single height, all characters to the right of the center of the screen will be lost. The cursor remains over the same character position, unless it would be to the right of the right margin, in which case it is moved to the right margin. . \ref:DECDHLB and \ref:DECDHLT should be used in pairs on adjacent lines with each line containing the same character string. DECDHLB.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|emu|Ignored||see above DECDWL.head Double Width Line DECDWL.emus VT100 DECDWL.sect Command.NoImp DECDWL.code HSH|6| DECDWL.text This causes the line that contains the cursor to become double-width single height. If the line was single width, all characters ro the right of the center of the screen will be lost. The cursor remains over the same character position, unless it would be to the right of the right margin, in which case it is moved to the right margin. DECDWL.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|emu|Ignored||see above DECID.head Identify Terminal DECID.emus VT100 DECID.sect Command.Request DECID.code ESC|Z| DECID.text This sequence causes the same response as the \ref:DA sequence. This sequence will not be supported in future models. DECID.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|emu|reportTerminalType||see above DECINLM.head Interlace Mode DECINLM.emus VT100 DECINLM.sect Mode DECINLM.text This is a private parameter to the \ref:RM and \ref:SM control sequences. The reset state (non-interlace) causes the video processor to display 240 scan lines per frame. The set state causes the video processor to display 480 scan lines per screen. See \ref:MODES, \ref:RM, and \ref:SM. DECKPAM.head Keypad Application Mode DECKPAM.emus VT100 DECKPAM.sect Command.Mode Mode DECKPAM.code ESC|=| DECKPAM.text The auxiliary keypad keys will transmit control sequences. DECKPAM.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|emu|setMode|MODE_AppKeyPad|see above DECKPNM.head Keypad Numeric Mode DECKPNM.emus VT100 DECKPNM.sect Mode Command.Mode DECKPNM.code ESC|>| DECKPNM.text The auxiliary keypad keys will send ASCII codes corresponding to the characters engraved on their keys. DECKPNM.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|emu|resetMode|MODE_AppKeyPad|see above DECLL.head Load LEDs DECLL.emus VT100 DECLL.sect Command.NoImp DECLL.code CSI|q|{Ps;...} DECLL.dflt 0 DECLL.text Load the four programmable LEDs on the keyboard according to the parameter(s). DECLL.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning 0|VT100|emu|Ignore||Clear all LEDs 1|VT100|emu|Ignore||Light LED 1 2|VT100|emu|Ignore||Light LED 2 3|VT100|emu|Ignore||Light LED 3 4|VT100|emu|Ignore||Light LED 4 DECOM.head Origin Mode DECOM.emus VT100 DECOM.sect Mode DECOM.text This is a private parameter to \ref:SM and \ref:RM control sequences. The reset state causes the origin (or home position) to be the upper left character position of the screen. Line and column numbers are, therefore, independent of current margin settings. The cursor may be positioned outside the margins with a cursor position (\ref:CUP) or horizontal and vertical position (\ref:HVP) control. . The set state causes the origin to be at the upper left character position within the current margins. Line and column numbers are, therefore, relative to the current margin settings. The cursor cannot be positioned outside of the margins. . The cursor is moved to the new home position when this mode is set or reset. Lines and columns are numbered consecutively, with the origin being line 1, column 1. DECRC.head Restore Cursor DECRC.emus VT100 DECRC.sect Command.CursMode DECRC.code ESC|8| DECRC.text This sequence causes the previously saved cursor position, graphic rendition, and character set to be restored. DECRC.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|scr|restoreCursor||see above DECREPTPARM.head Report Terminal Parameters DECREPTPARM.emus ECMA VT100 DECREPTPARM.sect Reply DECREPTPARM.code CSI|x|{sol;par;nbits;xspd;rspd;cmul;flags} DECREPTPARM.text This sequence is generated by the VT100 to notify the host of the status of selected terminal parameters. The status sequence may be sent when requested by the host (via \ref:DECREQTPARM) or at the terminal's discretion. On power up or reset, the VT100 is inhibited from sending unsolicited reports. . The meanings of the sequence parameters are: DECREPTPARM.table.sol sol|Meaning:4 1|This message is a report. 2|This message is a report, and the terminal is only reporting on request. DECREPTPARM.table.par par|Meaning:4 1|No parity set 4|Parity set and odd 5|Parity set and even DECREPTPARM.table.nbits nbits|Meaning:4 1|8 bits per character 2|7 bits per character DECREPTPARM.table.speed(xspd,rspd) speed|Meaning (xspd,rspd):4 0|Speed set to 50 bps 8|Speed set to 75 bps 16|Speed set to 110 bps 24|Speed set to 134.5 bps 32|Speed set to 150 bps 40|Speed set to 200 bps 48|Speed set to 300 bps 56|Speed set to 600 bps 64|Speed set to 1200 bps 72|Speed set to 1800 bps 80|Speed set to 2000 bps 88|Speed set to 2400 bps 96|Speed set to 3600 bps 104|Speed set to 4800 bps 112|Speed set to 9600 bps 120|Speed set tp 19200 bps DECREPTPARM.table.cmul cmul|Meaning:4 1|The bit rate multiplier is 16 DECREPTPARM.table.flags flags|Meaning:4 0-15|This value communicates the four switch values in block 5 of SET-UP B, which are only visible to the user when an STP option is installed. DECREQTPARM.head Request Terminal Parameters DECREQTPARM.emus ECMA VT100 DECREQTPARM.sect Command.Request DECREQTPARM.code CSI|x|{Ps} DECREQTPARM.text The host sends this sequence to request the VT100 to send a \ref:DECREPTPARM sequence back. {Ps} can be either 0 or 1. If 0, the terminal will be allowed to send unsolicited \ref:DECREPTPARMs. These reports will be generated each time the terminal exits the SET-UP mode. If {Ps} is 1, then the terminal will only generate \ref:DECREPTPARMs in response to a request. DECREQTPARM.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning 0|VT100|emu|reportTerminalParms|2|Meaning 1|VT100|emu|reportTerminalParms|3|Meaning DECSC.head Save Cursor DECSC.emus VT100 DECSC.sect Command.CursMode DECSC.code ESC|7| DECSC.text Causes the cursor position, graphic rendition, and character set to be saved. (See \ref:DECRC) DECSC.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|scr|saveCursor||see above DECSCLM.head Scrolling Mode DECSCLM.emus VT100 DECSCLM.sect Mode DECSCLM.text This is a private parameter to \ref:RM and \ref:SM control sequences. The reset state causes scrolls to "jump" instantaneuously one line at a time. The set state causes the scrolls to be "smooth", and scrolls at a maximum rate of siz lines/sec. See \ref:MODES, \ref:RM, and \ref:SM. DECSCNM.head Screen Mode DECSCNM.emus VT100 DECSCNM.sect Mode DECSCNM.text This is a private parameter to \ref:RM and \ref:SM control sequences. The reset state causes the screen to be black with white characters; the set state causes the screen to be white with black characters. See \ref:MODES, \ref:RM, and \ref:SM. DECSTBM.head Set Top and Bottom Margins DECSTBM.emus VT100 DECSTBM.sect Command.CursMode DECSTBM.code CSI|r|{Pn;Pn} DECSTBM.dflt 1 ScreenLines DECSTBM.text This sequence sets the top and bottom margins to define the scrolling region. The first parameter is the line number of the first line in the scrolling region; the second parameter is the line number of the bottom line of the scrolling region. . Default is the entire screen (no margins). The minimum region allowed is two lines, i.e., the top line must be less than the bottom. The cursor is placed in the home position (See \ref:DECOM). DECSTBM.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|scr|setMargins|p,q|see above DECSWL.head Single-width Line DECSWL.emus VT100 DECSWL.sect Command.NoImp DECSWL.code HSH|5| DECSWL.text This causes the line which contains the cursor to become single-width, single-height. The cursor remains on the same character position. This is the default condition for all new lines on the screen. DECSWL.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|emu|Ignored||see above DECTST.head Invoke Confidence Test DECTST.emus ECMA VT100 DECTST.sect Command DECTST.code CSI|y|{2;Ps} DECTST.text Ps is the parameter indicating the test to be done. It is computed by taking the weight indicated for each desired test and adding them together. If Ps is 0, no test is performed but the VT100 is reset. DECTST.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|emu|Ignored||see above DECTST.table.Weight Weight|Meaning:4 1|POST (ROM checksum, RAM NVR, keyboardm and AVO) 2|Data Loop Back (Loopback connector required) 3|EIA Modem Control Test (Loopback connector req.) 4|Repeat Testing until failure DSRREQ.head Device Status Report DSRREQ.emus ECMA VT100 DSRREQ.sect Command.Request DSRREQ.code CSI|n|{Ps} DSRREQ.text Requests status of the VT100 according to the following parameters. DSRREQ.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning 5|VT100|emu|reportStatus||Report Status (using a \ref:DSRREP control sequence) 6|VT100|emu|reportCursorPosition||Report Active Position (using a \ref:CPR sequence) DSRREP.head Device Status Report Reply DSRREP.emus ECMA VT100 DSRREP.sect Reply DSRREP.code CSI|n|{Status} DSRREP.text Reports the general status of the VT100 according to the following parameters. . DSRREP with a parameter of 0 or 3 is always sent as a response to a requesting \ref:DSRREQ with a parameter of 5. DSRREP.table.Status Status|Meaning:3 0|Ready, no faults detected 3|Malfunction detected ED.head Erase in Display ED.emus ECMA VT100 ED.sect Command.Erase ED.code CSI|J|{Ps} ED.dflt 0 ED.text This sequence erases some or all of the characters in the display according to the parameter. Any complete line erased by this sequence will return that line to single width mode. ED.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning 0|VT100|scr|clearToEndOfScreen||Erase from the cursor to the end of the screen. 1|VT100|scr|clearToBeginOfScreen||Erase from the start of the screen to the cursor. 2|VT100|scr|clearEntireScreen||Erase the entire screen. EL.head Erase in Line EL.emus ECMA VT100 EL.sect Command.Erase EL.code CSI|K|{Ps} EL.dflt 0 EL.text Erases some or all characters in the active line, according to the parameter. EL.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning 0|VT100|scr|clearToEndOfLine||Erase from cursor to the end of the line. 1|VT100|scr|clearToBeginOfLine||Erase from the start of the line to the cursor. 2|VT100|scr|clearEntireLine||Erase the entire line. HTS.head Horizontal Tab Set HTS.emus ECMA VT100 HTS.sect Command.CursMode HTS.code ESC|H| HTS.text Set a tab stop at the current cursor position. HTS.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|scr|changeTabStop|TRUE|see above HVP.head Horizontal and Vertical Position HVP.emus ECMA VT100 HVP.sect Command.Cursor HVP.code CSI|f|{Pn;Pn} HVP.dflt 1 1 HVP.text Moves the cursor to the position specified by the parameters. The first parameter specifies the line, and the second specifies the column. A parameter of 0 or 1 causes the active position to move to the first line or column in the display. In the VT100, this control behaves identically with it's editor counterpart, \ref:CUP. The numbering of hte lines depends upon the state of the Origin Mode (\ref:DECOM). HVP.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|scr|setCursorYX|p,q|see above IND.head Index IND.emus ECMA VT100 IND.sect Command.Cursor IND.code ESC|D| IND.text This sequence causes the cursor to move downward one line without changing the column. If the cursor is at the bottom margin, a scroll up is performed. IND.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|scr|index||see above LNM.head Line Feed/New Line Mode LNM.emus ECMA VT100 LNM.sect Mode LNM.text This is a parameter to \ref:SM and \ref:RM control sequences. The reset state causes the interpretation of the \ref:LF character to imply only vertical movement of the cursor and causes the RETURN key to send the single code \ref:CR. . The set state causes the \ref:LF character to imply movement to the first position of the following line, and causes the RETURN key to send the code pair \ref:CR \ref:LF. This is the New Line option. . This mode does not affect the Index (\ref:IND) or the next line (\ref:NEL) format effectors. NEL.head Next Line NEL.emus ECMA VT100 NEL.sect Command.Cursor NEL.code ESC|E| NEL.text This causes the cursor to move to the first position of the next line down. If the cursor is on the bottom line, a scroll is performed. NEL.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|scr|NextLine||see above PRINT.head Printable Characters PRINT.emus ECMA VT100 PRINT.sect Command.Display PRINT.code PRN||{0x20..0x7e,0xa0..0xff} PRINT.text Printable characters are basically displayed. They my cause a line wrap when the cursor is already located at the end of the line. . The VT100 has a unique way to do this by producing a line wrap before the character would be displayed on the next line. This feature allows to print at the rightmost column without producing an implicit line feed. PRINT.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|scr|ShowCharacter|p|see above RI.head Reverse Index RI.emus ECMA VT100 RI.sect Command.Cursor RI.code ESC|M| RI.text Move the cursor up one line without changing columns. If the cursor is on the top line, a scroll down is performed. RI.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|scr|reverseIndex||see above RIS.head Reset to Initial State RIS.emus ECMA VT100 RIS.sect Command.Mode RIS.code ESC|c| RIS.text Resets the VT100 to the state is has upon power up. This also causes the execution of the POST and signal INT H to be asserted briefly. RIS.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|emu|resetTerminal||see above RM.head Reset Mode RM.emus ECMA VT100 RM.sect Command.SetMode RM.code CSI|l|{Ps;...} RM.text Resets one or more VT100 modes as specified by each selective parameter in the parameter string. Each mode to be reset is specified by a separate parameter. See \ref:MODES and \ref:SM. RM.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning 4|xterm|scr|resetMode|MODE_Insert|Meaning 20|VT100|emu|resetMode|MODE_NewLine|\ref:LNM SCS.head Select Character Set SCS.emus ECMA VT100 SCS.sect Command.RenderMode SCS.code SCS||{Pc;Cs} SCS.text The appropriate D0 and G1 character sets are designated from one of the five possible sets. The G0 and G1 sets are invoked by the characters \ref:LS1 and \ref:LS0, respectively. . The United Kingdom and ASCII sets conform to the "ISO international register of character sets to be used with escape sequences". The other sets are private character sets. Special graphics means that the graphic characters fpr the codes 0137 to 0176 are replaced with other characters. The specified character set will be used until another SCS is received. SCS.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT100|emu|setCharset|p-'(',q|see above SCS.table.Pc Pc|Character Selection:4 (|Select G0 Set )|Select G1 Set SCS.table.Cs Cs|Character Set:4 A|United Kingdom Set B|ASCII Set 0|Special Graphics 1|Alternate Character ROM (Standard Character Set) 2|Alternate Character ROM (Special Graphics) SGR.head Select Graphic Rendition SGR.emus ECMA VT100 SGR.sect Command.RenderMode SGR.code CSI|m|{Ps;...} SGR.text Invoke the graphic rendition specified by the parameter(s). All following characters transmitted to the VT100 are rendered according to the parameter(s) until the next occurrence of an SGR. . All other parameter values are ignored. . Without the Advanced Video Option, only one type of character attribute is possible, as determined by the cursor selection; in that case specifying either underscore or reverse will activate the currently selected attribute. SGR.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning 0|VT100|scr|setDefaultRendition||Attributes Off 1|VT100|scr|setRendition|RE_BOLD|Bold or increased intensity 4|VT100|scr|setRendition|RE_UNDERLINE|Underscore 5|VT100|scr|setRendition|RE_BLINK|Blink 7|VT100|scr|setRendition|RE_REVERSE|Negative (reverse) image 10|konsole|emu|Ignored||Meaning 11|konsole|emu|Ignored||Meaning 12|konsole|emu|Ignored||Meaning 22|VT100|scr|resetRendition|RE_BOLD|Meaning 24|VT100|scr|resetRendition|RE_UNDERLINE|Meaning 25|VT100|scr|resetRendition|RE_BLINK|Meaning 27|VT100|scr|resetRendition|RE_REVERSE|Meaning 30|xterm|scr|setForeColor|0|Meaning 31|xterm|scr|setForeColor|1|Meaning 32|xterm|scr|setForeColor|2|Meaning 33|xterm|scr|setForeColor|3|Meaning 34|xterm|scr|setForeColor|4|Meaning 35|xterm|scr|setForeColor|5|Meaning 36|xterm|scr|setForeColor|6|Meaning 37|xterm|scr|setForeColor|7|Meaning 39|xterm|scr|setForeColorToDefault||Meaning 40|xterm|scr|setBackColor|0|Meaning 41|xterm|scr|setBackColor|1|Meaning 42|xterm|scr|setBackColor|2|Meaning 43|xterm|scr|setBackColor|3|Meaning 44|xterm|scr|setBackColor|4|Meaning 45|xterm|scr|setBackColor|5|Meaning 46|xterm|scr|setBackColor|6|Meaning 47|xterm|scr|setBackColor|7|Meaning 49|xterm|scr|setBackColorToDefault||Meaning 90|xterm|scr|setForeColor|8|Meaning 91|xterm|scr|setForeColor|9|Meaning 92|xterm|scr|setForeColor|10|Meaning 93|xterm|scr|setForeColor|11|Meaning 94|xterm|scr|setForeColor|12|Meaning 95|xterm|scr|setForeColor|13|Meaning 96|xterm|scr|setForeColor|14|Meaning 97|xterm|scr|setForeColor|15|Meaning 100|xterm|scr|setBackColor|8|Meaning 101|xterm|scr|setBackColor|9|Meaning 102|xterm|scr|setBackColor|10|Meaning 103|xterm|scr|setBackColor|11|Meaning 104|xterm|scr|setBackColor|12|Meaning 105|xterm|scr|setBackColor|13|Meaning 106|xterm|scr|setBackColor|14|Meaning 107|xterm|scr|setBackColor|15|Meaning SM.head Set Mode SM.emus ECMA VT100 SM.sect Command.SetMode SM.code CSI|h|{Ps;...} SM.text Causes one or more modes to be set within the VT100 as specified by each selective parameter string. Each mode to be set is specified by a seperate parameter. A mode is considered set until it is reset by a Reset Mode (\ref:RM) control sequence. See \ref:RM and \ref:MODES. SM.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning 4|VT100|scr|setMode|MODE_Insert|Meaning 20|VT100|emu|setMode|MODE_NewLine|\ref:LNM TBC.head Tabulation Clear TBC.emus ECMA VT100 TBC.sect Command.CursMode TBC.code CSI|g|{Ps} TBC.text If the parameter is missing or 0, this will clear the tab stop at the cursor's position. If it is 3, this will clear all of the tab stops. Any other parameter is ignored. TBC.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning 0|VT100|scr|changeTabStop|FALSE|Meaning 3|VT100|scr|clearTabStops||Meaning ############################################################################## # # # VT52 # # # ############################################################################## VT52ANSI.head VT52 ANSI Ansi Mode VT52ANSI.emus VT100 XTERM VT52 KONSOLE VT52ANSI.sect Command.Mode VT52ANSI.code ESC|<| VT52ANSI.text This is an extension to the VT52 commands to embed the emulation into VT100. It allows to return back to VT100 emulation (ANSI mode). See also \ref:DECANM and \ref:SM. VT52ANSI.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT52|emu|setMode|MODE_Ansi|see above VT52CUB.head VT52 Cursor Back VT52CUB.emus KONSOLE VT52CUB.sect Command.VT52 VT52CUB.code ESC|D| VT52CUB.text See \ref:CUB. VT52CUB.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT52|scr|cursorLeft|1|see above VT52CUD.head VT52 Cursor Down VT52CUD.emus KONSOLE VT52CUD.sect Command.VT52 VT52CUD.code ESC|B| VT52CUD.text See \ref:CUD. VT52CUD.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT52|scr|cursorDown|1|see above VT52CUF.head VT52 Cursor Forward VT52CUF.emus KONSOLE VT52CUF.sect Command.VT52 VT52CUF.code ESC|C| VT52CUF.text See \ref:CUF. VT52CUF.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT52|scr|cursorRight|1|see above VT52CUP.head VT52 Cursor Position VT52CUP.emus KONSOLE VT52CUP.sect Command.VT52 VT52CUP.code VT5||{X;Y} VT52CUP.text Line and column numbers for direct cursor address are single character codes whose values are the desired number plus 37 (in Octal). Line and column numbers start at 1. VT52CUP.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT52|scr|setCursorYX|p-31,q-31|see above VT52CUU.head VT52 Cursor Up VT52CUU.emus KONSOLE VT52CUU.sect Command.VT52 VT52CUU.code ESC|A| VT52CUU.text See \ref:CUU. VT52CUU.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT52|scr|cursorUp|1|see above VT52EDL.head VT52 Clear To End Of Line VT52EDL.emus KONSOLE VT52EDL.sect Command.VT52 VT52EDL.code ESC|K| VT52EDL.text FIXME. explain VT52EDL.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT52|scr|clearToEndOfLine||see above VT52EDS.head VT52 Clear To End Of Screen VT52EDS.emus KONSOLE VT52EDS.sect Command.VT52 VT52EDS.code ESC|J| VT52EDS.text FIXME. explain VT52EDS.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT52|scr|clearToEndOfScreen||see above VT52CUH.head VT52 Cursor Home VT52CUH.emus KONSOLE VT52CUH.sect Command.VT52 VT52CUH.code ESC|H| VT52CUH.text FIXME. explain VT52CUH.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT52|scr|setCursorYX|1,1|see above VT52KPAM.head VT52 Enter alternate keypad mode VT52KPAM.emus KONSOLE VT52KPAM.sect Command.VT52 VT52KPAM.code ESC|=| VT2KPAM.text FIXME. explain VT52KPAM.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT52|emu|setMode|MODE_AppKeyPad|see above VT52KPNM.head VT52 Exit alternate keypad mode VT52KPNM.emus KONSOLE VT52KPNM.sect Command.VT52 VT52KPNM.code ESC|>| VT52KPNM.text FIXME. explain VT52KPNM.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT52|emu|resetMode|MODE_AppKeyPad|see above VT52REP.head VT52 Report Terminal Type VT52REP.emus KONSOLE VT52REP.sect Command.VT52 VT52REP.code ESC|Z| VT52REP.text Response to ESC Z is ESC / Z. VT52REP.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT52|emu|reportTerminalType||see above VT52RI.head VT52 Reverse Index VT52RI.emus KONSOLE VT52RI.sect Command.VT52 VT52RI.code ESC|I| VT52RI.text FIXME. explain VT52RI.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT52|scr|reverseIndex||see above VT52SCSF.head VT52 Select special graphics character set VT52SCSF.emus KONSOLE VT52SCSF.sect Command.VT52 VT52SCSF.code ESC|F| VT52SCSF.text FIXME. explain VT52SCSF.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT52|scr|setAndUseCharset|0,'0'|see above VT52SCSG.head VT52 Select ASCII character set VT52SCSG.emus KONSOLE VT52SCSG.sect Command.VT52 VT52SCSG.code ESC|G| VT52SCSG.text FIXME. explain VT52SCSG.table.XPS Subcode|Emulation|Scope|Operation|Args|Meaning N/A|VT52|scr|setAndUseCharset|0,'B'|see above