I'll be posting this in pieces because I want to take the time to make it understandable.

So, what's a PAL?

PAL stands for Programmable Array Logic and is a type of integrated circuit that consists some simple logic that can be connected via a programming procedure, much like a PROM. Connections are made by "fuses" in a metal overlay that can be "blown" by a device programmer.

A variation of the PAL is the "HAL", which is Hard Array Logic, which is programmed at the factory and cannot be reprogrammed.

You'll find these things in a lot of post 1980 gear, including Apple systems and IBM systems after the 5160.

So, if a PAL can be programmed, it must be possible to read the programming, right? Well, not always, since there is a cute little fuse called the "privacy" or "security" fuse which disables any attempts to read the fuse map. Needless to say, it was standard practice of most manufacturers to "blow" this fuse.

There are several common PAL part types, but basically they're all similar in that they consist of two or more AND arrays combined in one or more OR gates. The output of these can also have flip-flops (called "registered" PALs) and inverters.

The topic of this blog series is how to duplicate the operation of the PAL10L8, whose datasheet can be found here.

Note that the PAL10L8 consists of 10 input lines and 8 output lines. Each output line is connected to a 2-input NOR gate, each of whose inputs can be the AND of any of the inputs or their complements. Basically each of the 8 outputs takes the following form:

Out = NOT((In1 AND In2...) OR (In1 AND In2..))

And of course, on the PAL we'd like to duplicate, the privacy fuse is blown. All is not lost, however, as we'll see...

Click here to go to part 2...