SkoolKit 6.x changelog

6.4 (2018-03-31)

  • Added the @if directive (for conditionally processing other ASM directives)

  • Added the #RAW macro (which prevents any macros or macro-like tokens in its sole string argument from being expanded)

  • Added the --var option to skool2asm.py and skool2html.py (for defining a variable that can be used by the @if directive and the #IF and #MAP macros)

  • The asm replacement field available to the #IF and #MAP macros now indicates the exact ASM mode: 1 (@isub mode), 2 (@ssub mode), 3 (@rsub mode), or 0 (none)

  • The #IF and #MAP macros can now use the fix replacement field, which indicates the fix mode: 1 (@ofix mode), 2 (@bfix mode), 3 (@rfix mode), or 0 (none)

  • The @isub, @ssub, @rsub, @ofix, @bfix and @rfix directives can replace comments as well as instructions

  • Added the entry identifier to the footer template when it is part of a disassembly page

  • Added path to the SkoolKit dictionary in HTML templates

  • In ASM mode, a #LIST or #TABLE macro can now be used in an instruction-level comment and as a parameter of another macro

  • In ASM mode, the #LIST macro produces unindented items when the bullet character is an empty string, and the bullet character can be specified by the bullet parameter

  • Commas that appear between parentheses are retained when a sequence of string parameters is split, making it easier to nest macros (e.g. #FOR0,9(n,#IF(n%2)(Y,N)))

6.3 (2018-02-19)

  • Added the @defb, @defs and @defw directives (for inserting byte values and word values into the memory snapshot)

  • Added the @remote directive (for creating a remote entry)

  • Added the --poke option to bin2sna.py (for performing POKE operations on the snapshot)

  • Added the --user-agent option to tap2sna.py (for setting the User-Agent header used in an HTTP request)

  • Added support to the [Resources] section for specifying files using wildcard characters (*, ? and [])

  • Added the ImagePath parameter to the [Paths] section (for specifying the base directory in which to place images) and the ability to define one image path ID in terms of another

  • Added support for image path ID replacement fields in the fname parameter of the image macros (e.g. #SCR2({UDGImagePath}/scr))

  • The @assemble directive can specify what to assemble in HTML mode and ASM mode separately

  • By default in ASM mode, DEFB/DEFM/DEFS/DEFW statements are no longer converted into byte values for the purpose of populating the memory snapshot

  • The address parameter of the @org directive is now optional and defaults to the address of the next instruction

  • The LABEL parameter of the @label directive may be left blank to prevent the next instruction from having a label automatically generated

  • Added the location identifier to the asm_instruction template

  • Added support for parsing block-level comments that are not left-padded by a space

  • Fixed how an opening brace at the end of a line or a closing brace at the beginning of a line is handled in an instruction-level comment

  • Fixed the bug in skool2ctl.py that prevents an @ignoreua directive on a block end comment from being preserved correctly

  • Fixed sna2skool.py so that it can generate a control file for a snapshot whose final byte (at 65535) is 24 or 237

6.2 (2018-01-01)

  • Added the --reg option to bin2sna.py (for setting the value of a register)

  • Added the --state option to bin2sna.py (for setting the value of a hardware state attribute)

  • sna2img.py can now read a binary (raw memory) file when the --binary option is used, and with a specific origin address when the --org option is used

  • Added the Includes parameter to the [MemoryMap:*] section (for specifying addresses of entries to include on the memory map page in addition to those specified by the EntryTypes parameter)

  • The SkoolKit command options now accept a hexadecimal integer prefixed by ‘0x’ wherever an address, byte, length, step, offset or range limit value is expected

  • Added the hex parameter to the #N macro (for rendering a value in hexadecimal format unless the --decimal option is used with skool2asm.py or skool2html.py)

  • Added the --show-config option to skool2asm.py, skool2html.py and sna2skool.py (for showing configuration parameter values)

  • Added support for substituting labels in instruction operands and DEFB/DEFM/DEFW statements that contain multiple addresses (e.g. LD BC,30000+40000%256), or where the address is the second or later term in an expression (e.g. DEFW 1+30000)

  • The @keep directive can now specify the values to keep, and is applied to instructions that have been replaced by an @isub, @ssub or @rsub directive

  • The @nolabel directive is now processed in HTML mode

6.1 (2017-09-03)

  • Added support for converting the base of every numerical term in an instruction operand or DEFB/DEFM/DEFS/DEFW statement that contains two or more (e.g. LD A,32768/256 to LD A,$8000/$100)

  • Added support for assembling instructions and DEFB/DEFM/DEFS/DEFW statements whose operands contain arithmetic expressions (e.g. DEFM "H","i"+$80)

  • Added support to skool2asm.py, skool2html.py and sna2skool.py for reading configuration from a file named skoolkit.ini, if present

  • Added the --ini option to skool2asm.py, skool2html.py and sna2skool.py (for setting the value of a configuration parameter)

  • sna2img.py can now read skool files, in either the default mode, or @bfix mode by using the --bfix option

  • Added the --move option to sna2img.py (for copying the contents of a block of RAM to another location)

  • Improved how skool2asm.py formats a comment that covers two or more instructions: now the comment is aligned to the widest instruction, and even blank lines are prefixed by a semicolon

  • Improved how the #R macro renders the address of an unavailable instruction (an instruction outside the range of the current disassembly, or in another disassembly) in ASM mode

  • Removed the indent from EQU directives in ASM output (for compatibility with SjASMPlus)

  • Fixed the bug that prevents the expansion of a macro whose numeric parameters contain a ‘<’, ‘>’ or ‘&’ character

  • Fixed how labels are substituted for addresses in DEFB/DEFM/DEFW statements

  • Fixed skool2asm.py so that it processes @ssub directives when --fixes 3 is specified

  • Fixed the styling of entry descriptions for ‘t’ blocks on a memory map page

6.0 (2017-05-06)

  • Dropped support for Python 2.7 and 3.3

  • Added the --expand option to sna2img.py (for expanding a #FONT, #SCR, #UDG or #UDGARRAY macro)

  • Added the --basic option to tapinfo.py (for listing the BASIC program in a tape block)

  • Added the --find-tile option to snapinfo.py (for searching for the graphic data of a tile currently on screen)

  • Added the --word option to snapinfo.py (for showing the words at a range of addresses)

  • Added support to the --find option of snapinfo.py for specifying a range of distances between byte values (e.g. --find 1,2,3-1-10)

  • The --peek option of snapinfo.py now shows UDGs and BASIC tokens

  • Added support for replacement fields (such as {base} and {case}) in the expr parameter of the #IF macro and the key parameter of the #MAP macro

  • Added support for parsing a box page entry section as a sequence of multi-line list items prefixed by ‘-’ (with SectionType=BulletPoints)

  • The following ref file components may now contain skool macros: the anchor and title of a box page entry section name; every parameter in the [Game], [MemoryMap:*], [Page:*], [PageHeaders], [Paths] and [Titles] sections

  • The @replace directive now acts on ref file section names as well as their contents

  • The #EVAL macro now renders hexadecimal values in lower case when the --lower option of skool2asm.py or skool2html.py is used

  • Added the #VERSION macro (which expands to the version of SkoolKit)

  • Fixed how an image is cropped when the crop rectangle is very narrow

  • Fixed how a masked image with flashing cells is built

  • Fixed how sna2skool.py handles a snapshot that contains a dangling IX/IY prefix (DD/FD) when generating a control file

  • Fixed the bug that prevents the expansion of skool macros in a page’s link text on the disassembly home page