This is the first revision of the Commodore PET ROM adapter. It is now obsolete, so unless you have a specific need for this version, please buy the new version here.
This adapter will replace a single MOS Technologies MPS6540 ROM chip. Included in the price is the needed 2716 ROM chip, programmed with the code you need. Please specify the full part number of the original chip when ordering so that I can program the replacement correctly.
PLEASE NOTE: These adapters will ONLY work to replace a chip with a part number starting with 6540. They will NOT replace types 2332, 2316, or other ROM types used in Commodore computers other than the original Commodore PET 2001. If you don’t know if you have a bad ROM chip, or if you don’t know which one is bad, you may be interested in my EPROM Programmer Universal Adapter which, when used in conjunction with an inexpensive Willem EPROM programmer, will allow you to read (and therefore test) an MPS6540 ROM chip.
These adapters replace MOS Technologies proprietary ROM chips with standard 2716 ROM chips and have the following features. They:
1) Are exact electrical replacements for the MPS6540 (except that they do not require a clock signal.) All five chip select lines are fully functional.
2) Have a small enough footprint that the adapters can replace any or all of the ROM chips in a PET 2001.
3) Use only parts that were available in 1977 and so they will not look out of place in a PET.
The one disadvantage of these adapters is that with a 2716 inserted they are about 0.4″ taller than the original 6540 chip and thus may not be mechanically compatible with all 3rd party expansion boards. Please make the appropriate measurements before ordering.
Download the schematic and PCB layout for this product here. Note that these files are available for PERSONAL, NON-COMMERCIAL USE ONLY. In short, you are welcome to use them to build this product yourself, but you must contact me to work out a commission if you wish to sell anything derived from them. This product was designed in ExpressPCB so you will need to download a copy of that software from expresspcb.com before you can view the files.
How the Adapters Work
There are three fundamental electrical differences between the 2716 EPROM, designed by Intel and second sourced by everyone under the sun including the Soviets, and the MOS/Commodore proprietary MPS6540 ROM. These are:
1) The Pinouts are very different. The data and address lines are mapped to completely different pins on the two chips. In fact, the 2716 is in a 24 pin package and the 6540 is in a 28 pin package.
2) The 6540 has five chip select lines. CS3, CS4, and CS5 are active low meaning that they must be held low (+0v) for the chip to be on (its data lines to be low impedance). CS1 and CS2 are active high, meaning that they are must be high (+5v) for the chip to be on. The 2716 has only one chip select line and it is active low. However, the 2716 also has a standby low power mode which is turned on by bringing pin 18 (EP) high. Putting the chip into and out of this mode takes no more time than deselecting it and selecting it with the chip select line, so the EP line can be used exactly like a second active low chip select. 3) The MOS 6540 requires a clock signal and the 2716 does not. This is not really a problem, at least not in the PET, because the board does not rely on the chip only changing its data lines when it sees a clock pulse.
Implementing the Chip Select Lines
Correcting the pinout problem simply means connecting the wires up in the right way. This is trivial in principle but it took some work to make it all fit on the tiny board. The chip select lines are harder. In order to emulate the five chip select lines with only two the following logic needed to be implemented:
2716_CS = 6540_CS3 OR 6540_CS4 OR 6540_CS5
2716_EP = NOT (6540_CS1 AND 6540_CS2)
I could not find a way to implement this logic using only a single 74 series chip, and I did not really have room on the board for one anyway. I was going to use Fairchild TinyLogic instead, but I knew that surface mount components would look out of place in a 1977 computer. In the end I implemented it using discrete components, specifically, five 1n914 didoes, two 10k resistors, one 1k resistor, and a single 2n7000 transistor (for the NOT gate.)
The ROM chips in a Commodore pet are spaced so close together that the only way to fit more than one replacement side-by-side is to have the 2716 sitting exactly above the 6540 socket. Because the pinouts are incompatible this meant that I had to put two board on top of each other connected by a header. The upper board has the socket for the 2716 on it and the lower socket has the pins on it which plug into the 6540 socket. The header which connects the sockets carries the signals between them and spaces the two boards far enough apart that the resistors and diodes can fit between them, protected and out of sight. Because the 2716 has only 24 pins instead of 28, there is room on the end of the top board for the transistor. Putting the pins on the lower board was somewhat of a challenge as well. Dip pins are rectangular in shape and are, at their widest, 0.018″-0.020″ across. Header pins are on the order of 0.030″ and so will not fit into a DIP socket. MilMax sells header with 0.018″ pins but they are exorbitantly expensive at $10 per header and add ~0.1″ of wasted height to the adapter. After much consideration, I made the pins using 24 gauge bus bar wire. After placing the lower board over an actual Commodore PET ROM socket I pushed a strand of bus bar wire into each hole and then cut it off flush with a pair of quality Edsyn wire cutters. I then soldered each wire in. See the pictures and board layout above to see how it all turned out. The end result is an adapter which has no larger a footprint than an original 6540, but which is somewhat taller.