db48x/STATUS.md
Christophe de Dinechin ea66209272 Release 0.6.1 "Happy New Year": Quick bug fixes
A few quick bug fixes that make DB48X a bit more usable.

**New features**

* Setting to display `2+i3` instead of `2+3i` (#660)
* HMS and DMS operations (#654)
* Special `1_dms` and `1_hms` units rendering in DMS / HMS (#650)

**Bug fixes**

* Improve behavior of `+/-` key while editing (#658)
* Do not accept base 37 (#656)
* Insert `for` statement in program instead of executing it (#655)
* Hide trailing decimal separator for decimals with integer values (#653)
* Fix display of `19.8` with `0 FIX` (#652)
* Implement true decimal to integer conversion (#648)

**Improvements**

* doc: Record performance data for 0.6.0
* doc: Update status file

Signed-off-by: Christophe de Dinechin <christophe@dinechin.org>
2024-01-14 23:35:45 +01:00

6.5 KiB

System and user interface

  • Functional graphical simulator for the DMCP platform
  • Test suite on simulator
  • Main calculator loop, on/off, accessing DMCP Setup menu
  • RPL-style command-line text editor
  • Key processing
  • DM42-adapted shift logic
  • Virtual annunciators
  • Alpha mode and lowercases
  • Garbage collector
  • Low-memory stress testing
  • Built-in commands lookup and parsing
  • Soft menus navigation
  • Global variables
  • Local variables
  • Home directory and subdirectories
  • Variables menu accessible with RCL key
  • Complete interactive catalog of available functions
  • RPL program evaluattion
  • RPL program single-stepping / debugging
  • Stack undo / redo
  • Accelerated blitter code with 8x8 patterns
  • Unicode-capable text drawing replacement
  • Unicode / UTF-8 support
  • Unicode fonts (e.g. derived from WP43S project)
  • Larger font for editor (old geezer mode)
  • Objects in USB-accessible flash storage
  • Calculator state load/save
  • Global help from generated markdown file
  • Per-function help from markdown files
  • Character menu / table
  • Brezenham lines, circles and ellipses
  • Polygon fill
  • RPL-controlled soft-menu system
  • Domain-specific features / customizaton from files on USB disk
  • Single-key object format cycling
  • Units and conversion customization from units.csv file

Object system

  • Object system with compact storage and dynamic dispatch
  • Stack management
  • Convenient allocation, initialization and recycling of temporaries
  • Object evaluation
  • Object parsing
  • Object text rendering
  • Object graphical rendering
  • Object graphical editor
  • Errors and error display
  • Error trapping / handling, e.g DOERR.

RPL data types

  • Built-in commands (e.g. Neg)
  • Integer data type, e.g. 123
  • Hexadecimal (#123h), decimal (#123d), octal (#123o) and binary (#1001b) based numbers
  • Based integers (arbitrary base between 2 and 36, e.g. 13#10231AC)
  • Arbitrary-size integers e.g. 123456789012345678901234567890
  • Fractions, e.g. 1/7
  • [x[ Fraction formats, e.g. 22/7 vs 3 1/7 vs. 3,1428571429
  • Decimal floating-point with fixed size (32, 64 and 128 bits)
  • Decimal floating-point with arbitrary size
  • Binary floating-point with arbitrary size
  • Hardware-accelerated 32-bit binary floating-point
  • Text / strings, e.g. "ABC"
  • Name / symbols, e.g. ABC
  • Complex numbers in rectangular form, e.g. 2 + 3i
  • Complex numbers in polar form, e.g. 2 ∡ 30°
  • Quaternions
  • Intervals / ranges, e.g. 1..5
  • Angles, e.g. ∡30°
  • Lists, e.g. { A 1 "Hello" }
  • Arrays, vectors, matrices and tensors, e.g. [ [ 1 2 3] [ 4 5 6] ]
  • Program objects, e.g « IF 1 = THEN "Equal to one" END »
  • Algebraic programs, e.g. 'if x = 1 then "Equal to one" based on XL-style parser
  • Bitmaps, e.g. GROB 8 8 00000000000000FF
  • Fonts, e.g. FONT 000000
  • Vector graphics
  • Tagged objects
  • Algebraic expressions
  • Unit objects
  • Directories
  • Software libraries
  • Keymaps
  • Softkey menus
  • Full-screen menus
  • Forms
  • Object handler (can replace eval, parse, render, graphical editor)
  • HP41/HP42-style key-entry program
  • ARM PIC code

Basic Arithmetic

  • Integer arithmetic
  • Floating-point arithmetic
  • Detection of precise vs. imprecise results, like newRPL
  • Automatic integer to floating-point promotion
  • Automatic selection of entered floating-point size based on user input
  • Automatic selection of computed floating-point size based on Precision
  • Fraction arithmetic
  • Automatic fraction promotion
  • Correct rounding (a la crlibm)
  • Range arithmetic

Computations on real numbers

  • Floating-point arithmetic
  • Circular functions, e.g. sin, cos, atan, ...
  • Exponentials and logarithms, e.g. exp, ln, ...
  • Hyperbolic functions, e.g. sinh, atanh, ...
  • Probabilities functions, like Factorial, Combinations, etc.
  • Statistics functions, like Σ+, Mean or Median
  • Special functions, like Bessel, FastFourierTransforma, etc
  • Constant tables with arbitrary precision from files on USB disk
  • Equation tables with explanatory graphics from files on USB disk
  • Unit conversions

Computations on complex numbers

  • Complex arithmetic
  • Circular functions, e.g. sin, cos, atan, ...
  • Exponentials and logarithms, e.g. exp, ln, ...
  • Hyperbolic functions, e.g. sinh, atanh, ...
  • Probabilities functions, like Factorial, Combinations, etc.
  • Statistics functions, like Σ+, Mean or Median
  • Special functions, like Bessel, FastFourierTransforma, etc
  • Equation tables with explanatory graphics from files on USB disk

Computations on quaternions

  • Arithmetic
  • Circular functions, e.g. sin, cos, atan, ...
  • Exponentials and logarithms, e.g. exp, ln, ...
  • Hyperbolic functions, e.g. sinh, atanh, ...
  • Probabilities functions, like Factorial, Combinations, etc.
  • Statistics functions, like Σ+, Mean or Median
  • Special functions, like Bessel, FastFourierTransforma, etc
  • Equation tables with explanatory graphics from files on USB disk

Computations on vectors, matrices and tensors

  • Arithmetic
  • Determinant, inverse, transpose
  • Eigenvalues
  • Tables with special matrices, e.g. Pauli matrices, General Relativity

Computer Algebra system

  • Rendering of symbolic expressions
  • Parsing of symbolic expressions
  • Symbolic operations
  • Integrate existing CAS like GIAC
  • Rules engine
  • Symbolic differentiation
  • Symbolic integration

Numerical evaluation

  • Integration
  • Root finding

Other RPL functional areas (to be expanded)

  • Real-time clock
  • Alarms
  • File system access
  • Printing
  • Plotting
  • Equation writer
  • Matrix writer