Release 0.7.17 "Open" - DoSubs, DoList, entering units

This release adds `DoSubs`, `DoList`, `NSub` and `EndSub` commands, and fixes
related issues that were found with the associated examples in teh HP50G
Advanced Reference Manual.

**Features**

* lists: Implement `DoList`, `DoSubs`, `NSub` and `EndSub`
* units: Add usual "big" units to `Computing` units menu (e.g. KB, MB)
* graphics: Add `Freeze` command
* ui: Make it easier to enter units
* expressions: Accept algebraic forms for `integrate` and `root`
* expressions: Graphical rendering of integrals

**Bug fixes**

* case: Preserve the code for the default case (which was lost before)
* parser: Parse arg-less alegbraic commmands such as `NSub`
* equations: Fix syntax errors in built-in equations, e.g. missing parentheses
* equations: Replace variables that match DB48X command names, e.g. `Re`
* equations: Replace imperial units with SI units, e.g. `in` with `cm`
* units: Reject user-defined functions in unit expressions
* constants: Fix definition for the `qε0` constant

**Improvements**

* Update help about equations with some additional material
* tests: Run through all the builtin equations
* ui: Do not insert an extra space before parentheses in equation
* simulator: Add macOS icons for DB48X and DB50X
* font: Record saved font with `v` update

Signed-off-by: Christophe de Dinechin <christophe@dinechin.org>
This commit is contained in:
Christophe de Dinechin 2024-09-10 20:43:36 +02:00
parent 4d7cbf0b3a
commit 01927b1c97
6 changed files with 246 additions and 43 deletions

View file

@ -1,5 +1,40 @@
# Release notes
## Release 0.7.17 "Open" - DoSubs, DoList, entering units
This release adds `DoSubs`, `DoList`, `NSub` and `EndSub` commands, and fixes
related issues that were found with the associated examples in teh HP50G
Advanced Reference Manual.
### Features
* lists: Implement `DoList`, `DoSubs`, `NSub` and `EndSub`
* units: Add usual "big" units to `Computing` units menu (e.g. KB, MB)
* graphics: Add `Freeze` command
* ui: Make it easier to enter units
* expressions: Accept algebraic forms for `integrate` and `root`
* expressions: Graphical rendering of integrals
### Bug fixes
* case: Preserve the code for the default case (which was lost before)
* parser: Parse arg-less alegbraic commmands such as `NSub`
* equations: Fix syntax errors in built-in equations, e.g. missing parentheses
* equations: Replace variables that match DB48X command names, e.g. `Re`
* equations: Replace imperial units with SI units, e.g. `in` with `cm`
* units: Reject user-defined functions in unit expressions
* constants: Fix definition for the `qε0` constant
### Improvements
* Update help about equations with some additional material
* tests: Run through all the builtin equations
* ui: Do not insert an extra space before parentheses in equation
* simulator: Add macOS icons for DB48X and DB50X
* font: Record saved font with `v` update
## Release 0.7.16 "Clean" - New commands
The focus of this release is on new commands, notably for matrix and vector

View file

