Post Reply 
DB48X: HP48-like RPL implementation for DM42
10-11-2023, 09:08 PM
Post: #121
RE: DB48X: HP48-like RPL implementation for DM42
I have been trying to spend some more time with the latest build and I have a few thoughts/comments/suggestions...

The biggest issue that I have is the cursor when in the command line. I feel like it is too big and gets in the way of seeing what the next character is. I noticed that the cursor blinks intermittently (as far as I can tell). Can it blink more often or more quickly, revealing what is behind it?

Or optionally, could the cursor be reduced in size or shifted up or down (or a combination of both) so that it doesn't obscure the content behind it? (Like a small flag at the top or bottom of a flagpole). I often find myself mis-typing stuff and I have seen a lot of situations where there is a colon hiding behind the cursor. I think I accidentally enter the colon when typing a zero (when in alpha mode), but it seems to create a pair of colons. I delete one of them, but there is another lurking behind the cursor so I get the scary "BEEP".

Which brings up another thing: Why doesn't enabling the Beep Mute option in settings actually mute the beeps?
Find all posts by this user
Quote this message in a reply
10-12-2023, 03:17 AM (This post was last modified: 10-12-2023 03:20 AM by spiff72.)
Post: #122
RE: DB48X: HP48-like RPL implementation for DM42
Just posting another comment here to state that the updated overlays for BOTH the DB48x (for DM42) and the DB50x (for DM32) are now available to order. Visit the first post of this thread for instructions:
https://www.hpmuseum.org/forum/thread-20113.html

The background overlay is basically identical between the two variants - only the logo on the bottom is different. The real difference is that the DB50x includes a different set of key labels to account for the hardware difference between the key labels on the DM32 vs DM42.

This photo shows the DB48x overlay (tabbed) on my DM42:
https://imgur.com/gallery/Mfxjo7S

Thanks!
Find all posts by this user
Quote this message in a reply
10-12-2023, 08:12 AM
Post: #123
RE: DB48X: HP48-like RPL implementation for DM42
(10-11-2023 09:08 PM)spiff72 Wrote:  I have been trying to spend some more time with the latest build and I have a few thoughts/comments/suggestions...

The biggest issue that I have is the cursor when in the command line. I feel like it is too big and gets in the way of seeing what the next character is. I noticed that the cursor blinks intermittently (as far as I can tell). Can it blink more often or more quickly, revealing what is behind it?

Wow. How did I miss that? The cursor blinking code is broken on real hardware now...

OK. After a quick investigation, the reason I missed it is because it's working on simulator, and working when a menu containing an animation is present. I must have been in one of these cases all the time.

My recent efforts at rewording many of the menus so that there would be no animation (to improve battery life) have made the problem more prevalent. I will investigate.

Quote:Or optionally, could the cursor be reduced in size or shifted up or down (or a combination of both) so that it doesn't obscure the content behind it? (Like a small flag at the top or bottom of a flagpole).

It used to be smaller, but I found it really hard to read.

I believe that the correct fix is to repair the blinking. We'll see if more is needed than that.

Quote: I often find myself mis-typing stuff and I have seen a lot of situations where there is a colon hiding behind the cursor. I think I accidentally enter the colon when typing a zero (when in alpha mode), but it seems to create a pair of colons.

It's like on the HP48: the colon is used for 'tag' objects, e.g. what shows on the stack as `X:10` shows on the command line as `:X:10`.

That being said, DB48X has mode detection, so I could insert a single colon when inside a text (i.e. when the cursor is a C or L).

Quote: I delete one of them, but there is another lurking behind the cursor so I get the scary "BEEP".

Which brings up another thing: Why doesn't enabling the Beep Mute option in settings actually mute the beeps?

The corresponding code is not implemented ;-)
This was already reported, I just never had time to get to it. The way DMCP deals with settings is a bit more complicated than the internal DB48X model, so more code is needed to connect to it correctly.
Find all posts by this user
Quote this message in a reply
10-12-2023, 08:13 AM
Post: #124
RE: DB48X: HP48-like RPL implementation for DM42
(10-12-2023 03:17 AM)spiff72 Wrote:  Just posting another comment here to state that the updated overlays for BOTH the DB48x (for DM42) and the DB50x (for DM32) are now available to order. Visit the first post of this thread for instructions:
https://www.hpmuseum.org/forum/thread-20113.html

The background overlay is basically identical between the two variants - only the logo on the bottom is different. The real difference is that the DB50x includes a different set of key labels to account for the hardware difference between the key labels on the DM32 vs DM42.

