Private Control Sequences used by DEC

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.

Control Sequences

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/11
P...P
3/0 to 3/15
I...I
2/0 to 2/15
F
4/0 to 7/14
Control 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

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?

No intermediate byte

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

Intermediate Byte 02/00 (SP)

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

Intermediate Byte 02/01 (!)

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 (~)

Intermediate Byte 02/02 (")

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 (~)

Intermediate Byte 02/03 (#)

No assigned functions.

Intermediate Byte 02/04 ($)

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

Intermediate Byte 02/05 (%)

No assigned functions.

Intermediate Byte 02/06 (&)

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 (~)

Intermediate Byte 02/07 (')

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

Intermediate Byte 02/08 (()

No assigned functions.

Intermediate Byte 02/09 ())

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 (~)

Intermediate Byte 02/10 (*)

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 (~)

Intermediate Byte 02/11 (+)

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 (~)

Intermediate Byte 02/12 (,)

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

Intermediate Byte 02/13 (-)

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 (~)

Intermediate Byte 02/14 (.)

No assigned functions.

Intermediate Byte 02/15 (/)

No assigned functions.