А зачем 256 байт? Мне хватило 5 байтов (40 битов, 40 кнопок Спектрума). А еще я не стал ставить микросхему памяти, а поставил ПЛИС, куда была запихнута и вся мелкая логика. Данные в ПЛИС периодически закачивает контроллер КР1878ВЕ1, на котором реализован ps2 интерфейс и сопутствующая перекодировка скан-кодов.
Допустим, контроллер работает на частоте 10 МГц. Период тактовой частоты составляет 100 нс. Современные контроллеры, как правило, с гарвардской архитектурой и выполняют лобую команду за 2 периода тактовой частоты, т.е. в нашем случае за 200 нс. А сколько команд нужно выполнить, просто чтобы зафиксировать факт обращения процессора к порту FEh? Десяток точно наберется. Отсюда и необходимость тормозить процессор на время, необходимое контроллеру, чтобы прочитать состояние шины адреса, вычислить необходимое значение в соответствии с принятыми скан-кодами и выдать его на шину данных. Поэтому безвайтный контроллер просто так не сделать, надо извращаться.





Ответить с цитированием