But first some new exciting news!!!:
- 1.7 (02.07.14)
o Labels in an absolute ORG section have no longer any restrictions
regarding arithmetic and logical operations on them.
o New expression evaluation module. Now also supports floating point and
huge integer (128-bit) expressions in all backends.
o New CPU backend for the Jaguar GPU and DSP RISC processors.
o The path to the input source file is automatically added to the list
of include paths to search.
o Fixed a serious bug with offset sections. Labels from those sections
were still treated as real labels, instead of expressions (offsets),
until the final pass.
o The value of the repetition symbol (REPTN) was reset to -1 when
recursively calling a macro or entering an include file inside a repetition.
o The number of 50 fast optimization passes may not be enough in some
cases. So this phase will be extended by another pass whenever a pass
included no modifications which made the code larger.
o Exit immediately when the maximum number of errors has been reached and
not before printing an additional error.
o Escape code handling in string constants is no longer the default. It
has to be explicitely enabled using the -esc option. Although, it is
still the default in the std syntax module.
o 6800: Added some missing 6800 instructions (addb, dec).
o 6800: Labels are always addressed in extended mode. Use the < prefix
to override that.
o 6800: Accept lda and ldb as an alias for ldaa and ldab.
o z80: Data definitions in parentheses, although unnecessary, should be
o m68k: Never try to optimize JMP/JSR (label,PC).
o m68k: Allow bad instruction aliases, like movea when the destination is
not An, but warn about it.
o m68k: New option -guess-ext makes the assembler accept a bad size extension,
as long as the instruction is unsized or there is just a single size
possible. This is the default setting for PhxAss- and Devpac-mode.
o m68k: The size extension of branch instructions is completely ignored,
also when illegal, if -guess-ext and -opt-allbra are specified (-phxass).
o m68k: The PhxAss OPT directive must not reset the -opt-allbra flag. It is
always enabled in PhxAss compatibility mode.
o ARM: Supports 64-bit data.
o mot-syntax: New directives import (same as xref) and export (same as xdef)
for Atari PureC/AHCC compatibility.
o mot-syntax: FAIL is no longer fatal and displays a normal user error
in the final pass.
o mot-syntax: Labels terminated by a colon must not start on the first
column of a line.
o mot-syntax: FEQU directive to assign floating point expressions to a symbol.
o mot-syntax: EQU.<size> and =.<size> to assign floating point expressions
in PhxAss compatibility mode.
o std-syntax: .comm and .lcomm will now use the default alignments from
the current CPU backend.
o std-syntax: .err is no longer fatal and displays a normal user error in
the final pass.
o std-syntax: .abort is no longer a fatal error, but terminates assembly
at that point with a normal error.
o oldstyle-syntax: FAIL is no longer fatal and displays a normal user error
in the final pass.
o oldstyle-syntax: Supports intel-style constant suffixes (like 'h' to
o oldstyle-syntax: A terminating colon on a label is also allowed before
an equate, set or macro directive.
o oldstyle-syntax: Added IFD and IFND (same as IFDEF and IFNDEF).
o output-tos: Fixed a potential problem allocating 0 bytes, when there are
no reloctions in a file.
This post is here in case any of you wish to put the new JagRISC backend through its paces. The vasm update in the next post IS NOT for the JagRISC. Its a straight M68k assembler.
For those wondering how compatible this and vlink is with madmac/smac/aln/sln here is the authors note:
Command line options are definitely different. But that's probably the
smallest problem for somebody who is interested.
The assembler syntax is more important, as I understand nobody wants to
rewrite his old sources. Here vasm is either compatible to Devpac (using
the "mot" syntax module) or optionally to the GNU-as (using the "std"
AFAICS Madmac is not compatible to Devpac. The functionality is similar,
but the Madmac directives start with a dot.
I am prepared [for feature suggestions and bug reports from the community]. The Atari ST scene already uses vasm a lot, because of the Devpac compatibilty.