From CPCWiki - THE Amstrad CPC encyclopedia!
Jump to: navigation, search

RASM stands for Roudoudou AsSeMbler.

Unlike conventionnal Z80 assemblers, RASM is very fast and able to handle huge projects.

Released in february 2017, the project is still active


1 million lines in 0.03s on a modern computer, 100x faster than Sjasmplus how claimed to be fast.

Generic features

  • integrated crunched sections (LZ48/LZ49/LZ4/ZX7/Exomizer) and load&crunch on the fly.
  • ORG checking, unlimited memory workspaces where labels are shared.
  • ALL undocumented instructions.
  • conditionnal macro, unlimited & embeded loops with local labels, switch/case.
  • floating point engine, mathematical functions.
  • multiple binary output

Amstrad specific features

  • native bank management in assembly with dedicated tags
  • cartridge generation
  • snapshot v2 and snapshot v3 generation
  • unlimited EDSK management (update,creation as much as we want at the same time)
  • binary output with optionnal AMSDOS header.

Compatibility options

  • MAXAM compatibility
    • internal calculations are done with unsigned 16 bits integers
    • comparison with single '='
  • AS80 compatibility (partial)
    • internal calculations are done with 32 bits integers
    • reference of current outputed adress with DEFB is the directive and not the outputed byte
    • little differences in macro declarations

This option was designed to compile the CNG player, not to support all the bugs of AS80

English & French documentation

Links & download