Post Reply 
DB48X: HP48-like RPL implementation for DM42
02-11-2024, 11:23 PM
Post: #181
v0.6.5: Minor bug fixes
Release 0.6.5 "Testimony": Small bug fixes

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

This release does not contain much because FOSDEM took a lot of energy.

New features

* menu: Connect `ceil` and `floor` functions
* Add real to polar conversions
* units: Add `dms` unit to angles menu

Bug fixes

* decimal: Compute `ln(0.002)` correctly (reported by Nigel)
* integer: Do not parse degree sign if in a complex
* units: Fix parsing of angle units
* font: Add radian glyph
Find all posts by this user
Quote this message in a reply
02-21-2024, 07:42 AM (This post was last modified: 02-21-2024 07:47 AM by c3d.)
Post: #182
Graphical rendering of expressions in DB48X
Graphical rendering of equation is coming and should be in the next release. This was a lot of work, and explains in part why some of the recent releases have been a bit "light". This will justify a bump of the minor number, so the next release will be 0.7.0.
   

A side benefit is automatic adjustment of the display size when rendering big numbers or big equations.
   
   
Find all posts by this user
Quote this message in a reply
03-02-2024, 02:48 PM
Post: #183
Release v0.7.0 - Graphical rendering of equations
Release 0.7.0 is out. https://github.com/c3d/DB48X-on-DM42/rel...tag/v0.7.0

This release introduces a few major improvements, including graphical rendering of equations and matrices, the `Show` command to display large objects full-screen, customizable constants, and date-related operations.

New features

* Graphical rendering of equations, fractions, matrices, vectors and lists. In graphical rendering mode, variables are showin in italics.
* Constants in the `ConstantsMenu`, split into categories, and loading from an optional `config/constants.csv` file, in a way similar to what existed for units.
* Inverse trigonometric functions (`asin`, `acos` and `atan`) now produce unit objects with the current angle mode as a unit. This can be configured by the `SetAngleUnits` / `NoAngleUnits` flags.
* `Cycle` (EEX key) now cycles between angle units.
* `R→D` and `D→R` commands to convert between degree and radian in a purely numerical way (no unit). This is for compatibility with HP.
* Add `→Deg`, `→Rad`, `→Grad`, `→πr` commands, which convert a number to the target unit using current angle mode, and convert an angle to the target angle unit.
* Conversion from DMS to HMS and from HMS to DMS
* Rendering of dates: `19681205_date` renders as `Fri 5/Dec/1968`,
with a format configuration using the same flags as for the header. Note that the date format is `YYYYMMDD`, _not_ the same as on HP calculators. This allows `YYYYMMDD.hhmmss` for dates with time.
* `Date` and `Time` command to return the current date and time. Additionally, `DateTime` returns both date and time, and `ChronoTime` returns the time with 1/100s precision.
* `→Date` and `→Time` commands to set the system date and time
* `Date+`, `DDays` and date arithmetic using `+` or `-`, using day units for the results. As an extension relative to HP calculators, these will accept fractional days, or other time units. For example, adding `1000000_s` to `19681205_date` generates a date with time result, `Tue 16/Dec/1968, 13:46:40`
* `JulianDayNumber` and `DateFromJulianDayNumber` commands to convert between dates and Julian day numbers. These commands also accept fractional input.
* `Show` command showing a full-screen graphical rendering of the result on the stack. The resut is size-adjusted. For example, you can display all digits in `200!`. If the result does not fit on the screen, you can scroll using the _◀︎_ and _▶︎_, as well as _8_, _6_, _4_ and _2_. The maximum pixel size for `Show` is set by `MaxW` (default is the width of the LCD), the maximum height is set by `MaxH` (default is 2048 pixels).
* `AutoScaleStack` and `NoAutoScaleStack` settings to automatically adjust the font size for the stack elements.
* Support for system flags -20 to -26 (infinite results, overflow and underflow).


Bug fixes

