shithub: rgbds

Download patch

ref: 210a4a957aebd605d8f79e39d1e6e5079c8c5cc9
parent: 131ad9b315960d46cc5b0cb9d1c6f052de11f26a
author: ISSOtm <eldredhabert0@gmail.com>
date: Tue Sep 15 14:39:22 EDT 2020

Get rid of in-repo HTML documentation

The online documentation is now managed by a CI hook

diff: cannot open a/docs//null: file does not exist: 'a/docs//null'
--- /dev/null
+++ b/.github/actions/doc_postproc.awk
@@ -1,0 +1,48 @@
+#!/usr/bin/awk -f
+
+/^\s+<td><b class="Sy">.+<\/b><\/td>$/ {
+	# Assuming that all cells whose contents are bold are heading cells,
+	# use the HTML tag for those
+	sub(/td><b class="Sy"/, "th");
+	sub(/b><\/td/, "th");
+}
+
+BEGIN {
+	in_synopsis = 0
+}
+/<table class="Nm">/ {
+	in_synopsis = 1
+}
+/<\/table>/ {
+	# Resets synopsis state even when already reset, but whatever
+	in_synopsis = 0
+}
+/<code class="Fl">-[a-zA-Z]/ {
+	# Add links to arg descr in synopsis section
+	if (in_synopsis) {
+		while (match($0, /<code class="Fl">-[a-zA-Z]+/)) {
+			#         123456789012345678 -> 18 chars
+			optchars = substr($0, RSTART + 18, RLENGTH - 18)
+			i = length(optchars)
+			while (i) {
+				end = RSTART + 18 + i
+				i -= 1
+				len = i ? 1 : 2
+				$0 = sprintf("%s<a href=\"#%s\">%s</a>%s",
+				             substr($0, 0, end - len - 1),
+				             substr($0, end - 1, 1),
+				             substr($0, end - len, len),
+				             substr($0, end))
+			}
+		}
+	}
+}
+
+{
+	# Make long opts (defined using `Fl Fl`) into a single tag
+	gsub(/<code class="Fl">-<\/code>\s*<code class="Fl">/, "<code class=\"Fl\">-")
+}
+
+{
+	print
+}
--- a/.github/actions/get-pages.sh
+++ b/.github/actions/get-pages.sh
@@ -77,7 +77,7 @@
 	if [ $stem = rgbasm.5 ]; then
 		options+=,toc
 	fi
-	mandoc -Thtml -I os=Linux -O$options "${PAGES[$page]##*/}" | src/doc_postproc.awk >> "$1/$2/$page"
+	mandoc -Thtml -I os=Linux -O$options "${PAGES[$page]##*/}" | .github/actions/doc_postproc.awk >> "$1/$2/$page"
 	if [ $update_redirects -ne 0 ]; then
 		cat - >"$1/$page" <<EOF
 ---
--- a/Makefile
+++ b/Makefile
@@ -128,8 +128,7 @@
 .c.o:
 	$Q${CC} ${REALCFLAGS} ${PNGCFLAGS} -c -o $@ $<
 
-# Target used to remove all files generated by other Makefile targets, except
-# for the html documentation.
+# Target used to remove all files generated by other Makefile targets
 
 clean:
 	$Q${RM} rgbasm rgbasm.exe
@@ -140,15 +139,6 @@
 	$Q${RM} rgbshim.sh
 	$Q${RM} src/asm/asmy.c src/asm/asmy.h
 
-# Target used to remove all html files generated by the wwwman target
-
-cleanwwwman:
-	$Q${RM} docs/rgbds.7.html docs/gbz80.7.html docs/rgbds.5.html
-	$Q${RM} docs/rgbasm.1.html docs/rgbasm.5.html
-	$Q${RM} docs/rgblink.1.html docs/rgblink.5.html
-	$Q${RM} docs/rgbfix.1.html
-	$Q${RM} docs/rgbgfx.1.html
-
 # Target used to install the binaries and man pages.
 
 install: all
@@ -191,22 +181,6 @@
 		git format-patch --stdout "$$commit~..$$commit"		\
 			| ${CHECKPATCH} - || true;			\
 	done
-
-# Target for the project maintainer to easily create web manuals.
-# It relies on mandoc: http://mdocml.bsd.lv
-
-MANDOC	:= -Thtml -Ios=General -Oman=%N.%S.html -Ostyle=mandoc.css
-
-wwwman:
-	$Qmandoc ${MANDOC} src/rgbds.7 | src/doc_postproc.awk > docs/rgbds.7.html
-	$Qmandoc ${MANDOC} src/gbz80.7 | src/doc_postproc.awk > docs/gbz80.7.html
-	$Qmandoc ${MANDOC} src/rgbds.5 | src/doc_postproc.awk > docs/rgbds.5.html
-	$Qmandoc ${MANDOC} src/asm/rgbasm.1 | src/doc_postproc.awk > docs/rgbasm.1.html
-	$Qmandoc ${MANDOC} src/asm/rgbasm.5 | src/doc_postproc.awk > docs/rgbasm.5.html
-	$Qmandoc ${MANDOC} src/fix/rgbfix.1 | src/doc_postproc.awk > docs/rgbfix.1.html
-	$Qmandoc ${MANDOC} src/link/rgblink.1 | src/doc_postproc.awk > docs/rgblink.1.html
-	$Qmandoc ${MANDOC} src/link/rgblink.5 | src/doc_postproc.awk > docs/rgblink.5.html
-	$Qmandoc ${MANDOC} src/gfx/rgbgfx.1 | src/doc_postproc.awk > docs/rgbgfx.1.html
 
 # This target is used during development in order to prevent adding new issues
 # to the source code. All warnings are treated as errors in order to block the
