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