Short: 8-bit CPU Cross Macro Assembler Package Author: Ville Helin & People@GitHub Uploader: ville helin gmail com (Ville Helin) Type: dev/cross Version: 9.9 Replaces: dev/cross/wla_dx_v9.8.lha Architecture: m68k-amigaos Distribution: Aminet WLA DX - Yet Another GB-Z80/Z80/6502/65C02/6510/65816/6800/68001/6809/ 8008/HUC6280/SPC-700 Multi Platform Cross Assembler Package Included in this release are executables for 68000 and 68020, 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: v9.9 (15-Aug-2019) [ALL] Added unions: .UNION (and .NEXTU and .ENDU). [ALL] Added a new syntax to .DSTRUCT (old works, too). [ALL] Changed the way ".ENUM xyz DESC" works. [ALL] .ROW and .DATA should now work better with 16-bit and 24-bit values. [ALL] Defines with negative values are now parsed better. [ALL] .BLOCK (and .ENDB) prints the block size once again. [ALL] Added support for C++ style comments (//). [ALL] WLA assembles now "WLA4" library files and "WLAV" object files. [ALL] References to a pending computation from inside a define from inside a pending computation should work now. [ALL] WLA can now be given string definitions from the command line. [680] Added support for MC6800. [680] Added support for MC6801. [680] Added support for MC6809. [800] Added support for I8008. [658] 24-bit addresses of RAMSECTION labels should work now when using .LOROM / .HIROM. / .EXHIROM. [GB ] Fixed Pocket Camera cartridge type, added support for 64Mbit ROM and 512kbit RAM types. v9.8 (21-Jun-2019) [ALL] Deprecated and removed section's size giving inside section's name string. [ALL] Getting bank number with :CADDR works again. [ALL] WLA assembles now "WLA3" library files and "WLAU" object files. [ALL] .REPEATs, .DBs, .DWs, .DLs and macro calls don't mess up listfiles any more. [ALL] Added support for prioritizing sections when placing them to the output ROM/PRG. [ALL] The _sizeof_[label]s for labels that are followed by a dotted .DSB etc. are now calculated correctly. [ALL] The maximum allowed number of digits for floats is now 24 instead of the old 8. [ALL] _sizeof_[label]s are now calculated correctly for .STRUCTs in .RAMSECTIONs. [ALL] WLA's -x flag now creates SECTIONSTART_[section name] and SECTIONEND_[section name] labels for each section. [ALL] The assembler and the linker now display examples about how to run them when run with incorrect parameters. [ALL] .RAMSECTIONs can now be used inside libraries but BANK and SLOT must be defined for the RAMSECTIONs under [ramsections] in WLALINK's linkfile. [ALL] WLA (WLALINK did this already) assumes that there are 256 RAM banks for each SLOT. The number of ROM banks doesn't affect the number of RAM banks any more. [ALL] Added APPENDTO to .RAMSECTIONs. [ALL] Added .TABLE, .ROW and .DATA - an alternative to .DB, .DW and .DL. [ALL] When allocating a new unknown reference, we'll set its base to 0 instead of not initializing base at all. [ALL] When inserting padding to a section (for example for an unsolved 8-bit reference) we now set the padding to be $CD instead of letting it be uninitialized. [ALL] References from bank header sections are now found when we discard unreferenced sections. [ALL] Fix buffer overflow for xXX strings. [ALL] Fixed a possible crash bug when printing opcodes in DEBUG executable. [ALL] Allow .BACKGROUND file to be smaller than the output ROM. [ALL] Fixed a couple possible buffer overflows. [ALL] Fixed CRC calculating on some 64-bit platforms. [ALL] Macros rounded all floating point arguments to integers - not any more. [ALL] Added support for "string".length. [ALL] The documentation is now ReadTheDocs.org compatible. [ALL] Running the assembler/linker without arguments shows now also the version's date. [ALL] Added -A to WLALINK - Add address-to-line mapping data to WLA symbol file. [ALL] WLA and WLALINK give now more information about the cause when a memory overwrite/overflow occurs. [ALL] Added .ADDR (alias of .DW). [ALL] Updated the dotted to-be-skipped directives list in .ENUM and .RAMSECTION to contain missing items. [ALL] .DEFINE now supports keyword EXPORT (auto export). [ALL] Added .PRINT - a combination and more usable version of .PRINTT and .PRINTV. [ALL] .PRINTV's HEX/DEC are optional. Default is DEC. [ALL] Added .ENUMID - creates definitions with an auto- incrementing value. Can autoexport as well. [GB ] Added support for .VERSION (Mask ROM version number). [GB ] Fixed the handling of RAMSIZE inside of .GBHEADER. [GB ] New licensee code is set to $0000 if old licensee code is used. [GB ] Added VERSION ($014C) to .GBHEADER. [GB ] Added the following mnemonic aliases: - LDH A,(C) --> LD A,($FF00+C) - LDH (C),A --> LD ($FF00+C),A [658] Added .DSL. [658] Added .FARADDR (alias of .DL). [658] Added support for DL/LONG/DSL to .STRUCT and .RAMSECTION. [658] Added support for .EXHIROM. [658] MVN and MVP had source and destination in wrong order in the output binary. [SPC] Fixed a typo, RET1 is now RETI. [SPC] Fixed a typo, "AND1 mem.bit, C" ($CA) is now "MOV1 mem.bit, C" [SPC] Fixed AND1, EOR1, MOV1, NOT1 and OR1 (used to take two 8-bit arguments, now 13-bit address and 3-bit value. [SPC] Fixed many 8-bit PC relative label references to be direct references. [Z80] Added shadow register aliases of opcodes that use registers A, F, BC, DE and HL. For example, "AND A'" assembles to the same (0xA7) as "AND A". The aliases are meant for programmers who want to explicitly show when they are using the shadow registers. v9.7 (17-Apr-2018) [ALL] We now use CMake instead of plain Makefiles. [ALL] Added INSTANCEOF support to .STRUCT. [ALL] Removed DEBUG opcode from GB-Z80. [ALL] WLALINK now reserves the bytes the checksummer uses if WLA is used to calculate a checksum. [ALL] Added ALIGN to .RAMSECTIONs. [ALL] .RANSECTIONs now use the BANK when placing sections. [ALL] .BLOCK needs to be now terminated with .ENDB. [ALL] Fixed some typos in error messages. [ALL] Added a directory called "bug_exhibition" for bug reports. [ALL] When parsing "1.w" the parser now associates the ".w" part with the "1" part. [ALL] Recursive macro calls with recursive argument references should work now. [ALL] .ASC can now map also byte data. [ALL] Rewrote the macro argument expander. [ALL] Fixed .INCDIR/.INCBIN cache bug. [ALL] Added support for -I [include directory]. [ALL] Added ASCII commands to strings. [ALL] Renamed .SECTION IDENTIFIER to NAMESPACE. [ALL] Added support for local labels with @ prefix. [ALL] "historical" contains now old. depcerated files. [ALL] Updated WLA/WLALINK argument parser. [ALL] Sphnix is now used to generate the documents. [ALL] Various bug, crash and error message fixes. [ALL] Labels can now be 255 characters long instead of 63. [ALL] Various fixes to negative range for 8-bit two's complement. [ALL] Power operator supports fractional values. [ALL] Expressions are allowed to be outside 16bit range. [ALL] Added support for _sizeof_[label] automatic definitions to WLALINK, these measure the distance between two consecutive labels in bytes. [ALL] Unreferenced section discarding now handles also RAM sections. [ALL] It's possible to append to a section using APPENDTO. [ALL] .IFDEFs can be used in .ENUMs and .RAMSECTIONs. [ALL] .BASE is now universal, not just 65816 specific. [ALL] Speeded up label handling in WLALINK. [Z80] Added .SMSHEADER. [Z80] Added support for "SUB IXH" and "SUB IXL", and kept the old aliases "SUB A, IXH" and "SUB A, IXL". [Z80] Fixed .SDSCTAG parsing. [658] Added support for .DL. [GB ] Added support for .COUNTRYCODE. [GB ] Added support for .GBHEADER. [GB ] NO$GMB symbol files are now BGB (emulator) compatible. [GB ] Added support for .NINTENDOLOGO. [GB ] Added DESTINATIONCODE as an alias for COUNTRYCODE. [GB ] Added support for .ROMGBCONLY. v9.6 (27-Jan-2015) [ALL] Fixed usage info (was missing -i). [ALL] Moved the project to GitHub: https://github.com/vhelin/wla-dx [ALL] Renamed local variables in a lot of functions to make the code easier to understand. [ALL] Moved LDFLAGS to end of GCC invocation to fix builds. [ALL] Changed "-pedantic" to "-pedantic-errors -Wextras" in WLA's and WLALINK's makefiles. [ALL] Add ability to compile using Microsoft CL, LINK, and NMAKE / Added makefile generator m4 scripts. [ALL] Fixed .ROMBANKMAP and .BANKS allocation to prevent heap corruption when .BANKS allocated exceeds .BANKSTOTAL [ALL] Added support for more than 255 sections per file. [ALL] WLA assembles now "WLAW" library files and "WLAL" object files. [ALL] Added optional running index definition to .REPEAT / .REPT. [ALL] The calculation parser in WLA DX is now smarter - it knows more places when to stop parsing. [ALL] Feeding address labels via named ARGS to a .MACRO failed before, because they were interpreted as strings, not address labels. [ALL] Changed all references to bash to sh in scripts. [ALL] Added support for SEMISUBFREE sections. [Z80] .SDSCTAG & .SMSTAG & .COMPUTESMSCHECKSUM now work with 8KB & 16KB ROMs. [Z80] .SDSCTAG's minor version number is now parsed correctly.