The Museum of HP Calculators

HP Forum Archive 17

[ Return to Index | Top of Index ]

Phoenix 45s: Software Architecture
Message #1 Posted by Pavneet Arora on 9 Nov 2007, 4:06 p.m.

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?


Re: Phoenix 45s: Software Architecture
Message #2 Posted by Egan Ford on 9 Nov 2007, 4:42 p.m.,
in response to message #1 by Pavneet Arora

Start with a simulator. Code it in wxWidgets so that it can be compiled for any OS. This will allow the testing of algorithms and design assumptions (e.g. usability). In the event Phoenix 45s never sees the light of day, at least you have a very nice PC/PDA RPN. Keep the GUI and logic separate so that the logic is portable.

Next start on a true emulator, cross compiler tool chain, etc... Hopefully you only need to work on the UI and the portable logic from the simulator works as is.

[ Return to Index | Top of Index ]

Go back to the main exhibit hall