* simulator: Adjust DMCP month off-by-one error
* Repair insertion of `while` loops and similar commands on the command line
* Use stack format when drawing an object with `DrawText` (`DISP`)
* Arithmetic on unit objects no longer auto-simplifies, e.g. `1_s 1_s
-` returns `0_s` and not `0`.
* Perform computations for `→Q` using integer values, which avoids an issue where increasing the number of iterations with an unachievable precision could prodduce `1/1` as the fractional result.
* Repair auto-simplification for `i*i=-1`
* Display a negative mixed fraction as `-1 1/3` and not `1 -1/3`.
* Do not insert `()` after a multiplication in algebraic mode
* Accept units and tagged objects in `PolarToReal` and `RealToPolar`
* Accept angle units as input for `→DMS`
* Off-by-one clipping error in header, erasing the shift annunciator
* Fix help for `FC?` (incorrectly stating that it tested for flat set)
* Lookup units and constants in a case sensitive way
* Fix labels for `ExpFit` and `LinFit` in `RegressionMenu`.


Improvements

* tests: Adjust tests to match bugs fixed in v0.6.5
* dms: Accept entering minutes without third dot, e.g. `1.2.3 ENTER`
* menus: Split the Time, Date and Alarm menus
* Split rendered objects at space boundaries. This notably ensures that large numbers are split at digit grouping boundaries, and makes it possible to display larger programs on the stack. The rendering of programs and matrices/vectors/lists has also been fine-tuned.
* The "white circle" glyph has a thicker border, makes it more readable in menus.
* doc: Update the list of unimplemented features
* menus: Draw a white circle for disabled flags, and allow the menu function to toggle the flag. This made it possible to reduce the number of menu entries for flag-heavy menus.
* Mixed fractions are now the default, as opposed to improper fractions
* doc: Improve the quickstart guide
* doc: Improve the documentation for sin, cos and tan
* tests: Make it possible to interrupt a running test
* help: Skip HTML tags, e.g. <video>
* simulator: Add screenshot capability, and reduce window height
* menus: `ToolsMenu` selects time, date or angle menu based on units
Find all posts by this user
Quote this message in a reply
03-04-2024, 12:46 AM
Post: #184
Release 0.7.1 "Whip" - Bug fixes
There were a couple of embarrassing bugs in v0.7.0, nothing really harmful, but enough to justify a 0.7.1 the next day.

The first big problem was that inserting variable names from the VariablesMenu in programs was broken. Similarly for units from units menus and constants from constants menus. This was the primary driver for a new release.

Also an embarrassing off-by-one error for day-of-week in dates due to different conventions for DMCP and Unix.

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

decimal: Apply MinimumSignificantDigits to Sig modes
tests: Fix missing ] at end of vector
ui: Insert commands for unit conversions, constants and variables
tests: Adjust help screen snapshot for authors
menus: Do not clip text for hierarchical menus
constants: Do not use units that don't parse correctly
dmcp: Day of week convention adjustment
help: Fix YouTube video preview
Find all posts by this user
Quote this message in a reply
03-04-2024, 04:18 PM
Post: #185
RE: DB48X: HP48-like RPL implementation for DM42
I'm not in any urgent rush, but are there plans to implement TVM calculations in the future? It looks like there's a placeholder for it in the FIN menu, but grayed out.

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
03-04-2024, 05:55 PM (This post was last modified: 03-04-2024 05:55 PM by c3d.)
Post: #186
RE: DB48X: HP48-like RPL implementation for DM42
(03-04-2024 04:18 PM)spiff72 Wrote:  I'm not in any urgent rush, but are there plans to implement TVM calculations in the future? It looks like there's a placeholder for it in the FIN menu, but grayed out.

Yes, the grayed out portion is a dead giveaway that there are plans :-)

I'd like to implement the general solver application first. She solve function is implemented, just not the application with the menus entries to set / solve / get the value of the variables in the equation.
Find all posts by this user
Quote this message in a reply
03-04-2024, 05:56 PM
Post: #187
RE: DB48X: HP48-like RPL implementation for DM42
(03-04-2024 05:55 PM)c3d Wrote:  
(03-04-2024 04:18 PM)spiff72 Wrote:  I'm not in any urgent rush, but are there plans to implement TVM calculations in the future? It looks like there's a placeholder for it in the FIN menu, but grayed out.

