In 1972, Hewlett-Packard introduced the HP-35, the world's first handheld scientific calculator, designed by the Advanced Products Division in Cupertino, California. Since then, advances in technology have made scientific calculators commonplace. Yet anyone studying the design of the HP-35 will be awed by the extraordinary accomplishment of its creators.
Because of Moore's Law, most of today's engineers do not have to concern themselves over carefully minimizing the number of transistors in a new chip design, or the amount of memory consumed by software. But in 1972, HP engineers knew that the customer was going to have to pay for every transistor and every bit of memory in the product, and did an incredible job of conserving both. By developing a specialized processor architecture designed specifically for calculators, they were able to pack the firmware implementing all of the functions of the HP-35, including logarithmic, exponential, and trigonometric functions, into only 7680 bits of ROM.
Over the following ten years, many more calculators were designed by APD and Corvallis Division based on essentially the same architecture originally embodied in the HP-35. Incremental improvements in the architecture were made to enhance the capabilites they could provide, most notably in the HP-41C family.
This document gives the memory sizes for the first four generations of HP handheld calculators, related desktop calculators, and a watch. Other desktop calculators were designed by Loveland Division, but are not included here as they are based on entirely different processor architectures.
Most memory size information on this page was determined by the author through reverse-engineering. The listed ROM sizes for the HP-01, HP-10, HP-19C, HP-27, HP-80, HP-91, and HP-92 are from the article "Microcode: Electronic Building Blocks For Calculators" from the Hewlett Packard Personal Calculator Digest, Vol. 3, pp. 4-6, 1977. An online copy of that article may be found on Rick Furr's The Calculator Reference web site.
The ROM sizes are counts of Kwords (10-bit ROM words), except for the Saturn-based models, for which it is listed in KBytes.
The RAM sizes are counts of 56-bit RAM registers, except for the Saturn-based models, for which it is listed in Bytes or KBytes. These sizes do not include the registers built into the CPU chip. Note that some of the registers are used for internal operation, so the count does not necessarily exactly match the register count given in user documentation. Some models such as the HP-32E, HP-33C, and HP-37E have hardware with many more registers than are actually used.
For more model-specific information, please refer to the Museum of HP Calculators.
|Generation||Series||Model|| ROM size |
(Kwords, 10 bit words)
| RAM size |
|HP-80||1.75 or 2 ||0|
| Classic |
| Topcat |
|Fourth (Nut)||Coconut||HP-41C||12||80   |
|HP-41CV||12||336  |
|HP-41CX||24 ||463 |
|Fifth (Saturn)||Clamshell I||HP-18C||64KB||2KB|
|Clamshell II (Lewis)||HP-19B||64K||8KB|
|Pioneer seven-segment (Bert)||HP-10B||10KB||256B|
|Pioneer character (Sacajawea)||HP-14B||16KB||512B|
|Pioneer dot matrix (Lewis)||HP-17B English||64KB||8KB|
|graphing (Yorke)||HP 38G||512KB||32KB|
|HP 49G||2MB flash||512KB|
|Sixth (ARM)||Apple||HP 39g+|
|HP 49g+||2MB flash||512KB|
|HP 6S Solar|
|HP 9G||OEM'd Kinpo SG1/Citizen SRP325P, Sunplus SPLB30A microcontroller|
|HP 9S||OEM'd Kinpo SG2/Citizen SRP400G, KI1724A microcontroller, 22KB ROM, 128 bytes RAM|
|HP 10BII||Hitachi H8 microcontroller|
|HP 12C Platinum||Sunplus SPLB20D microcontroller|
|HP 17BII+||Sunplus microcontroller|
|HP 30S||Sunplus microcontroller|
|HP 33S||Sunplus SPLB31A microcontroller|
: The ROM size of the HP-80 was listed as 1.75K in the article "A Pocket-Sized Answer Machine for Business and Finance" in the Hewlett-Packard Journal, May 1973. It was listed as 2K in the article "Microcode: Electronic Building Blocks For Calculators" from Hewlett Packard Personal Calculator Digest, Vol. 3, pp. 4-6, 1977. U.S. Patent 3,863,060 contains a ROM source code listing that is only 1.75K. However, the listing in the patent is probably not the final ROM code.
Mark Sims reports that late production HP-80 units contain two of the quad ROMs (1818-0076, 1818-0077) rather than the seven-chip hybrid (1813-0024). This would be 2K of ROM. He also says that there were bugs fixed in later units, although he does not know whether this was coincident with the switch to quad ROMs. It is possible that bug fixes would have increased the code size to more than 1.75K.
: The expanded statistics option for the HP-9805 adds an additional 30 RAM registers, for a total of 50.
: The HP-34C has two ROM banks in each of the address ranges 1K to 2K, 2K to 3K, and 3K to 4K.
: The HP-38E and HP-38C have two ROM banks in the address range 1K through 2K.
: HP 82106A Memory Modules can be used to add additional RAM registers to the HP-41C. Each HP 82106A provides 64 registers. Alternatively, the HP 82170A Quad Memory Module provides 256 additional registers. Only one Quad Memory module may be used, and it may not be used in combination with the HP 82106A.
: The HP 82180A Extended Function Module adds 127 RAM registers to the HP-41C or HP-41CV. These registers are normally only accessible by the use of the extended functions in the module. The equivalent of the Extended Function Module is built into the HP-41CX.
: One or two HP 82181A Extended Memory Modules may be used on the HP-41C, HP-41CV, or HP-41CX. Each Extended Memory Module adds 239 registers which are accessible using the extended functions.
: The HP-41CX contains 24K of ROM. However, 8K is bankswitched, so only 20K is mapped at any given time. The address ranges are 0K through 12K, 16K through 20K (time module functions), and 20K through 24K (two banks, extended functions and extended time).
: The HP-15C contains two "R2D2" (ROM/RAM/Display Driver) chips each containing 6K*10 of ROM. However, each is addressed as the first 6K words of an 8K region. Thus the address ranges used are 0K through 6K and 8K through 14K.
Last updated October 5, 2007
Copyright 2004, 2005, 2007 Eric Smith