About a year ago, as I was talking with my friend Brent Hilpert, we discovered that we had both been introduced to computers in High School with the same machine: the HP 9830A.
It was a remarkable coincidence.
The 9830A was an oddity. Sold by Hewlett-Packard as a “desktop calculator”, it was – for 1972 – a remarkably sophisticated microcomputer with a startling array of options, peripherals, and pre-packaged software. It came with full-featured BASIC implementation in ROM, which could be extended by adding additional external and internal ROM blocks; a built-in single-line alphanumeric display; 2k words of RAM standard that could be expanded with up to almost 8k; and, optionally, the choice of literally dozens of different custom-designed, high-end HP peripherals.1
In other words, as a system it was perhaps a decade or more ahead of its time. Not surprisingly, it was expensive: marketed to the professional scientific and engineering communities, the list price was over $5975 for a basic machine. With a printer, some extra memory, and a couple of ROM options, it wasn’t hard to spend nearly $15000 – which works out to nearly $85k in today’s dollars.
I had never heard of another one being installed in a school until it came up in conversation with Brent. We had both spent hundreds of formative hours sitting in front of the 9830A’s keyboard, learning the beginnings of what would be our lifelong trade.
He grew up outside Vancouver; I grew up 5000 km away in Montreal. Astonishing.
As we bemusedly exchanged 9830A stories, though, I realized that I had an advantage over Brent. I had my own 9830A – purchased years ago – and he didn’t. He hadn’t even seen one for 30 years.
It was clear to me that we were going to have to fix that problem.
Now, the 9830A was never common, and 40 years on, it’s quite rare even on global auction sites like eBay. These days, you’ll see a system for sale perhaps once a year, and the ones that get sold are generally pretty scruffy. I had luckily found a very nice system nearly 15 years ago, and had been slowly adding to it over time; my stock included a nearly complete set of spares.
But I didn’t have a second machine.
In another incredible coincidence, I pulled out my phone to idly check eBay as we were talking, and what happened to be newly listed? A 9830. Clearly a “barn find”, scrappy, dirty, but there it was.
Well, to make a long story short (and once again proving that these machines are nearly impossible for eBay sellers to ship properly), we managed to get it for Brent, and he started to rehab it.
Now, Brent is much more of an electrical engineer than I am (a simple software guy, me), and he’s an accomplished and skilled restorer of antique computers, to boot. So, given the machine and my set of spares, it wasn’t long until he had a nice looking and working 9830A of his very own.
Then the real fun began.
Originally, the 9830A was a completely closed system. The idea appears to have been that it was an programmable appliance, not a truly general purpose computer. You could program using the built-in BASIC, but even though HP provided a couple of packaged programs in a special “binary” format, you couldn’t copy these programs between tapes, much less generate them yourself. There was no way to access the underlying processor state or examine memory. Indeed, nearly nothing about the internal operation of the machine was described in the supplied documentation.
The mass storage was (generally) cassette tape based2, and used a proprietary format. The only way to input a program into the machine was to type it at the keyboard, load it via the cassette, or read it from marked cards or paper tape (using pricey HP peripherals).
In the mid-70’s, for the intended markets, these limitations weren’t too onerous. But 40 years on, no one seemed to have done anything about it, and that seemed like an oversight.
Brent decided to fix this.
He has described his outstanding work on his website, but to quickly summarize: working from the machine and the original HP patents, Brent has reverse engineered the 9830A and a couple of the HP peripherals, drawn comprehensive schematics, written up a complete theory of operation and description of the machine and processor architectures, and built a new, general purpose interface (the “MSPI”) to provide input to and output from the 9830A to an external host. It allows the host machine to
- function as a printer for the 9830A (capturing the printer output)
- function as a general mode i/o device (allowing data i/o)
- function as a fast-mode i/o device (allowing the host to simulate an external tape drive)
It’s this third function that offers the most exciting opportunity. If an external host can simulate an HP 9865A tape drive, that means that we can load new binary programs into a 9830A. In turn, that means we can, with some reverse engineering of the firmware, extend the BASIC implementation and add new functions to the 9830A.
It’s pretty darn cool.
My own modest contribution to the effort (other than cheerleading) was to write an assembler and disassembler for the 9830A. You can find them here and here, respectively. With these tools, Brent has written several new machine language programs for the 9830; he’s described the process in detail on his website.
I believe this is the first time ever that anyone outside of HP has written a machine language program for the 9830 series, and almost certainly the first time in 40 years that anyone has written a new 9830A machine language program.
For those of us in the 9830 community, this is an extraordinary day. Brent has opened the machine for all of us in a whole new way. We owe him our thanks.
Later in the product cycle of the 9830A, there was a “mass storage option”, which was an RK05-style external hard disk system. It was extraordinarily expensive, and I have never seen one, nor do I know of any that still function. ↩