This photo shows the DB48x overlay (tabbed) on my DM42:
https://imgur.com/gallery/Mfxjo7S

Thanks!

I had a prototype version of this. It looks great. Can't wait to record videos with the real one.
Find all posts by this user
Quote this message in a reply
10-12-2023, 11:06 AM
Post: #125
RE: DB48X: HP48-like RPL implementation for DM42
(10-12-2023 08:13 AM)c3d Wrote:  
(10-12-2023 03:17 AM)spiff72 Wrote:  Just posting another comment here to state that the updated overlays for BOTH the DB48x (for DM42) and the DB50x (for DM32) are now available to order. Visit the first post of this thread for instructions:
https://www.hpmuseum.org/forum/thread-20113.html

The background overlay is basically identical between the two variants - only the logo on the bottom is different. The real difference is that the DB50x includes a different set of key labels to account for the hardware difference between the key labels on the DM32 vs DM42.

This photo shows the DB48x overlay (tabbed) on my DM42:
https://imgur.com/gallery/Mfxjo7S

Thanks!

I had a prototype version of this. It looks great. Can't wait to record videos with the real one.

The updated version is MUCH nicer looking in my opinion - I think you will be pleased!

Also, I wasn't complaining that it was entering two colons. That was just a common example of the situation I get into when I am entering text and the cursor hides things.
Find all posts by this user
Quote this message in a reply
10-12-2023, 12:48 PM
Post: #126
RE: DB48X: HP48-like RPL implementation for DM42
(10-12-2023 11:06 AM)spiff72 Wrote:  
(10-12-2023 08:13 AM)c3d Wrote:  I had a prototype version of this. It looks great. Can't wait to record videos with the real one.

The updated version is MUCH nicer looking in my opinion - I think you will be pleased!

Also, I wasn't complaining that it was entering two colons. That was just a common example of the situation I get into when I am entering text and the cursor hides things.

I know, it's just that it's the spirit of what I am trying to achieve that the two colons should only be there when useful.
Find all posts by this user
Quote this message in a reply
10-12-2023, 02:02 PM (This post was last modified: 10-12-2023 02:04 PM by spiff72.)
Post: #127
RE: DB48X: HP48-like RPL implementation for DM42
Another usage question...

On my other RPL calculators, I am accustomed to being able to create a program that can execute right from the variable menu.

Simple example:
Create program <<25.4 / >>
Store it in 'MMIN' (mm to inches)

Now while in the variable menu, MMIN is visible.

To run it, I can type in 50 ENTER
Then press the MMIN to run the program, getting 1.968...

However, I am also accustomed to the following method of running the same program:
Type in 50, and then immediately press the MMIN menu item.
This appends MMIN right after the 50 on the command line instead of executing the program.

Can this behavior change to replicate behavior of a 50g (or even newRPL, which behaves the same way)? This saves a keystroke (the ENTER key).
Find all posts by this user
Quote this message in a reply
10-12-2023, 02:28 PM
Post: #128
RE: DB48X: HP48-like RPL implementation for DM42
Sorry to pile on, but I was just doing some more testing, and checking some of the shifted alpha characters. I noticed that when doing ALPHA-FirstShift-EEX key, it doesn't enter the angle symbol - it enters x10 instead. ALPHA-SecondShift-EEX enters produces the expected character from the overlay, though.

Is this a bug or intended behavior?

I checked all the other shifted alpha keys and they generate the expected characters, so the FirstShift-EEX key seems like the only outlier.

Thanks!
Find all posts by this user
Quote this message in a reply
10-12-2023, 03:49 PM
Post: #129
RE: DB48X: HP48-like RPL implementation for DM42
(10-12-2023 08:12 AM)c3d Wrote:  Wow. How did I miss that? The cursor blinking code is broken on real hardware now...

OK. After a quick investigation, the reason I missed it is because it's working on simulator, and working when a menu containing an animation is present. I must have been in one of these cases all the time.

My recent efforts at rewording many of the menus so that there would be no animation (to improve battery life) have made the problem more prevalent. I will investigate.

After seeing this comment regarding animations, it occurred to me that maybe enabling the seconds display on the status bar might trigger better blinky behavior, and I can confirm that it does - at least at first. If you leave it alone while there is an active command line present, it blinks about once per second at first, but then transitions to once every 3 seconds or so. Then after a bit longer, it just stops blinking entirely (and the seconds stops updating on the status bar).

I normally don't care to include the seconds in the status bar because it seems like overkill on a calculator and it probably uses a little extra battery juice over the long term.
Find all posts by this user
Quote this message in a reply
10-14-2023, 02:02 AM (This post was last modified: 10-14-2023 02:04 AM by spiff72.)
Post: #130
RE: DB48X: HP48-like RPL implementation for DM42
Another possible bug:

