Post Reply 
The HP-12c and platinum Kinpo story
12-01-2024, 08:57 PM
Post: #1
The HP-12c and platinum Kinpo story
I started writing out a longish reply to this thread and realised it was best put into another post. I know we've heard the story many times that the 12c platinum is a rewrite-from-scratch, and I've seem people advise caution about buying the 12c platinum for exams where the exact answer is important. However, my TVM testing found something different. This was original reply:

(12-01-2024 01:50 PM)Steve Simpkin Wrote:  Perhaps. According to Wikipedia, the HP-12C Platinum is a complete reimagination of the HP-12C that was manufactured by Kinpo Electronics for HP. Unlike the HP-12C which, (more or less) run the same 1981 firmware on a real or emulated HP "NUT" processor, the HP-12C Platinum has completely rewritten software running on a 6502 processor core.,
https://en.wikipedia.org/wiki/HP-12C#HP_.../_Prestige
...
Additional information:
...
https://www.hpcc.org/datafile/V22N3/platinum.pdf

(Apologies to those who've heard me say this already)

The forensic testing I did on TVM suggested to me that the software running on my 12c platinum did not come from a clean slate. Most of it is identical to Saturn-and-beyond era HP financial calculators, returning 12 digits, with presumably a 15 digit internal precision. I suspect it is running some of the same C code as those devices. However, there are two slight differences - one is that, unlike the Saturn TVM solvers, but like the 12c, it takes the ceiling of solve-for-N. Another difference is the solve-for-i behaves more like the regular 12c.

The article above is interesting, and I wonder whether the first device had these bugs, but they got fixed maybe? My device doesn't behave like described.

from the article Wrote:. For example, f CLEAR-FIN n=10 PV=100 PMT=-20, and
solve for i: it takes 15 seconds on the 12C and 40 seconds on the 12CP, but re-
solving for i only takes 4 seconds on the 12C since the existing i is used as an
initial guess; on the 12CP, it still takes 40 seconds, which implies that the solver
cannot take user-supplied initial guesses any more. This example is also useful to
show the occasional discrepancies in the results: solving for FV and setting the
display format to scientific notation (f ยท) reveals a difference of 0.44%.

This takes 2 seconds on my 12c platinum and returns 15.09841448 compared to 15.09841448 on my 12c emulator.

While the platinum shows 10 digits, you can expose the 12 digit precision by subtracting what is visible, which shows that the actual result is 15.0984144771.

Just for fun I tried this on the rogue 12c. It returned 15.09841448 also. Using subtraction we can find the full result which is 15.09841447711221.

This isn't really a forensic test, because it should be a fairly easy solve-for-i, but none the less, the 12c platinum returns the same result to 10 digits as the 12c, but also returns another two digits. The rogue 12c returns an extra 6 digits over the 12c.

More digits can be nice, but only if they are good quality ones. Which one is the most accurate? Calculating a reference value in R, I could generate these accuracy measurements:

Code:
|calculator             | 1046_12cp|
|:----------------------|---------:|
|HP-12c                 |      8.54|
|HP-12c Platinum        |     10.90|
|HP-12c Rogue One       |     12.45|

The 12c platinum scores nearly 2 points more than the 12c, which means it does make good use of those two extra digits, in fact those 2 extra digits are correct. The Rogue 12c is more accurate, though not 6 digits more accurate.

And so the conclusion to this exercise is that the most accurate HP TVM solver for this question is, bizarrely, a device currently being pulled from the shelves, and the next most accurate is the 12c platinum, which is often derided for 'having different algorithms' to the regular 12c.

This solve-for-i isn't really a forensic test, but those tests do place the 12c platinum as some kind of meld of saturn financials and the old 12c.

The story of Kinpo completely reimplementing the 12c from scratch using a scanned user manual would fit more with the Rogue 12c IMO.

If anyone would like more information on why I think the 12c platinum is mostly a Saturn-era financial calculator, I can try to demonstrate why I think that (I hearing screaming into the distance of 'no please, not that again!').
Find all posts by this user
Quote this message in a reply
Yesterday, 12:58 PM (This post was last modified: Yesterday 02:37 PM by AnnoyedOne.)
Post: #2
RE: The HP-12c and platinum Kinpo story
There are at least two versions of firmware for the 12CP, v1 and v2. The initial (silver) ones had v1 in them. I don't know if v2 fixed any bugs.

Both use the Generalplus (was Sunplus?) GPL31A SoC which is a masked-ROM part. The firmware is therefore not updateble.

The rogue HP-12C likely uses the newer Generalplus GPL833F which is flashable but has no USB controller so it looks like it requires a custom programmer for firmware updates.

https://www.hpmuseum.org/forum/thread-22...#pid192959

Whether Kinpo designed the 12CP hardware and firmware I'm not sure. I've seen statements claiming that they did and others saying that it was HP. As for the "rogue" that is also unknown. We may never know for sure.

Interestingly the GPL31A went end-of-life over a year ago so it is quite possible that the GPL833F is being used as a replacement. Both use a 6502 CPU core. The latter is 2x as fast though (if so programmed).

All of this is in contrast to the current HP-12C. That uses a Atmel (now Microchip?) ATSAM4LC2CA SoC. It emulates the original (1981) HP-12C firmware and thus acts the same. The firmware is end-user updateble (via USB) just like the HP-15C CE (which uses the same hardware).

None of this likely matters to most end-users (financial professionals mostly I'd guess) and both the 12C and 12CP have changed hardware and/or firmware over the years. It remains to be seen what the future is for both.

A1

PS Will the current 12C+, "Gold", or whatever you want to call it ever get VoyagerSave functionality like the HP-15C CE? Maybe. Maybe not. HP-15C LE owners never got a final bug fix firmware release so the history isn't promising.

HP-15C (2234A02xxx), HP-16C (2403A02xxx), HP-15C CE (9CJ323-03xxx), HP-20S (2844A16xxx), HP-12C+ (9CJ251)

Find all posts by this user
Quote this message in a reply
Yesterday, 07:16 PM
Post: #3
RE: The HP-12c and platinum Kinpo story
Thanks A1, great summary of the hardware!

That ARM processor seems remarkably powerful. I wonder how much more powerful it is compared to by first desktop computer. 48Mhz vs 14Mhz for starters!
Find all posts by this user
Quote this message in a reply
Yesterday, 07:21 PM (This post was last modified: Yesterday 07:34 PM by AnnoyedOne.)
Post: #4
RE: The HP-12c and platinum Kinpo story
(Yesterday 07:16 PM)dm319 Wrote:  I wonder how much more powerful it is compared to by first desktop computer...

I think that the first IBM PC used a ("16-bit") Intel 8088 clocked at 4.77MHz. As slow as a wet week. Smile

https://en.wikipedia.org/wiki/History_of...The_IBM_PC

FYI the 6502 is 8-bit and ARM's 32-bit.

A1

HP-15C (2234A02xxx), HP-16C (2403A02xxx), HP-15C CE (9CJ323-03xxx), HP-20S (2844A16xxx), HP-12C+ (9CJ251)

Find all posts by this user
Quote this message in a reply
Yesterday, 08:15 PM
Post: #5
RE: The HP-12c and platinum Kinpo story
It seems strange to me that we're still making modern equipment that runs on such an old 8 bit design. My first desktop ran a 68020, which I think must be somewhere closer to the 6502 than the ARM. A lot of the TIs seemed to run on Z80, and their CAS ones ran on 68000. I like that they are still in use.
Find all posts by this user
Quote this message in a reply
Yesterday, 09:10 PM
Post: #6
RE: The HP-12c and platinum Kinpo story
(12-01-2024 08:57 PM)dm319 Wrote:  The forensic testing I did on TVM suggested to me that the software running on my 12c platinum did not come from a clean slate. Most of it is identical to Saturn-and-beyond era HP financial calculators, returning 12 digits, with presumably a 15 digit internal precision. I suspect it is running some of the same C code as those devices.

The Saturn-based financial calculators (10B, 14B, 17B/17BII, 18C/19B/19BII) were not coded in C. They were written in a mix of Saturn assembly and RPL.

I believe the post-Saturn HP ones (20b/30b and 10bII+) were indeed written in C (or C++, I'm not sure), however. For the non-HP ones (10BII/10bII, 12c Platinum/Prestige, 17bII+) the code was written outside HP so implementation details are anybody's guess. Yes, the 10BII and 10bII were different (but similar) calculators -- and totally different from the 10bII+.

Perhaps some similarities between the 12c Platinum and the Saturn machines were more due to the greater number of internal digits compared to the 12C rather than shared code.
Visit this user's website Find all posts by this user
Quote this message in a reply
Yesterday, 10:33 PM
Post: #7
RE: The HP-12c and platinum Kinpo story
(Yesterday 09:10 PM)Eric Rechlin Wrote:  The Saturn-based financial calculators (10B, 14B, 17B/17BII, 18C/19B/19BII) were not coded in C. They were written in a mix of Saturn assembly and RPL.

Ah yes, good point, was thinking of a post which I probably can't lay my hand on now that the Saturn code was written in C for the later calculators, probably up to the Prime (for TVM at least).

(Yesterday 09:10 PM)Eric Rechlin Wrote:  Perhaps some similarities between the 12c Platinum and the Saturn machines were more due to the greater number of internal digits compared to the 12C rather than shared code.

Maybe.. The HP-12c platinum is reported to have 15 digit internal precision and displays up to 12, which is quite a specific set up and suggests it uses the same underlying calculator platform as the Saturns. Could it use different algorithms? Maybe, but arguably odd to use the same code for the calculator platform but not use the TVM code.

I'll have a dig around in my results and come back with my most convincing argument. Maybe after I've done that exercise I might have changed my mind...!
Find all posts by this user
Quote this message in a reply
Yesterday, 11:02 PM (This post was last modified: Yesterday 11:09 PM by Steve Simpkin.)
Post: #8
RE: The HP-12c and platinum Kinpo story
(Yesterday 10:33 PM)dm319 Wrote:  
(Yesterday 09:10 PM)Eric Rechlin Wrote:  The Saturn-based financial calculators (10B, 14B, 17B/17BII, 18C/19B/19BII) were not coded in C. They were written in a mix of Saturn assembly and RPL.

Ah yes, good point, was thinking of a post which I probably can't lay my hand on now that the Saturn code was written in C for the later calculators, probably up to the Prime (for TVM at least).

(Yesterday 09:10 PM)Eric Rechlin Wrote:  Perhaps some similarities between the 12c Platinum and the Saturn machines were more due to the greater number of internal digits compared to the 12C rather than shared code.

Maybe.. The HP-12c platinum is reported to have 15 digit internal precision and displays up to 12, which is quite a specific set up and suggests it uses the same underlying calculator platform as the Saturns. Could it use different algorithms? Maybe, but arguably odd to use the same code for the calculator platform but not use the TVM code.

I'll have a dig around in my results and come back with my most convincing argument. Maybe after I've done that exercise I might have changed my mind...!

Yes, I recall Cyrille mentioning that they had re-implemented the Saturn math routines into a C library for the later calculators. Here are a couple of posts that mentions that in passing.
https://www.hpmuseum.org/forum/thread-25...l#pid22843

https://www.hpmuseum.org/forum/thread-14...#pid124770

Edit: Link to additional post added.
Visit this user's website Find all posts by this user
Quote this message in a reply
Post Reply 




User(s) browsing this thread: 1 Guest(s)