CDC display code explained

Display code is the six-bit character code used by many computer systems manufactured by Control Data Corporation, notably the CDC 6000 series in 1964, the 7600 in 1967 and the following Cyber series in 1971. The CDC 6000 series and their successors had 60 bit words. As such, typical usage packed 10 characters per word. It is a six-bit extension of the four-bit BCD encoding, and was referred to as BCDIC (BCD interchange code.)

Overview

There were several variations of display code, notably the 63-character character set, and the 64-character character set. There were also 'CDC graphic' and 'ASCII graphic' variants of both the 63- and 64-character sets. The choice between 63- or 64-character character set, and between CDC or ASCII graphic was site-selectable. Generally, early CDC customers started out with the 63-character character set, and CDC graphic print trains on their line printers. As time-sharing became prevalent, almost all sites used the ASCII variant - so that line printer output would match interactive usage. Later CDC customers were also more likely to use the 64-character character set.

A later variation, called 6/12 display code, was used in the Kronos and NOS timesharing systems in order to support full ASCII capabilities. In 6/12 mode, an escape character (the circumflex, octal 76) would indicate that the following letter was lower case. Thus, upper case and other characters were 6 bits in length, and lower case characters were 12 bits in length.

The PLATO system used a further variant of 6/12 display code. Noting that lower case letters were most common in typical PLATO usage, the roles were reversed. Lower case letters were the norm, and the escape character preceded upper case letters.

The typical text file format used a zero-byte terminator to signify the end of each record. The zero-byte terminator was indicated by, at least, the final twelve bits of a 60-bit word being set to zero.[1] The terminator could actually be anywhere from 12- to 66-bits long - depending on the length of the record. This caused an ambiguity in the 64-character character set, when a colon character needed to be the final character in a record. In such cases a blank character was typically appended to the record after the trailing colon.

Display code characters

64-character character set version

ASCII CDC
Binary Decimal Octal Graphic Graphic Name
000 000 0 00 colon[2]
000 001 1 01 A A
000 010 2 02 B B
000 011 3 03 C C
000 100 4 04 D D
000 101 5 05 E E
000 110 6 06 F F
000 111 7 07 G G
001 000 8 10 H H
001 001 9 11 I I
001 010 10 12 J J
001 011 11 13 K K
001 100 12 14 L L
001 101 13 15 M M
001 110 14 16 N N
001 111 15 17 O O
010 000 16 20 P P
010 001 17 21 Q Q
010 010 18 22 R R
010 011 19 23 S S
010 100 20 24 T T
010 101 21 25 U U
010 110 22 26 V V
010 111 23 27 W W
011 000 24 30 X X
011 001 25 31 Y Y
011 010 26 32 Z Z
011 011 27 33 0 0
011 100 28 34 1 1
011 101 29 35 2 2
011 110 30 36 3 3
011 111 31 37 4 4
ASCII CDC
Binary Decimal Octal Graphic Graphic Name
100 000 32 40 5 5
100 001 33 41 6 6
100 010 34 42 7 7
100 011 35 43 8 8
100 100 36 44 9 9
100 101 37 45 + +
100 110 38 46 - -
100 111 39 47
101 000 40 50 / /
101 001 41 51 ((
101 010 42 52 ) )
101 011 43 53 $ $
101 100 44 54 = =
101 101 45 55     blank
101 110 46 56 , ,
101 111 47 57 . .
110 000 48 60 equiv
110 001 49 61 [|| [ || |- | 110 010 || 50 || 62 || ] || ]
110 011 51 63 % % [3]
110 100 52 64 " not eq
110 101 53 65 _ concat[4]
111 010 58 72 < <
111 011 59 73 > >
111 100 60 74 @
111 101 61 75 \
111 110 62 76 ^ ¬ NOT
111 111 63 77
  1. CDC often used the term byte to refer to 12-bit quantities, even though characters were only 6-bits long.
  2. Display code 00 has no associated graphic in the 63-character set
  3. Display code 63 (octal) is a : (colon) in the 63-character set
  4. In CDC PASCAL, this is the left brace,, character

6/12 display code

The NOS 6/12 display code is one of the character sets used on CDC Cyber NOS computers to represent all ASCII characters.

