Menu Close

Senior PROM Reverse Engineering for the Apple //e

Background

The Senior PROM was a remarkably simple and beautiful debugging/kracking product for the Apple II. Other similar products were the Wildcard and the Crackshot, however, these two products both took up a slot in the Apple II and were also detectable by certain games. Choplifter was one game rumored not to run with a Wildcard installed and it also checked the ROM contents looking for non-factory ROM loads before it launched the game. I remember there being a number of complaints around Choplifter when the Apple IIc was released because the IIc had a newer ROM not recognized by game.

The beauty of the Senior PROM was that it was basically just a ROM replacement for your Apple with the lower bank of ROM being an identical copy of the Apple factory ROMs and the upper bank having the enhanced code for cracking. You would boot into your game with the factory ROM bank running, toggle over to the upper bank, hit the NMI button or press Reset, and were ready to start having fun in the monitor. The Senior PROM also had a number of nice utilities built in like a track and sector editor, memory move utilities and the like. I had always wanted a card like this for my Apple.

So one day, having recently completed my Apple IIe ROM Hacking project, I was reading an old Computist and happened across an article on the Senior PROM. I realized that I had acquired enough knowledge at this point to reverse engineer my own Senior PROM. All I really needed were dumps of the original Senior PROM EEPROM code and these were easily obtained on the web.

 

Building the Senior PROM

Note: For the Apple II, it’s important to make sure you have the right version of the Senior PROM for your model of Apple. I have an IIe, so I’m providing two sets of EEPROM code: one works with either a standard IIe and the other is for an enhanced //e (EEPROM binaries are named with STD and ENH). If you have a model of Apple II other than a IIe, you’ll need to alter your design to reflect your different ROM chips and also make sure you locate the correct version of Senior PROM code for your Apple.

(Photos of an original Senior PROM – Thanks to Mike Maginnis of 6502Lane for providing the original photos)

Mechanicals

These are pictures of an actual Senior PROM. The mechanicals were probably the most difficult part of the project (at least for me). You have to space your EEPROMs on the PCB board just so they will fit right over the existing ROM sockets. Then you match up some machine-pin DIP sockets on the bottom of the board (you need the longer machine pin sockets to properly mount into the existing Apple II ROM IC DIP sockets. In my version, I mounted my EEPROMs into regular IC DIP sockets which then plugged through the board into the machine-pin IC sockets. This gave me the advantage of being able to remove the EEPROMs for later reprogramming, however, the heighth of the board grew significantly (~1/4 “) and my Senior PROM then started to get in the way of some of my larger peripheral cards that projected over the CD/EF ROM locations. I may do a future mod similar to my Klein-Baker SIO board where I have a ribbon cable socket insert with the Senior PROM mounted somewhere else inside the Apple case.

 

The Circuit

The S-R flip flop logic is fairly straightforward and controls whether or not the upper or lower bank of the EEPROM is enabled. One drawback to the original Senior PROM design is that the output is not open collector. Should there be other NMI-using devices on the Apple II bus, you should really run the NMI output through an open collector IC in order to let other devices toggle the NMI when needed. I’ve noted this in the schematic, although I’ve not seen any problems with my Apple system. It would be interesting to know what other Apple cards use the NMI, however. I’ve generated a BOM and added that to the project file here.

Senior PROM reverse engineered schematic (using an S-R flip flop instead of the original NAND gate logic)

 

Senior PROM PCB (Thanks to Regenerator)

This is a PCB layout in case you want to do a proper PCB board. Note where the Pin 1’s are located on the ICs. The 27128’s are upside down in this drawing. Building the Senior PROM is fairly straightforward. My Apple CD and EF ROMs are normally 2764’s so I needed two 27128 EEPROMs. Each EEPROM holds a pristine copy of the CD or EF ROM in the lower bank and modified copy in the upper bank. The project file archive contains ready-to-go EEPROM binaries for burning into your own EEPROMs. The high address bit (A13) is toggled to 0 or 1 to select the appropriate bank. The 74LS279 S-R flip flops IC just incorporates a little bit of logic to help with the toggled switching states (Note: The 279 IC is a deviation from the original design which used a 74LS00. The logic is simpler with a 74LS279). There are two switches, a momentary contact SPST and an SPDT (common-open) switch.

One final note on the circuit: Pins 26 (A13) on the EEPROMs should NOT be connected down into the DIP socket and into the Apple motherboard. The Apple will try to drive the pin and you want to control A13 yourself. I didn’t want to deform the EEPROMs so I just cut the pins on the DIP sockets to make sure there was no contact.

 

How to Use the Darn Thing

The Senior PROM documentation is very very thorough so I won’t go into to much detail here. I’ve included all of the scanned documentation in the project files along with the ROM code and schematics.

Pressing the momentary contact sets the NMI and halts the processor. The Senior PROM follows the following logic based on where the SPDT switch is set:

1. When thrown in one direction, the lower bank of the EEPROM is active (A13 address line is low) and the Apple II default ROM is running with no Senior PROM code present

2. When thrown in the opposite direction, the upper bank of the EEPROM is active (A13 is high) and the Senior PROM code is active

3. When the switch is in the middle position, the device is in whatever previous state it was set to

Pushing the NMI button will automatically activate the Senior PROM no matter what state the device is in. This is great for breaking into software at a critical point in time to see what’s happening.

 

Project Files

Get everything you need here. The Project archive includes the PCB, EEPROM binaries for STD and ENH Apple IIe’s, full documentation, and data sheets for the 27128 and 74LS279.

 

Final Thoughts

The Senior PROM has been a great addition to my Apple IIe. Being able to quickly halt the system and trace some interesting code or do some debugging of one of my other Apple II projects has been invaluable. I also love being able to leave it off and completely invisible until I need to use it. I hope you enjoyed reading about this project. Finally, here is a photo of my reversed engineered Senior PROM.

My Reverse-Engineered Senior PROM

 

One final note: Senior PROM does not work with the Transwarp active or when the system is in Z80 mode with a CP/M card, which is to be expected. The cards can coexist just fine just don’t expect to use the SP at the same time.

Happy Kracking!