A quick demo of DB48X version 0.4.11. This release implements debugging, infinite RPL recursion, mixed fractions, customizable units cycling, and restores missing entries in the units menu. github.com/c3d... 48calc.org
Impressive! I wonder would it be better to have separate files for currency conversions and scientific units to make the currency conversions easier to update? Also if the scientific conversions were all to SI base units you could derive a lot of conversions from fewer conversion factors. This would also make dimensional analysis of formulae possible.
For the first one, the calculator is severely resource starved, so I prefer to defer the work of building a combined units file to the computer uploading the file to the calculator. On Linux / macOS, it's as easy as using the "cat" command. On Windows, it's as easy as buying a computer that runs a real operating system, or using copy paste in Notepad. That approach also lets the user control the order in which entries appear (do you prefer monetary first or last, etc). You could also have multiple submenus for monetary units, e.g Europe / Asia / Americas, or units for other stuff. The point is that it's all very easy to do, and that I don't want to add code in the calculator to try and deal with all possible choices. Also note that I don't expect anyone to actually redefine all units that way, but rather to use built-in units in most cases, and just add menus to rearrange them in a way that is convenient for their workflow. I'm also not convinced that many people will have both scientific and monetary units on the same machine, except maybe the occasional geek while traveling. On the second point, this is exactly how it's done internally. Did you know, for example, that 3GUSD/yr is approximately 88.847 EUR/s? And if you generate 3 kW per canadian dollar (3 kW/CAD), then that is 9836 mph.N/EUR ? Not that I expect such conversions to ever really matter in real life, but the calculator does them just fine, with one call to the 'Convert' function (and it would be one key press if these units are in your "=Cycle" section). And yes, I had a lot of fun coding that stuff ;-)