I'm sorry for my absence; other pressing matters have been engaging my attention. I'm back now!
From the comments in this thread it seems to me that the current interface and behaviour of the complex lock mode is satisfactory. Because of this I've made no substantial changes. There have been a few minor bug fixes, and a change in behaviour of the constants menu. I have changed the names displayed when entering numbers in polar form and I have tried to speed up polar display mode (which works well on the emulator but is rather slow on the calculator).
The updated patch file, calc.bin file, emulator, wp34s.op file, and documentation are available from the links at the end of the first post of this thread.
A few more details:
- Entering a constant from the constants menu (h + ENTER) now completes numeric entry before pushing the constant to the stack.
- The key sequence f + ENTER allows the entry of a constant as the real or imaginary part of a complex number. If no number is being entered, pressing f + ENTER brings up the constants menu and enters the constant as the real part of a complex number; pressing CPX then allows an imaginary part to be entered. Pressing f + ENTER and choosing a constant after CPX has been pressed enters the chosen constant as the imaginary part of the complex number currently being entered. I hope that someone finds this useful.
- "Mod:" and "Arg:" have changed to "Length:" and "Angle:", which seemed to be the most popular choice. However, what about "Amp:" and "Phase:"? This might make the electrical engineers even happier. Or how about using "r:" and "theta:" (Walter's suggestion, I think) in CPXI mode, while allowing another pair of names in CPXJ mode?
- Entering a number in polar display mode was slow on the calculator (about 1 second). The delay seems to be caused by the op_p2r function in decn.c; I don't really understand why this function is slower when called by my code than when it is called by the P->R keyboard function, but there it is. I've rewritten the op_p2r function so that it only calls the sincosTaylor function once (roughly doubling the speed) but I feel I'm missing the point of something. Am I supposed to do something to put the calculator into fast mode when calling a function like this? Any suggestions gratefully received!
Thanks for all the feedback and suggestions in this thread. I hope to upload the code as a separate branch of the WP-34s project once I find myself somewhere with decent internet speeds.
Nigel (UK)