If you want to configure or augment an HTML disassembly, you will need one or more ref files. A ref file can be used to (for example):
A ref file must be formatted into sections separated by section names inside square brackets, like this:
[SectionName]
The contents of each section that may be found in a ref file are described below.
Each Bug:*:* section defines an entry on the ‘Bugs’ page. The section names and contents take the form:
[Bug:anchor:title]
First paragraph.
Second paragraph.
...
where:
Paragraphs should be separated by blank lines, and may contain HTML markup and skool macros.
Each Changelog:* section defines an entry on the ‘Changelog’ page. The section names and contents take the form:
[Changelog:title]
Intro text.
First top-level item.
First subitem.
Second subitem.
First subsubitem.
Second top-level item.
...
where title is the title of the entry, and the intro text and top-level items are separated by blank lines. Lower-level items are created by using indentation, as shown.
If the intro text is a single hyphen (-), it will not be included in the final HTML rendering.
The intro text and changelog items may contain HTML markup and skool macros.
New in version 2.2.5.
The Colours section contains colour definitions that will be used when creating images. Each line has the form:
name=R,G,B
where name is the colour name, and R,G,B is an RGB triplet.
Recognised colour names and their default RGB values are:
New in version 2.0.5.
The Config section contains configuration parameters in the format:
name=value
Recognised parameters are:
For information on how to create your own Python class for writing an HTML disassembly, see the documentation on extending SkoolKit.
New in version 2.0.
Changed in version 2.2.3: Added the HtmlWriterClass parameter.
Each Fact:*:* section defines an entry on the ‘Trivia’ page. The section names and contents take the form:
[Fact:anchor:title]
First paragraph.
Second paragraph.
...
where:
Paragraphs should be separated by blank lines, and may contain HTML markup and skool macros.
The Game section contains configuration parameters that control certain aspects of the HTML output. The parameters are in the format:
name=value
Recognised parameters are:
Changed in version 2.0.3: Added the GameStatusBufferIncludes parameter.
Changed in version 2.0.5: Logo defines the text/HTML for the logo instead of the path to the logo image.
Changed in version 3.1.2: Added the InputRegisterTableHeader and OutputRegisterTableHeader parameters.
Each Glossary:* section defines an entry on the ‘Glossary’ page. The section names and contents take the form:
[Glossary:term]
First paragraph.
Second paragraph.
...
where term is the term being defined in the entry.
Paragraphs should be separated by blank lines, and may contain HTML markup and skool macros.
Changed in version 3.1.3: Added support for multiple paragraphs.
Each GraphicGlitch:*:* section defines an entry on the ‘Graphic glitches’ page. The section names and contents take the form:
[GraphicGlitch:anchor:title]
First paragraph.
Second paragraph.
...
where:
Paragraphs should be separated by blank lines, and may contain HTML markup and skool macros.
The Graphics section, if present, defines the body of the ‘Other graphics’ page; it may contain HTML markup and skool macros.
New in version 2.0.5.
The ImageWriter section contains configuration parameters that control SkoolKit’s image creation library. The parameters are in the format:
name=value
Recognised parameters are:
The image-creating skool macros will create a file in the default image format if the filename is unspecified, or its suffix is omitted, or its suffix is neither .png nor .gif. For example, if DefaultFormat is png, then:
#FONT32768,26
will create an image file named font.png. To create a GIF instead (regardless of the default image format):
#FONT32768,26(font.gif)
For images that contain flashing cells, animated GIFs are recommended over animated PNGs in APNG format, because they are more widely supported in web browsers.
New in version 3.0.
Changed in version 3.0.1: Added the DefaultFormat, GIFCompression, GIFEnableAnimation, GIFTransparency, PNGAlpha and PNGEnableAnimation parameters.
The Index section contains a list of link group IDs in the order in which the link groups should appear on the disassembly index page. The link groups themselves are defined in [Index:*:*] sections (see below).
By default, SkoolKit defines the following list of link groups:
[Index]
MemoryMaps
Graphics
DataTables
OtherCode
Reference
New in version 2.0.5.
Each Index:*:* section defines a link group (a group of links on the disassembly home page). The section names and contents take the form:
[Index:groupID:text]
Page1ID
Page2ID
...
where:
The page IDs that may be used in an [Index:*:*] section are the same as the file IDs that may be used in the [Paths] section, or the IDs defined by [Page:*] sections.
By default, SkoolKit defines four link groups with the following names and contents:
[Index:MemoryMaps:Memory maps]
MemoryMap
RoutinesMap
DataMap
MessagesMap
UnusedMap
[Index:Graphics:Graphics]
Graphics
GraphicGlitches
[Index:DataTables:Data tables and buffers]
GameStatusBuffer
[Index:Reference:Reference]
Changelog
Glossary
Facts
Bugs
Pokes
New in version 2.0.5.
The Info section contains parameters that define the release and copyright information that appears in the footer of every page of the HTML disassembly. Each line has the form:
name=text
Recognised parameters are:
If the string $VERSION appears anywhere in the Created message, it is replaced by the version number of SkoolKit.
Each of these messages may contain HTML markup.
New in version 2.0.
Changed in version 2.0.3: Added the Created parameter.
Changed in version 2.2.5: Set the default value for the Created parameter.
The Links section defines the link text for the various pages in the HTML disassembly (as displayed on the disassembly index page). Each line has the form:
ID=text
where:
Recognised page IDs are:
The default link text for a page is the same as the page title (see [Titles]) except where indicated above.
If the link text starts with some text in square brackets, that text alone is used as the link text, and the remaining text is displayed alongside the hyperlink. For example:
MemoryMap=[Everything] (routines, data, text and unused addresses)
This declares that the link text for the ‘Everything’ memory map page will be ‘Everything’, and ‘(routines, data, text and unused addresses)’ will be displayed alongside it.
New in version 2.0.5.
Changed in version 2.2.5: Added the Changelog page ID.
Changed in version 2.5: Added the UnusedMap page ID.
Each MemoryMap:* section defines the properties of a memory map page. The section names take the form:
[MemoryMap:PageID]
where PageID is the unique ID of the memory map page (which should be the same as the corresponding page ID that appears in the [Paths] section).
Each MemoryMap:* section contains parameters in the form:
name=value
Recognised parameters and their default values are:
By default, SkoolKit defines five memory maps whose property values differ from the defaults as follows:
[MemoryMap:MemoryMap]
PageByteColumns=1
[MemoryMap:RoutinesMap]
EntryTypes=c
[MemoryMap:DataMap]
EntryTypes=bw
PageByteColumns=1
[MemoryMap:MessagesMap]
EntryTypes=t
[MemoryMap:UnusedMap]
EntryTypes=uz
PageByteColumns=1
New in version 2.5.
Each OtherCode:* section defines a secondary disassembly that will appear under ‘Other code’ on the main disassembly home page. The section names take the form:
[OtherCode:asm_id]
where asm_id is a unique ID for the secondary disassembly. The unique ID may be used by the #R macro when referring to routines or data blocks in the secondary disassembly from another disassembly.
Each OtherCode:* section contains parameters in the form:
name=value
The following parameters are required:
The following parameters are optional:
New in version 2.0.
Changed in version 2.2.5: Added the IndexPageId and Link parameters.
Each Page:* section is used to either declare a page that already exists, or define a custom page in the HTML disassembly (in conjunction with a corresponding [PageContent:*] section). The section names take the form:
[Page:PageId]
where PageId is a unique ID for the page. The unique ID may be used in an [Index:*:*] section to create a link to the page in the disassembly index.
Each Page:* section contains parameters in the form:
name=value
One of the following two parameters is required:
The following parameters are optional:
New in version 2.1.
Each PageContent:* section contains the HTML source of the body of a custom page defined in a [Page:*] section. The section names take the form:
[PageContent:PageId]
where PageId is the unique ID of the page (as previously declared in the name of the corresponding [Page:*] section).
The HTML source may contain skool macros.
New in version 2.1.
The Paths section defines the locations of the files and directories in the HTML disassembly. Each line has the form:
ID=path
where:
Recognised file IDs and their default paths are:
Recognised directory IDs and their default paths are:
New in version 2.0.
Changed in version 2.0.5: Added the FontImagePath directory ID.
Changed in version 2.1.1: Added the CodePath directory ID.
Changed in version 2.2.5: Added the Changelog file ID.
Changed in version 2.5: Added the UnusedMap file ID, and support for declaring multiple JavaScript files and CSS files in the JavaScript and StyleSheet parameters.
Changed in version 3.1.1: Added the Font file ID and the FontPath directory ID.
Each Poke:*:* section defines an entry on the ‘Pokes’ page. The section names and contents take the form:
[Poke:anchor:title]
First paragraph.
Second paragraph.
...
where:
Paragraphs should be separated by blank lines, and may contain HTML markup and skool macros.
The Titles section defines the titles of the various pages in the HTML disassembly. Each line has the form:
ID=title
where:
Recognised page IDs and their default titles are:
New in version 2.0.5.
Changed in version 2.2.5: Added the Changelog page ID.
Changed in version 2.5: Added the UnusedMap page ID.