I've been asked if I could share the docs I have about this programmer, so here they are:
Apart for the german 1986 Promicron 2000 manual, which I scanned as it was included with my unit, the rest of these were sourced online from various places. I have them in djvu format with searchable OCR text, which also results in smaller files and it's the file type I like to use for scanned documents. Anyway, I converted them to pdf (and jpeg for the color brochures) for uploading here. OCR text has been lost in the conversion, though.
If anyone is interested in the djvu versions, just ask here and I will upload them too.
It's been a while since I last used the programmer, so I don't remember all the details, but I found these notes that I wrote years ago with the intention to post them here, but in the end I never did as I felt there was no interest in this device.
The ep804 is an eprom programmer and eprom emulator which consists of a z80 based computer. It can operate in stand-alone mode using the control panel or remotely from a PC through a serial connection. The rom image is stored in RAM before burning it to eprom and can be manipulated directly using the programmer (from the control panel or the remote PC). The amount of ram installed varies depending on hardware revisions and year of production and can be expanded. (mine has 16k of ram which can be expanded up to 32K). This refers to the ram portion that is used to store the rom images (to be burned on eproms or of the eprom emulator); there's an additional 2kb ram chip used by the z80 cpu to run the firmware. You can select the eprom address range that you want to program, so you can burn eproms which are bigger than the installed ram by programming them in multiple steps.
At power-on the programmer will display a "POWER FAILURE" message. That's normal, it just means that previous settings are lost and reverted to default values, because there's not battery backed memory or other permanent storage in the unit. Press "CLR" to start the SELF CHECK procedure. If successful, the display will show "TEST OK mmmm vv", where "mmmm" is the max RAM address available and "vv" the firmware version number.
I have 16Kb of RAM and firmware version 2.1
To connect to the PC you use the rs232 port located in the upper left corner of the control panel.
The programmer needs a crossed (NULL MODEM) cable wired for full hardware handshaking. It has a female DB-25 connector, while usually a male DE-9 connector is used for the PC serial port (also on usb-to-rs232 adapters), so in most cases you need a male DB-25 to female DE-9 cable.
Here's the pinout if you want to build it yourself.
DB-25 M DE-9 F
1 ------ shield
2 ------ 2
3 ------ 3
4 ------ 8
5 ------ 7
6 ------ 4
7 ------ 5
20 ------ 6
Some cheap usb to serial adapters lacks the signals required for harware handshaking. In this case you can use a NULL-MODEM cable wired for "loop back handshaking", but you might have to decrease the transmission speed to have reliable transfers. Better yet, get yourself a quality usb serial adapter or install a real serial port if you have a desktop PC. Even if modern PC do not have the connector anymore, many motherboards still have headers connectors for serial (and often even parallel) ports, so you just need to install the external connector and enable the port in the bios in that case.
More info on serial cables here: http://www.lammertbies.nl/comm/cable/RS-232.html
Serial port settings:
The default settings for serial connection are:
9600 baud 7O1 (7 bits, Odd parity, 1 stop bit).
You can change that configuration by selecting the "initialize" function, but all settings are lost when you unplug the power cord. I just prefer using the default ones and set the PC serial port accordingly.
Data is sent/received by the programmer in ASCII text format. So you can't send the eprom image as a binary file, but you must first convert it using one of the binary-to-text encodings supported by the programmer. The format can be selected with the "initialize" function, and as with the serial port settings, I use the default one that is "Intel HEX".
There's plenty of file converters, with GUI or command line, either as standalone tool or integrated in other software (like HEX editors) so just search one for your operating system that suits your taste.
On Linux, I use srec_cat, which is part of the SRecord package.
If I have a binary file called "rom.bin" I convert it into the Intel HEX file "rom.hex" compatible with the programmer by typing the following command:
srec_cat rom.bin -binary -output rom.hex -intel -output_block_size 16 -address-lenght=3
And this is for converting from HEX to bin:
srec_cat rom.hex -intel -output rom.bin -binary
To connect to the ep804, you can use a terminal emulator (I use minicom. A common choice on Windows was Hyper Terminal, but I don't know if it's still available on current windows versions). Connect the cable, set the correct serial port and configure it with correct baudrate, framing, parity and stop bits (9600 7O1 in case of the default values, as stated above) and turn on the programmer.
You can control the programmer entirely from the terminal by selecting the "Remote" function. See the User Manual for a list of all the commands. You should turn on the "local echo" of characters either on the terminal emulator software or on the ep804 (use the "initialize" function for that) or you won't see what you're typing.
Anyway, I prefer the "Key" mode, where you use the control panel on the programmer itself and just need the serial connection to send and receive the rom images. In this case I just use the linux shell to send the hex file directly to the serial port instead of the terminal emulator.
First I set the serial port (/dev/ttyS0 in this example) with the correct parameters using stty:
stty -F /dev/ttyS0 cs7 parenb parodd -cstopb -icrnl -onlcr crtscts
Then I can do
cat rom.hex > /dev/ttyS0
to send the file, and
cat /dev/ttyS0 > rom.hex
By using the serial port as input or output file in srec_cat I can avoid generating the intermediate Hex file and I work directly with binary:
srec_cat rom.bin -binary -output /dev/ttyS0 -intel -output_block_size 16 -address-length=3
srec_cat /dev/ttyS0 -intel -output rom.bin -binary
Of course I don't type all that stuff every time. Instead I wrote 2 simple bash script called "upload_ep804" and "dump_ep804".
so all I have to do is
to send and receive data respectively.
The large 37 pin d-sub connector on the lower left of the control panel is labeled "SIM" and it's used for the "Eprom simulator" function. By building the appropriate cable for the kind of eprom you have to emulate (pinout is printed on the control panel itself, and can also in the manuals), you can connect the programmer in place of an eprom and test your code without the need to erase and reprogram chips. I used this feature to test games on some consoles for which I don't own a flash cartridge, such as an Interton VC4000 and a Videopac.
Just set the programmer to the correct eprom type, then upload the data (from serial port, or by reading a rom/eprom plugged in the zif socket), then press the "SIM" Key on the programmer. At this point you can power on the target device that will read the data as if it was programmed in a real chip.