Post Reply 
DB48X: HP48-like RPL implementation for DM42
07-22-2023, 04:37 PM (This post was last modified: 07-22-2023 04:38 PM by spiff72.)
Post: #41
RE: DB48X: HP48-like RPL implementation for DM42
(07-21-2023 11:58 AM)Hsilop Wrote:  I have a spare DM42 - just need a faceplace (sticker). Nice project, keep going! :-)

I may be able to help with that once I get my DM42. Mine has entered the USA, but not sure how long the final legs of the journey will take.
EDIT: I just checked again and it is in Chicago (just 2 states away from Michigan), so maybe sooner than I expected!

I have been offering overlays for various newRPL calculator variants and the WP31S and WP34S in this thread:
https://www.hpmuseum.org/forum/thread-20113.html

I have a C47 overlay ready to try out when it arrives, and plan to add that to the offering when I confirm it fits correctly.

DB48X still seems to be in its infancy, so a "final" overlay layout is probably not ready yet, but if there is something available I could potentially make one with the caveat that it is highly subject to future revisions!
Find all posts by this user
Quote this message in a reply
07-22-2023, 09:46 PM
Post: #42
RE: DB48X: HP48-like RPL implementation for DM42
(07-22-2023 04:32 PM)spiff72 Wrote:  Am I misunderstanding something, or is there a DM42 emulator for Mac? Or is that a newRPL emulator?

I don't know about others, but I personally wrote two different DM42 "emulators", both of which should work both on Linux and macOS (and maybe Windows with a little porting effort). However, both were intended to develop a new firmware, so they only emulate what that firmware needs. They were not intended to run the original Free42 / DM42 firmware (maybe they could via some recompilation, but I did not even bother trying).

The first one is derived from newRPL, and can be found here: https://github.com/c3d/db48x. That project also builds HP50 and Prime simulators. It should be able to produce valid Prime and HP50 firmware too, but maybe I broke a few thing, I don't have the hardware to test it. It looks a bit too fat to fit on an actual DM42, though, even if I since then learned tricks from the WP43 / C47 team on how to transfer stuff to the QSPI that might make it possible. In any case, from my point of view, it is currently on hold.

The second one is for a new from-scratch RPL implementation being discussed in this thread, and resides here: https://github.com/c3d/db48x-on-dm42. This codebase does work on actual hardware too, I test it daily, and this is now very close to becoming my primary calculator (already better for binary / hex computations than the alternatives I have access to). While I only post DM42 binaries when I build a release, maybe I should also post macOS and Linux binaries? Would someone be interested in that?

In both cases, the macOS simulator does not emulate the hardware, but instead provides an implementation of the DMCP interfaces that is sufficient for the need of the firmware code running on top of it.

Hopefully this clarifies things a bit.
Find all posts by this user
Quote this message in a reply
07-23-2023, 04:55 PM
Post: #43
RE: DB48X: HP48-like RPL implementation for DM42
(07-22-2023 04:11 PM)c3d Wrote:  Claudio, I am not sure if you ever noticed the work I did for the DM42 on newRPL?
https://github.com/c3d/db48x/tree/dm42

This is a massive series of changes, many of which you are likely to not like. One major change in particular was regarding the graphic engine and automated layout of the various UI elements. The idea being to be able to display things easily at different locations for the DM42, the 50G and the prime, because their function keys are at different spots.
I did not look at those! Some the areas in newRPL, especially the UI (and the HAL) were tailored for hp50g and similar machines, so now with the Prime port they are showing their limitations. I'll take a look, I'm not opposed to changes if it benefits everyone. Just keep in mind the "tightness" of the space especially on the hp39gs, there's not a lot of room to add stuff which brings us to the next topic:

(07-22-2023 04:11 PM)c3d Wrote:  Another big change I made which you might want to consider at some point is refactoring the help system to use a markdown file based on the HTML documentation. This is what I use on the DM42 for now, but most of the work is done for newRPL (but, again, not necessarily in a state you would be happy to merge)

It would be nice, and reduce effort across projects, but if I want to display the online help on the hp39gs, I need to add a markdown interpreter... I don't know that there will be enough space.

(07-22-2023 04:11 PM)c3d Wrote:  In any case, I realize these are really invasive changes, and you are unlikely to ever merge them, but you might want to try them out at least in the simulator.

