Short: Roudoudou's Z80 Assembler Author: Édouard Bergé Uploader: aGGreSSor/CPU (amitrans narod ru) Type: dev/cross Version: 1.3 Requires: brain Architecture: ppc-amigaos >= 4.0 Distribution: aminet ============================== F E A T U R E S ============================== RASM - Roudoudou's Z80 Assembler Yes! Another Z80 assembler but this one has... - DAMN fast assembling (millions of instructions in a blink of an eye) - integrated crunched sections (LZ48/LZ49/LZ4/ZX7/Exomizer/APlib/LZSA1/LZSA2) + load&crunch on the fly - CPC cartridge, ZX snapshots, CPC snapshots up to 4M, TAPE output - save unlimited binaries with or without AMSDOS/HOBETA header - handle multiple EDSK update or generation simultaneously - symbols import/export, breakpoint and dependencies export - ORG checking, unlimited memory workspaces where labels are shared, bank management, structures - ALL undocumented instructions - conditionnal macro, unlimited & embeded loops with local labels, switch/case - floating point engine, mathematical functions, ... - MAXAM, AS80, UZ80, Pasmo compatibility option - Amsdos real & Microsoft basic 40bits float support - English & French documentation The project was born a few years ago (2017) because i needed a really fast assembler in order to finish my demo before the deadline of the Alchemy 2017. The project was quite huge with approx 350.000 words to assemble but thanks to rasm, the 512K cartridge compiled in a blink of an eye even on my slow Atom CPU. Now Rasm is the reference for huge projects and ultra-fast assembling. ============================ R E Q U I R E M E N T ========================== RASM tested and worked fine on the following configurations: - AmigaOS 4.1 Final Edition (Kickstart 53.70, Workbench 53.14) ================================= U S A G E ================================= ATTENTION! Use BIG stack before assembly! For example stack 700000! SYNTAX: rasm [options] FILENAMES: -oa automatic radix from input filename -o choose a common radix for all files -or choose a radix filename for ROM output -ob choose a full filename for binary output -oc choose a full filename for cartridge output -oi choose a full filename for snapshot output -os choose a full filename for symbol output -ot choose a full filename for tape output -ok choose a full filename for breakpoint output -I set a path for files to read -no disable all file output DEPENDENCIES EXPORT: -depend=make output dependencies on a single line -depend=list output dependencies as a list if 'binary filename' is set then it will be outputed first SYMBOLS EXPORT: -s export symbols %s #%X B%d (label,adr,cprbank) -sz export symbols with ZX emulator convention -sp export symbols with Pasmo convention -sw export symbols with Winape convention -ss export symbols in the snapshot (SYMB chunk for ACE) -sc export symbols with source code convention -sm export symbol in multiple files (one per bank) -l import symbol file (winape,pasmo,rasm) -eb export breakpoints -wu warn for unused symbols (alias, var or label) SYMBOLS ADDITIONAL OPTIONS: -sl export also local symbol -sv export also variables symbol -sq export also EQU symbol -sa export all symbols (like -sl -sv -sq option) -Dvariable=value import value for variable COMPATIBILITY: -m Maxam style calculations -dams Dams 'dot' label convention -ass AS80 behaviour mimic -uz UZ80 behaviour mimic -pasmo PASMO behaviour mimic -amper use ampersand for hex values -msep set separator for modules EDSK generation/update: -eo overwrite files on disk if it already exists SNAPSHOT: -sb export breakpoints in snapshot (BRKS & BRKC chunks) -ss export symbols in the snapshot (SYMB chunk for ACE) -v2 export snapshot version 2 instead of version 3 PARSING: -me set maximum number of error (0 means no limit) -twe treat warnings as errors -xr extended error display -w disable warnings -void force void usage with macro without parameter ============================= C H A N G E L O G ============================= New for version 1.3: - extended cartridge support - new directive LZSA1, LZSA2 for crunched code sections - new directives INCLZSA1 and INCLZSA2 for binary import and LZSA crunching - new directives XORMEM and SUMMEM to generate checksum of a memory area - new directive TIMESTAMP to output date/time - new TAPE option for SAVE directive - new DMA import options with INCBIN directive (new checks & warnings) - new enhanced instructions LD IX/IY,BC/DE & LD BC/DE,IX/IY - new tag {SLOT} for extended cartridge management - new option -msep to specify separator for labels inside modules - new option -amper to use ampersand for hex values - new escapes code maybe used in DEFB strings - directive BRK now generates #ED,#FF opcode - bugfix byte order for Microsoft real format - bugfix DSK header with nightly build - bugfix 16bits PCM wav import - do not warn for missing file with INCLUDE in disabled condition - do not export struct definition with symbols - many warnings removed, cleanup, some draft for future functionalities ================================ S O U R C E ================================ Based on github version source https://github.com/EdouardBERGE/rasm ______ ______ ______ ______ ______|:: .__|:: .__|_____ ______|:: ___|:: ___|______ _____ |: , |: | |: | |: ,_|: ,__|:___ |:___ |: - |: ,_| |__|___|______|______|___| _____|______|______|______|___| home cross-compilation factory