The Museum of HP Calculators
The HP-15C was a high end scientific programmable. To the HP-34C's numerical integration and root solver the HP-15C added complex numbers and matrix calculations.
A first on the HP-15C was built-in support for complex numbers. Programs for manipulating complex numbers existed as far back as the HP-65. To use these programs, the user entered two numbers into two stack positions and invoked the appropriate subroutine. This was cumbersome because it turned a four-level stack into a two-level stack and required a subroutine (and label) for any complex function the user might require.
By contrast, when the HP-15C entered Complex mode, it consumed 5 storage registers, using four to add imaginary components to each level of the stack and one to add the imaginary component to Last X.
A complex number was entered by typing the real part and pressing ENTER and then typing the imaginary part and pressing f I. This entered the imaginary part on the imaginary stack and showed the real part in the display. To see the imaginary part, the user could press f (i) and hold it as long as needed. Alternately, the user could press the real/imaginary exchange button to swap the components.
Almost all the built-in functions worked for complex numbers just as they did for real numbers. (The exceptions were the polar/rectangular conversion functions which were used to convert complex numbers from polar/rectangular mode.)
Matrix math was another first on the HP-15C. The calculator could work with up to 5 matrices named A-E. Matrices were dimensioned with the DIM command. For example, to define B as a 2 by 1 matrix, the user would press 2 ENTER 1 f DIM B.
To store the elements in the matrix, the user could specify where to put each element explicitly by adjusting R0 (row) and R1 (column) and then STO B or the user could put the keyboard in "user" mode, which caused the row and column indicators to automatically update left to right and top to bottom on successive STOs. Thus, the user could press f USER and then press 5 STO B 10 STO B. (The calculator would briefly display the row and column just stored.) If the user wanted to recall the size of the matrix, pressing RCL MATRIX B would display 2 1.
Matrix elements could be recalled in similar fashions but there was also a stack-based shortcut. The user could enter the row and column in the X and Y registers and then press RCL g and the matrix name.
Up to 64 matrix elements could exist in the calculator. These could be shared among the matrices as the user required.
Many matrix functions were included such as determinants, inverse, LU decomposition, as well as typical matrix math functions.
The HP-15C had 448 bytes which were shared between programs and storage registers. One or two bytes were used for each instruction stored in a program and the maximum number of registers was 67. Initially the HP-15C had 322 bytes of program space and 21 directly addressable registers (R0-R.9 and the index register RI.) The number of storage registers could be changed with the DIM (i) command. When the number of registers was reduced, highest numbered registers disappeared first.
The HP-15C used label addressing with labels 0-9,.0-.9 and A-E. The letters A-E were shifted functions on the keyboard and could be accessed via f letter or GSB letter. However, the calculator had a user mode which swapped the shifted and unshifted functions on these keys making the subroutines A-E callable with a single key.
Previous HPs had allowed the user to press GTO . line_number to get around quickly while editing, but with valid labels starting with the decimal point, this shortcut was changed to GTO CHS line_number. Indirect addressing was available via a dedicated index register I. (The I and (i) keys did double duty both as index register keys and complex number keys.)
Dimensions and Weight