Thanks Gordon. Yes, you are correct, it's basically an EEPROM with the games on it, and my menu. Upper address lines switched to select the game.
I forgot to mention that I wrote up my notes on the PV-1000 here:
https://notes.world3.net/retro_computin ... -1000.htmlThe cartridge port pin-out is right at the bottom. It's a shame they didn't use pin A2 for Z80 reset. Maybe they found one ground pin wasn't reliable when the cartridge got dirty or something. They probably never thought that games would want to reset the system, or that they would use mapper chips that didn't reset a hardware reset of the Z80.
It's actually really weird. I traced the PCB out and found that although A2 is GND, and right next to A1 which is also GND, for some reason they two are not joined on the PCB. A2 has a thin trace, which goes to a wire, which goes to the GND ring on the outer edge of the PCB. The whole PCB is weird, being single sided with a lot of wires as well as jumpers. I can only think that they went through a few revisions and kept adding wires instead of adjusting the traces, because it was laid out by hand rather than in CAD.
I like your idea of using RAM to execute the reset. The console has no ROM of its own, power up just starts executing code from address zero once an NEC integrated video/sound/controller/reset management chip releases the Z80 from reset. So it doesn't matter if the contents of RAM is random, as every game assumes that it is in an undefined state anyway.
My plan for controlling the reset lines was to have an AVR microcontroller detect accesses to a special address by monitoring the address lines. The AVR isn't quite fast enough to catch every write cycle, but if I write repeatedly to that address it will pick it up eventually. The Z80 can simply check for some magic number in the cartridge ROM space to detect when the game has been "loaded".
Thanks again, I think your suggestion will work.