I have two MOD EMUP programmers (with abundant details on them elsewhere). These are device programmers from the 1990's. They allow me to read and program EPROM devices (such as the 27C256) as well as PAL and GAL devices. To use one of these, I have to keep a machine around that runs DOS and that has an ISA bus. This is because a specific ISA bus card is required, which connects via a 25 pin cable to the EMUP device.
The idea with the ARM EMUP project is to replace that DOS machine and ISA board. The 25 pin cable is fairly simple. Aside from power and grounds, it has an 8 bit directional "bus" along with 3 control signals. It should be "no big deal" to replace the DOS machine with some single board computer with an ARM cpu and some interface circuitry.
A serious concern would be what the host to ARM interface would be. Should it be a serial port, USB, or network?
Cost is of no particular concern. We could most assuredly use a $2.00 "blue pill" for this project and interface via a serial port (or USB if we ever master that). We could use any of the larger ARM boards that run linux (Beaglebone, Raspberry PI, Orange Pi, or any number of others). I am inclined towards something like the Orange Pi because I have worked with them a lot, have them laying around, and could run my Kyu RTOS on them. But I have another idea entirely, namely to use one of the surplus bitcoin mining boards with the Zynq chip on board. To be honest, these are the cheapest boards I have laying around that are linux capable, but more below.
As an example, consider a PAL with the security fuse blown. You can plug it in and exhaustively try all the possibilities, especially if it is a combinatorial PAL. If you are reverse engineering (and you probably are), the circuit it is in will give a lot of clues and you can go from there.
It is an entirely different story for GAL (and PAL) devices. I do not see myself having anything to do with PAL devices, but GAL devices could still be useful. I find more need to read out (and disassemble) GAL and PAL devices than I do to program them. In any case, doing anything with these will require disassembling and reverse engineering the software that runs under DOS to control the EMUP.
If you used something like a Raspberry Pi or Beaglebone Black, you would just need 11 gpio pins and away you go once you add some level shifters. Perhaps this simple approach would be the best, but it has always annoyed me not to have some way to just deal with 8 bits all at once both in hardware and in software. Of course you could just set and read individual bits in the 8 bit bidirectional "bus" to/from the EMUP. Another approach would be to use an i2c IO expander. This would offer 8 bit groups as well as individual bits. I think of using something like the MCP23017 which is a 16 bit expander. On the other hand an MCP23008 is an 8 bit device. It could be used for the bidirectional bus and 3 individual bits from the ARM SoC GPIO could be used for the other signals.
As much as anything else, this would just be an opportunity to use one of these boards for something useful. I would like to work up some generic digital IO capability for the FPGA and archive those bitstreams so that other projects could be done in the future using this board without diving into FPGA programming. But I will postpone more details on this for a more specific "manifesto".
I will call this idea and project "Zynq EMUP".
It is worth noting that I bought my EBAZ boards for about $12 each, and I see them available again for about $15 each (as of November 2022). Note that the cost of the hardware will soon be forgotten as work begins and is truly irrelevant.
Programmable devices / firstname.lastname@example.org