Вот это монстр!

Imho, рецепт оптимального картриджа для ZXBUS - это z80 20Mhz + кэш 24Кб (в нем крутится программа) + ПЗУ. Вот принцип работы:
1) При вставленном картридже отключается внутренний медленный z80 сигналом BUSRQ, он не нужен.
2) Карта памяти картриджа: [#6000..#BFFF] - кэш, [#C000..#FFFF] - ПЗУ организованное страницами по 16кб.
3) Процессор в картридже работает на частоте 20Mhz, кроме случаев, когда обращается к памяти [#4000..#5FFF]. В этом случае, он начинает тактироваться сигналом CLK 3,5Mhz и притормаживаться сигналом WAIT, что нужно для некоторых клонов. Во время обращения [#4000..#5FFF] картридж обращается непосредственно к памяти спектрума.
4) Рисуем в буфер экрана, затем кидаем его в реальный экран спектрума. DMA не нужен, и вот почему. Процессор на картридже работает в 5,7 раз быстрее, поэтому даже обычный LDI (16 тактов) будет отрабатывать за (15 / 5,7) + 1 -> ~ 4 такта. Да, с DMA можно достичь 2 такта на байт, но это уже лишнее усложнение и удорожание картриджа.

Преимущество этого подхода: не нужно экзотических приемов и инструментов для программирования. По сути, программа написанная для такого картриджа может быть запущена на клоне с большим объемом памяти и быстрым процессором, например ZX-EVO.