DEC Technical Character Set (TCS)

Screenshot of the Technical Character Set on a VT420

The Technical Character Set appears on Digital terminals from the VT330 and VT420 onwards. It is a 94-character set containing mathematical symbols and Greek letters. You can see how a VT420 terminal displays the set in the picture on the right. The sigma and larger brackets are made up from smaller joining characters.

In Digital’s terminal and printer manuals, this set is only documented by pictures of the characters (“glyphs”). These glyphs often don’t provide enough information as to the purpose of the characters and there are places where the manuals disagree with each other. I have examined the VT3XX and VT420 manuals and the shapes of the characters as displayed by the VT330, VT420 and VT520 terminals, and an LN03 laser printer. I’ll cover the mistakes in the manuals later.

The main impetus for this page came from discussions with Frank da Cruz of the Kermit Project, who proposed a set of terminal graphics for inclusion in Unicode, including some from the Technical Set. Some of the TCS characters were already in Unicode and some others were covered by another proposal called STIX. In order to be sure that a small but sufficient set of characters was proposed, we needed to be sure what all the characters in TCS meant. Most of the proposed characters made it into Unicode 3.2.

Character set

These characters were scanned from a printout obtained from an LN03 laser printer. The characters 02/01 to 03/07 join to adjacent character positions to make large symbols (as illustrated in the VT420 screenshot, above). I have placed a light line around them to show how they join.

There are actually no blanks (spaces) in this set; all undefined positions will cause the substitute character (a reversed question mark) to be displayed. This reversed question mark has now made it into Unicode 3.0 as U+2426, SYMBOL FOR SUBSTITUTE FORM TWO.

Column by column

The following tables describe all the characters in the TCS. Some of the characters have equivalents in Unicode, so the table shows the Unicode reference (number and name) for these. I have guessed at some of the associations between TCS and Unicode characters because I’m not sure what the joining properties of the Unicode characters are; I’ve placed the Unicode reference for these in parentheses.

