Skip to content


Switch branches/tags

Latest commit

This enables the directive's comment to be applied to each instruction
in its range.

Git stats


Failed to load latest commit information.
Latest commit message
Commit time
Mar 10, 2013
Sep 17, 2018

Tests Coverage


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 assembly language. 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 version of the disassembly.


SkoolKit requires Python 3.7+. If you're running Linux or one of the BSDs, you probably already have Python installed. If you're running Windows or Mac OS X, you can get Python here.


With SkoolKit you can:

  • use to generate a control file (an attempt to identify routines and data blocks by static analysis) from a snapshot (SNA, SZX or Z80) or raw memory file
  • enable to generate a much better control file that more reliably distinguishes code from data by using a code execution map produced by an emulator
  • use along with this control file to produce a disassembly of a snapshot or raw memory file
  • add annotations to this disassembly (or the control file) as you discover the purpose of each routine and data block
  • use to convert a disassembly into a bunch of HTML files (with annotations in place, and the operands of CALL and JP instructions converted into hyperlinks)
  • use to convert a disassembly into an assembler source file (also with annotations in place)
  • use to convert a disassembly back into a control file (with annotations retained)
  • use to convert a disassembly into a raw memory file
  • use to convert a TAP or TZX file into a 'pristine' Z80 snapshot
  • use to analyse a snapshot or raw memory file and list the BASIC program it contains, show register values, produce a call graph, find tile graphic data, find text, or find sequences of arbitrary byte values
  • use to analyse the blocks in a TAP or TZX file, and list the BASIC program it contains
  • use to convert a snapshot or raw memory file into a TAP file
  • use to convert a raw memory file into a Z80 snapshot
  • use to modify the register values or memory contents in a Z80 snapshot
  • use to convert graphic data in a disassembly, SCR file, snapshot or raw memory file into a PNG image

In an HTML disassembly produced by you can also:

  • use the image macros to build still and animated PNG images from graphic data
  • use the #R macro in annotations to create hyperlinks between routines and data blocks that refer to each other
  • use [Bug:*], [Fact:*] and [Poke:*] sections in a ref file to neatly render lists of bugs, trivia and POKEs on separate pages

See the user manual for more details (mirror here).


A suite of tools for creating disassemblies of ZX Spectrum games.








No packages published