Sunday, 10 August 2025

PET 2001 6540-010 Character ROM Replacement Update

The PET ROM/RAM board can replace almost all of the ROM and RAM in a Commodore PET. However, it cannot replace the video RAM and the character ROM, as those are integrated into the video circuitry.

To replace bad ones of those in the PET 2001, I designed PET video RAM (6550 and 2114) replacements, and a replacement for the 6540-010 character ROM.

The 6540 ROM is unusual in that it has five chip select lines. Yes, 5. Not one or two like normal ROM or EPROMs, but five. This is cleverly designed to minimise decoding logic for multiple ROM chips. See this post on the similarly endowed (and similarly flawed) 6550 RAM chips with 4 chip select lines.

For example in the PET 2001 (the only use for these as far as I am aware?), they have 7 of these in parallel, 2K each, forming the 14K of ROM. The enable lines were all wired to various address lines or decoded address blocks, to avoid the need for extra decoding logic. The only other chip involved is the 74154 which generated the SELC, SELD, SELD and SELF signals for the $Cxxx, $Dxxx, $Exxx and $Fxxx blocks of memory respectively.

Normally to replace a 6540, you need to add some extra logic to be able to decode the five signals to generate the single EPROM chip select.

I haven't made any of those as it seems sort of pointless to make 7 individual boards to replace 7 6540 ROM chips, when you can use one PET ROM/RAM and replace them all (plus get the upgrade options). (and you can replace one at a time, but trust me, they just keep failing, you often see boards with various combinations of chips from different system as someone is trying to fight the second law of thermodynamics - entropy is always going to win)

The character ROM is different though. As previously stated, it cannot be accessed from the PET ROM/RAM board in the 6502 socket.

Secondly, it is permanently enabled. All the chip select lines are tied high or low so the chip is always active.

That means it can be replaced with a standard EPROM, it just needs the pins rewiring to match the pinout of the 6540.

So that's what I did, I made a suitable adapter with no additional logic, purely for the purpose of replacing the character ROM.

The 6540-010 character ROM is 2K. The smallest modern EPROM I can get new is 32K (actually there is an 8K EEPROM, but it's more expensive), so I added a jumper to select a second alternate character ROM (and left the rest blank).

That is actually quite useful as the original was part of the BASIC 1 ROM set.

The PET character ROM can switch between two modes, upper case / graphics mode and upper / lower (or business) mode.

The two modes have the same first 64 characters, and then the second 64 differ. (the final 128 are electronically generated inverse versions of the first 128, and are not stored in the ROM).

In graphics mode, the second 64 are graphics characters.

In business mode, the second 64 contain lower case characters and some of the graphics characters.

That all seems to make sense.

When they released BASIC version 2, for some reason, they changed things around.

The normal / graphics mode stayed the same, no change there.

But for some reason, they switched around the upper and lower case characters. I don't know why, the previous arrangement makes more sense to me, so $01 was always upper case A, and $41 was graphics or lower case A. Now $01 is upper or lower case A and $41 is graphics or uppercase A.

It means if you have the original BASIC 1 character ROM, when running programs designed for BASIC 2 (or BASIC 4 which retained the modified character ROM), you end up with the wrong case being shown.

I originally put the jumper under the ROM chip, with space for one of the ones with the handle to make changing it easier.

You could then switch the jumper to the BASIC 2/4 setting once you realised you really didn't want to run BASIC 1.

The last time I made a batch of those, I found some miniature switches which fitted the same footprint of the jumpers, to make switching easier.

You still had to lift the EPROM out to make a change.

When I came to make a new batch recently, I wondered if I could turn the switch around.

It meant I had to cut a section out of the IC socket, but that's no problem.

You can now change that without removing the EPROM.

I have added a legend to the sticker, but if it's not clear, the version for BASIC 2/4 is selected with the switch as shown above, and for BASIC 1, as shown below.


Adverts

The new version of the 6540-010 PET 2001 character ROM replacement is available from my Tindie store:

Along with various other PET repair parts:


Patreon

You can support me via Patreon, and get access to advance previews of development logs on new projects and behind the scenes updates. New releases like this will be notified to Patreon first, if you want to be sure to get the latest things. This also includes access to my Patreon only Discord server for even more regular updates.