saturnus 0.3.0

Command-line front end of the saturnus emulator: run ROMs headless, script keys, dump screens, serve the serial port and the control API
saturnus-0.3.0 is not a library.
Visit the last successful build: saturnus-0.1.0

saturnus

The saturnus command: a headless emulator of the HP Saturn calculators (HP 48SX, 48GX, 49G, 38G, 39G, 40G and 42S), built on the saturnus-core core. Part of saturnus, which also has a web page (https://ractive.ch/saturnus/) and a desktop app.

cargo install saturnus

Prebuilt binaries for Linux, macOS and Windows are on the releases page.

ROMs

No ROM is included. saturnus rom fetch downloads the ROM images HP allows for emulator use (48SX, 48GX, 38G, 49G, 39G/40G) from hpcalc.org after asking, and checks size and SHA-256:

saturnus rom fetch --model 48gx --dir roms

The HP 42S ROM was never released: dump your own calculator.

What it does

# Boot, run a key script, dump the screen (text or PNG), save the state.
saturnus run --model 48gx --rom roms/gxrom-r --keys keys.txt \
    --screen out.png --save boot.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.
saturnus run --model 48gx --rom roms/gxrom-r --serve

# Drive a serving instance: keys, screen, stack.
saturnus ctl --help

# Look up a built-in command (48SX, 48GX, 49G): description, stack
# effect, menu, examples run on this emulator, manual pages.
saturnus ref "->LIST"

# Disassemble ROM code.
saturnus disasm --rom roms/gxrom-r --at 0 --count 20

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.