На распутье - Павел Дмитриев
Шрифт:
Интервал:
Закладка:
Недолго думая выпихнули пятибитный телеграфный код МТК-2 в последовательный порт. Дальше пришлось разбираться мне, и — маленькое чудо: в HyperTerminal нашлась крутилочка, переключающая порт на нужную кодировку и скорость. Не отрубили в Микрософте этот древний телетайпный хвост, позаботились о прошлом… Грешным делом, я уж прикидывал, как наиболее безболезненно перенастраивать телетайп, в котором частота передачи задавалась «железно» в буквальном смысле этого слова, а именно — вращающимся цилиндром с выступами, которые управляли нажатыми контактами[247].
На этом проблемы только начались. К своему большому огорчению, я убедился в очевидном: пять бит достаточно лишь для тридцати двух букв. На советском телетайпе это «изящно» обошли, введя три регистра (латинский, русский, цифры), переключения между которыми производили специальными командами. Не понятно, какой марксизм помешал инженерам СССР подумать чуток о будущем и принять сразу аналог ASCII для русского алфавита[248]. Но бороться с этим явно бесполезно, нужно приспосабливаться.
Зато еще не поздно принять нормальную кодировку для ЭВМ! Заранее, буквально в зародыше, раздавить на уровне отраслевых нормативов разброд и шатание, которые царили в советской компьютерной среде. Шутка ли, в меню FAR на моем верном Dell’е мне удалось найти более десятка разных таблиц. Только к эпохе первых персоналок можно отнести ISO с непонятным номером, целый выводок разных KOI, Альтернативную CP866, «Основную» ГОСТ… Наверняка это далеко не все плоды фантазий программистов СССР, но заниматься археологией у меня особого желания не возникло. Только задумался, сколько сил и денег пошло на устранение идиотизма отраслевого министерства. Сложно им было стукнуть кулаком и принять единую форму?[249] Пусть не самую удобную, но какая была бы экономия!
При этом совместимость с ASCII и ее латинскими буквами неизбежна. Можно было, разумеется, на радость врагам предложить доморощенный кириллический стандарт и фанатично его продвигать. Но насилие над здравым смыслом оставим коммунистам. Поэтому первые сто двадцать восемь знаков или семь бит станем считать уже свершившимся злом. И пусть сейчас в СССР толком никто не знает, шесть бит в байте, семь или сразу десять. Мне совершенно точно известно, что их будет восемь! На этом «восьмом» есть следующие свободные сто двадцать восемь клеточек в таблице. Их нужно только заполнить, этого хватит минимум на десять лет. Далее процессоры будут помощнее, памяти в них побольше, придет время графических операционок и полных мультиязыковых наборов шрифтов.
Насколько помню, основных проблем с кириллическими кодировками было две. Во-первых, из-за блока псевдографики, крайне неудачно расположенной в IBM PC. Не лезли шестьдесят шесть букв алфавита ни сверху, ни снизу этого занятого куска. Не позаботились штатовские инженеры о длинных алфавитах или специально учинили нехилую диверсию для СССР. В общем, маленькие русские буквы поневоле начинались до блока кракозябр, прерывались и продолжались после него. Программисты были крайне недовольны[250].
Во-вторых, кому-то неизвестному было удобно отбросить старший бит и получить вместо русского текста транслит, вполне читаемые слова, написанные латинскими буквами. Тут уж вообще ни о каком алфавитном порядке речь не шла, получалось что-то типа Т, У, Ж, В, Ь, C, Ы, B, З. Программисты яростно матерились, попробуй, напиши в таких условиях алгоритм сортировки или просто что-то внятное для работы с текстом.
Но меня-то пока ничто не ограничивало! Выбрать надо было наиболее удобный вариант. Например, «Основную» — она и название имела понятное, и любимому чиновниками всех времен ГОСТу соответствовала. На вид вполне прилична, вот только буква «е» стояла в стороне, на тридцать третьей позиции. Задумался, проверил все имеющиеся кодировки. Сакральная буква обнаружилась на своем законном седьмом месте лишь в двубайтовом UTF начала девяностых, по сути, в совершенно иной эпохе. Что делать?[251]
Как обычно в трудных случаях, пошел советоваться к жене.
— Кать, понять не могу, в Союзе букву «ё» используют?
— Внимания не обращала… — Она подтянула к себе валяющуюся в углу стола «Комсомолку». — Смотри-ка, тут нет «ё».
— Ничего не понимаю… — Я машинально разглядывал слова в газете. — В мое время были борцы за права этого символа, и много. Кивали на великую русскую историю, Пушкина там вспоминали, Толстого. В блогах рубились.
— Хочешь сказать, что у нас буквы «ё» должно быть больше, чем в будущем?
— Конечно!
— Знаешь, Петь, я историю такую слышала, что буква «ё» стала нужна товарищу Сталину на картах в войну, чтобы названия не путать, вот он и потребовал ее вернуть.
— В смысле? Ее что, до этого не было?
— Не знаю… Получается, отменили ее когда-то. — Катя вдруг выставила вперед руки с растопыренными пальцами, будто положила на клавиатуру. — Точно! При слепой печати десятью пальцами «ё» не используется!
— Ничего себе история. Погоди, а в книгах как сейчас печатают?
Ничего не говоря, Катя подошла к стоящему в углу шкафу, начала доставать оттуда журналы, газеты и прочую макулатуру. Был и десяток книг. Мы вместе проштудировали все издания — буква «ё» нашлась только в русско-английском словаре.
— Вот в чем секрет, — вспомнил я мультик. — Если мед есть, то его сразу нет.
— Так и получается, — подтвердила жена. — Школьники букву изучают, писать учатся, а потом в книгах и газетах ее не используют.
— Спасибо, Кать, — чмокнул в щечку. — Что бы я без тебя делал!
Выходит, разработчики были искренне уверены: дни буквы «ё» сочтены. Ее не было в окружающем их медиапространстве, даже на клавишах телетайпа. А тут такой шанс, 32+32=64, то есть все буквы укладывались ровно в восемь байт адреса. Переключать регистр и просто адресовать букву было сплошным удовольствием! Стоит ли портить такой прекрасный порядок вещей, словно бы дарованный свыше, давно отмененной буквой?[252]
На всякий случай специально сходил посмотрел на клавиатуру ноутбука. Покрутил разные софтины две тысячи десятого года. Буквы «ё» не оказалось даже в налоговой отчетности 1С. Осталось только махнуть рукой — сколь бы ни боролись энтузиасты за этот символ, доживет он только до очередной языковой реформы. Ткнул пальцем в «Основную» кодировку без всяких изменений. Если я правильно понимаю, то при обработке как минимум восьмидесяти процентов русскоязычного текста «е» и «ё» необходимо уравнять «в правах». То есть надо создавать надстройку над любым алгоритмом, при этом место нахождения злосчастной буквы вообще безразлично[253]. Оформленное предложение отправил в главк МЭПа, кросспостом товарищу Шелепину. Так точно не потеряется, дело нешуточной государственной важности. Заодно посоветовал активно использовать термин «байт», директивно и навсегда равный восьми битам. Соответственно, разрядность ЭВМ исчислять исключительно по степени двойки, ну там 4, 8, 16, 32, 64… Кто будет против — враг мира, прогресса и Коммунистической партии. Конструкторов БЭСМ-4 с сорокапятиразрядным словом вообще стоило бы приговорить к принудительным работам по устранению самодеятельности. Хотя этого лучше не писать, времена тут больно простые, еще на самом деле пристроят в «шарашку»[254].
Накатило просветление, и я набросал третье (или уже четвертое?) предложение — а именно: выработать единый стандарт для подключения периферии. Если пользоваться послезнанием, на первые лет двадцать понадобится всего три типа портов — медленный последовательный по двум-трем проводам (мышь, клавиатура, модем), быстрый параллельный на восьмибитную «букву» целиком (принтер, сканер, графопостроитель) и очень быстрый для мониторов и сетей типа Ethernet.
Однако идея показалась сыроватой. За ошибку от местных спецов можно было схлопотать нехилую отповедь, получить выволочку от Александра Николаевича и навсегда выработать скептическое отношение к будущим проектам. Оставил бумагу на неделю «вылежаться», а сам думал, черкал на листочке, говорил с Федором, мэнээсами и ребятами на ВЦ. В результате путевку в жизнь получил только однобайтовый УИ-8 (Универсальный Интерфейс на восемь линий), подозрительно похожий по своей сути на привычный по временам «до USB» Centronics, он же параллельный порт или принтерный LPT[255]. Компьютеры тут совсем слабенькие, тащить в них лишнее не стоит. Ничего особо дешевого, кроме разъемов и кабелей, в последовательных СОМ-портах нет. Так что можно жить без них.
Тем более что переходник это не бог весть какая сложность — Федор «в одну каску» спаял похожий вариант на «рассыпухе» за месяц. Пусть в итоге получился корпус на четверть кубометра, пока это неважно. Никогда не поздно заказать специальную микросхему-преобразователь, которую разработчики будут ставить при необходимости, если такая вообще появится в этом мире. Чтобы в ее применении ни от чего не зависеть, добавил в УИ-8 низковольтное питание. Благо отдельных проводов в используемых разъемах от БЭСМ-4 было более чем достаточно. Толщина меди на них наводила на мысли минимум о нескольких десятках, если не сотнях ватт. Не то что жалкие несколько ватт USB 2010 года[256].