At what level of abstraction can we work at the numerical algorithms? Since we are going to be programming in C, can we simply specify the data structures that will represent the state of the calculator? Is that enough of an API to get working on the requisite functionality?
I am guessing that like any UI based system you have an event loop with a "calculator state". The state includes the contents of stack, registers and programming counter for the PGM side. Flags as well.
Now events are keystrokes and the event handler then invokes the right module based on mode: PGM, R/S, interactive etc.
The display is then driven by the mode and what should be on the display window. Of course, this is independent of whether we have 1, 2, 4, or 1729 lines in the physical display.
Does someone have a diagram of an architecture that is field tested?
I would love to get input from people with some real experience in this.
Do we need to wait for more of the hardware architecture to be selected, or can we begin working on the software side knowing that the calculator's functionality is isolated from the lower level interfaces? How many layers to the architecture are needed to provide the desired level of abstraction?
Thanks.