Financial Calculators · Volume 4
Inside the 12C
The 12C’s program has outlived the processor it was written for. For its first twenty-seven years it ran on HP’s own Nut processor, a slow, frugal, decimal machine. Since 2008 it has run on ARM microcontrollers from Atmel, which do not run the 12C’s program directly but run a program that behaves exactly like a Nut, which in turn runs the 1981 code. HP publishes nothing about the 12C’s insides; this volume draws on Wikipedia, Finseth’s database of HP calculators, Atmel’s datasheets and the Museum of HP Calculators, and says where they disagree.
4.1 The Voyager hardware, 1981
The Voyagers were built round the Nut, the processor of HP’s HP-41C programmable calculator of 1979. It was designed for decimal arithmetic. Its working registers, A, B, C, M and N, each hold 56 bits: fourteen 4-bit decimal digits, enough for a sign, a ten-digit mantissa, the sign of the exponent and a two-digit exponent. Its instructions are 10 bits long, and it worked on its registers serially, a bit at a time, like the HP-35 before it. Beside it sat a second chip, known to collectors as the R2D2, combining the program ROM, the user’s RAM and the driver for the liquid-crystal display; the 12C’s was part number 1LE2-0308, according to collectors. Later 12Cs combined the two into one chip.
Finseth gives the 12C 7,808 bytes of ROM and 281 bytes of RAM, of which 203 belong to the user. That RAM is shared between program lines and storage registers. A register holds seven bytes, and a program line takes one byte, so seven program lines use the space of one register: at a reset the 12C has 8 lines and 20 registers, and each further seven lines takes a register, up to 99 lines with seven registers, R0 to R6, left (volume 7).
How fast the Nut ran is a small mystery. Wikipedia says “the original CPU ran at 884 kHz, and HP never raised the speed”. HP’s specification for the Voyager chips, according to forum members who have read it, gives a clock range of 200 to 230 kHz. The two may be the same oscillator counted differently, 884 kHz being four times 221 kHz, but no primary source settles it. The oscillator itself was a coil and capacitor, and enthusiasts have sped up Voyagers by adding a smaller coil in parallel with the original 180 µH one. Whatever the clock, the original 12C was slow: HP’s own guide still warns that the interest-rate, amortization, IRR and yield functions “could require a half-minute or more”.
Power came from three LR44 button cells behind a small door, and the Voyagers drew about a quarter of a milliwatt. In 2001 HP moved to a 3-volt chip and a single CR2032 lithium cell.

4.2 The keyboard
The Voyager keyboard, in HP’s patent US 4,430,531, “Snap disc keyboard”, filed in March 1982, is a sheet of small dome-shaped metal discs between the keys and the circuit board. Pressing a key collapses its disc with a click and joins two contacts on the board, with a definite click. Thirty-nine keys sit in four rows of ten, the ENTER key taking two rows.

4.3 The ARM 12C, 2008
In 2008 HP replaced the Nut. Instead of rewriting the 12C’s financial code, Cyrille de Brébisson wrote an emulator of the Nut for an Atmel AT91SAM7L128, an ARM7TDMI microcontroller with 128 KB of flash memory, 6 KB of RAM and its own LCD controller, able to run at up to 36 MHz. The emulator runs the original 12C ROM image unchanged, so the new calculator gives exactly the old one’s answers, only faster. HP did not market it as a new model; collectors call it the “12C+”. It took two CR2032 cells in parallel, and its firmware could be updated.
In 2015 the 12C moved again, to the Atmel ATSAM4LC2CA, an ARM Cortex-M4 of up to 48 MHz with 128 KB of flash and 32 KB of RAM, with a USB connection inside for updating the firmware, which these units report as built in 2015. That is the chip in mine, according to forum members who have read the firmware of 12Cs with the 9CJ lot prefix. A retailer says the current firmware runs at 4 MHz when idle, 12 MHz for most keys and 48 MHz for the financial keys.
The emulation has a curious consequence. The 12C’s program has run, unchanged, on three quite different machines, and the same program runs on HP’s phone apps and on SwissMicros’ emulating calculators. When a Brazilian batch of 12Cs was found in 2024 with new, faulty firmware, the giveaway was precisely that its answers were not those of the 1981 program (volume 5).
4.4 The Platinum: a different machine
The 12C Platinum of 2003 shares the 12C’s case and most of its keys but none of its code. It runs on a 6502-family processor, first a Sunplus SPLB20D2 and from 2005 a Generalplus GPLB31A, with firmware written from scratch by its maker, Kinpo, from HP’s manuals. It added an algebraic mode, parentheses in later versions, 400 program lines and room for more cash flows. Its first firmware returned only ten-digit results and was slower than the original; later versions are faster and, by one forum’s tests, more accurate than the gold 12C on hard financial problems.
Sources
- Wikipedia, “HP-12C”, “HP Voyager series” and “HP-41C”; Finseth, HPDATAbase, “HP-12C”.
- HP, HP 12c financial calculator user’s guide, Edition 5 (2008), pp. 9, 94–95, 193.
- Museum of HP Calculators forum: chip part numbers, the R2D2, the Voyager speed-up, the 9CJ units’ processor and firmware; Systemyde, NEWT (Nut-compatible) manual.
- HP, HP-41 IC specifications; Atmel, AT91SAM7L128 datasheet; Microchip/Digi-Key listing for the ATSAM4LC2CA.
- Patent US 4,430,531, “Snap disc keyboard” (filed 15 March 1982).
- The Calculator Store on the 12C’s clock modes; The Register, 21 September 2024; MSNBC, 28 May 2003 (Platinum).
Comments (0)