Programming PALs In 2021

The [IMSAI Guy] has posted a follow-up video with all the details of how he programs GAL22V10 chips in the modern era. We noted that this was missing from his stepper motor project a few days ago, and before we could even ask him, he answered. And no, you won’t have to dig that old Intel 486 DX2-66 out of the closet and search eBay for working floppy drives. It turns out the answer is easier than you’d think.

Microchip now owns WinCUPL through its acquisition of Atmel in 2016, and offers WinCUPL as a free download from the Microchip website. This runs only in Windows, although some users report success running under Wine on Linux. This tool will compile the design, but you still need to program the chip. If you’ve done any EEPROM programming lately, chances are you have one of the TL866A MiniPros laying around — this programmer can handle CPLDs, PALs, and GALS as well as EEPROMS. [IMSAI Guy] walks you through the programming procedure, and if you’ve programmed EEPROMs before, the process will be familiar.

For those who prefer the Linux or Mac environment, there are some alternatives. We’ve seen GALasm used on several projects such as [Ken Yap]’s 8085 Minimax. The GitHub repository for GALasm states that commercial use is strictly prohibited, so take note if this applies to your project. As for controlling the TL866A, there is a Linux port called minipro available on GitLab. The remaining hurdle if you want to experiment with these programmable logic chips it to actually get them — many are now obsolete. But it looks like you can still buy Lattice and Microchip (Atmel) ones from various sources. Happy Programming.

31 thoughts on “Programming PALs In 2021

    1. Hey I have one of those programmers too!

      Supports a surprisingly large amount of chips and last time I used it, (7 years ago or so) the software could be coaxed to work on windows xp without too much fuss.

      I wonder if I should dig it out and see if the power supply has finally had it though.

  1. I have a parallel port programmer I picked up well after parallel ports weren’t a thing. I wonder if there’s a way to add a blue pill to it to make it useable again.

    1. I had an old chip programmer that used the parallel port. I was able to keep it going even after parallel ports disappeared from our computers by using a nifty PCMCIA-to-parallel port adaptor. Alas computers don’t have PCMCIA ports anymore, and both gadgets are essentially useless.

      1. I think the problem is going to be that it’s an old eeTools ChipMax and their latest (last) software won’t run on anything modern with or without a parallel port. I may have to run a virtual PC on whatever I end up finding a physical PP on. Can’t find much info about the programmer, either. They (eeTools) don’t even have any info on it anymore. At least not that I can find. It really looks like a decent piece of hardware, too.

  2. A PALASM compiler can’t be hard. It ran on basically 1/100 of an Arduino Nano in the Data I/O 29B with the Logicpak. Just feed it a basic text file, or enter on the keypad. MMI gave away the source code. Anything like this that ran on a PDP11 is going to be faster and pretty trivial on an Atmel 8 bit part or any of the ARMs. I have a neuron trying to tell me there was a PLD compiler written in Forth, but its alcohol level has slipped below the danger point.

    Anybody made one of there? https://github.com/ole00/afterburner

      1. Hello, could you share your modified program please?
        I have tried to use the repository program but when I use the command: “./afterburner i -t [GAL_type]” it does not display anything. I don’t know if it’s because I’m using the executable from the “releases” folder

  3. The older TL866CS and TL866A programmers can do Lattice’s GAL22V10 but cannot do Atmel’s AT22V10. The newer TL866-II supports Atmel’s devices. That was an unhappy discovery.

  4. I use this setup too and it works but I wish WinCUPL would be open sourced as there are plenty of bugs that needs fixing. It crashes constantly when opening, saving, compiling and so on.
    Turning off the “project” view after opening a file generally helps a lot but is not possible if the application crashes while opening the file. I wish the project view could be hidden by default.

  5. I managed to squeeze a 7 levels brightness control PWM for dimming the display in 4 macrocells (the rest was the drivers for a multiplexed display) in a 22V10 back at my first job. The PWM part is pretty simple: a 3-bit counter with a comparator that turns on when the counter is below or equal to 3 bit logic signal. The PWM clock is a multiple of the refresh rate. The original design had some timer stringed together for a micrcontroller before PWM was a feature and flickers a lot.

    The problem with PAL and GAL parts are the very high power consumption. I don’t see a point using them for new designs since CPLD days.

  6. Been doing exactly that lately. I use some original Lattice GAL22V10 and newer Atmel ATF22V10CQ. Designing and simulating in WinCUPL and programming with my TL-866 II Plus. Works fine.

    Currently using a pair of 22V10 to do address decoding and bank switching on a Z80 retro board I’m working on.

  7. I found those old Lattice GAL22V10s to very very sensitive to static and power supply variations. In ancient days we had a big wire wrap ASIC emulator board and lost probably 100 of them before we switched over to some MMI bipolar 22V10s which were rock-solid in the same board.

  8. My 25 year old Allpro 88 programmer didn’t pass self check the last time I tried it. I have a number of PALs and GALs I’d like to be able to program again. What is a recommended programmer? Is the TL866II Plus versatile and supports a wide variety of PALs and GALs? Any downsides?

  9. GALs are great for small-scale glue logic, not for stuff that needs a bunch of chained flip-flops, but great when it’s just a bunch of address decoding and bank switching. And there are only three of them to keep track of.

    But I’ve been mostly a Mac guy, so I rejected the whole “you have to use this closed-source software that only runs under DOS” thing, and wrote my own little logic compiler in C, while taking a few liberties with syntax. It looks like I started to pick at cleaning up the code back in January 2020, then got distracted. (Last year really shook up which projects I worked on.)

    I use an old Needham’s EMP-31 programmer that I got back in 2001 or so. I thought great, it’s got USB, I’ll be able to keep using it for a long time, right? Not quite. Apparently its proprietary USB pretended to be an old parallel port interface, and it required a Windows driver. Then Needhams got bought out, and all their stuff was immediately EOL’ed, so it never got a 64-bit driver. Now I’m using it with an old XP-32 laptop.

  10. I was wondering if a Lattice GAL22V10B can be programmed with a Atmel Version WinCUPL file for an Atmel ATF22V10B?

    Are they compatible?

    I ask since I have found a bag of old Lattice GAL22V10B but the only software I have is Atmel Version WinCUPL.

  11. Hello, I have a new TL866II+ and some Lattice PALCE22V10H chips. I See that the IC select menu have GAL22V10’s B, C, D. Which one is most compatible ? Should I use the lowest possible programming voltage selection ?

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.