The Museum of HP Calculators
The HP 9825A (AKA the 9800 series model 25) was a powerful fully algebraic desktop calculator. It replaced the HP 9820A and made a number of improvements including a full QWERTY keyboard (plus special function keys), a 32 (instead of 16) character display, and major extensions to the programming language. This new extended language was called HPL.
A new feature on this calculator was its "live keyboard". On most calculators, the keyboard was (and still is) disabled during program operation. The live keyboard allowed the user to examine and change variables, perform calculations and list programs while a program was running. The user could even execute subprograms within the running program.
The calculator included a tape drive capable of holding 250K bytes with a 2.7KBps transfer rate and an average access time of 6 seconds. An autostart feature allowed the calculator to load a program from tape whenever it was turned on.
Another interesting feature of the tape drive was its ability to save the entire state of the machine. If the machine was in the middle of a lengthy program, the user could save the entire state to tape, run some other program and then resume the lengthy program from the saved tape image. The combination of the "live keyboard" and the ability to suspend any program to run another gave this calculator a new level of interactivity.
The computer used a "new" language with the new name HPL. However, users of the HP 9820A would have found it quite familiar. For example, keywords like prt (print) and gto (go to) were retained and gto could still jump to line addresses or labels. If statements continued to evaluate an expression and execute the next statement on the line if the expression was true. Expressions were still fully algebraic including implied multiplication (ie 4AB meant 4*A*B.) The numbered registers of the HP 9820A were gone with 26 single letter variables and 26 arrays in their place. (Of course, an HP 9820A user could feel more at home by declaring an array R[0:172] to simulate the old registers - see arrays below.)
HPL also added much additional functionality to the language used in the HP 9820A including:
The HP 9825 added an explicit looping construct consisting of for by (optional) and next. For example:
0: for I=0 to 20 by 5 1: dsp I; wait 1000 2: next I 3: end
Would display the numbers 0, 5, 10, 15, 20. (The wait instruction makes the results readable on the single line display.)
As in most implementations of BASIC, HPL string variables were postfixed with a $. Strings were arrays of characters whose length was determined by a dim statement. For example:
0: dim A$ 1: "This "&"is a test" →A$ 2: dsp A$;wait 1000 3: A$&" in caps"→A$ 4: dsp cap(A$) 5: end
Would concatenate (&) "This " and "is a test" and assign it to the string variable A$, display "This is a test" and then display "THIS IS A TEST IN CAPS". Two-dimensional character arrays (in other words arrays of strings) could also be created. Functions for finding substrings, string lengths and string to number functions were included and strings could be compared using the same operators used to compare numbers.
HPL included powerful array features. Arrays could be dynamically defined, and multi-dimensional. By default, the lower bound for any dimension was 1 (like FORTRAN) but it could be set to 0 (like C) or any number of the programmer's choosing. For example:
0: d=3 1: dim A, B[0:5], C[0:5,5,D*3:D*4+2]
Would define a five-element array A (1-5), a six-element array B (0-5) and a three-dimensional array C with indices 0-5, 1-5 and 9-14. Arrays were limited only by the available memory. (6844-31,420 bytes depending on options.)
The addition of the Extended I/O ROM allowed to the calculator to respond to interrupts in order to control lab devices. Interrupt service routines were written in HPL and assigned with the oni (on interrupt) statement. The service routines ended with iret (interrupt return) statements. Interrupts were prioritized and lower priority interrupt service routines could be interrupted by higher priority interrupts.
The Advanced Programming ROM added cross referencing, subroutine calls with parameter passing, local variables and multiple returned parameters.
The calculator was similar to the HP 9820 but it was somewhat smaller, rounder and lighter due to advances in the electronics and the packaging. The display was centered above the keyboard with the tape drive to the left and the thermal printer to the right. Early HP-9825As used a low-profile snap feel keyboard like the HP 9815A/S but later 9825As and the HP-9825B returned to the taller more conventional felling keys used on earlier 9800 series models.
Four ROM modules could be added to the calculator. These modules plugged in the front, just below the keyboard. Three cards could be plugged in the back. These cards allowed data to be input at rates up to 400K 8- or 16-bit words/sec or output at rates up to 200K words/sec. HP-IB, 16-bit parallel and BCD interface cards were available.
HP called the HP-9825 a "Programmable Calculator" that had "Computer-Like Capabilities". Indeed, it was far more powerful (and friendly) than most "Personal Computers" of its day and the "calculator" label implied that it could be "installed" and used by a person with little training. The "calculator" label was also clever marketing because US Department of Defense procurement regulations (and some company regulations) made it a lot easier to get approval to purchase a "calculator" than a "computer".
Picture of an HP 9825
Rear view of an HP 9825
Picture of an HP 9825 sitting on top of an HP 9885M flexible disk drive. (~105K) Three ROM modules are installed below the keyboard. The disk drive was actually made to be rack mounted.
Picture of an HP 9825 controlling a large data acquisition system.
Picture of the HP 9825 Only.
Rear view of an HP 9825
HP 9885M flexible disk drive
Close up on the special function keys
Dimensions and Weight
Weight: 26 lbs
A Partial List Of Options: