Hewlett-Packard HP-41C |
| . |
| Datasheet | Years of production: | 1979-1985 | Display type: | 14-segment alphanumeric |
| New price: | USD 325.00 | Display color: | Black | |
| Display technology: | Liquid crystal display | |||
| Size: | 5½"×3"×1" | Display size: | 12 14-segment characters | |
| Weight: | 7 oz | |||
| Entry method: | Reverse Polish Notation | |||
| Batteries: | 4×"N" alkaline | Advanced functions: | Trig Exp Lreg Cmem Snd | |
| External power: | HP adapter (with battery pack) | Memory functions: | +/-/×/÷ | |
| I/O: | expansion ports | |||
| Programming model: | Fully-merged keystroke entry | |||
| Precision: | 10 digits | Program functions: | Jump Cond Subr Lbl Ind | |
| Memories: | 63(0) numbers | Program display: | Mnemonic display | |
| Program memory: | 441 bytes | Program editing: | Auto-insert program entry | |
| Chipset: | Forensic result: | 9.000417403 | ||
The
HP-41C was the first in a revolutionary new line of calculators by
Hewlett-Packard. In addition to its large memory and an unprecendentedly rich set of
internal functions, the machine offered an alphanumeric display, and perhaps most
importantly, extreme versatility in the form of four expansion ports. With these ports,
the HP-41C became much more than a mere calculator; it became a superbly flexible
computing platform. In addition to being a dream machine to many a student around the
world, the HP-41C found its way to the most unusual places, including the US military or
the cockpit of the famous supersonic Concorde
airliner.
And if the almost fearsomely rich set of functions offered by the HP-41C or its many expansion modules wasn't enough, the HP-41C was also a hacker's dream: "synthetic programming", as it was called, opened up whole new vistas for the adventurous programmer who wished to explore undocumented instructions, internal functions, and more.
As a programming example, I previously wrote a Gamma function implementation for the HP-41CX. Although this implementation fits into the smaller memory of the HP-41C, the fit is somewhat tight; you need to use the SIZE 009 command to create enough space in program memory, leaving only 9 data registers for other purposes.
So instead, here's another way to calculate the Gamma function: using the incomplete Gamma function algorithm which, although somewhat slower, requires a lot less room. To use the program below, enter the argument and an integration limit; e.g., 5 ENTER 40 yields exactly 24.
01 LBL'IG 02 STO 01 03 X<>Y 04 STO 02 05 Y^X 06 RCL 02 07 / 08 STO 03 09 LBL 01 10 RCL 01 11 RCL 02 12 1 13 + 14 STO 02 15 / 16 RCL 03 17 * 18 STO 03 19 + 20 X!=Y? 21 GTO 01 22 RCL 01 23 E^X 24 / 25 RTN