Глава 32 Клавиатура против пальцев

К утру следующего дня растр уже стал привычным фактом жизни, как скрип двери в макетную или вечный запах канифоли.

А вот передняя панель стенда — нет.

Алексей стоял у стойки, опираясь ладонями о край. На него тупо смотрели индикаторы, пара лампочек «ПИТАНИЕ» и «ГОТОВ» и аккуратный блок из двадцати кнопок: цифры, «ВВОД», «СБРОС», несколько операций, ещё пара служебных.

Для арифмометра — почти роскошь. Для чего‑то, что претендует называться учебно‑демонстрационной ЭВМ, — костыль.

Он ясно представил, как на этом вводят формулу не из трёх слагаемых, а что‑нибудь человеческое. «ПРЕМИЯ:=ОКЛАД*КОЭФФ». Сначала буквы рисуются в голове, потом — в листинге. Здесь — только цифры, да ещё и по одной, с их табличными кодами.

«Сейчас бы воткнул в USB любую клавиатуру из любого магазина, — мелькнуло. — И забыл про проблему. Но тут USB ещё даже как буквы не придумали. Тут максимум — телефонный диск и пишущая машинка».

Он для чистоты эксперимента нажал «3», «+», «4», «ВВОД». Лампы послушно показали «0007».

Скука.

Пятикурсник в техникуме терпел бы. Пятиклассник — нет.

— Я же говорил, что эта панель — тупик, — сказал сам себе Алексей и отступил, чтобы посмотреть на стенд целиком. Цифровой блок выглядел аккуратно, почти нарядно. Но — как на калькуляторе. Сколько ни перекрашивай корпус, буквы там сами не вырастут.

Дверь хлопнула, и в комнату ввалился Игорь.

Не вошёл — именно ввалился. Под мышкой у него был серый металлический ящик, а другой рукой он волок за собой что‑то тяжёлое на ремне.

— О, — сказал он, увидев Алексея. — А я как раз к тебе. Держи.

Он поставил на стол ящик. Тот глухо бухнул. Следом — второй предмет: низкий, широкий, с клавишами, которые ещё две комнаты назад звенели друг о друга.

Пишущая машинка «Консул». Чуть потрёпанная, без крышки, с облезлой табличкой, но живая. На месте было всё: рычаг возврата каретки, «З», «Ю», цифры, пробел — весь набор.

— Ты что, отдел делопроизводства разгромил? — спросил Алексей.

— Общежитие ДК, — с явной гордостью ответил Игорь. — Списанная машинка, акт, печать, подпись директора. Можем разобрать на органы без риска для социалистической собственности.

Он вытащил из кармана сложенный вчетверо листок и потряс.

— Пожалуйста: «передать в КБ‑3 НИИ „Электронмаш“ для учебно‑демонстрационных работ». Подписано, согласовано. Я теперь почти законный мародёр.

Алексей подошёл ближе. Пальцы сами потянулись к клавишам. Нажал «А» — каретка дёрнулась, головка чиркнула по пустой ленте какой‑то грязной чертой.

Всё‑таки в этих штуках была своя эстетика. Механическая, тяжёлая. Но понятная.

— Идея понятна, — сказал он. — Органы ввода.

— Ну да, — Игорь довольно ухмыльнулся. — Ты же сам жаловался, что «на цифрах ничего нормального не набьёшь». Вот тебе буквы. Латунные, с усилием. Можешь хоть роман печатать, хоть ТЗ.

— Роман мы уже печатаем, — сухо заметил Алексей. — В четырёх экземплярах.

Из угла высунулся Валера.

— Это что за чудо‑юдо? — спросил он, подходя. — КБ воюет с министерством, а нам завозят печатные машинки? Скоро ещё пианино поставите, да?

— Это орган, — серьёзно сказал Игорь. — Орган ввода. Алексей хочет, чтобы его ЭВМ не была глухонемой.

— Она и так слишком много умеет, — проворчал Валера. — Ей бы руки поотрывать, а вы ей пальцы добавляете. Зачем калькулятору буквы?

Алексей мысленно отметил, как легко слово «калькулятор» всё ещё к ним липло. Хоть уже и ВКУ получился, и ЦУБ крутит микрокоманды, и самотест памяти — а для Валеры это пока всё равно «калькулятор».

Отчасти он был прав. Пока они сами не начнут иначе его называть, мир тоже не начнёт.

