Make XEQ+ functionality native to the 41x

The Beta programme is where a device becomes fully formed. If you have any suggestions for features to integrate into the DM41X then feel free to make them here. We can't guarantee that they'll all end up in the final product but we'll certainly consider all sensible proposals.
jonmoore
Posts: 108
Joined: Mon Apr 13, 2020 4:18 pm

Re: Make XEQ+ functionality native to the 41x

Post by jonmoore »

Olivier de Nantes wrote:
Thu May 07, 2020 12:51 pm
The idea was to use an editor on PC or Mac in order to write the différents program that are directly modified on the DM 41X in real time
Oliver, my reply was to Bob.

I did see your suggestion for a desktop editor to create 41 applications in your original thread. This is no small undertaking and there are already a multitude of utilities available for developers to test and create 41 applications on their desktops. Take a look through the Development Tools and Software section here: http://www.hp41.org/Contents.cfm

I think maybe you're misunderstanding the crux of what Bob and I are discussing. A fully loaded DM41x can contain in excess of 500 individual operations/routines. UX utilities such as XEQ+ or the excellent customisation's of the Catalogue system included with the AMC/OSX module help a user to a.) execute those operations/routines without having to type them out and b.) unless you possess a photographic memory, it's difficult to remember the specific spellings of those routines/operations you don't use on a regular basis, so a cascaded menu navigation scheme helps you discover and execute those operations at time of need.

The mass key assignment launchers that Ángel includes with many of his modules are a great help too, but they require bespoke overlays if they're to function at their best. Plus there's only 35 or so keys available for user key assignment and that's nowhere near enough for overlay driven interaction with 500+ available commands.

These helpers do of course aid when programming but it's a secondary benefit.
jonmoore
Posts: 108
Joined: Mon Apr 13, 2020 4:18 pm

Re: Make XEQ+ functionality native to the 41x

Post by jonmoore »

The opening section of the SandMath documentation provides an excellent overview of it's mass key assignment launcher.

http://systemyde.com/pdf/SANDMATH_44_4x4_Manual_V7.pdf
Ángel Martin
Posts: 145
Joined: Mon Apr 24, 2017 8:19 pm

Re: Make XEQ+ functionality native to the 41x

Post by Ángel Martin »

Somehow I missed this thread entirely until now, even if it's about one of my favorite subjects ;-) So let's correct this now with a few comments...

The idea of merging the best of AMC_OSX and WARP modules is a very tempting one, I'm sure you wouldn't be surprised if i told you I had toyed with it for a long time. Unfortunately my conclusion is that there is no possible way to do a "leaner" single-page version of XEQ+ that also offers the extended CATS and interrupt-driven enhancements from the OSX together. The main issue is "prime time" conflict, i.e. the routines that must be located in the main bank and cannot be tucked away in bank-switched blocks, You see, the XEQ+ and XEQ$ modes need to read the FATs of all modules presently plugged in the calculator, including its own one. This is a hard enough trick to pull off already running from the main bank, but close to impossible (read: ridiculous amount of code and complexity) if it were running from a switched bank. The way it is now it needs to switch the banks of OTHER modules to get access to their auxiliary FATs, which may be in banked blocks, like it happens in the HEPAX_4H and Power_CL modules...

Bottom line is I think the leanest (practically) implementation is the current one, after all even if you only use XEQ+ / XEQ$ the remaining functionality of the module is bank-switched, and thus not occupying active bus real state. Both the OSX and WARP are packed bursting at their seems (main banks that is), and I wouldn't trade anything off to thin them down into just one.

Now, touching on the mass key-assignments; - as good as that facility is I find myself using it less and less, in favor of the LASTF concept. The main reason being sub-functions cannot be assigned to USER keyboards but they are stored in the lAST-5 buffer for re-execution. Granted it's a temporary location that gets constantly updated in a LIFO scheme, but for practical purposes it works well. The recent enhancements to LAST-5 include an INFO screen on the entries, so you can verify it's the one you really mean... (some functions are duplicated across ROMs, and some others co-exist in main and AUX FATs sometimes... enough to get you confused if you ran them a few days ago and have remained in the LAST-5 buffer since).

One idea to reduce its temporal character can be to save buffer #9 in X-Mem files, creating sets of LAST-5 groups that can be restored on demand... that sounds intriguing to say the least - even if it still doesn't solve the complete riddle.

Thanks for your feedback and inputs, pls. keep your ideas coming, I never tired of these subjects.

ÁM
jonmoore
Posts: 108
Joined: Mon Apr 13, 2020 4:18 pm

Re: Make XEQ+ functionality native to the 41x

Post by jonmoore »

Hi Ángel, firstly thanks for you timely reply but more importantly, thanks for your tireless pursuit of bringing the best of 40+ years of '41' innovation and synthesising it in your own inimitable manner.

