Code Fingers

A few 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.

  1. 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.
  2. 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).
  3. 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).
  4. 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).
  5. 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).
  6. 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).
  7. 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).
  8. 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).

Generated Code Fingers

Here are all the code fingers I generated at the time. The data for them 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.