SkoolKit 7.x changelog

7.2 (2019-06-02)

  • Added support to control files for specifying comments over multiple lines (by using the dot and colon directives)

  • Added support to skool2ctl.py for reading configuration from skoolkit.ini

  • Added the --ini and --show-config options to skool2ctl.py (for setting the value of a configuration parameter and for showing all configuration parameter values)

  • Added the --keep-lines option to skool2ctl.py (for preserving line breaks in comments)

  • Added support for ASM templates (used to format each line of output produced by skool2asm.py)

  • Added the Templates configuration parameter for skool2asm.py (for reading custom ASM templates from a file)

  • Added the Dictionary configuration parameter for sna2ctl.py (to specify a file containing a list of words allowed in a text string)

  • Added the bytes and show_bytes identifiers to the asm_instruction template, along with a table cell for displaying the byte values of an assembled instruction

  • Added the Bytes parameter to the [Game] section (for specifying the format of byte values in the asm_instruction template)

  • Added the DisassemblyTableNumCols parameter to the [Game] section (for specifying the number of columns in the disassembly table on disassembly pages)

  • In ASM mode, #LIST and #TABLE macros can now be used in register descriptions

  • The #LINK and #R macros now work with address anchors that start with an upper case letter (as could happen when AddressAnchor is {address:04X})

  • Fixed how #LIST and #TABLE markers inside a #RAW macro are handled in ASM mode

  • Fixed how skool macros are expanded in *ImagePath parameters in the [Paths] section

  • Fixed the hyperlinking of lower case hexadecimal instruction operands

7.1 (2019-02-02)

  • Improved the performance and accuracy of the control file generation algorithm used by sna2ctl.py when no code map is provided

  • Added support to sna2ctl.py for reading configuration from skoolkit.ini

  • Added the --ini and --show-config options to sna2ctl.py (for setting the value of a configuration parameter and for showing all configuration parameter values)

  • Added support to sna2skool.py for reading multiple default control files, and for using the --ctl option multiple times

  • The #UDGARRAY macro now has the ability to specify attribute addresses (as an alternative to specifying attribute values)

  • Added support to control files and skool file templates for specifying that numeric values in instruction operands and DEFB, DEFM, DEFS and DEFW statements be rendered as negative numbers

  • The @isub, @ssub, @rsub, @ofix, @bfix and @rfix directives can insert an instruction after the current one (without first specifying a replacement for it) by using the + marker

  • tapinfo.py now shows pulse lengths in TZX block type 0x13 (pulse sequence) and full info for TZX block type 0x14 (pure data)

  • sna2skool.py handles unprintable characters in a DEFM statement by rendering them as byte values

  • sna2skool.py automatically determines the byte value of an ‘S’ directive and ignores any supplied value

  • Added the CommentWidthMin configuration parameter for sna2skool.py (to specify the minimum width of the instruction comment field in a skool file)

  • Added the InstructionWidth configuration parameter for sna2skool.py (to specify the minimum width of the instruction field in a skool file)

  • Added the Semicolons configuration parameter for sna2skool.py (to specify the block types in which comment semicolons are written for instructions that have no comment)

  • Fixed how sna2skool.py interprets the base prefix n in a ‘B’ directive

  • Fixed how skool2ctl.py and skool2sft.py handle non-entry blocks when a start address or end address is supplied

7.0 (2018-10-13)

  • The @isub, @ssub, @rsub, @ofix, @bfix and @rfix directives can specify the replacement comment over multiple lines, replace the label, and insert, overwrite and remove instructions

  • Non-entry blocks in a skool file are reproduced by skool2asm.py and preserved by skool2ctl.py

  • Moved the ability to generate a control file from sna2skool.py to the new sna2ctl.py command

  • skool2bin.py now processes @if directives (in case they contain @isub, @ssub, @ofix or @bfix directives)

  • The @label directive can now add an entry point marker to the next instruction, or remove one if present

  • Added the --force option to skool2asm.py (to force conversion of the entire skool file, ignoring any @start and @end directives)

  • Added support for appending content to an existing ref file section by adding a ‘+’ suffix to the section name (e.g. [Game+])

  • Added support for preserving ‘inverted’ characters (with bit 7 set) in and restoring them from a control file or skool file template

  • Added support to the #LIST, #TABLE and #UDGTABLE macros for the nowrap and wrapalign flags (which control how sna2skool.py renders each list item or table row when reading from a control file)

  • skool2html.py now writes a single disassembly from the the skool file given as the first positional argument; any other positional arguments are interpreted as extra ref files

  • Every entry title on a memory map page is now hyperlinked to the disassembly page for the corresponding entry

  • Fixed the bug in skool2ctl.py that makes it incorrectly compute the length of an M directive covering a sub-block containing two or more instructions

  • Fixed how blocks of zeroes are detected and how an --end address is handled when generating a control file