The universal Atari assembler

rg-asm

Free universal 680x0 and DSP 56k assembler targeting Atari systems.

Key features

  • Universal Input: Compatible with all existing Atari assembler dialects, including: vasm, Devpac, RMAC, TurboAsm, GNU GAS and others.
  • Universal Output: Built-in linker, can assemble to a runnable PRG, or emit objects for linking with external tools.
  • Universal CPU: Supports the full 680x0 line — 68000 through 68060, FPUs (68881/68882), and even all the ColdFire models.
  • Motorola DSP 56001: Standalone assembly for Atari Falcon DSP kernels, with support for all the key output formats.
  • Mixed-Mode 68k & DSP: Embed DSP56001 code directly within 680x0 source files, sharing symbols, equates, and structured data offsets.
  • Universal Binaries: Cross compile from native binaries for Linux, Mac and Windows. Single executable with no dependencies - simply download, unzip and run.
  • Complete Syntax: Macros, conditionals, incbin, org/sections, equates, alignment and linkage. Supports every major Atari assembler syntax.
  • Diagnostics & Metrics: Shows instruction cost on every CPU. Per function breakdown of cycle and byte cost. Every metric can be output to json to be processed by other tools.
  • Language Server: Built-in stdio LSP daemon (rg-asm --lsp) brings Atari assembly into modern editors (VS Code, Cursor, Neovim, Helix). Instant diagnostics, autocompletion, jump-to-definition, and cycle-cost hover inspection as you type.
  • 68k Inside: rg-asm is built around a full 68k emulator, so it can fully understand every instruction. Can even reorder instructions to benefit from pipeline pairing.
rg-asm; assemble & link
$ rg-asm hello_gemdos.s
  █▀▀▄ █▀▀▀
  █▀█▄ █ ▀█   RESERVOIR GODS
  ▀  ▀ ▀▀▀▀   rg-asm 0.9.6 · 680x0 & DSP 56k assembler
 
  ✓ Assembling hello_gemdos.s
  ✓ Linking HELLO.PRG (136 bytes)
  ✓ assembled 1 file in 80ms
 
┌────────┬───────┐
│ item   │ bytes │
├────────┼───────┤
│ text   │    26 │
│ data   │    22 │
│ bss    │     0 │
│ sym    │    56 │
│ reloc  │     4 │
├────────┼───────┤
│ binary │   136 │
└────────┴───────┘
$ 

Quick start

rg-asm main.s util.s                           # assemble and link → MAIN.PRG
rg-asm --obj player.s                          # emit relocatable object for C linkers
rg-asm game.s --listing                        # per-instruction cycle timing & metrics
rg-asm falcon_game.s                           # 680x0 + inline Falcon DSP mixed-mode

Verify

After unzipping, check the extracted files (the archive includes SHA256SUMS):

sha256sum -c SHA256SUMS

Learn more