The ZX Spectrum Reverse Engineering and Clone Desgin Blog

Eprom Programmer

A site dedicated to the reverse engineering of the ZX Spectrum and related projects.

CEProg - EPROM Programmer v2

Feb 10, 2007

In revisiting my earlier EPROM programmer designs I realised that setting up each address location required a number of writes to the 8225A I/O controller, and the decoding was such that implementing any of the rapid programming algorithms would be difficult (the control pin access was not flexible enough).

Having the programmer hardware generate its own incremental address on the address bus would solve this problem. A quick search on the internet shows a couple of similar programmer designs, in particular the 27C801 Programmer (which references this site) uses an on-board counter to generate the address bus values during programming, and runs of a PC parallel port.

The disadvantage of this design is that will only program the 27C801 device. What I need is something that will program 27C64, 27C128 and 27C256 EPROMs, with the correct supply and program voltages.

These three EPROMs have slightly different pin-outs with repsect to ~CE, ~PRG and A14 (see here for pinouts), and require 6.00-6.25v supply in addition to 12.75v VPP when in programming mode.

My design builds on the 27C801 design by adding an 8bit octal D-Type latch to provide an additional 8 control lines, a switchable 5v/6.25v EPROM VCC supply, decoding logic to route A14, CE and PRG appropriately depending on the EPROM being used, and careful choice of signal derived from the parallel port control lines (4 of them) so that the EPROM may be switched into verify mode and back again quickly during programming.

You cannot write to the DType latch while the EPROM is selected and its output is enabled as this produces contention for the data lines D0..D7.

The schematic for the EPROM program is available here and the software for controlling it may be downloaded from here (C, Linux).