Введение

Код дисплея — это шестибитный код символов, использовавшийся во многих компьютерных системах, произведенных компанией Control Data Corporation, в частности, в сериях CDC 6000 (1964 год), 7600 (1967 год) и последующих сериях Cyber (1971 год). Серии CDC 6000 и их преемники использовали 60-битные слова. Поэтому типичное использование позволяло упаковать 10 символов в одно слово. Это шестибитное расширение четырехбитного BCD-кодирования, которое также называлось BCDIC (BCD interchange code).

Обзор

Существовало несколько вариантов кода отображения, в частности, набор символов из 63 символов и набор символов из 64 символов. Также существовали варианты "CDC graphic" и "ASCII graphic" для обоих наборов символов – 63 и 64. Выбор между набором символов из 63 или 64 символов, а также между графикой CDC или ASCII осуществлялся на уровне установки. Как правило, первые клиенты CDC начинали с набора символов из 63 символов и использовали графические печатные потоки CDC на своих строчных принтерах. С распространением совместного использования времени почти все установки перешли на вариант ASCII, чтобы вывод на строчном принтере соответствовал интерактивному режиму. Позднее клиенты CDC также стали чаще использовать набор символов из 64 символов. Более поздний вариант, известный как код отображения 6/12, использовался в системах совместного использования времени Kronos и NOS для поддержки полной функциональности ASCII. В режиме 6/12 символ экранирования (карет, октальное 76) указывал, что следующая буква является строчной. Таким образом, символы верхнего регистра и другие символы имели длину 6 бит, а строчные символы – 12 бит. Система PLATO использовала дальнейший вариант кода отображения 6/12. Учитывая, что строчные буквы были наиболее распространены при типичном использовании PLATO, роли были поменяны местами. Строчные буквы были нормой, а символ экранирования предшествовал буквам верхнего регистра. Типичный формат текстового файла использовал нулевой байт в качестве терминатора для обозначения конца каждой записи. Терминатор нулевого байта обозначался, по крайней мере, последними двенадцатью битами 60-битного слова, установленными в ноль. Фактическая длина терминатора могла варьироваться от 12 до 66 бит в зависимости от длины записи. Это создавало неоднозначность в наборе символов из 64 символов, когда символ двоеточия должен был быть последним символом в записи. В таких случаях к записи обычно добавлялся пробельный символ после завершающего двоеточия.

Версия набора символов на 64 символа

ASCII CDC Binary Decimal Octal Graphic Graphic Name 000 000 0 00 : : двоеточие 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 пробел 101 110 46 56 , , 101 111 47 57 110 000 48 60 # ≡ эквив 110 001 49 61 [ [ 110 010 50 62 ] ] 110 011 51 63 % % 110 100 52 64 " ≠ не равно 110 101 53 65 → конкат 110 110 54 66 ! ∨ логическое ИЛИ 110 111 55 67 & ∧ логическое И 111 000 56 70 ' ↑ супер 111 001 57 71 ? ↓ под 111 010 58 72 < < 111 011 59 73 > > 111 100 60 74 @ ≤ 111 101 61 75 \ ≥ 111 110 62 76 ^ ¬ НЕ 111 111 63 77 ; ;