Short: WLA DX - Cross Macro Assembler Package Author: Ville Helin & People at GitHub Uploader: ville helin gmail com (Ville Helin) Type: dev/cross Version: 10.7 Replaces: dev/cross/wla_dx_v10.6.lha Architecture: m68k-amigaos >= 2.0.4 Distribution: Aminet WLA DX - Yet Another WLA GB-Z80/Z80/Z80N/eZ80/6502/65C02/65CE02/65816/68000/6800/6801/ 6809/8008/8080/HUC6280/SH-2/SPC-700/SuperFX/Cx4 Multi Platform Cross Macro Assembler Package Included in this release are executables for 68000, 68020 and 68040, compiled using SAS/C v6.58. The full sources are also inside the archive. For the latest sources: https://github.com/vhelin/wla-dx CHANGELOG: Assemblers: v10.7 (28-Jun-2026) [ALL] Prefixed by a hashtag didn't propagate through nested .MACRO calls. [ALL] Listfile creation for library files should now work. [ALL] If an object file contained only .SECTIONs in ROM bank X then ROM bank X's allocation info wasn't printed with -v switch. [ALL] .FOPEN uses now directories given with -I flag. [ALL] BANKS for .SECTION can now be a string definition. [ALL] Quoted string arguments can be used in .MACROs to replace e.g., registers on lines with instructions. [ALL] A label outside .SECTIONs or inside FORCE or OVERWRITE .SECTION given to a .MACRO can now be used in calculations as long it has been defined earlier lexically. [ALL] Added parameterless versions of bankbyte(), base(), slot() and bank(). bankbyte(label) and bank(label) can be used in .IFs. [ALL] Added built-in functions is(), get(), org(), orga(), substring(), definedfunction(), definedmacro(), blank(), match(), xmatch(), tcount(), left(), mid() and right(). [ALL] Added .DELMACRO and .DELFUNCTION for deleting macros and functions. [ALL] Added LATESTDIR and RELATIVEDIR to .INCLUDE and .INCBIN. [ALL] Jump in .ENDR added offset of 1 for line numbers in errors. [ALL] Added START and STEP to .REPEAT/.REPT. [ALL] Added DEFAULTSECTIONSLOT and DEFAULTRAMSECTIONSLOT to .MEMORYMAP. [ALL] .FAIL can process multiple strings. [ALL] When using -h operand hints like .b for labels work now. [ALL] .STRINGMAPTABLE uses now directories specified with -I. [ALL] .BASE can once again given inside a .SECTION. NOTE: The old .BASE before the .SECTION is returned after .ENDS. [ALL] Implemented missing base(label). [ALL] Fixed an issue with -h flag and defines in some instructions being interpreted early as labels. [ALL] Fix to .MACRO parsing when using ARGS. [ALL] When an error occurs we print the whole call stack instead of just the file name and line number where it happened. [ALL] 16-bit PC references were not enabled for all supported CPUs (like 6809) in listfiles. [ALL] Added new operand hint '.#b' - 8-bit zero page; It's the same as .b, but it also takes the lowest 8 bits of the operand. [ALL] .STRUCT member names b, w, d and l are now forbidden as when referencing them the assembler would confuse the references with size hints. [ALL] A function can also be now defined using .DEFINE. [ALL] .ASSERT can now be postponed to link time. [ALL] WLA assembles now "WLAJ" library files and "WLAm" object files. [eZ8] Added support for Zilog eZ80 CPU (with .ADL directive). [Cx4] Added support for Cx4 (Capcom Custom Chip 4) CPU/DSP. [SH2] Added support for Hitachi SH-2 CPU. [SH2] Added initial Sega 32X memory maps and include files. [6**] .b and .w now override .8bit and .16bit. [658] Fixed BRL and PER to work properly. [658] Added a warning when .ACCU or .INDEX directives override a width that was set by rep/sep instructions (use -v to see these). [68k] Added alias SP for register a7. [68k] BCLR, BSET and BTST used wrong range [1, 8] / [1, 32] for bits, fixed to [0, 7] / [0, 31]. [68k] Removed automatic MOVE to MOVEQ, ADD to ADDQ and SUB to SUBQ optimizations as correctness is more important. [68k] Added missing instructions: BCHG.B, BCHG.L, BCLR.B, BCLR.L, BSET.B, BSET.L, BTST.B, BTST.L, CHK.W, NBCD.B, TAS.B. [68k] Added .NGHEADER, .ENDNG, .NGSOFTDIP, .ENDNGSOFTDIP, .NGVECTORS and .ENDNGVECTORS for Neogeo development (and examples/neogeo and include/neogeo). [68k] Added Sega Mega Drive/Genesis and Sega CD support: .MDVECTORS, .MCDHEADER, .MCDSPHEADER, memory maps and include files. [650] Fixed STX and STY parsing. [650] Added .INESHEADER and .ENDINES. [65C] Added .LYNXHEADER and .ENDLYNX. [689] Added space-after-the-instruction versions of instructions with zero offset indexing, e.g., "LDA ,X" (old: "LDA,X"). [68x] Instructions that take 8-bit immediate values can now take anything that fits into eight bits. [808] Added "MOV M,M", an alias for "HLT". [800] Fixed "LMI"'s opcode to $3E (was $2E). [800] Added "LAA", an alias for "NOP". [800] Added "MOV" versions of the move instructions. Linker: v5.22 (28-Jun-2026) When calculating _sizeof_* for labels we now take unused output bytes into account. Appended .RAMSECTIONs were still affecting the original RAM bank in -v listing. Use -sE to write EQU symbol file (e.g., for openMSX). Fixed the calculation of Sega Mega Drive ROM checksum. Added -C which doesn't generate errors for duplicate labels or definitions, but only when their values are the same. Fixed a possible buffer overflow read when generating listfiles. Global references from an isolated .INCLUDE should now work. Added support for Commodore 64 cartridge types (via -64): NORMAL4K, NORMAL8K, NORMAL16K, ULTIMAX4K, ULTIMAX8K, ULTIMAX16K, OCEAN, MAGICDESK, EASYFLASH, SIMONSBASIC, EPYXFASTLOAD, C64GS, COMAL80, GMOD2, RGCD and GMOD3. Added -E for writing debug exports (VICE, RGBDS, MESEN, EMULICIOUS, CSPECT, NOCASH, MAME and JSON). .ASSERT can now be postponed to link time. Added -sM for writing MAME compatible flat symbol file. Added -O (BIN, SMD, MD) Mega Drive output ROM file format. Added support for Hitachi SH-2. Added -g for writing list files where the object files are.