PyPI

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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Built Distributions

Filter files by name, interpreter, ABI, and platform.

If you're not sure about the file name format, learn more about wheel file names.

Copy a direct link to the current filters

File name

Interpreter

ABI

Platform

File details

Details for the file skoolkit-10.1.tar.gz.

File metadata

  • Download URL: skoolkit-10.1.tar.gz
  • Upload date:
  • Size: 1.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for skoolkit-10.1.tar.gz
Algorithm Hash digest
SHA256 e71f0bac2bd38de1eacbb58650e95d43082351a1e9ecb8edecb11da112d02383
MD5 28006dd7a1843fb268e3a9d1c7dd7429
BLAKE2b-256 6d5748a13306f34681c8d495e3abf42f42b9a022e2bdd83f89ccfcc82e53ac95

See more details on using hashes here.

File details

Details for the file skoolkit-10.1-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: skoolkit-10.1-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 463.6 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for skoolkit-10.1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 71d498d5ec4d467790aafe03156f4cd96338b82c1bf9aa0b924cb4a1aa9780b5
MD5 9cf6a4b643a64940bb2fe35a5423c573
BLAKE2b-256 8bbdc50b8773c583652f077938b5e1ef3ddf269358ca803ccdcc3186cea0e081

See more details on using hashes here.

File details

Details for the file skoolkit-10.1-cp314-cp314-win32.whl.

File metadata

  • Download URL: skoolkit-10.1-cp314-cp314-win32.whl
  • Upload date:
  • Size: 461.2 kB
  • Tags: CPython 3.14, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for skoolkit-10.1-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 b661b1a911967c6d588cd296a8e66f5ede5e458c5ce351103b86000cfa0a5c0f
MD5 469f794fd0280058ef87cb779d7f9e90
BLAKE2b-256 1c019aa867cf5b96a3986aa119532e7b5e0ad38556739bf9f2bd8d3f32f8bca3

See more details on using hashes here.

File details

Details for the file skoolkit-10.1-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for skoolkit-10.1-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1bc9c009a988928b69839fad5874cfa7ce581392c197333501ff56daca5efe61
MD5 7c654c0593e81b8435fc49ee2df019d6
BLAKE2b-256 45b64e4bd927f77a8758fb7dc73e6b7df688331aeba0a203f503a101e324714c

See more details on using hashes here.

File details

Details for the file skoolkit-10.1-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for skoolkit-10.1-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 8e2a316b0bd71c02b1bb51e6ca419cb9287920dcc625d0e309238b513e59785e
MD5 2cbad5fbd533573c4c279048adb5d44b
BLAKE2b-256 708d93f16e91302a89b74699f8202132a9c63a42295505cfe30e02b6bb553d96

See more details on using hashes here.

File details

Details for the file skoolkit-10.1-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for skoolkit-10.1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 983ec5c0c32744e4522e01e4db7ad34908f5116dfcf10c7a9d75d5dea203ada5
MD5 b7ff2691bef9f863b4bef6c0ce37ba91
BLAKE2b-256 aede498a7eb657cdf372cbd45800e18c91f451e7c99378d98ae0551a8de35791

See more details on using hashes here.

File details

Details for the file skoolkit-10.1-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: skoolkit-10.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 459.5 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for skoolkit-10.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 01c2f4cf1251d9f20d7efcca91d7d3b8a3b4485bb96f19ee5f2f5f74a8bdbd76
MD5 37b18020e8b1466d1932233e306809b8
BLAKE2b-256 a4d48736259c6c55fe65acd96a73d6aee60ae9e4e4a7109126a4dc9397dda1f0

See more details on using hashes here.

File details

Details for the file skoolkit-10.1-cp313-cp313-win32.whl.

File metadata

  • Download URL: skoolkit-10.1-cp313-cp313-win32.whl
  • Upload date:
  • Size: 457.2 kB
  • Tags: CPython 3.13, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for skoolkit-10.1-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 5d227b2df2027a0530eefe665b256b1d7a7b22dc23bf4ea14d6650d7319f162c
