.. _migrating:
Migrating from SkoolKit 4
=========================
SkoolKit 5 includes some changes that make it incompatible with SkoolKit 4. If
you have developed a disassembly using SkoolKit 4 and find that the SkoolKit
commands no longer work with your control files or skool files, or produce
broken output, look through the following sections for tips on how to migrate
your disassembly to SkoolKit 5.
D directives
------------
In SkoolKit 4, the ``D`` directive in a control file could be used to define a
block description or a mid-block comment. In SkoolKit 5, the ``D`` directive
defines block descriptions only; to define a mid-block comment, use the ``N``
directive instead.
Address ranges in control directives
------------------------------------
In SkoolKit 4, the extent of a sub-block directive in a control file could be
specified by an address range; for example::
B 40000-40009
In SkoolKit 5, address ranges are no longer supported, and this directive must
be rewritten with a length parameter::
B 40000,10
ASM directives
--------------
In SkoolKit 4, ASM directives could be declared in a control file or a skool
file by starting a line with ``; @``; for example, in a control file::
; @label:24576=START
and in a skool file (or skool file template)::
; @label=START
This syntax is no longer supported. In SkoolKit 5, ASM directives must be
declared in a control file by using the ``@`` directive::
@ 24576 label=START
and in a skool file (or skool file template) by starting a line with ``@``::
@label=START
HTML templates and CSS
----------------------
If you are using any custom :ref:`htmlTemplates` - in particular the full-page
templates or the :ref:`t_anchor` template - or custom CSS, there are some
changes to be aware of.
In SkoolKit 4:
* the default full-page templates use the XHTML 1.0 Strict DOCTYPE
* every full-page template contains its own copy of the page footer
* the ``anchor`` template uses an ```` element with a ``name`` attribute
* every ```` element that defines a hyperlink has a ``class="link"``
attribute
In SkoolKit 5:
* the default full-page templates have been converted to HTML5
* every full-page template uses the :ref:`t_footer` template to format the page
footer
* the ``anchor`` template uses a ```` element with an ``id`` attribute
* the ``class="link"`` attribute has been removed from every ```` element
that defines a hyperlink
This means that if you are using any custom full-page templates or a custom
``anchor`` template, you should ensure that they are consistent (i.e. produce
valid HTML5 or XHTML 1.0 as required when used in combination).
In addition, if you are using any custom full-page templates, you should either
replace the page footer (the ``