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.
Features
With SkoolKit you can:
use sna2ctl.py 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 sna2ctl.py to generate a much better control file that more reliably distinguishes code from data by using a code execution map produced by an emulator, rzxplay.py or trace.py
use sna2skool.py 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 skool2html.py 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 skool2asm.py to convert a disassembly into an assembler source file (also with annotations in place)
use skool2ctl.py to convert a disassembly back into a control file (with annotations retained)
use skool2bin.py to convert a disassembly into a raw memory file
use tap2sna.py to convert a PZX, TAP or TZX file into a ‘pristine’ Z80 or SZX snapshot
use snapinfo.py 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 trace.py to trace the execution of machine code in a snapshot or raw memory file
use rzxplay.py to trace the execution of machine code in an RZX file, and produce a code execution map for sna2ctl.py
use tapinfo.py to analyse the blocks in a PZX, TAP or TZX file, and list the BASIC program it contains
use rzxinfo.py to analyse the blocks in an RZX file, and extract snapshots from it
use bin2tap.py to convert a snapshot or raw memory file into a PZX or TAP file
use bin2sna.py to convert a raw memory file into a Z80 or SZX snapshot
use snapmod.py to modify the register values or memory contents in a Z80 or SZX snapshot
use sna2img.py to convert graphic data in a disassembly, SCR file, snapshot or raw memory file into a PNG image
In an HTML disassembly produced by skool2html.py you can also:
use the image macros to build still and animated PNG images from graphic data
use the #AUDIO macro to build WAV files for sound effects and tunes
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
For a demonstration of SkoolKit’s capabilities, take a look at the complete disassemblies of Skool Daze, Back to Skool, Contact Sam Cruise, Manic Miner, Jet Set Willy and Hungry Horace.
Quick start guide
SkoolKit includes fairly detailed documentation, but if you want to get up and running quickly, here goes.
To convert a SNA, Z80 or SZX snapshot of a Spectrum game into a skool file (so that it can be converted into HTML or assembly language):
$ sna2skool.py game.z80 > game.skool
To split the disassembly up into code and data blocks, you’ll need a control file.
To turn this skool file into an HTML disassembly:
$ skool2html.py game.skool
To turn it into a file that can be fed to an assembler:
$ skool2asm.py game.skool > game.asm
Metadata
Release files for skoolkit 10.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| skoolkit-10.1.tar.gz | 1.3 MB | Details |
Built distributions (wheels)
Total release size: 15.1 MB
Release files / skoolkit-10.1.tar.gz
| Download URL | skoolkit-10.1.tar.gz |
|---|---|
| Size | 1.3 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e71f0bac2bd38de1eacbb58650e95d43082351a1e9ecb8edecb11da112d02383
|
|
BLAKE2b-256 checksum How to use checksums |
6d5748a13306f34681c8d495e3abf42f42b9a022e2bdd83f89ccfcc82e53ac95
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / skoolkit-10.1-cp314-cp314-win_amd64.whl
| Download URL | skoolkit-10.1-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 463.6 kB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
71d498d5ec4d467790aafe03156f4cd96338b82c1bf9aa0b924cb4a1aa9780b5
|
|
BLAKE2b-256 checksum How to use checksums |
8bbdc50b8773c583652f077938b5e1ef3ddf269358ca803ccdcc3186cea0e081
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / skoolkit-10.1-cp314-cp314-win32.whl
| Download URL | skoolkit-10.1-cp314-cp314-win32.whl |
|---|---|
| Size | 461.2 kB |
| Tags | CPython 3.14 Windows x86-32 |
|
SHA-256 checksum How to use checksums |
b661b1a911967c6d588cd296a8e66f5ede5e458c5ce351103b86000cfa0a5c0f
|
|
BLAKE2b-256 checksum How to use checksums |
1c019aa867cf5b96a3986aa119532e7b5e0ad38556739bf9f2bd8d3f32f8bca3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / skoolkit-10.1-cp314-cp314-musllinux_1_2_x86_64.whl
| Download URL | skoolkit-10.1-cp314-cp314-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 693.6 kB |
| Tags | CPython 3.14 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
1bc9c009a988928b69839fad5874cfa7ce581392c197333501ff56daca5efe61
|
|
BLAKE2b-256 checksum How to use checksums |
45b64e4bd927f77a8758fb7dc73e6b7df688331aeba0a203f503a101e324714c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / skoolkit-10.1-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
| Download URL | skoolkit-10.1-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl |
|---|---|
| Size | 694.5 kB |
| Tags | CPython 3.14 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64 |
|
SHA-256 checksum How to use checksums |
8e2a316b0bd71c02b1bb51e6ca419cb9287920dcc625d0e309238b513e59785e
|
|
BLAKE2b-256 checksum How to use checksums |
708d93f16e91302a89b74699f8202132a9c63a42295505cfe30e02b6bb553d96
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / skoolkit-10.1-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | skoolkit-10.1-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 465.6 kB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
983ec5c0c32744e4522e01e4db7ad34908f5116dfcf10c7a9d75d5dea203ada5
|
|
BLAKE2b-256 checksum How to use checksums |
aede498a7eb657cdf372cbd45800e18c91f451e7c99378d98ae0551a8de35791
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / skoolkit-10.1-cp313-cp313-win_amd64.whl
| Download URL | skoolkit-10.1-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 459.5 kB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
01c2f4cf1251d9f20d7efcca91d7d3b8a3b4485bb96f19ee5f2f5f74a8bdbd76
|
|
BLAKE2b-256 checksum How to use checksums |
a4d48736259c6c55fe65acd96a73d6aee60ae9e4e4a7109126a4dc9397dda1f0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / skoolkit-10.1-cp313-cp313-win32.whl
| Download URL | skoolkit-10.1-cp313-cp313-win32.whl |
|---|---|
| Size | 457.2 kB |
| Tags | CPython 3.13 Windows x86-32 |
|
SHA-256 checksum How to use checksums |
5d227b2df2027a0530eefe665b256b1d7a7b22dc23bf4ea14d6650d7319f162c
|
|
BLAKE2b-256 checksum How to use checksums |
5d56346926d13ccb7002e518208fc22ee0d0bec161182de153ba8b684d596974
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / skoolkit-10.1-cp313-cp313-musllinux_1_2_x86_64.whl
| Download URL | skoolkit-10.1-cp313-cp313-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 693.5 kB |
| Tags | CPython 3.13 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
0cbc7230b370c6d7ba9c914d5da0cdd2389330184c035e78320d75647948b2ad
|
|
BLAKE2b-256 checksum How to use checksums |
2dfeb90f4728918132f612554d0d7e82c46f127f2a8423e84e6439f8aecfa26b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / skoolkit-10.1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
| Download URL | skoolkit-10.1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl |
|---|---|
| Size | 694.6 kB |
| Tags | CPython 3.13 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64 |
|
SHA-256 checksum How to use checksums |
4526a4e84ba78432c958d3336109215f91969d43faf1200aaa325323e695bea2
|
|
BLAKE2b-256 checksum How to use checksums |
2042ccc69925a6c4b8ca52513ca06bd498cbf613b3e4db87d0a6ce27cc11481a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / skoolkit-10.1-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | skoolkit-10.1-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 465.6 kB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
c33013e9bfa07ecbda0810dc6a910a5f8ac5f558af7eaa16eb27d262879b6fa8
|
|
BLAKE2b-256 checksum How to use checksums |
37b059b013f0dcc5e96d6fa940641856926c89cf5930b5ed85c75b3c29202eb2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / skoolkit-10.1-cp312-cp312-win_amd64.whl
| Download URL | skoolkit-10.1-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 459.5 kB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
235bfbf3698d5ff36d062a2c7847d679198dd33d7dcbdedae9908beba813d741
|
|
BLAKE2b-256 checksum How to use checksums |
681df5ecbcdee1c493de93374c04b8ce743b22b47753c08461345f0d83b56245
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / skoolkit-10.1-cp312-cp312-win32.whl
| Download URL | skoolkit-10.1-cp312-cp312-win32.whl |
|---|---|
| Size | 457.2 kB |
| Tags | CPython 3.12 Windows x86-32 |
|
SHA-256 checksum How to use checksums |
467ecbe72823341a583758872a89162924dbc0a941b1347b060f9997c8a478d7
|
|
BLAKE2b-256 checksum How to use checksums |
647df66d62f2a6fc0a26939be897a517809325753e7d0828522bb97ef41c380f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / skoolkit-10.1-cp312-cp312-musllinux_1_2_x86_64.whl
| Download URL | skoolkit-10.1-cp312-cp312-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 693.6 kB |
| Tags | CPython 3.12 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
157884d564e40e1164c46cff31a52a0a8ec99e79b39fc5a406de7f2e58ed7209
|
|
BLAKE2b-256 checksum How to use checksums |
e5fc73ae4bbc034c06114a1a453badc186a8322316603096c79f67b7e3239315
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / skoolkit-10.1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
| Download URL | skoolkit-10.1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl |
|---|---|
| Size | 694.6 kB |
| Tags | CPython 3.12 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64 |
|
SHA-256 checksum How to use checksums |
dfb1594c545951f9f40dea49e43fbe669855b1b3507a1d2810ee86aa5901de0d
|
|
BLAKE2b-256 checksum How to use checksums |
4613eb221ea772d77868c8a1bf4e222147c2081bcda2846ea6782a2319eea585
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / skoolkit-10.1-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | skoolkit-10.1-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 465.6 kB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
4d2a105002db51258b3502f3e0202c8f3f1112c1b0b1b351e7223204f79e735f
|
|
BLAKE2b-256 checksum How to use checksums |
41969384df28d04dc03392da4b39a7b77cc862bcbf87e1acc3a9ad6d11c5224f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / skoolkit-10.1-cp311-cp311-win_amd64.whl
| Download URL | skoolkit-10.1-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 459.3 kB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
38b154fcef27db0537bc1922e0818cff7695f91aa5527a49d51107ce96f266ab
|
|
BLAKE2b-256 checksum How to use checksums |
838ef60e52d3bdd5d43b5548b6359117712bf0907dbe1185200cadd96efcf605
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / skoolkit-10.1-cp311-cp311-win32.whl
| Download URL | skoolkit-10.1-cp311-cp311-win32.whl |
|---|---|
| Size | 456.8 kB |
| Tags | CPython 3.11 Windows x86-32 |
|
SHA-256 checksum How to use checksums |
02a0197cc673117d27c9df365e2e951a2326bb346b61a8765d6f6f33439485b2
|
|
BLAKE2b-256 checksum How to use checksums |
91e2d73e03483b86099a61baac6d3321774c98057e1eee29ddaabbd1e4b62fa3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / skoolkit-10.1-cp311-cp311-musllinux_1_2_x86_64.whl
| Download URL | skoolkit-10.1-cp311-cp311-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 684.4 kB |
| Tags | CPython 3.11 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
73cfbfc3da59e86e5a8439b931a6a17f50929981f63ea5fd24517ac2f7194a33
|
|
BLAKE2b-256 checksum How to use checksums |
f19a5cb3bff47d79bf2a0b8e7f30a16aae5787c97a1cdce7fdbddd5c80c28ae8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / skoolkit-10.1-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
| Download URL | skoolkit-10.1-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl |
|---|---|
| Size | 684.4 kB |
| Tags | CPython 3.11 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64 |
|
SHA-256 checksum How to use checksums |
894cd7b7fcb7885233e6d769c98f96ee2421561078e4eae72ef755a4191e14a5
|
|
BLAKE2b-256 checksum How to use checksums |
385948723edb3371ba495d9d78fb11e805793ffc1a5024aa8837dc7e4992ba3d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / skoolkit-10.1-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | skoolkit-10.1-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 465.1 kB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
30c7296d0f573ef655a3dd58b9666348c30883a9e10045547af3026b96098e5e
|
|
BLAKE2b-256 checksum How to use checksums |
2508e85f9eb78e05e82afecf965bb96c253e96ff0a3e141206766e0c7ce1cdf8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / skoolkit-10.1-cp310-cp310-win_amd64.whl
| Download URL | skoolkit-10.1-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 459.7 kB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
24ca993b182aceb1e6e3e39f1f2819ee34561e36d1391e0819b081998b4ab228
|
|
BLAKE2b-256 checksum How to use checksums |
b2d4f134f4cb2b6d4f491e4a959298363e7468c2ca98dc901ec5f8a858c83d65
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / skoolkit-10.1-cp310-cp310-win32.whl
| Download URL | skoolkit-10.1-cp310-cp310-win32.whl |
|---|---|
| Size | 457.6 kB |
| Tags | CPython 3.10 Windows x86-32 |
|
SHA-256 checksum How to use checksums |
4270213a729bac36e30644c35ffa643a24f920767bf34bec004d1f8671850c6f
|
|
BLAKE2b-256 checksum How to use checksums |
d8080669d28a00c7cd6e5fa31fe72cccdde051a952ca2d9cd9aa33477009881c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / skoolkit-10.1-cp310-cp310-musllinux_1_2_x86_64.whl
| Download URL | skoolkit-10.1-cp310-cp310-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 699.3 kB |
| Tags | CPython 3.10 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
0f06318591c3941a0d674e49e62a76a42e4bcb7a7e093e96df12f4e15459bfb5
|
|
BLAKE2b-256 checksum How to use checksums |
2837dc0f22ef5485178b8f41bf378f0076d62eb25d82959986e652e48536f9f2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / skoolkit-10.1-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
| Download URL | skoolkit-10.1-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl |
|---|---|
| Size | 700.3 kB |
| Tags | CPython 3.10 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64 |
|
SHA-256 checksum How to use checksums |
6f410faf0fc6468cb2942060af355be8e3ba1efc264be916d941d3371d418026
|
|
BLAKE2b-256 checksum How to use checksums |
18b9ea6c80e00653ae8b46ff80c96bc339f5111b10813c10f62926398e6d73e6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / skoolkit-10.1-cp310-cp310-macosx_11_0_arm64.whl
| Download URL | skoolkit-10.1-cp310-cp310-macosx_11_0_arm64.whl |
|---|---|
| Size | 466.3 kB |
| Tags | CPython 3.10 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
1c0f57a1eca57b42e3a3a13d5ffac69c04de7d706b12d0204998a5da5c540daa
|
|
BLAKE2b-256 checksum How to use checksums |
069e0cf9c564164e138adeb7d94595e3ce78f3d96b576586aba615ec4d73ffe4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|