Post Reply 
The Rogue HP-12c
10-06-2024, 07:30 PM
Post: #41
RE: The Rogue HP-12c
(10-06-2024 07:07 PM)dm319 Wrote:  Ok summary of attempts to discriminate BCD versus binary.

I'll stay out of this line of inquiry. Not something I know much about. I'm aware of IEEE floating point math but not BCD.

Electronics I know about. Firmware too. Some other stuff as well.

Like you said "more brains needed".

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
10-06-2024, 08:54 PM (This post was last modified: 10-06-2024 09:14 PM by dm319.)
Post: #42
RE: The Rogue HP-12c
Ok Albert has solved it. We think it is likely BCD.

I had been working on the principal that some 16 digit decimals are not representable by 64 bit binary, but I was struggling to find them. Albert pointed out to me that numbers just under 1e16 often shared binary representations. Here are representations from 1e16 down to 9999999999999990:

Code:
[1] 00 80 e0 37 79 c3 41 43
[1] 00 80 e0 37 79 c3 41 43
[1] ff 7f e0 37 79 c3 41 43
[1] fe 7f e0 37 79 c3 41 43
[1] fe 7f e0 37 79 c3 41 43
[1] fe 7f e0 37 79 c3 41 43
[1] fd 7f e0 37 79 c3 41 43
[1] fc 7f e0 37 79 c3 41 43
[1] fc 7f e0 37 79 c3 41 43
[1] fc 7f e0 37 79 c3 41 43
[1] fb 7f e0 37 79 c3 41 43

I think the representation is big-endian in this case, but you can see several values have the same encoding. Albert tells me that numbers between 2^53 and 1e16 must be an even integer! So:

1e16
3
-

should yield an odd number if BCD and even if binary. I was subtracting 1e16 afterwards to look at what number had been calculated, but sadly the 12c was returning 0. In fact it did it for 1e15 and 1e14 also, which suggests it has some funny rounding algorithm.

To prevent the 'flush-to-zero', Albert suggested:

1e16
999999
-
999999e10
-

which should have yielded:
9'999'000'001

but instead we got:
9'999'000'010

This is likely because

Code:
10'000'000'000'000'000
               999'999 -

is truncated to 16 digits:

Code:
10'000'000'000'000'00_
               999'99_ -

Using an example where we weren't pushing into 17 digits:

999999e10
999999
-
999998e10
-

Then we get:
9'999'000'001 rather than 9'999'000'000 as expected with binary.

Very much channelling Albert here - but it doesn't look like binary due to the above solution, and it looks like BCD as the truncation happened when aligning decimal digits - yielding the unexpected 10.

So there we have it. Looks like BCD, but doing some weird rounding stuff also.

EDIT: Type 2^52 -> 2^53. And clarification of why it is BCD.
Find all posts by this user
Quote this message in a reply
10-06-2024, 09:02 PM
Post: #43
RE: The Rogue HP-12c
Another one:

you can 'build' the number 9'999'999'999'999'997 (1e16-3)

by doing:

999'999'997
999'999e9
+

the number shouldn't be representable in binary, so then:

999'999e9
-

gives me:

999'999'997

which suggests it is representable and therefore not a 64bit binary float.

And you can do this from 7 down to 5 retaining this information.
Find all posts by this user
Quote this message in a reply
10-06-2024, 09:10 PM
Post: #44
RE: The Rogue HP-12c
(10-06-2024 08:54 PM)dm319 Wrote:  ...doing some weird rounding stuff also.

This "rogue" HP-12C is "weird" all round.

Chip on PCB lowers production cost. Ok. The 32kHz crystal adds cost. Wired (vs SMD) so even more. And for what? If one wants accurate time (per a watch) ok. Has anyone found a clock function?

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
10-06-2024, 09:24 PM
Post: #45
RE: The Rogue HP-12c
(10-06-2024 09:10 PM)AnnoyedOne Wrote:  Chip on PCB lowers production cost. Ok. The 32kHz crystal adds cost. Wired (vs SMD) so even more. And for what? If one wants accurate time (per a watch) ok. Has anyone found a clock function?

Yes, was going to ask you about that. Presumably you would use a 32khz crystal for time functions? There isn't any space left on the keyboard for hidden functions that I can see. and orange/blue - +/-/x/divide don't do anything other than the top label of that key, which doesn't leave any hidden spaces left other than the sto/rcl and f-sigma+, f-CHS, f-EEX.
Find all posts by this user
Quote this message in a reply
10-06-2024, 09:36 PM
Post: #46
RE: The Rogue HP-12c
Ok, I was reading again the cable instructions pointed out by Divasson:
Moravia's instructions of cable use