MD5 33adbc3a3edafbd3c4d058505b0fe693
BLAKE2b-256 5d56346926d13ccb7002e518208fc22ee0d0bec161182de153ba8b684d596974

See more details on using hashes here.

File details

Details for the file skoolkit-10.1-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for skoolkit-10.1-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0cbc7230b370c6d7ba9c914d5da0cdd2389330184c035e78320d75647948b2ad
MD5 3e96d96b7953f9964482d02abbce67ea
BLAKE2b-256 2dfeb90f4728918132f612554d0d7e82c46f127f2a8423e84e6439f8aecfa26b

See more details on using hashes here.

File details

Details for the file skoolkit-10.1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for skoolkit-10.1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 4526a4e84ba78432c958d3336109215f91969d43faf1200aaa325323e695bea2
MD5 e1dfd25c353d67380fd1dc3f03508be3
BLAKE2b-256 2042ccc69925a6c4b8ca52513ca06bd498cbf613b3e4db87d0a6ce27cc11481a

See more details on using hashes here.

File details

Details for the file skoolkit-10.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for skoolkit-10.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c33013e9bfa07ecbda0810dc6a910a5f8ac5f558af7eaa16eb27d262879b6fa8
MD5 2b22030bfe8832b54651e3d367797623
BLAKE2b-256 37b059b013f0dcc5e96d6fa940641856926c89cf5930b5ed85c75b3c29202eb2

See more details on using hashes here.

File details

Details for the file skoolkit-10.1-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: skoolkit-10.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 459.5 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for skoolkit-10.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 235bfbf3698d5ff36d062a2c7847d679198dd33d7dcbdedae9908beba813d741
MD5 cc1a3b107e6fdb9b28aeeee97b9a5e6a
BLAKE2b-256 681df5ecbcdee1c493de93374c04b8ce743b22b47753c08461345f0d83b56245

See more details on using hashes here.

File details

Details for the file skoolkit-10.1-cp312-cp312-win32.whl.

File metadata

  • Download URL: skoolkit-10.1-cp312-cp312-win32.whl
  • Upload date:
  • Size: 457.2 kB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for skoolkit-10.1-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 467ecbe72823341a583758872a89162924dbc0a941b1347b060f9997c8a478d7
MD5 344631f0535cbd44effbcb7f78e2c1d4
BLAKE2b-256 647df66d62f2a6fc0a26939be897a517809325753e7d0828522bb97ef41c380f

See more details on using hashes here.

File details

Details for the file skoolkit-10.1-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for skoolkit-10.1-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 157884d564e40e1164c46cff31a52a0a8ec99e79b39fc5a406de7f2e58ed7209
MD5 b03a4959b97e54f6f5499eb97fb849bf
BLAKE2b-256 e5fc73ae4bbc034c06114a1a453badc186a8322316603096c79f67b7e3239315

See more details on using hashes here.

File details

Details for the file skoolkit-10.1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for skoolkit-10.1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 dfb1594c545951f9f40dea49e43fbe669855b1b3507a1d2810ee86aa5901de0d
MD5 f8a082f3cf1923bd41d6d117f37ca298
BLAKE2b-256 4613eb221ea772d77868c8a1bf4e222147c2081bcda2846ea6782a2319eea585

See more details on using hashes here.

File details

Details for the file skoolkit-10.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for skoolkit-10.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4d2a105002db51258b3502f3e0202c8f3f1112c1b0b1b351e7223204f79e735f
MD5 b1887601ce64af9e2696ba6a3bf22180
BLAKE2b-256 41969384df28d04dc03392da4b39a7b77cc862bcbf87e1acc3a9ad6d11c5224f

See more details on using hashes here.

File details

Details for the file skoolkit-10.1-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: skoolkit-10.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 459.3 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for skoolkit-10.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 38b154fcef27db0537bc1922e0818cff7695f91aa5527a49d51107ce96f266ab
MD5 df98250d07dec54d245b1d1723c57620
BLAKE2b-256 838ef60e52d3bdd5d43b5548b6359117712bf0907dbe1185200cadd96efcf605

See more details on using hashes here.

File details

