The following warnings occurred:
Warning [2] Undefined array key 137715 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 137742 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 137743 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 137755 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 137756 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 137774 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 137779 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 137782 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 137783 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 137784 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 137788 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 137790 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 137791 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 137813 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 137930 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 138010 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 138029 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 138043 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined variable $thread - Line: 295 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 295 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Trying to access array offset on value of type null - Line: 295 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 295 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined variable $fid - Line: 295 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 295 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 137783 - Line: 331 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 331 errorHandler->error_callback
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 304 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 137791 - Line: 331 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 331 errorHandler->error_callback
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 304 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 138043 - Line: 331 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 331 errorHandler->error_callback
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 304 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 137813 - Line: 331 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 331 errorHandler->error_callback
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 304 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined variable $theme - Line: 3 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 3 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Trying to access array offset on value of type null - Line: 3 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 3 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined variable $theme - Line: 3 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 3 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Trying to access array offset on value of type null - Line: 3 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 3 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined variable $lang - Line: 5 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 5 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Attempt to read property "messages_in_thread" on null - Line: 5 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 5 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks





Shooting the engineers?



#9

Near the end of the recent thread "Some curious numbers from my HP-67" I commented

Quote:
One wonders why the designers did that.

J. F. Garnier responded with
Quote:
... We could call it a bug.

Joe Horn responded
Quote:
Yes, the '67 can work with exponents up to 499 internally. That's what is happening here with the '67 statistics bug.

Joe added a reference which (I think) attributes the curious numbers to non-normalized numbers. That does not explain why the HP-27 provides an overflow indication while the HP-67 does not. I thought about that some more and then I remembered the old business philosophy from the MBA community
Quote:
There comes a point in every program where you have to shoot the engineers and get into production.

which is attributed to General Richard H. Thompson, a former commander of the Army Materiel Command (Aviation Week and Space Technology, August 3, 1987). I thought about that some more and wondered if the application of that philosophy might not have been the basis for the release of the buggy HP-35S.

Palmer .


#10

Quote:
Joe added a reference which (I think) attributes the curious numbers to non-normalized numbers. That does not explain why the HP-27 provides an overflow indication while the HP-67 does not.

