Idea for the WP34S PC-emulator



#12

Hi,

now that my first idea (EEX instead of E) has been well received, I dare to present one of my other ideas for the WP34S emulator. ;-)

First of all many thanks to the developers of this fantastic project, which I've discovered only a few weeks ago.
I've been a fan of all kinds of calculators (and especially of their PC-emulators) since almost 30 years, and this WP34S project is indeed the most interesting one.

I don't know who of the developers (Walter/Paul/Marcus?) is responsible for the PC-emulation, but at least here's my idea:

What I always found very annoying with these calculator emulations is the complicated way to access the calculator keys (or functions) via the PC-keyboard: either you have to make many mouseclicks or you have to remember lots of keyboard-shortcuts for the calculator keys (mostly not mapped very well).

Some time ago I found a TI-58/59C emulator on this website:
http://83.156.189.247/ti58c/index.php?langue=EN
And this emulator uses a (IMHO) very comfortable way to access the calculator keys and functions, which I've never seen before in any other emulator program:
You can simply enter the keys/functions on the PC-keyboard by their names! :-)

Now my question to the author of the WP34S PC-emulation:
would it be possible to implement such a feature, i.e. being able to use any of the WP34S functions by just entering the name on the keyboard?

My idea would be like this:
maybe the easiest way (requiring minmal code in the emulation program itself) would be an external key-file *.key (like the *.skin files), which contains the names (abbreviations) and the required calculator keystrokes (as key-codes) to execute this function. Such an external file would also have the advantage that the user can modify and extend the names of the functions himself.

Let me give you a few examples how this key-file could look like:

SIN 24 12

SINH 24 11 12

ASINH 25 11 12

LN 25 41

MOD 26 45 (for RMDR)

...

For the numbers I just used a kind of key-code (row/column of the calculator key), but this could of course be coded in a different way.

If parsing these names (SIN, SINH, ASINH, ...) during the normal usage of the calculator keys (e.g. while entering a number) would be too complicated to implement, then using this special keyboard-mode might also be switched on and off by a special key, e.g. <Space>. With this I mean that after having entered a number I press the <Space>-key, then enter my name (SIN, ASIN, ...) and finally end my name with <Space> again, and then the emulator executes the keystrokes for this name. (Of course it would be nice if the entered name would appear somewhere, e.g. in an extra window or better on the calculator display).

So what do you think about this idea?
For me it's definitely more comfortable (and also much faster) to directly enter the name of a function than clicking on several keys with the mouse to finally get the desired function.

Regards,
Franz









Edited: 1 June 2011, 9:00 a.m.


#13

Franz, its me.

To be honest, it used to be Cyrille de Brebisson. The emulator kernel is a Windows MFC program originally furnished by HP as part of the development kit for the 20b platform. I changed the linkage to the rest of the project to be a DLL so that the rest can be compiled with the free version of Visual Studio. To change the inner workings of the GUI, you will need a full blown Visual Studio installation to compile the DLL itself. The sources are included in the SVN repository so feel free to adapt them to your needs. ;-)

Now back to your idea: On a TI-59 there are no hidden functions except for some OP nn and PGM nn combinations. In principle, all is on the keyboard. So mapping SIN to the key labeled SIN is relatively straight forward. This is not the case with wp34s. It has hundreds of functions in its catalogues. If you want to address all of these by name, the mapping file will become very convoluted. And how do you enter a greek alpha or gamma as part of the function name?

The easier way would be to just address the visible keyboard labels. None of the typeable names may then start with f, g, or h because otherwise you can not reach the prefix keys. I fear none of the above will be done by me in the foreseeable future.

You can change the mapping of keyboard keys to calculator keys yourself, its all in the skin files.

Marcus


#14

Quote:
None of the typeable names may then start with f, g, or h because otherwise you can not reach the prefix keys.

These are assigned to F10, F11 and F12 already.


#15

On my Mac I had to sacrifice F11 and F12 in Windows for INS and DEL. We can of course map the keys anywhere we want. As stated before, just modify the skin files to your liking!

#16

Ok Marcus, I see that my idea doesn't seem to attract much interest. ;-)

Quote:
You can change the mapping of keyboard keys to calculator keys yourself, its all in the skin files.

Of course I've done this already (this QWERTY layout is in fact terrible!), but unfortunately I've found some limitations for these keyboard mappings:

