"Расширенная" ASCII-клавиатура
Через некоторое время эксплуатации возможностей первоначально собранной ASCII-клавиатуры, способной выдавать на-гора всего 64 символа, стало не хватать. Поэтому было решено немного её модернизировать, чтобы была возможность использовать практически всю таблицу ASCII-символов, включая кириллические в альтернативной кодировке.
По сравнению с первоначальной версией внесены следующие изменения:
- несколько изменены функции клавиш;
- транзисторный дешифратор перемонтирован в простой преобразователь уровней;
- клавиши "Shift" и "Ctrl" отключены от дешифрации;
- введены новые клавиши "Caps" и "Рус/Lat" с триггером памяти;
- дешифрация символов осуществляется с помощью ПЗУ, к адресным входам которой подключены все клавиши через транзисторные преобразователи уровней;
- сигнал КР (Key Pressed) теперь инверсный и требует внешнего формирователя TTL-уровня.
Токовые ключи и диодные шифраторы/дешифраторы остались на месте для уменьшения количества проводников и прочих работ, связанных с переделкой. Корпус также остался от первоначально собранного в нём терминала.
Причины, по которым было решено собрать именно этот вариант:
- подобную конструкцию возможно подключить к любому 8/16-битному контроллеру как устройство ввода/вывода, причём общение с этим устройством для контроллера будет аналогично общению с любым аналогичным: опрос наличия символа - ввод в систему при наличии - иначе выход. Всего три операции, если сравнивать с распространёнными клавиатурами со сканированием матрицы клавиш;
- по предыдущей причине контроллер не особо напрягает свой и без того слабый процессор, не тратит время на бестолковое сканирование матрицы, либо не требуется ещё один контроллер клавиатуры;
- к большому сожалению чипы, реализующие аналогичную ASCII-клавиатуру со сканированием матрицы уже не выпускаются, и они не позволяли выводить вторую половину кодовой таблицы, где обычно располагаются национальные символы (кириллица в нашем случае).
В схеме имеется свой узел первоначальной установки триггера ТМ2, работающий параллельно с сигналом сброса, приходящим с внешнего контроллера. При включении включается режим ввода прописных латинских символов (тот же "Аюша" не понимает команд, вводимых с помощью строчных букв). Присутствует выход светодиодной индикации режимов работы. В принципе, если применить клавиши с фиксацией, триггер ТМ2 можно убрать.
Линии данных ПЗУ притянуты к питанию через резисторы 10 кОм, поскольку выходы ПЗУ имеют открытый коллектор. Потребляемый конкретным экземпляром собранной схемы ток не превышает 75 мА (хотя ПЗУ и находится постоянно в активном режиме).
Как обычно, описываемый узел был собран на макетной плате небольшого размера,
и, как обычно, с использованием МГТФ.
Прошивка ПЗУ типа 537РФ2/5 или 2716 прилагается (только первые 1024 байта, остаток микросхемы прошивается символами FF).
UPD июнь 2018: обновлённая прошивка ПЗУ содержит возможность отправки кода ESC путём нажатия клавиш Ctrl+"`" (на ней также расположёны символы ~/ё/Ё). Это может потребоваться при работе с некоторыми СР/М-программами, к примеру, WordStar.
Также в состав клавиатуры введён одновибратор на таймере 555 (1006ВИ1) для уменьшения "звона" клавиш, дабы не занимать память компьютера программной задержкой. Далее, в клавиатурном блоке дисплейного модуля, по спаду импульса /КР происходит запись символа в буфер, а по фронту, после задержки, - взводится запрос прерывания.
Корпус клавиатуры немного изменился (новые надписи на клавиши пока ещё не нанесены, но они будут аналогичны стандартным современным), сверху уже четыре светодиода (слева направо: Caps, Рус/Lat, Активность диска, Питание) и две кнопки сброса ("холодная" и "горячая"). Переключатель "0/1" пока не используется, хотя и планировался под режим "Турбо".
Две дополнительные кнопки "Caps" и "Рус/Lat"
размещены по сторонам от "Shift'ов". К сожалению
установить клавиши аналогичного типа не получилось по конструктивным причинам.
Каким же образом вышеописанная схема взаимодействует с контроллером? Для этого необходим небольшой блок согласования, который в авторском варианте входит в состав дисплейного модуля.