And then:
[Image: zGf0QrO.png]


So... C1GP000 Serial??
[Image: SMLJFQr.jpg]
Find all posts by this user
Quote this message in a reply
10-06-2024, 09:47 PM
Post: #47
RE: The Rogue HP-12c
(10-06-2024 09:36 PM)Surfin Wrote:  So... C1GP000 Serial??

Yes, I think we need the older POGO RS-232 cable. What's interesting is that Moravia seem to be confidently saying it will work with the older cable. If they are confident of this, that is interesting because it isn't Moravia who are responsible for the Brazil distribution, which is handled by Royal.

Does anyone know if using an old cable on a newer USB device will damage the machine? Because of not I feel that trying with the old cable is our best bet.
Find all posts by this user
Quote this message in a reply
10-07-2024, 07:35 AM (This post was last modified: 10-07-2024 07:36 AM by JanS.)
Post: #48
RE: The Rogue HP-12c
It might be interesting so see if the COM 22 / COM 23 Pads are connected to some of the Contact Pads on the POGO connector. If not, sniffing COM 22 / COM 23 with something like a buspirate might glean more Information with regard to CPU used etc.

Just my 0.02$


Attached File(s) Thumbnail(s)
   

Stay healthy and keep calculating,
Jan
Find all posts by this user
Quote this message in a reply
10-07-2024, 07:58 AM
Post: #49
RE: The Rogue HP-12c
Isn't there a description of the ports according to your picture?
COM22 connected to the upmost right POGO-Pad?

15CE,41CV,48GX,71B,DM41X
Find all posts by this user
Quote this message in a reply
10-07-2024, 12:38 PM
Post: #50
RE: The Rogue HP-12c
The HP-12C has some date related functions. Perhaps the crystal is for some "today" function. Then you'd need some way to set the clock.

Maybe a planned future function. Or well hidden. Who knows?

I once put a 32kHz crystal in an ARM based product I designed. The product itself didn't need any date/time functionality (just like the HP-12C) but I used it internally. Also in case any date/time functionality was required in the future (a possibility). The clock was "set" at the factory but a end-user could also change it.

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
10-07-2024, 12:40 PM (This post was last modified: 10-07-2024 01:37 PM by AnnoyedOne.)
Post: #51
RE: The Rogue HP-12c
(10-06-2024 09:36 PM)Surfin Wrote:  So... C1GP000 Serial??

Perhaps. The AT91SAML128 chip (serial bootloader) used in earlier HP-12C's is no longer available. Unless someone had old stock of them (and keys etc).

BTW I don't recall the "...and a new version with batch code "C1GP000",..." in my copy of that PDF. So I checked mine (dated 24th July 2024) and it says

Quote: The cable does NOT work on previous HP calculators (HP15c LE, HP12c prior to 2015, HP20b, HP30b), even if they have the same POGO connector. These other models follow a serial RS232 protocol, have different functions assigned to each pin and different voltage levels. It also cannot be converted to be used with these calculators because it is missing the IC that handles the voltage levels and the protocol. Operating this cable with HP15c LE, HP12c prior to 2015, HP20b or HP30b may destroy the calculator!

So the "C1GP000" statement was added later. Saving stuff for future reference can sometimes be useful Smile The "new" PDF is dated 30th July 2024.

(10-06-2024 09:47 PM)dm319 Wrote:  ...trying with the old cable is our best bet.
  • FYI the old cable was never for sale. HP made some for internal use and a few here have one. Others made DIY ones. Good luck having them part with it. Or one can be made from a HP-15C CE cable. At least one person here has done so to convert a HP-20b to a WP34s. I was involved.

    https://www.hpmuseum.org/forum/thread-22...#pid192366
  • The pinout of the POGO connector in this "Rogue" HP-12C is different. Roll your own cable and no problem.

There's a RS-232 to TTL level-shifting chip inside (TTL levels at the POGO pins) the old HP cable so the above warning is inaccurate. That said I'd check with a multimeter first. BTW that chip has zero "protocol" functionality. However the AT91SAML128 and ATSAM4LC2CA bootloader protocols are different.

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
10-07-2024, 12:57 PM (This post was last modified: 10-07-2024 12:57 PM by AnnoyedOne.)
Post: #52
RE: The Rogue HP-12c
(10-07-2024 07:35 AM)JanS Wrote:  It might be interesting so see if the COM 22 / COM 23 Pads are connected to some of the Contact Pads on the POGO connector.

Agreed. I could do that but don't have the units. Maybe the owners can. Or perhaps not.

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
10-07-2024, 02:30 PM
Post: #53
RE: The Rogue HP-12c
(10-07-2024 07:35 AM)JanS Wrote:  ...sniffing COM 22 / COM 23 with something like a buspirate might glean more Information with regard to CPU used etc.