— Не калькулятор, — устало поправил Алексей. — Учебно‑демонстрационный вычислительный комплекс. И букв ему надо хотя бы для обозначений ячеек. А‑Б‑С, «ИТОГО», «ПРЕМИЯ». Иначе учитель с ума сойдёт между «ячейка номер семь» и «ячейка номер восемнадцать».

— Учитель‑то может и сойдёт, — не сдавался Валера. — А вот рабочий, который будет его чинить, — точно. Там и так проводов как в троллейбусном депо. А вы ещё вот это хотите прикрутить?

Он ткнул пальцем в широкий ряд клавиш.

Алексей посмотрел на машинку. На крышке были выцарапаны чьи‑то инициалы. На пробеле — пятно от чернил. На боковине — наклейка «ДК „Электронмаш“».

«Клавиатуры мы всё равно не избежим, — подумал он. — Либо сейчас, либо через год. Лучше сейчас, пока у нас ещё есть время».

— Валера, — сказал он вслух, — Мы прикрутим всё, что необходимо, и ни одной гайки сверху. Ресурсы по механике я в ТЗ так сформулирую, что это будет «расширение возможностей учебного комплекса по подготовке операторов печатающих устройств».

Валера фыркнул:

— Ладно. Только учти: это плюс ещё полкило железа и полдня сборки. И крышка другая нужна. И я потом на тебя покажу, когда они на совете начнут спрашивать, почему прибор вдруг стал как пианино.

— До того как он станет пианино, — вмешался Игорь, — он хотя бы перестанет быть детским «Феликсом».

Валера вздохнул и махнул рукой:

— Делайте свою клавиатуру. Только я в акт напишу: «по инициативе конструктора Морозова». Чтобы потом ко мне меньше приставали.

— Пиши, — сказал Алексей. — Главное, чтобы рядом с этой фразой была подпись Седых.

Разделительный шов между пишущей машинкой и клавиатурой прошёл по уровню корпуса.

Сначала Валера с Игорем аккуратно сняли каретку — тот самый блок, который бегал вправо‑влево, печатал и звенел колокольчиком в конце строки. Вышло непросто: пружины, тяги, сложный советский механо‑мозг. Но им нужен был только нижний этаж — клавишный механизм.

Педантичный немец в Алексеевой голове тихо рыдал, глядя, как режут конструкцию. Инженер‑практик из 1976‑го только кивал: «Ну а что ты хотел, детали же нужны».

В итоге на стол легла тяжёлая рамка с клавишами. Вверх торчали шляпки «ЙЦУКЕН», вниз — штифты. Каждый ряд — отдельный стержень, каждая клавиша — рычаг, который толкал контактную пластину.

— Вот твоё клавишное устройство ввода, — удовлетворённо сказал Игорь. — Почти как у настоящих.

— Почти? — приподнял бровь Алексей.

— Ну, у настоящих там всё на герконах, а у нас — на соплях, — честно признался Игорь. — Пластинки, контактные пружинки. Зато доступно.

«У настоящих» — это он уже про какие‑то западные конструкции из журналов. Алексей о своих «настоящих» предпочитал не думать, чтобы не расстраиваться слишком сильно.

Он взял в руки схему, которую наскоро накидал. Матрица из строк и столбцов. Дешифратор по строкам, опрос по столбцам. Код — семь бит на символ, хватит на русский алфавит и всякие «плюсы» с «минусами». КОИ-7. Всё по ГОСТу.

— По строкам у нас будут коды, — пояснил он, — по столбцам — уровни. ЦУБ периодически включает одну строку, считывает, какие столбцы замкнулись. Это называется «опросная матрица». Удобно, потому что экономит провода. Не шестьдесят линий, а, условно, восемь плюс восемь.

— Экономишь провода — потом мучаешься с диагностикой, — философски заметил Валера, но спорить не стал.

Сашу подключили немедленно. Он разложил провода по цветам, подписал каждый ряд и каждый столбец карандашом прямо на металле.

— Если что‑то сгорит, — пробормотал он, — я хотя бы буду знать, где.

— Не сгорит, — сказал Алексей. — Если, конечно, ты не перепутаешь «А» и «Ф», как в прошлый раз А3 и А4.

Саша покраснел, но кивнул.

