Павел Дмитриев - Разбег Пандоры
Но дальше началось самое интересное. Мое первоначальное и не слишком грамотное пожелание использовать "где только можно" ГОСТовскую кодировку привело к неожиданным результатам. Разработанный мэнээсами проект явно имел весьма мало общего с клавиатурами моего будущего[358], вот только точно понять причину различий, и, главное, их последствия, я был не в состоянии.
Контроллер клавиатуры, если его можно было назвать таким серьезным словом, опрашивал контакты сделанной "на вырост" сетки алфавитно-цифровых и функциональных клавиш не реже чем сто раз в секунду. В отличии от них модификаторы 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 килобайт памяти", и я не думая шлепнул рукой по полированной поверхности стола: — Не пойдет!
— Почему?! — дуплетом взвыли Иваны. — Идеальная схема получилась!
— Во-первых, не хватит даже десятка команд, к хорошему люди привыкнут быстро, а резерва у вас нет. — Я еще раз представил разработку мэнээсов вместо встроенной в ноутбук клавиатуры, и продолжил критику: — Во-вторых, нажатие вы фиксируете, а как ЭВМ догадается, что пользователь отпустил кнопку? Понятна проблема? — я машинально взглянул на специалистов, и…
Глаза Иванов выдавали активную работу мысли, но при этом было очевидно – ребята попросту не осознают, про что я говорю. Не приходилось им гонять курсор по экрану, и тем более перебирать аккорды кнопок. Да что там, они никогда всерьез не "стучали" по клавишам электрической пишущей машинки! Как привыкшему к перу и карандашу человеку представить, что значит точная и удобная клавиатура компьютера 2010 года?! Разумеется, я попытался с максимально возможной точностью все объяснить словами и даже показать в жестах. Но не преуспел.
— Зачем это? — завели старую шарманку мэнээсы. — На "Консулах" ничего подобного нет, в IBM-2260 тоже!
— Все! — я развел руками перед физиономиями специалистов, благо, мой рост в 190 сантиметров позволял это сделать очень даже элегантно даже сидя в кресле. — Пока не переделаете, на глаза не показывайтесь!
Только мы с Катей успели съездить домой пообедать, как мэнээсы нарисовались у дверей кабинета вновь. Явно голодные, но очень целеустремленные.
— Что, уже все придумали? — я не смог удержаться от иронии. — Проходите, нечего двери заслонять!
— Не совсем… — замялся Иван "первый" еще на подходе к стулу, изрядно "насиженному" за последнюю пару месяцев. — Но мы нашли хороший вариант.
— Показывайте. — Большая порция только что съеденной окрошки с "Докторской" колбасой не только успокоила нервы, но и придала моему настроению солидную порцию благожелательности.
— Когда кончатся табличные команды, можно будет использовать специальную команду для команды! — торопливо доложил Иван "второй".
— Ух! — только и смог сказать я, мучительно пытаясь ухватить мысль собеседника.
Впрочем, мэнээсы быстро перешли к более точным выражениям. Если привести их сбивчивый рассказ к одному знаменателю, то суть сводилась к введению еще одной специальной кнопки, после нажатия которой следующая буква или цифра порождала не один байт кода, а два. Первый служебный, совпадающий с наиболее "забытым" символом ГОСТовской кодировки, второй, реальный – мог быть использован ЭВМ любым удобным способом. После некоторого размышления это казалось мне хоть и не слишком удобной, но вполне разумной альтернативой. Более того, возникло желание назначить этой "новой клавишей" все тот же несчастный Ctrl, перенеся все его "старые" и редко используемые возможности на дополнительные два регистра функциональных клавиш F1-F5.
Надо было видеть довольные физиономии Иванов, когда я признал ограниченную годность предложенной методики. Вот только радовались они главным образом не моему согласию, а возможности реализовать данную функцию "Many years later, in a galaxy far, far away"[359]. Иначе говоря, научный отдел удачно разыграл комбинацию очень советского саботажа странных директорских хотелок.
Способ контроля за отпущенными клавишами был выдержан примерно в этом же стиле. Ведь совсем не сложно доработать устройство так, что бы перед кодом "отжатой" клавиши… Да-да, легко догадаться, вставлялся очередной служебный байт![360] И пусть ЭВМ подавится, разбирая этот поток информации!
Но тут обещаниями будущих доработок мэнээсы не отделались. Инициатива наказуема, и в проект было внесено непреложное требование оснастить подобной функцией хотя бы "стрелочки" и "пробел". А чтобы Иваны спали спокойно – мне пришлось согласился на установку перемычки, с помощью которой данную инновацию можно было отключить совсем.
Последний "клавиатурный" вопрос был совсем простым, тем более, его разрабатывал Федор. Сгенерированные контроллером биты "по ГОСТу" без особых раздумий выталкивались через небольшой буфер на выход через УИ-8 (Универсальный Интерфейс на восемь линий), заодно для ЭВМ выдавалось соответствующее прерывание. Электропитание также поступало по кабелю УИ-8.
* * *С дисплеем процесс сначала двигался куда быстрее. Под моим чутким руководством в качестве оптимального решения мэнээсы быстро приняли специализированный телевизор без блоков промежуточной и высокой частоты, он же монитор с зелеными "буковками и циферками". Причем специалисты проявили немалую инициативу, в два счета доказав, что только люминофор длительного свечения не будет портить зрение операторов. Против такой аргументации экономика бессильна, ведь девушки без очков куда симпатичнее очкастых стерв! Заодно я ловко замаскировал свое незнание вопроса под заботу об экономике.
Управлять экраном с диагональю чуть более 30-ти сантиметров предполагалось всего лишь по трем проводам: кадровой/строчной синхронизации, земли, видео. Я пробовал говорить о цвете, но быстро понял – ждать взаимности от техники в этом вопросе придется минимум несколько лет. Мэнээсы дополнительно настояли на выводе звука, спорить с такой мелочью не стал, хотя и был уверен в будущей бесполезности. С дизайном корпуса тоже сложностей не возникло – по сути, получился металлический куб. Так что наш научный отдел быстро подготовил документацию и сдал ее в МЭП.
Зато дальше Иванам пришлось изрядно поломать голову без моей помощи. Ведь в устройстве телевизоров я разбирался примерно как в балете и фотонных звездолетах. Хотя на уровне схемы все выглядело просто. Всего-то вместо "эфирного" сигнала нужно было подать "компьютерный". Причем аналоговый и непрерывный, никаких пикселей в нем не предусмотрено, а значит, не обойтись без быстродействующего ключа для управления яркостью точки на экране. Если думать о градациях серого, то это выливается в полноценный ЦАП, что, впрочем, тоже не выглядит сверхтехнологией.
Однако дьявол, как обычно, скрывался мелочах. Если прикинуть частоты, то выходит весьма неприятная картина. В телевизоре что-то около пяти сотен строчек[361], в каждой нужно "показать" 640 пикселей, а вот достижимые при массовом производстве частоты микросхем логики находятся в районе 10 МГц[362]. Быстрого прорыва тут нельзя ждать даже с подарками из будущего. Если 10 000 000 разделить на произведение 640*500, учесть всякие мелочи вроде обратного хода луча, то получится 25–30 кадров в секунду. А я-то по наивности надеялся сразу сделать монитор на сотню герц вертикальной развертки…