I think you mean a "Bus Pirate" used to sniff USB.

Sniffing is only useful if communications are in progress. In an idle state that'd be useless. I've done it--many times.

With serial the TXD/RXD signals should idle at '1' (3.3V/5V). USB D+/D- signals idle at about 2.5V. In theory you could tell them apart.

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
10-07-2024, 05:14 PM
Post: #54
RE: The Rogue HP-12c
(10-07-2024 12:57 PM)AnnoyedOne Wrote:  
(10-07-2024 07:35 AM)JanS Wrote:  It might be interesting so see if the COM 22 / COM 23 Pads are connected to some of the Contact Pads on the POGO connector.

Agreed. I could do that but don't have the units. Maybe the owners can. Or perhaps not.

A1

I will try to check on that later this week!



Also, on another test made, the performance seems to be on par with the Platinum:
Using the same input as stated on This Video, it took around 9 seconds do give the answer (that´s including a '~1sec delay' between pressing the IRR button and the screen switch to 'Running').
That´s between a 25th anniversary (~10 sec) and the Prestige (~8 sec) editions.

Other 'modern' Gold units have given the same answer in around 1.5 seconds (2008 firmware) and less then a second ('Rev 2', 2015 firmware).

I was expecting something under the 2 second mark.


That takes us back to what AnnoyedOne said about using Platinum code, not only the 16-bit checksum but also the performance matches the Platinum (at least the 'old' ones).

We know for sure it´s ATSAM based, since we have the data/flashing port, right?
Find all posts by this user
Quote this message in a reply
10-07-2024, 05:18 PM (This post was last modified: 10-07-2024 06:04 PM by AnnoyedOne.)
Post: #55
RE: The Rogue HP-12c
(10-07-2024 05:14 PM)Surfin Wrote:  We know for sure it´s ATSAM based, since we have the data/flashing port, right?

No. But not the same chip as in the HP-12C Platinum/Prestige. Perhaps something else. Your timing tests also indicate something slower than an ARM.

More evidence.

A1

PS: My 2022 HP-12C+ and HP-15C CE performance is probably the same as your "Rev 2" HP-12C.

https://www.hpmuseum.org/forum/thread-22157.html

PPS: Could there be a Sunplus SoC, with flash, that is the equivalent of the one used in the HP-12C Platinum/Prestige? Sure!

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
10-07-2024, 09:23 PM
Post: #56
RE: The Rogue HP-12c
(10-07-2024 05:14 PM)Surfin Wrote:  Also, on another test made, the performance seems to be on par with the Platinum:
Using the same input as stated on This Video, it took around 9 seconds do give the answer (that´s including a '~1sec delay' between pressing the IRR button and the screen switch to 'Running').
That´s between a 25th anniversary (~10 sec) and the Prestige (~8 sec) editions.

At work I had been thinking about doing a speed test - good job!

My only worry about calculating the IRR is that it could be at least partly firmware-dependent.

So calling on a 2017 thread:

(08-22-2017 01:19 PM)Gamo Wrote:  One more test comparison this time using shorter loop program.

01 +
02 GTO 01

Test: 1 ENTER ENTER ENTER R/S run for 1 minute R/S

1+1+1+ .. .......... +1 for 1 minute

Approximate Result

12C+ 79029 -------> 1317 per second
12C App 12491137 ---> 208186 per second

Gamo

And comparing Bob's measurements:

(08-23-2017 08:18 PM)rprosperi Wrote:  Here are some results, using the same 2-liner, from past testing:

1985 12C: 499
1992 12C: 518
2003 12C (1x2032): 511
Early (silver, no undo) 12CP: 3150
Later (silver, w/ undo) 12CP: 1424
25th Ann 12CP: 1446
30th Ann 12C: 72,684
HP-25C: 535

Nothing surprising, though the slowdown in the 2nd-gen 12CP is interesting.

And my results:

HP-12c Platinum with undo: 1432
HP-12c Rogue: 44'786.

This is interesting - the 12c+ and more recent 12c using the two ARM processors seem to be doing at least 60% faster than the Rogue 12c. And those are running a NUT emulator, which makes me think the rogue 12c isn't running either of those ARM processors.

D
Find all posts by this user
Quote this message in a reply
10-07-2024, 09:54 PM
Post: #57
RE: The Rogue HP-12c
(10-07-2024 12:40 PM)AnnoyedOne Wrote:  BTW I don't recall the "...and a new version with batch code "C1GP000",..." in my copy of that PDF. So I checked mine (dated 24th July 2024) and it says

...

