.. _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 ``