About 2 years ago I got interested in “copy cards” for the Apple 2. These are cards that have a button that when it is pressed while make a snapshot of RAM on disk. This lets an executing program be ‘frozen’ and then later restored. The ‘legitimate’ use of these cards is to allow people to save a game at any point, and come back and play it later. The obvious illegitimate use of these sorts of cards is it makes it easy to make a copy of a game or other program.
These cards are not 100% effective, e.g. they won’t work if a program loads data from a protected disk between levels, but are nevertheless interesting. There is also a lot of overlap between this sort of “copy card”, home made “crack roms”, and legitimate “debugging” cards or ROMs.
Some examples :
As far as I know, there has never been any attempt to recreate any of these devices for the Apple 2 (c.f. the C64 which has the Retro Replay, a clone of the “Action Replay” )
In late 2007, Mike Maginnis (who hosts the magnificent Hardcore Computist archive) and Bill Garber (of garberstreet electronics) made available a scan of manuals and eprom images for Mike’s Senior PROM (accessable from the ‘download’ link Bill’s website, also mirrored here.
The EPROM images came from the version of the Senior PROM built for a beige //e, i.e. for motherboards where there is 1 ROM holding AppleSoft BASIC (residing in $D000..$DFFF) and another ROM holding the Monitor (residing in $E000..$FFFF).
The original Senior PROM consisted of a circuit board that plugged in the place of these 2 chips, and also included a wire that was to be clipped directly onto pin 6 (/NMI) on the 65c02 on the main board. That circuit board also included a button and a 3 position switch.
In the 1st position, the ‘normal’ BASIC & Monitor ROM code is ative.
In the 3rd position, the special ‘Senior PROM’ code is active – this allows access to utility routines e.g. to save all or part of RAM, a disassembler, a sector editor etc.
In the2nd (middle) position, the system boots as normal, but activates the ‘Senior PROM’ code when the pushbutton is pressed (i.e. at the same time as an NMI is generated).
Since this circuit plugs straight in to EPROM sockets on the motherboard, it was pretty easy for me to replicate (I really only know how to make ‘dead bug‘ style circuits, the PCB fabrication necessary for making a card that plugs into an expension slot is beyond me).
Since I was using a ‘platinum’ //e which has a single EPROM for $D000..$FFFF) I needed to merge the 2 seperate .bin files into a single file ( available here ). Then I burned that merged file into a 27256 that had a toggle switch wired up to A15, and hooked a debounced pushbutton up to the /NMI pin on the 65c02.
This let me boot a single load program using the normal A2 ROM, then flip the toggle switch and trigger an NMI and get into the Senior PROM utilities.
Which was cute, but I was hoping to be able to actually generate a ‘resurrect’ disk, i.e. copy a running program to disk in a way that it could be restarted. Unfortunately the Senior PROM needs a seperate utility disk when it is making the ‘resurrect’ disk, and there didn’t seem to be a copy of that disk available.
There were copies of some versions of the Senior PROM utilities, but they were from different versions of the Senior PROM than the version I had the EPROM image of, and were incompatible. Despite a few plaintive posts on CSA2, I wasn’t able to ever find a matching set of EPROM images and disk images that were from the same version of Senior PROM.
So I gave up.
But just recently, Mike passed on a copy of a Senior PROM utility disk that is from version 3.0 of the Senior PROM which is not quite the same version number as the EPROM image (that is 3.01) but it’s very close and so there’s a good chance they are compatible.
Unfortunately I don’t have access to my old circuits or a workspace to build a new version and test this out in. So I’m posting this in the hope that someone may be interested enough to put together the necessary circuit and see if we really do have a winning combination. Which would be nice!