So the "C1GP000" statement was added later. Saving stuff for future reference can sometimes be useful Smile The "new" PDF is dated 30th July 2024.

That's very interesting! Just to put it into context, the first wind we got of the rogue HP-12c on this forum was the 2nd June 2024. It was September when I checked that PDF.
Find all posts by this user
Quote this message in a reply
10-08-2024, 08:08 AM
Post: #58
RE: The Rogue HP-12c
(10-07-2024 09:23 PM)dm319 Wrote:  And those are running a NUT emulator, which makes me think the rogue 12c isn't running either of those ARM processors.

Agreed. Something else.

I've done some research based on the label names on the "Rogue" unit PCB that Surfin posted a photo of along with other clues.

What I found was the GeneralPlus GPL833FXXA (the HP-12C Platinum/Prestige use an older GeneralPlus SoC with "masked" ROM). I downloaded the datesheet for that and it is dated 29th April 2015 (Version 1.1).

https://www.generalplus.com/1LVlangLNxx5...ore_gpl833

The part comes in "chip" form (a match for the "Rogue"), uses a 32kHz crystal (also a match), has a built-in in ICE (In-Circuit Emulator) that has the pins "COM22" & "COM23" (matches), 96KB of flash, 3072 bytes of RAM, and a LCD controller. 8-bit CPU (6502?) just like the HP-12C Platinum/Prestige. No USB though. The "Rogue" POGO connector has "RSTB" and "ICCEN" labels. The device has "RESETB" and "ICE_EN" (close) pins.

We may have a "winner" Smile Of course I'm not 100% certain.

The "ICE" looks like it uses I2C based on the signal names. So not serial or USB. Like Atmel, GeneralPlus may have programming/debugging software available. And a programmer.

I also found this in the datasheet (dm319 take note)

Quote:6.14. Auxiliary Calculation Hardware

GPL833FXXA contains auxiliary calculation hardware. This
hardware allows some nibble operation to accomplish only at one
store and load instruction. The original data content should be
stored at the register and many decimal operations, ex: x10,/10 or
nibble swap, can be acquired just by executing reading instruction
at the relevant register. It speeds up many decimal operations
that originally need many instructions for one operation.

Can you say "BCD math"?

Also this

Quote:6.2.1.2. 32768Hz Xtal

The Real Time Clock (RTC) is normally used in watch, clock or
other time related products. A 2Hz-RTC (0.5 seconds) function
is loaded in GPL833FXXA. The XTAL32 is to control LCD frame
rate and time base timer.

All this tends to lean in the direction of revised HP-12C Platinum/Prestige firmware being in these "rogue" HP-12C's.

BTW the "Rogue" PCB has a "230508LLB8291" label. The 230508 could be 2023-05-08 (8th May 2023).

A1


Attached File(s) Thumbnail(s)
   

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
10-08-2024, 08:53 AM
Post: #59
RE: The Rogue HP-12c
Hmm interesting looks like a cost-reduced version if it's a GeneralPlus microcontroller like the HP 12C platinum/prestige. Your guess on the microcontroller is likely correct since it matches the pinout and also requires an external crystal (most microcontrollers, even low-cost ones, usually have a built-in oscillator now to reduce the total system cost).

It's nice that it's a flash microcontroller this time, so that Moravia/Royal/Kinpo/whoever is actually making this could theoretically update the firmware more easily if they wanted to.

The ARM version of the 12C+ is nicer from a "hacking" point of view, since there's very little information on the the GeneralPlus ICE/programming protocol and it probably uses some custom dongle, but the ARM microcontroller is probably also at least double the cost (still a very small portion of the final purchase price though). I'm wondering how many of the new GeneralPlus version they were hoping to sell to make the development cost worth it? Hopefully they do keep the ARM 12C+ version around even though it's more expensive, since it has less known bugs (although not necessarily bug free either) since it's using the emulated NUT code.
Find all posts by this user
Quote this message in a reply
10-08-2024, 12:30 PM
Post: #60
RE: The Rogue HP-12c
(10-08-2024 08:53 AM)jklsadf Wrote:  ...also requires an external crystal (most microcontrollers, even low-cost ones, usually have a built-in oscillator now to reduce the total system cost).

Agreed. I've never seen this either.

(10-08-2024 08:53 AM)jklsadf Wrote:  I'm wondering how many of the new GeneralPlus version they were hoping to sell...

To my knowledge they were only sold in Brazil. What the future of this version is I have no idea. I don't work for HP. I have never worked at HP. I have no contacts at HP or their distributors. You know as much as I do about this.

I can only guess at who designed this thing. So far I see nothing except the "Made in China" label on the back and the "odd" serial number.

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
Post Reply 




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