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
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
Is it a bird? Is it a plane? No, it's an IBM-compatible personal computer... in your pocket. Yet another machine from a seemingly bygone era when the Hewlett-Packard company just couldn't get it wrong.
I was always of the opinion that a pocket calculator with desktop computer-style functionality is a bad idea; what you do with a pocket device isn't what you do with a desktop computer and the built-in functionality should reflect this fact.
Well, yes. Unless it's a pocket computer done by HP. They proved this with the HP-71B, and they proved it again with the HP-95LX. Imagine: a DOS-based, PC-compatible pocket computer with a teeny QWERTY keyboard. Sounds cute except that I was always doubtful of its usefulness, which is indeed the reason why I didn't buy one 10 years ago. I was wrong.
The HP-95LX does everything right, so much so that this 10-year old precursor of modern PDA's is still an eminently useful device. It provides DOS compatibility alright (to the extent that I am happily playing with the classic adventure game, Zork, on my HP-95LX these days) but it also packs a selection of highly useful built-in applications, most notably a version of Lotus 1-2-3, the best text-based spreadsheet program ever written.
This machine is just, well, plain good. Feels good, works good. Built-in applications include, in addition to Lotus 1-2-3, a data communications program, a suite of personal information management utilities (notepad, phonebook, appointment calendar), and last but not least, a do-everything financial graphing calculator complete with formula programmability via the venerable HP Solve feature. So yes, the HP-95LX, in addition to being a pocket DOS computer, also happens to be one of the last RPN calculators Hewlett-Packard made. The teeny keyboard is much better than you'd think, thanks in part to the snappy responsiveness of a high-quality HP key mechanism that used to be an instantly recognizable feature of all HP calculators in the past.
So how do you write programs for this machine? Well, since it's an IBM-compatible PC, why not use your favorite development tool? Just make sure it produces DOS programs... however versatile a device it is, the HP-95LX cannot run 32-bit Windows applications. But it does quite happily run 16-bit DOS programs that were produced using tools such as Microsoft's Visual C++ 1.52 (the last 16-bit version of this development environment.) Or, if you prefer a return to simpler times, you can do what I did and dig out that old copy of GW-BASIC, and install this interpreter in all its 70 kilobyte glory on the HP-95LX's RAM disk.
Of course you can also write programs using the Intel assembly language. The DOS utility DEBUG.COM actually comes with this machine; it can be found in the hidden directory C:\_SYS. Oh, you mean you forgot how to use DEBUG.COM? Well, here's a simple example session:
C>debug -a 1E0A:0100 mov bx,1 1E0A:0103 mov cx,f 1E0A:0106 mov dx,110 1E0A:0109 mov ax,4000 1E0A:010C int 21 1E0A:010E int 20 1E0A:0110 -e 110 1E0A:0110 00.48 00.65 00.6c 00.6c 00.6f 00.2c 00.20 00.57 1E0A:0118 00.6f 00.72 00.6c 00.64 00.21 00.0d 00.0a -r cx CX 0000 :1f -r bx BX 0000 :0 -n hello.com -w Writing 001F bytes -q C>hello Hello, World! C>
Oh yes, this is a functional MS-DOS program that occupies a grand total of 31 bytes (not kilo-, not mega-, just bytes) of disk space...
But enough about MS-DOS. The reason why the HP-95LX is on my Web site is, after all, that it's a calculator-like device, not a PC-compatible. As an example, here again is the Gamma function, rewritten using the formula language of the HP-95LX's built-in calculator:
Gamma=(-1)^SIGMA(i,X,0,1,1)/EXP(SIGMA( i,X,15,1,LN(ABS(i))))*L(q,SIGMA(i,X,15 ,1,1)+X)^q/EXP(q)*SQRT(2*PI/q)*EXP(((( (1/1188/SQ(q)-1/1680)/SQ(q)+1/1260)/SQ (q)-1/360)/SQ9q)+1/12)/q)
If you graph this function using default range settings (X=-5..5, Y=-3..3) and a resolution of 240, you get the result shown in the calculator image on this page.