К вечеру всё было готово для первого прогона. Плата матрицы, плата дешифратора, жгут к ЦУБу. На панель повесили пока только одну строку клавиш — верхнюю, с «ЙЦУКЕН».

— Начнём с малого, — сказал Алексей. — Если мы не справимся с «Й», дальше можно не лезть.

Он включил питание через лампу‑ограничитель. Та мелькнула и погасла — хороший признак.

Микропрограмму для теста они с Евгением уже подготовили: вместо обмена с цифровой панелью ЦУБ теперь смотрел в матрицу клавиш и при каждом нажатии должен был выводить на индикатор код нажатой буквы в десятичном виде. Грубо, но наглядно.

— Ну, — сказал Игорь. — Кто будет первым пальцем истории?

— Давай ты, — предложил Алексей. — Ты у нас агрегат добыл.

Игорь подумал — и нажал. Клавиша «Й» мягко ушла вниз, наверное, в миллионный раз в жизни. Где‑то щёлкнули контакты.

Индикаторы вспыхнули.

«0009».

— Девять, — удовлетворённо сказал Алексей. — Как мы и шифровали. Одна буква — один код. Отлично.

— Подожди, — сказал незаметно подошедший Евгений. — Не отпускай «Й».

Игорь держал. ИН‑12 дружно продолжали мигать: «0009», «0009», «0009», «0009»… как пулемёт.

— Это ты так задумал? Быстрый многократный ввод? — спросил Евгений.

— Нет, — поморщился Алексей. — Это дребезг контактов. Наш следующий шаг, маленький, но неприятный.

Он сам нажал «Ц». Быстро, коротко.

На индикаторах проскочило «0010 0010 0010».

— Ну вот, — вздохнул он. — Один удар, три события. Привет, механика.

— Красиво дребезжит, — оценил Игорь. — Для печати протоколов сойдёт. Нажал один раз — получил три буквы. Экономия труда.

— Для протоколов у нас машинка была, — заметил Валера из угла. — Вы её только что располовинили.

Евгений подошёл ближе, закурил, не отводя взгляда от индикаторов.

— Ну что, господин микропрограммист, — сказал он Алексею, — будешь дребезг ловить в железе или в мозгах?

— В твоих? — уточнил Алексей.

— В моих меньше места, чем в твоём ЦУБе, — хмыкнул Евгений. — Но могу и у себя. Только это будет некрасиво. Там же всё и так на грани тактов.

Алексей задумался. В его привычном мире эта задача решалась одним движением: в обработчике нажатия клавиши делаешь задержку в десять–двадцать миллисекунд, пока контакт успокоится, потом ещё раз проверяешь состояние. Всё.

Здесь «задержка» — это либо фильтр по входу, либо цикл микрокода, который «тупит» ЦУБ на месте.

Цепочка по времени на каждую клавишу — это сотни деталей. Цикл микрокода на каждый опрос — это потерянный такт, хоть он у них не гигагерцовый, переживут. Если не переразвести.

— Давайте так, — сказал он, — в железе мы добавим только одно: фиксацию нажатого символа. Опрос матрицы увидел любую замкнутую комбинацию — записал код в регистр, дальше, пока клавиша не отпущена, — опрос не идёт. А в микрокоде добавим цикл «жди отпускания».

— То есть ты хочешь сказать: «нажал — держи, пока машина подумает», — уточнил Евгений.

— Примерно, — кивнул Алексей. — Для человека это будут доли секунды. Для ЦУБа — целая жизнь. Но ему за это платят.

— Кто? — уточнил Игорь.

— Министерство, — невозмутимо ответил Алексей. — Косвенно.

Валера фыркнул.

— Мне понравилось, — сказал он. — Особенно про «жди отпускания». Это как с начальством: нажал — жди, пока отпустят.

— Схему фиксации я нарисую, — продолжил Алексей. — Один регистр на семь бит, один флаг «клавиша нажата». Пока флаг не сброшен — новые коды не принимаем. Сброс — по отпусканию контактов. Саша, сможешь развести?

— Разведу, — уверенно сказал Саша. — Только я буду проверять по десять раз. Мне одной сгоревшей платы хватило.

— Вот и славно, — отозвался Алексей.

— А я проверю, — сказала Люба, — Евгений, не кури тут, пожалуйста.

Евгений затушил сигарету в банке из‑под канифоли.

