Shop OBEX P1 Docs P2 Docs Learn Events
ZXGame Propeller Coprocessor for the ZX81 Computer — Parallax Forums

ZXGame Propeller Coprocessor for the ZX81 Computer

BeanBean Posts: 8,129
edited 2019-10-01 13:32 in Customer Projects
Note: I have changed this to reflect the module now being called ZXGame.

I've had the idea for a while about making coprocessor for the ZX81 from the propeller by basically connecting the propeller pins directly (almost) to the ZX81 bus.

I wanted the propeller to be memory-mapped because ZX81 BASIC doesn't have anyway to "talk" to I/O ports. And I wanted it to be usable from BASIC.

I wasn't sure if the propeller would be fast enough, but with the right code, it handles it with no problem.

The ZX81 has it's ROM at address 0 to 8191, and it's RAM starts at 16384. So I memory mapped the propeller right at the 8K memory location.
Because I wanted to use as many of the propeller pin as possible for user I/O the module is only partially decode.
It only decodes A15,A14,A13 and A0 and A1. So the module's address repeats every 4 bytes between 8K and 16K, and I only have 4 address that I can read/write.
The base address is 8192,8193,8194, and 8195.
I also needed to connect the /WR /RD and /MREQ pins as well as the 8 data bits (D0 thru D7). So it takes a lot of pins to pull it off.

With only 4 memory address available, I took a "register" type approach to using the module.

I have reserved memory address 8195 for module status. Bit 7 is high when the module is busy.

The ZXGame module supports VGA, Sound, and Wii Classic Controllers

2048 x 1051 - 371K


  • Interesting.
    I've long wanting to do one for the R6502 (or the SY6502). But I would start with the SY6507 one because I have one in stock.


    And this message is supported by the Dwarfs of the Lonely Mountain.
  • Cluso99Cluso99 Posts: 18,069
    Interesting work there. Please keep us updated on your progress B)
  • BeanBean Posts: 8,129
    I have updated this post because I have changed the interface to have VGA, Sound, and Wii Classic Controller ports.
    I also changed the name to ZXGame to reflect this.

    I have a couple beta testers lined up, and I plan to use this port to exchange information with them.

    I have posted everything needed for anyone to build their own if they want.

  • BeanBean Posts: 8,129
    I have sent out a couple modules to the beta testers.
    I have update the documentation and added a zip file with some ZX81 demos.

  • Bean,
    Thanks for sharing the files. I've been following this on ZX Sinclair World and Facebook. I've always thought the Propeller would be a great interface to the ZX81. I did interface the Propeller running the AY-3-8910 to the ZX81 as a sound chip. It worked if the ZX was doing pokes through Basic but was too slow to handle assembly code.
  • BeanBean Posts: 8,129
    Writing to addresses worked pretty easy, but I had to use a separate cog for each address that needs to be read.

    Also, you do need to wait after each command in assembly (and sometimes when using FAST mode in BASIC).
    I have a status flag that can be read to see if the interface is busy.

  • Bean - I can't click on to download it. Is this the demo?

  • tdg8934 wrote: »
    Bean - I can't click on to download it. Is this the demo?


    Try the zip file to the right of the picture.
  • BeanBean Posts: 8,129
    I fixed it. The forum got confused when I deleted the old files and uploaded a new one.

  • Bean (Terry) - I see the ZIP file now and successfully downloaded it and opened the files up.

    Thanks - Tim
  • BeanBean Posts: 8,129
    I have created a new forum for the ZXGame Interface.
    I will still post Propeller related content here, but I don't want to hog-up the Parallax forum.

    If you are interested please join.

Sign In or Register to comment.