The Museum of HP Calculators

HP Forum Archive 01

[ Return to Index | Top of Index ]

Prog calcs - loss of data
Message #1 Posted by Tom Peddle on 27 Oct 1999, 11:37 a.m.

Why can't the HP67 (and similar calculators) remember the program and data areas when turned off?

As most of the current drawn is by the LED display, and the memory is static RAM (ie draws very little current) it could be very easy to keep the battery voltage connected to the memory chips and hence not loose the data or discharge the batteries.

I know that the memory cards store what is needed but having the calculator store the data when switched off would be a major feature.

Am I missing something or did HP miss a trick here?

Would it be possible to modify the circuitry to add this feature?????

Re: Prog calcs - loss of data
Message #2 Posted by Fred on 27 Oct 1999, 12:01 p.m.,
in response to message #1 by Tom Peddle

The technology used to make the chips draws too much power, CMOS technology allowed for low enough power consumption to permit continuous memory (ie HP-25C,29C,19C) LCD displays reduced power further eliminating need for rechargable batteries...

No ball was dropped, technology changes permitted better calcs.

Re: Prog calcs - loss of data
Message #3 Posted by Tom Peddle on 29 Oct 1999, 4:16 a.m.,
in response to message #2 by Fred

Intresting you should mention the 29C as having suitable CMOS chips for long term storage. According to the 'technology' page for the 20 series at least some of the chips are shared with the 67. Does this extend to the memory storage section within the two calculators? If so it looks like all calculators using this technology could of saved the data when switched 'off'.

PS I've tried to read the chip numbers from the picture of the insides of the 67 but the resolution is not high enough. Anyone know what the chip numbers are (especially the memory ones)?

PPS I am a chip designer so don't be shy when explaning technology, I do understand the limitations of the different MOS types.

Continuous Memory, a review
Message #4 Posted by Andrés C. Rodríguez on 29 Oct 1999, 8:43 a.m.,
in response to message #3 by Tom Peddle

The "20" series actually had two stages: in the first, the HP 21, 22 and 25 were launched, and none had the so-called "continuous memory", nor CMOS circuitry. / In the second, the HP 25C, and the 19C & 29C do had "continuous memory" (CMOS battery-backed RAM). / The HP 27, nonprogrammable had no continuous memory; it may be regarded as sort of an intermediate generation between the two stages. The HP67 belongs to this timeframe. / The original HP25 had a RAM chip with 16 registers, each for 7 bytes of memory. Nine registers were assigned for data (memories 0 to 7) and Last-x. The remaining seven registers were used for the 49 programming steps, where each "keystroke phrase" (also called "merged keystrokes"; for instance STO + 5) was converted into a byte (there are less than 255 keyboard phrases possible in an HP25). / Moving only that single chip to CMOS allowed the -25C to keep ONLY that data and program steps when turned off, the stack registers were lost without power. Presumably the stack was on the CPU chip (non CMOS), and that may be why the HP21 could do without the RAM chip. / Putting a second CMOS RAM chip on the HP29C doubled the program steps to 98 (strange number, if not explained this way), and added more memory registers. Only some data registers were non-volatile, and it seems that the X register was mapped to the continuous memory. / The opcode count was kept below 255, despite the extra functions available on the HP29C, since label addressing and indirect addressing for some registers freed enough opcodes. In the HP67, the display control via a DSP instruction, and the P S register bank swap instruction helped that same end: No more than 255 opcodes! / By the way, the fact that the HP67 was codesigned with a printing sister model (HP97) may also be a factor for not implementing Continuous Memory on those calculators. / I think that the 16 register x 7 bytes CMOS RAM chip, pioneered on the HP25C is the same (or very similar) to the RAM chips used on the HP41C: This calculator had a new, full CMOS design; using 5 CMOS RAM chips: four for data registers or programs (with a movable boundary set by the SIZE instruction), and the fifth used for the stack, alpha register, flags, program counter, subroutine return addresses, and general housekeeping). The external memory modules for the HP41C added four RAM chips each, allowing for a maximum of 320 registers with four external modules. / THe HP41C was a fully "power-aware" design, in which the display is the only part of the calculator that is using power when the calculator is "on" (actually it is in a sort of standby state). The CPU and other parts do actually work only while a program is running or while a calculation is being done (run state). The "off" state is described as "sleep mode". / When the CMOS ICs stepped to 64 registers of 7 bytes each, the HP41CV was introduced, with 5 chips of 64 registers each for programs and data and one 16 register chip for housekeeping. At the same time, a QUAD module was introduced for the standard HP41C, allowing it to reach the maximum 320 registers while occupying only one expansion port. / You may consider me a nostalgic person, but I have very fond memories from the times when individual bytes mattered; instead of being counted "by the giga" as in the current years!

Re: Prog calcs - loss of data
Message #5 Posted by Les Bell on 27 Oct 1999, 6:17 p.m.,
in response to message #1 by Tom Peddle

If you go back and read some of the early HP Journal articles describing the HP-35, 45, 65, etc. (online here at the museum) I think you'll find they were built using NMOS (or possibly even PMOS) circuitry. That's all that was available with reasonable performance for this application back in the early- to mid-seventies; CMOS was very much the new kid on the block back then.


--- Les []

Re: Prog calcs - loss of data
Message #6 Posted by DaveC on 28 Oct 1999, 4:29 a.m.,
in response to message #1 by Tom Peddle

Even if the RAM could be separately powered you would have problems: The machine initialises RAM with small programs for labels A-E. One of the early TI's (58 maybe) had a feature where it could be fooled into being a -C but I suspect this was CMOS anyway and the hack disabled memory initialisation. The conclusion of the above is that you'd have to keep the processor live (though maybe stopped) to retain the program counter. You might as well just put '.' on the display and have done with it!

[ Return to Index | Top of Index ]

Go back to the main exhibit hall