Hewlett-Packard HP-75C

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
Years of production: 1982-1984 Display type: Alphanumeric display  
New price: USD 995.00   Display color: Black  
    Display technology: Liquid crystal display 
Size: 5"×10"×1½" Display size: 32 characters
Weight: 1.5 lbs    
    Entry method: BASIC expressions 
Batteries: 3×"AA" NiCd Advanced functions: Trig Exp Cmem RTC Snd Card 
External power: HP-82059 adapter (8VAC 3W)   Memory functions:  
I/O: HP-IL, expansion ports     
    Programming model: BASIC 
Precision: 12 digits Program functions: Jump Cond Subr Lbl Ind  
Memories: 16(0) kilobytes Program display: Text display  
Program memory: 16 kilobytes Program editing: Text editor  
Chipset:   Forensic result:  

hp75c.jpg (57749 bytes)I cannot really explain why, but this is one Hewlett-Packard calculator that I don't really like. Then again, it's probably not through any fault of this calculator itself: I always found the concept of a handheld device programmable in BASIC somewhat counterintuitive.

The keystroke programming model of the earliest programmable calculators was a result of necessity: the limited memory capacity and processor speed of these devices prohibited the use of a more sophisticated programming model. The point that is often missed, however, is that keystroke programming highly ergonomical! After all, although it is possible to create elaborate, complex applications for modern handheld devices (witness the many sophisticated games written for contemporary graphics calculators!) most of the time, calculator programming serves a simple purpose: to eliminate the need to repeatedly enter the keystroke sequence of a frequently used calculation.

Many keystroke programs are born this way: you perform a calculation several times, until you realize that you're growing tired of it. So you hit that P/R or LRN button, key in the sequence one more time, run a test case or two, and presto! A program is there, only to be erased a few minutes later when you have no more need for it.

For programs of this kind, a sophisticated programming language (or even a semi-sophisticated one, like BASIC) is precisely the wrong choice!

That said, as BASIC handheld calculators go, the HP-75 is a darn good device. It also has a few interesting features, in particular a motorless magnetic card reader: cards, which were preformatted with a clocking signal, were pulled through the reader by hand. The HP-75 also has extensive I/O capability through the industry standard HP-IL interface.

The BASIC used in this calculator is a fairly standard implementation. Here is yet another Gamma function program to demonstrate its use:

100 DATA 76.18009172947
110 DATA -86.50532032942
120 DATA 24.01409824083
130 DATA -1.23173957245
140 DATA 1.208650973866e-3
150 DATA -5.395239384953e-6
160 INPUT "X=? ";X
170 T=1
180 IF X>=0 THEN GOTO 220
190 T=T*X
200 X=X+1
210 GOTO 180
220 G=1.00000000019
230 FOR I=1 TO 6
240 READ P
250 G=G+P/(X+I)
260 NEXT I
270 G=LN(SQR(2*PI)*G/X)
280 G=G-X-5.5+LN(X+5.5)*(X+.5)
290 PRINT "G(X)=";EXP(G)/T
300 PAUSE