В первом посте выложил архив с новой версией прошивки, доработанной
по замечаниям пользователей.
Код:
Прошивка контроллера клавиатуры для Профи.
Версия 3.3
Основа контроллера - ATTiny2313 (или AT90S2313).
Расcчитана на работу с AT-клавиатурой IBM.
Эмулирует работу контроллера XT-клавиатуры для
Профи, выполненного на микроконтроллере семейства
MSС48 (советский аналог 1816ВЕ35).
Раскладка клавиатуры сделана почти как в контроллере
на MSC48. Некоторые привязки клавиш я изменил.
В драйвере клавиатуры CP/M для Профи используется
дополнительный бит порта клавиатуры, который здесь
обозначен как b6 (6-ой бит, написано во внутреннем
тесте клавиатуры Профи)
Цифровые, алфавитные и символьные клавиши на клавиатуре
IBM-ки соответствуют идентичным клавишам и комбинациям
клавиш на клавиатуре Профи.
Особенности имеют служебные и функциональные клавиши.
Их соответствие приведено в таблице ниже:
-----------------------------------
| на IBM | На Профи |
-----------------------------------
| Esc | CapsShift+<1> |
| | |
| F1 | <A>+b6 |
| F2 | <B>+b6 |
| F3 | <C>+b6 |
| F4 | <D>+b6 |
| F5 | <E>+b6 |
| F6 | <F>+b6 |
| F7 | <G>+b6 |
| F8 | <H>+b6 |
| F9 | <I>+b6 |
| F10 | <J>+b6 |
| | |
| F11 | SymbShift+<Q> |
| F12 | SymbShift+<W> |
| | |
| Ins | <O>+b6 |
| Home | <K>+b6 |
| Page Up | <M>+b6 |
| Del | <P>+b6 |
| End | <L>+b6 |
| Page Down | <N>+b6 |
| | |
| Tab | CapsShift+<I> |
| Caps Lock | CapsShift+<2> |
| Shift | SymbShift |
| Ctrl | CapsShift |
| Win левый | SymbShift+<ENTER> |
| Win прав. | SymbShift+<SPACE> |
| Win Menu | CapsShift+<1> |
-----------------------------------
Сброс компьютера реализован как и в IBM-ке по нажатию
трех клавиш <Ctrl>+<Shift>+<Del>.
При нажатии на Print Screen на выходе /NMI контроллера
формируется отрицательный импульс длительностью 10 мсек.
Этот импульс можно использовать для формирования сигнала
MAGIC.
Клавиша Scroll Lock используется для управления выходом
TURBO контроллера. При этом индикатор Scroll Lock
показывает состояние этого выхода. Если индикатор горит
на выходе TURBO - высокий уровень, если гаснет - низкий.
Состояние выхода TURBO сохраняется в EEPROM контроллера.
Клавиша Num Lock управляет соответствующим индикатором
на клавиатуре. При этомв Профи никакого кода не передается.
Состояние Num Lock также сохраняется в EEPROM контроллера.
Клавиша Pause используется для остановки процессора.
Для выхода из режима ожидания необходимо нажать любую
клавишу.
Клавиша Caps Lock выдает в компьютер соответствующий
код переключения, при этом индикатор Caps Lock перек-
лючается при каждом нажатии на клавишу. Если требуется
синхронизировать состояние индикатора и режима Caps Lock
в компьютере, можно нажать Caps Lock одновременно с Ctrl.
При этом индикатор переключит состояние, но в компьютер
код Caps Lock не поступит.
Состояние индикатора Caps Lock при включении питания и
при сбросе Профи, всегда выключено, поскольку в Basic
по умолчанию Caps Lock отключен.
Светодиод на контроллере клавиатуры загорается при
включении питания на 0.5 секунд, затем гаснет.
Каждое нажатие на любую клавишу, зажигает светодиод.