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: 1633
Joined: Sun Nov 04, 2018 7:03 pm
Location: Cape Town

Re: 43S Alternative key layout --> WP43C

Post by Jaymos »

Dani R. wrote:
Thu Jul 22, 2021 9:00 am
You can help yourself with this post.

viewtopic.php?p=18385#p18385

The key bindings are very stable since some time.


EDIT:

My mistake, there should of course be a post in front of it.

viewtopic.php?p=18352#p18352

Thanx Dani, without trying to see what changed or not, I made a fresh pic quick of the L42 layout. The problem is somehow, my Mac cannot screen print a XQuartz application running.
C43_L42.PNG
C43_L42.PNG (138.87 KiB) Viewed 4013 times
L42 layout


Edit: 2021-07-26 Thx to Dani who made a proper screen print, and I replaced the bad photograph with the screen print.
Last edited by Jaymos on Mon Jul 26, 2021 8:01 pm, edited 1 time in total.
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: 1633
Joined: Sun Nov 04, 2018 7:03 pm
Location: Cape Town

Re: 43S Alternative key layout --> WP43C

Post by Jaymos »

We have optimised the C43 power usage after there were some doubt on whether the C43 (and WP43S) optimally runs on batteries or not.

Using our oscilloscopes to determine the current usage during key operation and during processing, Philippe and I measured and found certain exception cases where C43 left the processor on, without forcing it to go to sleep, with the result that sometimes the battery could deteriorate faster.

Dani optimised the existing keyboard and timer routines to remove the bugs causing this and at the same time I rectified the asymmetrical delays on the different longpress phases. Here is a progress version with the power consumption issues fixed, C43L1_106l.pgm. I would say the current version is pretty much power optimised as much as the current DM42 framework allows it to be.

Philippe in the background is working on a different method and proof of concept on the key reading code and if that is successful, I will run timing tests on that too, to see what works best, is most understandable and is most maintainable to take forward. Due to the multiple double clicks, long presses, time-outs and cycling function keys, understandably the key detection routines in C43 are somewhat different from that in WP43S.

The DM42 progress release 106L above, has many features cut from it. The continuous expansion of the WP43S base code, in particular the matrix code that keeps growing, made that the updated C43 code does not fit in the easy-to-use single file pgm file which I distribute for DM42. Since the current versions are test versions, I simply created compiler switches to simply cut code which are not being tested so that no QSPI changes are required and it will fit easily onto the DM42.

This method however will not work to produce full releases in the long term, and I would have to produce and release QSPI versions whether I like it or not, but I don't want to go there yet. So we now have partial releases.

The following portions of code are excluded from C43L1_106.pgm and can therefore not be tested in this version. Of course the simulator always includes all functions:

Code: Select all

SAVE_SPACE_DM42   //014984 bytes: Startup test values in registers; KEYS (USER_V43LT, USER_V43, USER_C43, USER_43S
SAVE_SPACE_DM42_1 //001568 bytes: STAT DEMOS 105-107-109
SAVE_SPACE_DM42_2 // bytes: XEQM
SAVE_SPACE_DM42_4 //000736 bytes: XY GRAPHDEMOS
SAVE_SPACE_DM42_3 //002680 SOLVER (already excluded by XY GRAPHDEMOS)
SAVE_SPACE_DM42_5 //001168 bytes: SHOW (old WP43S on VIEW)
SAVE_SPACE_DM42_6 //001648 bytes: ELEC functions
SAVE_SPACE_DM42_7 //002144 bytes: KEYS USER_DM42; USER_SHIFTS; USER USER_PRIM00U
SAVE_SPACE_DM42_8 //007136 bytes: Standard Flag-, Register-, Font- Browser functions
SAVE_SPACE_DM42_9 //004448 bytes: SHOW (new C43)
SAVE_SPACE_DM42_10 // 005800  WP43S programming ...

I am not with a Windows dev system now, and cannot provide a Windows simulator for testing. I will do one later in the week.
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: 1633
Joined: Sun Nov 04, 2018 7:03 pm
Location: Cape Town

Re: 43S Alternative key layout --> WP43C

Post by Jaymos »

Dani compiled a Windows simulator for us, thanks!

Here it is: C43 Test release C43L1_106l

The zip file combines the simulator and pgm files.
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: 1633
Joined: Sun Nov 04, 2018 7:03 pm
Location: Cape Town

Re: 43S Alternative key layout --> WP43C

Post by Jaymos »

Progress release C43 version 106n

The zip file contains PGMs for L1, L42, WP43S-on-C43 keys, and the Windows L42 Simulator, here. All files are without QSPI interference. The key layout images in the zip.

