Zym II, an 8-bit Z-machine interpreter for SymbOS

Zym II is a Z-machine interpreter for SymbOS, an Extremely Cool hobby operating system for 8-bit Z80-based computers like the MSX2 and Amstrad CPC. It’s basically Windows 95 technology running on hardware from 1985.

Features
Several of these features are highly unusual for an 8-bit terp:

  • Supports Z-code versions 3, 4, 5, and 8
  • New optimized core in Z80 assembly
  • Proportional fonts
  • Colored text
  • Scrollback
  • UNDO support
  • Transcripting
  • No limits on story file size or dynamic memory
  • Run stories from RAM or partially from disk

Inform 6 acceleration
Zym II includes a tool for patching Inform 6 games with custom opcodes that speed up execution by 30-60%. This makes it possible to run, e.g., the full version of The Mulldoon Legacy at playable speeds on original 4 MHz hardware. (Full writeup here.)

Download
GitHub here. You’ll need a machine with SymbOS 4.0 or newer.

12 Likes

Patching the Z-code with a custom instruction is brilliant! Did you instrument your/an interpreter to do basic profiling to identify these hotspots?

-Dave

Nice! Sounds like what we did with veneer acceleration at Textfyre (which eventually became part of the Glulx spec). I imagine your tool does some pattern-matching to recognize the compiled versions of common veneer/library functions?

2 Likes

Pretty much; I’ve now written this up here.

1 Like