--- a/docs/gbz80.7.html
+++ /dev/null
@@ -1,1670 +1,0 @@
-<!DOCTYPE html>
-<html>
-<!-- This is an automatically generated file.  Do not edit.
-   This file is part of RGBDS.
-  
-   Copyright (c) 2017-2018, Antonio Nino Diaz and RGBDS contributors.
-  
-   SPDX-License-Identifier: MIT
-   -->
-<head>
-  <meta name="viewport" content="width=device-width, initial-scale=1">
-  <meta charset="utf-8"/>
-  <link rel="stylesheet" href="mandoc.css" type="text/css" media="all"/>
-  <link rel="stylesheet" href="rgbds.css" type="text/css" media="all"/>
-  <title>GBZ80(7)</title>
-</head>
-<body>
-<table class="head">
-  <tr>
-    <td class="head-ltitle">GBZ80(7)</td>
-    <td class="head-vol">Miscellaneous Information Manual</td>
-    <td class="head-rtitle">GBZ80(7)</td>
-  </tr>
-</table>
-<div class="manual-text">
-<section class="Sh">
-<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
-<code class="Nm">gbz80</code> &#x2014;
-<span class="Nd">CPU opcode reference</span>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
-This is the list of opcodes supported by <a class="Xr" href="rgbasm.1.html">rgbasm(1)</a>, including
-  a short description, the number of bytes needed to encode them and the number
-  of CPU cycles at 1MHz (or 2MHz in GBC dual speed mode) needed to complete
-  them.
-<p class="Pp">Note: All arithmetic/logic operations that use register
-    <b class="Sy">A</b> as destination can omit the destination as it is assumed
-    to be register <b class="Sy">A</b> by default. The following two lines have
-    the same effect:</p>
-<div class="Bd Pp Bd-indent">
-<pre>
-OR A,B
-OR B
-</pre>
-</div>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="LEGEND"><a class="permalink" href="#LEGEND">LEGEND</a></h1>
-List of abbreviations used in this document.
-<dl class="Bl-tag">
-  <dt><var class="Ar">r8</var></dt>
-  <dd>Any of the 8-bit registers (<b class="Sy">A</b>, <b class="Sy">B</b>,
-      <b class="Sy">C</b>, <b class="Sy">D</b>, <b class="Sy">E</b>,
-      <b class="Sy">H</b>, <b class="Sy">L</b>).</dd>
-  <dt><var class="Ar">r16</var></dt>
-  <dd>Any of the general-purpose 16-bit registers (<b class="Sy">BC</b>,
-      <b class="Sy">DE</b>, <b class="Sy">HL</b>).</dd>
-  <dt><var class="Ar">n8</var></dt>
-  <dd>8-bit integer constant.</dd>
-  <dt><var class="Ar">n16</var></dt>
-  <dd>16-bit integer constant.</dd>
-  <dt><var class="Ar">e8</var></dt>
-  <dd>8-bit offset (<b class="Sy">-128</b> to <b class="Sy">127</b>).</dd>
-  <dt><var class="Ar">u3</var></dt>
-  <dd>3-bit unsigned integer constant (<b class="Sy">0</b> to
-      <b class="Sy">7</b>).</dd>
-  <dt><var class="Ar">cc</var></dt>
-  <dd>Condition codes:
-    <dl class="Bl-tag Bl-compact">
-      <dt><b class="Sy">Z</b></dt>
-      <dd>Execute if Z is set.</dd>
-      <dt><b class="Sy">NZ</b></dt>
-      <dd>Execute if Z is not set.</dd>
-      <dt><b class="Sy">C</b></dt>
-      <dd>Execute if C is set.</dd>
-      <dt><b class="Sy">NC</b></dt>
-      <dd>Execute if C is not set.</dd>
-    </dl>
-  </dd>
-  <dt><var class="Ar">vec</var></dt>
-  <dd>One of the <b class="Sy">RST</b> vectors (<b class="Sy">0x00</b>,
-      <b class="Sy">0x08</b>, <b class="Sy">0x10</b>, <b class="Sy">0x18</b>,
-      <b class="Sy">0x20</b>, <b class="Sy">0x28</b>, <b class="Sy">0x30</b> and
-      <b class="Sy">0x38</b>).</dd>
-</dl>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="INSTRUCTION_OVERVIEW"><a class="permalink" href="#INSTRUCTION_OVERVIEW">INSTRUCTION
-  OVERVIEW</a></h1>
-<section class="Ss">
-<h2 class="Ss" id="8-bit_Arithmetic_and_Logic_Instructions"><a class="permalink" href="#8-bit_Arithmetic_and_Logic_Instructions">8-bit
-  Arithmetic and Logic Instructions</a></h2>
-<dl class="Bl-inset Bl-compact">
-  <dt><a class="Sx" href="#ADC_A,r8">ADC A,r8</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#ADC_A,_HL_">ADC A,[HL]</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#ADC_A,n8">ADC A,n8</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#ADD_A,r8">ADD A,r8</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#ADD_A,_HL_">ADD A,[HL]</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#ADD_A,n8">ADD A,n8</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#AND_A,r8">AND A,r8</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#AND_A,_HL_">AND A,[HL]</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#AND_A,n8">AND A,n8</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#CP_A,r8">CP A,r8</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#CP_A,_HL_">CP A,[HL]</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#CP_A,n8">CP A,n8</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#DEC_r8">DEC r8</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#DEC__HL_">DEC [HL]</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#INC_r8">INC r8</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#INC__HL_">INC [HL]</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#OR_A,r8">OR A,r8</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#OR_A,_HL_">OR A,[HL]</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#OR_A,n8">OR A,n8</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#SBC_A,r8">SBC A,r8</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#SBC_A,_HL_">SBC A,[HL]</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#SBC_A,n8">SBC A,n8</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#SUB_A,r8">SUB A,r8</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#SUB_A,_HL_">SUB A,[HL]</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#SUB_A,n8">SUB A,n8</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#XOR_A,r8">XOR A,r8</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#XOR_A,_HL_">XOR A,[HL]</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#XOR_A,n8">XOR A,n8</a></dt>
-  <dd></dd>
-</dl>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="16-bit_Arithmetic_Instructions"><a class="permalink" href="#16-bit_Arithmetic_Instructions">16-bit
-  Arithmetic Instructions</a></h2>
-<dl class="Bl-inset Bl-compact">
-  <dt><a class="Sx" href="#ADD_HL,r16">ADD HL,r16</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#DEC_r16">DEC r16</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#INC_r16">INC r16</a></dt>
-  <dd></dd>
-</dl>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="Bit_Operations_Instructions"><a class="permalink" href="#Bit_Operations_Instructions">Bit
-  Operations Instructions</a></h2>
-<dl class="Bl-inset Bl-compact">
-  <dt><a class="Sx" href="#BIT_u3,r8">BIT u3,r8</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#BIT_u3,_HL_">BIT u3,[HL]</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#RES_u3,r8">RES u3,r8</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#RES_u3,_HL_">RES u3,[HL]</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#SET_u3,r8">SET u3,r8</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#SET_u3,_HL_">SET u3,[HL]</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#SWAP_r8">SWAP r8</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#SWAP__HL_">SWAP [HL]</a></dt>
-  <dd></dd>
-</dl>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="Bit_Shift_Instructions"><a class="permalink" href="#Bit_Shift_Instructions">Bit
-  Shift Instructions</a></h2>
-<dl class="Bl-inset Bl-compact">
-  <dt><a class="Sx" href="#RL_r8">RL r8</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#RL__HL_">RL [HL]</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#RLA">RLA</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#RLC_r8">RLC r8</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#RLC__HL_">RLC [HL]</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#RLCA">RLCA</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#RR_r8">RR r8</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#RR__HL_">RR [HL]</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#RRA">RRA</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#RRC_r8">RRC r8</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#RRC__HL_">RRC [HL]</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#RRCA">RRCA</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#SLA_r8">SLA r8</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#SLA__HL_">SLA [HL]</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#SRA_r8">SRA r8</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#SRA__HL_">SRA [HL]</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#SRL_r8">SRL r8</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#SRL__HL_">SRL [HL]</a></dt>
-  <dd></dd>
-</dl>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="Load_Instructions"><a class="permalink" href="#Load_Instructions">Load
-  Instructions</a></h2>
-<dl class="Bl-inset Bl-compact">
-  <dt><a class="Sx" href="#LD_r8,r8">LD r8,r8</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#LD_r8,n8">LD r8,n8</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#LD_r16,n16">LD r16,n16</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#LD__HL_,r8">LD [HL],r8</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#LD__HL_,n8">LD [HL],n8</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#LD_r8,_HL_">LD r8,[HL]</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#LD__r16_,A">LD [r16],A</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#LD__n16_,A">LD [n16],A</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#LDH__n16_,A">LDH [n16],A</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#LDH__C_,A">LDH [C],A</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#LD_A,_r16_">LD A,[r16]</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#LD_A,_n16_">LD A,[n16]</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#LDH_A,_n16_">LDH A,[n16]</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#LDH_A,_C_">LDH A,[C]</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#LD__HLI_,A">LD [HLI],A</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#LD__HLD_,A">LD [HLD],A</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#LD_A,_HLI_">LD A,[HLI]</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#LD_A,_HLD_">LD A,[HLD]</a></dt>
-  <dd></dd>
-</dl>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="Jumps_and_Subroutines"><a class="permalink" href="#Jumps_and_Subroutines">Jumps
-  and Subroutines</a></h2>
-<dl class="Bl-inset Bl-compact">
-  <dt><a class="Sx" href="#CALL_n16">CALL n16</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#CALL_cc,n16">CALL cc,n16</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#JP_HL">JP HL</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#JP_n16">JP n16</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#JP_cc,n16">JP cc,n16</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#JR_e8">JR e8</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#JR_cc,e8">JR cc,e8</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#RET_cc">RET cc</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#RET">RET</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#RETI">RETI</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#RST_vec">RST vec</a></dt>
-  <dd></dd>
-</dl>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="Stack_Operations_Instructions"><a class="permalink" href="#Stack_Operations_Instructions">Stack
-  Operations Instructions</a></h2>
-<dl class="Bl-inset Bl-compact">
-  <dt><a class="Sx" href="#ADD_HL,SP">ADD HL,SP</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#ADD_SP,e8">ADD SP,e8</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#DEC_SP">DEC SP</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#INC_SP">INC SP</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#LD_SP,n16">LD SP,n16</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#LD__n16_,SP">LD [n16],SP</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#LD_HL,SP+e8">LD HL,SP+e8</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#LD_SP,HL">LD SP,HL</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#POP_AF">POP AF</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#POP_r16">POP r16</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#PUSH_AF">PUSH AF</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#PUSH_r16">PUSH r16</a></dt>
-  <dd></dd>
-</dl>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="Miscellaneous_Instructions"><a class="permalink" href="#Miscellaneous_Instructions">Miscellaneous
-  Instructions</a></h2>
-<dl class="Bl-inset Bl-compact">
-  <dt><a class="Sx" href="#CCF">CCF</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#CPL">CPL</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#DAA">DAA</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#DI">DI</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#EI">EI</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#HALT">HALT</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#NOP">NOP</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#SCF">SCF</a></dt>
-  <dd></dd>
-  <dt><a class="Sx" href="#STOP">STOP</a></dt>
-  <dd></dd>
-</dl>
-</section>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="INSTRUCTION_REFERENCE"><a class="permalink" href="#INSTRUCTION_REFERENCE">INSTRUCTION
-  REFERENCE</a></h1>
-<section class="Ss">
-<h2 class="Ss" id="ADC_A,r8"><a class="permalink" href="#ADC_A,r8">ADC
-  A,r8</a></h2>
-Add the value in <var class="Ar">r8</var> plus the carry flag to
-  <b class="Sy">A</b>.
-<p class="Pp">Cycles: 1</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags:</p>
-<dl class="Bl-hang Bl-compact">
-  <dt><b class="Sy">Z</b></dt>
-  <dd>Set if result is 0.</dd>
-  <dt><b class="Sy">N</b></dt>
-  <dd>0</dd>
-  <dt><b class="Sy">H</b></dt>
-  <dd>Set if overflow from bit 3.</dd>
-  <dt><b class="Sy">C</b></dt>
-  <dd>Set if overflow from bit 7.</dd>
-</dl>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="ADC_A,_HL_"><a class="permalink" href="#ADC_A,_HL_">ADC
-  A,[HL]</a></h2>
-Add the byte pointed to by <b class="Sy">HL</b> plus the carry flag to
-  <b class="Sy">A</b>.
-<p class="Pp">Cycles: 2</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags: See <a class="Sx" href="#ADC_A,r8">ADC A,r8</a></p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="ADC_A,n8"><a class="permalink" href="#ADC_A,n8">ADC
-  A,n8</a></h2>
-Add the value <var class="Ar">n8</var> plus the carry flag to
-  <b class="Sy">A</b>.
-<p class="Pp">Cycles: 2</p>
-<p class="Pp">Bytes: 2</p>
-<p class="Pp">Flags: See <a class="Sx" href="#ADC_A,r8">ADC A,r8</a></p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="ADD_A,r8"><a class="permalink" href="#ADD_A,r8">ADD
-  A,r8</a></h2>
-Add the value in <var class="Ar">r8</var> to <b class="Sy">A</b>.
-<p class="Pp">Cycles: 1</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags:</p>
-<dl class="Bl-hang Bl-compact">
-  <dt><b class="Sy">Z</b></dt>
-  <dd>Set if result is 0.</dd>
-  <dt><b class="Sy">N</b></dt>
-  <dd>0</dd>
-  <dt><b class="Sy">H</b></dt>
-  <dd>Set if overflow from bit 3.</dd>
-  <dt><b class="Sy">C</b></dt>
-  <dd>Set if overflow from bit 7.</dd>
-</dl>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="ADD_A,_HL_"><a class="permalink" href="#ADD_A,_HL_">ADD
-  A,[HL]</a></h2>
-Add the byte pointed to by <b class="Sy">HL</b> to <b class="Sy">A</b>.
-<p class="Pp">Cycles: 2</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags: See <a class="Sx" href="#ADD_A,r8">ADD A,r8</a></p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="ADD_A,n8"><a class="permalink" href="#ADD_A,n8">ADD
-  A,n8</a></h2>
-Add the value <var class="Ar">n8</var> to <b class="Sy">A</b>.
-<p class="Pp">Cycles: 2</p>
-<p class="Pp">Bytes: 2</p>
-<p class="Pp">Flags: See <a class="Sx" href="#ADD_A,r8">ADD A,r8</a></p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="ADD_HL,r16"><a class="permalink" href="#ADD_HL,r16">ADD
-  HL,r16</a></h2>
-Add the value in <var class="Ar">r16</var> to <b class="Sy">HL</b>.
-<p class="Pp">Cycles: 2</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags:</p>
-<dl class="Bl-hang Bl-compact">
-  <dt><b class="Sy">N</b></dt>
-  <dd>0</dd>
-  <dt><b class="Sy">H</b></dt>
-  <dd>Set if overflow from bit 11.</dd>
-  <dt><b class="Sy">C</b></dt>
-  <dd>Set if overflow from bit 15.</dd>
-</dl>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="ADD_HL,SP"><a class="permalink" href="#ADD_HL,SP">ADD
-  HL,SP</a></h2>
-Add the value in <b class="Sy">SP</b> to <b class="Sy">HL</b>.
-<p class="Pp">Cycles: 2</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags: See <a class="Sx" href="#ADD_HL,r16">ADD HL,r16</a></p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="ADD_SP,e8"><a class="permalink" href="#ADD_SP,e8">ADD
-  SP,e8</a></h2>
-Add the signed value <var class="Ar">e8</var> to <b class="Sy">SP</b>.
-<p class="Pp">Cycles: 4</p>
-<p class="Pp">Bytes: 2</p>
-<p class="Pp">Flags:</p>
-<dl class="Bl-hang Bl-compact">
-  <dt><b class="Sy">Z</b></dt>
-  <dd>0</dd>
-  <dt><b class="Sy">N</b></dt>
-  <dd>0</dd>
-  <dt><b class="Sy">H</b></dt>
-  <dd>Set if overflow from bit 3.</dd>
-  <dt><b class="Sy">C</b></dt>
-  <dd>Set if overflow from bit 7.</dd>
-</dl>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="AND_A,r8"><a class="permalink" href="#AND_A,r8">AND
-  A,r8</a></h2>
-Bitwise AND between the value in <var class="Ar">r8</var> and
-  <b class="Sy">A</b>.
-<p class="Pp">Cycles: 1</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags:</p>
-<dl class="Bl-hang Bl-compact">
-  <dt><b class="Sy">Z</b></dt>
-  <dd>Set if result is 0.</dd>
-  <dt><b class="Sy">N</b></dt>
-  <dd>0</dd>
-  <dt><b class="Sy">H</b></dt>
-  <dd>1</dd>
-  <dt><b class="Sy">C</b></dt>
-  <dd>0</dd>
-</dl>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="AND_A,_HL_"><a class="permalink" href="#AND_A,_HL_">AND
-  A,[HL]</a></h2>
-Bitwise AND between the byte pointed to by <b class="Sy">HL</b> and
-  <b class="Sy">A</b>.
-<p class="Pp">Cycles: 2</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags: See <a class="Sx" href="#AND_A,r8">AND A,r8</a></p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="AND_A,n8"><a class="permalink" href="#AND_A,n8">AND
-  A,n8</a></h2>
-Bitwise AND between the value in <var class="Ar">n8</var> and
-  <b class="Sy">A</b>.
-<p class="Pp">Cycles: 2</p>
-<p class="Pp">Bytes: 2</p>
-<p class="Pp">Flags: See <a class="Sx" href="#AND_A,r8">AND A,r8</a></p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="BIT_u3,r8"><a class="permalink" href="#BIT_u3,r8">BIT
-  u3,r8</a></h2>
-Test bit <var class="Ar">u3</var> in register <var class="Ar">r8</var>, set the
-  zero flag if bit not set.
-<p class="Pp">Cycles: 2</p>
-<p class="Pp">Bytes: 2</p>
-<p class="Pp">Flags:</p>
-<dl class="Bl-hang Bl-compact">
-  <dt><b class="Sy">Z</b></dt>
-  <dd>Set if the selected bit is 0.</dd>
-  <dt><b class="Sy">N</b></dt>
-  <dd>0</dd>
-  <dt><b class="Sy">H</b></dt>
-  <dd>1</dd>
-</dl>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="BIT_u3,_HL_"><a class="permalink" href="#BIT_u3,_HL_">BIT
-  u3,[HL]</a></h2>
-Test bit <var class="Ar">u3</var> in the byte pointed by <b class="Sy">HL</b>,
-  set the zero flag if bit not set.
-<p class="Pp">Cycles: 3</p>
-<p class="Pp">Bytes: 2</p>
-<p class="Pp">Flags: See <a class="Sx" href="#BIT_u3,r8">BIT u3,r8</a></p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="CALL_n16"><a class="permalink" href="#CALL_n16">CALL
-  n16</a></h2>
-Call address <var class="Ar">n16</var>. This pushes the address of the
-  instruction after the <b class="Sy">CALL</b> on the stack, such that
-  <a class="Sx" href="#RET">RET</a> can pop it later; then, it executes an
-  implicit <a class="Sx" href="#JP_n16">JP n16</a>.
-<p class="Pp">Cycles: 6</p>
-<p class="Pp">Bytes: 3</p>
-<p class="Pp">Flags: None affected.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="CALL_cc,n16"><a class="permalink" href="#CALL_cc,n16">CALL
-  cc,n16</a></h2>
-Call address <var class="Ar">n16</var> if condition <var class="Ar">cc</var> is
-  met.
-<p class="Pp">Cycles: 6 taken / 3 untaken</p>
-<p class="Pp">Bytes: 3</p>
-<p class="Pp">Flags: None affected.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="CCF"><a class="permalink" href="#CCF">CCF</a></h2>
-Complement Carry Flag.
-<p class="Pp">Cycles: 1</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags:</p>
-<dl class="Bl-hang Bl-compact">
-  <dt><b class="Sy">N</b></dt>
-  <dd>0</dd>
-  <dt><b class="Sy">H</b></dt>
-  <dd>0</dd>
-  <dt><b class="Sy">C</b></dt>
-  <dd>Inverted.</dd>
-</dl>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="CP_A,r8"><a class="permalink" href="#CP_A,r8">CP
-  A,r8</a></h2>
-Subtract the value in <var class="Ar">r8</var> from <b class="Sy">A</b> and set
-  flags accordingly, but don't store the result. This is useful for ComParing
-  values.
-<p class="Pp">Cycles: 1</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags:</p>
-<dl class="Bl-hang Bl-compact">
-  <dt><b class="Sy">Z</b></dt>
-  <dd>Set if result is 0.</dd>
-  <dt><b class="Sy">N</b></dt>
-  <dd>1</dd>
-  <dt><b class="Sy">H</b></dt>
-  <dd>Set if borrow from bit 4.</dd>
-  <dt><b class="Sy">C</b></dt>
-  <dd>Set if borrow (i.e. if <var class="Ar">r8</var> &gt;
-    <b class="Sy">A</b>).</dd>
-</dl>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="CP_A,_HL_"><a class="permalink" href="#CP_A,_HL_">CP
-  A,[HL]</a></h2>
-Subtract the byte pointed to by <b class="Sy">HL</b> from <b class="Sy">A</b>
-  and set flags accordingly, but don't store the result.
-<p class="Pp">Cycles: 2</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags: See <a class="Sx" href="#CP_A,r8">CP A,r8</a></p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="CP_A,n8"><a class="permalink" href="#CP_A,n8">CP
-  A,n8</a></h2>
-Subtract the value <var class="Ar">n8</var> from <b class="Sy">A</b> and set
-  flags accordingly, but don't store the result.
-<p class="Pp">Cycles: 2</p>
-<p class="Pp">Bytes: 2</p>
-<p class="Pp">Flags: See <a class="Sx" href="#CP_A,r8">CP A,r8</a></p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="CPL"><a class="permalink" href="#CPL">CPL</a></h2>
-ComPLement accumulator (<b class="Sy">A</b> = <b class="Sy">~A</b>).
-<p class="Pp">Cycles: 1</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags:</p>
-<dl class="Bl-hang Bl-compact">
-  <dt><b class="Sy">N</b></dt>
-  <dd>1</dd>
-  <dt><b class="Sy">H</b></dt>
-  <dd>1</dd>
-</dl>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="DAA"><a class="permalink" href="#DAA">DAA</a></h2>
-Decimal Adjust Accumulator to get a correct BCD representation after an
-  arithmetic instruction.
-<p class="Pp">Cycles: 1</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags:</p>
-<dl class="Bl-hang Bl-compact">
-  <dt><b class="Sy">Z</b></dt>
-  <dd>Set if result is 0.</dd>
-  <dt><b class="Sy">H</b></dt>
-  <dd>0</dd>
-  <dt><b class="Sy">C</b></dt>
-  <dd>Set or reset depending on the operation.</dd>
-</dl>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="DEC_r8"><a class="permalink" href="#DEC_r8">DEC r8</a></h2>
-Decrement value in register <var class="Ar">r8</var> by 1.
-<p class="Pp">Cycles: 1</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags:</p>
-<dl class="Bl-hang Bl-compact">
-  <dt><b class="Sy">Z</b></dt>
-  <dd>Set if result is 0.</dd>
-  <dt><b class="Sy">N</b></dt>
-  <dd>1</dd>
-  <dt><b class="Sy">H</b></dt>
-  <dd>Set if borrow from bit 4.</dd>
-</dl>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="DEC__HL_"><a class="permalink" href="#DEC__HL_">DEC
-  [HL]</a></h2>
-Decrement the byte pointed to by <b class="Sy">HL</b> by 1.
-<p class="Pp">Cycles: 3</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags: See <a class="Sx" href="#DEC_r8">DEC r8</a></p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="DEC_r16"><a class="permalink" href="#DEC_r16">DEC
-  r16</a></h2>
-Decrement value in register <var class="Ar">r16</var> by 1.
-<p class="Pp">Cycles: 2</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags: None affected.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="DEC_SP"><a class="permalink" href="#DEC_SP">DEC SP</a></h2>
-Decrement value in register <b class="Sy">SP</b> by 1.
-<p class="Pp">Cycles: 2</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags: None affected.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="DI"><a class="permalink" href="#DI">DI</a></h2>
-Disable Interrupts by clearing the <b class="Sy">IME</b> flag.
-<p class="Pp">Cycles: 1</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags: None affected.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="EI"><a class="permalink" href="#EI">EI</a></h2>
-Enable Interrupts by setting the <b class="Sy">IME</b> flag. The flag is only
-  set <i class="Em">after</i> the instruction following <b class="Sy">EI</b>.
-<p class="Pp">Cycles: 1</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags: None affected.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="HALT"><a class="permalink" href="#HALT">HALT</a></h2>
-Enter CPU low-power consumption mode until an interrupt occurs. The exact
-  behavior of this instruction depends on the state of the <b class="Sy">IME</b>
-  flag.
-<dl class="Bl-tag">
-  <dt><b class="Sy">IME</b> <span class="No">set</span></dt>
-  <dd>The CPU enters low-power mode until <i class="Em">after</i> an interrupt
-      is about to be serviced. The handler is executed normally, and the CPU
-      resumes execution after the <code class="Ic">HALT</code> when that
-      returns.</dd>
-  <dt><b class="Sy">IME</b> <span class="No">not set</span></dt>
-  <dd>The behavior depends on whether an interrupt is pending (i.e.
-      &#x2018;<code class="Li">[IE] &amp; [IF]</code>&#x2019; is non-zero).
-    <dl class="Bl-tag">
-      <dt>None pending</dt>
-      <dd>As soon as an interrupt becomes pending, the CPU resumes execution.
-          This is like the above, except that the handler is
-          <i class="Em">not</i> called.</dd>
-      <dt>Some pending</dt>
-      <dd>The CPU continues execution after the <code class="Ic">HALT</code>,
-          but the byte after it is read twice in a row (<b class="Sy">PC</b> is
-          not incremented, due to a hardware bug).</dd>
-    </dl>
-  </dd>
-</dl>
-<p class="Pp">Cycles: -</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags: None affected.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="INC_r8"><a class="permalink" href="#INC_r8">INC r8</a></h2>
-Increment value in register <var class="Ar">r8</var> by 1.
-<p class="Pp">Cycles: 1</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags:</p>
-<dl class="Bl-hang Bl-compact">
-  <dt><b class="Sy">Z</b></dt>
-  <dd>Set if result is 0.</dd>
-  <dt><b class="Sy">N</b></dt>
-  <dd>0</dd>
-  <dt><b class="Sy">H</b></dt>
-  <dd>Set if overflow from bit 3.</dd>
-</dl>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="INC__HL_"><a class="permalink" href="#INC__HL_">INC
-  [HL]</a></h2>
-Increment the byte pointed to by <b class="Sy">HL</b> by 1.
-<p class="Pp">Cycles: 3</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags: See <a class="Sx" href="#INC_r8">INC r8</a></p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="INC_r16"><a class="permalink" href="#INC_r16">INC
-  r16</a></h2>
-Increment value in register <var class="Ar">r16</var> by 1.
-<p class="Pp">Cycles: 2</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags: None affected.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="INC_SP"><a class="permalink" href="#INC_SP">INC SP</a></h2>
-Increment value in register <b class="Sy">SP</b> by 1.
-<p class="Pp">Cycles: 2</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags: None affected.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="JP_n16"><a class="permalink" href="#JP_n16">JP n16</a></h2>
-Jump to address <var class="Ar">n16</var>; effectively, store
-  <var class="Ar">n16</var> into <b class="Sy">PC</b>.
-<p class="Pp">Cycles: 4</p>
-<p class="Pp">Bytes: 3</p>
-<p class="Pp">Flags: None affected.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="JP_cc,n16"><a class="permalink" href="#JP_cc,n16">JP
-  cc,n16</a></h2>
-Jump to address <var class="Ar">n16</var> if condition <var class="Ar">cc</var>
-  is met.
-<p class="Pp">Cycles: 4 taken / 3 untaken</p>
-<p class="Pp">Bytes: 3</p>
-<p class="Pp">Flags: None affected.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="JP_HL"><a class="permalink" href="#JP_HL">JP HL</a></h2>
-Jump to address in <b class="Sy">HL</b>; effectively, load <b class="Sy">PC</b>
-  with value in register <b class="Sy">HL</b>.
-<p class="Pp">Cycles: 1</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags: None affected.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="JR_e8"><a class="permalink" href="#JR_e8">JR e8</a></h2>
-Relative Jump by adding <var class="Ar">e8</var> to the address of the
-  instruction following the <b class="Sy">JR</b>. To clarify, an operand of 0 is
-  equivalent to no jumping.
-<p class="Pp">Cycles: 3</p>
-<p class="Pp">Bytes: 2</p>
-<p class="Pp">Flags: None affected.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="JR_cc,e8"><a class="permalink" href="#JR_cc,e8">JR
-  cc,e8</a></h2>
-Relative Jump by adding <var class="Ar">e8</var> to the current address if
-  condition <var class="Ar">cc</var> is met.
-<p class="Pp">Cycles: 3 taken / 2 untaken</p>
-<p class="Pp">Bytes: 2</p>
-<p class="Pp">Flags: None affected.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="LD_r8,r8"><a class="permalink" href="#LD_r8,r8">LD
-  r8,r8</a></h2>
-Load (copy) value in register on the right into register on the left.
-<p class="Pp">Cycles: 1</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags: None affected.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="LD_r8,n8"><a class="permalink" href="#LD_r8,n8">LD
-  r8,n8</a></h2>
-Load value <var class="Ar">n8</var> into register <var class="Ar">r8</var>.
-<p class="Pp">Cycles: 2</p>
-<p class="Pp">Bytes: 2</p>
-<p class="Pp">Flags: None affected.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="LD_r16,n16"><a class="permalink" href="#LD_r16,n16">LD
-  r16,n16</a></h2>
-Load value <var class="Ar">n16</var> into register <var class="Ar">r16</var>.
-<p class="Pp">Cycles: 3</p>
-<p class="Pp">Bytes: 3</p>
-<p class="Pp">Flags: None affected.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="LD__HL_,r8"><a class="permalink" href="#LD__HL_,r8">LD
-  [HL],r8</a></h2>
-Store value in register <var class="Ar">r8</var> into byte pointed to by
-  register <b class="Sy">HL</b>.
-<p class="Pp">Cycles: 2</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags: None affected.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="LD__HL_,n8"><a class="permalink" href="#LD__HL_,n8">LD
-  [HL],n8</a></h2>
-Store value <var class="Ar">n8</var> into byte pointed to by register
-  <b class="Sy">HL</b>.
-<p class="Pp">Cycles: 3</p>
-<p class="Pp">Bytes: 2</p>
-<p class="Pp">Flags: None affected.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="LD_r8,_HL_"><a class="permalink" href="#LD_r8,_HL_">LD
-  r8,[HL]</a></h2>
-Load value into register <var class="Ar">r8</var> from byte pointed to by
-  register <b class="Sy">HL</b>.
-<p class="Pp">Cycles: 2</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags: None affected.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="LD__r16_,A"><a class="permalink" href="#LD__r16_,A">LD
-  [r16],A</a></h2>
-Store value in register <b class="Sy">A</b> into byte pointed to by register
-  <var class="Ar">r16</var>.
-<p class="Pp">Cycles: 2</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags: None affected.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="LD__n16_,A"><a class="permalink" href="#LD__n16_,A">LD
-  [n16],A</a></h2>
-Store value in register <b class="Sy">A</b> into byte at address
-  <var class="Ar">n16</var>.
-<p class="Pp">Cycles: 4</p>
-<p class="Pp">Bytes: 3</p>
-<p class="Pp">Flags: None affected.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="LDH__n16_,A"><a class="permalink" href="#LDH__n16_,A">LDH
-  [n16],A</a></h2>
-Store value in register <b class="Sy">A</b> into byte at address
-  <var class="Ar">n16</var>, provided it is between
-  <span class="Ad">$FF00</span> and <span class="Ad">$FFFF</span>.
-<p class="Pp">Cycles: 3</p>
-<p class="Pp">Bytes: 2</p>
-<p class="Pp">Flags: None affected.</p>
-<p class="Pp">This is sometimes written as &#x2018;<code class="Li">ldio [n16],
-    a</code>&#x2019;, or &#x2018;<code class="Li">ld [$ff00+n8],
-    a</code>&#x2019;.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="LDH__C_,A"><a class="permalink" href="#LDH__C_,A">LDH
-  [C],A</a></h2>
-Store value in register <b class="Sy">A</b> into byte at address
-  <span class="Ad">$FF00+C</span>.
-<p class="Pp">Cycles: 2</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags: None affected.</p>
-<p class="Pp">This is sometimes written as &#x2018;<code class="Li">ldio [c],
-    a</code>&#x2019;, or &#x2018;<code class="Li">ld [$ff00+c],
-    a</code>&#x2019;.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="LD_A,_r16_"><a class="permalink" href="#LD_A,_r16_">LD
-  A,[r16]</a></h2>
-Load value in register <b class="Sy">A</b> from byte pointed to by register
-  <var class="Ar">r16</var>.
-<p class="Pp">Cycles: 2</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags: None affected.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="LD_A,_n16_"><a class="permalink" href="#LD_A,_n16_">LD
-  A,[n16]</a></h2>
-Load value in register <b class="Sy">A</b> from byte at address
-  <var class="Ar">n16</var>.
-<p class="Pp">Cycles: 4</p>
-<p class="Pp">Bytes: 3</p>
-<p class="Pp">Flags: None affected.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="LDH_A,_n16_"><a class="permalink" href="#LDH_A,_n16_">LDH
-  A,[n16]</a></h2>
-Load value in register <b class="Sy">A</b> from byte at address
-  <var class="Ar">n16</var>, provided it is between
-  <span class="Ad">$FF00</span> and <span class="Ad">$FFFF</span>.
-<p class="Pp">Cycles: 3</p>
-<p class="Pp">Bytes: 2</p>
-<p class="Pp">Flags: None affected.</p>
-<p class="Pp">This is sometimes written as &#x2018;<code class="Li">ldio a,
-    [n16]</code>&#x2019;, or &#x2018;<code class="Li">ld a,
-    [$ff00+n8]</code>&#x2019;.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="LDH_A,_C_"><a class="permalink" href="#LDH_A,_C_">LDH
-  A,[C]</a></h2>
-Load value in register <b class="Sy">A</b> from byte at address
-  <span class="Ad">$FF00+c</span>.
-<p class="Pp">Cycles: 2</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags: None affected.</p>
-<p class="Pp">This is sometimes written as &#x2018;<code class="Li">ldio a,
-    [c]</code>&#x2019;, or &#x2018;<code class="Li">ld a,
-    [$ff00+c]</code>&#x2019;.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="LD__HLI_,A"><a class="permalink" href="#LD__HLI_,A">LD
-  [HLI],A</a></h2>
-Store value in register <b class="Sy">A</b> into byte pointed by
-  <b class="Sy">HL</b> and increment <b class="Sy">HL</b> afterwards.
-<p class="Pp">Cycles: 2</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags: None affected.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="LD__HLD_,A"><a class="permalink" href="#LD__HLD_,A">LD
-  [HLD],A</a></h2>
-Store value in register <b class="Sy">A</b> into byte pointed by
-  <b class="Sy">HL</b> and decrement <b class="Sy">HL</b> afterwards.
-<p class="Pp">Cycles: 2</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags: None affected.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="LD_A,_HLD_"><a class="permalink" href="#LD_A,_HLD_">LD
-  A,[HLD]</a></h2>
-Load value into register <b class="Sy">A</b> from byte pointed by
-  <b class="Sy">HL</b> and decrement <b class="Sy">HL</b> afterwards.
-<p class="Pp">Cycles: 2</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags: None affected.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="LD_A,_HLI_"><a class="permalink" href="#LD_A,_HLI_">LD
-  A,[HLI]</a></h2>
-Load value into register <b class="Sy">A</b> from byte pointed by
-  <b class="Sy">HL</b> and increment <b class="Sy">HL</b> afterwards.
-<p class="Pp">Cycles: 2</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags: None affected.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="LD_SP,n16"><a class="permalink" href="#LD_SP,n16">LD
-  SP,n16</a></h2>
-Load value <var class="Ar">n16</var> into register <b class="Sy">SP</b>.
-<p class="Pp">Cycles: 3</p>
-<p class="Pp">Bytes: 3</p>
-<p class="Pp">Flags: None affected.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="LD__n16_,SP"><a class="permalink" href="#LD__n16_,SP">LD
-  [n16],SP</a></h2>
-Store <b class="Sy">SP &amp; $FF</b> at address <var class="Ar">n16</var> and
-  <b class="Sy">SP &gt;&gt; 8</b> at address <var class="Ar">n16</var> + 1.
-<p class="Pp">Cycles: 5</p>
-<p class="Pp">Bytes: 3</p>
-<p class="Pp">Flags: None affected.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="LD_HL,SP+e8"><a class="permalink" href="#LD_HL,SP+e8">LD
-  HL,SP+e8</a></h2>
-Add the signed value <var class="Ar">e8</var> to <b class="Sy">SP</b> and store
-  the result in <b class="Sy">HL</b>.
-<p class="Pp">Cycles: 3</p>
-<p class="Pp">Bytes: 2</p>
-<p class="Pp">Flags:</p>
-<dl class="Bl-hang Bl-compact">
-  <dt><b class="Sy">Z</b></dt>
-  <dd>0</dd>
-  <dt><b class="Sy">N</b></dt>
-  <dd>0</dd>
-  <dt><b class="Sy">H</b></dt>
-  <dd>Set if overflow from bit 3.</dd>
-  <dt><b class="Sy">C</b></dt>
-  <dd>Set if overflow from bit 7.</dd>
-</dl>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="LD_SP,HL"><a class="permalink" href="#LD_SP,HL">LD
-  SP,HL</a></h2>
-Load register <b class="Sy">HL</b> into register <b class="Sy">SP</b>.
-<p class="Pp">Cycles: 2</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags: None affected.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="NOP"><a class="permalink" href="#NOP">NOP</a></h2>
-No OPeration.
-<p class="Pp">Cycles: 1</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags: None affected.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="OR_A,r8"><a class="permalink" href="#OR_A,r8">OR
-  A,r8</a></h2>
-Store into <b class="Sy">A</b> the bitwise OR of the value in
-  <var class="Ar">r8</var> and <b class="Sy">A</b>.
-<p class="Pp">Cycles: 1</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags:</p>
-<dl class="Bl-hang Bl-compact">
-  <dt><b class="Sy">Z</b></dt>
-  <dd>Set if result is 0.</dd>
-  <dt><b class="Sy">N</b></dt>
-  <dd>0</dd>
-  <dt><b class="Sy">H</b></dt>
-  <dd>0</dd>
-  <dt><b class="Sy">C</b></dt>
-  <dd>0</dd>
-</dl>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="OR_A,_HL_"><a class="permalink" href="#OR_A,_HL_">OR
-  A,[HL]</a></h2>
-Store into <b class="Sy">A</b> the bitwise OR of the byte pointed to by
-  <b class="Sy">HL</b> and <b class="Sy">A</b>.
-<p class="Pp">Cycles: 2</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags: See <a class="Sx" href="#OR_A,r8">OR A,r8</a></p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="OR_A,n8"><a class="permalink" href="#OR_A,n8">OR
-  A,n8</a></h2>
-Store into <b class="Sy">A</b> the bitwise OR of <var class="Ar">n8</var> and
-  <b class="Sy">A</b>.
-<p class="Pp">Cycles: 2</p>
-<p class="Pp">Bytes: 2</p>
-<p class="Pp">Flags: See <a class="Sx" href="#OR_A,r8">OR A,r8</a></p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="POP_AF"><a class="permalink" href="#POP_AF">POP AF</a></h2>
-Pop register <b class="Sy">AF</b> from the stack. This is roughly equivalent to
-  the following <i class="Em">imaginary</i> instructions:
-<div class="Bd Pp Bd-indent">
-<pre>
-ld f, [sp] ; See below for individual flags
-inc sp
-ld a, [sp]
-inc sp
-</pre>
-</div>
-<p class="Pp">Cycles: 3</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags:</p>
-<dl class="Bl-hang Bl-compact">
-  <dt><b class="Sy">Z</b></dt>
-  <dd>Set from bit 7 of the popped low byte.</dd>
-  <dt><b class="Sy">N</b></dt>
-  <dd>Set from bit 6 of the popped low byte.</dd>
-  <dt><b class="Sy">H</b></dt>
-  <dd>Set from bit 5 of the popped low byte.</dd>
-  <dt><b class="Sy">C</b></dt>
-  <dd>Set from bit 4 of the popped low byte.</dd>
-</dl>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="POP_r16"><a class="permalink" href="#POP_r16">POP
-  r16</a></h2>
-Pop register <var class="Ar">r16</var> from the stack. This is roughly
-  equivalent to the following <i class="Em">imaginary</i> instructions:
-<div class="Bd Pp Bd-indent">
-<pre>
-ld LOW(r16), [sp] ; C, E or L
-inc sp
-ld HIGH(r16), [sp] ; B, D or H
-inc sp
-</pre>
-</div>
-<p class="Pp">Cycles: 3</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags: None affected.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="PUSH_AF"><a class="permalink" href="#PUSH_AF">PUSH
-  AF</a></h2>
-Push register <b class="Sy">AF</b> into the stack. This is roughly equivalent to
-  the following <i class="Em">imaginary</i> instructions:
-<div class="Bd Pp Bd-indent">
-<pre>
-dec sp
-ld [sp], a
-dec sp
-ld [sp], flag_Z &lt;&lt; 7 | flag_N &lt;&lt; 6 | flag_H &lt;&lt; 5 | flag_C &lt;&lt; 4
-</pre>
-</div>
-<p class="Pp">Cycles: 4</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags: None affected.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="PUSH_r16"><a class="permalink" href="#PUSH_r16">PUSH
-  r16</a></h2>
-Push register <var class="Ar">r16</var> into the stack. This is roughly
-  equivalent to the following <i class="Em">imaginary</i> instructions:
-<div class="Bd Pp Bd-indent">
-<pre>
-dec sp
-ld [sp], HIGH(r16) ; B, D or H
-dec sp
-ld [sp], LOW(r16) ; C, E or L
-</pre>
-</div>
-<p class="Pp">Cycles: 4</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags: None affected.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="RES_u3,r8"><a class="permalink" href="#RES_u3,r8">RES
-  u3,r8</a></h2>
-Set bit <var class="Ar">u3</var> in register <var class="Ar">r8</var> to 0. Bit
-  0 is the rightmost one, bit 7 the leftmost one.
-<p class="Pp">Cycles: 2</p>
-<p class="Pp">Bytes: 2</p>
-<p class="Pp">Flags: None affected.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="RES_u3,_HL_"><a class="permalink" href="#RES_u3,_HL_">RES
-  u3,[HL]</a></h2>
-Set bit <var class="Ar">u3</var> in the byte pointed by <b class="Sy">HL</b> to
-  0. Bit 0 is the rightmost one, bit 7 the leftmost one.
-<p class="Pp">Cycles: 4</p>
-<p class="Pp">Bytes: 2</p>
-<p class="Pp">Flags: None affected.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="RET"><a class="permalink" href="#RET">RET</a></h2>
-Return from subroutine. This is basically a <b class="Sy">POP PC</b> (if such an
-  instruction existed). See <a class="Sx" href="#POP_r16">POP r16</a> for an
-  explanation of how <b class="Sy">POP</b> works.
-<p class="Pp">Cycles: 4</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags: None affected.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="RET_cc"><a class="permalink" href="#RET_cc">RET cc</a></h2>
-Return from subroutine if condition <var class="Ar">cc</var> is met.
-<p class="Pp">Cycles: 5 taken / 2 untaken</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags: None affected.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="RETI"><a class="permalink" href="#RETI">RETI</a></h2>
-Return from subroutine and enable interrupts. This is basically equivalent to
-  executing <a class="Sx" href="#EI">EI</a> then
-  <a class="Sx" href="#RET">RET</a>, meaning that <b class="Sy">IME</b> is set
-  right after this instruction.
-<p class="Pp">Cycles: 4</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags: None affected.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="RL_r8"><a class="permalink" href="#RL_r8">RL r8</a></h2>
-Rotate bits in register <var class="Ar">r8</var> left through carry.
-<p class="Pp"></p>
-<div class="Bd Bd-indent">C &lt;- [7 &lt;- 0] &lt;- C</div>
-<p class="Pp">Cycles: 2</p>
-<p class="Pp">Bytes: 2</p>
-<p class="Pp">Flags:</p>
-<dl class="Bl-hang Bl-compact">
-  <dt><b class="Sy">Z</b></dt>
-  <dd>Set if result is 0.</dd>
-  <dt><b class="Sy">N</b></dt>
-  <dd>0</dd>
-  <dt><b class="Sy">H</b></dt>
-  <dd>0</dd>
-  <dt><b class="Sy">C</b></dt>
-  <dd>Set according to result.</dd>
-</dl>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="RL__HL_"><a class="permalink" href="#RL__HL_">RL
-  [HL]</a></h2>
-Rotate byte pointed to by <b class="Sy">HL</b> left through carry.
-<p class="Pp"></p>
-<div class="Bd Bd-indent">C &lt;- [7 &lt;- 0] &lt;- C</div>
-<p class="Pp">Cycles: 4</p>
-<p class="Pp">Bytes: 2</p>
-<p class="Pp">Flags: See <a class="Sx" href="#RL_r8">RL r8</a></p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="RLA"><a class="permalink" href="#RLA">RLA</a></h2>
-Rotate register <b class="Sy">A</b> left through carry.
-<p class="Pp"></p>
-<div class="Bd Bd-indent">C &lt;- [7 &lt;- 0] &lt;- C</div>
-<p class="Pp">Cycles: 1</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags:</p>
-<dl class="Bl-hang Bl-compact">
-  <dt><b class="Sy">Z</b></dt>
-  <dd>0</dd>
-  <dt><b class="Sy">N</b></dt>
-  <dd>0</dd>
-  <dt><b class="Sy">H</b></dt>
-  <dd>0</dd>
-  <dt><b class="Sy">C</b></dt>
-  <dd>Set according to result.</dd>
-</dl>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="RLC_r8"><a class="permalink" href="#RLC_r8">RLC r8</a></h2>
-Rotate register <var class="Ar">r8</var> left.
-<p class="Pp"></p>
-<div class="Bd Bd-indent">C &lt;- [7 &lt;- 0] &lt;- [7]</div>
-<p class="Pp">Cycles: 2</p>
-<p class="Pp">Bytes: 2</p>
-<p class="Pp">Flags:</p>
-<dl class="Bl-hang Bl-compact">
-  <dt><b class="Sy">Z</b></dt>
-  <dd>Set if result is 0.</dd>
-  <dt><b class="Sy">N</b></dt>
-  <dd>0</dd>
-  <dt><b class="Sy">H</b></dt>
-  <dd>0</dd>
-  <dt><b class="Sy">C</b></dt>
-  <dd>Set according to result.</dd>
-</dl>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="RLC__HL_"><a class="permalink" href="#RLC__HL_">RLC
-  [HL]</a></h2>
-Rotate byte pointed to by <b class="Sy">HL</b> left.
-<p class="Pp"></p>
-<div class="Bd Bd-indent">C &lt;- [7 &lt;- 0] &lt;- [7]</div>
-<p class="Pp">Cycles: 4</p>
-<p class="Pp">Bytes: 2</p>
-<p class="Pp">Flags: See <a class="Sx" href="#RLC_r8">RLC r8</a></p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="RLCA"><a class="permalink" href="#RLCA">RLCA</a></h2>
-Rotate register <b class="Sy">A</b> left.
-<p class="Pp"></p>
-<div class="Bd Bd-indent">C &lt;- [7 &lt;- 0] &lt;- [7]</div>
-<p class="Pp">Cycles: 1</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags:</p>
-<dl class="Bl-hang Bl-compact">
-  <dt><b class="Sy">Z</b></dt>
-  <dd>0</dd>
-  <dt><b class="Sy">N</b></dt>
-  <dd>0</dd>
-  <dt><b class="Sy">H</b></dt>
-  <dd>0</dd>
-  <dt><b class="Sy">C</b></dt>
-  <dd>Set according to result.</dd>
-</dl>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="RR_r8"><a class="permalink" href="#RR_r8">RR r8</a></h2>
-Rotate register <var class="Ar">r8</var> right through carry.
-<p class="Pp"></p>
-<div class="Bd Bd-indent">C -&gt; [7 -&gt; 0] -&gt; C</div>
-<p class="Pp">Cycles: 2</p>
-<p class="Pp">Bytes: 2</p>
-<p class="Pp">Flags:</p>
-<dl class="Bl-hang Bl-compact">
-  <dt><b class="Sy">Z</b></dt>
-  <dd>Set if result is 0.</dd>
-  <dt><b class="Sy">N</b></dt>
-  <dd>0</dd>
-  <dt><b class="Sy">H</b></dt>
-  <dd>0</dd>
-  <dt><b class="Sy">C</b></dt>
-  <dd>Set according to result.</dd>
-</dl>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="RR__HL_"><a class="permalink" href="#RR__HL_">RR
-  [HL]</a></h2>
-Rotate byte pointed to by <b class="Sy">HL</b> right through carry.
-<p class="Pp"></p>
-<div class="Bd Bd-indent">C -&gt; [7 -&gt; 0] -&gt; C</div>
-<p class="Pp">Cycles: 4</p>
-<p class="Pp">Bytes: 2</p>
-<p class="Pp">Flags: See <a class="Sx" href="#RR_r8">RR r8</a></p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="RRA"><a class="permalink" href="#RRA">RRA</a></h2>
-Rotate register <b class="Sy">A</b> right through carry.
-<p class="Pp"></p>
-<div class="Bd Bd-indent">C -&gt; [7 -&gt; 0] -&gt; C</div>
-<p class="Pp">Cycles: 1</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags:</p>
-<dl class="Bl-hang Bl-compact">
-  <dt><b class="Sy">Z</b></dt>
-  <dd>0</dd>
-  <dt><b class="Sy">N</b></dt>
-  <dd>0</dd>
-  <dt><b class="Sy">H</b></dt>
-  <dd>0</dd>
-  <dt><b class="Sy">C</b></dt>
-  <dd>Set according to result.</dd>
-</dl>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="RRC_r8"><a class="permalink" href="#RRC_r8">RRC r8</a></h2>
-Rotate register <var class="Ar">r8</var> right.
-<p class="Pp"></p>
-<div class="Bd Bd-indent">[0] -&gt; [7 -&gt; 0] -&gt; C</div>
-<p class="Pp">Cycles: 2</p>
-<p class="Pp">Bytes: 2</p>
-<p class="Pp">Flags:</p>
-<dl class="Bl-hang Bl-compact">
-  <dt><b class="Sy">Z</b></dt>
-  <dd>Set if result is 0.</dd>
-  <dt><b class="Sy">N</b></dt>
-  <dd>0</dd>
-  <dt><b class="Sy">H</b></dt>
-  <dd>0</dd>
-  <dt><b class="Sy">C</b></dt>
-  <dd>Set according to result.</dd>
-</dl>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="RRC__HL_"><a class="permalink" href="#RRC__HL_">RRC
-  [HL]</a></h2>
-Rotate byte pointed to by <b class="Sy">HL</b> right.
-<p class="Pp"></p>
-<div class="Bd Bd-indent">[0] -&gt; [7 -&gt; 0] -&gt; C</div>
-<p class="Pp">Cycles: 4</p>
-<p class="Pp">Bytes: 2</p>
-<p class="Pp">Flags: See <a class="Sx" href="#RRC_r8">RRC r8</a></p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="RRCA"><a class="permalink" href="#RRCA">RRCA</a></h2>
-Rotate register <b class="Sy">A</b> right.
-<p class="Pp"></p>
-<div class="Bd Bd-indent">[0] -&gt; [7 -&gt; 0] -&gt; C</div>
-<p class="Pp">Cycles: 1</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags:</p>
-<dl class="Bl-hang Bl-compact">
-  <dt><b class="Sy">Z</b></dt>
-  <dd>0</dd>
-  <dt><b class="Sy">N</b></dt>
-  <dd>0</dd>
-  <dt><b class="Sy">H</b></dt>
-  <dd>0</dd>
-  <dt><b class="Sy">C</b></dt>
-  <dd>Set according to result.</dd>
-</dl>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="RST_vec"><a class="permalink" href="#RST_vec">RST
-  vec</a></h2>
-Call address <var class="Ar">vec</var>. This is a shorter and faster equivalent
-  to <a class="Sx" href="#CALL">CALL</a> for suitable values of
-  <var class="Ar">vec</var>.
-<p class="Pp">Cycles: 4</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags: None affected.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="SBC_A,r8"><a class="permalink" href="#SBC_A,r8">SBC
-  A,r8</a></h2>
-Subtract the value in <var class="Ar">r8</var> and the carry flag from
-  <b class="Sy">A</b>.
-<p class="Pp">Cycles: 1</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags:</p>
-<dl class="Bl-hang Bl-compact">
-  <dt><b class="Sy">Z</b></dt>
-  <dd>Set if result is 0.</dd>
-  <dt><b class="Sy">N</b></dt>
-  <dd>1</dd>
-  <dt><b class="Sy">H</b></dt>
-  <dd>Set if borrow from bit 4.</dd>
-  <dt><b class="Sy">C</b></dt>
-  <dd>Set if borrow (i.e. if (<var class="Ar">r8</var> + carry) &gt;
-      <b class="Sy">A</b>).</dd>
-</dl>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="SBC_A,_HL_"><a class="permalink" href="#SBC_A,_HL_">SBC
-  A,[HL]</a></h2>
-Subtract the byte pointed to by <b class="Sy">HL</b> and the carry flag from
-  <b class="Sy">A</b>.
-<p class="Pp">Cycles: 2</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags: See <a class="Sx" href="#SBC_A,r8">SBC A,r8</a></p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="SBC_A,n8"><a class="permalink" href="#SBC_A,n8">SBC
-  A,n8</a></h2>
-Subtract the value <var class="Ar">n8</var> and the carry flag from
-  <b class="Sy">A</b>.
-<p class="Pp">Cycles: 2</p>
-<p class="Pp">Bytes: 2</p>
-<p class="Pp">Flags: See <a class="Sx" href="#SBC_A,r8">SBC A,r8</a></p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="SCF"><a class="permalink" href="#SCF">SCF</a></h2>
-Set Carry Flag.
-<p class="Pp">Cycles: 1</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags:</p>
-<dl class="Bl-hang Bl-compact">
-  <dt><b class="Sy">N</b></dt>
-  <dd>0</dd>
-  <dt><b class="Sy">H</b></dt>
-  <dd>0</dd>
-  <dt><b class="Sy">C</b></dt>
-  <dd>1</dd>
-</dl>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="SET_u3,r8"><a class="permalink" href="#SET_u3,r8">SET
-  u3,r8</a></h2>
-Set bit <var class="Ar">u3</var> in register <var class="Ar">r8</var> to 1. Bit
-  0 is the rightmost one, bit 7 the leftmost one.
-<p class="Pp">Cycles: 2</p>
-<p class="Pp">Bytes: 2</p>
-<p class="Pp">Flags: None affected.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="SET_u3,_HL_"><a class="permalink" href="#SET_u3,_HL_">SET
-  u3,[HL]</a></h2>
-Set bit <var class="Ar">u3</var> in the byte pointed by <b class="Sy">HL</b> to
-  1. Bit 0 is the rightmost one, bit 7 the leftmost one.
-<p class="Pp">Cycles: 4</p>
-<p class="Pp">Bytes: 2</p>
-<p class="Pp">Flags: None affected.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="SLA_r8"><a class="permalink" href="#SLA_r8">SLA r8</a></h2>
-Shift Left Arithmetic register <var class="Ar">r8</var>.
-<p class="Pp"></p>
-<div class="Bd Bd-indent">C &lt;- [7 &lt;- 0] &lt;- 0</div>
-<p class="Pp">Cycles: 2</p>
-<p class="Pp">Bytes: 2</p>
-<p class="Pp">Flags:</p>
-<dl class="Bl-hang Bl-compact">
-  <dt><b class="Sy">Z</b></dt>
-  <dd>Set if result is 0.</dd>
-  <dt><b class="Sy">N</b></dt>
-  <dd>0</dd>
-  <dt><b class="Sy">H</b></dt>
-  <dd>0</dd>
-  <dt><b class="Sy">C</b></dt>
-  <dd>Set according to result.</dd>
-</dl>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="SLA__HL_"><a class="permalink" href="#SLA__HL_">SLA
-  [HL]</a></h2>
-Shift Left Arithmetic byte pointed to by <b class="Sy">HL</b>.
-<p class="Pp"></p>
-<div class="Bd Bd-indent">C &lt;- [7 &lt;- 0] &lt;- 0</div>
-<p class="Pp">Cycles: 4</p>
-<p class="Pp">Bytes: 2</p>
-<p class="Pp">Flags: See <a class="Sx" href="#SLA_r8">SLA r8</a></p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="SRA_r8"><a class="permalink" href="#SRA_r8">SRA r8</a></h2>
-Shift Right Arithmetic register <var class="Ar">r8</var>.
-<p class="Pp"></p>
-<div class="Bd Bd-indent">[7] -&gt; [7 -&gt; 0] -&gt; C</div>
-<p class="Pp">Cycles: 2</p>
-<p class="Pp">Bytes: 2</p>
-<p class="Pp">Flags:</p>
-<dl class="Bl-hang Bl-compact">
-  <dt><b class="Sy">Z</b></dt>
-  <dd>Set if result is 0.</dd>
-  <dt><b class="Sy">N</b></dt>
-  <dd>0</dd>
-  <dt><b class="Sy">H</b></dt>
-  <dd>0</dd>
-  <dt><b class="Sy">C</b></dt>
-  <dd>Set according to result.</dd>
-</dl>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="SRA__HL_"><a class="permalink" href="#SRA__HL_">SRA
-  [HL]</a></h2>
-Shift Right Arithmetic byte pointed to by <b class="Sy">HL</b>.
-<p class="Pp"></p>
-<div class="Bd Bd-indent">[7] -&gt; [7 -&gt; 0] -&gt; C</div>
-<p class="Pp">Cycles: 4</p>
-<p class="Pp">Bytes: 2</p>
-<p class="Pp">Flags: See <a class="Sx" href="#SRA_r8">SRA r8</a></p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="SRL_r8"><a class="permalink" href="#SRL_r8">SRL r8</a></h2>
-Shift Right Logic register <var class="Ar">r8</var>.
-<p class="Pp"></p>
-<div class="Bd Bd-indent">0 -&gt; [7 -&gt; 0] -&gt; C</div>
-<p class="Pp">Cycles: 2</p>
-<p class="Pp">Bytes: 2</p>
-<p class="Pp">Flags:</p>
-<dl class="Bl-hang Bl-compact">
-  <dt><b class="Sy">Z</b></dt>
-  <dd>Set if result is 0.</dd>
-  <dt><b class="Sy">N</b></dt>
-  <dd>0</dd>
-  <dt><b class="Sy">H</b></dt>
-  <dd>0</dd>
-  <dt><b class="Sy">C</b></dt>
-  <dd>Set according to result.</dd>
-</dl>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="SRL__HL_"><a class="permalink" href="#SRL__HL_">SRL
-  [HL]</a></h2>
-Shift Right Logic byte pointed to by <b class="Sy">HL</b>.
-<p class="Pp"></p>
-<div class="Bd Bd-indent">0 -&gt; [7 -&gt; 0] -&gt; C</div>
-<p class="Pp">Cycles: 4</p>
-<p class="Pp">Bytes: 2</p>
-<p class="Pp">Flags: See <a class="Sx" href="#SRA_r8">SRA r8</a></p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="STOP"><a class="permalink" href="#STOP">STOP</a></h2>
-Enter CPU very low power mode. Also used to switch between double and normal
-  speed CPU modes in GBC.
-<p class="Pp">Cycles: -</p>
-<p class="Pp">Bytes: 2</p>
-<p class="Pp">Flags: None affected.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="SUB_A,r8"><a class="permalink" href="#SUB_A,r8">SUB
-  A,r8</a></h2>
-Subtract the value in <var class="Ar">r8</var> from <b class="Sy">A</b>.
-<p class="Pp">Cycles: 1</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags:</p>
-<dl class="Bl-hang Bl-compact">
-  <dt><b class="Sy">Z</b></dt>
-  <dd>Set if result is 0.</dd>
-  <dt><b class="Sy">N</b></dt>
-  <dd>1</dd>
-  <dt><b class="Sy">H</b></dt>
-  <dd>Set if borrow from bit 4.</dd>
-  <dt><b class="Sy">C</b></dt>
-  <dd>Set if borrow (set if <var class="Ar">r8</var> &gt;
-    <b class="Sy">A</b>).</dd>
-</dl>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="SUB_A,_HL_"><a class="permalink" href="#SUB_A,_HL_">SUB
-  A,[HL]</a></h2>
-Subtract the byte pointed to by <b class="Sy">HL</b> from <b class="Sy">A</b>.
-<p class="Pp">Cycles: 2</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags: See <a class="Sx" href="#SUB_A,r8">SUB A,r8</a></p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="SUB_A,n8"><a class="permalink" href="#SUB_A,n8">SUB
-  A,n8</a></h2>
-Subtract the value <var class="Ar">n8</var> from <b class="Sy">A</b>.
-<p class="Pp">Cycles: 2</p>
-<p class="Pp">Bytes: 2</p>
-<p class="Pp">Flags: See <a class="Sx" href="#SUB_A,r8">SUB A,r8</a></p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="SWAP_r8"><a class="permalink" href="#SWAP_r8">SWAP
-  r8</a></h2>
-Swap upper 4 bits in register <var class="Ar">r8</var> and the lower 4 ones.
-<p class="Pp">Cycles: 2</p>
-<p class="Pp">Bytes: 2</p>
-<p class="Pp">Flags:</p>
-<dl class="Bl-hang Bl-compact">
-  <dt><b class="Sy">Z</b></dt>
-  <dd>Set if result is 0.</dd>
-  <dt><b class="Sy">N</b></dt>
-  <dd>0</dd>
-  <dt><b class="Sy">H</b></dt>
-  <dd>0</dd>
-  <dt><b class="Sy">C</b></dt>
-  <dd>0</dd>
-</dl>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="SWAP__HL_"><a class="permalink" href="#SWAP__HL_">SWAP
-  [HL]</a></h2>
-Swap upper 4 bits in the byte pointed by <b class="Sy">HL</b> and the lower 4
-  ones.
-<p class="Pp">Cycles: 4</p>
-<p class="Pp">Bytes: 2</p>
-<p class="Pp">Flags: See <a class="Sx" href="#SWAP_r8">SWAP r8</a></p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="XOR_A,r8"><a class="permalink" href="#XOR_A,r8">XOR
-  A,r8</a></h2>
-Bitwise XOR between the value in <var class="Ar">r8</var> and
-  <b class="Sy">A</b>.
-<p class="Pp">Cycles: 1</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags:</p>
-<dl class="Bl-hang Bl-compact">
-  <dt><b class="Sy">Z</b></dt>
-  <dd>Set if result is 0.</dd>
-  <dt><b class="Sy">N</b></dt>
-  <dd>0</dd>
-  <dt><b class="Sy">H</b></dt>
-  <dd>0</dd>
-  <dt><b class="Sy">C</b></dt>
-  <dd>0</dd>
-</dl>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="XOR_A,_HL_"><a class="permalink" href="#XOR_A,_HL_">XOR
-  A,[HL]</a></h2>
-Bitwise XOR between the byte pointed to by <b class="Sy">HL</b> and
-  <b class="Sy">A</b>.
-<p class="Pp">Cycles: 2</p>
-<p class="Pp">Bytes: 1</p>
-<p class="Pp">Flags: See <a class="Sx" href="#XOR_A,r8">XOR A,r8</a></p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="XOR_A,n8"><a class="permalink" href="#XOR_A,n8">XOR
-  A,n8</a></h2>
-Bitwise XOR between the value in <var class="Ar">n8</var> and
-  <b class="Sy">A</b>.
-<p class="Pp">Cycles: 2</p>
-<p class="Pp">Bytes: 2</p>
-<p class="Pp">Flags: See <a class="Sx" href="#XOR_A,r8">XOR A,r8</a></p>
-</section>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
-  ALSO</a></h1>
-<a class="Xr" href="rgbasm.1.html">rgbasm(1)</a>, <a class="Xr" href="rgbds.7.html">rgbds(7)</a>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1>
-<code class="Nm">rgbds</code> was originally written by Carsten S&#x00F8;rensen
-  as part of the ASMotor package, and was later packaged in RGBDS by Justin
-  Lloyd. It is now maintained by a number of contributors at
-  <a class="Lk" href="https://github.com/rednex/rgbds">https://github.com/rednex/rgbds</a>.
-</section>
-</div>
-<table class="foot">
-  <tr>
-    <td class="foot-date">February 23, 2018</td>
-    <td class="foot-os">General</td>
-  </tr>
-</table>
-</body>
-</html>
--- a/docs/index.html
+++ /dev/null
@@ -1,36 +1,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-  <meta charset="utf-8"/>
-  <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-  <title>General Information</title>
-  <link rel="stylesheet" type="text/css" href="mandoc.css">
-</head>
-<body>
-<h1>RGBDS — Rednex Game Boy Development System</h1>
-<h2>Table of Contents</h2>
-<ol>
-  <li>General information
-    <ul>
-      <li><a href="rgbds.7.html">RGBDS general information</a></li>
-      <li><a href="rgbds.5.html">RGBDS object file format</a></li>
-    </ul>
-  <li>Language description
-    <ul>
-      <li><a href="rgbasm.5.html">RGBASM language description</a></li>
-      <li><a href="rgblink.5.html">RGBLINK linkerscript language description</a></li>
-      <li><a href="gbz80.7.html">GBZ80 CPU instruction set description</a></li>
-    </ul>
-  <li>Command line usage
-    <ul>
-      <li><a href="rgbasm.1.html">RGBASM command-line usage</a></li>
-      <li><a href="rgblink.1.html">RGBLINK command-line usage</a></li>
-      <li><a href="rgbfix.1.html">RGBFIX command-line usage</a></li>
-      <li><a href="rgbgfx.1.html">RGBGFX command-line usage</a></li>
-    </ul>
-</ol>
-<h2 id="GitHub Repository">GitHub Repository:</h2>
-<ul>
-  <li><a href="https://github.com/rednex/rgbds">https://github.com/rednex/rgbds</a></li>
-</ul>
-</body>
--- a/docs/mandoc.css
+++ /dev/null
@@ -1,347 +1,0 @@
-/* $Id: mandoc.css,v 1.45 2019/03/01 10:57:18 schwarze Exp $ */
-/*
- * Standard style sheet for mandoc(1) -Thtml and man.cgi(8).
- *
- * Written by Ingo Schwarze <schwarze@openbsd.org>.
- * I place this file into the public domain.
- * Permission to use, copy, modify, and distribute it for any purpose
- * with or without fee is hereby granted, without any conditions.
- */
-
-/* Global defaults. */
-
-html {		max-width: 65em; }
-body {		font-family: Helvetica,Arial,sans-serif; }
-table {		margin-top: 0em;
-		margin-bottom: 0em;
-		border-collapse: collapse; }
-/* Some browsers set border-color in a browser style for tbody,
- * but not for table, resulting in inconsistent border styling. */
-tbody {		border-color: inherit; }
-tr {		border-color: inherit; }
-td {		vertical-align: top;
-		padding-left: 0.2em;
-		padding-right: 0.2em;
-		border-color: inherit; }
-ul, ol, dl {	margin-top: 0em;
-		margin-bottom: 0em; }
-li, dt {	margin-top: 1em; }
-
-.permalink {	border-bottom: thin dotted;
-		color: inherit;
-		font: inherit;
-		text-decoration: inherit; }
-* {		clear: both }
-
-/* Search form and search results. */
-
-fieldset {	border: thin solid silver;
-		border-radius: 1em;
-		text-align: center; }
-input[name=expr] {
-		width: 25%; }
-
-table.results {	margin-top: 1em;
-		margin-left: 2em;
-		font-size: smaller; }
-
-/* Header and footer lines. */
-
-table.head {	width: 100%;
-		border-bottom: 1px dotted #808080;
-		margin-bottom: 1em;
-		font-size: smaller; }
-td.head-vol {	text-align: center; }
-td.head-rtitle {
-		text-align: right; }
-
-table.foot {	width: 100%;
-		border-top: 1px dotted #808080;
-		margin-top: 1em;
-		font-size: smaller; }
-td.foot-os {	text-align: right; }
-
-/* Sections and paragraphs. */
-
-.manual-text {
-		margin-left: 3.8em; }
-.Nd { }
-section.Sh { }
-h1.Sh {		margin-top: 1.2em;
-		margin-bottom: 0.6em;
-		margin-left: -3.2em;
-		font-size: 110%; }
-section.Ss { }
-h2.Ss {		margin-top: 1.2em;
-		margin-bottom: 0.6em;
-		margin-left: -1.2em;
-		font-size: 105%; }
-.Pp {		margin: 0.6em 0em; }
-.Sx { }
-.Xr { }
-
-/* Displays and lists. */
-
-.Bd { }
-.Bd-indent {	margin-left: 3.8em; }
-
-.Bl-bullet {	list-style-type: disc;
-		padding-left: 1em; }
-.Bl-bullet > li { }
-.Bl-dash {	list-style-type: none;
-		padding-left: 0em; }
-.Bl-dash > li:before {
-		content: "\2014  "; }
-.Bl-item {	list-style-type: none;
-		padding-left: 0em; }
-.Bl-item > li { }
-.Bl-compact > li {
-		margin-top: 0em; }
-
-.Bl-enum {	padding-left: 2em; }
-.Bl-enum > li { }
-.Bl-compact > li {
-		margin-top: 0em; }
-
-.Bl-diag { }
-.Bl-diag > dt {
-		font-style: normal;
-		font-weight: bold; }
-.Bl-diag > dd {
-		margin-left: 0em; }
-.Bl-hang { }
-.Bl-hang > dt { }
-.Bl-hang > dd {
-		margin-left: 5.5em; }
-.Bl-inset { }
-.Bl-inset > dt { }
-.Bl-inset > dd {
-		margin-left: 0em; }
-.Bl-ohang { }
-.Bl-ohang > dt { }
-.Bl-ohang > dd {
-		margin-left: 0em; }
-.Bl-tag {	margin-top: 0.6em;
-		margin-left: 5.5em; }
-.Bl-tag > dt {
-		float: left;
-		margin-top: 0em;
-		margin-left: -5.5em;
-		padding-right: 0.5em;
-		vertical-align: top; }
-.Bl-tag > dd {
-		clear: right;
-		width: 100%;
-		margin-top: 0em;
-		margin-left: 0em;
-		margin-bottom: 0.6em;
-		vertical-align: top;
-		overflow: auto; }
-.Bl-compact {	margin-top: 0em; }
-.Bl-compact > dd {
-		margin-bottom: 0em; }
-.Bl-compact > dt {
-		margin-top: 0em; }
-
-.Bl-column { }
-.Bl-column > tbody > tr { }
-.Bl-column > tbody > tr > td {
-		margin-top: 1em; }
-.Bl-compact > tbody > tr > td {
-		margin-top: 0em; }
-
-.Rs {		font-style: normal;
-		font-weight: normal; }
-.RsA { }
-.RsB {		font-style: italic;
-		font-weight: normal; }
-.RsC { }
-.RsD { }
-.RsI {		font-style: italic;
-		font-weight: normal; }
-.RsJ {		font-style: italic;
-		font-weight: normal; }
-.RsN { }
-.RsO { }
-.RsP { }
-.RsQ { }
-.RsR { }
-.RsT {		text-decoration: underline; }
-.RsU { }
-.RsV { }
-
-.eqn { }
-.tbl td {	vertical-align: middle; }
-
-.HP {		margin-left: 3.8em;
-		text-indent: -3.8em; }
-
-/* Semantic markup for command line utilities. */
-
-table.Nm { }
-code.Nm {	font-style: normal;
-		font-weight: bold;
-		font-family: inherit; }
-.Fl {		font-style: normal;
-		font-weight: bold;
-		font-family: inherit; }
-.Cm {		font-style: normal;
-		font-weight: bold;
-		font-family: inherit; }
-.Ar {		font-style: italic;
-		font-weight: normal; }
-.Op {		display: inline; }
-.Ic {		font-style: normal;
-		font-weight: bold;
-		font-family: inherit; }
-.Ev {		font-style: normal;
-		font-weight: normal;
-		font-family: monospace; }
-.Pa {		font-style: italic;
-		font-weight: normal; }
-
-/* Semantic markup for function libraries. */
-
-.Lb { }
-code.In {	font-style: normal;
-		font-weight: bold;
-		font-family: inherit; }
-a.In { }
-.Fd {		font-style: normal;
-		font-weight: bold;
-		font-family: inherit; }
-.Ft {		font-style: italic;
-		font-weight: normal; }
-.Fn {		font-style: normal;
-		font-weight: bold;
-		font-family: inherit; }
-.Fa {		font-style: italic;
-		font-weight: normal; }
-.Vt {		font-style: italic;
-		font-weight: normal; }
-.Va {		font-style: italic;
-		font-weight: normal; }
-.Dv {		font-style: normal;
-		font-weight: normal;
-		font-family: monospace; }
-.Er {		font-style: normal;
-		font-weight: normal;
-		font-family: monospace; }
-
-/* Various semantic markup. */
-
-.An { }
-.Lk { }
-.Mt { }
-.Cd {		font-style: normal;
-		font-weight: bold;
-		font-family: inherit; }
-.Ad {		font-style: italic;
-		font-weight: normal; }
-.Ms {		font-style: normal;
-		font-weight: bold; }
-.St { }
-.Ux { }
-
-/* Physical markup. */
-
-.Bf {		display: inline; }
-.No {		font-style: normal;
-		font-weight: normal; }
-.Em {		font-style: italic;
-		font-weight: normal; }
-.Sy {		font-style: normal;
-		font-weight: bold; }
-.Li {		font-style: normal;
-		font-weight: normal;
-		font-family: monospace; }
-
-/* Tooltip support. */
-
-h1.Sh, h2.Ss {	position: relative; }
-.An, .Ar, .Cd, .Cm, .Dv, .Em, .Er, .Ev, .Fa, .Fd, .Fl, .Fn, .Ft,
-.Ic, code.In, .Lb, .Lk, .Ms, .Mt, .Nd, code.Nm, .Pa, .Rs,
-.St, .Sx, .Sy, .Va, .Vt, .Xr {
-		display: inline-block;
-		position: relative; }
-
-.An::before {	content: "An"; }
-.Ar::before {	content: "Ar"; }
-.Cd::before {	content: "Cd"; }
-.Cm::before {	content: "Cm"; }
-.Dv::before {	content: "Dv"; }
-.Em::before {	content: "Em"; }
-.Er::before {	content: "Er"; }
-.Ev::before {	content: "Ev"; }
-.Fa::before {	content: "Fa"; }
-.Fd::before {	content: "Fd"; }
-.Fl::before {	content: "Fl"; }
-.Fn::before {	content: "Fn"; }
-.Ft::before {	content: "Ft"; }
-.Ic::before {	content: "Ic"; }
-code.In::before { content: "In"; }
-.Lb::before {	content: "Lb"; }
-.Lk::before {	content: "Lk"; }
-.Ms::before {	content: "Ms"; }
-.Mt::before {	content: "Mt"; }
-.Nd::before {	content: "Nd"; }
-code.Nm::before { content: "Nm"; }
-.Pa::before {	content: "Pa"; }
-.Rs::before {	content: "Rs"; }
-h1.Sh::before {	content: "Sh"; }
-h2.Ss::before {	content: "Ss"; }
-.St::before {	content: "St"; }
-.Sx::before {	content: "Sx"; }
-.Sy::before {	content: "Sy"; }
-.Va::before {	content: "Va"; }
-.Vt::before {	content: "Vt"; }
-.Xr::before {	content: "Xr"; }
-
-.An::before, .Ar::before, .Cd::before, .Cm::before,
-.Dv::before, .Em::before, .Er::before, .Ev::before,
-.Fa::before, .Fd::before, .Fl::before, .Fn::before, .Ft::before,
-.Ic::before, code.In::before, .Lb::before, .Lk::before,
-.Ms::before, .Mt::before, .Nd::before, code.Nm::before,
-.Pa::before, .Rs::before,
-h1.Sh::before, h2.Ss::before, .St::before, .Sx::before, .Sy::before,
-.Va::before, .Vt::before, .Xr::before {
-		opacity: 0;
-		transition: .15s ease opacity;
-		pointer-events: none;
-		position: absolute;
-		bottom: 100%;
-		box-shadow: 0 0 .35em #000;
-		padding: .15em .25em;
-		white-space: nowrap;
-		font-family: Helvetica,Arial,sans-serif;
-		font-style: normal;
-		font-weight: bold;
-		color: black;
-		background: #fff; }
-.An:hover::before, .Ar:hover::before, .Cd:hover::before, .Cm:hover::before,
-.Dv:hover::before, .Em:hover::before, .Er:hover::before, .Ev:hover::before,
-.Fa:hover::before, .Fd:hover::before, .Fl:hover::before, .Fn:hover::before,
-.Ft:hover::before, .Ic:hover::before, code.In:hover::before,
-.Lb:hover::before, .Lk:hover::before, .Ms:hover::before, .Mt:hover::before,
-.Nd:hover::before, code.Nm:hover::before, .Pa:hover::before,
-.Rs:hover::before, h1.Sh:hover::before, h2.Ss:hover::before, .St:hover::before,
-.Sx:hover::before, .Sy:hover::before, .Va:hover::before, .Vt:hover::before,
-.Xr:hover::before {
-		opacity: 1;
-		pointer-events: inherit; }
-
-/* Overrides to avoid excessive margins on small devices. */
-
-@media (max-width: 37.5em) {
-.manual-text {
-		margin-left: 0.5em; }
-h1.Sh, h2.Ss {	margin-left: 0em; }
-.Bd-indent {	margin-left: 2em; }
-.Bl-hang > dd {
-		margin-left: 2em; }
-.Bl-tag {	margin-left: 2em; }
-.Bl-tag > dt {
-		margin-left: -2em; }
-.HP {		margin-left: 2em;
-		text-indent: -2em; }
-}
--- a/docs/rgbasm.1.html
+++ /dev/null
@@ -1,295 +1,0 @@
-<!DOCTYPE html>
-<html>
-<!-- This is an automatically generated file.  Do not edit.
-   This file is part of RGBDS.
-  
-   Copyright (c) 2010-2019, Anthony J. Bentley and RGBDS contributors.
-  
-   SPDX-License-Identifier: MIT
-   -->
-<head>
-  <meta name="viewport" content="width=device-width, initial-scale=1">
-  <meta charset="utf-8"/>
-  <link rel="stylesheet" href="mandoc.css" type="text/css" media="all"/>
-  <link rel="stylesheet" href="rgbds.css" type="text/css" media="all"/>
-  <title>RGBASM(1)</title>
-</head>
-<body>
-<table class="head">
-  <tr>
-    <td class="head-ltitle">RGBASM(1)</td>
-    <td class="head-vol">General Commands Manual</td>
-    <td class="head-rtitle">RGBASM(1)</td>
-  </tr>
-</table>
-<div class="manual-text">
-<section class="Sh">
-<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
-<code class="Nm">rgbasm</code> &#x2014;
-<span class="Nd">Game Boy assembler</span>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
-<table class="Nm">
-  <tr>
-    <td><code class="Nm">rgbasm</code></td>
-    <td>[<code class="Fl"><a href="#E">-E</a><a href="#h">h</a><a href="#L">L</a><a href="#V">V</a><a href="#v">v</a><a href="#w">w</a></code>] [<code class="Fl"><a href="#b">-b</a></code>
-      <var class="Ar">chars</var>] [<code class="Fl"><a href="#D">-D</a></code>
-      <var class="Ar">name</var>[=<var class="Ar">value</var>]]
-      [<code class="Fl"><a href="#g">-g</a></code> <var class="Ar">chars</var>]
-      [<code class="Fl"><a href="#i">-i</a></code> <var class="Ar">path</var>]
-      [<code class="Fl"><a href="#M">-M</a></code> <var class="Ar">depend_file</var>]
-      [<code class="Fl"><a href="#M">-M</a><a href="#G">G</a></code>] [<code class="Fl"><a href="#M">-M</a><a href="#P">P</a></code>]
-      [<code class="Fl"><a href="#M">-M</a><a href="#T">T</a></code> <var class="Ar">target_file</var>]
-      [<code class="Fl"><a href="#M">-M</a><a href="#Q">Q</a></code> <var class="Ar">target_file</var>]
-      [<code class="Fl"><a href="#o">-o</a></code> <var class="Ar">out_file</var>]
-      [<code class="Fl"><a href="#p">-p</a></code> <var class="Ar">pad_value</var>]
-      [<code class="Fl"><a href="#r">-r</a></code> <var class="Ar">recursion_depth</var>]
-      [<code class="Fl"><a href="#W">-W</a></code> <var class="Ar">warning</var>]
-      <var class="Ar">file ...</var></td>
-  </tr>
-</table>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
-The <code class="Nm">rgbasm</code> program creates an RGB object file from an
-  assembly source file. The input <var class="Ar">file</var> can be a file path,
-  or <code class="Cm">-</code> denoting <code class="Cm">stdin</code>.
-<p class="Pp">Note that options can be abbreviated as long as the abbreviation
-    is unambiguous: <code class="Fl">--verb</code> is
-    <code class="Fl">--verbose</code>, but
-    <code class="Fl">--ver</code> is invalid because it
-    could also be <code class="Fl">--version</code>. The
-    arguments are as follows:</p>
-<dl class="Bl-tag">
-  <dt><a class="permalink" href="#b"><code class="Fl" id="b">-b</code></a>
-    <var class="Ar">chars</var>,
-    <code class="Fl">--binary-digits</code>
-    <var class="Ar">chars</var></dt>
-  <dd>Change the two characters used for binary constants. The defaults are
-    01.</dd>
-  <dt><a class="permalink" href="#D"><code class="Fl" id="D">-D</code></a>
-    <var class="Ar">name</var>[=<var class="Ar">value</var>],
-    <code class="Fl">-</code> <code class="Fl">-define</code>
-    <var class="Ar">name</var>[=<var class="Ar">value</var>]</dt>
-  <dd>Add a string symbol to the compiled source code. This is equivalent to
-      &#x2018;<code class="Li"><var class="Ar">name</var> <code class="Ic">EQUS
-      &quot;</code><var class="Ar">value</var>&quot;</code>&#x2019; in code, or
-      &#x2018;<code class="Li"><var class="Ar">name</var> <code class="Ic">EQUS
-      &quot;1&quot;</code></code>&#x2019; if <var class="Ar">value</var> is not
-      specified.</dd>
-  <dt><a class="permalink" href="#E"><code class="Fl" id="E">-E</code></a>,
-    <code class="Fl">--export-all</code></dt>
-  <dd>Export all labels, including unreferenced and local labels.</dd>
-  <dt><a class="permalink" href="#g"><code class="Fl" id="g">-g</code></a>
-    <var class="Ar">chars</var>,
-    <code class="Fl">--gfx-chars</code>
-    <var class="Ar">chars</var></dt>
-  <dd>Change the four characters used for gfx constants. The defaults are
-    0123.</dd>
-  <dt><a class="permalink" href="#h"><code class="Fl" id="h">-h</code></a>,
-    <code class="Fl">--halt-without-nop</code></dt>
-  <dd>By default, <code class="Nm">rgbasm</code> inserts a
-      <code class="Ic">nop</code> instruction immediately after any
-      <code class="Ic">halt</code> instruction. The <code class="Fl">-h</code>
-      option disables this behavior.</dd>
-  <dt><a class="permalink" href="#i"><code class="Fl" id="i">-i</code></a>
-    <var class="Ar">path</var>,
-    <code class="Fl">--include</code>
-    <var class="Ar">path</var></dt>
-  <dd>Add an include path.</dd>
-  <dt><a class="permalink" href="#L"><code class="Fl" id="L">-L</code></a>,
-    <code class="Fl">--preserve-ld</code></dt>
-  <dd>Disable the optimization that turns loads of the form <code class="Ic">LD
-      [$FF00+n8],A</code> into the opcode <code class="Ic">LDH
-      [$FF00+n8],A</code> in order to have full control of the result in the
-      final ROM.</dd>
-  <dt><a class="permalink" href="#M"><code class="Fl" id="M">-M</code></a>
-    <var class="Ar">depend_file</var>,
-    <code class="Fl">--dependfile</code>
-    <var class="Ar">depend_file</var></dt>
-  <dd>Print <a class="Xr">make(1)</a> dependencies to
-      <var class="Ar">depend_file</var>.</dd>
-  <dt><a class="permalink" href="#MG"><code class="Fl" id="MG">-MG</code></a></dt>
-  <dd>To be used in conjunction with <code class="Fl">-M</code>. This makes
-      <code class="Nm">rgbasm</code> assume that missing files are
-      auto-generated: when <code class="Ic">INCLUDE</code> or
-      <code class="Ic">INCBIN</code> is attempted on a non-existent file, it is
-      added as a dependency, then <code class="Nm">rgbasm</code> exits normally
-      instead of erroring out. This feature is used in automatic updating of
-      makefiles.</dd>
-  <dt><a class="permalink" href="#MP"><code class="Fl" id="MP">-MP</code></a></dt>
-  <dd>When enabled, this causes a phony target to be added for each dependency
-      other than the main file. This prevents <a class="Xr">make(1)</a> from
-      erroring out when dependency files are deleted.</dd>
-  <dt><a class="permalink" href="#MT"><code class="Fl" id="MT">-MT</code></a>
-    <var class="Ar">target_file</var></dt>
-  <dd>Add a target to the rules emitted by <code class="Fl">-M</code>. The exact
-      string provided will be written, including spaces and special characters.
-    <div class="Bd Bd-indent"><code class="Li"><code class="Fl">-MT</code>
-      <code class="Fl">-fileA</code> <code class="Fl">-MT</code>
-      <code class="Fl">-fileB</code></code></div>
-    is equivalent to
-    <div class="Bd Bd-indent"><code class="Li"><code class="Fl">-MT</code>
-      <code class="Fl">-'fileA</code>
-      <code class="Fl">-fileB'</code>.</code></div>
-    If neither this nor <code class="Fl">-MQ</code> is specified, the output
-      file name is used.</dd>
-  <dt><a class="permalink" href="#MQ"><code class="Fl" id="MQ">-MQ</code></a>
-    <var class="Ar">target_file</var></dt>
-  <dd>Same as <code class="Fl">-MT</code>, but additionally escapes any special
-      <a class="Xr">make(1)</a> characters, essentially &#x2018;$&#x2019;.</dd>
-  <dt><a class="permalink" href="#o"><code class="Fl" id="o">-o</code></a>
-    <var class="Ar">out_file</var>,
-    <code class="Fl">--output</code>
-    <var class="Ar">out_file</var></dt>
-  <dd>Write an object file to the given filename.</dd>
-  <dt><a class="permalink" href="#p"><code class="Fl" id="p">-p</code></a>
-    <var class="Ar">pad_value</var>,
-    <code class="Fl">--pad-value</code>
-    <var class="Ar">pad_value</var></dt>
-  <dd>When padding an image, pad with this value. The default is 0x00.</dd>
-  <dt><a class="permalink" href="#r"><code class="Fl" id="r">-r</code></a>
-    <var class="Ar">recursion_depth</var>,
-    <code class="Fl">--recursion-depth</code>
-    <var class="Ar">recursion_depth</var></dt>
-  <dd>Specifies the recursion depth at which RGBASM will assume being in an
-      infinite loop.</dd>
-  <dt><a class="permalink" href="#V"><code class="Fl" id="V">-V</code></a>,
-    <code class="Fl">--version</code></dt>
-  <dd>Print the version of the program and exit.</dd>
-  <dt><a class="permalink" href="#v"><code class="Fl" id="v">-v</code></a>,
-    <code class="Fl">--verbose</code></dt>
-  <dd>Be verbose.</dd>
-  <dt><a class="permalink" href="#W"><code class="Fl" id="W">-W</code></a>
-    <var class="Ar">warning</var>,
-    <code class="Fl">--warning</code>
-    <var class="Ar">warning</var></dt>
-  <dd>Set warning flag <var class="Ar">warning</var>. A warning message will be
-      printed if <var class="Ar">warning</var> is an unknown warning flag. See
-      the <a class="Sx" href="#DIAGNOSTICS">DIAGNOSTICS</a> section for a list
-      of warnings.</dd>
-  <dt><a class="permalink" href="#w"><code class="Fl" id="w">-w</code></a></dt>
-  <dd>Disable all warning output, even when turned into errors.</dd>
-</dl>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="DIAGNOSTICS"><a class="permalink" href="#DIAGNOSTICS">DIAGNOSTICS</a></h1>
-Warnings are diagnostic messages that indicate possibly erroneous behavior that
-  does not necessarily compromise the assembling process. The following options
-  alter the way warnings are processed.
-<dl class="Bl-tag">
-  <dt><a class="permalink" href="#Werror"><code class="Fl" id="Werror">-Werror</code></a></dt>
-  <dd>Make all warnings into errors.</dd>
-  <dt><a class="permalink" href="#Werror="><code class="Fl" id="Werror=">-Werror=</code></a></dt>
-  <dd>Make the specified warning into an error. A warning's name is appended
-      (example: <code class="Fl">-Werror=obsolete</code>), and this warning is
-      implicitly enabled and turned into an error. This is an error if used with
-      a meta warning, such as <code class="Fl">-Werror=all</code>.</dd>
-</dl>
-<p class="Pp">The following warnings are &#x201C;meta&#x201D; warnings, that
-    enable a collection of other warnings. If a specific warning is toggled via
-    a meta flag and a specific one, the more specific one takes priority. The
-    position on the command-line acts as a tie breaker, the last one taking
-    effect.</p>
-<dl class="Bl-tag">
-  <dt><a class="permalink" href="#Wall"><code class="Fl" id="Wall">-Wall</code></a></dt>
-  <dd>This enables warnings that are likely to indicate an error or undesired
-      behavior, and that can easily be fixed.</dd>
-  <dt><a class="permalink" href="#Wextra"><code class="Fl" id="Wextra">-Wextra</code></a></dt>
-  <dd>This enables extra warnings that are less likely to pose a problem, but
-      that may still be wanted.</dd>
-  <dt><a class="permalink" href="#Weverything"><code class="Fl" id="Weverything">-Weverything</code></a></dt>
-  <dd>Enables literally every warning.</dd>
-</dl>
-<p class="Pp">The following warnings are actual warning flags; with each
-    description, the corresponding warning flag is included. Note that each of
-    these flag also has a negation (for example,
-    <code class="Fl">-Wempty-entry</code> enables the warning that
-    <code class="Fl">-Wno-empty-entry</code> disables). Only the non-default
-    flag is listed here. Ignoring the &#x201C;no-&#x201D; prefix, entries are
-    listed alphabetically.</p>
-<dl class="Bl-tag">
-  <dt><a class="permalink" href="#Wno-assert"><code class="Fl" id="Wno-assert">-Wno-assert</code></a></dt>
-  <dd>Warns when <code class="Ic">WARN</code><span class="No">-type</span>
-      assertions fail. (See &#x201C;Aborting the assembly process&#x201D; in
-      <a class="Xr" href="rgbasm.5.html">rgbasm(5)</a> for <code class="Ic">ASSERT</code>).</dd>
-  <dt><a class="permalink" href="#Wbuiltin-args"><code class="Fl" id="Wbuiltin-args">-Wbuiltin-args</code></a></dt>
-  <dd>Warn about incorrect arguments to built-in functions, such as
-      <code class="Fn">STRSUB</code>() with indexes outside of the string's
-      bounds. This warning is enabled by <code class="Fl">-Wall</code>.</dd>
-  <dt><a class="permalink" href="#Wdiv"><code class="Fl" id="Wdiv">-Wdiv</code></a></dt>
-  <dd>Warn when dividing the smallest negative integer by -1, which yields
-      itself due to integer overflow.</dd>
-  <dt><a class="permalink" href="#Wempty-entry"><code class="Fl" id="Wempty-entry">-Wempty-entry</code></a></dt>
-  <dd>Warn when an empty entry is encountered in a <code class="Ic">db</code>,
-      <code class="Ic">dw</code>, <code class="Ic">dl</code> list. This warning
-      is enabled by <code class="Fl">-Wextra</code>.</dd>
-  <dt><a class="permalink" href="#Wlarge-constant"><code class="Fl" id="Wlarge-constant">-Wlarge-constant</code></a></dt>
-  <dd>Warn when a constant too large to fit in a signed 32-bit integer is
-      encountered. This warning is enabled by
-    <code class="Fl">-Wall</code>.</dd>
-  <dt><a class="permalink" href="#Wlong-string"><code class="Fl" id="Wlong-string">-Wlong-string</code></a></dt>
-  <dd>Warn when a string too long to fit in internal buffers is encountered.
-      This warning is enabled by <code class="Fl">-Wall</code>.</dd>
-  <dt><a class="permalink" href="#Wno-obsolete"><code class="Fl" id="Wno-obsolete">-Wno-obsolete</code></a></dt>
-  <dd>Warn when obsolete constructs such as the <code class="Ic">jp [hl]</code>
-      instruction or <code class="Ic">HOME</code> section type are
-    encountered.</dd>
-  <dt><a class="permalink" href="#Wshift"><code class="Fl" id="Wshift">-Wshift</code></a></dt>
-  <dd>Warn when shifting right a negative value. Use a division by 2^N
-    instead.</dd>
-  <dt><a class="permalink" href="#Wshift-amount"><code class="Fl" id="Wshift-amount">-Wshift-amount</code></a></dt>
-  <dd>Warn when a shift's operand is negative or greater than 32.</dd>
-  <dt><a class="permalink" href="#Wno-truncation"><code class="Fl" id="Wno-truncation">-Wno-truncation</code></a></dt>
-  <dd>Warn when an implicit truncation (for example, <code class="Ic">db</code>)
-      loses some bits.</dd>
-  <dt><a class="permalink" href="#Wno-user"><code class="Fl" id="Wno-user">-Wno-user</code></a></dt>
-  <dd>Warn when the <code class="Ic">WARN</code> built-in is executed. (See
-      &#x201C;Aborting the assembly process&#x201D; in
-      <a class="Xr" href="rgbasm.5.html">rgbasm(5)</a> for <code class="Ic">WARN</code>).</dd>
-</dl>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="EXAMPLES"><a class="permalink" href="#EXAMPLES">EXAMPLES</a></h1>
-You can assemble a source file in two ways.
-<p class="Pp">Straightforward way:</p>
-<div class="Bd Bd-indent"><code class="Li">$ rgbasm -o bar.o
-  foo.asm</code></div>
-<p class="Pp">Pipes way:</p>
-<div class="Bd Bd-indent"><code class="Li">$ cat foo.asm | rgbasm -o bar.o
-  -</code></div>
-<div class="Bd Bd-indent"><code class="Li">$ rgbasm -o bar.o - &lt;
-  foo.asm</code></div>
-<p class="Pp">The resulting object file is not yet a usable ROM image&#x2014;it
-    must first be run through <a class="Xr" href="rgblink.1.html">rgblink(1)</a> and then
-    <a class="Xr" href="rgbfix.1.html">rgbfix(1)</a>.</p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="BUGS"><a class="permalink" href="#BUGS">BUGS</a></h1>
-Please report bugs on
-  <a class="Lk" href="https://github.com/rednex/rgbds/issues">GitHub</a>.
-</section>
-<section class="Sh">
-<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
-  ALSO</a></h1>
-<a class="Xr" href="rgbasm.5.html">rgbasm(5)</a>, <a class="Xr" href="rgbfix.1.html">rgbfix(1)</a>,
-  <a class="Xr" href="rgblink.1.html">rgblink(1)</a>, <a class="Xr" href="rgbds.5.html">rgbds(5)</a>,
-  <a class="Xr" href="rgbds.7.html">rgbds(7)</a>, <a class="Xr" href="gbz80.7.html">gbz80(7)</a>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1>
-<code class="Nm">rgbasm</code> was originally written by Carsten S&#x00F8;rensen
-  as part of the ASMotor package, and was later packaged in RGBDS by Justin
-  Lloyd. It is now maintained by a number of contributors at
-  <a class="Lk" href="https://github.com/rednex/rgbds">https://github.com/rednex/rgbds</a>.
-</section>
-</div>
-<table class="foot">
-  <tr>
-    <td class="foot-date">July 8, 2019</td>
-    <td class="foot-os">General</td>
-  </tr>
-</table>
-</body>
-</html>
--- a/docs/rgbasm.5.html
+++ /dev/null
@@ -1,1751 +1,0 @@
-<!DOCTYPE html>
-<html>
-<!-- This is an automatically generated file.  Do not edit.
-   This file is part of RGBDS.
-  
-   Copyright (c) 2017-2018, Antonio Nino Diaz and RGBDS contributors.
-  
-   SPDX-License-Identifier: MIT
-   -->
-<head>
-  <meta name="viewport" content="width=device-width, initial-scale=1">
-  <meta charset="utf-8"/>
-  <link rel="stylesheet" href="mandoc.css" type="text/css" media="all"/>
-  <link rel="stylesheet" href="rgbds.css" type="text/css" media="all"/>
-  <title>RGBASM(5)</title>
-</head>
-<body>
-<table class="head">
-  <tr>
-    <td class="head-ltitle">RGBASM(5)</td>
-    <td class="head-vol">File Formats Manual</td>
-    <td class="head-rtitle">RGBASM(5)</td>
-  </tr>
-</table>
-<div class="manual-text">
-<section class="Sh">
-<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
-<code class="Nm">rgbasm</code> &#x2014;
-<span class="Nd">language documentation</span>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
-This is the full description of the language used by
-  <a class="Xr" href="rgbasm.1.html">rgbasm(1)</a>. The description of the instructions supported by
-  the Game Boy CPU is in <a class="Xr" href="gbz80.7.html">gbz80(7)</a>.
-<p class="Pp">It is strongly recommended to have some familiarity with the Game
-    Boy hardware before reading this document. RGBDS is specifically targeted at
-    the Game Boy, and thus a lot of its features tie directly to its concepts.
-    This document is not intended to be a Game Boy hardware reference.</p>
-<p class="Pp">Generally, &#x201C;the linker&#x201D; will refer to
-    <a class="Xr" href="rgblink.1.html">rgblink(1)</a>, but any program that processes RGB object
-    files (described in <a class="Xr" href="rgbds.5.html">rgbds(5)</a>) can be used in its
-  place.</p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="SYNTAX"><a class="permalink" href="#SYNTAX">SYNTAX</a></h1>
-The syntax is line&#x2010;based, just as in any other assembler, meaning that
-  you do one instruction or pseudo&#x2010;op per line:
-<p class="Pp"></p>
-<div class="Bd Bd-indent"><code class="Li">[<var class="Ar">label</var>]
-  [<var class="Ar">instruction</var>]
-  [<var class="Ar">;&#x00A0;comment</var>]</code></div>
-<p class="Pp">Example:</p>
-<div class="Bd Pp Bd-indent">
-<pre>
-John: ld a,87 ;Weee
-</pre>
-</div>
-<p class="Pp">All reserved keywords (pseudo&#x2010;ops, mnemonics, registers
-    etc.) are case&#x2010;insensitive, all identifiers (symbol names) are
-    case-sensitive.</p>
-<p class="Pp">Comments are used to give humans information about the code, such
-    as explanations. The assembler <i class="Em">always</i> ignores comments and
-    their contents.</p>
-<p class="Pp">There are two syntaxes for comments. The most common is that
-    anything that follows a semicolon &#x2018;<code class="Li">;</code>&#x2019;
-    not inside a string, is a comment until the end of the line. The other is
-    that lines beginning with a &#x2018;<code class="Li">*</code>&#x2019; (not
-    even spaces before it) are ignored. This second syntax is deprecated (will
-    be removed in a future version) and should be replaced with the first
-  one.</p>
-<p class="Pp">Sometimes lines can be too long and it may be necessary to split
-    them. To do so, put a backslash at the end of the line:</p>
-<div class="Bd Pp Bd-indent">
-<pre>
-    DB 1, 2, 3,&#x00A0;\
-       4, 5, 6,&#x00A0;\&#x00A0;;&#x00A0;Put it before any comments
-       7, 8, 9
-</pre>
-</div>
-<p class="Pp">This works anywhere in the code except inside of strings. To split
-    strings it is needed to use <code class="Fn">STRCAT</code>() like this:</p>
-<div class="Bd Pp Bd-indent">
-<pre>
-    db STRCAT(&quot;Hello &quot;,&#x00A0;\
-              &quot;world!&quot;)
-</pre>
-</div>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="EXPRESSIONS"><a class="permalink" href="#EXPRESSIONS">EXPRESSIONS</a></h1>
-An expression can be composed of many things. Numerical expressions are always
-  evaluated using signed 32-bit math. Zero is considered to be the only
-  &quot;false&quot; number, all non-zero numbers (including negative) are
-  &quot;true&quot;.
-<p class="Pp">An expression is said to be &quot;constant&quot; if
-    <code class="Nm">rgbasm</code> knows its value. This is generally always the
-    case, unless a label is involved, as explained in the
-    <a class="Sx" href="#SYMBOLS">SYMBOLS</a> section.</p>
-<p class="Pp">The instructions in the macro-language generally require constant
-    expressions.</p>
-<section class="Ss">
-<h2 class="Ss" id="Numeric_Formats"><a class="permalink" href="#Numeric_Formats">Numeric
-  Formats</a></h2>
-There are a number of numeric formats.
-<table class="Bl-column Bd-indent">
-  <tr>
-    <th>Format type</th>
-    <th>Prefix</th>
-    <th>Accepted characters</th>
-  </tr>
-  <tr>
-    <td>Hexadecimal</td>
-    <td>$</td>
-    <td>0123456789ABCDEF</td>
-  </tr>
-  <tr>
-    <td>Decimal</td>
-    <td>none</td>
-    <td>0123456789</td>
-  </tr>
-  <tr>
-    <td>Octal</td>
-    <td>&amp;</td>
-    <td>01234567</td>
-  </tr>
-  <tr>
-    <td>Binary</td>
-    <td>%</td>
-    <td>01</td>
-  </tr>
-  <tr>
-    <td>Fixed point (16.16)</td>
-    <td>none</td>
-    <td>01234.56789</td>
-  </tr>
-  <tr>
-    <td>Character constant</td>
-    <td>none</td>
-    <td>&quot;ABYZ&quot;</td>
-  </tr>
-  <tr>
-    <td>Gameboy graphics</td>
-    <td>`</td>
-    <td>0123</td>
-  </tr>
-</table>
-<p class="Pp">The &quot;character constant&quot; form yields the value the
-    character maps to in the current charmap. For example, by default (refer to
-    <a class="Xr">ascii(7)</a>) &#x2018;&quot;A&quot;&#x2019; yields 65. See
-    <a class="Sx" href="#Character_maps">Character maps</a> for information on
-    charmaps.</p>
-<p class="Pp">The last one, Gameboy graphics, is quite interesting and useful.
-    After the backtick, 8 digits between 0 and 3 are expected, corresponding to
-    pixel values. The resulting value is the two bytes of tile data that would
-    produce that row of pixels. For example, &#x2018;`01012323&#x2019; is
-    equivalent to &#x2018;$0F55&#x2019;.</p>
-<p class="Pp">You can also use symbols, which are implicitly replaced with their
-    value.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="Operators"><a class="permalink" href="#Operators">Operators</a></h2>
-A great number of operators you can use in expressions are available (listed
-  from highest to lowest precedence):
-<table class="Bl-column Bd-indent">
-  <tr>
-    <th>Operator</th>
-    <th>Meaning</th>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#(__&amp;)"><code class="Li" id="(__&amp;)">(
-      )</code></a></td>
-    <td>Precedence override</td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#FUNC()"><code class="Li" id="FUNC()">FUNC()</code></a></td>
-    <td>Built-in function call</td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#~_+_-"><code class="Li" id="~_+_-">~ +
-      -</code></a></td>
-    <td>Unary complement/plus/minus</td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#*_/__"><code class="Li" id="*_/__">* /
-      %</code></a></td>
-    <td>Multiply/divide/modulo</td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#_____"><code class="Li" id="_____">&lt;&lt;
-      &gt;&gt;</code></a></td>
-    <td>Shift left/right</td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#&amp;__&amp;___"><code class="Li" id="&amp;__&amp;___">&amp;
-      | ^</code></a></td>
-    <td>Binary and/or/xor</td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#+_-"><code class="Li" id="+_-">+
-      -</code></a></td>
-    <td>Add/subtract</td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#!=_==__=__=____"><code class="Li" id="!=_==__=__=____">!=
-      == &lt;= &gt;= &lt; &gt;</code></a></td>
-    <td>Comparison</td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#&amp;&amp;___"><code class="Li" id="&amp;&amp;___">&amp;&amp;
-      ||</code></a></td>
-    <td>Boolean and/or</td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#!"><code class="Li" id="!">!</code></a></td>
-    <td>Unary not</td>
-  </tr>
-</table>
-<p class="Pp"><code class="Ic">~</code> complements a value by inverting all its
-    bits.</p>
-<p class="Pp"><code class="Ic">%</code> is used to get the remainder of the
-    corresponding division. &#x2018;5 % 2&#x2019; is 1.</p>
-<p class="Pp">Shifting works by shifting all bits in the left operand either
-    left (&#x2018;&lt;&lt;&#x2019;) or right (&#x2018;&gt;&gt;&#x2019;) by the
-    right operand's amount. When shifting left, all newly-inserted bits are
-    reset; when shifting right, they are copies of the original most significant
-    bit instead. This makes &#x2018;a &lt;&lt; b&#x2019; and &#x2018;a &gt;&gt;
-    b&#x2019; equivalent to multiplying and dividing by 2 to the power of b,
-    respectively.</p>
-<p class="Pp">Comparison operators return 0 if the comparison is false, and 1
-    otherwise.</p>
-<p class="Pp">Unlike in a lot of languages, and for technical reasons,
-    <code class="Nm">rgbasm</code> still evaluates both operands of
-    &#x2018;&amp;&amp;&#x2019; and &#x2018;||&#x2019;.</p>
-<p class="Pp">! returns 1 if the operand was 0, and 0 otherwise.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="Fixed__u2010_point_Expressions"><a class="permalink" href="#Fixed__u2010_point_Expressions">Fixed&#x2010;point
-  Expressions</a></h2>
-Fixed-point numbers are basically normal (32-bit) integers, which count
-  65536th's instead of entire units, offering better precision than integers but
-  limiting the range of values. The upper 16 bits are used for the integer part
-  and the lower 16 bits are used for the fraction (65536ths). Since they are
-  still akin to integers, you can use them in normal integer expressions, and
-  some integer operators like &#x2018;+&#x2019; and &#x2018;-&#x2019; don't care
-  whether the operands are integers or fixed-point. You can easily truncate a
-  fixed-point number into an integer by shifting it right by 16 bits. It follows
-  that you can convert an integer to a fixed-point number by shifting it left.
-<p class="Pp">The following functions are designed to operate with fixed-point
-    numbers:</p>
-<table class="Bl-column Bd-indent">
-  <tr>
-    <th>Name</th>
-    <th>Operation</th>
-  </tr>
-  <tr>
-    <td><code class="Fn">DIV</code>(<var class="Fa">x</var>,
-      <var class="Fa">y</var>)</td>
-    <td>
-    <math class="eqn">
-      <mrow><mi>x</mi><mo>&#x00F7;</mo><mi>y</mi></mrow>
-    </math>
-    </td>
-  </tr>
-  <tr>
-    <td><code class="Fn">MUL</code>(<var class="Fa">x</var>,
-      <var class="Fa">y</var>)</td>
-    <td>
-    <math class="eqn">
-      <mrow><mi>x</mi><mo>&#x00D7;</mo><mi>y</mi></mrow>
-    </math>
-    </td>
-  </tr>
-  <tr>
-    <td><code class="Fn">SIN</code>(<var class="Fa">x</var>)</td>
-    <td>
-    <math class="eqn">
-      <mrow><mi>sin</mi><mo>(</mo><mi>x</mi><mo>)</mo></mrow>
-    </math>
-    </td>
-  </tr>
-  <tr>
-    <td><code class="Fn">COS</code>(<var class="Fa">x</var>)</td>
-    <td>
-    <math class="eqn">
-      <mrow><mi>cos</mi><mo>(</mo><mi>x</mi><mo>)</mo></mrow>
-    </math>
-    </td>
-  </tr>
-  <tr>
-    <td><code class="Fn">TAN</code>(<var class="Fa">x</var>)</td>
-    <td>
-    <math class="eqn">
-      <mrow><mi>tan</mi><mo>(</mo><mi>x</mi><mo>)</mo></mrow>
-    </math>
-    </td>
-  </tr>
-  <tr>
-    <td><code class="Fn">ASIN</code>(<var class="Fa">x</var>)</td>
-    <td>
-    <math class="eqn">
-      <mrow><mi>asin</mi><mo>(</mo><mi>x</mi><mo>)</mo></mrow>
-    </math>
-    </td>
-  </tr>
-  <tr>
-    <td><code class="Fn">ACOS</code>(<var class="Fa">x</var>)</td>
-    <td>
-    <math class="eqn">
-      <mrow><mi>acos</mi><mo>(</mo><mi>x</mi><mo>)</mo></mrow>
-    </math>
-    </td>
-  </tr>
-  <tr>
-    <td><code class="Fn">ATAN</code>(<var class="Fa">x</var>)</td>
-    <td>
-    <math class="eqn">
-      <mrow><mi>atan</mi><mo>(</mo><mi>x</mi><mo>)</mo></mrow>
-    </math>
-    </td>
-  </tr>
-  <tr>
-    <td><code class="Fn">ATAN2</code>(<var class="Fa">x</var>,
-      <var class="Fa">y</var>)</td>
-    <td>Angle between
-    <math class="eqn">
-      <mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow>
-    </math>
-     and
-    <math class="eqn">
-      <mrow><mo>(</mo><mn>1</mn><mo>,</mo><mn>0</mn><mo>)</mo></mrow>
-    </math>
-    </td>
-  </tr>
-</table>
-<p class="Pp">These functions are useful for automatic generation of various
-    tables. Example: assuming a circle has 65536.0 degrees, and sine values are
-    in range [-1.0 ;&#x00A0;1.0]:</p>
-<div class="Bd Pp Bd-indent">
-<pre>
-;&#x00A0;--
-;&#x00A0;-- Generate a 256-byte sine table with values between 0 and 128
-;&#x00A0;--
-ANGLE = 0.0
-      REPT 256
-      db MUL(64.0, SIN(ANGLE) + 1.0) &gt;&gt; 16
-ANGLE = ANGLE + 256.0 ; 256 = 65536 / table_len, with table_len = 256
-      ENDR
-</pre>
-</div>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="String_Expressions"><a class="permalink" href="#String_Expressions">String
-  Expressions</a></h2>
-The most basic string expression is any number of characters contained in double
-  quotes (&#x2018;<code class="Li">&quot;for instance&quot;</code>&#x2019;). The
-  backslash character &#x2018;<code class="Li">\</code>&#x2019; is special in
-  that it causes the character following it to be &#x201C;escaped&#x201D;,
-  meaning that it is treated differently from normal. There are a number of
-  escape sequences you can use within a string:
-<table class="Bl-column Bd-indent">
-  <tr>
-    <th>String</th>
-    <th>Meaning</th>
-  </tr>
-  <tr>
-    <td>&#x2018;<code class="Li">\\</code>&#x2019;</td>
-    <td>Produces a backslash</td>
-  </tr>
-  <tr>
-    <td>&#x2018;<code class="Li">\&quot;</code>&#x2019;</td>
-    <td>Produces a double quote without terminating</td>
-  </tr>
-  <tr>
-    <td>&#x2018;<code class="Li">\,</code>&#x2019;</td>
-    <td>Comma</td>
-  </tr>
-  <tr>
-    <td>&#x2018;<code class="Li">\{</code>&#x2019;</td>
-    <td>Curly bracket left</td>
-  </tr>
-  <tr>
-    <td>&#x2018;<code class="Li">\}</code>&#x2019;</td>
-    <td>Curly bracket right</td>
-  </tr>
-  <tr>
-    <td>&#x2018;<code class="Li">\n</code>&#x2019;</td>
-    <td>Newline ($0A)</td>
-  </tr>
-  <tr>
-    <td>&#x2018;<code class="Li">\r</code>&#x2019;</td>
-    <td>Carriage return ($0D)</td>
-  </tr>
-  <tr>
-    <td>&#x2018;<code class="Li">\t</code>&#x2019;</td>
-    <td>Tab ($09)</td>
-  </tr>
-  <tr>
-    <td>&#x201C;\1&#x201D; &#x2013; &#x201C;\9&#x201D;</td>
-    <td>Macro argument (Only the body of a macro, see
-      <a class="Sx" href="#Invoking_macros">Invoking macros</a>)</td>
-  </tr>
-  <tr>
-    <td>&#x2018;<code class="Li">\@</code>&#x2019;</td>
-    <td>Label name suffix (Only in the body of macros and REPTs)</td>
-  </tr>
-</table>
-(Note that some of those can be used outside of strings, when noted further in
-  this document.)
-<p class="Pp">A funky feature is
-    &#x2018;<code class="Li">{symbol}</code>&#x2019; within a string, called
-    &#x201C;symbol interpolation&#x201D;. This will paste
-    <var class="Ar">symbol</var>'s contents as a string. If it's a string
-    symbol, the string is simply inserted. If it's a numeric symbol, its value
-    is converted to hexadecimal notation with a dollar sign &#x2018;$&#x2019;
-    prepended.</p>
-<div class="Bd Pp Bd-indent">
-<pre>
-TOPIC equs &quot;life, the universe, and everything&quot;
-ANSWER = 42
-;&#x00A0;Prints &quot;The answer to life, the universe, and everything is $2A&quot;
-PRINTT &quot;The answer to {TOPIC} is {ANSWER}\n&quot;
-</pre>
-</div>
-<p class="Pp">Symbol interpolations can be nested, too!</p>
-<p class="Pp">It's possible to change the way numeric symbols are converted by
-    specifying a print type like so:
-    &#x2018;<code class="Li">{d:symbol}</code>&#x2019;. Valid print types
-  are:</p>
-<table class="Bl-column Bd-indent">
-  <tr>
-    <th>Print type</th>
-    <th>Format</th>
-    <th>Example</th>
-  </tr>
-  <tr>
-    <td>&#x2018;<code class="Li">d</code>&#x2019;</td>
-    <td>Decimal</td>
-    <td>42</td>
-  </tr>
-  <tr>
-    <td>&#x2018;<code class="Li">x</code>&#x2019;</td>
-    <td>Lowercase hexadecimal</td>
-    <td>2a</td>
-  </tr>
-  <tr>
-    <td>&#x2018;<code class="Li">X</code>&#x2019;</td>
-    <td>Uppercase hexadecimal</td>
-    <td>2A</td>
-  </tr>
-  <tr>
-    <td>&#x2018;<code class="Li">b</code>&#x2019;</td>
-    <td>Binary</td>
-    <td>101010</td>
-  </tr>
-</table>
-<p class="Pp">Note that print types should only be used with numeric values, not
-    strings.</p>
-<p class="Pp">HINT: The <code class="Ic">{symbol}</code> construct can also be
-    used outside strings. The symbol's value is again inserted directly.</p>
-<p class="Pp">The following functions operate on string expressions. Most of
-    them return a string, however some of these functions actually return an
-    integer and can be used as part of an integer expression!</p>
-<table class="Bl-column">
-  <tr>
-    <th>Name</th>
-    <th>Operation</th>
-  </tr>
-  <tr>
-    <td><code class="Fn">STRLEN</code>(<var class="Fa">string</var>)</td>
-    <td>Returns the number of characters in <var class="Ar">string</var>.</td>
-  </tr>
-  <tr>
-    <td><code class="Fn">STRCAT</code>(<var class="Fa">str1</var>,
-      <var class="Fa">str2</var>)</td>
-    <td>Appends <var class="Ar">str2</var> <span class="No">to</span>
-      <var class="Ar">str1</var>.</td>
-  </tr>
-  <tr>
-    <td><code class="Fn">STRCMP</code>(<var class="Fa">str1</var>,
-      <var class="Fa">str2</var>)</td>
-    <td>Returns negative if <var class="Ar">str1</var> <span class="No">is
-      alphabetically lower than</span> <var class="Ar">str2</var> ,
-      <span class="No">zero if they match, positive if</span>
-      <var class="Ar">str1</var> <span class="No">is greater than</span>
-      <var class="Ar">str2</var>.</td>
-  </tr>
-  <tr>
-    <td><code class="Fn">STRIN</code>(<var class="Fa">str1</var>,
-      <var class="Fa">str2</var>)</td>
-    <td>Returns the position of <var class="Ar">str2</var>
-      <span class="No">in</span> <var class="Ar">str1</var> <span class="No">or
-      zero if it's not present</span> (first character is position 1).</td>
-  </tr>
-  <tr>
-    <td><code class="Fn">STRSUB</code>(<var class="Fa">str</var>,
-      <var class="Fa">pos</var>, <var class="Fa">len</var>)</td>
-    <td>Returns a substring from <var class="Ar">str</var>
-      <span class="No">starting at</span> <var class="Ar">pos</var> (first
-      character is position 1) and <var class="Ar">len</var>
-      <span class="No">characters long.</span></td>
-  </tr>
-  <tr>
-    <td><code class="Fn">STRUPR</code>(<var class="Fa">str</var>)</td>
-    <td>Converts all characters in <var class="Ar">str</var> <span class="No">to
-      capitals and returns the new string.</span></td>
-  </tr>
-  <tr>
-    <td><code class="Fn">STRLWR</code>(<var class="Fa">str</var>)</td>
-    <td>Converts all characters in <var class="Ar">str</var> <span class="No">to
-      lower case and returns the new string.</span></td>
-  </tr>
-</table>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="Character_maps"><a class="permalink" href="#Character_maps">Character
-  maps</a></h2>
-When writing text that is meant to be displayed in the Game Boy, the characters
-  used in the source code may have a different encoding than the default of
-  ASCII. For example, the tiles used for uppercase letters may be placed
-  starting at tile index 128, which makes it difficult to add text strings to
-  the ROM.
-<p class="Pp">Character maps allow mapping strings up to 16 characters long to
-    an abitrary 8-bit value:</p>
-<div class="Bd Pp Bd-indent">
-<pre>
-CHARMAP &quot;&lt;LF&gt;&quot;, 10
-CHARMAP &quot;&amp;iacute&quot;, 20
-CHARMAP &quot;A&quot;, 128
-</pre>
-</div>
-By default, a character map contains ASCII encoding.
-<p class="Pp">It is possible to create multiple character maps and then switch
-    between them as desired. This can be used to encode debug information in
-    ASCII and use a different encoding for other purposes, for example.
-    Initially, there is one character map called &#x2018;main&#x2019; and it is
-    automatically selected as the current character map from the beginning.
-    There is also a character map stack that can be used to save and restore
-    which character map is currently active.</p>
-<table class="Bl-column">
-  <tr>
-    <th>Command</th>
-    <th>Meaning</th>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#NEWCHARMAP"><code class="Ic" id="NEWCHARMAP">NEWCHARMAP</code></a>
-      <var class="Ar">name</var></td>
-    <td>Creates a new, empty character map called
-      <var class="Ar">name</var>.</td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#NEWCHARMAP_2"><code class="Ic" id="NEWCHARMAP_2">NEWCHARMAP</code></a>
-      <var class="Ar">name</var>, <var class="Ar">basename</var></td>
-    <td>Creates a new character map called <var class="Ar">name</var>,
-      <span class="No">copied from character map</span>
-      <var class="Ar">basename</var>.</td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#SETCHARMAP"><code class="Ic" id="SETCHARMAP">SETCHARMAP</code></a>
-      <var class="Ar">name</var></td>
-    <td>Switch to character map <var class="Ar">name</var>.</td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#PUSHC"><code class="Ic" id="PUSHC">PUSHC</code></a></td>
-    <td>Push the current character map onto the stack.</td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#POPC"><code class="Ic" id="POPC">POPC</code></a></td>
-    <td>Pop a character map off the stack and switch to it.</td>
-  </tr>
-</table>
-<p class="Pp"><b class="Sy">Note:</b> Character maps affect all strings in the
-    file from the point in which they are defined, until switching to a
-    different character map. This means that any string that the code may want
-    to print as debug information will also be affected by it.</p>
-<p class="Pp"><b class="Sy">Note:</b> The output value of a mapping can be 0. If
-    this happens, the assembler will treat this as the end of the string and the
-    rest of it will be trimmed.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="Other_functions"><a class="permalink" href="#Other_functions">Other
-  functions</a></h2>
-There are a few other functions that do various useful things:
-<table class="Bl-column">
-  <tr>
-    <th>Name</th>
-    <th>Operation</th>
-  </tr>
-  <tr>
-    <td><code class="Fn">BANK</code>(<var class="Fa">arg</var>)</td>
-    <td>Returns a bank number. If <var class="Ar">arg</var> is the symbol
-      <code class="Ic">@</code>, this function returns the bank of the current
-      section. If <var class="Ar">arg</var> is a string, it returns the bank of
-      the section that has that name. If <var class="Ar">arg</var> is a label,
-      it returns the bank number the label is in. The result may be constant if
-      <code class="Nm">rgbasm</code> is able to compute it.</td>
-  </tr>
-  <tr>
-    <td><code class="Fn">DEF</code>(<var class="Fa">label</var>)</td>
-    <td>Returns TRUE (1) if <var class="Ar">label</var> has been defined, FALSE
-      (0) otherwise. String symbols are not expanded within the
-      parentheses.</td>
-  </tr>
-  <tr>
-    <td><code class="Fn">HIGH</code>(<var class="Fa">arg</var>)</td>
-    <td>Returns the top 8 bits of the operand if <var class="Ar">arg</var>
-      <span class="No">is a label or constant, or the top 8-bit register if it
-      is a 16-bit register.</span></td>
-  </tr>
-  <tr>
-    <td><code class="Fn">LOW</code>(<var class="Fa">arg</var>)</td>
-    <td>Returns the bottom 8 bits of the operand if <var class="Ar">arg</var>
-      <span class="No">is a label or constant, or the bottom 8-bit register if
-      it is a 16-bit register</span> (<code class="Cm">AF</code>
-      <span class="No">isn't a valid register for this function</span>).</td>
-  </tr>
-  <tr>
-    <td><code class="Fn">ISCONST</code>(<var class="Fa">arg</var>)</td>
-    <td>Returns 1 if <var class="Ar">arg</var>'s value is known by RGBASM (e.g.
-      if it can be an argument to <code class="Ic">IF</code>), or 0 if only
-      RGBLINK can compute its value.</td>
-  </tr>
-</table>
-</section>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="SECTIONS"><a class="permalink" href="#SECTIONS">SECTIONS</a></h1>
-Before you can start writing code, you must define a section. This tells the
-  assembler what kind of information follows and, if it is code, where to put
-  it.
-<p class="Pp"></p>
-<div class="Bd Bd-indent"><code class="Li">SECTION <var class="Ar">name</var>,
-  <var class="Ar">type</var></code></div>
-<div class="Bd Bd-indent"><code class="Li">SECTION <var class="Ar">name</var>,
-  <var class="Ar">type</var>, <var class="Ar">options</var></code></div>
-<div class="Bd Bd-indent"><code class="Li">SECTION <var class="Ar">name</var>,
-  <var class="Ar">type</var>[<var class="Ar">addr</var>]</code></div>
-<div class="Bd Bd-indent"><code class="Li">SECTION <var class="Ar">name</var>,
-  <var class="Ar">type</var>[<var class="Ar">addr</var>],
-  <var class="Ar">options</var></code></div>
-<p class="Pp"><var class="Ar">name</var> is a string enclosed in double quotes,
-    and can be a new name or the name of an existing section. If the type
-    doesn't match, an error occurs. All other sections must have a unique name,
-    even in different source files, or the linker will treat it as an error.</p>
-<p class="Pp">Possible section <var class="Ar">type</var>s are as follows:</p>
-<dl class="Bl-tag">
-  <dt><a class="permalink" href="#ROM0"><code class="Ic" id="ROM0">ROM0</code></a></dt>
-  <dd>A ROM section. <var class="Ar">addr</var> can range from
-      <span class="Ad">$0000</span> to <span class="Ad">$3FFF</span>, or
-      <span class="Ad">$0000</span> to <span class="Ad">$7FFF</span> if tiny ROM
-      mode is enabled in the linker.</dd>
-  <dt><a class="permalink" href="#ROMX"><code class="Ic" id="ROMX">ROMX</code></a></dt>
-  <dd>A banked ROM section. <var class="Ar">addr</var> can range from
-      <span class="Ad">$4000</span> to <span class="Ad">$7FFF</span>.
-      <var class="Ar">bank</var> can range from 1 to 511. Becomes an alias for
-      <code class="Ic">ROM0</code> if tiny ROM mode is enabled in the
-    linker.</dd>
-  <dt><a class="permalink" href="#VRAM"><code class="Ic" id="VRAM">VRAM</code></a></dt>
-  <dd>A banked video RAM section. <var class="Ar">addr</var> can range from
-      <span class="Ad">$8000</span> to <span class="Ad">$9FFF</span>.
-      <var class="Ar">bank</var> can be 0 or 1, but bank 1 is unavailable if DMG
-      mode is enabled in the linker.</dd>
-  <dt><a class="permalink" href="#SRAM"><code class="Ic" id="SRAM">SRAM</code></a></dt>
-  <dd>A banked external (save) RAM section. <var class="Ar">addr</var> can range
-      from <span class="Ad">$A000</span> to <span class="Ad">$BFFF</span>.
-      <var class="Ar">bank</var> can range from 0 to 15.</dd>
-  <dt><a class="permalink" href="#WRAM0"><code class="Ic" id="WRAM0">WRAM0</code></a></dt>
-  <dd>A general-purpose RAM section. <var class="Ar">addr</var> can range from
-      <span class="Ad">$C000</span> to <span class="Ad">$CFFF</span>, or
-      <span class="Ad">$C000</span> to <span class="Ad">$DFFF</span> if WRAM0
-      mode is enabled in the linker.</dd>
-  <dt><a class="permalink" href="#WRAMX"><code class="Ic" id="WRAMX">WRAMX</code></a></dt>
-  <dd>A banked general-purpose RAM section. <var class="Ar">addr</var> can range
-      from <span class="Ad">$D000</span> to <span class="Ad">$DFFF</span>.
-      <var class="Ar">bank</var> can range from 1 to 7. Becomes an alias for
-      <code class="Ic">WRAM0</code> if WRAM0 mode is enabled in the linker.</dd>
-  <dt><a class="permalink" href="#OAM"><code class="Ic" id="OAM">OAM</code></a></dt>
-  <dd>An object attribute RAM section. <var class="Ar">addr</var> can range from
-      <span class="Ad">$FE00</span> to <span class="Ad">$FE9F</span>.</dd>
-  <dt><a class="permalink" href="#HRAM"><code class="Ic" id="HRAM">HRAM</code></a></dt>
-  <dd>A high RAM section. <var class="Ar">addr</var> can range from
-      <span class="Ad">$FF80</span> to <span class="Ad">$FFFE</span>.
-    <p class="Pp"><b class="Sy">Note</b>: While <code class="Nm">rgbasm</code>
-        will automatically optimize <code class="Ic">ld</code> instructions to
-        the smaller and faster <code class="Ic">ldh</code> (see
-        <a class="Xr" href="gbz80.7.html">gbz80(7)</a>) whenever possible, it is generally unable to
-        do so when a label is involved. Using the <code class="Ic">ldh</code>
-        instruction directly is recommended. This forces the assembler to emit a
-        <code class="Ic">ldh</code> instruction and the linker to check if the
-        value is in the correct range.</p>
-  </dd>
-</dl>
-<p class="Pp">Since RGBDS produces ROMs, code and data can only be placed in
-    <code class="Ic">ROM0</code> and <code class="Ic">ROMX</code> sections. To
-    put some in RAM, have it stored in ROM, and copy it to RAM.</p>
-<p class="Pp"><var class="Ar">option</var>s are comma-separated and may
-  include:</p>
-<dl class="Bl-tag">
-  <dt><a class="permalink" href="#BANK"><code class="Ic" id="BANK">BANK</code></a>[<var class="Ar">bank</var>]</dt>
-  <dd>Specify which <var class="Ar">bank</var> for the linker to place the
-      section in. See above for possible values for <var class="Ar">bank</var>,
-      depending on <var class="Ar">type</var>.</dd>
-  <dt><a class="permalink" href="#ALIGN"><code class="Ic" id="ALIGN">ALIGN</code></a>[<var class="Ar">align</var>,
-    <var class="Ar">offset</var>]</dt>
-  <dd>Place the section at an address whose <var class="Ar">align</var>
-      least&#x2010;significant bits are equal to <var class="Ar">offset</var>.
-      (Note that <code class="Ic">ALIGN</code>[<var class="Ar">align</var>] is a
-      shorthand for <code class="Ic">ALIGN</code>[<var class="Ar">align</var>,
-      <span class="No">0</span>]). This option can be used with
-      [<var class="Ar">addr</var>], as long as they don't contradict eachother.
-      It's also possible to request alignment in the middle of a section, see
-      <a class="Sx" href="#Requesting_alignment">Requesting alignment</a>
-    below.</dd>
-</dl>
-<p class="Pp">If [<var class="Ar">addr</var>] is not specified, the section is
-    considered &#x201C;floating&#x201D;; the linker will automatically calculate
-    an appropriate address for the section. Similarly, if
-    <code class="Ic">BANK</code>[<var class="Ar">bank</var>] is not specified,
-    the linker will automatically find a bank with enough space.</p>
-<p class="Pp">Sections can also be placed by using a linker script file. The
-    format is described in <a class="Xr" href="rgblink.5.html">rgblink(5)</a>. They allow the user to
-    place floating sections in the desired bank in the order specified in the
-    script. This is useful if the sections can't be placed at an address
-    manually because the size may change, but they have to be together.</p>
-<p class="Pp">Section examples:</p>
-<ul class="Bl-item">
-  <li>
-    <div class="Bd Pp Bd-indent">
-    <pre>
-SECTION &quot;Cool Stuff&quot;,ROMX
-    </pre>
-    </div>
-    This switches to the section called &#x201C;CoolStuff&#x201D;, creating it
-      if it doesn't already exist. It can end up in any ROM bank. Code and data
-      may follow.</li>
-  <li>If it is needed, the the base address of the section can be specified:
-    <div class="Bd Pp Bd-indent">
-    <pre>
-SECTION &quot;Cool Stuff&quot;,ROMX[$4567]
-    </pre>
-    </div>
-  </li>
-  <li>An example with a fixed bank:
-    <div class="Bd Pp Bd-indent">
-    <pre>
-SECTION &quot;Cool Stuff&quot;,ROMX[$4567],BANK[3]
-    </pre>
-    </div>
-  </li>
-  <li>And if you want to force only the section's bank, and not its position
-      within the bank, that's also possible:
-    <div class="Bd Pp Bd-indent">
-    <pre>
-SECTION &quot;Cool Stuff&quot;,ROMX,BANK[7]
-    </pre>
-    </div>
-  </li>
-  <li>Alignment examples: The first one could be useful for defining an OAM
-      buffer to be DMA'd, since it must be aligned to 256 bytes. The second
-      could also be appropriate for GBC HDMA, or for an optimized copy code that
-      requires alignment.
-    <div class="Bd Pp Bd-indent">
-    <pre>
-SECTION &quot;OAM Data&quot;,WRAM0,ALIGN[8] ;&#x00A0;align to 256 bytes
-SECTION &quot;VRAM Data&quot;,ROMX,BANK[2],ALIGN[4] ;&#x00A0;align to 16 bytes
-    </pre>
-    </div>
-  </li>
-</ul>
-<section class="Ss">
-<h2 class="Ss" id="Section_Stack"><a class="permalink" href="#Section_Stack">Section
-  Stack</a></h2>
-<code class="Ic">POPS</code> and <code class="Ic">PUSHS</code> provide the
-  interface to the section stack. The number of entries in the stack is limited
-  only by the amount of memory in your machine.
-<p class="Pp"><code class="Ic">PUSHS</code> will push the current section
-    context on the section stack. <code class="Ic">POPS</code> can then later be
-    used to restore it. Useful for defining sections in included files when you
-    don't want to override the section context at the point the file was
-    included.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="RAM_Code"><a class="permalink" href="#RAM_Code">RAM
-  Code</a></h2>
-Sometimes you want to have some code in RAM. But then you can't simply put it in
-  a RAM section, you have to store it in ROM and copy it to RAM at some point.
-<p class="Pp">This means the code (or data) will not be stored in the place it
-    gets executed. Luckily, <code class="Ic">LOAD</code> blocks are the perfect
-    solution to that. Here's an example of how to use them:</p>
-<div class="Bd Pp Bd-indent">
-<pre>
-SECTION &quot;LOAD example&quot;, ROMX
-CopyCode:
-    ld de, RAMCode
-    ld hl, RAMLocation
-    ld c, RAMLocation.end - RAMLocation
-.loop
-    ld a, [de]
-    inc de
-    ld [hli], a
-    dec c
-    jr nz, .loop
-    ret
-
-RAMCode:
-  LOAD &quot;RAM code&quot;, WRAM0
-RAMLocation:
-    ld hl, .string
-    ld de, $9864
-.copy
-    ld a, [hli]
-    ld [de], a
-    inc de
-    and a
-    jr nz, .copy
-    ret
-
-.string
-    db &quot;Hello World!&quot;, 0
-.end
-  ENDL
-</pre>
-</div>
-<p class="Pp">A <code class="Ic">LOAD</code> block feels similar to a
-    <code class="Ic">SECTION</code> declaration because it creates a new one.
-    All data and code generated within such a block is placed in the current
-    section like usual, but all labels are created as if they were placed in
-    this newly-created section.</p>
-<p class="Pp">In the example above, all of the code and data will end up in the
-    &quot;LOAD example&quot; section. You will notice the
-    &#x2018;RAMCode&#x2019; and &#x2018;RAMLocation&#x2019; labels. The former
-    is situated in ROM, where the code is stored, the latter in RAM, where the
-    code will be loaded.</p>
-<p class="Pp">You cannot nest <code class="Ic">LOAD</code> blocks, nor can you
-    change the current section within them.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="Unionized_Sections"><a class="permalink" href="#Unionized_Sections">Unionized
-  Sections</a></h2>
-When you're tight on RAM, you may want to define overlapping blocks of
-  variables, as explained in the <a class="Sx" href="#Unions">Unions</a>
-  section. However, the <code class="Ic">UNION</code> keyword only works within
-  a single file, which prevents e.g. defining temporary variables on a single
-  memory area across several files. Unionized sections solve this problem. To
-  declare an unionized section, add a <code class="Ic">UNION</code> keyword
-  after the <code class="Ic">SECTION</code> one; the declaration is otherwise
-  not different. Unionized sections follow some different rules from normal
-  sections:
-<ul class="Bl-bullet Bd-indent">
-  <li>The same unionized section (= having the same name) can be declared
-      several times per <code class="Nm">rgbasm</code> invocation, and across
-      several invocations. Different declarations are treated and merged
-      identically whether within the same invocation, or different ones.</li>
-  <li>If one section has been declared as unionized, all sections with the same
-      name must be declared unionized as well.</li>
-  <li>All declarations must have the same type. For example, even if
-      <a class="Xr" href="rgblink.1.html">rgblink(1)</a>'s <code class="Fl">-w</code> flag is used,
-      <code class="Ic">WRAM0</code> and <code class="Ic">WRAMX</code> types are
-      still considered different.</li>
-  <li>Different constraints (alignment, bank, etc.) can be specified for each
-      unionized section declaration, but they must all be compatible. For
-      example, alignment must be compatible with any fixed address, all
-      specified banks must be the same, etc.</li>
-  <li>Unionized sections cannot have type <code class="Ic">ROM0</code> or
-      <code class="Ic">ROMX</code>.</li>
-</ul>
-<p class="Pp">Different declarations of the same unionized section are not
-    appended, but instead overlaid on top of eachother, just like
-    <a class="Sx" href="#Unions">Unions</a>. Similarly, the size of an unionized
-    section is the largest of all its declarations.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="Section_Fragments"><a class="permalink" href="#Section_Fragments">Section
-  Fragments</a></h2>
-Section fragments are sections with a small twist: when several of the same name
-  are encountered, they are concatenated instead of producing an error. This
-  works within the same file (paralleling the behavior &quot;plain&quot;
-  sections has in previous versions), but also across object files. However,
-  similarly to <a class="Sx" href="#Unionized_Sections">Unionized Sections</a>,
-  some rules must be followed:
-<ul class="Bl-bullet Bd-indent">
-  <li>If one section has been declared as fragment, all sections with the same
-      name must be declared fragments as well.</li>
-  <li>All declarations must have the same type. For example, even if
-      <a class="Xr" href="rgblink.1.html">rgblink(1)</a>'s <code class="Fl">-w</code> flag is used,
-      <code class="Ic">WRAM0</code> and <code class="Ic">WRAMX</code> types are
-      still considered different.</li>
-  <li>Different constraints (alignment, bank, etc.) can be specified for each
-      unionized section declaration, but they must all be compatible. For
-      example, alignment must be compatible with any fixed address, all
-      specified banks must be the same, etc.</li>
-  <li>A section fragment may not be unionized; after all, that wouldn't make
-      much sense.</li>
-</ul>
-<p class="Pp">When RGBASM merges two fragments, the one encountered later is
-    appended to the one encountered earlier.</p>
-<p class="Pp">When RGBLINK merges two fragments, the one whose file was
-    specified last is appended to the one whose file was specified first. For
-    example, assuming &#x2018;<code class="Li">bar.o</code>&#x2019;,
-    &#x2018;<code class="Li">baz.o</code>&#x2019;, and
-    &#x2018;<code class="Li">foo.o</code>&#x2019; all contain a fragment with
-    the same name, the command</p>
-<div class="Bd Bd-indent"><code class="Li">rgblink -o rom.gb baz.o foo.o
-  bar.o</code></div>
-would produce the fragment from &#x2018;<code class="Li">baz.o</code>&#x2019;
-  first, followed by the one from &#x2018;<code class="Li">foo.o</code>&#x2019;,
-  and the one from &#x2018;<code class="Li">bar.o</code>&#x2019; last.
-</section>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="SYMBOLS"><a class="permalink" href="#SYMBOLS">SYMBOLS</a></h1>
-RGBDS supports several types of symbols:
-<dl class="Bl-hang">
-  <dt><b class="Sy">Label</b></dt>
-  <dd>Numerical symbol designating a memory location. May or may not have a
-      value known at assembly time.</dd>
-  <dt><b class="Sy">Constant</b></dt>
-  <dd>Numerical symbol whose value has to be known at assembly time.</dd>
-  <dt><b class="Sy">Macro</b></dt>
-  <dd>A block of <code class="Nm">rgbasm</code> code that can be invoked
-    later.</dd>
-  <dt><b class="Sy">String equate</b></dt>
-  <dd>String symbol that can be evaluated, similarly to a macro.</dd>
-</dl>
-<p class="Pp">Symbol names can contain letters, numbers, underscores, hashes and
-    &#x2018;@&#x2019;. However, they must begin with either a letter, a number,
-    or an underscore. Periods are allowed exclusively for labels, as described
-    below. A symbol cannot have the same name as a reserved keyword.
-    <i class="Em">In the line where a symbol is defined there mustn't be any
-    whitespace before it</i>, otherwise <code class="Nm">rgbasm</code> will
-    treat it as a macro invocation.</p>
-<dl class="Bl-tag">
-  <dt><b class="Sy">Label declaration</b></dt>
-  <dd>One of the assembler's main tasks is to keep track of addresses for you,
-      so you can work with meaningful names instead of &quot;magic&quot;
-      numbers.
-    <p class="Pp">This can be done in a number of ways:</p>
-    <div class="Bd Pp Bd-indent">
-    <pre>
-GlobalLabel ;&#x00A0;This syntax is deprecated,
-AnotherGlobal: ;&#x00A0;please use this instead
-.locallabel
-.yet_a_local:
-AnotherGlobal.with_another_local:
-ThisWillBeExported:: ;&#x00A0;Note the two colons
-ThisWillBeExported.too::
-    </pre>
-    </div>
-    <p class="Pp">Declaring a label (global or local) with
-        &#x2018;<code class="Li">::</code>&#x2019; does an
-        <code class="Ic">EXPORT</code> at the same time. (See
-        <a class="Sx" href="#Exporting_and_importing_symbols">Exporting and
-        importing symbols</a> below).</p>
-    <p class="Pp">Any label whose name does not contain a period is a global
-        label, others are locals. Declaring a global label sets it as the
-        current label scope until the next one; any local label whose first
-        character is a period will have the global label's name implicitly
-        prepended. Local labels can be declared as
-        &#x2018;<code class="Li">scope.local:</code>&#x2019; or simply as as
-        &#x2018;<code class="Li">.local:</code>&#x2019;. If the former notation
-        is used, then &#x2018;<code class="Li">scope</code>&#x2019; must be the
-        actual current scope.</p>
-    <p class="Pp">Local labels may have whitespace before their declaration as
-        the only exception to the rule.</p>
-    <p class="Pp">A label's location (and thus value) is usually not determined
-        until the linking stage, so labels usually cannot be used as constants.
-        However, if the section in which the label is declared has a fixed base
-        address, its value is known at assembly time.</p>
-    <p class="Pp"><code class="Nm">rgbasm</code> is able to compute the
-        subtraction of two labels either if both are constant as described
-        above, or if both belong to the same section.</p>
-  </dd>
-  <dt><a class="permalink" href="#EQU"><code class="Ic" id="EQU">EQU</code></a></dt>
-  <dd><a class="permalink" href="#EQU_2"><code class="Ic" id="EQU_2">EQU</code></a>
-      allows defining constant symbols. Unlike <code class="Ic">SET</code>
-      below, constants defined this way cannot be redefined. They can, for
-      example, be used for things such as bit definitions of hardware registers.
-    <div class="Bd Pp Bd-indent">
-    <pre>
-SCREEN_WIDTH   equ 160 ;&#x00A0;In pixels
-SCREEN_HEIGHT  equ 144
-    </pre>
-    </div>
-    <p class="Pp">Note that colons &#x2018;<code class="Li">:</code>&#x2019;
-        following the name are not allowed.</p>
-  </dd>
-  <dt><a class="permalink" href="#SET"><code class="Ic" id="SET">SET</code></a></dt>
-  <dd><a class="permalink" href="#SET_2"><code class="Ic" id="SET_2">SET</code></a>,
-      or its synonym <code class="Ic">=</code>, defines constant symbols like
-      <code class="Ic">EQU</code>, but those constants can be re-defined. This
-      is useful for variables in macros, for counters, etc.
-    <div class="Bd Pp Bd-indent">
-    <pre>
-ARRAY_SIZE EQU 4
-COUNT      SET 2
-COUNT      SET ARRAY_SIZE+COUNT
-;&#x00A0;COUNT now has the value 6
-COUNT      = COUNT + 1
-    </pre>
-    </div>
-    <p class="Pp">Note that colons &#x2018;<code class="Li">:</code>&#x2019;
-        following the name are not allowed.</p>
-  </dd>
-  <dt><a class="permalink" href="#RSSET"><code class="Ic" id="RSSET">RSSET</code></a>,
-    <code class="Ic">RSRESET</code>, <code class="Ic">RB</code>,
-    <code class="Ic">RW</code></dt>
-  <dd>The RS group of commands is a handy way of defining structures:
-    <div class="Bd Pp Bd-indent">
-    <pre>
-              RSRESET
-str_pStuff    RW   1
-str_tData     RB   256
-str_bCount    RB   1
-str_SIZEOF    RB   0
-    </pre>
-    </div>
-    <p class="Pp">The example defines four constants as if by:</p>
-    <div class="Bd Pp Bd-indent">
-    <pre>
-str_pStuff EQU 0
-str_tData  EQU 2
-str_bCount EQU 258
-str_SIZEOF EQU 259
-    </pre>
-    </div>
-    <p class="Pp">There are five commands in the RS group of commands:</p>
-    <table class="Bl-column">
-      <tr>
-        <th>Command</th>
-        <th>Meaning</th>
-      </tr>
-      <tr>
-        <td><a class="permalink" href="#RSRESET"><code class="Ic" id="RSRESET">RSRESET</code></a></td>
-        <td>Equivalent to &#x2018;<code class="Li">RSSET 0</code>&#x2019;.</td>
-      </tr>
-      <tr>
-        <td><a class="permalink" href="#RSSET_2"><code class="Ic" id="RSSET_2">RSSET</code></a>
-          <var class="Ar">constexpr</var></td>
-        <td>Sets the <code class="Ic">_RS</code> <span class="No">counter
-          to</span> <var class="Ar">constexpr</var>.</td>
-      </tr>
-      <tr>
-        <td><a class="permalink" href="#RB"><code class="Ic" id="RB">RB</code></a>
-          <var class="Ar">constexpr</var></td>
-        <td>Sets the preceding symbol to <code class="Ic">_RS</code>
-          <span class="No">and adds</span> <var class="Ar">constexpr</var>
-          <span class="No">to</span> <code class="Ic">_RS</code>.</td>
-      </tr>
-      <tr>
-        <td><a class="permalink" href="#RW"><code class="Ic" id="RW">RW</code></a>
-          <var class="Ar">constexpr</var></td>
-        <td>Sets the preceding symbol to <code class="Ic">_RS</code>
-          <span class="No">and adds</span> <var class="Ar">constexpr</var>
-          <span class="No">* 2 to</span> <code class="Ic">_RS</code>.</td>
-      </tr>
-      <tr>
-        <td><a class="permalink" href="#RL"><code class="Ic" id="RL">RL</code></a>
-          <var class="Ar">constexpr</var></td>
-        <td>Sets the preceding symbol to <code class="Ic">_RS</code>
-          <span class="No">and adds</span> <var class="Ar">constexpr</var>
-          <span class="No">* 4 to</span> <code class="Ic">_RS</code>. (In
-          practice, this one cannot be used due to a bug).</td>
-      </tr>
-    </table>
-    <p class="Pp">Note that colons &#x2018;<code class="Li">:</code>&#x2019;
-        following the name are not allowed.</p>
-  </dd>
-  <dt><a class="permalink" href="#EQUS"><code class="Ic" id="EQUS">EQUS</code></a></dt>
-  <dd><a class="permalink" href="#EQUS_2"><code class="Ic" id="EQUS_2">EQUS</code></a>
-      is used to define string symbols. Wherever the assembler meets a string
-      symbol its name is replaced with its value. If you are familiar with C you
-      can think of it as similar to <code class="Fd">#define .</code>
-    <div class="Bd Pp Bd-indent">
-    <pre>
-COUNTREG EQUS &quot;[hl+]&quot;
-    ld a,COUNTREG
-
-PLAYER_NAME EQUS &quot;\&quot;John\&quot;&quot;
-    db PLAYER_NAME
-    </pre>
-    </div>
-    <p class="Pp">This will be interpreted as:</p>
-    <div class="Bd Pp Bd-indent">
-    <pre>
-    ld a,[hl+]
-    db &quot;John&quot;
-    </pre>
-    </div>
-    <p class="Pp">String symbols can also be used to define small one-line
-        macros:</p>
-    <div class="Bd Pp Bd-indent">
-    <pre>
-pusha EQUS &quot;push af\npush bc\npush de\npush hl\n&quot;
-    </pre>
-    </div>
-    <p class="Pp">Note that colons &#x2018;<code class="Li">:</code>&#x2019;
-        following the name are not allowed. String equates can't be exported or
-        imported.</p>
-    <p class="Pp"><b class="Sy">Important note</b>: An
-        <code class="Ic">EQUS</code> can be expanded to a string that contains
-        another <code class="Ic">EQUS</code> and it will be expanded as well. If
-        this creates an infinite loop, <code class="Nm">rgbasm</code> will error
-        out once a certain depth is reached. See the <code class="Fl">-r</code>
-        command-line option in <a class="Xr" href="rgbasm.1.html">rgbasm(1)</a>. Also, a macro can
-        contain an <code class="Ic">EQUS</code> which calls the same macro,
-        which causes the same problem.</p>
-  </dd>
-  <dt><a class="permalink" href="#MACRO"><code class="Ic" id="MACRO">MACRO</code></a></dt>
-  <dd>One of the best features of an assembler is the ability to write macros
-      for it. Macros can be called with arguments, and can react depending on
-      input using <code class="Ic">IF</code> constructs.
-    <div class="Bd Pp Bd-indent">
-    <pre>
-MyMacro: MACRO
-         ld   a,80
-         call MyFunc
-         ENDM
-    </pre>
-    </div>
-    <p class="Pp">Note that a single colon
-        &#x2018;<code class="Li">:</code>&#x2019; following the macro's name is
-        required. Macros can't be exported or imported.</p>
-  </dd>
-</dl>
-<section class="Ss">
-<h2 class="Ss" id="Exporting_and_importing_symbols"><a class="permalink" href="#Exporting_and_importing_symbols">Exporting
-  and importing symbols</a></h2>
-Importing and exporting of symbols is a feature that is very useful when your
-  project spans many source files and, for example, you need to jump to a
-  routine defined in another file.
-<p class="Pp">Exporting of symbols has to be done manually, importing is done
-    automatically if <code class="Nm">rgbasm</code> finds a symbol it does not
-    know about.</p>
-<p class="Pp">The following will cause <var class="Ar">symbol1</var>,
-    <var class="Ar">symbol2</var> and so on to be accessible to other files
-    during the link process:</p>
-<div class="Bd Bd-indent"><code class="Li"><code class="Ic">EXPORT</code>
-  <var class="Ar">symbol1</var> [, <var class="Ar">symbol2</var>,
-  <span class="No">...</span>]</code></div>
-<p class="Pp"><code class="Ic">GLOBAL</code> is a deprecated synonym for
-    <code class="Ic">EXPORT</code>, do not use it.</p>
-<p class="Pp">Note also that only exported symbols will appear in symbol and map
-    files produced by <a class="Xr" href="rgblink.1.html">rgblink(1)</a>.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="Purging_symbols"><a class="permalink" href="#Purging_symbols">Purging
-  symbols</a></h2>
-<code class="Ic">PURGE</code> allows you to completely remove a symbol from the
-  symbol table as if it had never existed. <i class="Em">USE WITH EXTREME
-  CAUTION!!!</i> I can't stress this enough, <b class="Sy">you seriously need to
-  know what you are doing</b>. DON'T purge a symbol that you use in expressions
-  the linker needs to calculate. When not sure, it's probably not safe to purge
-  anything other than string symbols, macros, and constants.
-<div class="Bd Pp Bd-indent">
-<pre>
-Kamikaze EQUS  &quot;I don't want to live anymore&quot;
-AOLer    EQUS  &quot;Me too&quot;
-         PURGE Kamikaze, AOLer
-</pre>
-</div>
-<p class="Pp">Note that, as an exception, string symbols in the argument list of
-    a <code class="Ic">PURGE</code> command <i class="Em">will not be
-    expanded</i>.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="Predeclared_Symbols"><a class="permalink" href="#Predeclared_Symbols">Predeclared
-  Symbols</a></h2>
-The following symbols are defined by the assembler:
-<table class="Bl-column Bd-indent">
-  <tr>
-    <th>Type</th>
-    <th>Name</th>
-    <th>Contents</th>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#EQU_3"><code class="Ic" id="EQU_3">EQU</code></a></td>
-    <td><a class="permalink" href="#@"><code class="Dv" id="@">@</code></a></td>
-    <td>PC value</td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#EQU_4"><code class="Ic" id="EQU_4">EQU</code></a></td>
-    <td><a class="permalink" href="#_PI"><code class="Dv" id="_PI">_PI</code></a></td>
-    <td>Fixed point &#x03C0;</td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#SET_3"><code class="Ic" id="SET_3">SET</code></a></td>
-    <td><a class="permalink" href="#_RS"><code class="Dv" id="_RS">_RS</code></a></td>
-    <td>_RS Counter</td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#EQU_5"><code class="Ic" id="EQU_5">EQU</code></a></td>
-    <td><a class="permalink" href="#_NARG"><code class="Dv" id="_NARG">_NARG</code></a></td>
-    <td>Number of arguments passed to macro</td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#EQU_6"><code class="Ic" id="EQU_6">EQU</code></a></td>
-    <td><a class="permalink" href="#__LINE__"><code class="Dv" id="__LINE__">__LINE__</code></a></td>
-    <td>The current line number</td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#EQUS_3"><code class="Ic" id="EQUS_3">EQUS</code></a></td>
-    <td><a class="permalink" href="#__FILE__"><code class="Dv" id="__FILE__">__FILE__</code></a></td>
-    <td>The current filename</td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#EQUS_4"><code class="Ic" id="EQUS_4">EQUS</code></a></td>
-    <td><a class="permalink" href="#__DATE__"><code class="Dv" id="__DATE__">__DATE__</code></a></td>
-    <td>Today's date</td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#EQUS_5"><code class="Ic" id="EQUS_5">EQUS</code></a></td>
-    <td><a class="permalink" href="#__TIME__"><code class="Dv" id="__TIME__">__TIME__</code></a></td>
-    <td>The current time</td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#EQUS_6"><code class="Ic" id="EQUS_6">EQUS</code></a></td>
-    <td><a class="permalink" href="#__ISO_8601_LOCAL__"><code class="Dv" id="__ISO_8601_LOCAL__">__ISO_8601_LOCAL__</code></a></td>
-    <td>ISO 8601 timestamp (local)</td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#EQUS_7"><code class="Ic" id="EQUS_7">EQUS</code></a></td>
-    <td><a class="permalink" href="#__ISO_8601_UTC__"><code class="Dv" id="__ISO_8601_UTC__">__ISO_8601_UTC__</code></a></td>
-    <td>ISO 8601 timestamp (UTC)</td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#EQU_7"><code class="Ic" id="EQU_7">EQU</code></a></td>
-    <td><a class="permalink" href="#__UTC_YEAR__"><code class="Dv" id="__UTC_YEAR__">__UTC_YEAR__</code></a></td>
-    <td>Today's year</td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#EQU_8"><code class="Ic" id="EQU_8">EQU</code></a></td>
-    <td><a class="permalink" href="#__UTC_MONTH__"><code class="Dv" id="__UTC_MONTH__">__UTC_MONTH__</code></a></td>
-    <td>Today's month number, 1&#x2013;12</td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#EQU_9"><code class="Ic" id="EQU_9">EQU</code></a></td>
-    <td><a class="permalink" href="#__UTC_DAY__"><code class="Dv" id="__UTC_DAY__">__UTC_DAY__</code></a></td>
-    <td>Today's day of the month, 1&#x2013;31</td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#EQU_10"><code class="Ic" id="EQU_10">EQU</code></a></td>
-    <td><a class="permalink" href="#__UTC_HOUR__"><code class="Dv" id="__UTC_HOUR__">__UTC_HOUR__</code></a></td>
-    <td>Current hour, 0&#x2013;23</td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#EQU_11"><code class="Ic" id="EQU_11">EQU</code></a></td>
-    <td><a class="permalink" href="#__UTC_MINUTE__"><code class="Dv" id="__UTC_MINUTE__">__UTC_MINUTE__</code></a></td>
-    <td>Current minute, 0&#x2013;59</td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#EQU_12"><code class="Ic" id="EQU_12">EQU</code></a></td>
-    <td><a class="permalink" href="#__UTC_SECOND__"><code class="Dv" id="__UTC_SECOND__">__UTC_SECOND__</code></a></td>
-    <td>Current second, 0&#x2013;59</td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#EQU_13"><code class="Ic" id="EQU_13">EQU</code></a></td>
-    <td><a class="permalink" href="#__RGBDS_MAJOR__"><code class="Dv" id="__RGBDS_MAJOR__">__RGBDS_MAJOR__</code></a></td>
-    <td>Major version number of RGBDS</td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#EQU_14"><code class="Ic" id="EQU_14">EQU</code></a></td>
-    <td><a class="permalink" href="#__RGBDS_MINOR__"><code class="Dv" id="__RGBDS_MINOR__">__RGBDS_MINOR__</code></a></td>
-    <td>Minor version number of RGBDS</td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#EQU_15"><code class="Ic" id="EQU_15">EQU</code></a></td>
-    <td><a class="permalink" href="#__RGBDS_PATCH__"><code class="Dv" id="__RGBDS_PATCH__">__RGBDS_PATCH__</code></a></td>
-    <td>Patch version number of RGBDS</td>
-  </tr>
-</table>
-</section>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="DEFINING_DATA"><a class="permalink" href="#DEFINING_DATA">DEFINING
-  DATA</a></h1>
-<section class="Ss">
-<h2 class="Ss" id="Declaring_variables_in_a_RAM_section"><a class="permalink" href="#Declaring_variables_in_a_RAM_section">Declaring
-  variables in a RAM section</a></h2>
-<code class="Ic">DS</code> allocates a number of empty bytes. This is the
-  preferred method of allocating space in a RAM section. You can also use
-  <code class="Ic">DB</code>, <code class="Ic">DW</code> and
-  <code class="Ic">DL</code> without any arguments instead (see
-  <a class="Sx" href="#Defining_constant_data">Defining constant data</a>
-  below).
-<div class="Bd Pp Bd-indent">
-<pre>
-DS 42 ;&#x00A0;Allocates 42 bytes
-</pre>
-</div>
-<p class="Pp">Empty space in RAM sections will not be initialized. In ROM
-    sections, it will be filled with the value passed to the
-    <code class="Fl">-p</code> command-line option, except when using overlays
-    with <code class="Fl">-O</code>.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="Defining_constant_data"><a class="permalink" href="#Defining_constant_data">Defining
-  constant data</a></h2>
-<code class="Ic">DB</code> defines a list of bytes that will be stored in the
-  final image. Ideal for tables and text. Note that strings are not
-  zero-terminated!
-<div class="Bd Pp Bd-indent">
-<pre>
-DB 1,2,3,4,&quot;This is a string&quot;
-</pre>
-</div>
-<p class="Pp"><code class="Ic">DS</code> can also be used to fill a region of
-    memory with some value. The following produces 42 times the byte $FF:</p>
-<div class="Bd Pp Bd-indent">
-<pre>
-DS 42, $FF
-</pre>
-</div>
-<p class="Pp">Alternatively, you can use <code class="Ic">DW</code> to store a
-    list of words (16-bit) or <code class="Ic">DL</code> to store a list of
-    double-words/longs (32-bit). Strings are not allowed as arguments to
-    <code class="Ic">DW</code> and <code class="Ic">DL</code>.</p>
-<p class="Pp">You can also use <code class="Ic">DB</code>,
-    <code class="Ic">DW</code> and <code class="Ic">DL</code> without arguments,
-    or leaving empty elements at any point in the list. This works exactly like
-    <code class="Ic">DS 1</code>, <code class="Ic">DS 2</code> and
-    <code class="Ic">DS 4</code> respectively. Consequently, no-argument
-    <code class="Ic">DB</code>, <code class="Ic">DW</code> and
-    <code class="Ic">DL</code> can be used in a <code class="Ic">WRAM0</code> /
-    <code class="Ic">WRAMX</code> / <code class="Ic">HRAM</code> /
-    <code class="Ic">VRAM</code> / <code class="Ic">SRAM</code> section.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="Including_binary_files"><a class="permalink" href="#Including_binary_files">Including
-  binary files</a></h2>
-You probably have some graphics, level data, etc. you'd like to include. Use
-  <code class="Ic">INCBIN</code> to include a raw binary file as it is. If the
-  file isn't found in the current directory, the include-path list passed to
-  <a class="Xr" href="rgbasm.1.html">rgbasm(1)</a> (see the <code class="Fl">-i</code> option) on the
-  command line will be searched.
-<div class="Bd Pp Bd-indent">
-<pre>
-INCBIN &quot;titlepic.bin&quot;
-INCBIN &quot;sprites/hero.bin&quot;
-</pre>
-</div>
-<p class="Pp">You can also include only part of a file with
-    <code class="Ic">INCBIN</code>. The example below includes 256 bytes from
-    data.bin, starting from byte 78.</p>
-<div class="Bd Pp Bd-indent">
-<pre>
-INCBIN &quot;data.bin&quot;,78,256
-</pre>
-</div>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="Unions"><a class="permalink" href="#Unions">Unions</a></h2>
-Unions allow multiple memory allocations to overlap, like unions in C. This does
-  not increase the amount of memory available, but allows re-using the same
-  memory region for different purposes.
-<p class="Pp">A union starts with a <code class="Ic">UNION</code> keyword, and
-    ends at the corresponding <code class="Ic">ENDU</code> keyword.
-    <code class="Ic">NEXTU</code> separates each block of allocations, and you
-    may use it as many times within a union as necessary.</p>
-<div class="Bd Pp Bd-indent">
-<pre>
-    ; Let's say PC = $C0DE here
-    UNION
-    ; Here, PC = $C0DE
-Name: ds 8
-    ; PC = $C0E6
-Nickname: ds 8
-    ; PC = $C0EE
-    NEXTU
-    ; PC is back to $C0DE
-Health: dw
-    ; PC = $C0E0
-Something: ds 6
-    ; And so on
-Lives: db
-    NEXTU
-VideoBuffer: ds 19
-    ENDU
-</pre>
-</div>
-<p class="Pp">In the example above, &#x2018;Name, Health, VideoBuffer&#x2019;
-    all have the same value, as do &#x2018;Nickname&#x2019; and
-    &#x2018;Lives&#x2019;. Thus, keep in mind that <code class="Ic">ld [Health],
-    a</code> is identical to <code class="Ic">ld [Name], a</code>.</p>
-<p class="Pp">The size of this union is 19 bytes, as this is the size of the
-    largest block (the last one, containing &#x2018;VideoBuffer&#x2019;).
-    Nesting unions is possible, with each inner union's size being considered as
-    described above.</p>
-<p class="Pp">Unions may be used in any section, but inside them may only be
-    <code class="Ic">DS -</code> like commands (see
-    <a class="Sx" href="#Declaring_variables_in_a_RAM_section">Declaring
-    variables in a RAM section</a>).</p>
-</section>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="THE_MACRO_LANGUAGE"><a class="permalink" href="#THE_MACRO_LANGUAGE">THE
-  MACRO LANGUAGE</a></h1>
-<section class="Ss">
-<h2 class="Ss" id="Invoking_macros"><a class="permalink" href="#Invoking_macros">Invoking
-  macros</a></h2>
-You execute the macro by inserting its name.
-<div class="Bd Pp Bd-indent">
-<pre>
-         add a,b
-         ld sp,hl
-         MyMacro ;&#x00A0;This will be expanded
-         sub a,87
-</pre>
-</div>
-<p class="Pp">It's valid to call a macro from a macro (yes, even the same
-  one).</p>
-<p class="Pp">When <code class="Nm">rgbasm</code> sees
-    <code class="Ic">MyMacro</code> it will insert the macro definition (the
-    code enclosed in <code class="Ic">MACRO</code> /
-    <code class="Ic">ENDM</code>).</p>
-<p class="Pp">Suppose your macro contains a loop.</p>
-<div class="Bd Pp Bd-indent">
-<pre>
-LoopyMacro: MACRO
-            xor  a,a
-.loop       ld   [hl+],a
-            dec  c
-            jr   nz,.loop
-ENDM
-</pre>
-</div>
-<p class="Pp">This is fine, but only if you use the macro no more than once per
-    scope. To get around this problem, there is the escape sequence
-    <code class="Ic">\@</code> that expands to a unique string.</p>
-<p class="Pp"><code class="Ic">\@</code> also works in
-    <code class="Ic">REPT</code> blocks.</p>
-<div class="Bd Pp Bd-indent">
-<pre>
-LoopyMacro: MACRO
-            xor  a,a
-.loop\@     ld   [hl+],a
-            dec  c
-            jr   nz,.loop\@
-ENDM
-</pre>
-</div>
-<p class="Pp"><b class="Sy">Important note</b>: Since a macro can call itself
-    (or a different macro that calls the first one), there can be circular
-    dependency problems. If this creates an infinite loop,
-    <code class="Nm">rgbasm</code> will error out once a certain depth is
-    reached. See the <code class="Fl">-r</code> command-line option in
-    <a class="Xr" href="rgbasm.1.html">rgbasm(1)</a>. Also, a macro can have inside an
-    <b class="Sy">EQUS</b> which references the same macro, which has the same
-    problem.</p>
-<p class="Pp">It's possible to pass arguments to macros as well! You retrieve
-    the arguments by using the escape sequences <code class="Ic">\1</code>
-    through <code class="Ic">\9</code>, <code class="Ic">\1</code> being the
-    first argument specified on the macro invocation.</p>
-<div class="Bd Pp Bd-indent">
-<pre>
-LoopyMacro: MACRO
-            ld   hl,\1
-            ld   c,\2
-            xor  a,a
-.loop\@     ld   [hl+],a
-            dec  c
-            jr   nz,.loop\@
-            ENDM
-</pre>
-</div>
-<p class="Pp">Now I can call the macro specifying two arguments, the first being
-    the address and the second being a byte count. The generated code will then
-    reset all bytes in this range.</p>
-<div class="Bd Pp Bd-indent">
-<pre>
-LoopyMacro MyVars,54
-</pre>
-</div>
-<p class="Pp">Arguments are passed as string equates, although there's no need
-    to enclose them in quotes. Thus, an expression will not be evaluated first
-    but kind of copy-pasted. This means that it's probably a very good idea to
-    use brackets around <code class="Ic">\1</code> to <code class="Ic">\9</code>
-    if you perform further calculations on them. For instance, consider the
-    following:</p>
-<div class="Bd Pp Bd-indent">
-<pre>
-print_double: MACRO
-    PRINTV \1 * 2
-ENDM
-    print_double 1 + 2
-</pre>
-</div>
-<p class="Pp">The <code class="Ic">PRINTV</code> statement will expand to
-    &#x2018;<code class="Li">PRINTV 1 + 2 * 2</code>&#x2019;, which will print 5
-    and not 6 as you might have expected.</p>
-<p class="Pp">Line continuations work as usual inside macros or lists of macro
-    arguments. However, some characters need to be escaped, as in the following
-    example:</p>
-<div class="Bd Pp Bd-indent">
-<pre>
-PrintMacro: MACRO
-    PRINTT \1
-ENDM
-
-    PrintMacro STRCAT(&quot;Hello &quot;\, \
-                      &quot;world\\n&quot;)
-</pre>
-</div>
-<p class="Pp">The comma needs to be escaped to avoid it being treated as
-    separating the macro's arguments. The backslash &#x2018;\&#x2019; (from
-    &#x2018;\n&#x2019;) also needs to be escaped because of the way
-    <code class="Nm">rgbasm</code> processes macro arguments.</p>
-<p class="Pp">In reality, up to 256 arguments can be passed to a macro, but you
-    can only use the first 9 like this. If you want to use the rest, you need to
-    use the <code class="Ic">SHIFT</code> command.</p>
-<p class="Pp"><code class="Ic">SHIFT</code> is a special command only available
-    in macros. Very useful in <code class="Ic">REPT</code> blocks. It will shift
-    the arguments by one to the left. <code class="Ic">\1</code> will get the
-    value of <code class="Ic">\2</code>, <code class="Ic">\2</code> will get the
-    value of <code class="Ic">\3</code>, and so forth.</p>
-<p class="Pp">This is the only way of accessing the value of arguments from 10
-    to 256.</p>
-<p class="Pp"><code class="Ic">SHIFT</code> can optionally be given an integer
-    parameter, and will apply the above shifting that number of times.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="Printing_things_during_assembly"><a class="permalink" href="#Printing_things_during_assembly">Printing
-  things during assembly</a></h2>
-The next four commands print text and values to the standard output. Useful for
-  debugging macros, or wherever you may feel the need to tell yourself some
-  important information.
-<div class="Bd Pp Bd-indent">
-<pre>
-PRINTT &quot;I'm the greatest programmer in the whole wide world\n&quot;
-PRINTI (2 + 3) / 5
-PRINTV $FF00 + $F0
-PRINTF MUL(3.14, 3987.0)
-</pre>
-</div>
-<dl class="Bl-inset">
-  <dt><a class="permalink" href="#PRINTT"><code class="Ic" id="PRINTT">PRINTT</code></a></dt>
-  <dd>prints out a string. Be careful to add a line feed (&#x201C;\n&#x201D;) at
-      the end, as it is not added automatically.</dd>
-  <dt><a class="permalink" href="#PRINTV"><code class="Ic" id="PRINTV">PRINTV</code></a></dt>
-  <dd>prints out an integer value in hexadecimal or, as in the example, the
-      result of a calculation. Unsurprisingly, you can also print out a constant
-      symbol's value.</dd>
-  <dt><a class="permalink" href="#PRINTI"><code class="Ic" id="PRINTI">PRINTI</code></a></dt>
-  <dd>prints out a signed integer value.</dd>
-  <dt><a class="permalink" href="#PRINTF"><code class="Ic" id="PRINTF">PRINTF</code></a></dt>
-  <dd>prints out a fixed point value.</dd>
-</dl>
-<p class="Pp">Be careful that none of those automatically print a line feed; if
-    you need one, use <code class="Ic">PRINTT \n</code>.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="Automatically_repeating_blocks_of_code"><a class="permalink" href="#Automatically_repeating_blocks_of_code">Automatically
-  repeating blocks of code</a></h2>
-Suppose you want to unroll a time consuming loop without copy-pasting it.
-  <code class="Ic">REPT</code> is here for that purpose. Everything between
-  <code class="Ic">REPT</code> and the matching <code class="Ic">ENDR</code>
-  will be repeated a number of times just as if you had done a copy/paste
-  operation yourself. The following example will assemble
-  &#x2018;<code class="Li">add a,c</code>&#x2019; four times:
-<div class="Bd Pp Bd-indent">
-<pre>
-REPT 4
-  add  a,c
-ENDR
-</pre>
-</div>
-<p class="Pp">You can also use <code class="Ic">REPT</code> to generate tables
-    on the fly:</p>
-<div class="Bd Pp Bd-indent">
-<pre>
-;&#x00A0;--
-;&#x00A0;-- Generate a 256 byte sine table with values between 0 and 128
-;&#x00A0;--
-ANGLE =   0.0
-      REPT  256
-      db    (MUL(64.0, SIN(ANGLE)) + 64.0) &gt;&gt; 16
-ANGLE = ANGLE+256.0
-      ENDR
-</pre>
-</div>
-<p class="Pp">As in macros, you can also use the escape sequence
-    <code class="Ic">\@</code>. <code class="Ic">REPT</code> blocks can be
-    nested.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="Aborting_the_assembly_process"><a class="permalink" href="#Aborting_the_assembly_process">Aborting
-  the assembly process</a></h2>
-<code class="Ic">FAIL</code> and <code class="Ic">WARN</code> can be used to
-  print errors and warnings respectively during the assembly process. This is
-  especially useful for macros that get an invalid argument.
-  <code class="Ic">FAIL</code> and <code class="Ic">WARN</code> take a string as
-  the only argument and they will print this string out as a normal error with a
-  line number.
-<p class="Pp"><code class="Ic">FAIL</code> stops assembling immediately while
-    <code class="Ic">WARN</code> shows the message but continues afterwards.</p>
-<p class="Pp">If you need to ensure some assumption is correct when compiling,
-    you can use <code class="Ic">ASSERT</code> and
-    <code class="Ic">STATIC_ASSERT</code>. Syntax examples are given below:</p>
-<div class="Bd Pp Bd-indent">
-<pre>
-Function:
-      xor a
-ASSERT LOW(Variable) == 0
-      ld h, HIGH(Variable)
-      ld l, a
-      ld a, [hli]
-      ; You can also indent this!
-      ASSERT BANK(OtherFunction) == BANK(Function)
-      call OtherFunction
-; Lowercase also works
-assert Variable + 1 == OtherVariable
-      ld c, [hl]
-      ret
-.end
-      ; If you specify one, a message will be printed
-      STATIC_ASSERT .end - Function &lt; 256, &quot;Function is too large!&quot;
-</pre>
-</div>
-<p class="Pp">First, the difference between <code class="Ic">ASSERT</code> and
-    <code class="Ic">STATIC_ASSERT</code> is that the former is evaluated by
-    RGBASM if it can, otherwise by RGBLINK; but the latter is only ever
-    evaluated by RGBASM. If RGBASM cannot compute the value of the argument to
-    <code class="Ic">STATIC_ASSERT</code>, it will produce an error.</p>
-<p class="Pp">Second, as shown above, a string can be optionally added at the
-    end, to give insight into what the assertion is checking.</p>
-<p class="Pp">Finally, you can add one of <code class="Ic">WARN</code>,
-    <code class="Ic">FAIL</code> or <code class="Ic">FATAL</code> as the first
-    optional argument to either <code class="Ic">ASSERT</code> or
-    <code class="Ic">STATIC_ASSERT</code>. If the assertion fails,
-    <code class="Ic">WARN</code> will cause a simple warning (controlled by
-    <a class="Xr" href="rgbasm.1.html">rgbasm(1)</a> flag <code class="Fl">-Wassert</code>) to be
-    emitted; <code class="Ic">FAIL</code> (the default) will cause a non-fatal
-    error; and <code class="Ic">FATAL</code> immediately aborts.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="Including_other_source_files"><a class="permalink" href="#Including_other_source_files">Including
-  other source files</a></h2>
-Use <code class="Ic">INCLUDE</code> to process another assembler file and then
-  return to the current file when done. If the file isn't found in the current
-  directory the include path list (see the <code class="Fl">-i</code> option in
-  <a class="Xr" href="rgbasm.1.html">rgbasm(1)</a>) will be searched. You may nest
-  <code class="Ic">INCLUDE</code> calls infinitely (or until you run out of
-  memory, whichever comes first).
-<div class="Bd Pp Bd-indent">
-<pre>
-    INCLUDE &quot;irq.inc&quot;
-</pre>
-</div>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="Conditional_assembling"><a class="permalink" href="#Conditional_assembling">Conditional
-  assembling</a></h2>
-The four commands <code class="Ic">IF</code>, <code class="Ic">ELIF</code>,
-  <code class="Ic">ELSE</code>, and <code class="Ic">ENDC</code> let you have
-  <code class="Nm">rgbasm</code> skip over parts of your code depending on a
-  condition. This is a powerful feature commonly used in macros.
-<div class="Bd Pp Bd-indent">
-<pre>
-IF NUM &lt; 0
-  PRINTT &quot;NUM &lt; 0\n&quot;
-ELIF NUM == 0
-  PRINTT &quot;NUM == 0\n&quot;
-ELSE
-  PRINTT &quot;NUM &gt; 0\n&quot;
-ENDC
-</pre>
-</div>
-<p class="Pp">The <code class="Ic">ELIF</code> (standing for &quot;else
-    if&quot;) and <code class="Ic">ELSE</code> blocks are optional.
-    <code class="Ic">IF</code> / <code class="Ic">ELIF</code> /
-    <code class="Ic">ELSE</code> / <code class="Ic">ENDC</code> blocks can be
-    nested.</p>
-<p class="Pp">Note that if an <code class="Ic">ELSE</code> block is found before
-    an <code class="Ic">ELIF</code> block, the <code class="Ic">ELIF</code>
-    block will be ignored. All <code class="Ic">ELIF</code> blocks must go
-    before the <code class="Ic">ELSE</code> block. Also, if there is more than
-    one <code class="Ic">ELSE</code> block, all of them but the first one are
-    ignored.</p>
-</section>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="MISCELLANEOUS"><a class="permalink" href="#MISCELLANEOUS">MISCELLANEOUS</a></h1>
-<section class="Ss">
-<h2 class="Ss" id="Changing_options_while_assembling"><a class="permalink" href="#Changing_options_while_assembling">Changing
-  options while assembling</a></h2>
-<code class="Ic">OPT</code> can be used to change some of the options during
-  assembling from within the source, instead of defining them on the
-  command-line.
-<p class="Pp"><code class="Ic">OPT</code> takes a comma-separated list of
-    options as its argument:</p>
-<div class="Bd Pp Bd-indent">
-<pre>
-PUSHO
-OPT   g.oOX ;Set the GB graphics constants to use these characters
-DW    `..ooOOXX
-POPO
-DW    `00112233
-</pre>
-</div>
-<p class="Pp">The options that OPT can modify are currently:
-    <code class="Cm">b</code>, <code class="Cm">g</code> and
-    <code class="Cm">p</code>.</p>
-<p class="Pp"><code class="Ic">POPO</code> and <code class="Ic">PUSHO</code>
-    provide the interface to the option stack. <code class="Ic">PUSHO</code>
-    will push the current set of options on the option stack.
-    <code class="Ic">POPO</code> can then later be used to restore them. Useful
-    if you want to change some options in an include file and you don't want to
-    destroy the options set by the program that included your file. The stack's
-    number of entries is limited only by the amount of memory in your
-  machine.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="Requesting_alignment"><a class="permalink" href="#Requesting_alignment">Requesting
-  alignment</a></h2>
-While <code class="Ic">ALIGN</code> as presented in
-  <a class="Sx" href="#SECTIONS">SECTIONS</a> is often useful as-is, sometimes
-  you instead want a particular piece of data (or code) in the middle of the
-  section to be aligned. This is made easier through the use of mid-section
-  <code class="Ic">align</code> <var class="Ar">align</var>,
-  <var class="Ar">offset</var>. It will alter the section's attributes to ensure
-  that the location the <code class="Ic">align</code> directive is at, has its
-  <var class="Ar">align</var> lower bits equal to <var class="Ar">offset</var>.
-<p class="Pp">If the constraint cannot be met (for example because the section
-    is fixed at an incompatible address), and error is produced. Note that
-    <code class="Ic">align</code> <var class="Ar">align</var> is a shorthand for
-    <code class="Ic">align</code> <var class="Ar">align</var>,
-    <span class="No">0</span>.</p>
-</section>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
-  ALSO</a></h1>
-<a class="Xr" href="rgbasm.1.html">rgbasm(1)</a>, <a class="Xr" href="rgblink.1.html">rgblink(1)</a>,
-  <a class="Xr" href="rgblink.5.html">rgblink(5)</a>, <a class="Xr" href="rgbds.5.html">rgbds(5)</a>,
-  <a class="Xr" href="rgbds.7.html">rgbds(7)</a>, <a class="Xr" href="gbz80.7.html">gbz80(7)</a>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1>
-<code class="Nm">rgbasm</code> was originally written by Carsten S&#x00F8;rensen
-  as part of the ASMotor package, and was later packaged in RGBDS by Justin
-  Lloyd. It is now maintained by a number of contributors at
-  <a class="Lk" href="https://github.com/rednex/rgbds">https://github.com/rednex/rgbds</a>.
-</section>
-</div>
-<table class="foot">
-  <tr>
-    <td class="foot-date">December 5, 2019</td>
-    <td class="foot-os">General</td>
-  </tr>
-</table>
-</body>
-</html>
--- a/docs/rgbds.5.html
+++ /dev/null
@@ -1,363 +1,0 @@
-<!DOCTYPE html>
-<html>
-<!-- This is an automatically generated file.  Do not edit.
-   This file is part of RGBDS.
-  
-   Copyright (c) 2017-2018, Antonio Nino Diaz and RGBDS contributors.
-  
-   SPDX-License-Identifier: MIT
-   -->
-<head>
-  <meta name="viewport" content="width=device-width, initial-scale=1">
-  <meta charset="utf-8"/>
-  <link rel="stylesheet" href="mandoc.css" type="text/css" media="all"/>
-  <link rel="stylesheet" href="rgbds.css" type="text/css" media="all"/>
-  <title>RGBDS(5)</title>
-</head>
-<body>
-<table class="head">
-  <tr>
-    <td class="head-ltitle">RGBDS(5)</td>
-    <td class="head-vol">File Formats Manual</td>
-    <td class="head-rtitle">RGBDS(5)</td>
-  </tr>
-</table>
-<div class="manual-text">
-<section class="Sh">
-<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
-<code class="Nm">rgbds</code> &#x2014;
-<span class="Nd">object file format documentation</span>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
-This is the description of the object files used by <a class="Xr" href="rgbasm.1.html">rgbasm(1)</a>
-  and <a class="Xr" href="rgblink.1.html">rgblink(1)</a>. <i class="Em">Please note that the
-  specifications may change.</i> This toolchain is in development and new
-  features may require adding more information to the current format, or
-  modifying some fields, which would break compatibility with older versions.
-</section>
-<section class="Sh">
-<h1 class="Sh" id="FILE_STRUCTURE"><a class="permalink" href="#FILE_STRUCTURE">FILE
-  STRUCTURE</a></h1>
-The following types are used:
-<p class="Pp"><var class="Ar">LONG</var> is a 32&#x2010;bit integer stored in
-    little&#x2010;endian format. <var class="Ar">BYTE</var> is an 8&#x2010;bit
-    integer. <var class="Ar">STRING</var> is a 0&#x2010;terminated string of
-    <var class="Ar">BYTE</var>.</p>
-<div class="Bd Pp">
-<pre>
-; Header
-
-BYTE    ID[4]            ; &quot;RGB9&quot;
-LONG    RevisionNumber   ; The format's revision number this file uses
-LONG    NumberOfSymbols  ; The number of symbols used in this file
-LONG    NumberOfSections ; The number of sections used in this file
-
-; Symbols
-
-REPT    NumberOfSymbols   ; Number of symbols defined in this object file.
-
-    STRING  Name          ; The name of this symbol. Local symbols are stored
-                          ; as &quot;Scope.Symbol&quot;.
-
-    BYTE    Type          ; 0 = LOCAL symbol only used in this file.
-                          ; 1 = IMPORT this symbol from elsewhere
-                          ; 2 = EXPORT this symbol to other objects.
-                          ; Bit 7 is independent from the above value, and
-                          ; encodes whether the section is unionized
-
-    IF (Type &amp; 0x7F) != 1 ; If symbol is defined in this object file.
-
-        STRING  FileName  ; File where the symbol is defined.
-
-        LONG    LineNum   ; Line number in the file where the symbol is defined.
-
-        LONG    SectionID ; The section number (of this object file) in which
-                          ; this symbol is defined. If it doesn't belong to any
-                          ; specific section (like a constant), this field has
-                          ; the value -1.
-
-        LONG    Value     ; The symbols value. It's the offset into that
-                          ; symbol's section.
-
-    ENDC
-
-ENDR
-
-; Sections
-
-REPT NumberOfSections
-    STRING  Name  ; Name of the section
-
-    LONG    Size  ; Size in bytes of this section
-
-    BYTE    Type  ; 0 = WRAM0
-                  ; 1 = VRAM
-                  ; 2 = ROMX
-                  ; 3 = ROM0
-                  ; 4 = HRAM
-                  ; 5 = WRAMX
-                  ; 6 = SRAM
-                  ; 7 = OAM
-
-    LONG    Org   ; Address to fix this section at. -1 if the linker should
-                  ; decide (floating address).
-
-    LONG    Bank  ; Bank to load this section into. -1 if the linker should
-                  ; decide (floating bank). This field is only valid for ROMX,
-                  ; VRAM, WRAMX and SRAM sections.
-
-    BYTE    Align ; Alignment of this section, as N bits. 0 when not specified.
-
-    LONG    Ofs   ; Offset relative to the alignment specified above.
-                  ; Must be below 1 &lt;&lt; Align.
-
-    IF      (Type == ROMX) || (Type == ROM0) ; Sections that can contain data.
-
-        BYTE    Data[Size]      ; Raw data of the section.
-
-        LONG    NumberOfPatches ; Number of patches to apply.
-
-        REPT    NumberOfPatches
-
-            STRING  SourceFile   ; Name of the source file (for printing error
-                                 ; messages).
-
-            LONG    Offset       ; Offset into the section where patch should
-                                 ; be applied (in bytes).
-
-            LONG    PCSectionID  ; Index within the file of the section in which
-                                 ; PC is located.
-                                 ; This is usually the same section that the
-                                 ; patch should be applied into, except e.g.
-                                 ; with LOAD blocks.
-
-            LONG    PCOffset     ; PC's offset into the above section.
-                                 ; Used because the section may be floating, so
-                                 ; PC's value is not known to RGBASM.
-
-            BYTE    Type         ; 0 = BYTE patch.
-                                 ; 1 = little endian WORD patch.
-                                 ; 2 = little endian LONG patch.
-                                 ; 3 = JR offset value BYTE patch.
-
-            LONG    RPNSize      ; Size of the buffer with the RPN.
-                                 ; expression.
-
-            BYTE    RPN[RPNSize] ; RPN expression. Definition below.
-
-        ENDR
-
-    ENDC
-
-ENDR
-
-; Assertions
-
-LONG  NumberOfAssertions
-
-REPT  NumberOfAssertions
-
-  STRING  SourceFile   ; Name of the source file (for printing the failure).
-
-  LONG    Offset       ; Offset into the section where the assertion is located.
-
-  LONG    SectionID    ; Index within the file of the section in which PC is
-                       ; located, or -1 if defined outside a section.
-
-  LONG    PCOffset     ; PC's offset into the above section.
-                       ; Used because the section may be floating, so PC's value
-                       ; is not known to RGBASM.
-
-  BYTE    Type         ; 0 = Prints the message but allows linking to continue
-                       ; 1 = Prints the message and evaluates other assertions,
-                       ;     but linking fails afterwards
-                       ; 2 = Prints the message and immediately fails linking
-
-  LONG    RPNSize      ; Size of the RPN expression's buffer.
-
-  BYTE    RPN[RPNSize] ; RPN expression, same as patches. Assert fails if == 0.
-
-  STRING  Message      ; A message displayed when the assert fails. If set to
-                       ; the empty string, a generic message is printed instead.
-
-ENDR
-</pre>
-</div>
-<section class="Ss">
-<h2 class="Ss" id="RPN_DATA"><a class="permalink" href="#RPN_DATA">RPN
-  DATA</a></h2>
-Expressions in the object file are stored as RPN. This is an expression of the
-  form &#x201C;2 5 +&#x201D;. This will first push the value &#x201C;2&#x201D;
-  to the stack, then &#x201C;5&#x201D;. The &#x201C;+&#x201D; operator pops two
-  arguments from the stack, adds them, and then pushes the result on the stack,
-  effectively replacing the two top arguments with their sum. In the RGB format,
-  RPN expressions are stored as <var class="Ar">BYTE</var>s with some bytes
-  being special prefixes for integers and symbols.
-<table class="Bl-column Bd-indent">
-  <tr>
-    <th>Value</th>
-    <th>Meaning</th>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#$00"><code class="Li" id="$00">$00</code></a></td>
-    <td><a class="permalink" href="#+_operator"><code class="Li" id="+_operator">+
-      operator</code></a></td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#$01"><code class="Li" id="$01">$01</code></a></td>
-    <td><a class="permalink" href="#-_operator"><code class="Li" id="-_operator">-
-      operator</code></a></td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#$02"><code class="Li" id="$02">$02</code></a></td>
-    <td><a class="permalink" href="#*_operator"><code class="Li" id="*_operator">*
-      operator</code></a></td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#$03"><code class="Li" id="$03">$03</code></a></td>
-    <td><a class="permalink" href="#/_operator"><code class="Li" id="/_operator">/
-      operator</code></a></td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#$04"><code class="Li" id="$04">$04</code></a></td>
-    <td><a class="permalink" href="#__operator"><code class="Li" id="__operator">%
-      operator</code></a></td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#$05"><code class="Li" id="$05">$05</code></a></td>
-    <td><a class="permalink" href="#unary_-"><code class="Li" id="unary_-">unary
-      -</code></a></td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#$10"><code class="Li" id="$10">$10</code></a></td>
-    <td>|
-      <a class="permalink" href="#operator"><code class="Li" id="operator">operator</code></a></td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#$11"><code class="Li" id="$11">$11</code></a></td>
-    <td><a class="permalink" href="#&amp;_operator"><code class="Li" id="&amp;_operator">&amp;
-      operator</code></a></td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#$12"><code class="Li" id="$12">$12</code></a></td>
-    <td><a class="permalink" href="#__operator_2"><code class="Li" id="__operator_2">^
-      operator</code></a></td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#$13"><code class="Li" id="$13">$13</code></a></td>
-    <td><a class="permalink" href="#unary_~"><code class="Li" id="unary_~">unary
-      ~</code></a></td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#$21"><code class="Li" id="$21">$21</code></a></td>
-    <td><a class="permalink" href="#&amp;&amp;_comparison"><code class="Li" id="&amp;&amp;_comparison">&amp;&amp;
-      comparison</code></a></td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#$22"><code class="Li" id="$22">$22</code></a></td>
-    <td><a class="permalink" href="#___comparison"><code class="Li" id="___comparison">||
-      comparison</code></a></td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#$23"><code class="Li" id="$23">$23</code></a></td>
-    <td><a class="permalink" href="#unary__!"><code class="Li" id="unary__!">unary&#x00A0;!</code></a></td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#$30"><code class="Li" id="$30">$30</code></a></td>
-    <td><a class="permalink" href="#==_comparison"><code class="Li" id="==_comparison">==
-      comparison</code></a></td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#$31"><code class="Li" id="$31">$31</code></a></td>
-    <td><a class="permalink" href="#!=_comparison"><code class="Li" id="!=_comparison">!=
-      comparison</code></a></td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#$32"><code class="Li" id="$32">$32</code></a></td>
-    <td><a class="permalink" href="#__comparison"><code class="Li" id="__comparison">&gt;
-      comparison</code></a></td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#$33"><code class="Li" id="$33">$33</code></a></td>
-    <td><a class="permalink" href="#__comparison_2"><code class="Li" id="__comparison_2">&lt;
-      comparison</code></a></td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#$34"><code class="Li" id="$34">$34</code></a></td>
-    <td><a class="permalink" href="#_=_comparison"><code class="Li" id="_=_comparison">&gt;=
-      comparison</code></a></td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#$35"><code class="Li" id="$35">$35</code></a></td>
-    <td><a class="permalink" href="#_=_comparison_2"><code class="Li" id="_=_comparison_2">&lt;=
-      comparison</code></a></td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#$40"><code class="Li" id="$40">$40</code></a></td>
-    <td><a class="permalink" href="#___operator"><code class="Li" id="___operator">&lt;&lt;
-      operator</code></a></td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#$41"><code class="Li" id="$41">$41</code></a></td>
-    <td><a class="permalink" href="#___operator_2"><code class="Li" id="___operator_2">&gt;&gt;
-      operator</code></a></td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#$50"><code class="Li" id="$50">$50</code></a></td>
-    <td><a class="permalink" href="#BANK(symbol)"><code class="Li" id="BANK(symbol)">BANK(symbol)</code></a>,
-      a <var class="Ar">LONG</var> Symbol ID follows.</td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#$51"><code class="Li" id="$51">$51</code></a></td>
-    <td><a class="permalink" href="#BANK(section_name)"><code class="Li" id="BANK(section_name)">BANK(section_name)</code></a>,
-      a null-terminated string follows.</td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#$52"><code class="Li" id="$52">$52</code></a></td>
-    <td><a class="permalink" href="#Current_BANK()"><code class="Li" id="Current_BANK()">Current
-      BANK()</code></a></td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#$60"><code class="Li" id="$60">$60</code></a></td>
-    <td><a class="permalink" href="#HRAMCheck"><code class="Li" id="HRAMCheck">HRAMCheck</code></a>.
-      Checks if the value is in HRAM, ANDs it with 0xFF.</td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#$61"><code class="Li" id="$61">$61</code></a></td>
-    <td><a class="permalink" href="#RSTCheck"><code class="Li" id="RSTCheck">RSTCheck</code></a>.
-      Checks if the value is a RST vector, ORs it with 0xC7.</td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#$80"><code class="Li" id="$80">$80</code></a></td>
-    <td><var class="Ar">LONG</var> integer follows.</td>
-  </tr>
-  <tr>
-    <td><a class="permalink" href="#$81"><code class="Li" id="$81">$81</code></a></td>
-    <td><var class="Ar">LONG</var> symbol ID follows.</td>
-  </tr>
-</table>
-</section>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
-  ALSO</a></h1>
-<a class="Xr" href="rgbasm.1.html">rgbasm(1)</a>, <a class="Xr" href="rgblink.1.html">rgblink(1)</a>,
-  <a class="Xr" href="rgbds.7.html">rgbds(7)</a>, <a class="Xr" href="gbz80.7.html">gbz80(7)</a>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1>
-<code class="Nm">rgbds</code> was originally written by Carsten S&#x00F8;rensen
-  as part of the ASMotor package, and was later packaged in RGBDS by Justin
-  Lloyd. It is now maintained by a number of contributors at
-  <a class="Lk" href="https://github.com/rednex/rgbds">https://github.com/rednex/rgbds</a>.
-</section>
-</div>
-<table class="foot">
-  <tr>
-    <td class="foot-date">January 26, 2018</td>
-    <td class="foot-os">General</td>
-  </tr>
-</table>
-</body>
-</html>
--- a/docs/rgbds.7.html
+++ /dev/null
@@ -1,80 +1,0 @@
-<!DOCTYPE html>
-<html>
-<!-- This is an automatically generated file.  Do not edit.
-   This file is part of RGBDS.
-  
-   Copyright (c) 2010-2018, Anthony J. Bentley and RGBDS contributors.
-  
-   SPDX-License-Identifier: MIT
-   -->
-<head>
-  <meta name="viewport" content="width=device-width, initial-scale=1">
-  <meta charset="utf-8"/>
-  <link rel="stylesheet" href="mandoc.css" type="text/css" media="all"/>
-  <link rel="stylesheet" href="rgbds.css" type="text/css" media="all"/>
-  <title>RGBDS(7)</title>
-</head>
-<body>
-<table class="head">
-  <tr>
-    <td class="head-ltitle">RGBDS(7)</td>
-    <td class="head-vol">Miscellaneous Information Manual</td>
-    <td class="head-rtitle">RGBDS(7)</td>
-  </tr>
-</table>
-<div class="manual-text">
-<section class="Sh">
-<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
-<code class="Nm">rgbds</code> &#x2014;
-<span class="Nd">Rednex Game Boy Development System</span>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="EXAMPLES"><a class="permalink" href="#EXAMPLES">EXAMPLES</a></h1>
-To get a working ROM image from a single assembly source file:
-<div class="Bd Pp Bd-indent">
-<pre>
-$ rgbasm -o bar.o foo.asm
-$ rgblink -o baz.gb bar.o
-$ rgbfix -v -p 0 baz.gb
-</pre>
-</div>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
-  ALSO</a></h1>
-<a class="Xr" href="rgbasm.1.html">rgbasm(1)</a>, <a class="Xr" href="rgbfix.1.html">rgbfix(1)</a>,
-  <a class="Xr" href="rgblink.1.html">rgblink(1)</a>, <a class="Xr" href="rgbds.5.html">rgbds(5)</a>,
-  <a class="Xr" href="gbz80.7.html">gbz80(7)</a>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1>
-<dl class="Bl-ohang">
-  <dt></dt>
-  <dd>1997, Carsten S&#x00F8;rensen (AKA SurfSmurf) writes ASMotor as a
-      general-purpose assembler/linker system for DOS/Win32.</dd>
-  <dt></dt>
-  <dd>1999, Justin Lloyd (AKA Otaku no Zoku) adapts ASMotor to read and produce
-      GBZ80 assembly/machine code, and releases this version as RGBDS.</dd>
-  <dt></dt>
-  <dd>2009, Vegard Nossum adapts the code to be more UNIX-like and releases this
-      version as rgbds-linux on GitHub.</dd>
-  <dt></dt>
-  <dd>2010, Anthony J. Bentley forks that repository. The fork becomes the
-      reference implementation of rgbds.</dd>
-  <dt></dt>
-  <dd>2017, Bentley's repository is moved to a neutral name. It is now
-      maintained by a number of contributors at
-      <a class="Lk" href="https://github.com/rednex/rgbds">https://github.com/rednex/rgbds</a>.</dd>
-  <dt></dt>
-  <dd>2018, codebase relicensed under the MIT license.</dd>
-</dl>
-</section>
-</div>
-<table class="foot">
-  <tr>
-    <td class="foot-date">March 7, 2018</td>
-    <td class="foot-os">General</td>
-  </tr>
-</table>
-</body>
-</html>
--- a/docs/rgbds.css
+++ /dev/null
@@ -1,63 +1,0 @@
-/* Overrides to default mandoc styling for HTML renders of RGBDS man pages */
-
-html {
-	/* Reduce contrast */
-	background-color: #f8f8f8;
-	color: #222;
-
-	/* Override `mandoc.css`'s sowe can put it on <body> instead */
-	max-width: none;
-}
-
-body {
-	/* Center body horizontally (requires <html> to span full width) */
-	margin: 0 auto;
-	/* `mandoc.css`'s default, but it's applied to <html> there */
-	max-width: 65em;
-
-	/* Improve readability */
-	font-size: 16px;
-	line-height: 1.4;
-	text-align: justify;
-
-	/* Prevent text from bumping sides on mobile devices */
-	padding: 10px 20px 10px 10px;
-}
-@media print {
-	body {
-		/* Max width doesn't make sense for print */
-		max-width: none;
-		/* Make font slightly smaller for printing */
-		font-size: 14px;
-	}
-}
-
-code, pre {
-	font-size: smaller;
-}
-
-pre {
-	/* Avoid horizontal page scrolling on mobile */
-	overflow: auto;
-}
-
-/* Separate lines in tables */
-table.Bl-column {
-	border-collapse: collapse;
-}
-table.Bl-column tr:not(:first-child) > td,
-table.Bl-column tr:not(:first-child) > th {
-	border-top: 1px solid #aaa;
-}
-
-table.Bl-column th {
-	/* Apply `.Sy` style to table headers */
-	font-style: normal;
-	font-weight: bold;
-}
-
-table.Bl-column td,
-table.Bl-column th {
-	/* Add horizontal spacing between columns */
-	padding: 2px 7px 0;
-}
--- a/docs/rgbfix.1.html
+++ /dev/null
@@ -1,220 +1,0 @@
-<!DOCTYPE html>
-<html>
-<!-- This is an automatically generated file.  Do not edit.
-   This file is part of RGBDS.
-  
-   Copyright (c) 2010-2017, Anthony J. Bentley and RGBDS contributors.
-  
-   SPDX-License-Identifier: MIT
-   -->
-<head>
-  <meta name="viewport" content="width=device-width, initial-scale=1">
-  <meta charset="utf-8"/>
-  <link rel="stylesheet" href="mandoc.css" type="text/css" media="all"/>
-  <link rel="stylesheet" href="rgbds.css" type="text/css" media="all"/>
-  <title>RGBFIX(1)</title>
-</head>
-<body>
-<table class="head">
-  <tr>
-    <td class="head-ltitle">RGBFIX(1)</td>
-    <td class="head-vol">General Commands Manual</td>
-    <td class="head-rtitle">RGBFIX(1)</td>
-  </tr>
-</table>
-<div class="manual-text">
-<section class="Sh">
-<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
-<code class="Nm">rgbfix</code> &#x2014;
-<span class="Nd">Game Boy header utility and checksum fixer</span>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
-<table class="Nm">
-  <tr>
-    <td><code class="Nm">rgbfix</code></td>
-    <td>[<code class="Fl"><a href="#j">-j</a><a href="#s">s</a><a href="#V">V</a><a href="#v">v</a></code>] [<code class="Fl"><a href="#C">-C</a></code> |
-      <code class="Fl"><a href="#c">-c</a></code>] [<code class="Fl"><a href="#f">-f</a></code>
-      <var class="Ar">fix_spec</var>] [<code class="Fl"><a href="#i">-i</a></code>
-      <var class="Ar">game_id</var>] [<code class="Fl"><a href="#k">-k</a></code>
-      <var class="Ar">licensee_str</var>] [<code class="Fl"><a href="#l">-l</a></code>
-      <var class="Ar">licensee_id</var>] [<code class="Fl"><a href="#m">-m</a></code>
-      <var class="Ar">mbc_type</var>] [<code class="Fl"><a href="#n">-n</a></code>
-      <var class="Ar">rom_version</var>] [<code class="Fl"><a href="#p">-p</a></code>
-      <var class="Ar">pad_value</var>] [<code class="Fl"><a href="#r">-r</a></code>
-      <var class="Ar">ram_size</var>] [<code class="Fl"><a href="#t">-t</a></code>
-      <var class="Ar">title_str</var>] <var class="Ar">file</var></td>
-  </tr>
-</table>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
-The <code class="Nm">rgbfix</code> program changes headers of Game Boy ROM
-  images. It also performs other correctness operations, such as padding.
-<p class="Pp">Note that options can be abbreviated as long as the abbreviation
-    is unambiguous: <code class="Fl">--verb</code> is
-    <code class="Fl">--verbose</code>, but
-    <code class="Fl">--ver</code> is invalid because it
-    could also be <code class="Fl">--version</code>. The
-    arguments are as follows:</p>
-<dl class="Bl-tag">
-  <dt><a class="permalink" href="#C"><code class="Fl" id="C">-C</code></a>,
-    <code class="Fl">--color-only</code></dt>
-  <dd>Set the Game Boy Color&#x2013;only flag: <span class="Ad">0x143</span> =
-      0xC0. If both this and the <code class="Fl">-c</code> flag are set, this
-      takes precedence.</dd>
-  <dt><a class="permalink" href="#c"><code class="Fl" id="c">-c</code></a>,
-    <code class="Fl">--color-compatible</code></dt>
-  <dd>Set the Game Boy Color&#x2013;compatible flag:
-      <span class="Ad">0x143</span> = 0x80. If both this and the
-      <code class="Fl">-C</code> flag are set, <code class="Fl">-C</code> takes
-      precedence.</dd>
-  <dt><a class="permalink" href="#f"><code class="Fl" id="f">-f</code></a>
-    <var class="Ar">fix_spec</var>,
-    <code class="Fl">--fix-spec</code>
-    <var class="Ar">fix_spec</var></dt>
-  <dd>Fix certain header values that the Game Boy checks for correctness.
-      Alternatively, intentionally trash these values by writing their binary
-      inverse instead. <var class="Ar">fix_spec</var> is a string containing any
-      combination of the following characters:
-    <p class="Pp"></p>
-    <dl class="Bl-tag Bl-compact">
-      <dt><a class="permalink" href="#l"><code class="Cm" id="l">l</code></a></dt>
-      <dd>Fix the Nintendo logo
-          (<span class="Ad">0x104</span>&#x2013;<span class="Ad">0x133</span>).</dd>
-      <dt><a class="permalink" href="#L"><code class="Cm" id="L">L</code></a></dt>
-      <dd>Trash the Nintendo logo.</dd>
-      <dt><a class="permalink" href="#h"><code class="Cm" id="h">h</code></a></dt>
-      <dd>Fix the header checksum (<span class="Ad">0x14D</span>).</dd>
-      <dt><a class="permalink" href="#H"><code class="Cm" id="H">H</code></a></dt>
-      <dd>Trash the header checksum.</dd>
-      <dt><a class="permalink" href="#g"><code class="Cm" id="g">g</code></a></dt>
-      <dd>Fix the global checksum
-          (<span class="Ad">0x14E</span>&#x2013;<span class="Ad">0x14F</span>).</dd>
-      <dt><a class="permalink" href="#G"><code class="Cm" id="G">G</code></a></dt>
-      <dd>Trash the global checksum.</dd>
-    </dl>
-  </dd>
-  <dt><a class="permalink" href="#i"><code class="Fl" id="i">-i</code></a>
-    <var class="Ar">game_id</var>,
-    <code class="Fl">--game-id</code>
-    <var class="Ar">game_id</var></dt>
-  <dd>Set the game ID string
-      (<span class="Ad">0x13F</span>&#x2013;<span class="Ad">0x142</span>) to a
-      given string of exactly 4 characters. If both this and the title are set,
-      the game ID will overwrite the overlapping portion of the title.</dd>
-  <dt><a class="permalink" href="#j"><code class="Fl" id="j">-j</code></a>,
-    <code class="Fl">--non-japanese</code></dt>
-  <dd>Set the non-Japanese region flag: <span class="Ad">0x14A</span> = 1.</dd>
-  <dt><a class="permalink" href="#k"><code class="Fl" id="k">-k</code></a>
-    <var class="Ar">licensee_str</var>,
-    <code class="Fl">--new-licensee</code>
-    <var class="Ar">licensee_str</var></dt>
-  <dd>Set the new licensee string
-      (<span class="Ad">0x144</span>&#x2013;<span class="Ad">0x145</span>) to a
-      given string, truncated to at most two characters.</dd>
-  <dt><a class="permalink" href="#l_2"><code class="Fl" id="l_2">-l</code></a>
-    <var class="Ar">licensee_id</var>,
-    <code class="Fl">--old-licensee</code>
-    <var class="Ar">licensee_id</var></dt>
-  <dd>Set the old licensee code, <span class="Ad">0x14B</span>, to a given value
-      from 0 to 0xFF. This value is deprecated and should be set to 0x33 in all
-      new software.</dd>
-  <dt><a class="permalink" href="#m"><code class="Fl" id="m">-m</code></a>
-    <var class="Ar">mbc_type</var>,
-    <code class="Fl">--mbc-type</code>
-    <var class="Ar">mbc_type</var></dt>
-  <dd>Set the MBC type, <span class="Ad">0x147</span>, to a given value from 0
-      to 0xFF.</dd>
-  <dt><a class="permalink" href="#n"><code class="Fl" id="n">-n</code></a>
-    <var class="Ar">rom_version</var>,
-    <code class="Fl">--rom-version</code>
-    <var class="Ar">rom_version</var></dt>
-  <dd>Set the ROM version, <span class="Ad">0x14C</span>, to a given value from
-      0 to 0xFF.</dd>
-  <dt><a class="permalink" href="#p"><code class="Fl" id="p">-p</code></a>
-    <var class="Ar">pad_value</var>,
-    <code class="Fl">--pad-value</code>
-    <var class="Ar">pad_value</var></dt>
-  <dd>Pad the image to a valid size with a given pad value from 0 to 0xFF.
-      <code class="Nm">rgbfix</code> will automatically pick a size from 32 KiB,
-      64 KiB, 128 KiB, ..., 8192 KiB. The cartridge size byte
-      (<span class="Ad">0x148</span>) will be changed to reflect this new
-    size.</dd>
-  <dt><a class="permalink" href="#r"><code class="Fl" id="r">-r</code></a>
-    <var class="Ar">ram_size</var>,
-    <code class="Fl">--ram-size</code>
-    <var class="Ar">ram_size</var></dt>
-  <dd>Set the RAM size, <span class="Ad">0x149</span>, to a given value from 0
-      to 0xFF.</dd>
-  <dt><a class="permalink" href="#s"><code class="Fl" id="s">-s</code></a>,
-    <code class="Fl">--sgb-compatible</code></dt>
-  <dd>Set the SGB flag: <span class="Ad">0x146</span> = 3. This flag will be
-      ignored by the SGB unless the old licensee code is 0x33!</dd>
-  <dt><a class="permalink" href="#t"><code class="Fl" id="t">-t</code></a>
-    <var class="Ar">title</var>,
-    <code class="Fl">--title</code>
-    <var class="Ar">title</var></dt>
-  <dd>Set the title string
-      (<span class="Ad">0x134</span>&#x2013;<span class="Ad">0x143</span>) to a
-      given string, truncated to at most 16 characters. It is recommended to use
-      15 characters instead, to avoid clashing with the CGB flag
-      (<code class="Fl">-c</code> or <code class="Fl">-C</code>). If both this
-      and the game ID are set, the game ID will overwrite the overlapping
-      portion of the title.</dd>
-  <dt><a class="permalink" href="#V"><code class="Fl" id="V">-V</code></a>,
-    <code class="Fl">--version</code></dt>
-  <dd>Print the version of the program and exit.</dd>
-  <dt><a class="permalink" href="#v"><code class="Fl" id="v">-v</code></a>,
-    <code class="Fl">--validate</code></dt>
-  <dd>Equivalent to <code class="Fl">-f</code> <code class="Cm">lhg</code>.</dd>
-</dl>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="EXAMPLES"><a class="permalink" href="#EXAMPLES">EXAMPLES</a></h1>
-Most values in the ROM header are only cosmetic. The bare minimum requirements
-  for a workable program are the header checksum, the Nintendo logo, and (if
-  needed) the CGB/SGB flags. It is a good idea to pad the image to a valid size
-  as well (&#x201C;valid&#x201D; meaning a power of 2, times 32 KiB).
-<p class="Pp">The following will make a plain, non-color Game Boy game without
-    checking for a valid size:</p>
-<p class="Pp"></p>
-<div class="Bd Bd-indent">$ rgbfix -v foo.gb</div>
-<p class="Pp">The following will make a SGB-enabled, color-enabled game with a
-    title of &#x201C;foobar&#x201D;, and pad it to a valid size. (The Game Boy
-    itself does not use the title, but some emulators or ROM managers do.)</p>
-<p class="Pp"></p>
-<div class="Bd Bd-indent">$ rgbfix -vcs -l 0x33 -p 255 -t foobar baz.gb</div>
-<p class="Pp">The following will duplicate the header (sans global checksum) of
-    the game &#x201C;Survival Kids&#x201D;:</p>
-<p class="Pp"></p>
-<div class="Bd Bd-indent">$ rgbfix -cjsv -k A4 -l 0x33 -m 0x1B -p 0xFF -r 3 -t
-  SURVIVALKIDAVKE SurvivalKids.gbc</div>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="BUGS"><a class="permalink" href="#BUGS">BUGS</a></h1>
-Please report bugs on
-  <a class="Lk" href="https://github.com/rednex/rgbds/issues">GitHub</a>.
-</section>
-<section class="Sh">
-<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
-  ALSO</a></h1>
-<a class="Xr" href="rgbasm.1.html">rgbasm(1)</a>, <a class="Xr" href="rgblink.1.html">rgblink(1)</a>,
-  <a class="Xr" href="rgbds.7.html">rgbds(7)</a>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1>
-<code class="Nm">rgbfix</code> was originally released by Carsten
-  S&#x00F8;rensen as a standalone program called gbfix, and was later packaged
-  in RGBDS by Justin Lloyd. It is now maintained by a number of contributors at
-  <a class="Lk" href="https://github.com/rednex/rgbds">https://github.com/rednex/rgbds</a>.
-</section>
-</div>
-<table class="foot">
-  <tr>
-    <td class="foot-date">December 5, 2019</td>
-    <td class="foot-os">General</td>
-  </tr>
-</table>
-</body>
-</html>
--- a/docs/rgbgfx.1.html
+++ /dev/null
@@ -1,220 +1,0 @@
-<!DOCTYPE html>
-<html>
-<!-- This is an automatically generated file.  Do not edit.
-   This file is part of RGBDS.
-  
-   Copyright (c) 2013-2018, stag019 and RGBDS contributors.
-  
-   SPDX-License-Identifier: MIT
-   -->
-<head>
-  <meta name="viewport" content="width=device-width, initial-scale=1">
-  <meta charset="utf-8"/>
-  <link rel="stylesheet" href="mandoc.css" type="text/css" media="all"/>
-  <link rel="stylesheet" href="rgbds.css" type="text/css" media="all"/>
-  <title>RGBGFX(1)</title>
-</head>
-<body>
-<table class="head">
-  <tr>
-    <td class="head-ltitle">RGBGFX(1)</td>
-    <td class="head-vol">General Commands Manual</td>
-    <td class="head-rtitle">RGBGFX(1)</td>
-  </tr>
-</table>
-<div class="manual-text">
-<section class="Sh">
-<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
-<code class="Nm">rgbgfx</code> &#x2014;
-<span class="Nd">Game Boy graphics converter</span>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
-<table class="Nm">
-  <tr>
-    <td><code class="Nm">rgbgfx</code></td>
-    <td>[<code class="Fl"><a href="#C">-C</a><a href="#D">D</a><a href="#h">h</a><a href="#m">m</a><a href="#u">u</a><a href="#V">V</a><a href="#v">v</a></code>] [<code class="Fl"><a href="#f">-f</a></code> |
-      <code class="Fl"><a href="#F">-F</a></code>] [<code class="Fl"><a href="#a">-a</a></code>
-      <var class="Ar">attrmap</var> | <code class="Fl"><a href="#A">-A</a></code>]
-      [<code class="Fl"><a href="#d">-d</a></code> <var class="Ar">depth</var>]
-      [<code class="Fl"><a href="#o">-o</a></code> <var class="Ar">out_file</var>]
-      [<code class="Fl"><a href="#p">-p</a></code> <var class="Ar">pal_file</var> |
-      <code class="Fl"><a href="#P">-P</a></code>] [<code class="Fl"><a href="#t">-t</a></code>
-      <var class="Ar">tilemap</var> | <code class="Fl"><a href="#T">-T</a></code>]
-      [<code class="Fl"><a href="#x">-x</a></code> <var class="Ar">tiles</var>]
-      <var class="Ar">file</var></td>
-  </tr>
-</table>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
-The <code class="Nm">rgbgfx</code> program converts PNG images into the Nintendo
-  Game Boy's planar tile format.
-<p class="Pp">The resulting colors and their palette indices are determined
-    differently depending on the input PNG file:</p>
-<ul class="Bl-dash">
-  <li>If the file has an embedded palette, that palette's color and order are
-      used.</li>
-  <li>If not, and the image only contains shades of gray, rgbgfx maps them to
-      the indices appropriate for each shade. Any undetermined indices are set
-      to respective default shades of gray. For example: if the bit depth is 2
-      and the image contains light gray and black, they become the second and
-      fourth colors, and the first and third colors get set to default white and
-      dark gray. If the image has multiple shades that map to the same index,
-      the palette is instead determined as if the image had color.</li>
-  <li>If the image has color (or the grayscale method failed), the colors are
-      sorted from lightest to darkest.</li>
-</ul>
-<p class="Pp">The input image may not contain more colors than the selected bit
-    depth allows. Transparent pixels are set to palette index 0.</p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="ARGUMENTS"><a class="permalink" href="#ARGUMENTS">ARGUMENTS</a></h1>
-Note that options can be abbreviated as long as the abbreviation is unambiguous:
-  <code class="Fl">--verb</code> is
-  <code class="Fl">-</code> <code class="Fl">-verbose</code>, but
-  <code class="Fl">--ver</code> is invalid because it
-  could also be <code class="Fl">--version</code>. The
-  arguments are as follows:
-<dl class="Bl-tag">
-  <dt><a class="permalink" href="#a"><code class="Fl" id="a">-a</code></a>
-    <var class="Ar">attrmap,</var>
-    <code class="Fl">--attr-map</code>
-    <var class="Ar">attrmap</var></dt>
-  <dd>Generate a file of tile mirroring attributes for OAM or (CGB-only)
-      background tiles. For each tile in the input file, a byte is written
-      representing the dimensions that the associated tile in the output file
-      should be mirrored. Useful in combination with <code class="Fl">-m</code>
-      to keep track the mirror direction of mirrored duplicate tiles.</dd>
-  <dt><a class="permalink" href="#A"><code class="Fl" id="A">-A</code></a>,
-    <code class="Fl">--output-attr-map</code></dt>
-  <dd>Same as <code class="Fl">-a</code>, but the attrmap file output name is
-      made by taking the input filename, removing the file extension, and
-      appending <span class="Pa">.attrmap</span>.</dd>
-  <dt><a class="permalink" href="#C"><code class="Fl" id="C">-C</code></a>,
-    <code class="Fl">--color-curve</code></dt>
-  <dd>Use the color curve of the Game Boy Color when generating palettes.</dd>
-  <dt><a class="permalink" href="#D"><code class="Fl" id="D">-D</code></a>,
-    <code class="Fl">--debug</code></dt>
-  <dd>Debug features are enabled.</dd>
-  <dt><a class="permalink" href="#d"><code class="Fl" id="d">-d</code></a>
-    <var class="Ar">depth</var>,
-    <code class="Fl">--depth</code>
-    <var class="Ar">depth</var></dt>
-  <dd>The bit depth of the output image (either 1 or 2). By default, the bit
-      depth is 2 (two bits per pixel).</dd>
-  <dt><a class="permalink" href="#f"><code class="Fl" id="f">-f</code></a>,
-    <code class="Fl">--fix</code></dt>
-  <dd>Fix the input PNG file to be a correctly indexed image.</dd>
-  <dt><a class="permalink" href="#F"><code class="Fl" id="F">-F</code></a>,
-    <code class="Fl">--fix-and-save</code></dt>
-  <dd>Same as <code class="Fl">-f</code>, but additionally, the supplied command
-      line parameters are saved within the PNG and will be loaded and
-      automatically used next time.</dd>
-  <dt><a class="permalink" href="#h"><code class="Fl" id="h">-h</code></a>,
-    <code class="Fl">--horizontal</code></dt>
-  <dd>Lay out tiles horizontally rather than vertically.</dd>
-  <dt><a class="permalink" href="#m"><code class="Fl" id="m">-m</code></a>,
-    <code class="Fl">--mirror-tiles</code></dt>
-  <dd>Truncate tiles by checking for tiles that are mirrored versions of others
-      and omitting these from the output file. Useful with tilemaps and attrmaps
-      together to keep track of the duplicated tiles and the dimension mirrored.
-      Tiles are checked for horizontal, vertical, and horizontal-vertical
-      mirroring. Implies <code class="Fl">-u</code>.</dd>
-  <dt><a class="permalink" href="#o"><code class="Fl" id="o">-o</code></a>
-    <var class="Ar">out_file</var>,
-    <code class="Fl">--output</code>
-    <var class="Ar">out_file</var></dt>
-  <dd>The name of the output file.</dd>
-  <dt><a class="permalink" href="#p"><code class="Fl" id="p">-p</code></a>
-    <var class="Ar">pal_file</var>,
-    <code class="Fl">--palette</code>
-    <var class="Ar">pal_file</var></dt>
-  <dd>Output the image's palette in standard GBC palette format: bytes (8 bytes
-      for two bits per pixel, 4 bytes for one bit per pixel) containing the
-      RGB15 values in little-endian byte order. If the palette contains too few
-      colors, the remaining entries are set to black.</dd>
-  <dt><a class="permalink" href="#P"><code class="Fl" id="P">-P</code></a>,
-    <code class="Fl">--output-palette</code></dt>
-  <dd>Same as <code class="Fl">-p</code>, but the palette file output name is
-      made by taking the input PNG file's filename, removing the file extension,
-      and appending <span class="Pa">.pal</span>.</dd>
-  <dt><a class="permalink" href="#t"><code class="Fl" id="t">-t</code></a>
-    <var class="Ar">tilemap</var>,
-    <code class="Fl">--tilemap</code>
-    <var class="Ar">tilemap</var></dt>
-  <dd>Generate a file of tile indices. For each tile in the input file, a byte
-      is written representing the index of the associated tile in the output
-      file. Useful in combination with <code class="Fl">-u</code> or
-      <code class="Fl">-m</code> to keep track of duplicate tiles.</dd>
-  <dt><a class="permalink" href="#T"><code class="Fl" id="T">-T</code></a>,
-    <code class="Fl">--output-tilemap</code></dt>
-  <dd>Same as <code class="Fl">-t</code>, but the tilemap file output name is
-      made by taking the input filename, removing the file extension, and
-      appending <span class="Pa">.tilemap</span>.</dd>
-  <dt><a class="permalink" href="#u"><code class="Fl" id="u">-u</code></a>,
-    <code class="Fl">--unique-tiles</code></dt>
-  <dd>Truncate tiles by checking for tiles that are exact duplicates of others
-      and omitting these from the output file. Useful with tilemaps to keep
-      track of the duplicated tiles.</dd>
-  <dt><a class="permalink" href="#V"><code class="Fl" id="V">-V</code></a>,
-    <code class="Fl">--version</code></dt>
-  <dd>Print the version of the program and exit.</dd>
-  <dt><a class="permalink" href="#v"><code class="Fl" id="v">-v</code></a>,
-    <code class="Fl">--verbose</code></dt>
-  <dd>Verbose. Print errors when the command line parameters and the parameters
-      in the PNG file don't match.</dd>
-  <dt><a class="permalink" href="#x"><code class="Fl" id="x">-x</code></a>
-    <var class="Ar">tiles</var>,
-    <code class="Fl">--trim-end</code>
-    <var class="Ar">tiles</var></dt>
-  <dd>Trim the end of the output file by this many tiles.</dd>
-</dl>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="EXAMPLES"><a class="permalink" href="#EXAMPLES">EXAMPLES</a></h1>
-The following will take a PNG file with a bit depth of 1, 2, or 8, and output
-  planar 2bpp data:
-<p class="Pp"></p>
-<div class="Bd Bd-indent">$ rgbgfx -o out.2bpp in.png</div>
-<p class="Pp">The following creates a planar 2bpp file with only unique tiles,
-    and its tilemap <span class="Pa">out.tilemap</span>:</p>
-<p class="Pp"></p>
-<div class="Bd Bd-indent">$ rgbgfx -T -u -o out.2bpp in.png</div>
-<p class="Pp">The following creates a planar 2bpp file with only unique tiles
-    <span class="Pa">accounting for tile mirroring</span> and its associated
-    tilemap <span class="Pa">out.tilemap</span> and attrmap
-    <span class="Pa">out.attrmap</span>:</p>
-<p class="Pp"></p>
-<div class="Bd Bd-indent">$ rgbgfx -A -T -m -o out.2bpp in.png</div>
-<p class="Pp">The following will do nothing:</p>
-<p class="Pp"></p>
-<div class="Bd Bd-indent">$ rgbgfx in.png</div>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="BUGS"><a class="permalink" href="#BUGS">BUGS</a></h1>
-Please report bugs on
-  <a class="Lk" href="https://github.com/rednex/rgbds/issues">GitHub</a>.
-</section>
-<section class="Sh">
-<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
-  ALSO</a></h1>
-<a class="Xr" href="rgbds.7.html">rgbds(7)</a>, <a class="Xr" href="rgbasm.1.html">rgbasm(1)</a>,
-  <a class="Xr" href="rgblink.1.html">rgblink(1)</a>, <a class="Xr" href="rgbfix.1.html">rgbfix(1)</a>,
-  <a class="Xr" href="gbz80.7.html">gbz80(7)</a>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1>
-<code class="Nm">rgbgfx</code> was created by <span class="An">stag019</span> to
-  be included in RGBDS. It is now maintained by a number of contributors at
-  <a class="Lk" href="https://github.com/rednex/rgbds">https://github.com/rednex/rgbds</a>.
-</section>
-</div>
-<table class="foot">
-  <tr>
-    <td class="foot-date">December 5, 2019</td>
-    <td class="foot-os">General</td>
-  </tr>
-</table>
-</body>
-</html>
--- a/docs/rgblink.1.html
+++ /dev/null
@@ -1,192 +1,0 @@
-<!DOCTYPE html>
-<html>
-<!-- This is an automatically generated file.  Do not edit.
-   This file is part of RGBDS.
-  
-   Copyright (c) 2010-2019, Anthony J. Bentley and RGBDS contributors.
-  
-   SPDX-License-Identifier: MIT
-   -->
-<head>
-  <meta name="viewport" content="width=device-width, initial-scale=1">
-  <meta charset="utf-8"/>
-  <link rel="stylesheet" href="mandoc.css" type="text/css" media="all"/>
-  <link rel="stylesheet" href="rgbds.css" type="text/css" media="all"/>
-  <title>RGBLINK(1)</title>
-</head>
-<body>
-<table class="head">
-  <tr>
-    <td class="head-ltitle">RGBLINK(1)</td>
-    <td class="head-vol">General Commands Manual</td>
-    <td class="head-rtitle">RGBLINK(1)</td>
-  </tr>
-</table>
-<div class="manual-text">
-<section class="Sh">
-<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
-<code class="Nm">rgblink</code> &#x2014;
-<span class="Nd">Game Boy linker</span>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
-<table class="Nm">
-  <tr>
-    <td><code class="Nm">rgblink</code></td>
-    <td>[<code class="Fl"><a href="#d">-d</a><a href="#t">t</a><a href="#V">V</a><a href="#v">v</a><a href="#w">w</a><a href="#x">x</a></code>] [<code class="Fl"><a href="#l">-l</a></code>
-      <var class="Ar">linker_script</var>] [<code class="Fl"><a href="#m">-m</a></code>
-      <var class="Ar">map_file</var>] [<code class="Fl"><a href="#n">-n</a></code>
-      <var class="Ar">sym_file</var>] [<code class="Fl"><a href="#O">-O</a></code>
-      <var class="Ar">overlay_file</var>] [<code class="Fl"><a href="#o">-o</a></code>
-      <var class="Ar">out_file</var>] [<code class="Fl"><a href="#p">-p</a></code>
-      <var class="Ar">pad_value</var>] [<code class="Fl"><a href="#s">-s</a></code>
-      <var class="Ar">symbol</var>] <var class="Ar">file ...</var></td>
-  </tr>
-</table>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
-The <code class="Nm">rgblink</code> program links RGB object files, typically
-  created by <a class="Xr" href="rgbasm.1.html">rgbasm(1)</a>, into a single Game Boy ROM file. The
-  format is documented in <a class="Xr" href="rgbds.5.html">rgbds(5)</a>.
-<p class="Pp">ROM0 sections are placed in the first 16 KiB of the output ROM,
-    and ROMX sections are placed in any 16 KiB &#x201C;bank&#x201D; except the
-    first. If your ROM will only be 32 KiB, you can use the
-    <code class="Fl">-t</code> option to change this.</p>
-<p class="Pp">Similarly, WRAM0 sections are placed in the first 4 KiB of WRAM
-    (&#x201C;bank 0&#x201D;), and WRAMX sections are placed in any bank of the
-    last 4 KiB. If your ROM doesn't use banked WRAM, you can use the
-    <code class="Fl">-w</code> option to change this.</p>
-<p class="Pp">Also, if your ROM is designed for a monochrome Game Boy, you can
-    make sure that you don't use any incompatible section by using the
-    <code class="Fl">-d</code> option, which implies <code class="Fl">-w</code>
-    but also prohibits the use of banked VRAM.</p>
-<p class="Pp">Note that options can be abbreviated as long as the abbreviation
-    is unambiguous: <code class="Fl">--verb</code> is
-    <code class="Fl">--verbose</code>, but
-    <code class="Fl">--ver</code> is invalid because it
-    could also be <code class="Fl">--version</code>. The
-    arguments are as follows:</p>
-<dl class="Bl-tag">
-  <dt><a class="permalink" href="#d"><code class="Fl" id="d">-d</code></a>,
-    <code class="Fl">--dmg</code></dt>
-  <dd>Enable DMG mode. Prohibit the use of sections that doesn't exist on a DMG,
-      such as VRAM bank 1. This option automatically enables
-      <code class="Fl">-w</code>.</dd>
-  <dt><a class="permalink" href="#l"><code class="Fl" id="l">-l</code></a>
-    <var class="Ar">linker_script,</var>
-    <code class="Fl">--linkerscript</code>
-    <var class="Ar">linker_script</var></dt>
-  <dd>Specify a linker script file that tells the linker how sections must be
-      placed in the ROM. The attributes assigned in the linker script must be
-      consistent with any assigned in the code. See <a class="Xr" href="rgblink.5.html">rgblink(5)</a>
-      for more information about the linker script format.</dd>
-  <dt><a class="permalink" href="#m"><code class="Fl" id="m">-m</code></a>
-    <var class="Ar">map_file</var>,
-    <code class="Fl">--map</code>
-    <var class="Ar">map_file</var></dt>
-  <dd>Write a map file to the given filename, listing how sections and symbols
-      were assigned.</dd>
-  <dt><a class="permalink" href="#n"><code class="Fl" id="n">-n</code></a>
-    <var class="Ar">sym_file</var>,
-    <code class="Fl">--sym</code>
-    <var class="Ar">sym_file</var></dt>
-  <dd>Write a symbol file to the given filename, listing the address of all
-      exported symbols. Several external programs can use this information, for
-      example to help debugging ROMs.</dd>
-  <dt><a class="permalink" href="#O"><code class="Fl" id="O">-O</code></a>
-    <var class="Ar">overlay_file</var>,
-    <code class="Fl">--overlay</code>
-    <var class="Ar">overlay_file</var></dt>
-  <dd>If specified, sections will be overlaid &quot;on top&quot; of the provided
-      ROM image. In that case, all sections must be fixed. This may be used to
-      patch an existing binary.</dd>
-  <dt><a class="permalink" href="#o"><code class="Fl" id="o">-o</code></a>
-    <var class="Ar">out_file</var>,
-    <code class="Fl">--output</code>
-    <var class="Ar">out_file</var></dt>
-  <dd>Write the ROM image to the given file.</dd>
-  <dt><a class="permalink" href="#p"><code class="Fl" id="p">-p</code></a>
-    <var class="Ar">pad_value</var>,
-    <code class="Fl">--pad</code>
-    <var class="Ar">pad_value</var></dt>
-  <dd>When inserting padding between sections, pad with this value. Has no
-      effect if <code class="Fl">-O</code> is specified. The default is 0.</dd>
-  <dt><a class="permalink" href="#s"><code class="Fl" id="s">-s</code></a>
-    <var class="Ar">symbol</var>,
-    <code class="Fl">--smart</code>
-    <var class="Ar">symbol</var></dt>
-  <dd>This option is ignored. It was supposed to perform smart linking but fell
-      into disrepair, and so has been removed. It will be reimplemented at some
-      point.</dd>
-  <dt><a class="permalink" href="#t"><code class="Fl" id="t">-t</code></a>,
-    <code class="Fl">--tiny</code></dt>
-  <dd>Expand the ROM0 section size from 16 KiB to the full 32 KiB assigned to
-      ROM. ROMX sections that are fixed to a bank other than 1 become errors,
-      other ROMX sections are treated as ROM0. Useful for ROMs that fit in 32
-      KiB.</dd>
-  <dt><a class="permalink" href="#V"><code class="Fl" id="V">-V</code></a>,
-    <code class="Fl">--version</code></dt>
-  <dd>Print the version of the program and exit.</dd>
-  <dt><a class="permalink" href="#v"><code class="Fl" id="v">-v</code></a>,
-    <code class="Fl">--verbose</code></dt>
-  <dd>Verbose: enable printing more information to standard error.</dd>
-  <dt><a class="permalink" href="#w"><code class="Fl" id="w">-w</code></a>,
-    <code class="Fl">--wramx</code></dt>
-  <dd>Expand the WRAM0 section size from 4 KiB to the full 8 KiB assigned to
-      WRAM. WRAMX sections that are fixed to a bank other than 1 become errors,
-      other WRAMX sections are treated as WRAM0.</dd>
-  <dt><a class="permalink" href="#x"><code class="Fl" id="x">-x</code></a>,
-    <code class="Fl">--nopad</code></dt>
-  <dd>Disables padding the end of the final file. This option automatically
-      enables <code class="Fl">-t</code>. You can use this when not not making a
-      ROM. When making a ROM, be careful that not using this is not a
-      replacement for <a class="Xr" href="rgbfix.1.html">rgbfix(1)</a>'s <code class="Fl">-p</code>
-      option!</dd>
-</dl>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="EXAMPLES"><a class="permalink" href="#EXAMPLES">EXAMPLES</a></h1>
-All you need for a basic ROM is an object file, which can be made into a ROM
-  image like so:
-<p class="Pp"></p>
-<div class="Bd Bd-indent">$ rgblink -o bar.gb foo.o</div>
-<p class="Pp">The resulting <var class="Ar">bar.gb</var> will not have correct
-    checksums (unless you put them in the assembly source). You should use
-    <a class="Xr" href="rgbfix.1.html">rgbfix(1)</a> to fix these so that the program will actually
-    run in a Game Boy:</p>
-<p class="Pp"></p>
-<div class="Bd Bd-indent"><code class="Li">$ rgbfix -v bar.gb</code></div>
-<p class="Pp">Here is a more complete example:</p>
-<p class="Pp"></p>
-<div class="Bd Bd-indent"><code class="Li">$ rgblink -o bin/game.gb -n
-  bin/game.sym -p 0xFF obj/title.o obj/engine.o</code></div>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="BUGS"><a class="permalink" href="#BUGS">BUGS</a></h1>
-Please report bugs on
-  <a class="Lk" href="https://github.com/rednex/rgbds/issues">GitHub</a>.
-</section>
-<section class="Sh">
-<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
-  ALSO</a></h1>
-<a class="Xr" href="rgbasm.1.html">rgbasm(1)</a>, <a class="Xr" href="rgblink.5.html">rgblink(5)</a>,
-  <a class="Xr" href="rgbfix.1.html">rgbfix(1)</a>, <a class="Xr" href="rgbds.5.html">rgbds(5)</a>,
-  <a class="Xr" href="rgbds.7.html">rgbds(7)</a>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1>
-<code class="Nm">rgblink</code> was originally written by Carsten
-  S&#x00F8;rensen as part of the ASMotor package, and was later packaged in
-  RGBDS by Justin Lloyd. It is now maintained by a number of contributors at
-  <a class="Lk" href="https://github.com/rednex/rgbds">https://github.com/rednex/rgbds</a>.
-</section>
-</div>
-<table class="foot">
-  <tr>
-    <td class="foot-date">November 26, 2019</td>
-    <td class="foot-os">General</td>
-  </tr>
-</table>
-</body>
-</html>
--- a/docs/rgblink.5.html
+++ /dev/null
@@ -1,111 +1,0 @@
-<!DOCTYPE html>
-<html>
-<!-- This is an automatically generated file.  Do not edit.
-   This file is part of RGBDS.
-  
-   Copyright (c) 2017-2018, Antonio Nino Diaz and RGBDS contributors.
-  
-   SPDX-License-Identifier: MIT
-   -->
-<head>
-  <meta name="viewport" content="width=device-width, initial-scale=1">
-  <meta charset="utf-8"/>
-  <link rel="stylesheet" href="mandoc.css" type="text/css" media="all"/>
-  <link rel="stylesheet" href="rgbds.css" type="text/css" media="all"/>
-  <title>RGBLINK(5)</title>
-</head>
-<body>
-<table class="head">
-  <tr>
-    <td class="head-ltitle">RGBLINK(5)</td>
-    <td class="head-vol">File Formats Manual</td>
-    <td class="head-rtitle">RGBLINK(5)</td>
-  </tr>
-</table>
-<div class="manual-text">
-<section class="Sh">
-<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
-<code class="Nm">rgblink</code> &#x2014;
-<span class="Nd">linker script file format</span>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
-The linker script is an external file that allows the user to specify the order
-  of sections at link time and in a centralized manner.
-<p class="Pp">A linker script consists on a series of banks followed by a list
-    of sections and, optionally, commands. They can be lowercase or uppercase,
-    it is ignored. Any line can contain a comment starting with
-    &#x2018;<code class="Li">;</code>&#x2019; that ends at the end of the
-  line:</p>
-<div class="Bd Pp Bd-indent">
-<pre>
-ROMX $F ; This is a comment
-  &quot;Functions to read array&quot;
-  ALIGN 8
-  &quot;Array aligned to 256 bytes&quot;
-
-WRAMX 2
-  &quot;Some variables&quot;
-</pre>
-</div>
-<p class="Pp">Numbers can be in decimal or hexadecimal format (the prefix is
-    &#x2018;<code class="Li">$</code>&#x2019;). It is an error if any section
-    name or command is found before setting a bank.</p>
-<p class="Pp">Files can be included by using the <code class="Ic">INCLUDE</code>
-    keyword, followed by a string with the path of the file that has to be
-    included.</p>
-<p class="Pp">The possible bank types are: <code class="Cm">ROM0</code>,
-    <code class="Cm">ROMX</code>, <code class="Cm">VRAM</code>,
-    <code class="Cm">SRAM</code>, <code class="Cm">WRAM0</code>,
-    <code class="Cm">WRAMX</code>, <code class="Cm">OAM</code> and
-    <code class="Cm">HRAM</code>. Unless there is a single bank, which can occur
-    with types <code class="Cm">ROMX</code>, <code class="Cm">VRAM</code>,
-    <code class="Cm">SRAM</code> and <code class="Cm">WRAMX</code>, it is needed
-    to specify a bank number after the type.</p>
-<p class="Pp">When a new bank statement is found, sections found after it will
-    be placed right from the beginning of that bank. If the linker script
-    switches to a different bank and then comes back to a previous one, it will
-    continue from the last address that was used.</p>
-<p class="Pp">The only two commands are <code class="Ic">ORG</code> and
-    <code class="Ic">ALIGN</code>:</p>
-<ul class="Bl-bullet">
-  <li><a class="permalink" href="#ORG"><code class="Ic" id="ORG">ORG</code></a>
-      sets the address in which new sections will be placed. It can not be lower
-      than the current address.</li>
-  <li><a class="permalink" href="#ALIGN"><code class="Ic" id="ALIGN">ALIGN</code></a>
-      will increase the address until it is aligned to the specified boundary
-      (it tries to set to 0 the number of bits specified after the command:
-      &#x2018;<code class="Li">ALIGN 8</code>&#x2019; will align to $100).</li>
-</ul>
-<p class="Pp"><b class="Sy">Note:</b> The bank, alignment, address and type of
-    sections can be specified both in the source code and in the linker script.
-    For a section to be able to be placed with the linker script, the bank,
-    address and alignment must be left unassigned in the source code or be
-    compatible with what is specified in the linker script. For example,
-    &#x2018;<code class="Li">ALIGN[8]</code>&#x2019; in the source code is
-    compatible with &#x2018;<code class="Li">ORG $F00</code>&#x2019; in the
-    linker script.</p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
-  ALSO</a></h1>
-<a class="Xr" href="rgbasm.1.html">rgbasm(1)</a>, <a class="Xr" href="rgblink.1.html">rgblink(1)</a>,
-  <a class="Xr" href="rgbfix.1.html">rgbfix(1)</a>, <a class="Xr" href="rgbds.5.html">rgbds(5)</a>,
-  <a class="Xr" href="rgbds.7.html">rgbds(7)</a>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1>
-<code class="Nm">rgblink</code> was originally written by Carsten
-  S&#x00F8;rensen as part of the ASMotor package, and was later packaged in
-  RGBDS by Justin Lloyd. It is now maintained by a number of contributors at
-  <a class="Lk" href="https://github.com/rednex/rgbds">https://github.com/rednex/rgbds</a>.
-</section>
-</div>
-<table class="foot">
-  <tr>
-    <td class="foot-date">November 26, 2019</td>
-    <td class="foot-os">General</td>
-  </tr>
-</table>
-</body>
-</html>
--- a/src/doc_postproc.awk
+++ /dev/null
@@ -1,48 +1,0 @@
-#!/usr/bin/awk -f
-
-/^\s+<td><b class="Sy">.+<\/b><\/td>$/ {
-	# Assuming that all cells whose contents are bold are heading cells,
-	# use the HTML tag for those
-	sub(/td><b class="Sy"/, "th");
-	sub(/b><\/td/, "th");
-}
-
-BEGIN {
-	in_synopsis = 0
-}
-/<table class="Nm">/ {
-	in_synopsis = 1
-}
-/<\/table>/ {
-	# Resets synopsis state even when already reset, but whatever
-	in_synopsis = 0
-}
-/<code class="Fl">-[a-zA-Z]/ {
-	# Add links to arg descr in synopsis section
-	if (in_synopsis) {
-		while (match($0, /<code class="Fl">-[a-zA-Z]+/)) {
-			#         123456789012345678 -> 18 chars
-			optchars = substr($0, RSTART + 18, RLENGTH - 18)
-			i = length(optchars)
-			while (i) {
-				end = RSTART + 18 + i
-				i -= 1
-				len = i ? 1 : 2
-				$0 = sprintf("%s<a href=\"#%s\">%s</a>%s",
-				             substr($0, 0, end - len - 1),
-				             substr($0, end - 1, 1),
-				             substr($0, end - len, len),
-				             substr($0, end))
-			}
-		}
-	}
-}
-
-{
-	# Make long opts (defined using `Fl Fl`) into a single tag
-	gsub(/<code class="Fl">-<\/code>\s*<code class="Fl">/, "<code class=\"Fl\">-")
-}
-
-{
-	print
-}