Post Reply 
DB48X: HP48-like RPL implementation for DM42
11-19-2024, 05:37 AM
Post: #461
RE: DB48X: HP48-like RPL implementation for DM42
(11-18-2024 08:01 AM)c3d Wrote:  Replying here to a private message containing bug reports.

Narek Wrote:Hi,
Thank you for your great work and effort I am enjoying your creation.
I'm facing some issues and suggestions using using db48x on my dm42n that I would like to repport.

1- In plot section I tried to use Xrange and Yrange option and when I indicated value (like 5) tge graph was not showing anymore and also everytine I tried to plot a function my screen turned to black. I restarted my calculator fo fix it which made me re do all the customisations that I did before.

XRange any Yrange take two values. So when you say "value (like 5)" I don't understand what you mean. If I try 5 5, this gives an "Invalid plot parameters" error. If I try just 5, this gives a "Too few arguments" error.

As for restarting the calculator, I assume you tried to interrupt program execution with EXIT and it did not work? How fast did the screen turn black, was it little by little, or all at once?

Quote:2- When I tried to solve a 2 by 3 matrix and do a summation to another 2 by 3 matrix it shows me error. [[2 3 4][1 2 3]] + [[1 2 4][1 2 3]].

The issue has been fixed in 0.8.6. Please try again and report if it still fails.

Quote:Couple of suggestions:

1- After using the plot command the function gets deleted fo no reason.

Yes, it is deleted for a reason: the command consumed it ;-) See the Stuttgart talk for the philosophy behind it. The "EQ" based plotting environment does not exist yet, what exists at the moment is just the underlying commands doing the plotting in various styles.

Quote: The function is only approachable by going to hist which makes editing the equation difficult.

There are at least three other ways to recover the function: LastArg, Undo and duplicating it before running "Plot". Each of them is pretty inexpensive.

Quote:2- I suggest to have access to history of evaluated values in stack by pressing edit. For example if I evaluate this formula '1/sqrt(2)' if I press edit I will only have access to edit the final value and not the formula. This would be very helpful for people like me who are dealing with big formulas every day and making lots of mistakes.

This already exists. Here are a few ways to do it:

1. The "History" function itself contains the last 8 things you entered, including those you did not ENTER (i.e. the history is kept if you cancel a command line with EXIT). It is quickly accessible with the "transient edit" mode, i.e. you hold the right/down arrow and hit F2 to move back in history. This is the same thing as the unshifted F2 key in the EDIT menu, which moves the cursor one word to the left, but when used at the beginning of the line, moves to the previous history entry.

2. You can put various expressions on the stack and then enter the interactive stack (left / up arrow). From there, you can "Edit" any level of the stack with F6, then bring that level down to the first level with Pick, and then do whatever operation you want with it, e.g. the Function plot.

3. You can store your expression in a variable with STO, and use the VAR menu to recall / edit / store it quickly.

Quote:3- if there could be an option to modify the editing indicator which is a vertical line with a D on it to a simple '.' Or '_' that would be great.

Can you elaborate on why you think it would be great?

The 'D' plays an important role, telling you that you are in direct entry mode, i.e. pressing the 'SIN' key will execute it, and pressing the key left of the + key will insert a space. There are a few other modes, where the same 'SIN' key will behave differently:


