More on the new 12C


In playing with the new new ARM-based 12C I found that it has two functions that don't work as the older models do and yet the documentation says that they do. Holding down the SST (single step) key when trying to debug a program doesn't show you the program step that's about to be executed. This makes program debugging much more difficult. Also, when in program mode, holding down SST or BST won't advance through the program lines at the rate of about 1 per second. It just does one step no matter how long the key is held down. I still love the super fast speed, but programming it is not quite as much fun.


Interesting. Maybe the keyboard routines aren't interpreting separate key-down/key-up events for the emulator to handle. What happens if you do Clear Prefix (which also functions as Show)? Does it continue displaying the full precision if you hold down the key, or does it revert quickly back to the standard display?


Clear Prefix works as it does on the old 12C, so the emulator can detect held-down keys properly.


Good catch Katie. They fixed one problem (no RUNNING display if program has CLR SIGMA) but removed the functionality you described.


Sounds like a timing issue. The original code probably did all the delays with a busy loop and these features were probably disabled by patching the original ROM so as to make emulation work.


The original code probably did all the delays with a busy loop and these features were probably disabled by patching the original ROM so as to make emulation work.

That could very well be the case. But they must have patched the "PSE" instruction because that works just fine. I see no obvious reason why SST/BST couldn't have been patched the same way, but I don't have their source nor even the object code. I don't know if this was an oversight or just too hard to implement. In any case, the documentation should be updated to match the functionality -- or vice-versa.


Hmmm, for what it's worth, these two errors that Katie found in the new 12c also exist in the new Windows 12c $19.99 emulator. And the problem I identified a month ago regarding the Windows emulator was also, I think, related to the PSE command. That problem has been fixed in the Windows emulator.


I think the long key press handling had to be individually patched in various locations and it was missed for those. That is why some work and others don't. I really don't know for certain though.




it's always interesting to see you guys speculations on these issues :-)

anyhow, I did not know about this so I did not do any special allowances to patch it...

the 12C emulator, in order to try to preserve power usually tells the calculator that the keys are released instantaneously. this avoid a dead loop waiting for the key to release in the 12C ROM and the power use associated with that...

Of course, the PREFIX and MEM keys are handle slightly differently to deal with the issue... but since I did not know about SST I did not do anything for that :-)

look for a new software release if I manage to fix it...

regards, cyrille


About 20 hours after I posted my finding about this problem I had in my email a modified version of the firmware from Cyrille. The new firmware not only fixes these issues but has the original self-test functionality restored and is another factor of 2.5 times faster due to code optimization.

I now have a 12C+ that's in every way (that I've been able to check) identical to the original 12C but runs about 150 times faster. I have to keep a fire extinguisher handy when it's on :)

As before, it fixes the Clear-Sigma LCD blanking bug in the original 12C and it adds some extended self-tests using ON+g and ON+g+ENTER.

Totally AWESOME!

Cyrille, thank you again.



The new firmware not only fixes these issues but has the original self-test functionality restored

Perhaps this is the most important update. As I said in another occasion I had trouble finding a 12C+ in São Paulo as most vendors did not want to sell it because prospective buyers would not trust the new model - exactly because the self tests did not work like they expected them to.

After more than one hour searching through the stores I eventualy found one (CNA 83816873)




Were you somehow able to update the firmware of a physical hp12c(+)? JTAG?

Or are you talking about the windows simulator/emulator?



The physical 12C+.

There's no JTAG connection but there is a serial port connection in the battery compartment and I have a cable that HP supplied for work on re-purposing. If HP were to make the object code publicly available it would still be a challenge to install it.

The firmware flashing code is free from ATMEL, SAM-BA version 2.6. However, the cable would be difficult to make. The logic-level translation for the serial port is simple enough (and might not even be needed) as are the reset and erase buttons. The real challenge is finding the right 6-pin connector, I've never seen anything like it -- 6 spring-loaded pins in a 2 x 3 configuration with 2mm pitch and a asymmetric tabbed attachment.


It would still be nice if HP were to offer the cable interface as an option for those who wish to do the update themselves.

I have one of these latest arm-based 12c and I know I wouldn't mind giving it a shot. :)

Ah, well!


HI Katie,

Does it mean there is no change in battery life with the increase in speed?



There shouldn't be. The CPU is running at the same speed, but the firmware has been optimized.


Surprisingly current consumption has increased a bit with the latest firmware. I had made earlier measurements and posted to this forum and I've now re-tested using the exact same setup and confirmed on two different 12C+ calculators.

Here's what I found:

