Mostly about snapshots
SkoolKit 5.3 has been released. In the interests of compatibility with earlier versions, copies of 5.3 are available from the download page, the Python Package Index, and the Ubuntu PPA. And for the first time, RPM packages for SkoolKit are also available from Fedora copr.
So, what new stuff could there be in 5.3 (as another, less well known poet once
asked)? First, there are two new commands: snapinfo.py
and snapmod.py
. The
former command will analyse a SNA, SZX or Z80 snapshot - display register
values, list any BASIC program present, show the contents of a range of
addresses, and search for specific text or byte sequences. The latter command
will modify a 48K Z80 snapshot - change register values or hardware state
attributes, and POKE or move the contents of a range of addresses. I’ve used
prototypes of these commands through the years during my reverse engineering
efforts, and I thought it was time they were promoted into the official
SkoolKit distribution. Perhaps you, too, will find some use for them.
On the skool macro front, the new #INCLUDE
macro joins the family as the 32nd
member - an interesting milestone for any power-of-2 buffs out
there. #INCLUDE
expands to the contents of a ref file section (in HTML mode
only), and so enables you to include one ref file section in another. Funnily
enough, SkoolKit 1.x provided this feature via the :: ref file
macro, but support for this (and all
ref file macros) was removed in 2.0. Now that the capability has been restored
in 5.3, I shall expect everyone to make use of it.
There are also two new features in the HTML output department. First,
skool2html.py
can now write a disassembly - the code and data part, that is -
to a single HTML page. This makes routines, data blocks, labels, instructions
and addresses more easily searchable (using the browser’s own search
function). To make the switch from many pages to one, set the new
AsmSinglePageTemplate
parameter in the [Game]
section equal to
AsmAllInOne
and away you go. Second, it’s now possible to create a custom
‘box’ page - like the Bugs and Pokes pages - by setting the SectionPrefix
parameter in the [Page:*]
section and then defining a bunch of suitably named
ref file sections, one for each box on the page. For example, if you have
SectionPrefix=Foo
, and then two sections named [Foo:id1:Item 1]
and
[Foo:id2:Item 2]
, skool2html.py
will render a page with two boxes labelled
‘Item 1’ and ‘Item 2’.
And that’s it for the main new features. As always, details of the less interesting changes can be found in the changelog. After doing due diligence there, why not analyse a snapshot or two, and then write the disassembly you’re currently working on to a single HTML page? There can surely be no better way to spend the rest of the day.