This release has Mihail's matrix editing updates. He has really added a lot to WP43S. You can try entering complex matrix elements, STO and RCL single elements from the matrix entry, enter constants, pi, monadic functions, etc. etc. Thanks a lot to Mihail.

It dawned on me that I should rather temporarily remove some of the bulkier WP43S math functions instead of more and more of our C43 test functions. By removing the (experimental and in progress) WP43S programming, as well as SLVQ, PRIME, BESSEL and ELLIPTIC functions, I could re-instate all functions that I removed from C43 over the last few progress releases. XEQM is back, but some of the XEQM programs do use the NPRIME or PRIME? functions so would not work.

Interesting, I ran this old program TEST (g[FN6]) which does a bit of an exaggerated "forensic test" and the answer still does not deviate too far from 9, despite all the functions and inverse functions and rounding.

Code: Select all

9 SIN COS TAN 1/X SQRT LOG10 LN 2^X SINH COSH TANH PI Y^X CUBRT 
Then the reverse to get back to 9:

Code: Select all

X^3 PI XRTY ARCTANH ARCCOSH ARCSINH LOG2 E^X 10^X X^2 1/X ARCTAN ARCCOS ARCSIN 9 -
20210803-01364232.bmp
20210803-01364232.bmp (12.31 KiB) Viewed 3894 times
Web site: I struck a bit of an obstacle with the classic43.com web site: I upgraded my High Sierra to Big Sur without thinking too much about it, and Apple's Big Surprise was that my favourite iWeb page creator does not run anymore! So until I find the time to either get used to an easy and free web creator, or install a High Sierra VM, updates won't happen there. The latter option is the preferred, but that is another day of IT stuff interrupting.
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: 1633
Joined: Sun Nov 04, 2018 7:03 pm
Location: Cape Town

Re: 43S Alternative key layout --> WP43C

Post by Jaymos »

Further to my post on another thread, I set out to do exactly that.
Jaymos wrote:
Sat Apr 03, 2021 6:13 pm
fridlmue wrote:
Wed Mar 31, 2021 2:48 pm
But to see these computerized "approximation" to fractions, roots and multiplexes of pi as helpful or not depends for sure on the use case and personal preference.
Sounds interesting. Will it be useful to have a selectable option in C43 to display X,Y,Z&T registers as multiples of defined constants, maybe of e, π, √2, √3 & √5.
It is now working, and here are some screen shots.

Note that this is not CAS or anything like that. It is a helper mode, which when it finds multiples or fractions of the said constants, it displays it as such.

Simply, if the first 32 of the 34 digits in a register conforms to the multiple or fraction, then it is displayed as such. Not powers of, or combinations of, sums of etc. Just simply a helper mode to identify the constants e, π, φ, √2, √3 & √5 in a register. As such it cannot be exact, as it merely corresponds to the first 32 digits of said constant.

I did try a whole lot more constants, including some automatically taken from the built in constants database, such as c, g, µ0, 𝜀0, etc. but the processing overhead between keypresses gets too much for the processor. The mini-list still makes it worth my while. Of course the slowest response is if no constant is found, i.e. at that point all constants were checked already, for all four stack levels. It gets a bit much, especially if in complex matrixes where the overhead just escalates.

It was added to the [a b/c] button, and cycles as part of the fraction modes. The only exclusion is it is disabled to work with a register containing an angle tagged with the MULπ angle mode. The idea is that you can easily switch on the display mode by pressing g[a b/c] and switching off by g[.d].

20210816-18104875.bmp
20210816-18104875.bmp (12.31 KiB) Viewed 3668 times
Some examples. Note the eE notation is "eEuler" as per the text from the CNST catalogue, to stay consistent.
20210816-18163914.bmp
20210816-18163914.bmp (12.31 KiB) Viewed 3668 times
Including a matrix, and showing the range of the nominator and denominator supported, i.e. 999/998 of the constant.


I will soon make available a progress release.
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: 1633
Joined: Sun Nov 04, 2018 7:03 pm
Location: Cape Town

Re: 43S Alternative key layout --> WP43C

Post by Jaymos »

The promised progress update is here: http://classic43.com/downloads/2021-08-17-C43_106q.zip and it includes the usual pgm files for C43: L1 & L42, WP43S-JM (special test firmware with DM42 keyboard) & Windows sims.

This C43 release contains up to date WP43S additions, excluding the programming and SLVQ, PRIME, BESSEL, ELLIPTIC for reasons mentioned before.

I add some fun demos below to observe the constants referred to in the previous post:

Try get to π using alternate ways for example 2646693125139304345 / 842468587426513207. Fortunately these are stored in demo registers (use REGS to see all the registers):

Code: Select all

g[a b/c] [RCL] 19 [RCL] 20 [/] 123 [*] 13 [/]
Try the reverse of Euler's identity:

