Adventures with assemblers
Since SkoolKit 1.0 was released, I have touted it as a tool for
creating ASM versions of the Skool Disassemblies, but have neglected to mention
which assemblers (if any) will work with the ASM files that SkoolKit
generates. Until now, that is. No longer do you have to stumble around the
internet looking for assemblers that will give you a working version of Skool
Daze from skool_daze.asm
(or, indeed, a working version of Back to Skool from
back_to_skool.asm
). I’ve done that for you, you lazy basts.
For the impatient, the short answer is: use pasmo. It’s what I’ve always used, it’s simple to use, and it just works.
If pasmo is not your bag, however, then
SjASMPlus works wells too. The only
slightly awkward thing about SjASMPlus
is that it doesn’t seem possible to
feed it a plain ASM file and get a binary file out the other end. Instead you
have to create a separate source file that INCLUDE
s skool_daze.asm
or
back_to_skool.asm
, and contains a SAVEBIN
directive to save a binary file.
The third and final option is z80asm
, the assembler that comes with
z88dk. The two slightly awkward things about using
z80asm
are that (a) the plain versions of skool_daze.asm
and
back_to_skool.asm
must be modified slightly first, and (b) the ORG
address
must be explicitly given on the z80asm
command line (the ORG
directive in
the ASM file seems to be ignored).
For further details of these three assemblers and example usages, see the new documentation on supported assemblers. Also, don’t forget to grab the latest version (1.3.1) of SkoolKit.
In case you were wondering, I didn’t stop at these three assemblers, but they
were the only three I found that worked with an acceptable minimum level of
effort. I also looked at crasm and
tpasm, but they seem unable to cope with DEF{B,M,S,W}
directives, which rules them
out. z80asm (not the one that
comes with z88dk) doesn’t seem to like label arithmetic (such as DEFB
LABEL%256
). And sjasm gives a cryptic
C++ error message every time I run it (on Debian squeeze).
So there it is. If you have been successfully using SkoolKit with an assembler
other than pasmo
, SjASMPlus
, or z80asm
(of z88dk), let me know, and I’ll
mention it in the documentation.