The first question I imagine anyone would ask, on stumbling across these pages, is “Why would you disassemble the firmware of a 40 year old terminal?”
And the answer begins with me finding my abiding interest in computers at age 14, and ends with me deciding not to return to my 30 year career as a software engineer after a break of two years.
When I first touched a computer, on an introductory course for school children arranged by a local computer shop in Park End Street, Oxford, in the summer of 1981, I was hooked. Suddenly, at age 14, I knew for a certainty what I would want to do for the rest of my working life. The following year, I started ‘O’ level Computer Studies, persuaded my parents to get me a Sinclair ZX Spectrum 48K, and spent every lunchtime typing machine code programs into the front panel of the school’s Research Machines 380Z and, later, 480Z computers.
At that point, I felt that I could understand every aspect of the computers I was using. I understood where every machine cycle would take me and what timing constraints I was working with.
Somewhere, in the decades that followed, despite working with embedded systems and having a close relationship with electronic and firmware engineers, I lost that intimate connection to the machine. I remember on one job having to read a huge section of the Intel Architecture Manual to understand how the page tables worked. It wasn’t fun.
Fast forward to now, and in my “time out” I’ve been reconnecting with the machines that I used to enjoy. I’ve been writing sprite routines for my RML Link 480Z and now, the availability of the VT100 ROMs, Technical Manual and Print Set have let me delve into the workings of a terminal that was iconic. It was launched in 1978, which makes it a touch before my time; I started at work in 1989 with a VT320 and used VT220s in labs.
The microprocessor in the VT100 is an Intel 8080, which is a forerunner of the Z80 with which I’m so familiar, and the small firmware footprint of just 8 KiB, coupled with the schematics, makes it possible that I could perhaps understand every line, every decision, of the program.
It’s been a challenge. I’m used to reading schematics to work out where signals go but I’m very far from being an electronics engineer, so deciphering when we’re dealing with positive or negative logic, and learning about the 8080 chipset, non-volatile RAM controls, voltage comparators and so on, has been fascinating.
If any of the above matches your experience of computers, I hope you find something enjoyable here.