Автор RC2014 мне предлагает его микроклавиатурку заюзать для начала
https://www.tindie.com/products/Semachthemonkey/universal-micro-keyboard/Наверное так и надо сделать ибо клавка по ходу спектрумовская (матрица 5x8)
Для работы с такой клавкой взять скажем PIC16F871, у которого есть:
- порт A (6 бит)
- порт B (8 бит)
- порт C (8 бит)
- порт D (8 бит)
- порт E (3 бита)
т.е. всего 33 сигнала!
Я планирую задействовать режим PSP для работы с шиной Z80 (чтение и запись в порт #80) - в этом случае порт D подключается к шине данных, а порт E превращается в сигналы управления /RD,/WR и /CS. На вычитку клавки уйдёт 13 сигналов если делать в лоб, либо 8 если адресовать ряды по одному (тогда нужна будет ещё одна микросхема дешифратора переводящая 3 бита адреса в 8 битов выбора ряда для клавки). В итоге остаётся 14 бит, из которых 8 (например порт B) уйдут на выдачу прочитанного символа на буфер (когда Z80 будет читать из порта #81) и из оставшихся 6 битов порта A:
RA0 адрес для чтения клавки KA0
RA1 адрес для чтения клавки KA1
RA2 адрес для чтения клавки KA2
RA3 вход нулевого бита адреса с триггера (и заодно тут заводим бит занятости OFLAG из SX-28 - переключаемся между ними с помощью RA0)
RA4 который ОК пойдёт на прерывание /INT процыка (будет дёргаться если прерывания разрешены и если есть байт с клавки)
RA5 светодиод для индикации Caps Lock
5 битов данных с клавки пойдут на порт C, оставляя ещё 3 бита для других целей:
RC0 вход данных с клавки (бит 0)
RC1 вход данных с клавки (бит 1)
RC2 вход данных с клавки (бит 2)
RC3 вход данных с клавки (бит 3)
RC4 вход данных с клавки (бит 4)
RC5 сигнал IFLAG на SX28 (т.к. похоже пик должен будет общаться с недотекстом, а не хост)
RC6 это TX (можно задействовать на будущее)
RC7 это RX (можно задействовать на будущее)
Тактировать пик можно 10 МГц с делителя частоты из недотекста (там 60 МГц должно было делиться на 6) либо кварц 20 МГц взять, чтобы в полную мощь его разогнать
P.S. Интересный момент заключается ещё и в том, что пик в данном случае можно будет не по назначению использовать - скажем заслав в порт управления специальный байт (который не является правильной комбинацией битов для имитируемой микросхемы 68B50, например Master Reset с параметрами) пик можно временно заставить перестать работать в качестве контроллера клавиатуры и в этом режиме он сможет выполнять какие-то другие функции - например принимать и выдавать данные из EEPROM (64 байта) либо из флеша выдавать какие-то программки для Z80, либо выполнять какие-то математические расчёты и т.д. Кроме того эти пики умеют сами себя программно перепрошивать - в таком случае можно будет перепрошивать пик прямо с Z80 - вобщем много интересного можно будет понаделать