Hewlett-Packard HP9100 Calculator

Updated October 5, 1998


HP9100B logo

The Hewlett-Packard HP9100 series calculator was the first of many calculators designed and manufactured by HP for scientists and engineers. HP introduced the 9100A in mid-1968 and followed with the 9100B model a few months later, which had double the memory capacity. These machines combined a multi-line CRT display, fast calculation capability, scientific functions, multi-register storage, and programming capability a calculator package that would fit on a desktop. In 1968, the Hewlett-Packard company was primarily a test equipment manufacturer. The only other computing product at the time was their 2116A minicomputer, and both the 9100 and 2116 were designed as rugged instruments with special features of use for instrumentation and control in combination with other HP test gear. Nearly 30 years later, the HP9100B shown below is still going strong.


HP9100B Calculator

At the time the HP9100 was introduced, there were other electronic calculators available but none with the combination of features and ease-of-use that the HP machine provided. Most electronic machines at the time either had single-line Nixie tube displays or noisy printer units, with a few machines from Friden and Smith-Corona Marchant having multi-number CRT displays, yet these machines only provided the four basic arithmetic functions and square root, and none provided the expanded numerical range of scientific notation. The only generally available scientific/engineering calculators at the time were the Mathatron and Wang 300-series machines. The Mathatron was a huge, heavy machine with a ticker-tape printer, and had limited programming functionality. The Wang 300-series machine was fairly good at basic arithmetic and logarithm functions, but was extremely slow at trigonometric functions (which were calculated on-the-fly using a keystroke sequence stored in a diode-ROM in the keyboard unit), and did not support scientific notation.

To a scientist or engineer in 1968, the HP9100 would have seemed like a breakthrough, as it provided a combination of functions, numeric capability, accuracy, speed, and programmability that was unavailable in any other single machine at the time. In a package not much bigger than the four-function calculators on the market, the HP9100 provided a full compliment of scientific-type functions, a CRT display showing three numbers in their stack arrangement, up to 16 memory registers or up to 192 program steps (double in the HP9100B), many programming features including conditional branches, a magnetic card reader to store programs and data for later use, and optional peripherals, all for a price of $4900. While this was more than many automobiles cost at the time, a 9100 was much cheaper than even the smallest available minicomputer. HP's introduction of the HP9100 in Hewlett-Packard Journal indicated a design goal of providing a machine in capability above that of an average desktop calculator for less cost than a computer. In addition, HP ran an extensive advertising campaign in the late 1960s extolling the virtues of offloading numeric computational tasks from the mainframe computer.

The HP9100A case measures 8.25" high x 16" wide x 19" deep, and the unit weighs 40 lbs. Power consumption was specified at approximately 70 watts. While this may seem large for a "desktop calculator", compare this to the competing Mathatron unit of the same timeframe that measured 14" high x 24" wide x 24" deep, weighed 85 lbs., and consumed 200 watts, and it is understandable why the HP9100 was considered a breakthrough.

HP9100 Keyboard Functions

The HP9100 keyboard is organized into four sections. The keys used on the 9100 are all double-shot injection molded, with the label for a key molded into the key as a different color plastic, so there is no way to wear off the label.

HP9100B keyboard

Number-entry keys

The main number-entry key section, a cluster of 20 keys located in the right-center part of the keyboard, would be familar to most calculator users of the time. The main power ON/OFF switch is located above this block of keys. All of the digit keys, the decimal point, and the "pi" key are white, as are the "CHG SIGN", "ENTER EXP", and "CLEAR x" keys. The CHG SIGN key is used to change the sign of the number in the X register, or to change the sign of the exponent part of a number being entered in scientific notation, after the ENTER EXP key is pressed. The CLEAR x key enters 0 in the X register and also clears pending prefix key presses for the trig and hyperbolic functions.

The numeric operator keys are all a dark gray color. The top key on the left of this section is the "SQUARE ROOT x" key, when pressed it performs a square root function on the number in the X register and places the result there. The four arithmetic keys, when pressed, cause the indicated arithmetic operation to be performed on the numbers in the Y and the X register, however, for these operations the result is placed in the Y register. This is a bit different from what most people familiar with HP pocket calculators would expect, as results are placed in the Y register instead of the X register for the arithmetic functions. The automatic stack lift and drop features of the HP pocket calculators are not implemented in the 9100, for instance if 45 is entered, "sin x" pressed, and then 50 is entered, the value of sin (45) does not get pushed up into the Y register, it is overwritten by the next keyboard entry.

