Цитата Сообщение от pvlad Посмотреть сообщение
1. Думаю, не следует все порты лепить по адресам друг за другом. Надо как-то делить на функциональные группы и между ними делать запас адресов для будущих расширений.
Как скажете. Куда скажете- туда и приколочу.

Цитата Сообщение от pvlad Посмотреть сообщение
2. Как и для USART, для KBRD тоже необходимо прерывание, и так же бит для его вкл./выкл.. Порт со скан-кодом можно обнулять по заднему фронту сигнала Чтения этого порта.
А каков глубинный смысл этих сканкодов вообще? Особенно учитывая, что читаются правильно фактически только однобайтные коды, для двух-трехбайтных видим только последний.
Приделаем и прерывание, приоритет вероятно лучше разместить между USART и INT50 (у USART по понятным причинам самый высокий).

Цитата Сообщение от pvlad Посмотреть сообщение
3. Может быть все прерывания свести в один порт, где D7=EI, т.е. разрешает/запрещает все прерывания контроллера? Другие биты этого порта включают всё по отдельности.
Ответ в пункте 1.

Цитата Сообщение от pvlad Посмотреть сообщение
4. НЕ совсем понял: Int50 у нас чем-либо отключается (кроме команды EI), или долбит сразу после подачи питания? Хреново, если это прерывание не имеет наружного вывода и подсоединено к кадровой внутри ПЛИС напостоянно. Это не есть хорошо, раз это прерывание не возможно задействовать для других целей!
Отключается битом Д6 порта FB. Это стандарт.
По умолчанию (сбросу) отключено.