Jump to content
Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

RASM: Difference between revisions

From CPCWiki - THE Amstrad CPC encyclopedia!
Roudoudou (talk | contribs)
refactoring, etc
Roudoudou (talk | contribs)
m Compatibility options: presentation
Line 28: Line 28:


* MAXAM compatibility
* MAXAM compatibility
- internal calculations are done with unsigned 16 bits integers
** internal calculations are done with unsigned 16 bits integers
- comparison with single '='
** comparison with single '='


* AS80 compatibility (partial)
* AS80 compatibility (partial)
- internal calculations are done with 32 bits integers
** internal calculations are done with 32 bits integers
- reference of current outputed adress with DEFB is the directive and not the outputed byte
** reference of current outputed adress with DEFB is the directive and not the outputed byte
- little differences in macro declarations
** little differences in macro declarations


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

Revision as of 12:41, 1 March 2018

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

Performances

1 million lines in 0.03s on a modern computer, 100x faster than Sjasmplus 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

  • 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