Кодировки символов в БЭСМ-6

Так как в машинном слове БЭСМ-6 было 48 разрядов, использовались как 8-битные, так и 6-битные кодировки символов. Преимущественно использовались стандартные 8-битные байты, а 6-битная кодировка TEXT использовалась в таблицах символов в мониторной системе "Дубна", позволяя различать до 8 значащих символов во внешних именах объектных модулей.

Было несколько 8-битных кодировок:

Кодировке ГОСТ/УПП и будет посвящён остаток этой страницы.

В отличие от IBM-овской кодировки перфокарт, использовавшей одну колонку - 12 бит - на символ, что требовало нетривиального преобразования во внутреннее байтовое представление, кодировка ГОСТ/УПП была восьмибитной (точнее, семибитной с битом четности, дополнявшим до нечетного), "горизонтальной", совпадала (после отбрасывания бита четности) со внутренним представлением символов, и позволяла помещать на одной перфокарте до 120 символов.

Порядок бит в байте на перфокарте был естественным - старший бит слева, поэтому было довольно легко читать перфокарты, глядя на конфигурации пробивок. Это умение было весьма полезным, поскольку было единственным способом узнать содержимое карты, не пропуская ее через компьютер - в отличие от IBM-овских перфокарт, на которых могла быть надпечатка у каждой колонки, горизонтальное размещение символов такого не позволяло.

Как видно из таблицы ниже, код 0 задействован под символ 0, и на перфокарте он представлялся с четностью в виде байта 200 (восьмеричное). Байт со значением 000 - единственный допустимый с "четной" четностью - игнорировался. Пробел обозначался кодом УПП 217 (ГОСТ 017).

Русские и латинские буквы с одинаковым начертанием (включая Y/У) не различались.

Вот таблица кодировки ГОСТ (УПП - с восьмым битом до нечетности). Наведите курсор мыши на цветную ячейку таблицы, чтобы увидеть описание символа (некоторые символы в белых ячейках тоже описаны):

Условные обозначения
    символы с точным соответствием в ASCII/ISO
    символы с традиционным соответствием в ASCII/ISO
    символы без соответствия в ASCII/ISO
    символы ASCII/ISO с принятыми неофициальными соответствиями в ГОСТ
01234567
0001234567
0189+-/,.
02  ()×=;[
03]*`'<>:
04AБBГДEЖЗ
05ИЙKЛMHOП
06PCTУФXЦЧ
07ШЩЫЬЭЮЯD
10FGIJLNQR
11SUVWZ¯
12¬÷%
13|_!"Ъ°
14NULBS
15
16FF
17EOTCR\

Как нетрудно видеть, набор символов сильно перекошен в математическую сторону: настолько, что даже нет вопросительного знака! Такое впечатление, что у разработчики кодировки не догадались, что знак факториала 0133 - это еще и восклицательный знак, и что неплохо бы добавить и вопросительный знак тоже.


© Leonid A. Broukhis, 1997-2006