Details for the file skoolkit-10.1-cp311-cp311-win32.whl.

File metadata

  • Download URL: skoolkit-10.1-cp311-cp311-win32.whl
  • Upload date:
  • Size: 456.8 kB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for skoolkit-10.1-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 02a0197cc673117d27c9df365e2e951a2326bb346b61a8765d6f6f33439485b2
MD5 5e99c8c9910b47b3004e63a20411e91c
BLAKE2b-256 91e2d73e03483b86099a61baac6d3321774c98057e1eee29ddaabbd1e4b62fa3

See more details on using hashes here.

File details

Details for the file skoolkit-10.1-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for skoolkit-10.1-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 73cfbfc3da59e86e5a8439b931a6a17f50929981f63ea5fd24517ac2f7194a33
MD5 fb9db9744c24cdbda457e14d1df3e316
BLAKE2b-256 f19a5cb3bff47d79bf2a0b8e7f30a16aae5787c97a1cdce7fdbddd5c80c28ae8

See more details on using hashes here.

File details

Details for the file skoolkit-10.1-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for skoolkit-10.1-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 894cd7b7fcb7885233e6d769c98f96ee2421561078e4eae72ef755a4191e14a5
MD5 e131d95ad1aa2693c249f042c5dc13f2
BLAKE2b-256 385948723edb3371ba495d9d78fb11e805793ffc1a5024aa8837dc7e4992ba3d

See more details on using hashes here.

File details

Details for the file skoolkit-10.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for skoolkit-10.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 30c7296d0f573ef655a3dd58b9666348c30883a9e10045547af3026b96098e5e
MD5 b6a8a79d327d270801d9056556992eb3
BLAKE2b-256 2508e85f9eb78e05e82afecf965bb96c253e96ff0a3e141206766e0c7ce1cdf8

See more details on using hashes here.

File details

Details for the file skoolkit-10.1-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: skoolkit-10.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 459.7 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for skoolkit-10.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 24ca993b182aceb1e6e3e39f1f2819ee34561e36d1391e0819b081998b4ab228
MD5 dba673b35fed914fa49efd339411d9ae
BLAKE2b-256 b2d4f134f4cb2b6d4f491e4a959298363e7468c2ca98dc901ec5f8a858c83d65

See more details on using hashes here.

File details

Details for the file skoolkit-10.1-cp310-cp310-win32.whl.

File metadata

  • Download URL: skoolkit-10.1-cp310-cp310-win32.whl
  • Upload date:
  • Size: 457.6 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for skoolkit-10.1-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 4270213a729bac36e30644c35ffa643a24f920767bf34bec004d1f8671850c6f
MD5 9ca5faa388aaa41da5c737ae8e1c5117
BLAKE2b-256 d8080669d28a00c7cd6e5fa31fe72cccdde051a952ca2d9cd9aa33477009881c

See more details on using hashes here.

File details

Details for the file skoolkit-10.1-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for skoolkit-10.1-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0f06318591c3941a0d674e49e62a76a42e4bcb7a7e093e96df12f4e15459bfb5
MD5 43fadeb1ba442531149fb05d6997436d
BLAKE2b-256 2837dc0f22ef5485178b8f41bf378f0076d62eb25d82959986e652e48536f9f2

See more details on using hashes here.

File details

Details for the file skoolkit-10.1-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for skoolkit-10.1-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 6f410faf0fc6468cb2942060af355be8e3ba1efc264be916d941d3371d418026
MD5 9c9680b36c69267c3e83bf95db8fe605
BLAKE2b-256 18b9ea6c80e00653ae8b46ff80c96bc339f5111b10813c10f62926398e6d73e6

See more details on using hashes here.

File details

Details for the file skoolkit-10.1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for skoolkit-10.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1c0f57a1eca57b42e3a3a13d5ffac69c04de7d706b12d0204998a5da5c540daa
MD5 ba084dc7f539e2921e8ad35ce6b45831
BLAKE2b-256 069e0cf9c564164e138adeb7d94595e3ce78f3d96b576586aba615ec4d73ffe4

See more details on using hashes here.

Read the original on pypi.org ↗