Commodore PET 3032 Repair
Another of my Ebay purchases, this 32K 3032 PET arrived in a none-working condition displaying the fairly common random garbage on the screen when powered on.
What makes this PET different to others is that is has a large white box attached to the bottom of it made by "Advanced Metrology Systems Ltd" which has a cable coming out of it which looks like it attaches to the PET's user port.
The first thing I did with this PET was to take out the 2 MOS 6520 chip's which aren't needed for a PET to boot and can cause problems.
Testing the RAM's
With these out it still didn't boot so I removed all 4 ROM's from their sockets and inserted my memory test ROM into the kernal ROM.
This memory test ROM simply sets the RAM values of the 1st 1K of RAM and then, in an infinite loop, writes out the 1st 1K of RAM to the screen RAM which is also 1K in size. The end result is the screen shows exactly what bytes are in the 1st 1K of RAM.
What I observed was characters that seemed mostly correct, but there were certain characters that were wrong, and some characters were flickering and changing from one character to another seemingly at random.
After replacing the 2 display RAM chips with known working ones, the problem was still there. So it must be a problem with the main RAM or it's associated circuitry. After removing all 16 RAM chips and putting them in sockets I was able to test the RAM in another PET. After testing each chip in the other PET, each one seemed okay, so I put them all back into the 3032. The problem must lie elsewhere.
After studying the schematics for the 3032 PET I decided to remove the 4 74153 chips which, among other things, handle the refresh mechanism for the 4116 DRAM's and replace them one at a time with known working ones. Sure enough, 1 of them was faulty, that sorted out the random flickering I saw on the screen. If a Dynamic RAM chip (such as a 4116) isn't refreshed correctly it loses it's data which is what was happening here.
Testing the ROM's
With the RAM seemingly fixed and working I decided to put the ROM's back in and try to get it to boot to basic. But nothing, it still wouldn't boot. Which led me to take each ROM, in turn, and read it's contents with my EPROM burner and compare it's content/checksum with the ROM images available over at zimmers.
After testing the ROM's it turned out the Edit ROM was defective, so with a blank 2532 EPROM I created a new one with the ROM image from zimmers.
It was time to try and power it up again, but once again it still didn't get to the BASIC prompt. So having tested all the RAM, ROM and display RAM's and got confirmation they were all good and working I decided to look at a disassembly of the BASIC 2 ROM's.
Starting with the Kernal ROM I followed it through, creating copies of the Kernal and Edit ROM's on 2532 EPROM's with bits of code inserted to output characters to the screen to try to confirm how far the CPU was getting into the code and try to work out what code is stopping it from booting.
Having got into the Edit ROM, to the part that clears the screen and changed it to output a 1 to the screen rather than a space (which would fill the screen with lower case 'a') I saw the problem when comparing my PET to the results using the same test ROM's in a PET emulator.
The emulator correctly filled the screen with 'A' characters, however the 3032 filled the screen with 'a'. This fault could be attributed to a faulty display chip or maybe a faulty RAM chip, however knowing they work fine and that the "inverted character" problem only occured when you wrote to the screen display from within one of the ROM's pointed to a different problem.
Faulty IO Addresses
The answer came to me when I realised that when a PET with a graphics keyboard boots, the ROM sets the characterset to upper-case by writing a value to an IO port. So testing this in my memory test ROM, I added code to write to an IO address to set the characters to upper-case.
Sure enough, when booting with my test ROM the characters all remained in lower-case when they should have been upper-case, the emulator displayed them correctly in upper-case. Knowing that the 6522 is working fine and was tested in another working PET I began looking at the schematics for the ROM's and the problem became obvious.
The Edit ROM is 2K and all the other ROM's are 4K which can easily be replaced with 2532 EPROM's, however when putting a 2532 into the Edt ROM the full 4K of the EPROM is visible in the memory map.
In the memory map the IO address space is located immediately after the 2K Screen ROM so using a 2532 in the Edit ROM "hides" the IO address space.
So removing the 2532 from the Edit ROM and replacing it with a 2716 EPROM (2K) the PET finally worked.
Advanced Metrology Systems Ltd Box
As mentioned at the start, this PET arrived with this rather large white box attached to the bottom. It has a cable coming out of it at the back and, from what I can tell, it connects to the PET User socket. The power supply is shared between the PET and the box below.
I could probably separate the two and try and put the power supply back into the PET, however I think it should be left as it is, after all, the box isn't stopping the PET from working, even when the cable is connected to the User port, the PET still works, so I'm going to leave it all as-is.
From my own experiences fixing my 3032, here's a list of common problems that may stop a PET from working.
Display RAM (Static)
The usual symptoms are random characters on the screen when booting. This will not stop the machine from responding to keyboard input (assuming the keyboard contacts are good), so to verify if the rest of the machine is functional just press a few keys and you should see the characters changing on the screen in response to the key presses.
Main RAM (Dynamic 4116)
When powered on the PET will display the amount of good RAM available. The PET needs only the 1st 1KB of RAM to be good for it to be able to boot into BASIC. The RAM the 3032 uses (4116) are fairly common dynamic RAM and can be picked up cheaply on Ebay or if you have a spare ZX Spectrum lying around (like I did) as this uses the same chips fro its lower 16K of memory.
If any of the ROM's are faulty they can be swapped out for 2532 EPROM's (Except for the Edit ROM which must be a 2716) which again, like the RAM, are fairly easy to get hold of on Ebay.
- All Commodore PET ROM images can be found here.
A very useful tool for diagnosing PET problems PETVet board that not only gives you 32K RAM, it also allows you to diagnose most problems with any PET.
- Infomation about the PETvet can be found here.
Drive fast before the crazy mutant zombies get you!
Guide the car to its parking space in this fun Car Parking game.
Aim for the Trash Can and get the various items of Trash in the bin.
Fly your plane in this colorful vertical scrolling shoot-em-up. Blast the bad guys and collect any bonus's they leave behind.
Pop as many bubbles as possible in this fun and colorful bubble popping game. The levels start off easy enough but gradually get harder!
Here we have a bunch of monsters that need to be matched up. Look out for the bomb and spinning monsters that will cause special damage!
Guide your friendly Bird through the maze of pipes and other obstacles collecting the Stars in this cool arcade game inspired by the legendary Flappy Bird.
You are stranded on an Alien planet. Your goal is to build a space rocket and escape. Start by building units to create power and mine the metal patches. Build defenses to defend your base from the advancing Aliens and Zombies!
Play Pool against the computer or battle against your friends in the online mode!
Slice the fruit that is thrown up onto the screen. Slice the fruit into multiple pieces for maximum points!