ECMA-48, along with its predecessors and equivalents, ANSI X3.64–1979 and ISO 6429, defines control functions for imaging devices. It also defines extension mechanisms that can be used by manufacturers to control more capable equipment, while still allowing less capable equipment to parse and ignore the extensions. This document only attempts to cover the extensions to control sequences used by Digital Equipment Corporation (DEC) for its terminal and printer equipment.
This document is certainly not complete because I don't own reference manuals for all of DEC's printers or terminals. Please send me any corrections or additions.
This definition of a control sequence is condensed from EK-OLN03-RM, LN03 Programmer Reference Manual:
A control sequence uses two or more bytes to define a specific control function. Control sequences usually include variable parameters. Here is the format for a control sequence.
CSI
9/11P...P
3/0 to 3/15I...I
2/0 to 2/15F
4/0 to 7/14Control sequence introducer Parameter
(zero or more characters)Intermediate
(zero or more characters)Final
(one character)The control sequence introducer is the C1 control character CSI (9/11). You can also use the equivalent 7-bit sequence, ESC (1/11) [ (5/11).
Parameter characters are characters received after CSI, in the 3/0 to 3/15 range. Parameter characters modify the action or interpretation of the sequence.
Intermediate characters are characters received after CSI, in the 2/0 to 2/15 range.
The final character comes from the 4/0 to 7/14 range. The final character indicates the end of the sequence. The intermediate and final characters together define a control function. If there are no intermediate characters, the final character defines the function.
Private control sequences have final characters in the range 7/0 to 7/14. Although any number of intermediate characters may precede the final character, in practice only zero or one will be present. As ECMA-48 notes, using one intermediate character brings the number of available control functions to over a thousand, which should be enough for anyone. I don't know of any sequences used by DEC where there is more than one intermediate character.
The tables below name the control functions assigned by DEC to control sequences with final bytes in the private range, with either zero or one intermediate bytes.
At least one reference to a Digital document is given for each entry. The following documents were used to compile these tables:
If a terminal is listed in the "Present" line, it definitely supports that control function. However, the absence of a name does not mean that the control function is not supported. It might simply mean that I've not been through the appropriate manual thoroughly enough.
Some of these tables are empty. Perhaps Digital avoided populating them because they would break earlier non-ANSI parsers in their equipment, or perhaps they are filled by functions assigned to equipment for which I don't have manuals. Who knows?
| Final Byte | Mnemonic | Description |
|---|---|---|
| 07/00 (p) | DECSSL | Select Set-Up Language Present on VT510, VT520, VT525 VT510-RM |
| 07/01 (q) | DECLL | Load LEDs Present on VT100, VT101, VT102, VT13X, VT510, VT520, VT525 EK-VT100-UG |
| 07/02 (r) | DECSTBM | Set Top and Bottom Margins Present on VT100, VT101, VT102, VT13X, VT220, VT320, VT330, VT420, VT510, VT520, VT525, LN03, LN07, LN05 EK-VT100-UG, VT320-UU p.93, VT420-UU p.139 |
| DECPCTERM | Enter/Exit PCTerm or Scancode Mode Present on VT510, VT520, VT525 |
|
| 07/03 (s) | DECSLRM | Set Left and Right Margins Present on VT420, VT510, VT520, VT525, LA100, LN03, LN07, LN05 LN03-RM §5.5.4, VT420-UU p.139 |
| 07/04 (t) | DECSLPP | Set Lines per Physical Page Present on VT330, VT420, VT510, VT520, VT525, LA100, LN03, LN07, LN05 LN03-RM §5.5.2, VT420-UU p.139 |
| 07/05 (u) | DECSHTS | Set Horizontal Tabulation Stops Present on LA100, LN01, LN03, LQP02, LQP03, LN07, LN05 LN03-RM §5.7.1 |
| 07/06 (v) | DECSVTS | Set Vertical Tabulation Stops Present on LA100, LN03, LN07, LN05 LN03-RM §5.7.2 |
| 07/07 (w) | DECSHORP | Set Horizontal Pitch Present on LA100, LN03, LN07, LN05 LN03-RM §5.45 |
| 07/08 (x) | DECREQTPARM | Request Terminal Parameters Present on VT100, VT13X EK-VT100-UG p.49 |
| DECREPTPARM | Report Terminal Parameters Present on VT100, VT13X EK-VT100-UG p.49 |
|
| 07/09 (y) | DECTST | Invoke Confidence Test Present on VT100, VT101, VT102, VT13X, VT220, VT320, VT420, VT510, VT520, VT525 VT220-RM p.4-53, VT320-UU p.99, VT420-UU p.152 |
| 07/10 (z) | DECVERP | Set Vertical Pitch Present on LA100, LN03, LN07, LN05 LN03-RM §5.4.3 |
| 07/11 ({) | ||
| 07/12 (|) | DECTTC | Select Transmit Termination Character Set the character that will be transmitted at the end of a block. In normal mode, the character is selected from a limited list. In extended mode, one or more arbitrary characters can be sent. Present on VT13X, VT330 |
| 07/13 (}) | DECPRO | Set Protected Field Attributes Present on VT13X, VT330 |
| 07/14 (~) | DECFNK | Function Key Various function key codes, from terminal to host Present on VT100, VT101, VT102, VT220, VT240, VT320, VT420, VT510, VT520, VT525 |
| Final Byte | Mnemonic | Description |
|---|---|---|
| 07/00 (p) | DECSSCLS | Set Scroll Speed Present on VT510, VT520, VT525 VT510-RM |
| 07/01 (q) | DECSCUSR | Set Cursor Style Select the style of the cursor on the screen Present on VT510, VT520, VT525 VT510-RM |
| 07/02 (r) | DECSKCV | Set Keyclick Volume Present on VT510, VT520, VT525 VT510-RM |
| 07/03 (s) | DECNS | New Sheet Present on LN07, LN05 DEC PPL3 |
| 07/04 (t) | DECSWBV | Set Warning Bell Volume Present on VT510, VT520, VT525 VT510-RM |
| 07/05 (u) | DECSMBV | Set Margin Bell Volume Present on VT510, VT520, VT525 VT510-RM |
| 07/06 (v) | DECSLCK | Set Lock Key Style Present on VT510, VT520, VT525 VT510-RM |
| 07/07 (w) | DECSITF | Select Input Tray Failover Present on LN05 DECLA-OG |
| 07/08 (x) | DECSDPM | Set Duplex Print Mode Present on LN07, LN05 |
| 07/09 (y) | ||
| 07/10 (z) | DECVPFS | Variable Page Format Select Present on LN07, LN05 |
| 07/11 ({) | DECSSS | Set Sheet Size Present on LN07, LN05 |
| 07/12 (|) | DECRVEC | Draw Relative Vector Present on LN07, LN05 |
| 07/13 (}) | DECKBD | Keyboard Language Selection Select a national keyboard language on either a VT keyboard or an Enhanced PC keyboard Present on VT510, VT520, VT525 VT510-RM |
| 07/14 (~) | DECTME | Terminal Mode Emulation Present on VT510, VT520, VT525 VT510-RM |
| Final Byte | Mnemonic | Description |
|---|---|---|
| 07/00 (p) | DECSTR | Soft Terminal Reset Present on VT220, VT320, VT330, VT420, VT510, VT520, VT525, LN03, LN07, LN05 VT220-RM p.4-51 |
| 07/01 (q) | ||
| 07/02 (r) | ||
| 07/03 (s) | DECFIL | Right Justification Present on LQP02, LQP03 EK-OLN03-RM, p.178 |
| 07/04 (t) | ||
| 07/05 (u) | ||
| 07/06 (v) | DECASFC | Automatic Sheet Feeder Control Present on LQP02, LQP03, LN07, LN05 |
| 07/07 (w) | DECUND | Programmable Underline Character Present on LQP02, LQP03 EK-OLN03-RM |
| 07/08 (x) | DECPTS | Printwheel Table Select Present on LQP02, LQP03 EK-OLN03-RM, p.179 |
| 07/09 (y) | DECSS | Set Space Size Present on LQP02, LQP03 EK-OLN03-RM |
| 07/10 (z) | ||
| 07/11 ({) | ||
| 07/12 (|) | DECVEC | Draw Vector Draws a horizontal or vertical line Present on LN03, LN07, LN05 LN03-RM §5.12 |
| 07/13 (}) | DECFIN | Document Finishing Instructs the device whether to change the offset at which paper is delivered to the output tray Present on LQP03 DEC PPL3 |
| 07/14 (~) |
| Final Byte | Mnemonic | Description |
|---|---|---|
| 07/00 (p) | DECSCL | Set Conformance Level Restrict a terminal to behaving as an earlier model Present on VT220, VT320, VT330, VT420, VT510, VT520, VT525, LN07, LN05 VT220-RM p.4-5, VT320-UU p.89 |
| 07/01 (q) | DECSCA | Select Character Attributes Sets the current character attribute to protected or unprotected. Only unprotected characters will be affected by selective erase functions. Present on VT220, VT320, VT330, VT420, VT510, VT520, VT525 VT220-RM p.4-29, VT320-UU p.94 |
| 07/02 (r) | ||
| 07/03 (s) | DECPWA | Page Width Alignment Present on LA100 |
| 07/04 (t) | DECSRFR | Select Refresh Rate Present on VT510 VT510-RM |
| 07/05 (u) | DECSTRL | Set Transmit Rate Limit Present on VT510, VT520, VT525 VT510-RM |
| 07/06 (v) | DECRQDE | Request Device Extent Present on VT330, VT420, VT510, VT520, VT525 VT420-UU p.150 |
| 07/07 (w) | DECRPDE | Report Device Extent Present on VT330, VT420, VT510, VT520, VT525 VT420-UU p.150 |
| 07/08 (x) | DECFCR | Font Configuration Request Present on LCP01 TP85 p.E124 |
| 07/09 (y) | ||
| 07/10 (z) | DECDEN | Select Density Present on LA100 |
| 07/11 ({) | DECRFS | Request Font Status Present on LN03, LN07, LN05 LN03-RM §4.6.1 |
| 07/12 (|) | ||
| 07/13 (}) | ||
| 07/14 (~) |
No assigned functions.
| Final Byte | Mnemonic | Description |
|---|---|---|
| 07/00 (p) | DECRQM | Request Mode Settings Present on VT320, VT330, VT420, VT510, VT520, VT525 VT320-UU p.97 |
| 07/01 (q) | DECSDDT | Select Disconnect Delay Time Present on VT510, VT520, VT525 VT510-RM |
| 07/02 (r) | DECCARA | Change Attributes in Rectangular Area This control function lets you change the visual character attributes (bold, blink, reverse video, and underline) of a specified rectangular area in page memory Present on VT420, VT510, VT520, VT525 VT420-UU p.142 |
| 07/03 (s) | DECSPRTT | Select Printer Type Allow users to select a printer type that matches their environment Present on VT510, VT520, VT525 VT510-RM |
| 07/04 (t) | DECRARA | Reverse Attributes in Rectangular Area This control function lets you reverse the visual character attributes (bold, blink, reverse video, and underline) of a specified rectangular area in page memory Present on VT420, VT510, VT520, VT525 VT420-UU p.142 |
| 07/05 (u) | DECRQTSR | Request Terminal State Report Request a terminal state report (DECTSR) or a color table report (DECCTR) on terminals that support it Present on VT320, VT330, VT420, VT510, VT520, VT525 VT320-UU p.96 |
| 07/06 (v) | DECCRA | Copy Rectangular Area This control function copies a rectangular area of characters from one section to another in page memory Present on VT420, VT510, VT520, VT525 VT420-UU p.141 |
| 07/07 (w) | DECRQPSR | Request Presentation State Report Present on VT320, VT330, VT420, VT510, VT520, VT525 VT320-UU p.97 |
| 07/08 (x) | DECFRA | Fill Rectangular Area This control function fills a rectangular area in page memory with a specified character. DECFRA replaces the rectangular area's character positions and attributes with the specified fill character. The fill character assumes the visual character attributes set by the last select graphic rendtion (SGR) command. DECFRA does not change the current line attributes. Present on VT420, VT510, VT520, VT525 VT420-UU p.141 |
| 07/09 (y) | DECRPM | Report Mode Settings Reports the terminal mode in response to a request mode (DECRQM) function. In the response DECRPM informs the host if a certain mode is set (SM - Set Mode) or reset (RM - Reset Mode). Present on VT320, VT330, VT420, VT510, VT520, VT525 VT320-UU p.97 |
| 07/10 (z) | DECERA | Erase Rectangular Area This control function erases characters from the specified rectangular area in page memory. When an area is erased, DECERA replaces all character positions with the space character (2/0). DECERA erases character values and visual attributes from the specified area. DECERA does not erase line attributes. Present on VT420, VT510, VT520, VT525 VT420-UU p.141 |
| 07/11 ({) | DECSERA | Selective Erase Rectangular Area This control function erases all erasable characters from a specified rectangular area in page memory. The select character protection attribute (DECSCA) control function defines whether or not DECSERA can erase characters. Present on VT420, VT510, VT520, VT525 VT420-UU p.142 |
| 07/12 (|) | DECSCPP | Set Columns Per Page Set the terminal to 80 or 132 columns. This is an alternative to DECCOLM. Present on VT330, VT420, VT510, VT520, VT525 VT420-UU p.139 |
| 07/13 (}) | DECSASD | Select Active Status Display Present on VT320, VT330, VT420, VT510, VT520, VT525 VT320-UU p.93 |
| 07/14 (~) | DECSSDT | Select Status Display Type Present on VT320, VT330, VT420, VT510, VT520, VT525 VT320-UU p.93 |
No assigned functions.
| Final Byte | Mnemonic | Description |
|---|---|---|
| 07/00 (p) | ||
| 07/01 (q) | DECSNC | Set Number of Copies Present on LN07, LN05 DEC PPL3 |
| 07/02 (r) | ||
| 07/03 (s) | ||
| 07/04 (t) | ||
| 07/05 (u) | DECRQUPSS | Request User-Preferred Supplemental Set Present on VT320, VT330, VT420, VT510, VT520, VT525 VT420-UU p.150 |
| 07/06 (v) | ||
| 07/07 (w) | DECLRP | Locator Report |
| 07/08 (x) | DECES | Enable Session Make the session receiving this command the active session Present on VT330, VT420, VT520, VT525 VT420-UU p.153 |
| 07/09 (y) | ||
| 07/10 (z) | ||
| 07/11 ({) | ||
| 07/12 (|) | ||
| 07/13 (}) | ||
| 07/14 (~) |
| Final Byte | Mnemonic | Description |
|---|---|---|
| 07/00 (p) | ||
| 07/01 (q) | DECSBCA | Select Bar Code Attributes DEC PPL2 |
| 07/02 (r) | ||
| 07/03 (s) | DECTLTC | Transmit Line Termination Characters Set the characters to be transmitted at the end of lines in block mode. The default is CR. Present on VT330 VT3XX-HR |
| 07/04 (t) | ||
| 07/05 (u) | ||
| 07/06 (v) | ||
| 07/07 (w) | DECEFR | Enable Filter Rectangle |
| 07/08 (x) | ||
| 07/09 (y) | ||
| 07/10 (z) | DECELR | Enable Locator Reports |
| 07/11 ({) | DECSLE | Select Locator Events |
| 07/12 (|) | DECRQLP | Request Locator Position |
| 07/13 (}) | DECIC | Insert Column Inserts one or more columns into the scrolling region, starting with the column that has the cursor Present on VT420, VT510, VT520, VT525 VT420-UU p.140 |
| 07/14 (~) | DECDC | Delete Column Present on VT420, VT510, VT520, VT525 VT420-UU p.140 |
No assigned functions.
| Final Byte | Mnemonic | Description |
|---|---|---|
| 07/00 (p) | DECSDPT | Select Digital Printed Data Type Present on VT510, VT520, VT525 VT510-RM |
| 07/01 (q) | ||
| 07/02 (r) | ||
| 07/03 (s) | ||
| 07/04 (t) | ||
| 07/05 (u) | ||
| 07/06 (v) | ||
| 07/07 (w) | ||
| 07/08 (x) | ||
| 07/09 (y) | ||
| 07/10 (z) | ||
| 07/11 ({) | ||
| 07/12 (|) | ||
| 07/13 (}) | DECSTGLT | Select Text/Graphics Look-Up Table Present on VT330, VT520, VT525 VT3XX-HR,VT520-RM |
| 07/14 (~) |
| Final Byte | Mnemonic | Description |
|---|---|---|
| 07/00 (p) | DECSPPCS | Select ProPrinter Character Set Present on VT510, VT520, VT525 VT510-RM |
| 07/01 (q) | DECSRC | Secure Reset Confirmation Present on VT420, VT510, VT520, VT525 VT420-UU p.152 |
| 07/02 (r) | DECSCS | Select Communication Speed Present on VT510, VT520, VT525 VT510-RM |
| 07/03 (s) | DECSFC | Select Flow Control Select a flow control scheme for the communication port or printer port Present on VT510, VT520, VT525 VT510-RM |
| 07/04 (t) | ||
| 07/05 (u) | DECSCP | Select Communication Port Present on VT510, VT520, VT525 VT510-RM |
| 07/06 (v) | ||
| 07/07 (w) | ||
| 07/08 (x) | DECSACE | Select Attribute Change Extent Present on VT420, VT510, VT520, VT525 VT420-UU, p.142 |
| 07/09 (y) | DECRQCRA | Request Checksum of Rectangular Area Present on VT420, VT510, VT520, VT525 VT420-UU p.149 |
| 07/10 (z) | DECINVM | Invoke Macro Present on VT420, VT510, VT520, VT525 VT420-UU p.128 |
| 07/11 ({) | DECMSR | Macro Space Report Present on VT420, VT510, VT520, VT525 VT420-UU p.148 |
| 07/12 (|) | DECSNLS | Select Number of Lines per Screen Present on VT420, VT510, VT520, VT525 VT420-UU p.146 |
| 07/13 (}) | DECLFKC | Local Function Key Control Present on VT420, VT510, VT520, VT525 VT420-UU p.144 |
| 07/14 (~) |
| Final Byte | Mnemonic | Description |
|---|---|---|
| 07/00 (p) | DECSR | Secure Reset Present on VT420, VT510, VT520, VT525 VT420-UU p.152 |
| 07/01 (q) | DECELF | Enable Local Functions Present on VT420, VT510, VT520, VT525 VT420-UU p.144 |
| 07/02 (r) | DECSMKR | Select Modifier Key Reporting Present on VT420, VT510, VT520, VT525 VT420-UU p.144 |
| 07/03 (s) | ||
| 07/04 (t) | ||
| 07/05 (u) | ||
| 07/06 (v) | DECMM | Memory Management Present on LN07, LN05 |
| 07/07 (w) | DECSPP | Set Port Parameter Present on VT510, VT520, VT525 VT510-RM |
| 07/08 (x) | DECRQPKFM | Program Key Free Memory Inquiry Present on VT510, VT520, VT525 VT510-RM |
| 07/09 (y) | DECPKFMR | Program Key Free Memory Report Present on VT510, VT520, VT525 VT510-RM |
| 07/10 (z) | DECPKA | Program Key Action Present on VT510, VT520, VT525 VT510-RM |
| 07/11 ({) | ||
| 07/12 (|) | ||
| 07/13 (}) | ||
| 07/14 (~) |
| Final Byte | Mnemonic | Description |
|---|---|---|
| 07/00 (p) | DECLTOD | Load Time of Day Present on VT510, VT520, VT525 VT510-RM |
| 07/01 (q) | DECTID | Select Terminal ID Present on VT510, VT520, VT525 VT510-RM |
| 07/02 (r) | ||
| 07/03 (s) | ||
| 07/04 (t) | ||
| 07/05 (u) | DECRQKT | Key Type Inquiry Present on VT510, VT520, VT525 VT510-RM |
| 07/06 (v) | DECRPKT | Report Key Type DECRPKT (from the terminal) is a response to a key type enquiry (DECRQKT) Present on VT510, VT520, VT525 VT510-RM |
| 07/07 (w) | DECRQKD | Request Key Definition Present on VT510, VT520, VT525 VT510-RM |
| 07/08 (x) | DECSPMA | Session Page Memory Allocation Allocates 25 line pages to each session according to the corresponding parameters Present on VT520, VT525 VT520-RM |
| 07/09 (y) | DECUS | Update Session Controls how display memory is updated for this session when it is not active Present on VT520, VT525 VT520-RM |
| 07/10 (z) | DECDLDA | Down Line Load Allocation Controls the number of soft character sets allowed per session (monochrome terminals only) Present on VT520, VT525 VT520-RM |
| 07/11 ({) | DECSZS | Select Zero Symbol Selects the style of the zero displayed in text Present on VT520, VT525 VT520-RM |
| 07/12 (|) | DECAC | Assign Color Selects the colors used for normal text Present on VT520, VT525 VT520-RM |
| 07/13 (}) | DECATC | Alternate Text Color Selects the colors used for text attribute combinations Present on VT520, VT525 VT520-RM |
| 07/14 (~) | DECPS | Play Sound Controls the sound frequency of notes (one at a time) Present on VT520, VT525 VT520-RM |
| Final Byte | Mnemonic | Description |
|---|---|---|
| 07/00 (p) | DECARR | Select Auto Repeat Rate Present on VT520, VT525 VT520-RM |
| 07/01 (q) | DECCRTST | CRT Saver Timing Controls the timing of the CRT screen saver Present on VT520, VT525 VT520-RM |
| 07/02 (r) | DECSEST | Energy Saver Timing Selects the energy saver timing Present on VT520, VT525 VT520-RM |
| 07/03 (s) | ||
| 07/04 (t) | ||
| 07/05 (u) | ||
| 07/06 (v) | ||
| 07/07 (w) | ||
| 07/08 (x) | ||
| 07/09 (y) | ||
| 07/10 (z) | ||
| 07/11 ({) | ||
| 07/12 (|) | ||
| 07/13 (}) | ||
| 07/14 (~) |
No assigned functions.
No assigned functions.