WP 34S and 31S bugs and fixes
|
12-16-2014, 02:57 AM
(This post was last modified: 12-17-2014 04:35 AM by Bit.)
Post: #50
|
|||
|
|||
RE: WP 34S and 31S bugs and fixes
While the best way to handle exponent entry is being elaborated, I've reworked the infrastructure that deals with it and introduced fine-grained compile time options to control what happens when exponents are entered.
Options available for negative exponents:
A zero mantissa can be handled in these ways:
I've added the following optional new features:
I've attached a 34S flash image and a Windows binary to showcase the new functionality: - With flag D cleared, denormal numbers and overflowing into infinity are not allowed, and additionally exponents are limited to the -383..384 range. E.g. 1e384 is OK, 10e384 isn't, 1e-383 is OK, 0.1-383 isn't. - With flag D set, denormal numbers are allowed as long as all entered digits can be stored, overflowing into infinity still isn't allowed, but exponents aren't capped. All of these are OK: 0.01e386, 1000e-401, 0.12e-396, 0.1e-397. - In both cases, changing the sign is only allowed if the resulting exponent is legal. - Exponents are left justified, and digits aren't shifted, warnings are produced instead. - Warnings appear in the upper line only, the entered number doesn't get hidden. It's a relatively large number of changes and while I made an effort to test every code path and combination, it's possible that some bugs remained in the code, which I'll fix in subsequent updates. As usual, feedback would be welcome. We can do basically anything we want with the exponents without a very big increase in firmware size. Q.E.D. (Edited to add a third option to how a zero mantissa can be handled, as requested by Nigel.) |
|||
« Next Oldest | Next Newest »
|
User(s) browsing this thread: 1 Guest(s)