The principle used for the previous z80/CPM board support was using the WAIT signal, in response to an IORQ request from the Z80. This could not be applied to the ZX81.
I have kept the basis of previous software for memory access, the VGA output and the (non-perfect) PS2, but completely modified the Z80 interface. BUT thanks to that wonderful PSoC5 (I don’t get anything from Cypress for saying that), the hardware remains the same !!!
ZX81 needs a switchable NMI generator, some logic around NMI/HALT/WAIT, a way to force NOP on the Z80 when executing D-FILE with A15 high (while in M1), and acquisition of the D-FILE char (via FIFOin, and a DMA).
The keyboard was emulated by multiple control registers muxed together, and selected by A8-A15.
Result is :
I doubt it can be of any help, but the sources for PSoC creator are here.
Also needed would be the Eagle project :
All files here (v4 bug corrected – not manufactured).
And files to put on the uSD card, folder structure here :
Files in those folders were taken from :