Skip to content

Spectrum with Pasmo

Alternative local tools for this machine’s assembly lessons.

This guide uses Pasmo. For the recommended Asm198x workflow and available browser lessons, use the main setup guide.

Install the alternative tools

macOS

1. Install Homebrew (if needed)

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

2. Install Pasmo Assembler

brew install pasmo

The curriculum's sources use Pasmo notation, and Pasmo builds them as they are. Asm198x builds the same program bytes.

3. Install Emu198x

With Homebrew, run brew install emu198x/tap/emu198x-spectrum.

Or download the emu198x-spectrum archive for your Mac from the latest Emu198x release: aarch64-apple-darwin for Apple silicon, x86_64-apple-darwin for Intel. Extract it into a folder you can find again.

The release notes include checksums. The emulator needs a 48K Spectrum ROM; see Running your code.

4. Verify Installation

pasmo --version

Windows

1. Download Pasmo

Download pasmo from pasmo.speccy.org.

Extract to a folder like C:\Tools\pasmo and add it to your PATH.

2. Install Emu198x

Download the emu198x-spectrum x86_64-pc-windows-msvc zip from the latest Emu198x release and extract it into a folder such as C:\Tools\emu198x.

The release notes include checksums. The emulator needs a 48K Spectrum ROM; see Running your code.

3. Verify Installation

pasmo --version

Linux

1. Install Pasmo (Debian/Ubuntu)

sudo apt install pasmo

2. Install Emu198x

If you use Homebrew on Linux, run brew install emu198x/tap/emu198x-spectrum.

Or download the emu198x-spectrum archive: aarch64-unknown-linux-gnu for ARM64, or x86_64-unknown-linux-gnu for x86-64, from the latest Emu198x release and extract it into a folder you can find again.

The release notes include checksums. The emulator needs a 48K Spectrum ROM; see Running your code.

3. Verify Installation

pasmo --version

Building Your Code

Once installed, build your assembly files directly:

pasmo --tapbas game.asm game.tap

Running Your Code

Emu198x needs a lawfully obtained 48K Spectrum ROM; the ROM guide explains what firmware is and how to obtain it. For an archive, open a terminal in the folder where you extracted Emu198x. With Homebrew, omit ./ from the command below and run it from your project folder. On macOS or Linux, this loads the tape and runs it:

./emu198x-spectrum --rom "path/to/48.rom" --tape game.tap --autoload-tape

In Windows PowerShell:

.\emu198x-spectrum.exe --rom "C:\path\to\48.rom" --tape game.tap --autoload-tape

Replace the paths with your ROM and tape locations, keeping the quotes if a path contains spaces. --autoload-tape waits for the Spectrum to start, types LOAD "" and plays the tape. Without it, enter LOAD "" yourself and press F9 to start the tape.