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.
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 |
07/01 (q) | DECLL | Load LEDs Present on VK100, VT100, VT101, VT102, VT105, VT125, VT132, VT510, VT520, VT525 |
07/02 (r) | DECSTBM | Set Top and Bottom Margins Present on LA100, LA12, LA210, LA34, LA75, LCG01, LJ250, LN01, LN03, LN05, LN07, LN08, LQP02, LQP03, VT100, VT101, VT102, VT105, VT125, VT131, VT132, VT220, VT240, VT320, VT330, VT382, VT382-T, VT420, VT510, VT520, VT525 |
DECPCTERM | Enter/Exit PCTerm or Scancode Mode Present on VT420, VT510, VT520, VT525 |
|
07/03 (s) | DECSLRM | Set Left and Right Margins Present on LA100, LA12, LA210, LA34, LA75, LCG01, LJ250, LN01, LN03, LN05, LN07, LN08, LQP02, LQP03, VT420, VT510, VT520, VT525 |
07/04 (t) | DECSLPP | Set Lines per Physical Page Present on LA100, LA12, LA210, LA34, LA50, LA75, LJ250, LN01, LN03, LN05, LN07, LN08, LQP03, VT330, VT420, VT510, VT520, VT525 |
07/05 (u) | DECSHTS | Set Horizontal Tabulation Stops Present on LA100, LA12, LA210, LA34, LA75, LCG01, LJ250, LN01, LN03, LN05, LN07, LN08, LQP02, LQP03 |
07/06 (v) | DECSVTS | Set Vertical Tabulation Stops Present on LA100, LA12, LA210, LA34, LA75, LCG01, LJ250, LN01, LN03, LN05, LN07, LN08, LQP02, LQP03 |
07/07 (w) | DECSHORP | Set Horizontal Pitch Present on LA100, LA12, LA210, LA34, LA50, LA75, LJ250, LN03, LN05, LN07, LN08, LQP02, LQP03 |
07/08 (x) | DECREQTPARM | Request Terminal Parameters Present on VT100, VT105, VT132 |
DECREPTPARM | Report Terminal Parameters Present on VT100, VT105, VT132 |
|
07/09 (y) | DECTST | Invoke Confidence Test Present on DTC01, DTC03, LCG01, VK100, VT100, VT101, VT102, VT105, VT125, VT131, VT132, VT220, VT240, VT320, VT382, VT382-T, VT420, VT510, VT520, VT525 |
07/10 (z) | DECVERP | Set Vertical Pitch Present on LA100, LA12, LA210, LA34, LA50, LA75, LJ250, LN03, LN05, LN07, LN08, LQP02, LQP03 |
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 VT131, VT132, VT330 |
07/13 (}) | DECPRO | Set Protected Field Attributes Present on VT131, VT132, VT330 |
07/14 (~) | DECFNK | Function Key Various function key codes, from terminal to host Present on VT220, VT240, VT320, VT330, VT382, VT382-T, VT420, VT510, VT520, VT525 |
Final Byte | Mnemonic | Description |
---|---|---|
07/00 (p) | DECSSCLS | Set Scroll Speed Present on VT510, VT520, VT525 |
07/01 (q) | DECSCUSR | Set Cursor Style Select the style of the cursor on the screen Present on VT510, VT520, VT525 |
07/02 (r) | DECSKCV | Set Keyclick Volume Present on VT510, VT520, VT525 |
07/03 (s) | DECNS | New Sheet Present on LN05, LN07, LN08 |
07/04 (t) | DECSWBV | Set Warning Bell Volume Present on VT510, VT520, VT525 |
07/05 (u) | DECSMBV | Set Margin Bell Volume Present on VT510, VT520, VT525 |
07/06 (v) | DECSLCK | Set Lock Key Style Present on VT510, VT520, VT525 |
07/07 (w) | DECSITF | Select Input Tray Failover Present on LN05, LN08 |
07/08 (x) | DECSDPM | Set Duplex Print Mode Present on LN05, LN07, LN08 |
07/09 (y) | ||
07/10 (z) | DECVPFS | Variable Page Format Select Present on LN05, LN07, LN08 |
07/11 ({) | DECSSS | Set Sheet Size Present on LN05, LN07, LN08 |
07/12 (|) | DECRVEC | Draw Relative Vector Present on LN05, LN07, LN08 |
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 |
07/14 (~) | DECTME | Terminal Mode Emulation Present on VT510, VT520, VT525 |
Final Byte | Mnemonic | Description |
---|---|---|
07/00 (p) | DECSTR | Soft Terminal Reset Present on DTC01, DTC03, LA75, LJ250, LN03, LN05, LN07, LN08, VT220, VT240, VT320, VT330, VT382, VT382-T, VT420, VT510, VT520, VT525 |
07/01 (q) | decVKPPI | Print Partial Image Present on VK100 |
07/02 (r) | DECNVR | Nonvolatile RAM Feature Settings DECtalk store and restore NVR settings Present on DTC01, DTC03 |
07/03 (s) | DECFIL | Right Justification Present on LQP02, LQP03 |
07/04 (t) | ||
07/05 (u) | DECFNVR | Loading Factory NVR Settings Present on LA75 |
07/06 (v) | DECASFC | Automatic Sheet Feeder Control Present on LA75, LJ250, LN01, LN05, LN07, LN08, LQP02, LQP03 |
07/07 (w) | DECUND | Programmable Underline Character Present on LQP02, LQP03 |
07/08 (x) | DECPTS | Printwheel Table Select Present on LQP02, LQP03 |
07/09 (y) | DECSS | Set Space Size Present on LQP02, LQP03 |
07/10 (z) | ||
07/11 ({) | ||
07/12 (|) | DECVEC | Draw Vector Draws a horizontal or vertical line Present on LN01, LN03, LN05, LN07, LN08 |
07/13 (}) | DECFIN | Document Finishing Instructs the device whether to change the offset at which paper is delivered to the output tray Present on LN08, LQP03 |
07/14 (~) |
Final Byte | Mnemonic | Description |
---|---|---|
07/00 (p) | DECSCL | Set Conformance Level Restrict a terminal to behaving as an earlier model Present on DTC03, LA75, LJ250, LN05, LN07, LN08, VT220, VT240, VT320, VT330, VT382, VT382-T, VT420, VT510, VT520, VT525 |
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, VT240, VT320, VT330, VT382, VT382-T, VT420, VT510, VT520, VT525 |
07/02 (r) | ||
07/03 (s) | DECPWA | Page Width Alignment Present on LA100, LA210, LA75, LJ250 |
07/04 (t) | DECSRFR | Select Refresh Rate Present on VT510 |
07/05 (u) | DECSTRL | Set Transmit Rate Limit Present on VT510, VT520, VT525 |
07/06 (v) | DECRQDE | Request Device Extent Present on VT330, VT420, VT510, VT520, VT525 |
07/07 (w) | DECRPDE | Report Device Extent Present on VT330, VT420, VT510, VT520, VT525 |
07/08 (x) | DECFCR | Font Configuration Request Present on LCP01 Present on LCG01, LCP01 |
07/09 (y) | ||
07/10 (z) | DECDEN | Select Density Present on LA100, LA210, LA50, LA75 |
07/11 ({) | DECRFS | Request Font Status Present on LN03, LN05, LN07, LN08 |
07/12 (|) | ||
07/13 (}) | ||
07/14 (~) |
No assigned functions.
Final Byte | Mnemonic | Description |
---|---|---|
07/00 (p) | DECRQM | Request Mode Settings Present on VT320, VT330, VT382, VT382-T, VT420, VT510, VT520, VT525 |
07/01 (q) | DECSDDT | Select Disconnect Delay Time Present on VT510, VT520, VT525 |
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 |
07/03 (s) | DECSPRTT | Select Printer Type Allow users to select a printer type that matches their environment Present on VT510, VT520, VT525 |
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 |
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, VT382, VT382-T, VT420, VT510, VT520, VT525 |
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 |
07/07 (w) | DECRQPSR | Request Presentation State Report Present on VT320, VT330, VT382, VT382-T, VT420, VT510, VT520, VT525 |
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 |
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, VT382, VT382-T, VT420, VT510, VT520, VT525 |
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 |
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 |
07/12 (|) | DECSCPP | Set Columns Per Page Set the terminal to 80 or 132 columns. This is an alternative to DECCOLM. Present on LQP02, VT330, VT420, VT510, VT520, VT525 |
07/13 (}) | DECSASD | Select Active Status Display Present on VT320, VT330, VT382, VT382-T, VT420, VT510, VT520, VT525 |
07/14 (~) | DECSSDT | Select Status Display Type Present on VT320, VT330, VT382, VT382-T, VT420, VT510, VT520, VT525 |
No assigned functions.
Final Byte | Mnemonic | Description |
---|---|---|
07/00 (p) | ||
07/01 (q) | DECSNC | Set Number of Copies Present on LCG01, LN05, LN07, LN08 |
07/02 (r) | ||
07/03 (s) | ||
07/04 (t) | ||
07/05 (u) | DECRQUPSS | Request User-Preferred Supplemental Set Present on VT320, VT330, VT382, VT382-T, VT420, VT510, VT520, VT525 |
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 |
07/09 (y) | ||
07/10 (z) | DECSPO | Set Page Orientation |
07/11 ({) | DECSGD | Set Graphics Density |
07/12 (|) | DECDLG | Deleting Logos Sequence |
07/13 (}) | DECILG | Select Logo Sequence |
07/14 (~) | DECFMSR | Request Forms Status |
Final Byte | Mnemonic | Description |
---|---|---|
07/00 (p) | DECRLGS | Request Logo Status |
07/01 (q) | DECSBCA | Select Bar Code Attributes |
07/02 (r) | DECBCS | Setting Block Character Parameters |
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 |
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 |
07/14 (~) | DECDC | Delete Column Present on VT420, VT510, VT520, VT525 |
No assigned functions.
Final Byte | Mnemonic | Description |
---|---|---|
07/00 (p) | DECSDPT | Select Digital Printed Data Type Present on VT510, VT520, VT525 |
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 |
07/14 (~) |
Final Byte | Mnemonic | Description |
---|---|---|
07/00 (p) | DECSPPCS | Select ProPrinter Character Set Present on VT510, VT520, VT525 |
07/01 (q) | DECSRC | Secure Reset Confirmation Present on VT420, VT510, VT520, VT525 |
07/02 (r) | DECSCS | Select Communication Speed Present on VT510, VT520, VT525 |
07/03 (s) | DECSFC | Select Flow Control Select a flow control scheme for the communication port or printer port Present on VT510, VT520, VT525 |
07/04 (t) | ||
07/05 (u) | DECSCP | Select Communication Port Present on VT510, VT520, VT525 |
07/06 (v) | ||
07/07 (w) | ||
07/08 (x) | DECSACE | Select Attribute Change Extent Present on VT420, VT510, VT520, VT525 |
07/09 (y) | DECRQCRA | Request Checksum of Rectangular Area Present on VT420, VT510, VT520, VT525 |
07/10 (z) | DECINVM | Invoke Macro Present on VT420, VT510, VT520, VT525 |
07/11 ({) | DECMSR | Macro Space Report Present on VT420, VT510, VT520, VT525 |
07/12 (|) | DECSNLS | Select Number of Lines per Screen Present on VT420, VT510, VT520, VT525 |
07/13 (}) | DECLFKC | Local Function Key Control Present on VT420, VT510, VT520, VT525 |
07/14 (~) |
Final Byte | Mnemonic | Description |
---|---|---|
07/00 (p) | DECSR | Secure Reset Present on VT420, VT510, VT520, VT525 |
07/01 (q) | DECELF | Enable Local Functions Present on VT420, VT510, VT520, VT525 |
07/02 (r) | DECSMKR | Select Modifier Key Reporting Present on VT420, VT510, VT520, VT525 |
07/03 (s) | ||
07/04 (t) | ||
07/05 (u) | ||
07/06 (v) | DECMM | Memory Management Present on LN05, LN07, LN08 |
07/07 (w) | DECSPP | Set Port Parameter Present on VT510, VT520, VT525 |
07/08 (x) | DECRQPKFM | Program Key Free Memory Inquiry Present on VT510, VT520, VT525 |
07/09 (y) | DECPKFMR | Program Key Free Memory Report Present on VT510, VT520, VT525 |
07/10 (z) | DECPKA | Program Key Action Present on VT510, VT520, VT525 |
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 |
07/01 (q) | DECTID | Select Terminal ID Present on VT510, VT520, VT525 |
07/02 (r) | ||
07/03 (s) | ||
07/04 (t) | ||
07/05 (u) | DECRQKT | Key Type Inquiry Present on VT510, VT520, VT525 |
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 |
07/07 (w) | DECRQKD | Request Key Definition Present on VT510, VT520, VT525 |
07/08 (x) | DECSPMA | Session Page Memory Allocation Allocates 25 line pages to each session according to the corresponding parameters Present on VT520, VT525 |
07/09 (y) | DECUS | Update Session Controls how display memory is updated for this session when it is not active Present on VT520, VT525 |
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 |
07/11 ({) | DECSZS | Select Zero Symbol Selects the style of the zero displayed in text Present on VT520, VT525 |
07/12 (|) | DECAC | Assign Color Selects the colors used for normal text Present on VT520, VT525 |
07/13 (}) | DECATC | Alternate Text Color Selects the colors used for text attribute combinations Present on VT520, VT525 |
07/14 (~) | DECPS | Play Sound Controls the sound frequency of notes (one at a time) Present on VT520, VT525 |
Final Byte | Mnemonic | Description |
---|---|---|
07/00 (p) | DECARR | Select Auto Repeat Rate Present on VT520, VT525 |
07/01 (q) | DECCRTST | CRT Saver Timing Controls the timing of the CRT screen saver Present on VT520, VT525 |
07/02 (r) | DECSEST | Energy Saver Timing Selects the energy saver timing Present on VT520, VT525 |
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.
At least one reference to a Digital document is given for each entry. The following documents were used to compile these tables: