ZXGame Propeller Coprocessor for the ZX81 Computer

BeanBean Posts: 8,028
edited 2019-10-01 - 13:32:01 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

Bean
d1953b626a99d6676c670173c64699.jpg
2048 x 1051 - 371K

Comments

  • 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.
  • @Bean,
    Interesting work there. Please keep us updated on your progress B)
    My Prop boards: P8XBlade2, RamBlade, CpuBlade, TriBlade
    Prop OS (also see Sphinx, PropDos, PropCmd, Spinix)
    Website: www.clusos.com
    Prop Tools (Index) , Emulators (Index) , ZiCog (Z80)
  • 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.

    Bean
  • 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
  • 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.
  • 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
  • Bean - I can't click on f3b2b4815c1a958283c12780b2b63e.zip to download it. Is this the demo?

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

    Tim

    Try the zip file to the right of the picture.
    Infernal Machine
  • Tim,
    I fixed it. The forum got confused when I deleted the old files and uploaded a new one.

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

    Thanks - Tim
  • 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.

    http://zxgame.forumotion.com/

    Bean
Sign In or Register to comment.