- 'S' means it's searching, so SIN will search for the J character incrementally.
- 'L' means entering lowercase text, 'C' uppercase text, so it will insert j or J.
- 'P' means you are in program entry mode, so it will enter the text SIN with spaces around it.
- 'A' means you are in algebraic entry mode, so it will enter the text SIN() and put the cursor inside the parentheses. If you type the R/S key left of +, it will insert =
- 'E' means that you are in expression mode inside an algebraic, i.e. inside parentheses. SIN will behave like for A, the R/S key will insert a semicolon.
- 'M' means that you are in matrix mode. This mode is not fully functional yet, for the moment it's quite similar to 'P'
- 'B' means you are in based number mode (after #). The second row of keys enters ABCDEF directly for quick hexadecimal entry
- 'U' means you are in Unit mode, which means that typing the E / EEX / x10n key would insert a unit SI prefix.

The cursor also changes colour to tell you if you are in alpha mode without having to look at the top of the screen to check.

I do not fully understand why you think not having the information would be an improvement. If this is simply a matter of personal taste regarding the shape of the cursor, I invite you to submit a patch drawing the cursor the way you like it.
Thank you once again for your incredible creation. I’ve thoroughly enjoyed using it, and I appreciate the dedication and support you provide to the community.

This is my first time writing here, and while I’m still learning the best ways to engage, I hope to improve over time. Thank you for your patience as I share my feedback and suggestions below:

XRange and YRange Input
Initially, I was unclear about how to input a range for XRange and YRange, which led me to enter a single value like 5. This caused some issues. I’ve now learned the correct method (e.g., -5 r/s 5) and will proceed accordingly.

Hatched Black Screen Issue

When attempting to plot certain equations, the screen displayed a hatched black pattern. The same issue occurred when using the SHOW command. If this behavior persists, I’ll try to provide a reproducible case for further investigation.

Matrix Summation Issue
The issue I encountered with summing two 2x3 matrices has been resolved in version 0.8.6. Thank you for the fix. I’ll continue testing, and if any additional issues arise, I’ll report them.

History Function Feedback
I understand and appreciate the Hist option and its ability to access the last 8 inputs. However, my concern lies in cases like the following example:

Input xeq -> 'sqrt(12)' -> Enter -> 1/x.
At this point, the stack visually displays 1/(sqrt(12)), which is helpful.
Upon pressing r/s, the evaluated value is shown on the stack.
If I then hold Down and F2, the history incorrectly retrieves 'sqrt(12)' instead of 1/(sqrt(12)).
This seems to be a limitation in the current implementation. Having the ability to edit the exact formula from the evaluated value on the stack would be extremely beneficial, especially for users like me who often work with complex formulas and frequently make adjustments.

Editing Indicator Suggestion

While I understand the purpose of the editing indicator (e.g., the letter D for direct entry mode), I believe much of this information is already given through other visual elements on the screen. For example:

The top corner indicates whether uppercase or lowercase text is active.
The brackets already visually suggest when the user is editing inside a bracket.
My suggestion is to offer an option for alternate indicator styles (e.g., a simple dot . or underscore _) for users like me who find the current implementation less intuitive since without this information calculator is fully functional.

If creating this option is not possible, I would appreciate guidance on how to create a patch myself to customize this behavior.

Thank you again for your incredible work and for considering these suggestions. I look forward to your feedback and guidance.
Find all posts by this user
Quote this message in a reply
11-19-2024, 08:57 AM (This post was last modified: 11-19-2024 08:57 AM by c3d.)
Post: #462
RE: DB48X: HP48-like RPL implementation for DM42
(11-18-2024 08:01 AM)c3d Wrote:  Replying here to a private message containing bug reports.

Narek Wrote:Hi,
Thank you for your great work and effort I am enjoying your creation.
I'm facing some issues and suggestions using using db48x on my dm42n that I would like to repport.

1- In plot section I tried to use Xrange and Yrange option and when I indicated value (like 5) tge graph was not showing anymore and also everytine I tried to plot a function my screen turned to black. I restarted my calculator fo fix it which made me re do all the customisations that I did before.

XRange any Yrange take two values. So when you say "value (like 5)" I don't understand what you mean. If I try 5 5, this gives an "Invalid plot parameters" error. If I try just 5, this gives a "Too few arguments" error.

As for restarting the calculator, I assume you tried to interrupt program execution with EXIT and it did not work? How fast did the screen turn black, was it little by little, or all at once?

Quote:2- When I tried to solve a 2 by 3 matrix and do a summation to another 2 by 3 matrix it shows me error. [[2 3 4][1 2 3]] + [[1 2 4][1 2 3]].

The issue has been fixed in 0.8.6. Please try again and report if it still fails.

Quote:Couple of suggestions:

1- After using the plot command the function gets deleted fo no reason.

Yes, it is deleted for a reason: the command consumed it ;-) See the Stuttgart talk for the philosophy behind it. The "EQ" based plotting environment does not exist yet, what exists at the moment is just the underlying commands doing the plotting in various styles.