When the 1.2E32 option is active (instead of the 1.2x10^32 option), I can't enter any numbers without a decimal point because I get an error. (Invalid digit for base)
9.E6 [ENTER] works fine
9E6 [ENTER] "Error: Invalid digit for base"
9.2E6 [ENTER] works fine, too

If the 1.2x10^32 option is active, the above examples all work fine.
Find all posts by this user
Quote this message in a reply
10-15-2023, 09:09 PM
Post: #131
RE: DB48X: HP48-like RPL implementation for DM42
Release v0.4.7 is out, https://github.com/c3d/DB48X-on-DM42/rel...tag/v0.4.7.

The main new features in this release are numerical integration and solver. Not completely finished yet, but works on most simple cases.

Another significant improvement is that the text editor is now reasonably fast when the variables menu is active.
Find all posts by this user
Quote this message in a reply
10-17-2023, 07:19 PM
Post: #132
RE: DB48X: HP48-like RPL implementation for DM42
(10-12-2023 02:02 PM)spiff72 Wrote:  Another usage question...

On my other RPL calculators, I am accustomed to being able to create a program that can execute right from the variable menu.

Simple example:
Create program <<25.4 / >>
Store it in 'MMIN' (mm to inches)

Now while in the variable menu, MMIN is visible.

To run it, I can type in 50 ENTER
Then press the MMIN to run the program, getting 1.968...

However, I am also accustomed to the following method of running the same program:
Type in 50, and then immediately press the MMIN menu item.
This appends MMIN right after the 50 on the command line instead of executing the program.

Can this behavior change to replicate behavior of a 50g (or even newRPL, which behaves the same way)? This saves a keystroke (the ENTER key).


Yes, this is a bug. Filed https://github.com/c3d/DB48X-on-DM42/issues/420.
Find all posts by this user
Quote this message in a reply
10-17-2023, 07:25 PM
Post: #133
RE: DB48X: HP48-like RPL implementation for DM42
(10-12-2023 02:28 PM)spiff72 Wrote:  Sorry to pile on, but I was just doing some more testing, and checking some of the shifted alpha characters. I noticed that when doing ALPHA-FirstShift-EEX key, it doesn't enter the angle symbol - it enters x10 instead. ALPHA-SecondShift-EEX enters produces the expected character from the overlay, though.

Is this a bug or intended behavior?

I checked all the other shifted alpha keys and they generate the expected characters, so the FirstShift-EEX key seems like the only outlier.

Thanks!

Bug, https://github.com/c3d/DB48X-on-DM42/issues/421.
Find all posts by this user
Quote this message in a reply
10-17-2023, 07:34 PM
Post: #134
RE: DB48X: HP48-like RPL implementation for DM42
(10-14-2023 02:02 AM)spiff72 Wrote:  Another possible bug:

When the 1.2E32 option is active (instead of the 1.2x10^32 option), I can't enter any numbers without a decimal point because I get an error. (Invalid digit for base)
9.E6 [ENTER] works fine
9E6 [ENTER] "Error: Invalid digit for base"
9.2E6 [ENTER] works fine, too

If the 1.2x10^32 option is active, the above examples all work fine.

Filed as https://github.com/c3d/DB48X-on-DM42/issues/422. It's my attempt at smart parsing binary number that is a bit too optimized. For non-based numbers, it should just ignore hex digits entirely ;-)
Find all posts by this user
Quote this message in a reply
10-18-2023, 05:56 AM (This post was last modified: 10-18-2023 05:56 AM by c3d.)
Post: #135
RE: DB48X: HP48-like RPL implementation for DM42
(10-12-2023 03:49 PM)spiff72 Wrote:  After seeing this comment regarding animations, it occurred to me that maybe enabling the seconds display on the status bar might trigger better blinky behavior, and I can confirm that it does - at least at first. If you leave it alone while there is an active command line present, it blinks about once per second at first, but then transitions to once every 3 seconds or so. Then after a bit longer, it just stops blinking entirely (and the seconds stops updating on the status bar).

I normally don't care to include the seconds in the status bar because it seems like overkill on a calculator and it probably uses a little extra battery juice over the long term.

What you see is the behaviour adopted to make sure that animations in general do not draw too much juice. The interval between animations decreases sharply over time:
  • Initially, the refresh period is determined by the fastest necessary animation, see below
  • After 10s, updates are every 3s
  • After 1min, update every 10s
  • After 3min, update every minute