Yes, the grayed out portion is a dead giveaway that there are plans :-)

I'd like to implement the general solver application first. She solve function is implemented, just not the application with the menus entries to set / solve / get the value of the variables in the equation.

No worries - TVM is something I might use once a year (or less)!

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
03-12-2024, 07:31 AM
Post: #188
DB48X v0.7.2: Library, Equation Library, Characters Menu
https://github.com/c3d/DB48X-on-DM42/rel...tag/v0.7.2

This release introduces four relatively significant features:

  1. An Equation Library
  2. A more general Library
  3. Character menus
  4. A character modification catalog


There are also a number of bug fixes and improvements.

Features
  • The Equation Library is similar in principle to what is found in the HP50G. It is intended to store equations covering a variety of topics. The Equation Library is accessible using the EQS key (? '()'). It is presently only very sparsely populated, but a future release should add the equations listed in Chapter 5 of the HP50G Advanced User's Reference Manual. Elements of the Equation Library appear as named Equation Objects. The Equation Library is configured by file config/equations.csv.
  • The Library is similar to the Equation Library, but for all kinds of objects such as programs or code snippets. The Library is accessible using the LIB key (? VAR). It can be used to customize your calculator, and is intended to play the roles of the CST variable (quick access to common features) and Library Objects / XLIB (external extensions to RPL). Elements of the Library appear as named Library Objects. The Library is configured by file config/library.csv.
  • The Characters Menu lets you enter Unicode characters easily, by presenting various classes of characters, such as RPL, Greek or Punct. The Characters Menus is accessible using the CHAR key (? 2). It can be used to enter international characters (e.g. Greek or Cyrillic), as well as special characters such as arrows or blocks. The Characters Menu is configured by file config/characters.csv.
  • The Characters Catalog appears when the Catalog is active and the cursor is inside some text object. It gives you access to characters that are visually close to the character on the left of the cursor. For example, after typing A, the presented choices include À, a or α. The Characters Catalog is configured by file config/characters.csv.
  • compare: Add comparisons for true and false values
  • Add TEVAL command (timed evaluation)


Bug fixes
  • Do not add unnecessary parentheses in ratios, e.g. (A+B)/(X-Y)
  • Make sure we can save back the configuration files correctly
  • Improve access path checks to accept config:constants.csv.
  • Avoid syntax error in 1/(1+x) due to 1/ being seen as a fraction
  • unitfile: Remove slight risk of bad menu display after garbage collection
  • date/time: Make sure we save the stack and last args for Date, Time, ...
  • parser: Skip spacing when parsing numbers (to parse back →Text result)
  • time: Fix rendering of DMS time in lists, matrices, vectors
  • catalog: Fix a subtle bug on DM32 leading to a crash using the catalog

Improvements
  • constants: Get values of special π and e by name
  • constants: Add prefix in editor to identify constants, equations and xlib
  • constants: Represent constants with an index for memory and performance
  • constants: Parse units containing text
  • constants: Allow RCL to recall a constant value
  • units: Direct insertion of units after numbers
  • menu: Update Roll and RollDown menu entries
  • show: Show all decimals for decimal values
  • help: Display the correct on-line help topic for constants
  • catalog: Use less memory for the sorted IDs
  • integrate: Use numerical computations for faster convergence
  • locals: Improve error message for bad locals
  • graph: Improve graphical rendering of constants (bold) and equations
  • graph: Do not add unnecessary parentheses in ratios
  • tests: Add tests for characters menu/catalog
  • tests: Fix the . vs 0. test
  • ui: Do not enter DMS inside text
  • tests: Display disabled tests in gray
  • catalog: Keep a single spelling, e.g. no add duplicates
  • tests: Add extra delay in the wait for update
  • makefile: Add dependency of 'all' to the decimal constants
  • save: Improve rendering control when saving files
  • stack: Do not save stack in plot, integration or solver
  • debug: Disable debugging when launching a program from function key
  • simulator: Avoid piling up QT draw requests
  • doc: Update performance numbers for 1M loops
  • simulator: Add sound support
  • simulator: Lazy screen refresh
  • dmcp: Add UI refresh callback
  • simulator: Move QT-dependent code out of dmcp.cpp
  • Add reduced font
  • runtime: Various changes to isolate QT build from the rest