I don't know which codes you've used in those *.skin files (some are ASCII, but others are absolutely unknown for me, don't even look like the usual keyboard scan codes).
And one big problem is that I can't access shifted keys, at least it seems so. :-(

If I don't want to use the * and / on the numeric keypad (not every notebook keyboard has a separated numeric block), then I would have to use these / and * on the usual keyboard, and on the German keyboards these are the shifted keys of 7 and +.

Now I've not found a way to access these shifted keys with any code in the *.skin file, even if I press Shift-7 the normal 7 is entered in the emulator (and the same is true for Shift-+, which executes + instead of *).

Is there any method to assign such shifted keys in the *.skin file?

Edited: 1 June 2011, 10:03 a.m.


#17

Quote:
Now I've not found a way to access these shifted keys with any code in the *.skin file, even if I press Shift-7 the normal 7 is entered in the emulator (and the same is true for Shift-+, which executes + instead of *).

In theory, adding 1000 to the code should do the trick but I seem to have problems with this. You will have to wait until next week before I can debug the situation. As you probably know I do have a German keyboard myself.


#18

We have that problem as well. The way we currently do the keys doesn't really handle different keyboard layouts at all. . . :-(

Haven't really come up with a good way to do it yet.

TW

#19

Quote:
In theory, adding 1000 to the code should do the trick but I seem to have problems with this. You will have to wait until next week before I can debug the situation. As you probably know I do have a German keyboard myself.

In your todays build I saw a non-GUI version (wp34s.exe) for the first time, and testing this version I found that here the situation is just the opposite:
the shifted PC-keys are working (e.g. Shift-7 gives / and Shift-+ gives *), but the same keys on the numeric block don't work.

So the problem with the non-working shifted PC-keys must be somewhere in the GUI version, maybe this will help you in finding the location of this bug ...

#20

I find the keyboard to emulator mapping quite natural and easy to use.

The mapping is based on the top three rows of keys mapping to the top leftside three rows of the keyboard (US/UK/AUS layout though). This puts f, g & h in their correct positions BTW. Digits are digits, the arithmetic symbols are unchanged, the column down the left is UJM & space. Leaving two keys unaccounted for . and , being . and R/S respectively.


- Pauli


#21

Quote:
I find the keyboard to emulator mapping quite natural and easy to use.

Well, that's of course all a matter of taste. ;-)

I like my own mapping much more - e.g. S for STO, R for RCL, X for XEQ, E for EEX etc. is much easier to remember. I also have mapped the 4 cursor keys (left/right/up/down) to exactly the same keys on the calculator.
And for the (only) few keys for which there's no direct PC-key I could in fact find a very good representation which is easy to remember (e.g. Y for x<>y, Z for RDN, # for +/-, etc.)

But as I said: everybody as he likes it ...


#22

Quote:
Well, that's of course all a matter of taste. ;-)

It is of course and it is also basically irrelevant to the goals of the project -- we're making a calculator not an emulator :-) The emulator is a step on that path just like the console version was (and still is).


- Pauli


Possibly Related Threads...
Thread Author Replies Views Last Post
  wp34s Emulator (-Infinity Difference) Barry Mead 1 381 07-24-2013, 03:52 PM
Last Post: pascal_meheut
  wp34s Emulator (Display Residual) Barry Mead 3 494 07-23-2013, 04:22 AM
Last Post: Barry Mead
  New version of WP34s iOS emulator pascal_meheut 4 653 07-22-2013, 03:55 PM
Last Post: Matt Agajanian
  Catalogs as menus in WP34s Qt Emulator pascal_meheut 9 908 05-16-2013, 03:42 AM
Last Post: John Abbott (S. Africa)
  New version of the WP34s iOS emulator pascal_meheut 15 1,324 04-23-2013, 01:58 AM
Last Post: Walter B
  Improved debugger on WP34s Qt Emulator pascal_meheut 0 307 04-15-2013, 03:52 PM
Last Post: pascal_meheut
  Stupid idea of the day: 41-compatible watch bhtooefr 0 329 03-31-2013, 08:23 AM
Last Post: bhtooefr
  WP34s iOS emulator now available pascal_meheut 33 2,429 03-26-2013, 01:21 PM
Last Post: pascal_meheut
  HP 15C Calculator PC Emulator Gerardo Rincon 4 607 11-28-2012, 04:20 AM
Last Post: Mike (Stgt)
  New HP-82240B emulator in WP34s distribution pascal_meheut 6 718 10-07-2012, 05:07 PM
Last Post: Christoph Giesselink

Forum Jump: