Chris Ward's 6502 Computer


The Circuit
Parts List
EEPROM Programmer
Related Links

Back to my Home Page

Created by Chris Ward
Last update 15/05/2007

The EEPROM Programmer

Get the schematic here in xfig, PNG or GIF format.

Early on in the project, I realised that I was going to need to program my own ROM chips. EEPROMs (or E2PROMs if you prefer) sounded like the easiest type of ROM to work with, as they don't need to be erased with expensive UV boxes and they don't need a seperate +12V programming voltage. With commercial programmers being very expensive and doing a lot more than I needed, I set about designing my own PC controlled programmer.

The design is very simple. Three 8-bit shift registers are fed with serial data from the parallel port, and their outputs control the address and data lines of the ROM.

To allow for reading there is also a parallel-to-serial shift register on the data lines. An octal buffer disconnects the other shift register when reading, otherwise there would be two devices trying to control the bus.

Other parallel port lines are directly connected to the control pins of the ROM - chip enable, write enable, output enable and ready/busy. Three jumpers are provided to configure the programmer for different devices, although it was originally intended for M28C64C EEPROMS. See table below.

Jumper 1 Jumper 2 Jumper 3 Device
OFF 1-2 ON 2817 EEPROM (Note 1) (untested)
OFF 1-2 ON 2864 EEPROM (Note 2)
OFF 1-2 OFF 2764 EPROM (read only) (untested)
ON 1-2 OFF 27128 EPROM (read only) (untested)
ON 2-3 OFF 27256 EPROM (read only)

Note 1: A 28-pin device with Ready/Busy pin, e.g. Microchip 28C17A. The 24-pin 2816 devices won't work.
Note 2: Must have Ready/Busy pin - I use ST Microelectronics M28C64C.

The programmer is controlled by a Windows program written with Visual C++. It can load and save files in raw binary or Intel Hex format. Read and write support is provided for the 2817 and 2864, and read-only for the 2764, 27128 and 27256. Below is a screenshot from the program:

EEPROM programming software

The software has the following bugs/problems/missing features:

  • It will freeze if the EEPROM is not present when writing, or if the Ready/Busy pulse is missed for some other reason.
  • Keyboard short cuts don't work yet (e.g. Alt-X for exit, or Tab to move around the dialog box).
  • I get occasional verify errors, especially when using Page Mode. I'm not yet sure if this is a software or hardware problem.
  • The programmer does not work with an ISA printer port that I have. Maybe the port is faulty, although it works with my printer.

You can download the Windows executable or the source code (Visual C++ 5).