SkoolKit

Spectrum game disassembly toolkit

Disassembler dumbness

As luck would have it, SkoolKit 1.0 shipped with bugs in the disassembler, sna2skool.py. The bugs don’t affect the building of the Skool Disassemblies themselves, but will produce an incorrect disassembly from snapshots containing one of the following instructions: ‘XOR IYh’, ‘XOR IYl’, ‘XOR (IY+d)’, ‘SBC HL,SP’, ‘ADC HL,SP’, and the ED-prefix versions of ‘LD (nn),HL’ and ‘LD HL,(nn)’.

Here at pyskool.ca I don’t tolerate bugs, so in response I’ve pushed out a bugfix release of SkoolKit. You can get it from the SkoolKit page.

Of course, if you spot any other bugs, don’t be afraid to report them with appropriate amounts of indignation and bitterness.

SkoolKit 1.0

Have you ever browsed the Skool Disassemblies and thought: “Hmm, I wish I could build these disassemblies from the comfort of my own home instead of browsing them online or having to download a ready-made copy”? Almost certainly not, I would wager. But in complete disregard for that fact, I’ve gone ahead and prepared SkoolKit 1.0 for distribution anyway.

So what is SkoolKit? Well, you could think of it as one (or more) of the following:

  • The Skool Disassemblies in DIY or kit form
  • The ‘source code’ and ‘compiler’ for the Skool Disassemblies
  • ‘The Making of the Skool Disassemblies’

In other words, SkoolKit contains all the scripts and data files required to build the latest release of the Skool Disassemblies. It’s how I build the disassemblies (both the HTML and ASM versions), and now you can do it the same way. To obtain your copy of SkoolKit:

Once you’ve downloaded and unpacked SkoolKit, see the documentation in skoolkit.html for instructions on how to get started.

If SkoolKit does not pique your interest, never fear. You still have the option of browsing the ready-made Skool Disassemblies on this site, or grabbing a copy of them from here for local/offline browsing.

What’s new in the disassemblies themselves? To be honest, not much has changed since the last release - mostly because I’ve been working on preparing SkoolKit for distribution, and the last release was not that long ago - but the details are (as ever) in the changelog. Perhaps the most noteworthy change is that the disassemblies should now look the same in Internet Explorer as they do in other browsers. (I had no idea that they looked all wrong in the excuse-for-a-browser known as IE until yesterday.)

Happy disassembly-building (or not, as the case may be)!

LSBs and MSBs

Note: The ASM selector has been removed. To obtain ASM versions of the skool disassemblies, use SkoolKit.

The refactored ASMs have arrived. Actually, they arrived a few days ago, but I’ve only just got round to announcing them here. You can get them from the Skool ASM selector by selecting the third option in the ‘Bug fixes’ drop-down: ‘More (refactored ASM)’.

So what is a refactored ASM? It’s one containing modifications to some of the routines (and a few data blocks) to make them less sensitive to the LSBs and MSBs of their start addresses and more amenable to relocation. Why is that a good thing? Well, it means that the gaps between routines can be removed, and extra instructions can be inserted (to fix bugs that could not otherwise be fixed) - without breaking anything (hopefully). The refactored ASMs would also be a better base from which to start modifying the games or adding new features: the unrefactored ‘pristine’ ASMs are probably a little too rigid and fragile for that.

However, my efforts at refactoring may have introduced new bugs, so playtesting of these ASMs is strongly encouraged. In fact, if it were in my power, I would make it required by law. But it isn’t in my power, so I’ll just have to ask nicely instead. Please playtest these refactored ASMs! To make it easy for you, each download from the Skool ASM selector (there’s that link again) contains a TAP file right next to the ASM, so you have no excuse not to load it in an emulator and get to work. I mean play. Please again?