Reading PALs

Jecel Assumpcao Jr. jecel at
Tue Feb 21 13:48:02 CST 2017

Jim Brain wrote:

> As a function of "give a man a fish, you feed him for a day; teach a man 
> to fish, you feed him for all time", I dloaded Logic Friday, and figured 
> out a quick way to read the two 16L8 (combinatorial only) PALs on the 
> board with my EPROM reader (cue duct tape and baling wire snickers).

Don't forget that 16L8 means 8 logic outputs and 16 inputs even though
at first glance there only seems to be 8 inputs. That is because every
output is also an input and can possibly be just an input by forcing the
three state option. Both options complicate things and in the first case
you can have stuff like:

O1 = /I1*I2 + I1*O1

If you count up the possible values of I1 and I2 you will get:

I2, I1 => O1
0, 0 => 0
0, 1 => 0
1, 0 => 1
1, 1 => 1

but if you count down you get:

I2, I1 => O1
1, 1 => 0
1, 0 => 1
0, 1 => 1
0, 0 => 0

which is different, and if you repeat this a bunch of times you will
sometimes get 1 output in the first line and you might get 0 output in
the third line once in a while.

The IBM PC AT had two PALs. One was a simple address decoder while the
second included an interface to the FPU and had a tiny state machine
implemented like this. I helped some friends who were doing an AT clone
in 1986 figure this out in a few minutes, but most of their competitors
in Brazil took nearly two years to reverse engineer this.

-- Jecel

More information about the cctech mailing list