Я же предлагал сделать Z80 на небольшой платке ПЛИС, по типу Celeron 300A, на контакты вывести шину данных 8 бит, линейную шину адреса 24 бита, сигналы управления памятью и портами, частота тактирования, и адекватное управление прерываниями, в простейшем случае эта платка может быть с обычным Z80 (4-20 МГц), регистром банков памяти от пента или скорпа, так что бы на контактах был уже линейный адрес 18-20 бит, 256к-1024к.
А уже на материнке стоит озу, пзу, буферные усилители, видеоформирователь (или слот для видеокарты), генератор ЧАСТОТЫ ЦПУ! с изменяемой частотой.
В идеально-тупом случае втыкаем платку на которой стоит ПЛИС с зашитым Z80 и защёлками банков, тогда можно сделать все команды по 1-4 такта а не 4-20 и частоту увеличить, кэш на 1 адрес/данные что бы не взатыкнуть с таймингом установки адреса и выдачи данных с пзу/озу.
Если уж сильно хочется то можно в префикс #ED поставить команды MUL и DIV, в плис есть аппаратный умножитель/делитель, а LDIR c 2 тактами на перенос???
Или в тот же #ED добавить команды JP NNN и CALL NNN с 24-биным адресом без всяких банков.....
Ну или вместо LD L,L сделать префикс #D6 и если он будет стоять перед JR, JP, CALL, PUSH, POP то адрес будет 16/24 вместо 8/16.
Кстати в ту же плис можно запихнуть spriteDMA который с какого нибудь линейного адреса будет кидать байты в видеообласть с сдвигом по Y, это почти обычный DMA только выходной адрес дополнен счётчиками ширины и высоты, получится что-то типа
SPRITE #03000, #F0000, #40, #10 - перекинуть пиксели с адреса 12288 (начало хранения спрайта) в начало видеообласти 1048576 и размером 64x16, если байт данных будет #FF (прозрачный) то запись не выполнять и перейти к следующему пикселю.
В случае с экраном 256x192x1 Байт на цвет ситуация вообще идеальная для плисины, никто не мешает сделать 640x480, счётчику какая разница на сколько Y сдвигать по адресу.
1 канал такого простого videoDMA решит все проблемы с переделкой старых игр, тем более можно входной байт заносить в счётчик сдвига и хранить там 8 пикселей с подкраской, хотя смысла в этом нет, простой программный упаковщик решит эти проблемы.
Эмуляция типа компьютера должна производится на уровне CPU а не разъёма, зачем банки памяти если адрес должен быть линейный? банк идёт на уровне регистра или мультиплексора, на выходе в общую шину адреса какие ещё банки? зачем шина данных на 3 и на 5 в?
Шины ISA хватает за глаза для Z80, адресация до 1 Мб, опять же, память находится на материнке и может быть и 4 Мб, на разъём зачем весь адрес выводить? у какой карты используется прямой адрес? или ради подвеса на какой либо порт ввод-вывода? так их всего 256 ибо в программах всё равно криво адресация сделана.
Если полностью поддерживать все старые программы да ещё и на все существующие варианты спектрума то это только весь этот бардак запихивать в плисину и делать настраиваемую конфу, что уже в принципе есть.