ASCII display code
Dec Hex Abbr Dec Oct 6/12
0 00 62 32 76 40 ^5
1 01 62 33 76 41 ^6
2 02 62 34 76 42 ^7
3 03 62 35 76 43 ^8
4 04 62 36 76 44 ^9
5 05 62 37 76 45 ^+
6 06 62 38 76 46 ^-
7 07 62 39 76 47 ^*
8 08 BS 62 40 76 50 ^/
9 09 62 41 76 51 ^(
10 0A LF 62 42 76 52 ^)
11 0B 62 43 76 53 ^$
12 0C FF 62 44 76 54 ^=
13 0D 62 45 76 55
14 0E 62 46 76 56 ^,
15 0F 62 47 76 57 ^.
16 10 62 48 76 60 ^#
17 11 62 49 76 61 ^[|- | style="background:#CFF;"| 18 ||style="background:lightblue;"| 12 || DC2 ||style="background:#CFF;"| 62 50 ||style="background:lightblue;"| 76 62 || ^]
19 13 DC3 62 51 76 63 ^%
20 14 DC4 62 52 76 64 ^"
21 15 62 53 76 65 ^_
22 16 62 54 76 66 ^!
23 17 62 55 76 67 ^&
24 18 62 56 76 70 ^'
25 19 62 57 76 71 ^?
26 1A 62 58 76 72 ^<
27 1B 62 59 76 73 ^>
28 1C 62 60 76 74 ^@
29 1D 62 61 76 75 ^\
30 1E 62 62 76 76 ^^
31 1F 62 63 76 77 ^;
ASCII display code
Dec Hex Glyph Dec Oct 6/12
32 20 45 55
33 21 54 66 !
34 22 52 64 "
35 23 48 60
36 24 43 53 $
37 25 51 63 %
38 26 & 55 67 &
39 27 ' 56 70 '
40 28 41 51 (
41 29 42 52 )
42 2A 39 47
43 2B + 37 45 +
44 2C 46 56 ,
45 2D 38 46 -
46 2E . 47 57 .
47 2F 40 50 /
48 30 0 27 33 0
49 31 1 28 34 1
50 32 2 29 35 2
51 33 3 30 36 3
52 34 4 31 37 4
53 35 5 32 40 5
54 36 6 33 41 6
55 37 7 34 42 7
56 38 8 35 43 8
57 39 9 36 44 9
58 3A 60 4 74 04 @D
59 3B 63 77
60 3C 58 72 <
61 3D 44 54 =
62 3E 59 73 >
63 3F 57 71 ?
ASCII display code
Dec Hex Glyph Dec Oct 6/12
64 40 60 1 74 01 @A
65 41 1 01 A
66 42 2 02 B
67 43 3 03 C
68 44 4 04 D
69 45 5 05 E
70 46 6 06 F
71 47 7 07 G
72 48 8 10 H
73 49 9 11 I
74 4A 10 12 J
75 4B 11 13 K
76 4C 12 14 L
77 4D 13 15 M
78 4E 14 16 N
79 4F 15 17 O
80 50 16 20 P
81 51 17 21 Q
82 52 18 22 R
83 53 19 23 S
84 54 20 24 T
85 55 21 25 U
86 56 22 26 V
87 57 23 27 W
88 58 24 30 X
89 59 25 31 Y
90 5A 26 32 Z
91 5B []] ||style="background:#CFF;"| 49 ||style="background:lightblue;"| 61 || [|- | style="background:#cff;"| 92 ||style="background:lightblue;"| 5C || [[Backslash|\]] ||style="background:#CFF;"| 61 ||style="background:lightblue;"| 75 || \|-| style="background:#cff;"| 93 ||style="background:lightblue;"| 5D || ]]] ||style="background:#CFF;"| 50 ||style="background:lightblue;"| 62 || ]|-| style="background:#cff;"| 94 ||style="background:lightblue;"| 5E || ^ ||style="background:#CFF;"| 60 2 ||style="background:lightblue;"| 74 02 || @B|-| style="background:#cff;"| 95 ||style="background:lightblue;"| 5F || _ ||style="background:#CFF;"| 53 ||style="background:lightblue;"| 65 || _|}|
ASCII display code
Dec Hex Glyph Dec Oct 6/12
96 60 60 7 74 07 @G
97 61 62 1 76 01 ^A
98 62 62 2 76 02 ^B
99 63 62 3 76 03 ^C
100 64 62 4 76 04 ^D
101 65 62 5 76 05 ^E
102 66 62 6 76 06 ^F
103 67 62 7 76 07 ^G
104 68 62 8 76 10 ^H
105 69 62 9 76 11 ^I
106 6A 62 10 76 12 ^J
107 6B 62 11 76 13 ^K
108 6C 62 12 76 14 ^L
109 6D 62 13 76 15 ^M
110 6E 62 14 76 16 ^N
111 6F 62 15 76 17 ^O
112 70 62 16 76 20 ^P
113 71 62 17 76 21 ^Q
114 72 62 18 76 22 ^R
115 73 62 19 76 23 ^S
116 74 62 20 76 24 ^T
117 75 62 21 76 25 ^U
118 76 62 22 76 26 ^V
119 77 62 23 76 27 ^W
120 78 62 24 76 30 ^X
121 79 62 25 76 31 ^Y
122 7A 62 26 76 32 ^Z
123 7B 62 27 76 33 ^0
124 7C 62 28 76 34 ^1
125 7D 62 29 76 35 ^2
126 7E ~ 62 30 76 36 ^3
127 7F 62 31 76 37 ^4
|}

External links

  • Web site: Computer Arithmetic . The Early Days of Hexadecimal . John J. G. . Savard . 2018 . 2005 . quadibloc . 2018-07-16 . live . https://web.archive.org/web/20180716102439/http://www.quadibloc.com/comp/cp02.htm . 2018-07-16.
  • Web site: Charsets for CDC machines . Francois Pinard . 1999-04-27 . dead . https://web.archive.org/web/20110623004850/http://www.informatik.uni-hamburg.de/RZ/software/gnu/utilities/recode_9.html . 2011-06-23.

]