From 2652544653a27044728a306643be609fe2bef59a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Hru=C5=A1ka?= Date: Thu, 7 Sep 2017 18:06:01 +0200 Subject: [PATCH] added docs --- ...l for ANSI Terminals (sixth revision).html | 463 + docs/VT100 escape codes.html | 238 + docs/bjh21_all-escapes.txt | 9690 +++++++++++++++++ docs/codepage437.txt | 256 + docs/espterm-hw-full.jpg | Bin 0 -> 518622 bytes docs/espterm-hw-small.jpg | Bin 0 -> 63634 bytes docs/espterm-xterm.html | 2257 ++++ docs/index.html | 73 + docs/joesmith1984-ansicode.txt | 779 ++ docs/shuford_terminal_vt100_codes_news.txt | 1216 +++ docs/vt100.codes.txt | 324 + 11 files changed, 15296 insertions(+) create mode 100644 docs/Locator Input Model for ANSI Terminals (sixth revision).html create mode 100644 docs/VT100 escape codes.html create mode 100644 docs/bjh21_all-escapes.txt create mode 100644 docs/codepage437.txt create mode 100644 docs/espterm-hw-full.jpg create mode 100644 docs/espterm-hw-small.jpg create mode 100644 docs/espterm-xterm.html create mode 100644 docs/index.html create mode 100644 docs/joesmith1984-ansicode.txt create mode 100644 docs/shuford_terminal_vt100_codes_news.txt create mode 100644 docs/vt100.codes.txt diff --git a/docs/Locator Input Model for ANSI Terminals (sixth revision).html b/docs/Locator Input Model for ANSI Terminals (sixth revision).html new file mode 100644 index 0000000..11e06ca --- /dev/null +++ b/docs/Locator Input Model for ANSI Terminals (sixth revision).html @@ -0,0 +1,463 @@ + + + +Locator Input Model for ANSI Terminals (sixth revision) + + + + + +

Locator Input Model for ANSI Terminals (sixth revision) +


File originally captured 3 Jan, 2011 +at http://web.eecs.utk.edu/~shuford/terminal/dec_vt_mouse.html +

Retrieved from archive and restored by Ondřej Hruška <ondra@ondrovo.com>, 2017 +


+

This information has been circulated to other terminal vendors +and people outside of Digital, but I'm not sure whether it has +been formally published (the DECterm manual includes some of it). +

I hope you find this helpful. +

- - Peter Sichel +

C&P VT Architecture +

Digital Equipment Corp +

_ _ _ _ _ _ _ + | | | | | | | | + |d|i|g|i|t|a|l| INTEROFFICE MEMORANDUM + |_|_|_|_|_|_|_| +

TO: Locator Support on DATE: 23 Jun 1989 +

Terminals Interest List FROM: Peter Sichel +

DEPT: Video Architecture +

DTN: 223-5162 +

LOC: PKO3-1/10C +

NET: VIDEO::SICHEL


+ +

Overview +

Locator Input Model +

Enabling Locator Reporting +

Locator Position Reporting +

Selecting Locator Events +

LOCATOR SUPPORT FOR GRAPHICS +

Locator Key Definition (DECLKD) +

DECLKD - DEC Locator Key Definition +

LOCATOR DEVICE SUPPORT +

Locator Device Status Report (DSR) +

Locator Controller Mode +

+


+ +

SUBJECT: Locator Input Model for ANSI Terminals (sixth revision) +

This memo defines support for locator input devices on ANSI text +and graphics terminals. The goal is to make terminals able to +support the same class of applications popular on PCs and Workstations. + This is not meant to imply terminals must be compatible with +workstations, some limitations are unavoidable. The intent is +to provide a minimal set of locator functions which make sense +for terminals. Comments are welcome. +

Overview +

The terminal is supplied with a locator port which can be used +to connect an optional mouse or tablet. When locator reporting +is enabled, a seperate input cursor appears, and the terminal +tracks the locator locally with no host intervention. Individual +locator events such as locator button transitions or movement +may be programmed to send locator reports to the host. +

Each locator report includes the specific event which initiated +the report, the current state of the locator keys, and the coordinates +of the input cursor at the time of the event. +

The locator is treated as a manual input device similar to a keyboard. + Locater events are queued in the keyboard input silo along with +keystrokes. +

LOCATOR INPUT MODEL +

Enabling Locator Reporting +

Locator reporting can be selectively enabled from the host using +a DEC private control sequence. When disabled (the power up default), +the locator cursor does not appear, and the locator buttons are +inactive. When enabled, the locator cursor is visible, and the +terminal tracks the locator locally with no host intervention. + Individual locator events such as locator button transitions +or movement may be programmed to send locator reports to the host. +

DECELR - DEC Enable Locator Reports +

CSI Ps ; Pu ' z +

2/7 7/10 +

Ps may assume the following values +

0 locator disabled (default) +

1 locator reports enabled +

2 one shot (allow one report, then disable) +

Pu specifies the coordinate units for locator reports +

0 (or omitted) default to character cells +

1 device physical pixels +

2 character cells +

One shot mode is provided for applications that desire simple +graphics input similar to Tektronix GIN mode (no unsolicited reports). + If parameter value 2 is selected, the next trigger event that +occurs will generate a single locator report. No further locator +reports will occur (the locator will be disabled), until another +DECELR sequence is received. +

The coordinate units for locator position reports may be selected +to either of two coordinate systems used by terminal software +at the lowest level. Physical pixels is the "least common +denominator", and is useful for computing sixel positions. +

Locator Position Reporting +

When a selected trigger event occurs such as a button press or +release, the terminal transmits a locator position report as follows. +

DECLRP - DEC Locator Report +

CSI Pe ; Pb ; Pr ; Pc ; Pp & w +

2/6 7/7 +

Pe is the event code +

Pb is the button code +

Pr is the row coordinate +

Pc is the column coordinate +

Pp is the third coordinate (page number) +

Pe, the event code indicates what event caused this +report to be generated. The following event codes are defined: +

0 - request, the terminal received an explicit request +

for a locator report, but the locator is unavailable +

1 - request, the terminal received an explicit +

request for a locator report +

2 - left button down +

3 - left button up +

4 - middle button down +

5 - middle button up +

6 - right button down +

7 - right button up +

8 - fourth button down +

9 - fourth button up +

10 - locator outside filter rectangle +

Pb is the button code, ASCII decimal 0-15 indicating which buttons +are down if any. The state of the four buttons on the locator +correspond to the low four bits of the decimal value, "1" +means button depressed +

0 - no buttons down +

1 - right +

2 - middle +

4 - left +

8 - fourth +

Pr is the row coordinate of the locator position in the page, +encoded as an ASCII decimal value. If Pr is omitted, the locator +position is undefined (outside the terminal window for example). +

Pc is the column coordinate of the locator position in the page, +encoded as an ASCII decimal value. If Pc is omitted, the locator +position is undefined (outside the terminal window for example). +

Pp is the page coordinate of the locator position encoded as an +ASCII decimal value. The page coordinate may be omitted if the +locator is on page one (the default). +

Each locator report includes both the specific transition which +caused this event, and the current button state. This allows +software to determine what event just occured and which buttons +are down without keeping track of previous events or button state. + In a multiprocess shared locator environment, an application +may not know the previous button state. This dual reporting also +allows applications to recover from lost locator reports. +

Each locator event generates a single report. In the rare situation +where two events occur simultaneously (within a single sampling +period), the terminal will report this as two separate events. +The order of reporting shall be by increasing event code number +(left button first). +

Locator events are queued in the keyboard input silo just like +keystrokes. Each locator event occupies one position in the silo +(the keyboard silo currently must have at least 9 positions). + If the input silo becomes full, the locator and keyboard are +locked until there is again room in the silo. The sequential +order of keystroke and locator events is strictly maintained. +

It is the responsibility of the host to accept data fast enough +to avoid locking the locator unintentionally. The limited buffering +inside the terminal gives the host a little more time to process +locator events smoothly. +

When the keyboard is locked, the "wait" indicator on +the keyboard turns on. The keyboard is automatically locked any +time the keyboard input silo is full. The keyboard can be locked +explicitly using the keyboard action mode (KAM) control function. +

When the locator is locked, the terminal continues to track the +locator, but the input cursor changes shape to appear as a wristwatch +(or other shape indicating to wait). The wristwatch cursor indicates +that locator button transitions will be ignored, but allows the +user to continue positioning in anticipation of the locator being +unlocked. The locator is automatically locked any time the input +silo is full. +

Locator-ahead, analogous to keyboard type-ahead is supported by +having each report include the locator position at the time of +the event, and maintaining the sequential order of keystroke and +locator events. +

A final implication of using the keyboard silo to buffer text +locator events is that locator and keyboard input should be associated +with the same session at all times. The session to receive these +events is sometimes called the "active session" or "input +focus". In a multi-session windowing environment, the input +cursor is allowed to roam freely over the entire screen in response +to locator movement. The input cursor is never occluded when +locator reporting is enabled in one or more sessions. Each session +enables locator reporting independently. The following cases +describe the locator interaction with session viewports and scroll +regions. +

1. The input cursor is within the active session's viewport. +Pressing a button on the locator sends a locator report when enabled. +

2. The input cursor is inside the active session's viewport, +but outside the range of defined coordinates for that session. +Pressing a button on the locator will generate a report with omitted +coordinates (position undefined). An example would be when the +input cursor is outside the active scrolling region, and the origin +mode has been set to relative. To use the locator to adjust scroll +margins, the origin mode must be absolute. +

3. The input cursor is not contained in any viewport. Pressing +a button on the locator will have no effect. To support "pop +up" menus anywhere on the screen, the entire screen must +be a viewport for at least one session. +

4. The input cursor is within a viewport of a session which is +not the active session. Pressing a button on the locator will +normally make the session containing the input cursor the active +session (possibly changing the occlusion order of viewports, and +the shape of the locator). This case is the responsibility of +the "window manager" which is free to define its own +user interface. Two recommendations are: (1) No locator report +should be sent to the previous active session, since the locator +is not in its viewport; and (2) If locator reporting is enabled +in the new session, a locator report should not be transmitted +to avoid application side affects when selecting another window. +

Requesting A Locator Position Report +

The host may explicitly request a locator position report any +time locator reporting is enabled (DECELR). Upon receiving such +a request, the terminal will immediately send a single locator +report (DECLRP) with event code 1 indicating the current locator +position. +

If the session receiving the request is the active session, but +the locator is not within the defined coordinate range for that +session, the terminal will respond with omitted coordinates (locator +position undefined). +

If the session receiving the request is not currently active (the +locator is being used in another session), the report will specify +event code 0 (locator unavailable). Locator state from the active +session should not be made available to inactive sessions. +

If the locator is disabled (DECELR), the terminal should still +respond with event code 0 (to avoid timing out the application). +

DECRQLP - DEC Request Locator Position +

CSI Ps ' | +

2/7 7/12 +

Ps: +

0 (or omitted) default to 1 +

1 transmit a single DECLRP locator report all +others ignored +

Filter Rectangles +

Filter Rectangles add filtered movement events to the list of +locator transitions that can generate reports. +

DECEFR - DEC Enable Filter Rectangle +

CSI Pt ; Pl ; Pb ; Pr ' w +

2/7 7/7 +

Pt - Top boundary of filter rectangle +

Pl - Left boundary of filter rectangle +

Pb - Bottom boundary of filter rectangle +

Pr - Right boundary of filter rectangle +

The DECEFR control sequence defines the coordinates of a filter +rectangle, and activates it. Anytime the locator is detected +to be outside a filter rectangle, an outside rectangle event is +generated and the rectangle is disabled. Filter rectangles are +always treated as "one-shot" events. Defining a new +rectangle re-activates it. +

Applications can re-define the rectangle at any time even if its +already active. If a rectangle which does not contain the locator +is specified, the terminal will generate an outside rectangle +report immediately and deactivate it. +

Pt, Pl, Pb, and Pr are in coordinates units specified by the last +DECELR sequence. The filter rectangle includes the boundaries +(similar to other rectangular area operations). The origin is +coordinate pair 1:1 in the upper left corner. If any parameters +are omitted, they are defaulted to the current locator position. +Sending DECEFR with no parameters will cause the application to +be notified for any locator movement ("unfiltered movement +event"). +

DECELR always cancels any previous filter rectangle definition. +This gaurantees that when an application enables locator reports, +there will never be an outstanding filter rectangle. +

If a filter rectangle lies on the edge of the defined coordinate +space for the active session, and the locator crosses that edge, +the rectangle may be triggered to send a report with omitted coordinates +(locator position undefined). +

If the active session receives a filter rectangle with explicit +coordinates while the locator is outside the defined coordinate +space, the rectangle will be triggered to send a report with omitted +coordinates. +

If the active session receives a filter rectangle with omitted +coordinates (that is, use the current position) while the locator +is outside the defined coordinate space (position undefined), +the rectangle will be triggered the next time the locator is within +the defined coordinate space. +

If a session which is not the active session receives a filter +rectangle with explicit coordinates, it should trigger immediately +with position undefined. If a session which is not the active +session receives a rectangle with omitted coordinates, it should +trigger the next time the locator is within the defined coordinate +space for that session, which cannot happen until the session +becomes active. +

Selecting Locator Events +

The locator events which are allowed to generate unsolicited reports +may be individually selected using the Select Locator Events control. + The locator is capable of reporting both up and down transitions +for those situations where the exact sequence of button activiations +is significant. This control allows application software to select +which events it wants reported. +

DECSLE - Select Locator Events +

CSI P...P ' { +

2/7 7/11 +

P...P is one or more selective parameters which may +assume the following values: +

0 respond only to explicit host requests +

(default, also cancels any pending filter rectangle) +

1 report button down transitions +

2 do not report button down transitions +

3 report button up transitions +

4 do not report button up transitions +

LOCATOR SUPPORT FOR +GRAPHICS +

The locator can be used in REGIS, and in Tektronix GIN mode during +Tektronix 401x emulation. +

REGIS One-shot Graphics Input Mode is provided for backward compatibility +with the VT240. When an application requests graphics input, +a cross hair cursor appears which may be positioned using either +the arrow keys (as on the VT240), or a locator device. Pressing +any non-arrow key on the keyboard which is not dead or a button +on the locator will cause the following actions: +

1. The ASCII code or codes for the non-arrow key that was pressed +is sent to the host. Each locator button can be programmed to +send a sequence of 0 to 6 characters. This allows the locator +to be programmed to work with existing applications (see DECLKD +below). +

2. The coordinates of the input cursor at the time that the non-arrow +key was depressed are sent to the host, expressed as an absolute +bracketed extent in user coordinates. +

3. The graphics input cursor disappears from the screen and the +terminal exits graphics input mode. +

While the terminal is in graphics input mode, no further data +from the application is processed until the locator input is complete +and a report is generated. +

The mouse and arrow keys may be intermixed freely in REGIS One-Shot +Graphics Input Mode. Since the tablet is an absolute positioning +device, use of the arrow keys in combination with the tablet would +cause inconsistent and confusing behavior. The arrow keys are +disabled for input cursor positioning when the tablet is in proximity +because the tablet establishes a unique screen position. +

Locator Key Definition +(DECLKD) +

The DECLKD device control string down line loads one or more definitions +for use by the Locator device during REGIS One-shot Graphics Input. + These definitions are called Locator Key Definitions (LKDs). +

DECLKD is intended for older applications that use ReGIS one-shot +input mode with keystroke commands like "A", "B", +"C", etc. These commands can be re-bound to buttons +on the mouse by sending DECLKD (possibly before running the application). +

There are six bytes available to each of the locator keys (upto +four). A power-up restart or RIS will cause the LKDs to be set +to their default value. LKDs are not affected by DECSTR. +

Default Locator Key Definitions +

No button transition ESC [ 240 ~ +

Ky1 down transition ESC [ 241 ~ +

Ky2 down transition ESC [ 243 ~ +

Ky3 down transition ESC [ 245 ~ +

Ky4 down transition ESC [ 247 ~ +

Where: +

Ky1 = B1 = Left = barrel button +

Ky2 = B2 = Middle = tip button +

Ky3 = B3 = Right +

Ky4 = B4 (tablet cursor only) +

Up Transitions are ignored by default. +

DECLKD - DEC Locator Key Definition +

DCS Pc $ w Ky1 / Std1 / Stu1 ; ... ; Kyn / Stnd +/ Stnu ST +

2/4 7/7 +

Where: +

Pc - Clear parameter +

0 (or omitted) Clear all LKDs before loading new values. All button +definition strings are empty (not the default). +

1 Clear old definition only for keys that are redefined. Kyn / +Stnd / Stnu - Key selection code n, slash delimeter, and string +parameter n for down and up key transitions. +

Kyn is a single ASCII digit, and Std/Stu is a series of ASCII +hex pairs. If Std or Stu is omitted, the corresponding button +string will be empty. Key definition strings are delimited with +a semicolon (";"). +

Graphics and ANSI Locator Input +

Support for graphics input in REGIS is extended by allowing ANSI +locator input to operate normally regardless of whether the host +output stream is being interpreted as ANSI or REGIS. If ANSI +locator reporting is enabled, keystrokes and locator position +reports may be generated without being solicited from the host. +Characters received from the host are executed instead of buffered, +so graphics output and graphics input may occur simultaneously. +

If one-shot graphics input mode is entered (REGIS report position +interactive) while ANSI locator reporting is enabled, the locator +cursor will change to a cross-hair. Pressing a non-arrow key +on the keyboard will send the character for that key followed +by the REGIS user coordinates as a bracketed extent. If a locator +button had been pressed instead, the characters for the locator +button (if any) would be sent followed by the REGIS position report, +and finally the ANSI locator report (DECLRP) if enabled. Upon +sending the REGIS position report, the terminal exits one-shot +input mode, and the input cursor returns to its previous state. +

The ANSI locator report should still be sent in the above situation +(if enabled) to keep the two modes independent. This allows filter +rectangles to continue operating, and also keeps the ANSI state +(last DECLRP seen) consistent with the last button transition. +

The order of reports is chosen to allow a subroutine to send +R(P(I)) and read the REGIS response that follows without regard +to whether ANSI locator reports are enabled. +

Since the ANSI locator report is in the form of a control sequence, +it should not inferfere with REGIS reports. No special procedure +is used to indicate REGIS data from the terminal. This is backward +compatible with the VT240 since ANSI locator reports can only +occur if ANSI locator reporting is enabled. +

The suspension of graphics output during REGIS one-shot graphics +input remains the same. This is necessary to support rubber-band +cursors. Rubber-band cursors use the REGIS output position as +one reference point, and the locator input position as the other. +Rubber-band cursors are specified as an option on the REGIS report +position interactive command. +

LOCATOR DEVICE SUPPORT +

Locator support is currently planned as an extension to the level +3 character cell architecture. The primary device attributes +response will report the locator extension as parameter value +15 (locator port), and 29 (text locator). +

Host software may request a Device Status Report (DSR) to determine +whether a locator is available. Upon receiving the appropriate +DSR request, the terminal will respond to indicate the locator +is ready if a locator device is plugged in, and has transmitted +a successful self test message. +

Locator Device +Status Report (DSR) +

Host request locator device status CSI ? 55 n +

No locator CSI ? 53 n +

Locator ready CSI ? 50 n +

Locator busy CSI ? 58 n +

The locator busy response can occur when an alternate session +has selected locator controller mode (see below). +

Locator Controller Mode +

Locator Controller Mode allows the host to communicate directly +with the locator device without terminal intervention (similar +to printer controller mode). When locator controller mode is +set, all data received at the host port is transferred directly +to the locator port without interpretation by the display terminal. +

The only exceptions are the communications control characters +XON/XOFF (if enabled), and the control sequence to disabled locator +controller mode. All characters received at locator port are +transferred to the host port without interpretation. The host +assumes full responsibility for the locator device. +

Locator controller mode is desirable for two reasons: +

1. It allows the host to explicitly initialize or configure locator +devices. A foriegn locator device might not wake up in DEC format +for example. +

2. It allows the locator port to be used for other auxilliary +input devices. A bar code reader could be interfaced to the locator +port for example, allowing the terminal to support a bar code +reader without pre-empting the printer port. +

Turn off locator controller mode (MC) CSI 6 i +

Turn on locator controller mode (MC) CSI 7 i +

[End of memo] + + + diff --git a/docs/VT100 escape codes.html b/docs/VT100 escape codes.html new file mode 100644 index 0000000..11407b1 --- /dev/null +++ b/docs/VT100 escape codes.html @@ -0,0 +1,238 @@ + + + + + VT100 escape codes +

VT100 escape codes

+ +

This document describes how to control a VT100 terminal. The + entries are of the form "name, description, escape code".

+ +

The name isn't important, and the description is just to + help you find what you're looking for. What you have to do is + send the "escape code" to the screen. These codes are often + several characters long, but they all begin with ^[. + This isn't the two characters ^ and [, but + rather a representation of the ASCII code ESC (which is why + these are called escape codes).

+ +

ESC has the decimal value 27 and should be sent before the rest of the code, which is simply an ASCII string.

+ +

As an example of how to use this information, here's how + to clear the screen in C, using the VT100 escape codes:

+ +
    #define ASCII_ESC 27
+    printf( "%c[2J", ASCII_ESC );
+
+   or
+
+    puts( "\033[2J" );
+
+
+
+
Name                  Description                            Esc Code
+
+
+
setnl LMN             Set new line mode                      ^[[20h
+setappl DECCKM        Set cursor key to application          ^[[?1h
+setansi DECANM        Set ANSI (versus VT52)                 none
+setcol DECCOLM        Set number of columns to 132           ^[[?3h
+setsmooth DECSCLM     Set smooth scrolling                   ^[[?4h
+setrevscrn DECSCNM    Set reverse video on screen            ^[[?5h
+setorgrel DECOM       Set origin to relative                 ^[[?6h
+setwrap DECAWM        Set auto-wrap mode                     ^[[?7h
+setrep DECARM         Set auto-repeat mode                   ^[[?8h
+setinter DECINLM      Set interlacing mode                   ^[[?9h
+
+setlf LMN             Set line feed mode                     ^[[20l
+setcursor DECCKM      Set cursor key to cursor               ^[[?1l
+setvt52 DECANM        Set VT52 (versus ANSI)                 ^[[?2l
+resetcol DECCOLM      Set number of columns to 80            ^[[?3l
+setjump DECSCLM       Set jump scrolling                     ^[[?4l
+setnormscrn DECSCNM   Set normal video on screen             ^[[?5l
+setorgabs DECOM       Set origin to absolute                 ^[[?6l
+resetwrap DECAWM      Reset auto-wrap mode                   ^[[?7l
+resetrep DECARM       Reset auto-repeat mode                 ^[[?8l
+resetinter DECINLM    Reset interlacing mode                 ^[[?9l
+
+altkeypad DECKPAM     Set alternate keypad mode              ^[=
+numkeypad DECKPNM     Set numeric keypad mode                ^[>
+
+setukg0               Set United Kingdom G0 character set    ^[(A
+setukg1               Set United Kingdom G1 character set    ^[)A
+setusg0               Set United States G0 character set     ^[(B
+setusg1               Set United States G1 character set     ^[)B
+setspecg0             Set G0 special chars. & line set       ^[(0
+setspecg1             Set G1 special chars. & line set       ^[)0
+setaltg0              Set G0 alternate character ROM         ^[(1
+setaltg1              Set G1 alternate character ROM         ^[)1
+setaltspecg0          Set G0 alt char ROM and spec. graphics ^[(2
+setaltspecg1          Set G1 alt char ROM and spec. graphics ^[)2
+
+setss2 SS2            Set single shift 2                     ^[N
+setss3 SS3            Set single shift 3                     ^[O
+
+modesoff SGR0         Turn off character attributes          ^[[m
+modesoff SGR0         Turn off character attributes          ^[[0m
+bold SGR1             Turn bold mode on                      ^[[1m
+lowint SGR2           Turn low intensity mode on             ^[[2m
+underline SGR4        Turn underline mode on                 ^[[4m
+blink SGR5            Turn blinking mode on                  ^[[5m
+reverse SGR7          Turn reverse video on                  ^[[7m
+invisible SGR8        Turn invisible text mode on            ^[[8m
+
+setwin DECSTBM        Set top and bottom line#s of a window  ^[[<v>;<v>r
+
+cursorup(n) CUU       Move cursor up n lines                 ^[[<n>A
+cursordn(n) CUD       Move cursor down n lines               ^[[<n>B
+cursorrt(n) CUF       Move cursor right n lines              ^[[<n>C
+cursorlf(n) CUB       Move cursor left n lines               ^[[<n>D
+cursorhome            Move cursor to upper left corner       ^[[H
+cursorhome            Move cursor to upper left corner       ^[[;H
+cursorpos(v,h) CUP    Move cursor to screen location v,h     ^[[<v>;<h>H
+hvhome                Move cursor to upper left corner       ^[[f
+hvhome                Move cursor to upper left corner       ^[[;f
+hvpos(v,h) CUP        Move cursor to screen location v,h     ^[[<v>;<h>f
+index IND             Move/scroll window up one line         ^[D
+revindex RI           Move/scroll window down one line       ^[M
+nextline NEL          Move to next line                      ^[E
+savecursor DECSC      Save cursor position and attributes    ^[7
+restorecursor DECSC   Restore cursor position and attributes ^[8
+
+tabset HTS            Set a tab at the current column        ^[H
+tabclr TBC            Clear a tab at the current column      ^[[g
+tabclr TBC            Clear a tab at the current column      ^[[0g
+tabclrall TBC         Clear all tabs                         ^[[3g
+
+dhtop DECDHL          Double-height letters, top half        ^[#3
+dhbot DECDHL          Double-height letters, bottom half     ^[#4
+swsh DECSWL           Single width, single height letters    ^[#5
+dwsh DECDWL           Double width, single height letters    ^[#6
+
+cleareol EL0          Clear line from cursor right           ^[[K
+cleareol EL0          Clear line from cursor right           ^[[0K
+clearbol EL1          Clear line from cursor left            ^[[1K
+clearline EL2         Clear entire line                      ^[[2K
+
+cleareos ED0          Clear screen from cursor down          ^[[J
+cleareos ED0          Clear screen from cursor down          ^[[0J
+clearbos ED1          Clear screen from cursor up            ^[[1J
+clearscreen ED2       Clear entire screen                    ^[[2J
+
+devstat DSR           Device status report                   ^[5n
+termok DSR               Response: terminal is OK            ^[0n
+termnok DSR              Response: terminal is not OK        ^[3n
+
+getcursor DSR         Get cursor position                    ^[6n
+cursorpos CPR            Response: cursor is at v,h          ^[<v>;<h>R
+
+ident DA              Identify what terminal type            ^[[c
+ident DA              Identify what terminal type (another)  ^[[0c
+gettype DA               Response: terminal type code n      ^[[?1;<n>0c
+
+reset RIS             Reset terminal to initial state        ^[c
+
+align DECALN          Screen alignment display               ^[#8
+testpu DECTST         Confidence power up test               ^[[2;1y
+testlb DECTST         Confidence loopback test               ^[[2;2y
+testpurep DECTST      Repeat power up test                   ^[[2;9y
+testlbrep DECTST      Repeat loopback test                   ^[[2;10y
+
+ledsoff DECLL0        Turn off all four leds                 ^[[0q
+led1 DECLL1           Turn on LED #1                         ^[[1q
+led2 DECLL2           Turn on LED #2                         ^[[2q
+led3 DECLL3           Turn on LED #3                         ^[[3q
+led4 DECLL4           Turn on LED #4                         ^[[4q
+
+#
+#  All codes below are for use in VT52 compatibility mode.
+#
+
+setansi               Enter/exit ANSI mode (VT52)            ^[<
+
+altkeypad             Enter alternate keypad mode            ^[=
+numkeypad             Exit alternate keypad mode             ^[>
+
+setgr                 Use special graphics character set     ^[F
+resetgr               Use normal US/UK character set         ^[G
+
+cursorup              Move cursor up one line                ^[A
+cursordn              Move cursor down one line              ^[B
+cursorrt              Move cursor right one char             ^[C
+cursorlf              Move cursor left one char              ^[D
+cursorhome            Move cursor to upper left corner       ^[H
+cursorpos(v,h)        Move cursor to v,h location            ^[<v><h>
+revindex              Generate a reverse line-feed           ^[I
+
+cleareol              Erase to end of current line           ^[K
+cleareos              Erase to end of screen                 ^[J
+
+ident                 Identify what the terminal is          ^[Z
+identresp             Correct response to ident              ^[/Z
+
+<hr>
+
+#
+# VT100 Special Key Codes
+#
+# These are sent from the terminal back to the computer when the
+# particular key is pressed.  Note that the numeric keypad keys
+# send different codes in numeric mode than in alternate mode.
+# See escape codes above to change keypad mode.
+#
+
+# Function Keys:
+
+PF1     ^[OP
+PF2     ^[OQ
+PF3     ^[OR
+PF4     ^[OS
+
+
+# Arrow Keys:
+        Reset    Set
+        -----    ---
+up      ^[A ^[OA
+down        ^[B ^[OB
+right       ^[C ^[OC
+left        ^[D ^[OD
+
+
+# Numeric Keypad Keys:
+
+        Keypad Mode
+        -----------------
+Keypad Key  Numeric Alternate
+----------  ------- ---------
+0       0   ^[Op
+1       1   ^[Oq
+2       2   ^[Or
+3       3   ^[Os
+4       4   ^[Ot
+5       5   ^[Ou
+6       6   ^[Ov
+7       7   ^[Ow
+8       8   ^[Ox
+9       9   ^[Oy
+- (minus)   -   ^[Om
+, (comma)   ,   ^[Ol
+. (period)  .   ^[On
+ENTER       ^M  ^[OM
+
+
+ + + + + + + + + + + + + +
C27, 033, 0x1b
English27 decimal, 33 octal, 1b hexadecimal
+ + \ No newline at end of file diff --git a/docs/bjh21_all-escapes.txt b/docs/bjh21_all-escapes.txt new file mode 100644 index 0000000..2d2b29e --- /dev/null +++ b/docs/bjh21_all-escapes.txt @@ -0,0 +1,9690 @@ +# $Id: all-escapes.txt,v 1.32 2005/09/14 12:00:06 ben Exp $ + +# This file is hoped to document all the escape sequences supported by +# terminals that are vaguely compliant with ECMA-48 and friends. + +# Changes should be submitted to + +# It includes everything from: +# 1999-05-16 +# +# 1993-02-01 +# 1998-09-18 +# +# 1999-05-16 +# 1999-10-12 +# +# 1999-11-13 +# ECMA-48 5th Ed. control functions (section 8.3, annex F) +# Linux console_codes(4) +# SunOS 5.7 wscons(7D) +# UnixWare 7 display(7) +# IRIX 6.5.5 xwsh(1G) +# VT220 Reference manual (, EK-VT220-RM) +# 1999-11-24 +# 1999-12-01 +# (wy75) +# 1999-07-19 +# +# 1999-09-13 +# 1999-04-19 +# 2004-09-27 +# 2004-09-27 +# 1999-04-19 +# 2001-05-10 +# iBCS2 description in ESR's termtypes.master version 10.2.7 +# Reflection Terminal Reference Manual for ADDS, ANSI, DG, VT, WYSE, and +# Unisys Hosts; Version 7.0; September 1998; published by WRQ Inc. +# DEC Terminals and Printers Handbook 1985 EB 26291-56 (Appendices C, E, and G) +# OpenServer 5.0.6 screen(HW) +# X Consortium Compound Text Encoding Version 1.1 + +------------------------------------------------------------------------------- +Section: *** C0 controls *** +------------------------------------------------------------------------------- +Sequence: NUL (^@) +Mnemonic: NUL +Description: Null + +NUL is used for media-fill or time-fill. NUL characters may be +inserted into, or removed from, a data stream without affecting the +information content of that stream, but such action may affect the +information layout and/or the control of equipment. + +Source: ECMA-48 5th Ed. 8.3.98 +Status: standard +------------------------------------------------------------------------------- +Sequence: SOH (^A) +Mnemonic: SOH +Description: Start of heading + +SOH is used to indicate the beginning of a heading. + +The use of SOH is defined in ISO 1745. + +Source: ECMA-48 5th Ed. 8.3.127 +Status: standard + +Also used as a prefix for "UnixWindows" commands. + +Source: +Status: ??? private +------------------------------------------------------------------------------- +Sequence: STX (^B) +Mnemonic: STX +Description: Start of text + +STX is used to indicate the beginning of a text and the end of a +heading. + +The use of STX is defined in ISO 1745. + +Source: ECMA-48 5th Ed. 8.3.146 +Status: standard +------------------------------------------------------------------------------- +Sequence: ETX (^C) +Mnemonic: ETX +Description: End of text + +ETX is used to indicate the end of a text. + +The use of ETX is defined in ISO 1745. + +Source: ECMA-48 5th Ed. 8.3.50 +Status: standard +------------------------------------------------------------------------------- +Sequence: EOT (^D) +Mnemonic: EOT +Description: End of transmission + +EOT is used to indicate the conclusion of the transmission of one or +more texts. + +The use of EOT is defined in ISO 1745. + +Source: ECMA-48 5th Ed. 8.3.45 +Status: standard +------------------------------------------------------------------------------- +Sequence: ENQ (^E) +Mnemonic: ENQ +Description: Enquiry + +ENQ is transmitted by a sender as a request for a response from a +receiver. + +The use of ENQ is defined in ISO 1745. + +Source: ECMA-48 5th Ed. 8.3.44 +Status: standard +------------------------------------------------------------------------------- +Sequence: ACK (^F) +Mnemonic: ACK +Description: Acknowledge + +ACK is transmitted by a receiver as an affirmative response to the sender. + +The use of ACK is defined in ISO 1745. + +Source: ECMA-48 5th Ed 8.3.1 +Status: standard +------------------------------------------------------------------------------- +Sequence: BEL (^G) +Mnemonic: BEL +Description: Bell + +BEL is used when there is a need to call for attention; it may control +alarm or attention devices. + +Source: ECMA-48 5th Ed 8.3.3 +Status: standard +------------------------------------------------------------------------------- +Sequence: BS (^H) +Mnemonic: BS +Description: Back space + +BS causes the active data position to be moved one character position +in the data component in the direction opposite to that of the +implicit movement. The direction of the implicit movement depends on +the parameter value of SELECT IMPLICIT MOVEMENT DIRECTION (SIMD). + +Source: ECMA-48 5th Ed 8.3.5 + + BS (0x08, ^H) backspaces one column (but not past the + beginning of the line); + +Source: Linux console_codes(4) +Status: standard +------------------------------------------------------------------------------- +Sequence: HT (^I) +Mnemonic: HT +Description: Character tabulation + +HT causes the active presentation position to be moved to the +following character tabulation stop in the presentation component. + +In addition, if that following character tabulation stop has been set +by TABULATION ALIGN CENTRE (TAC), TABULATION ALIGN LEADING EDGE +(TALE), TABULATION ALIGN TRAILING EDGE (TATE) or TABULATION CENTRED ON +CHARACTER (TCC), HT indicates the beginning of a string of text which +is to be positioned within a line according to the properties of that +tabulation stop. The end of the string is indicated by the next +occurrence of HT or CARRIAGE RETURN (CR) or NEXT LINE (NEL) in the +data stream. + +Source: ECMA-48 5th Ed. 8.3.60 + + HT (0x09, ^I) goes to the next tab stop or to the end of + the line if there is no earlier tab stop; +Source: Linux console_codes(4) +Status: standard +------------------------------------------------------------------------------- +Sequence: LF (^J) +Mnemonic: LF +Description: Line feed + +If the DEVICE COMPONENT SELECT MODE (DCSM) is set to PRESENTATION, LF +causes the active presentation position to be moved to the +corresponding character position of the following line in the +presentation component. + +If the DEVICE COMPONENT SELECT MODE (DCSM) is set to DATA, LF causes +the active data position to be moved to the corresponding character +position of the following line in the data component. + +Source: ECMA-48 5th Ed. 8.3.74 +Status: standard +------------------------------------------------------------------------------- +Sequence: VT (^K) +Mnemonic: VT +Description: Line tabulation + +VT causes the active presentation position to be moved in the +presentation component to the corresponding character position on the +line at which the following line tabulation stop is set. + +Source: ECMA-48 5th Ed. 8.3.161 +Status: standard +------------------------------------------------------------------------------- +Sequence: VT (^K) +Description: Reverse Line-feed + +The cursor moves up one line, remaining at the same character position +on the line. If the cursor is already at the top line, nothing +happens. + +Source: SunOS 5.7 wscons(7D) +Status: Sun private; clashes with ECMA-48 VT +------------------------------------------------------------------------------- +Sequence: FF (^L) +Mnemonic: FF +Description: Form feed + +FF causes the active presentation position to be moved to the +corresponding character position of the line at the page home position +of the next form or page in the presentation component. The page home +position is established by the parameter value of SET PAGE HOME (SPH). + +Source: ECMA-48 5th Ed. 8.3.51 +Status: standard +------------------------------------------------------------------------------- +Sequence: CR (^M) +Mnemonic: CR +Description: Carriage return + +The effect of CR depends on the setting of the DEVICE COMPONENT SELECT +MODE (DCSM) and on the parameter value of SELECT IMPLICIT MOVEMENT +DIRECTION (SIMD). + +If the DEVICE COMPONENT SELECT MODE (DCSM) is set to PRESENTATION and +with the parameter value of SIMD equal to 0, CR causes the active +presentation position to be moved to the line home position of the +same line in the presentation component. The line home position is +established by the parameter value of SET LINE HOME (SLH). + +With a parameter value of SIMD equal to 1, CR causes the active +presentation position to be moved to the line limit position of the +same line in the presentation component. The line limit position is +established by the parameter value of SET LINE LIMIT (SLL). + +If the DEVICE COMPONENT SELECT MODE (DCSM) is set to DATA and with a +parameter value of SIMD equal to 0, CR causes the active data position +to be moved to the line home position of the same line in the data +component. The line home position is established by the parameter +value of SET LINE HOME (SLH). + +With a parameter value of SIMD equal to 1, CR causes the active data +position to be moved to the line limit position of the same line in +the data component. The line limit position is established by the +parameter value of SET LINE LIMIT (SLL). + +Source: ECMA-48 5th Ed 8.3.15 +Status: standard +------------------------------------------------------------------------------- +Sequence: LS1 (^N) +Mnemonic: LS1 +Description: Locking-shift one + +LS1 is used for code extension purposes. It causes the meanings of the +bit combinations following it in the data stream to be changed. + +The use of LS1 is defined in Standard ECMA-35. + +NOTE +LS1 is used in 8-bit environments only; in 7-bit environments +SHIFT-OUT (SO) is used instead. + +Source: ECMA-48 8.3.76 +Status: standard +------------------------------------------------------------------------------- +Sequence: SO (^N) +Mnemonic: SO +Description: Shift-out + +SO is used for code extension purposes. It causes the meanings of the +bit combinations following it in the data stream to be changed. + +The use of SO is defined in Standard ECMA-35. + +NOTE +SO is used in 7-bit environments only; in 8-bit environments +LOCKING-SHIFT ONE (LS1) is used instead. + +Source: ECMA-48 5th Ed. 8.3.126 +Status: standard +------------------------------------------------------------------------------- +Sequence: LS0 (^O) +Mnemonic: LS0 +Description: Locking-shift zero + +LS0 is used for code extension purposes. It causes the meanings of the +bit combinations following it in the data stream to be changed. + +The use of LS0 is defined in Standard ECMA-35. + +NOTE +LS0 is used in 8-bit environments only; in 7-bit environments SHIFT-IN +(SI) is used instead. + +Source: ECMA-48 5th Ed. 8.3.75 +Status: standard +------------------------------------------------------------------------------- +Sequence: SI (^O) +Mnmonic: SI +Description: Shift-in + +SI is used for code extension purposes. It causes the meanings of the +bit combinations following it in the data stream to be changed. + +The use of SI is defined in Standard ECMA-35. + +NOTE +SI is used in 7-bit environments only; in 8-bit environments +LOCKING-SHIFT ZERO (LS0) is used instead. + +Source: ECMA-35 5th Ed. 8.3.119 +Status: standard +------------------------------------------------------------------------------- +Sequence: DLE (^P) +Mnemonic: DLE +Description: Data link escape + +DLE is used exclusively to provide supplementary transmission control +functions. + +The use of DLE is defined in ISO 1745. + +Source: ECMA-48 8.3.33 +Status: standard +------------------------------------------------------------------------------- +Sequence: DC1 (^Q) +Mnemonic: DC1 +Description: Device control one + +DC1 is primarily intended for turning on or starting an ancillary +device. If it is not required for this purpose, it may be used to +restore a device to the basic mode of operation (see also DC2 and +DC3), or any other device control function not provided by other DCs. + +NOTE +When used for data flow control, DC1 is sometimes called "X-ON". + +Source: ECMA-48 5th Ed 8.3.28 +Status: standard +------------------------------------------------------------------------------- +Sequence: DC2 (^R) +Mnemonic: DC2 +Description: Device control two + +DC2 is primarily intended for turning on or starting an ancillary +device. If it is not required for this purpose, it may be used to set +a device to a special mode of operation (in which case DC1 is used to +restore the device to the basic mode), or for any other device control +function not provided by other DCs. + +Source: ECMA-48 5th Ed 8.3.29 +Status: standard +------------------------------------------------------------------------------- +Sequence: DC3 (^S) +Mnemonic: DC3 +Description: Device control three + +DC3 is primarily intended for turning off or stopping an ancillary +device. This function may be a secondary level stop, for example wait, +pause, stand-by or halt (in which case DC1 is used to restore normal +operation). If it is not required for this purpose, it may be used for +any other device control function not provided by other DCs. + +NOTE +When used for data flow control, DC3 is sometimes called "X-OFF". + +Source: ECMA-48 8.3.30 +Status: standard +------------------------------------------------------------------------------- +Sequence: DC4 (^T) +Mnemonic: DC4 +Description: Device control four + +DC4 is primarily intended for turning off, stopping or interrupting an +ancillary device. If it is not required for this purpose, it may be +used for any other device control function not provided by other DCs. + +Source: ECMA-48 8.3.31 +Status: standard +------------------------------------------------------------------------------- +Sequence: DC4 (^T) + +Used by the TDSMP (Terminal Device Session Management Protocol) on DEC +VT4xx terminals. The protocol is patented (US 4791566 & 5165020). +Commands seems to end with ST. + +Source: + [paraphrased] +Status: DEC private +------------------------------------------------------------------------------- +Sequence: NAK (^U) +Mnemonic: NAK +Description: Negative acknowledge + +NAK is transmitted by a receiver as a negative response to the sender. + +The use of NAK is defined in ISO 1745. + +Source: ECMA-48 5th Ed. 8.3.84 +------------------------------------------------------------------------------- +Sequence: SYN (^V) +Mnemonic: SYN +Description: Synchronous idle + +SYN is used by a synchronous transmission system in the absence of any +other character (idle condition) to provide a signal from which +synchronism may be achieved or retained between data terminal +equipment. + +The use of SYN is defined in ISO 1745. + +Source: ECMA-48 5th Ed. 8.3.150 +Status: standard + +Also used as an introducer for AVATAR commands + +Source: +Status: ??? private +------------------------------------------------------------------------------- +Sequence: ETB (^W) +Mnemonic: ETB +Description: End of transmission block + +ETB is used to indicate the end of a block of data where the data are +divided into such blocks for transmission purposes. + +The use of ETB is defined in ISO 1745. + +Source: ECMA-48 5th Ed. 8.3.49 +Status: standard +------------------------------------------------------------------------------- +Sequence: CAN (^X) +Mnemonic: CAN +Description: Cancel + +CAN is used to indicate that the data preceding it in the data stream +is in error. As a result, this data shall be ignored. The specific +meaning of this control function shall be defined for each application +and/or between sender and recipient. + +Source: ECMA-48 5th Ed 8.3.6 +Status: standard +------------------------------------------------------------------------------- +Sequence: EM (^Y) +Mnemonic: EM +Description: End of medium + +EM is used to identify the physical end of a medium, or the end of the +used portion of a medium, or the end of the wanted portion of data +recorded on a medium. + +Source: ECMA-48 5th Ed. 8.3.42 +Status: standard +------------------------------------------------------------------------------- +Sequence: SUB (^Z) +Mnemonic: SUB +Description: Substitute + +SUB is used in the place of a character that has been found to be +invalid or in error. SUB is intended to be introduced by automatic +means. + +Source: ECMA-48 5th Ed. 8.3.148 +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC (^[) +Mnemonic: ESC +Description: Escape + +ESCAPE is a control character used for code extension purposes. It +causes the meaning of a limited number of the bit combinations +following it in a CC-data-element to be changed. These bit +combinations, together with the preceding bit combination that +represents the ESC character, constitute an escape sequence. + +Escape sequences provide the coded representations of +code-identification functions and of some types of control +functions. The various uses of escape sequences are specified in +clause 13. Code identification functions are specified in clauses 14 +and 15. + +Source: ECMA-35 6th Ed. 6.2.2 + +An escape sequence shall consist of two or more bytes. In an 8-bit +code a byte shall be an 8-bit combination. In a 7-bit code a byte +shall be a 7-bit combination. + +The first byte of an escape sequence shall be the bit combination +representing the ESCAPE character and the last shall be known as the +Final Byte. An escape sequence may also contain one or more bytes +known as Intermediate bytes. + +The function represented by an escape sequence shall be determined by +its Intermediate byte(s), if any, and by its Final Byte. + +Intermediate bytes shall be any of the 16 positions of column 02 of +the code table; they are denoted by the symbol I. + +Final bytes shall be any of the 79 positions of columns 03 to 07 of +the code table excluding position 07/15; they are denoted by the +symbol F. + +NOTE 40 +Although, in this Standard, escape sequences are specified in terms of +bytes or positions in the code table, the meaning of an escape +sequence is determined only by its bit combinations and it is +unaffected by any meaning assigned to those bit combinations taken +individually. + +Bit combinations in columns 00 and 01 and the bit combination 07/15 +shall not be used as either Intermediate or Final bytes to construct +an escape sequence. In an 8-bit code bit combinations in columns 08 to +15 also shall not be so used. + +NOTE 41 +As these prohibited bytes may appear in an escape sequence in error, +it may be necessary within an application to provide methods of +identifying such a situation and of recovering from it, but this is +not covered by this Standard. + +Source: ECMA-35 6th Ed. 13.1 + +[ So, in summary, that's ESC {SP-/}* {0-~} ] + +Status: standard +------------------------------------------------------------------------------- +Section: *** nF *** +Sequences: ESC {SP-/} {SP-/}* {0-~} +------------------------------------------------------------------------------- +Sequence: ESC SP {0-~} +Mnemonic: ACS +Description: Announce code structure +------------------------------------------------------------------------------- +Sequence: ESC SP 6 +Mnemonic: S8C1R (also DECAC1) +Description: C1 receive disabled + +The printer receives 7-bit data and C1 control characters (as 7-bit ESC +Fe sequences). + +This description doesn't say what the printer does when it receives an +8-bit C1 control character in DECTC1 (S7C1R) mode. The LA100 reference +says that it just truncates the 8th bit of all C1 control characters +received. Ouch! + +Source: Paul Williams in mail + <384A6F50.3349DE09@rdel.co.uk> +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC SP 7 +Mnemonic: S7C1R (also DECTC1) +Description: C1 receive enabled + +The printer receives 8-bit data and C1 control characters (as 7-bit ESC +Fe sequences or single 8-bit bytes). + +Source: Paul Williams in mail + <384A6F50.3349DE09@rdel.co.uk> +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC SP F +Mnemonic: S7C1T +Description: 7-bit C1 controls + +The VT220 command ESC SP F (called S7C1T in the DEC documentation) tells +the terminal to transmit the 7 bit equivalents for the 8 bit C1 codes to +the host, both for command responses (like the response to CSI c), and +for function keys which return C1 codes. + +Source: +Status: Standard +------------------------------------------------------------------------------- +Sequence: ESC SP G +Mnemonic: S8C1T +Description: 8-bit C1 controls + +Likewise, ESC SP G (S8C1T) tells the terminal to transmit 8 bit C1 codes +if the terminal has an 8 bit data path to the host. (The command has no +effect if the host port is set to 7 bit mode.) + +Source: +Status: Standard +------------------------------------------------------------------------------- +Sequence: ESC ! {SP-/}* {0-~} +Mnemonic: CZD +Description: C0-designate +------------------------------------------------------------------------------- +Sequence: ESC ! @ +Description: C0-designate ECMA-6 IRV C0 set + +Source: ECMA-6 6th Ed. 9.2 +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC " {SP-/}* {0-~} +Mnemonic: C1D +Description: C1-designate +------------------------------------------------------------------------------- +Section: *** 3F: Single control functions *** +Sequences: ESC # {SP-/}* {0-~} +------------------------------------------------------------------------------- +Sequence: ESC # {SP-/} 0 +Description: ignoring extensions is OK + +Part of the X11 COMPOUND_TEXT encoding, this sequence indicates +that the string that follows contains extensions beyond version 1, +but that ignoring those extensions is acceptable. The intermediate +character is in the range 02/00 to 02/15 and indicates the version +number minus one of the specification being used. + +Source: Compound Text Encoding Version 1.1 +Status: X11 private +------------------------------------------------------------------------------- +Sequence: ESC # {SP-/} 1 +Description: ignoring extensions is not OK + +Part of the X11 COMPOUND_TEXT encoding, this sequence indicates +that the string that follows contains extensions beyond version 1, +and that ignoring those extensions is unacceptable and would lose +mandatory information. The intermediate character is in the range +02/00 to 02/15 and indicates the version number minus one of the +specification being used. + +Source: Compound Text Encoding Version 1.1 +Status: X11 private +------------------------------------------------------------------------------- +Sequence: ESC # 3 +Mnemonic: DECDHL +Description: Double-width, double-height line (top half) + + These sequences cause the line containing the cursor to become the top + or bottom half of a double-height, double width line. The sequences + should be used in pairs on adjacent lines with each line containing the + same character string. 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. + +Source: +Status: DEC private; VT100 +------------------------------------------------------------------------------- +Sequence: ESC # 4 +Mnemonic: DECDHL +Description: Double-width, double-height line (bottom half) + + These sequences cause the line containing the cursor to become the top + or bottom half of a double-height, double width line. The sequences + should be used in pairs on adjacent lines with each line containing the + same character string. 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. + +Source: +Status: DEC private; VT100 +------------------------------------------------------------------------------- +Sequence: ESC # 5 +Mnemonic: DECSWL +Description: Single-width, single-height line + + 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. + +Source: +Status: DEC private; VT100 +------------------------------------------------------------------------------- +Sequence: ESC # 6 +Mnemonic: DECDWL +Description: Double-width, single-height line + + 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. + +Source: +Status: DEC private; VT100 +------------------------------------------------------------------------------- +Sequence: ESC # 7 +Mnemonic: DECHCP +Description: Hardcopy + +Source: +Source: +Status: DEC private; VT100 +------------------------------------------------------------------------------- +Sequence: ESC # 8 +Mnemonic: DECALN +Description: Screen alignment display + + This command causes the VT100 to fill its screen with uppercase Es for + screen focus and alignment. + +Source: +Status: DEC private; VT100 +------------------------------------------------------------------------------- +Sequence: ESC # 9 +Mnemonic: DECFPP +Description: Perform pending motion + +Source: DEC Terminals and Printers Handbook 1985 EB 26291-56 pE90 +Status: DEC private; LQP02 +------------------------------------------------------------------------------- +Section: *** 4F: Designation of multibyte graphic character sets *** +Sequences: ESC $ {SP-/} {SP-/}* {0-~} +------------------------------------------------------------------------------- +Sequence: ESC $ ( {SP-/}* {0-~} +Description: G0-designate multibyte 94-set +------------------------------------------------------------------------------- +Sequence: ESC $ ) {SP-/}* {0-~} +Description: G1-designate multibyte 94-set +------------------------------------------------------------------------------- +Sequence: ESC $ * {SP-/}* {0-~} +Description: G2-designate multibyte 94-set +------------------------------------------------------------------------------- +Sequence: ESC $ + {SP-/}* {0-~} +Description: G3-designate multibyte 94-set +------------------------------------------------------------------------------- +Sequence: ESC $ - {SP-/}* {0-~} +Description: G1-designate multibyte 96-set +------------------------------------------------------------------------------- +Sequence: ESC $ . {SP-/}* {0-~} +Description: G2-designate multibyte 96-set +------------------------------------------------------------------------------- +Sequence: ESC $ / {SP-/}* {0-~} +Description: G3-designate multibyte 96-set +------------------------------------------------------------------------------- +Sequence: ESC % {SP-/}* {0-~} +Mnemonic: DOCS +Description: Designate other coding system + +15.4.1 Purpose + +A code-identification function is provided to designate and invoke an +identified coding system different from that of this Standard, not +necessarily a character code. It provides a means for switching +between coding systems according to this Standard and other coding +systems when it is not performed at an outer level (e.g. 15.3). + +Each such other coding system is registered in the ISO International +Register of Coded Character Sets (see annex B), together with a Final +Byte (and where necessary one or more associated Intermediate bytes) +to identify it. + +This function is also recommended for use by such other coding systems +for returning to the coding system of this Standard, by the use of a +reserved Final Byte which identifies it. + +NOTE 56 +Other standards specify alternative methods for achieving an effect +similar to that of DOCS, e.g. those based on the upper layers defined +in ISO 7498 - Open Systems Interconnection, Basic Reference Model. + +15.4.2 Specification + +Name: DESIGNATE OTHER CODING SYSTEM Acronym: DOCS +Coded representation: ESC 02/05 F or ESC 02/05 I F + +DOCS shall designate and invoke an identified coding system. In the +coded representation of DOCS the F byte (and any associated I bytes) +shall identify the coding system. + +DOCS with Final Byte 04/00, without I byte, shall designate the coding +system of this Standard. It is intended for use by other coding +systems for returning to this coding system. It shall restore the +state of the coding system to that at the time of invocation of the +other coding system, that is the state established by announcer +functions, and the designation and invocation state of graphic +character and control character sets. Whether or not other states, +e.g. the active position, are restored is outside the scope of this +Standard. + +DOCS with I byte 02/15 shall mean that the other coding system does +not use DOCS (F = 04/00), coded as specified here, to return (it may +have an alternate means to return or none at all). It shall also mean +that after such a return (if any) the previous state of this coding +system (i.e. announcements, designations, and invocations) is +undefined. + +DOCS with any other I byte, or with no I byte, shall mean that the +other coding system uses DOCS (F = 04/00) to return. + +Source: ECMA-35 6th Ed. 15.4 +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC % / {SP-/}* {0-~} +Description: switch to a coding system which doesn't support DOCS + +Source: ECMA-35 6th Ed. 15.4.2 +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC % / 0 length charset STX +Description: switch to named variable-length encoding + +This is part of the X11 COMPOUND_TEXT format, and is used to escape +to a character encoding not directly supported by that standard. +This version is for encodings with a variable number of octets per +character. + +"length" consists of two octets, M and L, that between them define +the number of octets of data that follow to be ((M-128)*128) + (L-128). +The top bits of M and L are always set. "charset" is a +character set name from the X Consortium CharSet registry. STX is +followed by octets encoded in that character set. "length" includes +the length of the charset name and the STX. + +Source: Compound Text Encoding Version 1.1 +Status: X11 private +------------------------------------------------------------------------------- +Sequence: ESC % / 1 length charset STX +Description: switch to named single-byte encoding + +The same as ESC % / 0, but with one octet per character. + +Source: Compound Text Encoding Version 1.1 +Status: X11 private +------------------------------------------------------------------------------- +Sequence: ESC % / 2 length charset STX +Description: switch to named double-byte encoding + +The same as ESC % / 0, but with two octets per character. + +Source: Compound Text Encoding Version 1.1 +Status: X11 private +------------------------------------------------------------------------------- +Sequence: ESC % / 3 length charset STX +Description: switch to named triple-byte encoding + +The same as ESC % / 0, but with three octets per character. + +Source: Compound Text Encoding Version 1.1 +Status: X11 private +------------------------------------------------------------------------------- +Sequence: ESC % / 4 length charset STX +Description: switch to named quadruple-byte encoding + +The same as ESC % / 0, but with four octets per character. + +Source: Compound Text Encoding Version 1.1 +Status: X11 private +------------------------------------------------------------------------------- +Sequence: ESC % / {5-?} length +Description: begin extended segment + +These sequences begin an as-yet undefined kind of extended segment +in the X11 COMPOUND_TEXT encoding. The "length" is encoded as +described for ESC % / 0; the rest is undefined. + +Source: Compound Text Encoding Version 1.1 +Status: X11 private +------------------------------------------------------------------------------- +Sequence: ESC % / @ +Description: switch to ISO/IEC 10646:1993, UCS-2, Level 1 + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC % / A +Description: switch to ISO/IEC 10646:1993, UCS-4, Level 1 + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC % / B +Description: Switch to Virtual Terminal service Transparent Set + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC % / C +Description: switch to ISO/IEC 10646:1993, UCS-2, Level 2 + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC % / D +Description: switch to ISO/IEC 10646:1993, UCS-4, Level 2 + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC % / E +Description: switch to ISO/IEC 10646:1993, UCS-2, Level 3 + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC % / F +Description: switch to ISO/IEC 10646:1993, UCS-4, Level 3 + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC % / G +Description: switch to UTF-8 Level 1 + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC % / H +Description: switch to UTF-8 Level 2 + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC % / I +Description: switch to UTF-8 Level 3 + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC % / J +Description: switch to UTF-16 Level 1 + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC % / K +Description: switch to UTF-16 Level 2 + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC % / L +Description: switch to UTF-16 Level 3 + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC % 8 +Description: switch to UTF-8 + +Source: Linux console_codes(4) +Status: Linux private; obsolete +------------------------------------------------------------------------------- +Sequence: ESC % @ +Description: return to ECMA-35 coding system + +Source: ECMA-35 6th Ed. 15.4.2 +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC % A +Description: switch to CSA T 500-1983 + +Syntax of the North American Videotex/Teletex Presentation Level +Protocol (NAPLPS), CSA T 500-1983 + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC % B +Description: switch to UCS Transformation Format One (UTF-1) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC % C +Description: switch to Data Syntax I of CCITT Rec.T.101 + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC % D +Description: switch to Data Syntax II of CCITT Rec.T.101 + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC % E +Description: switch to Photo-Videotex Data Syntax of CCITT Rec. T.101 + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC % F +Description: switch to Audio Data Syntax of CCITT Rec. T.101 + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC % G +Description: switch to UTF-8 + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC % H +Description: switch to VEMMI Data Syntax of ITU-T Rec. T.107 + +Videotex Enhanced Man Machine Interface (VEMMI) Data Syntax of ITU-T +Rec. T.107 + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC & {0-~} +Mnemonic: IRR +Description: Identify revised registration +------------------------------------------------------------------------------- +Sequence: ESC ' {0-~} +Description: Reserved for future standardisation +------------------------------------------------------------------------------- +Sequence: ESC ( {SP-/}* {0-~} +Mnemonic: GZD4 +Description: G0-designate 94-set + +[ NB: All character sets listed here are valid for other G?D4 sequnces too. ] +------------------------------------------------------------------------------- +Sequence: ESC ( ! @ +Description: G0-designate CCITT Greek Primary character set + +(IANA name greek-ccitt) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( ! A +Description: G0-designate Cuban character set (NC 99-10:81) + +(IANA name NC_NC00-10:81) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( ! B +Description: G0-designate ISO 646 invariant character set + +(no IANA name) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( ! C +Description: G0-designate Irish Gaelic character set (I.S. 433:1996) + +(no IANA name) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( ! D +Description: G0-designate Turkmen character set (Turkmen Standard TDS 565) + +(no IANA name) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( ! E +Description: G0-designate ANSEL character set (ANSI/NISO Z39.47) + +The ANSEL standard is used in bibliographic work. It addresses special +characters in languages using the Latin alphabet as well as combining +marks (diacritics) required for romanization and transliteration. In +ANSEL, non-spacing characters precede the character that they modify. + +The MARC 21 Extended Latin character set (published by the Library of +Congress) is synchronized with ANSEL. + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( ! F +Description: G0-designate Turkmen 8-bit character set (TDS 616-2003) + +(no IANA name) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( " 1 +Description: G0-designate Digital Symbol character set + +Source: DEC Terminals and Printers Handbook 1985 EB 26291-56 pE47 +Status: DEC private; LA210 +------------------------------------------------------------------------------- +Sequence: ESC ( 0 +Description: G0-designate VT100 line-drawing set + +Source: ??? +Status: DEC private; VT100 +------------------------------------------------------------------------------- +Sequence: ESC ( 1 +Description: G0-designate alternate character ROM (standard) + +Source: ??? +Status: DEC private; VT100 +------------------------------------------------------------------------------- +Sequence: ESC ( 2 +Description: G0-designate alternate character ROM (graphics) + +Source: ??? +Status: DEC private; VT100 +------------------------------------------------------------------------------- +Sequence: ESC ( 3 +Description: G0-designate HP Roman 8, upper 128 chars + +Source: pcvt EscapeSequences +Status: HP private? +------------------------------------------------------------------------------- +Sequence: ESC ( 4 +Description: G0-designate Dutch character set + +Source: vttest-990212 vt420.c +Status: DEC private +------------------------------------------------------------------------------- +Sequence: ESC ( 5 +Description: G0-designate Finnish character set + +Source: vttest-990212 vt420.c +Status: DEC private +------------------------------------------------------------------------------- +Sequence: ESC ( 6 +Description: G0-designate Norwegian/Danish character set + +Source: vttest-990212 vt420.c +Status: DEC private +------------------------------------------------------------------------------- +Sequence: ESC ( 7 +Description: G0-designate Swedish character set + +Source: pcvt EscapeSequences +Status: DEC private +------------------------------------------------------------------------------- +Sequence: ESC ( 8 +Description: G0-designate APL character set + +Source: DEC Terminals and Printers Handbook 1985 EB 26291-56 +Status: DEC private +------------------------------------------------------------------------------- +Sequence: ESC ( 9 +Description: G0-designate French Canadian character set + +Source: DEC Terminals and Printers Handbook 1985 EB 26291-56 +Status: DEC private +------------------------------------------------------------------------------- +Sequence: ESC ( < +Description: G0-designate DEC supplemental character set + +Source: http://vt100.net/docs/vt220-rm/chapter4.html +Status: DEC private; VT200 +------------------------------------------------------------------------------- +Sequence: ESC ( = +Description: G0-designate Swiss character set + +Source: vttest-990212 vt420.c +Status: DEC private +------------------------------------------------------------------------------- +Sequence: ESC ( > +Description: G0-designate DEC Technical character set + +Source: pcvt EscpaeSequences +Status: DEC private +------------------------------------------------------------------------------- +Sequence: ESC ( @ +Description: G0-designate ISO-646 IRV + +This differs from ASCII in having a currency sign in place of the dollar. +(IANA name ISO_646.irv:1983) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( A +Description: G0-designate GB character set + +This is the ECMA-6 IRV (ASCII), with hash turned into sterling. +(IANA name BS_4730) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( B +Description: G0-designate ECMA-6 IRV + +(IANA name ANSI_X3.4-1968) + +Source: ECMA-6 6th Ed. 9.2 +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( C +Description: G0-designate NATS main Finnish/Swedish character set + +(IANA name NATS-SEFI) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( D +Description: G0-designate NATS additional Finnish/Swedish graphic set + +(IANA name NATS-SEFI-ADD) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( E +Description: G0-designate NATS main Norwegian/Danish character set + +(IANA name NATS-DANO) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( F +Description: G0-designate NATS additional Norwegian/Danish character set + +(IANA name NATS-DANO-ADD) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( G +Description: G0-designate Swedish basic character set (SEN 85 02 00 Annex B) + +(IANA name SEN_850200_B) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( H +Description: G0-designate Swedish name-writing set (SEN 85 02 00 Annex C) + +(IANA name SEN_85020_C) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( I +Description: G0-designate Katakana character set (JIS C 6220 - 1969) + +(IANA name JIS_C6220-1969-jp) +This character set expects to be in G1 + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( J +Description: G0-designate Roman character set (JIS C 6220 - 1969) + +(IANA name JIS_C6220-1969-ro) +This character set expects to be in G0 + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( K +Description: G0-designate German character set (DIN 66003) + +(IANA name DIN_66003) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( K +Description: G0-designate user-defined character set + +Source: Linux console_codes(4) +Status: Linux private; clashes with ECMA-35 +------------------------------------------------------------------------------- +Sequence: ESC ( L +Description: G0-designate Portuguese character set + +(IANA name PT) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( M +Description: G0-designate African character set (ISO 6438) + +(no IANA name) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( N +Description: G0-designate basic Cyrillic character set (ISO 5427) + +(IANA name ISO_5427) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( O +Description: G0-designate bibliographic extension character set (DIN 31624) + +(no IANA name) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( P +Description: G0-designate bibliographic extension character set (ISO 5426:1980) + +(no IANA name) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( Q +Description: G0-designate cyrillic bibliographic extension set (ISO 5427:1981) + +(IANA name ISO_5427:1981) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( Q +Description: G0-designate French Canadian character set + +Source: vttest-990212 vt420.c +Status: DEC private?; clashes with ECMA-35 +------------------------------------------------------------------------------- +Sequence: ESC ( R +Description: G0-designate French character set (NF Z 62-010 (1973)) + +(IANA name NF_Z_62-010_(1973)) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( S +Description: G0-designate Greek bibliographic character set (ISO 5428:1980) + +(IANA name ISO_5428:1980) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( T +Description: G0-designate Chinese latin character set (GB 1988 80) + +(IANA name GB_1988-80) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( U +Description: G0-designate Latin-Greek character set (Honeywell-Bull) + +(IANA name Latin-greek1) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( U +Description: G0-designate PC console character set + +Source: Linux console_codes(4) +Status: Linux private; clashes with ECMA-35 +------------------------------------------------------------------------------- +Sequence: ESC ( V +Description: G0-designate UK Videotex/Teletext character set + +(IANA name BS_viewdata) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( W +Description: G0-designate ISO 646 subset for INIS + +(IANA name INIS) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( X +Description: G0-designate Greek bibliographic character set (ISO 5428) + +(no IANA name) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( Y +Description: G0-designate Italian character set + +(IANA name IT) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( Z +Description: G0-designate Spanish character set + +(IANA name ES) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( [ +Description: G0-designate Greek character set + +(IANA name greek7-old) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( \ +Description: G0-designate Latin/Greek character set + +(IANA name latin-greek) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( ] +Description: G0-designate INIS non-standard extension character set + +(IANA name INIS-8) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( ^ +Description: G0-designate INIS Cyrillic extension character set + +(IANA name INIS-cyrillic) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( _ +Description: G0-designate CODAR-U Arabic character set + +(no IANA name) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( ` +Description: G0-designate Norwegian/Danish character set (NS 4551) + +(IANA name NS_4551-1) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( a +Description: G0-designate Norwegian character set (NS 4551 version 2) + +(IANA name NS_4551-2) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( b +Description: G0-designate supplementary Videotex character set + +(IANA name videotex-suppl) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( c +Description: G0-designate Videotex mosaic character set + +(no IANA name) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( d +Description: G0-designate seccond Videotex mosaic character set + +(no IANA name) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( e +Description: G0-designate APL character set + +(no IANA name) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( f +Description: G0-designate French character set (NF Z 62-010 (1982)) + +(IANA name NF_Z_60-010) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( g +Description: G0-designate Portuguese character set (IBM) + +(IANA name PT2) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( h +Description: G0-designate Spanish character set (IBM) + +(IANA name ES2) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( i +Description: G0-designate Hungarian character set (MSZ 7795/3) + +(IANA name MSZ_7795.3) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( j +Description: G0-designate Greek character set (ELOT) + +(IANA name greek7) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( k +Description: G0-designate Arabic character set (ASMO 449, ISO 9036) + +(IANA name ASMO_449) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( l +Description: G0-designate Latin supplementary character set (ISO 6937/2) + +(IANA name iso-ir-90) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( m +Description: G0-designate Japanese OCR-A character set (JIS C 6229-1984) + +(IANA name JIS_C6229-1984-a) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( n +Description: G0-designate Japanese OCR-B character set (JIS C 6229-1984) + +(IANA name JIS_C6229-1984-b) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( o +Description: G0-designate Japanese addition OCR-B set (JIS C 6229-1984) + +(IANA name JIS_C6229-1984-b-add) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( p +Description: G0-designate Japanese hand-printed OCR set (JIS C 6229-1984) + +(IANA name JIS_C6229-1984-hand) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( q +Description: G0-designate Japanese hand-printed OCR additional set + +(IANA name JIS_C6229-1984-hand-add) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( r +Description: G0-designate Katakana hand-printed OCR set (JIS C 6229-1984) + +(IANA name JIS_C6229-1984-kana) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( s +Description: G0-designate E13B character set (ISO 2033-1983) + +(IANA name ISO_2033-1983) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( t +Description: G0-designate supplemetary Teletext character set (ANSI X3.110) + +(IANA name ANSI_X3.110-1983) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( u +Description: G0-designate Teletext character set (CCITT T.61) + +(IANA name T.61-7bit) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( v +Description: G0-designate Teletext supplementary character set (CCITT T.61) + +(IANA name T.61-8bit) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( w +Description: G0-designate Canadian character set 1 (CSA Z243.4 - 1985) + +(IANA name CSA_Z243.4-1985-1) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( x +Description: G0-designate Canadian character set 2 (CSA Z243.4 - 1985) + +(IANA name (CSA_Z243.4-1985-2) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( y +Description: G0-designate CCITT T.101 Data Syntax I mosaic set + +(no IANA name) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( z +Description: G0-designate Serbocroatian/Slovenian character set (JUS I.B1.002) + +(IANA name JUS_I.B1.002) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( { +Description: G0-designate Serbocroatian Cyrillic character set (JUS I.B1.003) + +(IANAN name JUS_I.B1.003-serb) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( | +Description: G0-designate CCITT T.101 Data Syntax III + +(IANA name T.101-G2) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( } +Description: G0-designate Macedonian Cyrillic charcter set (JUS I.B1.004) + +(IANA name JUS_I.B1.003-mac) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( ~ +Description: G0-designate empty character set + +The Final Byte 07/14 shall be reserved to identify the empty set of +each type, i.e. the set that does not contain any character. If an +empty set is designated the bit combinations corresponding to the code +table positions of the set shall not be used, i.e. the (non-existent) +characters shall not be invoked. + +Source: ECMA-35 6th Ed. 14.1 +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC ( % 5 +Description: G0-designate Digtal Supplemental Graphics set + +Source: Reflection TRM (VT) Version 7.0 +Status: DEC private +------------------------------------------------------------------------------- +Sequence: ESC ( % 6 +Description: G0-designate Portuguese character set + +Source: vttest-990212 vt420.c +Status: DEC private +------------------------------------------------------------------------------- +Sequence: ESC ( % = +Description: G0-designate Hebrew character set + +Source: vttest-990212 vt420.c +Status: DEC private +------------------------------------------------------------------------------- +Sequence: ESC ) {SP-/}* {0-~} +Mnemonic: G1D4 +Description: G1-designate 94-set + +See GZD4 for character sets +------------------------------------------------------------------------------- +Sequence: ESC * {SP-/}* {0-~} +Mnemonic: G2D4 +Description: G2-designated 94-set + +See GZD4 for character sets +------------------------------------------------------------------------------- +Sequence: ESC + {SP-/}* {0-~} +Mnemonic: G3D4 +Description: G3-designate 94-set + +See GZD4 for character sets +------------------------------------------------------------------------------- +Sequence: ESC , {0-~} +Description: reserved for future standardisation +------------------------------------------------------------------------------- +Sequence: ESC - {SP-/}* {0-~} +Mnemonic: G1D6 +Description: G1-designate 96-set +------------------------------------------------------------------------------- +Sequence: ESC - @ +Description: G1-designate RH part of Latin/Cyrillic set (ECMA-113, 1st ed.) + +(IANA name ECMA-cyrillic) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC - A +Description: G1-designate RH part of Latin-1 character set (ISO 8859-1:1987) + +(IANA name ISO_8859-1:1987) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC - B +Description: G1-designate RH part of Latin-2 character set (ISO 8859-2:1987) + +(IANA name ISO_8859-2:1987) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC - C +Description: G1-designate RH part of Latin-3 character set (ISO 8859-3:1988) + +(IANA name ISO_8859-3:1988) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC - D +Description: G1-designate RH part of Latin-4 character set (ISO 8859-4:1988) + +(IANA name ISO_8859-4:1988) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC - E +Description: G1-designate Supplementary Graphic Set (CSA Z243.4-1985) + +(IANA name CSA_Z243.4-1985-gr) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC - F +Description: G1-designate RH part of Latin/Greek set (ISO 8859-7:1987) + +(IANA name ISO_8859-7:1987) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC - G +Description: G1-designate RH part of Latin/Arabic set (ISO 8859-6:1987) + +(IANA name ISO_8859-6:1987) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC - H +Description: G1-designate RH part of Latin/Hebrew set (ISO 8859-8:1988) + +(IANA name ISO_8859-8:1988) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC - I +Description: G1-designate RH part of Czechoslovak set (CSN 369103) + +(IANA name CSN_369103) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC - J +Description: G1-designate Latin supplementary set (ISO 6937-2:1983) + +(IANA name ISO_6937-2-add) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC - K +Description: G1-designate technical character set + +(IANA name IEC_P27-1) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC - L +Description: G1-designate RH part of Latin/Cyrillic set (ISO 8859-5:1988) + +(IANA name ISO_8859-5:1988) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC - M +Description: G1-designate RH part of Latin-5 character set (ISO 8859-9:1989) + +(IANA name ISO_8859-9:1989) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC - N +Description: G1-designate ISO 6937-2:1983 residual set + +(IANA name ISO_6937-2-add) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC - O +Description: G1-designate basic Cyrillic character set (GOST 19768-74) + +(IANA name GOST_19768-74) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC - P +Description: G1-designate Latin-1/2/5 supplemental set + +(IANA name ISO_8859-supp) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC - Q +Description: G1-designate basic box-drawing set (ISO/IEC 10367) + +(IANA name ISO_10367-box) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC - R +Description: G1-designate ISO/IEC 6937:1992 supplementary set + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC - S +Description: G1-designate CCITT Hebrew supplementary set + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC - T +Description: G1-designate Thai character set (TIS 620-2533 (1990)) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC - U +Description: G1-designate Arabic/French/German set + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC - V +Description: G1-designate RH part of Latin-6 character set (ISO 8859-10:1992) + +(IANA name ISO-8859-10) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC - X +Description: G1-designate Sami supplementary set (for use with Latin-6) + +(IANA name latin-lap) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC - Y +Description: G1-designate Baltic rim supplementary set + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC - Z +Description: G1-designate RH half of VISCII-2 (TCVN 5712:1993) + +(IANA name VISCII) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC - [ +Description: G1-designate IEC technical character set 1 (IEC P1289) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC - \ +Description: G1-desgnate RH part of Latin-1 Welsh variant + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC - ] +Description: G1-designate RH part of Latin-1 Sami variant + +Source: +Status: standard +------------------------------------------------------------------------------- +Dequence: ESC - ^ +Description: G1-designate RH part of Latin/Hebrew set + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC - _ +Description: G1-designate RH part of Celtic set (ISO 8859-14:1998) + +(IANA name ISO-8859-14) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC - ` +Description: G1-designate Uralic supplementary Cyrillic set + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC - a +Description: G1-designate Volgaic supplementary Cyrillic set + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC - b +Description: G1-designate RH part of Latin-9 character set + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC - c +Description: G1-designate RH part of Latin-1 set with Euro sign + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC - d +Description: G1-designate RH part of Latin-4 set with Euro sign + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC - e +Description: G1-designate RH part of Latin-7 set with Euro sign + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC - f +Description: G1-designate RH part of Romanian character set (SR 14111:1998) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC - g +Description: G1-designate Ogham character set (IS 434:1997) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC - i +Description: G1-designate Sami supplementary set no 2 + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC - j +Description: G1-designate RH part of Latin/Greek set (ISO/IEC 8859-7:2003) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC - k +Description: G1-designate RH part of Latin/Hebrew set (SI1311:2002) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC - } +Description: G1-designate supplementary mosaic set (CCITT T.101) + +Source: +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC . {SP-/}* {0-~} +Mnemonic: G2D6 +Description: G2-designate 96-set + +See G1D6 for character sets +------------------------------------------------------------------------------- +Sequence: ESC / {SP-/}* {0-~} +Mnemonic: G3D6 +Description: G3-designate 96-set + +See G1D6 for character sets +------------------------------------------------------------------------------- +Section: *** Fp: private control functions *** +Sequences: ESC {0-?} +------------------------------------------------------------------------------- +Sequence: ESC 1 +Description: Graphics proc. option on + +Source: +Status: DEC private; VT100 +------------------------------------------------------------------------------- +Sequence: ESC 1 +Mnemonic: DECHTS +Description: Horizontal tab set + +Sets horizontal tab stop at active column + +Source: DEC Terminals and Printers Handbook 1985 EB 26291-56 pE10 +Status: DEC private; DECwriter, LA100 +------------------------------------------------------------------------------- +Sequence: ESC 2 +Description: Graphics proc. option off + +Source: +Status: DEC private; VT100 +------------------------------------------------------------------------------- +Sequence: ESC 2 +Mnemonic: DECCAHT +Description: Clear all horizontal tabs + +Source: +Status: DEC private; DECwriter +------------------------------------------------------------------------------- +Sequence: ESC 3 +Mnemonic: DECVTS +Description: Vertical tab set + +Sets vertical tab stop at active line + +Source: DEC Terminals and Printers Handbook 1985 EB 26291-56 pE11 +Status: DEC private; printers +------------------------------------------------------------------------------- +Sequence: ESC 4 +Mnemonic: DECCAVT +Description: Clear all vertical tabs + +Source: +Status: DEC private; DECwriter +------------------------------------------------------------------------------- +Sequence: ESC 5 +Mnemonic: DECXMIT +Description: Transmit character at cursor + +Source: +Source: +Status: DEC private +------------------------------------------------------------------------------- +Sequence: ESC 6 +Description: Backward index +Mnemonic: DECBI + +/* + * VT400 & up. + * DECBI - Back Index + * This control function moves the cursor backward one column. If the cursor + * is at the left margin, then all screen data within the margin moves one + * column to the right. The column that shifted past the right margin is lost. + * + * Format: ESC 6 + * Description: + * DECBI adds a new column at the left margin with no visual attributes. DECBI + * is not affected by the margins. If the cursor is at the left border of the + * page when the terminal received DECBI, then the terminal ignores DECBI. + */ + +Source: vttest-990212 vt420.c +Status: DEC private; VT400 +------------------------------------------------------------------------------- +Sequence: ESC 7 +Mnemonic: DECSC +Description: Save cursor + +Saves in terminal memory the: + cursor position + graphic rendition + character set shift state + state of wrap flag + state of origin mode + state of selective erase + +Source: +Status: DEC private; VT100 +------------------------------------------------------------------------------- +Sequence: ESC 8 +Mnemonic: DECRC +Description: Restore Cursor + +Restores the states described for (DECSC) above. If none of these +characteristics were saved: the cursor moves to home position, origin +mode is reset, no character attributes are assigned, and the default +character set mapping is established. + +Source: +Status: DEC private; VT100 +------------------------------------------------------------------------------- +Sequence: ESC 9 +Mnemonic: DECFI +Description: Forward index + +/* + * VT400 & up. + * + * DECFI - Forward Index + * This control function moves the column forward one column. If the cursor is + * at the right margin, then all screen data within the margins moves one + * column to the left. The column shifted past the left margin is lost. + * + * Format: ESC 9 + * Description: + * DECFI adds a new column at the right margin with no visual attributes. + * DECFI is not affected by the margins. If the cursor is at the right border + * of the page when the terminal receives DECFI, then the terminal ignores + * DECFI. + */ + +Source: vttest-990212 vt420.c +Status: DEC private; VT400 +------------------------------------------------------------------------------- +Sequence: ESC = +Mnemonic: DECKPAM +Description: Keypad application mode + + The auxiliary keypad keys will transmit control sequences. + +Source: +Status: DEC private; VT100 +------------------------------------------------------------------------------- +Sequence: ESC > +Mnemonic: DECKPNM +Description: Keypad numeric mode + + The auxiliary keypad keys will send ASCII codes corresponding to the + characters engraved on their keys. + +Source: +Status: DEC private; VT100 +------------------------------------------------------------------------------- +Sequence: ESC Z +Mnemonic: DECID +Description: Identify terminal + + This sequence causes the same response as the DA sequence. This + sequence will not be supported in future models. + +Source: +Status: DEC private; VT100; clashes with ECMA-48 +------------------------------------------------------------------------------- +Section: *** Fs: Standardized single control functions *** +Sequences: ESC ` to ESC ~ +------------------------------------------------------------------------------- +Sequence: ESC ` +Mnemonic: DMI +Description: Disable manual input + +DMI causes the manual input facilities of a device to be disabled. + +Source: ECMA-48 5th Ed 8.3.34 +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC a +Mnemonic: INT +Description: Interrupt + +INT is used to indicate to the receiving device that the current +process is to be interrupted and an agreed procedure is to be +initiated. This control function is applicable to either direction of +transmission. + +Source: ECMA-48 5th Ed. 8.3.68 +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC b +Mnemonic: EMI +Description: Enable manual input + +EMI is used to enable the manual input facilities of a device. + +Source: ECMA-48 5th Ed. 8.3.43 +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC c +Mnemonic: RIS +Description: Reset to initial state + +RIS causes a device to be reset to its initial state, i.e. the state +it has after it is made operational. This may imply, if applicable: +clear tabulation stops, remove qualified areas, reset graphic +rendition, put all character positions into the erased state, move the +active presentation position to the first position of the first line +in the presentation component, move the active data position to the +first character position of the first line in the data component, set +the modes into the reset state, etc. + +Source: ECMA-48 5th Ed. 8.3.105 + + (DEC) replaces all terminal set-up parameters with NVR values or + power-up default values if NVR values do not exist. + +Source: + "VT220 Programmer Pocket Guide" EK-VT220-HR-001, page 33 +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC d +Mnemonic: CMD +Description: Coding method delimiter + +CMD is used as the delimiter of a string of data coded according to +Standard ECMA-35 and to switch to a general level of control. + +The use of CMD is not mandatory if the higher level protocol defines +means of delimiting the string, for instance, by specifying the length +of the string. + +Source: ECMA-48 5th Ed 8.3.11 +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC d +Description: Set colour table + + ESC d Only available if PCVT_SETCOLOR was defined when + compiling the kernel, allows to set custom color table + for more info, see pcvt_out.c ... + +Source: pcvt EscapeSequences +Status: pcvt private; clashes with ECMA-48 CMD +------------------------------------------------------------------------------- +Sequence: ESC l +Mnemonic: LMA +Description: Lock memory above + +This is an alternative way to set the scrolling region, and is not +valid in backwards compatibility mode. This sequence sets the top +margin to the current line, and the bottom margin extends to the last +row of the screen. This has the effect of locking the rows above the +current line. This sequence will move the cursor to the beginning of +the new region. + +Source: OpenServer 5.0.6 screen(HW) +Status: HP private +------------------------------------------------------------------------------- +Sequence: ESC m +Mnemonic: USR +Description: Unlock scrolling region + +This sequence can be used to remove the scrolling region. The cursor +is not moved from its current position. The top, bottom, left and +right margins are set to cover the entire screen. + +Source: OpenServer 5.0.6 screen(HW) +Status: HP private +------------------------------------------------------------------------------- +Sequence: ESC n +Mnemonic: LS2 +Description: Locking-shift two + +LS2 is used for code extension purposes. It causes the meanings of the +bit combinations following it in the data stream to be changed. + +The use of LS2 is defined in Standard ECMA-35. + +Source: ECMA-48 5th Ed. 8.3.78 +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC o +Mnemonic: LS3 +Description: Locking-shift three + +LS3 is used for code extension purposes. It causes the meanings of the +bit combinations following it in the data stream to be changed. + +The use of LS3 is defined in Standard ECMA-35. + +Source: ECMA-48 5th Ed. 8.3.80 +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC { A Ps CR +Description: Append to a file + +Ps is the file name + +Source: +Status: unknown private; clashes with ECMA-48 +------------------------------------------------------------------------------- +Sequence: ESC { R Ps CR +Descripton: Receive a file + +Ps is the file name + +Source: +Status: unknown private; clashes with ECMA-48 +------------------------------------------------------------------------------- +Sequence: ESC { S +Description: Save collected text + +Source: +Status: unknown private; clashes with ECMA-48 +------------------------------------------------------------------------------- +Sequence: ESC { T Ps CR +Description: Transmit a file + +Ps is the file name + +Source: +Status: unknown private; clashes with ECMA-48 +------------------------------------------------------------------------------- +Sequence: ESC | +Mnemonic: LS3R +Description: Locking-shift three right + +LS3R is used for code extension purposes. It causes the meanings of +the bit combinations following it in the data stream to be changed. + +The use of LS3R is defined in Standard ECMA-35. + +Source: ECMA-48 5th Ed. 8.3.81 +Status: standard +------------------------------------------------------------------------------- +Sequence: ESC } +Mnemonic: LS2R +Description: Locking-shift two right + +LS2R is used for code extension purposes. It causes the meanings of +the bit combinations following it in the data stream to be changed. + +The use of LS2R is defined in Standard ECMA-35. + +Source: ECMA-48 5th Ed. 8.3.79 +------------------------------------------------------------------------------- +Sequence: ESC ~ +Mnemonic: LS1R +Description: Locking-shift one right + +LS1R is used for code extension purposes. It causes the meanings of +the bit combinations following it in the data stream to be changed. + +The use of LS1R is defined in Standard ECMA-35. + +Source: ECMA-48 5th Ed. 8.3.77 +Status: standard +------------------------------------------------------------------------------- +Section: *** C0 controls (continued) *** +------------------------------------------------------------------------------- +Sequence: IS4 (^\) +Mnemonic: IS4 +Description: Information separator four (FS - file separator) + +IS4 is used to separate and qualify data logically; its specific +meaning has to be defined for each application. If this control +function is used in hierarchical order, it may delimit a data item +called a file, see 8.2.10. + +Source: ECMA-48 5th Ed. 8.3.72 +Status: standard +------------------------------------------------------------------------------- +Sequence: IS3 (^]) +Mnemonic: IS3 +Description: Information separator three (GS - group separator) + +IS3 is used to separate and qualify data logically; its specific +meaning has to be defined for each application. If this control +function is used in hierarchical order, it may delimit a data item +called a group, see 8.2.10. + +Source: ECMA-48 5th Ed. 8.3.71 +Status: standard +------------------------------------------------------------------------------- +Sequence: IS2 (^^) +Mnemonic: IS2 +Description: Information separator two (RS - record separator) + +IS2 is used to separate and qualify data logically; its specific +meaning has to be defined for each application. If this control +function is used in hierarchical order, it may delimit a data item +called a record, see 8.2.10. + +Source: ECMA-48 5th Ed. 8.3.70 +Status: standard +------------------------------------------------------------------------------- +Sequence: IS1 (^_) +Mnemonic: IS1 +Description: Information separator one (US - unit separator) + +IS1 is used to separate and qualify data logically; its specific +meaning has to be defined for each application. If this control +function is used in hierarchical order, it may delimit a data item +called a unit, see 8.2.10. + +Source: ECMA-48 5th Ed. 8.3.69 +Status: standard +------------------------------------------------------------------------------- +Sequence: DEL +Mnemonic: DEL +Description: Delete + +The character DELETE (bit combination 07/15, see ISO/IEC 646, clause +6.5), not being a control function in the strict sense, has been +removed from the body of the Standard. + +DEL was originally used to erase or obliterate an erroneous or +unwanted character in punched tape. DEL characters may be inserted +into, or removed from, a CC-data-element without affecting its +information content, but such action may affect the information layout +and/or the control of equipment. + +Source: ECMA-48 5th Ed. F.8.1 +Status: standard; obsolete +------------------------------------------------------------------------------- +Section: *** C1 controls *** +------------------------------------------------------------------------------- +Sequence: BPH or ESC B +Mnemonic: BPH +Description: Break permitted here + +BPH is used to indicate a point where a line break may occur when text +is formatted. BPH may occur between two graphic characters, either or +both of which may be SPACE. + +Source: ECMA-48 5th Ed 8.3.4 +Status: standard +------------------------------------------------------------------------------- +Sequence: NBH or ESC C +Mnemonic: NBH +Description: No break here + +NBH is used to indicate a point where a line break shall not occur +when text is formatted. NBH may occur between two graphic characters +either or both of which may be SPACE. + +Source: ECMA-48 5th Ed. 8.3.85 +Status: standard +------------------------------------------------------------------------------- +Sequence: IND or ESC D +Mnemonic: IND +Description: Index + +The control function INDEX (IND) which was coded as an element of the +C1 set (08/04) and the use of which was already declared deprecated in +the fourth Edition of this Standard has now been removed. + +Source: ECMA-48 5th Ed. F.8.2 +Status: standard; obsolete +------------------------------------------------------------------------------- +Sequence: NEL or ESC E +Mnemonic: NEL +Description: Next line + +The effect of NEL depends on the setting of the DEVICE COMPONENT +SELECT MODE (DCSM) and on the parameter value of SELECT IMPLICIT +MOVEMENT DIRECTION (SIMD). + +If the DEVICE COMPONENT SELECT MODE (DCSM) is set to PRESENTATION and +with a parameter value of SIMD equal to 0, NEL causes the active +presentation position to be moved to the line home position of the +following line in the presentation component. The line home position +is established by the parameter value of SET LINE HOME (SLH). + +With a parameter value of SIMD equal to 1, NEL causes the active +presentation position to be moved to the line limit position of the +following line in the presentation component. The line limit position +is established by the parameter value of SET LINE LIMIT (SLL). + +If the DEVICE COMPONENT SELECT MODE (DCSM) is set to DATA and with a +parameter value of SIMD equal to 0, NEL causes the active data +position to be moved to the line home position of the following line +in the data component. The line home position is established by the +parameter value of SET LINE HOME (SLH). + +With a parameter value of SIMD equal to 1, NEL causes the active data +position to be moved to the line limit position of the following line +in the data component. The line limit position is established by the +parameter value of SET LINE LIMIT (SLL). + +Source: ECMA-48 5th Ed. 8.3.86 +Status: standard +------------------------------------------------------------------------------- +Sequence: SSA or ESC F +Mnemonic: SSA +Description: Start of selected area + +SSA is used to indicate that the active presentation position is the +first of a string of character positions in the presentation +component, the contents of which are eligible to be transmitted in the +form of a data stream or transferred to an auxiliary input/output +device. + +The end of this string is indicated by END OF SELECTED AREA (ESA). The +string of characters actually transmitted or transferred depends on +the setting of the GUARDED AREA TRANSFER MODE (GATM) and on any +guarded areas established by DEFINE AREA QUALIFICATION (DAQ), or by +START OF GUARDED AREA (SPA) and END OF GUARDED AREA (EPA). + +NOTE +The control functions for area definition (DAQ, EPA, ESA, SPA, SSA) +should not be used within an SRS string or an SDS string. + +Source: ECMA-48 5th Ed. 8.3.138 +Status: standard +------------------------------------------------------------------------------- +Sequence: ESA or ESC G +Mnemonic: ESA +Description: End of selected area + +ESA is used to indicate that the active presentation position is the +last of a string of character positions in the presentation component, +the contents of which are eligible to be transmitted in the form of a +data stream or transferred to an auxiliary input/output device. The +beginning of this string is indicated by START OF SELECTED AREA (SSA). + +NOTE +The control function for area definition (DAQ, EPA, ESA, SPA, SSA) +should not be used within an SRS string or an SDS string. + +Source: ECMA-48 5th Ed. 8.3.47 +Status: standard +------------------------------------------------------------------------------- +Sequence: HTS or ESC H +Mnemonic: HTS +Description: Character tabulation set + +HTS causes a character tabulation stop to be set at the active +presentation position in the presentation component. + +The number of lines affected depends on the setting of the TABULATION +STOP MODE (TSM). + +Source: ECMA-48 5th Ed. 8.3.62 +Status: standard +------------------------------------------------------------------------------- +Sequence: HTJ or ESC I +Mnemonic: HTJ +Description: Character tabulation with justification + +HTJ causes the contents of the active field (the field in the +presentation component that contains the active presentation position) +to be shifted forward so that it ends at the character position +preceding the following character tabulation stop. The active +presentation position is moved to that following character tabulation +stop. The character positions which precede the beginning of the +shifted string are put into the erased state. + +Source: ECMA-48 5th Ed. 8.3.61 +Status: standard +------------------------------------------------------------------------------- +Sequence: VTS or ESC J +Mnemonic: VTS +Description: Line tabulation set + +VTS causes a line tabulation stop to be set at the active line (the +line that contains the active presentation position). + +Source: ECMA-48 5th Ed. 8.3.162 +Status: standard +------------------------------------------------------------------------------- +Sequence: PLD or ESC K +Mnemonic: PLD +Description: Partial line forward + +PLD causes the active presentation position to be moved in the +presentation component to the corresponding position of an imaginary +line with a partial offset in the direction of the line progression. +This offset should be sufficient either to image following characters +as subscripts until the first following occurrence of PARTIAL LINE +BACKWARD (PLU) in the data stream, or, if preceding characters were +imaged as superscripts, to restore imaging of following characters to +the active line (the line that contains the active presentation +position). + +Any interactions between PLD and format effectors other than PLU are +not defined by this Standard. + +Source: ECMA-48 5th Ed. 8.3.92 +Status: standard +------------------------------------------------------------------------------- +Sequence: PLU or ESC L +Mnemonic: PLU +Description: Partial line backward + +PLU causes the active presentation position to be moved in the +presentation component to the corresponding position of an imaginary +line with a partial offset in the direction opposite to that of the +line progression. This offset should be sufficient either to image +following characters as superscripts until the first following +occurrence of PARTIAL LINE FORWARD (PLD) in the data stream, or, if +preceding characters were imaged as subscripts, to restore imaging of +following characters to the active line (the line that contains the +active presentation position). + +Any interactions between PLU and format effectors other than PLD are +not defined by this Standard. + +Source: ECMA-48 5th Ed. 8.3.93 +Status: standard +------------------------------------------------------------------------------- +Sequence: RI or ESC M +Mnemonic: RI +Description: Reverse line feed + +If the DEVICE COMPONENT SELECT MODE (DCSM) is set to PRESENTATION, RI +causes the active presentation position to be moved in the +presentation component to the corresponding character position of the +preceding line. + +If the DEVICE COMPONENT SELECT MODE (DCSM) is set to DATA, RI causes +the active data position to be moved in the data component to the +corresponding character position of the preceding line. + +Source: ECMA-48 5th Ed. 8.3.104 + +In earlier versions of ECMA-48, this was known as "Reverse Index". + +Source: Paul Williams in comp.terminals + <3D19AB54.E35A3B25@uk.thalesgroup.com> +Status: standard +------------------------------------------------------------------------------- +Sequence: SS2 or ESC N +Mnemonic: SS2 +Description: Single-shift two + +SS2 is used for code extension purposes. It causes the meanings of the +bit combinations following it in the data stream to be changed. + +The use of SS2 is defined in Standard ECMA-35. + +Source: ECMA-48 5th Ed. 8.3.141 +Status: standard +------------------------------------------------------------------------------- +Sequence: SS3 or ESC O +Mnemonic: SS3 +Description: Single-shift three + +SS3 is used for code extension purposes. It causes the meanings of the +bit combinations following it in the data stream to be changed. + +The use of SS3 is defined in Standard ECMA-35. + +Source: ECMA-48 5th Ed. 8.3.142 +Status: standard +------------------------------------------------------------------------------- +Sequence: DCS or ESC P +Mnemonic: DCS +Description: Device control string + +DCS is used as the opening delimiter of a control string for device +control use. The command string following may consist of bit +combinations in the range 00/08 to 00/13 and 02/00 to 07/14. The +control string is closed by the terminating delimiter STRING +TERMINATOR (ST). + +The command string represents either one or more commands for the +receiving device, or one or more status reports from the sending +device. The purpose and the format of the command string are specified +by the most recent occurrence of IDENTIFY DEVICE CONTROL STRING +(IDCS), if any, or depend on the sending and/or the receiving device. + +Source: ECMA-48 5th Ed 8.3.27 + +For Digital VTxxx terminals we've extended this as follows: + +DCS ST + +The introducer sequence follows exactly the same syntax and +symantics as a control sequence except that CSI is replaced by DCS. +The is control string specific. + +Source: + +Status: standard +Source: vttest-990712 vt420.c +------------------------------------------------------------------------------- +Sequence: DCS Ps g data ST +Description: LA100 graphics string + +Ps = +0, 1, 5 Dot spacing 7.57 mils (132 dpi) + +Source: DEC Terminals and Printers Handbook 1985 EB 26291-56 pE12 +Status: DEC private +------------------------------------------------------------------------------- +Sequence: DCS Ps p Pr ST +Description: ReGIS graphics + + DCS p or DCS 0 p + Re-enter ReGIS at the point where it was last exited. Does + not display commands. + + DCS 1 p + Enter ReGIS at command level; ReGIS begins a new command. + Does not display commands. + + DCS x+2 p, x=0 or 1 + Like DCS x p, but displays commands on the screen's bottom + line. + +[ Pr is a ReGIS string, which I'm not going to document here just yet. ] + +Source: +Status: DEC private +------------------------------------------------------------------------------- +Sequence: DCS P1 ; P2 ; P3 q Ps ST +Description: Sixel graphics + + P1 is the macro parameter. This parameter indicates the pixel + aspect ratio used by the application or terminal. The pixel + aspect ratio defines the shape of the pixel dots the terminal + uses to draw images. For example, a pixel that is twice as high + as it is wide has an aspect ratio of 2:1. + + NOTE: The macro parameter is provided for compatibility with + existing Digital software. New applications should set P1 to 0 + and use the set raster attributes control, described later in + this chapter. + + P1 Pixel Aspect Ratio + (Vertical:Horizontal) + + Omitted 2:1 + 0 or 1 5:1 + 2 3:1 + 3 or 4 2:1 + 5 or 6 2:1 + 7,8, or 9 1:1 + + P2 selects how the terminal draws the background color. You can 3$ + use one of three values. + + P2 Meaning + + 0 or 2 Pixel positions specified as 0 are set to the + current background color. + + 1 Pixel positions specified as 0 remain at their + current color. + + P3 is the horizontal grid size parameter. The horizontal grid + size is the horizontal distance between two pixel dots. The + VT300 ignores this parameter because the horizontal grid size is + fixed at 0.0195 cm (0.0075 in). + +In the data section: + +Characters from ? to ~ encode a column of pixels one wide and six +high. ? is all-zeros, ~ is all-ones and the low-order bit is at the +top. + +! Pn encodes a repeat count of the following character +- causes the next band of sixels to start below the current one at the left + margin +$ causes the next band to overlay the current one, starting at the left margin. +# Pn selects palette entry Pn. +# Pn1 ; Pn2 ; Pn3 ; Pn4 ; Pn5 sets palette entry Pn1 to contain the colour + (Pn3, Pn4, Pn5) in the colour space represented by Pn1 (1 = HLS, 2 = RGB). +Anything else is ignored. + +Source: +Status: DEC private +------------------------------------------------------------------------------- +Sequence: DCS v data ST +Description: Answerback message entry + +Data consists of up to 30 characters coded in hex. + +Source: DEC Terminals and Printers Handbook 1985 EB 26291-56 +Status: DEC private; LA100 +------------------------------------------------------------------------------- +Sequence: DCS Ps1 ; Ps2 ... x Pstr ST +Description: DECtalk commands + +Synchronize P;11x \ +Load Dictionary P0;40z name sub ESC \ +Answer Phone P;60;10;[number of rings]z \ +Hang Up Phone P;60;11z \ +Enable Keypad P;60;20z \ +Set Timeout P;60;30;[number of seconds]z \ +Tone Dial P;60;40z text \ +Pulse Dial P;60;41z text \ +On-hook Status (response) P;70;0x \ +Off-hook status (response) P;70;1z \ +Timeout status (response) P;70;2z \ + +Source: DEC Terminals and Printers Handbook 1985 EB 26291-56 ppG6-G9 +Status: DEC private; DECtalk +------------------------------------------------------------------------------- +Sequence: DCS 0 ; Ps2 ; Ps3 y FntRcrd ; CommentRecord ST +Mnemonic: DECLFF +Description: Load font file + +Ps2 Meaning +0 Print summary sheet +1 Don't print summary sheet + +Ps3 Meaning +0 Delete all fonts +1 Replace fonts with same ID + +FntRcrd = data for font set + +ComentRecord = user supplied text + +Source: DEC Terminals and Printers Handbook 1985 EB 26291-56 pE109 +Status: DEC private; LA100, LN03 +------------------------------------------------------------------------------- +Sequence: DCS Pfn ; Pcn ; Pe ; Pcms ; Pw ; Pt ; Pcmh ; Pcss { + Dscs Sxbp1 ; Sxbp2 ; ... ST +Mnemonic: DECDLD +Description: Down-line load DRCS characters + +Pfn;Pcn;Pe;Pcms;Pw;Pt are parameter characters, separated by +semicolons, that define parameters described in Table 4-9. Valid +values for Pcms, Pw, and Pt are: Pcms = 0, 2, 3 or 4; Pw = 0, 1 or 2; +and Pt = 0 or 1. Invalid combinations are ignored. A font loaded for +80 columns can be used in 132 columns and a font loaded for 132 +columns can be used in 80 columns. + +{ (7/11) is the final character that signals the end of the parameter +characters and specifies a DECDLD function. + +Dscs defines the character set "name" for the soft font, and is used +in the SCS (select character set) escape sequence. + +Sxbp1;Sxbp2;...;Sxbpn are sixel bit patterns (1 to 94 patterns) for +characters separated by semicolons. Each sixel bit pattern has the +form: + + S...S/S...S + +where the first S...S represents the upper columns (sixels) of the +DRCS character, the slash (2/5) advances the sixel pattern to the +lower columns of the DRCS character, and the second S...S represents +the lower columns (sixels) of the DRCS (see Figure 4-6). + +ST (9/12) is the string terminator. It is an 8-bit control character +that you can also express as ESC \ (1/11 5/12) when coding for a 7-bit +environment. + +Table 4-9 DECDLD Parameter Characters + +Parameter Name Description + Pfn Font Number Specifies DRCS font buffer to be loaded. The + VT220 has only one DRCS font + buffer. This parameter has two valid + values: 0 and 1. + + Pcn Starting + Character + Number + + Selects starting character in DRCS font + buffer to be loaded. For example: + Parameter value 1 specifies a column 2/row + 1 character, parameter 94 specifies + a column 7/row 14 character (Table 2-1 in + Chapter 2). + + Pe Erase Control Selects which characters are erased before + loading according to: + + 0 = erase all characters in this DRCS set + 1 = erase only the characters that are being + reloaded + 2 = erase all characters in all DRCS sets + (this font buffer number and + other font buffer numbers) + + Pcms Character Matrix + Size Defines the expected limit of the character + matrix size according to: + + 0 = Device default (7 x 10) + 1 = (not used) + 2 = 5 x 10 + 3 = 6 x 10 + 4 = 7 x 10 + 5 = 5 x Pcmh + 6 = 6 x Pcmh + 7 = 7 x Pcmh + 8 = 8 x Pcmh + 9 = 9 x Pcmh + 10 = 10 x Pcmh + + Pw Width Attribute Specifies the width attribute according to: + + 0 = Device default (80 Columns) + 1 = 80 column + 2 = 132 column + + Pt Text/ Full-Cell Allows software to treat the font as a text + font or a full-cell font according to: + + 0 = Device default (text) + 1 = Text + 2 = Full-Cell (not used) + + Full-Cell fonts can individually address + all pixels in a cell, while text fonts, in + general, may not be able to address all + pixels individually. + + Pcmh Character Matrix Height + Sets the character matrix size in conjuction + with Pcms. The maximum is device-dependent. + + Pcss Character-set size + 0 = 94 characters 1 = 96 characters + +[ The sixels have MSB at the bottom and an offset of 077 octal applied ] + +Source: +Status: DEC private; VT200 +------------------------------------------------------------------------------- +Sequence: DCS 2000 ; Pterm ; Ptag { Ps ST +Mnemonic: WRQCMD +Description: Invoke a reflection command + +Source: Reflection TRM (VT) Version 7.0 +Status: WRQ private +------------------------------------------------------------------------------- +Sequence: DCS ... | ... ST +Mnemonic: DECUDK +Description: User-defined keys + +Source: Paul Williams in mail + <3844F164.F2242F18@rdel.co.uk> +Status: DEC private +------------------------------------------------------------------------------- +Sequence: DCS Ps1 ; Ps2 } IDstring ST +Mnemonic: DECATFF +Description: Assign to font file + +Ps1 Meaning +1 Assign by font (default) +2 Assign by font family + +Ps2 = font number for use with SGR + +IDstring = name associated with font number + +Source: DEC Terminals and Printers Handbook 1985 EB 26291-56 pE108 +Status: DEC private; LA100, LN03 +------------------------------------------------------------------------------- +Sequence: DCS Ps ! q ... ST +Description: Enter GIDIS mode + +Source: DEC Terminals and Printers Handbook 1985 EB 26291-56 pE126 +Status: DEC private; LCP01 +------------------------------------------------------------------------------- +Sequence: DCS Ps ~ IDstring ST +Mnemonic: DECDTFF +Description: Delete type family or font file + +Ps1 Meaning +0 IDstring is type family +1 IDstring is font + +IDstring = 7 letter family name or 16 letter font ID + +Source: DEC Terminals and Printers Handbook 1985 EB 26291-56 pE108 +Status: DEC private; LN03 +------------------------------------------------------------------------------- +Sequence: DCS Pn ! u Ps ST +Mnemonic: DECAUPSS +Description: Assign user-preferred supplemental set + +Pn = 0 for 94-character, 1 for 96-character (?) +Ps = character set specifier as passed to GZD4 and co. (?) + +Source: Reflection TRM (VT) Version 7.0 +Status: DEC private +------------------------------------------------------------------------------- +Sequence: DCS Pn1 ; Pn2 ; Pn3 ! z Ps ST +Mnemonic: DECDMAC + +You can define macros that are interpreted as normal input when +emulating the VT420 terminal. Any macro definitions that do not fit +into the memory allotted are ignored. An RIS or DECSR clears all macro +definitions. A soft reset (DECSTR) has no effect. + +Pn1: Macro ID number (0-63). If you give a macro an ID number that +already exists, the old macro definition is deleted and the new one is +used. If exceeds 63, Reflection ignores this control +function. Everything but the Csi 5i and Csi 4i control functions are +passed to the printer. + +Pn2: Determine how a new macro definition is treated: If Pn2 is 0 or +omitted, an old macro with the same macro ID number is deleted. If +Pn2 is 1, DECDMAC deletes all current macro definitions before +defining this macro. If is a number that is not 0 or 1, the macro +is ignored. + +Pn3: Select the encoding format for the text of the macro definition: +If Pn3 is 0 or omitted, ASCII text is used in the macro. If Pn3 is +1, hex pairs are used (each pair of characters in the macro is the hex +value for a single ASCII character. If Pn3 is a number that is not 0 +or 1, the macro is ignored. The string of text and control functions +to be performed when the macro is invoked. If hex pairs are used, you +can also use a repeat introducer (!) in Ps. The repeat introducer +lets you repeat any hex pair in the definition string any number of +times. + +Source: Reflection TRM (VT) Version 7.0 +Status: DEC private +------------------------------------------------------------------------------- +Sequence: DCS ... ! | ... ST +Mnemonic: DECRPTUI +Description: Report Terminal Unit Information + +(to Host) + +Source: Paul Williams in mail + <3844F164.F2242F18@rdel.co.uk> +Status: DEC private +------------------------------------------------------------------------------- +Sequence: DCS Pn ! ~ Ps ST +Mnemonic: DECCKSR +Description: Checksum response + +This is sent by the terminal in response to DECRQCRA or DSR ? 63. Ps +is a four-digit hexadecimal checksum. Pn is the identifier given in +the checksum request. + +Source: Reflection TRM (VT) Version 7.0 +Status: DEC private; VT400 +------------------------------------------------------------------------------- +Sequence: DCS ... " { ... ST +Mnemonic: DECFSR +Description: Font Status Report + +Source: Paul Williams in mail + <3844F164.F2242F18@rdel.co.uk> +Status: DEC private +------------------------------------------------------------------------------- +Sequence: DCS 1 $ p Ps ST +Mnemonic: DECRSTS +Description: Restore terminal state + +Sets terminal state. Ps should be a string returned by DECTSR. + +Source: Reflection TRM (VT) Version 7.0 +Status: DEC private; VT300 +------------------------------------------------------------------------------- +Sequence: DCS 2 $ p Ps ST +Mnemonic: DECRSTS +Description: Restore color table + +Sets the color table. Ps is as specified under DECCTR. + +Source: Reflection TRM (VT) Version 7.0 +Status: DEC private; VT300 +------------------------------------------------------------------------------- +Sequence: DCS $ q Ps ST +Mnemonic: DECRQSS +Description: Control function settings request + +This sequence is sent by the host to request the terminal to report +the setting of a control function. The control function in question +is specified by Ps, which is the intermediate (if any) and final bytes +of the function's control sequence. The following values of Ps are +supported: + +m => SGR +r => DECSTBM +$ | => DECSCPP +$ } => DECSASD +$ ~ => DECSSDT +" p => DECSCL +" q => DECSCA + +The terminal responds with DECRPSS. Only one control function may be +queried at a time. + +Source: Reflection TRM (VT) Version 7.0 +Status: DEC private +------------------------------------------------------------------------------- +Sequence: DCS Pn $ r Ps ST +Mnemonic: DECRPSS +Description: Control function settings response + +This sequence is returned by the terminal in response to DECRQSS. + +Pn is 0 if the request was invalid (e.g. for a function that can't be +reported) or 1 if it was successful. + +Ps is the complete control sequence (minus the leading CSI) necessary +to set the state of the requested control function. + +Source: Reflection TRM (VT) Version 7.0 +Status: DEC private +------------------------------------------------------------------------------- +Sequence: DCS 1 $ s Ps ST +Mnemonic: DECTSR +Description: Terminal state report + +This is sent in response to a DECRQTSR, and contains an opaque +representation of the terminal's state. + +Source: Reflection TRM (VT) Version 7.0 +Status: DEC private; VT300 +------------------------------------------------------------------------------- +Sequence: DCS 2 $ s Ps ST +Mnemonic: DECCTR +Description: Color table report + +This is sent by the terminal in response to DECRQTSR. Ps contains the +terminal's colour table. The palette entries are separated by slashes, and +each one containe (semicolon-separated): + +Color ??? +Colour space (1 => HLS, 2 => RGB) +Components (H;L;S or R;G;B) + +Source: Reflection TRM (VT) Version 7.0 +Status: DEC private +------------------------------------------------------------------------------- +Sequence: DCS Ps $ t Ps ST +Mnemonic: DECRSPS +Description: Restore presentation state + +Ps is 1 to restore cursor information and 2 to restore tab stops. Ps is +in the format returned by DECCIR or DECTABSR respectively. + +Source: Reflection TRM (VT) Version 7.0 +Status: DEC private +------------------------------------------------------------------------------- +Sequence: DCS 1 $ u Pr ; Pc ; Pp ; Srend ; Satt ; Sflag ; Pgl ; Pgr ; Scss ; + Sdesig ST +Mnemonic: DECCIR +Description: Cursor information report + +See DECRQPSR for request. + + * Response DCS 1 $ u Pr; Pc; Pp; Srend; Satt; Sflag; Pgl; Pgr; Scss; Sdesig ST + * where Pr is cursor row (counted from origin as 1,1) + * Pc is cursor column + * Pp is 1, video page, a constant for VT320s + * Srend = 40h + 8 (rev video on) + 4 (blinking on) + * + 2 (underline on) + 1 (bold on) + * Satt = 40h + 1 (selective erase on) + * Sflag = 40h + 8 (autowrap pending) + 4 (SS3 pending) + * + 2 (SS2 pending) + 1 (Origin mode on) + * Pgl = char set in GL (0 = G0, 1 = G1, 2 = G2, 3 = G3) + * Pgr = char set in GR (same as for Pgl) + * Scss = 40h + 8 (G3 is 96 char) + 4 (G2 is 96 char) + * + 2 (G1 is 96 char) + 1 (G0 is 96 char) + * Sdesig is string of character idents for sets G0...G3, with + * no separators between set idents. + * If NRCs are active the set idents (all 94 byte types) are: + * British A Italian Y + * Dutch 4 Norwegian/Danish ' (hex 60) or E or 6 + * Finnish 5 or C Portuguese %6 or g or L + * French R or f Spanish Z + * French Canadian 9 or Q Swedish 7 or H + * German K Swiss = + * Hebrew %= + * (MS Kermit uses any choice when there are multiple) + */ + +Source: vttest-990712 vt420.c +Status: DEC private +------------------------------------------------------------------------------- +Sequence: DCS 2 $ u Ps ST +Mnemonic: DECTABSR +Description: Tab stop report + +Sent by the terminal is response to a DECRQPSR. + +Ps is a slash-separated list of tab stops. + +Source: Reflection TRM (VT) Version 7.0 +Status: DEC private +------------------------------------------------------------------------------- +Sequence: DCS Pc $ w Ky1 / Std1 / Stu1 ; ... ; Kyn / Stnd / Stnu ST +Mnemonic: DECLKD (also DECLBD) +Description: Locator key definition + +Pc - Clear parameter + +0 (or omitted) Clear all LKDs before loading new values. All button + definition strings are empty (not the default). +1 Clear old definition only for keys that are redefined. + +Kyn / Stnd / Stnu - Key selection code n, slash delimeter, and string +parameter n for down and up key transitions. + +Kyn is a single ASCII digit, and Std/Stu is a series of ASCII hex +pairs. If Std or Stu is omitted, the corresponding button string will +be empty. Key definition strings are delimited with a semicolon (";"). + +Source: +Status: DEC private; VT340? +------------------------------------------------------------------------------- +Sequence: DCS Pn . y Ps ST +Description: xwsh device control + +Device control string. Ps is a single ansi string (character codes in +the range of octal 040 to 0176 inclusive). The following defines what +the string is used for. + +1 Set the window title. +3 Set the icon title. +4 Set the text color by string. See the -C command for a description + of how the string will be interpreted. +5 Set the page color by string. +6 Set the selection text color by string. +7 Set the selection page color by string. +8 Set the cursor text color by string. +9 Set the cursor page color by string. +10 Set the half intensity color by string. +11 Set the bold intensity color by string. +101 Bind the string to the key named by Pn+1. The key numbers are the + same as the numbers defined in . The string can contain + C style backslashed characters to get control characters into the + string. When the key is pressed the value will be sent to the + process that xwsh is managing. This capability is turned off by + default for security. Turn it on with the "-bindkey2dcs" command + line option or with the "bindKey2DCS" resource. +103 Bind the string to the key named by Pn+1. The key numbers are the + same as the numbers defined in . When the key is pressed + the value will be used to invoke a function internal to xwsh. This + capability is turned off by default for security. Turn it on with + the "-bindkey2dcs" command line option or with the "bindKey2DCS" + resource. + +Source: IRIX 6.5.5 xwsh(1G) +Status: SGI private +------------------------------------------------------------------------------- +Sequence: PU1 or ESC Q +Mnemonic: PU1 +Description: Private use one + +PU1 is reserved for a function without standardized meaning for +private use as required, subject to the prior agreement between the +sender and the recipient of the data. + +Source: ECMA-48 5th Ed. 8.3.100 +Status: standard +------------------------------------------------------------------------------- +Sequence: PU2 or ESC R +Mnemonic: PU2 +Description: Private use two + +PU2 is reserved for a function without standardized meaning for +private use as required, subject to the prior agreement between the +sender and the recipient of the data. + +Source: ECMA-48 5th Ed. 8.3.101 +Status: standard +------------------------------------------------------------------------------- +Sequence: STS or ESC S +Mnemonic: STS +Description: Set transmit state + +STS is used to establish the transmit state in the receiving +device. In this state the transmission of data from the device is +possible. + +The actual initiation of transmission of data is performed by a data +communication or input/output interface control procedure which is +outside the scope of this Standard. + +The transmit state is established either by STS appearing in the +received data stream or by the operation of an appropriate key on a +keyboard. + +Source: ECMA-48 5th Ed. 8.3.145 +Status: standard +------------------------------------------------------------------------------- +Sequence: CCH or ESC T +Mnemonic: CCH +Description: Cancel character + +CCH is used to indicate that both the preceding graphic character in +the data stream, (represented by one or more bit combinations) +including SPACE, and the control function CCH itself are to be ignored +for further interpretation of the data stream. + +If the character preceding CCH in the data stream is a control +function (represented by one or more bit combinations), the effect of +CCH is not defined by this Standard. + +Source: ECMA-48 5th Ed 8.3.8 +Status: standard +------------------------------------------------------------------------------- +Sequence: MW or ESC U +Mnemonic: MW +Description: Message waiting + +MW is used to set a message waiting indicator in the receiving +device. An appropriate acknowledgement to the receipt of MW may be +given by using DEVICE STATUS REPORT (DSR). + +Source: ECMA-48 5th Ed. 8.3.83 +Status: standard +------------------------------------------------------------------------------- +Sequence: SPA or ESC V +Mnemonic: SPA +Description: Start of guarded area + +SPA is used to indicate that the active presentation position is the +first of a string of character positions in the presentation +component, the contents of which are protected against manual +alteration, are guarded against transmission or transfer, depending on +the setting of the GUARDED AREA TRANSFER MODE (GATM) and may be +protected against erasure, depending on the setting of the ERASURE +MODE (ERM). The end of this string is indicated by END OF GUARDED AREA +(EPA). + +NOTE +The control functions for area definition (DAQ, EPA, ESA, SPA, SSA) +should not be used within an SRS string or an SDS string. + +Source: ECMA-48 5th Ed. 8.3.129 +Status: standard +------------------------------------------------------------------------------- +Sequence: EPA or ESC W +Mnemonic: EPA +Description: End of guarded area + +EPA is used to indicate that the active presentation position is the +last of a string of character positions in the presentation component, +the contents of which are protected against manual alteration, are +guarded against transmission or transfer, depending on the setting of +the GUARDED AREA TRANSFER MODE (GATM), and may be protected against +erasure, depending on the setting of the ERASURE MODE (ERM). The +beginning of this string is indicated by START OF GUARDED AREA (SPA). + +NOTE +The control functions for area definition (DAQ, EPA, ESA, SPA, SSA) +should not be used within an SRS string or an SDS string. + +Source: ECMA-48 5th Ed. 8.3.46 +Status: standard +------------------------------------------------------------------------------- +Sequence: SOS or ESC X +Mnemonic: SOS +Description: Start of string + +SOS is used as the opening delimiter of a control string. The +character string following may consist of any bit combination, except +those representing SOS or STRING TERMINATOR (ST). The control string +is closed by the terminating delimiter STRING TERMINATOR (ST). The +interpretation of the character string depends on the application. + +Source: ECMA-48 5th Ed. 8.3.128 +Status: standard +------------------------------------------------------------------------------- +Sequence: SCI or ESC Z +Mnemonic: SCI +Description: Single character introducer + +SCI and the bit combination following it are used to represent a +control function or a graphic character. The bit combination +following SCI must be from 00/08 to 00/13 or 02/00 to 07/14. The use +of SCI is reserved for future standardization. + +Source: ECMA-48 5th Ed. 8.3.109 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI or ESC [ +Mnemonic: CSI +Description: Control sequence introducer + +CSI is used as the first character of a control sequence. + +Source: ECMA-48 5th Ed 8.3.16 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Pn @ +Mnemonic: ICH +Description: Insert character + +Parameter default value: Pn = 1 + +If the DEVICE COMPONENT SELECT MODE (DCSM) is set to PRESENTATION, ICH +is used to prepare the insertion of n characters, by putting into the +erased state the active presentation position and, depending on the +setting of the CHARACTER EDITING MODE (HEM), the n-1 preceding or +following character positions in the presentation component, where n +equals the value of Pn. The previous contents of the active +presentation position and an adjacent string of character positions +are shifted away from the active presentation position. The contents +of n character positions at the other end of the shifted part are +removed. The active presentation position is moved to the line home +position in the active line. The line home position is established by +the parameter value of SET LINE HOME (SLH). + +The extent of the shifted part is established by SELECT EDITING EXTENT +(SEE). + +The effect of ICH on the start or end of a selected area, the start or +end of a qualified area, or a tabulation stop in the shifted part, is +not defined by this Standard. + +If the DEVICE COMPONENT SELECT MODE (DCSM) is set to DATA, ICH is used +to prepare the insertion of n characters, by putting into the erased +state the active data position and, depending on the setting of the +CHARACTER EDITING MODE (HEM), the n-1 preceding or following character +positions in the data component, where n equals the value of Pn. The +previous contents of the active data position and an adjacent string +of character positions are shifted away from the active data +position. The contents of n character positions at the other end of +the shifted part are removed. The active data position is moved to the +line home position in the active line. The line home position is +established by the parameter value of SET LINE HOME (SLH). + +Source: ECMA-48 5th Ed. 8.3.64 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Pn A +Mnemonic: CUU +Description: Cursor up + +Parameter default value: Pn = 1 + +CUU causes the active presentation position to be moved upwards in the +presentation component by n line positions if the character path is +horizontal, or by n character positions if the character path is +vertical, where n equals the value of Pn. + +Source: ECMA-48 5th Ed 8.3.22 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI = Pc A +Mnemonic: SBC +Description: set border color + +Set the overscan (border) to the color specified. + +0 => black 8 => grey +1 => blue 9 => light blue +2 => green 10 => light green +3 => cyan 11 => light cyan +4 => red 12 => light red +5 => magenta 13 => light magenta +6 => brown 14 => yellow +7 => white 15 => light white + +Source: OpenServer 5.0.6 screen(HW) +Status: SCO private +------------------------------------------------------------------------------- +Sequence: CSI Pn B +Mnemonic: CUD +Description: Cursor down + +Parameter default value: Pn = 1 + +CUD causes the active presentation position to be moved downwards in +the presentation component by n line positions if the character path +is horizontal, or by n character positions if the character path is +vertical, where n equals the value of Pn. + +Source: ECMA-48 5th Ed 8.3.19 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI = Pn1 ; Pn2 B +Mnemonic: SBP +Description: Set bell parameters + +Sets bell parameters (where Pn1 is the pitch in Hz and Pn2 is the +duration in milliseconds) + +Source: UnixWare 7 display(7) + +Set the frequency (Pn1) and duration (Pn2) of the audible bell. The +frequency is in units of 840.3 nanoseconds, and the duration is in +units of 100 milliseconds. + +Source: OpenServer 5.0.6 screen(HW) +Status: iBCS2 private +------------------------------------------------------------------------------- +Sequence: CSI Pn C +Mnemonic: CUF +Description: Cursor right + +Parameter default value: Pn = 1 + +CUF causes the active presentation position to be moved rightwards in +the presentation component by n character positions if the character +path is horizontal, or by n line positions if the character path is +vertical, where n equals the value of Pn. + +Source: ECMA-48 5th Ed 8.3.20 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI = Pn1 ; Pn2 C +Description: Set cursor parameters + +Sets cursor parameters (where Pn1 is the starting and Pn2 is the +ending scanlines of the cursor). + +Source: UnixWare 7 display(7) +Status: SCO private +------------------------------------------------------------------------------- +Sequence: CSI Pn D +Mnemonic: CUB +Description: Cursor left + +Parameter default value: Pn = 1 + +CUB causes the active presentation position to be moved leftwards in +the presentation component by n character positions if the character +path is horizontal, or by n line positions if the character path is +vertical, where n equals the value of Pn. + +Source: ECMA-48 5th Ed 8.3.18 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI = Ps D +Mnemonic: SBI +Description: Set background intensity + +Turns the intensity of background colors on (Ps = 1) or off (Ps = 0). +Any characters printed with the ``blink'' attribute modifier will +instead be displayed as having an intense background. + +Source: OpenServer 5.0.6 screen(HW) +Status: SCO private +------------------------------------------------------------------------------- +Sequence: CSI Pn E +Mnemonic: CNL +Description: Cursor next line + +Parameter default value: Pn = 1 + +CNL causes the active presentation position to be moved to the first +character position of the n-th following line in the presentation +component, where n equals the value of Pn. + +Source: ECMA-48 5th Ed 8.3.12 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI = Ps E +Mnemonic: SBB +Description: Set background blink bit + +Sets (Ps = 1) or clears (Ps = 0) the Blink versus Bold background bit +in the M6845 CRT controller. The parameters are the exact inverse of +the SBI sequence above. Other than that, they behave the same on the +console. In GUI versions of scoansi, the application may distinguish +between these two sequences. + +Source: OpenServer 5.0.6 screen(HW) +Status: SCO private +------------------------------------------------------------------------------- +Sequence: CSI Pn F +Mnemonic: CPL +Description: Cursor preceding line + +Parameter default value: Pn = 1 + +CPL causes the active presentation position to be moved to the first +character position of the n-th preceding line in the presentation +component, where n equals the value of Pn. + +Source: ECMA-48 5th Ed 8.3.13 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI = Pc F +Mnemonic: SNF +Description: set normal foreground color + +Sets normal foreground color according to Pc: + +0 => black 8 => grey +1 => blue 9 => light blue +2 => green 10 => light green +3 => cyan 11 => light cyan +4 => red 12 => light red +5 => magenta 13 => light magenta +6 => brown 14 => yellow +7 => white 15 => light white + +Source: UnixWare 7 display(7) + +Csi =F Set the default normal foreground color to . +This sequence also sets the current color to . + +Source: +Status: SCO private +------------------------------------------------------------------------------- +Sequence: CSI Pn G +Mnemonic: CHA +Description: Cursor character absolute + +Parameter default value: Pn = 1 + +CHA causes the active presentation position to be moved to character +position n in the active line in the presentation component, where n +equals the value of Pn. + +Source: ECMA-48 5th Ed 8.5.9 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI = Pc G +Mnemonic: SNB +Description: set normal background color + +Sets normal background color according to Pc: + +0 => black 8 => grey +1 => blue 9 => light blue +2 => green 10 => light green +3 => cyan 11 => light cyan +4 => red 12 => light red +5 => magenta 13 => light magenta +6 => brown 14 => yellow +7 => white 15 => light white + +Source: UnixWare 7 display(7) + +Csi =G Set the default normal background color to . +This sequence also sets the current color to . + +Source: +Status: SCO private +------------------------------------------------------------------------------- +Sequence: CSI Pn1 ; Pn2 H +Mnemonic: CUP +Description: Cursor position + +Parameter default values: Pn1 = 1; Pn2 = 1 + +CUP causes the active presentation position to be moved in the +presentation component to the n-th line position according to the line +progression and to the m-th character position according to the +character path, where n equals the value of Pn1 and m equals the value +of Pn2. + +Source: ECMA-48 5th Ed 8.3.21 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI = Pc H +Mnemonic: SRF +Description: set reverse foreground color + +Sets reverse foreground color according to Pc: + +0 => black 8 => grey +1 => blue 9 => light blue +2 => green 10 => light green +3 => cyan 11 => light cyan +4 => red 12 => light red +5 => magenta 13 => light magenta +6 => brown 14 => yellow +7 => white 15 => light white + +Source: UnixWare 7 display(7) +Source: +Status: SCO private +------------------------------------------------------------------------------- +Sequence: CSI Pn I +Mnemonic: CHT +Description: Cursor forward tabulation + +Parameter default value: Pn = 1 + +CHT causes the active presentation position to be moved to the +character position corresponding to the n-th following character +tabulation stop in the presentation component, according to the +character path, where n equals the value of Pn. + +Source: ECMA-48 5th Ed 8.5.10 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI = Pc I +Mnemonic: SRB +Description: set reverse background color + +Sets reverse background color according to Pc: + +0 => black 8 => grey +1 => blue 9 => light blue +2 => green 10 => light green +3 => cyan 11 => light cyan +4 => red 12 => light red +5 => magenta 13 => light magenta +6 => brown 14 => yellow +7 => white 15 => light white + +Source: UnixWare 7 display(7) +Source: +Status: SCO private +------------------------------------------------------------------------------- +Sequence: CSI = ? I +Description: Screen saver off + +Source: jaltman@watsun.cc.columbia.edu (Jeffrey Altman) in comp.terminals + <7t2fe1$gj0$1@newsmaster.cc.columbia.edu> +Status: BA80 private +------------------------------------------------------------------------------- +Sequence: CSI Ps J +Mnemonic: ED +Description: Erase in page + +Parameter default value: Ps = 0 + +If the DEVICE COMPONENT SELECT MODE (DCSM) is set to PRESENTATION, ED +causes some or all character positions of the active page (the page +which contains the active presentation position in the presentation +component) to be put into the erased state, depending on the parameter +values: + +0 the active presentation position and the character positions up to + the end of the page are put into the erased state + +1 the character positions from the beginning of the page up to and + including the active presentation position are put into the erased + state + +2 all character positions of the page are put into the erased state + +If the DEVICE COMPONENT SELECT MODE (DCSM) is set to DATA, ED causes +some or all character positions of the active page (the page which +contains the active data position in the data component) to be put +into the erased state, depending on the parameter values: + +0 the active data position and the character positions up to the end + of the page are put into the erased state + +1 the character positions from the beginning of the page up to and + including the active data position are put into the erased state + +2 all character positions of the page are put into the erased state + +Whether the character positions of protected areas are put into the +erased state, or the character positions of unprotected areas only, +depends on the setting of the ERASURE MODE (ERM). + +Source: ECMA-48 5th Ed. 8.3.39 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI = Pc J +Mnemonic: SGF +Description: Set graphic foreground color + +Sets graphic foreground color according to Pc: + +0 => black 8 => grey +1 => blue 9 => light blue +2 => green 10 => light green +3 => cyan 11 => light cyan +4 => red 12 => light red +5 => magenta 13 => light magenta +6 => brown 14 => yellow +7 => white 15 => light white + +Source: UnixWare 7 display(7) +Source: +Status: SCO private +------------------------------------------------------------------------------- +Sequence: CSI ? Ps J +Mnemonic: DECSED +Description: Selective erase in display + +Parameter default value: Ps = 0 + +Depending on the value of Ps: + +0 Erases all "erasable" characters (DECSCA) from and including the + cursor to the end of the screen. Does not affect video line attributes + or video character attributes (SGR). + +1 Erases all "erasable" characters (DECSCA) from the beginning of the + screen to and including the cursor. Does not affect video line + attributes or video character attributes (SGR). + +2 Erases all "erasable" characters (DECSCA) in the entire display. Does + not affect video character attributes or video line attributes (SGR). + +Source: +Status: DEC private; VT200 +------------------------------------------------------------------------------- +Sequence: CSI ? = J +Description: Screen saver on + +Source: jaltman@watsun.cc.columbia.edu (Jeffrey Altman) in comp.terminals + <7t2fe1$gj0$1@newsmaster.cc.columbia.edu> +Status: BA80 private +------------------------------------------------------------------------------- +Sequence: CSI Ps K +Mnemonic: EL +Description: Erase in line + +Parameter default value: Ps = 0 + +If the DEVICE COMPONENT SELECT MODE (DCSM) is set to PRESENTATION, EL +causes some or all character positions of the active line (the line +which contains the active presentation position in the presentation +component) to be put into the erased state, depending on the parameter +values: + +0 the active presentation position and the character positions up to + the end of the line are put into the erased state + +1 the character positions from the beginning of the line up to and + including the active presentation position are put into the erased + state + +2 all character positions of the line are put into the erased state + +If the DEVICE COMPONENT SELECT MODE (DCSM) is set to DATA, EL causes +some or all character positions of the active line (the line which +contains the active data position in the data component) to be put +into the erased state, depending on the parameter values: + +0 the active data position and the character positions up to the end + of the line are put into the erased state + +1 the character positions from the beginning of the line up to and + including the active data position are put into the erased state + +2 all character positions of the line are put into the erased state + +Whether the character positions of protected areas are put into the +erased state, or the character positions of unprotected areas only, +depends on the setting of the ERASURE MODE (ERM). + +Source: ECMA-48 5th Ed. 8.3.41 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI = Pc K +Mnemonic: SGB +Description: set graphic background color + +Sets graphic background color according to Pc: + +0 => black 8 => grey +1 => blue 9 => light blue +2 => green 10 => light green +3 => cyan 11 => light cyan +4 => red 12 => light red +5 => magenta 13 => light magenta +6 => brown 14 => yellow +7 => white 15 => light white + +Source: UnixWare 7 display(7) +Source: +Status: SCO private +------------------------------------------------------------------------------- +Sequence: CSI ? Ps K +Mnemonic: DECSEL +Description: Selective erase in line + +Parameter default value: Ps = 0 + +Depending on the value of Ps: + +0 Erases all "erasable" characters (DECSCA) from the cursor to the end + of the line. Does not affect video line attributes or video character + attributes (SGR). + +1 Erases all "erasable" characters (DECSCA) from the beginning of the + line to and including the cursor position. Does not affect video line + attributes or video character attributes. + +2 Erases all "erasable" characters (DECSCA) on the line. Does not + affect video line attributes or video character attributes. + +Source: +Status: DEC private; VT200 +------------------------------------------------------------------------------- +Sequence: CSI Pn L +Mnemonic: IL +Description: Insert line + +Parameter default value: Pn = 1 + +If the DEVICE COMPONENT SELECT MODE (DCSM) is set to PRESENTATION, IL +is used to prepare the insertion of n lines, by putting into the +erased state in the presentation component the active line (the line +that contains the active presentation position) and, depending on the +setting of the LINE EDITING MODE (VEM), the n-1 preceding or following +lines, where n equals the value of Pn. The previous contents of the +active line and of adjacent lines are shifted away from the active +line. The contents of n lines at the other end of the shifted part are +removed. The active presentation position is moved to the line home +position in the active line. The line home position is established by +the parameter value of SET LINE HOME (SLH). + +The extent of the shifted part is established by SELECT EDITING EXTENT +(SEE). + +Any occurrences of the start or end of a selected area, the start or +end of a qualified area, or a tabulation stop in the shifted part, are +also shifted. + +If the TABULATION STOP MODE (TSM) is set to SINGLE, character +tabulation stops are cleared in the lines that are put into the erased +state. + +If the DEVICE COMPONENT SELECT MODE (DCSM) is set to DATA, IL is used +to prepare the insertion of n lines, by putting into the erased state +in the data component the active line (the line that contains the +active data position) and, depending on the setting of the LINE +EDITING MODE (VEM), the n-1 preceding or following lines, where n +equals the value of Pn. The previous contents of the active line and +of adjacent lines are shifted away from the active line. The contents +of n lines at the other end of the shifted part are removed. The +active data position is moved to the line home position in the active +line. The line home position is established by the parameter value of +SET LINE HOME (SLH). + +Source: ECMA-48 5th Ed. 8.3.67 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI = Ps L +Mnemonic: SEF +Description: Set emulator feature + + Control the various emulator features. Parameter Ps indicates the + action to be taken: + + ---------------------------------------------------------------- + Value Meaning + ---------------------------------------------------------------- + 0 New regions filled with the current attribute (default) + 1 New regions filled with the normal attribute + 2 Disable iBCS2 compliance (default) + 3 Enable iBCS2 compliance + 4 Disable ANSI SGR0 interpretation (default) + 5 Enable ANSI SGR0 interpretation + 6 Disable backwards compatibility mode (default) + 7 Enable backwards compatibility mode (resets margins too) + 8 Cursor motion bound by region (default) + 9 Cursor motion unbound + 10 Enable 8-bit keyboard meta mode (default) + 11 Disable 8-bit keyboard meta mode + 12 Disable debugging for this screen (default) + 13 Enable debugging for this screen (do not use) + 14 Disable global video loop debugging (default) + 15 Enable global video loop debugging (do not use) + 16 Enable M6845 frame buffer optimization (default) + 17 Disable M6845 frame buffer optimization (debugging only) + 20 Disable using ESC for meta (high) bit. + 21 Enable using ESC for meta (high) bit. + +Source: OpenServer 5.0.6 screen(HW) +Status: SCO private +------------------------------------------------------------------------------- +Sequence: CSI Pn M +Mnemonic: DL +Description: Delete line + +Parameter default value: Pn = 1 + +If the DEVICE COMPONENT SELECT MODE (DCSM) is set to PRESENTATION, DL +causes the contents of the active line (the line that contains the +active presentation position) and, depending on the setting of the +LINE EDITING MODE (VEM), the contents of the n-1 preceding or +following lines to be removed from the presentation component, where n +equals the value of Pn. The resulting gap is closed by shifting the +contents of a number of adjacent lines towards the active line. At the +other end of the shifted part, n lines are put into the erased state. + +The active presentation position is moved to the line home position in +the active line. The line home position is established by the +parameter value of SET LINE HOME (SLH). If the TABULATION STOP MODE +(TSM) is set to SINGLE, character tabulation stops are cleared in the +lines that are put into the erased state. + +The extent of the shifted part is established by SELECT EDITING EXTENT (SEE). + +Any occurrences of the start or end of a selected area, the start or +end of a qualified area, or a tabulation stop in the shifted part, are +also shifted. + +If the DEVICE COMPONENT SELECT MODE (DCSM) is set to DATA, DL causes +the contents of the active line (the line that contains the active +data position) and, depending on the setting of the LINE EDITING MODE +(VEM), the contents of the n-1 preceding or following lines to be +removed from the data component, where n equals the value of Pn. The +resulting gap is closed by shifting the contents of a number of +adjacent lines towards the active line. At the other end of the +shifted part, n lines are put into the erased state. The active data +position is moved to the line home position in the active line. The +line home position is established by the parameter value of SET LINE +HOME (SLH). + +Source: ECMA-48 5th Ed 8.3.32 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI = Ps M +Mnemonic: RAS +Description: Return attribute setting + + Use this sequence to return the current settings for the attribute + type specified by Ps. Attributes are returned via the keyboard data + input stream as text decimal numbers separated by a space and + terminated with a newline. The attribute values returned use the ISO + color numbering scheme. For example, if the current normal attribute + setting is bright yellow on a blue background, CSI = 0 M would return + ``14 1\n''. Ps can be one of the following values: + + --------------------------------------------------------------- + Value Meaning + --------------------------------------------------------------- + 0 Return the current normal attribute setting + 1 Return the current reverse video attribute setting + 2 Return the current graphic character attribute setting + +Colour are: +0 => black 8 => grey +1 => blue 9 => light blue +2 => green 10 => light green +3 => cyan 11 => light cyan +4 => red 12 => light red +5 => magenta 13 => light magenta +6 => brown 14 => yellow +7 => white 15 => light white + +Source: OpenServer 5.0.6 screen(HW) +Status: SCO private +------------------------------------------------------------------------------- +Sequence: CSI Ps N +Mnemonic: EF +Description: Erase in field + +Parameter default value: Ps = 0 + +If the DEVICE COMPONENT SELECT MODE (DCSM) is set to PRESENTATION, EF +causes some or all character positions of the active field (the field +which contains the active presentation position in the presentation +component) to be put into the erased state, depending on the parameter +values: + +0 the active presentation position and the character positions up to + the end of the field are put into the erased state + +1 the character positions from the beginning of the field up to and + including the active presentation position are put into the erased + state + +2 all character positions of the field are put into the erased state + +If the DEVICE COMPONENT SELECT MODE (DCSM) is set to DATA, EF causes +some or all character positions of the active field (the field which +contains the active data position in the data component) to be put +into the erased state, depending on the parameter values: + +0 the active data position and the character positions up to the end + of the field are put into the erased state + +1 the character positions from the beginning of the field up to and + including the active data position are put into the erased state + +2 all character positions of the field are put into the erased state + +Whether the character positions of protected areas are put into the +erased state, or the character positions of unprotected areas only, +depends on the setting of the ERASURE MODE (ERM). + +Source: ECMA-48 5th Ed. 8.3.40 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Ps O +Mnemonic: EA +Description Erase in area + +Parameter default value: Ps = 0 + +If the DEVICE COMPONENT SELECT MODE (DCSM) is set to PRESENTATION, EA +causes some or all character positions in the active qualified area +(the qualified area in the presentation component which contains the +active presentation position) to be put into the erased state, +depending on the parameter values: + +0 the active presentation position and the character positions up to + the end of the qualified area are put into the erased state + +1 the character positions from the beginning of the qualified area up + to and including the active presentation position are put into the + erased state + +2 all character positions of the qualified area are put into the + erased state + +If the DEVICE COMPONENT SELECT MODE (DCSM) is set to DATA, EA causes +some or all character positions in the active qualified area (the +qualified area in the data component which contains the active data +position) to be put into the erased state, depending on the parameter +values: + +0 the active data position and the character positions up to the end + of the qualified area are put into the erased state + +1 the character positions from the beginning of the qualified area up + to and including the active data position are put into the erased + state + +2 all character positions of the qualified area are put into the + erased state + +Whether the character positions of protected areas are put into the +erased state, or the character positions of unprotected areas only, +depends on the setting of the ERASURE MODE (ERM). + +Source: ECMA-48 5th Ed. 8.3.37 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Pn P +Mnemonic: DCH +Description: Delete character + +Parameter default value: Pn = 1 + +If the DEVICE COMPONENT SELECT MODE (DCSM) is set to PRESENTATION, DCH +causes the contents of the active presentation position and, depending +on the setting of the CHARACTER EDITING MODE (HEM), the contents of +the n-1 preceding or following character positions to be removed from +the presentation component, where n equals the value of Pn. The +resulting gap is closed by shifting the contents of the adjacent +character positions towards the active presentation position. At the +other end of the shifted part, n character positions are put into the +erased state. + +The extent of the shifted part is established by SELECT EDITING EXTENT (SEE). + +The effect of DCH on the start or end of a selected area, the start or +end of a qualified area, or a tabulation stop in the shifted part is +not defined by this Standard. + +If the DEVICE COMPONENT SELECT MODE (DCSM) is set to DATA, DCH causes +the contents of the active data position and, depending on the setting +of the CHARACTER EDITING MODE (HEM), the contents of the n-1 preceding +or following character positions to be removed from the data +component, where n equals the value of Pn. The resulting gap is closed +by shifting the contents of the adjacent character positions towards +the active data position. At the other end of the shifted part, n +character positions are put into the erased state. + +Source: ECMA-48 5th Ed 8.3.26 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Ps Q +Mnemonic: SEE +Description: Select editing extent + +Parameter default value: Ps = 0 + +SEE is used to establish the editing extent for subsequent character +or line insertion or deletion. The established extent remains in +effect until the next occurrence of SEE in the data stream. The +editing extent depends on the parameter value: + +0 the shifted part is limited to the active page in the presentation +component + +1 the shifted part is limited to the active line in the presentation +component + +2 the shifted part is limited to the active field in the presentation +component + +3 the shifted part is limited to the active qualified area + +4 the shifted part consists of the relevant part of the entire +presentation component. + +Source: ECMA-48 5th Ed. 8.3.115 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Pn1 ; Pn2 R +Mnemonic: CPR +Description: Active position report + +Parameter default values: Pn1 = 1; Pn2 = 1 + +If the DEVICE COMPONENT SELECT MODE (DCSM) is set to PRESENTATION, CPR +is used to report the active presentation position of the sending +device as residing in the presentation component at the n-th line +position according to the line progression and at the m-th character +position according to the character path, where n equals the value of +Pn1 and m equals the value of Pn2. + +If the DEVICE COMPONENT SELECT MODE (DCSM) is set to DATA, CPR is used +to report the active data position of the sending device as residing +in the data component at the n-th line position according to the line +progression and at the m-th character position according to the +character progression, where n equals the value of Pn1 and m equals +the value of Pn2. + +CPR may be solicited by a DEVICE STATUS REPORT (DSR) or be sent +unsolicited. + +Source: ECMA-48 5th Ed 8.3.14 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Pn S +Mnemonic: SU +Description: Scroll up + +Parameter default value: Pn = 1 + +SU causes the data in the presentation component to be moved by n line +positions if the line orientation is horizontal, or by n character +positions if the line orientation is vertical, such that the data +appear to move up; where n equals the value of Pn. + +The active presentation position is not affected by this control +function. + +Source: ECMA-48 5th Ed. 8.3.147 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Pn T +Mnemonic: SD +Description: Scroll down + +Parameter default value: Pn = 1 + +SD causes the data in the presentation component to be moved by n line +positions if the line orientation is horizontal, or by n character +positions if the line orientation is vertical, such that the data +appear to move down; where n equals the value of Pn. + +The active presentation position is not affected by this control +function. + +Source: ECMA-48 5th Ed. 8.3.113 + +[ NB: that paragraph of the standard erroneously claims SD is CSI Pn ^. ] + +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Pn1 ; Pn2 ; Pn3 ; Pn4 ; Pn5 T +Description: Initiate hilite mouse tracking + +Source: XFree86: xc/doc/specs/xterm/ctlseqs.ms,v 3.29 1999/09/27 06:29:05 +Status: xterm private; clashes with ECMA-48 +------------------------------------------------------------------------------- +Sequence: CSI Pn U +Mnemonic: NP +Description: Next page + +Parameter default value: Pn = 1 + +NP causes the n-th following page in the presentation component to be +displayed, where n equals the value of Pn. + +The effect of this control function on the active presentation +position is not defined by this Standard. + +Source: ECMA-48 5th Ed. 8.3.87 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Pn V +Mnemonic: PP +Description: Preceding page + +Parameter default value: Pn = 1 + +PP causes the n-th preceding page in the presentation component to be +displayed, where n equals the value of Pn. The effect of this control +function on the active presentation position is not defined by this +Standard. + +Source: ECMA-48 5th Ed. 8.3.95 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Ps ... W +Mnemonic: CTC +Description: Cursor tabulation control + +Parameter default value: Ps = 0 + +CTC causes one or more tabulation stops to be set or cleared in the +presentation component, depending on the parameter values: + +0 a character tabulation stop is set at the active presentation position +1 a line tabulation stop is set at the active line (the line that + contains the active presentation position) +2 the character tabulation stop at the active presentation position is + cleared +3 the line tabulation stop at the active line is cleared +4 all character tabulation stops in the active line are cleared +5 all character tabulation stops are cleared +6 all line tabulation stops are cleared + +In the case of parameter values 0, 2 or 4 the number of lines affected +depends on the setting of the TABULATION STOP MODE (TSM). + +Source: ECMA-48 5th Ed 8.3.17 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Pn X +Mnemonic: ECH +Description: Erase character + +Parameter default value: Pn = 1 + +If the DEVICE COMPONENT SELECT MODE (DCSM) is set to PRESENTATION, ECH +causes the active presentation position and the n-1 following +character positions in the presentation component to be put into the +erased state, where n equals the value of Pn. + +If the DEVICE COMPONENT SELECT MODE (DCSM) is set to DATA, ECH causes +the active data position and the n-1 following character positions in +the data component to be put into the erased state, where n equals the +value of Pn. + +Whether the character positions of protected areas are put into the +erased state, or the character positions of unprotected areas only, +depends on the setting of the ERASURE MODE (ERM). + +Source: ECMA-48 5th Ed. 8.3.38 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Pn Y +Mnemonic: CVT +Description: Cursor line tabulation + +Parameter default value: Pn = 1 + +CVT causes the active presentation position to be moved to the +corresponding character position of the line corresponding to the n-th +following line tabulation stop in the presentation component, where n +equals the value of Pn. + +Source: ECMA-48 8.3.23 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Pn Z +Mnemonic: CBT +Description: Cursor backward tabulation + +Parameter default value: Pn = 1 + +CBT causes the active presentation position to be moved to the +character position corresponding to the n-th preceding character +tabulation stop in the presentation component, according to the +character path, where n equals the value of Pn. + +Source: ECMA-48 5th Ed 8.3.7 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Ps [ +Mnemonic: SRS +Description: Start reversed string + +Parameter default value: Ps = 0 + +SRS is used to establish in the data component the beginning and the +end of a string of characters as well as the direction of the +string. This direction is opposite to that currently established. The +indicated string follows the preceding text. The established character +progression is not affected. + +The beginning of a reversed string is indicated by SRS with a +parameter value of 1. A reversed string may contain one or more nested +strings. These nested strings may be reversed strings the beginnings +of which are indicated by SRS with a parameter value of 1, or directed +strings the beginnings of which are indicated by START DIRECTED STRING +(SDS) with a parameter value not equal to 0. Every beginning of such a +string invokes the next deeper level of nesting. + +This Standard does not define the location of the active data position +within any such nested string. + +The end of a reversed string is indicated by SRS with a parameter +value of 0. Every end of such a string re-establishes the next higher +level of nesting (the one in effect prior to the string just +ended). The direction is re-established to that in effect prior to the +string just ended. The active data position is moved to the character +position following the characters of the string just ended. + +The parameter values are: + +0 end of a reversed string; re-establish the previous direction +1 beginning of a reversed string; reverse the direction. + +NOTE 1 +The effect of receiving a CVT, HT, SCP, SPD or VT control function +within an SRS string is not defined by this Standard. + +NOTE 2 +The control functions for area definition (DAQ, EPA, ESA, SPA, SSA) +should not be used within an SRS string. + +Source: ECMA-48 5th Ed. 8.3.137 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI [ +Description: Ignore next character + +However, after CSI [ (or ESC [ [) a single character is read and this +entire sequence is ignored. (The idea is to ignore an echoed function +key.) + +Source: Linux console_codes(4) +Status: Linux private; clashes with ECMA-48 SRS +------------------------------------------------------------------------------- +Sequence: CSI Ps \ +Mnemonic: PTX +Description: Parallel texts + +Parameter default value: Ps = 0 + +PTX is used to delimit strings of graphic characters that are +communicated one after another in the data stream but that are +intended to be presented in parallel with one another, usually in +adjacent lines. + +The parameter values are + +0 end of parallel texts +1 beginning of a string of principal parallel text +2 beginning of a string of supplementary parallel text +3 beginning of a string of supplementary Japanese phonetic annotation +4 beginning of a string of supplementary Chinese phonetic annotation +5 end of a string of supplementary phonetic annotations + +PTX with a parameter value of 1 indicates the beginning of the string +of principal text intended to be presented in parallel with one or +more strings of supplementary text. PTX with a parameter value of 2, +3 or 4 indicates the beginning of a string of supplementary text that +is intended to be presented in parallel with either a string of +principal text or the immediately preceding string of supplementary +text, if any; at the same time it indicates the end of the preceding +string of principal text or of the immediately preceding string of +supplementary text, if any. The end of a string of supplementary text +is indicated by a subsequent occurrence of PTX with a parameter value +other than 1. + +PTX with a parameter value of 0 indicates the end of the strings of +text intended to be presented in parallel with one another. + +NOTE + +PTX does not explicitly specify the relative placement of the strings +of principal and supplementary parallel texts, or the relative sizes +of graphic characters in the strings of parallel text. A string of +supplementary text is normally presented in a line adjacent to the +line containing the string of principal text, or adjacent to the line +containing the immediately preceding string of supplementary text, if +any. The first graphic character of the string of principal text and +the first graphic character of a string of supplementary text are +normally presented in the same position of their respective lines. +However, a string of supplementary text longer (when presented) than +the associated string of principal text may be centred on that +string. In the case of long strings of text, such as paragraphs in +different languages, the strings may be presented in successive lines +in parallel columns, with their beginnings aligned with one another +and the shorter of the paragraphs followed by an appropriate amount of +"white space". + +Japanese phonetic annotation typically consists of a few half-size or +smaller Kana characters which indicate the pronunciation or +interpretation of one or more Kanji characters and are presented above +those Kanji characters if the character path is horizontal, or to the +right of them if the character path is vertical. + +Chinese phonetic annotation typically consists of a few Pinyin +characters which indicate the pronunciation of one or more Hanzi +characters and are presented above those Hanzi characters. +Alternatively, the Pinyin characters may be presented in the same line +as the Hanzi characters and following the respective Hanzi +characters. The Pinyin characters will then be presented within +enclosing pairs of parentheses. + +Source: ECMA-48 5th Ed. 8.3.99 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Ps ] +Mnemonic: SDS +Description: Start directed string + +Parameter default value: Ps = 0 + +SDS is used to establish in the data component the beginning and the +end of a string of characters as well as the direction of the +string. This direction may be different from that currently +established. The indicated string follows the preceding text. The +established character progression is not affected. + +The beginning of a directed string is indicated by SDS with a +parameter value not equal to 0. A directed string may contain one or +more nested strings. These nested strings may be directed strings the +beginnings of which are indicated by SDS with a parameter value not +equal to 0, or reversed strings the beginnings of which are indicated +by START REVERSED STRING (SRS) with a parameter value of 1. Every +beginning of such a string invokes the next deeper level of nesting. + +This Standard does not define the location of the active data position +within any such nested string. + +The end of a directed string is indicated by SDS with a parameter +value of 0. Every end of such a string re-establishes the next higher +level of nesting (the one in effect prior to the string just +ended). The direction is re-established to that in effect prior to the +string just ended. The active data position is moved to the character +position following the characters of the string just ended. + +The parameter values are: +0 end of a directed string; re-establish the previous direction +1 start of a directed string; establish the direction left-to-right +2 start of a directed string; establish the direction right-to-left + +NOTE 1 +The effect of receiving a CVT, HT, SCP, SPD or VT control function +within an SDS string is not defined by this Standard. + +NOTE 2 +The control functions for area definition (DAQ, EPA, ESA, SPA, SSA) +should not be used within an SDS string. + +Source: ECMA-48 5th Ed. 8.3.114 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Ps ; Pn ... ] +Description: Linux private sequences + + ESC [ 1 ; n ] Set color n as the underline color + ESC [ 2 ; n ] Set color n as the dim color + ESC [ 8 ] Make the current color pair the default attributes. + ESC [ 9 ; n ] Set screen blank timeout to n minutes. + ESC [ 10 ; n ] Set bell frequency in Hz. + ESC [ 11 ; n ] Set bell duration in msec. + ESC [ 12 ; n ] Bring specified console to the front. + ESC [ 13 ] Unblank the screen. + ESC [ 14 ; n ] Set the VESA powerdown interval in minutes. + +Source: Linux console_codes(4) +Status: Linux private; clashes with ECMA-48 SDS +------------------------------------------------------------------------------- +Sequence: CSI Ps ^ +Mnemonic: SIMD +Description: Select implicit movement direction + +Parameter default value: Ps = 0 + +SIMD is used to select the direction of implicit movement of the data +position relative to the character progression. The direction selected +remains in effect until the next occurrence of SIMD. + +The parameter values are: + +0 the direction of implicit movement is the same as that of the + character progression + +1 the direction of implicit movement is opposite to that of the + character progression. + +Source: ECMA-48 5th Ed. 8.3.120 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Pn ` +Mnemonic: HPA +Description: Character position absolute + +Parameter default value: Pn = 1 + +HPA causes the active data position to be moved to character position +n in the active line (the line in the data component that contains the +active data position), where n equals the value of Pn. + +Source: ECMA-48 5th Ed. 8.3.57 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Pn a +Mnemonic: HPR +Description: Character position forward + +Parameter default value: Pn = 1 + +HPR causes the active data position to be moved by n character +positions in the data component in the direction of the character +progression, where n equals the value of Pn. + +Source: ECMA-48 5th Ed. 8.3.59 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Pn b +Mnemonic: REP +Description: Repeat + +Parameter default value: Pn = 1 + +REP is used to indicate that the preceding character in the data +stream, if it is a graphic character (represented by one or more bit +combinations) including SPACE, is to be repeated n times, where n +equals the value of Pn. If the character preceding REP is a control +function or part of a control function, the effect of REP is not +defined by this Standard. + +Source: ECMA-48 5th Ed. 8.3.103 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Ps c +Mnemonic: DA +Description: Device attributes + +Parameter default value: Ps = 0 + +With a parameter value not equal to 0, DA is used to identify the +device which sends the DA. The parameter value is a device type +identification code according to a register which is to be +established. If the parameter value is 0, DA is used to request an +identifying DA from a device. + +Source: ECMA-48 5th Ed 8.3.24 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI = Ps c +Mnemonic: HSC +Description: Hide or show cursor + + Either hide or show the cursor. When you hide the cursor, scoansi + remembers its previous shape, so that if you restore it, it is + restored to its previous shape. Ps specifies how to handle the + cursor, and can be one of the following values: + + --------------------------------------------------------------- + Value Meaning + --------------------------------------------------------------- + 0 Hide the cursor, saving its shape for a future restore + 1 Restore the cursor after hiding or making it very + visible + 2 Make the cursor very visible, saving its shape for a + future restore. If you move from a hidden to a very + visible shape, the cursor shape is not stored. This + ensures that when a restore command is given, the + original cursor shape is restored. + +Source: OpenServer 5.0.6 screen(HW) +Status: SCO private +------------------------------------------------------------------------------- +Sequence: CSI ? 10 c +Description: Request DPS configuration + +Requests that the terminal sends current DPS (Dot Pattern Set) +configuration. + +For the LA100, response is, for each installed DPS (in descending order): + +ESC [ Ps1 ; Ps2 + +Ps1 Location +010 DPS 1 +011 DPS 2 +012 DPS 3 +013 DPS 4 +014 DPS 5 + +[ These are the same numbers as are used to select the DPSes in SGR --bjh ] + +Ps2 ROM ID +001 US/UK Gothic 10 High Density Primary +002 International Gothic 10 High Density Overlay +003 US/UK Gothic 12 High Density Primary +004 International Gothic 12 High Density Overlay +005 US/UK Courier 10 High Density Primary +006 International Courier 10 High Density Overlay +007 US/UK Courier 12 High Density Primary +008 International Courier 12 High Density Overlay +009 US/UK Orator 10 High Density Primary + +For the LA210, the response is: + +ESC [ Ps1 ; Ps2 ; Ps3 ; Ps4 ; Ps5 SP D + +Ps1 is as for the LA100 + +Ps2 Meaning +1--64 Draft and letter standard DPS +64--128 Draft and memo standard DPS +129--192 Draft and letter custom DPS +192--200 Draft and memo special DPS + +Odd-numbered standard DPSes contain US and UK character sets. +Even-numbered ones also contain many others. + +Ps3 Type style +0 none +1 Gothic +5 Courier +9 Orator + +Ps4 Density +0 12/6 cpi +8 10/5 cpi + +Ps5 Matrix +0 Letter (33x18) +1 Memo (33x9) + +Source: DEC Terminals and Printers Handbook 1985 EB 26291-56 ppE6,E48-E50 +Status: DEC private; LA100, LA210 +------------------------------------------------------------------------------- +Sequence: CSI ? Ps1 ; Ps2 ; ... ; Psn c +Mnemonic: DS +Description: Device attributes (DEC) + +This is a response from the terminal to DA. +Ps1 specifies the operating level of the terminal. This determines +the meaning of the other Pses (if any). + +Ps1 == 1 VT100; Ps2 is a bitmask: + 1 => STP (processor option) + 2 => AVO (advanced video option) + 4 => GPO (graphics processor option) + 8 => PP??? + +Ps1 == 2 VT102 + +Ps1 == 4 VT132; Ps2 same as VT100 + +Ps1 == 5 VK100 (GIGI) + +Ps1 == 6 VT102 (again?) + +Ps1 == 7 VT131 + +Ps1 == 10 Letterprinter + Ps2 absent => LA100 microcode version 1 (7-bit) + Ps2 == 2 => LA100 microcode version 2 (8-bit) + PS2 == 3 => LA210 microcode version 2 (8-bit) + +Ps1 == 12 VT125; Ps2 same as VT100; Graphics firmware version in Ps3 + +Ps1 == 13 LQP02 + +Ps1 == 15, Ps2 == 1 + LA12 (DECwriter Correspondent) + +Ps1 == 17 LA50 + +Ps1 == 19 DECtalk + +Ps1 == 61 Operating level 1 (emulated VT100) +Ps1 == 62 Operating level 2 (VT200) +Ps1 == 63 Operating level 3 (VT300) +Ps1 == 64 Operating level 4 (VT400) +Ps1 == 65 Operating level 5 (VT500) + + for 61--62, the other Ps are a list of features: + + Ps meaning + 1 132 columns + 2 Printer port + 3 ReGIS graphics + 4 Sixel graphics + 6 Selective erase + 7 Soft character set (DRCS) + 8 User-defined keys + 9 National replacement character sets + 10 Text ruling vector + 11 25th status line + 12 Serbo-croatian (SCS) + 13 Local editing mode + 14 8-bit architecture + 15 Technical character set + 16 Locator device port (ReGIS) + 17 Terminal state reports + 18 Windowing capability + 19 Dual sessions + 21 Horizontal scrolling + 22 Colour + 23 Greek + 24 Turkish + 29 ANSI text locator + 39 Page memory extension + 42 ISO Latin-2 + 44 PC Term + 45 Soft key mapping + 46 ASCII terminal emulation (Wyse, TVI etc) + +Source: +Source: vttest-990712 reports.c +Source: DEC Terminals and Printers Handbook 1985 EB 26291-56 + ppC31,E11,E19,E50,E84,E90,G6 +Status: DEC private +------------------------------------------------------------------------------- +Sequence: CSI > 0 c +Mnemonic: DA +Description: Device attributes (secondary request) + +Parameter default value: 0 + +Requests secondary attributes from the terminal (model, firmware +version, options). + +Source: +Status: DEC private; VT220 +------------------------------------------------------------------------------- +Sequence: CSI > 0 ; Pv ; Po c +Mnemonic: DA +Description: Device attributes (secondary response; xterm/VT100) + +xterm returns this to indicate that it's a VT100 even though a real +VT100 wouldn't. + +Source: XFree86: xc/doc/specs/xterm/ctlseqs.ms,v 3.29 1999/09/27 06:29:05 +Status: xterm private +------------------------------------------------------------------------------- +Sequence: CSI > 1 ; Pv ; Po c +Mnemonic: DA +Description: Device attributes (secondary response, VT220) + +"I am a VT220 (identification code of 1), my firmware version is _____ +(Pv), and I have Po options installed." + +Source: +Status: DEC private; VT220 +------------------------------------------------------------------------------- +Sequence: CSI Pn d +Mnemonic: VPA +Description: Line position absolute + +Parameter default value: Pn = 1 + +VPA causes the active data position to be moved to line position n in +the data component in a direction parallel to the line progression, +where n equals the value of Pn. + +Source: ECMA-48 5th Ed. 8.3.158 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Pn e +Mnemonic: VPR +Description: Line position forward + +Parameter default value: Pn = 1 + +VPR causes the active data position to be moved by n line positions in +the data component in a direction parallel to the line progression, +where n equals the value of Pn. + +Source: ECMA-48 5th Ed. 8.3.160 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Pn1 ; Pn2 f +Mnemonic: HVP +Description: Character and line position + +Parameter default values: Pn1 = 1; Pn2 = 1 + +HVP causes the active data position to be moved in the data component +to the n-th line position according to the line progression and to the +m-th character position according to the character progression, where +n equals the value of Pn1 and m equals the value of Pn2. + +Source: ECMA-48 5th Ed. 8.3.63 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Ps g +Mnemonic: TBC +Description: Tabulation clear + +Parameter default value: Ps = 0 + +TBC causes one or more tabulation stops in the presentation component +to be cleared, depending on the parameter value: + +0 the character tabulation stop at the active presentation position is + cleared +1 the line tabulation stop at the active line is cleared +2 all character tabulation stops in the active line are cleared +3 all character tabulation stops are cleared +4 all line tabulation stops are cleared +5 all tabulation stops are cleared + +In the case of parameter value 0 or 2 the number of lines affected +depends on the setting of the TABULATION STOP MODE (TSM) + +Source: ECMA-48 5th Ed. 8.3.154 +Status: standard + +If the first parameter has a value of 100 then tab stops are reset to +the default state (one every 8 columns). + +Source: IRIX 6.5.5 xwsh(1G) +Status: SGI private; clashes with ECMA-48 +------------------------------------------------------------------------------- +Sequence: CSI = Pn1 g or CSI = Pn1 ; Pn2 ; Pn3 g +Mnemonic: PRC +Description: Print ROM character + + If only one argument is passed to this function, display the glyph + for the PC ROM character specified by Pn1. If 3 parameters are + passed, then then Pn2 and Pn3 are used to set the graphic character + attribute foreground and background respectively, using the ISO color + numbering scheme described below. + +0 => black 8 => grey +1 => blue 9 => light blue +2 => green 10 => light green +3 => cyan 11 => light cyan +4 => red 12 => light red +5 => magenta 13 => light magenta +6 => brown 14 => yellow +7 => white 15 => light white + +Source: OpenServer 5.0.6 screen(HW) +Status: SCO private +------------------------------------------------------------------------------- +Sequence: CSI > Pn g +Description: Re-set tabs + +Clear all horizontal tab stops, then set tabs every Pn positions (i.e. +Esc-[->-5-g sets tabs every five columns) + +Source: +Status: RBComm? private +------------------------------------------------------------------------------- +Sequence: CSI Ps ... h +Mnemonic: SM +Description: Set mode + +No parameter default value. + +SM causes the modes of the receiving device to be set as specified by +the parameter values. + +NOTE +Private modes may be implemented using private parameters, see 5.4.1 +and 7.4. + +Source: ECMA-48 5th Ed. 8.2.125 + +[ NB: See "Mode:" entries for individual modes ] + +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Ps i +Mnemonic: MC +Description: Media copy + +Parameter default value: Ps = 0 + +MC is used either to initiate a transfer of data from or to an +auxiliary input/output device or to enable or disable the relay of the +received data stream to an auxiliary input/output device, depending on +the parameter value: + +0 initiate transfer to a primary auxiliary device +1 initiate transfer from a primary auxiliary device +2 initiate transfer to a secondary auxiliary device +3 initiate transfer from a secondary auxiliary device +4 stop relay to a primary auxiliary device +5 start relay to a primary auxiliary device +6 stop relay to a secondary auxiliary device +7 start relay to a secondary auxiliary device + +This control function may not be used to switch on or off an auxiliary +device. + +Source: ECMA-48 5th Ed 8.3.82 + +Locator Controller Mode allows the host to communicate directly with +the locator device without terminal intervention (similar to printer +controller mode). When locator controller mode is set, all data +received at the host port is transferred directly to the locator port +without interpretation by the display terminal. The only exceptions +are the communications control characters XON/XOFF (if enabled), and +the control sequence to disabled locator controller mode. All +characters received at locator port are transferred to the host port +without interpretation. The host assumes full responsibility for the +locator device. + +Locator controller mode is desirable for two reasons: + +1. It allows the host to explicitly initialize or configure locator + devices. A foriegn locator device might not wake up in DEC format + for example. + +2. It allows the locator port to be used for other auxilliary input + devices. A bar code reader could be interfaced to the locator port + for example, allowing the terminal to support a bar code reader + without pre-empting the printer port. + +Turn off locator controller mode (MC) CSI 6 i + +Turn on locator controller mode (MC) CSI 7 i + +Source: +Status: standard; DEC modifications +------------------------------------------------------------------------------- +Sequence: CSI ? Ps i + + ?0 Select auxiliary port for ReGIS hardcopy output. + + ?1 copy the cursor line to + the auxilary(printer)Port + + ?2 Select computer port for ReGIS hardcopy output. + + ?3 copy the cursor line to + the modem(host) Port + + ?4 diaable the copy passthru + print mode + + ?5 enable the copy passthru + print mode + +Source: +Source: DEC Terminals and Printers Handbook 1985 EB 26291-56 pC31 +Status: Wyse/DEC private +------------------------------------------------------------------------------- +Sequence: CSI Pn j +Mnemonic: HPB +Description: Character position backward + +Parameter default value: Pn = 1 + +HPB causes the active data position to be moved by n character +positions in the data component in the direction opposite to that of +the character progression, where n equals the value of Pn. + +Source: ECMA-48 5th Ed. 8.3.58 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Pn k +Mnemonic: VPB +Description: Line position backward + +Parameter default value: Pn = 1 + +VPB causes the active data position to be moved by n line positions in +the data component in a direction opposite to that of the line +progression, where n equals the value of Pn. + +Source: ECMA-48 5th Ed. 8.3.159 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Pn k +Description: disable (n=0) or enable (n=1) keyclick + +Source: termtypes.master 10.2.7 +Status: iBCS2 private; clashes with ECMA-48 HPB +------------------------------------------------------------------------------- +Sequence: CSI Ps ... l +Mnemonic: RM +Description: Reset mode + +No parameter default value. + +RM causes the modes of the receiving device to be reset as specified +by the parameter values. + +NOTE +Private modes may be implemented using private parameters, see 5.4.1 +and 7.4. + +Source: ECMA-48 5th Ed. 8.3.106 + +[ see "Mode:" entries for individual modes ] + +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI = l +Mnemonic: CHC +Description: Clear and home cursor + + Much like the Form Feed (FF) ASCII control character, this sequence + will erase the entire screen using the current fill attribute, but it + will ignore the current scrolling region if set (the entire screen is + always cleared, regardless of the scrolling region settings). The + cursor will be left at the top left of the scrolling region. + +Source: OpenServer 5.0.6 screen(HW) +Status: SCO private +------------------------------------------------------------------------------- +Sequence: CSI = ? l +Description: Insert line up + +Source: jaltman@watsun.cc.columbia.edu (Jeffrey Altman) in comp.terminals + <7t2fe1$gj0$1@newsmaster.cc.columbia.edu> +Status: ? private +------------------------------------------------------------------------------- +Sequence: CSI Ps ... m +Mnemonic: SGR +Description: Select graphic rendition + +Parameter default value: Ps = 0 + +SGR is used to establish one or more graphic rendition aspects for +subsequent text. The established aspects remain in effect until the +next occurrence of SGR in the data stream, depending on the setting of +the GRAPHIC RENDITION COMBINATION MODE (GRCM). Each graphic rendition +aspect is specified by a parameter value: + +[ In the following list, items are marked with their source on the right. + Items with no marking are ECMA-48 standard ones. ] + +0 default rendition (implementation-defined), cancels the effect of + any preceding occurrence of SGR in the data stream regardless of the + setting of the GRAPHIC RENDITION COMBINATION MODE (GRCM) +1 bold or increased intensity +2 faint, decreased intensity or second colour +2 Sets the normal colors. This sequence takes the + next two arguments as the foreground and background + color to set, respectively Uses SCO colour numbers. [SCOANSI] +3 italicized +3 If backwards compatibility mode is enabled, then this sequence is + used to control the role of the blink bit in the M6845 + video controller. The argument following the 3 + indicated whether this bit should be interpreted as + blink, or as bold background. For example, the + sequence CSI 3;1 m will enable blinking text, whereas + the sequence CSI 3;0 m will enable bright background + colors. [SCOANSI] +4 singly underlined +5 slowly blinking (less then 150 per minute) +6 rapidly blinking (150 per minute or more) +6 VGA only: if blink (5) is on, turn blink off and background color to + its light equivalent (that is, brown to yellow) [iBCS2] +6 steady (not blinking) [SCOANSI] +7 negative image +8 concealed characters +9 crossed-out (characters still legible but marked as to be deleted) +10 primary (default) font +10 reset selected mapping, display control flag, and toggle meta flag. [iBCS2] +11 first alternative font +11 select null mapping, set display control flag, reset toggle meta + flag. [iBCS2] +12 second alternative font +12 select null mapping, set display control flag, set toggle meta + flag. (The toggle meta flag causes the high bit of a byte to be + toggled before the mapping table translation is done.) [Linux] +13 third alternative font +14 fourth alternative font +15 fifth alternative font +16 sixth alternative font +17 seventh alternative font +18 eighth alternative font +19 ninth alternative font +20 Fraktur (Gothic) +21 doubly underlined +21 set normal intensity [Linux] +22 normal colour or normal intensity (neither bold nor faint) +23 not italicized, not fraktur +24 not underlined (neither singly nor doubly) +25 steady (not blinking) +26 (reserved for proportional spacing as specified in CCITT + Recommendation T.61) +27 positive image +28 revealed characters +29 not crossed out +30 black display +31 red display +32 green display +33 yellow display +34 blue display +35 magenta display +36 cyan display +37 white display +38 (reserved for future standardization; intended for setting + character foreground colour as specified in ISO 8613-6 [CCITT + Recommendation T.416]) +38 set underscore on, set default foreground color [Linux] +38 If next two parameters are 5 and Ps, set foreground color to Ps [xterm] +38 enables underline option; white foreground with white underscore [iBCS2] +39 default display colour (implementation-defined) +39 disables underline option [iBCS2] +40 black background +41 red background +42 green background +43 yellow background +44 blue background +45 magenta background +46 cyan background +47 white background +48 (reserved for future standardization; intended for setting + character background colour as specified in ISO 8613-6 [CCITT + Recommendation T.416]) +48 If next two parameters are 5 and Ps, set background color to Ps [xterm] +49 default background colour (implementation-defined) +50 (reserved for cancelling the effect of the rendering aspect + established by parameter value 26) +50 Reset to the original color pair [SCOANSI] +51 framed +51 Reset all colors to the system default [SCOANSI] +52 encircled +53 overlined +54 not framed, not encircled +55 not overlined +56 (reserved for future standardization) +57 (reserved for future standardization) +58 (reserved for future standardization) +59 (reserved for future standardization) +60 ideogram underline or right side line +61 ideogram double underline or double line on the right side +62 ideogram overline or left side line +63 ideogram double overline or double line on the left side +64 ideogram stress marking +65 cancels the effect of the rendition aspects established by + parameter values 60 to 64 +90 Set foreground color to (bright) Black [aixterm] +91 Set foreground color to (bright) Red [aixterm] +92 Set foreground color to (bright) Green [aixterm] +93 Set foreground color to (bright) Yellow [aixterm] +94 Set foreground color to (bright) Blue [aixterm] +95 Set foreground color to (bright) Magenta [aixterm] +96 Set foreground color to (bright) Cyan [aixterm] +97 Set foreground color to (bright) White [aixterm] + +90 Set foreground color to (bright) Black [SCOANSI] +91 Set foreground color to (bright) Blue [SCOANSI] +92 Set foreground color to (bright) Green [SCOANSI] +93 Set foreground color to (bright) Cyan [SCOANSI] +94 Set foreground color to (bright) Red [SCOANSI] +95 Set foreground color to (bright) Magenta [SCOANSI] +96 Set foreground color to (bright) Yellow [SCOANSI] +97 Set foreground color to (bright) White [SCOANSI] + +100 Set foreground and background color to default [rxvt] +100 Set background color to (bright) Black [aixterm] +101 Set background color to (bright) Red [aixterm] +102 Set background color to (bright) Green [aixterm] +103 Set background color to (bright) Yellow [aixterm] +104 Set background color to (bright) Blue [aixterm] +105 Set background color to (bright) Magenta [aixterm] +106 Set background color to (bright) Cyan [aixterm] +107 Set background color to (bright) White [aixterm] + +100 Set background color to (bright) Black [SCOANSI] +101 Set background color to (bright) Blue [SCOANSI] +102 Set background color to (bright) Green [SCOANSI] +103 Set background color to (bright) Cyan [SCOANSI] +104 Set background color to (bright) Red [SCOANSI] +105 Set background color to (bright) Magenta [SCOANSI] +106 Set background color to (bright) Yellow [SCOANSI] +107 Set background color to (bright) White [SCOANSI] + +DEC private SGRs: +?1 Set secondary overprint mode [LQP02] +?2 Enable shadow print [LQP02] + +NOTE +The usable combinations of parameter values are determined by the +implementation. + +Source: ECMA-48 5th Ed. 8.3.118 +Source: Linux console_codes(4) +Source: termtypes.master 10.2.7 +Source: XFree86: xc/doc/specs/xterm/ctlseqs.ms,v 3.29 1999/09/27 06:29:05 +Source: XFree86: xc/doc/specs/xterm/ctlseqs.ms,v 3.52 2004/04/18 15:18:48 +Source: UnixWare 7 display(7) +Source: OpenServer 5.0.6 screen(HW) +Status: standard; Linux, iBCS2, aixterm extensions +------------------------------------------------------------------------------- +Sequence: CSI = Ps ; Pn m +Mnemonic: SSM +Description: Set specific margin + + This sequence can be used to set any one of the 4 margins. Parameter + Ps indicates which margin to set (Ps=0 for the top margin, Ps=1 for + the bottom, Ps=2 for the left and Ps=3 for the right). Pn is the row + or column to set the margin to. If after this control sequence has + been processed, the top or bottom margins are not at the top of the + screen, and the left and right margins are at the screen boundary, + then the scrolling region is set to the size specified. If either of + the left or right margins are not at the screen boundary then the + scrolling region is bound by the current margins. + +Source: OpenServer 5.0.6 screen(HW) +Status: SCO private +------------------------------------------------------------------------------- +Sequence: CSI ? = m +Description: Delete line down + +Source: jaltman@watsun.cc.columbia.edu (Jeffrey Altman) in comp.terminals + <7t2fe1$gj0$1@newsmaster.cc.columbia.edu> +Status: ? private +------------------------------------------------------------------------------- +Sequence: CSI Ps n +Mnemonic: DSR +Description: Device status report + +Parameter default value: Ps = 0 + +DSR is used either to report the status of the sending device or to +request a status report from the receiving device, depending on the +parameter values: + +0 ready, no malfunction detected +1 busy, another DSR must be requested later +2 busy, another DSR will be sent later +3 some malfunction detected, another DSR must be requested later +4 some malfunction detected, another DSR will be sent later +5 a DSR is requested +6 a report of the active presentation position or of the active data + position in the form of ACTIVE POSITION REPORT (CPR) is requested + +DSR with parameter value 0, 1, 2, 3 or 4 may be sent either +unsolicited or as a response to a request such as a DSR with a +parameter value 5 or MESSAGE WAITING (MW). + +Source: ECMA-48 5th Ed 8.3.35 +Status: standard + +100-107 + +Report the rgb value (#rrggbb) for a given color using a DCS Pn .y Ps +ST escape sequence (see DCS below for the values that xwsh will use +for Pn). DSR parameter 100 maps to the text color, 101 to the page +color, 102 the selection text color, 103 to the selection page color, +104 to the cursor text color, 105 to the cursor page color, 106 to the +half intensity color and 107 to the bold color. + +Source: IRIX 6.5.5 xwsh(1G) +Status: SGI private; clashes with ECMA-48 +------------------------------------------------------------------------------- +Sequence: CSI ? Pn n +Mnemonic: DSR +Description: Device status report + + Request CSI ? 1 n [LA50] disable all unsolicited status reports. + Request CSI ? 2 n [LA50] enable unsolicited brief reports and + send an extended one. + Request CSI ? 3 n [LA50] enable unsolicited extended reports and + send one. + Response CSI ? 20 n malfunction detected [also LCP01] + then CSI ? Ps ... n + + Ps Fault + 21 Hardware failure + 22 Communication failure (event) + 23 Input buffer overflow (event) + 24 Printer deselected + 26 Cover open + 27 Out of consumables (ink/paper) + 28 Program load failure + 42 Font load failure + 44 Font memory exceeded + 104 Too many fonts + + Request CSI ? 6 n same as CSI 6 n but for VT340s + + Request CSI ? 15 n printer status + Response CSI ? 10 n printer ready + or CSI ? 11 n printer is not ready + or CSI ? 13 n no printer + or CSI ? 19 n printer assigned to other session + + Request CSI ? 25 n User Definable Key status + Response CSI ? 20 n UDKs are unlocked + or CSI ? 21 n UDKs are locked + + Request CSI ? 26 n keyboard dialect + Response CSI ? 27; Ps n in MS Kermit this is controlled by + command SET TERMINAL CHARACTER-SET + Ps Country Ps Country + 1 North American/ASCII + 2 British + 3 Flemish + 4 French Canadian + 5 Danish + 6 Finnish + 7 German + 8 Dutch + 9 Italian + 10 Swiss (French) + 11 Swiss (German) + 12 Swedish + 13 Norwegian/Danish + 14 Hebrew + 14 French + 15 Spanish + 16 Portugese + + Request CSI ? 55 n locator status + Response CSI ? 53 n no locator + or CSI ? 50 n locator ready + or CSI ? 58 n locator busy + + Request CSI ? 56 n locator type + Response CSI ? 57 Ps n Ps = 0 => No locator + Ps = 1 => Locator is a mouse + + Request CSI ? 63 ; Pn n Request checksum of macro definitions + Pn is returned with DECCKSR + +Source: +Source: +Source: +Source: vttest-990712 vt220.c +Source: Reflection TRM (VT) Version 7.0 +Source: DEC Terminals and Printers Handbook 1985 EB 26291-56 ppE84,E124 +Status: DEC private; VT200 +------------------------------------------------------------------------------- +Sequence: CSI Ps ... o +Mnemonic: DAQ +Description: Define area qualification + +Parameter default value: Ps = 0 + +DAQ is used to indicate that the active presentation position in the +presentation component is the first character position of a qualified +area. The last character position of the qualified area is the +character position in the presentation component immediately preceding +the first character position of the following qualified area. + +The parameter value designates the type of qualified area: +0 unprotected and unguarded +1 protected and guarded +2 graphic character input +3 numeric input +4 alphabetic input +5 input aligned on the last character position of the qualified area +6 fill with ZEROs +7 set a character tabulation stop at the active presentation position + (the first character position of the qualified area) to indicate the + beginning of a field +8 protected and unguarded +9 fill with SPACEs +10 input aligned on the first character position of the qualified area +11 the order of the character positions in the input field is + reversed, i.e. the last position in each line becomes the first and + vice versa; input begins at the new first position. + +This control function operates independently of the setting of the +TABULATION STOP MODE (TSM). The character tabulation stop set by +parameter value 7 applies to the active line only. + +NOTE +The control functions for area definition (DAQ, EPA, ESA, SPA, SSA) +should not be used within an SRS string or an SDS string. + +Source: ECMA-48 5th Ed 8.3.25 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI p +Mnemonic: SUNBOW +Description: Black on white + +Sets the display into black-on-white mode (the default). + +Source: SunOS 5.7 wscons(7D) [paraphrased] +Status: Sun private +------------------------------------------------------------------------------- +Sequence: CSI Ps p +Description: Begin field attribute + +Ps is a variable representing + +Ps =0 normal + 1 dim + 2 blink + 3 blink dim + 4 blank + 5 blank dim + 6 blank + 7 blank dim + 8 underline + 9 underline dim + 10 underline blink + 11 underline blink dim + 12 underline blank + 13 underline blank dim + 14 Underline blank blink + 15 underline blank blink dim + 16 Inverse + 17 inverse dim + 18 inverse blink + 19 Inverse blink dim + 20 inverse blank + 21 inverse blank dim + 22 inverse blank + 23 inverse blank dim + 24 inverse underline + 25 inverse underline dim + 26 inverse underline blink + 27 inverse underline blink + dim + 28 inverse underline blank + 29 inverse underline blank + dim + 30 inverse underline blank + blink + 31 inverse underline blank + blink di + +Source: +Status: DEC private? +------------------------------------------------------------------------------- +Sequence: CSI Ps q +Mnemonic: DECLL +Description: Load LEDs + + Load the four programmable LEDs on the keyboard according to the + parameter(s). + + Parameter Meaning + ----------------------- + 0 Clear All LEDs (default) + 1 Light L1 + 2 Light L2 + 3 Light L3 + 4 Light L4 + +Source: + + ESC [ 0 q: clear all LEDs + ESC [ 1 q: set Scroll Lock LED + ESC [ 2 q: set Num Lock LED + ESC [ 3 q: set Caps Lock LED + +Source: Linux console_codes(4) +Status: DEC private; VT100 +------------------------------------------------------------------------------- +Sequence: CSI q +Mnemonic: SUNWOB +Description: White on black + +Sets the display to white-on-black mode. + +Source: SunOS 5.7 wscons(7D) [paraphrased] +Status: Sun private +------------------------------------------------------------------------------- +Sequence: CSI Pt ; Pb r +Mnemonic: DECSTBM +Description: Set top and bottom margins + + Pt is the number of the top line of the scrolling region; + Pb is the number of the bottom line of the scrolling region + and must be greater than Pt. + (The default for Pt is line 1, the default for Pb is the end + of the screen) + +Source: +Status: DEC private; VT100 +------------------------------------------------------------------------------- +Sequence: CSI Pn1 ; Pn2 ; Pn3 ; Pn4 r +Mnemonic: CSR +Description: Change Scrolling Region + +Where 3 or more parameters are specified, the parameters are the top, +bottom, left and right margins respectively. If you omit the last +parameter, the extreme edge of the screen is assumed to be the right +margin. + +If any of the parameters are out of bounds, they are clipped. If any +of the parameters would cause an overlap (i.e. the bottom margin is +higher than the top margin, or the right margin is less that the left +margin), then this command is ignored and no scrolling region or +window will be active. If all of the parameters are correct, then the +cursor is moved to the top left hand corner of the newly-created +region. The new region will now define the bounds of all scroll and +cursor motion operations. + +[ If only two parameters are specified, this behaves as DECSTBM ] + +Source: OpenServer 5.0.6 screen(HW) +Status: SCO private +------------------------------------------------------------------------------- +Sequence: CSI Pn r +Mnemonic: SUNSCRL +Description: Set scrolling + +Default parameter: Pn = 0 + +If Pn > 0, sets the screen to scroll Pn lines whenever a LF would push +the cursor off the bottom. Setting it to the number of lines on the +screen causes the screen to clear when it fills. + +If Pn == 0, sets "wrap mode", where the cursor moves back to the top +line of the screen when LFed off the bottom, and where lines are +cleared when the cursor LFs into them. + +Source: SunOS 5.7 wscons(7D) [paraphrased] +Status: Sun private +------------------------------------------------------------------------------- +Sequence: CSI = r +Mnemonic: RSM +Description: Reset margins + + This sequence can be used to reset all of the margins to cover the + entire screen. This will deactivate the scrolling region (if + defined). If not, this sequence has no effect. The cursor is not + moved. + +Source: OpenServer 5.0.6 screen(HW) +Status: SCO private +------------------------------------------------------------------------------- +Sequence: CSI ? Ps r +Description: Restore DEC Private Mode + + Ps = 1 -> Normal/Application Cursor Keys (DECCKM) + Ps = 3 -> 80/132 Column Mode (DECCOLM) + Ps = 4 -> Jump (Fast)/Smooth (Slow) Scroll (DECSCLM) + Ps = 5 -> Normal/Reverse Video (DECSCNM) + Ps = 6 -> Normal/Origin Cursor Mode (DECOM) + Ps = 7 -> No Wraparound/Wraparound Mode (DECAWM) + Ps = 8 -> Auto-repeat/No Auto-repeat Keys (DECARM) + Ps = 9 -> Don't Send/Send MIT Mouse Row & Column on + Button Press + Ps = 40 -> Disallow/Allow 80 <-> 132 Mode + Ps = 41 -> Off/On curses(5) fix + Ps = 44 -> Turn Off/On Margin Bell + Ps = 45 -> No Reverse-wraparound/Reverse-wraparound + Mode + Ps = 46 -> Stop/Start Logging + Ps = 47 -> Use Normal/Alternate Screen Buffer + Ps = 1000 -> mouse bogus sequence (???) + Ps = 1001 -> mouse bogus sequence (???) + +Source: +Status: xterm? private +------------------------------------------------------------------------------- +Sequence: CSI Pn1 ; Pn2 s +Mnemonic: DECSLRM +Description: Set left and right margins + +Sets left margin to Pn1, right margin to Pn2 + +Source: DEC Terminals and Printers Handbook 1985 EB 26291-56 pE10 +Status: DEC private; VT400, printers +------------------------------------------------------------------------------- +Sequence: CSI s +Mnemonic: SCP +Description: Save cursor position + +Save the current cursor position. The cursor position can be restored +later using the RCP sequence. + +Source: OpenServer 5.0.6 screen(HW) +Status: SCO private +------------------------------------------------------------------------------- +Sequence: CSI s +Mnemonic: SUNRESET +Description: Reset terminal emulator + +Resets modes and font. Doesn't move cursor or change screen. + +Source: SunOS 5.7 wscons(7D) [paraphrased] +Status: Sun private +------------------------------------------------------------------------------- +Sequence: CSI ? Ps s +Description: Save DEC Private Mode + + + Ps = 1 -> Normal/Application Cursor Keys (DECCKM) + Ps = 3 -> 80/132 Column Mode (DECCOLM) + Ps = 4 -> Jump (Fast)/Smooth (Slow) Scroll (DECSCLM) + Ps = 5 -> Normal/Reverse Video (DECSCNM) + Ps = 6 -> Normal/Origin Cursor Mode (DECOM) + Ps = 7 -> No Wraparound/Wraparound Mode (DECAWM) + Ps = 8 -> Auto-repeat/No Auto-repeat Keys (DECARM) + Ps = 9 -> Don't Send/Send MIT Mouse Row & Column on + Button Press + Ps = 40 -> Disallow/Allow 80 <-> 132 Mode + Ps = 41 -> Off/On curses(5) fix + Ps = 44 -> Turn Off/On Margin Bell + Ps = 45 -> No Reverse-wraparound/Reverse-wraparound + Mode + Ps = 46 -> Stop/Start Logging + Ps = 47 -> Use Normal/Alternate Screen Buffer + Ps = 1000 -> mouse bogus sequence (???) + Ps = 1001 -> mouse bogus sequence (???) + +Source: +Status: xterm? private +------------------------------------------------------------------------------- +Sequence: CSI Pn t +Mnemonic: DECSLPP +Description: Set lines per physical page + +On the multipage VT330, you can issue a DECSLPP (set lines per page) command: + + Esc [ 2 4 t 6 pages of 24 lines each, single session + Esc [ 3 6 t 4 pages of 36 lines each, single session + Esc [ 7 2 t 2 pages of 72 lines each, single session + Esc [ 1 4 4 t 1 page of 144 lines each, single session + +Source: + +On LA100: +Sets form length to Pn lines. Sets top margin and active line to line +one. Sets bottom margin to line Pn. Default is 1 + +Source: DEC Terminals and Printers Handbook 1985 EB 26291-56 pE10 +Status: DEC private; VT330, printers +------------------------------------------------------------------------------- +Sequence: CSI Ps t +Description: Define non-normal (enhance) attribute + +[setup level 1] + +Defines the enhance attribute +(see SGR,Non-0) + + Ps = 0 dim + 1 inverse + 2 underline + +[ On a Wyse-75, this chooses which attribute SGR with a non-zero argument + produces. ] + +Source: +Status: Wyse private +------------------------------------------------------------------------------- +Sequence: CSI Pn ... u +Mnemonic: DECSHTS +Description: Set horizontal tab stops + +Sets horizontal tab stops at the given values for Pn (up to 16 for the +LA100). + +Source: DEC Terminals and Printers Handbook 1985 EB 26291-56 pE10 +Status: DEC private; printers +------------------------------------------------------------------------------- +Sequence: CSI u +Mnemonic: RCP +Description: Restore cursor position + +Restore the cursor to the position it occupied at the last time an SCP +sequence was received. + +Source: OpenServer 5.0.6 screen(HW) +Status: SCO private +------------------------------------------------------------------------------- +Sequence: CSI Pn ... v +Mnemonic: DECSVTS +Description: Set vertical tab stops + +Set vertical tab stops at lines Pn ... (up to 16 on LA100) + +Source: DEC Terminals and Printers Handbook 1985 EB 26291-56 pE11 +Status: DEC private; printers +------------------------------------------------------------------------------- +Sequence: CSI Ps w +Mnemonic: DECSHORP +Description: Set horizontal pitch + +Ps = +0 10.0 cpi, 80 cpl +1 10.0 cpi, 80 cpl +2 12.0 cpi, 96 cpl +3 13.2 cpi +4 16.5 cpi, 132 cpl +5 5.0 cpi +6 6.0 cpi +7 6.6 cpi +8 8.25 cpi +9 15.0 cpi + +Source: Reflection TRM (VT) Version 7.0 +Source: DEC Terminals and Printers Handbook 1985 EB 26291-56 pE108 +Status: DEC private; printers +------------------------------------------------------------------------------- +Sequence: CSI Ps x +Mnemonic: DECREQTPARM +Description: Request terminal parameters + + The host sends this sequence to request the VT100 to send a DECREPTPARM + sequence back. {Ps} can be either 0 or 1. If 0, the terminal will be + allowed to send unsolicited 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 DECREPTPARMs in response to a + request. + +Source: +Status: DEC private; VT100 +------------------------------------------------------------------------------- +Sequence: CSI Psol ; Ppar ; Pnbits ; Pxspd ; Prspd ; Pcmul ; Pflags x +Mnemonic: DECREPTPARM +Description: Report terminal parameters + + 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 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 paramters are: + + Parameter Value Meaning + ------------------------------------------------------------------ + {sol} 1 This message is a report. + 2 This message is a report, and the terminal is + only reporting on request. + + {par} 1 No parity set + 4 Parity set and odd + 5 Parity set and even + + {nbits} 1 8 bits per character + 2 7 bits per character + + {xspd} 0 Speed set to 50 bps + -and- 8 Speed set to 75 bps + {rspd} 16 Speed set to 110 bps + 24 Speed set to 134.5 bps + {xspd}= 32 Speed set to 150 bps + Transmit 40 Speed set to 200 bps + Speed 48 Speed set to 300 bps + 56 Speed set to 600 bps + {rspd}= 64 Speed set to 1200 bps + Recieve 72 Speed set to 1800 bps + Speed 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 to 19200 bps + 128 Speed set to 38400 bps [VT220?] + 136 Speed set to 57600 bps [RBComm] + 144 Speed set to 115200 bps [RBComm] + + {cmul} 1 The bit rate multiplier is 16 + + {flags} 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. + +Source: +Source: vttest-990712 reports.c +Source: +Status: DEC private; VT100 +------------------------------------------------------------------------------- +Sequence: CSI x +Mnemonic: DGRTC +Description: Read terminal configuration + +This command queries for terminal configuration information, such as +model ID, keyboard type, etc. + +Terminal configuration is sent back in the following form: + + CSI ; ; x + +where: + + = 52 + + = 00--15 + + = 0--7 + + is one of: + 00: No keyboard + 19: Swiss/French + 20: Swiss/German + 21: Canadian/English + 22: Kata Kana + 24: Canadian/French + 25: United States + 26: United Kingdom + 27: French + 28: German + 29: Swedish/Finnish + 30: Spanish + 31: Danish/Norwegian + +Source: Dasher D410 and D460 Display Terminals User's Manual + +Status: Data General private +------------------------------------------------------------------------------- +Sequence: CSI Ps1 ; Ps2 y +Mnemonic: DECTST +Description: Invoke confidence test + +If Ps1 == 2 [VT100] + Ps2 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 Ps2 is 0, no test is performed but the VT100 is reset. + + Test Weight + -------------------------------------------------------------- + POST (ROM checksum, RAM NVR, keyboardm and AVO) 1 + Data Loop Back (Loopback connector required) 2 + EIA Modem Control Test (Loopback connector req.) 4 + Repeat Testing until failure 8 + Printer loopback test 16 + +If Ps1 == 6 [LCP01] + Ps2 = 1 Powerup self-tests + Ps2 = 2 Print a test pattern + +If Ps1 == 4, Ps2 == 1 [VT125] + Further Ps parameters are tests to carry out: + 1 VT125 power-up test + 2 VT125 computer port data loopback test + 3 VT125 auxiliary port data loopback test + 4 VT125 display test + 5 VT125 video bitmap memory test + 9 Repeat selected tests continuously until power-off or failure + +Source: +Source: +Source: DEC Terminals and Printers Handbook 1985 EB 26291-56 ppC32,E124 +Status: DEC private; VT100 +------------------------------------------------------------------------------- +Sequence: CSI Ps z +Mnemonic: DECVERP +Description: Set vertical pitch + +Ps = +0 6 lpi, 63 lpp +1 6 lpi, 63 lpp +2 8 lpi, 84 lpp +3 12 lpi, 125 lpp +4 2 lpi, 21 lpp +5 3 lpi, 32 lpp +6 4 lpi, 42 lpp + +Source: Reflection TRM (VT) Version 7.0 +Status: DEC private; printers +------------------------------------------------------------------------------- +Sequence: CSI Pn z +Mnemonic: SSW +Description: Screen switch + +Make the multiscreen number specified by parameter Pn the current one. +If Pn refers to an invalid multiscreen number, no action is taken. + +[ "Multiscreen" seems to be SCOish for "virtual console" ] + +Source: OpenServer 5.0.6 screen(HW) +Status: SCO private +------------------------------------------------------------------------------- +Sequence: CSI = z +Mnemonic: CAT +Description: Clear all tabs + + Clear all tab stops. + +Source: OpenServer 5.0.6 screen(HW) +Status: SCO private +------------------------------------------------------------------------------- +Sequence: CSI Ps | +Mnemonic: DECTTC +Description: Select transmit termination character + +Ps Meaning +0 function disabled +1 Form Feed, FF +2 End of Text, ETX +3 End of Transmission, EOT +4 Carriage Return, CR +5 Device Control 3, DC3 + +Source: DEC Terminals and Printers Handbook 1985 EB 26291-56 pC27 +Status: DEC private; VT131 only +------------------------------------------------------------------------------- +Sequence: CSI Ps } +Mnemonic: DECPRO +Description: Set protected field attributes + +Ps Meaning +0 no protection +1 bold protection +4 underline protection +5 blink protection +7 reverse video protection +254 all attributes off protection + +Source: DEC Terminals and Printers Handbook 1985 EB 26291-56 pC27 +Status: DEC private; VT131 only +------------------------------------------------------------------------------- +Sequence: CSI Pn SP @ +Mnemonic: SL +Description: Scroll left + +Parameter default value: Pn = 1 + +SL causes the data in the presentation component to be moved by n +character positions if the line orientation is horizontal, or by n +line positions if the line orientation is vertical, such that the data +appear to move to the left; where n equals the value of Pn. + +The active presentation position is not affected by this control function. + +Source: ECMA-48 5th Ed. 8.3.121 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Pn SP A +Mnemonic: SR +Description: Scroll right + +Parameter default value: Pn = 1 + +SR causes the data in the presentation component to be moved by n +character positions if the line orientation is horizontal, or by n +line positions if the line orientation is vertical, such that the data +appear to move to the right; where n equals the value of Pn. + +The active presentation position is not affected by this control +function. + +Source: ECMA-48 5th Ed. 8.3.135 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Pn1 ; Pn2 SP B +Mnemonic: GSM +Description: Graphic size modification + +Parameter default values: Pn1 = 100; Pn2 = 100 + +GSM is used to modify for subsequent text the height and/or the width +of all primary and alternative fonts identified by FONT SELECTION +(FNT) and established by GRAPHIC SIZE SELECTION (GSS). The +established values remain in effect until the next occurrence of GSM +or GSS in the data steam. + +Pn1 specifies the height as a percentage of the height established by GSS + +Pn2 specifies the width as a percentage of the width established by GSS + +Source: ECMA-48 5th Ed. 8.3.55 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Pn SP C +Mnemonic: GSS +Description: Graphic size selection + +No parameter default value. + +GSS is used to establish for subsequent text the height and the width +of all primary and alternative fonts identified by FONT SELECTION +(FNT). The established values remain in effect until the next +occurrence of GSS in the data stream. + +Pn specifies the height, the width is implicitly defined by the +height. + +The unit in which the parameter value is expressed is that established +by the parameter value of SELECT SIZE UNIT (SSU). + +Source: ECMA-48 5th Ed. 8.3.56 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Ps1 ; Ps2 SP D +Mnemonic: FNT +Description: Font selection + +Parameter default values: Ps1 = 0; Ps2 =0 + +FNT is used to identify the character font to be selected as primary +or alternative font by subsequent occurrences of SELECT GRAPHIC +RENDITION (SGR) in the data stream. Ps1 specifies the primary or +alternative font concerned: + +0 primary font +1 first alternative font +2 second alternative font +3 third alternative font +4 fourth alternative font +5 fifth alternative font +6 sixth alternative font +7 seventh alternative font +8 eighth alternative font +9 ninth alternative font + +Ps2 identifies the character font according to a register which is to +be established. + +Source: ECMA-48 5th Ed. 8.3.53 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Pn SP E +Mnemonic: TSS +Description: Thin space specification + +No parameter default value. + +TSS is used to establish the width of a thin space for subsequent +text. The established width remains in effect until the next +occurrence of TSS in the data stream, see annex C. + +Pn specifies the width of the thin space. + +The unit in which the parameter value is expressed is that established +by the parameter value of SELECT SIZE UNIT (SSU). + +Source: ECMA-48 5th Ed. 8.3.157 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Ps ... SP F +Mnemonic: JFY +Description: Justify + +Parameter default value: Ps = 0 + +JFY is used to indicate the beginning of a string of graphic +characters in the presentation component that are to be justified +according to the layout specified by the parameter values, see +annex C: + +0 no justification, end of justification of preceding text +1 word fill +2 word space +3 letter space +4 hyphenation +5 flush to line home position margin +6 centre between line home position and line limit position margins +7 flush to line limit position margin +8 Italian hyphenation + +The end of the string to be justified is indicated by the next +occurrence of JFY in the data stream. + +The line home position is established by the parameter value of SET +LINE HOME (SLH). The line limit position is established by the +parameter value of SET LINE LIMIT (SLL). + +Source: ECMA-48 5th Ed. 8.3.73 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Pn1 ; Pn2 SP G +Mnemonic: SPI +Description: Spacing increment + +No parameter default values. + +SPI is used to establish the line spacing and the character spacing +for subsequent text. The established line spacing remains in effect +until the next occurrence of SPI or of SET LINE SPACING (SLS) or of +SELECT LINE SPACING (SVS) in the data stream. The established +character spacing remains in effect until the next occurrence of SET +CHARACTER SPACING (SCS) or of SELECT CHARACTER SPACING (SHS) in the +data stream, see annex C. + +Pn1 specifies the line spacing + +Pn2 specifies the character spacing + +The unit in which the parameter values are expressed is that +established by the parameter value of SELECT SIZE UNIT (SSU). + +Source: ECMA-48 5th Ed. 8.3.132 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Pn ... SP H +Mnemonic: QUAD +Description: Quad + +Parameter default value: Ps = 0 + +QUAD is used to indicate the end of a string of graphic characters +that are to be positioned on a single line according to the layout +specified by the parameter values, see annex C: + +0 flush to line home position margin + +1 flush to line home position margin and fill with leader + +2 centre between line home position and line limit position margins + +3 centre between line home position and line limit position margins + and fill with leader + +4 flush to line limit position margin + +5 flush to line limit position margin and fill with leader + +6 flush to both margins + +The beginning of the string to be positioned is indicated by the +preceding occurrence in the data stream of either QUAD or one of the +following formator functions: FORM FEED (FF), CHARACTER AND LINE +POSITION (HVP), LINE FEED (LF), NEXT LINE (NEL), PAGE POSITION +ABSOLUTE (PPA), PAGE POSITION BACKWARD (PPB), PAGE POSITION FORWARD +(PPR), REVERSE LINE FEED (RI), LINE POSITION ABSOLUTE (VPA), LINE +POSITION BACKWARD (VPB), LINE POSITION FORWARD (VPR), or LINE +TABULATION (VT). + +The line home position is established by the parameter value of SET +LINE HOME (SLH). The line limit position is established by the +parameter value of SET LINE LIMIT (SLL). + +Source: ECMA-48 5th Ed. 8.3.102 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Ps SP I +Mnemonic: SSU +Description: Select size unit + +Parameter default value: Ps = 0 + +SSU is used to establish the unit in which the numeric parameters of +certain control functions are expressed. The established unit remains +in effect until the next occurrence of SSU in the data stream. + +The parameter values are +0 CHARACTER - The dimensions of this unit are device-dependent +1 MILLIMETRE +2 COMPUTER DECIPOINT - 0,035 28 mm (1/720 of 25,4 mm) +3 DECIDIDOT - 0,037 59 mm (10/266 mm) +4 MIL - 0,025 4 mm (1/1 000 of 25,4 mm) +5 BASIC MEASURING UNIT (BMU) - 0,021 17 mm (1/1 200 of 25,4 mm) +6 MICROMETRE - 0,001 mm +7 PIXEL - The smallest increment that can be specified in a device +8 DECIPOINT - 0,035 14 mm (35/996 mm) + +Source: ECMA-48 5th Ed. 8.3.139 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Ps SP J +Mnemonic: PFS +Description: Page format selection + +Parameter default value: Ps = 0 + +PFS is used to establish the available area for the imaging of pages +of text based on paper size. The pages are introduced by the +subsequent occurrence of FORM FEED (FF) in the data stream. + +The established image area remains in effect until the next occurrence +of PFS in the data stream. The parameter values are (see also +annex E): + +0 tall basic text communication format +1 wide basic text communication format +2 tall basic A4 format +3 wide basic A4 format +4 tall North American letter format +5 wide North American letter format +6 tall extended A4 format +7 wide extended A4 format +8 tall North American legal format +9 wide North American legal format +10 A4 short lines format +11 A4 long lines format +12 B5 short lines format +13 B5 long lines format +14 B4 short lines format +15 B4 long lines format + +The page home position is established by the parameter value of SET +PAGE HOME (SPH), the page limit position is established by the +parameter value of SET PAGE LIMIT (SPL). + +Source: ECMA-48 5th Ed. 8.3.91 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI ? Ps SP J +Mnemonic: PFS +Description: Page format selection (DEC extensions) + +Ps Paper size +20 Tall extended North American letter format +21 Wide extended North Americal letter format +22 Tall extended A4 format +23 Wide extended A4 format + +Source: DEC Terminals and Printers Handbook 1985 EB 26291-56 pE110 +Status: DEC private; LN03 +------------------------------------------------------------------------------- +Sequence: CSI Ps SP K +Mnemonic: SHS +Description: Select character spacing + +Parameter default value: Ps = 0 + +SHS is used to establish the character spacing for subsequent +text. The established spacing remains in effect until the next +occurrence of SHS or of SET CHARACTER SPACING (SCS) or of SPACING +INCREMENT (SPI) in the data stream. The parameter values are + +0 10 characters per 25,4 mm +1 12 characters per 25,4 mm +2 15 characters per 25,4 mm +3 6 characters per 25,4 mm +4 3 characters per 25,4 mm +5 9 characters per 50,8 mm +6 4 characters per 25,4 mm + +Source: ECMA-48 5th Ed. 8.3.118 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Ps SP L +Mnemonic: SVS +Description: Select line spacing + +Parameter default value: Ps = 0 + +SVS is used to establish the line spacing for subsequent text. The +established spacing remains in effect until the next occurrence of SVS +or of SET LINE SPACING (SLS) or of SPACING INCREMENT (SPI) in the data +stream. The parameter values are: + +0 6 lines per 25,4 mm +1 4 lines per 25,4 mm +2 3 lines per 25,4 mm +3 12 lines per 25,4 mm +4 8 lines per 25,4 mm +5 6 lines per 30,0 mm +6 4 lines per 30,0 mm +7 3 lines per 30,0 mm +8 12 lines per 30,0 mm +9 2 lines per 25,4 mm + +Source: ECMA-48 5th Ed. 8.3.149 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Ps SP M +Mnemonic: IGS +Description: Identify graphic subrepertoire + +No parameter default value. + +IGS is used to indicate that a repertoire of the graphic characters of +ISO/IEC 10367 is used in the subsequent text. + +The parameter value of IGS identifies a graphic character repertoire +registered in accordance with ISO/IEC 7350. + +Source: ECMA-48 5th Ed. 8.3.66 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Pn ... SP N +Mnemonic: HTSA +Description: Character tabulation set absolute + +The control function CHARACTER TABULATION SET ABSOLUTE (HTSA) which +was coded as a control sequence with any number of numeric parameters +(CSI Pn ... 02/00 04/14) and the use of which was already declared +deprecated in the fourth Edition of this Standard has now been +removed. + +Source: ECMA-48 5th Ed. F.8.3 +Status: standard; obsolete +------------------------------------------------------------------------------- +Sequence: CSI Ps SP O +Mnemonic: IDCS +Description: Identify device control string + +No parameter default value. + +IDCS is used to specify the purpose and format of the command string +of subsequent DEVICE CONTROL STRINGs (DCS). The specified purpose and +format remain in effect until the next occurrence of IDCS in the data +stream. + +The parameter values are + +1 reserved for use with the DIAGNOSTIC state of the STATUS REPORT + TRANSFER MODE (SRTM) + +2 reserved for Dynamically Redefinable Character Sets (DRCS) according + to Standard ECMA-35. + +The format and interpretation of the command string corresponding to +these parameter values are to be defined in appropriate standards. If +this control function is used to identify a private command string, a +private parameter value shall be used. + +Source: ECMA-48 5th Ed. 8.3.65 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Pn SP P +Mnemonic: PPA +Description: Page position absolute + +Parameter default value: Pn = 1 + +PPA causes the active data position to be moved in the data component +to the corresponding character position on the n-th page, where n +equals the value of Pn. + +Source: ECMA-48 5th Ed. 8.3.96 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Pn SP Q +Mnemonic: PPR +Description: Page position forward + +Parameter default value: Pn = 1 + +PPR causes the active data position to be moved in the data component +to the corresponding character position on the n-th following page, +where n equals the value of Pn. + +Source: ECMA-48 5th Ed. 8.3.98 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Pn SP R +Mnemonic: PPB +Description: Page position backward + +Parameter default value: Pn = 1 + +PPB causes the active data position to be moved in the data component +to the corresponding character position on the n-th preceding page, +where n equals the value of Pn. + +Source: ECMA-48 5th Ed. 8.3.97 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Ps1 ; Ps2 SP S +Mnemonic: SPD +Description: Select presentation directions + +Parameter default value: Ps1 = 0; Ps2 = 0 + +SPD is used to select the line orientation, the line progression, and +the character path in the presentation component. It is also used to +update the content of the presentation component and the content of +the data component. This takes effect immediately. + +Ps1 specifies the line orientation, the line progression and the +character path: + +0 line orientation: horizontal + line progression: top-to-bottom + character path: left-to-right + +1 line orientation: vertical + line progression: right-to-left + character path: top-to-bottom + +2 line orientation: vertical + line progression: left-to-right + character path: top-to-bottom + +3 line orientation: horizontal + line progression: top-to-bottom + character path: right-to-left + +4 line orientation: vertical + line progression: left-to-right + character path: bottom-to-top + +5 line orientation: horizontal + line progression: bottom-to-top + character path: right-to-left + +6 line orientation: horizontal + line progression: bottom-to-top + character path: left-to-right + +7 line orientation: vertical + line progression: right-to-left + character path: bottom-to-top + +Ps2 specifies the effect on the content of the presentation component +and the content of the data component: + +0 undefined (implementation-dependent) + +NOTE +This may also permit the effect to take place after the next +occurrence of CR, FF or any control function which initiates an +absolute movement of the active presentation position or the active +data position. + +1 the content of the presentation component is updated to correspond + to the content of the data component according to the newly + established characteristics of the presentation component; the + active data position is moved to the first character position in the + first line in the data component, the active presentation position + in the presentation component is updated accordingly + +2 the content of the data component is updated to correspond to the + content of the presentation component according to the newly + established characteristics of the presentation component; the active + presentation position is moved to the first character position in the + first line in the presentation component, the active data position in + the data component is updated accordingly. + +Source: ECMA-48 5th Ed. 8.3.130 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Pn1 ; Pn2 SP T +Mnemonic: DTA +Description: Dimension text area + +No parameter default value. + +DTA is used to establish the dimensions of the text area for subsequent pages. + +The established dimensions remain in effect until the next occurrence +of DTA in the data stream. + +Pn1 specifies the dimension in the direction perpendicular to the line +orientation + +Pn2 specifies the dimension in the direction parallel to the line orientation + +The unit in which the parameter value is expressed is that established +by the parameter value of SELECT SIZE UNIT (SSU). + +Source: ECMA-48 5th Ed 8.3.36 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Pn SP U +Mnemonic: SLH +Description: Set line home + +No parameter default value. + +If the DEVICE COMPONENT SELECT MODE is set to PRESENTATION, SLH is +used to establish at character position n in the active line (the line +that contains the active presentation position) and lines of +subsequent text in the presentation component the position to which +the active presentation position will be moved by subsequent +occurrences of CARRIAGE RETURN (CR), DELETE LINE (DL), INSERT LINE +(IL) or NEXT LINE (NEL) in the data stream; where n equals the value +of Pn. In the case of a device without data component, it is also the +position ahead of which no implicit movement of the active +presentation position shall occur. + +If the DEVICE COMPONENT SELECT MODE is set to DATA, SLH is used to +establish at character position n in the active line (the line that +contains the active data position) and lines of subsequent text in the +data component the position to which the active data position will be +moved by subsequent occurrences of CARRIAGE RETURN (CR), DELETE LINE +(DL), INSERT LINE (IL) or NEXT LINE (NEL) in the data stream; where n +equals the value of Pn. It is also the position ahead of which no +implicit movement of the active data position shall occur. + +The established position is called the line home position and remains +in effect until the next occurrence of SLH in the data stream. + +Source: ECMA-48 5th Ed. 8.3.122 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Pn SP V +Mnemonic: SLL +Description: Set line limit + +No parameter default value. + +If the DEVICE COMPONENT SELECT MODE is set to PRESENTATION, SLL is +used to establish at character position n in the active line (the line +that contains the active presentation position) and lines of +subsequent text in the presentation component the position to which +the active presentation position will be moved by subsequent +occurrences of CARRIAGE RETURN (CR), or NEXT LINE (NEL) in the data +stream if the parameter value of SELECT IMPLICIT MOVEMENT DIRECTION +(SIMD) is equal to 1; where n equals the value of Pn. In the case of a +device without data component, it is also the position beyond which no +implicit movement of the active presentation position shall occur. + +If the DEVICE COMPONENT SELECT MODE is set to DATA, SLL is used to +establish at character position n in the active line (the line that +contains the active data position) and lines of subsequent text in the +data component the position beyond which no implicit movement of the +active data position shall occur. It is also the position in the data +component to which the active data position will be moved by +subsequent occurrences of CR or NEL in the data stream, if the +parameter value of SELECT IMPLICIT MOVEMENT DIRECTION (SIMD) is equal +to 1. + +The established position is called the line limit position and remains +in effect until the next occurrence of SLL in the data stream. + +Source: ECMA-48 5th Ed. 8.3.123 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Pn SP W +Mnemonic: FNK +Description: Function key + +No parameter default value. + +FNK is a control function in which the parameter value identifies the +function key which has been operated. + +Source: ECMA-48 5th Ed. 8.3.52 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Ps SP X +Mnemonic: SPQR +Description: Select print quality and rapidity + +Parameter default value: Ps = 0 + +SPQR is used to select the relative print quality and the print speed +for devices the output quality and speed of which are inversely +related. The selected values remain in effect until the next +occurrence of SPQR in the data stream. The parameter values are + +0 highest available print quality, low print speed +1 medium print quality, medium print speed +2 draft print quality, highest available print speed + +Source: ECMA-48 5th Ed. 8.3.134 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Ps1 ; Ps2 SP Y +Mnemonic: SEF +Description: Sheet eject and feed + +Parameter default values: Ps1 = 0; Ps2 = 0 + +SEF causes a sheet of paper to be ejected from a printing device into +a specified output stacker and another sheet to be loaded into the +printing device from a specified paper bin. + +Parameter values of Ps1 are: +0 eject sheet, no new sheet loaded +1 eject sheet and load another from bin 1 +2 eject sheet and load another from bin 2 +... +n eject sheet and load another from bin n + +Parameter values of Ps2 are: +0 eject sheet, no stacker specified +1 eject sheet into stacker 1 +2 eject sheet into stacker 2 +... +n eject sheet into stacker n + +Source: ECMA-48 5th Ed. 8.3.116 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Ps SP Z +Mnemonic: PEC +Description: Presentation expand or contract + +Parameter default value: Ps = 0 + +PEC is used to establish the spacing and the extent of the graphic +characters for subsequent text. The spacing is specified in the line +as multiples of the spacing established by the most recent occurrence +of SET CHARACTER SPACING (SCS) or of SELECT CHARACTER SPACING (SHS) or +of SPACING INCREMENT (SPI) in the data stream. The extent of the +characters is implicitly established by these control functions. The +established spacing and the extent remain in effect until the next +occurrence of PEC, of SCS, of SHS or of SPI in the data stream. The +parameter values are + +0 normal (as specified by SCS, SHS or SPI) +1 expanded (multiplied by a factor not greater than 2) +2 condensed (multiplied by a factor not less than 0,5) + +Source: ECMA-48 5th Ed. 8.3.90 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Pn SP [ +Mnemonic: SSW +Description: Set space width + +No parameter default value. + +SSW is used to establish for subsequent text the character escapement +associated with the character SPACE. The established escapement +remains in effect until the next occurrence of SSW in the data stream +or until it is reset to the default value by a subsequent occurrence +of CARRIAGE RETURN/LINE FEED (CR/LF), CARRIAGE RETURN/FORM FEED +(CR/FF), or of NEXT LINE (NEL) in the data stream, see annex C. + + +Pn specifies the escapement. The unit in which the parameter value is +expressed is that established by the parameter value of SELECT SIZE +UNIT (SSU). + +The default character escapement of SPACE is specified by the most +recent occurrence of SET CHARACTER SPACING (SCS) or of SELECT +CHARACTER SPACING (SHS) or of SELECT SPACING INCREMENT (SPI) in the +data stream if the current font has constant spacing, or is specified +by the nominal width of the character SPACE in the current font if +that font has proportional spacing. + +Source: ECMA-48 5th Ed. 8.3.140 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Pn SP \ +Mnemonic: SACS +Description: Set additional character separation + +Parameter default value: Pn = 0 + +SACS is used to establish extra inter-character escapement for +subsequent text. The established extra escapement remains in effect +until the next occurrence of SACS or of SET REDUCED CHARACTER +SEPARATION (SRCS) in the data stream or until it is reset to the +default value by a subsequent occurrence of CARRIAGE RETURN/LINE FEED +(CR LF) or of NEXT LINE (NEL) in the data stream, see annex C. + +Pn specifies the number of units by which the inter-character +escapement is enlarged. + +The unit in which the parameter value is expressed is that established +by the parameter value of SELECT SIZE UNIT (SSU). + +Source: ECMA-48 5th Ed. 8.3.107 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Ps ... SP ] +Mnemonic: SAPV +Description: Select alternative presentation variants + +Parameter default value: Ps = 0 + +SAPV is used to specify one or more variants for the presentation of +subsequent text. The parameter values are + +0 default presentation (implementation-defined); cancels the effect of + any preceding occurrence of SAPV in the data stream + +1 the decimal digits are presented by means of the graphic symbols + used in the Latin script + +2 the decimal digits are presented by means of the graphic symbols + used in the Arabic script, i.e. the Hindi symbols + +3 when the direction of the character path is right-to-left, each of + the graphic characters in the graphic character set(s) in use which + is one of a left/right-handed pair (parentheses, square brackets, + curly brackets, greater-than/less-than signs, etc.) is presented as + "mirrored", i.e. as the other member of the pair. For example, the + coded graphic character given the name LEFT PARENTHESIS is presented + as RIGHT PARENTHESIS, and vice versa + +4 when the direction of the character path is right-to-left, all + graphic characters which represent operators and delimiters in + mathematical formulae and which are not symmetrical about a vertical + axis are presented as mirrored about that vertical axis + +5 the following graphic character is presented in its isolated form + +6 the following graphic character is presented in its initial form + +7 the following graphic character is presented in its medial form + +8 the following graphic character is presented in its final form + +9 where the bit combination 02/14 is intended to represent a decimal + mark in a decimal number it shall be presented by means of the + graphic symbol FULL STOP + +10 where the bit combination 02/14 is intended to represent a decimal + mark in a decimal number it shall be presented by means of the + graphic symbol COMMA + +11 vowels are presented above or below the preceding character + +12 vowels are presented after the preceding character + +13 contextual shape determination of Arabic scripts, including the + LAM-ALEPH ligature but excluding all other Arabic ligatures + +14 contextual shape determination of Arabic scripts, excluding all + Arabic ligatures + +15 cancels the effect of parameter values 3 and 4 + +16 vowels are not presented + +17 when the string direction is right-to-left, the italicized + characters are slanted to the left; when the string direction is + left-to-right, the italicized characters are slanted to the right + +18 contextual shape determination of Arabic scripts is not used, the + graphic characters - including the digits - are presented in the + form they are stored (Pass-through) + +19 contextual shape determination of Arabic scripts is not used, the + graphic characters- excluding the digits - are presented in the + form they are stored (Pass-through) + +20 the graphic symbols used to present the decimal digits are device + dependent + +21 establishes the effect of parameter values 5, 6, 7, and 8 for the + following graphic characters until cancelled + +22 cancels the effect of parameter value 21, i.e. re-establishes the + effect of parameter values 5, 6, 7, and 8 for the next single + graphic character only. + +Source: ECMA-48 5th Ed. 8.3.108 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Ps SP ^ +Mnemonic: STAB +Description: Selective tabulation + +No parameter default value. + +STAB causes subsequent text in the presentation component to be +aligned according to the position and the properties of a tabulation +stop which is selected from a list according to the value of the +parameter Ps. + +The use of this control function and means of specifying a list of +tabulation stops to be referenced by the control function are +specified in other standards, for example ISO 8613-6. + +Source: ECMA-48 5th Ed. 8.3.144 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Ps SP _ +Mnemonic: GCC +Description: Graphic character combination + +Parameter default value: Ps = 0 + +GCC is used to indicate that two or more graphic characters are to be +imaged as one single graphic symbol. GCC with a parameter value of 0 +indicates that the following two graphic characters are to be imaged +as one single graphic symbol; GCC with a parameter value of 1 and GCC +with a parameter value of 2 indicate respectively the beginning and +the end of a string of graphic characters which are to be imaged as +one single graphic symbol. + +NOTE +GCC does not explicitly specify the relative sizes or placements of +the component parts of a composite graphic symbol. In the simplest +case, two components may be "half-width" and side-by-side. For +example, in Japanese text a pair of characters may be presented +side-by-side, and occupy the space of a normal-size Kanji character. + +Source: ECMA-48 5th Ed. 8.3.54 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Pn SP ` +Mnemonic: TATE +Description: Tabulation aligned trailing edge + +No parameter default value. + +TATE causes a character tabulation stop calling for trailing edge +alignment to be set at character position n in the active line (the +line that contains the active presentation position) and lines of +subsequent text in the presentation component, where n equals the +value of Pn. TATE causes the replacement of any tabulation stop +previously set at that character position, but does not affect other +tabulation stops. + +A text string aligned with a tabulation stop set by TATE will be +positioned so that the (trailing edge of the) first graphic character +of the string is placed at the tabulation stop. + +Source: ECMA-48 5th Ed. 8.3.153 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Pn SP a +Mnemonic: TALE +Description: Tabulation aligned leading edge + +No parameter default value. + +TALE causes a character tabulation stop calling for leading edge +alignment to be set at character position n in the active line (the +line that contains the active presentation position) and lines of +subsequent text in the presentation component, where n equals the +value of Pn. TALE causes the replacement of any tabulation stop +previously set at that character position, but does not affect other +tabulation stops. + +A text string aligned with a tabulation stop set by TALE will be +positioned so that the (leading edge of the) last graphic character of +the string is placed at the tabulation stop. + +Source: ECMA-48 5th Ed. 8.3.152 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Pn SP b +Mnemonic: TAC +Description: Tabulation aligned centred + +No parameter default value. + +TAC causes a character tabulation stop calling for centring to be set +at character position n in the active line (the line that contains the +active presentation position) and lines of subsequent text in the +presentation component, where n equals the value of Pn. TAC causes the +replacement of any tabulation stop previously set at that character +position, but does not affect other tabulation stops. + +A text string centred upon a tabulation stop set by TAC will be +positioned so that the (trailing edge of the) first graphic character +and the (leading edge of the) last graphic character are at +approximately equal distances from the tabulation stop. + +Source: ECMA-48 5th Ed. 8.3.151 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Pn1 ; Pn2 SP c +Mnemonic: TCC +Description: Tabulation centred on character + +No parameter default value for Pn1 + +Parameter default value: Pn2 = 32 + +TCC causes a character tabulation stop calling for alignment of a +target graphic character to be set at character position n in the +active line (the line that contains the active presentation position) +and lines of subsequent text in the presentation component, where n +equals the value of Pn1, and the target character about which centring +is to be performed is specified by Pn2. TCC causes the replacement of +any tabulation stop previously set at that character position, but +does not affect other tabulation stops. + +The positioning of a text string aligned with a tabulation stop set by +TCC will be determined by the first occurrence in the string of the +target graphic character; that character will be centred upon the +tabulation stop. If the target character does not occur within the +string, then the trailing edge of the first character of the string +will be positioned at the tabulation stop. + +The value of Pn2 indicates the code table position (binary value) of +the target character in the currently invoked code. For a 7-bit code, +the permissible range of values is 32 to 127; for an 8-bit code, the +permissible range of values is 32 to 127 and 160 to 255. + +Source: ECMA-48 5th Ed. 8.3.155 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Pn SP d +Mnemonic: TSR +Description: Tabulation stop remove + +No parameter default value. + +TSR causes any character tabulation stop at character position n in +the active line (the line that contains the active presentation +position) and lines of subsequent text in the presentation component +to be cleared, but does not affect other tabulation stops. n equals +the value of Pn. + +Source: ECMA-48 5th Ed. 8.3.156 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Ps SP e +Mnemonic: SCO +Description: Select character orientation + +Parameter default value: Ps = 0 + +SCO is used to establish the amount of rotation of the graphic +characters following in the data stream. The established value +remains in effect until the next occurrence of SCO in the data stream. + +The parameter values are +0 0 deg +1 45 deg +2 90 deg +3 135 deg +4 180 deg +5 225 deg +6 270 deg +7 315 deg + +Rotation is positive, i.e. counter-clockwise and applies to the normal +presentation of the graphic characters along the character path. The +centre of rotation of the affected graphic characters is not defined +by this Standard. + +Source: ECMA-48 5th Ed. 8.3.110 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Pn SP f +Mnemonic: SRCS +Description: Set reduced character separation + +Parameter default value: Pn = 0 + +SRCS is used to establish reduced inter-character escapement for +subsequent text. The established reduced escapement remains in effect +until the next occurrence of SRCS or of SET ADDITIONAL CHARACTER +SEPARATION (SACS) in the data stream or until it is reset to the +default value by a subsequent occurrence of CARRIAGE RETURN/LINE FEED +(CR/LF) or of NEXT LINE (NEL) in the data stream, see annex C. + +Pn specifies the number of units by which the inter-character +escapement is reduced. + +The unit in which the parameter values are expressed is that +established by the parameter value of SELECT SIZE UNIT (SSU). + +Source: ECMA-48 5th Ed. 8.3.136 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Pn SP g +Mnemonic: SCS +Description: Set character spacing + +No parameter default value. + +SCS is used to establish the character spacing for subsequent +text. The established spacing remains in effect until the next +occurrence of SCS, or of SELECT CHARACTER SPACING (SHS) or of SPACING +INCREMENT (SPI) in the data stream, see annex C. + +Pn specifies the character spacing. + +The unit in which the parameter value is expressed is that established +by the parameter value of SELECT SIZE UNIT (SSU). + +Source: ECMA-48 5th Ed. 8.3.112 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Pn SP h +Mnemonic: SLS +Description: Set line spacing + +No parameter default value. + +SLS is used to establish the line spacing for subsequent text. The +established spacing remains in effect until the next occurrence of SLS +or of SELECT LINE SPACING (SVS) or of SPACING INCREMENT (SPI) in the +data stream. + +Pn specifies the line spacing. + +The unit in which the parameter value is expressed is that established +by the parameter value of SELECT SIZE UNIT (SSU). + +Source: ECMA-48 5th Ed. 8.3.124 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Pn SP i +Mnemonic: SPH +Description: Set page home + +No parameter default value. + +If the DEVICE COMPONENT SELECT MODE is set to PRESENTATION, SPH is +used to establish at line position n in the active page (the page that +contains the active presentation position) and subsequent pages in the +presentation component the position to which the active presentation +position will be moved by subsequent occurrences of FORM FEED (FF) in +the data stream; where n equals the value of Pn. In the case of a +device without data component, it is also the position ahead of which +no implicit movement of the active presentation position shall occur. + +If the DEVICE COMPONENT SELECT MODE is set to DATA, SPH is used to +establish at line position n in the active page (the page that +contains the active data position) and subsequent pages in the data +component the position to which the active data position will be moved +by subsequent occurrences of FORM FEED (FF) in the data stream; where +n equals the value of Pn. It is also the position ahead of which no +implicit movement of the active presentation position shall occur. + +The established position is called the page home position and remains +in effect until the next occurrence of SPH in the data stream. + +Source: ECMA-48 5th Ed. 8.3.131 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Pn SP j +Mnemonic: SPL +Description: Set page limit + +No parameter default value. + +If the DEVICE COMPONENT SELECT MODE is set to PRESENTATION, SPL is +used to establish at line position n in the active page (the page that +contains the active presentation position) and pages of subsequent +text in the presentation component the position beyond which the +active presentation position can normally not be moved; where n equals +the value of Pn. In the case of a device without data component, it is +also the position beyond which no implicit movement of the active +presentation position shall occur. + +If the DEVICE COMPONENT SELECT MODE is set to DATA, SPL is used to +establish at line position n in the active page (the page that +contains the active data position) and pages of subsequent text in the +data component the position beyond which no implicit movement of the +active data position shall occur. + +The established position is called the page limit position and remains +in effect until the next occurrence of SPL in the data stream. + +Source: ECMA-48 5th Ed. 8.3.133 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Ps1 ; Ps2 SP k +Mnemonic: SCP +Description: Select character path + +No parameter default values. + +SCP is used to select the character path, relative to the line +orientation, for the active line (the line that contains the active +presentation position) and subsequent lines in the presentation +component. It is also used to update the content of the active line in +the presentation component and the content of the active line (the +line that contains the active data position) in the data +component. This takes effect immediately. + +Ps1 specifies the character path: + +1 left-to-right (in the case of horizontal line orientation), or + top-to-bottom (in the case of vertical line orientation) + +2 right-to-left (in the case of horizontal line orientation), or + bottom-to-top (in the case of vertical line orientation) + +Ps2 specifies the effect on the content of the presentation component +and the content of the data component: + +0 undefined (implementation-dependent) + +NOTE +This may also permit the effect to take place after the next +occurrence of CR, NEL or any control function which initiates an +absolute movement of the active presentation position or the active +data position. + +1 the content of the active line in the presentation component (the + line that contains the active presentation position) is updated to + correspond to the content of the active line in the data component + (the line that contains the active data position) according to the + newly established character path characteristics in the presentation + component; the active data position is moved to the first character + position in the active line in the data component, the active + presentation position in the presentation component is updated + accordingly + +2 the content of the active line in the data component (the line that + contains the active data position) is updated to correspond to the + content of the active line in the presentation component (the line + that contains the active presentation position) according to the newly + established character path characteristics of the presentation + component; the active presentation position is moved to the first + character position in the active line in the presentation component, + the active data position in the data component is updated + accordingly. + +Source: ECMA-48 5th Ed. 8.3.111 +Status: standard +------------------------------------------------------------------------------- +Sequence: CSI Ps SP q +Mnemonic: DECSCUSR +Description: Set cursor style + + Where ps can be 0, 1, 2, 3, 4 meaning Blinking Block, Blinking Block, + Steady Block, Blink Underline, Steady Underline, respectively. + +Source: +Status: DEC private; VT520 +------------------------------------------------------------------------------- +Sequence: CSI ... SP s +Mnemonic: DECNS +Description: New sheet + +Source: +Status: DEC private; PPL3 +------------------------------------------------------------------------------- +Sequence: CSI ... SP w +Mnemonic: DECSITF +Description: Select input tray failover + +Source: +Status: DEC private; PPL3 +------------------------------------------------------------------------------- +Sequence: CSI ... SP x +Mnemonic: DECSDPM +Description: Set Duplex Print Mode + +Source: +Status: DEC private; PPL3 +------------------------------------------------------------------------------- +Sequence: CSI ... SP z +Mnemonic: DECVPFS +Description: Variable page format select + +Source: +Status: DEC private; PPL3 +------------------------------------------------------------------------------- +Sequence: CSI ... SP { +Mnemonic: DECSSS +Description: Set sheet size + +Source: +Status: DEC private; PPL3 +------------------------------------------------------------------------------- +Sequence: CSI ... SP | +Mnemonic: DECRVEC +Description: Draw relative vector + +Source: +Status: DEC private; PPL3 +------------------------------------------------------------------------------- +Sequence: CSI ! +Description: Determining RIP support + +The ESC[! is the code that RIP supporting BBS's use to determine +whether your terminal has RIP (Remote Imaging Protocol) support. If so, +then your terminal returns a string to the remote side in the form +"RIPScript version x.xx" or some such thing. This is probably why you have +been receiving that code. + +I found the RIPscript 1.54 spec at ftp.telegrafix.com. + +Source: + +Status: TeleGrafix private; clashes with ECMA-48 +------------------------------------------------------------------------------- +Sequence: CSI ! p +Mnemonic: DECSTR +Description: Soft terminal reset + +sets terminal to power-up default states + +Source: + "VT220 Programmer Pocket Guide" EK-VT220-HR-001, page 33 + +(keeps screen) + +Source: +Status: DEC private; VT220 +------------------------------------------------------------------------------- +Sequence: CSI Pn1 ; Pn2 ; Pn3 ; Pn4 ! s +Mnemonic: DECFIL +Description: Right justification + +0 <= Pn1 <= 1535 (1/720-inch units, 1/120-inch increments) +0 <= Pn2 <= 255 (number of printing characters) +0 <= Pn3 <= 1535 (1/720-inch units, 1/120-inch increments) +0 <= Pn4 <= 255 (number of spaces) + +Source: DEC Terminals and Printers Handbook 1985 EB 26291-56 pE102 +Status: DEC private; LQP02 +------------------------------------------------------------------------------- +Sequence: CSI Ps ! v +Mnemonic: DECASFC +Description: Automatic sheet feeder control + +Source: +Status: DEC private; PPL2 +------------------------------------------------------------------------------- +Sequence: CSI Pn ! w +Mnemonic: DECUND +Description: Select undeline character + +Select underline character Pn other than default character. + +Source: DEC Terminals and Printers Handbook 1985 EB 26291-56 pE90 +Status: DEC private; LQP02 +------------------------------------------------------------------------------- +Sequence: CSI Ps ! x +Mnemonic: DECPTS +Description: Printwheel table select + +Ps == 0,1 Select printwheel table 1 +Ps == 2 Select printwheel table 2 + +Source: DEC Terminals and Printers Handbook 1985 EB 26291-56 pE90 +Status: DEC private; LQP02 +------------------------------------------------------------------------------- +Sequence: CSI Pn ! y +Mnemonic: DECSS +Descripton: Select spacing + +Set horizontal spacing increment (proportional spacing mode). + +6 <= Pn <= 768 (decipoint units, 1/720 inch) + +Source: DEC Terminals and Printers Handbook 1985 EB 26291-56 ppE91,E99 +Status: DEC private; LQP02 +------------------------------------------------------------------------------- +Sequence: CSI Ps1 ; Pn2 ; Pn3 ; Pn4 ; Pn5 ! | +Mnemonic: DECVEC +Description: Draw vector + +Ps1 Meaning +0 Draw X line +1 Draw Y line + +Pn1 = X start value +Pn2 = Y start value +Pn4 = line length +Pn5 = line width + +Units are decipoints or pixels according to SSU. + +Source: DEC Terminals and Printers Handbook 1985 EB 26291-56 pE107 +Status: DEC private; LN03 +------------------------------------------------------------------------------- +Sequence: CSI ... ! } +Mnemonic: DECFIN +Description: Document finishing + +Instructs the device whether to change the offset at which paper is +delivered to the output tray. + +Source: +Status: DEC private; LQP03 +------------------------------------------------------------------------------- +Sequence: CSI Ps1 ; Ps2 " p +Mnemonic: DECSCL +Description: Set compatibility level + +CSI 6 1 " p -> Level 1 (VT100) compatibility +CSI 6 2 " p -> Level 2 (VT200) compatibility, 8-bit controls +CSI 6 2 ; 0 " p -> ditto +CSI 6 2 ; 1 " p -> ditto, 7-bit controls +CSI 6 2 ; 2 " p -> ditto, 8-bit controls + +Ps1 = 63 selects Level 3 (VT300) +Ps1 = 64 selects Level 4 (VT400) + +Source: VT220 Ref Manual +Source: Reflection TRM (VT) Version 7.0 +Status: DEC private; VT200 +------------------------------------------------------------------------------- +Sequence: CSI Ps " q +Mnemonic: DECSCA +Description: Select character attributes + +Ps Action + 0 All attributes off (does not apply to SGR) + 1 Designate character as "non-erasable" by DECSEL/DECSED. (Attribute on) + 2 Designate character "erasable" by DECSEL/DECSED. (Attribute off) + + +NOTE: A parameter value of 0 implies the default which is attributes +off (erasable by DECSEL/DECSED). A parameter value of 2 is an explicit +request for this attribute to be off (erasable by DECSEL/DECSED). + +Souce: +Status: DEC private +------------------------------------------------------------------------------- +Sequence: CSI Pn1 ; Pn2 " s +Mnemonic: DECPWA +Description: Page width alignment + +Pn1 specifies the left edge of the print arera relatiove to the left +edge of platen. Pn2 specifies width of print area. Pn1 and Pn2 are +measured in units of 1/12 inch. + +Source: DEC Terminals and Printers Handbook 1985 EB 26291-56 pE42 +Status: DEC private; printers +------------------------------------------------------------------------------- +Sequence: CSI ... " v +Mnemonic: DECRQDE +Description: Request device extent + +Source: +Status: DEC private; VT400 +------------------------------------------------------------------------------- +Sequence: CSI ... " w +Mnemonic: DECRPDE +Description: Report device extent + +Source: +Status: DEC private; VT400 +------------------------------------------------------------------------------- +Sequence: CSI ... " z +Mnemonic: DECDEN +Description: Select density + +ESC [ 0 " z selects default (draft) density +ESC [ 1 " z selects draft density +ESC [ 2 " z selects letter density (medium or high density depending on + DPS). + +Source: +Source: DEC Terminals and Printers Handbook 1985 EB 26291-56 pE46 +Status: DEC private; printers +------------------------------------------------------------------------------- +Sequence: CSI Ps ; " { String ST +Mnemonic: DECRFS +Description: Request font status + +Ps Meaning +0 Send status of all fonts +1 Send status of ROM resident, down line loaded, and cartridge +2 Send status of memory bytes remaining for host loaded fonts + +String = type family and font + +Response (DECFSR) is: + +CSI 2 " nnn ST + +Where nnn = number of bytes remaining in memory + +Source: DEC Terminals and Printers Handbook 1985 EB 26291-56 pE107 +Status: DEC private; LN03 + +Response is: + +ESC [ ? Pn ; Pm SP D + +Source: DEC Terminals and Printers Handbook 1985 EB 26291-56 pE124 +Status: DEC private; LCP01 +------------------------------------------------------------------------------- +Sequence: CSI Pn $ p +Mnemonic: DECRQM +Description: Request mode settings + +Pn is a mode number, as passed to SM or RM. It can include a leading +? to specify a DEC private mode. The terminal returns CSI Pn ; Pn2 $ +y, where Pn2 is 1 if the mode is in the set state. + +Source: Paul Williams in comp.terminals + <7t76qq$23q$1@nnrp1.deja.com> +Status: DEC private +------------------------------------------------------------------------------- +Sequence: CSI Pn1 ; Pn2 ; Pn3 ; Pn4 ; Ps1 ... Psn $ r +Mnemonic: DECCARA +Description: Change attributes in rectangular area + +Change the visual attributes for characters in a specified area of +display memorythe characters themselves remain unchanged. The DECSACE +control function is used to determine whether all or just some of the +character positions are affected. The parameters are: + +Pn1 Top line +Pn2 Left column +Pn3 Bottom line +Pn4 Right column + +Source: Reflection TRM (VT) Version 7.0 + +Ps1 ... Psn are standard SGR character attributes. + +Source: +Status: DEC private; VT420 +------------------------------------------------------------------------------- +Sequence: CSI Pn1 ; Pn2 ; Pn3 ; Pn4 ; Ps1 ; ... ; Psn $ t +Mnemonic: DECRARA +Description: Reverse attributes in rectangular area + +Reverse the visual attributes for characters in a specified area of +display memorythe characters themselves remain unchanged. The DECSACE +control function is used to determine whether all or just some of the +character positions are affected. The parameters are: + +Pn1 Top line +Pn2 Left column +Pn3 Bottom line +Pn4 Right column +Ps1...Psn Normal SGR character attributes + +Source: Reflection TRM (VT) Version 7.0 +Status: DEC private; VT420 +------------------------------------------------------------------------------- +Sequence: CSI Ps ; ... $ u +Mnemonic: DECRQTSR +Description: Request terminal state report + +Ps = 1 => Host request for a terminal state report (returns DECTSR) + +Ps = 2 => Host request for color table report. In this case the + second parameter signifies the colour space; 0 or 1 + indicates HLS (the default) and 2 indicates RGB. The reply + is DECCTR. If the terminal doesn't understand, it responds + with DCS 0 $ s ST. + +RBComm always returns DCS 1 $ ST (no state information returned) + +Source: +Source: +Source: Reflection TRM (VT) Version 7.0 +Status: DEC private +------------------------------------------------------------------------------- +Sequence: CSI Pn1 ; Pn2 ; Pn3 ; Pn4 ; Pn5 ; Pn6 ; Pn7 ; Pn8 $ v +Mnemonic: DECCRA +Description: Copy rectangular area + +Copy a rectangular area of display memory from one part of page memory +to another. Characters and their attributes remain unchanged. The +parameters Pn1 through Pn5 describe the area to be copied: + +Pn1 Top line +Pn2 Left column +Pn3 Bottom line +Pn4 Right column +Pn5 Page number + +The parameters through describe where the area should be copied: + +Pn6 Top line +Pn7 Left column +Pn8 Page number + +Source: Reflection TRM (VT) Version 7.0 +Status: DEC private; VT400 +------------------------------------------------------------------------------- +Sequence: CSI Ps $ w +Mnemonic: DECRQPSR +Description: Request presentation state report + +/* + * From Kermit 3.13 & VT220 pocket guide + * + * Request CSI 1 $ w cursor information report + +See DECCIR for response + +CSI 2 $ w tab stop report + +See DECTABSR for response + +Source: +Source: vttest-990712 vt420.c +Status: DEC private; VT300 +------------------------------------------------------------------------------- +Sequence: CSI Pn1 ; Pn2 ; Pn3 ; Pn4 ; Pn5 $ x +Mnemonic: DECFRA +Description: Fill rectangular area + +Fill an area in display memory with a specified character. The fill +character takes on the visual attributes set by the last SGR control +function, not the attributes of the characters that it replaces. +Current line attributes (for example, the attributes that specify +double-wide, double-high characters) remain unchanged. The parameters +are: + +Pn1 Decimal code of fill character +Pn2 Top line +Pn3 Left column +Pn4 Bottom line +Pn5 Right column + +Source: Reflection TRM (VT) Version 7.0 +Status: DEC private; VT400 +------------------------------------------------------------------------------- +Sequence: CSI Pn ; Ps $ y +Mnemonic: DECRPM +Description: Report mode settings + +You can query setting of this with + CSI ? 67 $ p +response CSI ? 67 ; Ps $ y + where Ps : 0 = unkown mode + 1 = set + 2 = reset + 3 = permanently set + 4 = permanently reset + This query is possible if terminal supports terminal interrogation commands + (== VT400 series or better). + +Source: +Source: +Status: DEC private; VT300 +------------------------------------------------------------------------------- +Sequence: CSU Pn1 ; Pn2 ; Pn3 ; Pn4 $ z +Mnemonic: DECERA +Description: Erase rectangular area + +Erase the characters (and their visual attributes) in the specified +rectangular area and replace each one with a space (decimal 32). Line +attributes (for example, the attributes that specify double-wide, +double-high characters) are not erased. The areas to erase are: + +Pn1 Top line +Pn2 Left column +Pn3 Bottom line +Pn4 Right column + +Source: Reflection TRM (VT) Version 7.0 +Status: DEC private; VT400 +------------------------------------------------------------------------------- +Sequence: CSI Pn1 ; Pn2 ; Pn3 ; Pn4 $ { +Mnemonic: DECSERA +Description: Selective erase rectangular area + +Erase all erasable characters from a specified rectangular area in +page memory; a space character replaces erased character +positions. The DECSERA control function does not change: + +* Visual attributes set by the select graphic rendition (SGR) function. +* Protection attributes set by DECSCA. +* Line attributes. + +The parameters are: +Pn1 Top line +Pn2 Left column +Pn3 Bottom line +Pn4 Right column + +Source: Reflection TRM (VT) Version 7.0 +Status: DEC private; VT400 +------------------------------------------------------------------------------- +Sequence: CSI Ps $ | +Mnemonic: DECSCPP +Description: Set columns per page + The VT330 also implements the DECSCPP (set columns per page) as the + preferred new way; it does not reset the scrolling regions or clear + page memory as DECCOLM does. + + Esc [ $ | sets each page to 80 columns + Esc [ 0 $ | sets each page to 80 columns + Esc [ 8 0 $ | sets each page to 80 columns + Esc [ 1 3 2 $ | sets each page to 132 columns + +Source: +Status: DEC private; VT330 +------------------------------------------------------------------------------- +Sequence: CSI Ps $ } +Mnemonic: DECSASD +Description: Select active status display + +Ps = 0 -> none +Ps = 1 -> status + +This means CSI 0 $ } selects the main display, and CSI 1 $ } selects +the status line. + +Source: +Source: +Status: DEC private; VT320 +------------------------------------------------------------------------------- +Sequence: CSI Ps $ ~ +Mnemonic: DECSSDT +Desription: Select status display type + +Ps = 0 -> none +Ps = 1 -> indicator (shows cursor position etc) +Ps = 2 -> host writeable + +Source: +Source: +Status: DEC private; VT320 +------------------------------------------------------------------------------- +Sequence: CSI Pn & q +Mnemonic: DECSNC +Description: Set number of copies + +Source: +Status: DEC private; PPL3 +------------------------------------------------------------------------------- +Sequence: CSI ... & u +Mnemonic: DECRQUPSS +Description: Request user-preferred supplemental set + +Source: +Status: DEC private; VT400 +------------------------------------------------------------------------------- +Sequence: CSI Pe ; Pb ; Pr ; Pc ; Pp & w +Mnemonic: DECLRP +Description: Locator report + +When a selected trigger event occurs such as a button press or +release, the terminal transmits a locator position report as follows. + +Pe is the event code +Pb is the button code +Pr is the row coordinate +Pc is the column coordinate +Pp is the third coordinate (page number) + +Pe, the event code indicates what event caused this report to be +generated. The following event codes are defined: + +0 - request, the terminal received an explicit request + for a locator report, but the locator is unavailable +1 - request, the terminal received an explicit + request for a locator report +2 - left button down +3 - left button up +4 - middle button down +5 - middle button up +6 - right button down +7 - right button up +8 - fourth button down +9 - fourth button up +10 - locator outside filter rectangle + +Pb is the button code, ASCII decimal 0-15 indicating which buttons are +down if any. The state of the four buttons on the locator correspond +to the low four bits of the decimal value, "1" means button depressed + +0 - no buttons down +1 - right +2 - middle +4 - left +8 - fourth + +Pr is the row coordinate of the locator position in the page, encoded +as an ASCII decimal value. If Pr is omitted, the locator position is +undefined (outside the terminal window for example). + +Pc is the column coordinate of the locator position in the page, +encoded as an ASCII decimal value. If Pc is omitted, the locator +position is undefined (outside the terminal window for example). + +Pp is the page coordinate of the locator position encoded as an ASCII +decimal value. The page coordinate may be omitted if the locator is on +page one (the default). + +Each locator report includes both the specific transition which caused +this event, and the current button state. This allows software to +determine what event just occured and which buttons are down without +keeping track of previous events or button state. In a multiprocess +shared locator environment, an application may not know the previous +button state. This dual reporting also allows applications to recover +from lost locator reports. + +Each locator event generates a single report. In the rare situation +where two events occur simultaneously (within a single sampling +period), the terminal will report this as two separate events. The +order of reporting shall be by increasing event code number (left +button first). + +Locator events are queued in the keyboard input silo just like +keystrokes. Each locator event occupies one position in the silo (the +keyboard silo currently must have at least 9 positions). If the input +silo becomes full, the locator and keyboard are locked until there is +again room in the silo. The sequential order of keystroke and locator +events is strictly maintained. + +It is the responsibility of the host to accept data fast enough to +avoid locking the locator unintentionally. The limited buffering +inside the terminal gives the host a little more time to process +locator events smoothly. + +When the keyboard is locked, the "wait" indicator on the keyboard +turns on. The keyboard is automatically locked any time the keyboard +input silo is full. The keyboard can be locked explicitly using the +keyboard action mode (KAM) control function. + +When the locator is locked, the terminal continues to track the +locator, but the input cursor changes shape to appear as a wristwatch +(or other shape indicating to wait). The wristwatch cursor indicates +that locator button transitions will be ignored, but allows the user +to continue positioning in anticipation of the locator being +unlocked. The locator is automatically locked any time the input silo +is full. + +Locator-ahead, analogous to keyboard type-ahead is supported by having +each report include the locator position at the time of the event, and +maintaining the sequential order of keystroke and locator events. + +A final implication of using the keyboard silo to buffer text locator +events is that locator and keyboard input should be associated with +the same session at all times. The session to receive these events is +sometimes called the "active session" or "input focus". In a +multi-session windowing environment, the input cursor is allowed to +roam freely over the entire screen in response to locator +movement. The input cursor is never occluded when locator reporting is +enabled in one or more sessions. Each session enables locator +reporting independently. The following cases describe the locator +interaction with session viewports and scroll regions. + +1. The input cursor is within the active session's viewport. Pressing + a button on the locator sends alocator report when enabled. + +2. The input cursor is inside the active session's viewport, but + outside the range of defined coordinates for that session. Pressing + a button on the locator will generate a report with omitted + coordinates (position undefined). An example would be when the + input cursor is outside the active scrolling region, and the origin + mode has been set to relative. To use the locator to adjust scroll + margins, the origin mode must be absolute. + +3. The input cursor is not contained in any viewport. Pressing a + button on the locator will have no effect. To support "pop up" + menus anywhere on the screen, the entire screen must be a viewport + for at least one session. + +4. The input cursor is within a viewport of a session which is not the + active session. Pressing a button on the locator will normally make + the session containing the input cursor the active session + (possibly changing the occlusion order of viewports, and the shape + of the locator). This case is the responsibility of the "window + manager" which is free to define its own user interface. Two + recommendations are: (1) No locator report should be sent to the + previous active session, since the locator is not in its viewport; + and (2) If locator reporting is enabled in the new session, a + locator report should not be transmitted to avoid application side + affects when selecting another window. + +Source: +Status: DEC private; VT340? +------------------------------------------------------------------------------- +Sequence: CSI ... & x +Mnemonic: DECES +Description: Enable session management + +Source: +Status: DEC private; VT400 +------------------------------------------------------------------------------- +Sequence: CSI ... ' q +Mnemonic: DECSBCA +Description: Select bar code attributes + +Source: +Status: DEC private; PPL2 +------------------------------------------------------------------------------- +Sequence: CSI Pt ; Pl ; Pb ; Pr ' w +Mnemonic: DECEFR +Description: Enable filter rectangle + +Filter Rectangles add filtered movement events to the list of locator +transitions that can generate reports. + +Pt - Top boundary of filter rectangle +Pl - Left boundary of filter rectangle +Pb - Bottom boundary of filter rectangle +Pr - Right boundary of filter rectangle + +The DECEFR control sequence defines the coordinates of a filter +rectangle, and activates it. Anytime the locator is detected to be +outside a filter rectangle, an outside rectangle event is generated +and the rectangle is disabled. Filter rectangles are always treated as +"one-shot" events. Defining a new rectangle re-activates it. + +Applications can re-define the rectangle at any time even if its +already active. If a rectangle which does not contain the locator is +specified, the terminal will generate an outside rectangle report +immediately and deactivate it. + +Pt, Pl, Pb, and Pr are in coordinates units specified by the last +DECELR sequence. The filter rectangle includes the boundaries (similar +to other rectangular area operations). The origin is coordinate pair +1:1 in the upper left corner. If any parameters are omitted, they are +defaulted to the current locator position. Sending DECEFR with no +parameters will cause the application to be notified for any locator +movement ("unfiltered movement event"). + +DECELR always cancels any previous filter rectangle definition. This +gaurantees that when an application enables locator reports, there +will never be an outstanding filter rectangle. + +If a filter rectangle lies on the edge of the defined coordinate space +for the active session, and the locator crosses that edge, the +rectangle may be triggered to send a report with omitted coordinates +(locator position undefined). + +If the active session receives a filter rectangle with explicit +coordinates while the locator is outside the defined coordinate space, +the rectangle will be triggered to send a report with omitted +coordinates. + +If the active session receives a filter rectangle with omitted +coordinates (that is, use the current position) while the locator is +outside the defined coordinate space (position undefined), the +rectangle will be triggered the next time the locator is within the +defined coordinate space. + +If a session which is not the active session receives a filter +rectangle with explicit coordinates, it should trigger immediately +with position undefined. If a session which is not the active session +receives a rectangle with omitted coordinates, it should trigger the +next time the locator is within the defined coordinate space for that +session, which cannot happen until the session becomes active. + +Source: +Status: DEC private; VT340? +------------------------------------------------------------------------------- +Sequence: CSI Ps ; Pu ' z +Mnemonic: DECELR +Description: Enable locator reports + +Locator reporting can be selectively enabled from the host using a DEC +private control sequence. When disabled (the power up default), the +locator cursor does not appear, and the locator buttons are +inactive. When enabled, the locator cursor is visible, and the +terminal tracks the locator locally with no host +intervention. Individual locator events such as locator button +transitions or movement may be programmed to send locator reports to +the host. + +Ps may assume the following values + +0 locator disabled (default) + +1 locator reports enabled + +2 one shot (allow one report, then disable) + +Pu specifies the coordinate units for locator reports + +0 (or omitted) default to character cells + +1 device physical pixels + +2 character cells + +One shot mode is provided for applications that desire simple graphics +input similar to Tektronix GIN mode (no unsolicited reports). If +parameter value 2 is selected, the next trigger event that occurs will +generate a single locator report. No further locator reports will +occur (the locator will be disabled), until another DECELR sequence is +received. + +The coordinate units for locator position reports may be selected to +either of two coordinate systems used by terminal software at the +lowest level. Physical pixels is the "least common denominator", and +is useful for computing sixel positions. + +Source: +Status: DEC private; VT340? +------------------------------------------------------------------------------- +Sequence: CSI P ... P ' { +Mnemonic: DECSLE +Description: Select locator events + +The locator events which are allowed to generate unsolicited reports +may be individually selected using the Select Locator Events +control. The locator is capable of reporting both up and down +transitions for those situations where the exact sequence of button +activiations is significant. This control allows application software +to select which events it wants reported. + +P...P is one or more selective parameters which may assume the +following values: + +0 respond only to explicit host requests + (default, also cancels any pending filter rectangle) +1 report button down transitions +2 do not report button down transitions +3 report button up transitions +4 do not report button up transitions + +Source: +Status: DEC private; VT340? +------------------------------------------------------------------------------- +Sequence: CSI Ps ' | +Mnemonic: DECRQLP +Description: Request locator position + +The host may explicitly request a locator position report any time +locator reporting is enabled (DECELR). Upon receiving such a request, +the terminal will immediately send a single locator report (DECLRP) +with event code 1 indicating the current locator position. + +If the session receiving the request is the active session, but the +locator is not within the defined coordinate range for that session, +the terminal will respond with omitted coordinates (locator position +undefined). + +If the session receiving the request is not currently active (the +locator is being used in another session), the report will specify +event code 0 (locator unavailable). Locator state from the active +session should not be made available to inactive sessions. + +If the locator is disabled (DECELR), the terminal should still respond +with event code 0 (to avoid timing out the application). + +Ps: +0 (or omitted) default to 1 +1 transmit a single DECLRP locator report all others ignored + +Source: +Status: DEC private; VT340? +------------------------------------------------------------------------------- +Sequence: CSI ... ' } +Mnemonic: DECIC +Description: Insert column + +Source: +Status: DEC private; VT400 +------------------------------------------------------------------------------- +Sequence: CSI ... ' ~ +Mnemonic: DECDC +Description: Delete column + +Source: +Status: DEC private; VT400 +------------------------------------------------------------------------------- +Sequence: CSI ... * q +Mnemonic: DECSRC +Descripton: Secure reset confirmation + +Source: +Status: DEC private; VT400 +------------------------------------------------------------------------------- +Sequence: CSI Ps * x +Mnemonic: DECSACE +Description: Select attribute change extent + +Select which character positions within a rectangular area can have +their attributes changed or reversed. The DECSACE control function +affects the rectangular area control functions for changing and +reversing attributes (DECCARA and DECRARA). + +The Ps parameter specifies what character positions are affected. 0 or +1 indicates a stream of character positions that begins in the first +position specified in the DECCARA or DECRARA control function, and +ends with the second one that is specified. A 2 indicates a +rectangular area of character positions; the DECCARA and DECRARA +control functions specify the upper left and lower right corners of +the area. + +Source: Reflection TRM (VT) Version 7.0 +Status: DEC private; VT400 +------------------------------------------------------------------------------- +Sequence: CSI Pn1 ; Pn2 ; Pn3 ; Pn4 ; Pn5 ; Pn6 * y +Mnemonic: DECRQCRA +Description: Request checksum of rectangular area + +Request a memory checksum of a rectangular area on a specified +page. The terminal returns a checksum report (DECCKSR) in +response. DECRQCRA also works on the status line. + +Parameters: + +Pn1 A numeric label you give to identify the checksum request +(DECCKSR returns this number). + +Pn2 The number of the page on which the rectangular area is +located. If Pn2 is 0 or omitted, the terminal ignores the remaining +parameters and reports a checksum for all pages in page memory. If + is more than the number of pages, Reflection does a checksum on +the last page. + +Pn3 to Pn6 define the area to be checksummed: + +Pn3 Top row +Pn4 Right column +Pn5 Bottom row +Pn6 Left column + +If Pn3 .. Pn6 are omitted, the entire page is checksummed. The +co-ordinates are affected by DECOM. + +Source: Reflection TRM (VT) Version 7.0 +Status: DEC private; VT400 +------------------------------------------------------------------------------- +Sequence: CSI Pn * z +Mnemonic: DECINVM +Description: Invoke Macro + +Invoke a stored macro. Pn is the macro ID number used in DECDMAC. If +Pn is not associated with a particular macro, Reflection ignores this +control function. If a macro definition includes control functions, +these functions remain in effect after the macro is invoked. + +Source: Reflection TRM (VT) Version 7.0 +Status: DEC private; VT400 +------------------------------------------------------------------------------- +Sequence: CSI ... * { +Mnemonic: DECMSR +Description: Macro space report + +Source: +Status: DEC private; VT400 +------------------------------------------------------------------------------- +Sequence: CSI ... * | +Mnemonic: DECSNLS +Description: Select number of lines per screen + +Source: +Status: DEC private; VT400 +------------------------------------------------------------------------------- +Sequence: CSI ... * } +Mnemonic: DECLFKC +Description: Local function key control + +Source: +Status: DEC private; VT400 +------------------------------------------------------------------------------- +Sequence: CSI ... + p +Mnemonic: DECSR +Description: Secure reset + +Source: +Status: DEC private; VT400 +------------------------------------------------------------------------------- +Sequence: CSI ... + q +Mnemonic: DECELF +Description: Enable local functions + +Source: +Status: DEC private; VT400 +------------------------------------------------------------------------------- +Sequence: CSI ... + r +Mnemonic: DECSMKR +Description: Select modifier key reporting + +Source: +Status: DEC private; VT400 +------------------------------------------------------------------------------- +Sequence: CSI ... + v +Mnemonic: DECMM +Description: Memory management + +Source: +Status: DEC private; PPL3 +------------------------------------------------------------------------------- +Sequence: CSI Ps / y +Description: xwsh command + +xwsh command. The first parameter to this escape sequence is the +particular command described in the table that follows. Each command +has different numbers of arguments which are described below. + +2 Textport init. Reset xwsh to be 40 rows by 80 columns. Reset the + colors to the default colors. Reset any graphics rendition. Clear + out the retain buffer. Home the cursor. + +3 Push the window. Depending on the window manager, this may or may + not have any affect. + +4 Pop the window. Depending on the window manager, this may or may not + have any affect. + +14 History init. Clear out the retain buffer. Home the cursor. + +16 Reset bindable function keys. + +15 Initialize bindable function keys to defaults. + +101 Set the text color by using a 3.3 compatible index. + +102 Set the page color by using a 3.3 compatible index. + +103 Set the bold color by using a 3.3 compatible index. + +104 Set the cursor page color by using a 3.3 compatible index. + +111 Set the selection colors by using 3.3 compatible indices. This + sequence takes three parameters. The first is 111. The second + parameter is the selection text color, the third is the selection + page color. + +203 Set the window size by row and column. This sequence takes three + parameters. The first is 203. The second parameter is the number + of rows to use. The third parameter is the number of columns to + use. + +204 Set the window size, in pixels. This sequence takes three + parameters. The first is 204. The second parameter is the new + width. The third parameter is the new height. The width and height + are rounded up to the nearest font boundaries. + +205 Set the window position, in pixels. The lower left corner of the + display is specified as 0,0. + +Source: IRIX 6.5.5 xwsh(1G) +Status: SGI private +------------------------------------------------------------------------------- +Sequence: ST or ESC \ +Mnemonic: ST +Description: String terminator + +ST is used as the closing delimiter of a control string opened by +APPLICATION PROGRAM COMMAND (APC), DEVICE CONTROL STRING (DCS), +OPERATING SYSTEM COMMAND (OSC), PRIVACY MESSAGE (PM), or START OF +STRING (SOS). + +Source: ECMA-48 5th Ed. 8.3.143 +Status: standard +------------------------------------------------------------------------------- +Sequence: OSC or ESC ] +Mnemonic: OSC +Description: Operating system command + +OSC is used as the opening delimiter of a control string for operating +system use. The command string following may consist of a sequence of +bit combinations in the range 00/08 to 00/13 and 02/00 to 07/14. The +control string is closed by the terminating delimiter STRING +TERMINATOR (ST). The interpretation of the command string depends on +the relevant operating system. + +Source: ECMA-48 5th Ed. 8.3.89 +Status: standard +------------------------------------------------------------------------------- +Sequence: OSC 0 ; txt BEL (or ST) +Description: Set icon name and window title + +Source: Linux console_codes(4) +Status: xterm private +------------------------------------------------------------------------------- +Sequence: OSC 1 ; txt BEL (or ST) +Description: Set icon name + +Source: Linux console_codes(4) +Status: xterm private +------------------------------------------------------------------------------- +Sequence: OSC 2 ; txt BEL (or ST) +Description: Set window title + +Source: Linux console_codes(4) +Status: xterm private +------------------------------------------------------------------------------- +Sequence: OSC 4 6 ; name BEL (or ST) +Description: Set log file + +Change log file to name (normally disabled by a compile-time option) + +Source: Linux console_codes(4) +Status: xterm private +------------------------------------------------------------------------------- +Sequence: OSC 5 0 ; fn BEl (or ST) +Description: Set font + +Source: Linux console_codes(4) +Status: xterm private +------------------------------------------------------------------------------- +Sequence: OSC P nrrggbb +Description: Set palette + +set palette, with parameter given in 7 hexadecimal digits after the +final P :-(. Here n is the color (0-16), and rrggbb indicates the +red/green/blue values (0-255). + +Source: Linux console_codes(4) +Status: Linux private; should be terminated with ST +------------------------------------------------------------------------------- +Dequence: OSC R +Description: Reset palette + +Source: Linux console_codes(4) +Status: Linux private; should be terminated with ST +------------------------------------------------------------------------------- +Sequence: PM or ESC ^ +Mnemonic: PM +Description: Privacy message + +PM is used as the opening delimiter of a control string for privacy +message use. The command string following may consist of a sequence of +bit combinations in the range 00/08 to 00/13 and 02/00 to 07/14. The +control string is closed by the terminating delimiter STRING +TERMINATOR (ST). The interpretation of the command string depends on +the relevant privacy discipline. + +Source: ECMA-48 5th Ed. 8.3.94 +Status: standard +------------------------------------------------------------------------------- +Sequence: APC or ESC _ +Mnemonic: APC +Description: Application program command + +APC is used as the opening delimiter of a control string for +application program use. The command string following may consist of +bit combinations in the range 00/08 to 00/13 and 02/00 to 07/14. The +control string is closed by the terminating delimiter STRING +TERMINATOR (ST). The interpretation of the command string depends on +the relevant application program. + +Source: ECMA-48 8.3.2 +Status: standard +------------------------------------------------------------------------------- +Section: *** Modes (for SM and RM) *** +------------------------------------------------------------------------------- +Mode: 1 +Mnemonic: GATM +Description: Guarded area transfer mode + +GUARD (reset): +Only the contents of unguarded areas in an eligible area are +transmitted or transferred. + +ALL (set): +The contents of guarded as well as of unguarded areas in an eligible +area are transmitted or transferred. + +NOTE +No control functions are affected. + +Source: ECMA-48 5th Ed. 7.2.7 +Status: standard +------------------------------------------------------------------------------- +Mode: 2 +Mnemonic: KAM +Description: Keyboard action mode + +ENABLED (reset): +All or part of the manual input facilities are enabled to be used. + +DISABLED (set): +All or part of the manual input facilities are disabled. + +NOTE +No control functions are affected. + +Source: ECMA-48 5th Ed. 7.2.11 +Status: standard +------------------------------------------------------------------------------- +Mode: 3 +Mnemonic: CRM +Description: Control representation mode + +CONTROL (reset): +All control functions are performed as defined; the way formator +functions are processed depends on the setting of the FORMAT EFFECTOR +ACTION MODE (FEAM). A device may choose to image the graphical +representations of control functions in addition to performing them. + +GRAPHIC (set): +All control functions, except RESET MODE (RM), are treated as graphic +characters. A device may choose to perform some control functions in +addition to storing them and imaging their graphical representations. + +NOTE +All control functions, except RM, are affected. + +Source: ECMA-48 5th Ed. 7.2.2 +Status: standard +------------------------------------------------------------------------------- +Mode: 4 +Mnemonic: IRM +Description: Insertion replacement mode + +REPLACE (reset): +The graphic symbol of a graphic character or of a control function, +for which a graphical representation is required, replaces (or, +depending upon the implementation, is combined with) the graphic +symbol imaged at the active presentation position. + +INSERT (set): +The graphic symbol of a graphic character or of a control function, +for which a graphical representation is required, is inserted at the +active presentation position. + +NOTE +Only control functions for which a graphical representation is +required are affected. + +Source: ECMA-48 5th Ed. 7.2.10 +Status: standard +------------------------------------------------------------------------------- +Mode: 5 +Mnemonic: SRTM +Description: Status report transfer mode + +NORMAL (reset): +Status reports in the form of DEVICE CONTROL STRINGs (DCS) are not +generated automatically. + +DIAGNOSTIC (set): +Status reports in the form of DEVICE CONTROL STRINGs (DCS) are +included in every data stream transmitted or transferred. + +NOTE +No control functions are affected. + +Source: ECMA-48 5th Ed. 7.2.16 +Status: standard +------------------------------------------------------------------------------- +Mode: 6 +Mnemonic: ERM +Description: Erasure mode + +PROTECT (reset): +Only the contents of unprotected areas are affected by an erasure +control function. + +ALL (set): +The contents of protected as well as of unprotected areas are affected +by an erasure control function. + +NOTE +Control functions affected are: EA, ECH, ED, EF, EL. + +Source: ECMA-48 5th Ed. 7.2.4 +Status: standard +------------------------------------------------------------------------------- +Mode: 7 +Mnemonic: VEM +Description: Line editing mode + +FOLLOWING (reset): + +If the DEVICE COMPONENT SELECT MODE (DCSM) is set to PRESENTATION, a +line insertion causes the contents of the active line (the line that +contains the active presentation position) and of the following lines +in the presentation component to be shifted in the direction of the +line progression; a line deletion causes the contents of the lines +following the active line to be shifted in the direction opposite to +that of the line progression. + +If the DEVICE COMPONENT SELECT MODE (DCSM) is set to DATA, a line +insertion causes the contents of the active line (the line that +contains the active data position) and of the following lines in the +data component to be shifted in the direction of the line progression; +a line deletion causes the contents of the lines following the active +line to be shifted in the direction opposite to that of the line +progression. + +PRECEDING (set): +If the DEVICE COMPONENT SELECT MODE (DCSM) is set to PRESENTATION, a +line insertion causes the contents of the active line (the line that +contains the active presentation position) and of the preceding lines +to be shifted in the direction opposite to that of the line +progression; a line deletion causes the contents of the lines +preceding the active line to be shifted in the direction of the line +progression. + +If the DEVICE COMPONENT SELECT MODE (DCSM) is set to DATA, a line +insertion causes the contents of the active line (the line that +contains the active data position) and of the preceding lines to be +shifted in the direction opposite to that of the line progression; a +line deletion causes the contents of the lines preceding the active +line to be shifted in the direction of the line progression. + +NOTE +Control functions affected are: DL, IL. + +Source: ECMA-48 5th Ed. 7.2.19 +Status: standard +------------------------------------------------------------------------------- +Mode: 8 +Mnemonic: BDSM +Description: Bi-directional support mode + +EXPLICIT (reset): +Control functions are performed in the data component or in the +presentation component, depending on the setting of the DEVICE +COMPONENT SELECT MODE (DCSM). + +IMPLICIT (set): +Control functions are performed in the data component. All +bi-directional aspects of data are handled by the device itself. + +Source: ECMA-48 5th Ed. 7.2.1 +Status: standard +------------------------------------------------------------------------------- +Mode: 9 +Mnemonic: DCSM +Description: Device component select mode + +PRESENTATION (reset): +Certain control functions are performed in the presentation +component. The active presentation position (or the active line, where +applicable) in the presentation component is the reference position +against which the relevant control functions are performed. + +DATA (set): +Certain control functions are performed in the data component. The +active data position (or the active line, where applicable) in the +data component is the reference position against which the relevant +control functions are performed. + +NOTE +Control functions affected are: CPR, CR, DCH, DL, EA, ECH, ED, EF, EL, +ICH, IL, LF, NEL, RI, SLH, SLL, SPH, SPL. + +Source: ECMA-48 5th Ed. 7.2.3 +Status: standard +------------------------------------------------------------------------------- +Mode: 10 +Mnemonic: HEM +Description: Character editing mode + +FOLLOWING (reset): +If the DEVICE COMPONENT SELECT MODE (DCSM) is set to PRESENTATION, a +character insertion causes the contents of the active presentation +position and of the following character positions in the presentation +component to be shifted in the direction of the character path; a +character deletion causes the contents of the character positions +following the active presentation position to be shifted in the +direction opposite to that of the character path. + +If the DEVICE COMPONENT SELECT MODE (DCSM) is set to DATA, a character +insertion causes the contents of the active data position and of the +following character positions in the data component to be shifted in +the direction of the character progression; a character deletion +causes the contents of the character positions following the active +data position to be shifted in the direction opposite to that of the +character progression. + +PRECEDING: +If the DEVICE COMPONENT SELECT MODE (DCSM) is set to PRESENTATION, a +character insertion causes the contents of the active presentation +position and of the following character positions in the presentation +component to be shifted in the direction opposite to that of the +character path; a character deletion causes the contents of the +character positions following the active presentation position to be +shifted in the direction of the character path. + +If the DEVICE COMPONENT SELECT MODE (DCSM) is set to DATA, a character +insertion causes the contents of the active data position and of +preceding character positions in the data component to be shifted in +the direction opposite to that of the character progression; a +character deletion causes the contents of the character positions +preceding the active data position to be shifted in the direction of +the character progression. + +NOTE +Control functions affected are: DCH, ICH. + +Source: ECMA-48 5th Ed. 7.2.9 +Status: standard +------------------------------------------------------------------------------- +Mode: 11 +Mnemonic: PUM +Description: Positioning unit mode + +CHARACTER (reset): +The unit for numeric parameters of the positioning format effectors is +one character position. + +SIZE (set): +The unit for numeric parameters of the positioning format effectors is +that established by the parameter value of SELECT SIZE UNIT (SSU). + +NOTE 1 +Control functions affected are: CUB, CUD, CUF, CUU, HPA, HPB, HPR, +HVP, SLH, SLL, SSU, VPA, VPB, VPR.. + +NOTE 2 +As the default parameter value of the control function SELECT SIZE +UNIT (SSU) is CHARACTER, this mode is redundant and should no longer +be used. + +Source: ECMA-48 5th Ed. F.4.1 +Status: standard; deprecated +------------------------------------------------------------------------------- +Mode: 12 +Mnemonic: SRM +Description: Send/receive mode + +MONITOR (reset): +Data which are locally entered are immediately imaged. + +SIMULTANEOUS: +Local input facilities are logically disconnected from the output +mechanism; only data which are sent to the device are imaged. + +NOTE +No control functions are affected. + +Source: ECMA-48 5th Ed. 7.2.15 +Status: standard +------------------------------------------------------------------------------- +Mode: 13 +Mnemonic: FEAM +Description: Format effector action mode + +EXECUTE (reset): +Formator functions are performed immediately and may be stored in +addition to being performed. + +STORE (set): +Formator functions are stored but not performed. In this case, the +specified action is intended to be performed by another device when +the associated data are transmitted or transferred. + +NOTE +Control functions affected are: BPH, BS, CR, DTA, FF, FNT, GCC, GSM, +GSS, HPA, HPB, HPR, HT, HTJ, HTS, HVP, JFY, NEL, PEC, PFS, PLD, PLU, +PPA, PPB, PPR, PTX, QUAD, RI, SACS, SAPV, SCO, SCS, SGR, SHS, SLH, +SLL, SLS, SPD, SPI, SPQR, SRCS, SRS, SSU, SSW, STAB, SVS, TAC, TALE, +TATE, TBC, TCC, TSS, VPA, VPB, VPR, VTS. + +Source: ECMA-48 5th Ed. 7.2.5 +Status: standard +------------------------------------------------------------------------------- +Mode: 14 +Mnemonic: FETM +Description: Format effector transfer mode + +INSERT (reset): +Formator functions may be inserted in a data stream to be transmitted +or in data to be transferred to an auxiliary input/output device. + +EXCLUDE: +No formator functions other than those received while the FORMAT +EFFECTOR ACTION MODE (FEAM) is set to STORE are included in a +transmitted data stream or in data transferred to an auxiliary +input/output device. + +NOTE +No control functions are affected. + +Source: ECMA-48 5th Ed. 7.2.6 +Status: standard +------------------------------------------------------------------------------- +Mode: 15 +Mnemonic: MATM +Description: Multiple area transfer mode + +SINGLE (reset): +Only the contents of the selected area which contains the active +presentation position are eligible to be transmitted or transferred. + +MULTIPLE (set): +The contents of all selected areas are eligible to be transmitted or +transferred. + +NOTE +No control functions are affected. + +Source: ECMA-48 5th Ed. 7.2.12 +Status: standard +------------------------------------------------------------------------------- +Mode: 16 +Mnemonic: TTM +Description: Transfer termination mode + +CURSOR (reset): +Only the contents of the character positions preceding the active +presentation position in the presentation component are eligible to be +transmitted or transferred. + +ALL (set): +The contents of character positions preceding, following, and at the +active presentation position are eligible to be transmitted or +transferred. + +NOTE +No control functions are affected. + +Source: ECMA-48 5th Ed. 7.2.18 +------------------------------------------------------------------------------- +Mode: 17 +Mnemonic: SATM +Description: Selected area transfer mode + +SELECT (reset): +Only the contents of selected areas are eligible to be transmitted or +transferred. + +ALL (set): +The contents of all character positions, irrespective of any +explicitly defined selected areas, are eligible to be transmitted or +transferred. + +NOTE +No control functions are affected. + +Source: ECMA-48 5th Ed. 7.2.14 +Status: standard +------------------------------------------------------------------------------- +Mode: 18 +Mnemonic: TSM +Description: Tabulation stop mode + +MULTIPLE (reset): +Character tabulation stops in the presentation component are set or +cleared in the active line (the line that contains the active +presentation position) and in the corresponding character positions of +the preceding lines and of the following lines. + +SINGLE (set): +Character tabulation stops in the presentation component are set or +cleared in the active line only. + +NOTE +Control functions affected are: CTC, DL, HTS, IL, TBC. + +Source: ECMA-48 5th Ed. 7.2.17 +Status: standard +------------------------------------------------------------------------------- +Mode: 19 +Mnemonic: EBM +Description: Editing boundary mode + +The mode EDITING BOUNDARY MODE (EBM) the use of which was already +declared deprecated in the fourth Edition of this Standard has now +been removed. + +Source: ECMA-48 5th Ed. F.5.1 +Status: standard; obsolete +------------------------------------------------------------------------------- +Mode: 20 +Mnemonic: LNM +Description: Line feed/new line mode + +The mode LINE FEED/NEW LINE MODE (LF/NL) the use of which was already +declared deprecated in the fourth Edition of this Standard has now +been removed. + +Source: ECMA-48 5th Ed. F.5.2 + +set: Causes a received LF, FF, or VT code to move the cursor to the +first column of the next line. RETURN transmits both a CR and a LF +code. + +reset: Causes a received LF, FF, or VT code to move the cursor to the +next line in the current column. RETURN transmits a CR code only. + +Source: +Status: standard; obsolete +------------------------------------------------------------------------------- +Mode: 21 +Mnemonic: GRCM +Description: Graphic rendition combination mode + +REPLACING (reset): +Each occurrence of the control function SELECT GRAPHIC RENDITION (SGR) +cancels the effect of any preceding occurrence. Any graphic rendition +aspects that are to remain unchanged after an occurrence of SGR have +to be re-specified by that SGR. + +CUMULATIVE (set): +Each occurrence of the control function SELECT GRAPHIC RENDITION (SGR) +causes only those graphic rendition aspects to be changed that are +specified by that SGR. All other graphic rendition aspects remain +unchanged. + +NOTE +Control function affected is SGR. + +Source: ECMA-48 5th Ed. 7.2.8 +Status: standard +------------------------------------------------------------------------------- +Mode: 22 +Mnemonic: ZDM +Description: Zero default mode + +ZERO (reset): +A parameter value of 0 of a control function means the number 0. + +DEFAULT (set): +A parameter value of 0 represents a default parameter value which may +be different from 0. + +NOTE 1 +This mode was provided for implementations of the first edition of +this Standard which specified that "an empty parameter sub-string or a +parameter sub-string which consists of bit combinations 03/00 only +represents a default value which depends on the control function". + +For numeric parameters which are expressed in units established by the +parameter value of SELECT SIZE UNIT (SSU) the value 0 could then be +specified. For numeric parameters which are effectively repeat counts, +a 0 parameter value corresponded to a "no-op". In either instance, +non-negative computed numeric parameter values might have been used +without treating 0 as a special (unusable) case. + +Where an explicit parameter value was not used, implementors were +urged to omit a parameter value (use an empty parameter sub-string) to +imply a default parameter value. + +Control functions affected are: CBT, CHA, CHT, CNL, CPL, CPR, CUB, +CUD, CUF, CUP, CUU, CVT, DCH, DL, ECH, GSM, HPA, HPB, HPR, HVP, ICH, +IL, NP, PP, PPA, PPB, PPR, REP, SD, SL, SR, SU, TCC, VPA, VPB, VPR. + +NOTE 2 +Since the publication of the first edition of this Standard in 1976 +almost 15 years have expired. The use of this mode should no longer be +required because the definition of default parameter values has been +changed. + +Source: ECMA-48 5th Ed. F.4.2 +Status: standard; deprecated +------------------------------------------------------------------------------- +Mode: 30 +Description: Display disable mode + +Source: +Status: Wyse private; clashes with ECMA-48 +------------------------------------------------------------------------------- +Mode: 31 +Description: Status line display mode + +Source: +Status: Wyse private; clashes with ECMA-48 +------------------------------------------------------------------------------- +Mode: 32 +Description: Steady cursor mode + +Source: +Status: Wyse private; clashes with ECMA-48 +------------------------------------------------------------------------------- +Mode: 33 +Mnemonic: WYSTCURM +Description: Wyse steady cursor mode + +Cursor steady: [ 33 h +Cursor blinking: [ 33 l (that's a small ell, not eye) + +Source: + +Status: Wyse private; clashes with ECMA-48 +------------------------------------------------------------------------------- +Mode: 34 +Mnemonic: WYULCURM +Description: Wyse underline cursor mode + +Cursor block: [ 34 l (ell) +Cursor line: [ 34 h + +Source: + +Status: Wyse private; clashes with ECMA-48 +------------------------------------------------------------------------------- +Mode: 35 +Description: Width change clear mode + +Source: +Status: Wyse private; clashes with ECMA-48 +------------------------------------------------------------------------------- +Mode: 53 +Description: 80/132 column switch + +set: 132 columns +reset: 80 columns + +Source: jaltman@watsun.cc.columbia.edu (Jeffrey Altman) in comp.terminals + <7svop9$f9u$1@newsmaster.cc.columbia.edu> +Status: Siemens 97801-5xx private; clashes with ECMA-48 +------------------------------------------------------------------------------- +Mode: <0 +Description: Roll mode + +When reset, commands that would move the cursor beyond the 24th line +of the screen cause the screen to scroll. When set, such commands +cause the cursor to move to the top line. + +Source: Dasher D410 and D460 Display Terminals User's Manual + +Status: Data General private +------------------------------------------------------------------------------- +Mode: <1 +Description: Blink mode + +When set, the blink attribute in CSR will be ignored. + +Source: Dasher D410 and D460 Display Terminals User's Manual + +Status: Data General private +------------------------------------------------------------------------------- +Mode: <2 +Description: Horizontal scroll mode + +set: Horizontal scroll enabled +reset: Horizontal scroll disabled + +Source: Dasher D410 and D460 Display Terminals User's Manual + +Status: Data General private +------------------------------------------------------------------------------- +Mode: <3 +Description: DG/ANSI mode + +set: Use ANSI command sequences. +reset: Use DG command sequences. + +Source: Dasher D410 and D460 Display Terminals User's Manual + +Status: Data General private +------------------------------------------------------------------------------- +Mode: <4 +Description: Forms mode + +When reset, a Local Print command will print all characters. When +set, only characters displayed at full intensity will be printed. + +Source: Dasher D410 and D460 Display Terminals User's Manual + +Status: Data General private +------------------------------------------------------------------------------- +Mode: <5 +Description: Margins mode + +In the reset state, editing operations operate irrespective of +margins; in the set state, editing operations take place within the +margins. The commands affected include: IL, ED, EL, ICH DCH. + +Source: Dasher D410 and D460 Display Terminals User's Manual + +Status: Data General private +------------------------------------------------------------------------------- +Mode: =6 +Description: Lock display + +Lock display. When set, this mode causes xwsh to keep its display set +to the current location in the retain buffer. Any scrolling +activities, line insert/deletes will not affect the retain buffer that +is outside of the display. When reset, scrolling off the bottom will +move the display to track the bottom of the retain buffer. When the +lock is set, the scroll bar is disabled, as well as any extend +selection mechanisms that might cause a scroll. The normal mode is in +the reset state, but the standard terminfo for iris-ansi causes visual +programs to lock the display. + +Source: IRIX 6.5.5 xwsh(1G) +Status: SGI private +------------------------------------------------------------------------------- +Mode: =9 +Description: Enable visual bell + +Enable visual bell. When set, xwsh will flash the display when it +receives an octal 7 instead of ringing the bell. When reset it asks X +to ring the bell. + +Source: IRIX 6.5.5 xwsh(1G) +Status: SGI private +------------------------------------------------------------------------------- +Mode: =12 +Description: Overlay mode + +Overlay mode. When set, xwsh moves its display into the overlay +planes. When reset, xwsh displays in the default visual. This is no +longer functional as of IRIX 4.0. The escape sequence is now ignored. + +Source: IRIX 6.5.5 xwsh(1G) +Status: SGI private +------------------------------------------------------------------------------- +Mode: ?1 +Mnemonic: DECCKM +Description: Cursor key mode + + This is a private parameter to the SM and RM control requences. This + mode is only effective when the terminal is in keypad application mode + (DECPAM) and the ANSI/VT52 mode (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. + +Source: + +DECCKM (default off): When set, the cursor keys send an ESC O prefix, +rather than ESC [. + +Source: Linux console_codes(4) +Status: DEC private; VT100 +------------------------------------------------------------------------------- +Mode: ?2 +Mnemonic: DECANM +Description: ANSI/VT52 Mode + + This is a private parameter to the SM and 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. + +Source: +Status: DEC private; VT100 +------------------------------------------------------------------------------- +Mode: ?3 +Mnemonic: DECCOLM +Description: Column mode + + This is a private parameter to the SM and 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. + +Source: + +NOTE: When the terminal receives the sequence, the screen is erased +and the cursor moves to the home position. This also sets the scrolling +region for full screen (24 lines). + +Source: + +If you change the DECCOLM setting, the terminal: + + Sets the left, right, top and bottom scrolling margins to their default + positions. + + Erases all data in page memory, unless DECNCSM is set; then, the page + is not erased. + +DECCOLM resets vertical split screen mode (DECLRMM) to unavailable. + +DECCOLM clears data from the status line if the status line is set to +host-writable. + +Source: +Status: DEC private; VT100 +------------------------------------------------------------------------------- +Mode: ?4 +Mnemonic: DECSCLM +Description: Scrolling mode + + This is a private parameter to RM and 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 six lines/sec. + +Source: +Status: DEC private; VT100 +------------------------------------------------------------------------------- +Mode: ?5 +Mnemonic: DECSCNM +Description: Screen mode + + This is a private parameter to RM and 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. + +Source: +Status: DEC private; VT100 +------------------------------------------------------------------------------- +Mode: ?6 +Mnemoic: DECOM +Description: Origin mode + + This is a private parameter to SM and 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 (CUP) or + horizontal and vertical position (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. + + The scroll margins are set using the DECSTBM control sequence. + +Source: +Status: DEC private; VT100 +------------------------------------------------------------------------------- +Mode: ?7 +Mnemonic: DECAWM +Description: Autowrap mode + + This is a private parameter to the SM and RM control sequences. The + reset state prevents the cursor from moving when characters are + recieved 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 MODES, SM, and RM. + +Source: +Status: DEC private; VT100 +------------------------------------------------------------------------------- +Mode: ?8 +Mnemonic: DECARM +Description: Auto repeat mode + + This is a private parameter to the SM and RM control sequences. The + reset state causes no keyboard keys to auto-repeat, the set state + causes most of them to. + +Source: +Status: DEC private; VT100 +------------------------------------------------------------------------------- +Mode: ?9 +Mnemonic: DECINLM +Description: Interlace mode + + This is a private parameter to the RM and 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 MODES, RM, and SM. + +Source: +Status: DEC private; VT100 +------------------------------------------------------------------------------- +Mode: ?9 +Description: X10 mouse reporting + +Parameters (such as pointer position and button number) for all mouse +tracking escape sequences generated by xterm encode numeric parameters +in a single character as value+32. For example, ! specifies the value +1. The upper left character position on the terminal is denoted as 1,1. + +X10 compatibility mode sends an escape sequence only on button press, +encoding the location and the mouse button pressed. It is enabled by +specifying parameter 9 to DECSET. On button press, xterm sends CSI M +CbCxCy (6 characters). Cb is button-1. Cx and Cy are the x and y coor- +dinates of the mouse when the button was pressed. + +Source: XFree86: xc/doc/specs/xterm/ctlseqs.ms,v 3.29 1999/09/27 06:29:05 +Status: xterm private +------------------------------------------------------------------------------- +Mode: ?10 +Mnemonic: DECEDM +Description: Editing mode + +set -> Edit +reset -> Interactive + +Source: DEC Terminals and Printers Handbook 1985 EB 26291-56 pC26 +Status: DEC private; VT131 +------------------------------------------------------------------------------- +Mode: ?11 +Mnemonic: DECLTM +Description: Line Transmit mode + +set -> On +reset -> Off + +Source: DEC Terminals and Printers Handbook 1985 EB 26291-56 pC26 +Status: DEC private; VT131 +------------------------------------------------------------------------------- +Mode: ?13 +Mnemonic: DECSCFDM +Description: Space compression/field delimiter mode + +set -> On +reset -> Off + +Source: DEC Terminals and Printers Handbook 1985 EB 26291-56 pC26 +Status: DEC private; VT131 +------------------------------------------------------------------------------- +Mode: ?14 +Mnemonic: DECTEM +Description: Transmit execution mode + +set -> Immediate +reset -> Deferred + +Source: DEC Terminals and Printers Handbook 1985 EB 26291-56 pC26 +Status: DEC private; VT131 +------------------------------------------------------------------------------- +Mode: ?16 +Mnemonic: DECEKEM +Description: Edit key execution mode + +set -> Immediate +reset -> Deferred + +Source: DEC Terminals and Printers Handbook 1985 EB 26291-56 pC26 +Status: DEC private; VT131 +------------------------------------------------------------------------------- +Mode: ?18 +Mnemonic: DECPFF +Description: Print form feed mode + +set: Selects form feed (FF) as print termination character. The +terminal transmits this character to the printer after each print +screen operation. + +reset: Select no termination character. The terminal does not transmit +a form feed (FF) to the printer after each print screen operation. + +Source: +Status: DEC private +------------------------------------------------------------------------------- +Mode: ?19 +Mnemonic: DECPEX +Description: Printer extent + +set -> screen +reset -> scrolling region + +Source: +Status: DEC private +------------------------------------------------------------------------------- +Mode: ?24 +Description: Print density + +set -> Sets printing to low density operation +reset -> Sets printing to high density operation + +Source: DEC Terminals and Printers Handbook 1985 EB 26291-56 pE21 +Status: DEC private, LA12 +------------------------------------------------------------------------------- +Mode: ?25 +Mnemonic: DECTCEM +Description: Text cursor enable mode + +set -> visible +reset -> invisible + +Source: +Status: DEC private +------------------------------------------------------------------------------- +Mode: ?27 +Mnemonic: DECPSP +Description: Proportional spacing + +set -> sets proportional spacing +reset -> clears proportional spacing + +Source: DEC Terminals and Printers Handbook 1985 EB 26291-56 pE99 +Status: DEC private; LQP02 +------------------------------------------------------------------------------- +Mode: ?29 +Mnemonic: DECPSM +Description: Pitch select mode + +set -> Sets pitch select mode to current DPS pitches mode +reset -> Sets pitch select mode to all pitches mode + +Source: DEC Terminals and Printers Handbook 1985 EB 26291-56 +Status: DEC private +------------------------------------------------------------------------------- +Mode: ?30 +Description: Scroll bar mode + +set -> Show scrollbar +reset -> Don't show scrollbar + +Source: XFree86: xc/doc/specs/xterm/ctlseqs.ms,v 3.29 1999/09/27 06:29:05 +Status: rxvt private +------------------------------------------------------------------------------- +Mode: ?34 +Mnemonic: DECRLM +Description: Writing + +set -> right to left +reset -> left to right + +Source: +Status: DEC private +------------------------------------------------------------------------------- +Mode: ?35 +Mnemonic: DECHEBM + +(Kermit) Invoke macro: KEYBOARDS KEYBOARDR + +++ VT320 DEC supplements for Hebrew systems adapted + from VT420-Hebrew terminals, invokes a new + keyboard map. Kermit invokes macros above. + +Source: +Status: DEC private +------------------------------------------------------------------------------- +Mode: ?35 +Description: Shifted key-functions + +set -> Enable shifted key-functions +reset -> Disable shifted key-functions + +Source: XFree86: xc/doc/specs/xterm/ctlseqs.ms,v 3.29 1999/09/27 06:29:05 +Status: rxvt private +------------------------------------------------------------------------------- +Mode: ?36 +Mnemonic: DECHEM +Description: Hebrew encoding + +set -> Multinational +reset -> Hebrew NRC + +Source: +Status: DEC private +------------------------------------------------------------------------------- +Mode: ?38 +Mnemonic: DECTEK +Description: Graphics (Tek) + +set -> Enter Tektromix mode +reset -> [ not possible ] + +Source: XFree86: xc/doc/specs/xterm/ctlseqs.ms,v 3.29 1999/09/27 06:29:05 +Status: DEC? private +------------------------------------------------------------------------------- +Mode: ?40 +Mnemonic: DECCRNLM +Description: Carriage return/new line mode + +set -> Enables LF to go with CR +reset -> Disables (default) + +Source: DEC Terminals and Printers Handbook 1985 EB 26291-56 pE107 +Status: DEC private; printers +------------------------------------------------------------------------------- +Mode: ?40 +Description: Column switch control + +set -> Allow 80 <-> 132 mode +reset -> Disallow 80 <-> 132 mode + +Source: XFree86: xc/doc/specs/xterm/ctlseqs.ms,v 3.29 1999/09/27 06:29:05 +Status: xterm private +------------------------------------------------------------------------------- +Mode: ?41 +Description: print direction + +set -> Prints from left to right +reset -> Prints bidirectionally + +Source: DEC Terminals and Printers Handbook 1985 EB 26291-56 pE41 +Status: DEC private; LA210 +------------------------------------------------------------------------------- +Mode: ?41 +Description: more(1) fix + +set -> This option indicates that xterm should work + around a bug in the more(1) program that causes it + to incorrectly display lines that are exactly the + width of the window and are followed by a line + beginning with a tab (the leading tabs are not + displayed). + +reset -> This option indicates that xterm should not work + around the more(1) bug mentioned above. + +Source: XFree86: xc/doc/specs/xterm/ctlseqs.ms,v 3.29 1999/09/27 06:29:05 +Source: XFree86: xc/programs/xterm/xterm.man,v 3.52 1999/09/27 06:30:25 +Status: xterm private +------------------------------------------------------------------------------- +Mode: ?42 +Mnemonic: DECNRCM +Description: Nat Repl Char + +set -> enable +reset -> disable + +Source: +Status: DEC private +------------------------------------------------------------------------------- +Mode: ?43 +Mnemonic: DECGEPM +Description: Expanded/compressed print mode + +set -> Select an expanded image for a graphics print screen. +reset -> Select a compressed image for a graphics print screen. + +Source: Reflection TRM (VT) Version 7.0 +Status: DEC private +------------------------------------------------------------------------------- +Mode: ?44 +Mnemonic: DECGPCM +Description: Print color/black and white mode + +set -> Send a color image to the printer for a graphics print screen. + +reset -> Send a black and white image to the printer for a graphics +print screen. + +Source: Reflection TRM (VT) Version 7.0 +Status: DEC private +------------------------------------------------------------------------------- +Mode: ?44 +Description: Margin bell + +set -> Turn on margin bell +reset -> Turn off margin bell + +Source: XFree86: xc/doc/specs/xterm/ctlseqs.ms,v 3.29 1999/09/27 06:29:05 +Status: xterm private +------------------------------------------------------------------------------- +Mode: ?45 +Mnemonic: DECGPCS +Description: Print color syntax + +set -> Select the RGB color format for a graphics print screen. +reset -> Select the HLS color format for a graphics print screen. + +Source: Reflection TRM (VT) Version 7.0 +Status: DEC private +------------------------------------------------------------------------------- +Mode: ?45 +Description: Reverse-wraparound mode + +set -> Reverse-wraparound mode +reset -> No reverse-wraparound mode + +Source: XFree86: xc/doc/specs/xterm/ctlseqs.ms,v 3.29 1999/09/27 06:29:05 +Status: xterm private +------------------------------------------------------------------------------- +Mode: ?46 +Mnemonic: DECGPBM + +set -> Send the entire graphics image, including the background, to +the printer for a graphics print screen. + +reset -> Send the graphics image, except for the background, to the +printer for a graphics print screen. + +This applies only when the DECGPCM function is set to send a color image. + +Source: Reflection TRM (VT) Version 7.0 +Status: DEC private +------------------------------------------------------------------------------- +Mode: ?46 +Description: Logging mode + +set -> Start logging (normally disabled by a compile-time option) +reset -> Stop logging + +Source: XFree86: xc/doc/specs/xterm/ctlseqs.ms,v 3.29 1999/09/27 06:29:05 +Status: xterm private +------------------------------------------------------------------------------- +Mode: ?47 +Mnemonic: DECGRPM +Description: Print rotated/compressed mode + +set -> Send a graphics image to the printer rotated 90 degrees. + +reset -> Send a compressed image to the printer. + +Source: Reflection TRM (VT) Version 7.0 +Status: DEC private +------------------------------------------------------------------------------- +Mode: ?47 +Description: Alternate screen mode + +set -> Use alternate screen buffer (unless disabled by the titeInhibit + resource) +reset -> Use normal screen buffer + +Source: XFree86: xc/doc/specs/xterm/ctlseqs.ms,v 3.29 1999/09/27 06:29:05 +Status: xterm private +------------------------------------------------------------------------------- +Mode: ?51 +Mnemonic: DECBWRM +Description: Black/white reversal mode + +Source: DEC Terminals and Printers Handbook 1985 EB 26291-56 pE123 +Status: DEC private; LCP01 +------------------------------------------------------------------------------- +Mode: ?52 +Mnemonic: DECOPM +Description: Origin placement mode + +set -> Places origin to corner of paper +reset -> Places origin to corner of printable area (default) + +Source: DEC Terminals and Printers Handbook 1985 EB 26291-56 pE110 +Status: DEC private; LA100, LN03 +------------------------------------------------------------------------------- +Mode: ?55 +Mnemonic: DECBPM +Description: Bold page mode + +Source: DEC Terminals and Printers Handbook 1985 EB 26291-56 pE123 +Status: DEC private; LCP01 +------------------------------------------------------------------------------- +Mode: ?60 +Mnemonic: DECHCCM +Description: Horizontal cursor coupling + +This control function determines whether the user window pans with the +cursor when the cursor moves past the right or left border of the user +window. DECHCCM is only useful when the width of the current user +window is narrower than the page. The cursor must stay on the current +page. + +set -> Couple the cursor to the display. By default the cursor is +coupled to the display for horizontal movement. When the cursor moves +past the right or left border of the user window, the window pans to +keep the cursor in view. If the cursor moves past the left border of +the display, the user window pans to the left and new columns appear +at the right border of the window. + +reset -> Uncouple the cursor from the display. If the cursor is +uncoupled from the display and is moved past the right or left border +of the user window, the cursor disappears from view. + +Source: Reflection TRM (VT) Version 7.0 +Status: DEC private; VT400 +------------------------------------------------------------------------------- +Mode: ?61 +Mnemonic: DECVCCM +Description: Vertical cursor coupling + +This mode determines whether the user window pans with the cursor when +the cursor moves past the top or bottom border of the user +window. DECVCCM is only useful when the height of the current user +window is smaller than the page. The cursor must stay on the current +page. + +set -> Couple the cursor to the display. By default the cursor is +coupled to the display for vertical movement. When the cursor moves +past the top or bottom border of the user window, the window pans to +keep the cursor in view. If the cursor moves past the top of the +display, the user window pans up and new lines appear at the top of +the screen. + +reset -> Uncouple the cursor from the display. If the cursor is +uncoupled from the display and is moved past the top or bottom border +of the user window, the cursor disappears from view. + +Source: Reflection TRM (VT) Version 7.0 +Status: DEC private; VT400 +------------------------------------------------------------------------------- +Mode: ?64 +Mnemonic: DECPCCM + +This control function determines if a new page appears in the display +when the cursor moves to a new page. DECPCCM is only useful with a +multiple-page format. + +set -> Couple the cursor to the display. By default the cursor is +coupled to the display when the cursor moves to a new page. The new +page appears in the display to keep the cursor in view. + +reset -> Uncouple the cursor. If the cursor is uncoupled from the +display and is moved to a new page, the cursor disappears from view. + +Source: Reflection TRM (VT) Version 7.0 +Status: DEC private; VT400 +------------------------------------------------------------------------------- +Mode: ?66 +Mnemonic: DECNKM +Description: Numeric keypad + +set -> application +reset -> numeric + +Source: +Status: DEC private +------------------------------------------------------------------------------- +Mode: ?67 +Mnemonic: DECBKM +Description: Backspace/delete + +set -> +Status: DEC private; VT320 +------------------------------------------------------------------------------- +Mode: ?68 +Mnemonic: DECKBUM +Description: Typewriter + +set -> data process +reset -> typewriter + +Source: +Status: DEC private +------------------------------------------------------------------------------- +Mode: ?80 +Mnemonic: DECSDM +Description: Sixel scrolling + +set -> enable sixel scrolling (screen scrolls if sixel graphics hit bottom) +reset -> disable sixel scrolling + +Source: Reflection TRM (VT) Version 7.0 +Status: DEC private +------------------------------------------------------------------------------- +Mode: ?1000 +Description: X11 normal mouse tracking + +Parameters (such as pointer position and button number) for all mouse +tracking escape sequences generated by xterm encode numeric parameters +in a single character as value+32. For example, ! specifies the value +1. The upper left character position on the terminal is denoted as 1,1. + +Normal tracking mode sends an escape sequence on both button press and +release. Modifier key (shift, ctrl, meta) information is also sent. It +is enabled by specifying parameter 1000 to DECSET. On button press or +release, xterm sends CSI M CbCxCy. The low two bits of Cb encode button +information: 0=MB1 pressed, 1=MB2 pressed, 2=MB3 pressed, 3=release. +The upper bits encode the modifiers which were down when the button was +pressed and are added together. 4=Shift, 8=Meta, 16=Control. Cx and Cy +are the x and y coordinates of the mouse event. The upper left corner +is (1,1). + +Source: XFree86: xc/doc/specs/xterm/ctlseqs.ms,v 3.29 1999/09/27 06:29:05 +Status: xterm private +------------------------------------------------------------------------------- +Mode: ?1001 +Description: X11 hilite mouse tracking + +Mouse hilite tracking notifies a program of a button press, receives a +range of lines from the program, highlights the region covered by the +mouse within that range until button release, and then sends the program +the release coordinates. It is enabled by specifying parameter 1001 to +DECSET. Highlighting is performed only for button 1, though other but- +ton events can be received. Warning: use of this mode requires a coop- +erating program or it will hang xterm. On button press, the same infor- +mation as for normal tracking is generated; xterm then waits for the +program to send mouse tracking information. All X events are ignored +until the proper escape sequence is received from the pty: CSI Ps ; Ps ; +Ps ; Ps ; Ps T . The parameters are func, startx, starty, firstrow, and +lastrow. func is non-zero to initiate hilite tracking and zero to +abort. startx and starty give the starting x and y location for the +highlighted region. The ending location tracks the mouse, but will +never be above row firstrow and will always be above row lastrow. (The +top of the screen is row 1.) When the button is released, xterm reports +the ending position one of two ways: if the start and end coordinates +are valid text locations: CSI t CxCy. If either coordinate is past the +end of the line: CSI T CxCyCxCyCxCy. The parameters are startx, starty, +endx, endy, mousex, and mousey. startx, starty, endx, and endy give the +starting and ending character positions of the region. mousex and +mousey give the location of the mouse at button up, which may not be +over a character. + +Source: XFree86: xc/doc/specs/xterm/ctlseqs.ms,v 3.29 1999/09/27 06:29:05 +Status: xterm private +------------------------------------------------------------------------------- +Mode: ?1002 +Description: X11 button-event mouse tracking + +Button-event tracking is essentially the same as normal tracking, but +xterm also reports button-motion events. Motion events are reported +only if the mouse pointer has moved to a different character cell. It +is enabled by specifying parameter 1002 to DECSET. On button press or +release, xterm sends the same codes used by normal tracking mode. On +button-motion events, xterm adds 4 to the event code (the third charac- +ter, Cb). The low two bits of the event code encode the button informa- +tion. The third bit is set to indicate motion. Additional bits specify +modifier keys as in normal mode. For example, motion into cell x,y with +button 1 down is reported as CSI M @ CxCy. ( @ = 32 + 0 (button 1) + +32 (motion indicator) ). Similarly, motion with button 3 down is +reported as CSI M B CxCy. ( B = 32 + 2 (button 3) + 32 (motion indica- +tor) ). + +Source: XFree86: xc/doc/specs/xterm/ctlseqs.ms,v 3.29 1999/09/27 06:29:05 +Status: xterm private +------------------------------------------------------------------------------- +Mode: ?1003 +Description: X11 any-event mouse tracking + +Any-event mode is the same as button-event mode, except that all motion +events are reported instead of just those that enter a new character +cell. It is enabled by specifying 1003 to DECSET. + +Source: XFree86: xc/doc/specs/xterm/ctlseqs.ms,v 3.29 1999/09/27 06:29:05 +Status: xterm private +------------------------------------------------------------------------------- +Mode: ?1010 +Description: Scroll to bottom on tty output + +set -> Scroll to bottom on tty output +reset -> Don't scroll to bottom on tty output + +Source: XFree86: xc/doc/specs/xterm/ctlseqs.ms,v 3.29 1999/09/27 06:29:05 +Status: rxvt private +------------------------------------------------------------------------------- +Mode: ?1011 +Description: Scroll to bottom on key press + +set -> Scroll to bottom on key press +reset -> Don't scroll to bottom on key press + +Source: XFree86: xc/doc/specs/xterm/ctlseqs.ms,v 3.29 1999/09/27 06:29:05 +Status: rxvt private +------------------------------------------------------------------------------- +Mode: ?1035 +Description: Special modifiers + +set -> Enable special modifiers for Alt and NumLock keys +reset -> Disable special modifiers for Alt and NumLock keys + +Source: XFree86: xc/doc/specs/xterm/ctlseqs.ms,v 3.29 1999/09/27 06:29:05 +Status: xterm private +------------------------------------------------------------------------------- +Mode: ?1047 + +set -> Use alternate screen buffer (unless disabled by the titeInhibit + resource) +reset -> Use Normal Screen Buffer, clearing screen first if in the + Alternate Screen (unless disabled by the titeInhibit + resource) + +Source: XFree86: xc/doc/specs/xterm/ctlseqs.ms,v 3.29 1999/09/27 06:29:05 +Status: xterm private +------------------------------------------------------------------------------- +Mode: ?1048 + +set -> Save cursor as in DECSC (unless disabled by the titeInhibit + resource) +reset -> Restore cursor as in DECRC (unless disabled by the + titeInhibit resource) + +Source: XFree86: xc/doc/specs/xterm/ctlseqs.ms,v 3.29 1999/09/27 06:29:05 +Status: xterm private +------------------------------------------------------------------------------- +Mode: ?1049 + +set -> Save cursor as in DECSC and use Alternate Screen Buffer, + clearing it first (unless disabled by the titeInhibit resource) +reset -> Use Normal Screen Buffer and restore cursor as in DECRC (unless + disabled by the titeInhibit resource) + +Source: XFree86: xc/doc/specs/xterm/ctlseqs.ms,v 3.29 1999/09/27 06:29:05 +Status: xterm private +------------------------------------------------------------------------------- +Mode: ?1051 +Description: Sun function-key mode + +Source: XFree86: xc/doc/specs/xterm/ctlseqs.ms,v 3.29 1999/09/27 06:29:05 +Status: xterm private +------------------------------------------------------------------------------- +Mode: ?1052 +Description: HP function-key mode + +Source: XFree86: xc/doc/specs/xterm/ctlseqs.ms,v 3.29 1999/09/27 06:29:05 +Status: xterm private +------------------------------------------------------------------------------- +Mode: ?1061 +Description: Sun/PC keyboard mode + +Source: XFree86: xc/doc/specs/xterm/ctlseqs.ms,v 3.29 1999/09/27 06:29:05 +Status: xterm private +------------------------------------------------------------------------------- diff --git a/docs/codepage437.txt b/docs/codepage437.txt new file mode 100644 index 0000000..9aa819b --- /dev/null +++ b/docs/codepage437.txt @@ -0,0 +1,256 @@ +0000 0 +263A ☺ 1 +263B ☻ 2 +2665 ♥ 3 +2666 ♦ 4 +2663 ♣ 5 +2660 ♠ 6 +2022 • 7 +25D8 ◘ 8 +25CB ○ 9 +25D9 ◙ 10 +2642 ♂ 11 +2640 ♀ 12 +266A ♪ 13 +266B ♫ 14 +263C ☼ 15 +25BA ► 16 +25C4 ◄ 17 +2195 ↕ 18 +203C ‼ 19 +00B6 ¶ 20 +00A7 § 21 +25AC ▬ 22 +21A8 ↨ 23 +2191 ↑ 24 +2193 ↓ 25 +2192 → 26 +2190 ← 27 +221F ∟ 28 +2194 ↔ 29 +25B2 ▲ 30 +25BC ▼ 31 +0020 32 +0021 ! 33 +0022 " 34 +0023 # 35 +0024 $ 36 +0025 % 37 +0026 & 38 +0027 ' 39 +0028 ( 40 +0029 ) 41 +002A * 42 +002B + 43 +002C , 44 +002D - 45 +002E . 46 +002F / 47 +0030 0 48 +0031 1 49 +0032 2 50 +0033 3 51 +0034 4 52 +0035 5 53 +0036 6 54 +0037 7 55 +0038 8 56 +0039 9 57 +003A : 58 +003B ; 59 +003C < 60 +003D = 61 +003E > 62 +003F ? 63 +0040 @ 64 +0041 A 65 +0042 B 66 +0043 C 67 +0044 D 68 +0045 E 69 +0046 F 70 +0047 G 71 +0048 H 72 +0049 I 73 +004A J 74 +004B K 75 +004C L 76 +004D M 77 +004E N 78 +004F O 79 +0050 P 80 +0051 Q 81 +0052 R 82 +0053 S 83 +0054 T 84 +0055 U 85 +0056 V 86 +0057 W 87 +0058 X 88 +0059 Y 89 +005A Z 90 +005B [ 91 +005C \ 92 +005D ] 93 +005E ^ 94 +005F _ 95 +0060 ` 96 +0061 a 97 +0062 b 98 +0063 c 99 +0064 d 100 +0065 e 101 +0066 f 102 +0067 g 103 +0068 h 104 +0069 i 105 +006A j 106 +006B k 107 +006C l 108 +006D m 109 +006E n 110 +006F o 111 +0070 p 112 +0071 q 113 +0072 r 114 +0073 s 115 +0074 t 116 +0075 u 117 +0076 v 118 +0077 w 119 +0078 x 120 +0079 y 121 +007A z 122 +007B { 123 +007C | 124 +007D } 125 +007E ~ 126 +2302 ⌂ 127 +00C7 Ç 128 +00FC ü 129 +00E9 é 130 +00E2 â 131 +00E4 ä 132 +00E0 à 133 +00E5 å 134 +00E7 ç 135 +00EA ê 136 +00EB ë 137 +00E8 è 138 +00EF ï 139 +00EE î 140 +00EC ì 141 +00C4 Ä 142 +00C5 Å 143 +00C9 É 144 +00E6 æ 145 +00C6 Æ 146 +00F4 ô 147 +00F6 ö 148 +00F2 ò 149 +00FB û 150 +00F9 ù 151 +00FF ÿ 152 +00D6 Ö 153 +00DC Ü 154 +00A2 ¢ 155 +00A3 £ 156 +00A5 ¥ 157 +20A7 ₧ 158 +0192 ƒ 159 +00E1 á 160 +00ED í 161 +00F3 ó 162 +00FA ú 163 +00F1 ñ 164 +00D1 Ñ 165 +00AA ª 166 +00BA º 167 +00BF ¿ 168 +2310 ⌐ 169 +00AC ¬ 170 +00BD ½ 171 +00BC ¼ 172 +00A1 ¡ 173 +00AB « 174 +00BB » 175 +2591 ░ 176 +2592 ▒ 177 +2593 ▓ 178 +2502 │ 179 +2524 ┤ 180 +2561 ╡ 181 +2562 ╢ 182 +2556 ╖ 183 +2555 ╕ 184 +2563 ╣ 185 +2551 ║ 186 +2557 ╗ 187 +255D ╝ 188 +255C ╜ 189 +255B ╛ 190 +2510 ┐ 191 +2514 └ 192 +2534 ┴ 193 +252C ┬ 194 +251C ├ 195 +2500 ─ 196 +253C ┼ 197 +255E ╞ 198 +255F ╟ 199 +255A ╚ 200 +2554 ╔ 201 +2569 ╩ 202 +2566 ╦ 203 +2560 ╠ 204 +2550 ═ 205 +256C ╬ 206 +2567 ╧ 207 +2568 ╨ 208 +2564 ╤ 209 +2565 ╥ 210 +2559 ╙ 211 +2558 ╘ 212 +2552 ╒ 213 +2553 ╓ 214 +256B ╫ 215 +256A ╪ 216 +2518 ┘ 217 +250C ┌ 218 +2588 █ 219 +2584 ▄ 220 +258C ▌ 221 +2590 ▐ 222 +2580 ▀ 223 +03B1 α 224 +00DF ß 225 +0393 Γ 226 +03C0 π 227 +03A3 Σ 228 +03C3 σ 229 +00B5 µ 230 +03C4 τ 231 +03A6 Φ 232 +0398 Θ 233 +03A9 Ω 234 +03B4 δ 235 +221E ∞ 236 +03C6 φ 237 +03B5 ε 238 +2229 ∩ 239 +2261 ≡ 240 +00B1 ± 241 +2265 ≥ 242 +2264 ≤ 243 +2320 ⌠ 244 +2321 ⌡ 245 +00F7 ÷ 246 +2248 ≈ 247 +00B0 ° 248 +2219 ∙ 249 +00B7 · 250 +221A √ 251 +207F ⁿ 252 +00B2 ² 253 +25A0 ■ 254 +00A0 255 diff --git a/docs/espterm-hw-full.jpg b/docs/espterm-hw-full.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ba22234aac3056f630e1589ccb4c4af56d71ef05 GIT binary patch literal 518622 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

>?4xnp#h(0o8Q;^wuO)Nu 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≫_gk56raIYBsdO4iQ~3Tq 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 z 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


+ +

+ This page lists all control sequences of xterm, which ESPTerm uses as a reference implementation. +

+

+ Features and sequences not supported by ESPTerm are grayed out, added text is in green color + or in gray boxes like this one. +

+
+

This document was adapted from http://invisible-island.net/xterm/.

+
+

ctlseqs(ms)

+
+
+                  XTerm and ESPTerm Control Sequences
+
+                               Edward Moy
+                   University of California, Berkeley
+
+                               Revised by
+
+                             Stephen Gildea
+                          X Consortium (1994)
+
+                             Thomas Dickey
+                      XFree86 Project (1996-2006)
+                    invisible-island.net (2006-2017)
+               updated for XTerm Patch #329 (2017/06/11)
+
+
+

Definitions

+
+c    The literal character c.
+
+C    A single (required) character.
+
+Ps   A single (usually optional) numeric parameter, composed of one of
+     more digits.
+
+Pm   A multiple numeric parameter composed of any number of single
+     numeric parameters, separated by ;  character(s).  Individual val-
+     ues for the parameters are listed with Ps .
+
+Pt   A text parameter composed of printable characters.
+
+
+

Control Bytes, Characters, and Sequences

+ +
+ECMA-48 (aka "ISO 6429") documents C1 (8-bit) and C0 (7-bit) codes.
+Those are respectively codes 128 to 159 and 0 to 31.  ECMA-48 avoids
+referring to these codes as characters, because that term is associated
+with graphic characters.  Instead, it uses "bytes" and "codes", with
+occasional lapses to "characters" where the meaning cannot be mistaken.
+
+Controls (including the escape code 27) are processed once:
+
+o This means that a C1 control can be mistaken for badly-formed UTF-8
+  when the terminal runs in UTF-8 mode because C1 controls are valid
+  continuation bytes of a UTF-8 encoded (multibyte) value.
+
+o It is not possible to use a C1 control obtained from decoding the
+  UTF-8 text, because that would require reprocessing the data.  Conse-
+  quently there is no ambiguity in the way this document uses the term
+  "character" to refer to bytes in a control sequence.
+
+
+	

ESPTerm implements 7-bit mode with full UTF-8 support enabled at all times. + C1 codes thus cannot be used with the terminal.

+ +

Bytes with the highest bit set (0x80-0xFF) are interpreted as part of a UTF-8 + code point and if the received multi-byte sequence is invalid, they are + discarded.

+
+The order of processing is a necessary consequence of the way ECMA-48 is +designed: + +o Each byte sent to the terminal can be unambiguously determined to fall + into one of a few categories (C0, C1 and graphic characters). + +o ECMA-48 is modal; once it starts processing a control sequence, the + terminal continues until the sequence is complete, or some byte is + found which is not allowed in the sequence. + +o Intermediate, parameter and final bytes may use the same codes as + graphic characters, but they are processed as part of a control + sequence and are not actually graphic characters. + +o Eight-bit controls can have intermediate, etc., bytes in the range 160 + to 255. Those can be treated as their counterparts in the range 32 to + 127. + +o Single-byte controls can be handled separately from multi-byte control + sequences because ECMA-48's rules are unambiguous. + + As a special case, ECMA-48 (section 9) mentions that the control func- + tions shift-in and shift-out are allowed to occur within a 7-bit + multibyte control sequence because those cannot alter the meaning of + the control sequence. + +o Some controls (such as OSC ) introduce a string mode, which is ended + on a ST (string terminator). + + Again, the terminal should accept single-byte controls within the + string. However, xterm has a resource setting brokenLinuxOSC to allow + recovery from applications which rely upon malformed palette sequences + used by the Linux console. + + +

ESPTerm allows only graphic characters and UTF-8 in string mode commands like OSC.

+

Low ASCII control characters (< 32) are acted upon immediately on reception, with the + exception of ST and BEL, which both terminate the string and execute the command.

+ +

CAN and SUB cause an immediate reset of the parser, discarding any command or + sequence currently being processed.

+
+
+

C1 (8-Bit) Control Characters

+
+The xterm program recognizes both 8-bit and 7-bit control characters.
+It generates 7-bit controls (by default) or 8-bit if S8C1T is enabled.
+The following pairs of 7-bit and 8-bit control characters are equiva-
+lent:
+
+
+	

ESPTerm supports only the 7-bit versions, eg. ESC D.

+

Sequences not implemented are still consumed by the parser, but have no effect, + with the exception of SOS, PM and APC, which start a string terminated by ST or BEL. + The string is discarded upon completion.

+
+ESC D + Index (IND is 0x84). +ESC E + Next Line (NEL is 0x85). +ESC H + Tab Set (HTS is 0x88). +ESC M + Reverse Index (RI is 0x8d). +ESC N + Single Shift Select of G2 Character Set (SS2 is 0x8e). This + affects next character only. +ESC O + Single Shift Select of G3 Character Set (SS3 is 0x8f). This + affects next character only. +ESC P + Device Control String (DCS is 0x90). +ESC V + Start of Guarded Area (SPA is 0x96). +ESC W + End of Guarded Area (EPA is 0x97). +ESC X + Start of String (SOS is 0x98). +ESC Z + Return Terminal ID (DECID is 0x9a). Obsolete form of CSI c (DA). +ESC [ + Control Sequence Introducer (CSI is 0x9b). +ESC \ + String Terminator (ST is 0x9c). +ESC ] + Operating System Command (OSC is 0x9d). +ESC ^ + Privacy Message (PM is 0x9e). +ESC _ + Application Program Command (APC is 0x9f). + +These control characters are used in the vtXXX emulation. + +
+

VT100 Mode

+
+Most of these control sequences are standard VT102 control sequences,
+but there is support for later DEC VT terminals (i.e., VT220, VT320,
+VT420, VT510), as well as ISO 6429 and aixterm color controls.  The only
+VT102 feature not supported is auto-repeat, since the only way X pro-
+vides for this will affect all windows.
+There are additional control sequences to provide xterm-dependent func-
+tions, such as the scrollbar or window size.  Where the function is
+specified by DEC or ISO 6429, the code assigned to it is given in paren-
+theses.
+The escape codes to designate and invoke character sets are specified by
+ISO 2022 (see that document for a discussion of character sets).
+Many of the features are optional; xterm can be configured and built
+without support for them.
+
+
+

Single-character functions

+
+BEL       Bell (Ctrl-G).
+BS        Backspace (Ctrl-H).
+CR        Carriage Return (Ctrl-M).
+ENQ       Return Terminal Status (Ctrl-E).  Default response is an empty
+          string, but may be overridden by a resource answerbackString.
+FF        Form Feed or New Page (NP).  (FF  is Ctrl-L).  FF  is treated
+          the same as LF .
+LF        Line Feed or New Line (NL).  (LF  is Ctrl-J).
+SI        Shift In (Ctrl-O) -> Switch to Standard Character Set.  This
+          invokes the G0 character set (the default).
+SO        Shift Out (Ctrl-N) -> Switch to Alternate Character Set.  This
+          invokes the G1 character set.
+SP        Space.
+TAB       Horizontal Tab (HT) (Ctrl-I).
+VT        Vertical Tab (Ctrl-K).  This is treated the same as LF.
+
+
+	

ESPTerm's answerbackString has the form SOS ESPTerm VERSION ST + (SOS and ST as described in C1 (8-Bit) Control Characters).

+
+
+

Controls beginning with ESC

+ + +

Most escape sequences that are not implemented in ESPTerm are still safely consumed and discarded by the parser.

+
+ +
+This excludes controls where ESC  is part of a 7-bit equivalent to 8-bit
+C1 controls, ordered by the final character(s).
+ESC SP F  7-bit controls (S7C1T).
+ESC SP G  8-bit controls (S8C1T).
+ESC SP L  Set ANSI conformance level 1 (dpANS X3.134.1).
+ESC SP M  Set ANSI conformance level 2 (dpANS X3.134.1).
+ESC SP N  Set ANSI conformance level 3 (dpANS X3.134.1).
+ESC # 3   DEC double-height line, top half (DECDHL).
+ESC # 4   DEC double-height line, bottom half (DECDHL).
+ESC # 5   DEC single-width line (DECSWL).
+ESC # 6   DEC double-width line (DECDWL).
+ESC # 8   DEC Screen Alignment Test (DECALN).
+ESC % @   Select default character set.  That is ISO 8859-1 (ISO 2022).
+ESC % G   Select UTF-8 character set (ISO 2022).
+ESC ( C   Designate G0 Character Set (ISO 2022, VT100).
+          Final character C for designating 94-character sets.  In this
+          list, 0 , A  and B  apply to VT100 and up, the remainder to
+          VT220 and up.  The VT220 character sets, together with the
+          Portuguese character set are activated by the National
+          Replacement Character controls.  The A  is a special case,
+          since it is also activated by the VT300-control for British
+          Latin-1 separately from the National Replacement Character
+          controls.
+            C = 0  -> DEC Special Character and Line Drawing Set.
+            C = 1  -> Augmented DOS page 437
+            C = <  -> DEC Supplementary (VT200).
+            C = % 5  -> DEC Supplementary Graphics (VT300).
+            C = >  -> DEC Technical (VT300).
+            C = A  -> United Kingdom (UK).
+            C = B  -> United States (USASCII). (default)
+            C = 4  -> Dutch.
+            C = C  or 5  -> Finnish.
+            C = R  or f  -> French.
+            C = Q  or 9  -> French Canadian (VT200, VT300).
+            C = K  -> German.
+            C = Y  -> Italian.
+            C = ` , E  or 6  -> Norwegian/Danish.
+            C = % 6  -> Portuguese (VT300).
+            C = Z  -> Spanish.
+            C = H  or 7  -> Swedish.
+            C = =  -> Swiss.
+
+ESC ) C   Designate G1 Character Set (ISO 2022, VT100).
+          The same character sets apply as for ESC ( C.
+ESC * C   Designate G2 Character Set (ISO 2022, VT220).
+          The same character sets apply as for ESC ( C.
+ESC + C   Designate G3 Character Set (ISO 2022, VT220).
+          The same character sets apply as for ESC ( C.
+ESC - C   Designate G1 Character Set (VT300).
+          The same character sets apply as for ESC ( C.
+ESC . C   Designate G2 Character Set (VT300).
+          The same character sets apply as for ESC ( C.
+ESC / C   Designate G3 Character Set (VT300).
+          These work for 96-character sets only.
+            C = A  -> ISO Latin-1 Supplemental.
+ESC 6     Back Index (DECBI), VT420 and up.
+ESC 7     Save Cursor (DECSC).
+ESC 8     Restore Cursor (DECRC).
+ESC 9     Forward Index (DECFI), VT420 and up.
+ESC =     Application Keypad (DECKPAM).
+ESC >     Normal Keypad (DECKPNM).
+ESC F     Cursor to lower left corner of screen.  This is enabled by the
+          hpLowerleftBugCompat resource. This is always enabled
+ESC c     Full Reset (RIS).
+ESC l     Memory Lock (per HP terminals).  Locks memory above the cur-
+          sor.
+ESC m     Memory Unlock (per HP terminals).
+ESC n     Invoke the G2 Character Set as GL (LS2).
+ESC o     Invoke the G3 Character Set as GL (LS3).
+ESC |     Invoke the G3 Character Set as GR (LS3R).
+ESC }     Invoke the G2 Character Set as GR (LS2R).
+ESC ~     Invoke the G1 Character Set as GR (LS1R).
+
+
+

Application Program-Command functions

+
+APC Pt ST None.  xterm implements no APC  functions; Pt is ignored.  Pt
+          need not be printable characters.
+
+
+

Device-Control functions

+
+DCS Ps; Ps| Pt ST
+          User-Defined Keys (DECUDK).  The first parameter:
+            Ps = 0  -> Clear all UDK definitions before starting
+          (default).
+            Ps = 1  -> Erase Below (default).
+          The second parameter:
+            Ps = 0  <- Lock the keys (default).
+            Ps = 1  <- Do not lock.
+          The third parameter is a ';'-separated list of strings denot-
+          ing the key-code separated by a '/' from the hex-encoded key
+          value.  The key codes correspond to the DEC function-key codes
+          (e.g., F6=17).
+DCS $ q Pt ST
+          Request Status String (DECRQSS).  The string following the "q"
+          is one of the following:
+            " q     -> DECSCA
+            " p     -> DECSCL
+            r       -> DECSTBM
+            s       -> DECSLRM
+            m       -> SGR
+            SP q    -> DECSCUSR
+          xterm responds with DCS 1 $ r Pt ST for valid requests,
+          replacing the Pt with the corresponding CSI string, or DCS 0 $
+          r Pt ST for invalid requests.
+DCS + p Pt ST
+          Set Termcap/Terminfo Data (xterm, experimental).  The string
+          following the "p" is a name to use for retrieving data from
+          the terminal database.  The data will be used for the "tcap"
+          keyboard configuration's function- and special-keys, as well
+          as by the Request Termcap/Terminfo String control.
+DCS + q Pt ST
+          Request Termcap/Terminfo String (xterm, experimental).  The
+          string following the "q" is a list of names encoded in hexa-
+          decimal (2 digits per character) separated by ; which corre-
+          spond to termcap or terminfo key names.
+          Two special features are also recognized, which are not key
+          names: Co for termcap colors (or colors for terminfo colors),
+          and TN for termcap name (or name for terminfo name).
+          xterm responds with DCS 1 + r Pt ST for valid requests, adding
+          to Pt an = , and the value of the corresponding string that
+          xterm would send, or DCS 0 + r Pt ST for invalid requests.
+          The strings are encoded in hexadecimal (2 digits per charac-
+          ter).
+
+
+

Functions using CSI , ordered by the final character(s)

+
+CSI Ps @  Insert Ps (Blank) Character(s) (default = 1) (ICH).
+CSI Ps A  Cursor Up Ps Times (default = 1) (CUU).
+CSI Ps B  Cursor Down Ps Times (default = 1) (CUD).
+CSI Ps C  Cursor Forward Ps Times (default = 1) (CUF).
+CSI Ps D  Cursor Backward Ps Times (default = 1) (CUB).
+CSI Ps E  Cursor Next Line Ps Times (default = 1) (CNL).
+CSI Ps F  Cursor Preceding Line Ps Times (default = 1) (CPL).
+CSI Ps G  Cursor Character Absolute  [column] (default = [row,1]) (CHA).
+CSI Ps ; Ps H
+          Cursor Position [row;column] (default = [1,1]) (CUP).
+CSI Ps I  Cursor Forward Tabulation Ps tab stops (default = 1) (CHT).
+CSI Ps J  Erase in Display (ED).
+            Ps = 0  -> Erase Below (default).
+            Ps = 1  -> Erase Above.
+            Ps = 2  -> Erase All.
+            Ps = 3  -> Erase Saved Lines (xterm).
+CSI ? Ps J
+          Erase in Display (DECSED).
+            Ps = 0  -> Selective Erase Below (default).
+            Ps = 1  -> Selective Erase Above.
+            Ps = 2  -> Selective Erase All.
+            Ps = 3  -> Selective Erase Saved Lines (xterm).
+CSI Ps K  Erase in Line (EL).
+            Ps = 0  -> Erase to Right (default).
+            Ps = 1  -> Erase to Left.
+            Ps = 2  -> Erase All.
+CSI ? Ps K
+          Erase in Line (DECSEL).
+            Ps = 0  -> Selective Erase to Right (default).
+            Ps = 1  -> Selective Erase to Left.
+            Ps = 2  -> Selective Erase All.
+CSI Ps L  Insert Ps Line(s) (default = 1) (IL).
+CSI Ps M  Delete Ps Line(s) (default = 1) (DL).
+CSI Ps P  Delete Ps Character(s) (default = 1) (DCH).
+CSI Ps S  Scroll up Ps lines (default = 1) (SU).
+CSI ? Pi; Pa; Pv S
+          If configured to support either Sixel Graphics or ReGIS Graph-
+          ics, xterm accepts a three-parameter control sequence, where
+          Pi, Pa and Pv are the item, action and value:
+
+            Pi = 1  -> item is number of color registers.
+            Pi = 2  -> item is Sixel graphics geometry (in pixels).
+            Pi = 3  -> item is ReGIS graphics geometry (in pixels).
+
+            Pa = 1  -> read
+            Pa = 2  -> reset to default
+            Pa = 3  -> set to value in Pv
+            Pa = 4  -> read the maximum allowed value
+
+            Pv can be omitted except when setting (Pa == 3 ).
+            Pv = n <- A single integer is used for color registers.
+            Pv = width; height <- Two integers for graphics geometry.
+
+          xterm replies with a control sequence of the same form:
+
+               CSI ? Pi; Ps; Pv S
+
+          where Ps is the status:
+            Ps = 0  -> success.
+            Ps = 1  -> error in Pi.
+            Ps = 2  -> error in Pa.
+            Ps = 3  -> failure.
+
+          On success, Pv represents the value read or set.
+
+          Notes:
+          o The current implementation allows reading the graphics
+            sizes, but disallows modifying those sizes because that is
+            done once, using resource-values.
+          o Graphics geometry is not necessarily the same as "window
+            size" (see the dtterm window manipulation extensions). For
+            example, xterm limits the maximum graphics geometry at com-
+            pile time (1000x1000 as of version 328) although the window
+            size can be larger.
+          o While resizing a window will always change the current
+            graphics geometry, the reverse is not true.  Setting graph-
+            ics geometry does not affect the window size.
+CSI Ps T  Scroll down Ps lines (default = 1) (SD).
+CSI Ps ; Ps ; Ps ; Ps ; Ps T
+          Initiate highlight mouse tracking.  Parameters are
+          [func;startx;starty;firstrow;lastrow].  See the section Mouse
+          Tracking.
+CSI > Ps; Ps T
+          Reset one or more features of the title modes to the default
+          value.  Normally, "reset" disables the feature.  It is possi-
+          ble to disable the ability to reset features by compiling a
+          different default for the title modes into xterm.
+            Ps = 0  -> Do not set window/icon labels using hexadecimal.
+            Ps = 1  -> Do not query window/icon labels using hexadeci-
+          mal.
+            Ps = 2  -> Do not set window/icon labels using UTF-8.
+            Ps = 3  -> Do not query window/icon labels using UTF-8.
+          (See discussion of "Title Modes").
+CSI Ps X  Erase Ps Character(s) (default = 1) (ECH).
+CSI Ps Z  Cursor Backward Tabulation Ps tab stops (default = 1) (CBT).
+CSI Pm `  Character Position Absolute  [column] (default = [row,1])
+          (HPA).
+CSI Pm a  Character Position Relative  [columns] (default = [row,col+1])
+          (HPR).
+CSI Ps b  Repeat the preceding graphic character Ps times (REP).
+CSI Ps c  Send Device Attributes (Primary DA).
+            Ps = 0  or omitted -> request attributes from terminal.  The
+          response depends on the decTerminalID resource setting.
+            -> CSI ? 1 ; 2 c  ("VT100 with Advanced Video Option")
+            -> CSI ? 1 ; 0 c  ("VT101 with No Options")
+            -> CSI ? 6 c  ("VT102")
+            -> CSI ? 6 2 ; Psc  ("VT220")
+            -> CSI ? 6 3 ; Psc  ("VT320")
+            -> CSI ? 6 4 ; Psc  ("VT420")
+          The VT100-style response parameters do not mean anything by
+          themselves.  VT220 (and higher) parameters do, telling the
+          host what features the terminal supports:
+            Ps = 1  -> 132-columns.
+            Ps = 2  -> Printer.
+            Ps = 3  -> ReGIS graphics.
+            Ps = 4  -> Sixel graphics.
+            Ps = 6  -> Selective erase.
+            Ps = 8  -> User-defined keys.
+            Ps = 9  -> National Replacement Character sets.
+            Ps = 1 5  -> Technical characters.
+            Ps = 1 8  -> User windows.
+            Ps = 2 1  -> Horizontal scrolling.
+            Ps = 2 2  -> ANSI color, e.g., VT525.
+            Ps = 2 9  -> ANSI text locator (i.e., DEC Locator mode).
+ESPTerm identifies itself as a VT420 with national character sets.CSI > Ps c
+          Send Device Attributes (Secondary DA).
+            Ps = 0  or omitted -> request the terminal's identification
+          code.  The response depends on the decTerminalID resource set-
+          ting.  It should apply only to VT220 and up, but xterm extends
+          this to VT100.
+            -> CSI  > Pp ; Pv ; Pc c
+          where Pp denotes the terminal type
+            Pp = 0  -> "VT100".
+            Pp = 1  -> "VT220".
+            Pp = 2  -> "VT240".
+            Pp = 1 8 -> "VT330".
+            Pp = 1 9 -> "VT340".
+            Pp = 2 4 -> "VT320".
+            Pp = 4 1 -> "VT420".
+            Pp = 6 1 -> "VT510".
+            Pp = 6 4 -> "VT520".
+            Pp = 6 5 -> "VT525".
+          and Pv is the firmware version (for xterm, this was originally
+          the XFree86 patch number, starting with 95). For ESPTerm, this is the
+          firmware version expressed as integer. In a DEC termi-nal, Pc
+          indicates the ROM cartridge registration number and is always zero.
+
+CSI Pm d  Line Position Absolute  [row] (default = [1,column]) (VPA).
+CSI Pm e  Line Position Relative  [rows] (default = [row+1,column])
+          (VPR).
+CSI Ps ; Ps f
+          Horizontal and Vertical Position [row;column] (default =
+          [1,1]) (HVP). This is functionally identical to CSI Ps ; Ps H.
+CSI Ps g  Tab Clear (TBC).
+            Ps = 0  -> Clear Current Column (default).
+            Ps = 3  -> Clear All.
+CSI Pm h  Set Mode (SM).
+            Ps = 2  -> Keyboard Action Mode (AM).
+            Ps = 4  -> Insert Mode (IRM).
+            Ps = 1 2  -> Send/receive (SRM). This option disables Local Echo when enabled (default)
+            Ps = 2 0  -> Automatic Newline (LNM).
+CSI ? Pm h
+          DEC Private Mode Set (DECSET).
+            Ps = 1  -> Application Cursor Keys (DECCKM).
+            Ps = 2  -> Designate USASCII for character sets G0-G3
+          (DECANM), and set VT100 mode.
+            Ps = 3  -> 132 Column Mode (DECCOLM). ESPTerm doesn't have enough RAM for 132x25,
+          but it implements the side effects of clearing the screen and resetting the scolling region.
+            Ps = 4  -> Smooth (Slow) Scroll (DECSCLM).
+            Ps = 5  -> Reverse Video (DECSCNM).
+            Ps = 6  -> Origin Mode (DECOM).
+            Ps = 7  -> Wraparound Mode (DECAWM).
+            Ps = 8  -> Auto-repeat Keys (DECARM).
+            Ps = 9  -> Send Mouse X & Y on button press.  See the sec-
+          tion Mouse Tracking.  This is the X10 xterm mouse protocol.
+            Ps = 1 0  -> Show toolbar (rxvt).
+            Ps = 1 2  -> Start Blinking Cursor (att610).
+            Ps = 1 8  -> Print form feed (DECPFF).
+            Ps = 1 9  -> Set print extent to full screen (DECPEX).
+            Ps = 2 5  -> Show Cursor (DECTCEM).
+            Ps = 3 0  -> Show scrollbar (rxvt).
+            Ps = 3 5  -> Enable font-shifting functions (rxvt).
+            Ps = 3 8  -> Enter Tektronix Mode (DECTEK).
+            Ps = 4 0  -> Allow 80 -> 132 Mode.
+            Ps = 4 1  -> more(1) fix (see curses resource).
+            Ps = 4 2  -> Enable National Replacement Character sets
+          (DECNRCM).
+            Ps = 4 4  -> Turn On Margin Bell.
+            Ps = 4 5  -> Reverse-wraparound Mode.
+            Ps = 4 6  -> Start Logging.  This is normally disabled by a
+          compile-time option.
+            Ps = 4 7  -> Use Alternate Screen Buffer.  (This may be dis-
+          abled by the titeInhibit resource). (See 1047 below for more info)
+            Ps = 6 6  -> Application keypad (DECNKM).
+            Ps = 6 7  -> Backarrow key sends backspace (DECBKM).
+            Ps = 6 9  -> Enable left and right margin mode (DECLRMM),
+          VT420 and up.
+            Ps = 9 5  -> Do not clear screen when DECCOLM is set/reset
+          (DECNCSM), VT510 and up.
+            Ps = 8 0 0  -> Display the Action Buttons under the terminal screen (default)
+            Ps = 8 0 1  -> Display the menu links under the terminal screen (default)
+            Ps = 1 0 0 0  -> Send Mouse X & Y on button press and
+          release.  See the section Mouse Tracking.  This is the X11
+          xterm mouse protocol.
+            Ps = 1 0 0 1  -> Use Hilite Mouse Tracking.
+            Ps = 1 0 0 2  -> Use Cell Motion Mouse Tracking.
+            Ps = 1 0 0 3  -> Use All Motion Mouse Tracking.
+            Ps = 1 0 0 4  -> Send FocusIn/FocusOut events.
+            Ps = 1 0 0 5  -> Enable UTF-8 Mouse Mode.
+            Ps = 1 0 0 6  -> Enable SGR Mouse Mode.
+            Ps = 1 0 0 7  -> Enable Alternate Scroll Mode, i.e., the
+          alternateScroll resource.
+            Ps = 1 0 1 0  -> Scroll to bottom on tty output (rxvt).
+            Ps = 1 0 1 1  -> Scroll to bottom on key press (rxvt).
+            Ps = 1 0 1 5  -> Enable urxvt Mouse Mode.
+            Ps = 1 0 3 4  -> Interpret "meta" key, sets eighth bit.
+          (enables the eightBitInput resource).
+            Ps = 1 0 3 5  -> Enable special modifiers for Alt and Num-
+          Lock keys.  (This enables the numLock resource).
+            Ps = 1 0 3 6  -> Send ESC   when Meta modifies a key.  (This
+          enables the metaSendsEscape resource).
+            Ps = 1 0 3 7  -> Send DEL from the editing-keypad Delete
+          key.
+            Ps = 1 0 3 9  -> Send ESC  when Alt modifies a key.  (This
+          enables the altSendsEscape resource).
+            Ps = 1 0 4 0  -> Keep selection even if not highlighted.
+          (This enables the keepSelection resource).
+            Ps = 1 0 4 1  -> Use the CLIPBOARD selection.  (This enables
+          the selectToClipboard resource).
+            Ps = 1 0 4 2  -> Enable Urgency window manager hint when
+          Control-G is received.  (This enables the bellIsUrgent
+          resource).
+            Ps = 1 0 4 3  -> Enable raising of the window when Control-G
+          is received.  (enables the popOnBell resource).
+            Ps = 1 0 4 4  -> Reuse the most recent data copied to CLIP-
+          BOARD.  (This enables the keepClipboard resource).
+            Ps = 1 0 4 7  -> Use Alternate Screen Buffer.  (This may be
+          disabled by the titeInhibit resource).
+            Ps = 1 0 4 8  -> Save cursor as in DECSC.  (This may be dis-
+          abled by the titeInhibit resource).
+            Ps = 1 0 4 9  -> Save cursor as in DECSC and use Alternate
+          Screen Buffer, clearing it first.  (This may be disabled by
+          the titeInhibit resource).  This combines the effects of the 1
+          0 4 7  and 1 0 4 8  modes.  Use this with terminfo-based
+          applications rather than the 4 7  mode.
+ESP8266 doesn't have enough RAM to hold two screen buffers.
+          Instead, we at least back up and restore screen title, size and other
+          attributes. The screen is also cleared with each buffer change. TODO implement            Ps = 1 0 5 0  -> Set terminfo/termcap function-key mode.
+            Ps = 1 0 5 1  -> Set Sun function-key mode.
+            Ps = 1 0 5 2  -> Set HP function-key mode.
+            Ps = 1 0 5 3  -> Set SCO function-key mode.
+            Ps = 1 0 6 0  -> Set legacy keyboard emulation (X11R6).
+            Ps = 1 0 6 1  -> Set VT220 keyboard emulation.
+            Ps = 2 0 0 4  -> Set bracketed paste mode.
+CSI Pm i  Media Copy (MC).
+            Ps = 0  -> Print screen (default).
+            Ps = 4  -> Turn off printer controller mode.
+            Ps = 5  -> Turn on printer controller mode.
+            Ps = 1  0  -> HTML screen dump.
+            Ps = 1  1  -> SVG screen dump.
+CSI ? Pm i
+          Media Copy (MC, DEC-specific).
+            Ps = 1  -> Print line containing cursor.
+            Ps = 4  -> Turn off autoprint mode.
+            Ps = 5  -> Turn on autoprint mode.
+            Ps = 1  0  -> Print composed display, ignores DECPEX.
+            Ps = 1  1  -> Print all pages.
+CSI Pm l  Reset Mode (RM). See SM above.
+
+CSI ? Pm l
+          DEC Private Mode Reset (DECRST). See DECSET above.
+
+CSI Pm m  Character Attributes (SGR).
+            Ps = 0  -> Normal (default).
+            Ps = 1  -> Bold.
+            Ps = 2  -> Faint, decreased intensity (ISO 6429).
+            Ps = 3  -> Italicized (ISO 6429).
+            Ps = 4  -> Underlined.
+            Ps = 5  -> Blink (appears as Bold).
+            Ps = 7  -> Inverse.
+            Ps = 8  -> Invisible, i.e., hidden (VT300).
+            Ps = 9  -> Crossed-out characters (ISO 6429).
+            Ps = 2 0  -> Fraktur (code from Wikipedia)
+            Ps = 2 1  -> Doubly-underlined (ISO 6429).
+            Ps = 2 1  -> Bold: off
+            Ps = 2 2  -> Normal (neither bold nor faint).
+            Ps = 2 3  -> Not italicized or Fraktur (ISO 6429).
+            Ps = 2 4  -> Not underlined.
+            Ps = 2 5  -> Steady (not blinking).
+            Ps = 2 7  -> Positive (not inverse).
+            Ps = 2 8  -> Visible, i.e., not hidden (VT300).
+            Ps = 2 9  -> Not crossed-out (ISO 6429).
+            Ps = 3 0  -> Set foreground color to Black.
+            Ps = 3 1  -> Set foreground color to Red.
+            Ps = 3 2  -> Set foreground color to Green.
+            Ps = 3 3  -> Set foreground color to Yellow.
+            Ps = 3 4  -> Set foreground color to Blue.
+            Ps = 3 5  -> Set foreground color to Magenta.
+            Ps = 3 6  -> Set foreground color to Cyan.
+            Ps = 3 7  -> Set foreground color to White. = light gray
+            Ps = 3 9  -> Set foreground color to default (original).
+            Ps = 4 0  -> Set background color to Black.
+            Ps = 4 1  -> Set background color to Red.
+            Ps = 4 2  -> Set background color to Green.
+            Ps = 4 3  -> Set background color to Yellow.
+            Ps = 4 4  -> Set background color to Blue.
+            Ps = 4 5  -> Set background color to Magenta.
+            Ps = 4 6  -> Set background color to Cyan.
+            Ps = 4 7  -> Set background color to White.
+            Ps = 4 9  -> Set background color to default (original).
+
+          If 16-color support is compiled, the following apply.  Assume
+          that xterm's resources are set so that the ISO color codes are
+          the first 8 of a set of 16. Then the aixterm colors are the
+          bright versions of the ISO colors:
+Codes 90-97 and 100-107 produce brighter versions of the base colors.            Ps = 9 0  -> Set foreground color to Black. = dark gray
+            Ps = 9 1  -> Set foreground color to Red.
+            Ps = 9 2  -> Set foreground color to Green.
+            Ps = 9 3  -> Set foreground color to Yellow.
+            Ps = 9 4  -> Set foreground color to Blue.
+            Ps = 9 5  -> Set foreground color to Magenta.
+            Ps = 9 6  -> Set foreground color to Cyan.
+            Ps = 9 7  -> Set foreground color to White.
+            Ps = 1 0 0  -> Set background color to Black.
+            Ps = 1 0 1  -> Set background color to Red.
+            Ps = 1 0 2  -> Set background color to Green.
+            Ps = 1 0 3  -> Set background color to Yellow.
+            Ps = 1 0 4  -> Set background color to Blue.
+            Ps = 1 0 5  -> Set background color to Magenta.
+            Ps = 1 0 6  -> Set background color to Cyan.
+            Ps = 1 0 7  -> Set background color to White.
+
+          If xterm is compiled with the 16-color support disabled, it
+          supports the following, from rxvt:
+            Ps = 1 0 0  -> Set foreground and background color to
+          default.
+
+          Xterm maintains a color palette whose entries are identified
+          by an index beginning with zero.  If 88- or 256-color support
+          is compiled, the following apply:
+          o All parameters are decimal integers.
+          o RGB values range from zero (0) to 255.
+          o ISO-8613-3 can be interpreted in more than one way; xterm
+            allows the semicolons in this control to be replaced by
+            colons (but after the first colon, colons must be used).
+
+          These ISO-8613-3 controls are supported:
+            Pm = 3 8 ; 2 ; Pr; Pg; Pb -> Set foreground color to the
+          closest match in xterm's palette for the given RGB Pr/Pg/Pb.
+            Pm = 3 8 ; 5 ; Ps -> Set foreground color to Ps.
+            Pm = 4 8 ; 2 ; Pr; Pg; Pb -> Set background color to the
+          closest match in xterm's palette for the given RGB Pr/Pg/Pb.
+            Pm = 4 8 ; 5 ; Ps -> Set background color to Ps.
+
+CSI > Ps; Ps m
+          Set or reset resource-values used by xterm to decide whether
+          to construct escape sequences holding information about the
+          modifiers pressed with a given key.  The first parameter iden-
+          tifies the resource to set/reset.  The second parameter is the
+          value to assign to the resource.  If the second parameter is
+          omitted, the resource is reset to its initial value.
+            Ps = 0  -> modifyKeyboard.
+            Ps = 1  -> modifyCursorKeys.
+            Ps = 2  -> modifyFunctionKeys.
+            Ps = 4  -> modifyOtherKeys.
+          If no parameters are given, all resources are reset to their
+          initial values.
+CSI Ps n  Device Status Report (DSR).
+            Ps = 5  -> Status Report.
+          Result ("OK") is CSI 0 n
+            Ps = 6  -> Report Cursor Position (CPR) [row;column].
+          Result is CSI r ; c R
+
+          Note: it is possible for this sequence to be sent by a func-
+          tion key.  For example, with the default keyboard configura-
+          tion the shifted F1 key may send (with shift-, control-, alt-
+          modifiers)
+            CSI 1  ; 2  R , or
+            CSI 1  ; 5  R , or
+            CSI 1  ; 6  R , etc.
+          The second parameter encodes the modifiers; values range from
+          2 to 16.  See the section PC-Style Function Keys for the
+          codes.  The modifyFunctionKeys and modifyKeyboard resources
+          can change the form of the string sent from the modified F1
+          key.
+
+CSI > Ps n
+          Disable modifiers which may be enabled via the CSI > Ps; Ps m
+          sequence.  This corresponds to a resource value of "-1", which
+          cannot be set with the other sequence.  The parameter identi-
+          fies the resource to be disabled:
+            Ps = 0  -> modifyKeyboard.
+            Ps = 1  -> modifyCursorKeys.
+            Ps = 2  -> modifyFunctionKeys.
+            Ps = 4  -> modifyOtherKeys.
+          If the parameter is omitted, modifyFunctionKeys is disabled.
+          When modifyFunctionKeys is disabled, xterm uses the modifier
+          keys to make an extended sequence of functions rather than
+          adding a parameter to each function key to denote the modi-
+          fiers.
+CSI ? Ps n
+          Device Status Report (DSR, DEC-specific).
+            Ps = 6  -> Report Cursor Position (DECXCPR) [row;column] as
+          CSI ? r ; c R (assumes the default page, i.e., "1").
+            Ps = 1 5  -> Report Printer status as CSI ? 1 0 n  (ready).
+          or CSI ? 1 1 n  (not ready).
+            Ps = 2 5  -> Report UDK status as CSI ? 2 0 n  (unlocked) or
+          CSI ? 2 1 n  (locked).
+            Ps = 2 6  -> Report Keyboard status as
+          CSI ? 2 7 ; 1 ; 0 ; 0 n  (North American).
+          The last two parameters apply to VT400 & up, and denote key-
+          board ready and LK01 respectively.
+            Ps = 5 3  -> Report Locator status as CSI ? 5 3 n  Locator
+          available, if compiled-in, or CSI ? 5 0 n  No Locator, if not.
+            Ps = 5 5  -> Report Locator status as CSI ? 5 3 n  Locator
+          available, if compiled-in, or CSI ? 5 0 n  No Locator, if not.
+            Ps = 5 6  -> Report Locator type as CSI ? 5 7 ; 1 n  Mouse,
+          if compiled-in, or CSI ? 5 7 ; 0 n  Cannot identify, if not.
+            Ps = 6 2  -> Report macro space (DECMSR) as CSI Pn \* { .
+            Ps = 6 3  -> Report memory checksum (DECCKSR) as DCS Pt ! x
+          x x x ST .
+              Pt is the request id (from an optional parameter to the
+          request).
+              The x's are hexadecimal digits 0-9 and A-F.
+            Ps = 7 5  -> Report data integrity as CSI ? 7 0 n  (ready,
+          no errors).
+            Ps = 8 5  -> Report multi-session configuration as CSI ? 8 3
+          n  (not configured for multiple-session operation).
+CSI > Ps p
+          Set resource value pointerMode.  This is used by xterm to
+          decide whether to hide the pointer cursor as the user types.
+          Valid values for the parameter:
+            Ps = 0  -> never hide the pointer.
+            Ps = 1  -> hide if the mouse tracking mode is not enabled.
+            Ps = 2  -> always hide the pointer, except when leaving the
+          window.
+            Ps = 3  -> always hide the pointer, even if leaving/entering
+          the window.  If no parameter is given, xterm uses the default,
+          which is 1 .
+CSI ! p   Soft terminal reset (DECSTR).
+          This does the same as `ESC c` ("hard reset") in ESPTerm
+CSI Ps ; Ps " p
+          Set conformance level (DECSCL).  Valid values for the first
+          parameter:
+            Ps = 6 1  -> VT100.
+            Ps = 6 2  -> VT200.
+            Ps = 6 3  -> VT300.
+          Valid values for the second parameter:
+            Ps = 0  -> 8-bit controls.
+            Ps = 1  -> 7-bit controls (always set for VT100).
+            Ps = 2  -> 8-bit controls.
+CSI Ps $ p
+          Request ANSI mode (DECRQM).  For VT300 and up, reply is
+            CSI Ps; Pm$ y
+          where Ps is the mode number as in RM, and Pm is the mode
+          value:
+            0 - not recognized
+            1 - set
+            2 - reset
+            3 - permanently set
+            4 - permanently reset
+CSI ? Ps$ p
+          Request DEC private mode (DECRQM).  For VT300 and up, reply is
+            CSI ? Ps; Pm$ y
+          where Ps is the mode number as in DECSET, Pm is the mode value
+          as in the ANSI DECRQM.
+CSI Ps q  Load LEDs (DECLL).
+            Ps = 0  -> Clear all LEDS (default).
+            Ps = 1  -> Light Num Lock.
+            Ps = 2  -> Light Caps Lock.
+            Ps = 3  -> Light Scroll Lock.
+            Ps = 2  1  -> Extinguish Num Lock.
+            Ps = 2  2  -> Extinguish Caps Lock.
+            Ps = 2  3  -> Extinguish Scroll Lock.
+CSI Ps SP q
+          Set cursor style (DECSCUSR, VT520).
+            Ps = 0  -> blinking block.
+            Ps = 1  -> blinking block (default).
+            Ps = 2  -> steady block.
+            Ps = 3  -> blinking underline.
+            Ps = 4  -> steady underline.
+            Ps = 5  -> blinking bar (xterm).
+            Ps = 6  -> steady bar (xterm).
+CSI Ps " q
+          Select character protection attribute (DECSCA).  Valid values
+          for the parameter:
+            Ps = 0  -> DECSED and DECSEL can erase (default).
+            Ps = 1  -> DECSED and DECSEL cannot erase.
+            Ps = 2  -> DECSED and DECSEL can erase.
+CSI Ps ; Ps r
+          Set Scrolling Region [top;bottom] (default = full size of win-
+          dow) (DECSTBM).
+CSI ? Pm r
+          Restore DEC Private Mode Values.  The value of Ps previously
+          saved is restored.  Ps values are the same as for DECSET. TODO implement
+CSI Pt; Pl; Pb; Pr; Ps$ r
+          Change Attributes in Rectangular Area (DECCARA), VT400 and up.
+            Pt; Pl; Pb; Pr denotes the rectangle.
+            Ps denotes the SGR attributes to change: 0, 1, 4, 5, 7.
+CSI s     Save cursor (ANSI.SYS), available only when DECLRMM is dis-
+          abled. This saves only the position, not attributes.
+CSI Pl; Pr s
+          Set left and right margins (DECSLRM), available only when
+          DECLRMM is enabled (VT420 and up).
+CSI ? Pm s
+          Save DEC Private Mode Values.  Ps values are the same as for
+          DECSET. TODO implement
+CSI Ps ; Ps ; Ps t
+          Window manipulation (from dtterm, as well as extensions).
+          These controls may be disabled using the allowWindowOps
+          resource.  Valid values for the first (and any additional
+          parameters) are:
+            Ps = 1  -> De-iconify window.
+            Ps = 2  -> Iconify window.
+            Ps = 3  ;  x ;  y -> Move window to [x, y].
+            Ps = 4  ;  height ;  width -> Resize the xterm window to
+          given height and width in pixels.  Omitted parameters reuse
+          the current height or width.  Zero parameters use the dis-
+          play's height or width.
+            Ps = 5  -> Raise the xterm window to the front of the stack-
+          ing order.
+            Ps = 6  -> Lower the xterm window to the bottom of the
+          stacking order.
+            Ps = 7  -> Refresh the xterm window.
+            Ps = 8  ;  height ;  width -> Resize the text area to given
+          height and width in characters.  Omitted parameters reuse the
+          current height or width.  Zero parameters use the display's
+          height or width.
+            Ps = 9  ;  0  -> Restore maximized window.
+            Ps = 9  ;  1  -> Maximize window (i.e., resize to screen
+          size).
+            Ps = 9  ;  2  -> Maximize window vertically.
+            Ps = 9  ;  3  -> Maximize window horizontally.
+            Ps = 1 0  ;  0  -> Undo full-screen mode.
+            Ps = 1 0  ;  1  -> Change to full-screen.
+            Ps = 1 0  ;  2  -> Toggle full-screen.
+            Ps = 1 1  -> Report xterm window state.  If the xterm window
+          is open (non-iconified), it returns CSI 1 t .  If the xterm
+          window is iconified, it returns CSI 2 t .
+            Ps = 1 3  -> Report xterm window position.
+          Result is CSI 3 ; x ; y t
+            Ps = 1 4  -> Report xterm window in pixels.
+          Result is CSI  4  ;  height ;  width t
+            Ps = 1 8  -> Report the size of the text area in characters.
+          Result is CSI  8  ;  height ;  width t
+            Ps = 1 9  -> Report the size of the screen in characters.
+          Result is CSI  9  ;  height ;  width t
+            Ps = 2 0  -> Report xterm window's icon label.
+          Result is OSC  L  label ST
+            Ps = 2 1  -> Report xterm window's title.
+          Result is OSC  l  label ST
+            Ps = 2 2  ;  0  -> Save xterm icon and window title on
+          stack.
+            Ps = 2 2  ;  1  -> Save xterm icon title on stack.
+            Ps = 2 2  ;  2  -> Save xterm window title on stack.
+            Ps = 2 3  ;  0  -> Restore xterm icon and window title from
+          stack.
+            Ps = 2 3  ;  1  -> Restore xterm icon title from stack.
+            Ps = 2 3  ;  2  -> Restore xterm window title from stack.
+            Ps >= 2 4  -> Resize to Ps lines (DECSLPP).
+CSI > Ps; Ps t
+          Set one or more features of the title modes.  Each parameter
+          enables a single feature.
+            Ps = 0  -> Set window/icon labels using hexadecimal.
+            Ps = 1  -> Query window/icon labels using hexadecimal.
+            Ps = 2  -> Set window/icon labels using UTF-8.
+            Ps = 3  -> Query window/icon labels using UTF-8.  (See dis-
+          cussion of "Title Modes")
+CSI Ps SP t
+          Set warning-bell volume (DECSWBV, VT520).
+            Ps = 0  or 1  -> off.
+            Ps = 2 , 3  or 4  -> low.
+            Ps = 5 , 6 , 7 , or 8  -> high.
+CSI Pt; Pl; Pb; Pr; Ps$ t
+          Reverse Attributes in Rectangular Area (DECRARA), VT400 and
+          up.
+            Pt; Pl; Pb; Pr denotes the rectangle.
+            Ps denotes the attributes to reverse, i.e.,  1, 4, 5, 7.
+CSI u     Restore cursor (ANSI.SYS). This restores only the position.
+CSI Ps SP u
+          Set margin-bell volume (DECSMBV, VT520).
+            Ps = 1  -> off.
+            Ps = 2 , 3  or 4  -> low.
+            Ps = 0 , 5 , 6 , 7 , or 8  -> high.
+CSI Pt; Pl; Pb; Pr; Pp; Pt; Pl; Pp$ v
+          Copy Rectangular Area (DECCRA, VT400 and up).
+            Pt; Pl; Pb; Pr denotes the rectangle.
+            Pp denotes the source page.
+            Pt; Pl denotes the target location.
+            Pp denotes the target page.
+CSI Pt ; Pl ; Pb ; Pr ' w
+          Enable Filter Rectangle (DECEFR), VT420 and up.
+          Parameters are [top;left;bottom;right].
+          Defines the coordinates of a filter rectangle and activates
+          it.  Anytime the locator is detected outside of the filter
+          rectangle, an outside rectangle event is generated and the
+          rectangle is disabled.  Filter rectangles are always treated
+          as "one-shot" events.  Any parameters that are omitted default
+          to the current locator position.  If all parameters are omit-
+          ted, any locator motion will be reported.  DECELR always can-
+          cels any prevous rectangle definition.
+CSI Ps x  Request Terminal Parameters (DECREQTPARM).
+          if Ps is a "0" (default) or "1", and xterm is emulating VT100,
+          the control sequence elicits a response of the same form whose
+          parameters describe the terminal:
+            Ps -> the given Ps incremented by 2.
+            Pn = 1  <- no parity.
+            Pn = 1  <- eight bits.
+            Pn = 1  <- 2  8  transmit 38.4k baud. Transmit speed (baud)
+            Pn = 1  <- 2  8  receive 38.4k baud. Receive speed (baud)
+            Pn = 1  <- clock multiplier.
+            Pn = 0  <- STP flags.The baud rate is retrieved from a lookup table based on the current ESPTerm settings.
+See the source code for the full list. Examples: 120 = 38400, 144 = 115200 baud. What this function is
+good for remains a mystery??CSI Ps * x
+          Select Attribute Change Extent (DECSACE).
+            Ps = 0  -> from start to end position, wrapped.
+            Ps = 1  -> from start to end position, wrapped.
+            Ps = 2  -> rectangle (exact).
+CSI Pc ; Pt ; Pl ; Pb ; Pr $ x
+          Fill Rectangular Area (DECFRA), VT420 and up.
+            Pc is the character to use.
+            Pt; Pl; Pb; Pr denotes the rectangle.
+CSI Pi ; Pg ; Pt; Pl; Pb; Pr * y
+          Request Checksum of Rectangular Area (DECRQCRA), VT420 and up.
+          Response is
+          DCS Pi ! x x x x ST
+            Pi is the request id.
+            Pg is the page number.
+            Pt; Pl; Pb; Pr denotes the rectangle.
+            The x's are hexadecimal digits 0-9 and A-F.
+CSI Ps ; Pu ' z
+          Enable Locator Reporting (DECELR).
+          Valid values for the first parameter:
+            Ps = 0  -> Locator disabled (default).
+            Ps = 1  -> Locator enabled.
+            Ps = 2  -> Locator enabled for one report, then disabled.
+          The second parameter specifies the coordinate unit for locator
+          reports.
+          Valid values for the second parameter:
+            Pu = 0  <- or omitted -> default to character cells.
+            Pu = 1  <- device physical pixels.
+            Pu = 2  <- character cells.
+CSI Pt; Pl; Pb; Pr$ z
+          Erase Rectangular Area (DECERA), VT400 and up.
+            Pt; Pl; Pb; Pr denotes the rectangle.
+CSI Pm ' {
+          Select Locator Events (DECSLE).
+          Valid values for the first (and any additional parameters)
+          are:
+            Ps = 0  -> only respond to explicit host requests (DECRQLP).
+                       (This is default).  It also cancels any filter
+                       rectangle.
+            Ps = 1  -> report button down transitions.
+            Ps = 2  -> do not report button down transitions.
+            Ps = 3  -> report button up transitions.
+            Ps = 4  -> do not report button up transitions.
+CSI Pt; Pl; Pb; Pr $ {
+          Selective Erase Rectangular Area (DECSERA), VT400 and up.
+            Pt; Pl; Pb; Pr denotes the rectangle.
+CSI Ps ' |
+          Request Locator Position (DECRQLP).
+          Valid values for the parameter are:
+            Ps = 0 , 1 or omitted -> transmit a single DECLRP locator
+          report.
+
+          If Locator Reporting has been enabled by a DECELR, xterm will
+          respond with a DECLRP Locator Report.  This report is also
+          generated on button up and down events if they have been
+          enabled with a DECSLE, or when the locator is detected outside
+          of a filter rectangle, if filter rectangles have been enabled
+          with a DECEFR.
+
+            -> CSI Pe ; Pb ; Pr ; Pc ; Pp &  w
+
+          Parameters are [event;button;row;column;page].
+          Valid values for the event:
+            Pe = 0  -> locator unavailable - no other parameters sent.
+            Pe = 1  -> request - xterm received a DECRQLP.
+            Pe = 2  -> left button down.
+            Pe = 3  -> left button up.
+            Pe = 4  -> middle button down.
+            Pe = 5  -> middle button up.
+            Pe = 6  -> right button down.
+            Pe = 7  -> right button up.
+            Pe = 8  -> M4 button down.
+            Pe = 9  -> M4 button up.
+            Pe = 1 0  -> locator outside filter rectangle.
+          The "button" parameter is a bitmask indicating which buttons
+          are pressed:
+            Pb = 0  <- no buttons down.
+            Pb & 1  <- right button down.
+            Pb & 2  <- middle button down.
+            Pb & 4  <- left button down.
+            Pb & 8  <- M4 button down.
+          The "row" and "column" parameters are the coordinates of the
+          locator position in the xterm window, encoded as ASCII deci-
+          mal.
+          The "page" parameter is not used by xterm.
+CSI Pm ' }
+          Insert Ps Column(s) (default = 1) (DECIC), VT420 and up.
+CSI Pm ' ~
+          Delete Ps Column(s) (default = 1) (DECDC), VT420 and up.
+
+
+

Operating System Commands

+
+OSC Ps ; Pt BEL
+OSC Ps ; Pt ST
+          Set Text Parameters.  For colors and font, if Pt is a "?", the
+          control sequence elicits a response which consists of the con-
+          trol sequence which would set the corresponding value.  The
+          dtterm control sequences allow you to determine the icon name
+          and window title.
+            Ps = 0  -> Change Icon Name and Window Title to Pt.
+            Ps = 1  -> Change Icon Name to Pt.
+            Ps = 2  -> Change Window Title to Pt. (same as 0)
+            Ps = 3  -> Set X property on top-level window.  Pt should be
+          in the form "prop=value", or just "prop" to delete the prop-
+          erty
+            Ps = 81-85  -> Change text of a button 1 through 5. Empty string
+          makes the button appear disabled (grayed out).
+            Ps = 91-95  -> Change report message of a button 1 through 5 (max 10 bytes).
+          Any characters except NUL, ESC, BEL, CAN and SUB are supported.
+            Ps = 4 ; c; spec -> Change Color Number c to the color spec-
+          ified by spec.  This can be a name or RGB specification as per
+          XParseColor.  Any number of c/spec pairs may be given.  The
+          color numbers correspond to the ANSI colors 0-7, their bright
+          versions 8-15, and if supported, the remainder of the 88-color
+          or 256-color table.
+
+          If a "?" is given rather than a name or RGB specification,
+          xterm replies with a control sequence of the same form which
+          can be used to set the corresponding color.  Because more than
+          one pair of color number and specification can be given in one
+          control sequence, xterm can make more than one reply.
+
+            Ps = 5 ; c; spec -> Change Special Color Number c to the
+          color specified by spec.  This can be a name or RGB specifica-
+          tion as per XParseColor.  Any number of c/spec pairs may be
+          given.  The special colors can also be set by adding the maxi-
+          mum number of colors to these codes in an OSC 4  control:
+
+              Pc = 0  <- resource colorBD (BOLD).
+              Pc = 1  <- resource colorUL (UNDERLINE).
+              Pc = 2  <- resource colorBL (BLINK).
+              Pc = 3  <- resource colorRV (REVERSE).
+              Pc = 4  <- resource colorIT (ITALIC).
+
+            Ps = 6 ; c; f -> Enable/disable Special Color Number c.  OSC
+          6  is the same as OSC 1 0 6 .
+
+          The 10 colors (below) which may be set or queried using 1 0
+          through 1 9  are denoted dynamic colors, since the correspond-
+          ing control sequences were the first means for setting xterm's
+          colors dynamically, i.e., after it was started.  They are not
+          the same as the ANSI colors.  These controls may be disabled
+          using the allowColorOps resource.  At least one parameter is
+          expected for Pt.  Each successive parameter changes the next
+          color in the list.  The value of Ps tells the starting point
+          in the list.  The colors are specified by name or RGB specifi-
+          cation as per XParseColor.
+
+          If a "?" is given rather than a name or RGB specification,
+          xterm replies with a control sequence of the same form which
+          can be used to set the corresponding dynamic color.  Because
+          more than one pair of color number and specification can be
+          given in one control sequence, xterm can make more than one
+          reply.
+
+            Ps = 1 0  -> Change VT100 text foreground color to Pt.
+            Ps = 1 1  -> Change VT100 text background color to Pt.
+            Ps = 1 2  -> Change text cursor color to Pt.
+            Ps = 1 3  -> Change mouse foreground color to Pt.
+            Ps = 1 4  -> Change mouse background color to Pt.
+            Ps = 1 5  -> Change Tektronix foreground color to Pt.
+            Ps = 1 6  -> Change Tektronix background color to Pt.
+            Ps = 1 7  -> Change highlight background color to Pt.
+            Ps = 1 8  -> Change Tektronix cursor color to Pt.
+            Ps = 1 9  -> Change highlight foreground color to Pt.
+
+            Ps = 4 6  -> Change Log File to Pt.  (This is normally dis-
+          abled by a compile-time option).
+
+            Ps = 5 0  -> Set Font to Pt.  These controls may be disabled
+          using the allowFontOps resource.  If Pt begins with a "#",
+          index in the font menu, relative (if the next character is a
+          plus or minus sign) or absolute.  A number is expected but not
+          required after the sign (the default is the current entry for
+          relative, zero for absolute indexing).
+          The same rule (plus or minus sign, optional number) is used
+          when querying the font.  The remainder of Pt is ignored.
+          A font can be specified after a "#" index expression, by
+          adding a space and then the font specifier.
+          If the "TrueType Fonts" menu entry is set (the renderFont
+          resource), then this control sets/queries the faceName
+          resource.
+
+            Ps = 5 1  -> reserved for Emacs shell.
+
+            Ps = 5 2  -> Manipulate Selection Data.  These controls may
+          be disabled using the allowWindowOps resource.  The parameter
+          Pt is parsed as
+               Pc; Pd
+          The first, Pc, may contain zero or more characters from the
+          set c  p  s  0  1  2  3  4  5  6  7 .  It is used to construct
+          a list of selection parameters for clipboard, primary, select,
+          or cut buffers 0 through 7 respectively, in the order given.
+          If the parameter is empty, xterm uses s 0 , to specify the
+          configurable primary/clipboard selection and cut buffer 0.
+          The second parameter, Pd, gives the selection data.  Normally
+          this is a string encoded in base64.  The data becomes the new
+          selection, which is then available for pasting by other appli-
+          cations.
+          If the second parameter is a ? , xterm replies to the host
+          with the selection data encoded using the same protocol.
+          If the second parameter is neither a base64 string nor ? ,
+          then the selection is cleared.
+
+            Ps = 1 0 4 ; c -> Reset Color Number c.  It is reset to the
+          color specified by the corresponding X resource.  Any number
+          of c parameters may be given.  These parameters correspond to
+          the ANSI colors 0-7, their bright versions 8-15, and if sup-
+          ported, the remainder of the 88-color or 256-color table.  If
+          no parameters are given, the entire table will be reset.
+
+            Ps = 1 0 5 ; c -> Reset Special Color Number c.  It is reset
+          to the color specified by the corresponding X resource.  Any
+          number of c parameters may be given.  These parameters corre-
+          spond to the special colors which can be set using an OSC 5
+          control (or by adding the maximum number of colors using an
+          OSC 4  control).
+
+            Ps = 1 0 6 ; c; f -> Enable/disable Special Color Number c.
+          The second parameter tells xterm to enable the corresponding
+          color mode if nonzero, disable it if zero.
+
+              Pc = 0  <- resource colorBDMode (BOLD).
+              Pc = 1  <- resource colorULMode (UNDERLINE).
+              Pc = 2  <- resource colorBLMode (BLINK).
+              Pc = 3  <- resource colorRVMode (REVERSE).
+              Pc = 4  <- resource colorITMode (ITALIC).
+              Pc = 5  <- resource colorAttrMode (Override ANSI).
+
+          The dynamic colors can also be reset to their default
+          (resource) values:
+            Ps = 1 1 0  -> Reset VT100 text foreground color.
+            Ps = 1 1 1  -> Reset VT100 text background color.
+            Ps = 1 1 2  -> Reset text cursor color.
+            Ps = 1 1 3  -> Reset mouse foreground color.
+            Ps = 1 1 4  -> Reset mouse background color.
+            Ps = 1 1 5  -> Reset Tektronix foreground color.
+            Ps = 1 1 6  -> Reset Tektronix background color.
+            Ps = 1 1 7  -> Reset highlight color.
+            Ps = 1 1 8  -> Reset Tektronix cursor color.
+            Ps = 1 1 9  -> Reset highlight foreground color.
+
+
+

Privacy Message

+
+PM Pt ST  xterm implements no PM  functions; Pt is ignored.  Pt need not
+          be printable characters.
+
+
+

Alt and Meta Keys

+ +

ESPTerm does not implement Alt and Meta keys, however it implements Ctrl and some Shift keys. +For more info, please move on to the next section.

+
+

+Many keyboards have keys labeled "Alt".  Few have keys labeled "Meta".
+However, xterm's default translations use the Meta modifier.  Common
+keyboard configurations assign the Meta modifier to an "Alt" key.  By
+using xmodmap one may have the modifier assigned to a different key, and
+have "real" alt and meta keys.  Here is an example:
+
+     ! put meta on mod3 to distinguish it from alt
+     keycode 64 = Alt_L
+     clear mod1
+     add mod1 = Alt_L
+     keycode 115 = Meta_L
+     clear mod3
+     add mod3 = Meta_L
+
+The metaSendsEscape resource (and altSendsEscape if altIsNotMeta is set)
+can be used to control the way the Meta modifier applies to ordinary
+keys unless the modifyOtherKeys resource is set:
+          - prefix a key with the ESC  character.
+          - shift the key from codes 0-127 to 128-255 by adding 128.
+
+The table shows the result for a given character "x" with modifiers
+according to the default translations with the resources set on or off.
+This assumes altIsNotMeta is set:
+
+       -----------------------------------------------------------
+       key          altSendsEscape   metaSendsEscape   result
+       -----------+----------------+-----------------+------------
+       x          | off            | off             | x
+       Meta-x     | off            | off             | shift
+       Alt-x      | off            | off             | shift
+       Alt+Meta-x | off            | off             | shift
+       x          | ON             | off             | x
+       Meta-x     | ON             | off             | shift
+       Alt-x      | ON             | off             | ESC  x
+       Alt+Meta-x | ON             | off             | ESC  shift
+       x          | off            | ON              | x
+       Meta-x     | off            | ON              | ESC  x
+       Alt-x      | off            | ON              | shift
+       Alt+Meta-x | off            | ON              | ESC  shift
+       x          | ON             | ON              | x
+       Meta-x     | ON             | ON              | ESC  x
+       Alt-x      | ON             | ON              | ESC  x
+       Alt+Meta-x | ON             | ON              | ESC  x
+       -----------+----------------+-----------------+------------
+
+
+

PC-Style Function Keys

+ + +

+ ESPTerm's implementation of key codes is mostly based on this section and on what is expected by real + applications. For example, the MicroMite Basic does not support SS3 codes, so there is a toggle for those + in the settings. +

+ +

A quick summary of keyboard support:

+ +
    +
  • Any graphic characters, including UTF-8 code points, can be sent directly from the keyboard. On Android, + the soft keyboard can be opened by tapping the keyboard icon beneath the screen.
  • +
  • Ctrl+A..Z produce low ASCII codes (A = 1, through Z = 26), Ctrl+],/,[,^,_ produce codes 27 through 31.
  • +
  • Cursor keys, Home and End can be switched between CSI and SS3 mode by DECCKM.
  • +
  • The codes sent by F1-F4, Home and End can be adjusted by toggles on the config page.
  • +
  • The numeric keypad, if your machine has it, can send alternate key codes if the terminal is switched + to "Application Keypad Mode". This is described below, look for DECKPAM and DECKPNM
  • +
+ +

+ In general, the best way to check what codes are sent is to look at the UART output with an + application like GtkTerm or PuTTY, if they can show the codes without interpreting them. + Alternatively, connect ESPTerm to a Linux machine, start agetty on the serial port, + run cat in shell and press they keys you're interested in. It will first show them + as plaintext, then interpret them when you press enter. Incidentally, this can also be used + to test escape sequences and application support. ESPTerm is known to run eg. mc, neovim or nano without issues. +

+
+ +
+If xterm does minimal translation of the function keys, it usually does
+this with a PC-style keyboard, so PC-style function keys result.  Sun
+keyboards are similar to PC keyboards.  Both have cursor and scrolling
+operations printed on the keypad, which duplicate the smaller cursor and
+scrolling keypads.
+
+X does not predefine NumLock (used for VT220 keyboards) or Alt (used as
+an extension for the Sun/PC keyboards) as modifiers.  These keys are
+recognized as modifiers when enabled by the numLock resource, or by the
+"DECSET 1 0 3 5 " control sequence.
+
+The cursor keys transmit the following escape sequences depending on the
+mode specified via the DECCKM escape sequence.
+
+                  Key            Normal     Application
+                  -------------+----------+-------------
+                  Cursor Up    | CSI A    | SS3 A
+                  Cursor Down  | CSI B    | SS3 B
+                  Cursor Right | CSI C    | SS3 C
+                  Cursor Left  | CSI D    | SS3 D
+                  -------------+----------+-------------
+
+The home- and end-keys (unlike PageUp and other keys also on the 6-key
+editing keypad) are considered "cursor keys" by xterm.  Their mode is
+also controlled by the DECCKM escape sequence:
+
+                    Key        Normal     Application
+                    ---------+----------+-------------
+                    Home     | CSI H    | SS3 H
+                    End      | CSI F    | SS3 F
+                    ---------+----------+-------------
+
+The application keypad transmits the following escape sequences depend-
+ing on the mode specified via the DECKPNM and DECKPAM escape sequences.
+Use the NumLock key to override the application mode.
+
+Not all keys are present on the Sun/PC keypad (e.g., PF1, Tab), but are
+supported by the program.
+
+      Key              Numeric    Application   Terminfo   Termcap
+      ---------------+----------+-------------+----------+----------
+      Space          | SP       | SS3 SP      | -        | -
+      Tab            | TAB      | SS3 I       | -        | -
+      Enter          | CR       | SS3 M       | kent     | @8
+      PF1            | SS3 P    | SS3 P       | kf1      | k1
+      PF2            | SS3 Q    | SS3 Q       | kf2      | k2
+      PF3            | SS3 R    | SS3 R       | kf3      | k3
+      PF4            | SS3 S    | SS3 S       | kf4      | k4
+      * (multiply)   | *        | SS3 j       | -        | -
+      + (add)        | +        | SS3 k       | -        | -
+      , (comma)      | ,        | SS3 l       | -        | -
+      - (minus)      | -        | SS3 m       | -        | -
+      . (Delete)     | .        | CSI 3 ~     | -        | -
+      / (divide)     | /        | SS3 o       | -        | -
+      0 (Insert)     | 0        | CSI 2 ~     | -        | -
+      1 (End)        | 1        | SS3 F       | kc1      | K4
+      2 (DownArrow)  | 2        | CSI B       | -        | -
+      3 (PageDown)   | 3        | CSI 6 ~     | kc3      | K5
+      4 (LeftArrow)  | 4        | CSI D       | -        | -
+      5 (Begin)      | 5        | CSI E       | kb2      | K2
+      6 (RightArrow) | 6        | CSI C       | -        | -
+      7 (Home)       | 7        | SS3 H       | ka1      | K1
+      8 (UpArrow)    | 8        | CSI A       | -        | -
+      9 (PageUp)     | 9        | CSI 5 ~     | ka3      | K3
+      = (equal)      | =        | SS3 X       | -        | -
+      ---------------+----------+-------------+----------+----------
+
+They also provide 12 function keys, as well as a few other special-pur-
+pose keys:
+
+                       Key        Escape Sequence
+                       ---------+-----------------
+                       F1       | SS3 P
+                       F2       | SS3 Q
+                       F3       | SS3 R
+                       F4       | SS3 S
+                       F5       | CSI 1 5 ~
+                       F6       | CSI 1 7 ~
+                       F7       | CSI 1 8 ~
+                       F8       | CSI 1 9 ~
+                       F9       | CSI 2 0 ~
+                       F10      | CSI 2 1 ~
+                       F11      | CSI 2 3 ~
+                       F12      | CSI 2 4 ~
+                       ---------+-----------------
+
+Note that F1 through F4 are prefixed with SS3 , while the other keys are
+prefixed with CSI .  Older versions of xterm implement different escape
+sequences for F1 through F4, with a CSI  prefix.  These can be activated
+by setting the oldXtermFKeys resource.  However, since they do not cor-
+respond to any hardware terminal, they have been deprecated.  (The DEC
+VT220 reserves F1 through F5 for local functions such as Setup).
+
+                       Key        Escape Sequence
+                       ---------+-----------------
+                       F1       | CSI 1 1 ~
+                       F2       | CSI 1 2 ~
+                       F3       | CSI 1 3 ~
+                       F4       | CSI 1 4 ~
+                       ---------+-----------------
+
+In normal mode, i.e., a Sun/PC keyboard when the sunKeyboard resource is
+false (and none of the other keyboard resources such as oldXtermFKeys
+resource is set), xterm encodes function key modifiers as parameters
+appended before the final character of the control sequence.  As a spe-
+cial case, the SS3  sent before F1 through F4 is altered to CSI  when
+sending a function key modifier as a parameter.
+Generally, ESPTerm supports only Shift adn Ctrl in some combinations.
+                    Code     Modifiers
+                  ---------+---------------------------
+                     2     | Shift
+                     3     | Alt
+                     4     | Shift + Alt
+                     5     | Control
+                     6     | Shift + Control
+                     7     | Alt + Control
+                     8     | Shift + Alt + Control
+                     9     | Meta
+                     10    | Meta + Shift
+                     11    | Meta + Alt
+                     12    | Meta + Alt + Shift
+                     13    | Meta + Ctrl
+                     14    | Meta + Ctrl + Shift
+                     15    | Meta + Ctrl + Alt
+                     16    | Meta + Ctrl + Alt + Shift
+                  ---------+---------------------------
+
+For example, shift-F5 would be sent as CSI 1 5 ; 2 ~
+
+If the alwaysUseMods resource is set, the Meta modifier also is recog-
+nized, making parameters 9 through 16.
+
+
+

VT220-Style Function Keys

+
+However, xterm is most useful as a DEC VT102 or VT220 emulator.  Set the
+sunKeyboard resource to true to force a Sun/PC keyboard to act like a
+VT220 keyboard.
+Some information here may be irrelevant for ESPTerm.
+The VT102/VT220 application keypad transmits unique escape sequences in
+application mode, which are distinct from the cursor and scrolling key-
+pad:
+
+                  Key            Numeric    Application
+                  -------------+----------+-------------
+                  Space        | SP       | SS3 SP
+                  Tab          | TAB      | SS3 I
+                  Enter        | CR       | SS3 M
+                  PF1          | SS3 P    | SS3 P
+                  PF2          | SS3 Q    | SS3 Q
+                  PF3          | SS3 R    | SS3 R
+                  PF4          | SS3 S    | SS3 S
+                  * (multiply) | *        | SS3 j
+                  + (add)      | +        | SS3 k
+                  , (comma)    | ,        | SS3 l
+                  - (minus)    | -        | SS3 m
+                  . (period)   | .        | SS3 n
+                  / (divide)   | /        | SS3 o
+                  0            | 0        | SS3 p
+                  1            | 1        | SS3 q
+                  2            | 2        | SS3 r
+                  3            | 3        | SS3 s
+                  4            | 4        | SS3 t
+                  5            | 5        | SS3 u
+                  6            | 6        | SS3 v
+                  7            | 7        | SS3 w
+                  8            | 8        | SS3 x
+                  9            | 9        | SS3 y
+                  = (equal)    | =        | SS3 X
+                  -------------+----------+-------------
+
+The VT220 provides a 6-key editing keypad, which is analogous to that on
+the PC keyboard.  It is not affected by DECCKM or DECKPNM/DECKPAM:
+
+                   Key        Normal     Application
+                   ---------+----------+-------------
+                   Insert   | CSI 2 ~  | CSI 2 ~
+                   Delete   | CSI 3 ~  | CSI 3 ~
+                   Home     | CSI 1 ~  | CSI 1 ~
+                   End      | CSI 4 ~  | CSI 4 ~
+                   PageUp   | CSI 5 ~  | CSI 5 ~
+                   PageDown | CSI 6 ~  | CSI 6 ~
+                   ---------+----------+-------------
+
+The VT220 provides 8 additional function keys.  With a Sun/PC keyboard,
+access these keys by Control/F1 for F13, etc.
+
+                       Key        Escape Sequence
+                       ---------+-----------------
+                       F13      | CSI 2 5 ~
+                       F14      | CSI 2 6 ~
+                       F15      | CSI 2 8 ~
+                       F16      | CSI 2 9 ~
+                       F17      | CSI 3 1 ~
+                       F18      | CSI 3 2 ~
+                       F19      | CSI 3 3 ~
+                       F20      | CSI 3 4 ~
+                       ---------+-----------------
+
+
+

VT52-Style Function Keys

+
+VT52 modes are summarily not implemented in ESPTerm.
+A VT52 does not have function keys, but it does have a numeric keypad
+and cursor keys.  They differ from the other emulations by the prefix.
+Also, the cursor keys do not change:
+
+                   Key            Normal/Application
+                   -------------+--------------------
+                   Cursor Up    | ESC A
+                   Cursor Down  | ESC B
+                   Cursor Right | ESC C
+                   Cursor Left  | ESC D
+                   -------------+--------------------
+
+The keypad is similar:
+
+                  Key            Numeric    Application
+                  -------------+----------+-------------
+                  Space        | SP       | ESC ? SP
+                  Tab          | TAB      | ESC ? I
+                  Enter        | CR       | ESC ? M
+                  PF1          | ESC P    | ESC P
+                  PF2          | ESC Q    | ESC Q
+                  PF3          | ESC R    | ESC R
+                  PF4          | ESC S    | ESC S
+                  * (multiply) | *        | ESC ? j
+                  + (add)      | +        | ESC ? k
+                  , (comma)    | ,        | ESC ? l
+                  - (minus)    | -        | ESC ? m
+                  . (period)   | .        | ESC ? n
+                  / (divide)   | /        | ESC ? o
+                  0            | 0        | ESC ? p
+                  1            | 1        | ESC ? q
+                  2            | 2        | ESC ? r
+                  3            | 3        | ESC ? s
+                  4            | 4        | ESC ? t
+                  5            | 5        | ESC ? u
+                  6            | 6        | ESC ? v
+                  7            | 7        | ESC ? w
+                  8            | 8        | ESC ? x
+                  9            | 9        | ESC ? y
+                  = (equal)    | =        | ESC ? X
+                  -------------+----------+-------------
+
+
+

Sun-Style Function Keys

+

+The xterm program provides support for Sun keyboards more directly, by a
+menu toggle that causes it to send Sun-style function key codes rather
+than VT220.  Note, however, that the sun and VT100 emulations are not
+really compatible.  For example, their wrap-margin behavior differs.
+
+Only function keys are altered; keypad and cursor keys are the same.
+The emulation responds identically.  See the xterm-sun terminfo entry
+for details.
+
+
+

HP-Style Function Keys

+

+Similarly, xterm can be compiled to support HP keyboards.  See the
+xterm-hp terminfo entry for details.
+
+
+

The Alternate Screen Buffer

+ +ESPTerm implements this feature only partly due to RAM constraints. See CSI ? 1 0 4 7 h (above) for more details. +
+Xterm maintains two screen buffers.  The normal screen buffer allows you
+to scroll back to view saved lines of output up to the maximum set by
+the saveLines resource.  The alternate screen buffer is exactly as large
+as the display, contains no additional saved lines.  When the alternate
+screen buffer is active, you cannot scroll back to view saved lines.
+Xterm provides control sequences and menu entries for switching between
+the two.
+
+Most full-screen applications use terminfo or termcap to obtain strings
+used to start/stop full-screen mode, i.e., smcup and rmcup for terminfo,
+or the corresponding ti and te for termcap.  The titeInhibit resource
+removes the ti and te strings from the TERMCAP string which is set in
+the environment for some platforms.  That is not done when xterm is
+built with terminfo libraries because terminfo does not provide the
+whole text of the termcap data in one piece.  It would not work for ter-
+minfo anyway, since terminfo data is not passed in environment vari-
+ables; setting an environment variable in this manner would have no
+effect on the application's ability to switch between normal and alter-
+nate screen buffers.  Instead, the newer private mode controls (such as
+1 0 4 9 ) for switching between normal and alternate screen buffers sim-
+ply disable the switching.  They add other features such as clearing the
+display for the same reason: to make the details of switching indepen-
+dent of the application that requests the switch.
+
+
+

Bracketed Paste Mode

+

+When bracketed paste mode is set, pasted text is bracketed with control
+sequences so that the program can differentiate pasted text from typed-
+in text.  When bracketed paste mode is set, the program will receive:
+   ESC [ 2 0 0 ~ ,
+followed by the pasted text, followed by
+   ESC [ 2 0 1 ~ .
+
+
+

Title Modes

+

+The window- and icon-labels can be set or queried using control
+sequences.  As a VT220-emulator, xterm "should" limit the character
+encoding for the corresponding strings to ISO-8859-1.  Indeed, it used
+to be the case (and was documented) that window titles had to be
+ISO-8859-1.  This is no longer the case.  However, there are many appli-
+cations which still assume that titles are set using ISO-8859-1.  So
+that is the default behavior.
+
+If xterm is running with UTF-8 encoding, it is possible to use window-
+and icon-labels encoded using UTF-8.  That is because the underlying X
+libraries (and many, but not all) window managers support this feature.
+
+The utf8Title X resource setting tells xterm to disable a reconversion
+of the title string back to ISO-8859-1, allowing the title strings to be
+interpreted as UTF-8.  The same feature can be enabled using the title
+mode control sequence described in this summary.
+
+Separate from the ability to set the titles, xterm provides the ability
+to query the titles, returning them either in ISO-8859-1 or UTF-8.  This
+choice is available only while xterm is using UTF-8 encoding.
+
+Finally, the characters sent to, or returned by a title control are less
+constrained than the rest of the control sequences.  To make them more
+manageable (and constrained), for use in shell scripts, xterm has an
+optional feature which decodes the string from hexadecimal (for setting
+titles) or for encoding the title into hexadecimal when querying the
+value.
+
+
+

Mouse Tracking

+
+The VT widget can be set to send the mouse position and other informa-
+tion on button presses.  These modes are typically used by editors and
+other full-screen applications that want to make use of the mouse.
+
+There are two sets of mutually exclusive modes:
+o mouse protocol
+o protocol encoding
+
+The mouse protocols include DEC Locator mode, enabled by the DECELR CSI
+Ps ; Ps  '  z control sequence, and is not described here (control
+sequences are summarized above).  The remaining five modes of the mouse
+protocols are each enabled (or disabled) by a different parameter in the
+"DECSET CSI ? Pm h " or "DECRST CSI ? Pm l " control sequence.
+
+Manifest constants for the parameter values are defined in xcharmouse.h
+as follows:
+
+     #define SET_X10_MOUSE               9
+     #define SET_VT200_MOUSE             1000
+     #define SET_VT200_HIGHLIGHT_MOUSE   1001
+     #define SET_BTN_EVENT_MOUSE         1002
+     #define SET_ANY_EVENT_MOUSE         1003
+
+     #define SET_FOCUS_EVENT_MOUSE       1004
+
+     #define SET_EXT_MODE_MOUSE          1005
+     #define SET_SGR_EXT_MODE_MOUSE      1006
+     #define SET_URXVT_EXT_MODE_MOUSE    1015
+
+     #define SET_ALTERNATE_SCROLL        1007
+
+The motion reporting modes are strictly xterm extensions, and are not
+part of any standard, though they are analogous to the DEC VT200 DECELR
+locator reports.
+
+Normally, parameters (such as pointer position and button number) for
+all mouse tracking escape sequences generated by xterm encode numeric
+parameters in a single character as value+32.  For example, !  specifies
+the value 1.  The upper left character position on the terminal is
+denoted as 1,1.  This scheme dates back to X10, though the normal mouse-
+tracking (from X11) is more elaborate.
+
+
+

X10 compatbility mode

+
+X10 compatibility mode sends an escape sequence only on button press,
+encoding the location and the mouse button pressed.  It is enabled by
+specifying parameter 9 to DECSET.  On button press, xterm sends CSI M
+CbCxCy (6 characters).
+o Cb is button-1.
+o Cx and Cy are the x and y coordinates of the mouse when the button was
+  pressed.
+
+
+

Normal tracking mode

+
+Normal tracking mode sends an escape sequence on both button press and
+release.  Modifier key (shift, ctrl, meta) information is also sent.  It
+is enabled by specifying parameter 1000 to DECSET.  On button press or
+release, xterm sends CSI M CbCxCy.
+o The low two bits of Cb encode button information: 0=MB1 pressed, 1=MB2
+  pressed, 2=MB3 pressed, 3=release.
+o The next three bits encode the modifiers which were down when the but-
+  ton was pressed and are added together:  4=Shift, 8=Meta, 16=Control.
+  Note however that the shift and control bits are normally unavailable
+  because xterm uses the control modifier with mouse for popup menus,
+  and the shift modifier is used in the default translations for button
+  events.  The Meta modifier recognized by xterm is the mod1 mask, and
+  is not necessarily the "Meta" key (see xmodmap).
+o Cx and Cy are the x and y coordinates of the mouse event, encoded as
+  in X10 mode.
+
+
+

Wheel mice

+
+Wheel mice may return buttons 4 and 5.  Those buttons are represented by
+the same event codes as buttons 1 and 2 respectively, except that 64 is
+added to the event code.  Release events for the wheel buttons are not
+reported.  By default, the wheel mouse events are translated to scroll-
+back and scroll-forw actions.  Those actions normally scroll the whole
+window, as if the scrollbar was used.  However if Alternate Scroll mode
+is set, then cursor up/down controls are sent when the terminal is dis-
+playing the alternate screen.  The initial state of Alternate Scroll
+mode is set using the alternateScroll resource.
+
+
+

Highlight tracking

+

+Mouse highlight tracking notifies a program of a button press, receives
+a range of lines from the program, highlights the region covered by the
+mouse within that range until button release, and then sends the program
+the release coordinates.  It is enabled by specifying parameter 1001 to
+DECSET.  Highlighting is performed only for button 1, though other but-
+ton events can be received.
+
+Warning: use of this mode requires a cooperating program or it will hang
+xterm.
+
+On button press, the same information as for normal tracking is gener-
+ated; xterm then waits for the program to send mouse tracking informa-
+tion.  All X events are ignored until the proper escape sequence is
+received from the pty: CSI Ps ; Ps ; Ps ; Ps ; Ps T .  The parameters
+are func, startx, starty, firstrow, and lastrow.  func is non-zero to
+initiate highlight tracking and zero to abort.  startx and starty give
+the starting x and y location for the highlighted region.  The ending
+location tracks the mouse, but will never be above row firstrow and will
+always be above row lastrow.  (The top of the screen is row 1.)  When
+the button is released, xterm reports the ending position one of two
+ways:
+o if the start and end coordinates are the same locations:
+  CSI t CxCy.
+o otherwise:
+  CSI T CxCyCxCyCxCy.
+  The parameters are startx, starty, endx, endy, mousex, and mousey.
+  - startx, starty, endx, and endy give the starting and ending charac-
+    ter positions of the region.
+  - mousex and mousey give the location of the mouse at button up, which
+    may not be over a character.
+
+
+

Button-event tracking

+
+Button-event tracking is essentially the same as normal tracking, but
+xterm also reports button-motion events.  Motion events are reported
+only if the mouse pointer has moved to a different character cell.  It
+is enabled by specifying parameter 1002 to DECSET.  On button press or
+release, xterm sends the same codes used by normal tracking mode.
+o On button-motion events, xterm adds 32 to the event code (the third
+  character, Cb).
+o The other bits of the event code specify button and modifier keys as
+  in normal mode.  For example, motion into cell x,y with button 1 down
+  is reported as CSI M @ CxCy.  ( @  = 32 + 0 (button 1) + 32 (motion
+  indicator) ).  Similarly, motion with button 3 down is reported as CSI
+  M B CxCy.  ( B  = 32 + 2 (button 3) + 32 (motion indicator) ).
+
+
+

Any-event tracking

+
+Any-event mode is the same as button-event mode, except that all motion
+events are reported, even if no mouse button is down.  It is enabled by
+specifying 1003 to DECSET.
+
+
+

FocusIn/FocusOut

+This feature is planned for reporting when any clients are connected to the web interface +

+FocusIn/FocusOut can be combined with any of the mouse events since it
+uses a different protocol.  When set, it causes xterm to send CSI I
+when the terminal gains focus, and CSI O  when it loses focus.
+
+
+

Extended coordinates

+
+The original X10 mouse protocol limits the Cx and Cy ordinates to 223
+(=255 - 32).  Xterm supports more than one scheme for extending this
+range, by changing the protocol encoding:
+UTF-8 (1005)
+          This enables UTF-8 encoding for Cx and Cy under all tracking
+          modes, expanding the maximum encodable position from 223 to
+          2015.  For positions less than 95, the resulting output is
+          identical under both modes.  Under extended mouse mode, posi-
+          tions greater than 95 generate "extra" bytes which will con-
+          fuse applications which do not treat their input as a UTF-8
+          stream.  Likewise, Cb will be UTF-8 encoded, to reduce confu-
+          sion with wheel mouse events.
+          Under normal mouse mode, positions outside (160,94) result in
+          byte pairs which can be interpreted as a single UTF-8 charac-
+          ter; applications which do treat their input as UTF-8 will
+          almost certainly be confused unless extended mouse mode is
+          active.
+          This scheme has the drawback that the encoded coordinates will
+          not pass through luit unchanged, e.g., for locales using non-
+          UTF-8 encoding.
+SGR (1006)
+          The normal mouse response is altered to use CSI < followed by
+          semicolon-separated encoded button value, the Cx and Cy ordi-
+          nates and a final character which is M  for button press and m
+          for button release.
+          o The encoded button value in this case does not add 32 since
+            that was useful only in the X10 scheme for ensuring that the
+            byte containing the button value is a printable code.
+          o The modifiers are encoded in the same way.
+          o A different final character is used for button release to
+            resolve the X10 ambiguity regarding which button was
+            released.
+          The highlight tracking responses are also modified to an SGR-
+          like format, using the same SGR-style scheme and button-encod-
+          ings.
+URXVT (1015)
+          The normal mouse response is altered to use CSI followed by
+          semicolon-separated encoded button value, the Cx and Cy ordi-
+          nates and final character M .
+          This uses the same button encoding as X10, but printing it as
+          a decimal integer rather than as a single byte.
+          However, CSI M  can be mistaken for DL (delete lines), while
+          the highlight tracking CSI T  can be mistaken for SD (scroll
+          down), and the Window manipulation controls.  For these rea-
+          sons, the 1015 control is not recommended; it is not an
+          improvement over 1005.
+
+
+

Sixel Graphics

+

+If xterm is configured as VT240, VT241, VT330, VT340 or VT382 using the
+decTerminalID resource, it supports Sixel Graphics controls, a palleted
+bitmap graphics system using sets of six vertical pixels as the basic
+element.
+
+CSI Ps c  xterm responds to Send Device Attributes (Primary DA) with
+          these additional codes:
+            Ps = 4  -> Sixel graphics.
+CSI ? Pm h
+          xterm has these additional private Set Mode values:
+            Ps = 8 0  -> Sixel scrolling.
+            Ps = 1 0 7 0  -> use private color registers for each
+          graphic.
+            Ps = 8 4 5 2  -> Sixel scrolling leaves cursor to right of
+          graphic.
+DCS Pa; Pb; Ph q  Ps..Ps ST
+          See:
+
+               http://vt100.net/docs/vt3xx-gp/chapter14.html
+
+          The sixel data device control string has three positional
+          parameters, following the q  with sixel data.
+            Pa -> pixel aspect ratio
+            Pb -> background color option
+            Ph -> horizontal grid size (ignored).
+            Ps -> sixel data
+
+
+

ReGIS Graphics

+

+If xterm is configured as VT125, VT240, VT241, VT330 or VT340 using the
+decTerminalID resource, it supports Remote Graphic Instruction Set, a
+graphics description language.
+
+CSI Ps c  xterm responds to Send Device Attributes (Primary DA) with
+          these additional codes:
+            Ps = 3  -> ReGIS graphics.
+CSI ? Pm h
+          xterm has these additional private Set Mode values:
+            Ps = 1 0 7 0  -> use private color registers for each
+          graphic.
+DCS Pm p Pr..Pr ST
+          See:
+
+               http://vt100.net/docs/vt3xx-gp/chapter1.html
+
+          The ReGIS data device control string has one positional param-
+          eter with four possible values:
+            Pm = 0 -> resume command, use fullscreen mode.
+            Pm = 1 -> start new command, use fullscreen mode.
+            Pm = 2 -> resume command, use command display mode.
+            Pm = 3 -> start new command, use command display mode.
+
+
+

Tektronix 4014 Mode

+

+Most of these sequences are standard Tektronix 4014 control sequences.
+Graph mode supports the 12-bit addressing of the Tektronix 4014.  The
+major features missing are the write-through and defocused modes.  This
+document does not describe the commands used in the various Tektronix
+plotting modes but does describe the commands to switch modes.
+
+BEL       Bell (Ctrl-G).
+BS        Backspace (Ctrl-H).
+TAB       Horizontal Tab (Ctrl-I).
+LF        Line Feed or New Line (Ctrl-J).
+VT        Cursor up (Ctrl-K).
+FF        Form Feed or New Page (Ctrl-L).
+CR        Carriage Return (Ctrl-M).
+ESC ETX   Switch to VT100 Mode (ESC  Ctrl-C).
+ESC ENQ   Return Terminal Status (ESC  Ctrl-E).
+ESC FF    PAGE (Clear Screen) (ESC  Ctrl-L).
+ESC SO    Begin 4015 APL mode (ESC  Ctrl-N).  (This is ignored by
+          xterm).
+ESC SI    End 4015 APL mode (ESC  Ctrl-O).  (This is ignored by xterm).
+ESC ETB   COPY (Save Tektronix Codes to file COPYyyyy-mm-dd.hh:mm:ss).
+            ETB  (end transmission block) is the same as Ctrl-W.
+ESC CAN   Bypass Condition (ESC  Ctrl-X).
+ESC SUB   GIN mode (ESC  Ctrl-Z).
+ESC FS    Special Point Plot Mode (ESC  Ctrl-\).
+ESC 8     Select Large Character Set.
+ESC 9     Select #2 Character Set.
+ESC :     Select #3 Character Set.
+ESC ;     Select Small Character Set.
+OSC Ps ; Pt BEL
+          Set Text Parameters of VT window.
+            Ps = 0  -> Change Icon Name and Window Title to Pt.
+            Ps = 1  -> Change Icon Name to Pt.
+            Ps = 2  -> Change Window Title to Pt.
+            Ps = 4 6  -> Change Log File to Pt.  (This is normally dis-
+          abled by a compile-time option).
+ESC `     Normal Z Axis and Normal (solid) Vectors.
+ESC a     Normal Z Axis and Dotted Line Vectors.
+ESC b     Normal Z Axis and Dot-Dashed Vectors.
+ESC c     Normal Z Axis and Short-Dashed Vectors.
+ESC d     Normal Z Axis and Long-Dashed Vectors.
+ESC h     Defocused Z Axis and Normal (solid) Vectors.
+ESC i     Defocused Z Axis and Dotted Line Vectors.
+ESC j     Defocused Z Axis and Dot-Dashed Vectors.
+ESC k     Defocused Z Axis and Short-Dashed Vectors.
+ESC l     Defocused Z Axis and Long-Dashed Vectors.
+ESC p     Write-Thru Mode and Normal (solid) Vectors.
+ESC q     Write-Thru Mode and Dotted Line Vectors.
+ESC r     Write-Thru Mode and Dot-Dashed Vectors.
+ESC s     Write-Thru Mode and Short-Dashed Vectors.
+ESC t     Write-Thru Mode and Long-Dashed Vectors.
+FS        Point Plot Mode (Ctrl-\).
+GS        Graph Mode (Ctrl-]).
+RS        Incremental Plot Mode (Ctrl-^).
+US        Alpha Mode (Ctrl-_).
+
+
+

VT52 Mode

+

+Parameters for cursor movement are at the end of the ESC Y  escape
+sequence.  Each ordinate is encoded in a single character as value+32.
+For example, !  is 1.  The screen coordinate system is 0-based.
+
+ESC <     Exit VT52 mode (Enter VT100 mode).
+ESC =     Enter alternate keypad mode.
+ESC >     Exit alternate keypad mode.
+ESC A     Cursor up.
+ESC B     Cursor down.
+ESC C     Cursor right.
+ESC D     Cursor left.
+ESC F     Enter graphics mode.
+ESC G     Exit graphics mode.
+ESC H     Move the cursor to the home position.
+ESC I     Reverse line feed.
+ESC J     Erase from the cursor to the end of the screen.
+ESC K     Erase from the cursor to the end of the line.
+ESC Y Ps Ps
+          Move the cursor to given row and column.
+ESC Z     Identify.
+            -> ESC  /  Z  ("I am a VT52.").
+
+ + + + diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 0000000..83c2ca9 --- /dev/null +++ b/docs/index.html @@ -0,0 +1,73 @@ + + + +VT100 emulation - useful references + + + + + +

VT100 emulation resources collection Ondřej Hruška <ondra@ondrovo.com>, Sep 2017

+ +
+ +

VT100 emulation resources collection

+ +

This page lists some files and sites I found helpful when developing ESPTerm.

+ +

Web references

+ + + +

Collected files and memos

+ +

Those are some documents I've found on the internet while researching for ESPTerm +and preserve them here for reference should the original sources disappear.

+ + + +

[End of document]

diff --git a/docs/joesmith1984-ansicode.txt b/docs/joesmith1984-ansicode.txt new file mode 100644 index 0000000..12551e8 --- /dev/null +++ b/docs/joesmith1984-ansicode.txt @@ -0,0 +1,779 @@ +Summary of ANSI standards for ASCII terminals Joe Smith, 18-May-84 + +Contents: + 1. Overview and Definitions + 2. General rules for interpreting an ESCape Sequence + 3. General rules for interpreting a Control Sequence + 4. C0 and C1 control codes in numeric order + 5. Two and three-character ESCape Sequences in numeric order + 6. Control Sequences in numeric order + 7. VT100 emulation requirements + +The VT100 USER GUIDE and ANSI standard X3.64-1979 both list the ANSI ESCape +sequences in alphabetic order by mnemonic, but do not have a have a cross +reference in order by ASCII code. This paper lists the combination of all +definitions from the three ANSI standards in numeric order. For a description +of the advantages of using these standards, see the article "Toward +Standardized Video Terminals" in the April-1984 issue of BYTE magazine. + +ANSI X3.4-1977 defines the 7-bit ASCII character set (C0 and G0). It was +written in 1968, revised in 1977, and explains the decisions made in laying out +the ASCII code. In particular, it explains why ANSI chose to make ASCII +incompatible with EBCDIC in order to make it self-consistant. + +ANSI X3.41-1974 introduces the idea of an 8-bit ASCII character set (C1 and G1 +in addition to the existing C0 and G0). It describes how to use the 8-bit +features in a 7-bit environment. X3.41 defines the format of all ESCape +sequences, but defines only the 3-character ones with a parameter character +in the middle. These instruct the terminal how to interpret the C0, G0, C1, +and G1 characters (such as by selecting different character-set ROMs). + + Note: NAPLPS does videotex graphics by redefining the C1 set and + selecting alternate G0, G1, G2, and G3 sets. + See the February 1983 issue of BYTE magazine for details. + +ANSI X3.64-1979 defines the remaining ESCape sequences. It defines all the C1 +control characters, and specifies that certain two-character ESCape sequences +in the 7-bit environment are to act exactly like the 8-bit C1 control set. +X3.64 introduces the idea of a Control-Sequence, which starts with CSI +character, has an indefinite length, and is terminated by an alphabetic +character. The VT100 was one of the first terminals to implement this +standard. + +Definitions: + + Control Character - A single character with an ASCII code with the range + of 000 to 037 and 200 to 237 octal, 00 to 1F and 80 to 9F hex. + + Escape Sequence - A two or three character string staring with ESCape. + (Four or more character strings are allowed but not defined.) + + Control Sequence - A string starting with CSI (233 octal, 9B hex) or + with ESCape Left-Bracket, and terminated by an alphabetic character. + Any number of parameter characters (digits 0 to 9, semicolon, and + question mark) may appear within the Control Sequence. The terminating + character may be preceded by an intermediate character (such as space). + Character classifications: + +C0 Control 000-037 octal, 00-1F hex (G0 is 041-176 octal, 21-7E hex) +SPACE 040+240 octal, 20+A0 hex Always and everywhere a blank space +Intermediate 040-057 octal, 20-2F hex !"#$%&'()*+,-./ +Parameters 060-077 octal, 30-3F hex 0123456789:;<=>? +Uppercase 100-137 octal, 40-5F hex @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_ +Lowercase 140-176 octal, 60-7E hex `abcdefghijlkmnopqrstuvwxyz{|}~ +Alphabetic 100-176 octal, 40-7E hex (all of upper and lower case) +Delete 177 octal, 7F hex Always and everywhere ignored +C1 Control 200-237 octal, 80-9F hex 32 additional control characters +G1 Displayable 241-376 octal, A1-FE hex 94 additional displayable characters +Special 240+377 octal, A0+FF hex Same as SPACE and DELETE + +Note that in this paper, the terms uppercase, lowercase, and alphabetics +include more characters than just A to Z. + +------------------------------------------------------------------------------ + +General rules for interpreting an ESCape Sequence: + + An ESCape Sequence starts with the ESC character (033 octal, 1B hex). +The length of the ESCape Sequence depends on the character that immediately +follows the ESCape. + +If the next character is + C0 control: Interpret it first, then resume processing ESCape sequence. + Example: CR, LF, XON, and XOFF work as normal within an ESCape sequence. + Intermediate: Expect zero or more intermediates, a parameter terminates + a private function, an alphabetic terminates a standard sequence. + Example: ESC ( A defines standard character set, ESC ( 0 a DEC set. + Parameter: End of a private 2-character escape sequence. + Example: ESC = sets special keypad mode, ESC > clears it. + Uppercase: Translate it into a C1 control character and act on it. + Example: ESC D does indexes down, ESC M indexes up. (CSI is special) + Lowercase: End of a standard 2-character escape sequence. + Example: ESC c resets the terminal. + Delete: Ignore it, and continue interpreting the ESCape sequence + C1 and G1: Treat the same as their 7-bit counterparts + + Note that CSI is the two-character sequence ESCape left-bracket or the 8-bit +C1 code of 233 octal, 9B hex. CSI introduces a Control Sequence, which +continues until an alphabetic character is received. + +General rules for interpreting a Control Sequence: + +1) It starts with CSI, the Control Sequence Introducer. +2) It contains any number of parameter characters (0123456789:;<=>?). +3) It terminates with an alphabetic character. +4) Intermediate characters (if any) immediately precede the terminator. + +If the first character after CSI is one of "<=>?" (074-077 octal, 3C-3F hex), +then Control Sequence is to be interpreted according to private standards (such +as setting and resetting modes not defined by ANSI). The terminal should +expect any number of numeric parameters, separated by semicolons (073 octal, +3B hex). Only after the terminating alphabetic character is received should +the terminal act on the Control Sequence. + +============================================================================= + C0 set of 7-bit control characters (from ANSI X3.4-1977). + +Oct Hex Name * (* marks function used in DEC VT series or LA series terminals) +--- -- - --- - -------------------------------------------------------------- +000 00 @ NUL * Null filler, terminal should ignore this character +001 01 A SOH Start of Header +002 02 B STX Start of Text, implied end of header +003 03 C ETX End of Text, causes some terminal to respond with ACK or NAK +004 04 D EOT End of Transmission +005 05 E ENQ * Enquiry, causes terminal to send ANSWER-BACK ID +006 06 F ACK Acknowledge, usually sent by terminal in response to ETX +007 07 G BEL * Bell, triggers the bell, buzzer, or beeper on the terminal +010 08 H BS * Backspace, can be used to define overstruck characters +011 09 I HT * Horizontal Tabulation, move to next predetermined position +012 0A J LF * Linefeed, move to same position on next line (see also NL) +013 0B K VT * Vertical Tabulation, move to next predetermined line +014 0C L FF * Form Feed, move to next form or page +015 0D M CR * Carriage Return, move to first character of current line +016 0E N SO * Shift Out, switch to G1 (other half of character set) +017 0F O SI * Shift In, switch to G0 (normal half of character set) +020 10 P DLE Data Link Escape, interpret next control character specially +021 11 Q XON * (DC1) Terminal is allowed to resume transmitting +022 12 R DC2 Device Control 2, causes ASR-33 to activate paper-tape reader +023 13 S XOFF* (DC2) Terminal must pause and refrain from transmitting +024 14 T DC4 Device Control 4, causes ASR-33 to deactivate paper-tape reader +025 15 U NAK Negative Acknowledge, used sometimes with ETX and ACK +026 16 V SYN Synchronous Idle, used to maintain timing in Sync communication +027 17 W ETB End of Transmission block +030 18 X CAN * Cancel (makes VT100 abort current escape sequence if any) +031 19 Y EM End of Medium +032 1A Z SUB * Substitute (VT100 uses this to display parity errors) +033 1B [ ESC * Prefix to an ESCape sequence +034 1C \ FS File Separator +035 1D ] GS Group Separator +036 1E ^ RS * Record Separator (sent by VT132 in block-transfer mode) +037 1F _ US Unit Separator + +040 20 SP * Space (should never be defined to be otherwise) +177 7F DEL * Delete, should be ignored by terminal + +============================================================================== + C1 set of 8-bit control characters (from ANSI X3.64-1979) + +Oct Hex Name * (* marks function used in DEC VT series or LA series terminals) +--- -- - --- - -------------------------------------------------------------- +200 80 @ Reserved for future standardization +201 81 A Reserved +202 82 B Reserved +203 83 C Reserved +204 84 D IND * Index, moves down one line same column regardless of NL +205 85 E NEL * NEw Line, moves done one line and to first column (CR+LF) +206 86 F SSA Start of Selected Area to be sent to auxiliary output device +207 87 G ESA End of Selected Area to be sent to auxiliary output device +210 88 H HTS * Horizontal Tabulation Set at current position +211 89 I HTJ Hor Tab Justify, moves string to next tab position +212 8A J VTS Vertical Tabulation Set at current line +213 8B K PLD Partial Line Down (subscript) +214 8C L PLU Partial Line Up (superscript) +215 8D M RI * Reverse Index, go up one line, reverse scroll if necessary +216 8E N SS2 * Single Shift to G2 +217 8F O SS3 * Single Shift to G3 (VT100 uses this for sending PF keys) +220 90 P DCS * Device Control String, terminated by ST (VT125 enters graphics) +221 91 Q PU1 Private Use 1 +222 92 R PU2 Private Use 2 +223 93 S STS Set Transmit State +224 94 T CCH Cancel CHaracter, ignore previous character +225 95 U MW Message Waiting, turns on an indicator on the terminal +226 96 V SPA Start of Protected Area +227 97 W EPA End of Protected Area +230 98 X Reserved for for future standard +231 99 Y Reserved +232 9A Z * Reserved, but causes DEC terminals to respond with DA codes +233 9B [ CSI * Control Sequence Introducer (described in a seperate table) +234 9C \ ST * String Terminator (VT125 exits graphics) +235 9D ] OSC Operating System Command (reprograms intelligent terminal) +236 9E ^ PM Privacy Message (password verification), terminated by ST +237 9F _ APC Application Program Command (to word processor), term by ST + +============================================================================== + Character set selection sequences (from ANSI X3.41-1974) + All are 3 characters long (including the ESCape). Alphabetic characters + as 3rd character are defined by ANSI, parameter characters as 3rd character + may be interpreted differently by each terminal manufacturer. + +Oct Hex * (* marks function used in DEC VT series or LA series terminals) +--- -- -- - ------------------------------------------------------------------ +040 20 ANNOUNCER - Determines whether to use 7-bit or 8-bit ASCII + A G0 only will be used. Ignore SI, SO, and G1. + B G0 and G1 used internally. SI and SO affect G0, G1 is ignored. + C G0 and G1 in an 8-bit only environment. SI and SO are ignored. + D G0 and G1 are used, SI and SO affect G0. + E + F * 7-bit transmission, VT240/PRO350 sends CSI as two characters ESC [ + G * 8-bit transmission, VT240/PRO350 sends CSI as single 8-bit character +041 21 ! Select C0 control set (choice of 63 standard, 16 private) +042 22 " Select C1 control set (choice of 63 standard, 16 private) +043 23 # Translate next character to a special single character + #3 * DECDHL1 - Double height line, top half + #4 * DECDHL2 - Double height line, bottom half + #5 * DECSWL - Single width line + #6 * DECDWL - Double width line + #7 * DECHCP - Make a hardcopy of the graphics screen (GIGI,VT125,VT241) + #8 * DECALN - Alignment display, fill screen with "E" to adjust focus +044 24 $ MULTIBYTE CHARACTERS - Displayable characters require 2-bytes each +045 25 % SPECIAL INTERPRETATION - Such as 9-bit data +046 26 & Reserved for future standardization +047 27 ' Reserved for future standardization +050 28 ( * SCS - Select G0 character set (choice of 63 standard, 16 private) + (0 * DEC VT100 line drawing set (affects lowercase characters) + (1 * DEC Alternate character ROM set (RAM set on GIGI and VT220) + (2 * DEC Alternate character ROM set with line drawing + (5 * DEC Finnish on LA100 + (6 * DEC Norwegian/Danish on LA100 + (7 * DEC Swedish on LA100 + (9 * DEC French Canadian + (< * DEC supplemental graphics (everything not in USASCII) + (A * UKASCII (British pound sign) + (B * USASCII (American pound sign) + (C * ISO Finnish on LA120 + (E * ISO Norwegian/Danish on LA120 + (H * ISO Swedish on LA120 + (K * ISO German on LA100,LA120 + (R * ISO French on LA100,LA120 + (Y * ISO Italian on LA100 + (Z * ISO Spanish on LA100 +051 29 ) * SCS - Select G1 character set (choice of 63 standard, 16 private) + * (same character sets as listed under G0) +052 2A * * SCS - Select G2 character set + * (same character sets as listed under G0) +053 2B + * SCS - Select G3 character set + * (same character sets as listed under G0) +054 2C , SCS - Select G0 character set (additional 63+16 sets) +055 2D - SCS - Select G1 character set (additional 63+16 sets) +056 2E . SCS - Select G2 character set +057 2F / SCS - Select G3 character set + +============================================================================== + Private two-character escape sequences (allowed by ANSI X3.41-1974) + These can be defined differently by each terminal manufacturer. + +Oct Hex * (* marks function used in DEC VT series or LA series terminals) +--- -- - - ------------------------------------------------------------------ +060 30 0 +061 31 1 DECGON graphics on for VT105, DECHTS horiz tab set for LA34/LA120 +062 32 2 DECGOFF graphics off VT105, DECCAHT clear all horz tabs LA34/LA120 +063 33 3 DECVTS - set vertical tab for LA34/LA120 +064 34 4 DECCAVT - clear all vertical tabs for LA34/LA120 +065 35 5 * DECXMT - Host requests that VT132 transmit as if ENTER were pressed +066 36 6 +067 37 7 * DECSC - Save cursor position and character attributes +070 38 8 * DECRC - Restore cursor and attributes to previously saved position +071 39 9 +072 3A : +073 3B ; +074 3C < * DECANSI - Switch from VT52 mode to VT100 mode +075 3D = * DECKPAM - Set keypad to applications mode (ESCape instead of digits) +076 3E > * DECKPNM - Set keypad to numeric mode (digits intead of ESCape seq) +077 3F ? + + DCS Device Control Strings used by DEC terminals (ends with ST) + +Pp = Start ReGIS graphics (VT125, GIGI, VT240, PRO350) +Pq = Start SIXEL graphics (screen dump to LA34, LA100, screen load to VT125) +Pr = SET-UP data for GIGI, $PrVC0$\ disables both visible cursors. +Ps = Reprogram keys on the GIGI, $P0sDIR$\ makes keypad 0 send "DIR" + 0-9=digits on keypad, 10=ENTER, 11=minus, 12=comma, 13=period, + 14-17=PF1-PF4, 18-21=cursor keys. Enabled by $[?23h (PK1). +Pt = Start VT105 graphics on a VT125 + +============================================================================== + + Standard two-character escape sequences (defined by ANSI X3.64-1979) + +100 40 @ See description of C1 control characters + An ESCape followed by one of these uppercase characters is translated + to an 8-bit C1 control character before being interpreted. +220 90 P DCS - Device Control String, terminated by ST - see table above. +133 5B [ CSI - Control Sequence Introducer - see table below. +137 5F _ See description of C1 control characters + +============================================================================== + + Indepenent control functions (from Appendix E of X3.64-1977). + These four controls have the same meaning regardless of the current + definition of the C0 and C1 control sets. Each control is a two-character + ESCape sequence, the 2nd character is lowercase. + +Oct Hex * (* marks function used in DEC VT series or LA series terminals) +--- -- - - -------------------------------------------------------------------- +140 60 ` DMI - Disable Manual Input +141 61 a INT - INTerrupt the terminal and do special action +142 62 b EMI - Enable Manual Input +143 63 c * RIS - Reset to Initial State (VT100 does a power-on reset) + ... The remaining lowercase characters are reserved by ANSI. +153 6B k NAPLPS lock-shift G1 to GR +154 6C l NAPLPS lock-shift G2 to GR +155 6D m NAPLPS lock-shift G3 to GR +156 6E n * LS2 - Shift G2 to GL (extension of SI) VT240,NAPLPS +157 6F o * LS3 - Shift G3 to GL (extension of SO) VT240,NAPLPS + ... The remaining lowercase characters are reserved by ANSI. +174 7C | * LS3R - VT240 lock-shift G3 to GR +175 7D } * LS2R - VT240 lock-shift G2 to GR +176 7E ~ * LS1R - VT240 lock-shift G1 to GR + +============================================================================== + Control Sequences (defined by ANSI X3.64-1979) + +Control Sequences are started by either ESC [ or CSI and are terminated by an +"alphabetic" character (100 to 176 octal, 40 to 7E hex). Intermediate +characters are space through slash (40 to 57 octal, 20 to 2F hex) and parameter +characters are zero through question mark (60 to 77 octal, 30 to 3F hex, +including digits and semicolon). Parameters consist of zero or more decimal +numbers separated by semicolons. Leading zeros are optional, leading blanks +are not allowed. If no digits precede the final character, the default +parameter is used. Many functions treat a parameter of 0 as if it were 1. + +Oct Hex * (* marks function used in DEC VT series or LA series terminals) +--- -- - - -------------------------------------------------------------------- +100 40 @ ICH - Insert CHaracter + [10@ = Make room for 10 characters at current position +101 41 A * CUU - CUrsor Up + * [A = Move up one line, stop at top of screen, [9A = move up 9 +102 42 B * CUD - CUrsor Down + * [B = Move down one line, stop at bottom of screen +103 43 C * CUF - CUrsor Forward + * [C = Move forward one position, stop at right edge of screen +104 44 D * CUB - CUrsor Backward + * [D = Same as BackSpace, stop at left edge of screen +105 45 E CNL - Cursor to Next Line + [5E = Move to first position of 5th line down +106 46 F CPL - Cursor to Previous Line + [5F = Move to first position of 5th line previous +107 47 G CHA - Cursor Horizontal position Absolute + [40G = Move to column 40 of current line +110 48 H * CUP - CUrsor Position + * [H = Home, [24;80H = Row 24, Column 80 +111 49 I CHT - Cursor Horizontal Tabulation + [I = Same as HT (Control-I), [3I = Go forward 3 tabs +112 4A J * ED - Erase in Display (cursor does not move) + * [J = [0J = Erase from current position to end (inclusive) + * [1J = Erase from beginning to current position (inclusive) + * [2J = Erase entire display + * [?0J = Selective erase in display ([?1J, [?2J similar) +113 4B K * EL - Erase in Line (cursor does not move) + * [K = [0K = Erase from current position to end (inclusive) + * [1K = Erase from beginning to current position + * [2K = Erase entire current line + * [?0K = Selective erase to end of line ([?1K, [?2K similar) +114 4C L * IL - Insert Line, current line moves down (VT102 series) + [3L = Insert 3 lines if currently in scrolling region +115 4D M * DL - Delete Line, lines below current move up (VT102 series) + [2M = Delete 2 lines if currently in scrolling region +116 4E N EF - Erase in Field (as bounded by protected fields) + [0N, [1N, [2N act like [L but within currend field +117 4F O EA - Erase in qualified Area (defined by DAQ) + [0O, [1O, [2O act like [J but within current area +120 50 P * DCH - Delete Character, from current position to end of field + [4P = Delete 4 characters, VT102 series +121 51 Q SEM - Set Editing extent Mode (limits ICH and DCH) + [0Q = [Q = Insert/delete character affects rest of display + [1Q = ICH/DCH affect the current line only + [2Q = ICH/DCH affect current field (between tab stops) only + [3Q = ICH/DCH affect qualified area (between protected fields) +122 52 R * CPR - Cursor Position Report (from terminal to host) + * [24;80R = Cursor is positioned at line 24 column 80 +123 53 S SU - Scroll up, entire display is moved up, new lines at bottom + [3S = Move everything up 3 lines, bring in 3 new lines +124 54 T SD - Scroll down, new lines inserted at top of screen + [4T = Scroll down 4, bring previous lines back into view +125 55 U NP - Next Page (if terminal has more than 1 page of memory) + [2U = Scroll forward 2 pages +126 56 V PP - Previous Page (if terminal remembers lines scrolled off top) + [1V = Scroll backward 1 page +127 57 W CTC - Cursor Tabulation Control + [0W = Set horizontal tab for current line at current position + [1W = Set vertical tab stop for current line of current page + [2W = Clear horiz tab stop at current position of current line + [3W = Clear vert tab stop at current line of current page + [4W = Clear all horiz tab stops on current line only + [5W = Clear all horiz tab stops for the entire terminal + [6W = Clear all vert tabs stops for the entire terminal +130 58 X ECH - Erase CHaracter + [4X = Change next 4 characters to "erased" state +131 59 Y CVT - Cursor Vertical Tab + [2Y = Move forward to 2nd following vertical tab stop +132 5A Z CBT - Cursor Back Tab + [3Z = Move backwards to 3rd previous horizontal tab stop +133 5B [ Reserved for future standardization left bracket +134 5C \ Reserved reverse slant +135 5D ] Reserved right bracket +136 5E ^ Reserved circumflex +137 5F _ Reserved underscore +140 60 ` * HPA - Horizontal Position Absolute (depends on PUM) + [720` = Move to 720 decipoints (1 inch) from left margin + * [80` = Move to column 80 on LA120 +141 61 a * HPR - Horizontal Position Relative (depends on PUM) + [360a = Move 360 decipoints (1/2 inch) from current position + * [40a = Move 40 columns to right of current position on LA120 +142 62 b REP - REPeat previous displayable character + [80b = Repeat character 80 times +143 63 c * DA - Device Attributes + * [c = Terminal will identify itself + * [?1;2c = Terminal is saying it is a VT100 with AVO + * [>0c = Secondary DA request (distinguishes VT240 from VT220) +144 64 d * VPA - Vertical Position Absolute (depends on PUM) + [90d = Move to 90 decipoints (1/8 inch) from top margin + * [10d = Move to line 10 if before that else line 10 next page +145 65 e * VPR - Vertical Position Relative (depends on PUM) + [720e = Move 720 decipoints (1 inch) down from current position + * [6e = Advance 6 lines forward on LA120 +146 66 f * HVP - Horizontal and Vertical Position (depends on PUM) + [720,1440f = Move to 1 inch down and 2 inches over (decipoints) + * [24;80f = Move to row 24 column 80 if PUM is set to character +147 67 g * TBC - Tabulation Clear + * [0g = Clear horizontal tab stop at current position + * [1g = Clear vertical tab stop at current line (LA120) + * [2g = Clear all horizontal tab stops on current line only LA120 + * [3g = Clear all horizontal tab stops in the terminal +150 68 h * SM - Set Mode (. means permanently set on VT100) + [0h = Error, this command is ignored + * [1h = GATM - Guarded Area Transmit Mode, send all (VT132) + [2h = KAM - Keyboard Action Mode, disable keyboard input + [3h = CRM - Control Representation Mode, show all control chars + * [4h = IRM - Insertion/Replacement Mode, set insert mode (VT102) + [5h = SRTM - Status Report Transfer Mode, report after DCS + * [6h = ERM - ERasure Mode, erase protected and unprotected + [7h = VEM - Vertical Editing Mode, IL/DL affect previous lines + [8h, [9h are reserved + [10h = HEM - Horizontal Editing mode, ICH/DCH/IRM go backwards + [11h = PUM - Positioning Unit Mode, use decipoints for HVP/etc + . [12h = SRM - Send Receive Mode, transmit without local echo + [13h = FEAM - Format Effector Action Mode, FE's are stored + [14h = FETM - Format Effector Transfer Mode, send only if stored + [15h = MATM - Multiple Area Transfer Mode, send all areas + * [16h = TTM - Transmit Termination Mode, send scrolling region + [17h = SATM - Send Area Transmit Mode, send entire buffer + [18h = TSM - Tabulation Stop Mode, lines are independent + [19h = EBM - Editing Boundry Mode, all of memory affected + * [20h = LNM - Linefeed Newline Mode, LF interpreted as CR LF + * [?1h = DECCKM - Cursor Keys Mode, send ESC O A for cursor up + * [?2h = DECANM - ANSI Mode, use ESC < to switch VT52 to ANSI + * [?3h = DECCOLM - COLumn mode, 132 characters per line + * [?4h = DECSCLM - SCrolL Mode, smooth scrolling + * [?5h = DECSCNM - SCreeN Mode, black on white background + * [?6h = DECOM - Origin Mode, line 1 is relative to scroll region + * [?7h = DECAWM - AutoWrap Mode, start newline after column 80 + * [?8h = DECARM - Auto Repeat Mode, key will autorepeat + * [?9h = DECINLM - INterLace Mode, interlaced for taking photos + * [?10h = DECEDM - EDit Mode, VT132 is in EDIT mode + * [?11h = DECLTM - Line Transmit Mode, ignore TTM, send line + [?12h = ? + * [?13h = DECSCFDM - Space Compression/Field Delimiting on, + * [?14h = DECTEM - Transmit Execution Mode, transmit on ENTER + [?15h = ? + * [?16h = DECEKEM - Edit Key Execution Mode, EDIT key is local + [?17h = ? + * [?18h = DECPFF - Print FormFeed mode, send FF after printscreen + * [?19h = DECPEXT - Print Extent mode, print entire screen + * [?20h = OV1 - Overstrike, overlay characters on GIGI + * [?21h = BA1 - Local BASIC, GIGI to keyboard and screen + * [?22h = BA2 - Host BASIC, GIGI to host computer + * [?23h = PK1 - GIGI numeric keypad sends reprogrammable sequences + * [?24h = AH1 - Autohardcopy before erasing or rolling GIGI screen + * [?29h = - Use only the proper pitch for the LA100 font + * [?38h = DECTEK - TEKtronix mode graphics +151 69 i * MC - Media Copy (printer port on VT102) + * [0i = Send contents of text screen to printer + [1i = Fill screen from auxiliary input (printer's keyboard) + [2i = Send screen to secondary output device + [3i = Fill screen from secondary input device + * [4i = Turn on copying received data to primary output (VT125) + * [4i = Received data goes to VT102 screen, not to its printer + * [5i = Turn off copying received data to primary output (VT125) + * [5i = Received data goes to VT102's printer, not its screen + * [6i = Turn off copying received data to secondary output (VT125) + * [7i = Turn on copying received data to secondary output (VT125) + * [?0i = Graphics screen dump goes to graphics printer VT125,VT240 + * [?1i = Print cursor line, terminated by CR LF + * [?2i = Graphics screen dump goes to host computer VT125,VT240 + * [?4i = Disable auto print + * [?5i = Auto print, send a line at a time when linefeed received +152 6A j Reserved for future standardization +153 6B k Reserved for future standardization +154 6C l * RM - Reset Mode (. means permanently reset on VT100) + * [1l = GATM - Transmit only unprotected characters (VT132) + . [2l = KAM - Enable input from keyboard + . [3l = CRM - Control characters are not displayable characters + * [4l = IRM - Reset to replacement mode (VT102) + . [5l = SRTM - Report only on command (DSR) + * [6l = ERM - Erase only unprotected fields + . [7l = VEM - IL/DL affect lines after current line + [8l, [9l are reserved + . [10l = HEM - ICH and IRM shove characters forward, DCH pulls + . [11l = PUM - Use character positions for HPA/HPR/VPA/VPR/HVP + [12l = SRM - Local echo - input from keyboard sent to screen + . [13l = FEAM - HPA/VPA/SGR/etc are acted upon when received + . [14l = FETM - Format Effectors are sent to the printer + [15l = MATM - Send only current area if SATM is reset + * [16l = TTM - Transmit partial page, up to cursor position + [17l = SATM - Transmit areas bounded by SSA/ESA/DAQ + . [18l = TSM - Setting a tab stop on one line affects all lines + . [19l = EBM - Insert does not overflow to next page + * [20l = LNM - Linefeed does not change horizontal position + * [?1l = DECCKM - Cursor keys send ANSI cursor position commands + * [?2l = DECANM - Use VT52 emulation instead of ANSI mode + * [?3l = DECCOLM - 80 characters per line (erases screen) + * [?4l = DECSCLM - Jump scrolling + * [?5l = DECSCNM - Normal screen (white on black background) + * [?6l = DECOM - Line numbers are independent of scrolling region + * [?7l = DECAWM - Cursor remains at end of line after column 80 + * [?8l = DECARM - Keys do not repeat when held down + * [?9l = DECINLM - Display is not interlaced to avoid flicker + * [?10l = DECEDM - VT132 transmits all key presses + * [?11l = DECLTM - Send page or partial page depending on TTM + [?12l = ? + * [?13l = DECSCFDM - Don't suppress trailing spaces on transmit + * [?14l = DECTEM - ENTER sends ESC S (STS) a request to send + [?15l = ? + * [?16l = DECEKEM - EDIT key transmits either $[10h or $[10l + [?17l = ? + * [?18l = DECPFF - Don't send a formfeed after printing screen + * [?19l = DECPEXT - Print only the lines within the scroll region + * [?20l = OV0 - Space is destructive, replace not overstrike, GIGI + * [?21l = BA0 - No BASIC, GIGI is On-Line or Local + * [?22l = BA0 - No BASIC, GIGI is On-Line or Local + * [?23l = PK0 - Ignore reprogramming on GIGI keypad and cursors + * [?24l = AH0 - No auto-hardcopy when GIGI screen erased + * [?29l = Allow all character pitches on the LA100 + * [?38l = DECTEK - Ignore TEKtronix graphics commands +155 6D m * SGR - Set Graphics Rendition (affects character attributes) + * [0m = Clear all special attributes + * [1m = Bold or increased intensity + * [2m = Dim or secondary color on GIGI (superscript on XXXXXX) + [3m = Italic (subscript on XXXXXX) + * [4m = Underscore, [0;4m = Clear, then set underline only + * [5m = Slow blink + [6m = Fast blink (overscore on XXXXXX) + * [7m = Negative image, [0;1;7m = Bold + Inverse + [8m = Concealed (do not display character echoed locally) + [9m = Reserved for future standardization + * [10m = Select primary font (LA100) + * [11m - [19m = Selete alternate font (LA100 has 11 thru 14) + [20m = FRAKTUR (whatever that means) + * [22m = Cancel bold or dim attribute only (VT220) + * [24m = Cancel underline attribute only (VT220) + * [25m = Cancel fast or slow blink attribute only (VT220) + * [27m = Cancel negative image attribute only (VT220) + * [30m = Write with black, [40m = Set background to black (GIGI) + * [31m = Write with red, [41m = Set background to red + * [32m = Write with green, [42m = Set background to green + * [33m = Write with yellow, [43m = Set background to yellow + * [34m = Write with blue, [44m = Set background to blue + * [35m = Write with magenta, [45m = Set background to magenta + * [36m = Write with cyan, [46m = Set background to cyan + * [37m = Write with white, [47m = Set background to white + [38m, [39m, [48m, [49m are reserved +156 6E n * DSR - Device Status Report + * [0n = Terminal is ready, no malfunctions detected + [1n = Terminal is busy, retry later + [2n = Terminal is busy, it will send DSR when ready + * [3n = Malfunction, please try again + [4n = Malfunction, terminal will send DSR when ready + * [5n = Command to terminal to report its status + * [6n = Command to terminal requesting cursor position (CPR) + * [?15n = Command to terminal requesting printer status, returns + [?10n = OK, [?11n = not OK, [?13n = no printer. + * [?25n = "Are User Defined Keys Locked?" (VT220) +157 6F o DAQ - Define Area Qualification starting at current position + [0o = Accept all input, transmit on request + [1o = Protected and guarded, accept no input, do not transmit + [2o = Accept any printing character in this field + [3o = Numeric only field + [4o = Alphabetic (A-Z and a-z) only + [5o = Right justify in area + [3;6o = Zero fill in area + [7o = Set horizontal tab stop, this is the start of the field + [8o = Protected and unguarded, accept no input, do transmit + [9o = Space fill in area + +============================================================================== + + Private Control Sequences (allowed by ANSI X3.41-1974). + These take parameter strings and terminate with the last half of lowercase. + +Oct Hex * (* marks function used in DEC VT series or LA series terminals) +--- -- - - -------------------------------------------------------------------- +160 70 p * DECSTR - Soft Terminal Reset + [!p = Soft Terminal Reset +161 71 q * DECLL - Load LEDs + [0q = Turn off all, [?1;4q turns on L1 and L4, etc + [154;155;157q = VT100 goes bonkers + [2;23!q = Partial screen dump from GIGI to graphics printer + [0"q = DECSCA Select Character Attributes off + [1"q = DECSCA - designate set as non-erasable + [2"q = DECSCA - designate set as erasable +162 72 r * DECSTBM - Set top and bottom margins (scroll region on VT100) + [4;20r = Set top margin at line 4 and bottom at line 20 +163 73 s * DECSTRM - Set left and right margins on LA100,LA120 + [5;130s = Set left margin at column 5 and right at column 130 +164 74 t * DECSLPP - Set physical lines per page + [66t = Paper has 66 lines (11 inches at 6 per inch) +165 75 u * DECSHTS - Set many horizontal tab stops at once on LA100 + [9;17;25;33;41;49;57;65;73;81u = Set standard tab stops +166 76 v * DECSVTS - Set many vertical tab stops at once on LA100 + [1;16;31;45v = Set vert tabs every 15 lines +167 77 w * DECSHORP - Set horizontal pitch on LAxxx printers + [1w = 10 characters per inch, [2w = 12 characters per inch + [0w=10, [3w=13.2, [4w=16.5, [5w=5, [6w=6, [7w=6.6, [8w=8.25 +170 78 x * DECREQTPARM - Request terminal parameters + [3;5;2;64;64;1;0x = Report, 7 bit Even, 1200 baud, 1200 baud +171 79 y * DECTST - Invoke confidence test + [2;1y = Power-up test on VT100 series (and VT100 part of VT125) + [3;1y = Power-up test on GIGI (VK100) + [4;1y = Power-up test on graphics portion of VT125 +172 7A z * DECVERP - Set vertical pitch on LA100 + [1z = 6 lines per inch, [2z = 8 lines per inch + [0z=6, [3z=12, [4z=3, [5z=3, [6z=4 +173 7B { Private +174 7C | * DECTTC - Transmit Termination Character + [0| = No extra characters, [1| = terminate with FF +175 7D } * DECPRO - Define protected field on VT132 + [0} = No protection, [1;4;5;7} = Any attribute is protected + [254} = Characters with no attributes are protected +176 7E ~ * DECKEYS - Sent by special function keys + [1~=FIND, [2~=INSERT, [3~=REMOVE, [4~=SELECT, [5~=PREV, [6~=NEXT + [17~=F6...[34~=F20 ([23~=ESC,[24~=BS,[25~=LF,[28~=HELP,[29~=DO) +177 7F DELETE is always ignored + +============================================================================== + Control Sequences with intermediate characters (from ANSI X3.64-1979). + Note that there is a SPACE character before the terminating alphabetic. + +Oct Hex * (* marks function used in DEC VT series or LA series terminals) +--- -- - - -------------------------------------------------------------------- +100 40 @ SL - Scroll Left + [4 @ = Move everything over 4 columns, 4 new columns at right +101 41 A SR - Scroll Right + [2 A = Move everything over 2 columns, 2 new columns at left +102 42 B GSM - Graphic Size Modification + [110;50 B = Make 110% high, 50% wide +103 43 C GSS - Graphic Size Selection + [120 C = Make characters 120 decipoints (1/6 inch) high +104 44 D FNT - FoNT selection (used by SGR, [10m thru [19m) + [0;23 D = Make primary font be registered font #23 +105 45 E TSS - Thin Space Specification + [36 E = Define a thin space to be 36 decipoints (1/20 inch) +106 46 F JFY - JustiFY, done by the terminal/printer + [0 E = No justification + [1 E = Fill, bringing words up from next line if necessary + [2 E = Interword spacing, adjust spaces between words + [3 E = Letter spacing, adjust width of each letter + [4 E = Use hyphenation + [5 E = Flush left margin + [6 E = Center following text between margins (until [0 E) + [7 E = Flush right margin + [8 E = Italian form (underscore instead of hyphen) +107 47 G SPI - SPacing Increment (in decipoints) + [120;72 G = 6 per inch vertical, 10 per inch horizontal +110 48 H QUAD- Do quadding on current line of text (typography) + [0 H = Flush left, [1 H = Flush left and fill with leader + [2 H = Center, [3 H = Center and fill with leader + [4 H = Flush right, [5 H = Flush right and fill with leader +111 49 I Reserved for future standardization +157 67 o Reserved for future standardization +160 70 p Private use + ... May be defined by the printer manufacturer +176 7E ~ Private use +177 7F DELETE is always ignored + +============================================================================== + Minimum requirements for VT100 emulation: + +1) To act as a passive display, implement the 4 cursor commands, the 2 erase + commands, direct cursor addressing, and at least inverse characters. + The software should be capable of handling strings with 16 numeric parameters + with values in the range of 0 to 255. + + [A Move cursor up one row, stop if a top of screen + [B Move cursor down one row, stop if at bottom of screen + [C Move cursor forward one column, stop if at right edge of screen + [D Move cursor backward one column, stop if at left edge of screen + [H Home to row 1 column 1 (also [1;1H) + [J Clear from current position to bottom of screen + [K Clear from current position to end of line + [24;80H Position to line 24 column 80 (any line 1 to 24, any column 1 to 132) + [0m Clear attributes to normal characters + [7m Add the inverse video attribute to succeeding characters + [0;7m Set character attributes to inverse video only + +2) To enter data in VT100 mode, implement the 4 cursor keys and the 4 PF keys. + It must be possible to enter ESC, TAB, BS, DEL, and LF from the keyboard. + + [A Sent by the up-cursor key (alternately ESC O A) + [B Sent by the down-cursor key (alternately ESC O B) + [C Sent by the right-cursor key (alternately ESC O C) + [D Sent by the left-cursor key (alternately ESC O D) + OP PF1 key sends ESC O P + OQ PF2 key sends ESC O Q + OR PF3 key sends ESC O R + OS PF3 key sends ESC O S + [c Request for the terminal to identify itself + [?1;0c VT100 with memory for 24 by 80, inverse video character attribute + [?1;2c VT100 capable of 132 column mode, with bold+blink+underline+inverse + +3) When doing full-screen editing on a VT100, implement directed erase, the + numeric keypad in applications mode, and the limited scrolling region. + The latter is needed to do insert/delete line functions without rewriting + the screen. + + [0J Erase from current position to bottom of screen inclusive + [1J Erase from top of screen to current position inclusive + [2J Erase entire screen (without moving the cursor) + [0K Erase from current position to end of line inclusive + [1K Erase from beginning of line to current position inclusive + [2K Erase entire line (without moving cursor) + [12;24r Set scrolling region to lines 12 thru 24. If a linefeed or an + INDex is received while on line 24, the former line 12 is deleted + and rows 13-24 move up. If a RI (reverse Index) is received while + on line 12, a blank line is inserted there as rows 12-13 move down. + All VT100 compatible terminals (except GIGI) have this feature. + ESC = Set numeric keypad to applications mode + ESC > Set numeric keypad to numbers mode + OA Up-cursor key sends ESC O A after ESC = ESC [ ? 1 h + OB Down-cursor key sends ESC O B " " " + OC Right-cursor key sends ESC O B " " " + OB Left-cursor key sends ESC O B " " " + OM ENTER key sends ESC O M after ESC = + Ol COMMA on keypad sends ESC O l " " (that's lowercase L) + Om MINUS on keypad sends ESC O m " " + Op ZERO on keypad sends ESC O p " " + Oq ONE on keypad sends ESC O q " " + Or TWO on keypad sends ESC O r " " + Os THREE on keypad sends ESC O s " " + Ot FOUR on keypad sends ESC O t " " + Ou FIVE on keypad sends ESC O u " " + Ov SIX on keypad sends ESC O v " " + Ow SEVEN on keypad sends ESC O w " " + Ox EIGHT on keypad sends ESC O x " " + Oy NINE on keypad sends ESC O y " " + +4) If the hardware is capable of double width/double height: + + #3 Top half of a double-width double-height line + #4 Bottom half of a double-width double-height line + #5 Make line single-width (lines are set this way when cleared by ESC [ J) + #6 Make line double-width normal height (40 or 66 characters) + +5) If the terminal emulator is capable of insert/delete characters, +insert/delete lines, insert/replace mode, and can do a full-screen dump to +the printer (in text mode), then it should identify itself as a VT102 + + [c Request for the terminal to identify itself + [?6c VT102 (printer port, 132 column mode, and ins/del standard) + [1@ Insert a blank character position (shift line to the right) + [1P Delete a character position (shift line to the left) + [1L Insert blank line at current row (shift screen down) + [1M Delete the current line (shift screen up) + [4h Set insert mode, new characters shove existing ones to the right + [4l Reset insert mode, new characters replace existing ones + [0i Print screen (all 24 lines) to the printer + [4i All received data goes to the printer (nothing to the screen) + [5i All received data goes to the screen (nothing to the printer) + + +[End of ANSICODE.TXT] diff --git a/docs/shuford_terminal_vt100_codes_news.txt b/docs/shuford_terminal_vt100_codes_news.txt new file mode 100644 index 0000000..b05dbe9 --- /dev/null +++ b/docs/shuford_terminal_vt100_codes_news.txt @@ -0,0 +1,1216 @@ + vt100_codes_news.txt + =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= + + This information is largely derived from DEC document EK-VT100-UG-003, + the original manual for the VT100. + + Most so-called VT100 implementations (both stand-alone terminals and + PC emulators) actually implement more controls than are given here. + The minimal standard is really the slightly more advanced VT102 terminal. + + ...RSS + + =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= + +Path: cs.utk.edu!gatech!usenet.ins.cwru.edu!agate!doc.ic.ac.uk!pipex!sunic + !trane.uninett.no!news.eunet.no!nuug!news.eunet.fi!funic!nntp.hut.fi + !lk-hp-14.hut.fi!pev +From: pev@lk-hp-14.hut.fi (Petri Virekoski) +Newsgroups: comp.terminals +Subject: VT100 control info +Date: 11 Sep 1993 12:43:22 GMT +Organization: Helsinki University of Technology +Lines: 878 +Distribution: world +Message-ID: <26sh5a$oct@nntp.hut.fi> +NNTP-Posting-Host: lk-hp-14.hut.fi + + +OK. I finally found this on my local machine by doing a locate. +Still haven't found any FTP site bearing this kind of information. +I myself would need a similar file with extensions for VT200/VT220. +Please do not address any complaints to me, since I just copied this file +as I found it. There might be some escape sequences missing from the +end because there was some carbage, but I don't know. Here goes... + + +This file describes information needed for controlling the VT100 terminal from +a remote computer. All of the information was derived from the VT100 user's +manual, Programmer's Information section. Full documentation can be obtain +from DIGITAL'S Accessory and Supplies Group. + + [The notation denotes a single ASCII Escape character, 1Bx.] + + + ANSI mode w/cursor ANSI mode w/cursor +Cursor Key VT52 mode key mode reset key mode set +-------------------------------------------------------------------------- + UP A [A OA + DOWN B [B OB + RIGHT C [C OC + LEFT D [D OD + + +******************************* +* Special Graphics Characters * +******************************* + + + If the Special Graphics set is selected, the graphics for ASCII codes +0137 through 0176 will be replaced according to the following table (see the +SCS control sequence). + + +Octal ASCII Special Octal ASCII Special +Code graphic graphic code graphic graphic +------------------------------------------------------------------------------- +0137 _ Blank 0157 o Horiz Line - scan 1 +0140 \ Diamond 0160 p Horiz Line - scan 3 +0141 a Checkerboard 0161 q Horiz Line - scan 5 +0142 b Digraph: HT 0162 r Horiz Line - scan 7 +0143 c Digraph: FF 0163 s Horiz Line - scan 9 +0144 d Digraph: CR 0164 t Left "T" (|-) +0145 e Digraph: LF 0165 u Right "T" (-|) +0146 f Degree Symbol 0166 v Bottom "T" (|_) +0147 g +/- Symbol 0167 w Top "T" (T) +0150 h Digraph: NL 0170 x Vertical Bar (|) +0151 i Digraph: VT 0171 y Less/Equal (<_) +0152 j Lower-right corner 0172 z Grtr/Egual (>_) +0153 k Upper-right corner 0173 { Pi symbol +0154 l Upper-left corner 0174 | Not equal (=/) +0155 m Lower-left corner 0175 } UK pound symbol +0156 n Crossing lines (+) 0176 ~ Centered dot + + +NOTE 1: Codes 0152-0156 and 0164-0170 are used to draw rectangular grids" each +piece of this set is contiguous with other so the lines formed will be +unbroken. + +NOTE 2: Codes 0157-0163 give better vertical resolution than dashes and +underlines when drawing graphs; using these segments, 120 x 132 resolution may +be obtained in 132 column mode with the Advanced Video Option installed. + + + +***************************** +* Terminal Control Commands * +***************************** + +Control Characters +------------------ + + The control characters recognized by the VT100 are listed below. All +other control characters cause no action to be taken. + + Control characters (codes 00 - 037 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 the VT100. The processing of the control sequence then +continues with the next character recieved. The exceptions are: if the +character occurs, the current control sequence is aborted, and a new one +commences beginning with the just recieved. If the character +(030) or the character (032) 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. + + + +Control Octal +Character Code Action Taken +------------------------------------------------------------------------------ + 0000 Ignored on input; not stored in buffer + 0005 Transmit ANSWERBACK message + 0007 Sound bell + 0010 Move cursor to the left one position, unless it is at + the left margin, in which case no action is taken. + 0011 Move cursor to the next tab stop, or to the right + margin if no further tabs are set. + 0012 Causes either a line feed or new line operation (See + new line mode.) + 0013 Same as . + 0014 Same as . + 0015 Move the cursor to the left margin of the current line. + 0016 Invoke the G1 character set, as designated by the SCS + control sequence. + 0017 Invoke the G0 character set, as selected by the ( + sequence. + 0021 Causes terminal to resume transmission (XON). + 0023 Causes terminal to stop transmitting all codes except + XOFF and XON (XOFF). + 0030 If sent during a control sequence, the sequence id + immediately terminated and not executed. It also + causes the error character (checkerboard) to be + displayed. + 0032 Same as . + 0033 Introduces a control sequence. + 0177 Ignored on input; not stored in buffer. + + + The VT100 is an upward and downward software-compatible terminal; +that is, previous Digital video terminals have Digital's private standards +for control sequences. The American National Standards Institute has since +standardized escape and control sequences in terminals in documents X3.41-1974 +and X3.64-1977. + + The VT100 is compatible with both the previous Digital standard and +ANSI standards. Customers may use existing Digital software designed around +the VT52 or new VT100 software. The VT100 has a "VT52 compatible" mode in +which the VT100 responds to control sequences like a VT52. In this mode, most +of the new VT100 features cannot be used. + + Throughout this document references will be made to "VT52 mode" or +"ANSI mode". These two terms are used to indicate the VT100's software +compatibility. + + +NOTE: The ANSI standards allow the manufacturer flexibility in implementing +each function. This document describes how the VT100 will respond to the +implemented ANSI central function. + +NOTE: ANSI standards may be obtained by writing: + + American National Standards Institute + Sales Department + 1430 Broadway + New York, NY, 10018 + + [July 1995 update: current address for ordering ANSI standards: + + American National Standards Institute + Attn: Customer Service + 11 West 42nd Street + New York, NY 10036 + USA + + ANSI's fax number for placing publication orders is +1 212/302-1286.] + + [Further update, from Tim Lasko : + + "ANSI X3.64 has been withdrawn in favor of the more complete and + updated ISO standard 6429. (ECMA-48 is equivalent to ISO DP6429, + last I checked.) X3.64 has been out of date for some time. At the + time when I was on the relevant committee, we couldn't get enough + resources to really do a good job of updating the standard. + Later, the proposal came up to withdraw it in favor of the ISO + standard.] + + +Definitions +----------- + + Control Sequence Introducer (CSI) - An escape sequence that provides + supplementary controls and is itself a prefix affecting the + interpretation of a limited number of contiguous characters. + In the VT100, the CSI is: [ + + Parameter: (1) A string of zero or more decimal characters which + represent a single value. Leading zeros are ignored. The + decimal characters have a range of 0 (060) to 9 (071). + (2) The value so represented. + + Numeric Parameter: A parameter that represents a number, designated by + Pn. + + Selective Parameter: A parameter that selects a subfunction from a + specified set of subfunctions, designated by Ps. In general, a + control sequence with more than one selective parameter causes + the same effect as several control sequences, each with one + selective parameter, e.g., CSI Psa; Psb; Psc F is identical to + CSI Psa F CSI Psb F CSI Psc F. + + Parameter String: A string of parameters separated by a semicolon. + + Default: A function-dependent value that is assumed when no explicit + value, or a value of 0, is specified. + + Final character: A character whose bit combination terminates an + escape or control sequence. + + + EXAMPLE: Control sequence to turn off all character attributes, then + turn on underscore and blink attributes (SGR). [0;4;5m + + Sequence: + + + Delimiters + / \ + / \ + | | + \ / \ / + [ 0 ; 4 ; 5 m + ^^^^^^ ^ ^ ^ ^ + |||||| | | | | + \||||/ \ | / +------Final character + \||/ \ | / + CSI Selective + Parameters + + + The octal representation of this string is: + + 033 0133 060 073 064 073 065 0155 + [ 0 ; 4 ; 5 m + + + Alternate sequences which will accomplish the same thing: + + 1) [;4;m + + 2) [m + [4m + [5m + + 3) [0;04;005m + + +Control Sequences +----------------- + + All of the following control sequences are transmitted from the Host to +VT100 unless otherwise noted. All of the control sequences are a subset of +those defined in ANSI X 3.64 1977 and ANSI X 3.41 1974. + + The following text conforms to these formatting conventions: + + 1) Control characters are designated by angle brackets (e.g. + the Escape character is ). + + 2) Parameters are indicated by curly braces. + + 3) Parameter types usually are indicated as one of: + + {Pn} A string of digits representing a numerical + value. + + {Ps} A character that selects an item from a list. + + {a-z} Any lowercase sequence of one44 or more + characters in braces represent a value to be + entered (as in {Pn}), and the name in the + braces will be referred to in explanatory text. + + 4) Spaces in the control sequence are present for clarity and + may be omitted. Spaces which are required will be + surrounded by single quotes: ' '. + + 5) All other characters are literals. + + + + + +CPR Cursor Position Report VT100 to Host + + [ {Pn} ; {Pn} R Default Value: 1 + + 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 equivelent + to a cursor at home position. + + The numbering of the lines depends upon the state of the Origin Mode + (DECOM). + + This control sequence is sent in reply to a device status report (DSR) + command sent from the host. + + + +CUB Cursor Backward Host to VT100 & VT100 to Host + + [ {Pn} D Default Value: 1 + + The CUB sequence move 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. Editor Function. + + +CUD Cursor Down Host to VT100 & VT100 to Host + + [ {Pn} B Default value: 1 + + 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. Editor Function. + + +CUF Cursor Foreward Host to VT100 & VT100 to Host + + [ {Pn} C Default Value: 1 + + The CUF sequence moves the cursor to the right a number of positions + specified in the parameter. The cursor cannot be moved past the right + margin. Editor Function. + + +CUP Cursor Position + + [ {Pn} ; {Pn} H Default Value: 1 + + The CUP sequence moves the curor to the position specified by the + parameters. The first parameter specifies the line, and the second + specifies the column. A value of zero for either line or column moves + the cursor to the first line or column in the display. The default + string (H) homes the cursor. In the VT100, this command behaves + identically to it's format effector counterpart, HVP. + + The numbering of the lines depends upon the state of the Origin Mode + (DECOM). Editor Function. + + +CUU Cursor Up Host to VT100 & VT100 to Host + + [ {Pn} A Default Value: 1 + + 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. Editor Function. + + +DA Device Attributes Host to VT100 & VT100 to Host + + [ {Pn} c Default Value: 0 + + 1) 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. + + 2) Response to the request described above (VT100 to host) is generated + by the VT100 as a DA control sequencewith the numeric parameters as + follows: + + Option Present Sequence Sent + --------------------------------------------- + No options [?1;0c + Processor Option (STP) [?1;1c + Advanced Video Option (AVO) [?1;2c + AVO and STP [?1;3c + Graphics Option (GPO) [?1;4c + GPO and STP [?1;5c + GPO and AVO [?1;6c + GPO, ACO, and STP [?1;7c + +<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>, +<<> +<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + +DECALN Screen Alignment Display (DEC private) + + # 8 + + This command causes the VT100 to fill it's screen with uppercase Es for + screen focus and alignment. + + +DECANM ANSI/VT52 Mode (DEC Private) + + This is a private parameter to the SM and 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 MODES, SM, and RM. + + +DECARM Auto Repeat Mode (DEC Private) + + This is a private parameter to the SM and RM control sequences. The + reset state causes no keyboard keys to auto-repeat, the set state + causes most of them to. See MODES, SM, and RM. + + +DECAWM Autowrap Mode (DEC Private) + + This is a private parameter to the SM and RM control sequences. The + reset state prevents the cursor from moving when characters are + recieved 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 MODES, SM, and RM. + + +DECCKM Cursor Keys Mode (DEC Private) + + This is a private parameter to the SM and RM control requences. This + mode is only effective when the terminal is in keypad application mode + (DECPAM) and the ANSI/VT52 mode (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 MODES, RM, and SM). + + +DECCOLM Column Mode (DEC Private) + + This is a private parameter to the SM and 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 MODES, RM, and SM. + + +DECDHL Double Height Line (DEC Private) + + Top Half: #3 + Bottom Half: #4 + + These sequences cause the line containing the cursor to become the top + or bottom half of a double-height, double width line. The sequences + should be used in pairs on adjacent lines with each line containing the + same character string. 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. + + +DECDWL Double Width Line (DEC Private) + + #6 + + 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. + + +DECID Identify Terminal (DEC Private) + + Z + + This sequence causes the same response as the DA sequence. This + sequence will not be supported in future models. + + +DECINLM Interlace Mode (DEC Private) + + This is a private parameter to the RM and 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 MODES, RM, and SM. + + +DECKPAM Keypad Application Mode (DEC Private) + + = + + The auxiliary keypad keys will transmit control sequences. + + +DECKPNM Keypad Numeric Mode (DEC Private) + + > + + The auxiliary keypad keys will send ASCII codes corresponding to the + characters engraved on their keys. + + +DECLL Load LEDs (DEC Private) + + [ {Ps} q Default Value: 0 + + Load the four programmable LEDs on the keyboard according to the + parameter(s). + + Parameter Meaning + ----------------------- + 0 Clear All LEDs + 1 Light L1 + 2 Light L2 + 3 Light L3 + 4 Light L4 + + +DECOM Origin Mode (DEC Private) + + This is a private parameter to SM and 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 (CUP) or + horizontal and vertical position (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 Restore Cursor (DEC Private) + + 8 + + This sequence causes the previously saved cursor position, graphic + rendition, and character set to be restored. + + +DECREPTPARM Report Terminal Parameters VT100 to Host + + [ {sol} ; {par} ; {nbits} ; {xspd} ; {rspd} ; {cmul} ; {flags} x + + 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 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 paramters are: + + Parameter Value Meaning + ------------------------------------------------------------------ + {sol} 1 This message is a report. + 2 This message is a report, and the terminal is + only reporting on request. + + {par} 1 No parity set + 4 Parity set and odd + 5 Parity set and even + + {nbits} 1 8 bits per character + 2 7 bits per character + + {xspd} 0 Speed set to 50 bps + -and- 8 Speed set to 75 bps + {rspd} 16 Speed set to 110 bps + 24 Speed set to 134.5 bps + {xspd}= 32 Speed set to 150 bps + Transmit 40 Speed set to 200 bps + Speed 48 Speed set to 300 bps + 56 Speed set to 600 bps + {rspd}= 64 Speed set to 1200 bps + Recieve 72 Speed set to 1800 bps + Speed 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 + + {cmul} 1 The bit rate multiplier is 16 + + {flags} 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 Request Terminal Parameters + + [ {Ps} x + + The host sends this sequence to request the VT100 to send a DECREPTPARM + sequence back. {Ps} can be either 0 or 1. If 0, the terminal will be + allowed to send unsolicited 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 DECREPTPARMs in response to a + request. + + +DECSC Save Cursor (DEC Private) + + 7 + + Causes the cursor position, graphic rendition, and character set to be + saved. (See DECRC) + + +DECSCLM Scrolling Mode (DEC Private) + + This is a private parameter to RM and 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 MODES, RM, and SM. + + +DECSCNM Screen Mode (DEC Private) + + This is a private parameter to RM and 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 MODES, + RM, and SM. + +<<<>>> +DECSTBM Set Top and Bottom Margins (DEC Private) + + [ {Pn} ; {Pn} r Default Values: See Below + + 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 DECOM). + + +DECSWL Single-width Line (DEC Private) + + #5 + + 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. + + +DECTST Invoke Confidence Test + + [ 2 ; {Ps} y + + 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. + + Test Weight + -------------------------------------------------------------- + POST (ROM checksum, RAM NVR, keyboardm and AVO) 1 + Data Loop Back (Loopback connector required) 2 + EIA Modem Control Test (Loopback connector req.) 4 + Repeat Testing until failure 8 + + +DSR Device Status Report Host to VT100 & VT100 to Host + + [ {Ps} n + + Requests and reports the general status of the VT100 according to the + following parameters: + + Parameter Meaning + --------------------------------------------------------------- + 0 Response from VT100 - Ready, no faults detected + 3 Response from VT100 - Malfunction Detected + 5 Command from host - Report Status (using a DSR control + sequence) + 6 Command from host - Report Active Position (using a CPR + sequence) + + DSR with a parameter of 0 or 3 is always sent as a response to a + requesting DSR with a parameter of 5. + + +ED Erase in Display + + [ {Ps} J Default: 0 + + 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. Editor Function. + + Parameter Meaning + ---------------------------------------------------------------- + 0 Erase from the cursor to the end of the screen. + 1 Erase from the start of the screen to the cursor. + 2 Erase the entire screen. + + +EL Erase in Line + + [ {Ps} K Default: 0 + + Erases some or all characters in the active line, according to the + parameter. Editor Function. + + Parameter Meaning + --------------------------------------------------------------- + 0 Erase from cursor to the end of the line. + 1 Erase from the start of the line to the cursor. + 2 Erase the entire line. + + +HTS Horizontal Tab Set + + H + + Set a tab stop at the current cursor position. Format Effector. + + +HVP Horizontal and Vertical Position + + [ {Pn} ; {Pn} f + + 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, CUP. The numbering + of hte lines depends upon the state of the Origin Mode (DECOM). Format + Effector. + + +IND Index + + D + + 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. Format Effector. + + +LNM Line Feed/New Line Mode + + This is a parameter to SM and RM control sequences. The reset state + causes the interpretation of the character to imply only vertical + movement of the cursor and causes the RETURN key to send the single + code . The set state causes the character to imply movement + to the first position of the following line, and causes the RETURN key + to send the code pair . This is the New Line option. + + This mode does not affect the Index (IND) or the next line (NEL) format + effectors. + + +MODES The Following is a list of VT100 modes which may be changed with Set + Mode (SM) and Reset Mode (RM) controls. + + ANSI Specified Modes + + Parameter Mnemonic Function + ------------------------------------------------------------------ + 0 Error (Ignored) + 20 LNM Line Feed/New Line Mode + + + DEC Private Modes + + If the first character in the parameter string is ? (077), the + parameters are interpreted as DEC private parameters according to the + following: + + Parameter Mnemonic Function + ------------------------------------------------------------------- + 0 Error (Ignored) + 1 DECCKM Cursor Key + 2 DECANM ANSI/VT52 + 3 DECCOLM Column + 4 DECSCLM Scrolling + 5 DECSCNM Screen + 6 DECOM Origin + 7 DECAWM Auto Wrap + 8 DECARM Auto Repeat + 9 DECINLM Interlace + + Any other parameter values are ignored. + + The following modes, which are specified in the ANSI standard, may be + considered to be permanently set, permanently reset, or not applicable, + as noted. + + Mnemonic Function State + ------------------------------------------------------ + CRM Control Representation Reset + EBM Editing Boundary Reset + ERM Erasure Set + FEAM Format Effector Action Reset + FETM Format Effector Transfer Reset + GATM Guarded Area Transfer NA + HEM Horizontal Editing NA + IRM Insertion-replacement Reset + KAM Keyboard Action Reset + MATM Multiple area transfer NA + PUM Positioning Unit Reset + SATM Selected Area Transfer NA + SRTM Status Reporting Transfer Reset + TSM Tabulation Stop Reset + TTM Transfer Termination NA + VEM Vertical Editing NA + + +NEL Next Line + + E + + 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. + Format Effector. + + +RI Reverse Index + + M + + Move the cursor up one line without changing columns. If the cursor is + on the top line, a scroll down is performed. + + +RIS Reset to Initial State + + c + + 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. + + +RM Reset Mode + + [ {Ps} ; {Ps} l + + 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 MODES and SM. + + +SCS Select Character Set + + The appropriate D0 and G1 character sets are designated from one of the + five possible sets. The G0 and G1 sets are invokedd by the characters + and , respectively. + + G0 Sets G1 Sets + Sequence Sequence Meaning + ------------------------------------------------------------------ + (A )A United Kingdom Set + (B )B ASCII Set + (0 )0 Special Graphics + (1 )1 Alternate Character ROM + Standard Character Set + (2 )2 Alternate Character ROM + Special Graphics + + 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 recieved. + + +SGR Select Graphic Rendition + + [ {Ps} ; {Ps} m + + 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. Format + Effector. + + Parameter Meaning + --------------------------------------------------------------- + 0 Attributes Off + 1 Bold or increased intensity + 4 Underscore + 5 Blink + 7 Negative (reverse) image + + 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. + + [Update: DP6429 defines parameters in the 30-37 range to change + foreground color and in the 40-47 range to change background.] + + +SM Set Mode + + [ {Ps} ; {Ps} h + + 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 (RM) control sequence. See RM and MODES. + + [Editor's note: The original DEC VT100 documentation EK-VT100-UG-003 + erroneously omitted the "[" character from the SM sequence.] + + +TBC Tabulation Clear + + [ {Ps} g + + 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. Format Effector. + + + ___ + ( /_)_---_------------------------------------------------- +(_/ ( ! / ) Petri Virekoski ------ pev@vipu.hut.fi ------ +-------!/--------------------------------------------------- + + ////////////////////////////////////////////////////////////////////////////// + +Here is a string of control sequences I use for a general VT200 terminal reset. + +No spaces really--just for clarity. + + ESC [ ? 38 l ESC ) 0 Control-O ESC [ H ESC [ 2 J + +where ESC is hexadecimal 1B + Control-O is hexadecimal 0F + "l" is hexadecimal 6C (a lowercase "L") + +It takes the terminal out of Tektronix graphics mode, gets it out of +line-draw-character mode, and clears the screen. + + ...RSS + + ////////////////////////////////////////////////////////////////////////////// + +Newsgroups: comp.terminals,comp.protocols.misc +Expires: Sun, 31 Jan 1993 22:23:24 GMT +References: <18623@mindlink.bc.ca> +Organization: University of Tennessee, Knoxville--Dept. of Computer Science +Keywords: VT100, scroll, control code, Escape, ANSI X3.64, terminal +Sender: shuford@cs.utk.edu +Subject: ANSI X3.64 sequences (was Re: VT100 scrolling region) +Summary: Escape code effects + +In article pdsmith@bbn.com (Peter D. Smith) writes: +> In article <18623@mindlink.bc.ca>, Frank@mindlink.bc.ca (Frank I. Reiter) +> writes: +> > Part of an application I am working on includes a VT100 emulator. +> > 1) Does ESC [;22r mean "scroll lines 0 through 22" or does it mean "Set +> > the bottom scrolling line to 22, leave the top line as it is set already"? +> +> It should mean 'scroll lines 1 to 22'. + +The control sequences recognized by the Digital Equipment Corporation +VT100, VT200, VT300, and VT400-family character-cell video terminals +are an extended variant of the control sequences specified by an ANSI +standard, ANSI X3.64. (ISO DP6429 is the international version.) + +The generic sequence introducer is a thing called CSI (Control +Sequence Introducer). If you are using 8-bit communication, you +can use the hexadecimal value 9B to represent this (but be sure you +understand the side effects thereof). Otherwise, use the 7-bit +equivalent: the Escape character (1Bh) followed by [ (the left +bracket character). + +The canonical form of the given scroll-region command would be + + CSI xx ; yy r + +or in 7-bit style + + Esc [ xx ; yy r + +(where xx and yy are decimal digits expressed in ASCII/IA5; you do not +actually use a space between sequence elements, this is for clarity. +Be careful with the notation here--sometimes a space character _is_ +a sequence element, as in the SR Scroll Right editing function.) + +In an X3.64 control sequence, the numeric arguments may default to an +arbitrary value specific to the device function being controlled. Do +not assume that the default always will be 0 or 1. (Or there may be +no default allowed.) For example, the numeric arguments in the GSM +(Graphic Size Modify) sequence have the default values 100, 100. + +As a private extension to X3.64, DEC defines the DECSTBM (Set Top and +Bottom Margins) command as follows: + + CSI Pt ; Pb r + + Selects top and bottom margins defining the scrolling region. + Pt is the line number of the first line in the scrolling region. + Pb is the line number of the bottom line. + If you do not select either Pt or Pb, they default to the top + and bottom respectively. Lines are counted from 1. + +(See \VT220 Programmer Pocket Guide/, part EK-VT220-HR-002, page 37.) + +> Remember that these sequences +> could be implemented in TTL without a microprocessor of any +> kind & therefore use the simplest possible implementation. + +Peter must be thinking of the much simpler DEC VT52 sequences. As far +as I know, terminals implementing X3.64 have ALWAYS used a built-in +microprocessor. The VT100 was built around an 8-bit-bus Intel 8085. + +In fact, when the X3.64 document was published (circa 1978), some +vendors, insisting on using discrete logic designs, objected that the +standard was so complex it could not be implemented. Most of these +vendors are now floating belly-up on the tide of technology. Some +credit is due to The Heath Company for a pioneering microprocessor- +based video terminal that implemented many of the X3.64 functions. + +> > 2) Should a clear screen code clear the scrolling region only, or the +> > entire screen? How about a clear to end of screen? +> +> I think this is the whole screen regardless of the scrolling region. +> Don't bet your company on it, though. + +Screen clearing should not depend on scrolling. + +Erasing parts of the display (EL and ED) in the VT100 is performed thus: + + Erase from cursor to end of line Esc [ 0 K or Esc [ K + Erase from beginning of line to cursor Esc [ 1 K + Erase line containing cursor Esc [ 2 K + Erase from cursor to end of screen Esc [ 0 J or Esc [ J + Erase from beginning of screen to cursor Esc [ 1 J + Erase entire screen Esc [ 2 J + +Some brain-damaged terminal/emulators respond to Esc [ J as if it were +Esc [ 2 J (here the default is 0), and _some_ versions of Microsoft's +MS-DOS ANSI.SYS contain a bug requiring software to send Esc [ k +(instead of the uppercase). Of course, you would never make this mistake. + +The VT200 and later terminals have the ECH control sequence: + + Esc yy X + +(where yy is a numeric parameter) + +This erases the cursor position and the next (yy-1) positions, but this +is not part of the least common denominator VT100. + + - - - - - - + +VT, Flip Chip, DIBOL, and Rainbow are trademarks of Digital Equipment +Corporation. + + ////////////////////////////////////////////////////////////////////////////// + +Newsgroups: comp.terminals +Path: utkcs2!gatech!ukma!wupost!sdd.hp.com!think.com!news.bbn.com!bbn.com!pdsmith +Message-ID: <66978@bbn.BBN.COM> +Sender: news@bbn.com +Reply-To: pdsmith@spca.bbn.com (Peter D. Smith) +Organization: Bolt Beranek and Newman Inc., Cambridge MA +Date: 22 Oct 1991 14:13:24 GMT +From: pdsmith@bbn.com (Peter D. Smith) +Subject: Answers to recent questions -- micro-FAQ + + + *** comp.terminals unofficial FAQ *** + +1) How do I save my VT100 setups? + 1) Place the terminal in SET-UP mode + 2) Press the SHIFT and S keys simultaneously. The screen will + clear and the message "wait" will be displayed in the + upper left hand corner. After a brief wait, the terminal + will return to SET-UP A mode + +2) How do I set my DEC terminal to reverse video? + Use the sequence ESC [ ? h (white on black) or ESC [ ? l + (black on white). + +3) What are the DIP switches for an H19 (or Z19)? + Switch S402 + 0 cursor is 0=underscore 1=block + 1 keys 0=will 1=wont click + 2 lines 0=wont 1=will wrap + 3 Auto LF on CR is 0=off 1=on + 4 Auto CR on LF is 0=off 1=on + 5 Terminal mode is 0=Heath/Zenith 1=Ansi + 6 keypad 0=normal 1=shifted + 7 refresh 0=60Hz 1=50Hz + Switch S401 + 0..3 = Baud rate, on of N/A 110 150 300 600 1200 1800 2000 + 2400 3600 4800 7200 9600 N/A N/A N/A such that if all + switches are ZERO except switch 0, terminal is 300 baud + 4 Parity is 0=off 1=on + 5 Parity is 0=even 1=odd + 6 Parity is 0=normal 1=stick + 7 Duplex is 0=half 1=full + + + ////////////////////////////////////////////////////////////////////////////// + +Newsgroups: comp.terminals +Message-ID: <6ttv6b$nf8$1@apakabar.cc.columbia.edu> +References: +Date: 18 Sep 1998 15:45:15 GMT +From: Frank da Cruz +Subject: Re: vt101 terminal + +In article , +Neil Zanella wrote: +: +: When using a vt101 terminal should I set the TERM variable to vt100 . I +: have a fairly recent version of terminfo but there is no entry for the vt101 +: Digital terminal. As far as I'm concerned the vt100 and vt101 look exactly +: the same. Are there any differences at all between these two? + + +Probably none that would affect termcap/terminfo. The main difference was +that the VT101 added local-echo capability so it could be used with (say) +IBM mainframes on linemode connections. + +- Frank + + =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= + + +Newsgroups: comp.terminals +Message-ID: <3BAF39C9.ED27D78B@uk.thalesgroup.com> +References: + <9on90l$i7d$3@news1.Radix.Net> +Date: Mon, 24 Sep 2001 14:48:57 +0100 +From: Paul Williams +Subject: Re: Double width to single width bug test in vttest + +Thomas Dickey wrote: +> +> Simon Clubley wrote: +> > +> > I have been running VTTEST against several VT emulators and +> > genuine DEC terminals and I have a question about the single +> > width->double width->single width test in "Test of known bugs", +> > test number 8. +> +> > My question is why is the loss of the right half of the line +> > considered to be a bug ? +> > Does the specification for the VT100 disagree with actual +> > behaviour in this area ? +> +> probably not (it's been a while since I've seen any detailed info, +> but my recollection is that it was pretty vague). + +The VT100 User Guide says "If the line was single-width single-height, +all characters to the right of the screen are lost". The VT102 User +Guide uses similar words. + + http://vt100.net/docs/vt100-ug/chapter3.html#DECDWL + + + ////////////////////////////////////////////////////////////////////////////// + + +Newsgroups: comp.terminals +Message-ID: <3BB23B20.DB5EF55C@tinyworld.co.uk> +References: + <9on90l$i7d$3@news1.Radix.Net> +Organization: VT100.net +Date: Wed, 26 Sep 2001 21:31:28 +0100 +From: Paul Williams +Subject: Re: Double width to single width bug test in vttest + +Simon Clubley wrote: +> +> Yes, I understood that the terminal would have to store the extra +> text somewhere if the specs required that the text be saved. + +What extra text? Setting a line to double width wouldn't necessarily +change the contents of the characters in a line at all; the terminal +would just change the line attributes. + +> What I can't understand is why the VT100 behaviour of losing the +> right half of the line is described as a bug, when everything that +> I've seen, as well as the behaviour on later DEC terminals that I +> have tried, make me believe that it's normal behaviour. + +It is described as a misfeature, not a bug. Misfeatures are anything +that the user thought was awkward in the implementation, even if it +matched the specification. + +I've just tried this on my genuine VT100 and it does indeed clear the +right half of the screen, exactly as its specification[1] says and +exactly as its DEC successors do. + +I don't think this is a misfeature at all, but I don't have a copy of +the original article by Sami Tabih in order to see why he thought it +was. Someone must have a copy of that article and I'd love to see it. + +[1] I mean the VT100 User Guide, not the Video System Reference Manual, + which is the real specification. + +Regards, +Paul Williams + + ////////////////////////////////////////////////////////////////////////////// + diff --git a/docs/vt100.codes.txt b/docs/vt100.codes.txt new file mode 100644 index 0000000..c06f61c --- /dev/null +++ b/docs/vt100.codes.txt @@ -0,0 +1,324 @@ + + /======================================================\ + | VT100 and VT52 Compatable Modes ESCape Codes Chart | + \======================================================/ + +VT52 Compatable Mode +-------------------- + +ESC A Cursor up +ESC B Cursor down +ESC C Cursor right +ESC D Cursor left +ESC F Special graphics character set +ESC G Select ASCII character set +ESC H Cursor to home +ESC I Reverse line feed +ESC J Erase to end of screen +ESC K Erase to end of line +ESC Ylc Direct cursor address (See note 1) +ESC Z Identify (See note 2) +ESC = Enter alternate keypad mode +ESC > Exit alternate keypad mode +ESC 1 Graphics processor on (See note 3) +ESC 2 Graphics processor off (See note 3) +ESC < Enter ANSI mode + +Note 1: Line and column numbers for direct cursor addresses are single + character codes whose values are the desired number plus 37 octal. + Line and column numbers start at 1. + +Note 2: Response to ESC Z is ESC/Z. + +Note 3: Ignored if no graphics processor stored in the VT100 + +ANSI Compatable Mode +-------------------- + +ESC [ Pn A Cursor up Pn lines +ESC [ Pn B Cursor down Pn lines +ESC [ Pn C Cursor forward Pn characters (right) +ESC [ Pn D Cursor backward Pn characters (left) +ESC [ Pl;PcH Direct cursor addressing, where Pl is line#, Pc is column# +ESC [ Pl;Pcf Same as above +ESC D Index +ESC M Reverse index +ESC 7 Save cursor and attributes +ESC 8 Restore cursor and attributes + +ESC #3 Change this line to double-height top half +ESC #4 Change this line to double-height bottom half +ESC #5 Change this line to single-width single-height +ESC #6 Change this line to double-width single-height + +ESC [ Ps..Ps m Ps refers to selective parameter. Multiple parameters are + separated by the semicolon character (073 octal). The param- + eters are executed in order and have the following meaning: + + 0 or none All attributes off + 1 Bold on + 4 Underscore on + 5 Blink on + 7 Reverse video on + + Any other parameters are ignored. + +ESC [ K Erase from cursor to end of line +ESC [ 0K Same +ESC [ 1K Erase from beginning of line to cursor +ESC [ 2K Erase line containing cursor +ESC [ J Erase from cursor to end of screen +ESC [ 0J Same +ESC [ 2J Erase entire screen + +ESC [ Ps..Ps q Programmable LEDs: Ps are selective parameters separated by + semicolons (073 octal) and executed in order, as follows: + + 0 or None All LEDs off + 1 L1 On + 2 L2 On + 3 L3 On + 4 L4 On + + Any other parameter values are ignored. + +The following select alternative character sets. The G1 set is invoked for +use by the control code SO (Shift Out), the G0 set is invoked by the control +code SI (Shift In). + +G0 designator G1 designator Character set + +ESC ( A ESC ) A United Kingdom (UK) +ESC ( B ESC ) B United States (USASCII) +ESC ( 0 ESC ) 0 Special graphics/line drawing set +ESC ( 1 ESC ) 1 Alternative character ROM +ESC ( 2 ESC ) 2 Alternative graphic ROM + +ESC K Pt;Pb r Set top scrolling window (Pt) and bottom scrolling window + (Pb). Pb must be greater than Pb. + +ESC H Set tab at current column +ESC [ g Clear tab at current column +ESC [ 0g Same +ESC [ 3g Clear all tabs + +Modes +----- + +Mode Name Mode To set seq Mode To reset seq + +Line feed/new New line ESC [20h Line feed ESC [20l +Cursor key Application ESC [?1h Cursor ESC [?1l +ANSI/VT52 ANSI n/a VT52 ESC [?2l +Column mode 132 col ESC [?3h 80 col ESC [?3l +Scrolling Smooth ESC [?4h Jump ESC [?4l +Screen mode Reverse ESC [?5h Normal ESC [?5l +Origin mode Relative ESC [?6h Absolute ESC [?6l +Wraparound On ESC [?7h Off ESC [?7l +Autorepeat On ESC [?8h Off ESC [?8l +Interface On ESC [?9h Off ESC [?9l + +Reports +------- + +ESC [ 6n Cursor position report +ESC [ Pl;PcR (response; Pl=line#; Pc=column#) +ESC [ 5n Status report +ESC [ c (response; terminal Ok) +ESC [ 0c (response; teminal not Ok) +ESC [ c What are you? +ESC [ 0c Same +ESC [?1;Ps c response; where Ps is option present: + + 0 Base VT100, no options + 1 Preprocessor option (STP) + 2 Advanced video option (AVO) + 3 AVO and STP + 4 Graphics processor option (GO) + 5 GO and STP + 6 GO and AVO + 7 GO, STP, and AVO + +ESC c Causes power-up reset routine to be executed +ESC #8 Fill screen with "E" +ESC [ 2;Ps y Invoke Test(s), where Ps is a decimal computed by adding the + numbers of the desired tests to be executed: + + 1 Power up test + 2 Data loop back + 4 EIA modem control signal test + 8 Repeat test(s) indefinitely + + + + +Article 4810 of alt.hackers: +Newsgroups: alt.hackers +From: Dom@sound.demon.co.uk (The Dark Stranger) +Path: caen!math.ohio-state.edu!howland.reston.ans.net!pipex!uknet!demon!sound.demon.co.uk!sound.and.vision.bbs!vf10!VeXNeT!Dom +Subject: Re: vt100 escapes +Reply-To: Dom@sound.demon.co.uk +References: <2kp5c0$61c@samba.oit.unc.edu> +Distribution: world +X-Mailer: Sound & Vision BBS +44 (0)932-252-323 +Organization: Vex-Factor:10 Productions, London, England. +Approved: I like to think so +Lines: 145 +Date: Tue, 1 Mar 1994 19:13:36 +0000 +Message-ID: <#2377_vf10@sound.demon.co.uk> +Sender: usenet@demon.co.uk + +In article <2kp5c0$61c@samba.oit.unc.edu> Michael.Lea@launchpad.unc.edu (Michael David Lea) writes: +> Does anyone know where I can get a list of vt100 escape codes? I found +> one list but it doesn't seem to work. + +TERMINAL COMMANDS +~~~~~~~~~~~~~~~~ +c Reset +[ ! p Soft Reset +# 8 Fill Screen with E's +} 1 * Fill screen with * test +} 2 Video attribute test display +} 3 Character sets display test + +KEYBOARD COMMANDS +~~~~~~~~~~~~~~~~ +[ 2 h Keyboard locked +[ 2 l Keyboard unlocked +[ ? 8 h Autorepeat ON +[ ? 8 l Autorepeat OFF +[ 0 q Lights all off on keyboard +[ * q Light * on + +PROGRAMMABLE KEY COMMANDS +~~~~~~~~~~~~~~~~~~~~~~~~ +! pk Program a programmable key (local) +@ pk Program a programmable key (on-line) +% pk Transmit programmable key contents + +SCREEN FORMAT +~~~~~~~~~~~~ +[ ? 3 h 132 Characters on +[ ? 3 l 80 Characters on +[ ? 4 h Smooth Scroll on +[ ? 4 l Jump Scroll on +[ *t ; *b r Scrolling region selected, line *t to *b +[ ? 5 h Inverse video on +[ ? 5 l Normal video off +[ ? 7 h Wraparound ON +[ ? 7 l Wraparound OFF +[ ? 75 h Screen display ON +[ ? 75 l Screen display OFF + +CHARACTER SETS AND LABELS +~~~~~~~~~~~~~~~~~~~~~~~~ +( A British +( B North American ASCII set +( C Finnish +( E Danish or Norwegian +( H Swedish +( K German +( Q French Canadian +( R Flemish or French/Belgian +( Y Italian +( Z Spanish +( 0 Line Drawing +( 1 Alternative Character +( 2 Alternative Line drawing +( 4 Dutch +( 5 Finnish +( 6 Danish or Norwegian +( 7 Swedish +( = Swiss (French or German) + +[Note all ( may be replaced with )] + +CHARACTER SIZE +~~~~~~~~~~~~~ +# 1 Double ht, single width top half chars +# 2 Double ht, single width lower half chars +# 3 Double ht, double width top half chars +# 4 Double ht, double width lower half chars +# 5 Single ht, single width chars +# 6 Single ht, double width chars + +ATTRIBUTES AND FIELDS +~~~~~~~~~~~~~~~~~~~~ +[ 0 m Clear all character attributes +[ 1 m Alternate Intensity ON +[ 4 m Underline ON +[ 5 m Blink ON +[ 7 m Inverse video ON +[ 22 m Alternate Intensity OFF +[ 24 m Underline OFF +[ 25 m Blink OFF +[ 27 m Inverse Video OFF +[ 0 } Protected fields OFF +[ 1 } Protected = Alternate Intensity +[ 4 } Protected = Underline +[ 5 } Protected = Blinking +[ 7 } Protected = Inverse +[ 254 } Protected = All attributes OFF + +CURSOR COMMANDS +~~~~~~~~~~~~~~ +[ ? 25 l Cursor OFF +[ ? 25 h Cursor ON +[ ? 50 l Cursor OFF +[ ? 50 h Cursor ON +7 Save cursor position and character attributes +8 Restore cursor position and character attributes +D Line feed +E Carriage return and line feed +M Reverse Line feed +[ A Cursor up one line +[ B Cursor down one line +[ C Cursor right one column +[ D Cursor left one column +[ * A Cursor up * lines +[ * B Cursor down * lines +[ * C Cursor right * columns +[ * D Cursor left * columns +[ H Cursor home +[ *l ; *c H Move cursor to line *l, column *c +[ *l ; *c f Move curosr to line *l, column *c +Y nl nc Direct cursor addressing (line/column number) +H Tab set at present cursor position +[ 0 g Clear tab at present cursor position +[ 3 g Clear all tabs + +EDIT COMMANDS +~~~~~~~~~~~~ +[ 4 h Insert mode selected +[ 4 l Replacement mode selected +[ ? 14 h Immediate operation of ENTER key +[ ? 14 l Deferred operation of ENTER key +[ ? 16 h Edit selection immediate +[ ? 16 l Edit selection deffered +[ P Delete character from cursor position +[ * P Delete * chars from curosr right +[ M Delete 1 char from cursor position +[ * M Delete * lines from cursor line down +[ J Erase screen from cursor to end +[ 1 J Erase beginning of screen to cursor +[ 2 J Erase entire screen but do not move cursor +[ K Erase line from cursor to end +[ 1 K Erase from beginning of line to cursor +[ 2 K Erase entire line but do not move cursor +[ L Insert 1 line from cursor position +[ * L Insert * lines from cursor position + +ObBusinessHack: Customer wants a CD-ROM multimedia encyclopaedia, so I buy a +Soundblaster Pro for #75 which comes bundled with a multimedia encyclopaedia +CD-ROM. After carefully removing the "not to be sold separately" notice from +the CD, I sell it on for #75. Result: One free Soundblaster Pro and a happy +(but gullible) customer. (Allegedly ;) + +Virtually... :)om + ............................................................................. + : INTERNET: Dom@sound.demon.co.uk :: Tel: 0831-88-42-69 Int:+44-831-884-269 : + : FIDONET: VF10 at node 2:254/14 :: PGP 2.3 public key available via Email : + ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: + + +

IUhbzR8}CQxi2u>xDk-fR_Et7o(Z<5 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 K`8Tmmdirio`0?54OD#PFdx7NCKF&WBNZ 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
LR#6;N3`tpY0NuU!U2m0f2ni%k%tj2CdH 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
qz>RmxT_zim&0P{ITzc- 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 E4>tXY3;+NC literal 0 HcmV?d00001 diff --git a/docs/espterm-hw-small.jpg b/docs/espterm-hw-small.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bef6f18de9e7207af52e3b25f68c6725447c17d6 GIT binary patch literal 63634 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�t-gwEHJsZDH{Z$LCDP(fAxPw)QY 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 WCZ(XkD;CQf#73%QIc2vcXaCs^Yo9Ry literal 0 HcmV?d00001 diff --git a/docs/espterm-xterm.html b/docs/espterm-xterm.html new file mode 100644 index 0000000..a19c158 --- /dev/null +++ b/docs/espterm-xterm.html @@ -0,0 +1,2257 @@ + + + + +ESPTerm supported escape sequences overview + + + +