Actually, it does. Most HP calculators check for overflow at the end of each function's code. As I mentioned, the HP-67 is unique in that it normalizes numbers in the DISPLAY routine, not beforehand. That's why it catches things like X^2 overflows (because they are displayed) but not overflows that are not displayed. They thought that they could get away with it because running programs cycle the X register through the display routine after every program step (toggling it on and off every other step, but that's another topic). If I remember correctly, "storage arithmetic" can generate overflow errors because they thought of that ahead of time and ran the result through the display code before restoring X.

You are right about the reason that they never debugged the ROM: ROM masks (aka ROM images?) were terribly expensive to design and make back then, and the bug was not deemed serious enough to justify the cost of creating a whole new ROM mask. Better to just take it to market and make a cryptic note in the manual.


#11

Quote:
You are right about the reason that they never debugged the ROM: ROM masks (aka ROM images?) were terribly expensive to design and make back then, and the bug was not deemed serious enough to justify the cost of creating a whole new ROM mask. Better to just take it to market and make a cryptic note in the manual.

That's something I don't understand about the new 35S. From what I understand it uses a mask ROM, and I've wondered why.

I fully understand the price difference between a mask ROM part and a flash part, and it's importance to a cost sensitive consumer market. But this is not a $10 calculator, so it's not *that* much of a price difference in reality, one that could potentially be outweighed by the benefits of having a FLASH ROM.

Perhaps the sole reason is that they were forced to by the exam requirement? which appears to be their main target market.

Anyone know for sure?

Dave.


#12

> But this is not a $10 calculator...

>

I think from the production cost perspective, the 35s _is_ a $10 calculator.

Raymond


#13

Quote:
> But this is not a $10 calculator...

>

I think from the production cost perspective, the 35s _is_ a $10 calculator.

Most likely the manufacturing cost is around the $10 mark. But I suspect the use of a FLASH part with a small increase in the base manufacturing cost would not have adversly affected the sales or marketability . That's why I suspect there are other reasons which are a bigger driver for the use of a masked part.

Perhaps a question for someone to ask HP at the upcoming conference?

Dave.


#14

Quote:
Most likely the manufacturing cost is around the $10 mark. But I suspect the use of a FLASH part with a small increase in the base manufacturing cost would not have adversly affected the sales or marketability . That's why I suspect there are other reasons which are a bigger driver for the use of a masked part.

I agree with Dave in some parts. But IMHO the production costs of a 35S are much below $10.

Let us make another calculation, the FLASH version maybe 40 cent more expensive than the mask version and let us think that programming the FLASH in production costs another 10 cent, this makes totally a difference of 50 cent for one unit. Further let us think that they want to sell 1,000,000 pices. In my calculation 1,000,000 * $0.50 = $500,000! And this is for me a lot of money. Some if you may say, the price difference of 50 cent between the two versions is too much, then let the price difference be 10 cent. But 10 cent price difference still mean $100,000!

Next thinking, who should upgrade the firmware? I think no end user would spend about $50 for programmer and I haven't calculated the necessary connectors for the update in the calculator so far. So a repairman at HP should do the update? Sorry for the price of the working time, unpacking the calculator, opening it, flash it, reassemble it, test it and send it back to the user it's much cheaper sending a replace unit.

Any questions?

Cheers

Christoph


#15

Quote:


I agree with Dave in some parts. But IMHO the production costs of a 35S are much below $10.

Let us make another calculation, the FLASH version maybe 40 cent more expensive than the mask version and let us think that programming the FLASH in production costs another 10 cent, this makes totally a difference of 50 cent for one unit. Further let us think that they want to sell 1,000,000 pices. In my calculation 1,000,000 * $0.50 = $500,000! And this is for me a lot of money. Some if you may say, the price difference of 50 cent between the two versions is too much, then let the price difference be 10 cent. But 10 cent price difference still mean $100,000!

Next thinking, who should upgrade the firmware? I think no end user would spend about $50 for programmer and I haven't calculated the necessary connectors for the update in the calculator so far. So a repairman at HP should do the update? Sorry for the price of the working time, unpacking the calculator, opening it, flash it, reassemble it, test it and send it back to the user it's much cheaper sending a replace unit.


For sure, it's a lot of money.

I've designed lots of high volume electronics where I have to shave off 0.1cents on this component or that component etc, and it really does add up.

But the choice of FLASH or mask ROM is often a strategic decision rather than pure financial. Especially in complex software projects such as a high end programmable calculator, as you gain so much advantage with FLASH. It can be insurance against having to dump a whole bunch of stock of mask ROM chips should you find a problem at the last minute, enabling of warranty firmware fixes etc.

You can safely buy 1,000,000 FLASH parts and get your volume discount at any time, but committing to 1,000,000 mask ROM chips is a big and risky decision. Goof it once and you may have lost all your price difference.

Perhaps the 35S actually uses a factory programmed FLASH die instead of mask ROM, has anyone tried to verify?

Dave.


#16

Using masked ROM parts doesn't require committing to anywhere near a million parts. GeneralPlus will make masked parts for you in quantities under 1000.

Quote:
Goof it once and you may have lost all your price difference.

That's why they put the software through QA.

Any bugs remaining when it ships are likely to be fairly obscure and minor. Even if they have to replace some calculators due to a bug, it will only be a tiny fraction of the sales.

#17

It uses a masked ROM because the dirt-cheap microcontrollers made by GeneralPlus (formerly SunPlus) don't have flash. A comparable microcontroller with flash would cost at least a dollar more. There's no mystery to it.

Quote:
But this is not a $10 calculator, so it's not *that* much of a price difference in reality

Yes, it is. It doesn't sound like you've ever been involved in design of high-volume consumer products. Every dollar more they spend on parts is either three dollars more that the consumer pays, or a dollar less profit for HP.


#18

Quote:
It uses a masked ROM because the dirt-cheap microcontrollers made by GeneralPlus (formerly SunPlus) don't have flash. A comparable microcontroller with flash would cost at least a dollar more. There's no mystery to it.


Yes, it is. It doesn't sound like you've ever been involved in design of high-volume consumer products. Every dollar more they spend on parts is either three dollars more that the consumer pays, or a dollar less profit for HP.


My money is on that they probably had no choice in the matter, to get the calc to meet the exam requirements probably dictated the choice of mask ROM, as it did for no serial connectivity.

Apart from that, I suspect they *could* have used a FLASH ROM if they made the strategic decision to do that. Would have been fun for us anyway. $5 more in the retail would have unlikely killed the product, esp considering that they admittedly went overboard in the assembly costs. Although if you have no easy way for the user to upload a new firmware (i.e. no I/O) then there would be little point catering for just us calc nuts.

BTW, yes I have designed high volume consumer electronics, I know about the margins. I've spent many a long hour trying to shave 0.1cents off this part and that, parts consolidation, DFM etc. Luckily my new job doesn't need that, I can over-indulge to my hearts content. I design Rolls Royces now!

Dave.


Edited: 3 June 2008, 7:09 p.m.


#19

There's no NCEES requirement that the calculator not have flash memory. The requirement is that it not have any communications other than the keyboard and display.

Quote:
Apart from that, I suspect they *could* have used a FLASH ROM if they made the strategic decision to do that.

Of course. And if there was a strategic decision that it had to be able to heat sandwiches, they could have built a microwave oven into it as well.

Fundamentally, the decision to leave out flash is almost certainly based on cost. What is the anticipated profit to HP if the calculator costs $X, with some probability of returns due to bugs factored in, vs. the anticipated profit to HP if the calculator costs $X+1.

And even if it did have flash, a major bug would probably still require them to provide exchanges, so the added cost of the flash might not gain them anything. The cost of dealing with an exchange is likely higher if they have to reflash an existing calculator rather than simply destroying it and sending out a new unit.

Having worked for companies making moderately high-volume consumer products, I have some knowledge of how these decisions get made, though no specific insight into HP's process since I haven't worked there.


#20

Quote:
Having worked for companies making moderately high-volume consumer products, I have some knowledge of how these decisions get made, though no specific insight into HP's process since I haven't worked there.

If I told you about some of the weird decisions that have gone into some of the products I've had to design, you probably wouldn't believe me! - or just maybe you might...

Dave.


#21

The worst knock-down drag-out fights I've seen between engineering and marketing were over the choice of LED indicators on a product, the text for the legends, and how they should be positioned on the front panel.

#22

Well, what a difference a week or so makes.
The new HP 20B may have turned this idea on it's head. It's a $40 calculator, $20 less than the 35S, and it uses an Atmel 32bit ARM7 processor with (presumably) 128KB internal FLASH program memory.

Dave.


#23

The Atmel processor is significantly more expensive than the GeneralPlus masked-ROM part, so this seems to show that HP does find some compelling benefits to using flash memory.


#24

Quote:
The Atmel processor is significantly more expensive than the GeneralPlus masked-ROM part, so this seems to show that HP does find some compelling benefits to using flash memory.

Yes, that does seem to be the case. And to do that and still keep the price down on this unit is quite an achievement. They shaved a few cents off with the die version.

I suspect this new calc was a fair bit less expensive to manufacture than the 35S.

Dave.


#25

Quote:
I suspect this new calc was a fair bit less expensive to manufacture than the 35S.

I think that's hard to say. The 20b doesn't have the 32K*8 SRAM chips of the 35s, but the processor is more expensive. There's probably little other cost difference in the electronics. Until I get my hands on one, I won't have any guess as to whether the rest of the package is likely to be any less costly to manufacture.

I'd think assembly with heat stakes would likely be less expensive than assembly with screws as the 35s has.

#26

Thank you for the help.

Quote:
If I remember correctly, "storage arithmetic" can generate overflow errors because they thought of that ahead of time and ran the result through the display code before restoring X.

You remember correctly. And the nice part about that feature is that (from page 83 of the manual) when the user clears the error
Quote:
The storage registers all contain the values they held before the error-causing operation was attempted.

In the earlier thread I noted that the TI-66 offered the same feature in the statistics routines in response to an overflow input.

Finally, it's a curious coincidence that the statistics routines of the TI-59 (TI's answer to the HP-67) also had a bug.

