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 pageAdded
path
to theSkoolKit
dictionary in HTML templatesIn 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
parameterCommas 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 anotherAdded 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 instructionThe
LABEL
parameter of the @label directive may be left blank to prevent the next instruction from having a label automatically generatedAdded the
location
identifier to the asm_instruction templateAdded 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 usedAdded 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 theEntryTypes
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
toLD 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
optionAdded 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 specifiedFixed 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 tokensAdded support for replacement fields (such as
{base}
and{case}
) in theexpr
parameter of the #IF macro and thekey
parameter of the #MAP macroAdded 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
andtitle
of a box page entry section name; every parameter in the [Game], [MemoryMap:*], [Page:*], [PageHeaders], [Paths] and [Titles] sectionsThe @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 usedAdded 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