Saturday, 30 May 2015

Commodore Pet ROM/RAM replacement boards

A while ago, I built some 6502 ROM and RAM placement boards to use on 6502 based computers such as the Commodore Pet and VIC20. I have since been contact by a few people who were also after these boards, so I used up the few spares boards I had originally made up.
There has been a recent resurgence in interest in these, and I've had several requests in the last month, so I've ordered more boards, and taken the opportunity to redesign the board based on the experience of using it. The concept remains the same, these boards plug into the 6502 socket, and the 6502 is plugged into the board. All of the pins are connected directly though, apart from the databus, which can be isolated over certain address ranges using a 74HCT245 buffer hidden under the CPU socket.
The board has it's own ROM and RAM, which can be enabled when the computers original RAM or ROM is disabled. This means the computer's original RAM or RAM can be disabled and substituted with known working replacement without having to be desoldered. This can allow a dead machine to boot up and faulty ROM or RAM to be identified. It can be used just for fault diagnosis, or as a permanent replacement. The modern single ROM and RAM chips use a lot less power than the originals, so it can reduce heat and improve reliability. The addressing is controlled by a GAL16V8 PLD, with options set via DIP switches.
I have used these boards to diagnose and repair number of Commodore Pet and VIC20 computers, as well as a couple of 1541 disk drives. The addressing logic on these V2.0 boards has been rearranged, and I've added a reset switch. I tried a few different layouts, but ended up back with the same orientation as the V1.0 boards as this was easier to layout.
The original design included options for using a flash ROM chip, but I wasn't able to locate the software or the particular type of flash chip, so hadn't used it. There was also a secondary ROM address selection via a multiplexer to allow the options ROMs to be selected separately from the main ROM. I've removed that and gone for straight blocks of ROM. There was also a jumper to change one of the address lines for use with a 1541, I found that wasn't required when I worked on 1541 drives, so I've removed that as well. In the new simplified and expanded design, the upper address lines to the ROM socket are controlled by the higher DIP switches, so any EPROM from a 32K 27C256 to a 1M 27C080 can be used, giving up to 16 32K ROM images. It's not 32 as one address line is used as the VCC pin on 28 pin EPROMs. I may add an onboard link to change that, but I can't see that many being required.
There is 32K RAM available as a single 62256 SRAM chip. On the Commodore Pet 4032/8032 versions, these can be enabled and disabled as two separate 16K sections. This allows you to test the lower and upper 16K banks of RAM in the pet in isolation. I was hoping to be able to selectively disable each of the 5 system ROMs, but I ran out of logic terms on the GAL decoding logic chip. I may look at cascading some of the logic to allow this in a further revision of the board, or upgrading the logic chip. I have ROM and address logic images for Commodore 4032, 8032, VIC20 and 1541. It should be possible to use this on other 6502 based systems. The only exception would be system such as the BBC micro and Commodore 8296, where the video RAM is shared with the main RAM. This board could be used to replace ROMs on those systems. Replacing the RAM would not stop the machine booting, but the display would be blank (or random). I'm working on a separate 'plug into the CPU board' which will replace the video circuitry on a the pet, and can drive the original monitor as well as a composite video output. That's still in the prototype stage.
The V2.0 ROM/RAM boards are available now for £50 + postage, contact me if you would like one. The first of these new boards went out yesterday, and I've already had a message back from a happy customer with his 4032 up an running 'within a few minutes'.

UPDATE: Hot on the heels of the V2.0 boards, I'm now shipping V3.1 boards. These have an additional LED, which I have set to show activity, currently on for reading, off for writing, but I may also look at on for ROM access, off for RAM access etc.
Also available a version with special pins for use on early 2001 repairs.