saturnus
The saturnus command: an emulator of the HP Saturn calculators (HP 48SX,
48GX, 49G, 38G, 39G, 40G, 42S, 27S, 17BII, 17B, 28S and 19BII) for the
command line, built on
saturnus-core. Part of
saturnus, which also runs in the
browser (https://ractive.ch/saturnus/) and as a desktop app.
Prebuilt binaries for Linux, macOS and Windows are on the releases page.
ROMs
No ROM is included. saturnus rom fetch downloads the ROM files HP
allows for emulator use (48SX, 48GX, 38G, 49G, 39G/40G) from hpcalc.org
after asking, and checks their size and SHA-256:
The 42S, 27S, 17BII, 17B and 28S ROMs were never released: read the ROM out of your own calculator. The 19BII cannot read out its own ROM; use a ROM file you already have.
What it does
# Start, play a key script, save the screen (text or PNG) and the state.
# Serve the serial port (tcp:4841, for Kermit clients) and the control
# API (HTTP + JSON on 127.0.0.1:4840) until Ctrl-C.
# Control the running calculator: keys, screen, stack.
# Look up a built-in command (48SX, 48GX, 49G, 28S): description, stack
# effect, menu, examples run in saturnus, manual pages. A function of
# the 42S, 27S, 17BII, 17B, 19BII, 38G, 39G or 40G with --model: its
# keys instead of a menu.
# Disassemble ROM code.
A key script is one action per line:
# boot, answer "Try To Recover Memory?" with NO
wait-idle 60000
press f
press 2
press enter
The full documentation (options, the control API and its token, key names per model, the serial bridge) is in the repository's README.
Clean room
saturnus is written from public hardware documentation and observed
behaviour, not from the source code of other emulators. Parts of the code
were generated by AI systems under human supervision (see AI_NOTICE in
the repository).
Licence
MIT.