Quote: The function is only approachable by going to hist which makes editing the equation difficult.

There are at least three other ways to recover the function: LastArg, Undo and duplicating it before running "Plot". Each of them is pretty inexpensive.

Quote:2- I suggest to have access to history of evaluated values in stack by pressing edit. For example if I evaluate this formula '1/sqrt(2)' if I press edit I will only have access to edit the final value and not the formula. This would be very helpful for people like me who are dealing with big formulas every day and making lots of mistakes.

This already exists. Here are a few ways to do it:

1. The "History" function itself contains the last 8 things you entered, including those you did not ENTER (i.e. the history is kept if you cancel a command line with EXIT). It is quickly accessible with the "transient edit" mode, i.e. you hold the right/down arrow and hit F2 to move back in history. This is the same thing as the unshifted F2 key in the EDIT menu, which moves the cursor one word to the left, but when used at the beginning of the line, moves to the previous history entry.

2. You can put various expressions on the stack and then enter the interactive stack (left / up arrow). From there, you can "Edit" any level of the stack with F6, then bring that level down to the first level with Pick, and then do whatever operation you want with it, e.g. the Function plot.

3. You can store your expression in a variable with STO, and use the VAR menu to recall / edit / store it quickly.

Quote:3- if there could be an option to modify the editing indicator which is a vertical line with a D on it to a simple '.' Or '_' that would be great.

Can you elaborate on why you think it would be great?

The 'D' plays an important role, telling you that you are in direct entry mode, i.e. pressing the 'SIN' key will execute it, and pressing the key left of the + key will insert a space. There are a few other modes, where the same 'SIN' key will behave differently:


- 'S' means it's searching, so SIN will search for the J character incrementally.
- 'L' means entering lowercase text, 'C' uppercase text, so it will insert j or J.
- 'P' means you are in program entry mode, so it will enter the text SIN with spaces around it.
- 'A' means you are in algebraic entry mode, so it will enter the text SIN() and put the cursor inside the parentheses. If you type the R/S key left of +, it will insert =
- 'E' means that you are in expression mode inside an algebraic, i.e. inside parentheses. SIN will behave like for A, the R/S key will insert a semicolon.
- 'M' means that you are in matrix mode. This mode is not fully functional yet, for the moment it's quite similar to 'P'
- 'B' means you are in based number mode (after #). The second row of keys enters ABCDEF directly for quick hexadecimal entry
- 'U' means you are in Unit mode, which means that typing the E / EEX / x10n key would insert a unit SI prefix.

The cursor also changes colour to tell you if you are in alpha mode without having to look at the top of the screen to check.

I do not fully understand why you think not having the information would be an improvement. If this is simply a matter of personal taste regarding the shape of the cursor, I invite you to submit a patch drawing the cursor the way you like it.

I forgot to mention: if you are OK with a fully black cursor or fully white cursor, you can try:

Code:

0 Gray CursorForeground

You can vary the customization. Maybe with the existing parameters you can get a block cursor to your liking, something like:

Code:

3 CursorFont
0.5 Gray CursorForeground
0.5 Gray CursorBackground
0.9 Gray CursorAlphaForeground
0.9 Gray CursorAlphaBackground
0.0 Gray CursorBorder
0.8 Gray CursorSelBackground

There are other parameters that you can pla with.

DB48X,HP,me
Find all posts by this user
Quote this message in a reply
11-19-2024, 09:01 AM
Post: #463
RE: DB48X: HP48-like RPL implementation for DM42
(11-18-2024 10:10 PM)LinusSch Wrote:  I've finally arrived at the point where I try to run
Code:
make sim
but I seem to be hitting some path problems.

Code:
WARNING: Failure to find: ../recorder/recorder.c
WARNING: Failure to find: ../recorder/recorder_ring.c
WARNING: Failure to find: ../recorder/recorder.c
WARNING: Failure to find: ../recorder/recorder_ring.c

You forgot to do:

Code:

git submodule update --init --recursive

DB48X,HP,me
Find all posts by this user
Quote this message in a reply
11-19-2024, 09:04 AM
Post: #464
RE: DB48X: HP48-like RPL implementation for DM42
(11-18-2024 09:13 PM)battlecoder Wrote:  First, I want to express my gratitude to anyone involved in this project. I've been recently reading about it, and checking the web version of DB48X and I love it. I've been also watching Christophe's superb presentation (I'm like 80% done. Been watching it between breaks) and many of the annoyances and missing features in other calculators pointed out by the presenter are things that I've also noticed, but couldn't have solved as elegantly as DB48X does, even if I had decided to write programs to solve them.

