Hewlett-Packard HP-65
Datasheet legend
Ab/c:
Fractions calculation
AC: Alternating current BaseN: Number base calculations Card: Magnetic card storage Cmem: Continuous memory Cond: Conditional execution Const: Scientific constants Cplx: Complex number arithmetic DC: Direct current Eqlib: Equation library Exp: Exponential/logarithmic functions Fin: Financial functions Grph: Graphing capability Hyp: Hyperbolic functions Ind: Indirect addressing Intg: Numerical integration Jump: Unconditional jump (GOTO) Lbl: Program labels LCD: Liquid Crystal Display LED: Light-Emitting Diode Li-ion: Lithium-ion rechargeable battery Lreg: Linear regression (2-variable statistics) mA: Milliamperes of current Mtrx: Matrix support NiCd: Nickel-Cadmium rechargeable battery NiMH: Nickel-metal-hydrite rechargeable battery Prnt: Printer RTC: Real-time clock Sdev: Standard deviation (1-variable statistics) Solv: Equation solver Subr: Subroutine call capability Symb: Symbolic computing Tape: Magnetic tape storage Trig: Trigonometric functions Units: Unit conversions VAC: Volts AC VDC: Volts DC |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Hewlett-Packard HP-65
The year is 1973. The war in Vietnam is winding down. The Organization of Petroleum Exporting Countries imposes a ban on oil exports to the United States. The UPC (Universal Product Code) bar code standard is established. The US Department of Defense develops a new internetwork protocol, called TCP/IP. Apollo no longer flies to the Moon, but Pioneer 10 flies by Jupiter, and the Soviet Union resumes the Soyuz program after a tragic loss of three cosmonauts a year earlier. And a little boy from Hungary visits an aunt in Canada, telling every family friend and relative that he wants a "pocket calculator". Finally, somebody relents and buys him one... a mechanical contraption operated with a stylus. What the boy wanted of course was an electronic pocket calculator; little did he know that a bunch of engineers at Hewlett-Packard's Advanced Products Division in Corvallis, Oregon, were already working on something much more than that. Their next product, introduced early in the following year, was the first practical example of "wearable computing": a pocketable device with programmability, and permanent storage of programs and data on tiny magnetic cards.
The HP-65, introduced in 1974, was the first ever programmable handheld calculator; and what a calculator it is! A full complement of scientific functions, 100 partially merged program steps, 9 memories, labels, conditional branching, subroutines, simple program editing capability (inserting and deleting steps), and to top it all off, a magnetic card reader for recording programs. This calculator is nothing short of a stunning engineering achievement.
I now have one of these units and I even managed to get its card reader to work reliably. Needless to say, I am quite happy! There is something absolutely magical about it, when a 25-year old piece of hardware that includes mechanical parts still works the way its designers intended. Mind you, the fact that this, the world's first programmable pocket calculator, is still an eminently useful device in 1999, is no less amazing.
One result of my experimentation with this little marvel is yet another implementation of the Gamma function. This program is a little bit inelegant in that it requires 6 registers to be initialized by the user with preset values. Then again, a separate program can be created (and perhaps recorded on the back side of a magnetic card) that sets the values in these registers.
The program calculates the Gamma function for any real argument for which the function has a value. To use it, enter the argument and hit the A button.
M3: 83.86760434 M4: 1168.926495 M5: 8687.245297 M6: 36308.29515 M7: 80916.62790 M8: 75122.63315 00 23 LBL 01 11 A 02 01 1 03 35 02 STO 2 04 35 08 Rv 05 23 LBL 06 01 1 07 00 0 08 35 22 x<=y 09 22 GTO 10 02 2 11 35 08 Rv 12 33 STO 13 71 × 14 02 2 15 01 1 16 61 + 17 22 GTO 18 01 1 19 23 LBL 20 02 2 21 35 08 Rv 22 33 01 STO 1 23 02 2 24 35 g 25 02 π 26 71 × 27 31 f 28 09 √ 29 71 × 30 34 03 RCL 3 31 61 + 32 34 01 RCL 1 33 71 × 34 34 04 RCL 4 35 61 + 36 34 01 RCL 1 37 71 × 38 34 05 RCL 5 39 61 + 40 34 01 RCL 1 41 71 × 42 34 06 RCL 6 43 61 + 44 34 01 RCL 1 45 71 × 46 34 07 RCL 7 47 61 + 48 34 08 RCL 8 49 34 01 RCL 1 50 81 ÷ 51 61 + 52 34 01 RCL 1 53 01 1 54 61 + 55 81 ÷ 56 34 01 RCL 1 57 02 2 58 61 + 59 81 ÷ 60 34 01 RCL 1 61 03 3 62 61 + 63 81 ÷ 64 34 01 RCL 1 65 04 4 66 61 + 67 81 ÷ 68 34 01 RCL 1 69 05 5 70 61 + 71 81 ÷ 72 34 01 RCL 1 73 06 6 74 61 + 75 81 ÷ 76 34 01 RCL 1 77 05 5 78 83 . 79 05 5 80 61 + 81 34 01 RCL 1 82 83 . 83 05 5 84 61 + 85 35 g 86 05 yx 87 71 × 88 34 01 RCL 1 89 05 5 90 83 . 91 05 5 92 61 + 93 32 f−1 94 07 LN 95 81 ÷ 96 34 02 RCL 2 97 81 ÷ 98 24 RTN 99 35 01 NOP
Initialization program (hit E to execute):
00 23 LBL 01 11 E 02 08 8 03 03 3 04 83 . 05 08 8 06 06 6 07 07 7 08 06 6 09 00 0 10 04 4 11 03 3 12 04 4 13 33 03 STO 3 14 01 1 15 01 1 16 06 6 17 08 8 18 83 . 19 09 9 20 02 2 21 06 6 22 04 4 23 09 9 24 05 5 25 33 04 STO 4 26 08 8 27 06 6 28 08 8 29 07 7 30 83 . 31 02 2 32 04 4 33 05 5 34 02 2 35 09 9 36 07 7 37 33 05 STO 5 38 03 3 39 06 6 40 03 3 41 00 0 42 08 8 43 83 . 44 02 2 45 09 9 46 05 5 47 01 1 48 05 5 49 33 06 STO 6 50 08 8 51 00 0 52 09 9 53 01 1 54 06 6 55 83 . 56 06 6 57 02 2 58 07 7 59 09 9 60 33 07 STO 7 61 07 7 62 05 5 63 01 1 64 02 2 65 02 2 66 83 . 67 06 6 68 03 3 69 03 3 70 01 1 71 05 5 72 33 08 STO 8 73 31 f 74 42 STK 75 24 RTN 76 35 01 NOP 77 35 01 NOP 78 35 01 NOP 79 35 01 NOP 80 35 01 NOP 81 35 01 NOP 82 35 01 NOP 83 35 01 NOP 84 35 01 NOP 85 35 01 NOP 86 35 01 NOP 87 35 01 NOP 88 35 01 NOP 89 35 01 NOP 90 35 01 NOP 91 35 01 NOP 92 35 01 NOP 93 35 01 NOP 94 35 01 NOP 95 35 01 NOP 96 35 01 NOP 97 35 01 NOP 98 35 01 NOP 99 35 01 NOP