If you ever attempted to relive a “now vintage” C64 computer, there is a great chance that you just turned it on and got a full black (or full white) screen. No cursor, no basic, nothing. There is also a good chance that you will spend a considerable amount of time trying to figure out what is going on. Remember there is no Commodore authorized service anymore. 🙂

The thing with those computers is that almost all of them will someday suffer with something called “PLA failure”. Specially the ones from 1983/84 with really unreliable PLAs.

But what the heck is a PLA?

PLA is an acronym for Programmable Logic Array. It is a customizable device with adjustable (programmable) AND and OR logical gates. These devices are programmed to implement a set of Boolean electronic circuit functions in a very concise and customized way.

The programmable logic array (PLA) in the Commodore 64 is used to create chip select signals from various other signals, e.g., from the current address. These signals control which chip is to be connected to the data bus. Therefore the PLA is responsible to implement the whole memory map of the C64.

If the PLA is faulty in a C64, the CPU and the VIC-II direct memory access (DMA) cannot access the right memory and I/O devices anymore. In this case some chips can not be selected or more than one chip can be active at the same time.

A total or partial malfunction of the computer is the result. If a PLA is replaced with a part which does not meet certain timing or electrical constraints of the chips connected to it, the computer becomes unstable, possibly depending on temperature or hardware extensions used or may refuse to work at all.

A C64 faulty PLA

A faulty PLA in a Commodore 64 computer can cause: blank (or black) screens, no borders, colored screens or flashing color garbage instead of startup screen, intermittent loss of the cursor, screen freeze and/or program crashes after warmup or random characters on screen.

The original MOS chip 906114-01 runs very hot and is very poor reliable. This is usually the first cause of problems with Commodore 64 computers.

What to do when your C64 is not working and you suspect of a bad PLA?

As I said there is no Commodore authorized service anymore. You basically need to figure out how to fix your computer alone (well with the aid of the Internet!). After some research you will most likely want to at least replace your PLA with another one that you know that is working just to make sure yours is not causing the issue.

You then go to eBay and discover why your computer is not old anymore, it is vintage. You will figure out pretty quickly that the original chips now cost a fortune as they keep failing and are not manufactured anymore.

What can we do then? Well, build a PLA with “modern” electronics.

I found this website after watching a video from Adrian Black on YouTube. He was claiming you can replace your PLA with less than 3 USD… well I want that!

Building my own C64 PLA

I’m documenting everything here so other C64 owners can use the instructions, and of course to store the references in a safe place, so I can remember all the steps if someday I need another one.

Again PCBway.com to the rescue with a shared community project where you easily order the required PCBs. I know, I know… I now have 5 PCBs and spent 8 USD. So the 3 USD claimed by Adrian is not valid anymore. But the journey is more important than the result… 🙂

After a few days, PCBs delivered, we just need to follow instructions documented here and complete a very simple soldering work.

As you can see on the pictures, and checking the document I shared, this new PLA is based on two Lattice GAL20V8B ICs. Those can be programmed using a TL866 programmer, the same one we used to program EEPROMS.

Here is a video with the steps to program the GALs.

After programming the GALs you will have your PLA replacement. Just replace the faulty one and happy use of your vintage C64. 🙂

References

Here is a list with all websites and references I used to better understand how the GAL works, order the PCBs, components, etc

Stay safe, Cristiano.

Leave a Reply

Your email address will not be published. Required fields are marked *