Предложи вариант, как об этих доп клавишах сообщать в спектрум. Только не надо предлагать у*панский вариант, сделанный в отм2.
Я никак не представляю, что будет удобнее, но вижу два варианта:
1й вариант. Использовать биты 5 и 7 при считывании порта 0xFE (судя по доке - они не используются и бит 5 всегда в 0, а бит 7 всегда в 1). Таким образом получаем две дополнительные линии сканирования клавиатуры, что позволяет добавить 16 клавиш. 58 клавиш - уже приемлемо для всех буковок на русской раскладке, а в сочетании в каким-нибудь SymbolShift - и на F1-F10 хватит. В чём минусы такого подхода - не ведаю. Если они есть - поясните с аргументами, я в тонкостях не силён.
2й вариант. Использовать отдельный порт, адресуемый точно так же как 0xXXFE, но имеющий другую младшую половину адреса. Например 0xXXCF или ещё какой, который не будет конфликтовать с другими портами. Опрос порта - точно такой же как 0xFE, только все 8 бит данных - дополнительные линии клавиатуры. Так можно добавить ещё 64 клавиши. То есть если в клавиатуре будет 108 клавиш - 40 стандарт и 64 дополнительно - то их можно нормально опрашивать по отдельности.
3й вариант (дополненеи к 1м двум, не исключает их) - сделать порт, из которого просто будет считываться SCAN-код клавиши PS/2. Причём - однобайтовый. при нахатии клавиши - со сброшенным 7м битом, при отпускании клавиши - с установленным. (ну точно как в клавиатуре PC). код 0xFF, считанный из порта будет означать, что никаких событий не происходит. Поскольку на клавиатуре 104 клавиши (а часть - типа F12, PrScr - недоступна пользователю) - то 127 кодов нажатий и 127 кодов отпусканий клавиш - достаточно для опроса.
Понятно, что нестандарт, зато можно сделать прекрасный драйвер и использовать его, без кучи сочетаний клавиш. Задача контроллера - все многобайтовые коды клавиш свести к однобайтовым.
Считаю, что самое перспективное сочетание - (1й + 3й) или (2й + 3й) варианты. Киньте в меня кусок критики, где я не прав.
ZX-Phoenix.
Pentevo ZX-Evoluton Rev. B (зелёная)