Skip to content

Releases: ractive/saturnus

saturnus 0.9.0

Choose a tag to compare

@ractive ractive released this 21 Oct 12:39

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 Linux saturnus-app), with a
    -SHA256SUMS file beside them:
    • macOS, Apple silicon: .dmg, signed and notarised, or brew trust --cask ractive/tap/saturnus-app once, then brew install --cask ractive/tap/saturnus-app;
    • Windows: .msi or -setup.exe for x86_64 (x64) and ARM (arm64);
    • Linux: .deb, .rpm or .AppImage for x86_64 (amd64, x86_64)
      and ARM (arm64, aarch64). Add yourself to the dialout group to
      use a serial port.
  • The command-line tools saturnus and satx: cargo install,
    Homebrew ractive/tap, Scoop ractive, 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

Choose a tag to compare

@ractive ractive released this 19 Oct 14:39

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 Linux saturnus-app), with a
    -SHA256SUMS file beside them:
    • macOS, Apple silicon: .dmg, signed and notarised, or brew trust --cask ractive/tap/saturnus-app once, then brew install --cask ractive/tap/saturnus-app;
    • Windows: .msi or -setup.exe for x86_64 (x64) and, new, for ARM
      (arm64);
    • Linux: .deb, .rpm or .AppImage for x86_64 (amd64, x86_64)
      and, new, for ARM (arm64, aarch64). Add yourself to the dialout
      group to use a serial port.
  • The command-line tools saturnus and satx: cargo install,
    Homebrew ractive/tap, Scoop ractive, 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 .exe itself 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

Choose a tag to compare

@ractive ractive released this 19 Oct 12:39

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 Linux saturnus-app):
    .dmg (macOS, Apple silicon, signed and notarised, or brew trust --cask ractive/tap/saturnus-app once, then brew install --cask ractive/tap/saturnus-app), .msi or -setup.exe (Windows x86_64),
    .deb, .rpm or .AppImage (Linux x86_64), with a -SHA256SUMS
    file beside them. On Linux, add yourself to the dialout group to use
    a serial port.
  • The command-line tools saturnus and satx: cargo install,
    Homebrew ractive/tap, Scoop ractive, or the archives and Linux
    packages below.
  • Libraries on crates.io, all at 0.8.0. saturnus-host adds the
    protocol command entryModes; nothing breaks.

A reference for every model

  • Search and saturnus ref now 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.
  • 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

Choose a tag to compare

@ractive ractive released this 18 Oct 03:10

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 Linux saturnus-app):
    .dmg (macOS, Apple silicon, signed and notarised, or brew trust --cask ractive/tap/saturnus-app once, then brew install --cask ractive/tap/saturnus-app), .msi or -setup.exe (Windows x86_64),
    .deb, .rpm or .AppImage (Linux x86_64), with a -SHA256SUMS
    file beside them. On Linux, add yourself to the dialout group to use
    a serial port.
  • The command-line tools saturnus and satx: cargo install,
    Homebrew ractive/tap, Scoop ractive, 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

Choose a tag to compare

@ractive ractive released this 17 Oct 15:45

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 Linux saturnus-app):
    .dmg (macOS, Apple silicon, signed and notarised, or brew trust --cask ractive/tap/saturnus-app once, then brew install --cask ractive/tap/saturnus-app), .msi or -setup.exe (Windows x86_64),
    .deb, .rpm or .AppImage (Linux x86_64), with a -SHA256SUMS
    file beside them. On Linux, add yourself to the dialout group to use
    a serial port. The separate saturnus tx desktop app and its cask are
    gone: brew uninstall --cask saturnus-tx if you had it.
  • The command-line tools saturnus and satx: cargo install,
    Homebrew ractive/tap, Scoop ractive, 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

Choose a tag to compare

