Systems Programming ROM

HP9825.COM

The Story of the Little Computer That Could!

 

Any bugs you find are yours!

The switch from hardware (the HP 98036A serial I/O card) to software (the Communications I/O ROM) took Steve Leibson into Chris Christopher’s sphere. Christopher was in charge of all software development for the HP 9825A and he was justifiably proud of his team’s software quality. There were “no” bugs in the shipping HP 9825A operating system and language ROMs and Christopher would not tolerate a blemish on that track record. He stared Leibson down and said “Any bugs you find are yours!”

ComROM Cartoon


This cartoon, drawn by HP engineer Rand Renfroe, depicts the COM ROM blowing the HP 9825A apart.
 

The name of the new option ROM project became “COM ROM” for “communications ROM.” The original plan for the product was simply to bolster the communications abilities of the HP 9825A when used with the HP 98036A serial I/O card. To that end, COM ROM added separate 16-character circular input and output buffers to aid high-speed communications. As a result, interrupt-service routines had more time to activate and would not need to run as often to prevent data loss. COM ROM also added special commands to more easily access the card-specific command and status registers inside of the HP 98036A’s internal Intel 8251A USART through HPL commands.

However tantalizing possibilities arose. For example, one way to use the HP 98036A was to allow the HP 9825A to emulate a serial computer terminal. To do that, the HPL programmer needed a better way to query the HP 9825A’s keyboard. So COM ROM added special interrupt service routines and commands geared especially for the keyboard. These routines were handy for more than just terminal emulation however. They also allowed developers of computer-based systems such as rack-and-stack data-acquisition systems to build better, more interactive user interfaces into their software.

Fully half of COM ROM’s code space is not used for anything remotely associated with serial communications, except in a conceptual way. The HP 9825A stored programs in binary (tokenized) form. Consequently, program storage for the HP 9825A was limited to mass storage devices directly supported by HP and no others. That meant that HP 9825A users could save their programs on the desktop computer’s internal DC100 tape drive, on an external HP tape drive, or on the HP 9885 or HP 9895 8-inch floppy disk drives, and nowhere else. The HP 9825A could “print” an ASCII image of a program to any peripheral, like a printer or a paper-tape punch, using the “list” command but it could not read the ASCII image of that program back in and treat it like a program.

HP 98224A Systems Programming ROM


With the addition of the “store A$” command, the COM ROM became the HP 98224A Systems Programming ROM.
 

Because paper-tape readers typically used serial I/O, COM ROM solved the problem with a new HPL statement called “store A$,” which could take a text representation of a line of HPL code contained in a string variable and save it directly into the HP 9825A’s memory as a program line. This feature allowed an HP 9825A to read in a “printed” image of a program from a paper tape, put the image into a string variable, and then reconstitute the program line as a tokenized binary program line. Any device that you could print to and read back from, you could now use as a program-storage device.

The mechanism used to create the “store A$” statement was an exercise in Rube Goldberg engineering. The HP 9825A’s existing “live keyboard” ability to alter a running program was hijacked. COM ROM simply read in a line of text representing a program line, placed the appropriately massaged text in the HP 9825A’s keyboard buffer, and then programmatically “pressed” the HP 9825A’s store key by jumping to the appropriate location in the HP 9825A’s language ROM. Existing routines did the rest. A substantial part of the “store A$” code was needed for error handling and to ensure that the machine was in a proper state to store a line of program code into the running program.

The “store A$” feature became an immediate hit with engineers in the Loveland Instrument Division who were building large data-acquisition systems. They started to use the feature to create automated program generators that would combine large blocks of code into complex data-acquisition programs by assembling blocks of text and then “storing” these assembled program listings into the HP 9825A.

As a result of this feature, COM ROM became the HP 98224A Systems Programming ROM, and lost much of its communications-oriented flavor. It also didn’t uncover any bugs in the HP 9825A’s language ROMs—per Chris Christopher’s wishes. However, it did inject a couple of bugs that remained latent until the development of the HP 9825B. Two erroneous stores to ROM were left in the code. These operations had no effect on the original HP 9825A operating system code because storing to unchangeable ROM merely wastes some clock cycles. However, when these program locations became RAM locations in the expanded user memory of the HP 9825B, the latent COM ROM bugs suddenly overwrote a couple of locations in user memory, which caused programs to crash. That’s usually considered bad form. The HP 9825B development team found and fixed these bugs, but that’s a different story.

Click here for the next part of the HP 9825 I/O story.



Information on the I/O pages of this site came from interviews with: Don Morris, Geoff Chance, Chris Christopher, Mike Kolesar, John Nairn, Dick Barney, Larry Smith, Ed Schlotzhauer, and from the memories of Steve Leibson.

HP9825.COM is in no way associated with the Hewlett-Packard Company.

Hewlett-Packard, HP, the HP logos, the HP 9825, and all other product model numbers starting
with HP are all trademarks of the Hewlett-Packard Company and don’t let nobody tell you different!

This site exists strictly for educational purposes. Nothing is for sale here. Substantial material from various issues
of the incomparable Hewlett-Packard Journal appears on this site, by permission of the Hewlett-Packard Company.

All text Copyright 2004 to 2017  - Steve Leibson

[Home] [Prehistoric Times] [The 9100 Project] [Prologues] [The 9825 Projects] [Epilogues]