Собственно, меня клавиатуры "
Галаксии" и "
РК-86" заинтересовали вот по какой причине:
я разбирался, как программно опрашивают частично аппаратную клавиатуру
NES-Famicom
и по коду у них оказалось в этой процедуре аж
5
полных таблиц перекодировки!
Я этому очень удивился... потому как у "
Специалиста" всего одна таблица, и будь у него
не "
ЙЦУКЕН", а натуральная "
QWERTY" раскладка английской клавиатуры, таблиц бы стало
две, на мой взгляд, ну никак не пять!
Поэтому я вспомнил про "
Галаксию" и "
РК-86" - а как в них обошлись совсем без таблиц?
Выяснилось, что в "
РК-86" всё же есть табличка в две строчки...
И на клавиатуру "
Галаксии" я тоже посмотрел, раз уж
я сам и рисовал приличную схему её:
0Galaksija_kbd.gif
В случае с "
Галаксией" мне представляется следующий "
безтабличный" алгоритм, исходя из
схемотехники узла обслуживания клавиатуры.
Опрос строк и столбцов в "
Галаксии" осуществляется чисто аппаратно.
"
Слушает" состояние строки (или позицию в столбце) мультиплексор, управляемый тремя младшими
адресами:
А0...А2. При этом клавиши в матрице так и расположены по возрастанию.
Смотрим крайний столбец:
А - 41H,
В - 42H, ... и т.п. странно, что нет
@ - 40H.
За переключение "
бегущего нуля" опроса столбцов отвечает дешифратор, управляемый адресами
старше:
A3...A5.
Таким образом,
весь алгоритм сканирования матрицы клавиатуры у "
Галаксии" -
это чтение
8х7=56 адресов, начиная с базового 2000H. При каждом чтении проверяется
бит D0.
Если он равен нулю, то клавиша - нажата, а
адрес - это практически код клавиши, возможно,
плюс немного самой простой арифметики, чтобы из адреса сделать конкретный код.
You do not have the required permissions to view the files attached to this post.