Ever since my static RAM arrived I've been toying with how to do the Plus4 RAM expansion, and after yesterdays revalation about using PIC's as decoders, I think I've hit on a nice way of doing it. The piccy shown is the current design which also has the advantage of being pretty cheap (well...as much as it can be). While PIC's are CPU's, the 16F628A is only around £1, which is still cheaper than all the logic chips I was using to just decode the address lines last time and while I could probably lose a chip from that, its still cheaper and can be upgraded due to the fact its programable. The only thing Im not sure about is if the program running will test/set the lines quick enough. Its 4Mhz by default, but you can ramp it up to 20Mhz if you need to, but as I currently use all the control lines, I can't do that. I could buy a larger PIC (for £2) and then have plenty of space for this stuff, but I've a stack of these so I'll see how it goes first.
This design allows for 16, 16K banks of RAM located at $8000 although bank 0 will also reside at $c000->$ffff. Its kind of like a Spectrum 128 deisgn I guess, where you have a single area that can page in lots of banks of RAM. However, theres still the 32K of RAM from $0000->$7fff where you can copy stuff around if you need to. The normal RAM from $8000->$ffff will just be rubbish (more or less) as its written to at the same time as the expansion, but that shouldn't matter.
You probably won't be able to put character sets etc. there (as I have no idea what will happen when it "banks", but any other kinds of data should be fine...I think. This is all guess work at the moment and I still have no idea if this will actually work...but its worth a try as all current memory expansions require you to solder onto you Plus/4 motherboard!