WP43 Alternative key layout --> C43

This area is for discussion about these families of custom high-end Scientific Calculator applications for SwissMicros devices.
User avatar
Jaymos
Posts: 1635
Joined: Sun Nov 04, 2018 7:03 pm
Location: Cape Town

Re: 43S Alternative key layout --> WP43C

Post by Jaymos »

RAPo wrote:
Sun Sep 13, 2020 4:23 pm
something like:

S06 | S08 | S16 | S32 | S64 | FB
U06 | U08| U16| U32 |U64 | FW
third line:
if in hexmode:
A | B | C | D | E | F
else
SL | SR | RL | RR | RLn | RRn (i.e toprow of a HP16C

Snn = switch to signed mode, wordlength=nn
Unn= switch to unsigned mode, wordlength=nn
FB = flip bytes FW = Flip words (ie AABBCCDD FB -> DDCC BBAA 000 000 and AABBCCDD FW -> CCDD AABB 0000 0000)

The third row does not have to be dynamic A B C ... because in Hex mode, the top row of keys (underneath the function keys) (labelled as A .. F) already work as hex digits A..F in HEX mode.

FB already is flip bit and cannot change. So I propose FBYTE.
For symmetry I would propose FWORD for FW.
With "signed" I assume you mean 2's complement.

So my rendition of your menu would be:

Code: Select all

S06 | S08 | S16 | S32 | S64 | FBYTE
U06 | U08 | U16 | U32 | U64 | FWORD
SL  | SR  | RL  | RR  | RLn | RRn

Ok?
Jaco Mostert
Elec Eng, South Africa
https://47calc.com C47 (s/n 03818 & 06199), WP43 (0015). In box: HP42S, HP32Sii, WP34S&C, HP28C, HP35s, EL-506P, EL-W506, PB700; ex: FX702P, 11C, HP67 & HP85; iOS: 42s Byron, Free42+, WP31S/34S, HCalc.
User avatar
RAPo
Posts: 290
Joined: Wed May 03, 2017 6:54 pm
Location: The Netherlands
Contact:

Re: 43S Alternative key layout --> WP43C

Post by RAPo »

Oke❤️👍👍
DM41X beta: SN00018.
DM41X: SN00496.
DM42 beta: SN00074.
DM42:SN06020.
DM42 converted to C47 SN08973
DM10L: SN056/100.
DM11L: SN 02058.
DM15L: SN2074.
DM16L: SN2156.
DM15, DM16, DM41
and a whole bunch of the original HP's,
User avatar
Jaymos
Posts: 1635
Joined: Sun Nov 04, 2018 7:03 pm
Location: Cape Town

Re: 43S Alternative key layout --> WP43C

Post by Jaymos »

RAPo wrote:
Sun Sep 13, 2020 8:04 pm
Oke❤️👍👍

Your spec below seems to be for 64 but wide words only.

>> AABBCCDD FB -> DDCC BBAA 000 000
What happens in the general case? flipping it in the same pattern? WWXX YYZZ AABB CCDD FB -> DDCC BBAA ZZYY XXWW ?
And in the case where the word size is not 64? And when word size is odd?
Please clarify what should happen with FWORD and FBYTE for word size 1 through 64 bits.

>> AABBCCDD FW -> CCDD AABB 0000 0000
Same here. Please specify all cases.
Jaco Mostert
Elec Eng, South Africa
https://47calc.com C47 (s/n 03818 & 06199), WP43 (0015). In box: HP42S, HP32Sii, WP34S&C, HP28C, HP35s, EL-506P, EL-W506, PB700; ex: FX702P, 11C, HP67 & HP85; iOS: 42s Byron, Free42+, WP31S/34S, HCalc.
User avatar
Jaymos
Posts: 1635
Joined: Sun Nov 04, 2018 7:03 pm
Location: Cape Town

Re: 43S Alternative key layout --> WP43C

Post by Jaymos »

The POC for the second BASE menu layout.

FWORD and FBYTE need specification before I can attempt to code it.
.
Clipboard25.png
Clipboard25.png (71.51 KiB) Viewed 4148 times
.
.
Further to the discussions this afternoon, I changed FB01-FB64 to be FB00-FB63, counting from 0.
Most people might indeed count from 1, but a subset of people, including hardware people like myself, mostly count from 0.
This is now different from the 43S; well, I can't stop hoping the bit counting will change.
.
Clipboard26.png
Clipboard26.png (3.85 KiB) Viewed 4148 times
.
.
Closing thought: I love the NOT handy in BASE and the FBnn menus. Works nice.
Jaco Mostert
Elec Eng, South Africa
https://47calc.com C47 (s/n 03818 & 06199), WP43 (0015). In box: HP42S, HP32Sii, WP34S&C, HP28C, HP35s, EL-506P, EL-W506, PB700; ex: FX702P, 11C, HP67 & HP85; iOS: 42s Byron, Free42+, WP31S/34S, HCalc.
User avatar
Jaymos
Posts: 1635
Joined: Sun Nov 04, 2018 7:03 pm
Location: Cape Town

Re: 43S Alternative key layout --> WP43C

Post by Jaymos »

.
.
Here compiled versions of my release 39. Thanks Dani for the sim compile as always.

DM42 image at https://classic43.com/downloads/C43_39L2.zip
Windows Simulator at https://classic43.com/downloads/C43_EMU ... _Rel39.zip

DM42: once loaded and started, remember to f[CLEAR] g[RESET].
DM42: I rolled back to the DMCP firmware requirement of 3.18 which comes with the DM42 software. This means the newest DMCP 3.19 need not be installed prior to C43.
DM42: Remember to copy the PROGRAMS folder from the zip file to the calculator flash drive. It can work without, but it is nice to have the demo programs on board.

To orientate you, here are a few instructions to demo two things:

DEMO1: BASE
  • f[4] is BASE on the DM42 hardware layout; f[CHS] is BASE on the simulator.
  • Place it into HEX mode by pressing HEX. Note the #KEYA-F top of screen. Note the new short integer 4 line display of X.
  • Type Σ+. Note hex digit "A" comes. Type [1/x]. Note hex digit B comes. Type AB 00 00 00 ENTER.
  • Note the 4 line display.
  • Long press FN6 until NOT appears, and release. Long press is the equivalent of pressing f prior to the key.
  • Press DN to get to RAPo's new BASE screen discussed on Sunday.
  • As example, press SL1 repeatedly and note the behaviour.
  • Press Up Up to get to the flip bit screens FB00 through FB63.
  • Get out of HEX mode by typing "." for decimal, or by pressing any of HEX/DEC/DEC/BIN/MODE# again.
DEMO2: DM42 FUN: CHECK BATTERY PERFORMANCE
  • Also, try the XEQM program that checks your battery performance. This is not new, but it is nice to see the result.
  • Remember to pull out the USB cable otherwise there is no voltage drop from the battery.
  • Press .1 ENTER to make sure you are not in BASE mode.
  • Longpress XEQ until XXEQ appears then release
  • Press FN6 which is XEQM
  • Press FN2 which is BATPLT, short for Battery Plot.Note this file is in the PROGRAMS folder.
  • This program runs long. It does 400 sample points of the instantaneous voltage measured on the battery. That takes about 5 minutes to get a representative graph of battery drop over time.
  • Notice at the very very bottom of the screen. There is a slowly increasing line eating up the pixels of the screen, from the bottom up. This is a progress bar indicator which comes in handy for programs taking very long like this one. At least it tells you the thing is still busy with the task you gave it.
  • Once done, it plots the resulting graph and is waiting for EXIT to continue. Notice the slightly sloping line drawn top left to slightly down to the right.
  • Press EXIT
  • Press f[STAT] (which is on f[/]. The graph is drawn using my STAT graph functionality.
  • Press f[ST_GRF] which is on f[FN6].
  • Press f[MAGN.Y] which is on f[FN6]. This option is to auto scale to magnify the scale to see the variance better.
  • Press PLOT which is on [FN6].
  • Make a screen dump by pressing and keeping in f, then while kept in, press E (EXP). A tick-tick sound is heard as the screen dump is saved.
.
20200914-01111252.bmp
20200914-01111252.bmp (12.31 KiB) Viewed 4134 times
My graph of battery voltage over time, done just now.
Jaco Mostert
Elec Eng, South Africa
https://47calc.com C47 (s/n 03818 & 06199), WP43 (0015). In box: HP42S, HP32Sii, WP34S&C, HP28C, HP35s, EL-506P, EL-W506, PB700; ex: FX702P, 11C, HP67 & HP85; iOS: 42s Byron, Free42+, WP31S/34S, HCalc.
User avatar
RAPo
Posts: 290
Joined: Wed May 03, 2017 6:54 pm
Location: The Netherlands
Contact:

Re: 43S Alternative key layout --> WP43C

Post by RAPo »

Jaymos wrote:
Sun Sep 13, 2020 9:05 pm
RAPo wrote:
Sun Sep 13, 2020 8:04 pm
Oke❤️👍👍

Your spec below seems to be for 64 but wide words only.

>> AABBCCDD FB -> DDCC BBAA 000 000
What happens in the general case? flipping it in the same pattern? WWXX YYZZ AABB CCDD FB -> DDCC BBAA ZZYY XXWW ?
And in the case where the word size is not 64? And when word size is odd?
Please clarify what should happen with FWORD and FBYTE for word size 1 through 64 bits.

>> AABBCCDD FW -> CCDD AABB 0000 0000
Same here. Please specify all cases.
Will sent you details next saturday: work is hectic right now.
DM41X beta: SN00018.
DM41X: SN00496.
DM42 beta: SN00074.
DM42:SN06020.
DM42 converted to C47 SN08973
DM10L: SN056/100.
DM11L: SN 02058.
DM15L: SN2074.
DM16L: SN2156.
DM15, DM16, DM41
and a whole bunch of the original HP's,
User avatar
Jaymos
Posts: 1635
Joined: Sun Nov 04, 2018 7:03 pm
Location: Cape Town

Re: 43S Alternative key layout --> WP43C

Post by Jaymos »

An update is available to C43.

C43 firmware for DM42 here: https://classic43.com/downloads/C43_40L2.zip
C43 Windows simulator here: https://classic43.com/downloads/C43_EMU ... _Rel40.zip

DM42: Always remember too RESET. g[CLR] g[RESET] Y.
Sim:Always remember to delete your backup.bin file on Windows if you copy the files into the same folders.

This week's changes include::

1. Updated C43 to the small changes made to 43S, which include some compiler upgrades and Martin added some stuff like LnBeta which John wrote, and some mods to Re, Im & Arg which I wrote. This stuff then updates to the C43 as well.

2. On C43 I re-vamped the interpreter of the XEQM text code to be less finicky about text formatting. Still a work in progress. In this release I dropped the need to write numbers in quotes. Without the quotes there is an improvement in readability as the code resembles clear text, see example below and note the insert text cursor at the D of DSZ:

Code: Select all

XEQLBL FF BATPLT  //Battery voltage plot Rev3
DOTD
400 STO 00 
TICKS STO 01 
CLSUM 
LBL M1 
BATT? TICKS RCL 01 - 10 / SUM+ 
DSZ 00 GTO M1 
PLOT 
By the way, the above code file is located on the flash drive in /PROGRAMS/, and can by typed in free form RPN, spacing and comments added on PC. This can be edited or written on the calculator in the text editor. When a file made on PC is loaded into into the calculator, it is loaded without carriage returns, line feeds and comments, to respect the relatively small amount of memory and the lines available on screen. See in the picture below, the same file was loaded and edited in-calculator. Cursor buttons up/dn work, as well as softmenu cursors < and >.
Clipboard28.png
Clipboard28.png (2.99 KiB) Viewed 3933 times

3. I added another longpress shortcut: Longpress EXIT is a shortcut to clear both the HEX mode if active, and simultaneously to clear a numeric input which you don't want anymore. There isn't another way but to repeatedly press backspace. Holding your thumb on EXIT in is an intuitive way to clear something that seems 'stuck' like the HEX mode if you forgot how to clear it, or you are trying to clear the input buffer.

4. Further to our discussion here last week, and after further discussions on the Gitlab development group, the WP43S team renumbered the flag bit counter to 0 to 63, representing the bits of a 64 bit word. Great, thank you.


RAPo, any progress on the details of your byte and word swapping functions in your BASE menu proposal??


...edited for clarity.
Jaco Mostert
Elec Eng, South Africa
https://47calc.com C47 (s/n 03818 & 06199), WP43 (0015). In box: HP42S, HP32Sii, WP34S&C, HP28C, HP35s, EL-506P, EL-W506, PB700; ex: FX702P, 11C, HP67 & HP85; iOS: 42s Byron, Free42+, WP31S/34S, HCalc.
User avatar
Jaymos
Posts: 1635
Joined: Sun Nov 04, 2018 7:03 pm
Location: Cape Town

Re: 43S Alternative key layout --> WP43C

Post by Jaymos »

A question from elsewhere, copied here since it is a question with a good answer I think:
Using the latest (v40) C43 program, I noticed that Undo and CLR are reversed (Undo works with g, rather than f as it should, and CLR menu is accessed with f).
On my Mac simulator and on my DM42 the keys work correctly. Unless there is a bug in the Windows Simulator which I cannot test on my Mac, the answer probably lies in the following discrepancy:

The reason is probably because we distribute two key layouts, you will notice the 'L2' in the DM42 firmware file, i.e. C43_40L2.zip.

L2 is the version made for native DM42 key compatibility.

L1 currently is on the simulator only, and is also our ‘preferred’ layout which is getting onto our metal C43 key template. There on L1, UNDO is on f, because we believe it is more useful to have the UNDO on the easy single press key. When our key template is available, we will make available both L1 and L2 versions for the DM42.

L2 is the more DM42 compatible layout, i.e. the C43 aligns with the DM42 existing yellow labels so that you do not need a template. The DM42 has CLEAR on the yellow label, therefore C43 uses CLEAR to call the CLR menu, and Undo must sit on g. That is reversed from L1.

We did spend and inordinate amount of time on this group a year ago to really find the optimum key layouts and I think the L1 layout is a real gem.

Interesting fact 1: you can change the keys around. Go the g[1] to the KEYS menu, and choose either DM42 to use L2, or C43 to use L1. This swap works on either simulator or hardware.

Interesting fact 2: you can even select WP43S too, which will line the keys up with the main project's hardware calculators for when they will be available.

This looks nice if you change it around on the simulator, because the labels follow the selection in real time.

Escape clause: If you do play around with the KEYS too much, you can always reset your User mode keys by using g[KEYS] RESET on FN6, which will restore the User mode keys.
Jaco Mostert
Elec Eng, South Africa
https://47calc.com C47 (s/n 03818 & 06199), WP43 (0015). In box: HP42S, HP32Sii, WP34S&C, HP28C, HP35s, EL-506P, EL-W506, PB700; ex: FX702P, 11C, HP67 & HP85; iOS: 42s Byron, Free42+, WP31S/34S, HCalc.
User avatar
Jaymos
Posts: 1635
Joined: Sun Nov 04, 2018 7:03 pm
Location: Cape Town

Re: 43S Alternative key layout --> WP43C

Post by Jaymos »

This week's contributions to download:

C43 Simulator for Windows: https://classic43.com/downloads/C43_EMU ... _Rel41.zip
Thanks Dani for the help!

C43 DM42 software image file: https://classic43.com/downloads/C43_41L2.zip


Added to the BASE menu functionality:

- Added selectable display mode for 1-3 lines of X display for short integers. I made the calculator default to two lines, leaving 2 lines for the stack X and Y. That can change in DISP Up f[FN3]. I found that I prefer two lines of the stack, but you can change that. See the grey image below, with two stack items, and two X register duplications on top.

- Added RAPo’s little/big endian conversions to his proposed BASE screen (SWAP.B & SWAP.W). We hope this is what you intended.

- Updated to the bugfixes done by Martin for 43S, including the HP16C-like handling of integer memories.


Added to the XEQM RPN code interpreter

- Changed the default names for the 18 user defined XEQM buttons from XEQM01..18 to X1..X18 instead. See in the green image below.

- Refined the XEQM command interpreter, and accordingly revved up all sample user XEQM RPN sample programs.

- Added a break out keypress, to exit from an endless (or long) loop in XEQM RPN code. Any key pressed will abort the currently running program.

- Added a TEST program on XEQM g[FN6] for fun, which plays with a ‘forensic’ test similar to the traditional forensic test. See below.
.
Clipboard30.png
Clipboard30.png (3.42 KiB) Viewed 3721 times
Illustration of a big/little endian swap in the sample 32-bit word, this example done with SWAP.Bytes
.
Other small changes:

Conversions: mmHg -> Pa conversion factor. 43S team chose pascal = mm.Hg × 133.3224 whereas I chose for C43 pascal = mm.Hg × 13.5951 × 9.80665. This is the conclusion of this discussion starting here viewtopic.php?f=2&t=2491&hilit=mmhg. A real meaningless difference between these constants ...

The 43S ‘+’ operator only works to add a number X to a string Y, and I added functionality on the C43 to concatenate a string in X to a number in Y. This is used to build strings in program output, see in the forensics program below.


Forensic test fun:

As mentioned above, I played with the old ‘forensic’ test mentioned in footnote 69 of Walter’s Reference Manual on p164, but I amplified it significantly by adding more functions without repeats. I added as much of the on-keyboard math functions to see how much the accuracy of the C43 and hence the WP43S will suffer due to repeated transcendentals and rounding. I do bear in mind it is a nonsensical equation, but it has been calculated millions of times I suppose, since Mike Sebastian coined the term here https://www.rskey.org/~mwsebastian/misc ... ensics.htm.

To be fair, I tried to ‘break’ the accuracy due to massive propagation of rounding and numeric errors. But it does not really successfully ‘break’ the 43, as the result shows below. You will see the formula deflects symmetrically after the cuberoot function and then reverses in sequence, the inverse functions for the 13 functions performed. (The PI in there is a 34 digit constant in the constants table).

Code: Select all

XEQC43 XEQLBL FF TEST 
ERPN DOTD DEG CLSTK TICKS STO 00 DROP
9
SIN COS TAN 1/X SQRT LOG10 LN 2^X SINH COSH TANH PI Y^X CUBRT
X^3 PI XRTY ARCTANH ARCCOSH ARCSINH LOG2 E^X 10^X X^2 1/X ARCTAN ARCCOS ARCSIN
 
ENTER 9 - ALPHA "DIFFERENCE FROM 9 IS " EXIT X<>Y +
ALPHA "AND TOOK " EXIT TICKS RCL 00 - 10 / + ALPHA " SEC" EXIT +
20200927-20333808.png
20200927-20333808.png (2 KiB) Viewed 3721 times
Sample of the XEQM softmenu, example "TEST" top right.


BASE menu:

The BASE menu which kept us busy for a few weeks now was summarised on a few pages. See the two page draft BASE menu writeup:


Image
Jaco Mostert
Elec Eng, South Africa
https://47calc.com C47 (s/n 03818 & 06199), WP43 (0015). In box: HP42S, HP32Sii, WP34S&C, HP28C, HP35s, EL-506P, EL-W506, PB700; ex: FX702P, 11C, HP67 & HP85; iOS: 42s Byron, Free42+, WP31S/34S, HCalc.
User avatar
Jaymos
Posts: 1635
Joined: Sun Nov 04, 2018 7:03 pm
Location: Cape Town

Re: 43S Alternative key layout --> WP43C

Post by Jaymos »

This week's contributions to download:

C43 Simulator for Windows: https://classic43.com/downloads/C43_EMU ... _Rel42.zip
Be sure to delete the binary.bin file from the C43 folder prior to running.
Thanks Dani for the help compiling!

C43 DM42 software image file: https://classic43.com/downloads/C43_42L2.zip
Be sure to do CLR/RESET after resetting the first time.
The DM42 firmware update now bundles DMCP3.20 with their software. The C43 firmware requirement is DM42 DMCP firmware 3.18 which was the previous packaged DM42 firmware.


Changes made:
* Subtle improvements/changes to the code doing FN key double tap detection on DM42 hardware. Try it out and see if it works better.

* The FN key double tap setting G2TAP default was changed to be activated at restart.

* Expanded the long press cycles of the keys [Σ+] to [<-] to primary - f(function) - g(function) (excluding EEX). Example: LOG - 10^x - .d - NOP

This means you can long press STO to get COMPLEX, and keep it pressed in, to reach |x| then release it, etc.
This also means that for the first 4 rows including function keys, single finger operation is possible, i.e. just keeping the button in, would cycle from say Σ+ to Σ- to ab/c to NOP.

* Bugfix: Previously double pressing a function key FN1-FN6 for the first time worked incorrectly. This was fixed.

* Neatened up some of the sample XEQM programs.

* Added long press EXIT to pop all menus, and clear BASE mode.



Temporary additions:
In order to ease testing, the following temporary indications were added: These are temporary tests for comments, not a permanent features.

* Version info defaulting to register Y for a testing period. I am trying this out. It helps if we have multiple C43 versions on flash. Does it work for you?

* Single/Double/Triple tap indication in the top right in the status bar of the hardware version on DM42. Try it out and comment on the click detection success.


WP43S additions:
* John Boyden’s Beta function was added to WP43S and was imported to C43.
* Martin's latest changes to WP43S were imported to C43.
* WP43S added SINC𝝿 for all angular modes, but specifically working optimally with MULTIPLES OF 𝝿. Imported to C43.


Keyboard change:
for the current DM42 compatible (the version that requires no special template, i.e. Layout 42):
I use it a lot and I missed the symmetry of the RollUp and RollDn which was not offered on this layout. I decided g-shift RCL for the Δ% function was not on the HP42S keys layout; it is on the FIN menu anyway and it was also stuck right in the middle between complex size g[STO] and complex angle g[RollDn]. My solution for all these issues was to remove Δ%, shift the complex angle one left to g[RCL] to be next to the complex functions, and add RollUp on the g-function of Roll-Dn.

Any complaints, comments, improvements?

Well, a picture is worth a 1000 words, so below the end result:
Clipboard33.png
Clipboard33.png (10.63 KiB) Viewed 3470 times
L42 layout on the current DM42 without template: Changed: complex angle, Δ%, Roll-Up.

*Edited to correct typos.
Jaco Mostert
Elec Eng, South Africa
https://47calc.com C47 (s/n 03818 & 06199), WP43 (0015). In box: HP42S, HP32Sii, WP34S&C, HP28C, HP35s, EL-506P, EL-W506, PB700; ex: FX702P, 11C, HP67 & HP85; iOS: 42s Byron, Free42+, WP31S/34S, HCalc.
Post Reply