Condition                        Old firmware    New firmware
------------------------------ ----------- -------------
power off 4uA 4uA

power on, static display,
no keystrokes 45uA 45uA

continuous keystrokes
(number entry) 1mA 2mA

long amortization function 15mA 20mA

tight program loop 15mA 20mA

continuous self-test ([ON]+[+]): 4mA 12mA

extended test modes
([ON]+[g] and [ON]+[g]+[ENTER])
static display 1.8mA 2.5mA

When running, the average clock speed must be higher, a lot higher when running the continuous self test. I say average clock speed because I believe that the firmware frequently changes the clock speed.

Cyrille and Eric, do these current measurements make sense to you?


Edited: 25 July 2009, 11:52 p.m.



these numbers are strange, the power consumption should be lower on the new Firmware.

For example, your numbers when running the (new) auto test show 1.5 to 2mA consumption increase, but in both cases the CPU runs at it's default speed of 2Mhz...

the 2 mains differences in the SW are:
- code optimization
- the cpu speed is put at only 17Mhz when the key executed is NOT n-FV, RS/SST, DDays or a bond key. Ie, when the key presses is NOT one of the 'long'/'slow' functions, it runs at 1/2 speed to conserve power.

regards, cyrille


I was surprised by this too, so I doubled checked all the measurements and the fact that the off state and idle state currents are the same as before confirms that my measurement setup is correct. Is it possible that some other part of the CPU is switched on by mistake in the new firmware, like the serial interface?


Hi Katie, I don't know if this has been mentioned - debugging on the fast 12c via SST in run mode doesn't recognise that pressing and holding SST is supposed to show the line of code and releasing shows the result. The fast 12c merely shows the result.



We discussed this bug here earlier but I can't find the thread any more. In addition to not showing the step about to execute, SST/BST doens't auto repeat in program mode.

The result was that Cyrille fixed those problems and in the process a new bug cropped up. That's been fixed now too the thread on this is here.


Edited: 13 Aug 2009, 11:18 a.m.


I read the first thread, but I can't find where to buy the new 12C. I do recall that you (Katie) described how to tell the difference but I forgot. Help?



John here is a link to Katie's excellent review. See the picture of the battery cover on the new 12c; it is much bigger than the old battery cover (because it encloses two 2032 cells, not one), and it is visible from the shrinkwrap package, so you can tell in the store whether a unit is the old one or the new one.


Thanks, Don. Now why couldn't I find it before? Doh!!



I think amazon has them according to reviews I've seen, but that could be risky. I'd check local university bookstores.



Thanks, Tim. In fact I have a meeting at a nearby community college on Monday. I'll check there.




I found a critical bug in the latest 12C+ firmware.

In program mode: If you press a number key after hitting SST or BST it will enter a STO instruction not the number! The STO will be either to register 0 - 9 or .0 - .9 depending on the instruction that is being overwritten.

I'm pretty sure that this bug was introduced when you fixed the original SST/BST problem.



I'm pretty sure that this bug was introduced when you fixed the original SST/BST problem.

I verified this. It works correctly on the first ROM release.


Cyrille sent me a quick firmware fix for this problem.

I'm going to keep playing and trying to make sure that the latest 12C+ is now really 100% functionality identical to the original 12C.


Possibly Related Threads...
Thread Author Replies Views Last Post
  HP 12C, 12C Platinum & 15C iOS App Walter Lam 2 546 06-02-2011, 01:25 PM
Last Post: Andrés C. Rodríguez (Argentina)
  12C vs 12C Platinum Cash Flows Katie Wasserman 10 1,188 12-28-2005, 10:12 PM
Last Post: tony(nz)
  12c/12c Platinum programming differences Don Shepherd 6 870 08-11-2003, 10:11 AM
Last Post: Gene
  12C or 12C Platinum...that is the question Joe 3 564 06-21-2003, 11:39 PM
Last Post: Don Nguyen
  Hi !! Gene, HP 12C vs 12C Platinum Luc Chanh Truong 0 363 06-09-2003, 10:28 PM
Last Post: Luc Chanh Truong
  Re: Inconsistent results #1: 12c vs. 12c Platinum hugh 1 389 05-14-2003, 03:22 PM
Last Post: Gene
  Inconsistent Results #2 and #3: 12c vs. 12c Platinum Gene 3 543 05-13-2003, 06:58 PM
Last Post: Patrick
  Inconsistent results #1: 12c vs. 12c Platinum Gene 3 549 05-13-2003, 11:58 AM
Last Post: Vieira, Luiz C. (Brazil)

Forum Jump: