| +Home | Museum | Wanted | Specs | Previous | Next |
Hewlett Packard Model 9100B Electronic Calculator
Updated 12/4/2024The HP 9100B was the second calculator made for sale by Hewlett Packard. HP's first electronic calculator, the revolutionary 9100A was introduced on March 11, 1968, with the 9100B introduced in fall of 1969.
The development of the HP 9100 calculators is an amazing story. Technology author Steve Leibson has done an incredible job of researching and relating this story. The curator of the Old Calculator Museum highly recommends the reader of this exhibit to check out Steve's fascinating article, The 9100 Project.

The Engineering Prototype of the Hewlett Packard HP 9100 Calculator
Note Lack of Magnetic Card Reader
Image Courtesy of the Smithsonian Museum of Natural History, Kenneth Behring Center
Used With Permission
Reference: HP9100 Prototype Desktop Electronic Calculator
The 9100 calculators were still being actively advertised as late as mid-1970, however, their marketability was rather shortened due to the arrival of reasonably-priced large-scale integrated circuitry, which could replace the complex and costly discrete transistor circuitry of the 9100A & 9100B. HP's follow-on 9800-series calculators utilized integrated circuit technology to increase capabilities and reduce cost.
The 9100A and 9100B were most amazing because they managed to combine speed, features, and reliability that, at the time, were simply unheard of in the electronic calculator industry. The machines did this with completely discrete transistor technology. There were no digital integrated circuits used in the calculator, though there are four linear integrated circuits are used in the magnetic card reader as amplifiers. HP used all DTL (Diode-Transistor Logic), magnetic core memory storage, magnetic wire-rope low-level microcode ROM, and innovative circuit board technology for the high-level microcode ROM. All of these technologies came together to form machines which were engineering triumphs, and still today garner great admiration from electronic engineers for the sheer elegance of their design.
Wang Laboratories, recognized leader in the high-end electronic calculator marketplace prior to HP's entry, had been very successfully (and profitably) marketing their 300-series calculators for almost three years before the introduction of the HP 9100A. Wang's calculators were also of discrete transistor design, and offered advanced math functions, but were somewhat slow, and had very limited programming capabilities. Dr. An Wang, the founder of Wang Laboratories was given a sneak peak of a pre-production HP 9100A at the New York IEEE Electro Show in March of 1968, courtesy of Bill Hewlett, one of HP's founders, and the driving force behind HP getting into the electronic calculator business. Dr. Wang, after seeing the incredible capabilities of this soon-to-be-announced calculator tour-de-force from HP, returned to his company in near panic, and rightly so, as his company derived the vast majority of its revenue from the sales of their LOCI-2 and 300-Series calculators. This peek at HP's new electronic calculator resulted in the frenzied development of Wang's next generation of calculators, the 700-series, to compete with HP's wunderkind.

The nameplate that panicked Dr. An Wang
The 9100 calculators use RPN (Reverse Polish Notation) method for entry of problems. The HP 9100 calculators were not the first calculator to utilize RPN entry. The Friden 130 was the first calculator to use stack-based logic for problem entry. However, Mathatronics, with their Mathatron calculator patented the stack principle for internal use in an Algebraic-Entry calculator. This patent was later acquired by Hewlett Packard when Mathatronics was liquidated.
The 9100's use a subtly different version of the RPN stacking notion than later HP calculators, with only a three-level instead of a four-level stack. The 9100's use a CRT display, similar to the CRT display on the ground-breaking Friden 130 calculator, though the HP calculators used an unusually compact electrostatic deflection cathode ray tube that HP purchased from an outside vendor. All three levels of the stack are displayed at once, with the "X" register (where numbers were entered) at the bottom of the display, the "Y" register in the middle, and the "Z" register at the top. The digits on the display are presented in seven-segment form. The digits are formed as vectors, by moving the CRT's electron beam to an endpoint of a lit segment, turning up the power to cause the phosphor to glow, moving the beam to the endpoint of the segment, then lowering the power to move to the next lit segment. This is all done at a high rate of speed (and the phosphor on the display tube has a significant amount of persistence) such that the display looks continuous to the human eye. The continuous refresh of the display is performed by the microrcode as a parallel task combined with scanning the keyboard and performing calculations. The use of a vector display is much different than the raster-scan displays we are used to nowadays on televisions and computer displays. The display presents ten significant digits, with two non-displayed guard digits for accuracy, and two digits for exponential notation. When an error condition exists, an annunciator to the left of the CRT screen glows, and can be cleared by pressing any key.