Thanks to the calculator's 1.2 MHz clock and efficient algorithms, arithmetic functions on the HP9100 are quite fast. According to specifications published in HP Journal, addition and subtraction are performed in 2 milliseconds, multiplication in 12 milliseconds, division in 18 milliseconds, and square root in 19 milliseconds. Many other calculators of the time could take up to a second to do a complex multiplication, division, or square root.

HP9100B keyboard

Function keys

At the left side of the keyboard, a cluster of 15 keys provide access to the advanced scientific functions of the HP9100. The rightmost column of keys perform trigonometric and hyperbolic-trig functions. These functions operate on the value in the X register and return the results in the X register. There is no "stack-lift" after executing one of these functions. The "hyper" key and "arc" keys are used as prefix keys, and are pressed before the desired function, i.e. the inverse sine of an angle whose value is in the X register is calculated by pressing the "arc" and then "sin x" keys, the hyperbolic cosine is computed by pressing the "hyper" and then "cos x" keys, and the inverse hyperbolic tangent is computed by pressing the "arc", then "hyper" then "tan x" keys. Use of the prefix keys cuts down on the keyboard clutter and the amount of memory required for the machine's keystroke programming capability. A toggle switch located above this section of keys is used to select between DEGREES mode and RADIANS mode for the trigonometric functions. Average calculation time for the trigonometric functions was a fast 280 milliseconds (according to HP Journal), better than 20 times faster than the competing Wang 360 series.

The middle column of function keys are used for numeric alterations and logarithms. The top key in the column alters the number in the Y register to be the absolute value (always positive) of the number, and is the only key in the section that operates only on the Y register. The key below, "Int x", causes the fractional part of the number in the X register to be discarded, resulting in an integer. The three logarithm function keys are below, providing the capability for calculating the natural logarithm, natural antilog (e^x), and common logarithm of the number in the X register. Unlike later HP calculators, there was no provision for directly raising a number to a power, however the pull-out instruction card in the calculator provides an example of how to use the natural log and antilog functions to do this. Calculation of the logarithm functions is very quick, HP Journal lists the ln(x) as taking 50 milliseconds and e^x as taking 110 milliseconds.

The right column of function keys are useful for calculations involving vectors or complex numbers. The "TO POLAR" key causes x & y values in the X & Y registers to be converted to R (magnitude) and theta (angle) polar coordinates, with R in the X register and theta in the Y register. The "TO RECT" key converts from polar coordinates to rectangular with the respective values in the same registers as above. The "ACC+" and "ACC-" keys cause the X & Y registers to be added to or subtracted from the f & e memory registers in the calculator, making vector addition or subtraction a one-key operation. The "RCL" key recalls the numbers out of the f and e memory registers and places them in the X and Y stack registers, providing a one-key method for recalling the results of vector arithmetic.

HP9100B keyboard

Memory and Stack Operation Keys

In the left center section of the keyboard is a grouping of 15 keys used for memory and stack operations in the HP9100B. This is slightly different from the earlier HP9100A, which only has 14 keys in this group. In the HP9100B, stack operations are controlled by the column of five keys on the right of this group, with the "up-arrow" key, corresponding to the "ENTER" key on later HP calculators, being a regular-sized key at the bottom of this column. In the HP9100A, there are only four keys in this column, and the "up-arrow" key is double-sized and located at the bottom of the column. The "up-arrow" key causes the value in the Y register to be placed in the Z register (with the Z register contents lost) and the X register to be duplicated to the Y register. Above the "up-arrow" key is the "down-arrow" key, which causes the value in the Y register to be placed in the X register (with the X register contents lost) and the Z register to be duplicated in the Y register. The "ROLL up-arrow" and "ROLL down-arrow" cause the stack contents to be shifted into the corresponding register, up or down, without duplication or loss of any of the stack register values. In the HP9100B, the "x exchange y" key is located at the top of the right column of keys, while it is located at the bottom of the middle column of keys in the HP9100A. This key causes the contents of the X and Y registers to be exchanged.