I've found a solution to my problem but it's very dependent of the order one loads the modules from Flash to the 41 IO map and most important of all, the content from the Advantage Math and Complex Matrix modules is saved to Flash in the Programs folder. The slots need to be loaded as follows:

SLOT 4 > LIBRARY#4
SLOT 7 > AMC_OSX
SLOT 8 > WARP_CORE
SLOT 9 > UNIT_CONVERT
SLOT A/B > SANDMATH
SLOT C/D > 41Z
SLOT E/F > SANDMATRIX


Because the Flash Programs directory is so seamlessly integrated into the DM41x user experience, I'm able to load programs from both the Advantage Math and Complex Matrix modules at point of need and still benefit from what is for my money the most powerful and flexible suite of mathematics functions and routines available on any pocket calculator. And because of your MCODE magic you've ensured that many of those functions/routines provide 13 significant digits of precision (more than enough on most occasions for my personal use cases on a pocket calculator). And best of all, I don't have to choose between the advantages of the AMC-OSX and Warp Core modules! :)

Up until recently I was of the mind that the 50g was the best pocket calculator tool for working with vectors and matrices (especially when everything is configured to use size 6 font). But the elegance of the UX you provide in your suite of tools has meant that what I lose in WYSIWYG UX on the 50g is more than made up for by the fluidity of the workflow on the DM41x.

Now that I've got a base mathematics configuration up and running I can experiment with other configurations. I'm keen to replicate my HEPAX setup from i41cx but for the moment it appears there are some critical bugs that need to be remedied and ideally I'd like to have access to the same HEPAX RAM state saving that's included in the tools in the i41cx app.

You have too many great modules to go into detail as to my favourites but I do want to single out the HP-16c Module that you and Greg McLure cooked up. Not only is it a great emulation of a HP-16c, the new functionality you've added makes it stand up proud in its own right.

What more to say, nothing other than keep up the sterling work...
Ángel Martin
Posts: 145
Joined: Mon Apr 24, 2017 8:19 pm

Re: Make XEQ+ functionality native to the 41x

Post by Ángel Martin »

Your appreciation of the work put in those modules is rewarding to me, thanks for sharing!

Glad to see you've found a suitable arrangement. My "official" math setup is also very similar to yours, although starting at page#6 and with the only difference being the Formula_Evaluation instead of the UNIT_CONV:

SLOT 4 > LIBRARY#4
SLOT 6> AMC_OSX
SLOT 7 > WARP_CORE
SLOT 8 > FORMULA_EVAL
SLOT 9/A > SANDMATH
SLOT B/C > 41Z
SLOT D/E > SANDMATRIX
SLOT F > free

Also the EVAL_APPS and SOLVER_EQNS are swiftly exchanged in case of need, mostly replacing the SandMatrix slots (occasionally I use the SOLVE & INTG instead of the SandMath too). The whole Formula_Eval approach is very rewarding, I enjoy working with that one a lot.

Best,
ÁM
Last edited by Ángel Martin on Fri May 08, 2020 2:56 pm, edited 1 time in total.
jonmoore
Posts: 108
Joined: Mon Apr 13, 2020 4:18 pm

Re: Make XEQ+ functionality native to the 41x

Post by jonmoore »

Ángel Martin wrote:
Fri May 08, 2020 2:32 pm
Glad to see you've found a suitable arrangement. My "official" math setup is also very similar to yours, although starting at page#6 and with the only difference being the Formula_Evaluation instead of the UNIT_CONV:

SLOT 4 > LIBRARY#4
SLOT 6> AMC_OSX
SLOT 7 > WARP_CORE
SLOT 8 > FORMULA_EVAL
SLOT 9/A > SANDMATH
SLOT B/C > 41Z
SLOT D/E > SANDMATRIX
SLOT F > free

Also the EVAL_APPS and SOLVER_EQNS are swiftly exchanged in case of need, mostly replacing the SandMatrix slots. The whole Formula_Eval approach is very rewarding, I enjoy working with that a lot.

Best,
ÁM
Funnily enough I swap out the Unit Conversions module for Formula Eval myself. I could never get the AECROM Program Generator to behave quite as I wanted but the Formula Evaluation and Equation Solver modules are far preferable.

BTW I forgot to mention this in my last post, the new 5 levels of Last Function recall in AMC/OSX is awesome - I don't use that word too often for obvious reasons, but it's more than deserved in this instance.

A lot of the programs I write are no more than simple 'macros' that string a mix of Sand operations together to achieve my goals;. It's very similar to the the way I work in Mathematica. I'm happy to let the suite of commands/functions handle the low level stuff when those commands/functions have been designed to allow users to focus on their higher level goals. That's the benefit of 40+ years of hive-mind activity!
Post Reply