Topic: Identicon 8080 Board Hacking
Date:  2022 SEP 14
Some time in 2012, Sark bought a number of scrap circuit boards, which included several 8080 processor boards that he first assumed might be S-100. After receiving them, it was obvious they weren’t S-100 as they had a smaller edge connector and no local regulation. He brought them over for me to check out: I immediately recognized them as Identicon hardware, as I had a quantity of barcode scanners produced by Identicon which used a very similar form-factor CPU board, but were Motorola 6802 based. In late March 2012, we decided to get together and hack on them.
Initial testing was done on the bench with my Lambda LPT-7202-FM triple-voltage power supply. The Intel 8080 is a triple-voltage CPU, and we traced back from its power pins to figure out where to supply +12V and -12V – the Identicon board turned out to have local -5V regulation using a 79M05 regulator in TO-5 packaging. Once power was identified, the board was brought up with the current limiters turned down, to check for shorts.
Having found no shorts, we decided to get the board running programs via test ROMs. The Identicon CPU board has two sockets for 2708-type EPROMs: one directly below the Intel 8228 system controller, and another below that, but using a larger 36-pin socket. When using an EPROM in the 36-pin socket, it is justified toward the front. Initial tests were my usual test ROMs:
HALTROM, filled with
0x76, which immediately HALTs the CPU on reset
JMP 0ROM, which contains
C3 00 00at the beginning, the remainder being filled with
HLTinstructions. This ROM will sit in a loop, jumping back to
0x0000forever, if things are operating properly
HELOROM, which outputs the string “HELO” to a character display
The last test ROM required hacking a display into the Identicon board. We decided to add a HP HDSP-2416 ASCII character display on a breadboard with flywires, using the 36-pin socket and a grab lead for I/O write:
After this test was completed, we were pretty sure we had some boards that were worth hacking on! The next step was to figure out the onboard memory and I/O decoding. This would require more handling of the board and would require at least a more robust display hack. The project got shelved for two or three weeks.
Better Power Supply Setup
In mid-April 2012, Sark and I got back together to hack on these Identicon CPU boards. Sark had traced out enough of the edge connector that we were confident the 8080 CPU board could be run in the barcode scanners I had, which had originally used Motorola 6802 CPU boards. This would allow plugging and unplugging the board without a bunch of jumpers to the Lambda power supply. He decided to trade me a CPU board for a chassis, since I had several 6802-based units. Here’s my board installed in one of the barcode scanner card cages:
The card cage includes a modular Power One linear power supply (slightly visible in the bottom of the above picture), power switch, and reset button. There are a few connectors on the back for the barcode wand, and a connection to whatever these originally talked to. The top of the unit contains a keypad, and a display made up of DL-1416 alphanumeric displays. Having the chassis made hacking much nicer.
The 8080 CPU board Sark traded me required a few repairs: the Intel 8224 clock generator was gone, two 74LS253 multiplexers had been crushed, and a 1K resistor near the edge connector was broken. We also ended up replacing an Intel 2111 256 x 4 static RAM, but my notes don’t show whether this was due to the chip having been destroyed, or if we’d determined it was defective. These boards had been acquired as scrap, so either situation is possible.
Better Debug Display
With the board repaired, we decided to make a more convenient display adapter, seen plugged into the 36-pin socket above. Here’s a closer look:
I had several Siemens PDSP-1881 character displays on hand, and we decided to use these. They are eight character dot matrix displays, fully ASCII decoded, and have 300 mil pin spacing. The pin spacing means that an adapter board could be made to plug them into the Identicon CPU board’s 36-pin socket with relative ease. A chunk of pad-per-hole prototyping board was used, along with male:male machine pin header strips. Connections between the header pins and the DIP socket for the PDSP-1881 were made using 30 AWG Kynar wire. As seen above, a flywire for the I/O write signal is still required.
The yellow PDSP-1881s are very easy to read, but do not photograph well, so we added a chunk of red filter:
Figuring Out the Memory Map
With hardware hacks out of the way, we could start working on figuring out the memory map of the board. I wrote a small test routine which attempted to locate the top of ROM space by writing
0x55 to memory and seeing if the value stuck. If it did,
0xAA was then written to the same location, to ensure we hadn’t encountered
0x55 in ROM or some floating bus garbage. Once a writable location was found, the address of that location was converted to ASCII and displayed on the PDSP-1881:
The display shows
0x0800, which is sensible for a system using two 2708 EPROMs, which are 1K x 8 devices. This means the ROMs are located in the bottom of memory, with the ROM socket closest to the CPU occupying
0x03FF, and the 36-pin socket occupying
The Identicon 8080 CPU board does have a small amount of RAM onboard: 512 bytes, in four Intel 2111 type static RAMs. These RAMs are 256 x 4 devices, requiring two to store a byte. We knew now that the first writable RAM address was
0x0800, but the top of RAM needed to be found. Another program was written that performed essentially the same test as the top-of-ROM program, but working from the other direction:
This program displayed
0xF9FF on the PDSP-1881. That value means that RAM and ROM decoding allows the memory devices to repeat through the full 64K address space. From these results, it was likely that the decoding repeated every 4K.
Note that the above image shows the PDSP-1881 adapter in use with Sark’s CPU board (his has red sockets and a white ceramic 8228). This was likely due to our not having a replacement Intel 2111 for my board at the time, I believe it was desoldered from another one of the scrap boards over the course of our hacking!
Hacking on these boards proved to be a fair bit of fun! Identicon came up with a clean design which was easy to reverse engineer. We had not completely reverse engineered the board, but had gotten far enough to run programs that required RAM, and had a less-hacky debug display which could be removed and reinstalled without too much fuss.
In addition to the CPU, control circuitry, and memory devices, the Identicon 8080 boards also seem to contain an interface for a barcode wand. It’s similar to the wand interface found in my Motorola 6802 based scanners, but likely includes some basic I/O. This hardware had not been examined in 2012.
The scrap lot that contained these CPU boards also contained a single serial board, which was based on a TR1402 style 40-pin UART. The Motorola 6802 boards likely bit-bang their serial connection, as they have two 6522 VIAs onboard, which provide hardware that makes bit-banging easier. Sark kept the UART board, since there is only one.
I was unaware at the time, but the Identicon 8080 CPU board is pretty much a reference implementation for the MCS-80 family. I wouldn’t be surprised if the prototype had been built on an Intel MCS-80 System Design Kit, especially considering the use of Intel 2111 type SRAMs and the 86-pin edge connector. I showed my Identicon 8080 CPU board, along with my Intel SDK-80, at VCF Midwest 2019.
I still have not found out which Identicon product actually used this 8080 processor board. If anyone knows, please contact us.
barcode scanners running CP/M