A toggle switch located above this grouping of keys selects between "FIXED POINT" and "FLOATING" (scientific notation) display mode.

Memory Operations

The HP9100A has 16 memory registers while the HP9100B has 32 memory registers, each capable of holding a 12-digit number plus a two-digit exponent (and sign for both). The memory registers are also used for holding program steps, each register can hold up to 14 steps, except for registers "e" and "f" which cannot be used for program steps. The HP9100A/B calculators use magnetic core memory, which will maintain its contents when the power is turned off, making them the first of HP's "Continuous Memory" calculators.

In the HP9100A, the memory registers are labeled with single-digit number (0-9) or with the letters a,b,c,d,e, & f. The "a" through "f" keys on this section of the keyboard provide direct access to the corresponding memory registers. In the HP9100B, the memory registers are divided into two banks of 16 registers, the primary, or "+" bank, and the secondary, or "-" bank. Unless the secondary bank is explicitly specified the memory keys operate on the primary bank in the HP9100B. Pressing any of the "a" through "f" keys recalls the value of that memory register (the corresponding primary register in the HP9100B) into the X register on the stack. To place a value in the "a" through "f" register, or to access the numbered registers, the other memory-control keys in this section must be used. The "y -> ( )" key is followed by pressing any number or letter key and stores the value from the Y register into the specified memory register. The "x -> ( )" key works the same way, storing the X register into the specified memory register. The "y exchange ( )" key swaps the value in the Y register with the value in the specified memory register. In the HP9100A, there is no direct way to recall a memory register numbered 0-9 to the X register, however this feature was added to the HP9100B with the "x <- ( )" key (the HP9100A has the "x exchange y" key in this position on the keyboard). These four memory control keys also allow access to the secondary set of registers in the HP9100B, by pressing the "+" or "-" key before the register number/letter key is pressed. Since the "+" key specifies the primary registers, which is the default, it is not normally required to be pressed however this is provided for consistency in programming. Therefore, accessing any secondary memory register in the HP9100B requires three key presses.

HP9100B keyboard

Programming and Machine Control Keys

At the far right of the HP9100 keyboard is the group of keys used for controlling the machine's operation and for programming. This group of keys is slightly different between the HP9100A and HP9100B, with the former having 14 keys and the latter having 15 keys. The differences are in the left column of keys. The HP9100A has a double-sized "CONTINUE" key, used for continuing program execution after a stop, while the HP9100B has a single-sized "CONT" key, used for the CONTINUE function, and an additional "SUB/RETURN" key, which is used for subroutine calls and returns - a feature that did not exist on the HP9100A and was one of the main enhancements of the HP9100B along with the addition of double the memory capacity. Another difference is the third key in the left column, labelled "PRINT" in the HP9100A, is labelled "PRINT/SPACE" in the HP9100B. The "FMT" key is used to provide commands to peripheral equipment, which can be attached through a connector on the back of the machine. HP9100-series peripherals will be covered in more detail in a later update. The "CLEAR" key places zero in all the stack registers and in primary memory registers "e" and "f", clears any ARC or HYPER prefix, and clears the internal flag (used in programming).

The middle column of keys in this group are used for programming and will be covered in more detail in a later update. The top four keys are used for conditonal branches, either testing the state of the system flag or for a relationship between the values in the X & Y registers. The "GO TO ( ) ( )" is used for an unconditional branch, and requires two further key presses to specify the register number and step number for the branch.

The right column of keys in this group are used for program control. The "SET FLAG" key sets the state of the internal flag, and can be executed either from the keyboard or in a program. The "PAUSE" key is used as a program step to cause the machine to briefly pause (150 milliseconds) and display the contents of the stack registers and then continue program execution. Since the HP9100's display is blanked while a program is running, this function allows a user to check on a program's progress. The "STOP" key, when executed as a program step, halts the program's execution but does not reset the program counter, so is useful for creating a place in the program for results to be reviewed or data to be entered. While a program is running, the "STOP" key can be pressed and will cause the program to halt as soon as the current instruction is completed. The "END" key is used within a program to indicate the end of a program and it causes the program counter to be reset to 0,0. The "STEP PRGM" key is useful during program debugging to allow the user to step through a program's execution one instruction at a time.

