The UCA now supports Intel 8008

The Universal Chip Analyzer made another step in its journey to the prehistoric age of CPUs. The Intel 8080, released in 1974, was already based on very old technologies and quite hard to interface with compared to its competitors (Zilog Z80 and Motorola 6800), but the Intel 8008 is even more archaic. Originally designed as a custom chip for a computer terminal produced by Computer Terminal Corporation (CTC), the 8008’s development was challenging due to its ambitious design requirements and the limitations of the technology at the time. Intel, which was then a fledgling company, took on the task, and with contributions from famous engineers Federico Faggin and Ted Hoff, successfully created a microprocessor that could handle an 8-bit data path. Although CTC eventually abandoned the project due to delays, the 8008 found a home in other applications. It was embraced by hobbyists and small companies, most notably being used in the French Micral N in 1973 and the Mark-8, two of the earliest personal computers. Neither of them had monitors or keyboards: input was done using switches and output was done using LEDs.

From an electrical point of view, implementing support for the 8008 on the UCA was a challenge. It doesn’t require a simple +5V referenced to ground (0V) like later CPUs such as the Motorola 6800 or the Zilog Z80 (circa 1974), nor a complex mix of +12V, +5V, and -5V (still referenced to ground) like its successor, the Intel 8080. Instead, it requires two power lines with a voltage of 14V between them. That means you can interface the 8008 using +14V and ground, or using the recommended split of +5V and -9V … without a ground reference. According to the datasheet, the +5V/-9V split should ensure compatibility with TTL logic, which is highly welcome. Like the other UCA adapters, the Intel 8008 adapter has been designed not just to test the chip but also to protect both the precious CPU and the UCA if something goes horribly wrong (like a defective chip creating a short between unexpected pins).

From an interface point of view, the 8008 was also quite challenging due to its uneven dual-clock requirement and its highly multiplexed pins (a consequence of its tiny DIP-18 package for an 8-bit CPU). Data, low address lines (A0-A8), high address lines (A9-A12 for a maximum of 16KB of RAM), and control signals are all available on the same 8 pins at different times during the internal cycle. They must be latched properly in a timely manner. But the most complicated issue to deal with was the lack of a crucial signal available on all other CPUs and MCUs: a RESET line. After power-on, the 8008 is halted, and you have to wake it up using tricky methods to make it execute code. The choice to use the instructions 0x00 and 0xFF as HALTs instead of the more common NOPs also added complexity while debugging the adapter.

Fortunately, all these challenges have been solved, and the UCA is now able to test 8008s at 500 kHz (the original frequency), 650 kHz, 800 kHz (for later 8008-1s), and a whopping 1 MHz! As with all other adapters, the UCA lets you upload your own code and run whatever program you want.