Hewlett-Packard HP-25C

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: 1976-1978 Display type: Numeric display  
New price: USD 200.00   Display color: Red  
    Display technology: Light-emitting diode 
Size: 5"×2½"×1" Display size: 10(8+2) digits
Weight: 6 oz    
    Entry method: Reverse Polish Notation 
Batteries: 2×"AA" NiCd Advanced functions: Trig Exp Cmem 
External power: HP adapter   Memory functions: +/-/×/÷ 
    Programming model: Fully-merged keystroke entry 
Precision: 10 digits Program functions: Jump Cond  
Memories: 8 numbers Program display: Keycode display  
Program memory: 49 program steps Program editing: Overwrite capability  
Chipset:   Forensic result: 9.004076649  

hp25c.jpg (19462 bytes)Acquiring a working HP-25C calculator proved harder than I thought. Not sure why, perhaps this wasn't a sufficiently popular machine. I imagine it was possibly replaced by the HP-29C fairly quickly so not that many were sold.

The HP-25C was a "continuous memory" version of the HP-25. It was, I believe, HP's first calculator featuring C-MOS memory, that retained its contents even after the calculator was turned off.

Like all Woodstock models, the HP-25C is a somewhat fragile machine electronically. I speculate that the cause is the battery charger arrangement. The wall adapter provides an unregulated AC voltage (idle voltage in excess of 10 Volts) which is rectified inside the calculator. The battery pack acts both as a filter and as a voltage regulator; if it is not connected properly, the calculator's electronic components may receive excessive voltage. Because the battery pack is removable, it is entirely possible that a calculator is exposed to this voltage by accident. Worse yet, the tin battery contacts tend to get oxidized over time, and as the connection to the battery pack becomes less reliable, the calculator may be exposed to excessive voltage even when a battery pack is present. All this is further compounded by the fact that in continuous memory models, RAM chips are connected directly to the supply voltage, and receive power even when the device is turned off. In other words, simply connecting the charger to a calculator that is off can fry irreplaceable chips inside. (Conclusion: if you have a vintage 'C' model Woodstock calculator, don't use it to charge the battery pack!)

Whether my speculation  is correct or not, I have come across an excessive number of 'C' model Woodstocks with one or several dead chips. The HP-25C was no exception; I have acquired one recently, but I was unable to make it work reliably.

But then, my luck changed. I acquired another HP-25C in a trade with a fellow collector. It, too, was non-functional, but in a relatively short amount of time I was able to trace the problem to one of the machine's two memory chips. With that chip removed, the machine was functioning correctly, inasmuch as the missing memory allowed. I faced the obvious question of locating a replacement memory chip.

Much to my surprise, I found that my other HP-25C did not have two memory chips, only one. It wasn't rocket science to figure out what was going on here; it was fairly obvious that this newer machine used a double-capacity RAM chip. Even the HP part numbers appeared to confirm this suspicion: 1820-1843 vs. 1820-1886 (notice that 86 = 2×43. Coincidence?)

My first attempt at a fix was to use the 1820-1886 chip from my earlier HP-25C, but this didn't work. Obviously, that chip was damaged; not exactly a surprise considering that that HP-25C didn't work properly at all. So where can I find a RAM chip?

I had a hunch. You see, the HP-29C has exactly twice the capacity of the HP-25C; and it uses two RAM chips. The HP part numbers are different, but could it be that the chips are really the same? That would be of enormous help, since I had several "known good" HP-29C memory chips from broken, "for parts" machines.

Only one way to find out... I inserted an HP-29C memory chip (HP part number 5061-0469) into my HP-25C and turned the machine on. No sparks, 0.00 appeared on the display, so I tested memory and program functions... sure enough, they were both working properly. Wow!

Only one problem remained. When I turned the machine off for more than a few seconds, its memory was either erased, or filled with gibberish. Ever the optimist, I chose to ignore the possibility that those memory chips may not be fully compatible after all, and decided to take a closer look at the circuit board of my two HP-25Cs. Sure enough I found a difference; in the HP-25C that used only one double-capacity RAM chip, there was an extra 100 kOhm resistor connecting pins 8 and 14 of this chip. So I grabbed a 100 kOhm resistor from my toolbox and added it to the other HP-25C. Bingo! It was now working flawlessly, and retained its memory contents flawlessly, using a memory chip from an HP-29C.

With a working machine in my hands, I of course proceeded to write another version of my favorite programming example, the Gamma function. This time around, I used the expanded version of Stirling's formula; its main advantage on machines with limited capacity is that it doesn't require several floating point constants that would consume either a large number of program steps, or precious data registers. The program below computes the logarithm of the Gamma function for any positive argument and for all negative arguments where the Gamma function is positive; the result is usually accurate to at least 9 digits of precision. The program uses only the stack and the Last X register, leaving the calculator's 8 memory registers alone.

01        01	1
02        21	x-y
03        09	9
04     14 41	x<y
05     13 12	GTO 12
06        22	Rv
07        71	÷
08     14 73	LAST x
09        01	1
10        51	+
11     13 03	GTO 03
12        22	Rv
13        31	ENTER^
14        31	ENTER^
15        22	Rv
16        22	Rv
17        02	2
18        71	÷
19     15 73	π
20        71	÷
21     14 02	√x
22        71	÷
23     14 07	ln
24        22	Rv
25        22	Rv
26     14 07	ln
27        61	×
28        51	+
29        21	x-y
30        41	-
31        21	x-y
32     15 02	x2
33     15 22	1/x
34        03	3
35        00	0
36        71	÷
37        01	1
38        41	-
39        22	Rv
40        22	Rv
41        22	Rv
42        71	÷
43        01	1
44        02	2
45        71	÷
46        41	-
47     13 00	GTO 00