Find all posts by this user
Quote this message in a reply
03-12-2024, 12:32 PM
Post: #189
RE: DB48X: HP48-like RPL implementation for DM42
(03-12-2024 07:31 AM)c3d Wrote:  https://github.com/c3d/DB48X-on-DM42/rel...tag/v0.7.2

This release introduces four relatively significant features:

  1. An Equation Library
  2. A more general Library
  3. Character menus
  4. A character modification catalog


There are also a number of bug fixes and improvements.

Features
  • The Equation Library is similar in principle to what is found in the HP50G. It is intended to store equations covering a variety of topics. The Equation Library is accessible using the EQS key (? '()'). It is presently only very sparsely populated, but a future release should add the equations listed in Chapter 5 of the HP50G Advanced User's Reference Manual. Elements of the Equation Library appear as named Equation Objects. The Equation Library is configured by file config/equations.csv.
  • The Library is similar to the Equation Library, but for all kinds of objects such as programs or code snippets. The Library is accessible using the LIB key (? VAR). It can be used to customize your calculator, and is intended to play the roles of the CST variable (quick access to common features) and Library Objects / XLIB (external extensions to RPL). Elements of the Library appear as named Library Objects. The Library is configured by file config/library.csv.
  • The Characters Menu lets you enter Unicode characters easily, by presenting various classes of characters, such as RPL, Greek or Punct. The Characters Menus is accessible using the CHAR key (? 2). It can be used to enter international characters (e.g. Greek or Cyrillic), as well as special characters such as arrows or blocks. The Characters Menu is configured by file config/characters.csv.
  • The Characters Catalog appears when the Catalog is active and the cursor is inside some text object. It gives you access to characters that are visually close to the character on the left of the cursor. For example, after typing A, the presented choices include À, a or α. The Characters Catalog is configured by file config/characters.csv.
  • compare: Add comparisons for true and false values
  • Add TEVAL command (timed evaluation)


Bug fixes
  • Do not add unnecessary parentheses in ratios, e.g. (A+B)/(X-Y)
  • Make sure we can save back the configuration files correctly
  • Improve access path checks to accept config:constants.csv.
  • Avoid syntax error in 1/(1+x) due to 1/ being seen as a fraction
  • unitfile: Remove slight risk of bad menu display after garbage collection
  • date/time: Make sure we save the stack and last args for Date, Time, ...
  • parser: Skip spacing when parsing numbers (to parse back →Text result)
  • time: Fix rendering of DMS time in lists, matrices, vectors
  • catalog: Fix a subtle bug on DM32 leading to a crash using the catalog

Improvements
  • constants: Get values of special π and e by name
  • constants: Add prefix in editor to identify constants, equations and xlib
  • constants: Represent constants with an index for memory and performance
  • constants: Parse units containing text
  • constants: Allow RCL to recall a constant value
  • units: Direct insertion of units after numbers
  • menu: Update Roll and RollDown menu entries
  • show: Show all decimals for decimal values
  • help: Display the correct on-line help topic for constants
  • catalog: Use less memory for the sorted IDs
  • integrate: Use numerical computations for faster convergence
  • locals: Improve error message for bad locals
  • graph: Improve graphical rendering of constants (bold) and equations
  • graph: Do not add unnecessary parentheses in ratios
  • tests: Add tests for characters menu/catalog
  • tests: Fix the . vs 0. test
  • ui: Do not enter DMS inside text
  • tests: Display disabled tests in gray
  • catalog: Keep a single spelling, e.g. no add duplicates
  • tests: Add extra delay in the wait for update
  • makefile: Add dependency of 'all' to the decimal constants
  • save: Improve rendering control when saving files
  • stack: Do not save stack in plot, integration or solver
  • debug: Disable debugging when launching a program from function key
  • simulator: Avoid piling up QT draw requests
  • doc: Update performance numbers for 1M loops
  • simulator: Add sound support
  • simulator: Lazy screen refresh
  • dmcp: Add UI refresh callback
  • simulator: Move QT-dependent code out of dmcp.cpp
  • Add reduced font
  • runtime: Various changes to isolate QT build from the rest

