PAL duplication for DCS board
Extraction of the PAL
Study and analysis of a DCS audio card and PAL replacement by a GAL.
Create a substitute GAL by reverse-engeenering.
Presentation
From 1993, Midway (Bally / Williams) equipped its pinball machines with a DCS audio board A-16917. This board is built around a DSP processor (ADSP-2105) and a PAL (PAL 20L8) is used to simplify the electronics.
The PAL are components that unfortunately can erode over time and cause a failure of the card. On the board A-16917, the PAL is mounted on a socket which will facilitate its replacement.
The PAL is protected, it is impossible to read its content to then be duplicated, as can be done with the EPROM. The risk of erasure is very real, since these cards date from 1984 and the retention period announced by the manufacturer is about twenty years. The only way to preserve them, will be to analyze the functioning of the PAL in order to be able to reprogram an equivalent component.
Analysis
To achieve this, we used our universal test bench. Thanks to it and the component tester module, we can control all the pins of the PAL without having to connect any wire. No need to take out the board to wire, we just connect our suitcase to a PC:
The PAL is placed on the ZIF socket of the component tester:
To control the different pins, one uses the module GENERIC DIP, by choosing a box DIP-24:
To quickly identify the signals assigned on the PAL, the Post-It method pasted on the screen is very effective:
Decoding & Encoding
By varying the inputs and looking at the behavior of the outputs, we get to establish the operating rules of the circuit. Of course, we proceed by moderation, but here the experience and the knowledge of the components play a key role. Intuition and expertise make it possible to avoid testing unnecessary combinations.
The exercise is complicated when certain signals act as flip-flops, in other words in "sequential" logic and no longer in "combinatorial" logic. This is the case here, because although the PAL 20L8 is of the "simple" type (and not "registered" as the 20R8), it is quite possible to have a complex behavior, sequenced.
But with a little logic and a lot of practice, we're doing. In the end, we write on paper the logical and sequential equations.
For example, for the ROM Chip Select (ROMCS) signal, one can easily determine that it depends on Boot Memory Select (BMS) signals. DMS (Data Memory Select) and A13 / A12 addresses.
We encode this equation in CUPL language and to simplify the understanding, we work in positive logic. The inversion of signals will be defined during the pin assignment. Here it is easily understood that the ROMCS signal is active when BMS is active, or that DMS is active with an A13/A12 address at "10".
Generating the JEDEC file
We encode all the equations with the WINCUPL software. This "old" program is still perfectly suited for PAL/GAL coding. It is free, originally written by ATMEL and is now found in the archives at MICROCHIP. We will use the simulation with WINSIM (supplied with WINCUPL) to check the good behavior of the GAL before programming.
The compilation directly produces a JEDEC file, which can be viewed with any text editor.
We will not generate one, but two JEDEC files. Indeed, the PAL 20L8 can be replaced by two models of GAL:
- either a GAL 20V8
- either a GAL 22V10
These two components have a very close pinout and the same 24-pin case. At the level of the equations and the definition of the pins, there is no difference, we just change a compilation option. Of course the generated JEDEC file will be slightly different, since there are more "fuses" in a GAL 22V10 than in a GAL 20V8.
Programming the GAL
This is the easiest part! Once the JEDEC file is obtained, simply load it into a suitable programmer (For this we use either the TOP 3100 or the TL866CS).
It remains only to put the GAL on its socket, in its place in the card A-16917.