Code Fingers
Many years ago, I was wondering how I could display information about the supported escape and control sequences
in DECâs terminals, in a graphical fashion. I hoped to show the evolution of the machines, and also to provide a handy
reference so that someone planning an emulator could see how much work would be involved in moving the emulation from
one generation of terminal to another (e.g. VT100 to VT220).
I called the pictures that I came up with code fingers because I thought they would be like finger
prints for terminals. They are very cryptic, so here is a quick explanation.
Code Finger for VT320
Code Finger for VT320
C0
0đ„
1đ„
0 1 2 3 4 5 6 7 8 9 a b c d e f
NULâNull
SOHâStart Of Heading
STXâStart of Text
ETXâEnd of Text
EOTâEnd Of Transmission
ENQâEnquiry
ACKâAcknowledge
BELâBell
BSâBackspace
HTâCharacter Tabulation
LFâLine Feed
VTâLine Tabulation
FFâForm Feed
CRâCarriage Return
SOâShift-Out
SIâShift-In
DLEâData Link Escape
DC1âDevice Control One
DC2âDevice Control Two
DC3âDevice Control Three
DC4âDevice Control Four
NAKâNegative Acknowledge
SYNâSynchronous Idle
ETBâEnd of Transmission Block
CANâCancel
EMâEnd of Medium
SUBâSubstitute
ESCâEscape
FSâField Separator
GSâGroup Separator
RSâRecord Separator
USâUnit Separator
C1
8đ„
9đ„
BPHâBreak Permitted Here
NBHâNo Break Here
INDâIndex
NELâNext Line
SSAâStart of Selected Area
ESAâEnd of Selected Area
HTSâCharacter Tabulation Set
HTJâCharacter Tabulation with Justification
VTSâLine Tabulation Set
PLDâPartial Line Forward
PLUâPartial Line Backward
RIâReverse Line Feed
SS2âSingle-Shift Two
SS3âSingle-Shift Three
DCSâDevice Control String
PU1âPrivate Use One
PU2âPrivate Use Two
STSâSet Transmit State
CCHâCancel Character
MWâMessage Waiting
SPAâStart of Guarded Area
EPAâEnd of Guarded Area
SOSâStart Of String
DECIDâIdentify Terminal
CSIâControl Sequence Introducer
STâString Terminator
OSCâOperating System Command
PMâPrivacy Message
APCâApplication Program Command
ESC final
4đ„
5đ„
6đ„
7đ„
INDâIndex
NELâNext Line
SSAâStart of Selected Area
ESAâEnd of Selected Area
HTSâCharacter Tabulation Set
HTJâCharacter Tabulation with Justification
VTSâLine Tabulation Set
PLDâPartial Line Forward
PLUâPartial Line Backward
RIâReverse Line Feed
SS2âSingle-Shift Two
SS3âSingle-Shift Three
DCSâDevice Control String
PU1âPrivate Use One
PU2âPrivate Use Two
STSâSet Transmit State
CCHâCancel Character
MWâMessage Waiting
SPAâStart of Guarded Area
EPAâEnd of Guarded Area
SOSâStart Of String
DECIDâIdentify Terminal
CSIâControl Sequence Introducer
STâString Terminator
OSCâOperating System Command
PMâPrivacy Message
APCâApplication Program Command
DMIâDisable Manual Input
INTâInterrupt
EMIâEnable Manual Input
RISâReset to Initial State
CMDâCoding Method Delimiter
LS2âLocking Shift Two
LS3âLocking Shift Three
LS3RâLocking Shift Three Right
LS2RâLocking Shift Two Right
LS1RâLocking Shift One Right
ESC SP final
4đ„
5đ„
6đ„
7đ„
S7C1TâSelect 7-bit C1 Transmission
S8C1TâSelect 8-bit C1 Transmission
ASCEFâAnnounce Subset of Code Extension Facilities
ASCEFâAnnounce Subset of Code Extension Facilities
ASCEFâAnnounce Subset of Code Extension Facilities
ESC inter final
3đ„
20 3đ„
21 3đ„
22 3đ„
23 3đ„
24 3đ„
25 3đ„
26 3đ„
27 3đ„
28 3đ„
29 3đ„
2a 3đ„
2b 3đ„
2c 3đ„
2d 3đ„
2e 3đ„
2f 3đ„
0 1 2 3 4 5 6 7 8 9 a b c d e f
DECHTSâHorizontal Tab Set
DECCAHTâClear All Horizontal Tabs
DECVTSâVertical Tab Set
DECCAVTâClear All Vertical Tabs
DECXMITâTransmit
DECBIâBack Index
DECSCâSave Cursor
DECRCâRestore Cursor
DECFIâForward Index
DECKPAMâKeypad Application Mode
DECKPNMâKeypad Numeric Mode
S7C1RâSelect 7-bit C1 Reception
S8C1RâSelect 8-bit C1 Reception
DECDHLâDouble-Height Line
DECDHLâDouble-Height Line
DECSWLâSingle-Width Line
DECDWLâDouble-Width Line
DECHCPâHardcopy
DECALNâScreen Alignment Display
DECFPPâPositioning
DECTCSâExit NAPLPS
DECSCCSâEnter NAPLPS
DECHPPCLâEnter HP PCL emulation mode
DDD3âReport Hebrew Settings
DDD1âReport Hebrew Settings
CSI final
4đ„
5đ„
6đ„
0 1 2 3 4 5 6 7 8 9 a b c d e f
ICHâInsert Character
CUUâCursor Up
CUDâCursor Down
CUFâCursor Forward (Cursor Right)
CUBâCursor Backward (Cursor Left)
CNLâCursor Next Line
CPLâCursor Preceding Line
CHAâCursor Horizontal (Character) Absolute
CUPâCursor Position
CHTâCursor Horizontal Forward Tabulation
EDâErase in Display (Erase in Page)
ELâErase in Line
ILâInsert Line
DLâDelete Line
EFâErase in Field
EAâErase in Area
DCHâDelete Character
SEMâSelect Editing Extent Mode
CPRâCursor Position Report (Active Position Report)
SUâScroll Up (Pan Down)
SDâScroll Down (Pan Up)
NPâNext Page
PPâPreceding Page
CTCâCursor Tabulation Control
ECHâErase Character
CVTâCursor Vertical Tabulation (Cursor Line Tabulation)
CBTâCursor Backward Tabulation
SRSâStart Reversed String
PTXâParallel Texts
SDSâStart Directed String
SIMDâSelect Implicit Movement Direction
HPAâHorizontal Position Absolute (Character Position Absolute)
HPRâHorizontal Position Relative (Character Position Forward)
REPâRepeat
DA1âPrimary Device Attributes
VPAâVertical Position Absolute (Line Position Absolute)
VPRâVertical Position Relative (Line Position Forward)
HVPâHorizontal and Vertical Position (Character and Line Position)
TBCâTabulation Clear
SMâSet Mode
MCâMedia Copy
HPBâHorizontal Position Backward (Character Position Backward)
VPBâVertical Position Backward (Line Position Backward)
RMâReset Mode
SGRâSet Graphic Rendition
DSRâDevice Status Report
DAQâDefine Area Qualification
CSI SP final
4đ„
5đ„
6đ„
SLâScroll Left
SRâScroll Right
GSMâGraphic Size Modification
GSSâGraphic Size Selection
FNTâFont Selection
TSSâThin Space Specification
JFYâJustify
SPIâSpacing Increment
QUADâQuad
SSUâSelect Size Unit
PFSâPage Format Selection
SHSâSelect Character Spacing
SVSâSelect Line Spacing
IGSâIdentify Graphic Subrepertoire
HTSAâCharacter Tabulation Set Absolute
IDCSâIdentify Device Control String
PPAâPage Position Absolute
PPRâPage Position Relative (Page Position Forward)
PPBâPage Position Backward
SPDâSelect Presentation Directions
DTAâDimension Text Area
SLHâSet Line Home
SLLâSet Line Limit
FNKâFunction Key
SPQRâSelect Print Quality and Rapidity
SEFâSheet Eject and Feed
PECâPresentation Expand or Contract
SSWâSelect Space Width
SACSâSet Additional Character Separation
SAPVâSet Alternative Presentation Variants
STABâSelective Tabulation
GCCâGraphic Character Combination
TATEâTabulation Aligned Trailing Edge
TALEâTabulation Aligned Leading Edge
TACâTabulation Aligned Centred
TCCâTabulation Centred on Character
TSRâTab Stop Remove
SCOâSet Character Orientation
SRCSâSet Reduced Character Separation
SCSâSet Character Spacing
SLSâSet Line Spacing
SPHâSet Page Home
SPLâSet Page Limit
SCPâSelect Character Path
CSI inter final
7đ„
20 7đ„
21 7đ„
22 7đ„
23 7đ„
24 7đ„
25 7đ„
26 7đ„
27 7đ„
28 7đ„
29 7đ„
2a 7đ„
2b 7đ„
2c 7đ„
2d 7đ„
2e 7đ„
2f 7đ„
0 1 2 3 4 5 6 7 8 9 a b c d e
DECSSLâSelect Set-Up Language
DECLLâLoad LEDs
DECSTBMâSet Top and Bottom Margins
DECSLRMâSet Left and Right Margins
DECSLPPâSet Lines per Physical Page
DECSHTSâSet Horizontal Tabulation Stops
DECSVTSâSet Vertical Tabulation Stops
DECSHORPâSet Horizontal Pitch
DECREQTPARMâRequest Terminal Parameters
DECTSTâInvoke Confidence Test
DECVERPâSet Vertical Pitch
DECTTCâSelect Transmit Termination Character
DECPROâSet Protected Field Attributes
DECFNKâFunction Key
DECSSCLSâSet Scroll Speed
DECSCUSRâSet Cursor Style
DECSKCVâSet Keyclick Volume
DECNSâNew Sheet
DECSWBVâSet Warning Bell Volume
DECSMBVâSet Margin Bell Volume
DECSLCKâSet Lock Key Style
DECSITFâSelect Input Tray Failover
DECSDPMâSet Duplex Print Mode
DECVPFSâVariable Page Format Select
DECSSSâSet Sheet Size
DECRVECâDraw Relative Vector
DECKBDâKeyboard Language Selection
DECTMEâTerminal Mode Emulation
DECSTRâSoft Terminal Reset
decVKPPIâPrint Partial Image
DECNVRâNonvolatile RAM Feature Settings
DECFILâRight Justification
DECFNVRâLoading Factory NVR Settings
DECASFCâAutomatic Sheet Feeder Control
DECUNDâProgrammable Underline Character
DECPTSâPrintwheel Table Select
DECSSâSet Space Size
DECVECâDraw Vector
DECFINâDocument Finishing
DECSCLâSet Conformance Level
DECSCAâSelect Character Attributes
DECHPWAâPage Width Alignment
DECSRFRâSelect Refresh Rate
DECSTRLâSet Transmit Rate Limit
DECRQDEâRequest Device Extent
DECRPDEâReport Device Extent
DECFCRâFont Configuration Request
DECDENâSelect Density
DECRFSâRequest Font Status
DECRQMâRequest Mode Settings
DECSDDTâSelect Disconnect Delay Time
DECCARAâChange Attributes in Rectangular Area
DECSPRTTâSelect Printer Type
DECRARAâReverse Attributes in Rectangular Area
DECRQTSRâRequest Terminal State Report
DECCRAâCopy Rectangular Area
DECRQPSRâRequest Presentation State Report
DECFRAâFill Rectangular Area
DECRPMâReport Mode Settings
DECERAâErase Rectangular Area
DECSERAâSelective Erase Rectangular Area
DECSCPPâSet Columns Per Page
DECSASDâSelect Active Status Display
DECSSDTâSelect Status Display Type
DECSNCâSet Number of Copies
DECRQUPSSâRequest User-Preferred Supplemental Set
DECLRPâLocator Report
DECESâEnable Session
DECSPOâSet Page Orientation
DECSGDâSet Graphics Density
DECDLGâDeleting Logos Sequence
DECILGâSelect Logo Sequence
DECFMSRâRequest Forms Status
DECRLGSâRequest Logo Status
DECSBCAâSelect Bar Code Attributes
DECBCSâSetting Block Character Parameters
DECTLTCâTransmit Line Termination Characters
DECEFRâEnable Filter Rectangle
DECELRâEnable Locator Reports
DECSLEâSelect Locator Events
DECRQLPâRequest Locator Position
DECICâInsert Column
DECDCâDelete Column
DECSDPTâSelect Digital Printed Data Type
DECSTGLTâSelect Text/Graphics Look-Up Table
DECSPPCSâSelect ProPrinter Character Set
DECSRCâSecure Reset Confirmation
DECSCSâSelect Communication Speed
DECSFCâSelect Flow Control
DECSCPâSelect Communication Port
DECSACEâSelect Attribute Change Extent
DECRQCRAâRequest Checksum of Rectangular Area
DECINVMâInvoke Macro
DECMSRâMacro Space Report
DECSNLSâSelect Number of Lines per Screen
DECLFKCâLocal Function Key Control
DECSRâSecure Reset
DECELFâEnable Local Functions
DECSMKRâSelect Modifier Key Reporting
DECMMâMemory Management
DECSPPâSet Port Parameter
DECRQPKFMâProgram Key Free Memory Inquiry
DECPKFMRâProgram Key Free Memory Report
DECPKAâProgram Key Action
DECLTODâLoad Time of Day
DECTIDâSelect Terminal ID
DECRQKTâKey Type Inquiry
DECRPKTâReport Key Type
DECRQKDâRequest Key Definition
DECSPMAâSession Page Memory Allocation
DECUSâUpdate Session
DECDLDAâDown Line Load Allocation
DECSZSâSelect Zero Symbol
DECACâAssign Color
DECATCâAlternate Text Color
DECPSâPlay Sound
DECARRâSelect Auto Repeat Rate
DECCRTSTâCRT Saver Timing
DECSESTâEnergy Saver Timing
DCS inter final
7đ„
20 7đ„
21 7đ„
22 7đ„
23 7đ„
24 7đ„
25 7đ„
26 7đ„
27 7đ„
28 7đ„
29 7đ„
2a 7đ„
2b 7đ„
2c 7đ„
2d 7đ„
2e 7đ„
2f 7đ„
0 1 2 3 4 5 6 7 8 9 a b c d e
decREGISâReGIS graphics
decSIXELâSixel graphics
DECLBANâLoad Banner Message
decVKPKâGIGI program keys
decVT105GâEmulate VT105 graphics
DECLANSâLoad Answerback Message
DECLFFâLoad Font File
decTALKâDECtalk Commands and Responses
DECDLDâDownline Load
DECUDKâUser-Defined Keys
DECATFFâAssign Type Family or Font
DECDTFFâDelete Type Family or Font
decGIDISâEnter GIDIS mode
DECAUPSSâAssign User-Preferred Supplemental Set
DECDMACâDefine Macro
DECSTUIâSet Terminal Unit ID (Restricted)
DECRPTUIâReport Terminal Unit Information
DECCKSRâMemory Checksum Report
DECPFKâProgram Function Key
DECPAKâProgram Alphanumeric Key
DECCKDâCopy Key Default
DECFSRâFont Status Report
DECRPFKâReport Function Key Definition
DECRPAKâReport All Modifiers/Alphanumeric Key State
DECRSTSâRestore Terminal State
DECRQSSâRequest Control Function Settings
DECRPSSâReport Control Function Settings
DECTSRâTerminal State Report
DECRSPSâRestore Presentation State
DECTABSRâTab Stop Report
DECLBDâLocator Button Definition
DECLFMâLoading Forms Sequence
DECDFMâDelete Forms Sequence
DECIFMâStart Forms Sequence
DECRFMSâForm Status Report
DECLLGâLoading Logos Sequence
DECLGSRâLogo Status Report
1
2
3
4
4a
5
6
7
8
Code Finger for VT320 terminal
Control Codes . The first two columns show the C0 area, with the first column
running from 0/0 to 0/15 and the second column from 1/0 to 1/15. The second two columns show the C1
area, with the first column running from 8/0 to 8/15 and the second from 9/0 to 9/15.
Standard Escape Sequences . Sequences of the form ESC Fe, where Fe runs from 4/0
(top of first column) to 7/14 (bottom of fourth column).
Standard Escape Sequences . Sequences of the form ESC SP Fe, where Fe runs from
4/0 (top of first column) to 7/14 (bottom of fourth column).
Private Escape Sequences . All private escape sequences end with a character in
the range 3/0 to 3/15. The columns here represent the intermediate characters. The first column is
with no intermediate character, the second is with intermediate character SP (2/0) and the last
column is with intermediate character â/â (2/15).
(4a) is the region devoted to Select Character Set (SCS) sequences, with
final characters that select DEC-private sets. That is why it is sparsely populated: the two grey
squares are the SCS sequences that the VT500-series terminals use as reports to the host when a
Hebrew keyboard is connected.
Standard Control Sequences . Sequences of the form CSI ... F where F runs from
4/0 (top of first column) to 6/15 (bottom of third column).
Standard Control Sequences . Sequences of the form CSI ... SP F where F runs
from 4/0 (top of first column) to 6/15 (bottom of third column).
Private Control Sequences . All private control sequences end with a character
in the range 7/0 to 7/14. The columns here represent the intermediate characters. The first column
is with no intermediate character, the second is with intermediate character SP (2/0) and the last
column is with intermediate character â/â (2/15).
Device Control Sequences . DEC structured these like control sequences, using
final characters in the range 7/0 to 7/14. The columns here represent the intermediate characters.
The first column is with no intermediate character, the second is with intermediate character SP
(2/0) and the last column is with intermediate character â/â (2/15).
The light blue background shows the total available code space, and the light grey squares show
sequences that DEC implemented on at least one of their terminals or printers.
The columns are labelled with the hex codes of the bytes in the sequences, so â3xâ means that
the column covers characters with ASCII codes from 0x30 to 0x3f. For example, take a look at the
square with the green circle around it. This is the function DECALN. This is in the âESC inter
finalâ table under the column labelled â23 3xâ, in the row labelled â8.â So, the sequence for
invoking DECALN is the three bytes 0x1b 0x23 0x38 or, in ASCII, âESC # 8â.
Generated Code Fingers
I have been encouraged to revive this work in 2023, so these fingers have now been regenerated in SVG format.
The data for these comes from the DECronomicon ,
which may be inaccurate. All of these pictures are also image maps; hover over black dots to find out the mnemonic for the sequence.
There are also some difference fingers , which show what changed from one terminal to another. Some of the red dots showing missing features are wrong; I probably missed some escape sequences when skimming the manuals.