Bases

SkoolKit 4.4 has been released. You may obtain a copy, as usual, from the download page, the Python Package Index, or the Ubuntu PPA.

First, a little SkoolKit history, to provide some context for the main new feature in this release. Back in SkoolKit 3.7, support for binary numbers was added, along with the ability to specify (in a control file or skool file template) the base of numeric values in DEFB, DEFM, DEFS and DEFW statements: binary, decimal or hexadecimal. Which was all well and good, but it left regular assembly language instructions out in the cold. You could disassemble 3E24 as DEFB $3E,%00100100 all day long if you wished, but if you wanted LD A,%00100100 instead, you were out of luck. Cue sad trombone.

Suffice it to say that this sorry situation has been rectified in SkoolKit 4.4. If you want 3E24 to disassemble as LD A,%00100100, you can now do so to your heart’s content. What’s more, if you want 3E24 to disassemble as LD A,"$" instead, you may also do that until the cows come home. (Of course, the options to disassemble 3E24 as LD A,36 or LD A,$24 are also still available.) All that’s required is the careful use of ‘b’ (binary), ‘c’ (character), ‘d’ (decimal) or ‘h’ (hexadecimal) prefixes in the control file or skool file template. Cue fanfare.

In other news - and in the “this really should have been in SkoolKit 1.0” department - 4.4 brings support for @ssub block directives. The only excuse I can offer for not implementing them sooner is that I never found a pressing need for them in any of the disassemblies I’ve worked on. But there have been @bfix, @ofix, @rfix, @isub and @rsub block directives since day one, so it only makes sense to add @ssub block directives and round out the family. I hope someone finds them useful, even if I have yet to.

Also possibly in the “this really should have been in SkoolKit 1.0 (or thereabouts)” department, sna2skool.py now has an -e/--end option to complement the -s/--start option it’s had since SkoolKit 1.0.4. Many’s the time I’ve wanted to disassemble just a bit of a snapshot (without a control file) instead of everything up to the end of RAM, and now I can do that by using --start and --end together. I encourage you to try it, too.

And that’s about it. For details of other changes less interesting than these, you can consult the changelog. Then get your copy of SkoolKit 4.4 and start disassembling FE21 as CP "!" like there’s no tomorrow.