+Home |
Museum |
Wanted |
Specs |
Previous |
Next |

**Hewlett Packard 9820A Programmable Calculator**

Updated 12/19/2021

The Hewlett Packard 9820A was HP's first venture away from its historical Reverse Polish Notation (RPN) entry calculators into an algebraic entry calculator. All of HP's previous calculators, the history-making 9100A, the 9100B, and the 9810A, all used Reverse Polish Notation (RPN), for which HP is famous. Actually, though, RPN was first used internally in the groundbreaking Mathatronics algebraic-entry calculators (which Hewlett Packard paid patent royalties to for every RPN calculator it sold until HP purchased the patents from Barry Wright Corp. after Mathatronics was liquidated). The RPN method was also used for problem entry in Friden's EC-130, which pioneered the use of RPN for entry of math problems.

Reverse Polish Notation uses of a stack of connected registers that
helps make complex calculations more manageable without requiring as
much use of memory registers for holding temporary results. RPN lends
itself well to implementation in electronic form due to the fact that
it requires significantly less complex logic than an algebraic-entry
calculator. Not everyone liked the mental adjustments required in order
to think in RPN. An example would be the
calculation:

To perform such a calculation in RPN form, the key presses would be:

*A ROM Pack for the HP 9820A*

*HP 9820A Internal View*

The 9820A uses very similar technology as the other machines in the 98x0 series. The 9810A, 9820A, and 9830A all share the same CPU, made up of four plug-in circuit boards crammed with small- and medium-scale integrated circuit logic. HP-designed and manufactured Large-Scale ROM chips store the program(firmware) for the CPU that gives the machine its functionality, and Intel-made 1103 1K-bit static RAM (Random Access Memory) chips provide storage for program steps and memory registers. Hewlett Packard worked in conjunction with Intel on the development of the Intel 1103 1K-bit RAM chips specifically for use in the HP 98x0-series calculators. The base RAM provides 173 storage registers (if no program steps have been entered). Optional RAM can be added to bring total register storage to 429.

*A Close-Up on the 16-Character LED Display of the HP 9820A*

The 9820A uses a 5x7 dot-matrix LED display, designed and manufactured by Hewlett Packard. The display is made up of four modules with four characters each, for a total of 16 characters. The display scrolls horizontally when lines are longer than 16 characters. Editing keys allow the line in the display to be modified before submitted to the machine for processing.

The 9820A uses an internal binary
floating-point numeric representation that provides ten digits of accuracy,
with a range of -9.999999999x10^{-99} to 9.999999999x10^{99}.
The calculator can be set up to display results in fixed decimal mode (with
zero to nine digits behind the decimal point) or in scientific mode with
a selectable number of digits behind the decimal point in the mantissa.
As mentioned before, the calculator accepts problems in algebraic fashion,
allowing entry of problems essentially as they would be written down on paper.
The keyboard has parenthesis keys that can be nested up to 12 levels deep. The
machine uses the standard mathemetical order of precedence
(PEMDAS, an acryonym for remembering the order of
precendence: **P**arenthesis, **E**xponentiation,
**M**ultiplication, **D**ivision, **A**ddition, **S**ubtraction)
rules for
evaluating expressions, and accepts implied multiplication.
The six single-key memory locations (A, B, C,
X, Y, or Z), along with the numbered memory registers (0-172 in
base form) can be assigned the results of a calculation by using the
assignment key, [→]. For example to calculate
the result of the content of register A, times the content of register 100,
divided by 17, plus the sum of register X and Y, and put the result
in register 101, the equation would be entered as:

As can be seen, the [R()] key references a numbered memory register. Note the use of implied multiplication in the "[R()] 100 [A]", where memory register 100 is recalled, and implicitly multiplied by the content of register A. Once an expression is typed into the machine, the [EXECUTE] key is pressed to cause the machine to evaluate the expression and display the result. As part of the calculation process, the result is automatically also placed in the Z memory register, allowing multi-step calculations to occur. To enter program steps into the machine, expressions and program directives are entered, and the [STORE] key is pressed. This causes the machine to check the syntax of the line, compile it into internal form, assign a line number (starts at 0, and increments one for each line of code), and store the code in program memory. Program memory and numbered register storage are overlapped, so as a program grows, the number of available numbered memory registers decreases. On the 9100A and 9100B, this overlap wasn't enforced, meaning that it was possible to write self-modifying code by referring to memory registers which had been filled with program code. On the 9820A, the division between program storage memory and storage register memory is enforced, so tricks like self-modifying code aren't possible.

*HP Magnetic Cards. Top: Storage envelope for 6" card; Middle: 6" Card; Bottom: 10 1/2" Card.*

The 9820A provides a built-in magnetic card peripheral for offline storage of programs and/or data. The card reader is similar to that of the HP 9810A, except that the 9820A's reader can accept two different sizes of card. The standard card (HP Part #9126-0012), usable both in the 9810A and 9820A, is six inches long by 2 inches wide, and can hold the content of up to 45 memory registers per side. The extra-capacity card (HP Part #9162-0045) is 10 1/2" inches long, and can store 90 memory registers per side. Both types of card have scored knock outs at each end of the card that, when removed, permanently mark that side of the card as being read-only, protecting the program or data on the card from over-writing.

*Cover of HP 9820A Simplified Operator's Manual*

The 9820A is a fast machine, with virtually instantaneous results
on basic math calculations, and barely detectable crunching on
more complex problems. When running programs, the machine is also
reasonably fast. The simple program:

0: "LOOP"

1: [Z] [+] 1 [→] [Z]

2: [GTO] "LOOP"

Which simply accumulates a count of the loops in the Z register, accumulates roughly 95 loops per second.

In base form, the 9820A cost nearly $5,000 when introduced in 1972. Optional ROM packs and memory incrementally increased the price, with a machine configured as the one in the museum (Option 002 RAM expansion, User Definable Functions, Mathematics, and Peripheral Control ROM packs) selling for over $7,200.

A little less than a year after the 9820A was introduced, Hewlett Packard introduced a follow-on machine, the 9821A. The 9821A replaced the magnetic card reader of the 9820A with an incremental controlled cassette tape drive, similar to that used in the HP 9830A, allowing for storage of more complex programs, as well as for data-file access through a built-in function ROM that had routines to allow user programs to read/write data to/from the cassette tape.

For much more detailed and comprehensive information on the HP9820A and other HP calculators, Dave Hicks' Museum of HP Calculators provides a wealth of detailed and interesting information.