Page 1 of 1

VASM and VBCC update for Belboz Jaguar XP SDK

Posted: Sat Aug 23, 2014 2:16 am
by a31chris
VBCC is the M68k C compiler used by the Hillsoft Jaguar SDK for XP that many people currently use. VASM is the assembler that vbcc uses. These updates are overdue.

But first some new exciting news!!!:

vasm history

- 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
indicate hexadecimal).
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"
syntax module).

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.


Frank Wille


Posted: Sat Aug 23, 2014 7:19 am
by a31chris
For those using Belboz's(Hillsoftware's) Jaguar XP SDK. Here is the VASM assembler update for the M68k. There are two files. Vasm and Vobjdump. Rename the two in the BIN folder vasmold and vobjdumpold then put these two in to replace them.

They worked fine for me but test them for a while until you are confident everything is in order before replacing the old ones.

VBCC update Hillsoft Jaguar XP/7/8 SDK 32bit

Posted: Sun Aug 24, 2014 5:28 am
by a31chris
The new vbcc build contains 4 files. vbcc, vprof, vc and dtgen.

So you'll have vbcc, vprof and vc in your bin directory that you'll first need to rename them to old versions. Vprofold, vcold and vbccold. dtgen which there should currently be no equivalent in your Belboz XP SDK Bin directory. That one you shouldn't have to worry about renaming any previous version.
Plop them in and run them and put them through their paces.

Re: VASM and VBCC update.

Posted: Tue Aug 26, 2014 5:14 pm
by a31chris
txg/mnx wrote:What about Vasm 1.7?

The m68k doesn't support risc? Will there be a new target that supports m68k and risc or 2 different versions of vasm ?
When you compile vasm you have to tell it which target you are going for. I only compiled the m68k vasm.

If you want the Jagrisc one you have to compile it with that target in mind.

Re: VASM and VBCC update.

Posted: Tue Aug 26, 2014 5:16 pm
by a31chris
txg/mnx wrote:New vbcc what's new in vbcc ?

Will vbcc support GPU/RISC in the future aswell ?

I did see this is version 0.9b but that's not really new is it ?
Its two years newer than the one that comes with the Belboz SDK.

If you want to know whats new then look here:

Re: VASM and VBCC update for Belboz Jaguar XP SDK

Posted: Mon Dec 01, 2014 2:04 am
by a31chris
Vlink version 14d is now available. This one has Jaguar specific updates:
(a.out) Fixed detection of Atari Jaguar MOVEI relocations.

Re: VASM and VBCC update for Belboz Jaguar XP SDK

Posted: Mon Dec 01, 2014 3:01 am
by a31chris
Just for everyons info the new linker I just posted is referring to itself as one revision newer, 14e so the daily snapshot I grabbed was probably this version that the revision notes have not been put up for:
vlink V0.14e (c)1997-2014 by Frank Wille
build date: Nov 30 2014, 16:52:58

Re: VASM and VBCC update for Belboz Jaguar XP SDK

Posted: Tue Jan 27, 2015 6:23 am
by a31chris
VASM update: Jaguar RISC ELF format created and supported.

Follow the original link in the first post for the snapshot.