I will take a look at the graphics part, no ideas are ever discarded. The main thing is newRPL cannot run on the DM hardware because of the lack of MMU. No virtual memory is a non-starter for newRPL, so that port is dead before it even started (hard-coded fixed memory partition will work... but a real killer for RPL's idea of an infinite stack until memory runs out).
Find all posts by this user
Quote this message in a reply
07-23-2023, 07:09 PM (This post was last modified: 07-25-2023 08:28 AM by c3d.)
Post: #44
RE: DB48X: HP48-like RPL implementation for DM42
(07-23-2023 04:55 PM)Claudio L. Wrote:  
(07-22-2023 04:11 PM)c3d Wrote:  Claudio, I am not sure if you ever noticed the work I did for the DM42 on newRPL?
https://github.com/c3d/db48x/tree/dm42

This is a massive series of changes, many of which you are likely to not like. One major change in particular was regarding the graphic engine and automated layout of the various UI elements. The idea being to be able to display things easily at different locations for the DM42, the 50G and the prime, because their function keys are at different spots.
I did not look at those! Some the areas in newRPL, especially the UI (and the HAL) were tailored for hp50g and similar machines, so now with the Prime port they are showing their limitations. I'll take a look, I'm not opposed to changes if it benefits everyone.

Don't get me wrong. I think the changes are generally useful. It's just that I did not respect your coding style (notably wrt. comments). I could not manage to tailor clang-format to it, so after a while, it was "I have other tihngs to do", and I let clang-format reformat the parts of the code I was working on. And so I shifted to my commenting style as well. Apologies for that. If you don't mind the non-homogeneity, I think that you will be able to merge that relatively quickly. If you do mind (and you probably should), then I gave you extra needless work. Again, really sorry about that.

Quote: Just keep in mind the "tightness" of the space especially on the hp39gs, there's not a lot of room to add stuff which brings us to the next topic:

(07-22-2023 04:11 PM)c3d Wrote:  Another big change I made which you might want to consider at some point is refactoring the help system to use a markdown file based on the HTML documentation. This is what I use on the DM42 for now, but most of the work is done for newRPL (but, again, not necessarily in a state you would be happy to merge)

It would be nice, and reduce effort across projects, but if I want to display the online help on the hp39gs, I need to add a markdown interpreter... I don't know that there will be enough space.

The markdown interpreter is there already. So you have that in the change set. I did not check, but I suspect it takes less space than the help it replaces. I don't recall if the version in newRPL uses in-memory markdown or loads it from the filesystem, but if you need the version that loads from the filesystem, you'll find it easily in the DB48X project. It's essentially the same code otherwise.

Quote:
(07-22-2023 04:11 PM)c3d Wrote:  In any case, I realize these are really invasive changes, and you are unlikely to ever merge them, but you might want to try them out at least in the simulator.

I will take a look at the graphics part, no ideas are ever discarded. The main thing is newRPL cannot run on the DM hardware because of the lack of MMU. No virtual memory is a non-starter for newRPL, so that port is dead before it even started (hard-coded fixed memory partition will work... but a real killer for RPL's idea of an infinite stack until memory runs out).

The way I did it for DB48X is that I allocate "all of memory but what DMCP needs", and I do my own memory management inside that. The way that memory management is done is quite similar to the original RPL model.
Find all posts by this user
Quote this message in a reply
07-28-2023, 11:41 AM
Post: #45
RE: DB48X: HP48-like RPL implementation for DM42
Is the complex number functionality complete?

Thank you,
TomC
Find all posts by this user
Quote this message in a reply
07-28-2023, 11:57 PM
Post: #46
RE: DB48X: HP48-like RPL implementation for DM42
Hello...

I would be interested in helping out by creating an overlay for this once the layout is "final". (I know that's a risky word to use in development!).

If people were willing to accept the fact that early overlays might be superseded at any time, I could potentially help right away by making one available now(-ish) if you might have a "native" graphics file available that I could manipulate colors, font sizes, etc in the process of finding a good representation of how it looks when printed (and protected by a matte lamination sheet) vs the "on screen" appearance.

Currently I have been taking the PNG files, and doing pixel-by-pixel manipulation of color - even in situations where I need to move a label slightly away from a cutout, for example.

So if you have an SVG or something native that is easy to manipulate - I could create an overlay and respond to potential changes relatively quickly.
Find all posts by this user
Quote this message in a reply
07-29-2023, 06:30 PM
Post: #47
RE: DB48X: HP48-like RPL implementation for DM42
(07-28-2023 11:41 AM)TomC Wrote:  Is the complex number functionality complete?

Thank you,
TomC

To a large extent, yes, including symbolic complex numbers. See https://youtu.be/I5jgLzw_0-o?t=1780.
Find all posts by this user
Quote this message in a reply
07-29-2023, 06:33 PM
Post: #48
RE: DB48X: HP48-like RPL implementation for DM42
(07-28-2023 11:57 PM)spiff72 Wrote:  Hello...

I would be interested in helping out by creating an overlay for this once the layout is "final". (I know that's a risky word to use in development!).

If people were willing to accept the fact that early overlays might be superseded at any time, I could potentially help right away by making one available now(-ish) if you might have a "native" graphics file available that I could manipulate colors, font sizes, etc in the process of finding a good representation of how it looks when printed (and protected by a matte lamination sheet) vs the "on screen" appearance.

Currently I have been taking the PNG files, and doing pixel-by-pixel manipulation of color - even in situations where I need to move a label slightly away from a cutout, for example.

So if you have an SVG or something native that is easy to manipulate - I could create an overlay and respond to potential changes relatively quickly.

Thanks a lot for the offer. In my case, the original is in Apple Keynote format. I can export that to a number of pixel-oriented formats, or to PDF, but I see no obvious option to export to SVG or other portable vector format.
Find all posts by this user
Quote this message in a reply
07-29-2023, 06:35 PM
Post: #49
RE: DB48X: HP48-like RPL implementation for DM42
(07-28-2023 11:57 PM)spiff72 Wrote:  If people were willing to accept the fact that early overlays might be superseded at any time, I could potentially help right away by making one available now(-ish) if you might have a "native" graphics file available that I could manipulate colors, font sizes, etc in the process of finding a good representation of how it looks when printed (and protected by a matte lamination sheet) vs the "on screen" appearance.

Just to be clear, the current layout is absolutely final. -ish. Until I change my mind. Which I only did three times in the past two weeks, so this is definitely slowing down.
Find all posts by this user
Quote this message in a reply
07-30-2023, 12:01 AM
Post: #50
RE: DB48X: HP48-like RPL implementation for DM42
(07-29-2023 06:33 PM)c3d Wrote:  
(07-28-2023 11:57 PM)spiff72 Wrote:  Hello...

I would be interested in helping out by creating an overlay for this once the layout is "final". (I know that's a risky word to use in development!).

If people were willing to accept the fact that early overlays might be superseded at any time, I could potentially help right away by making one available now(-ish) if you might have a "native" graphics file available that I could manipulate colors, font sizes, etc in the process of finding a good representation of how it looks when printed (and protected by a matte lamination sheet) vs the "on screen" appearance.

Currently I have been taking the PNG files, and doing pixel-by-pixel manipulation of color - even in situations where I need to move a label slightly away from a cutout, for example.

So if you have an SVG or something native that is easy to manipulate - I could create an overlay and respond to potential changes relatively quickly.

Thanks a lot for the offer. In my case, the original is in Apple Keynote format. I can export that to a number of pixel-oriented formats, or to PDF, but I see no obvious option to export to SVG or other portable vector format.

I have a Mac so I could try the Keynote format!
Find all posts by this user
Quote this message in a reply
07-30-2023, 12:02 AM
Post: #51
RE: DB48X: HP48-like RPL implementation for DM42
(07-29-2023 06:35 PM)c3d Wrote:  
(07-28-2023 11:57 PM)spiff72 Wrote:  If people were willing to accept the fact that early overlays might be superseded at any time, I could potentially help right away by making one available now(-ish) if you might have a "native" graphics file available that I could manipulate colors, font sizes, etc in the process of finding a good representation of how it looks when printed (and protected by a matte lamination sheet) vs the "on screen" appearance.

Just to be clear, the current layout is absolutely final. -ish. Until I change my mind. Which I only did three times in the past two weeks, so this is definitely slowing down.

LOL. I thought it had changed recently, but didn't realize it was MULTIPLE times recently!
Find all posts by this user
Quote this message in a reply
07-30-2023, 09:34 AM
Post: #52
RE: DB48X: HP48-like RPL implementation for DM42
(07-30-2023 12:02 AM)spiff72 Wrote:  
(07-29-2023 06:35 PM)c3d Wrote:  Just to be clear, the current layout is absolutely final. -ish. Until I change my mind. Which I only did three times in the past two weeks, so this is definitely slowing down.

LOL. I thought it had changed recently, but didn't realize it was MULTIPLE times recently!

This project is still in very early stages, and the keyboard layout for it is a tricky thing indeed. All of these are valid considerations:
- Trying to fit RPL on fewer keys than ever before
- Consistency with DM42
- Consistency with previous RPL calculators
- Internally consistent, logical groupings
- Ease and efficiency

For primary key functions I think consistency with DM42 is highly valuable. The current layout seems good to me on this point, it is usable without keytop stickers which enables using the same hardware for DB48X and other things.

For secondary key functions that can be labelled on interchangeable overlays that specific consideration is less important. More important is to help the brain find all this functionality on this rather crowded layout... but that can be done through 3 different ones of the above considerations.

For example, coming from the RPL calculators the user would be looking for the statistics menu on key 5 and for the units menu on key 6. But someone switching between DB48X and the 42 would prefer the current layout. Which is the right choice? Depends on the user, clearly. Which use case is more likely? I don't know.
Find all posts by this user
Quote this message in a reply
07-30-2023, 11:24 AM
Post: #53
RE: DB48X: HP48-like RPL implementation for DM42
(07-29-2023 06:30 PM)c3d Wrote:  
(07-28-2023 11:41 AM)TomC Wrote:  Is the complex number functionality complete?

Thank you,
TomC

To a large extent, yes, including symbolic complex numbers. See https://youtu.be/I5jgLzw_0-o?t=1780.

Great video, DB48X looks great. Keep up the good work.
Find all posts by this user
Quote this message in a reply
07-30-2023, 01:44 PM
Post: #54
RE: DB48X: HP48-like RPL implementation for DM42
(07-30-2023 12:01 AM)spiff72 Wrote:  I have a Mac so I could try the Keynote format!

Can you send me the email address you use for iCloud (send to christophe@dinechin.org)? I will add you to the contributors to the shared document. Thanks!
Find all posts by this user
Quote this message in a reply
07-30-2023, 01:45 PM
Post: #55
RE: DB48X: HP48-like RPL implementation for DM42
(07-30-2023 12:02 AM)spiff72 Wrote:  
(07-29-2023 06:35 PM)c3d Wrote:  Just to be clear, the current layout is absolutely final. -ish. Until I change my mind. Which I only did three times in the past two weeks, so this is definitely slowing down.

LOL. I thought it had changed recently, but didn't realize it was MULTIPLE times recently!

As you can see, the changes tend to be a bit more minor now. But it's only practicing a given feature (e.g. matrices) that tells me what is the best way to expose it.
Find all posts by this user
Quote this message in a reply
07-30-2023, 01:47 PM (This post was last modified: 07-30-2023 05:06 PM by c3d.)
Post: #56
RE: DB48X: HP48-like RPL implementation for DM42
(07-30-2023 09:34 AM)LinusSch Wrote:  Which is the right choice? Depends on the user, clearly. Which use case is more likely? I don't know.

I tend to favor consistency with the DM42. It is a DM42 after all. But now is a good time to change my mind ;-)
Find all posts by this user
Quote this message in a reply
07-30-2023, 01:51 PM
Post: #57
RE: DB48X: HP48-like RPL implementation for DM42
New release 0.4 is out. https://github.com/c3d/DB48X-on-DM42/releases/tag/v0.4
Many changes in this release. The main ones are:

1. Support for matrix operations (arithmetic, det, norm, inverse)
2. Support for equation rewrite, with early implementation of collect and expand.
3. Transient alpha mode: hold up or down arrow with a letter key to quickly type uppercase or lowercase

Please give it a whirl. I will post a video about it soon.
Find all posts by this user
Quote this message in a reply
07-30-2023, 04:15 PM
Post: #58
RE: DB48X: HP48-like RPL implementation for DM42
(07-30-2023 01:51 PM)c3d Wrote:  New release 0.4 is out. https://github.com/c3d/DB48X-on-DM42/releases/tag/v0.4
Many changes in this release. The main ones are:

1. Support for matrix operations (arithmetic, det, norm, inverse)
2. Support for equation rewrite, with early implementation of collect and expand.
3. Transient alpha mode: hold up or down arrow with a letter key to quickly type uppercase or lowercase

Please give it a whirl. I will post a video about it soon.

Video posted here: https://youtu.be/ehiX6mhlgAY. But YouTube has not processed the HD variant yet.
Find all posts by this user
Quote this message in a reply
07-30-2023, 09:16 PM
Post: #59
RE: DB48X: HP48-like RPL implementation for DM42
(07-30-2023 01:47 PM)c3d Wrote:  
(07-30-2023 09:34 AM)LinusSch Wrote:  Which is the right choice? Depends on the user, clearly. Which use case is more likely? I don't know.

I tend to favor consistency with the DM42. It is a DM42 after all. But now is a good time to change my mind ;-)

I'm not going to have an opinion on this one, as I do not own nor intend to own a DM42. However, when the time comes to put this on the DM32, I'm going to use it and see what works for me and have opinions.
Find all posts by this user
Quote this message in a reply
07-31-2023, 02:02 PM
Post: #60
RE: DB48X: HP48-like RPL implementation for DM42
(07-30-2023 01:51 PM)c3d Wrote:  New release 0.4 is out. https://github.com/c3d/DB48X-on-DM42/releases/tag/v0.4
Many changes in this release. The main ones are:

1. Support for matrix operations (arithmetic, det, norm, inverse)
2. Support for equation rewrite, with early implementation of collect and expand.
3. Transient alpha mode: hold up or down arrow with a letter key to quickly type uppercase or lowercase

Please give it a whirl. I will post a video about it soon.

This seems to be fast approaching my "ideal calculator".
Find all posts by this user
Quote this message in a reply
Post Reply 




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