Code: Select all

1 [CHS] [ENTER] [ENTER] [LN] [X<>Y] [√x] [/] [|x|]
Try some trig:

Code: Select all

[DEG] 30 [COS] [RAD] [ACOS]
Try phi:

Code: Select all

5 [√x] 2 [/] 0.5 [+]
To clear the constants mode, use g[.d].
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
PierreMengisen
Posts: 305
Joined: Wed Nov 29, 2017 1:38 pm
Location: Neuchâtel CH

Re: 43S Alternative key layout --> WP43C

Post by PierreMengisen »

Hi,
with C43.exe I see that in the matrix editor the CC operation does not work. It works in WP43S.exe. Is this normal for the moment?
Many thanks for all the work done.
Pierre
[TI59 with PC100C; TI-84 Plus CE-T; HP41CV with HP IL loop & 2*82161A DCD & 82162 TP; HP15C; HP28S; DM41; DM41L; DM42; DM41X]
User avatar
Jaymos
Posts: 1633
Joined: Sun Nov 04, 2018 7:03 pm
Location: Cape Town

Re: 43S Alternative key layout --> WP43C

Post by Jaymos »

PierreMengisen wrote:
Wed Aug 18, 2021 12:11 pm
Hi,
with C43.exe I see that in the matrix editor the CC operation does not work. It works in WP43S.exe. Is this normal for the moment?
Many thanks for all the work done.
I did not know - I will fix!

Thanx
J
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: 1633
Joined: Sun Nov 04, 2018 7:03 pm
Location: Cape Town

Re: 43S Alternative key layout --> WP43C

Post by Jaymos »

In the mean time, until I get time to fix CC,

I am reworking the ELEC menu because matrix operations are getting to a stable state.

For those not electrically inclined, well, skip by all means ...

I had 2 x symmetrical component programs in this menu. And some programs to manually calculate three phase Ohm's law. Now, since matrix methods are working, I am reworking these to use matrixes.

To make it useful, I needed a way to easily populate a 3x1 matrix for the V-vector. That does not exist, and I do not want to use I & J and STOEL etc. all the time for routine stuff. So a command [zyx>M] was created. I must still do the same for [M>zyx] - not done yet.

So now it is easier for me to create a vector from prior results: if 1, 2, 3 are on the stack, [zyx>M] results in [1;2;3]^T.

*[zyx>M] actually is interesting, as I created the zyx>M using internal XEQM code. That means I did not program that in C but in RPN. Internally I just wrote a text string with the RPN code, and we send that to the XEQM parser which executes it as a sequence of keystrokes. Not really rocket science since HP did that since the 70's, but until now, I would have had to write that in C43 in a C routine. For those interested, the code is below and is pretty recognizable. Not very efficient as it stores and parses text, so when Martin's proper programming comes along, this will be re-evaluated.

Code: Select all

  //Create a 3x1 matrix from Z Y X
  strcpy(line1,"XEQC43 ERPN 3 ENTER 1 M.NEW STO 99 DROP INDEX 99 3 ENTER 1 STOIJ DROP DROP STOEL DROP  I- STOEL DROP  I-  STOEL DROP RCL 99 ");
  fnXEQMexecute(line1);
When we use symmetrical components, the A matrix is fixed, so in addition to the a, and a² constants which I already had, there is now A, which is the standard complex 3x3 A matrix (for the component sequence 0,1,2).
Clipboard06.jpg
Clipboard06.jpg (17.84 KiB) Viewed 3498 times
Note, it looks best when you switch on [a b/c].

** [A] was also done this XEQM way to prevent me from running these keystrokes manually for an A matrix every time:

//Create a 3x3 A-matrix
... "XEQC43 ERPN RECT 3 ENTER 3 M.NEW STO 99 DROP INDEX 99 1 ENTER 1 STOIJ DROP DROP 1 STOEL J+ STOEL J+ STOEL J+ STOEL DROP 0.5 ENTER CHS 3 ENTER SQRT 2 / CHS COMPLEX J+ STOEL COMPLEX CHS COMPLEX J+ STOEL 1 J+ STOEL DROP J+ STOEL X^2 J+ STOEL DROP"
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: 1633
Joined: Sun Nov 04, 2018 7:03 pm
Location: Cape Town

Re: 43S Alternative key layout --> WP43C

Post by Jaymos »

PierreMengisen wrote:
Wed Aug 18, 2021 12:11 pm
Hi,
with C43.exe I see that in the matrix editor the CC operation does not work. It works in WP43S.exe. Is this normal for the moment?
Many thanks for all the work done.
Fixed, in #ad116ac.
Do you compile yourself, or should I release interim binaries?
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