Repository navigation
Releases: ractive/saturnus
Release list
saturnus 0.9.0
saturnus 0.9.0 lets your AI app use the calculators on the web page:
Claude, ChatGPT or Claude Code can read the display and the stack, press
keys, run RPL and look up commands in your browser tab, and you can watch
every call it makes.
Get it
- On the web, nothing to install: https://ractive.ch/saturnus/app/
(Chrome or Edge for a serial cable; every browser for the emulated
calculator). AI access is on the web page only. - The desktop app
saturnus_0.9.0_…(on Linuxsaturnus-app), with a
-SHA256SUMSfile beside them:- macOS, Apple silicon:
.dmg, signed and notarised, orbrew trust --cask ractive/tap/saturnus-apponce, thenbrew install --cask ractive/tap/saturnus-app; - Windows:
.msior-setup.exefor x86_64 (x64) and ARM (arm64); - Linux:
.deb,.rpmor.AppImagefor x86_64 (amd64,x86_64)
and ARM (arm64,aarch64). Add yourself to thedialoutgroup to
use a serial port.
- macOS, Apple silicon:
- The command-line tools
saturnusandsatx:cargo install,
Homebrewractive/tap, Scoopractive, or the archives and Linux
packages below. - Libraries on crates.io, all at 0.9.0, unchanged apart from the
version.
AI access
- Open a calculator, choose Connect your AI app… in the sidebar or the
command palette, and add the address shown to your AI app as a custom
connector (claude.ai, Claude Desktop, ChatGPT's developer mode) or MCP
server (Claude Code). When it asks for a code, type the 6-digit code
saturnus shows. - The AI app can list the calculators, read the display, the stack and
variables, press keys, run RPL and functions, and look up commands with
the reference. Storing or purging a variable asks you first: Allow,
Always allow (for that app until you reload or disconnect it) or Don't
allow. - The connection goes through the relay https://tab-mcp.ractive.ch, built
on tab-mcp. What it passes and
keeps: https://ractive.ch/tab-mcp/. - The sidebar says whether an AI app is connected and offers Disconnect;
a broken connection is tried again by itself. - The AI's calls, closed by default: every call with its arguments and
how it ended, and the connection's events, beside the calculator.
saturnus 0.8.1
saturnus 0.8.1 brings the desktop app to ARM: Windows on ARM and Linux
aarch64 now have their own installers. Nothing else changes; see 0.8.0
for this week's new features.
Get it
- On the web, nothing to install: https://ractive.ch/saturnus/app/
(Chrome or Edge for a serial cable; every browser for the emulated
calculator). - The desktop app
saturnus_0.8.1_…(on Linuxsaturnus-app), with a
-SHA256SUMSfile beside them:- macOS, Apple silicon:
.dmg, signed and notarised, orbrew trust --cask ractive/tap/saturnus-apponce, thenbrew install --cask ractive/tap/saturnus-app; - Windows:
.msior-setup.exefor x86_64 (x64) and, new, for ARM
(arm64); - Linux:
.deb,.rpmor.AppImagefor x86_64 (amd64,x86_64)
and, new, for ARM (arm64,aarch64). Add yourself to thedialout
group to use a serial port.
- macOS, Apple silicon:
- The command-line tools
saturnusandsatx:cargo install,
Homebrewractive/tap, Scoopractive, or the archives and Linux
packages below (ARM archives as before). - Libraries on crates.io, all at 0.8.1, unchanged apart from the
version.
Desktop app on ARM
- Windows on ARM runs the app natively. The setup
.exeitself is the
usual installer, which Windows runs emulated; the app it installs is
ARM. - Linux aarch64 gets the same three packages as x86_64, the package
saturnus-app.
saturnus 0.8.0
saturnus 0.8.0 gives every model a command reference you can run from
Search, adds comments to the examples, and fixes keys at higher speeds.
Get it
- On the web, nothing to install: https://ractive.ch/saturnus/app/
(Chrome or Edge for a serial cable; every browser for the emulated
calculator). - The desktop app
saturnus_0.8.0_…(on Linuxsaturnus-app):
.dmg(macOS, Apple silicon, signed and notarised, orbrew trust --cask ractive/tap/saturnus-apponce, thenbrew install --cask ractive/tap/saturnus-app),.msior-setup.exe(Windows x86_64),
.deb,.rpmor.AppImage(Linux x86_64), with a-SHA256SUMS
file beside them. On Linux, add yourself to thedialoutgroup to use
a serial port. - The command-line tools
saturnusandsatx:cargo install,
Homebrewractive/tap, Scoopractive, or the archives and Linux
packages below. - Libraries on crates.io, all at 0.8.0.
saturnus-hostadds the
protocol commandentryModes; nothing breaks.
A reference for every model
- Search and
saturnus refnow cover all twelve models. New are the 42S,
27S, 17BII, 17B, 19BII, 28S, 38G, 39G and 40G: what each function does,
the keys that reach it ("⇧ CONVERT →POL", "FIN TVM PMT"), its manual
page and examples run on the emulator. - Choosing a function in Search runs it:
- the 42S and the menu models press its keys, and on the 42S a
function with no key of its own is spelt with XEQ; - the 28S types the name and presses ENTER;
- the 38G, 39G and 40G put the function on HOME's edit line for you to
finish.
- the 42S and the menu models press its keys, and on the 42S a
- A pending shift or ALPHA is cancelled first, so Search never presses
the wrong function. - Examples carry a short comment where the input alone does not say what
it shows: "1h30m plus 2h45m gives 4h15m", "From 100 to 125 is a rise of
25 percent". - A Note marks where a ROM gets a result wrong: the 48SX's HMS+ gives
.6 for 0.5959 + 0.0001, and the 38G's ACOT answers in radians in DEG
mode. Both are confirmed on real calculators.
Fixes
- At 2×, 4× and Max, a key you hold now runs at normal speed, so a tap
stays a tap. Before, the 42S showed NULL and dropped the key, and the
48 and 49 repeated it.
Smaller changes
- Plainer, consistent wording in the app, Files, the desktop app, the
CLIs, the READMEs and the crate docs; messages use real plurals. - The ROM note says how to read a 42S, 27S, 17BII, 17B or 28S ROM out of
your own calculator, pointing to Christoph Gießelink's Emu42 page. - The landing page: a card and a history dialog for each model, and the
desktop app's Homebrew cask in the install lines.
saturnus 0.7.0
saturnus 0.7.0 moves choosing calculators and ROMs to the home page,
gives the web and desktop app one refined look, and makes the command
reference easier to read and to use.
Get it
- On the web, nothing to install: https://ractive.ch/saturnus/app/
(Chrome or Edge for a serial cable; every browser for the emulated
calculator). - The desktop app
saturnus_0.7.0_…(on Linuxsaturnus-app):
.dmg(macOS, Apple silicon, signed and notarised, orbrew trust --cask ractive/tap/saturnus-apponce, thenbrew install --cask ractive/tap/saturnus-app),.msior-setup.exe(Windows x86_64),
.deb,.rpmor.AppImage(Linux x86_64), with a-SHA256SUMS
file beside them. On Linux, add yourself to thedialoutgroup to use
a serial port. - The command-line tools
saturnusandsatx:cargo install,
Homebrewractive/tap, Scoopractive, or the archives and Linux
packages below. - Libraries on crates.io, all at 0.7.0, unchanged apart from the
version.
Calculators and ROMs on the home page
- The home page is where calculators are chosen, given a ROM, switched
and removed: each one has a ⋯ menu (Change ROM…, Remove), and "New
calculator" lists the models without a ROM, with Choose… and Download. - "Start the last calculator when the app opens" decides whether the app
opens on the home page or on the last calculator. - The Calculator view's panel shows the running calculator's ROM with
Change ROM… and a Switch calculator link home.
Command reference
- Commands say what their name stands for: RSD "Residual", LSQ "Least
squares", DUP "Duplicate", in the entry and the list; searching
"residual" or "least squares" finds them. - Run and Type in a command's entry run it on the stack as it is,
or type it into the command line; Enter and ⌘/Ctrl+Enter in the list
do the same. - Examples show the stack before the command and the stack after, as
the calculator displays them. - The menu tree and the command list scroll inside their card.
Smaller changes
- One visual language for the panel, the memory view and the home page:
cards, bold headings, the panel as a settings column grouped into ROM,
Clock, Speed and Display. - No Files link and no Edit button on models without them (27S, 42S, …).
- The tour points out Control-click and Option-click (Ctrl+click and
Alt+click) for the shifted functions, right after the keys. - The storage line on the home page says what Keep permanently does.
- The landing page's install lines as a terminal.
saturnus 0.6.0
saturnus 0.6.0 makes the emulator and saturnus tx one app: a home page
with your calculators, and Calculator and Files side by side, on the web
and on the desktop.
Get it
- On the web, nothing to install: https://ractive.ch/saturnus/app/
(Chrome or Edge for a serial cable; every browser for the emulated
calculator). The old addresses/saturnus/emulator/and
/saturnus/transfer/are gone; an app installed from them retires
itself and opens the new one. Kept ROMs and saved states stay. - The desktop app
saturnus_0.6.0_…(on Linuxsaturnus-app):
.dmg(macOS, Apple silicon, signed and notarised, orbrew trust --cask ractive/tap/saturnus-apponce, thenbrew install --cask ractive/tap/saturnus-app),.msior-setup.exe(Windows x86_64),
.deb,.rpmor.AppImage(Linux x86_64), with a-SHA256SUMS
file beside them. On Linux, add yourself to thedialoutgroup to use
a serial port. The separate saturnus tx desktop app and its cask are
gone:brew uninstall --cask saturnus-txif you had it. - The command-line tools
saturnusandsatx:cargo install,
Homebrewractive/tap, Scoopractive, or the archives and Linux
packages below. - Libraries on crates.io, all at 0.6.0, unchanged apart from the
version.
One app
- A home page lists the calculators you kept, each with
Calculator and Files, marks the running ones, and offers a new
calculator or one on a cable. - Calculator and Files are two views of one page: switching never
reloads it or stops the calculator, and a transfer goes on whichever
view is shown. - On the desktop, Files works the calculator the app is running
(through the native engine), a calculator on a serial cable, and the
computer's folders, in the same window.
Smaller changes
- Files:
..goes up a folder; folders have a filled icon and
semi-bold names; Settings works on the emulator's calculator; "Show
the packets" (was "Show the cable"), hidden where there are none. - One WebAssembly package for the whole web app.
saturnus 0.5.0
saturnus 0.5.0 adds the HP 19BII, makes held keys work on the Lewis
models, lets saturnus tx work the emulator's calculator without SERVER
mode, and keeps the desktop saturnus tx app to the folders you allow.
Get it
- On the web, nothing to install: the emulator at
https://ractive.ch/saturnus/emulator/, saturnus tx at
https://ractive.ch/saturnus/transfer/ (Chrome or Edge for a serial
cable; every browser for the emulated calculator). - The desktop apps:
saturnus_0.5.0_…(the emulator, on Linux
saturnus-app) andsaturnus-tx_0.5.0_…:.dmg(macOS, Apple
silicon, signed and notarised, orbrew trust --cask ractive/tap/saturnus-appandbrew trust --cask ractive/tap/saturnus-txonce, thenbrew install --cask ractive/tap/saturnus-apporractive/tap/saturnus-tx),.msior
-setup.exe(Windows x86_64),.deb,.rpmor.AppImage(Linux
x86_64), each app's with a-SHA256SUMSfile beside them. On Linux,
add yourself to thedialoutgroup to use a serial port. - The command-line tools
saturnusandsatx:cargo install,
Homebrewractive/tap, Scoopractive, or the archives and Linux
packages below. - Libraries on crates.io, all at 0.5.0:
saturnus-core,
saturnus-objects,saturnus-host,saturnus-drive,kermit-proto,
xmodem-protoandsatx-core. 0.5 changes the public API of
saturnus-objects(its own error types instead ofanyhow),
satx-core(file names, new errors) andsaturnus-host(the emulated
serial wire);CHANGELOG.mdlists what to adapt.
Breaking for satx scripts
satx get X now writes X.hp (or X.txt with --ascii) instead of a
file named X, with odd characters escaped as saturnus tx does
(A?B becomes A%3FB.hp); satx put A%3FB.hp stores A?B. The same
for XModem get, xserv get and the REPL's :get. -o still names the
file. There is no flag for the old behaviour.
New calculator
- HP 19BII, in the browser, the desktop app and on the command line
(--model 19bii), with a drawn skin of the open clamshell. Its ROM
was never published and the calculator cannot read it out: choose a
file you have. saturnus tx does not offer it (no serial port).
Emulator
- Held keys on the 42S, 27S, 17B, 17BII, 28S and 19BII act as held
keys: the 42S previews a function and shows NULL, the 27S shows MEM
while the key is down. - "Set the clock" lands on the second, at any speed.
- The 39G and 40G no longer drop a repeated key (1133 typed as 13).
- Drop a calculator file on the drawn 48SX, 48GX or 49G to store it
in the current directory. - "Transfer files" opens saturnus tx with the running calculator
already connected, and the two pages bring each other's tab forward
instead of opening another.
saturnus tx
- The emulator's calculator without SERVER. tx reads and writes the
calculator's memory directly, between the emulator's own keys: no
waiting after ATTN or with a command line open, and a variable typed
in the emulator shows in tx at once. - The desktop app changes files only in your home folder and in
folders you chose with "Open a folder…" (remembered across runs). It
never deletes your home folder or a folder directly in it. - Recent folders: the last 8 folders a pane showed, one click away.
In the browser, choose your folder once more. - The desktop app offers the emulator app's ROMs under "Add an
emulated calculator" and for the aplet server. - Serving a folder to a 38G, 39G or 40G no longer overwrites your other
files of the same name. - A Kermit transfer that makes no progress ends with "no progress for
N s" instead of running on (also in satx).
Fixes behind the scenes
- The web pages say "The calculator stopped; reload the page." instead
of waiting forever on a crashed calculator. - Two tabs without a shared worker no longer overwrite each other's
saved calculator. saturnus run --serialstays off the serial line while the control
API writes memory.
See CHANGELOG.md for the full list.
The Windows installers are not signed
SmartScreen says "Windows protected your PC": click "More info", then
"Run anyway".
ROMs are not included
saturnus ships no ROM. saturnus rom fetch --model <m>, the web page and
the app download the images hpcalc.org offers for use with emulators,
after asking. The ROMs of the 42S, 27S, 17BII, 17B, 28S and 19BII were
never released: dump your own calculator (see the README); the 19BII
cannot read its own ROM out.
Clean room and AI notice
saturnus is written from public hardware documentation and the observed
behaviour of the calculators' own ROMs, not from the source code of other
emulators, and contains no HP logos or wordmarks. Parts of the code were
generated by AI systems under human supervision; see AI_NOTICE. MIT
licence.
saturnus 0.4.0
saturnus 0.4.0 lets the emulator and saturnus tx share one live
calculator, adds four calculators (the HP 27S, 17BII, 17B and 28S), and
makes saturnus tx faster and easier to follow.
Get it
- On the web, nothing to install: the emulator at
https://ractive.ch/saturnus/emulator/, saturnus tx at
https://ractive.ch/saturnus/transfer/ (Chrome or Edge for a serial
cable; every browser for the emulated calculator). - The desktop apps:
saturnus_0.4.0_…(the emulator, on Linux
saturnus-app) andsaturnus-tx_0.4.0_…:.dmg(macOS, Apple
silicon, signed and notarised, orbrew trust --cask ractive/tap/saturnus-appandbrew trust --cask ractive/tap/saturnus-txonce, thenbrew install --cask ractive/tap/saturnus-apporractive/tap/saturnus-tx),.msior
-setup.exe(Windows x86_64),.deb,.rpmor.AppImage(Linux
x86_64). On Linux, add yourself to thedialoutgroup to use a
serial port. - The command-line tools
saturnusandsatx:cargo install,
Homebrewractive/tap, Scoopractive, or the archives and Linux
packages below. - Libraries on crates.io, all at 0.4.0:
saturnus-core,
saturnus-objects,saturnus-host,saturnus-drive,kermit-proto,
xmodem-protoandsatx-core. 0.4 changes some of their public
types (the screen's width, new models and keys);CHANGELOG.mdlists
what to adapt.
One calculator for the emulator and saturnus tx
The emulated 48SX, 48GX or 49G that saturnus tx connects to is now the
emulator's own calculator, running. What you type in the emulator shows
up in saturnus tx at once, and what you copy in saturnus tx appears in
the emulator's memory and on its screen as it happens. Closing either
page leaves the other one running. Both pages must be the same version
("Reload the page" otherwise).
New calculators
- HP 27S, 17BII and 17B, and the HP 28S with its open clamshell
and letter keyboard, each with a drawn skin. None of their ROMs was
ever published: read the ROM out of your own calculator. They have no
serial port, so saturnus tx does not offer them. - Their self-tests, and the 42S's, now pass the ROM check.
Emulator
- Set the clock: one button sets the calculator to your computer's
date and time, on every model that has a clock; optionally on every
start.
saturnus tx
- Progress where you click: a preview shows what is being read, how
much, and how long a slow cable will take. - Show the cable: a console lists every packet on the link, in plain
words, with errors in red. - Open in the emulator opens the emulator on the calculator a pane
shows. - Files in this browser is the new name of the storage used where
no folder can be chosen (Firefox, Safari), so nobody looks for it in
Downloads. - Faster emulated calculators: connected and listed in about 3 s
instead of 11, and copies in seconds instead of minutes. - File previews show programs and expressions with the 48SX's and
48GX's command names. - The graphics screen goes to the other pane like any variable.
- A calculator is no longer left waiting in "Awaiting Server Cmd.".
Fixes behind the scenes
- The test suites' emulator start-up no longer fails now and then on CI.
See CHANGELOG.md for the full list.
The Windows installers are not signed
SmartScreen says "Windows protected your PC": click "More info", then
"Run anyway".
ROMs are not included
saturnus ships no ROM. saturnus rom fetch --model <m>, the web page and
the app download the images hpcalc.org offers for use with emulators,
after asking. The ROMs of the 42S, 27S, 17BII, 17B and 28S were never
released: dump your own calculator (see the README).
Clean room and AI notice
saturnus is written from public hardware documentation and the observed
behaviour of the calculators' own ROMs, not from the source code of other
emulators, and contains no HP logos or wordmarks. Parts of the code were
generated by AI systems under human supervision; see AI_NOTICE. MIT
licence.
saturnus 0.3.0
saturnus 0.3.0 brings saturnus tx, a file manager for HP calculators:
a calculator on one side, a folder on your computer (or a second
calculator) on the other, and copying between them by dragging. It runs
as a web page and as a desktop app, against a real calculator on a
serial cable or one emulated right in the page.
Get it
- saturnus tx on the web, nothing to install:
https://ractive.ch/saturnus/transfer/ (Chrome or Edge for a serial
cable; every browser for the emulated calculator). - saturnus tx as a desktop app:
saturnus-tx_0.3.0_aarch64.dmg
(macOS, Apple silicon, signed and notarised, or
brew trust --cask ractive/tap/saturnus-txonce, then
brew install --cask ractive/tap/saturnus-tx),.msior-setup.exe
(Windows x86_64),.deb,.rpmor.AppImage(Linux x86_64). Native
serial ports in every system, no Chrome needed. On Linux, add yourself
to thedialoutgroup to use the port. - The emulator, unchanged in how you get it: the web page
https://ractive.ch/saturnus/emulator/, the desktop app (saturnus_0.3.0_…,
on Linuxsaturnus-app), and the command-line toolssaturnusand
satx(cargo install, Homebrewractive/tap, Scoopractive, or the
archives and Linux packages below). - Libraries on crates.io, all at 0.3.0:
saturnus-core,
saturnus-objects,saturnus-host,saturnus-drive,kermit-proto,
xmodem-protoandsatx-core.
New in saturnus tx
- Two panes: browse the calculator's directories, preview programs,
strings and pictures, and copy by dragging, F5 or the menu; drop files
from your file manager. Rename, delete and new directory on both
sides; nothing is replaced or removed without asking first. - Backup and restore of the whole calculator into a folder, and the
calculator's graphics screen as a picture. - Fast transfer (XModem) on the 48GX and 49G: the page tells you
what to type on the calculator and reconnects afterwards. Tested on
the emulated calculators. - Aplets for the 38G, 39G and 40G: these calculators start every
transfer themselves, so saturnus tx serves a folder to them as their
"disk drive", on a cable or with an emulated 38G, 39G or 40G. - Emulated calculators (48SX, 48GX, 49G) from the ROMs the emulator
already keeps, so you can try everything without a cable.
Emulator fixes
- Ending the emulated calculator's server mode (after a transfer) is
reliable: it no longer mistakes a quiet server for an ended one. - No more accidental zooming in fullscreen on a phone.
- The installed web pages never cache a half-deployed update.
See CHANGELOG.md for the full list.
The Windows installers are not signed
SmartScreen says "Windows protected your PC": click "More info", then
"Run anyway".
ROMs are not included
saturnus ships no ROM. saturnus rom fetch --model <m>, the web page and
the app download the images hpcalc.org offers for use with emulators,
after asking. The HP 42S ROM was never released: dump your own
calculator (see the README).
Clean room and AI notice
saturnus is written from public hardware documentation and the observed
behaviour of the calculators' own ROMs, not from the source code of other
emulators, and contains no HP logos or wordmarks. Parts of the code were
generated by AI systems under human supervision; see AI_NOTICE. MIT
licence.
saturnus 0.2.0
saturnus 0.2.0 brings the transfer tool satx into the project: one tag now
releases two command-line tools, saturnus (the emulator) and satx
(Kermit and XModem transfers to a real HP 48 or 49 over a serial cable).
The site moved to a landing page with the emulator under it.
Get it
- Web page, nothing to install: https://ractive.ch/saturnus/, the
emulator at https://ractive.ch/saturnus/emulator/. Kept ROMs and
states stay where they were; install the web app again from the new
address. - Command line:
cargo install saturnus,cargo install satx;- Homebrew (macOS, Linux):
brew trust --formula ractive/tap/saturnus
once, thenbrew install ractive/tap/saturnusand
brew install ractive/tap/satx; - Scoop (Windows):
scoop bucket add ractive https://github.com/ractive/scoop-bucket,
thenscoop install saturnusandscoop install satx; - the archives below,
saturnus-v0.2.0-<target>and
satx-v0.2.0-<target>(checksums insaturnus-SHA256SUMSand
satx-SHA256SUMS), or the Linux x86_64 packagessaturnusand
satx(.deb, .rpm, statically linked).
- Desktop app:
.dmg(macOS, Apple silicon, signed and notarised),
.msior-setup.exe(Windows x86_64),.deb,.rpmor.AppImage
(Linux x86_64). Its Linux package is nowsaturnus-app, so it installs
next to the command line'ssaturnus. - Libraries on crates.io, all at 0.2.0:
saturnus-core(the core, no
dependencies, builds forwasm32),saturnus-objects,
saturnus-host,saturnus-drive, and satx'skermit-proto,
xmodem-protoandsatx-core.
Renamed, with no compatibility for the old names
- The core library is the crate
saturnus-core(use saturnus_core::…);
the cratesaturnusis now the command-line tool.saturnus-cligets
no new versions. - The CLI's Linux package is
saturnus, the desktop app's
saturnus-app. - The checksums file
SHA256SUMSis now one per tool.
New
- satx: send and receive files with an HP 48 or 49 by Kermit or
XModem, from the command line, against a real calculator or the
emulator. Shell completions come in its archives and packages. - Screen to a variable… and Screen to stack: the display goes onto
the calculator as a 131 × 64 graphic. Alsosaturnus ctl screen --to-var NAMEand--to-stack. - Saved states work alike in the browser and the app, one per model
at a click, plus.satfiles that also load insaturnus run --load. - A guided tour of the page, offered once on a first visit.
- The command line's macOS binaries are signed and notarised.
The memory view, the dialogs, the ROM table, the messages and the docs
were reworked along the way; see CHANGELOG.md for the full list.
The Windows installers are not signed
SmartScreen says "Windows protected your PC": click "More info", then
"Run anyway".
ROMs are not included
saturnus ships no ROM. saturnus rom fetch --model <m>, the web page and
the app download the images hpcalc.org offers for use with emulators,
after asking. The HP 42S ROM was never released: dump your own
calculator (see the README).
Clean room and AI notice
saturnus is written from public hardware documentation and the observed
behaviour of the calculators' own ROMs, not from the source code of other
emulators, and contains no HP logos or wordmarks. Parts of the code were
generated by AI systems under human supervision; see AI_NOTICE. MIT
licence.
saturnus 0.1.0
saturnus is a headless, clean-room emulator of the HP Saturn calculators,
written in Rust: a library first, with a command-line tool, a web page
and a desktop app on top. This is its first public release.
The calculators
| Model | State |
|---|---|
| HP 48SX | boots, screens match the saturnng emulator, Kermit, real-hardware speed |
| HP 48GX | boots, screens match, Kermit, real-hardware speed |
| HP 49G | boots, screens match, Kermit, real-hardware speed (ROM 2.10 benchmark) |
| HP 38G | boots to HOME, takes keys |
| HP 39G | boots to HOME, takes keys, reset chords |
| HP 40G | as the 39G (same ROM), with its CAS key |
| HP 42S | boots, takes keys, runs its self-test |
Get it
- Web page, nothing to install: https://ractive.ch/saturnus/.
The ROM you pick stays in your browser; nothing is uploaded. On a
phone it can be added to the home screen and then works offline. The
calculator keeps its state across reloads ("Start fresh" in the palette
for an empty one). - Command line
saturnus:cargo install saturnus-cli, or
brew install ractive/tap/saturnus(macOS, Linux; Homebrew 6+ first
brew trust --formula ractive/tap/saturnus), or
scoop bucket add ractive https://github.com/ractive/scoop-bucket
thenscoop install saturnus(Windows), or an archive below
(saturnus-v0.1.0-<target>; checksums inSHA256SUMS). - Desktop app: the installers below,
.dmg(macOS, Apple silicon),
.msior-setup.exe(Windows x86_64),.deb,.rpmor.AppImage
(Linux x86_64). The same page, with the core running natively; an
empty ROM slot offers to download the image from hpcalc.org (not for
the 42S, whose ROM was never released). - Libraries on crates.io:
saturnus(the core: no dependencies,
builds forwasm32),saturnus-objects,saturnus-host,
saturnus-drive.
What you can do with it
- Type and edit (48SX, 48GX, 49G): paste text, or pick a command in
the palette (Cmd/Ctrl+K), and it is typed into the calculator's
command line. The palette's editor opens a variable, a stack level or
the command line as RPL text; Cmd/Ctrl+S sends it back, and the
calculator compiles it. Cmd/Ctrl+E opens the selected object. - Memory view (48SX, 48GX, 49G): variables, directories, stack and
flags, read live. Store a file by dropping it on the view, save a
variable as a file, rename, purge, create a directory, change the
current one, set flags. This goes through the calculator's own Kermit
server and leaves the stack and the screen as they were. - Keyboard shortcuts (Alt+K): ON, α, the shifts and the app's
actions can be bound to other keys. - Scripting:
saturnus run --serveserves the serial port for
Kermit clients and a control API on 127.0.0.1;saturnus ctldrives
it (keys,screen,stack,type,text,store,fetch, …).
saturnus refis a command reference with examples run on the
emulator.
The installers are not signed
They are built by this repository's desktop.yml workflow and not yet
signed with a developer certificate, so the operating system warns:
- macOS: open the
.dmgand drag saturnus to Applications. On the
first start macOS says the app "is damaged" or "cannot be opened".
Run once, in Terminal:
xattr -dr com.apple.quarantine /Applications/saturnus.app.
(If the message offers it instead: System Settings, Privacy &
Security, "Open Anyway".) - Windows: SmartScreen says "Windows protected your PC". Click
"More info", then "Run anyway". - Linux: packages are unsigned as usual.
ROMs are not included
saturnus ships no ROM and never will. saturnus rom fetch --model <m>
downloads the images hpcalc.org offers for use with emulators (48SX ROM J,
48GX ROM R, 38G A1.67, 49G 2.15, 39G/40G) after asking, and checks size
and SHA-256; the web page and the app take the same files. The HP 42S ROM
was never released: dump your own calculator (see the README).
Known limits
- The 38G, 39G, 40G and 42S have no reference emulator to compare
screens against; the 42S runs at a flat, uncalibrated 1 MHz and its IR
printer is not modelled. - The memory view, the editor and the command reference cover the 48SX,
48GX and 49G. On the 49G, writes other than flags need RPN mode (flag
-95 clear). - The speed calibration is fitted to one benchmark per model (48SX, 48GX,
49G); the reason for the fitted factor is not known. - The desktop app is built for Apple silicon Macs only (Intel Macs: use
the web page orcargo install saturnus-cli) and has no auto-update. - The control API listens on 127.0.0.1 only, behind a token.
Clean room and AI notice
saturnus is written from public hardware documentation and the observed
behaviour of the calculators' own ROMs, not from the source code of other
emulators, and contains no HP logos or wordmarks. Parts of the code were
generated by AI systems under human supervision; see AI_NOTICE. MIT
licence.
See CHANGELOG.md for the full list.