@ractive ractive released this 14 Oct 13:32

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) and saturnus-tx_0.5.0_…: .dmg (macOS, Apple
    silicon, signed and notarised, or brew trust --cask ractive/tap/saturnus-app and brew trust --cask ractive/tap/saturnus-tx once, then brew install --cask ractive/tap/saturnus-app or ractive/tap/saturnus-tx), .msi or
    -setup.exe (Windows x86_64), .deb, .rpm or .AppImage (Linux
    x86_64), each app's with a -SHA256SUMS file beside them. On Linux,
    add yourself to the dialout group to use a serial port.
  • The command-line tools saturnus and satx: cargo install,
    Homebrew ractive/tap, Scoop ractive, 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-proto and satx-core. 0.5 changes the public API of
    saturnus-objects (its own error types instead of anyhow),
    satx-core (file names, new errors) and saturnus-host (the emulated
    serial wire); CHANGELOG.md lists 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 --serial stays 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

Choose a tag to compare

@ractive ractive released this 13 Oct 03:31

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) and saturnus-tx_0.4.0_…: .dmg (macOS, Apple
    silicon, signed and notarised, or brew trust --cask ractive/tap/saturnus-app and brew trust --cask ractive/tap/saturnus-tx once, then brew install --cask ractive/tap/saturnus-app or ractive/tap/saturnus-tx), .msi or
    -setup.exe (Windows x86_64), .deb, .rpm or .AppImage (Linux
    x86_64). On Linux, add yourself to the dialout group to use a
    serial port.
  • The command-line tools saturnus and satx: cargo install,
    Homebrew ractive/tap, Scoop ractive, 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-proto and satx-core. 0.4 changes some of their public
    types (the screen's width, new models and keys); CHANGELOG.md lists
    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

Choose a tag to compare

@ractive ractive released this 12 Oct 01:38

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-tx once, then
    brew install --cask ractive/tap/saturnus-tx), .msi or -setup.exe
    (Windows x86_64), .deb, .rpm or .AppImage (Linux x86_64). Native
    serial ports in every system, no Chrome needed. On Linux, add yourself
    to the dialout group 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 Linux saturnus-app), and the command-line tools saturnus and
    satx (cargo install, Homebrew ractive/tap, Scoop ractive, 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-proto and satx-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

Choose a tag to compare

@ractive ractive released this 11 Oct 06:53

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, then brew install ractive/tap/saturnus and
      brew install ractive/tap/satx;
    • Scoop (Windows): scoop bucket add ractive https://github.com/ractive/scoop-bucket,
      then scoop install saturnus and scoop install satx;
    • the archives below, saturnus-v0.2.0-<target> and
      satx-v0.2.0-<target> (checksums in saturnus-SHA256SUMS and
      satx-SHA256SUMS), or the Linux x86_64 packages saturnus and
      satx (.deb, .rpm, statically linked).
  • Desktop app: .dmg (macOS, Apple silicon, signed and notarised),
    .msi or -setup.exe (Windows x86_64), .deb, .rpm or .AppImage
    (Linux x86_64). Its Linux package is now saturnus-app, so it installs
    next to the command line's saturnus.
  • Libraries on crates.io, all at 0.2.0: saturnus-core (the core, no
    dependencies, builds for wasm32), saturnus-objects,
    saturnus-host, saturnus-drive, and satx's kermit-proto,
    xmodem-proto and satx-core.

Renamed, with no compatibility for the old names

  • The core library is the crate saturnus-core (use saturnus_core::…);
    the crate saturnus is now the command-line tool. saturnus-cli gets
    no new versions.
  • The CLI's Linux package is saturnus, the desktop app's
    saturnus-app.
  • The checksums file SHA256SUMS is 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. Also saturnus ctl screen --to-var NAME and --to-stack.
  • Saved states work alike in the browser and the app, one per model
    at a click, plus .sat files that also load in saturnus 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

Choose a tag to compare

@ractive ractive released this 09 Oct 02:11
dcd6edc

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
    then scoop install saturnus (Windows), or an archive below
    (saturnus-v0.1.0-<target>; checksums in SHA256SUMS).
  • Desktop app: the installers below, .dmg (macOS, Apple silicon),
    .msi or -setup.exe (Windows x86_64), .deb, .rpm or .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 for wasm32), 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 --serve serves the serial port for
    Kermit clients and a control API on 127.0.0.1; saturnus ctl drives
    it (keys, screen, stack, type, text, store, fetch, …).
    saturnus ref is 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 .dmg and 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 or cargo 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.