Is it correct to assume that we need to copy the 4 .csv files to the config directory in the FAT structure in order to install this?

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
03-12-2024, 01:46 PM
Post: #190
RE: DB48X: HP48-like RPL implementation for DM42
(03-12-2024 12:32 PM)spiff72 Wrote:  Is it correct to assume that we need to copy the 4 .csv files to the config directory in the FAT structure in order to install this?

Yes
Find all posts by this user
Quote this message in a reply
03-25-2024, 12:05 AM (This post was last modified: 03-25-2024 12:14 AM by c3d.)
Post: #191
Release 0.7.3 "Perfume" - Mostly bug fixes
Release 0.7.3 of DB48X is out.

This release is mostly about bug fixes, improving the build on simulator, and accelerating the test suite while keeping it stable.

New features
  • simulator: Add F8 key to save state in the simulator
  • errors: Add a beep when an error is shown
  • linux: Add `-s` option for screen scaling (when Qt gets scaling wrong)
  • equations: Get library equation value for plotter, solver and integrator
  • characters: Add constant, equation and lib markers to RPL menu
  • characters: Add music-related characters and character menu
  • commands: Add missing stack commands (nip, pick3, ndupn, unrot, unpick)

Bug fixes
  • variables: Clone purged objects on stack after `Purge`
  • units: unit * symbolic is preserved as is (e.g. `'A'_m`)
  • compare: Enforce the `NumericalResults` flag for comparisons
  • constants: Fix parsing of constants, equations and library items
  • sto: Repair `file exists` error storing to a source file
  • simulator: Do not try to create directory if it exists
  • Report file errors, e.g. permissions or I/O errors
  • equations: Mark `c` and `R` as constants in equations
  • simulator: Double clicks are now considered as virtual keyboard touches
  • ui: Emit only one beep, not two, for a syntax error on the command line
  • ui: Avoid rare null-dereference crash when menu label is not set
  • complex: Report a syntax error if the second half is empty
  • utf8: Do not accept constant/equation/library codepoint in names
  • units: Multiplying by `1_m` is OK even with algebraic
  • tests: Avoid case where CLEAR does not clear errors
  • audio: Improve audio reliability on the simulator
  • linux: Rewrite the audio-generation code to avoid crashes
  • linux: Avoid infinite recursion in the tests
  • linux: Fix warnings about unused variables
  • linux: Avoid warnings about null pointer in strcmp
  • linux: Avoid build error due to bad `ularge` overload in settings
  • linux: Fix type issue for the Insert function (reported as a warning)
  • linux: Remove warning about mixing enums and integers
  • linux: Avoid error on printf format
  • linux: Avoid warnings about type qualifiers
  • linux: Remove warnings about incompatible function casts
  • linux: Address warnings about missing initializers
  • linux: Fix warning about prinf formats
  • linux: Address warning about signed vs unsigned
  • linux: Remove warning about fall-through switch statement
  • linux: Remove warnings about unused arguments
  • tests: Repair several tests that were unstable due to scrolling images
  • tests: Increase memory size to avoid occasional out of memory failures
  • object: Make `as_uint32` and `as_uint64` consistent for negative input

Improvements
  • ui: Emulate HP48/HP50G behavior for errors (do not require key to continue)
  • simulator: Add I/O wrapper around file state save/restore
  • dmcp: Remove double return in the code
  • simulator: Accept numeric keys in DMCP menus
  • doc: Add Kjell Christenson to list of authors
  • tests: Run command-line tests silently
  • tests: Clear settings the fast way for quick tests
  • dmcp: Do not treat the buzzer as a recorder error (avoid message noise)
  • simulator: Ensure error messages show up in a recorder dump
  • tests: Increase memory size to avoid failing tests
  • tests: Increase delay waiting for function plots to appear
  • tests: Refactor test suite interaction with RPL thread to accelerate it
  • tests: Add a delay before launching the test thread to load initial state
  • tests: Add missing reference picture for `char-menu`
Find all posts by this user
Quote this message in a reply
Post Reply 




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