Dmitriev Esche ne pozdno 3 Razbeg Pandoryi
Шрифт:
Но дальше началось самое интересное. Мое первоначальное и не слишком грамотное пожелание использовать "где только можно" ГОСТовскую кодировку привело к неожиданным результатам. Разработанный мэнээсами проект явно имел весьма мало общего с клавиатурами моего будущего*, вот только точно понять причину различий, и, главное, их последствия, я был не в состоянии.
\\\*Клавиатуры, имеющие на выходе ASCII-код, были известны в СССР и до середины 90-х годов серийно выпускались для использования в комплекте с удаленным терминалом. Однако описанный ниже алгоритм работы имеет с ними
Контроллер клавиатуры, если его можно было назвать таким серьезным словом, опрашивал контакты сделанной "на вырост" сетки алфавитно-цифровых и функциональных клавиш не реже чем сто раз в секунду. В отличии от них модификаторы Alt, Shift, Ctrl включались "в электронику" напрямую и учитывались при формировании итогового восьмибитного "ГОСТовского" кода в небольшом ПЗУ.
К примеру, если на клавиатуре была выбрана просто буква "л" - формировался код DB от прописной "л", при "Shift-л" - BB (он же заглавная "Л"), "Alt-л" давал FB, или символ псевдографики "Ђ". После переключения на английский командой Ctrl-Alt, можно было набрать "k" с кодом 6B и "К" с 4B. Команды функциональных клавиш типа стрелочек, табуляции или Enter шли под своими оригинальными кодами, для которых в таблице ASCII выделялось аж 32 варианта. Кроме того, команды можно было набирать через Ctrl. Так, комбинация Ctrl-Л или Ctrl-K (английская) означала vertical tab, и дополнительно была "приписана" к клавише Page Down.
Чем глубже я залезал в алгоритм работы, тем больше становилось вопросов. Причем с буквами и цифрами особых сложностей не возникало. Зато роль и функционал модификаторов притягивали критику как эпицентр - атомную бомбу.
- Вы считает, что в таблице ГОСТ достаточно команд на все случаи жизни?
– я наконец прервал возбужденное сопение специалистов.
- Так американцы в своей кодировке нарезервировали изрядно, - степенно заявил Иван "первый", поглаживая начавшую пробиваться бороденку.
- И что с того?
– меня глодали нешуточные сомнения.
– Надо ведь все равно совместимость обеспечивать. Бардак ведь будет, если наша клавиатура к штатовскому компьютеру не подойдет. Да и сами хороши будем - только успели ГОСТ на кодировку утвердить, и тут же сами в него плюнули, и ногой растерли.
– Для убедительности я демонстративно пошаркал ботинком под столом.
- Там чуть не десяток команд давно не используется, - начал оправдываться Иван "второй".
– Хватит надолго!
- Угу...
– в моей памяти "как живые" высветились знаменитые "640 килобайт памяти", и я не думая шлепнул рукой по полированной поверхности стола: - Не пойдет!
- Почему?!
– дуплетом взвыли Иваны.
– Идеальная схема получилась!
- Во-первых, не хватит даже десятка команд, к хорошему люди привыкнут быстро, а резерва у вас нет.
– Я еще раз представил разработку мэнээсов вместо встроенной в ноутбук клавиатуры, и продолжил критику: - Во-вторых, нажатие вы фиксируете, а как ЭВМ догадается, что пользователь отпустил кнопку? Понятна проблема?
– я машинально взглянул на специалистов, и...
Глаза Иванов выдавали активную работу мысли, но при этом было очевидно - ребята
- Зачем это?
– завели старую шарманку мэнээсы.
– На "Консулах" ничего подобного нет, в IBM-2260 тоже!
- Все!
– я развел руками перед физиономиями специалистов, благо, мой рост в 190 сантиметров позволял это сделать очень даже элегантно даже сидя в кресле.
– Пока не переделаете, на глаза не показывайтесь!
Только мы с Катей успели съездить домой пообедать, как мэнээсы нарисовались у дверей кабинета вновь. Явно голодные, но очень целеустремленные.
- Что, уже все придумали?
– я не смог удержаться от иронии.
– Проходите, нечего двери заслонять!
- Не совсем...
– замялся Иван "первый" еще на подходе к стулу, изрядно "насиженному" за последнюю пару месяцев.
– Но мы нашли хороший вариант.
- Показывайте.
– Большая порция только что съеденной окрошки с "Докторской" колбасой не только успокоила нервы, но и придала моему настроению солидную порцию благожелательности.
- Когда кончатся табличные команды, можно будет использовать специальную команду для команды!
– торопливо доложил Иван "второй".
- Ух!
– только и смог сказать я, мучительно пытаясь ухватить мысль собеседника.
Впрочем, мэнээсы быстро перешли к более точным выражениям. Если привести их сбивчивый рассказ к одному знаменателю, то суть сводилась к введению еще одной специальной кнопки, после нажатия которой следующая буква или цифра порождала не один байт кода, а два. Первый служебный, совпадающий с наиболее "забытым" символом ГОСТовской кодировки, второй, реальный - мог быть использован ЭВМ любым удобным способом. После некоторого размышления это казалось мне хоть и не слишком удобной, но вполне разумной альтернативой. Более того, возникло желание назначить этой "новой клавишей" все тот же несчастный Ctrl, перенеся все его "старые" и редко используемые возможности на дополнительные два регистра функциональных клавиш F1-F5.
Надо было видеть довольные физиономии Иванов, когда я признал ограниченную годность предложенной методики. Вот только радовались они главным образом не моему согласию, а возможности реализовать данную функцию "Many years later, in a galaxy far, far away"*. Иначе говоря, научный отдел удачно разыграл комбинацию очень советского саботажа странных директорских хотелок.
\\\*Надпись "A long time ago, in a galaxy far, far away..." (Давным-давно, в далёкой-далёкой галактике...) появляется в начале каждого эпизода Звёздных войн. В данном случае "Many years later, in a galaxy far, far away..." - можно перевести как "Много лет спустя, в далёкой-далёкой галактике..."\\\