The many input modes and the "smart" functions (like the space/;/eval key) are a bit intimidating but I'm sure it's just a matter of getting used to them.

I recently bought a DM42, and I have to admit it was a bit discouraging to read that the DM32 is deemed more powerful and it has its own separate build (DB50X) that while still identical to the DB48X right now, could eventually have more features. Makes me feel like I should have bought the DM32 instead Sad

Or a DM42n, same hardware with different keys.

Quote:So I have a couple of questions:
Are there already features that can't fit in the DM42? or are we still not "close to the limits" of the DM42 at which the DB50x(i.e: DM32) will start getting features that DB48X (and thus the DM42) will lack?

At this point, the feature set is quasi-identical. We are close to the limit, but I'm starting to think that we might be able to complete the HP48 feature set, and be close to the HP50 feature set by delegating things to the library.

Quote:What about the DM42n? Is the DB50X going to be available on that hardware eventually?

No, sorry. It is not going to be available on that hardware eventually for a very good reason: it is available on that hardware today.

DB48X,HP,me
Find all posts by this user
Quote this message in a reply
11-19-2024, 10:54 AM
Post: #465
RE: DB48X: HP48-like RPL implementation for DM42
(11-19-2024 03:42 AM)battlecoder Wrote:  [...]
(11-18-2024 11:41 PM)spiff72 Wrote:  Yes - I have been providing DB50x overlays to several people who have the DM42n, so it definitely can be used on that hardware.
Nice! As soon as I get a DM42n I might be placing an order of the overlay ! Although I'd assume the DM42n would use the same overlay as the DM42 and not the DM32 overlay, despite being able to run DB50x correct?

Just take a look at #133 in the relevant thread
Find all posts by this user
Quote this message in a reply
11-19-2024, 03:56 PM
Post: #466
RE: DB48X: HP48-like RPL implementation for DM42
(11-19-2024 09:04 AM)c3d Wrote:  
Quote:What about the DM42n? Is the DB50X going to be available on that hardware eventually?
No, sorry. It is not going to be available on that hardware eventually for a very good reason: it is available on that hardware today.

Got me confused and concerned for the first half, not gonna lie! Thanks for the extra confirmation that it works on the DM42n, as well as answering my other questions ~

(11-19-2024 10:54 AM)raprism Wrote:  
(11-19-2024 03:42 AM)battlecoder Wrote:  [...]
Nice! As soon as I get a DM42n I might be placing an order of the overlay ! Although I'd assume the DM42n would use the same overlay as the DM42 and not the DM32 overlay, despite being able to run DB50x correct?

Just take a look at #133 in the relevant thread
Thanks! Given the slightly different keyboard layout of the DM32 I assumed it needed a different overlay. This clarified things greatly.
Visit this user's website Find all posts by this user
Quote this message in a reply
11-19-2024, 04:17 PM
Post: #467
RE: DB48X: HP48-like RPL implementation for DM42
Hello, I partly agree
One suggestion can be to have in data entry mode the mode to the far left and a couple of spaces before the number entry:

