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
--varoption 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
asmreplacement 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
fixreplacement 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
entryidentifier to the footer template when it is part of a disassembly pageAdded
pathto theSkoolKitdictionary 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
bulletparameterCommas 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
--pokeoption to bin2sna.py (for performing POKE operations on the snapshot)Added the
--user-agentoption 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
ImagePathparameter 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
fnameparameter 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
addressparameter of the @org directive is now optional and defaults to the address of the next instructionThe
LABELparameter of the @label directive may be left blank to prevent the next instruction from having a label automatically generatedAdded the
locationidentifier 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
--regoption to bin2sna.py (for setting the value of a register)Added the
--stateoption to bin2sna.py (for setting the value of a hardware state attribute)sna2img.py can now read a binary (raw memory) file when the
--binaryoption is used, and with a specific origin address when the--orgoption is usedAdded the
Includesparameter to the [MemoryMap:*] section (for specifying addresses of entries to include on the memory map page in addition to those specified by theEntryTypesparameter)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
hexparameter to the #N macro (for rendering a value in hexadecimal format unless the--decimaloption is used with skool2asm.py or skool2html.py)Added the
--show-configoption 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
@nolabeldirective 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/256toLD 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
--inioption 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
@bfixmode by using the--bfixoptionAdded the
--moveoption 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
@ssubdirectives when--fixes 3is 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
--expandoption to sna2img.py (for expanding a #FONT, #SCR, #UDG or #UDGARRAY macro)Added the
--basicoption to tapinfo.py (for listing the BASIC program in a tape block)Added the
--find-tileoption to snapinfo.py (for searching for the graphic data of a tile currently on screen)Added the
--wordoption to snapinfo.py (for showing the words at a range of addresses)Added support to the
--findoption of snapinfo.py for specifying a range of distances between byte values (e.g.--find 1,2,3-1-10)The
--peekoption of snapinfo.py now shows UDGs and BASIC tokensAdded support for replacement fields (such as
{base}and{case}) in theexprparameter of the #IF macro and thekeyparameter 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
anchorandtitleof 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
--loweroption 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