— А в микрокоде я тебе сделаю такой цикл, — пообещал он, — что дребезг сам исчезнет.

К середине следующего дня, ближе к обеду, схема антидребезга в чистовом виде висела на кульмане.

Алексей нарисовал регистр из двух К155ТМ2 и одного К155ТВ1 — для формирования строба, рядом — небольшой мозг: дешифратор сигналов «новая клавиша», «клавиша отпущена». По ходу дела выкинул пару лишних вентилей, чтобы не ругался Михалыч за избыточную номенклатуру.

— Вот здесь, — он показывал Саше, — будет защёлка. Как только матрица что‑то увидела — защёлка запоминает код и ставит флажок. ЦУБ считывает. Затем ждёт, пока матрица скажет: «всё, отпустили». Только после этого разрешаем новый код.

— А если человек нажмёт другую клавишу, не отпустив первую? — спросил Саша.

— Тогда либо мы считаем это ошибкой, либо делаем приоритет: первая нажатая — главная, — ответил Алексей. — Для печати текста это не страшно. Это не операторский пульт и не телетайп, где каждый знак должен быть безусловным.

— То есть все эти «быстрые машинки» с десятью пальцами — это не к нам? — уточнил Саша.

— Когда к нам придут «быстрые машинки», — отозвался Евгений, — нас уже тут не будет. Расслабься.

Вечером собрали плату. На этот раз лампа‑ограничитель даже не дернулась. Защёлка щёлкала тихо, почти незаметно.

— Ну, — сказал Игорь. — Раунд второй. Й.

Он нажал «Й» и держал. На индикаторах послушно высветилось «0009» — и замерло. Ни пулемёта, ни очереди, один символ, как и положено.

— Отпускай, — скомандовал Алексей.

Игорь отпустил. Индикаторы послушно погасли.

— Теперь нажми ещё раз, — попросил Евгений.

Индикаторы снова честно выдали «0009».

— Работает, — констатировал Алексей. — ЦУБ видит только переход «нет→есть». Повторения не считает.

— А если очень быстро? — не унимался Игорь. Он начал тыкать по очереди «ЙЦУКЕН», как пианист по гамме.

Индикаторы успевали. Цифры сменяли друг друга без пропусков, но и без «залипаний».

— Как по книжке, — уважительно сказал Саша. — Хоть в институт не поступай.

— В институте тебе ещё хуже будет, — буркнул Валера.

Они смеялись, но смех был расслабленным. Большая часть работы была сделана: буквы из механической железки официально дошли до ИН‑12, без удвоений и тройников.

В тот же день заглянул Михалыч. Посмотрел на располовиненную машинку, на новую плату, на жгут к ЦУБу.

— Вы чего тут ещё придумали? — спросил он, но тона «сейчас буду ругаться» не было, был скорее «сейчас посмотрю».

— Клавишное устройство ввода, — спокойно ответил Алексей. — В рамках учебного комплекса. Для обучения операторов печатающих устройств и для ввода буквенных обозначений.

— В ТЗ про это ничего не было, — напомнил Михалыч.

— В ТЗ было «возможность расширения функциональных режимов», — мягко напомнил в ответ Алексей. — Буквенный ввод как раз про расширение. Мы же не говорим про стихийные бедствия, мы говорим про «ПРЕМИЯ» и «ИТОГО».

Михалыч подошёл ближе, ткнул одним пальцем в клавишу «А».

Индикаторы послушно высветили код.

— И это всё ради того, чтобы на лампах видеть номера букв? — скептически уточнил он.

— Это пока тест, — сказал Алексей. — Потом вместо кода будет сам символ на ВКУ. На телевизоре. Уже по нашим схемам.

— Телевизор вы уже мучили, — вздохнул Михалыч. — Теперь ещё и клавиатуру к нему пришьёте. Бедный прибор.

Он постоял, пощёлкал ещё пару клавиш. Дребезга не было.

— Ладно, — наконец сказал он. — Давайте так. В документации это будет называться «клавишное устройство для ввода буквенно‑цифровых обозначений». Никаких «машинописей», «редакторов» и прочей фантазии. И никаких разговоров про «печатную машинку, внедрённую в ЭВМ». Понятно?

— Понятно, — кивнул Алексей.

— И ещё, — добавил Михалыч. — Валерич, корпус под это дело ты сам сварганишь, или меня потом по телефону трепать будут?

