HP-32S

The HP-32S was an inexpensive yet powerful calculator. It had a single line
display but with many annunciators to convey additional information. It had
a fairly uncluttered keyboard due to its menu system yet it was packed with
such features as:

Complex arithmetic

Instead of the HP-15C's complex mode, the HP-32S had
just one mode but allowed the CMPLX key to be used as a prefix to the other
functions in much the same way other calculators used HYP or ARC prefixes
on trigonometric functions. The Functions that could be prefixed with CMPLX
were:

+/- (change sign)

1/x

LN and e^x

SIN, COS, TAN

+, -, *, /

Because there was no complex "mode" and no "complex stack" as on the
HP-15C, complex numbers were each entered into two
levels of the normal stack.

Variables Instead Of Numbered Registers

The calculator used the 27 lettered variables A-Z and i (indirection) rather
than numbered variables. While these variables were used in much the same
way as numeric registers, they were more than just a relabeling. The lettered
variables were not allocated from memory until used and they could be
individually deallocated by simply storing 0 in them.

When RCL or STO was pressed, an A..Z annunciator appeared. The letters A-Z
where printed to the sides of the keys. All the variables could be scanned
with the VAR command. A single variable could be displayed without entering
it on the stack by pressing VIEW followed by the letter. This was handy for
debugging since it didn't affect the stack.

Programmability

The programming features were impressive for a calculator of its price. The
calculator used label addressing and allowed subroutine nesting to seven
levels deep. To aid in navigating programs, line numbers began with the most
recent label followed by two digits. (Like A01.) For very long functions,
the next 100 lines were displayed as A.01-A.99 and the next hundred as A,01-A,99.
Unlike most previous models, this one checked for duplicate labels and produced
an error message.

Indirection was available via the i variable which was distinct from the
I variable. The index could be stored with STO i, and an indirect store could
be done via STO (i).

Another new feature was the program checksum. This gave the user assurance
that the program was entered correctly. (In fact, in large program listings,
HP typically listed a checksum every dozen or so lines so the user could
find mistakes quickly.)

Most program lines required 1.5 Bytes of memory but the calculator used fully
merged keycodes - including numbers. Any number fit on one code line but
those code lines require 9.5 Bytes. (Although the calculator optimized integer
numbers from 1 to 99 into 1.5 Byte lines.)

Other programming features included:

Labeled Input/Output via the INPUT and VIEW commands.

ISG/DSE looping.

Conditional tests, flags, pause.

Integer, fraction, rounding, absolute value.

The RPN Solver

The HP-32S featured to the first RPN solver. The
HP-34C had introduced the first built-in root-finder
which could solve for f(x) = 0 expressed as an RPN program. To use the root
finder the user wrote a function that accepted x, and left f(x) in the X
register. The RPN Solver on the HP-32S allowed the user to enter a program
which accepted multiple variables and computed f(a, b, c, ...) = 0. After
entering a single program, the user could solve for any variable.

For example, given a change in velocity over time problem expressed by the
equation:

f = i + at
where:
i is the initial velocity
f is the final velocity
a is the acceleration
t is is the time

The equation could be rewritten in the form f(f, i, a, t) = 0 ie:

i + at - f = 0

which could be expressed in the following HP-32S program:

LBL V ; Name the program V
INPUT F ; input all the variables
INPUT I
INPUT A
INPUT T
RCL A
RCL T
x ; at
RCL I
+ ; i + at
RCL F
- ; i + at -f
RTN

After exiting program mode, the user would press FN=V to indicate that the
V program was to be solved. The user executed SOLVE and pressed F, I, A,
or T to indicate which variable to solve for. The calculator then requested
that the user input the other variables and solved for the unknown. For example:

SOLVE T
F?60
I?10
A?5

Displayed SOLVING and then T=10. Or:

SOLVE I
F?120
A?11
T?6

Displayed SOLVING and then I=54. Or:

SOLVE T
F?100
I?10
A?0

Displayed SOLVING and then NO ROOT FND since it is impossible to go from
10 to 100 with zero acceleration.

Amazing Power And Friendliness For The Price

About 20 years before the HP-32S, a four function electronic calculator cost
around $10,000 of today's dollars. The HP-32S offered a list of functions
that few people would have dreamed of in 1968 for 0.7% of the cost. In addition,
it was tiny, light weight, simple to use and ran just about forever on batteries.