I recently found one of these devices and being a lover of test equipment I decided to see what it was all about.
There is very little information about these online. The only official mention I can find about them is on ABI’s website and it just makes a passing reference to it stating it was the first IC tester device they made.
All other information comes from Equites who has had one of these for a number of years now. He has dumped the ROM’s from his unit and they are available in the downloads section.
So, I got my unit and powered it up to make sure it worked. Once I had confirmed that I opened it up.
I could see straight away that I have a different firmware version, mine being 6-0-12 and the version Equites has was 5-9-12. I’m still not sure what the difference between the two is.
So I dumped these EPROM’s (available in the downloads section too) and created a schematic for the unit.
The device is a Z80 based system with a couple of EPROM’s, a RAM chip, a keyboard/display interface chip and three PPI chips to control IO reading/writing.
Once I had drawn it out I derived the following memory map
$0000-$3fff – ROM1
$4000-$7fff – ROM2
$8000-$87ff – RAM
$c000 – PORTA
$c001 – PORTB
$c002 – PORTC
$c003 – Control
$c004 – PORTA
$c005 – PORTB
$c006 – PORTC
$c007 – Control
$c008 – PORTA
$c009 – PORTB
$c00a – PORTC
$c00b – Control
$c00c – Data
$c00d – Control
IC1 – Controls the /OE lines to all the IO buffers
IC2 – Controls the inputs the the IO buffers
IC3 – Controls the reading from the ZIF sockets
The ROM’s, RAM, 8279 and 8522 chips enable lines are controlled via 74LS139 decoder chip.
The version number of the firmware can be displayed by keying in “005” on the keypad.
On my version it displays “6-0-12” which matches the labels on the EPROM’s.
Interestingly the “6-0” is stored as data in the ROM while the “-12” is hardcoded as instructions starting at $11cd.
The first 2 digits, in my case “6-0” represent the software version.
The remaining digits are the options installed. Mine as options 1 and 2 installed.
Option 1 is for memory devices
Option 2 is for interface devices
The unit does a power on self test which displays a fault code between 0 and 6. These may be explained in the manual which I don’t currently have so I took apart the disassembled code to see what they meant.
One of the IO’s is tied to GND.
The software tristates all the IO pins via IC1 (8522) and reads them back via IC3 (8522). They are held at logic HIGH via a pull up resistor network. If any pins are low this will result in FAULT 0.
One of the IO’s on PORTA is tied to VCC.
The software sets all of the IO pins on PORTA to logic LOW and reads the states back. If any pins are found to be logic HIGH on PORTA then this will result in FAULT 1.
One of the IO’s on PORTB is tied to VCC.
The software sets all of the IO pins on PORTB to logic LOW and reads the states back. If any pins are found to be logic HIGH on PORTB then this will result in FAULT 2.
One of the IO’s on PORTC is tied to VCC.
The software sets all of the IO pins on PORTC to logic LOW and reads the states back. If any pins are found to be logic HIGH on PORTC then this will result in FAULT 3.
NOTE: The 2 uppermost bits on PORTC are not used for reading back IO lines.
Fault with the program RAM.
Fault with display RAM.
RAM should be 0x0. If it is not then FAULT 5 with be displayed.
Fault with display RAM.
RAM should be filled with alternating 0x55 0xAA. If these values are not correct then FAULT 6 is displayed.
Equites supplied me with some additional pictures and a manual for these units and apparently there is a rebranded RS version too.
That’s about it. I have commented a lot of the code and learnt a great deal about how it works.
Its a very robust unit and no doubt it will get some use despite having other methods available to test. Its much more appropriate to have in a garage workshop.
If anyone can offer any further information about this (or feels the need to emulate it) then please get in touch.
Thanks to Equites for his information and scans.