SkoolKit

Spectrum game disassembly toolkit

Adventures with assemblers

pasmo is grate

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 INCLUDEs 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.

Au clair de la mulberry bush

Name those tunes

Time for a new release of the Skool Disassemblies. As always, you can browse them online, or download a copy for offline viewing. And also as always, if you’d like to build the disassemblies yourself (including ASM versions that can be fed into an assembler), then SkoolKit will do the trick.

As the veteran disassembly-watchers among you will already know, the Skool Disassemblies are now in maintenance mode: I have no new features planned, but I will fix errors or document new bugs, pokes and trivia as they come to light. For this particular maintenance release, I have documented more graphic glitches, and added a couple of trivia entries about the tunes that play in the skool games. For details of all the changes since the last release, see the changelog.

Also remember that SkoolKit includes a disassembler, and provides some support for creating HTML and ASM disassemblies of other Spectrum games. An incomplete disassembly of Contact Sam Cruise is already bundled, alongside an even more incomplete disassembly of Manic Miner.

The fidgety frog

Where's Sam Cruise?

Just a quick note to inform the disassembly-watchers among you that a new version of the Skool Disassemblies is out. As usual, you can browse them online, or download a copy for offline viewing. And also as usual, if you’d like to build the disassemblies yourself (including ASM versions), then SkoolKit has what you need.

The Skool Disassemblies are now in maintenance mode, which means I have no new features planned, but I will fix errors when I spot them. I’ll also document new bugs, pokes and trivia entries that come to light or mind. Speaking of which, there is one new trivia entry in this update: The apprehensive amphibian.

Don’t forget that SkoolKit provides some support for creating disassemblies of other Spectrum games, and includes an incomplete Contact Sam Cruise disassembly. I’ll probably get back to that when I’ve finished the current round of changes to Pyskool.