@ -62,6 +62,7 @@ The following is a list of the HP50 RPL commands which are implemented in DB48X.
* [COS](#cos)
* [COV](#covariance)
* [CRDIR](#crdir)
* [CROSS](#cross)
* [C→R](#complextoreal)
* [DATE](#date)
* [→DATE](#setdate)
@ -78,8 +79,11 @@ The following is a list of the HP50 RPL commands which are implemented in DB48X.
* [DISP](#disp)
* [DISPXY](#dispxy)
* [DIV2](#div2)
* [DOERR](#doerr)
* [DO](#do)
* [DOERR](#doerr)
* [DOLIST](#dolist)
* [DOSUBS](#dosub)
* [DOT](#dot)
* [DRAW](#draw)
* [DRAX](#drax)
* [DROP2](#drop2)
@ -342,7 +346,6 @@ of the HP48 commands.
* CONIC
* CORR
* CR
* CROSS
* CSWP
* CURL
* CYCLOTOMIC
@ -372,10 +375,7 @@ of the HP48 commands.
* DIVMOD
* DIVPC
* dn
* DOLIST
* DOMAIN
* DOSUBS
* DOT
* DRAW3DMATRIX
* DROITE
* DUPDUP

View file

@ -2293,6 +2293,41 @@ You can edit it by recalling its content on the stack using
back to disk using `"config:equations.csv" STO`.
# Release notes
## Release 0.7.17 "Open" - DoSubs, DoList, entering units
This release adds `DoSubs`, `DoList`, `NSub` and `EndSub` commands, and fixes
related issues that were found with the associated examples in teh HP50G
Advanced Reference Manual.
### Features
* lists: Implement `DoList`, `DoSubs`, `NSub` and `EndSub`
* units: Add usual "big" units to `Computing` units menu (e.g. KB, MB)
* graphics: Add `Freeze` command
* ui: Make it easier to enter units
* expressions: Accept algebraic forms for `integrate` and `root`
* expressions: Graphical rendering of integrals
### Bug fixes
* case: Preserve the code for the default case (which was lost before)
* parser: Parse arg-less alegbraic commmands such as `NSub`
* equations: Fix syntax errors in built-in equations, e.g. missing parentheses
* equations: Replace variables that match DB48X command names, e.g. `Re`
* equations: Replace imperial units with SI units, e.g. `in` with `cm`
* units: Reject user-defined functions in unit expressions
* constants: Fix definition for the `qε0` constant
### Improvements
* Update help about equations with some additional material
* tests: Run through all the builtin equations
* ui: Do not insert an extra space before parentheses in equation
* simulator: Add macOS icons for DB48X and DB50X
* font: Record saved font with `v` update
## Release 0.7.16 "Clean" - New commands
The focus of this release is on new commands, notably for matrix and vector
@ -3848,6 +3883,7 @@ The following is a list of the HP50 RPL commands which are implemented in DB48X.
* [COS](#cos)
* [COV](#covariance)
* [CRDIR](#crdir)
* [CROSS](#cross)
* [C→R](#complextoreal)
* [DATE](#date)
* [→DATE](#setdate)
@ -3864,8 +3900,11 @@ The following is a list of the HP50 RPL commands which are implemented in DB48X.
* [DISP](#disp)
* [DISPXY](#dispxy)
* [DIV2](#div2)
* [DOERR](#doerr)
* [DO](#do)
* [DOERR](#doerr)
* [DOLIST](#dolist)
* [DOSUBS](#dosub)
* [DOT](#dot)
* [DRAW](#draw)
* [DRAX](#drax)
* [DROP2](#drop2)
@ -4128,7 +4167,6 @@ of the HP48 commands.
* CONIC
* CORR
* CR
* CROSS
* CSWP
* CURL
* CYCLOTOMIC
@ -4158,10 +4196,7 @@ of the HP48 commands.
* DIVMOD
* DIVPC
* dn
* DOLIST
* DOMAIN
* DOSUBS
* DOT
* DRAW3DMATRIX
* DROITE
* DUPDUP
@ -5178,27 +5213,27 @@ using the `config/equations.csv` configuration file.
The variables in the columns and beams section are:
* `o`: Eccentricity (offset) of load
* `σcr`: Critical stress
* `σmax`: Maximum stress
* `θ`: Slope at `x`
* `o`: Eccentricity (offset) of load (dim.: length)
* `σcr`: Critical stress (dim.: pressure)
* `σmax`: Maximum stress (dim.: pressure)
* `θ`: Slope at `x` (dim.: angle)
* `A`: Cross-sectional area
* `a`: Distance to point load
* 'ε': Eccentricity
* 'ε': Eccentricity (dim.: length)
* `c`: Distance to edge fiber (Eccentric Columns), or Distance to applied moment (beams)
* `E`: Modulus of elasticity
* `I`: Moment of inertia
* `E`: Modulus of elasticity (dim.: pressure)
* `I`: Moment of inertia (dim.: length^4)
* `K`: Effective length factor of column
* `L`: Length of column or beam
* `M`: Applied moment
* `Mx`: Internal bending moment at x
* `P`: Load (Eccentric Columns), or Point load (beams)
* `Pcr`: Critical load
* `M`: Applied moment (dim.: length۰force)
* `Mx`: Internal bending moment at x (dim.: length۰force)
* `P`: Load (Eccentric Columns), or Point load (beams) (dim.: force)
* `Pcr`: Critical load (dim.: force)
* `r`: Radius of gyration
* `V`: Shear force at x
* `w`: Distributed load
* `w`: Distributed load (dim.: force)
* `x`: Distance along beam
* `y`: Deflection at x
* `y`: Deflection at x (dim.: length)
For simply supported beams and cantilever beams (“Simple Deflection” through
@ -5265,6 +5300,55 @@ These equations apply to a slender column (`K·L/r>100`) with length factor `K`.
## Electricity
The variables in the electricity section are:
* `∈r`: Relative permittivity
* `μr`: Relative permeability
* `ω`: Angular frequency (dim.: angle/time)
* `ω0`: Resonant angular frequency (dim.: angle/time)
* `φ`: Phase angle
* `φp, φs`: Parallel and series phase angles
* `ρ`: Resistivity (dim.: resistance۰length; in SI: ohm۰meter, Ω۰m)
* `ΔI`: Current Change (dim.: charge/time; in SI: ampere, A)
* `Δt`: Time Change
* `ΔV`: Voltage Change (dim.: energy/charge; in SI: volt, V)
* `A`: Wire cross-section area (Wire Resistance), os Solenoid cross-section area (Solenoid Inductance), or Plate area (Plate Capacitor)
* `C, C1, C2`: Capacitance (dim.: charge^2/energy; in SI: farad, F)
* `Cp, Cs`: Parallel and series capacitances (dim.: charge^2/energy; in SI: farad, F)
* `d`: Plate separation (dim.: length)
* `E`: Energy
* `Er`: Electric field at distance r from the source (dim.: force/charge; in SI: N/C = V/m)
* `Ep`: Electric field over an infinite plate (dim.: force/charge; in SI: N/C = V/m)
* `F`: Force between charges
* `f`: Frequency (dim.: time^-1)
* `f0`: Resonant frequency (dim.: time^-1)
* `I`: Current, or Total current (Current Divider) (dim.: charge/time; in SI: ampere, A)
* `I1`: Current in R1 (dim.: charge/time; in SI: ampere, A)
* `Imax`: Maximum current (dim.: charge/time; in SI: ampere, A)
* `L`: Inductance (dim.: energy/current^2; in SI: henry, H), or Length (Wire Resistance, Cylindrical Capacitor)
* `Lp, Ls`: Parallel and series inductances (dim.: energy/current^2; in SI: henry, H)
* `N`: Number of turns
* `P`: Power (dim.: energy/time)
* `q`: Charge (in SI: coulomb, C)
* `q1, q2`: Point charge (in SI: coulomb, C)
* `Qp, Qs`: Parallel and series quality factors
* `r`: Charge distance
* `R, R1, R2`: Resistance (dim.: energy۰time/charge^2; in SI: ohm, Ω)
* `ri, ro`: Inside and outside radii
* `Rp, Rs`: Parallel and series resistances (dim.: energy۰time/charge^2; in SI: ohm, Ω)
* `t`: Time
* `ti, tf`: Initial and final times
* `V`: Voltage, or Total voltage (dim.: energy/charge; in SI: volt, V)
* `V1`: Voltage accross R1 (dim.: energy/charge; in SI: volt, V)
* `Vi, Vf`: Initial and final voltages (dim.: energy/charge; in SI: volt, V)
* `Vmax`: Maximum voltage (dim.: energy/charge; in SI: volt, V)
* `XC`: Reactance of capacitor (dim.: energy۰time/charge^2; in SI: ohm, Ω)
* `XL`: Reactance of inductor (dim.: energy۰time/charge^2; in SI: ohm, Ω)
### Coulomb's Law & E Field
These equations describe the electrostatic force between two point charged particles and the electric field measured at the location of a test charge
## Fluids
## Forces and Energy

View file

@ -2293,6 +2293,41 @@ You can edit it by recalling its content on the stack using
back to disk using `"config:equations.csv" STO`.
# Release notes
## Release 0.7.17 "Open" - DoSubs, DoList, entering units
This release adds `DoSubs`, `DoList`, `NSub` and `EndSub` commands, and fixes
related issues that were found with the associated examples in teh HP50G
Advanced Reference Manual.
### Features
* lists: Implement `DoList`, `DoSubs`, `NSub` and `EndSub`
* units: Add usual "big" units to `Computing` units menu (e.g. KB, MB)
* graphics: Add `Freeze` command
* ui: Make it easier to enter units
* expressions: Accept algebraic forms for `integrate` and `root`
* expressions: Graphical rendering of integrals
### Bug fixes
* case: Preserve the code for the default case (which was lost before)
* parser: Parse arg-less alegbraic commmands such as `NSub`
* equations: Fix syntax errors in built-in equations, e.g. missing parentheses
* equations: Replace variables that match DB50X command names, e.g. `Re`
* equations: Replace imperial units with SI units, e.g. `in` with `cm`
* units: Reject user-defined functions in unit expressions
* constants: Fix definition for the `qε0` constant
### Improvements
* Update help about equations with some additional material
* tests: Run through all the builtin equations
* ui: Do not insert an extra space before parentheses in equation
* simulator: Add macOS icons for DB50X and DB50X
* font: Record saved font with `v` update
## Release 0.7.16 "Clean" - New commands
The focus of this release is on new commands, notably for matrix and vector
@ -3848,6 +3883,7 @@ The following is a list of the HP50 RPL commands which are implemented in DB50X.
* [COS](#cos)
* [COV](#covariance)
* [CRDIR](#crdir)
* [CROSS](#cross)
* [C→R](#complextoreal)
* [DATE](#date)
* [→DATE](#setdate)
@ -3864,8 +3900,11 @@ The following is a list of the HP50 RPL commands which are implemented in DB50X.
* [DISP](#disp)
* [DISPXY](#dispxy)
* [DIV2](#div2)
* [DOERR](#doerr)
* [DO](#do)
* [DOERR](#doerr)
* [DOLIST](#dolist)
* [DOSUBS](#dosub)
* [DOT](#dot)
* [DRAW](#draw)
* [DRAX](#drax)
* [DROP2](#drop2)
@ -4128,7 +4167,6 @@ of the HP48 commands.
* CONIC
* CORR
* CR
* CROSS
* CSWP
* CURL
* CYCLOTOMIC
@ -4158,10 +4196,7 @@ of the HP48 commands.
* DIVMOD
* DIVPC
* dn
* DOLIST
* DOMAIN
* DOSUBS
* DOT
* DRAW3DMATRIX
* DROITE
* DUPDUP
@ -5178,27 +5213,27 @@ using the `config/equations.csv` configuration file.
The variables in the columns and beams section are:
* `o`: Eccentricity (offset) of load
* `σcr`: Critical stress
* `σmax`: Maximum stress
* `θ`: Slope at `x`
* `o`: Eccentricity (offset) of load (dim.: length)
* `σcr`: Critical stress (dim.: pressure)
* `σmax`: Maximum stress (dim.: pressure)
* `θ`: Slope at `x` (dim.: angle)
* `A`: Cross-sectional area
* `a`: Distance to point load
* 'ε': Eccentricity
* 'ε': Eccentricity (dim.: length)
* `c`: Distance to edge fiber (Eccentric Columns), or Distance to applied moment (beams)
* `E`: Modulus of elasticity
* `I`: Moment of inertia
* `E`: Modulus of elasticity (dim.: pressure)
* `I`: Moment of inertia (dim.: length^4)
* `K`: Effective length factor of column
* `L`: Length of column or beam
* `M`: Applied moment
* `Mx`: Internal bending moment at x
* `P`: Load (Eccentric Columns), or Point load (beams)
* `Pcr`: Critical load
* `M`: Applied moment (dim.: length۰force)
* `Mx`: Internal bending moment at x (dim.: length۰force)
* `P`: Load (Eccentric Columns), or Point load (beams) (dim.: force)
* `Pcr`: Critical load (dim.: force)
* `r`: Radius of gyration
* `V`: Shear force at x
* `w`: Distributed load
* `w`: Distributed load (dim.: force)
* `x`: Distance along beam
* `y`: Deflection at x
* `y`: Deflection at x (dim.: length)
For simply supported beams and cantilever beams (“Simple Deflection” through
@ -5265,6 +5300,55 @@ These equations apply to a slender column (`K·L/r>100`) with length factor `K`.
## Electricity
The variables in the electricity section are:
* `∈r`: Relative permittivity
* `μr`: Relative permeability
* `ω`: Angular frequency (dim.: angle/time)
* `ω0`: Resonant angular frequency (dim.: angle/time)
* `φ`: Phase angle
* `φp, φs`: Parallel and series phase angles
* `ρ`: Resistivity (dim.: resistance۰length; in SI: ohm۰meter, Ω۰m)
* `ΔI`: Current Change (dim.: charge/time; in SI: ampere, A)
* `Δt`: Time Change
* `ΔV`: Voltage Change (dim.: energy/charge; in SI: volt, V)
* `A`: Wire cross-section area (Wire Resistance), os Solenoid cross-section area (Solenoid Inductance), or Plate area (Plate Capacitor)
* `C, C1, C2`: Capacitance (dim.: charge^2/energy; in SI: farad, F)
* `Cp, Cs`: Parallel and series capacitances (dim.: charge^2/energy; in SI: farad, F)
* `d`: Plate separation (dim.: length)
* `E`: Energy
* `Er`: Electric field at distance r from the source (dim.: force/charge; in SI: N/C = V/m)
* `Ep`: Electric field over an infinite plate (dim.: force/charge; in SI: N/C = V/m)
* `F`: Force between charges
* `f`: Frequency (dim.: time^-1)
* `f0`: Resonant frequency (dim.: time^-1)
* `I`: Current, or Total current (Current Divider) (dim.: charge/time; in SI: ampere, A)
* `I1`: Current in R1 (dim.: charge/time; in SI: ampere, A)
* `Imax`: Maximum current (dim.: charge/time; in SI: ampere, A)
* `L`: Inductance (dim.: energy/current^2; in SI: henry, H), or Length (Wire Resistance, Cylindrical Capacitor)
* `Lp, Ls`: Parallel and series inductances (dim.: energy/current^2; in SI: henry, H)
* `N`: Number of turns
* `P`: Power (dim.: energy/time)
* `q`: Charge (in SI: coulomb, C)
* `q1, q2`: Point charge (in SI: coulomb, C)
* `Qp, Qs`: Parallel and series quality factors
* `r`: Charge distance
* `R, R1, R2`: Resistance (dim.: energy۰time/charge^2; in SI: ohm, Ω)
* `ri, ro`: Inside and outside radii
* `Rp, Rs`: Parallel and series resistances (dim.: energy۰time/charge^2; in SI: ohm, Ω)
* `t`: Time
* `ti, tf`: Initial and final times
* `V`: Voltage, or Total voltage (dim.: energy/charge; in SI: volt, V)
* `V1`: Voltage accross R1 (dim.: energy/charge; in SI: volt, V)
* `Vi, Vf`: Initial and final voltages (dim.: energy/charge; in SI: volt, V)
* `Vmax`: Maximum voltage (dim.: energy/charge; in SI: volt, V)
* `XC`: Reactance of capacitor (dim.: energy۰time/charge^2; in SI: ohm, Ω)
* `XL`: Reactance of inductor (dim.: energy۰time/charge^2; in SI: ohm, Ω)
### Coulomb's Law & E Field
These equations describe the electrostatic force between two point charged particles and the electric field measured at the location of a test charge
## Fluids
## Forces and Energy

View file

@ -1,4 +1,4 @@
#define QSPI_DATA_SIZE 262020
#define QSPI_DATA_SIZE 262556
#define QSPI_DATA_CRC 0x000cfed6

View file

@ -1,4 +1,4 @@
#define QSPI_DATA_SIZE 261564
#define QSPI_DATA_SIZE 262100
#define QSPI_DATA_CRC 0x000cfed6