Код RADIX-50
Михаил Николаев
Казалось бы, совсем недавно в Windows стали возможны длинные имена файлов, а к ним уже все настолько привыкли... К хорошему привыкаешь быстро.
Вспомним восьмидесятые годы - компьютеры типа "Электроника-60", операционная система RT11 (или РАФОС), 56 Кбайт ОЗУ и внешняя память на 8" дискетах, килобайт этак на 250. Не жирно. В таких условиях файловая система была примитивной - ни FAT, ни каталогов не было, файл должен был быть непрерывным. Имя файла ограничивалось девятью символами - шесть на имя и три на расширение. Но и эти 9 символов были ужаты в 6 байт - по три символа в слове, для чего применялась кодировка RADIX-50.
Символ | Восьмеричный эквивалент символьного кода КОИ-7 | Эквивалент RADIX |
---|---|---|
Пробел | 40 | 0 |
A-Z | 101-132 | 1-32 |
Денежная единица | 44 | 33 |
. | 56 | 34 |
Не используется | 35 | |
0-9 | 60-71 | 36-47 |
Это код для младшего символа, для получения второго код из этой таблицы нужно умножить на 508 (4010), третьего - на 31008 (160010) и полученное сложить. Например, нужно перевести в RADIX-50 строку X2B:
"B" = 0000028
"2" = 0000408 * 508 = 24008
"X" = 0000248 * 508 * 508 = 1130008
"X2B" = 1130008 + 24008 + 0000028 = 1154028
Кодировка RADIX-50 применялась не только в файловой системе, но и, например, в объектных файлах для хранения имен - опять же для экономии. Кстати, жесткая экономия ресурсов и низкоуровневое программирование позволяли достичь на тех машинах неплохих результатов.
Например, для БК-0010 существовала интегрированная среда разработки на ассемблере (интересно, кто ее автор?), включавшая в себя экранный редактор, компилятор и линкер (правда, длина имени была ограничена тремя символами). А ведь БК-0010 имела всего 32 Кбайт ОЗУ, из которых половина использовалась в качестве видеопамяти!
Статья опубликована 21.10.2002 г.