Changelog
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
5.4 (2017-01-08)
- Added the sna2img.py command (for converting the screenshot in a SCR
file or SNA/SZX/Z80 snapshot into a PNG or GIF file)
- Added the @equ ASM directive (which produces an EQU directive in the
ASM output)
- The #REG macro now accepts an arbitrary text parameter (e.g.
#REG(hlh'l')
)
- When the #LINK macro links to an entry on a box page,
the link text defaults to the title of the entry if left blank
- Added the
SectionType
parameter to the [Page:*] section (for
specifying how to parse and render the ref file sections from which a
box page is built)
- Added the
--asm-one-page
option to skool2html.py (for writing all
routines and data blocks to a single page)
- Added the
--variables
option to snapinfo.py (for showing the
contents of the variables area)
- snapinfo.py now shows special symbols for UDGs in a BASIC program
(e.g.
{UDG-A}
)
- Improved how @end, @org, @replace, @set, @start
and @writer directives are preserved and restored via a control file
- Added support for page-specific HTML subtemplates
- The #UDGARRAY macro now pads out the bottom row of an array with extra
UDGs if necessary (to prevent the creation of a broken image file)
5.3 (2016-09-05)
- Dropped support for Python 3.2
- Added the snapinfo.py command (for showing information on the
registers and RAM in a SNA, SZX or Z80 snapshot)
- Added the snapmod.py command (for modifying the registers and RAM in a
48K Z80 snapshot)
- Added the #INCLUDE macro (which expands to the contents of a ref file
section)
- Added the ability to write the HTML disassembly to a single page (by using
the
AsmSinglePageTemplate
parameter in the [Game] section and
the AsmAllInOne and asm_entry templates)
- Added the
SectionPrefix
parameter to the [Page:*] section (for
specifying the prefix of the names of ref file sections from which to build
a box page)
- Added the
--screen
option to bin2tap.py (for adding a loading
screen to the TAP file)
- Added the
--stack
and --start
options to tap2sna.py (for
specifying the stack and start addresses)
- Added support to the #REG macro for the F and F’ registers
- Improved how skool2asm.py scans annotations for addresses not
converted to labels
- Fixed how a memory block that ends with a single ED byte is compressed in a
Z80 snapshot
- Removed the Spectrum ROM disassembly from the SkoolKit distribution; it is
now being developed separately here
5.2 (2016-05-02)
- Added the bin2sna.py command (for converting a binary file into a Z80
snapshot)
- Added the #N macro (which renders a numeric value in hexadecimal format
when the
--hex
option is used with skool2asm.py or skool2html.py)
- Added the @rfix ASM directive (which makes an instruction substitution
in
@rfix
mode)
- Added the
UDGFilename
parameter to the [Game] section (for
specifying the format of the default filename for images created by the
#UDG macro)
- bin2tap.py can now read a binary file from standard input
- skool2bin.py can now write to standard output (and so its output can
be piped to bin2sna.py or bin2tap.py)
- When the #LINK macro links to an entry on a memory map page, the anchor
is converted to the format specified by the
AddressAnchor
parameter
- Fixed how required integer macro parameters are handled when left blank (e.g.
#POKES30000,,8
)
5.1 (2016-01-09)
- Added the @replace ASM directive (which replaces strings that match a
regular expression in skool file annotations and ref file sections)
- Added the #(), #EVAL, #FOR, #FOREACH, #IF,
#MAP and #PEEK macros (which can be used to programmatically
specify the parameters of any macro)
- Added support for arithmetic expressions and skool macros in numeric macro
parameters
- Added the
--bfix
, --ofix
and --ssub
options to
skool2bin.py (for parsing the skool file in @bfix
, @ofix
and
@ssub
mode)
- Added the
DefaultAnimationFormat
parameter to the [ImageWriter]
section (for specifying the default format for animated images)
- The #R macro now converts an anchor that matches the entry address to
the format specified by the
AddressAnchor
parameter (making it easier to
link to the first instruction in an entry when using a custom anchor format)
- skool2ctl.py now appends a terminal
i
directive if the skool file
ends before 65536
- skool2sft.py now preserves
i
blocks in the same way as code and
data blocks (instead of verbatim), which enables their conversion to decimal
or hexadecimal when restored from a skool file template
- Fixed how the colours in flashing blank tiles are detected when writing an
uncropped image file
- Fixed how a 2-colour PNG image is created when it contains an attribute with
equal INK and PAPER colours
5.0 (2015-10-04)
- Added the skool2bin.py command (for converting a skool file into a
binary file)
- Added the tapinfo.py command (for showing information on the blocks in
a TAP or TZX file)
- Converted the HTML templates from XHTML 1.0 to HTML5
- Added the footer template (for formatting the
<footer>
element
of a page)
- Added the @assemble ASM directive
- Added the
--set
option to skool2asm.py (for setting ASM writer
property values)
- Added the
RefFiles
parameter to the [Config] section (for
specifying extra ref files to use)
- Added support to sna2skool.py for reading SpecEmu’s 64K code execution
map files
- Fixed how tap2sna.py does a standard load from a TZX file