HP9100B CRT Display
The 9100B control panel is very well laid out, of extremely high quality, and provides easy access to all of the functions of the machine. Four paddle-switches located above the keyboard provide settings for (left to right) Degree/Radian selection; Fixed or Floating (the Floating setting displays numbers in exponential notation) mode; Power On/Off; and Program/Run settings. The keyboard is of exceptional quality, with very nice full-travel keys, and key caps that have their legends molded into them so that the legends will not wear off with use.
The left-most group of keys handle the higher-level math functions, including absolute value; return the integer portion of a number; trigonometric functions with inverse and hyperbolic modifiers; polar to rectangular and rectangular to polar conversion; natural logarithm, base 10 logarithm; ex and add/subtract/recall functions for memory registers 'e' and 'f'.
The second group of keys (from the left) control memory registers and stack manipulation functions. The content of the X or Y stack register can be stored to a given storage register, the X register can be recalled from any storage register, and the content of the Y stack register can be exchanged with a given storage register. Storage registers are numbered 0 through 9 (using the regular number keypad), and the special keys labeled 'a' through 'f'. The 'a' through 'f' registers can be recalled in the X register by simply pressing the key corresponding to the register...a step saver when writing programs. The 9100B provides additional memory versus the earlier 9100A, in the form of a second set of 16 registers (for a total of 32 memory registers) which are accessible by pressing the '-' key before the register selection.
The third group of keys provides access to square root, add, subtract, multiply, divide, the numeric keys(0-9), decimal point, sign change, and exponent entry keys, as well as a [Clear X] key.
The last group of keys (rightmost) are mostly for the programming functions, which include conditional branches; unconditional branch; a flag set; flag test conditional branch; program stop (for input); program pause (1/8th second pause with display enabled, useful for temporary display of results since the display is blanked during program execution); program end (for marking the end of a program); subroutine branch and return function (9100B only); a [CONTINUE] key for continuing execution of a program when 'stop' occurs; and a [STEP] key for stepping through programs one step at a time. Also included in this last group of keys is the [CLEAR ALL] key. At the far right of the control panel is a thumb-wheel switch which selects the decimal point position for the display. When the "Fixed/Floating" switch is in 'Fixed' mode, the calculator sets the decimal point at the position specified by the thumb-wheel switch. If a number is such that it can't be displayed with the decimal point at the position specified, then the display for that number switches to exponential notation. With the "Fixed/Floating" switch is in 'Floating' position, it forces all three levels of the stack to be displayed in exponential notation.

An HP 9100 Magnetic Card and its Storage Envelope

HP 9100 Mag-Card Storage Container
Above the "Program/Run" switch is the magnetic card reader/writer. This device allows programs and data stored in the 9100's magnetic core memory to be recorded to a magnetic card, just slightly smaller than the average credit card, as well as being able to read the data on the card back into the calculator. Two pushbuttons control the card unit, one for recording information, and another for reading the content of a card into the machine. The magnetic card can record both program steps and the content of memory registers.

HP9100B Control Panel
The insides of the 9100 are truly a testimony to brilliant engineering. Hewlett Packard had a reputation for building extremely high-quality instrumentation, designed and constructed to very high levels of detail and quality, with exceptional engineering. The HP 9100A/9100B calculators were no exception to this reputation. It is very evident that HP wanted these machines to be reliable and robust pieces of equipment. Mechanically, the machine is extremely well constructed, with thick cabinet castings and heavy gauge stamped aluminum parts. The machine is built with a clamshell design, with the upper half of the cabinet hinging upward from the front, with a latching mechanism to hold the upper half open, allowing operation of the calculator with the top up. The machine consists of a rather large main circuit board that takes up the majority of the bottom of the chassis. This board contains only diodes and resistors that make up the logic gates of the machine. This board also contains the edge-connector sockets for other circuit boards, making it also the mother board for the calculator.
Beneath the motherboard is another circuit board that is very specially constructed to form the high-level microcode read-only memory (ROM) that drives the calculator. This circuit board was an incredible development for the time, containing sixteen layers of traces arranged in a grid, with an inductive coupling between layers where traces coincided such that a zero or a one can be encoded simply by the way the circuit board is laid out. To encode all of the bits necessary for the calculators microcode, HP had to create a new state-of-the-art in circuit board design, pushing circuit board technology to a new level. The ROM board contains approximately 1000 bits per square inch, making it the highest density read-only storage element in existence at the time. The design of this circuit board-based ROM is attributable to an exceptional HP engineer Charles "Chuck" Near[1935-2020].

