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.

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
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

Intermediate byte 02/00 (SP)

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

Intermediate byte 02/01 (!)

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

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

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, 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

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 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

Intermediate byte 02/07 (')

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

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

Intermediate byte 02/10 (*)

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

Intermediate byte 02/11 (+)

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

Intermediate byte 02/12 (,)

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

Intermediate byte 02/13 (-)

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

Intermediate byte 02/14 (.)

No assigned functions.

Intermediate byte 02/15 (/)

No assigned functions.

Sources

At least one reference to a Digital document is given for each entry. The following documents were used to compile these tables: