SkoolKit 4.x changelog

4.5 (2015-07-04)

  • Added support to tap2sna.py for TZX block type 0x14 (pure data), for loading the first and last bytes of a tape block (which are usually, but not always, the flag and parity bytes), and for modifying memory with XOR and ADD operations

  • Added the --clear option to bin2tap.py (to use a CLEAR command in the BASIC loader and leave the stack pointer alone)

  • Added the --end option to bin2tap.py and the ability to convert SNA, SZX and Z80 snapshots

  • Added --start and --end options to skool2asm.py, skool2ctl.py and skool2sft.py

  • The --start and --end options of sna2skool.py now take effect when reading a control file or a skool file template

  • Added support to skool2ctl.py and skool2sft.py for preserving characters in DEFW statements (e.g. DEFW "!")

  • Added support for characters in DEFS statements (e.g. DEFS 10,"!")

  • Fixed how tap2sna.py compresses a RAM block that contains a single ED followed by five or more identical values (e.g. ED0101010101)

  • Fixed the erroneous replacement of DEFS operands with labels

  • Fixed how instruction-level comments that contain braces are restored from a control file

  • Fixed the handling of terminal compound sublengths on ‘S’ directives (e.g. S 30000,10,5:32)

4.4 (2015-05-23)

  • Added support to control files and skool file templates for specifying that numeric values in instruction operands be rendered as characters or in a specific base

  • Added support for @ssub block directives

  • Added the --end option to sna2skool.py (for specifying the address at which to stop disassembling)

  • Added the --ctl-hex-lower option to sna2skool.py (for writing addresses in lower case hexadecimal format in the generated control file)

  • Added the --hex-lower option to skool2ctl.py and skool2sft.py (for writing addresses in lower case hexadecimal format)

  • Fixed the parsing of DEFB and DEFM statements that contain semicolons

  • Fixed the base conversion of LD (HL),n instructions that contain extraneous whitespace (e.g. LD ( HL ),5)

  • Fixed the erroneous replacement of RST operands with labels in HTML output

  • Fixed the handling of uncompressed version 1 Z80 snapshots by sna2skool.py

4.3 (2015-02-14)

  • Added support for block start comments (which appear after the register section and before the first instruction in a routine or data block)

  • Added the CodeFiles parameter to the [Paths] section (for specifying the format of a disassembly page filename based on the address of the routine or data block)

  • Added the AddressAnchor parameter to the [Game] section (for specifying the format of the anchors attached to instructions on disassembly pages and entries on memory map pages)

  • The #FONT, #SCR and #UDG macros now have the ability to create frames for an animated image

  • Added the --line-width option to sna2skool.py (for specifying the maximum line width of the skool file)

  • Writing an ASM directive in a skool file can now be done by starting a line with @; writing an ASM directive by starting a line with ; @ is deprecated

  • Added the @ directive for declaring ASM directives in a control file; the old style of declaring ASM directives (; @directive:address[=value]) is deprecated

  • Fixed the flip_udgs() and rotate_udgs() methods on HtmlWriter so that they work with a UDG array that contains the same UDG in more than one place

  • Fixed the bug that prevents register descriptions from being HTML-escaped

  • Fixed the erroneous substitution of address labels in instructions that have 8-bit numeric operands

4.2 (2014-12-07)

  • Added support for control directive loops using the L directive

  • Added support to control files for preserving the location of @ignoreua directives

  • Each image macro now has the ability to specify alt text for the <img> element it produces

  • Added support for splitting register descriptions over multiple lines

  • skool2asm.py now warns about unconverted addresses in register descriptions, and the @ignoreua directive can be used to suppress such warnings

  • Added the table, table_cell, table_header_cell and table_row templates (for formatting tables produced by the #TABLE macro)

  • Added the list and list_item templates (for formatting lists produced by the #LIST macro)

  • Fixed the bug that prevents the expansion of skool macros in the intro text of a Changelog:* section

4.1.1 (2014-09-20)

  • Updated links to SkoolKit’s new home at skoolkit.ca

  • Added example control and ref files for Hungry Horace

  • Removed the Manic Miner disassembly from the SkoolKit distribution; it is now being developed separately here

4.1 (2014-08-30)

  • Added the --search option to skool2html.py (to add a directory to the resource search path)

  • Added the --writer option to skool2html.py (for specifying the HTML writer class to use)

  • Added the --writer option to skool2asm.py (for specifying the ASM writer class to use)

  • Added the LinkInternalOperands parameter to the [Game] section (for specifying whether to hyperlink instruction operands that refer to an address in the same entry)

  • Register sections in b, g, s, t, u and w blocks are now included in the output of skool2asm.py and skool2html.py

  • Fixed how the address ‘0’ is rendered in HTML output when converted to decimal or hexadecimal

  • Fixed the bug that creates a broken hyperlink in a DEFW statement or LD instruction that refers to the address of an ignored entry

  • Removed the Jet Set Willy disassembly from the SkoolKit distribution; it is now being developed separately here

4.0 (2014-05-25)

  • Every HTML page is built from templates defined in [Template:*] sections in the ref file

  • Added support for keyword arguments to the #FONT, #SCR, #UDG and #UDGARRAY macros

  • Added the mask parameter to the #UDG and #UDGARRAY macros (for specifying the type of mask to apply)

  • Added support for defining page headers in the [PageHeaders] section of the ref file

  • Added the --ref-file and --ref-sections options to skool2html.py (to show the entire default ref file or individual sections of it)

  • Added the EntryDescriptions parameter to the [MemoryMap:*] section (for specifying whether to display entry descriptions on a memory map page)

  • Added the LengthColumn parameter to the [MemoryMap:*] section (for specifying whether to display the ‘Length’ column on a memory map page)