Hewlett Packard 9100B Core Memory Board (Core Array is underneath Daughter Board below upper edge connector fingers
Image Courtesy of Mr. Douglas Jones, University of Iowa Department of Computer Science,
Core Memory Web Page
The seven boards that plug into the motherboard make up the microcoded processing unit of the calculator, including timing, low and high-level microcode control, magnetic core memory subsystem, keyboard encoding, display formatting, and peripheral interface circuits. The CRT display and high-voltage drive circuits, as well as the main power supply are situated in the upper half of the cabinet, and are also modular in design for easy serviceability.

Inside the 'clamshell'
The 9100 machines use a microcoded
architecture. Rather than the logic of the machine being hard-wired to create its functionality,
the design is based on a logic engine with a very specialized instruction set -- essentially a very simple
computer with a fixed program. The instructions for this engine come from the circuit board-based microcode ROM.
The microcode storage contains the instructions that are executed at high speed to manifest the functions of
the calculator as the user perceived it. The microcode was read out of the microcode ROM 64 bits at a time,
and stored in flip-flop latches, where the decoding and sequencing circuitry would then break down into the various
data path routing and operative functions that would be stepped through to create the functionality of the calculator.
HP 9100 Main ROM Test Fixture
Along with the main microcode Read-Only Memory (ROM), there is another
ROM that is implemented with a completely different technology. This second ROM is used by the microcode
engine to sequence the operation of low-level functions, such as setting up gating to allow one
register to be copied to another, or performing parts of the process of drawing a digit on the display CRT.
This ROM uses a technology called wire-rope ROM, or alternatively
Core Rope Memory.
Wire-rope ROM (as I choose to designate it here) was initially used in some of the earliest
commercialized computers in the early 1950s as a way to permanently store commonly-used programs;
such as commonly-used math and I/O routines (e.g., calculating sines and cosines, or converting a binary number into
decimal and outputting it on a console typewriter), or as bootstrap programs that allowed other programs to be loaded
into the computer from various input devices such as magnetic tape, paper tape, or a console typewriter.
The first use
of wire-rope ROM in an electronic calculator was in the Mathatronics Mathatron,
where it was used to store sequences of low-level operations for implementing the functionality of the
calculator, similar to the purpose of the wire-rope ROM in the HP 9100 calculators. It is interesting to note that
the program for the Apollo Moon Shot Program Guidance Computers was stored in a wire rope ROM that was specifically built
to withstand the rigors of space flight, as at the time these computers were developed, integrated circuit read-only
memories simply didn't have sufficient capacity to allow storing the required number of bits within the physical space
limitations on the Apollo spacecraft.
Wire-rope ROM operates in a way somewhat similar to magnetic
core memory (also used in the HP 9100 calculators, more on that later), essentially utilizing the ferromagnetic core
as the core of a transformer, rather than as a means to store a bit based on the direction of the magnetic field in the core.
Instead of arranging the ferrite cores in an X/Y array, and stringing wires through all of the cores, the wire-rope memory
has the cores arranged in a linear fashion. This doesn't mean that the cores will appear on a circuit board as a straight
line, in implementation the cores can be arranged in any fashion, but the main characteristic of the cores is that
there are a myriad of wires that weave in and out of all of the cores that represent the address of each of the
words of memory stored in the ROM. For example, in the HP 9100B, the core-rope ROM had 64 "words" of 29 bits each.
That meant that there were 29 ferrite cores(larger in size than the cores used in magnetic core memory), with 65
(64 address wire and one sense wire), wires. The additional wire for each core has a number of wraps of wire coiled
around the core. This wire for each core serves as the sense, or output line for that core. The other
64 wires that represent each address in the ROM. The address wires weave in and out of the cores
depending on whether the particular bit position at that address is to contain a one or a zero. If the wire
bypasses a core, that core will encode a 0 for that bit at the particular address, and if the wire runs through
the core, a 1 is encoded for that bit at that address. To access the content of a particular address in the
wire-rope ROM, a fast, fairly high-current pulse is pumped into the wire representing the address to be read. The
pulse, due to the ferromagnetic properties of the core, will induce a small corrent to flow in the sense wire
of the core if the wire passes through the core. No current will be induced if the wire bypasses a core. The sense
coils of each core are fed to an amplifier/conditioning circuit that converts the small current into a standard logic
level that can be used by the rest of the calculator's logic circuits. By the way, the wire-rope ROM was able to
provide 29 different output "words" for each of the 64 addresses permanently "stored" in the ROM depending on how
the wires were woven through the cores. The wire-rope ROM in the HP 9100 calculators is located
on one of the plug-in circuit boards that also contains the logic for decoding the address and latching the output
of the ROM.
Closer view of diode-resistor gate array board Side view of 9100B interior Closer view of control board
The 9100A and 9100B calculators from HP were
engineering triumphs for the time. The machines are very fast, with trigonometric
functions completing in significantly less than 1/2 second, as contrasted to the
Wang 360SE equipped with an optional
trigonometric keyboard/display unit (Model 360KT), which can take up to ten
seconds to perform the same operation. Addition/subtraction takes a mere .002 seconds.
The 9100's were also built such that they (as in this example), can survive for over 50 years, and still operate flawlessly.
If you want to learn more about the
fascinating history of early HP calculators, including a great deal more
detail about the 9100A and 9100B, not to mention a wealth of other information
on Hewlett Packard calculators, you should take a visit to Dave Hicks'
wonderful
Museum of HP Calculators
site. It is well worth the visit.

ROM Board Assembly to be tested is located on top of the ROM tester box

