Павел Дмитриев - На распутье
Однако, перфоратор был полностью подготовлен к испытаниям без всякого моего вмешательства, и, к моему огромному удивлению, "пошел" с первой попытки. Федор явно почувствовал вкус победы в самостоятельном решении задач. Губить такую инициативу все равно что пускать под нож стельную корову. Ему немедленно был открыт следующий горизонт ответственности. Теперь этот волосатый и бородатый хипарь погоняет по коридорам аж трех ботанов-инженеров, учит их "грокать", держать в руках паяльник, правильно нюхать канифоль, а так же ничему не удивляться в "721".
В запале энтузиазма эта команда умудрилась сама додуматься подключить к уже хорошо освоенному интерфейсу ноутбука (не видя ничего кроме глухой стенки с торчащей из нее парой кабелей) новый телетайп. Даже не спросив меня. Хорошо хоть ничего не спалили при преобразовании уровней сигналов. Уже задним числом я в десятый раз похвалил себя за качественно организованное заземление обоих зданий НИИ. Не будь зарыто в землю столько железа, с такими инициативными товарищами давно пришел бы конец интерфейсам Dell'а. Зато как потешались над моим проектом местные электрики полгода назад, "безграмотный перестраховщик" — это был самый мягкий, почти ласкательный эпитет.
\Телетайп выдает сигналы с уровнем 0…-80В, для COM-порта нужно -12…+12В.\
Не долго думая, выпихнули 5-ти битный телеграфный код МТК-2 в последовательный порт. Дальше пришлось разбираться мне, и, маленькое чудо, в HyperTerminal нашлась крутилочка, переключающая порт на нужную кодировку и скорость. Не отрубили в Микрософте этот древний телетайпный хвост, позаботились о прошлом… Грешным делом, я уж прикидывал, как наиболее безболезненно перенастраивать телетайп, в котором частота передачи задавалась "железно" в буквальном смысле этого слова, а именно вращающимся цилиндром с выступами, которые управляли нажатыми контактами.
\Телеграфный трёхрегистровый код МТК-2 был принят в СССР в 1963 году. Обработка старт-стопных битов во всем их многообразии в тексте опущена. Ничего особо сложного и интересного в этом нет, но изложение загромождает непомерно.\
На этом проблемы только начинались. К своему большому огорчению убедился в очевидном, пять бит достаточно лишь для 32 букв. На советском телетайпе это "изящно" обошли, введя три регистра (латинский, русский, цифры), переключения между которыми производили специальными командами. Не понятно, какой марксизм помешал инженерам СССР подумать чуток о будущем и принять сразу аналог ASCII для русского алфавита. Но бороться с этим явно бесполезно, нужно приспосабливаться.
\Стандарт на таблицу ASCII первоначально, в 1963 году, был принят 7-ми битный, т. е. Всего из 128 знаков. В основном он использовался как раз для телетайпов.\
Зато еще не поздно принять нормальную кодировку для ЭВМ! Заранее, буквально в зародыше, раздавить на уровне отраслевых нормативов разброд и шатание, которые царили в советской компьютерной среде. Шутка ли, в меню FARа мне удалось найти более десятка разных таблиц. Только к эпохе первых персоналок можно отнести ISO с непонятным номером, целый выводок разных KOI, Альтернативную CP866, Основную ГОСТ… Наверняка это далеко не все плоды фантазий программистов СССР, но заниматься археологией у меня особого желания не возникло. Только задумался, сколько сил и денег пошло на устранение идиотизма отраслевого министерства. Сложно им было стукнуть кулаком и принять единую форму? Пусть не самую удобную, но какая была бы экономия.
\11 марта 1968 не кто иной как президент США Линдон Джонсон потребовал принять ASCII как государственный стандарт. Это дорогого стоит.\
При этом совместимость с ASCII и ее латинскими буквами неизбежна. Можно, разумеется, на радость врагам предложить доморощенный кириллистический стандарт и фанатично его продвигать. Но насилие над здравым смыслом оставим коммунистам. Поэтому первые 128 знаков или семь бит будем считать злом уже свершившимся. И пусть сейчас в СССР толком никто не знает, шесть бит в байте, семь, или сразу десять. Мне совершенно точно известно что их будет восемь! На этом "восьмом" есть следующие свободные 128 клеточек в таблице. Их нужно только заполнить, этого хватит минимум на десяток лет. Далее процессоры будут помощнее, памяти побольше, придет время графических операционок и полных мультиязыковых наборов шрифтов.
На сколько помню, основных проблем с кириллистическими кодировками было две. Во-первых, из-за блока псевдографики, крайне неудачно расположенной в IBM PC. Не лезли 66 букв алфавита ни сверху, ни снизу этого занятого куска. Не позаботились штатовские инженеры о длинных алфавитах, или специально нехилую диверсию для СССР учинили. В общем, маленькие русские буквы поневоле начинались до блока кракозябр, прерывались, и продолжались после него. Программисты были крайне недовольны.
\Подобную восьмибитную таблицу, известную как Code page 437, IBM разработала уже в 80-х годах. Ее успели "прошить" в ПЗУ популярных видеодаптеров MDA, и это стало уже "навечно".\
Во-вторых, кому то неизвестному было удобно отбросить старший бит, и получить вместо русского текста транслит, вполне читаемые слова латинскими буквами. Тут уж вообще ни о каком алфавитном порядке речь не шла, получалось что-то типа Т, У, Ж, В, Ь, C, Ы, B, З. Программисты яростно матерились, попробуй, напиши в таких условиях алгоритм сортировки или просто что-то внятное для работы с текстом.
Но меня-то пока ничего не ограничивает! Выбрать надо наиболее удобный вариант. Например "Основную" — она и название имеет понятное, и любимый чиновниками всех времен ГОСТ упоминается. На вид вполне прилична, вот только буква "Ё" стоит в стороне, на 33-й позиции. Задумался, проверил все имеющиеся кодировки. Сакральная буква обнаружилась на своем законном седьмом месте лишь в двубайтовом UTF начала 90-х, по сути, в совершенно иной эпохе. Что делать?
\Основная кодировка согласно ГОСТ 19768-87 была принята в 1987 г. взамен КОИ-8, однако использовалась мало. При очевидном удобстве она появилась слишком поздно.\
Как обычно в трудных случаях, пошел советоваться к жене.
— Кать, понять не могу, в Союзе букву Ё используют?
— Внимания не обращала… — Она подтянула к себе валяющуюся в углу стола "Комсомолку". — Смотри-ка, тут нет нет Ё.
— Ничего не понимаю, — я машинально разглядывал слова в газете, — в мое время были борцы за права этого символа, и много. Кивали на великую Русскую историю, Пушкина там вспоминали, Толстого. В блогах рубились.
— Хочешь сказать, что у нас буквы Ё должно быть больше чем в будущем?
— Конечно!
— Знаешь Петь, я историю слышала, что Ё товарищу Сталину нужна стала на картах в войну, чтоб названия не путать, вот он и потребовал ее вернуть.
— В смысле? Ее что, до этого не было?
— Не знаю… Получается, отменили ее когда то. — Катя вдруг выставила вперед руки с растопыренными пальцами, будто положила на клавиатуру. — Точно! При слепой печати десятью пальцами Ё не используется!
— Ничего себе история. Погоди, а в книгах как печатают сейчас?
Ничего не говоря, Катя подошла к стоящему в углу шкафу, и начала доставать оттуда журналы, газеты, и прочую макулатуру. Был и десяток книг. Мы вместе проштудировали все издания – буква Ё нашлась только в русско-английском словаре.
— Вот в чем секрет, — вспомнил я мультик. — Если мед есть, то его сразу нет.
— Так и получается, — подтвердила жена. — Школьники букву изучают, писать учатся, а потом в книгах и газетах ее не используют.
— Спасибо, Кать, — чмокнул в щечку. — Что бы я без тебя делал!
Выходит, разработчики были искренне уверены, дни буквы Ё сочтены. Ее не было в окружающем их медиапространстве, даже на клавишах телетайпа ее нет. А тут такой шанс, адреса таблицы 32+32 буквы укладывается ровно в восемь байт. Адресовать и переключать регистр одно удовольствие! Стоит ли портить такой убедительный знак свыше давно отмененной буквой?
\Буква Ё введена в оборот в 1783 княгиней Дашковой, поддержана Карамзиным и Державиным. С тех пор и до 1956 года не была обязательной, располагалась последней в алфавите. Позже почти не употреблялась, сложно добавить литеру в типографский набор.\
На всякий случай специально сходил, посмотрел на клавиатуру ноутбука. Покрутил разные софтины 2010 года. Буквы Ё не оказалось даже в налоговой отчетности 1С. Осталось только махнуть рукой – сколь бы не боролись энтузиасты за этот символ, доживет он только до очередной языковой реформы. И ткнул пальцем в "Основную ГОСТовскую" кодировку без всяких изменений. Если я правильно понимаю, то при обработке как минимум 80 % рускоязычного текста "Е" и "Ё" надо уравнивать "в правах". То есть создавать надстройку над любым алгоритмом, для чего место нахождения злосчастной буквы вообще безразлично.
\На сегодня в мировом масштабе распространена практика поддерживать режимы сортировки без учета диакритических знаков.\