This book is about the ZX Spectrum's custom chip - its Uncommitted Logic Array. One of the great things about modern technology is how such a book could be so professionally self-published, giving lucky people like me a great chance to read interesting stuff. :)
I first heard about this book from a friend, and was rather intrigued by it. Then, I went to the ZX Spectrum 30th anniversary doodah, and Mr. Smith was speaking there. He was great - a really nice and knowledgeable bloke - and by some accidental-evilness on my part I managed to get a signed copy. Woo!
And, if you've got specialist interests like mine, it's a bit good. It's like a hardware version of the Spectrum ROM disassembly, I guess. It doesn't just describe the ULA's circuitry, it goes into a fair old bit about the Ferranti process that was used. As it's bipolar, and by the time I was at uni and did VLSI everything had gone CMOS, the circuit design is a bit alien, but mostly comprehensible.
What struck me about the ULA's design is how much it isn't synchronous digital logic! There are plenty of points where timing is critical, and so delays are tweaked and managed. This is necessary, for example, for DRAM timing and for the master counter. Other parts emphasise the analogue circuitry required, for the sound/tape I/O and video display. The explanation of video was remarkably interesting for someone like me who didn't know the details of composite video (I think I now understand why NTSC colour sucks!).
Understanding the circuitry does explain things like why you can't get RGB out of a ZX Spectrum (the ROM only exports YUV on the pins), and why I needed to faff with plugging and unplugging cables to make recording work reliably ('mic' and 'ear' were basically wired together).
The constraints are fascinating - pins were shared because of package size limitations, and the amount of logic that could be fitted into the ULA was really hitting the limit. Given the time and space constraints, and the tools available, I'm surprised there weren't more bugs. As it is, the book gleefully (although not unsympathetically) discusses all the glitches, corner cases, bodges and revisions of the ULA.
The book itself has a few weaknesses. With a few very rare exceptions, only ULA circuitry is descibed, so the ULA is not placed in the wider context of the overall ZX Spectrum schematic. Fortunately, this is not a real problem. There are a few mistakes, but not particularly worse than a number of books by more well-known publishers. There's a certain unevenness to the text that might otherwise been edited away - some side-branches are skipped over while others explored in-depth, and a few explanations read like they're intended to explain a topic to beginners, but are more likely to confuse them! A good technical editor might have added a little polish.
But these are the minor quibbles of a pedant. Technically, this is a tour de force of geekery at its best - fantastic detail from a home-spun expert reversing-engineering one of Britain's finest hours in the microcomputer revolution, and recording it for history while we can. I doubt very much that subsequent generations of technology will manage to get the same level of detail, and I think that that would be a real loss.
Posted 2012-11-03.