Above this group of keys is a toggle switch, setting the main machine mode to either "PROGRAM" for program entering and editing or "RUN" for using the machine normally from the keyboard or running stored programs. This switch also indicates to the magnetic card reader whether a card should be written to (PROGRAM mode) or read from (RUN mode).

To the right of this group of keys is a thumbwheel switch which is used to set the number of decimal places displayed on the unit's CRT display when the machine is set to "FIXED POINT" mode. The number of places to the right of the decimal point can be set anywhere from 0 to 9 by the setting of this switch.

HP9100 Display

The designers of the HP9100 chose a CRT display because it was the best technology at the time that would allow the display of all three stack registers simultaneously and quietly. Nixie tubes were too big, and Light-Emitting Diode (LED) displays were still a laboratory curiosity when the HP9100 project was conceived. According to HP Journal, a specially designed electrostatic-deflecton CRT was used for high brightness, and a filtering arrangement was used to minimize glare from ambient light, resulting in a non-fatiguing display of green numbers against a dark background. The format of the numbers is similar to what would become common later with LED displays, a 7-segment pattern plus a decimal point. The number "1" is shifted to the middle part of the pattern to enhance readability. Two display formats are provided, selected by the "FLOATING" and "FIXED POINT" toggle switch. The calculator can display 10 significant digits plus a two digit exponent, plus signs for the mantissa and exponent.

No matter which display format is chosen or the decimal setting, the HP9100 maintains all numbers internally to 12 digits, plus a two digit exponent, plus sign for both mantissa and the exponent. The dynamic range of the calculator is 9.99999999999 x 10^99 to 1.00000000000 x 10^-99.

HP9100B display

Fixed-Point Display

The CRT display of the HP9100 shows all three numbers of the machine's operation stack simultaneously. To the right of the CRT is a back-lit bezel with the position indicators for the stack, from the top down they are: "z temporary", "y accumulator", and "x keyboard".

The above photo shows the display in fixed-point mode, with the integer 45 in the Z register, sin (45 degrees) in the Y register, and the square root of 2 in the X register. The decimal point setting wheel is set to "4" in this example. If one of the numbers in the stack is too large to be displayed with the specified number of digits to the right of the decimal point, the entire display changes to the floating-point display mode described below. Unneeded zeros to the right of the first significant digit are suppressed, an uncommon feature among early calculators. The calculator provides automatic rounding for the non-displayed portion of a number (i.e. 1.23456789 in fixed-point with decimal setting at "4" would display as 1.2346)

Although not visible in the photographs, to the left of the CRT is an indicator lamp that lights on an illegal operation, such as division by zero, square root of a negative number, logarithm of a negative number, or inverse trig/inverse hyperbolic functions for values outside of the valid range.

HP9100B display

Floating-Point Display

The same three numbers in the above example are shown here in floating-point mode, which is commonly called scientific notation, with the first digit of the mantissa to the far left of the display, and the exponent part at the far right of the display. For readability, the HP9100 groups numbers to the right of the decimal point in groups of three. Trailing non-significant zeros are blanked (i.e. 45 shows up as 4.5 x 10^1 instead of 4.500000000 x 10 ^1).

Still to come ...

A future update of this article will include a view inside the HP9100 calculator and information about it's internal operation, algorithms, and it's development. Also to come will be more information about programming the HP9100. The HP9120 electrostatic printer and HP9125 pen plotter will also be covered in a later update.
Special thanks to Will Carrig for donation of a HP9100B calculator and HP9125A plotter, to Mark Glusker for packing & shipping these units cross-country, and to Philip Stortz for providing, packing, & shipping a HP9100B calculator, HP9120A printer, and HP9825B plotter. Thanks!!!
Much of the technical information for this article was provided from the September, 1968 issue of HP Journal, and is used with permission.

Note: This Web site is not affiliated with or endorsed by the Hewlett-Packard Company

Use your Browser's BACK button to return to the Desktop Calculator page