Example:
D 813.23
if switch the mode, the far left mode indicator can change.
P 813.23 <<
and so on...
this way it does not have to be blinking also.

Quote:Can you elaborate on why you think it would be great?

The 'D' plays an important role, telling you that you are in direct entry mode, i.e. pressing the 'SIN' key will execute it, and pressing the key left of the + key will insert a space. There are a few other modes, where the same 'SIN' key will behave differently:


- 'S' means it's searching, so SIN will search for the J character incrementally.
- 'L' means entering lowercase text, 'C' uppercase text, so it will insert j or J.
- 'P' means you are in program entry mode, so it will enter the text SIN with spaces around it.
- 'A' means you are in algebraic entry mode, so it will enter the text SIN() and put the cursor inside the parentheses. If you type the R/S key left of +, it will insert =
- 'E' means that you are in expression mode inside an algebraic, i.e. inside parentheses. SIN will behave like for A, the R/S key will insert a semicolon.
- 'M' means that you are in matrix mode. This mode is not fully functional yet, for the moment it's quite similar to 'P'
- 'B' means you are in based number mode (after #). The second row of keys enters ABCDEF directly for quick hexadecimal entry
- 'U' means you are in Unit mode, which means that typing the E / EEX / x10n key would insert a unit SI prefix.

The cursor also changes colour to tell you if you are in alpha mode without having to look at the top of the screen to check.

I do not fully understand why you think not having the information would be an improvement. If this is simply a matter of personal taste regarding the shape of the cursor, I invite you to submit a patch drawing the cursor the way you like it.
Find all posts by this user
Quote this message in a reply
12-01-2024, 06:01 PM
Post: #468
RE: DB48X: HP48-like RPL implementation for DM42
Is there a way to remove 'ΣData' from the VAR menu? The usual method (' + choose name, then PurgeAll) fails with "Invalid Name". In fact the name isn't even italicized in the display (as other names are using this method).

"In a time of universal deceit, telling the truth is a revolutionary act."
Visit this user's website Find all posts by this user
Quote this message in a reply
12-01-2024, 07:53 PM
Post: #469
RE: DB48X: HP48-like RPL implementation for DM42
(12-01-2024 06:01 PM)Orome Wrote:  Is there a way to remove 'ΣData' from the VAR menu? The usual method (' + choose name, then PurgeAll) fails with "Invalid Name". In fact the name isn't even italicized in the display (as other names are using this method).

Did you try the Purge command instead of PurgeAll? This worked for me.

WP31S/WP34S, WP43/C47, newRPL (various), and DB48X adhesive and tabbed overlays:
https://www.hpmuseum.org/forum/thread-20113.html
Find all posts by this user
Quote this message in a reply
12-01-2024, 09:53 PM
Post: #470
RE: DB48X: HP48-like RPL implementation for DM42
(12-01-2024 07:53 PM)spiff72 Wrote:  Did you try the Purge command instead of PurgeAll? This worked for me.

Yep, that worked. Thanks!

"In a time of universal deceit, telling the truth is a revolutionary act."
Visit this user's website Find all posts by this user
Quote this message in a reply
12-02-2024, 01:43 AM
Post: #471
v0.8.7 is out - Performance optimizations
Pre-release v0.8.7 is available for download. The main focus is performance optimizations. 25x25 matrix multiplication is about 10x as fast as in 0.8.7. And if you write your own library code, LIBS, ATTACH and DETACH are your friends. Many bug fixes as well. See the release notes for details.

DB48X,HP,me
Find all posts by this user
Quote this message in a reply
12-02-2024, 01:46 AM
Post: #472
RE: DB48X: HP48-like RPL implementation for DM42
(12-01-2024 09:53 PM)Orome Wrote:  
(12-01-2024 07:53 PM)spiff72 Wrote:  Did you try the Purge command instead of PurgeAll? This worked for me.

Yep, that worked. Thanks!

This is semi-intentional. Some reserved variable names such as statistics data or PPAR are treated specially. Since operations that modify them would modify them in the current directory, it seems somewhat dangerous to risk purging them in the parent directory.

DB48X,HP,me
Find all posts by this user
Quote this message in a reply
12-02-2024, 03:04 PM
Post: #473
RE: DB48X: HP48-like RPL implementation for DM42
(12-02-2024 01:46 AM)c3d Wrote:  
(12-01-2024 09:53 PM)Orome Wrote:  Yep, that worked. Thanks!

This is semi-intentional. Some reserved variable names such as statistics data or PPAR are treated specially. Since operations that modify them would modify them in the current directory, it seems somewhat dangerous to risk purging them in the parent directory.

Yes, that makes perfect sense. Smart design.

"In a time of universal deceit, telling the truth is a revolutionary act."
Visit this user's website Find all posts by this user
Quote this message in a reply
12-02-2024, 03:05 PM
Post: #474
RE: DB48X: HP48-like RPL implementation for DM42
Can I get DB48X running on a Plus42 (Binary). If so are there overlays for that?

"In a time of universal deceit, telling the truth is a revolutionary act."
Visit this user's website Find all posts by this user
Quote this message in a reply
12-02-2024, 06:47 PM
Post: #475
RE: DB48X: HP48-like RPL implementation for DM42
(12-02-2024 03:05 PM)Orome Wrote:  Can I get DB48X running on a Plus42 (Binary). If so are there overlays for that?

I am not sure that I understand the question. DB48x does not run on top of the DM42 (or Free42/Plus42) firmware, but directly on top of the DM42 hardware.

DB48X,HP,me
Find all posts by this user
Quote this message in a reply
12-02-2024, 07:09 PM
Post: #476
Christmas wishlist is open
I have added a "Christmas" label on GitHub for a Christmas wishlist.

If there are things you would like me to work on by Christmas, please label it with Christmas and I'll see what I can do :-)

DB48X,HP,me
Find all posts by this user
Quote this message in a reply
12-02-2024, 09:49 PM
Post: #477
RE: DB48X: HP48-like RPL implementation for DM42
Possibly a very dumb question but: If I have an RPL program in a file, how do I load it (without disturbing any other state)?

"In a time of universal deceit, telling the truth is a revolutionary act."
Visit this user's website Find all posts by this user
Quote this message in a reply
12-02-2024, 09:51 PM
Post: #478
RE: DB48X: HP48-like RPL implementation for DM42
(12-02-2024 06:47 PM)c3d Wrote:  
(12-02-2024 03:05 PM)Orome Wrote:  Can I get DB48X running on a Plus42 (Binary). If so are there overlays for that?

I am not sure that I understand the question. DB48x does not run on top of the DM42 (or Free42/Plus42) firmware, but directly on top of the DM42 hardware.
That answers the question. Thanks!

"In a time of universal deceit, telling the truth is a revolutionary act."
Visit this user's website Find all posts by this user
Quote this message in a reply
12-03-2024, 09:31 AM
Post: #479
RE: DB48X: HP48-like RPL implementation for DM42
(12-02-2024 09:49 PM)Orome Wrote:  Possibly a very dumb question but: If I have an RPL program in a file, how do I load it (without disturbing any other state)?

Use something like

Code:

"MYFILE.48S" RCL

Also deals with CSV, 48B (binary format), TXT and BMP extensions.

DB48X,HP,me
Find all posts by this user
Quote this message in a reply
12-03-2024, 09:34 AM
Post: #480
RE: DB48X: HP48-like RPL implementation for DM42
Is there an Android app for DB48X?
How difficult is it to get running?

P. S. I think a working RPL implementation could warrant paying for an app.
RPL is an almost forgotten programming language.
Find all posts by this user
Quote this message in a reply
Post Reply 




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