diff options
Diffstat (limited to 'konsole/doc/VT100/Table.Codes')
-rw-r--r-- | konsole/doc/VT100/Table.Codes | 1879 |
1 files changed, 1879 insertions, 0 deletions
diff --git a/konsole/doc/VT100/Table.Codes b/konsole/doc/VT100/Table.Codes new file mode 100644 index 000000000..6ece0f4bf --- /dev/null +++ b/konsole/doc/VT100/Table.Codes @@ -0,0 +1,1879 @@ +############################################################################## +# # +# [Table.Codes] Concept Data Base # +# # +# Copyright (c) 1998 by Lars Doelle <[email protected]> # +# 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 + <h2>Introduction</h2> + <p> + 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. + <p> + <center><img src="konsole2.gif"></center> + <p> + 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. + <p> + 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. + <p> + 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. + <p> + 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. + <p> + 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. + <p> + <h2>A first refinement</h2> + <p> + 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. + <p> + 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. + <p> + 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. + <p> + The concrete model is often loosely named the "emulation", + the specific encoding chosen, the "protocol". + <p> + 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. + <p> + 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. + <p> + 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. + <p> + 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. + <p> + 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. + <p> + 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. + <p> + The full screen model basically adds the possibility to position + the cursor and to overwrite and clear the screen. + <p> + A plethora of additional (more or less useful) commands are + then added on this by every specific emulation, see below for + the awful details. + <p> + <!-- BEGIN: new section about the codes --> + <h2>Parts of the model</h2> + <p> + <it>All the following in this section is an outline</it>. + <p> + Parts of the terminal description + <ul> + <li>State + <br>This is mainly the screen, the cursor (including it's graphical state) + and some hidden mode variables. Note that the state cannot be investigated + by the attached host. + <li>Interface + <br>That's what goes over the wire. Beside being related to objects, this + appears so closely related to contemporal process communication, that + it might be discussed in likely terms. + <br>We have information flowing in both directions. On could destinguist + between: + <li>Commands + <br>These are "calls" of the terminals interface by the host which cause + some change of the terminals state, but do not end in a response. + <li>Requests + <br>These are "calls" of the terminals interface by the host which do not cause + any change of the terminals state, but end in a response of the terminal. + Clearly, requests are somehow used to investigate the state of the terminal. + <li>Events + <br>These are signals from the terminal caused by the user affecting the + mouse or keyboard to the host. + <li>Replys + <br>These are send by the terminal as a result of a Request from the hosts. + <li>Encoding/Decoding + </ul> + +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. + <p> + Refering both to their origin and form, one can group the overall encoding + schemes as follows: + <p> + <table> + <tr><td width=20% bgcolor=#d0d0d0>Name</td><td width=20% bgcolor=#d0d0d0>Pattern</td><td bgcolor=#d0d0d0>Scope</td><td bgcolor=#d0d0d0>Comment</td></tr> + <tr><td>Printable Ascii Characters</td><td>32..126</td><td>ASCII ECMA</td> + <td>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.</td></tr> + <tr><td>Ascii Control Characters</td><td>0..26,28..31,127</td><td>ASCII ECMA</td> + <td>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.</td></tr> + <tr><td>Simple Escape Sequence</td><td><b>ESC</b> <i>C</i></td><td>ECMA</td> + <td>These sequences are made up from an <b>ESC</b> character followed by + exactly one other character in the range ???..???.</td></tr> + <tr><td>CSI Sequence</td> + <td><b>ESC</b> <b>[</b> <i>Parameters</i> {<i>I</i>} <i>C</i></td> + <td>ECMA</td> + <td></td></tr> + <tr><td colspan=4> + <p> + The remaining codes are nonstandard but traditionalized hacks. + <p> + </td></tr> + <tr><td>DEC hacks</td> + <td><b>ESC</b> <i>C</i> <i>D</i></td> + <td>VT100</td> + <td></td></tr> + <tr><td>XTERM hacks</td> + <td><b>ESC ]</b> <i>Pn</i> <b>;</b> <i>text</i> <b>BEL</b></td> + <td>XTERM</td> + <td></td> + <tr><td colspan=4> + <p> + VT52 uses a different (incompatible) set of escape codes. VT100 includes + the VT52 emulation as a mode. + <p> + </td></tr> + </tr> + <tr><td>Simple Escape Sequence</td><td><b>ESC</b> <i>C</i></td><td>VT52</td> + <td></td></tr> + <tr><td>Complex Escape Sequence</td><td><b>ESC</b> <b>Y</b> <i>X</i> <i>Y</i></td><td>VT52</td> + <td></td></tr> + . + </table> + . + <h3>More on Control Sequences</h3> + . + <h4>Control Characters</h4> + . + 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 <a href=#ESC>ESC</a> character occurs, the current control sequence + is aborted, and a new one commences beginning with the <a href=#ESC>ESC</a> + just received. If the character <a href=#CAN>CAN</a> (0x0c) or the + character <a href=#SUB>SUB</a> (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. + <p> + . + <h4>CSI Sequences</h4> + . + <dl> + <dt>Control Sequence Introducer (CSI): + <dd>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>[ + . + <dt>Parameter: + <dd>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). + <br>2. The value so represented. + . + <dt>Numeric Parameter: + <dd>A parameter that represents a number, designated by Pn. + . + <dt>Selective Parameter: + <dd>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. + . + <dt>Parameter String: + <dd>A string of parameters separated by a semicolon. + . + <dt>Default: + <dd> A function-dependent value that is assumed when no explicit + value, or a value of 0, is specified. + . + <dt>Final character: + <dd>A character whose bit combination terminates an escape or control sequence. + </dl> + . + <em>EXAMPLE</em>: Control sequence to turn off all character attributes, then + turn on underscore and blink attributes (<a href=#SGR>SGR</a>). + . + <center><img src="konsole1.gif"></center> + <p> + The octal representation of this string is: + <pre> + 033 0133 060 073 064 073 065 0155 + <ESC> [ 0 ; 4 ; 5 m + </pre> + . + Alternate sequences which will accomplish the same thing: + . + <ul> + <li><code><ESC>[;4;m </code> + <li><code><ESC>[m </code> + <br><code><ESC>[4m </code> + <br><code><ESC>[5m </code> + <li><code><ESC>[0;04;005m</code> + </ul> + . + <h4>DEC hacks</h4> + . + These form two groups of commands. + <p> + In one first the first character is a hash (<em>#</em>) and the following a digit. + This command group is used to denote VT100 specific instructions and can + safely be sonsidered to be obsolete. See + <a href=#DECALN>DECALN</a>, + <a href=#DECDHLB>DECDHLB</a>, + <a href=#DECDHLT>DECDHLT</a>, + <a href=#DECDWL>DECDWL</a> and + <a href=#DECSWL>DECSWL</a>. + <p> + The second one is used to specify character set mappings (see <a + href=#SCS>SCS</a>). A CSI instruction to do this is specified in ECMA, + and this should be used as a replacement. + . + <h4>XTERM hacks</h4> + +ConceptDB.html + <i>The following text is a collection of several sorts of definitions and + explainations. It is incomplete in many respects and a working draft. + </i> + . + <p> + 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. + <p> + The following text conforms to these formatting conventions: + <ul> + <li>Individual character literals are set in bold face. Ascii representation + is used throughout, so <b>ESC</b> means the binary value of 27 and + <b>[</b> a value of 91. + . + <li>Parameters are indicated by italic type faces. + <li>Parameter types usually are indicated as one of: + <table> + <tr><td><i>Pn </i></td><td>A string of digits representing a numerical value.</td></tr> + <tr><td><i>Ps </i></td><td>A character that selects an item from a list.</td></tr> + <tr><td><i>a-z</i></td><td>Any lowercase sequence of one or more + characters represent a value to be + entered (as in <i>Pn</i>), and the name in the + will be referred to in explanatory text.</td></tr> + </table> + . + <li>Spaces are used only to improve readability, they do not occure in the + control sequences unless otherwise indicated. + . + </ul> + . + <p> + The following attributes below have the following meaning: + <ul> + <li>VT100 - This code is known to VT100. + <li>ANSI - This code is defined by ANSI. + <li>DEC - This code is DEC private. + <li>Command - Sent from host to the terminal. <b>FIXME:</b>add Inquiery. + <li>Reply - Sent from terminal to the host (as response to an Inquiery). + <li>Event - Sent from terminal to the host (caused by a user activity). + <li>Mode - The entry is a mode. + </ul> + +Operations.html + <p> + <ul> + <li>Host to Terminal (Commands,Requests) + <ul> + <li>Commands + <ul> + <li>Character Display Operation + <li>Rendition related status + <li>Cursor + <li>Cursor related status + <li>Edit + <li>Miscellaneous + <li>General mode setting + <li>Miscellaneous status + <li>VT52 + <li>Not implemented + <li>Ignored + </ul> + <li>Requests + </ul> + <li>Terminal to Host (Replies, Events) + <ul> + <li>Replies + <li>Events + </ul> + <li>Modes + <ul> + <li>Modes + </ul> + </ul> + +## 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 <ESC>( 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 (<ESC>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 |