Data I/O 29B Universal Programmer

This page is a collection of notes relating to the setup and use of the Data I/O 29B.

Operational Notes

Here is a quick list of key points to remember when using this device programmer:

  • It works fine with the Promlink software on my (cased) Vectra VE PII-333 at 9600 baud
  • Promlink does NOT work reliably with my bare-bones disk-imaging MSDOS machine (HP D7600 Slot 1 Motherboard) at 9600 baud. It gives lots of comms errors, sometimes works after multiple retries. A software reinstall of Promlink, and using a PCI RS232 card (rather than the inbuilt RS232 port) made no difference. The only fix seems to be running it at 1200 baud instead.
  • Don’t leave a PROM in the UniPak 2 when turning power off and on (I destroyed 2 already programmed 82S129’s doing this in October 2025)
  • The Signetics 82S129 comes up as F/P 1001 and goes in Socket 5 on the UniPak 2. This includes the Philips branded devices that I purchased in bulk in 2025.
  • The National 74S573 comes up as F/P 0805 and goes in Socket 6 on the UniPak 2
  • Don North’s .HEX files load into Promlink using file format “(83) Intel INTELLEC”
  • Bottom dipswitch needs to be on (under UniPak 2) to automatically come up in “REMOTE MODE” and therefore link with the Promlink software. Otherwise there’s a keypad operation that can put the 29B into CRC mode apparently
  • The RS232 configuration I am using is 1200 baud, 8 data bits, 2 stop bits, no parity (as that’s the highest speed that will work with most of my MSDOS PC’s).

Setup

The 29B runs fine from my MSDOS 6.22 desktop machine. But to get this working:

When you run Promlink on the MSDOS machine, you then need to select the programmer type (“29B UniPak”) and the Device.

Once this setup was done, I was able to read and write 2708 EPROMs on the 29B from the MSDOS machine.

I Have also been able to read 82S129 PROMs (on 07.07.2014). I’m still waiting to get some blank PROMs. Hopefully they will program OK using the 29B.

If you want to save the 29B memory to a file, go to Data -> Create File from RAM. In the “I/O Format” box, these two options work:

  • “(83) Intel INTELLEC”: This produces an Intel-Hex format file. It has about 50 extraneous NULLs at both the top and bottom of the file. I had to remove these with a text editor before I was able to load the hex file into Hex Editor Neo
  • “(16) Absolute Binary”: I was able to load this binary file into Hex Editor Neo without any problems

I was able to load the 29B’s RAM from a file, using Data -> Load RAM from File. Using this feature, I was able to (on my MSODS machine) directly load a HEX file generated by the ZMAC cross-assembler on my Windows 8 laptop.

File transfers between the Windows 8 Machine and the MSDOS machine were done using FTP. Filezilla is installed on the Windows 8 Machine, and M Brutman’s FtSrv is installed on the MSDOS machine.

The version numbers of my setup are as follows (as at 07.07.2024):

  • PROMlink: 6.10
  • 29B: V6
  • Unipak 2: 18.0

There’s an excellent user group on Groups.io for the Data I/O programmers. Well worth checking out for the discussions as well as the available files.

Curiousmarc.com has this excellent webpage for the 29B, with lots of good information, files and photos.

LabSite Programmer

I purchased a Data I/O LabSite programmer on eBay on 09/05/2018 for US$70. It came equipped with a DIP48-1 base. I didn’t get around to testing it until 2024 (see update below).

I’m keen to use this to erase (JTAG unlock) MAX7000 parts, particularly the EPM7128SLC84-15.

To do this, I need to find a “PPI BASE-1” and a “PPI-0258” PPI Matchbook Adapter. Footnotes 329 and 342 apply, and I need to have Product Version 6.1.

Links:

My LabSite was missing its data cable and power supply when I purchased it. The data cable needed is DB2M to DB25M with all pins connected straight through. I chose Digikey’s P/N AE1378-ND, which is AK137-2 by Assmann WSW Components. For the power supply, I chose Digikey’s P/N 1939-1734-ND, which is RR9LI2700T00-IMR6B by GlobTek, Inc (24V 2.7A DC power supply).

