Data I/O 29B Programmer – Welcome in the 21st Century

For my work on vintage electronics, I sometimes need a device programmer for (E)PROMs and PLDs my Labtool 48 cannot handle.
2708 EPROMs are one example, they need three supply voltages, 2532 EPROMs are another problem because of different pinouts between manufacturers and so on.

Therefore I bought a Data I/O 29B with an Unipak 2B adaptor some years ago on eBay – some more info and a photo here: http://en.wikipedia.org/wiki/Data_I/O)

The PC software for computer control mode was obviously not written with evolution in sense. I tried it on a Pentium III at 400MHz first, then on a Pentium MMX, but I got lots of transmission errors and timeouts although neither the COM ports of the PCs used nor the system 29B interface was bad.

Now I finally started the project to write a new, portable, GUI-based application to talk with the 29B.
The functions planned so far:

  • connect to programmer, request capabilities and report errors
  • select device from a list of supported devices, send family code to 29B and adjust memory buffer size
  • read from device to memory buffer and show checksums
  • write memory buffer to device
  • save memory buffer to disk
  • load file into memory buffer
  • verify device against memory buffer

Basic functions are already implemented, a 2708 is the only selectable device at the moment, which can be read and saved to disk. I use the default format MOS Hex (81) for data transfers from and to the 29B, which contains checksums for every record of 16 bytes which are compared with the actual data to make sure no transmission errors have occured. I have not yet checked what needs to be done to allow larger devices (>64k) to be handled with this format as it uses fixed 16 bit addresses, nor how 16 bit devices or even PLDs can be used.

The program is written in C++, using the Qt Creator as IDE and obviously Qt for GUI “artwork” and OS abstraction of serial and file I/O.
Here’s a very first impression, more to follow:

 

The hex editor on the right shows a file actually written with my program. The contents are from one of the Sequencer EPROMs of a SCI Prophet 10, by the way. Om mani padme hum!