vlink 0.16f and vasm 1.8i released

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/