Verify Apple II ROMs

By John Keoni Morris

I have had a few people contact me recently wondering how I verify that ROMs in an Apple ][ or ][+ are working properly when I am doing repairs. So, I figured I would do a quick write up here to share my techniques. If you have a working machine, then it is as simple as looking at memory locations from the monitor to make sure that you are seeing the ROMs (D000, D800, E000, E800, F000 and F800). If you don’t have a working machine, then it is a bit trickier. The Apple ][ used up to 6 9316 masked ROMs to store its code. Each of these ROMs stores 16,384 bits or 2k of code. Obviously, you don’t want to check these one-by-one in the monitor, so we need something automated. Luckily, ROM burners are cheap these days and are happy to read most ROMs you throw at it. Except 9316 chips, of course, since they weren’t very widely used since the early 80s. So, what do we do now? Well, luckily the 2716 chip is well supported in ROM burners and is pretty close to the 9316. We can just build an adapter to make the ROM burner think that we are giving it a 2716. The pics show the adapter that I built. It is a simple ZIF socket mounted to a board that connects up the appropriate pins of the 9316 to where they should be on a 2716. The only complexity is the fact that the 9316 has a slightly different way of selecting whether he chip should be the one sending out data (the CS and /CS lines). To handle this, I used a 74ls04 chip to invert some signals for me. I can mount this adapter on my ROM burner and now be able to read the 9316 chips as if they are 2716 ones! Most EPROM programming software has a verify function. So, I simply load up the ROM image of what the code on the chip should be and hit the verify button. In less than 1 second, we know whether the data on the chip is correct!