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
andshow_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
andwrapalign
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