The animations refresh periods are:
  • 0.2s for menus on USB, 0.85s on battery
  • 0.5s for the cursor (but there is a bug there ATM)
  • 2s for battery voltage
  • 1s or 1 minute for clock depending on settings

With this in place, I expect battery usage to be only very marginally increased by animations. Screen redraws have also been carefully optimized, so that only the parts that need a refresh are redrawn.
Find all posts by this user
Quote this message in a reply
10-22-2023, 11:31 PM
Post: #136
DB48X v0.4.8 is out
The new release is here:

https://github.com/c3d/DB48X-on-DM42/rel...tag/v0.4.8

This release implements the last remaining user-oriented RPL data type, unit objects. However, unit operations are not implemented yet. There is no unit arithmetic nor unit conversions yet.

New features:

Multi-line rendering of result level (#455)
Render graphic objects in graphical rendering mode (#453)
DM32 documentation is now distinct from DM42 (#450)
Improvements to FIX rounding (#445, #446)
Save editor state when using EXIT (#439)
Add images in web documentation, skip them in on-line help (#438)
Fixed-base based numbers now enabled on DB50X (#432)
Integrate automatically enables approximations (#415)
New MinimumSignificantDigits (DIG) setting (#412)
Add CursorBlinkRate setting (#407)
Unit objects and menus, but no arithmetic or conversions yet (#16)

Bug fixes:

Use a unicode font for command name rendering (#459)
Graphical mode for stack rendering (still showing as "grey" intentionally)
Computation of complex log / power when not in radians (#452)
Merge the two "Help" sections in the documentation (#451)
Do not emit error for "ABC" 5 * with NumericResults on (#447)
Allow PowerOff and Save to work in Alpha mode (#444)
Show Help as the command name when help topic not found (#440)
Fixing in ordering of command-line history (#439)
Avoid Invalid digit for base error for 1E6 (#422)
Show correct symbol, ∡, for Alpha-Shift-EEX (#421)
Update menus when a setting changes (#416)

Improvements:

Improve generation of font file for more reliable builds (#458)
Improve contrast of selected line in square menus (#457)
Add [] inserter in matrix menu (#456)
Leave one pixel blank on right of stack (#454)
Machine-specific variations in the documentation (#450)
Many minor changes and corrections in documentation
Improvement to storytelling file (#448)
Link DB48X YouTube playlist from documentation
Update acknowledgements section
Improve rendering of shift keys in built-in help (#437)
Increase maximum size for big numbers (#426)
Accept LogGamma as alternative spelling for lgamma (#426)
Directly execute menu functions in direct mode (#420)
Add Authors section in documentation (#419)
Make on-line help accessible on GitHub and GitLab (#418)
Rename simulator to db48x (#417)
Add ∫ to IntegrationMenu entries (#414)
Find all posts by this user
Quote this message in a reply
10-25-2023, 04:30 PM
Post: #137
RE: DB48X: HP48-like RPL implementation for DM42
I posted a rather long demo on YouTube





I hope that this will give you a strong desire to try it out ;-)
Find all posts by this user
Quote this message in a reply
10-25-2023, 09:57 PM (This post was last modified: 10-25-2023 09:58 PM by Helix.)
Post: #138
RE: DB48X: HP48-like RPL implementation for DM42
(10-25-2023 04:30 PM)c3d Wrote:  I hope that this will give you a strong desire to try it out ;-)

I have to buy a Swissmicros calculator first, and it won't happen this year. Smile

One think I dislike is the need to add stickers to the keys, because it’s ugly, and they wear out over time, so my choice will be the DM42.
The locations of the tool, equation and eval keys are easy to remember, the choice for the variable menu and swap command make sense, but I wouldn’t be happy with the inversion of the LOG and EXP functions.
The help file says that keyboard remapping will be available in the future, but in this case will the remapping be also effective in equations and programs? That’s not the case for the HP48 - 50g.

Is there a way to get results directly in decimal format instead of fractions, without having to press the E key?
If I understand correctly the help file, currently the trick is to type at least one integer with a decimal mark, for example 1. 3 /

A Windows executable of the simulator will be available in the future, for users that are not familiar with Linux and computer programming?

Jean-Charles
Find all posts by this user
Quote this message in a reply
10-25-2023, 11:02 PM
Post: #139
RE: DB48X: HP48-like RPL implementation for DM42
(10-25-2023 09:57 PM)Helix Wrote:  
(10-25-2023 04:30 PM)c3d Wrote:  I hope that this will give you a strong desire to try it out ;-)

I have to buy a Swissmicros calculator first, and it won't happen this year. Smile

One think I dislike is the need to add stickers to the keys, because it’s ugly, and they wear out over time, so my choice will be the DM42.

Before committing to that choice, please be mindful that I'm reaching the limits of what fits in a DM42, and at some point the DM32 is likely to have more features (which is why the DM32 version is called DB50X).

Also, I did consider having a different key mapping for the DM32, but it's much harder than for the DM42. There is no clear consensus on what that mapping should look like.

Quote:The locations of the tool, equation and eval keys are easy to remember, the choice for the variable menu and swap command make sense, but I wouldn’t be happy with the inversion of the LOG and EXP functions.

I'll probably add a setting for that (i.e. not force you to have custom assignments for it). Or better yet, have a way to load default key bindings from disk if you don't like my choices.

Quote:The help file says that keyboard remapping will be available in the future, but in this case will the remapping be also effective in equations and programs? That’s not the case for the HP48 - 50g.

That's a good observation. Interestingly, the implementation I had in mind would not have this limitation, but I had not even realized the difference. Notably, to ASN a standard function like EXP, you need to wrap it in a program. In my implementation, I was thinking you would be able to assign the original RPL object directly.

And that raises something that I had not considered, which is what happens if you insert a key binding for a user object in a program. For a variable, you refer it by name, which means that if you insert FOO in a program and then change the value of FOO, the calling program uses the new implementation of FOO. But if you assign << 1 + >> to key 'EXP', and then type the EXP while entering a program, my expectation would be that it would insert << 1 + >>. Which would not evaluate the code.

Two possible options here:

1) Keep that behaviour, knowing that if you want something that evaluates, you can add a binding to a name, e.g. 'FOO', and then that would insert FOO in your program, and you could then edit FOO.

2) Not insert the key-bound object itself, but some reference to it, through a function e.g. enter { exp } UserKey in your program, which would evaluate the user key associated with exp, with the side effect that if you change that binding later, it changes in your program. Which may be desirable or not. In that option too, you can control what happens by adding a level of indirection through a variable.

I created an issue to track that: https://github.com/c3d/DB48X-on-DM42/issues/470. Please feel free to follow up there with your ideas about how that should work.

Quote:Is there a way to get results directly in decimal format instead of fractions, without having to press the E key?
If I understand correctly the help file, currently the trick is to type at least one integer with a decimal mark, for example 1. 3 /

In theory, there is a way. There is a setting under the Math settings, which forces numerical results, as opposed to symbolic results. I thought I had implemented the code that automatically converts fractions when that setting is on, but I think I broke that. In any case, it's supposed to be how it works, and it will be fixed.

Quote:A Windows executable of the simulator will be available in the future, for users that are not familiar with Linux and computer programming?

I do not plan to build it myself, not having a Windows machine at hand. I used to have a Windows VM, but I used it so infrequently that it rot away. However, the simulator code is written using Qt, precisely to make a Windows port relatively easy. Building for Linux took me minutes. If someone wants to build the Windows version, they are welcome to. At some point, I will defer the builds of the simulators to the GitHub infrastructure, but that takes time, and I'm focusing on functionality at the moment.
Find all posts by this user
Quote this message in a reply
10-26-2023, 05:48 PM
Post: #140
RE: DB48X: HP48-like RPL implementation for DM42
(10-25-2023 09:57 PM)Helix Wrote:  I have to buy a Swissmicros calculator first, and it won't happen this year.

Here - with the Swiss-Micros calculators - is a very big problem for me personally. There are too many shortcomings for the machines to be fun. I confess that the DM 42 S was my entry into the HP world. It was followed by DM 10L, DM 11L, DM 15 L, DM 41L. Nowadays I wouldn't buy any Swiss-Micros calculator no more. The DM 10L had the well-known problem with spots on the display. Of course, the oven method didn't work. So it was given to the electronic scrap. In the meantime I have many HP originals, and with this experience My Swiss-Micros models are nightmarish. Keys that are so hard to press that you are tempted to pick up a hammer, the constant fear that something is not working properly or will fall off soon, and last but not least the horrible tactile feeling when touching them, especially bad with the DM 42 S; the centre of gravity is completely different to the HP-original, somehow it is a brick, where with the original the weight, surface texture and the response behaviour of the key are the cause of everlasting joy. The Frankenstein creations lie untouched in a box, actually I should throw them all away too. The broken money counts for nothing compared to the constant annoyance.

Best,

Hans
Find all posts by this user
Quote this message in a reply
Post Reply 




User(s) browsing this thread: 3 Guest(s)