While browsing the net I recently came across the following page: EPROM EMULATOR
This describes a device, which finally acts as if it were an EPROM. So you just plug the adapter into a slot where normally an EPROM is, then load the contents of the EPROM into the adapter and start the corresponding device. Now the firmware or the operating system or whatever is normally on it is loaded through the adapter and the cable.
Now you will ask yourself, why this effort. Actually quite simple. If you develop a firmware yourself, you normally have to translate it into a BIN file after compiling, write it into an EPROM or EEPROM and then plug the EPROM or EEPROM into the corresponding socket.
Error made? Somewhere still something must be changed? So take the EPROM or EEPROM out again, erase it (which takes a little longer with an EPROM, because it has to be erased by UV light), rewrite it and put it back into the slot.
Apart from the fact that this constant back and forth certainly does not have a positive effect on the components, it always takes a few minutes.
With an EPROM emulator you have a connection via USB to the PC. So you can test a new firmware at the push of a button without changing anything. And thanks to external reset lines, the respective device or CPU is automatically reset.
But even just testing different firmware in an old computer can be done quite easily.
If you want to rebuild the original, you can find plenty of information and ordering options on the above-mentioned website. The entire project can also be found on GitHub.
My interpretation of the PCB
Now I personally found this board a bit big. So I made the whole thing a little smaller. For this SMD components were used. The TTL components I have exchanged for a CPLD from Xilinx. Furthermore I integrated the used Arduino directly on the board.
This is how the following board came out:
The board here is just lying on a Commodore 1541. As you can see, this variant is much smaller and more compact with just under 9x5cm. Technically it does not differ from the original. Only the ATmega328p is replaced by a ATmega32u4. Since this has USB already integrated, the FTDI chip can be saved. The price of both is about the same.
The version shown above is my first running prototype. I’m still tweaking the details here and there.
The ribbon cable goes to the socket, where actually an EPROM would be inside. In total this looks like this:
The ribbon cable ends in a DIL28 adapter. For the 1541 there is another adapter underneath, because it can’t use a 27 EPROM directly.
As you may notice, there is no USB cable connected, but the board is still running.
Since the EPROM emulator has an additional 512kBit flash device, the EPROM emulator can also be operated standalone. The supply voltage is taken from the EPROM socket.
This way you can quickly simulate an EPROM even without a PC. Practical if you work on a larger computer and the PC is too far away.
The common EPROMs from 2716 to 27512 can be emulated.
As you can see on the picture above, one of the cables of the ribbon cable is connected with a clip to the CPU. At the 6502 used here PIN 40 is the reset line. And the emulator is connected to it.
When a new image is loaded, this automatically resets the floppy.
Both variants are provided for the reset, i.e. also for low-active.
On my board are in the main 5 components. That is on the one hand the ATmega32u4. There comes the original firmware on it, which is also used on the original board.
On the ATmega there is a corresponding bootloader, so that the board can pretend to be an Arduino Micro. Via USB and the Arduino IDE a new firmware can be easily installed in the future or possible personal adjustments can be made.
The entire control around the “Arduino” makes the Xilinx XC95144XL-10TQ100. I have chosen this CPLD, because I still have plenty of it and because it is simply super cheap. In China you can buy it for just under 1,- Euro per piece. Here in Germany it is between 5,- and 10,- Euro.
Then there is the RAM chip. This is actually much too big for this board. But unfortunately there are not many 5V tolerant RAM chips which could be used for 512kBit. Either you take 2x 256kBit, like on the original board, or you take a much too big one and use only 512kBit. With 3,- Euro per RAM chip you can get over this.
And last but not least there is a 512kBit flash memory which is connected to the Arduino via SPI.
Everything necessary to rebuild it can be found on my GitHub account at: https://github.com/DL2DW/EPROM-Emulator-NG-II