What is SkoolKit?

SkoolKit is a collection of utilities that can be used to disassemble a Spectrum game (or indeed any piece of Spectrum software written in machine code) into a format known as a skool file. Then, from this skool file, you can use SkoolKit to create a browsable disassembly in HTML format, or a re-assemblable disassembly in ASM format. So the skool file is - from start to finish as you develop it by organising and annotating the code - the common ‘source’ for both the reader-friendly HTML version of the disassembly, and the developer- and assembler-friendly ASM version of the disassembly.

The latest stable release of SkoolKit can always be obtained from pyskool.ca; the latest development version can be found on GitHub.

Features

Besides disassembling a Spectrum game into a list of Z80 instructions, SkoolKit can also:

  • Build PNG or GIF images from graphic data in the game snapshot (using the #UDG, #UDGARRAY, #FONT and #SCR macros)
  • Create hyperlinks between routines and data blocks that refer to each other (by use of the #R macro in annotations, and automatically in the operands of CALL and JP instructions)
  • Neatly render lists of bugs, trivia and POKEs on separate pages (using [Bug:*:*], [Fact:*:*] and [Poke:*:*] sections in a ref file)
  • Produce ASM files that include bugfixes declared in the skool file (with @ofix, @bfix and other ASM directives)
  • Produce TAP files from assembled code (using bin2tap.py)

For a demonstration of SkoolKit’s capabilities, take a look at the complete disassemblies of Skool Daze, Back to Skool and Contact Sam Cruise. The latest stable releases of the source skool files for these disassemblies can always be obtained from pyskool.ca; the latest development versions can be found on GitHub.

Licence

SkoolKit is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

See the file ‘COPYING’ (distributed with SkoolKit) for the full text of the licence.