I want one of these:
Eagle schematic here (you might need to right-click-save-as)
So I'm going to have to bite the bullet and make one. I've decided that the simplicity of bit-banging is all very well and good but sometimes ambition should be allowed free reign.
With that in mind may I present 'The ZX81MMCRAMANDIO Board'!!
Ahem I'll be sacking the marketing man later.
It's a combined 32K RAM, SD/MMC and IO interface for a ZX81. 32K of static ram from 8K-40K will give true hires capability. A jumper will allow the on-board RAM to be disabled on those machines already internally expanded. It will be able to perform some basic DMA and be able to fill the machine's RAM with code and data from the SD/MMC card. This eliminates the need for loading of firmware from cassette or having external ROM.
The Z80 processor has a rather endearing ability to hold itself off the bus when requested. I'll be using this facility to effect the DMA. Simply assert the BUSRQ line and the Z80 lifts its legs obligingly from the circuit. At this point the uC will use some chip or other (a MAX6965 in this first design but I'll have to change this - too expensive) to drive the address lines of the RAM whilst jeffing program data into its bytey cells. The ZX81 will need to be in FAST mode (ha!) whilst this in progress in order that the ULA be quieted and diverted from its usual NMI generation duties which would spoil things rather.
This is a project I've been promising for way too long now and finally I think it's time to commit a design to PCB for manufacture. Follow me if you will. I think it'll be rather fun :)
I'll publish all my materials along the way if you want to play too. As I'm planning to make some of these to sell I'm afraid I'll have to assert some rights though - these ones look quite nice.
This work is licensed under a Creative Commons Attribution-Noncommercial 2.5 Generic License.
Feel free to remix, rework or improve, doodle dawdle or derive. Comments welcomed.