Hey folks, Crow here. Thirty years ago the hardware development tool suite for the small-business engineer was often cobbled together in-house from whatever could be afforded. In my case as I worked with the Zilog Z8 microcontroller series my main development tools were CP/M and MS-DOS macro assemblers, my trusty 1409 EPROM programmer and eraser, a hobbyist ROM emulator built from a kit and in the case of the 18-pin DIP Z8 parts a set of hand-made boards that brought out the proper pins from a 40-pin part to an 18-pin header. Program flash ROM wasn’t so hot in those days, everything was either externally-attached EPROMs, internal one-time PROM or factory masked ROM, the last of which you didn’t tape out until you were very sure your code was robust. Suffice to say, I stuck with the ROMless versions of the microcontroller and attached my own EPROM and RAM (usually 8K of each). Whatever I/O was needed beyond the 16 pins leftover after assigning two Z8 ports as address and multiplexed address/data busses had to be memory-mapped.
My 40-pin Z8 designs settled around a common core circuit. Early versions from 1984 and 1985 used the Zilog “Protopack Emulator,” a 40-pin ceramic DIP device that had a 24-pin EPROM socket affixed to the top of the package and came in 2K and 4K ROM versions. The internal RAM of the Z8 was originally 128 bytes, organized as sixteen split-addressable 16-bit registers. These were loaded a byte at a time, but could otherwise be used for 16-bit operations and memory address pointers. The remaining memory locations were available for scratchpad use, but also served as the stack area.
Zilog also started to offer 18-pin version in the early 1990s. One such was the Z86E04, which had 1Kx8 of “one-time programmable” ROM. The problem was, I had no in-circuit emulator, or ICE as it was called, for the 18-pin Z8 series. In order to be able to develop firmware intended for these 18-pin parts I devised a set of 40-pin to 18-pin adapters I made as small, single-sided circuit boards that would hold a 40-pin Z8, provide an 18-pin socket header. In this manner I was able to write code on a DOS PC, dump the object file to the ROM emulator through a parallel port (remember those?) and attach the ROM emulator’s 28-pin cable which I hacked to also support 24-pin parts to a protopack Z8 installed in one of my 40-to-18 pin adapter which was then installed in the target socket of the device being designed.
The first unit I made for this was a three-phase digital ammeter intended to measure the 400-Amp currents seen in power control for industrial applications. My unit used CTs, or current transformers, which were placed on each buss bar of a three-phase power controller and reduced the 0 to 400A scale down to a 0 to 5A scale. The trick to reading the resulting current was to treat it as the input to a full-wave rectifier and use the non-linear output voltage as the input to a A/D converter. Of course, my A/D converter was a discrete system made from a comparator, voltage reference and one of the Z8’s internal counter/timers and was not terribly fast at 10 conversions/sec, but it was accurate. The conversions were sent through a look-up table to linearize the response and displayed. Amazingly, my original prototype still works. The LED displays used an RCA chip, the CA3161, which had an interesting feature I will write about in an upcoming blog.
In 1995 I managed to get Zilog’s actual Z8 CCP board, which was a real boon as it meant code could be assembled and transferred to the board without needing my DIY emulation parts. This is the precursor to the modern compile and upload to flash method. Of course the Z8 CCP board led to my development of my (in)famous “mod chip,” but that is a story for another day. Cheers! –Crow