vasm and vlink new versions were released with updates and bug fixes.
28-Sep-2020: vlink 0.16f.
- New target file format os9-6809 to generate OS-9 modules for 6809 systems.
- OS9-specific options: -os9-mem, -os9-name, -os9-ns, -os9-rev.
- New binary target file formats applebin (Apple DOS 3.3), ataricom (Atari 8-bit), cocoml (Tandy Color Computer) and dragonbin (Dragon DOS).
- New option -m enables special treatment of a feature-mask suffix in symbol names (global definitions and external references).
- New option -Crel emits constructor/destructor function references which are relative to their table position.
- Added cbmreu target for C64 REU memory expansion.
- New linker script functions ORIGIN() and LENGTH() for memory regions.
- Included description of linker scripts in the documentation.
- Fixed bug with AT(lma) attribute in linker script section definitions.
- (elf) Fixed reference to defined weak-symbols again.
- (ados/ehf) External small-data references may have a signed addend now, while small-data relocs still use an unsigned section-offset.
28-Sep-2020: vasm 1.8i.
- New CPU backend for 6809, 6309 and 68HC12.
- New output module "cdef" to write all absolute symbols as a series of #define directives for inclusion in a C source.
- Do not read a source file with the same name from the CWD, when the real source is actually located in a sub directory!
- Show an error when no numerical term follows a base-prefix.
- Do not show expression-evalulation errors before the final pass (e.g. division by zero).
- New option -nomsg= to disable specific informational messages.
- Define an internal symbol depending on the host file system in use (__UNIXFS, __AMIGAFS, __MSDOSFS).
- Fixed crash when printing errors from files with an absolute path.
- m68k: New option -extsd to allow small data with 020 extended addressing modes.
- m68k: Disabled most of the new MOVE.L #x,Dn optimization from V1.8h for ColdFire, which doesn't support .W and .B operations.
- m68k: Fixed encoding of ([...],ZRn,...).
- m68k: Fixed PFLUSHR immediate addressing mode.
- m68k: Some PMOVE reg,
erroneously allowed immediate and PC-relative addressing modes as destination. - m68k: Allow A0 and A1 as small data base registers (near, -sdreg).
- m68k: External small-data symbol references may have a signed addend.
- jagrisc: Add more predefined condition codes. Now vasm supports the same condition codes as the SMAC assembler.
- 6502: Fixed branches to external labels.
- 6502: New directive EZP. Like EQU, but use advises zero page addressing.
- 6502: -opt-branch can now also translate/optimize between BRA and JMP.
- ARM: Fixed a problems with auto-rotated immediate values. Now all possible solutions should be found.
- ARM: Fixed oscillating optimization for ADR/ADRL (-opt-adr).
- ARM: Fixed handling of string/data directives with a single character.
- ARM: Fixed MSR status register bit mask (patch by Luna).
- mot-syntax: -devpac compatibility mode allows dots ('.') in labels (-ldots).
- mot-syntax: Fixed crash when reading a label field including '\' and followed by a non-identifier character.
- oldstyle-syntax: -ast allows * to start comments in the first column.
- oldstyle-syntax: -i now also works for instructions with no operand.
- oldstyle-syntax: -ldots allows '.' within identifiers.
- oldstyle-syntax: added inline and einline directives from mot-syntax.
- oldstyle-syntax: added FCS directive, which is like FCC but sets the MSB of the last character.
- madmac-syntax: Added missing .offset and .abs directives to start an offset-section.
- std-syntax: Added .pushsection and .popsection directives.
- bin-output: Added support for Apple DOS binaries, Dragon DOS binaries and Tandy Color Computer machine language files.
- vobj-output: Make some backends support larger sections sizes than their target address allows.
These can be downloaded at http://sun.hasenbraten.de/vlink/ and http://sun.hasenbraten.de/vasm/