bb01d0cce8
`Char→Code` (`NUM`, `CODEPOINT`, `CharToUnicode`) returns the Unicode codepoint of the first character in the text, or `-1` if the text is empty. `"Hello" NUM` returns `72`. `Text→Code` (`TextToUnicode`) returns a list of the Unicode codepoints for all codepoints in the given text. `"Hello" Text→Code` returns `{ 72 101 108 108 111 }`. `Code→Text` (`CHR`, `Code→Char`) builds a text out of a Unicode codepoint. The argument can be either a single numerical value or a list of numerical values. A negative numerical value produces an empty text. `{ 87 111 114 -22 108 100 }` returns `"World"`, the value `-22` producing no character. `42 CHR` returns `"*"`, and `34 CHR` returns `""""`, which is a 1-character text containing an ASCII quote `"`. Fixes: #597 Signed-off-by: Christophe de Dinechin <christophe@dinechin.org> |
||
---|---|---|
config | ||
DB48X-DB50X-Keys-Src | ||
DB48X-Keys | ||
dmcp@4befe9b376 | ||
dmcp5@91cb47248c | ||
doc | ||
fonts | ||
help | ||
inc | ||
lib | ||
recorder@9b1b214ab2 | ||
sim | ||
src | ||
state | ||
tools | ||
.clang-format | ||
.clangd | ||
.gitignore | ||
.gitmodules | ||
AUTHORS | ||
BUILD.md | ||
FREEDOM_COVENANT.txt | ||
Keyboard-Cutout.png | ||
Keyboard-Layout.png | ||
LICENSE.txt | ||
Makefile | ||
README.md | ||
STATUS.md |
DB48X on DM42
The DB48X project intends to rebuild and improve the user experience of the HP48 family of calculators, notably their "Reverse Polish Lisp" (RPL) language with its rich set of data types and built-in functions, and Lisp-level programming power.
The project in this repository is presently targeting the SwissMicro DM42 and DM32 calculators. It leverages their built-in software platform, known as DMCP. There is also a simulator that is tested on macOS or Linux.
In the long-term, the vision is to be able to port DB48X on a number of different physical calculator platforms, like the ARM-based HP50 and related machines (HP49, HP48Gii, etc), and the HP Prime (at least the G1, since the G2 seems a bit more locked down), maybe others. The basis for that work can be found in the DB48X project.
This project was presented at FOSDEM 2023
Why name the project DB48X?
DB stands for "Dave and Bill", who are more commonly known as Hewlett and Packard. The order is reversed compared to HP, since they reportedly chose the order at random, and it's about time Dave Packard was given preeminence.
Part of Dave and Bill's great legacy (beyond giving birth to the Silicon Valley) is a legendary series of calculators. The HP48 remains one of my favorites, notably for its rich built-in programming language, known as Reverse Polish Lisp (RPL). This project aims at recreating a decent successor to the HP48, at least in spirit.
State of the project
This is currently UNSTABLE and INCOMPLETE software. Please only consider installing this if you are a developer and interested in contributing. Or else, have a paperclip at hand just in case you need to reset your calculator.
The detailed current status is described in the STATUS file.
How to build this project
There is a separate document explaining how to build this project.
The simulator includes a test suite, which you should run before submitting
patches. To run these tests, pass the -T
option to the simulator, or hit the
F12 key in the simulator.
Built-in documentation
The calculator features an extensive built-in documentation
that uses a restricted version of Markdown.
You access that built-in help by holding a key down, or
using the Help
command
Other documentation
There is DMCP interface doc in progress see DMCP IFC doc (or you can download html zip from doc directory).
The source code of the DM42PGM
program
is also quite informative about the capabilities of the DMCP.