col/row Unicode Name Description
02/01 U+23B7 RADICAL SYMBOL BOTTOM Centred left to right, so that it joins up with 02/02
02/02 U+250C BOX DRAWINGS LIGHT DOWN AND RIGHT
02/03 U+2500 BOX DRAWINGS LIGHT HORIZONTAL
02/04 U+2320 TOP HALF INTEGRAL with the proviso that the stem is vertical, to join with 02/06
02/05 U+2321 BOTTOM HALF INTEGRAL with the proviso above.
02/06 U+2502 BOX DRAWINGS LIGHT VERTICAL
02/07 U+23A1 LEFT SQUARE BRACKET UPPER CORNER Joins vertically to 02/06, 02/08. Doesn’t join to its right.
02/08 U+23A3 LEFT SQUARE BRACKET LOWER CORNER Joins vertically to 02/06, 02/07. Doesn’t join to its right.
02/09 U+23A4 RIGHT SQUARE BRACKET UPPER CORNER Joins vertically to 02/06, 02/10. Doesn’t join to its left.
02/10 U+23A6 RIGHT SQUARE BRACKET LOWER CORNER Joins vertically to 02/06, 02/09. Doesn’t join to its left.
02/11 U+239B LEFT PARENTHESIS UPPER HOOK Joins vertically to 02/06, 02/12, 02/15. Doesn’t join to its right.
02/12 U+239D LEFT PARENTHESIS LOWER HOOK Joins vertically to 02/06, 02/11, 02/15. Doesn’t join to its right.
02/13 U+239E RIGHT PARENTHESIS UPPER HOOK Joins vertically to 02/06, 02/14, 03/00. Doesn’t join to its left.
02/14 U+23A0 RIGHT PARENTHESIS LOWER HOOK Joins vertically to 02/06, 02/13, 03/00. Doesn’t join to its left.
02/15 U+23A8 LEFT CURLY BRACKET MIDDLE PIECE Joins vertically to 02/06, 02/11, 02/12.
col/row Unicode Name Description
03/00 U+23AC RIGHT CURLY BRACKET MIDDLE PIECE Joins vertically to 02/06, 02/13, 02/14.
03/01 Top Left Sigma. Joins to right with 02/03, 03/05. Joins diagonally below right with 03/03, 03/07.
03/02 Bottom Left Sigma. Joins to right with 02/03, 03/06. Joins diagonally above right with 03/04, 03/07.
03/03 Top Diagonal Sigma. Line for joining 03/01 to 03/04 or 03/07.
03/04 Bottom Diagonal Sigma. Line for joining 03/02 to 03/03 or 03/07.
03/05 Top Right Sigma. Joins to left with 02/03, 03/01.
03/06 Bottom Right Sigma. Joins to left with 02/03, 03/02.
03/07 Middle Sigma. Joins diagonally with 03/01, 03/02, 03/03, 03/04.
03/08 undefined
03/09 undefined
03/10 undefined
03/11 undefined
03/12 U+2264 LESS-THAN OR EQUAL TO
03/13 U+2260 NOT EQUAL TO
03/14 U+2265 GREATER-THAN OR EQUAL TO
03/15 U+222B INTEGRAL
col/row Unicode Name Description
04/00 U+2234 THEREFORE
04/01 U+221D PROPORTIONAL TO
04/02 U+221E INFINITY
04/03 U+00F7 DIVISION SIGN
04/04 U+0394 GREEK CAPITAL DELTA
04/05 U+2207 NABLA
04/06 U+03A6 GREEK CAPITAL LETTER PHI
04/07 U+0393 GREEK CAPITAL LETTER GAMMA
04/08 U+223C TILDE OPERATOR
04/09 U+2243 ASYMPTOTICALLY EQUAL TO
04/10 U+0398 GREEK CAPITAL LETTER THETA
04/11 U+00D7 MULTIPLICATION SIGN
04/12 U+039B GREEK CAPITAL LETTER LAMDA
04/13 U+21D4 LEFT RIGHT DOUBLE ARROW
04/14 U+21D2 RIGHTWARDS DOUBLE ARROW
04/15 U+2261 IDENTICAL TO
col/row Unicode Name Description
05/00 U+03A0 GREEK CAPITAL LETTER PI
05/01 U+03A8 GREEK CAPITAL LETTER PSI
05/02 undefined
05/03 U+03A3 GREEK CAPITAL LETTER SIGMA
05/04 undefined
05/05 undefined
05/06 U+221A SQUARE ROOT
05/07 U+03A9 GREEK CAPITAL LETTER OMEGA
05/08 U+039E GREEK CAPITAL LETTER XI
05/09 U+03A5 GREEK CAPITAL LETTER UPSILON
05/10 U+2282 SUBSET OF
05/11 U+2283 SUPERSET OF
05/12 U+2229 INTERSECTION
05/13 U+222A UNION
05/14 U+2227 LOGICAL AND
05/15 U+2228 LOGICAL OR
col/row Unicode Name Description
06/00 U+00AC NOT SIGN
06/01 U+03B1 GREEK SMALL LETTER ALPHA
06/02 U+03B2 GREEK SMALL LETTER BETA
06/03 U+03C7 GREEK SMALL LETTER CHI
06/04 U+03B4 GREEK SMALL LETTER DELTA
06/05 U+03B5 GREEK SMALL LETTER EPSILON
06/06 U+03C6 GREEK SMALL LETTER PHI
06/07 U+03B3 GREEK SMALL LETTER GAMMA
06/08 U+03B7 GREEK SMALL LETTER ETA
06/09 U+03B9 GREEK SMALL LETTER IOTA
06/10 U+03B8 GREEK SMALL LETTER THETA
06/11 U+03BA GREEK SMALL LETTER KAPPA
06/12 U+03BB GREEK SMALL LETTER LAMDA
06/13 undefined
06/14 U+03BD GREEK SMALL LETTER NU
06/15 U+2202 PARTIAL DIFFERENTIAL
col/row Unicode Name Description
07/00 U+03C0 GREEK SMALL LETTER PI
07/01 U+03C8 GREEK SMALL LETTER PSI
07/02 U+03C1 GREEK SMALL LETTER RHO
07/03 U+03C3 GREEK SMALL LETTER SIGMA
07/04 U+03C4 GREEK SMALL LETTER TAU
07/05 undefined
07/06 U+0192 LATIN SMALL LETTER F WITH HOOK Probably chosen for its meaning of “function”
07/07 U+03C9 GREEK SMALL LETTER OMEGA
07/08 U+03BE GREEK SMALL LETTER XI
07/09 U+03C5 GREEK SMALL LETTER UPSILON
07/10 U+03B6 GREEK SMALL LETTER ZETA
07/11 U+2190 LEFTWARDS ARROW
07/12 U+2191 UPWARDS ARROW
07/13 U+2192 RIGHTWARDS ARROW
07/14 U+2193 DOWNWARDS ARROW

Reading the manuals

This section names the manuals I’ve consulted in order to write this document, and explains any differences between the manuals and this page.

The diagram in EK-VT420-UU-002, Installing and Using the VT420 Video Terminal, is particularly indistinct, and contains one mistake; it swaps 07/05 and 07/06. You might also get the impression that 03/05 and 06/00 are identical, and that 05/09 is a ‘T’. The VT420 itself shows 05/09 (capital Upsilon) with a distinct hook, but I’ve concluded that this character is not intended to be U+03D2 GREEK CAPITAL LETTER UPSILON HOOK because the VT520 displays a more straightforward ‘Y’ shape.

The diagram in EK-VT3XX-HR-001, VT330/VT340 Programmer Pocket Guide, is also small but accurate.

The largest diagram I’ve seen is in EK-0LN03-RM-002, LN03 Programmer Reference Manual.