Update 26/07/2024

I finally got around to testing my LabSite (with new cable and power supply). Unfortunately it’s faulty. When you start the software, it gets about half way through the power-on self-test routines before it reports a DAC calibration error. I opened up the unit to take a look at it. It’s highly complex (all surafce mount, many custom chips) and with no schematics available, I doubt that I will be able to fix it.

PROMs for the DEC UNIBUS M9312

The M9312 uses 1-4 82S129 (256×4) or 82S131 (512×4) for the boot ROMs, and one 82S137 (1024×4) for diagnostic ROM. Only the lower 256 memory locations are used in the boot ROMs, hence the reason why either chip (82S129 or 82S131) can be used.

I have verified that the 29B/UniPak2 supports the 82S129.

AK6DN has an excellent webpage for the M9312 ROMs, including source code listings and downloadable files.

According to AK6DN, alternative parts for each of the PROMs are as follows:

  • 82S129 (256×4-TS): None specified
  • 82S131 (512×4-TS): Am27S13, 63S241 or 74S571
  • 82S137 (1024×4 TS): Am27S32 (I think this should read 27S33?), 74S573

The 93427 is apparently an alternative for the 82S129. Leon has some that he purchased from Unicorn Electronics some time ago, and he is sending 5 of them to MM for testing (July 2024).

The 82S parts are virtually unobtainable (except from George L in Bulgaria and possibly on Aliexpress).

Unicorn Electronics, as of July 2024, does not have any AM27Sxx, 63Sxxx, 82Sxxx, or 93427’s. They do have the following:

  • 74S287: 256 x 4 Bipolar PROM (T.S. Output), US$10.99
  • 74S571: 512 x 4 PROM (Tri-State Output), US$6.99
  • 74S573: 1024 x 4 PROM (Tri-State Output), US$7.99

NOTE: With the 74Sxxx series (particularly the 74S287) we need to be very careful that we are getting Phillips/Signetics parts, as the Tesla part of the same number uses a completely different programming algorithm.

It may be worthwhile trying the independent electronics store in the bay area (near CHM).

My current stock of PROMs

  • 5 x Fairchild 93427. Obtained from Leon in June 2024. The 29B/UniPak2 programs these. I programmed 2 for use in the M9312 and they worked fine. So I have 3 remaining.
  • 6 x Signetics N82S129N. Obtained from George in Bulgaria in June 2024, for US$6 each incl postage. 2 were supplied pre-programmed (DL and DY) and 4 blank. I’ve verified the other 4 are blank and tested the DL pre-programmed one is my 11/34 (it was fine). I haven’t tested the DY one yet.
  • 15 x Signetics 82S129. Obtained from seller “YUXINYUAN” on Aliexpress in July 2024. 14 were faulty (non-blank) and one appears to be blank. I’ve asked for a full refund. Price was A$11.36 per 5, plus about A$7 postage and A$4.50 tax. Click here for the item listing.
  • 10 x Signetics 82S129. Obtained from seller “Shop1103292029” on Aliexpress in July 2024. All were faulty (non-blank). I’ve asked for a full refund. Price was A$29 for 10 (including delivery) plus about A$3 tax. Click here for the item listing.

Altera LP6

I mention the LP6 here as it is another device capable of doing a JTAG unlock on MAX7000 devices.

The Altera parts required are:

  • ALTERA MPU Programmer – Main BASE
  • ALTERA LP6 logic programming card.
  • Adapter base Ribbon cable. (For connecting base to LP6 card.)
  • PLMJ7000-84 Programming adapter. (For programming the popular Altera MAX7000 CPLD devices like the: EPM7128, EPM7160)

The above list was taken from this eBay listing.

Revision History

25-MAR-2017: Posted initial version

09-MAY-2018: Added LabSite section

31-JAN-2020: Added info about the Altera LP6