The universal Atari assembler

rg-asm

One assembler for all Atari 680x0 source code.

Loading release…

Key features

  • Universal Input: Works with all existing Atari assembler source code: vasm, Devpac, Pure C, TurboAsm, Seka, GAS, MADMAC, RMAC, Alcyon and more.
  • Universal Output: Built in linker, can assemble to a runnable PRG, or emit objects for vbcc / gcc / AHCC. Flat binaries and mixed object formats in one link.
  • Universal CPU: Supports the full 680x0 line — 68000 through 68060, Floating Point Units (68881/68882), and all ColdFire models.
  • Universal Binaries: Cross compile from native binaries for Linux, macOS (Arm + Intel) and Windows. Single executable. No dependencies. Download, unzip and run.
  • Complete Syntax: Macros, conditionals, incbin, org/sections, equates, alignment and linkage. Supports every atari assembler syntax on the planet.
  • Warnings & Errors: Graduated severity, promote or silence categories, enumerate every diagnostic kind.
  • Diagnostics & Metrics: See the cost of every instruction, on every CPU. Per function breakdown of cycle and byte cost. Every metric can be output to json to be processed by other tools.
  • 68k Inside: rg-asm is built around a full 68k emulator, so it can fully undestand every instruction. Handles smallest size optimisations and conventional peephole optimisations. Can even reorder instructions to benefit from pipeline pairing.
rg-asm; assemble
   █▀▀▄ █▀▀▀  █▀█▄ █ ▀█   RESERVOIR GODS  ▀  ▀ ▀▀▀▀   rg-asm 0.7.0 · universal 68k 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 main.s util.s        # emit objects for C linkers
rg-asm --raw boot.s -o BOOT.BIN   # emit flat binary blob
rg-asm game.s --listing --functions --listing-cpus=68000,68030
rg-asm game.s --listing=game.lst --listing-cpus=68000,68030   # plain .lst file

On a terminal, bare --listing paints the boxed table; a file path stays plain text for CI.

Verify

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

sha256sum -c SHA256SUMS

Learn more