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.
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.
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.
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.
A toggle switch located above this grouping of keys selects between "FIXED POINT" and "FLOATING" (scientific notation) display mode.
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.
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.
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.
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.
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