Извните, пока не получается объяснить принцип работы клавиатуры и как должна для этого работать компьютерная часть устройства. Попробую еще раз.
40 кнопок разбиты на группы по 5 штук. Каждой пятерке соответствует один бит адреса Z80 от A8 до A15. При чтении состояния 5 кнопок Z80 выставляет соответствующий бит адреса в 0, остальные в 1. На шину данный (биты D4-D0) при этом подается состояние этих 5 кнопок.
Поэтому на стороне кейпада мы готовим 8 байтов состояния клавиатуры по 5 значимых битов. 0 в соответствующем бите - значит кнопка нажата. 1 - не нажата. Эти 8 байтов с 40 значимыми битами мы и передаем на компьютерную часть. Но дело осложняется тем, что большинство программ устанавливает на адресах A8-A15 не по одному биту, а как вздумается в любой комбинации. Поэтому мы должны, для работы этих программ сделать все 256 вариантов. При этом если два бита адреса в 0, то в результат получается из двух байтов из 8, например, A8_KEY_LINE & A12_KEY_LINE.





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