— Я сделаю, — устало сказал Валера. — Только имейте в виду: пальцы у людей толстые, расстояние между клавишами надо нормальное. А то они вам всё тут попереломают.

— Пальцы у людей обычные, — отозвался Алексей. — Это у нас конструкции хлипкие.

Михалыч поджал губы, но ничего не ответил.

— Делайте, — сказал он через паузу. — Только чтобы это всё потом не развалилось на первом же школьнике.

— Если развалится, — тихо сказал Алексей, — значит, плохо сделали. Значит, переделаем.

Михалыч посмотрел на него пристально, потом коротко кивнул.

Ближе к ночи КБ вымер. В проходах гулко отдавались шаги дежурного. В макетной остались трое: Алексей, Игорь и Саша.

На столе перед ними стояла панель с половиной механизма «Консула» и аккуратно разведённой платой антидребезга. К панели шёл жгут к ЦУБу. Сверху — пока ещё ИН‑12 вместо настоящего экрана. Но растр уже был где‑то совсем рядом.

— Знаете, — сказал Игорь, — я всё думал: зачем тебе эти буквы. Цифрами же тоже можно всё записать. Код какой‑нибудь придумать: А — ноль один, Б — ноль два…

— Можно, — согласился Алексей. — Но тогда у человека в голове будет две карты: буквы и цифры. И он всё время будет их переводить. А нам надо, чтобы он думал задачами, а не кодировкой. Буква — это буква. Клетка — это клетка. ЭВМ должна подстраиваться под человека, а не человек под неё. Иначе он её возненавидит уже на второй минуте.

Он поймал себя на том, что говорит почти вслух то, что много лет назад однажды ведь пережил: нелюбовь к устройству от того, что оно всё время «бодается» с пользователем. Тогда спасал энтузиазм. Но школьника энтузиазмом надолго не протянешь.

— Ты сейчас опасные вещи говоришь, — заметил Игорь. — У нас это по науке называется «эргономика», и за неё обычно не платят, — он выделил слово «эргономика» ехидной интонацией.

— Нам платят за «повышение эффективности труда оператора», — парировал Алексей. — Вот мы её и повышаем.

Игорь усмехнулся:

— То есть ты всерьёз хочешь, чтобы школьник, глядя на наш телевизор, видел буквы, как в кино? Не только цифры?

— В кино он пока видит Алена Делона, — сказал Алексей. — А у нас увидит «ИТОГО». Но это уже прогресс.

Саша, который до этого молча работал, вдруг поднял голову:

— А можно будет… ну… как Миша спрашивал… — он замялся.

— Крестики? — подсказал Игорь.

— Ну, да, — тихо сказал Саша. — Если будут буквы, можно же «икс» и «ноль» сделать… Чтобы они бегали.

Алексей посмотрел на него. В очередной раз поймал себя на том, что дети этого времени и молодые техники задают те же вопросы, что задавал он, когда сидел за своим первым БК на табуретке.

«Разница только в том, что тогда за мной никто не смотрел из Первого отдела, — подумал он. — И никто не писал докладные про „игры“».

— Можно, — сказал он вслух. — Только сначала — табличные формулы, отчёты, премии. Чтобы Седых спал спокойно. А потом уже крестики. Мы же не звери.

Саша улыбнулся.

— Ладно, — хлопнул по столу Игорь. — Хватит философии. Давайте обозначим это дело на бумаге, а то завтра никто не поверит, что мы клавиатуру приручили.

Алексей достал тетрадь. Открыл страницу, где утром записал: «Растр получен. Луч управляем. Дальше — символы».

Ниже вывел аккуратно: «Клавишное устройство ввода подключено. Антидребезг реализован. Один удар — один символ».

Остановился на секунду и добавил ещё строку, уже для себя:

«Прибор перестал быть только калькулятором».

Он закрыл тетрадь, потянулся, почувствовал, как ломит плечи.

Сделали они за день немного. Один кусочек. Клавиатуру, которая ещё надо будет упаковать в корпус, описать в документации, согласовать с начальством, защитить от школьных пальцев и от Петровых с их докладными.

Но между лампочками и буквами появился ещё один мостик. Не в будущем, не в мечтах, а здесь — на столе, на текстолите, в рывке металлической клавиши.

И этого на сегодня было достаточно.

Загрузка...