Difference between revisions of "RASM"
From CPCWiki - THE Amstrad CPC encyclopedia!
(first draft) |
m (→Performances) |
||
(11 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
− | RASM | + | '''RASM''' stands for [[Roudoudou]] AsSeMbler. |
− | Unlike conventionnal Z80 | + | 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, 100× faster than [[SjasmPlus]] how claimed to be fast. | |
− | * integrated crunched sections (LZ48/LZ49/LZ4/ZX7/Exomizer) and load&crunch on the fly | + | |
− | + | == Generic features == | |
− | * ORG checking, unlimited memory workspaces where labels are shared | + | |
− | * ALL undocumented instructions | + | * integrated crunched sections (LZ48/LZ49/LZ4/ZX7/Exomizer) and load&crunch on the fly. |
− | * conditionnal macro, unlimited & embeded loops with local labels, switch/case | + | * ORG checking, unlimited memory workspaces where labels are shared. |
− | * floating point engine, mathematical functions | + | * ALL undocumented instructions. |
− | * MAXAM compatibility | + | * conditionnal macro, unlimited & embeded loops with local labels, switch/case. |
− | * English & French documentation | + | * 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 == | ||
+ | |||
+ | * [http://www.cpcwiki.eu/forum/programming/rasm-z80-assembler-in-beta/ Official CPCWiki thread] | ||
+ | * [https://github.com/EdouardBERGE/rasm Repository] | ||
+ | |||
+ | |||
+ | [[Category:Programming software]][[Category:Programming]][[Category:Assembler]] |
Latest revision as of 18:20, 12 February 2022
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
Contents
Performances
1 million lines in 0.03s on a modern computer, 100× 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