1 ##############################################################################
3 # [Table.Codes] Concept Data Base #
5 # Copyright (c) 1998 by Lars Doelle <lars.doelle@on-line.de> #
6 # This file is part of Konsole #
7 ##############################################################################
9 # This is work in progress. The overall goal is to link the documentation of
10 # konsole closely to it's source. Further, the source could be organize such
11 # that the emulation dependent parts are separated from everything else.
12 # If this goal is matched, the emulation independent parts have to undergo
13 # documentation, also.
15 # Refere to [db.trans] for not-yet-integrated stuff.
17 # What has to be done in any case is to merge db.trans into this file and to
18 # make a script that extracts it again. From db.trans, we then generate parts
19 # of the decoder (the semantic assignment).
21 # db2.pl contains as script able to slit TEScreen.C into the emulation
22 # (in)dependent parts due to [db.trans].
24 # A like thing has to be done for TEmuVt102.C/h and for TEScreen.h.
26 # The missing link in the moment is a proper handling of all the Ps arguments
27 # that refere to different routines (subfunction of an esc code).
29 ## Section Text ##############
34 In a traditional UNIX installation a single machine (host) served
35 several users by means of terminals attached to this host by a serial
36 cable. These terminals (end points) where specialized devices, either
37 regular ttys (printer with keyboard) or later more sophisticated
38 things with cathode ray tubes.
40 <center><img src="konsole2.gif"></center>
42 Today, hardware has become so cheap, that each single user could
43 be provided with a complete host/display combination for the former
46 Additional, and here we come to the X in the emulation, display
47 devices have become graphical while the original terminal where
48 only able to show characters but not graphics.
50 To allow programs designed for the original configuration to be
51 used in the contemporary setup, "terminal emulations" where invented.
52 In these emulations, the whole original setup is simulated.
54 The serial cable is folded into the operating system as a sort of
55 loop back device, and a program, the terminal emulation, uses modern
56 means of graphical user interfaces to behave like an earlier terminal.
57 To complete the picture, the host in the diagram is replaced by the
58 application that runs in the emulation (typically a shell or an old
59 editor). So, terminal emulations are in fact interfaces to character
60 oriented applications.
62 This document describes the implementations of a program named
63 "konsole", which is such an X terminal emulation. Since konsole
64 is distributed under the GPL, meaning that it's source code is
65 available to whoever likes to hack on it, the program would be
66 incomplete without a proper introduction into the code and it's
67 concepts. Thus, this text is to complement the program and the
68 source with the remaining informations to make a complete product.
70 <h2>A first refinement</h2>
72 Before we can come to the actual implementation, quite some
73 notions have to be introduced. We have to get us an idea what
74 a terminal emulation does in more detail.
76 To this end, a simple model of the terminal and it's operation
77 is given, which is later extended and refined as we come deeper
78 into matter and implementation.
80 At some level conception, a terminal can be described as a
81 (abstract) data model. This means it has some type of state
82 together with operations on that data type. These operations
83 are somehow encoded to be passed over the serial line.
85 The concrete model is often loosely named the "emulation",
86 the specific encoding chosen, the "protocol".
88 There are two principle models in use. The first, stream like
89 one, which is related to a tty, consideres the terminal as an
90 indefinit long and wide sheet of paper on which a printer head
91 types the characters that come in over the line. Typical examples
92 are shell scripts, make and other programs producing sequential
93 protocols of their activity. Their basic data type is a list of
96 The second principle model is used by applications written
97 especially for crt devices, so called full screen applications.
98 These treat the terminal as a matrix of characters where each
99 position can be individually addressed and written to. Typical
100 representatives are full screen editors like vi and emacs,
101 file managers like mc and mail readers like mutt.
103 Though the second model is newer, it's age does not imply a
104 preference. To the contrary, both models have a right for their
105 own and are both to be supported. The first model is fully
106 expressed within konsole in form of it's ref:history buffer.
108 Note, that although the second model definitely build on the
109 first one in almost any respect, it cannot fully express it,
110 since it introduces a finite line length, while the first
111 model works with indefinite lines.
113 Since application with both view of things are typically run
114 within the same session, some effort has been made within
115 konsole to maintain both ideas simultaniously, but only with
116 limited success so far.
118 In both models, the notion of a current position (historically
119 a printer's head, nowadays visualized by a cursor) is present.
120 "Printing" a character at the current position and advancing
121 the head together with the starting a new line are the most
122 fundamental operations of the emulation.
124 The full screen model basically adds the possibility to position
125 the cursor and to overwrite and clear the screen.
127 A plethora of additional (more or less useful) commands are
128 then added on this by every specific emulation, see below for
131 <!-- BEGIN: new section about the codes -->
132 <h2>Parts of the model</h2>
134 <it>All the following in this section is an outline</it>.
136 Parts of the terminal description
139 <br>This is mainly the screen, the cursor (including it's graphical state)
140 and some hidden mode variables. Note that the state cannot be investigated
141 by the attached host.
143 <br>That's what goes over the wire. Beside being related to objects, this
144 appears so closely related to contemporal process communication, that
145 it might be discussed in likely terms.
146 <br>We have information flowing in both directions. On could destinguist
149 <br>These are "calls" of the terminals interface by the host which cause
150 some change of the terminals state, but do not end in a response.
152 <br>These are "calls" of the terminals interface by the host which do not cause
153 any change of the terminals state, but end in a response of the terminal.
154 Clearly, requests are somehow used to investigate the state of the terminal.
156 <br>These are signals from the terminal caused by the user affecting the
157 mouse or keyboard to the host.
159 <br>These are send by the terminal as a result of a Request from the hosts.
160 <li>Encoding/Decoding
164 Conceptually, the commands to the terminal emulation are encoded if form
165 of byte sequences to meet the restrictions of the transport media. These
166 sequences have pretty different originations and therefore the format of
167 the sequences are inhomogenous.
169 Refering both to their origin and form, one can group the overall encoding
173 <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>
174 <tr><td>Printable Ascii Characters</td><td>32..126</td><td>ASCII ECMA</td>
175 <td>This is the most original pattern of all. The characters to be
176 displayed are passed over the chanel and are interpreted by the
177 terminal (emulation) as instructions to display the corresponding
178 glyph of the ascii character set. Contempory emulations include the
179 upper half (128..255) of the extentions to the national ascii character
180 sets, also.</td></tr>
181 <tr><td>Ascii Control Characters</td><td>0..26,28..31,127</td><td>ASCII ECMA</td>
182 <td>Ascii defines some non-printable, but format effecting characters, too.
183 Depending on the emulation, at least some of them are given a meaning.
184 The typically implemented ones are those that are handled by a teletype
185 like device.</td></tr>
186 <tr><td>Simple Escape Sequence</td><td><b>ESC</b> <i>C</i></td><td>ECMA</td>
187 <td>These sequences are made up from an <b>ESC</b> character followed by
188 exactly one other character in the range ???..???.</td></tr>
189 <tr><td>CSI Sequence</td>
190 <td><b>ESC</b> <b>[</b> <i>Parameters</i> {<i>I</i>} <i>C</i></td>
195 The remaining codes are nonstandard but traditionalized hacks.
198 <tr><td>DEC hacks</td>
199 <td><b>ESC</b> <i>C</i> <i>D</i></td>
202 <tr><td>XTERM hacks</td>
203 <td><b>ESC ]</b> <i>Pn</i> <b>;</b> <i>text</i> <b>BEL</b></td>
208 VT52 uses a different (incompatible) set of escape codes. VT100 includes
209 the VT52 emulation as a mode.
213 <tr><td>Simple Escape Sequence</td><td><b>ESC</b> <i>C</i></td><td>VT52</td>
215 <tr><td>Complex Escape Sequence</td><td><b>ESC</b> <b>Y</b> <i>X</i> <i>Y</i></td><td>VT52</td>
220 <h3>More on Control Sequences</h3>
222 <h4>Control Characters</h4>
224 Control characters (codes 0x00 - 0x1f inclusive) are specifically excluded
225 from the control sequence syntax, but may be embedded within a control
226 sequence. Embedded control characters are executed as soon as they are
227 encountered by a VT100. The processing of the control sequence then
228 continues with the next character received. The exceptions are:
229 if the <a href=#ESC>ESC</a> character occurs, the current control sequence
230 is aborted, and a new one commences beginning with the <a href=#ESC>ESC</a>
231 just received. If the character <a href=#CAN>CAN</a> (0x0c) or the
232 character <a href=#SUB>SUB</a> (0x0e) occurs,
233 the current control sequence is aborted. The ability to embed control
234 characters allows the synchronization characters XON and XOFF to be
235 interpreted properly without affecting the control sequence.
238 <h4>CSI Sequences</h4>
241 <dt>Control Sequence Introducer (CSI):
242 <dd>An escape sequence that provides
243 supplementary controls and is itself a prefix affecting the
244 interpretation of a limited number of contiguous characters.
245 In the VT100, the CSI is: <ESC>[
248 <dd>1. A string of zero or more decimal characters which
249 represent a single value. Leading zeros are ignored. The
250 decimal characters have a range of 0 (060) to 9 (071).
251 <br>2. The value so represented.
253 <dt>Numeric Parameter:
254 <dd>A parameter that represents a number, designated by Pn.
256 <dt>Selective Parameter:
257 <dd>A parameter that selects a subfunction from a
258 specified set of subfunctions, designated by Ps. In general, a
259 control sequence with more than one selective parameter causes
260 the same effect as several control sequences, each with one
261 selective parameter, e.g., CSI Psa; Psb; Psc F is identical to
262 CSI Psa F CSI Psb F CSI Psc F.
264 <dt>Parameter String:
265 <dd>A string of parameters separated by a semicolon.
268 <dd> A function-dependent value that is assumed when no explicit
269 value, or a value of 0, is specified.
272 <dd>A character whose bit combination terminates an escape or control sequence.
275 <em>EXAMPLE</em>: Control sequence to turn off all character attributes, then
276 turn on underscore and blink attributes (<a href=#SGR>SGR</a>).
278 <center><img src="konsole1.gif"></center>
280 The octal representation of this string is:
282 033 0133 060 073 064 073 065 0155
283 <ESC> [ 0 ; 4 ; 5 m
286 Alternate sequences which will accomplish the same thing:
289 <li><code><ESC>[;4;m </code>
290 <li><code><ESC>[m </code>
291 <br><code><ESC>[4m </code>
292 <br><code><ESC>[5m </code>
293 <li><code><ESC>[0;04;005m</code>
298 These form two groups of commands.
300 In one first the first character is a hash (<em>#</em>) and the following a digit.
301 This command group is used to denote VT100 specific instructions and can
302 safely be sonsidered to be obsolete. See
303 <a href=#DECALN>DECALN</a>,
304 <a href=#DECDHLB>DECDHLB</a>,
305 <a href=#DECDHLT>DECDHLT</a>,
306 <a href=#DECDWL>DECDWL</a> and
307 <a href=#DECSWL>DECSWL</a>.
309 The second one is used to specify character set mappings (see <a
310 href=#SCS>SCS</a>). A CSI instruction to do this is specified in ECMA,
311 and this should be used as a replacement.
316 <i>The following text is a collection of several sorts of definitions and
317 explainations. It is incomplete in many respects and a working draft.
321 All of the following control sequences are transmitted from the Host to
322 VT100 unless otherwise noted. All of the control sequences are a subset of
323 those defined in ANSI X 3.64 1977 and ANSI X 3.41 1974.
325 The following text conforms to these formatting conventions:
327 <li>Individual character literals are set in bold face. Ascii representation
328 is used throughout, so <b>ESC</b> means the binary value of 27 and
329 <b>[</b> a value of 91.
331 <li>Parameters are indicated by italic type faces.
332 <li>Parameter types usually are indicated as one of:
334 <tr><td><i>Pn </i></td><td>A string of digits representing a numerical value.</td></tr>
335 <tr><td><i>Ps </i></td><td>A character that selects an item from a list.</td></tr>
336 <tr><td><i>a-z</i></td><td>Any lowercase sequence of one or more
337 characters represent a value to be
338 entered (as in <i>Pn</i>), and the name in the
339 will be referred to in explanatory text.</td></tr>
342 <li>Spaces are used only to improve readability, they do not occure in the
343 control sequences unless otherwise indicated.
348 The following attributes below have the following meaning:
350 <li>VT100 - This code is known to VT100.
351 <li>ANSI - This code is defined by ANSI.
352 <li>DEC - This code is DEC private.
353 <li>Command - Sent from host to the terminal. <b>FIXME:</b>add Inquiery.
354 <li>Reply - Sent from terminal to the host (as response to an Inquiery).
355 <li>Event - Sent from terminal to the host (caused by a user activity).
356 <li>Mode - The entry is a mode.
362 <li>Host to Terminal (Commands,Requests)
366 <li>Character Display Operation
367 <li>Rendition related status
369 <li>Cursor related status
372 <li>General mode setting
373 <li>Miscellaneous status
380 <li>Terminal to Host (Replies, Events)
391 ## Keyboard #################################################################
393 KEYBOARD.head Keyboard Events
394 KEYBOARD.emus KONSOLE
401 Return|MODE_NewLine ? "\r\n" : "\r"
402 Backspace|MODE_BsHack ? "\x7f" : "\x08"
403 Delete|MODE_BsHack ? "\033[3~" : "\x7f"
404 Up|!MODE_Ansi ?"\033A" : MODE_AppCuKeys ?"\033OA" : "\033[A"
405 Down|!MODE_Ansi ?"\033B" : MODE_AppCuKeys ?"\033OB" : "\033[B"
406 Right|!MODE_Ansi ?"\033C" : MODE_AppCuKeys ?"\033OC" : "\033[C"
407 Left|!MODE_Ansi ?"\033D" : MODE_AppCuKeys ?"\033OD" : "\033[D"
408 F1|Xterm? "\033[11~": "\033[[A"
409 F2|Xterm? "\033[12~": "\033[[B"
410 F3|Xterm? "\033[13~": "\033[[C"
411 F4|Xterm? "\033[14~": "\033[[D"
412 F5|Xterm? "\033[15~": "\033[[E"
426 Control_Print|reportAnswerBack()
429 MOUSE.head Mouse Events
435 CHA.head Cursor Horizontal Absolute
436 CHA.emus ECMA KONSOLE
437 CHA.sect Command.Cursor
442 Subcode|Emulation|Scope|Operation|Args|Meaning
443 N/A|xterm|scr|setCursorX|p|see above
445 DCH.head Delete Character
446 DCH.emus ECMA KONSOLE
447 DCH.sect Command.Delete
452 Subcode|Emulation|Scope|Operation|Args|Meaning
453 N/A|xterm|scr|deleteChars|p|see above
455 DECRST.head DEC Private Reset Mode
456 DECRST.emus VT100 KONSOLE
457 DECRST.sect Command.SetMode
458 DECRST.code PRI|l|{Ps;...}
462 Subcode|Emulation|Scope|Operation|Args|Meaning
463 1|VT100|emu|resetMode|MODE_AppCuKeys|Meaning
464 2|VT100|emu|resetMode|MODE_Ansi|Meaning
465 3|VT100|emu|setColumns|80|Meaning
466 4|VT100|emu|Ignored||Meaning
467 5|VT100|scr|resetMode|MODE_Screen|Meaning
468 6|VT100|scr|resetMode|MODE_Origin|Meaning
469 7|VT100|scr|resetMode|MODE_Wrap|Meaning
470 8|VT100|emu|Ignored||Meaning
471 9|VT100|emu|Ignored||Meaning
472 25|VT100|emu|resetMode|MODE_Cursor|Meaning
473 47|xterm|emu|resetMode|MODE_AppScreen|Meaning
474 1000|xterm|emu|resetMode|MODE_Mouse1000|Meaning
475 1001|xterm|emu|Ignored||Meaning
476 1047|xterm|emu|resetMode|MODE_AppScreen|Meaning
477 1048|xterm|scr|restoreCursor||Meaning
479 DECSET.head DEC Private Set Mode
480 DECSET.emus VT100 KONSOLE
481 DECSET.sect Command.SetMode
482 DECSET.code PRI|h|{Ps;...}
486 Subcode|Emulation|Scope|Operation|Args|Meaning
487 1|VT100|emu|setMode|MODE_AppCuKeys|Meaning
488 3|VT100|emu|setColumns|132|Meaning
489 4|VT100|emu|Ignored||Meaning
490 5|VT100|scr|setMode|MODE_Screen|Meaning
491 6|VT100|scr|setMode|MODE_Origin|Meaning
492 7|VT100|scr|setMode|MODE_Wrap|Meaning
493 8|VT100|emu|Ignored||Meaning
494 9|VT100|emu|Ignored||Meaning
495 25|VT100|emu|setMode|MODE_Cursor|Meaning
496 47|xterm|emu|setMode|MODE_AppScreen|Meaning
497 1000|xterm|emu|setMode|MODE_Mouse1000|Meaning
498 1001|xterm|emu|Ignored||Meaning
499 1047|xterm|emu|setMode|MODE_AppScreen|Meaning
500 1048|xterm|scr|saveCursor||Meaning
504 DL.sect Command.Delete
509 Subcode|Emulation|Scope|Operation|Args|Meaning
510 N/A|konsole|scr|deleteLines|p|see above
512 ECH.head Erase Character
513 ECH.emus ECMA KONSOLE
514 ECH.sect Command.Erase
519 Subcode|Emulation|Scope|Operation|Args|Meaning
520 N/A|konsole|scr|eraseChars|p|see above
522 ICH.head Insert Character
523 ICH.emus ECMA KONSOLE
524 ICH.sect Command.Insert
529 Subcode|Emulation|Scope|Operation|Args|Meaning
530 N/A|konsole|scr|insertChars|p|see above
534 IL.sect Command.Insert
539 Subcode|Emulation|Scope|Operation|Args|Meaning
540 N/A|xterm|scr|insertLines|p|see above
542 LS2.head Lock Shift Two
544 LS2.sect Command.RenderMode
549 Subcode|Emulation|Scope|Operation|Args|Meaning
550 N/A|xterm|scr|useCharset|2|see above
552 LS3.head Lock Shift Three
554 LS3.sect Command.RenderMode
559 Subcode|Emulation|Scope|Operation|Args|Meaning
560 N/A|xterm|scr|useCharset|3|see above
564 MC.sect Command.NoImp
569 Subcode|Emulation|Scope|Operation|Args|Meaning
570 0|VT100|emu|Ignored||Meaning
572 VPA.head Vertical Position Absolute
573 VPA.emus ECMA KONSOLE
574 VPA.sect Command.Cursor
579 Subcode|Emulation|Scope|Operation|Args|Meaning
580 N/A|xterm|scr|setCursorY|p|see above
582 XTERESTORE.head XTerm Private Restore Mode
583 XTERESTORE.emus XTERM KONSOLE
584 XTERESTORE.sect Command.SetMode
585 XTERESTORE.code PRI|r|{Ps;...}
589 Subcode|Emulation|Scope|Operation|Args|Meaning
590 1|xterm|emu|restoreMode|MODE_AppCuKeys|Meaning
591 6|xterm|scr|restoreMode|MODE_Origin|Meaning
592 7|xterm|scr|restoreMode|MODE_Wrap|Meaning
593 1000|xterm|emu|restoreMode|MODE_Mouse1000|Meaning
594 1001|xterm|emu|Ignored||Meaning
596 XTESAVE.head XTerm Private Save Mode
597 XTESAVE.emus XTERM KONSOLE
598 XTESAVE.sect Command.SetMode
599 XTESAVE.code PRI|s|{Ps;...}
603 Subcode|Emulation|Scope|Operation|Args|Meaning
604 1|xterm|emu|saveMode|MODE_AppCuKeys|Meaning
605 6|xterm|scr|saveMode|MODE_Origin|Meaning
606 7|xterm|scr|saveMode|MODE_Wrap|Meaning
607 1000|xterm|emu|saveMode|MODE_Mouse1000|Meaning
608 1001|xterm|emu|Ignored||Meaning
611 NUL.emus VT100 XTERM Linux KONSOLE
612 NUL.sect Command.Ignored
615 NUL is used as media- or time-fill. It is ignored by Konsole, but may
616 be sensible for devices which requiere a recognizable amount of time
617 to complete some commands (e.g. form feed on a non-buffering printing
620 Subcode|Emulation|Scope|Operation|Args|Meaning
621 N/A|VT100|emu|Ignored||see above
623 SOH.head Start Of Heading
624 SOH.emus VT100 XTERM Linux KONSOLE
625 SOH.sect Command.Ignored
630 Subcode|Emulation|Scope|Operation|Args|Meaning
631 N/A|VT100|emu|Ignored||see above
633 STX.head Start Of Text
634 STX.emus VT100 XTERM Linux KONSOLE
635 STX.sect Command.Ignored
640 Subcode|Emulation|Scope|Operation|Args|Meaning
641 N/A|VT100|emu|Ignored||see above
644 ETX.emus VT100 XTERM Linux KONSOLE
645 ETX.sect Command.Ignored
650 Subcode|Emulation|Scope|Operation|Args|Meaning
651 N/A|VT100|emu|Ignored||see above
653 EOT.head End Of Transmission
654 EOT.emus VT100 XTERM Linux KONSOLE
655 EOT.sect Command.Ignored
660 Subcode|Emulation|Scope|Operation|Args|Meaning
661 N/A|VT100|emu|Ignored||see above
665 ENQ.sect Command.Request
668 Transmit the ANSWERBACK message. The answerback message can be loaded
669 in SET-UP B (i.e. is a configurable string).
671 Subcode|Emulation|Scope|Operation|Args|Meaning
672 N/A|VT100|emu|reportAnswerBack||see above
675 ACK.emus VT100 XTERM Linux KONSOLE
676 ACK.sect Command.Ignored
681 Subcode|Emulation|Scope|Operation|Args|Meaning
682 N/A|VT100|emu|Ignored||see above
691 Subcode|Emulation|Scope|Operation|Args|Meaning
692 N/A|VT100|gui|Bell||see above
696 BS.sect Command.Cursor
699 Move cursor to the left one position, unless it is at the left
700 margin, in which case no action is taken.
702 Subcode|Emulation|Scope|Operation|Args|Meaning
703 N/A|VT100|scr|BackSpace||see above
705 HT.head Horizontal Tabulation
707 HT.sect Command.Cursor
710 Move cursor to the next tab stop, or to the right margin
711 if no further tabs are set.
713 Subcode|Emulation|Scope|Operation|Args|Meaning
714 N/A|VT100|scr|Tabulate||see above
718 LF.sect Command.Cursor
721 Causes either a line feed or new line operation (See \ref:LNM.)
723 Subcode|Emulation|Scope|Operation|Args|Meaning
724 N/A|VT100|emu|NewLine||see above
726 VT.head Vertical Tabulation
728 VT.sect Command.Cursor
733 Subcode|Emulation|Scope|Operation|Args|Meaning
734 N/A|VT100|emu|NewLine||see above
738 FF.sect Command.Cursor
743 Subcode|Emulation|Scope|Operation|Args|Meaning
744 N/A|VT100|emu|NewLine||see above
746 CR.head Carriage Return
748 CR.sect Command.Cursor
751 Move the cursor to the left margin of the current line.
753 Subcode|Emulation|Scope|Operation|Args|Meaning
754 N/A|VT100|scr|Return||see above
756 LS0.head Lock Shift Zero (Shift Out - SO)
758 LS0.sect Command.RenderMode
761 Invoke the G1 character set, as designated by the \ref:SCS control sequence.
763 Subcode|Emulation|Scope|Operation|Args|Meaning
764 N/A|VT100|scr|useCharset|1|see above
766 LS1.head Lock Shift One (Shift In - SI)
768 LS1.sect Command.RenderMode
771 Invoke the G0 character set, as selected by the <ESC>( sequence.
773 Subcode|Emulation|Scope|Operation|Args|Meaning
774 N/A|VT100|scr|useCharset|0|see above
776 DLE.head Data Link Escape
777 DLE.emus VT100 XTERM Linux KONSOLE
778 DLE.sect Command.Ignored
783 Subcode|Emulation|Scope|Operation|Args|Meaning
784 N/A|VT100|emu|Ignored||see above
786 DC1.head Device Control One
791 Causes terminal to resume transmission (XON).
793 Subcode|Emulation|Scope|Operation|Args|Meaning
794 N/A|VT100|emu|Ignored||see above
796 DC2.head Device Control Two
797 DC2.emus VT100 XTERM Linux KONSOLE
798 DC2.sect Command.Ignored
803 Subcode|Emulation|Scope|Operation|Args|Meaning
804 N/A|VT100|emu|Ignored||see above
806 DC3.head Device Control Three
807 DC3.emus VT100 XTERM Linux KONSOLE
808 DC3.sect Command.Ignored
811 Causes terminal to stop transmitting all codes except XOFF and XON (XOFF).
813 Subcode|Emulation|Scope|Operation|Args|Meaning
814 N/A|VT100|emu|Ignored||see above
816 DC4.head Device Control Four
817 DC4.emus VT100 XTERM Linux KONSOLE
818 DC4.sect Command.Ignored
823 Subcode|Emulation|Scope|Operation|Args|Meaning
824 N/A|VT100|emu|Ignored||see above
826 NAK.head Negative Acknowledge
827 NAK.emus VT100 XTERM Linux KONSOLE
828 NAK.sect Command.Ignored
833 Subcode|Emulation|Scope|Operation|Args|Meaning
834 N/A|VT100|emu|Ignored||see above
836 SYN.head Synchronous Idle
837 SYN.emus VT100 XTERM Linux KONSOLE
838 SYN.sect Command.Ignored
843 Subcode|Emulation|Scope|Operation|Args|Meaning
844 N/A|VT100|emu|Ignored||see above
846 ETB.head End Of Transmission Block
847 ETB.emus VT100 XTERM Linux KONSOLE
848 ETB.sect Command.Ignored
853 Subcode|Emulation|Scope|Operation|Args|Meaning
854 N/A|VT100|emu|Ignored||see above
861 If sent during a control sequence, the sequence id immediately
862 terminated and not executed. It also causes the error character
863 (checkerboard) to be displayed.
865 Subcode|Emulation|Scope|Operation|Args|Meaning
866 N/A|VT100|scr|ShowCharacter|2|see above
868 EM.head End Of Medium
869 EM.emus VT100 XTERM Linux KONSOLE
870 EM.sect Command.Ignored
875 Subcode|Emulation|Scope|Operation|Args|Meaning
876 N/A|VT100|emu|Ignored||see above
885 Subcode|Emulation|Scope|Operation|Args|Meaning
886 N/A|VT100|scr|ShowCharacter|2|see above
893 Introduces a control sequence.
895 Subcode|Emulation|Scope|Operation|Args|Meaning
896 N/A|VT100|emu|Ignored||see above
898 FS.head File Separator (IS4 - Information Separator Four)
899 FS.emus VT100 XTERM Linux KONSOLE
900 FS.sect Command.Ignored
905 Subcode|Emulation|Scope|Operation|Args|Meaning
906 N/A|VT100|emu|Ignored||see above
908 GS.head Group Separator (IS3 - Information Separator Three)
909 GS.emus VT100 XTERM Linux KONSOLE
910 GS.sect Command.Ignored
915 Subcode|Emulation|Scope|Operation|Args|Meaning
916 N/A|VT100|emu|Ignored||see above
918 RS.head Record Separator (IS2 - Information Separator Two)
919 RS.emus VT100 XTERM Linux KONSOLE
920 RS.sect Command.Ignored
925 Subcode|Emulation|Scope|Operation|Args|Meaning
926 N/A|VT100|emu|Ignored||see above
928 US.head Unit Separator (IS1 - Information Separator One)
929 US.emus VT100 XTERM Linux KONSOLE
930 US.sect Command.Ignored
935 Subcode|Emulation|Scope|Operation|Args|Meaning
936 N/A|VT100|emu|Ignored||see above
938 DEL.head Delete Character
940 DEL.sect Command.Ignored
945 CPR.head Cursor Position Report
948 CPR.code CSI|R|{Pn;Pn}
951 The CPR sequence reports the active position by means of the
952 parameters. This sequence has two parameter values, the first
953 specifying the line and the second specifying the column. The default
954 condition with no parameters present, or parameters of 0, is equivalent
955 to a cursor at home position.
957 The numbering of the lines depends upon the state of the Origin Mode
960 This control sequence is sent in reply to a device status report
961 (\ref:DSRREQ) command sent from the host.
963 CUB.head Cursor Backward
965 CUB.sect Command.Cursor Event
969 Moves the cursor to the left. The distance moved is
970 determined by the parameter. If the parameter missing, zero, or one,
971 the cursor is moved one position. The cursor cannot be moved past the
974 Subcode|Emulation|Scope|Operation|Args|Meaning
975 N/A|VT100|scr|cursorLeft|p|see above
979 CUD.sect Command.Cursor Event
983 Moves the cursor down a number of lines as specified in the parameter
984 without changing columns. The cursor cannot be moved past the bottom
987 Subcode|Emulation|Scope|Operation|Args|Meaning
988 N/A|VT100|scr|cursorDown|p|see above
990 CUF.head Cursor Foreward
992 CUF.sect Command.Cursor Event
996 Moves the cursor to the right a number of positions
997 specified in the parameter. The cursor cannot be moved past the right
1000 Subcode|Emulation|Scope|Operation|Args|Meaning
1001 N/A|VT100|scr|cursorRight|p|see above
1003 CUP.head Cursor Position
1005 CUP.sect Command.Cursor
1006 CUP.code CSI|H|{Pn;Pn}
1009 Moves the curor to the position specified by the
1010 parameters. The first parameter specifies the line, and the second
1011 specifies the column. A value of zero for either line or column moves
1012 the cursor to the first line or column in the display. The default
1013 string (<ESC>H) homes the cursor. In the VT100, this command behaves
1014 identically to it's format effector counterpart, \ref:HVP.
1016 The numbering of the lines depends upon the state of the Origin Mode
1019 Subcode|Emulation|Scope|Operation|Args|Meaning
1020 N/A|VT100|scr|setCursorYX|p,q|see above
1024 CUU.sect Command.Cursor Event
1028 Moves the cursor up without changing columns. The cursor is moved up a
1029 number of lines as indicated by the parameter. The cursor cannot be
1030 moved beyond the top margin.
1032 Subcode|Emulation|Scope|Operation|Args|Meaning
1033 N/A|VT100|scr|cursorUp|p|see above
1035 DA.head Device Attributes Request
1037 DA.sect Command.Request
1041 The host requests the VT100 to send a DA sequence to indentify
1042 itself. This is done by sending the DA sequence with no parameters,
1043 or with a parameter of zero.
1044 The device replies by (\ref:DECDA).
1046 Subcode|Emulation|Scope|Operation|Args|Meaning
1047 N/A|VT100|emu|reportTerminalType||see above
1049 DECDA.head Device Attributes Reply
1052 DECDA.code PRI|c|{1;Pn}
1054 Response to the \ref:DA request (VT100 to host) is generated
1055 by the VT100 as a DECDA control sequence with the numeric parameters as
1060 1|Processor Option (STP)
1061 2|Advanced Video Option (AVO)
1063 4|Graphics Option (GPO)
1067 DECALN.head Screen Alignment Display
1072 Causes the VT100 to fill it's screen with
1073 uppercase Es for screen focus and alignment.
1075 Subcode|Emulation|Scope|Operation|Args|Meaning
1076 N/A|VT100|scr|helpAlign||see above
1078 DECANM.head ANSI/VT52 Mode
1082 This is a private parameter to the \ref:SM and \ref:RM
1083 control sequences. The
1084 reset state causes only VT52 compatible escape sequences to be
1085 recognized. The set state causes only ANSI compatible escape sequences
1086 to be recognized. See the entries for \ref:MODES, \ref:SM, \ref:RM
1089 DECARM.head Auto Repeat Mode
1093 This is a private parameter to the \ref:SM and \ref:RM
1094 control sequences. The
1095 reset state causes no keyboard keys to auto-repeat, the set state
1096 causes most of them to. See \ref:MODES, \ref:SM and \ref:RM.
1098 DECAWM.head Autowrap Mode
1102 This is a private parameter to the \ref:SM and \ref:RM
1103 control sequences. The
1104 reset state prevents the cursor from moving when characters are
1105 received while at the right margin. The set state causes these
1106 characters to advance to the next line, causing a scroll up if required
1107 and permitted. See \ref:MODES, \ref:SM, and
1110 DECCKM.head Cursor Keys Mode
1114 This is a private parameter to the \ref:SM and \ref:RM
1115 control requences. This
1116 mode is only effective when the terminal is in keypad application mode
1117 (\ref:DECKPAM) and the ANSI/VT52 mode (\ref:DECANM)
1119 conditions, if this mode is reset, the cursor keys will send ANSI
1120 cursor control commands. If setm the cursor keys will send application
1121 function commands. See \ref:MODES, \ref:RM, and
1124 DECCOLM.head Column Mode
1128 This is a private parameter to the \ref:SM and \ref:RM
1129 control sequences. The
1130 reset state causes an 80 column screen to be used. The set state
1131 causes a 132 column screen to be used. See \ref:MODES,
1132 \ref:RM, and \ref:SM.
1134 DECDHLT.head Double Height Line (Top)
1136 DECDHLT.sect Command.NoImp
1139 Cause the line containing the cursor to become the top half of a
1140 double-height, double width line.
1141 If the line was single width single height, all
1142 characters to the right of the center of the screen will be lost. The
1143 cursor remains over the same character position, unless it would be to
1144 the right of the right margin, in which case it is moved to the right
1147 \ref:DECDHLB and \ref:DECDHLT
1148 should be used in pairs on adjacent lines with each line containing the
1149 same character string.
1151 Subcode|Emulation|Scope|Operation|Args|Meaning
1152 N/A|VT100|emu|Ignored||see above
1154 DECDHLB.head Double Height Line (Bottom)
1156 DECDHLB.sect Command.NoImp
1159 This sequence cause the line containing the cursor to become the
1160 bottom half of a double-height, double width line.
1161 If the line was single width single height, all
1162 characters to the right of the center of the screen will be lost. The
1163 cursor remains over the same character position, unless it would be to
1164 the right of the right margin, in which case it is moved to the right
1167 \ref:DECDHLB and \ref:DECDHLT
1168 should be used in pairs on adjacent lines with each line containing the
1169 same character string.
1171 Subcode|Emulation|Scope|Operation|Args|Meaning
1172 N/A|VT100|emu|Ignored||see above
1174 DECDWL.head Double Width Line
1176 DECDWL.sect Command.NoImp
1179 This causes the line that contains the cursor to become double-width
1180 single height. If the line was single width, all characters ro the
1181 right of the center of the screen will be lost. The cursor remains
1182 over the same character position, unless it would be to the right of
1183 the right margin, in which case it is moved to the right margin.
1185 Subcode|Emulation|Scope|Operation|Args|Meaning
1186 N/A|VT100|emu|Ignored||see above
1188 DECID.head Identify Terminal
1190 DECID.sect Command.Request
1193 This sequence causes the same response as the \ref:DA sequence. This
1194 sequence will not be supported in future models.
1196 Subcode|Emulation|Scope|Operation|Args|Meaning
1197 N/A|VT100|emu|reportTerminalType||see above
1199 DECINLM.head Interlace Mode
1203 This is a private parameter to the \ref:RM and \ref:SM
1204 control sequences. The
1205 reset state (non-interlace) causes the video processor to display 240
1206 scan lines per frame. The set state causes the video processor to
1207 display 480 scan lines per screen. See \ref:MODES,
1208 \ref:RM, and \ref:SM.
1210 DECKPAM.head Keypad Application Mode
1212 DECKPAM.sect Command.Mode Mode
1215 The auxiliary keypad keys will transmit control sequences.
1217 Subcode|Emulation|Scope|Operation|Args|Meaning
1218 N/A|VT100|emu|setMode|MODE_AppKeyPad|see above
1220 DECKPNM.head Keypad Numeric Mode
1222 DECKPNM.sect Mode Command.Mode
1225 The auxiliary keypad keys will send ASCII codes corresponding to the
1226 characters engraved on their keys.
1228 Subcode|Emulation|Scope|Operation|Args|Meaning
1229 N/A|VT100|emu|resetMode|MODE_AppKeyPad|see above
1231 DECLL.head Load LEDs
1233 DECLL.sect Command.NoImp
1234 DECLL.code CSI|q|{Ps;...}
1237 Load the four programmable LEDs on the keyboard according to the parameter(s).
1239 Subcode|Emulation|Scope|Operation|Args|Meaning
1240 0|VT100|emu|Ignore||Clear all LEDs
1241 1|VT100|emu|Ignore||Light LED 1
1242 2|VT100|emu|Ignore||Light LED 2
1243 3|VT100|emu|Ignore||Light LED 3
1244 4|VT100|emu|Ignore||Light LED 4
1246 DECOM.head Origin Mode
1250 This is a private parameter to \ref:SM and \ref:RM
1251 control sequences. The reset
1252 state causes the origin (or home position) to be the upper left
1253 character position of the screen. Line and column numbers are,
1254 therefore, independent of current margin settings. The cursor may be
1255 positioned outside the margins with a cursor position (\ref:CUP) or
1256 horizontal and vertical position (\ref:HVP) control.
1258 The set state causes the origin to be at the upper left character
1259 position within the current margins. Line and column numbers are,
1260 therefore, relative to the current margin settings. The cursor cannot
1261 be positioned outside of the margins.
1263 The cursor is moved to the new home position when this mode is set or
1264 reset. Lines and columns are numbered consecutively, with the origin
1265 being line 1, column 1.
1267 DECRC.head Restore Cursor
1269 DECRC.sect Command.CursMode
1272 This sequence causes the previously saved cursor position, graphic
1273 rendition, and character set to be restored.
1275 Subcode|Emulation|Scope|Operation|Args|Meaning
1276 N/A|VT100|scr|restoreCursor||see above
1278 DECREPTPARM.head Report Terminal Parameters
1279 DECREPTPARM.emus ECMA VT100
1280 DECREPTPARM.sect Reply
1281 DECREPTPARM.code CSI|x|{sol;par;nbits;xspd;rspd;cmul;flags}
1283 This sequence is generated by the VT100 to notify the host of the
1284 status of selected terminal parameters. The status sequence may be
1285 sent when requested by the host (via \ref:DECREQTPARM)
1286 or at the terminal's
1287 discretion. On power up or reset, the VT100 is inhibited from sending
1288 unsolicited reports.
1290 The meanings of the sequence parameters are:
1291 DECREPTPARM.table.sol
1293 1|This message is a report.
1294 2|This message is a report, and the terminal is only reporting on request.
1295 DECREPTPARM.table.par
1298 4|Parity set and odd
1299 5|Parity set and even
1300 DECREPTPARM.table.nbits
1302 1|8 bits per character
1303 2|7 bits per character
1304 DECREPTPARM.table.speed(xspd,rspd)
1305 speed|Meaning (xspd,rspd):4
1306 0|Speed set to 50 bps
1307 8|Speed set to 75 bps
1308 16|Speed set to 110 bps
1309 24|Speed set to 134.5 bps
1310 32|Speed set to 150 bps
1311 40|Speed set to 200 bps
1312 48|Speed set to 300 bps
1313 56|Speed set to 600 bps
1314 64|Speed set to 1200 bps
1315 72|Speed set to 1800 bps
1316 80|Speed set to 2000 bps
1317 88|Speed set to 2400 bps
1318 96|Speed set to 3600 bps
1319 104|Speed set to 4800 bps
1320 112|Speed set to 9600 bps
1321 120|Speed set tp 19200 bps
1322 DECREPTPARM.table.cmul
1324 1|The bit rate multiplier is 16
1325 DECREPTPARM.table.flags
1327 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.
1329 DECREQTPARM.head Request Terminal Parameters
1330 DECREQTPARM.emus ECMA VT100
1331 DECREQTPARM.sect Command.Request
1332 DECREQTPARM.code CSI|x|{Ps}
1334 The host sends this sequence to request the VT100 to send a
1336 sequence back. {Ps} can be either 0 or 1. If 0, the terminal will be
1337 allowed to send unsolicited \ref:DECREPTPARMs.
1338 These reports will be generated each time the terminal exits the SET-UP mode.
1339 If {Ps} is 1, then the terminal will only generate
1340 \ref:DECREPTPARMs in response to a request.
1341 DECREQTPARM.table.XPS
1342 Subcode|Emulation|Scope|Operation|Args|Meaning
1343 0|VT100|emu|reportTerminalParms|2|Meaning
1344 1|VT100|emu|reportTerminalParms|3|Meaning
1346 DECSC.head Save Cursor
1348 DECSC.sect Command.CursMode
1351 Causes the cursor position, graphic rendition, and character set to be
1352 saved. (See \ref:DECRC)
1354 Subcode|Emulation|Scope|Operation|Args|Meaning
1355 N/A|VT100|scr|saveCursor||see above
1357 DECSCLM.head Scrolling Mode
1361 This is a private parameter to \ref:RM and \ref:SM
1362 control sequences. The reset
1363 state causes scrolls to "jump" instantaneuously one line at a time.
1364 The set state causes the scrolls to be "smooth", and scrolls at a
1365 maximum rate of siz lines/sec. See \ref:MODES,
1366 \ref:RM, and \ref:SM.
1368 DECSCNM.head Screen Mode
1372 This is a private parameter to \ref:RM and \ref:SM
1373 control sequences. The reset
1374 state causes the screen to be black with white characters; the set
1375 state causes the screen to be white with black characters.
1376 See \ref:MODES, \ref:RM, and \ref:SM.
1378 DECSTBM.head Set Top and Bottom Margins
1380 DECSTBM.sect Command.CursMode
1381 DECSTBM.code CSI|r|{Pn;Pn}
1382 DECSTBM.dflt 1 ScreenLines
1384 This sequence sets the top and bottom margins to define the scrolling
1385 region. The first parameter is the line number of the first line in
1386 the scrolling region; the second parameter is the line number of the
1387 bottom line of the scrolling region.
1389 Default is the entire screen (no margins).
1390 The minimum region allowed is two lines, i.e., the top line
1391 must be less than the bottom. The cursor is placed in the home
1392 position (See \ref:DECOM).
1394 Subcode|Emulation|Scope|Operation|Args|Meaning
1395 N/A|VT100|scr|setMargins|p,q|see above
1397 DECSWL.head Single-width Line
1399 DECSWL.sect Command.NoImp
1402 This causes the line which contains the cursor to become single-width,
1403 single-height. The cursor remains on the same character position.
1404 This is the default condition for all new lines on the screen.
1406 Subcode|Emulation|Scope|Operation|Args|Meaning
1407 N/A|VT100|emu|Ignored||see above
1409 DECTST.head Invoke Confidence Test
1410 DECTST.emus ECMA VT100
1412 DECTST.code CSI|y|{2;Ps}
1414 Ps is the parameter indicating the test to be done. It is computed by
1415 taking the weight indicated for each desired test and adding them
1416 together. If Ps is 0, no test is performed but the VT100 is reset.
1418 Subcode|Emulation|Scope|Operation|Args|Meaning
1419 N/A|VT100|emu|Ignored||see above
1422 1|POST (ROM checksum, RAM NVR, keyboardm and AVO)
1423 2|Data Loop Back (Loopback connector required)
1424 3|EIA Modem Control Test (Loopback connector req.)
1425 4|Repeat Testing until failure
1427 DSRREQ.head Device Status Report
1428 DSRREQ.emus ECMA VT100
1429 DSRREQ.sect Command.Request
1430 DSRREQ.code CSI|n|{Ps}
1432 Requests status of the VT100 according to the following parameters.
1434 Subcode|Emulation|Scope|Operation|Args|Meaning
1435 5|VT100|emu|reportStatus||Report Status (using a \ref:DSRREP control sequence)
1436 6|VT100|emu|reportCursorPosition||Report Active Position (using a \ref:CPR sequence)
1438 DSRREP.head Device Status Report Reply
1439 DSRREP.emus ECMA VT100
1441 DSRREP.code CSI|n|{Status}
1443 Reports the general status of the VT100 according to the
1444 following parameters.
1446 DSRREP with a parameter of 0 or 3 is always sent as a response to a
1447 requesting \ref:DSRREQ with a parameter of 5.
1450 0|Ready, no faults detected
1451 3|Malfunction detected
1453 ED.head Erase in Display
1455 ED.sect Command.Erase
1459 This sequence erases some or all of the characters in the display
1460 according to the parameter. Any complete line erased by this sequence
1461 will return that line to single width mode.
1463 Subcode|Emulation|Scope|Operation|Args|Meaning
1464 0|VT100|scr|clearToEndOfScreen||Erase from the cursor to the end of the screen.
1465 1|VT100|scr|clearToBeginOfScreen||Erase from the start of the screen to the cursor.
1466 2|VT100|scr|clearEntireScreen||Erase the entire screen.
1468 EL.head Erase in Line
1470 EL.sect Command.Erase
1474 Erases some or all characters in the active line, according to the
1477 Subcode|Emulation|Scope|Operation|Args|Meaning
1478 0|VT100|scr|clearToEndOfLine||Erase from cursor to the end of the line.
1479 1|VT100|scr|clearToBeginOfLine||Erase from the start of the line to the cursor.
1480 2|VT100|scr|clearEntireLine||Erase the entire line.
1482 HTS.head Horizontal Tab Set
1484 HTS.sect Command.CursMode
1487 Set a tab stop at the current cursor position.
1489 Subcode|Emulation|Scope|Operation|Args|Meaning
1490 N/A|VT100|scr|changeTabStop|TRUE|see above
1492 HVP.head Horizontal and Vertical Position
1494 HVP.sect Command.Cursor
1495 HVP.code CSI|f|{Pn;Pn}
1498 Moves the cursor to the position specified by the parameters. The
1499 first parameter specifies the line, and the second specifies the
1500 column. A parameter of 0 or 1 causes the active position to move to
1501 the first line or column in the display. In the VT100, this control
1502 behaves identically with it's editor counterpart, \ref:CUP.
1503 The numbering of hte lines depends upon the state of the Origin Mode
1506 Subcode|Emulation|Scope|Operation|Args|Meaning
1507 N/A|VT100|scr|setCursorYX|p,q|see above
1511 IND.sect Command.Cursor
1514 This sequence causes the cursor to move downward one line without
1515 changing the column. If the cursor is at the bottom margin, a scroll
1518 Subcode|Emulation|Scope|Operation|Args|Meaning
1519 N/A|VT100|scr|index||see above
1521 LNM.head Line Feed/New Line Mode
1525 This is a parameter to \ref:SM and \ref:RM control sequences.
1527 causes the interpretation of the \ref:LF character to imply only vertical
1528 movement of the cursor and causes the RETURN key to send the single
1531 The set state causes the \ref:LF character to imply movement
1532 to the first position of the following line, and causes the RETURN key
1533 to send the code pair \ref:CR \ref:LF. This is the New Line option.
1535 This mode does not affect the Index (\ref:IND) or the next line
1536 (\ref:NEL) format effectors.
1540 NEL.sect Command.Cursor
1543 This causes the cursor to move to the first position of the next line
1544 down. If the cursor is on the bottom line, a scroll is performed.
1546 Subcode|Emulation|Scope|Operation|Args|Meaning
1547 N/A|VT100|scr|NextLine||see above
1549 PRINT.head Printable Characters
1550 PRINT.emus ECMA VT100
1551 PRINT.sect Command.Display
1552 PRINT.code PRN||{0x20..0x7e,0xa0..0xff}
1554 Printable characters are basically displayed. They my cause a line
1555 wrap when the cursor is already located at the end of the line.
1557 The VT100 has a unique way to do this by producing a line wrap before
1558 the character would be displayed on the next line. This feature allows
1559 to print at the rightmost column without producing an implicit line feed.
1561 Subcode|Emulation|Scope|Operation|Args|Meaning
1562 N/A|VT100|scr|ShowCharacter|p|see above
1564 RI.head Reverse Index
1566 RI.sect Command.Cursor
1569 Move the cursor up one line without changing columns. If the cursor is
1570 on the top line, a scroll down is performed.
1572 Subcode|Emulation|Scope|Operation|Args|Meaning
1573 N/A|VT100|scr|reverseIndex||see above
1575 RIS.head Reset to Initial State
1577 RIS.sect Command.Mode
1580 Resets the VT100 to the state is has upon power up. This also causes
1581 the execution of the POST and signal INT H to be asserted briefly.
1583 Subcode|Emulation|Scope|Operation|Args|Meaning
1584 N/A|VT100|emu|resetTerminal||see above
1588 RM.sect Command.SetMode
1589 RM.code CSI|l|{Ps;...}
1591 Resets one or more VT100 modes as specified by each selective parameter
1592 in the parameter string. Each mode to be reset is specified by a
1593 separate parameter. See \ref:MODES and \ref:SM.
1595 Subcode|Emulation|Scope|Operation|Args|Meaning
1596 4|xterm|scr|resetMode|MODE_Insert|Meaning
1597 20|VT100|emu|resetMode|MODE_NewLine|\ref:LNM
1599 SCS.head Select Character Set
1601 SCS.sect Command.RenderMode
1602 SCS.code SCS||{Pc;Cs}
1604 The appropriate D0 and G1 character sets are designated from one of the
1605 five possible sets. The G0 and G1 sets are invoked by the characters
1606 \ref:LS1 and \ref:LS0, respectively.
1608 The United Kingdom and ASCII sets conform to the "ISO international
1609 register of character sets to be used with escape sequences". The
1610 other sets are private character sets. Special graphics means that the
1611 graphic characters fpr the codes 0137 to 0176 are replaced with other
1612 characters. The specified character set will be used until another SCS
1615 Subcode|Emulation|Scope|Operation|Args|Meaning
1616 N/A|VT100|emu|setCharset|p-'(',q|see above
1618 Pc|Character Selection:4
1623 A|United Kingdom Set
1626 1|Alternate Character ROM (Standard Character Set)
1627 2|Alternate Character ROM (Special Graphics)
1629 SGR.head Select Graphic Rendition
1631 SGR.sect Command.RenderMode
1632 SGR.code CSI|m|{Ps;...}
1634 Invoke the graphic rendition specified by the parameter(s). All
1635 following characters transmitted to the VT100 are rendered according
1636 to the parameter(s) until the next occurrence of an SGR.
1638 All other parameter values are ignored.
1640 Without the Advanced Video Option, only one type of character attribute
1641 is possible, as determined by the cursor selection; in that case
1642 specifying either underscore or reverse will activate the currently
1645 Subcode|Emulation|Scope|Operation|Args|Meaning
1646 0|VT100|scr|setDefaultRendition||Attributes Off
1647 1|VT100|scr|setRendition|RE_BOLD|Bold or increased intensity
1648 4|VT100|scr|setRendition|RE_UNDERLINE|Underscore
1649 5|VT100|scr|setRendition|RE_BLINK|Blink
1650 7|VT100|scr|setRendition|RE_REVERSE|Negative (reverse) image
1651 10|konsole|emu|Ignored||Meaning
1652 11|konsole|emu|Ignored||Meaning
1653 12|konsole|emu|Ignored||Meaning
1654 22|VT100|scr|resetRendition|RE_BOLD|Meaning
1655 24|VT100|scr|resetRendition|RE_UNDERLINE|Meaning
1656 25|VT100|scr|resetRendition|RE_BLINK|Meaning
1657 27|VT100|scr|resetRendition|RE_REVERSE|Meaning
1658 30|xterm|scr|setForeColor|0|Meaning
1659 31|xterm|scr|setForeColor|1|Meaning
1660 32|xterm|scr|setForeColor|2|Meaning
1661 33|xterm|scr|setForeColor|3|Meaning
1662 34|xterm|scr|setForeColor|4|Meaning
1663 35|xterm|scr|setForeColor|5|Meaning
1664 36|xterm|scr|setForeColor|6|Meaning
1665 37|xterm|scr|setForeColor|7|Meaning
1666 39|xterm|scr|setForeColorToDefault||Meaning
1667 40|xterm|scr|setBackColor|0|Meaning
1668 41|xterm|scr|setBackColor|1|Meaning
1669 42|xterm|scr|setBackColor|2|Meaning
1670 43|xterm|scr|setBackColor|3|Meaning
1671 44|xterm|scr|setBackColor|4|Meaning
1672 45|xterm|scr|setBackColor|5|Meaning
1673 46|xterm|scr|setBackColor|6|Meaning
1674 47|xterm|scr|setBackColor|7|Meaning
1675 49|xterm|scr|setBackColorToDefault||Meaning
1676 90|xterm|scr|setForeColor|8|Meaning
1677 91|xterm|scr|setForeColor|9|Meaning
1678 92|xterm|scr|setForeColor|10|Meaning
1679 93|xterm|scr|setForeColor|11|Meaning
1680 94|xterm|scr|setForeColor|12|Meaning
1681 95|xterm|scr|setForeColor|13|Meaning
1682 96|xterm|scr|setForeColor|14|Meaning
1683 97|xterm|scr|setForeColor|15|Meaning
1684 100|xterm|scr|setBackColor|8|Meaning
1685 101|xterm|scr|setBackColor|9|Meaning
1686 102|xterm|scr|setBackColor|10|Meaning
1687 103|xterm|scr|setBackColor|11|Meaning
1688 104|xterm|scr|setBackColor|12|Meaning
1689 105|xterm|scr|setBackColor|13|Meaning
1690 106|xterm|scr|setBackColor|14|Meaning
1691 107|xterm|scr|setBackColor|15|Meaning
1695 SM.sect Command.SetMode
1696 SM.code CSI|h|{Ps;...}
1698 Causes one or more modes to be set within the VT100 as specified by
1699 each selective parameter string. Each mode to be set is specified by a
1700 seperate parameter. A mode is considered set until it is reset by a
1701 Reset Mode (\ref:RM) control sequence.
1702 See \ref:RM and \ref:MODES.
1704 Subcode|Emulation|Scope|Operation|Args|Meaning
1705 4|VT100|scr|setMode|MODE_Insert|Meaning
1706 20|VT100|emu|setMode|MODE_NewLine|\ref:LNM
1708 TBC.head Tabulation Clear
1710 TBC.sect Command.CursMode
1713 If the parameter is missing or 0, this will clear the tab stop at the
1714 cursor's position. If it is 3, this will clear all of the tab stops.
1715 Any other parameter is ignored.
1717 Subcode|Emulation|Scope|Operation|Args|Meaning
1718 0|VT100|scr|changeTabStop|FALSE|Meaning
1719 3|VT100|scr|clearTabStops||Meaning
1721 ##############################################################################
1725 ##############################################################################
1727 VT52ANSI.head VT52 ANSI Ansi Mode
1728 VT52ANSI.emus VT100 XTERM VT52 KONSOLE
1729 VT52ANSI.sect Command.Mode
1730 VT52ANSI.code ESC|<|
1732 This is an extension to the VT52 commands to embed the emulation into VT100.
1733 It allows to return back to VT100 emulation (ANSI mode).
1734 See also \ref:DECANM and \ref:SM.
1736 Subcode|Emulation|Scope|Operation|Args|Meaning
1737 N/A|VT52|emu|setMode|MODE_Ansi|see above
1739 VT52CUB.head VT52 Cursor Back
1740 VT52CUB.emus KONSOLE
1741 VT52CUB.sect Command.VT52
1746 Subcode|Emulation|Scope|Operation|Args|Meaning
1747 N/A|VT52|scr|cursorLeft|1|see above
1749 VT52CUD.head VT52 Cursor Down
1750 VT52CUD.emus KONSOLE
1751 VT52CUD.sect Command.VT52
1756 Subcode|Emulation|Scope|Operation|Args|Meaning
1757 N/A|VT52|scr|cursorDown|1|see above
1759 VT52CUF.head VT52 Cursor Forward
1760 VT52CUF.emus KONSOLE
1761 VT52CUF.sect Command.VT52
1766 Subcode|Emulation|Scope|Operation|Args|Meaning
1767 N/A|VT52|scr|cursorRight|1|see above
1769 VT52CUP.head VT52 Cursor Position
1770 VT52CUP.emus KONSOLE
1771 VT52CUP.sect Command.VT52
1772 VT52CUP.code VT5||{X;Y}
1774 Line and column numbers for direct cursor address are single
1775 character codes whose values are the desired number plus
1776 37 (in Octal). Line and column numbers start at 1.
1778 Subcode|Emulation|Scope|Operation|Args|Meaning
1779 N/A|VT52|scr|setCursorYX|p-31,q-31|see above
1781 VT52CUU.head VT52 Cursor Up
1782 VT52CUU.emus KONSOLE
1783 VT52CUU.sect Command.VT52
1788 Subcode|Emulation|Scope|Operation|Args|Meaning
1789 N/A|VT52|scr|cursorUp|1|see above
1791 VT52EDL.head VT52 Clear To End Of Line
1792 VT52EDL.emus KONSOLE
1793 VT52EDL.sect Command.VT52
1798 Subcode|Emulation|Scope|Operation|Args|Meaning
1799 N/A|VT52|scr|clearToEndOfLine||see above
1801 VT52EDS.head VT52 Clear To End Of Screen
1802 VT52EDS.emus KONSOLE
1803 VT52EDS.sect Command.VT52
1808 Subcode|Emulation|Scope|Operation|Args|Meaning
1809 N/A|VT52|scr|clearToEndOfScreen||see above
1811 VT52CUH.head VT52 Cursor Home
1812 VT52CUH.emus KONSOLE
1813 VT52CUH.sect Command.VT52
1818 Subcode|Emulation|Scope|Operation|Args|Meaning
1819 N/A|VT52|scr|setCursorYX|1,1|see above
1821 VT52KPAM.head VT52 Enter alternate keypad mode
1822 VT52KPAM.emus KONSOLE
1823 VT52KPAM.sect Command.VT52
1824 VT52KPAM.code ESC|=|
1828 Subcode|Emulation|Scope|Operation|Args|Meaning
1829 N/A|VT52|emu|setMode|MODE_AppKeyPad|see above
1831 VT52KPNM.head VT52 Exit alternate keypad mode
1832 VT52KPNM.emus KONSOLE
1833 VT52KPNM.sect Command.VT52
1834 VT52KPNM.code ESC|>|
1838 Subcode|Emulation|Scope|Operation|Args|Meaning
1839 N/A|VT52|emu|resetMode|MODE_AppKeyPad|see above
1841 VT52REP.head VT52 Report Terminal Type
1842 VT52REP.emus KONSOLE
1843 VT52REP.sect Command.VT52
1846 Response to ESC Z is ESC / Z.
1848 Subcode|Emulation|Scope|Operation|Args|Meaning
1849 N/A|VT52|emu|reportTerminalType||see above
1851 VT52RI.head VT52 Reverse Index
1853 VT52RI.sect Command.VT52
1858 Subcode|Emulation|Scope|Operation|Args|Meaning
1859 N/A|VT52|scr|reverseIndex||see above
1861 VT52SCSF.head VT52 Select special graphics character set
1862 VT52SCSF.emus KONSOLE
1863 VT52SCSF.sect Command.VT52
1864 VT52SCSF.code ESC|F|
1868 Subcode|Emulation|Scope|Operation|Args|Meaning
1869 N/A|VT52|scr|setAndUseCharset|0,'0'|see above
1871 VT52SCSG.head VT52 Select ASCII character set
1872 VT52SCSG.emus KONSOLE
1873 VT52SCSG.sect Command.VT52
1874 VT52SCSG.code ESC|G|
1878 Subcode|Emulation|Scope|Operation|Args|Meaning
1879 N/A|VT52|scr|setAndUseCharset|0,'B'|see above