Рекомендую не включать в архив папку DB - размер архива уменьшится на порядок.Сообщение от ewgeny7
Рекомендую не включать в архив папку DB - размер архива уменьшится на порядок.Сообщение от ewgeny7
ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
Speccy-2007 128/AY/TR-DOS
Сайт с документацией к "Scorpion ZS 256"
1. Думаю, не следует все порты лепить по адресам друг за другом. Надо как-то делить на функциональные группы и между ними делать запас адресов для будущих расширений.
2. Как и для USART, для KBRD тоже необходимо прерывание, и так же бит для его вкл./выкл.. Если есть прерывание, то порт со скан-кодом можно не обнулять. Там будет код последней нажатой клавиши. И пусть уже программа сама ставит флаги и определяет что там было нажато.
3. Может быть все прерывания свести в один порт, где D7=EI, т.е. разрешает/запрещает все прерывания контроллера? Другие биты этого порта включают всё по отдельности.
4. НЕ совсем понял: Int50 у нас чем-либо отключается (кроме команды EI), или долбит сразу после подачи питания? Хреново, если это прерывание не имеет наружного вывода и подсоединено к кадровой внутри ПЛИС на постоянно. Это не есть хорошо, раз это прерывание не возможно задействовать для других целей! Может быть сделать вывод, а импульс кадровой подключать/отключать через битик в каком-то порту?
Последний раз редактировалось pvlad; 17.03.2010 в 17:53.
Если ты чего-то не знаешь, то это не значит, что этого не может быть.
Как скажете. Куда скажете- туда и приколочу.
А каков глубинный смысл этих сканкодов вообще? Особенно учитывая, что читаются правильно фактически только однобайтные коды, для двух-трехбайтных видим только последний.
Приделаем и прерывание, приоритет вероятно лучше разместить между USART и INT50 (у USART по понятным причинам самый высокий).
Ответ в пункте 1.
Отключается битом Д6 порта FB. Это стандарт.
По умолчанию (сбросу) отключено.
ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
Speccy-2007 128/AY/TR-DOS
Сайт с документацией к "Scorpion ZS 256"
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
Speccy-2007 128/AY/TR-DOS
Сайт с документацией к "Scorpion ZS 256"
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Посмотрел по-диагонали. В табличке в документе все однобайтовые коды кроме кнопки F7 - семибитные.
Все двухбайтные коды = <префикс E0>+семибитный код.
Соответственно, просматривается простейшее решение:
- если пришел байт не равный E0 (однобайтный сканкод), передаем его на F766 (или другой порт какой вы с pvlad решите) без изменений.
- если пришел байт E0, то его не передаем, а следующий за ним передаем на F766 с битом D7 установленным в "1" (семибитный код + 80h)
Получим в одном байте покрытие для практически всех сканкодов.
Последний раз редактировалось Error404; 17.03.2010 в 19:11.
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
Speccy-2007 128/AY/TR-DOS
Сайт с документацией к "Scorpion ZS 256"
Естесственно семибитные. Установленный старший бит означает отпускание соответствующей клавиши (если конечно это не E0 и не FA).
---------- Post added at 21:32 ---------- Previous post was at 21:30 ----------
Не вся. С таким подходом ты не различишь обычные стрелки и соответствующие клавиши на нумпаде.
Ну да, кроме ScrollLock, CapsLock, NumLock. У них коды двухбайтные, а последний - всегда FA.
ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
Speccy-2007 128/AY/TR-DOS
Сайт с документацией к "Scorpion ZS 256"
Эту тему просматривают: 3 (пользователей: 0 , гостей: 3)