Palmer


Possibly Related Threads…
Thread Author Replies Views Last Post
  Professional Engineers? jonathan G harris 27 6,371 09-02-2013, 05:40 AM
Last Post: Ivan Nejgebauer
  Why engineers need both scientific and business calculators Martin Pinckney 17 4,413 08-21-2010, 08:45 PM
Last Post: Martin Pinckney
  hp 11c trouble shooting Gerald Klitz 2 962 07-18-2007, 01:04 AM
Last Post: Mike Ingle
  Engineers without calculators form angry mob Norris 1 850 07-12-2006, 02:25 AM
Last Post: Walter B
  How many engineers etc. out there still using hp41? don wallace 48 10,840 09-15-2005, 03:51 PM
Last Post: Ian Phillips
  HP - The calculator of choice of scientists and engineers Gerson W. Barbosa 11 2,774 07-05-2005, 11:41 AM
Last Post: Gerson W. Barbosa
  THE SPEED OF SOUND, THE FORCE OF GRAVITY, AND 2 ENGINEERS Mike H 3 1,244 06-30-2004, 10:50 PM
Last Post: Ren
  HP 33s for non-engineers Dave Olson 10 2,719 05-04-2004, 09:02 AM
Last Post: Fubar Vikinghelmet
  RPN: Just for Engineers? Palmer O. Hanson, Jr. 7 1,821 02-16-2004, 01:58 AM
Last Post: Palmer O.Hanson, Jr.
  HP of old times - recruitment ad for marketing engineers Renato 1 841 07-02-2003, 01:23 AM
Last Post: Raymond Del Tondo

Forum Jump: