Клавиатура на пик контроллере, автор в MAXе

Комментарий автора:
Преобразователь скан-кодов PS/2 клавиатуры
в матричное поле клавиатуры RK-86
Программа на языке Ассемблера для PIC16, MPLAB IDE v8.92.
Адаптер PS/2 -> RK86 делался вместо изготовления штатной клавиатуры "на кнопках", т.к. клавиатур PS/2 - вокруг как грязи. Принцип работы простой: получаем скан код и по нему включаем соответствующую ячейку в матрице микросхемы MT8816. Таблицы соответствия кодов PS/2 матрице RK86 в двух подпрограммах - Klav и Klav_Shift. Если при нажатии любой клавиши не была нажата Shift, то используем первый набор, Если была нажата, то второй. Благодаря двум таблицам получается "дурить" драйвер клавиатуры Ориона и подставлять ему коды символов верхнего регистра, соответствующих клавиатуре PS/2. В контроллере есть место для создания таблиц для комбинаций ещё с двумя функциональными клавишами.
Изначально адаптер делался для имитации клавиатуры МС7007, у которой функциональные клавиши входят в общее матричное поле. Но пришлось переделывать под RK86, т.к. я не понял, как её правильно подключать (подключение из ж-ла Радио не сработало). В RK86 функциональные клавиши - отдельные кнопки, поэтому пришлось в схему добавить дешифратор ИД4, чтобы из двух свободных выводов получить три сигнала. Достоинство такого включения - "дёшево и сердито", работает ведь. Недостаток - невозможно отслеживать одновременное нажатие более одной кнопки. Если это надо, то проще всего перейти на контроллер с 28 ногами (16F886, например).
Для тех, кто решит поменять кодировку. Вот фрагмент кода (Klav):
retlw 048h ; 2B F
retlw 064h ; 2C T
retlw 048h - будет возвращён код 48h=01001000, согласно которому будет включена ячейка в строке 3 (нумерация от нуля) и столбце 6 (это такой прикол от создателей МТ8816, у них столбцы 6 и 7 соответствуют кодам 8 и 9).
retlw 064h - строка 6 столбец 4.
Адаптер спаян на печатной плате, но её надо перерисовывать, т.к. изначально рисовалось под МС7007. Поэтому пока не выкладываю, слишком много надо менять.
Прошивку загрузить не могу, поэтому пишите по координатам указанным на сайте
http://rdk.regionsv.ru/ вышлю