PSoC5-z80 v4 – now runs ZX81 too…

Posted by

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 :

z80 interface

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 :

Grant Searle, RC2014, S100, Z80-MBC2 and open81 in sz81.

3 comments

  1. Hello Michel,

    great project!! I had the same idea (to combine a Z80 with PSoC5) but til today no time to realize it.
    Therefore, i’m very interested at your project. But it is impossible to download the files. I can open the Nextcloud-site, but there are no files to load.
    Can you give me a working link or can you send me the files (PSoC Creator and eagle)?
    Is it possible to connect a keyboard? (maybe with PS/2)

    Regards,
    Peter

    1. The links should work now.
      Problem was probably caused by an update that set the hide download option.

      Good luck with my files.

      JJ

    2. And yes, I made an attempt to interface with a PS/2 kbd, but
      that’s not the most reliable part in the project.
      I had no time to continue working on this for the past 6 months or so.

Leave a Reply

Your email address will not be published. Required fields are marked *