(these are half-baked ideas… I'm putting them down here to flesh out later…)
Initial next steps:
- maybe some more RAM-only routines that can exercise some of the port features, or serial output, just to make sure we've got the pinouts right. - get a good ROM dump, and save it somewhere safe. Record the checksum. - show ability and process steps for re-flashing the calc with original code, to make sure we (and others) can get back to that state if we screw up everything else. - do an initial disassembly of the code, maybe post some snippets.
Once we get those baby steps down, I'd like to start playing with the code itself. Such as:
- take a small portion of the code and modify it. For example, make the square root routine return a 1/x result. That would show we can modify the code and put it back in as a new operation. - next, write a routine to, say, calculate a cube root, and then have the square root key return that function. Same process. - next, create a new menu item to put the cube root function into a math menu somewhere. Same process. Etc.
If we can muck around at the very simple level of those above, then we could do some more interesting surgery next. Such as:
- Release the 17bii+ solver functionality. It's in there, in full capability. What I don't know is if there are hooks in there for entry of solver equations in the UI. I seem to remember hearing that there is code in there for alphanumeric entry, but not sure how that works. If not, then we could at least hard-code a (presumably) alpha equation, point the solver at it, and try to have it run via keystroke or menu. Something simple like the quadratic equations or some such. - Look around for the macro feature. I'm thinking that it's partially implemented in there, as the manual got to press with mention of it. Question is, if it is in there, how can we use it? Is it like the TI Multi-View OP1 and OP2 functionality?
That step is a fairly giant leap, actually. That would be a huge win, though, as it would show that the possibilities are endless. For example:
- Write a custom UI to allow solver equation entry. Drop some of the financial functions to get the space needed. Publish it. - Take the existing menu-based math functions and map them to keys, completely redefining the keyboard. Basically making a custom calc. - Re-write big portions of the code to emulate other calcs such as the 15c. I doubt that the 42s will be doable in that space, but you never know. The 15c, minus programming, should be doable.
And so on. Maybe even build some general purpose code for I/O functions, or make use of the ADC and make it a data logger or some form of controller. There are some cool things we could do.
We welcome any and all input on next steps, ideas, suggestions and so on.
Cyrille de Brébisson:
HP will be providing lots of the required data, including schematics, base ROM, sample code and the like. this should help a lot.
modifying the existing FW is not something that we are encouraging…
adding solver will be really hard and thus for 2 reasons: creating a UI to enter equation will be hard due to the small screen. in addition, although the solver is present in the ROM, the solver to work on generic user entered equations will need a parser (to 'convert' the equation in a program that evaluates the equation), and there is only 3KB or memory left in the calculator).