shithub: rgbds

Download patch

ref: 46c131bc8651dedc981c9297ebea5e32bdbedeb7
parent: 42007c5c92530338c8319f5b572db286396f5cc5
author: Anthony Bentley <[email protected]>
date: Sun Nov 8 13:47:28 EST 2009

more HTML formatting gunk

--- a/doc/asm/db.htm
+++ b/doc/asm/db.htm
@@ -1,37 +1,26 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<HTML>
-<HEAD>
-	<TITLE>xAsm DB, DW</TITLE>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+	<title>xAsm DB, DW</title>
 	<link rel="stylesheet" type="text/css" href="../style.css">
-</HEAD>
+</head>
+<body>
+<h1>DB, DW</h1>
+<p><dfn>DB</dfn> defines a list of bytes that will be stored in the final image. Ideal for tables and text.</p>
+<pre>DB   1,2,3,4,"This is a string"</pre>
+<p>Alternatively you can use <dfn>DW</dfn> to store a list of words. Strings are not allowed as arguments to DW.</p>
+<p>You can also use DB and DW without arguments. This works exactly like “DS 1” and “DS 2” respectively. Consequently DB and DW can be used in a BSS/HRAM/VRAM section.</p>
+<h1>See also:</h1>
+<ul>
+	<li><a href="expr_int.htm">Integer and Boolean expressions</a>
+	<li><a href="expr_fix.htm">Fixed-point expressions and functions</a>
+	<li><a href="expr_str.htm">String expressions, functions and formatting</a>
+	<li><a href="ds.htm">Declaring variables in a BSS section</a>
+	<li><a href="miscfunc.htm">Other functions</a>
+</ul>
 
-<BODY>
-<I><H2>DB<BR>
-DW
-</H2></I>
-<HR>
-
-<P>DB defines a list of bytes that will be stored in the final image. Ideal for tables and text.<BR>
-<BR>
-<TABLE BORDER=0 BGCOLOR="Black" CELLPADDING=8 WIDTH="50%">
-<TR>
-	<TD><FONT COLOR="#00FF00">
-<PRE>DB   1,2,3,4,"This is a string"</PRE>   
-</FONT></TD>
-</TR>
-</TABLE>
-<P>Alternatively you can use <B>DW</B> to store a list of words. Strings are not allowed as arguments to DW.
-<P>You can also use DB and DW without arguments. This works exactly like "DS 1" and "DS 2" respectively. Consequently DB and
-DW can be used in a BSS/HRAM/VRAM section.
-<H3>See also:</H3>
-<UL>
-	<LI><A HREF="expr_int.htm">Integer and Boolean expressions</A>
-	<LI><A HREF="expr_fix.htm">Fixed-point expressions and functions</A>
-	<LI><A HREF="expr_str.htm">String expressions, functions and formatting</A>
-	<LI><A HREF="ds.htm">Declaring variables in a BSS section</A>
-	<LI><A HREF="miscfunc.htm">Other functions</A>
-</UL>
-
-<BR><HR>
-<FONT SIZE="-1"><I><P ALIGN=RIGHT>Last updated 02 July 1997 by <A HREF="mailto:[email protected]">Carsten Sorensen</A></P></I></FONT>
+<hr>
+<p>Last updated 02 July 1997 by <a href="mailto:[email protected]">Carsten Sorensen</a></p>
+</body>
+</html>
--- a/doc/asm/ds.htm
+++ b/doc/asm/ds.htm
@@ -1,31 +1,20 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<HTML>
-<HEAD>
-	<TITLE>xAsm DS</TITLE>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+	<title>xAsm DS</title>
         <link rel="stylesheet" type="text/css" href="../style.css">
-</HEAD>
-
-<BODY>
-<I><H2>DS
-</H2></I>
-<HR>
-
-<P>DS allocates a number of bytes. The content is undefined. This is the preferred method of allocationg space in a <A HREF="section.htm">BSS section</A>. You can however also use DB and DW without any arguments.<BR>
-<BR>
-<TABLE BORDER=0 BGCOLOR="Black" CELLPADDING=8 WIDTH="50%">
-<TR>
-	<TD><FONT COLOR="#00FF00">
-<PRE>DS   str_SIZEOF     ;allocate str_SIZEOF bytes</PRE>
-</FONT></TD>
-</TR>
-</TABLE>
-
-<H3>See also:</H3>
-<UL>
-	<LI><A HREF="db.htm">Defining constant data (DB/DW)</A>
-	<LI><A HREF="expr_int.htm">Integer and Boolean expressions</A>
-</UL>
-
-<BR><HR>
-<FONT SIZE="-1"><I><P ALIGN=RIGHT>Last updated 02 July 1997 by <A HREF="mailto:[email protected]">Carsten Sorensen</A></P></I></FONT>
+</head>
+<body>
+<h1>DS</h1>
+<p><dfn>DS</dfn> allocates a number of bytes. The content is undefined. This is the preferred method of allocationg space in a <a href="section.htm">BSS section</a>. You can however also use DB and DW without any arguments.</p>
+<pre>DS   str_SIZEOF     ;allocate str_SIZEOF bytes</pre>
+<h1>See also:</h1>
+<ul>
+	<li><a href="db.htm">Defining constant data (DB/DW)</a>
+	<li><a href="expr_int.htm">Integer and Boolean expressions</a>
+</ul>
+<hr>
+<p>Last updated 02 July 1997 by <a href="mailto:[email protected]">Carsten Sorensen</a></p>
+</body>
+</html>
--- a/doc/asm/equ.htm
+++ b/doc/asm/equ.htm
@@ -1,30 +1,21 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<HTML>
-<HEAD>
-	<TITLE>xAsm EQU</TITLE>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+	<title>xAsm EQU</title>
         <link rel="stylesheet" type="text/css" href="../style.css">
-</HEAD>
-
-<BODY>
-<I><H2>EQU</H2></I><HR>
-
-<P>EQUates are constant symbols. They can for example be used for things such as bit-definitions of hardware-registers.<BR>
-<BR>
-<TABLE BORDER=0 BGCOLOR="Black" CELLPADDING=8 WIDTH="50%">
-<TR>
-	<TD><FONT COLOR="#00FF00">
-<PRE>DONUT_ISGOOD   EQU  $01
-DONUT_ISBAD    EQU  $02</PRE>          
-</FONT></TD>
-</TR>
-</TABLE>
-<P>Note that a colon (:) following the label-name is not allowed. EQUates can be <A HREF="export.htm">exported and imported</A>. They don't change their value during the link process.<BR>
-
-<H3>See also:</H3>
-<UL>
-<LI><A HREF="expr_int.htm">Integer and Boolean expressions</A>
-</UL>
-
-<BR><HR>
-<FONT SIZE="-1"><I><P ALIGN=RIGHT>Last updated 21 June 1997 by <A HREF="mailto:[email protected]">Carsten Sorensen</A></P></I></FONT>
+</head>
+<body>
+<h1>EQU</h1>
+<p>EQUates are constant symbols. They can for example be used for things such as bit-definitions of hardware-registers.</p>
+<pre>DONUT_ISGOOD   EQU  $01
+DONUT_ISBAD    EQU  $02</pre>          
+<p>Note that a colon (:) following the label-name is not allowed. EQUates can be <a href="export.htm">exported and imported</a>. They don't change their value during the link process.</p>
+<h1>See also:</h1>
+<ul>
+<li><a href="expr_int.htm">Integer and Boolean expressions</a>
+</ul>
+<hr>
+<p>Last updated 21 June 1997 by <a href="mailto:[email protected]">Carsten Sorensen</a></p>
+</body>
+</html>
--- a/doc/asm/equs.htm
+++ b/doc/asm/equs.htm
@@ -1,49 +1,27 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<HTML>
-<HEAD>
-	<TITLE>xAsm EQUS</TITLE>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+	<title>xAsm EQUS</title>
         <link rel="stylesheet" type="text/css" href="../style.css">
-</HEAD>
-
-<BODY>
-<I><H2>EQUS</H2></I><HR>
-
-<P>EQUS 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 the same as #define.<BR>
-<BR>
-<TABLE BORDER=0 BGCOLOR="Black" CELLPADDING=8 WIDTH="50%">
-<TR>
-	<TD><FONT COLOR="#00FF00">
-<PRE>COUNTREG EQUS "[hl+]"
+</head>
+<body>
+<h1>EQUS</h1>
+<p>EQUS 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 the same as #define.</p>
+<pre>COUNTREG EQUS "[hl+]"
           
-         ld   a,COUNTREG</PRE>     
-</FONT></TD>
-</TR>
-</TABLE>
-<P>     (Note that : following the label-name is not allowed.)<BR>
-<P>This will be interpreted as:<BR>
-<TABLE BORDER=0 BGCOLOR="Black" CELLPADDING=8 WIDTH="50%">
-<TR>
-	<TD><FONT COLOR="#00FF00">
-<PRE>         ld   a,[hl+]</PRE>   
-</FONT></TD>
-</TR>
-</TABLE>
-<P>String-symbols  can also be used to define  small  one-line macros:<BR>
-<TABLE BORDER=0 BGCOLOR="Black" CELLPADDING=8 WIDTH="50%">
-<TR>
-	<TD><FONT COLOR="#00FF00">
-<PRE>PUSHA    EQUS "push af\npush bc\npush de\npush hl\n"</PRE>   
-</FONT></TD>
-</TR>
-</TABLE>
-<P>Note that a colon (:) following the label-name is not allowed. String equates can't be exported or imported.<BR>
-
-<H3>See also:</H3>
-<UL>
-	<LI><A HREF="expr_str.htm">String expressions, functions and formatting</A>
-</UL>
-
-<BR><HR>
-<FONT SIZE="-1"><I><P ALIGN=RIGHT>Last updated 21 June 1997 by <A HREF="mailto:[email protected]">Carsten Sorensen</A></P></I></FONT>
-
+         ld   a,COUNTREG</pre>
+<p>(Note that : following the label-name is not allowed.)</p>
+<p>This will be interpreted as:</p>
+<pre>         ld   a,[hl+]</pre>
+<p>String-symbols can also be used to define small one-line macros:</p>
+<pre>PUSHA    EQUS "push af\npush bc\npush de\npush hl\n"</pre>
+<p>Note that a colon (:) following the label-name is not allowed. String equates can't be exported or imported.</p>
+<h1>See also:</h1>
+<ul>
+	<li><a href="expr_str.htm">String expressions, functions and formatting</a>
+</ul>
+<hr>
+<p>Last updated 21 June 1997 by <a href="mailto:[email protected]">Carsten Sorensen</a></p>
+</body>
+</html>
--- a/doc/asm/export.htm
+++ b/doc/asm/export.htm
@@ -1,42 +1,35 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<HTML>
-<HEAD>
-	<TITLE>xAsm EXPORT/XREF, IMPORT/XDEF, GLOBAL</TITLE>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+	<title>xAsm EXPORT/XREF, IMPORT/XDEF, GLOBAL</title>
         <link rel="stylesheet" type="text/css" href="../style.css">
-</HEAD>
-
-<BODY>
-<I><H2>EXPORT/XREF<BR>
-IMPORT/XDEF<BR>
-GLOBAL</H2></I><HR>
-
-<P>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.<BR>
-<BR>
-<TABLE BORDER=1>
-	<CAPTION><I>Import/export commands</I></CAPTION>
-
-<TR>
-	<TD><B><I>Command</I></B></TD>
-	<TD><B><I>Meaning</I></B></TD>
-</TR>
-<TR>
-	<TD>IMPORT (or XREF) <I>label</I>[,<I>label</I>,...]</TD>
-	<TD>This  instructs the assembler to define label as if it were present
-                  in the current file but leave the address calculation to the linker.</TD>
-</TR>
-<TR>
-	<TD>EXPORT (or XDEF) <I>label</I>[,<I>label</I>,...]</TD>
-	<TD>The  assembler will make <I>label</I> accessible  to
-                  other files during the link process.</TD>
-</TR>
-<TR>
-	<TD>GLOBAL <I>label</I>[,<I>label</I>,...]</TD>
-	<TD>If <I>label</I> is defined during the assembly it will be exported,
-                  if not it will be imported. Handy (very!) for include-files.</TD>
-</TR>
-</TABLE>
-
-<BR><HR>
-<FONT SIZE="-1"><I><P ALIGN=RIGHT>Last updated 21 June 1997 by <A HREF="mailto:[email protected]">Carsten Sorensen</A></P></I></FONT>
+</head>
+<body>
+<h1>EXPORT/XREF, IMPORT/XDEF, GLOBAL</h1>
+<p>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>
+<table>
+	<caption>Import/export commands</caption>
+<thead>
+<tr>
+	<th scope="col">Command</th>
+	<th scope="col">Meaning</th>
+</tr>
+</thead>
+<tr>
+	<td>IMPORT (or XREF) <i>label</i>[,<i>label</i>,...]</td>
+	<td>This  instructs the assembler to define label as if it were present
+                  in the current file but leave the address calculation to the linker.</td>
+</tr>
+<tr>
+	<td>EXPORT (or XDEF) <i>label</i>[,<i>label</i>,...]</td>
+	<td>The  assembler will make <i>label</i> accessible to other files during the link process.</td>
+</tr>
+<tr>
+	<td>GLOBAL <i>label</i>[,<i>label</i>,...]</td>
+	<td>If <i>label</i> is defined during the assembly it will be exported, if not it will be imported. Handy (very!) for include-files.</td>
+</tr>
+</table>
+<hr>
+<p>Last updated 21 June 1997 by <a href="mailto:[email protected]">Carsten Sorensen</a></p>
+</body></html>
--- a/doc/asm/expr_fix.htm
+++ b/doc/asm/expr_fix.htm
@@ -1,68 +1,61 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<HTML>
-<HEAD>
-	<TITLE>xAsm Fixed-point expression</TITLE>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+	<title>xAsm Fixed-point expression</title>
         <link rel="stylesheet" type="text/css" href="../style.css">
-</HEAD>
+</head>
+<body>
+<h1>Fixed‐point Expressions</h1>
+<p>Fixed point constants are basically normal 32-bit constants where the upper 16 bits are used for the integer part and the lower 16 bits are used for the fraction (65536ths). This means that you can use them in normal integer expression and indeed some integer operators like plus and minus don't care whether the operands are integer or fixed-point. You can easily convert a fixed-point number to an integer by shifting it right 16 bits. It follows that you can convert an integer to a fixed-point number by shifting it left.</p>
+<p>Some things are different for fixed-point math though. Which is why you have the following functions to use:</p>
 
-<BODY>
-<I><H2>Fixed-point expressions
-</H2></I>
-<HR>
-
-<P>Fixed point constants are basically normal 32-bit constants where the upper 16 bits are used for the integer part and the lower 16 bits are used for the fraction (65536ths). This means that you can use them in normal integer expression and indeed some integer operators like plus and minus don't care whether the operands are integer or fixed-point. You can easily convert a fixed-point number to an integer by shifting it right 16 bits. It follows that you can convert an integer to a fixed-point number by shifting it left.
-<P>Some things are different for fixed-point math though. Which is why you have the following functions to use:
-
-<TABLE BORDER=1>
-<TR>
-	<TD><B><I>Name</I></B></TD>
-	<TD><B><I>Operation</I></B></TD>
-</TR>
-<TR>
-	<TD>DIV(x,y)</TD>
-	<TD>x/y</TD>
-</TR>
-<TR>
-	<TD>MUL(x,y)</TD>
-	<TD>x*y</TD>
-</TR>
-<TR>
-	<TD>SIN(x)</TD>
-	<TD>sin(x)</TD>
-</TR>
-<TR>
-	<TD>COS(x)</TD>
-	<TD>cos(x)</TD>
-</TR>
-<TR>
-	<TD>TAN(x)</TD>
-	<TD>tan(x)</TD>
-</TR>
-<TR>
-	<TD>ASIN(x)</TD>
-	<TD>sin<SUP>-1</SUP>(x)</TD>
-</TR>
-<TR>
-	<TD>ACOS(x)</TD>
-	<TD>cos<SUP>-1</SUP>(x)</TD>
-</TR>
-<TR>
-	<TD>ATAN(x)</TD>
-	<TD>tan<SUP>-1</SUP>(x)</TD>
-</TR>
-<TR>
-	<TD>ATAN2(x,y)</TD>
-	<TD>(x,y) angle</TD>
-</TR>
-</TABLE>
-<P>These  functions are extremely useful for automatic generation of various tables. A circle has 65536.0
-degrees. Sine values are between [-1.0;1.0]<BR>
-<BR>
-<TABLE BORDER=0 BGCOLOR="Black" CELLPADDING=8 WIDTH="50%">
-<TR>
-	<TD><FONT COLOR="#00FF00">
-<PRE>; --
+<table>
+<thead>
+<tr>
+	<th scope="col">Name</th>
+	<th scope="col">Operation</th>
+</tr>
+</thead>
+<tr>
+	<td>DIV(x,y)</td>
+	<td>x/y</td>
+</tr>
+<tr>
+	<td>MUL(x,y)</td>
+	<td>x*y</td>
+</tr>
+<tr>
+	<td>SIN(x)</td>
+	<td>sin(x)</td>
+</tr>
+<tr>
+	<td>COS(x)</td>
+	<td>cos(x)</td>
+</tr>
+<tr>
+	<td>TAN(x)</td>
+	<td>tan(x)</td>
+</tr>
+<tr>
+	<td>ASIN(x)</td>
+	<td>sin<SUP>-1</SUP>(x)</td>
+</tr>
+<tr>
+	<td>ACOS(x)</td>
+	<td>cos<SUP>-1</SUP>(x)</td>
+</tr>
+<tr>
+	<td>ATAN(x)</td>
+	<td>tan<SUP>-1</SUP>(x)</td>
+</tr>
+<tr>
+	<td>ATAN2(x,y)</td>
+	<td>(x,y) angle</td>
+</tr>
+</table>
+<p>These  functions are extremely useful for automatic generation of various tables. A circle has 65536.0 degrees. Sine values are between [-1.0;1.0]</p>
+<pre>; --
 ; -- Generate a 256 byte sine table with values between 0 and 128
 ; --
 ANGLE   SET     0.0
@@ -69,18 +62,15 @@
         REPT    256
         DB      (MUL(64.0,SIN(ANGLE))+64.0)>>16
 ANGLE   SET     ANGLE+256.0
-        ENDR</PRE>
-</FONT></TD>
-</TR>
-</TABLE>
-
-<H3>See also:</H3>
-<UL>
-	<LI><A HREF="symbols.htm">Symbols</A>
-	<LI><A HREF="expr_int.htm">Integer and Boolean expressions</A>
-	<LI><A HREF="expr_str.htm">String expressions, functions and formatting</A>
-	<LI><A HREF="miscfunc.htm">Other functions</A>
-</UL>
-
-<BR><HR>
-<FONT SIZE="-1"><I><P ALIGN=RIGHT>Last updated 21 June 1997 by <A HREF="mailto:[email protected]">Carsten Sorensen</A></P></I></FONT>
+        ENDR</pre>
+<h1>See also:</h1>
+<ul>
+	<li><a href="symbols.htm">Symbols</a>
+	<li><a href="expr_int.htm">Integer and Boolean expressions</a>
+	<li><a href="expr_str.htm">String expressions, functions and formatting</a>
+	<li><a href="miscfunc.htm">Other functions</a>
+</ul>
+<hr>
+<p>Last updated 21 June 1997 by <a href="mailto:[email protected]">Carsten Sorensen</a></p>
+</body>
+</html>
--- a/doc/asm/expr_int.htm
+++ b/doc/asm/expr_int.htm
@@ -1,104 +1,92 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<HTML>
-<HEAD>
-	<TITLE>xAsm Integer/Boolean expressions</TITLE>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+	<title>xAsm Integer/Boolean expressions</title>
         <link rel="stylesheet" type="text/css" href="../style.css">
-</HEAD>
+</head>
+<body>
+<h1>Integer and Boolean expressions</h1>
+<p>An expression can be composed of many things. Expressions are always evaluated using signed 32-bit math.</p>
+<p>The most basic expression is just a single number.</p>
+<h2>Numeric Formats</h2>
+<p>xAsm has a number of numeric formats.</p>
+<ul>
+	<li>Hexadecimal: $0123456789ABCDEF. Case-insensitive
+	<li>Decimal: 0123456789
+	<li>Octal: &01234567
+	<li>Binary: %01
+	<li>Fixedpoint (16.16): 01234.56789
+	<li>Character constant: "ABYZ"
+	<li>Gameboy graphics: `0123
+</ul>
+<p>The last one, Gameboy graphics, is quite interesting and useful. The values are actually pixel values and it converts the “chunky” data to “planar” data as used in the Gameboy.</p>
+<pre>DW   `01012323</pre>
+<p>Admittedly an expression with just a single number is quite boring. To spice things up a bit there’s a few operators you can use to perform calculations between numbers.</p>
+<h2>Operators</h2>
+<p>A great number of operators you can use in expressions are available (listed in order of precedence):</p>
+<table>
+	<caption>Operators</caption>
+<thead>
+<tr>
+	<th scope="col">Operator</th>
+	<th scope="col">Meaning</th>
+</tr>
+</thead>
+<tr>
+	<td>( )</td>
+	<td>Precedence override</td>
+</tr>
+<tr>
+	<td>FUNC()</td>
+	<td>Functioncall</td>
+</tr>
+<tr>
+	<td>~ + -</td>
+	<td>Unary not/plus/minus</td>
+</tr>
+<tr>
+	<td>* / %</td>
+	<td>Multiply/divide/modulo</td>
+</tr>
+<tr>
+	<td>&lt;&lt; &gt;&gt;</td>
+	<td>Shift left/right</td>
+</tr>
+<tr>
+	<td>&amp; | ^</td>
+	<td>Binary and/or/xor</td>
+</tr>
+<tr>
+	<td>+ -</td>
+	<td>Add/subtract</td>
+</tr>
+<tr>
+	<td>!= == &lt;= &gt;= &lt; &gt;</td>
+	<td>Boolean comparison</td>
+</tr>
+<tr>
+	<td>&amp;&amp; ||</td>
+	<td>Boolean and/or</td>
+</tr>
+<tr>
+	<td>!</td>
+	<td>Unary Boolean not</td>
+</tr>
+</table>     
 
-<BODY>
-<I><H2>Integer and Boolean expressions
-</H2></I>
-<HR>
+<p>The result of the boolean operators is zero if when FALSE and non-zero when TRUE. Thus it is legal to use an integer as the condition for <a href="if.htm">IF</a> blocks. You can use symbols instead of numbers in your expression if you wish.</p>
 
-<P>An expression can be composed of many things. Expressions are always evaluated using signed 32-bit math.
-<P>The most basic expression is just a single number.
-<H4><BR>Numeric Formats</H4>
-<P>xAsm has a number of numeric formats.
-<UL>
-	<LI>Hexadecimal: $0123456789ABCDEF. Case-insensitive
-	<LI>Decimal: 0123456789
-	<LI>Octal: &01234567
-	<LI>Binary: %01
-	<LI>Fixedpoint (16.16): 01234.56789
-	<LI>Character constant: "ABYZ"
-	<LI>Gameboy graphics: `0123
-</UL>
-<P>The last one, Gameboy graphics, is quite interesting and useful. The values are actually pixel values and it converts
-the "chunky" data to "planar" data as used in the Gameboy.<BR>
-<BR>
-<TABLE BORDER=0 BGCOLOR="Black" CELLPADDING=8 WIDTH="50%">
-<TR>
-	<TD><FONT COLOR="#00FF00">
-<PRE>DW   `01012323</PRE>
-</FONT></TD>
-</TR>
-</TABLE>
+<p>An expression is said to be constant when it doesn't change its value during linking. This basically means that you can't use labels in those expressions. The instructions in the macro-language all require expressions that are constant.</p>
+<h1>See also:</h1>
+<ul>
+	<li><a href="symbols.htm">Symbols</a>
+	<li><a href="expr_fix.htm">Fixed-point expressions and functions</a>
+	<li><a href="expr_str.htm">String expressions, functions and formatting</a>
+	<li><a href="miscfunc.htm">Other functions</a>
+</ul>
 
-Admittedly an expression with just a single number is quite boring. To spice things up a bit there's a few operators you can use to perform calculations between numbers.
-<H4><BR>
-Operators</H4>
-<P>A great number of operators you can use in expressions are available (listed in order of precedence):
-<TABLE BORDER=1>
-	<CAPTION><I>Operators</I></CAPTION>
-
-<TR>
-	<TD><B><I>Operator</I></B></TD>
-	<TD><B><I>Meaning</I></B></TD>
-</TR>
-<TR>
-	<TD>( )</TD>
-	<TD>Precedence override</TD>
-</TR>
-<TR>
-	<TD>FUNC()</TD>
-	<TD>Functioncall</TD>
-</TR>
-<TR>
-	<TD>~ + -</TD>
-	<TD>Unary not/plus/minus</TD>
-</TR>
-<TR>
-	<TD>* / %</TD>
-	<TD>Multiply/divide/modulo</TD>
-</TR>
-<TR>
-	<TD>&lt&lt &gt&gt</TD>
-	<TD>Shift left/right</TD>
-</TR>
-<TR>
-	<TD>&amp | ^</TD>
-	<TD>Binary and/or/xor</TD>
-</TR>
-<TR>
-	<TD>+ -</TD>
-	<TD>Add/subtract</TD>
-</TR>
-<TR>
-	<TD>!= == &lt= &gt= &lt &gt</TD>
-	<TD>Boolean comparison</TD>
-</TR>
-<TR>
-	<TD>&amp&amp ||</TD>
-	<TD>Boolean and/or</TD>
-</TR>
-<TR>
-	<TD>!</TD>
-	<TD>Unary Boolean not</TD>
-</TR>
-</TABLE>     
-
-<P>The result of the boolean operators is zero if when FALSE and non-zero when TRUE. Thus it is legal to use an integer as the condition for <A HREF="if.htm">IF</A> blocks. You can use symbols instead of numbers in your expression if you wish.
-
-<P>An expression is said to be constant when it doesn't change its value during linking. This basically means that you can't use labels in those expressions. The instructions in the macro-language all require expressions that are constant<BR>
-
-<H3>See also:</H3>
-<UL>
-	<LI><A HREF="symbols.htm">Symbols</A>
-	<LI><A HREF="expr_fix.htm">Fixed-point expressions and functions</A>
-	<LI><A HREF="expr_str.htm">String expressions, functions and formatting</A>
-	<LI><A HREF="miscfunc.htm">Other functions</A>
-</UL>
-
-<BR><HR>
-<FONT SIZE="-1"><I><P ALIGN=RIGHT>Last updated 21 June 1997 by <A HREF="mailto:[email protected]">Carsten Sorensen</A></P></I></FONT>
+<hr>
+<p>Last updated 21 June 1997 by <a href="mailto:[email protected]">Carsten Sorensen</a></p>
+</body>
+</html>
--- a/doc/asm/expr_str.htm
+++ b/doc/asm/expr_str.htm
@@ -1,118 +1,114 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<HTML>
-<HEAD>
-	<TITLE>xAsm String expressions</TITLE>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+	<title>xAsm String expressions</title>
         <link rel="stylesheet" type="text/css" href="../style.css">
-</HEAD>
+</head>
+<body>
+<h1>String Expressions</h1>
+<p>The most basic string expression is any number of characters contained in double quotes ("for instance"). As in C the escape character is <b>\</b> and there is a number of commands you can use within a string:</p>
+<table>
+	<caption>Escape characters:</caption>
+<thead>
+<tr>
+	<th scope="col">Character sequence</th>
+	<th scope="col">Meaning</th>
+	<th scope="col">Notes</th>
+</tr>
+</thead>
+<tr>
+	<td>\\</td>
+	<td>Backslash</td>
+	<td></td>
+</tr>
+<tr>
+	<td>\"</td>
+	<td>Double-quote</td>
+	<td></td>
+</tr>
+<tr>
+	<td>\{</td>
+	<td>Curly bracket left</td>
+	<td></td>
+</tr>
+<tr>
+	<td>\}</td>
+	<td>Curly bracket right</td>
+	<td></td>
+</tr>
+<tr>
+	<td>\n</td>
+	<td>Newline ($0A)</td>
+	<td></td>
+</tr>
+<tr>
+	<td>\t</td>
+	<td>Tab ($09)</td>
+	<td></td>
+</tr>
+<tr>
+	<td>\1-\9</td>
+	<td>Macroargument</td>
+	<td>Only in macros</td>
+</tr>
+<tr>
+	<td>\@</td>
+	<td>Labelname suffix</td>
+	<td>Only in macros and repts</td>
+</tr>
+</table>
 
-<BODY>
-<I><H2>String expressions
-</H2></I>
-<HR>
+<p>A funky feature is <b>{symbol}</b> withing a string. This will examine the type of the symbol and insert its value accordingly. If symbol is a string symbol the symbols value is simply copied. If it's a numeric symbol the value is converted to hexadecimal notation and inserted as a string.</p>
+<p><strong>HINT:</strong> The <b>{symbol}</b> construct can also be used outside strings. The symbols value is again inserted as a string. This is just a short way of doing &quot;{symbol}&quot;.</p>
+<p>Whenever the macro-language expects a string you can actually use a string expression. This consists of one or more of these function. Yes, you can nest them. Note that some of these functions actually return an integer and can be used as part of an integer expression!</p>
+<table>
+	<caption>String functions:</caption>
+<thead>
+<tr>
+	<th scope="col">Name</th>
+	<th scope="col">Operation</th>
+</tr>
+</thead>
+<tr>
+	<td>STRLEN(<i>stringexpr</i>)</td>
+	<td>Returns the number of characters in <i>string</i></td>
+</tr>
+<tr>
+	<td>STRCAT(<i>stringexpr1,stringexpr2</i>)</td>
+	<td>Appends <i>stringexpr2</i> to <i>stringexpr1</i>.</td>
+</tr>
+<tr>
+	<td>STRCMP(<i>stringexpr1,stringexpr2</i>)</td>
+	<td>Returns negative if <i>stringexpr1</i> is alphabetically less than <i>stringexpr2</i><BR>Zero if they match<BR>Positive if greater than</td>
+</tr>
+<tr>
+	<td>STRIN(<i>haystack,needle</i>)</td>
+	<td>Returns <i>needle</i>s position within <i>haystack</i> or zero if it's not present</td>
+</tr>
+<tr>
+	<td>STRSUB(<i>stringexpr,pos,count</i>)</td>
+	<td>Returns a substring of <i>stringexpr</i> starting at <i>pos</i> (first character is position 1) and with <i>count</i> characters</td>
+</tr>
+<tr>
+	<td>STRUPR(<i>stringexpr</i>)</td>
+	<td>Converts all characters in <i>string</i> to capitals and returns the new string</td>
+</tr>
+<tr>
+	<td>STRLWR(<i>string</i>)</td>
+	<td>Converts all characters in <i>string</i> to lower case and returns the new string</td>
+</tr>
+</table>
 
-<P>The most basic string expression is any number of characters contained in double quotes ("for instance"). As in C the escape
-character is <B>\</B> and there is a number of commands you can use within a string:<BR>
-<BR>
-<TABLE BORDER=1>
-	<CAPTION><I>Escape characters:</I></CAPTION>
-<TR>
-	<TD><B><I>Character sequence</I></B></TD>
-	<TD><B><I>Meaning</I></B></TD>
-	<TD><B><I>Notes</I></B></TD>
-</TR>
-<TR>
-	<TD>\\</TD>
-	<TD>Backslash</TD>
-	<TD></TD>
-</TR>
-<TR>
-	<TD>\"</TD>
-	<TD>Double-quote</TD>
-	<TD></TD>
-</TR>
-<TR>
-	<TD>\{</TD>
-	<TD>Curly bracket left</TD>
-	<TD></TD>
-</TR>
-<TR>
-	<TD>\}</TD>
-	<TD>Curly bracket right</TD>
-	<TD></TD>
-</TR>
-<TR>
-	<TD>\n</TD>
-	<TD>Newline ($0A)</TD>
-	<TD></TD>
-</TR>
-<TR>
-	<TD>\t</TD>
-	<TD>Tab ($09)</TD>
-	<TD></TD>
-</TR>
-<TR>
-	<TD>\1-\9</TD>
-	<TD>Macroargument</TD>
-	<TD>Only in macros</TD>
-</TR>
-<TR>
-	<TD>\@</TD>
-	<TD>Labelname suffix</TD>
-	<TD>Only in macros and repts</TD>
-</TR>
-</TABLE>
+<h1>See also:</h1>
+<ul>
+	<li><a href="symbols.htm">Symbols</a>
+	<li><a href="expr_int.htm">Integer and Boolean expressions</a>
+	<li><a href="expr_fix.htm">Fixed-point expressions and functions</a>
+	<li><a href="miscfunc.htm">Other functions</a>
+</ul>
 
-<P>A funky feature is <B>{symbol}</B> withing a string. This will examine the type of the symbol and insert its
-value accordingly. If symbol is a string symbol the symbols value is simply copied. If it's a numeric symbol the value is converted
-to hexadecimal notation and inserted as a string.
-<P><B>HINT:</B> The <B>{symbol}</B> construct can also be used outside strings. The symbols value is again inserted as a
-string. This is just a short way of doing &quot{symbol}&quot.<BR>
-
-Whenever the macro-language expects a string you can actually use a string expression. This consists of one or more of these function. Yes, you can nest them. Note that some of these functions actually return an integer and can be used as part of an integer expression!<BR>
-<P><TABLE BORDER=1>
-	<CAPTION><I>String functions:</I></CAPTION>
-<TR>
-	<TD><B><I>Name</I></B></TD>
-	<TD><B><I>Operation</I></B></TD>
-</TR>
-<TR>
-	<TD>STRLEN(<I>stringexpr</I>)</TD>
-	<TD>Returns the number of characters in <I>string</I></TD>
-</TR>
-<TR>
-	<TD>STRCAT(<I>stringexpr1,stringexpr2</I>)</TD>
-	<TD>Appends <I>stringexpr2</I> to <I>stringexpr1</I>.</TD>
-</TR>
-<TR>
-	<TD>STRCMP(<I>stringexpr1,stringexpr2</I>)</TD>
-	<TD>Returns negative if <I>stringexpr1</I> is alphabetically less than <I>stringexpr2</I><BR>Zero if they match<BR>Positive if greater than</TD>
-</TR>
-<TR>
-	<TD>STRIN(<I>haystack,needle</I>)</TD>
-	<TD>Returns <I>needle</I>s position within <I>haystack</I> or zero if it's not present</TD>
-</TR>
-<TR>
-	<TD>STRSUB(<I>stringexpr,pos,count</I>)</TD>
-	<TD>Returns a substring of <I>stringexpr</I> starting at <I>pos</I> (first character is position 1) and with <I>count</I> characters</TD>
-</TR>
-<TR>
-	<TD>STRUPR(<I>stringexpr</I>)</TD>
-	<TD>Converts all characters in <I>string</I> to capitals and returns the new string</TD>
-</TR>
-<TR>
-	<TD>STRLWR(<I>string</I>)</TD>
-	<TD>Converts all characters in <I>string</I> to lower case and returns the new string</TD>
-</TR>
-</TABLE>
-
-<H3>See also:</H3>
-<UL>
-	<LI><A HREF="symbols.htm">Symbols</A>
-	<LI><A HREF="expr_int.htm">Integer and Boolean expressions</A>
-	<LI><A HREF="expr_fix.htm">Fixed-point expressions and functions</A>
-	<LI><A HREF="miscfunc.htm">Other functions</A>
-</UL>
-
-<BR><HR>
-<FONT SIZE="-1"><I><P ALIGN=RIGHT>Last updated 21 June 1997 by <A HREF="mailto:[email protected]">Carsten Sorensen</A></P></I></FONT>
+<hr>
+<p>Last updated 21 June 1997 by <a href="mailto:[email protected]">Carsten Sorensen</a></p>
+</body>
+</html>
--- a/doc/asm/fail.htm
+++ b/doc/asm/fail.htm
@@ -1,25 +1,20 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<HTML>
-<HEAD>
-	<TITLE>xAsm FAIL, WARN</TITLE>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+	<title>xAsm FAIL, WARN</title>
         <link rel="stylesheet" type="text/css" href="../style.css">
-</HEAD>
+</head>
+<body>
+<h1>FAIL, WARN</h1>
+<p>FAIL and WARN can be used to terminate the assembling process if you wish to do so. This is especially useful for macros that get an invalid argument. FAIL and WARN take a string as the only argument and they will print this string out as a normal error with a linenumber.</p>
+<p>FAIL stops assembling immediately while WARN continues after printing the errormessage.</p>
 
-<BODY>
-<I><H2>FAIL<BR>
-WARN
-</H2></I>
-<HR>
-
-<P>FAIL and WARN can be used to terminate the assembling process if you wish to do so. This is especially useful for
-macros that get an invalid argument. FAIL and WARN take a string as the only argument and they will print this string out as a normal error with a linenumber.
-<P>FAIL stops assembling immediatly while WARN continues after printing the errormessage.
-
-<H3>See also:</H3>
-<UL>
-<LI><A HREF="expr_str.htm">String expressions, functions and formatting</A>
-</UL>
-
-<BR><HR>
-<FONT SIZE="-1"><I><P ALIGN=RIGHT>Last updated 21 June 1997 by <A HREF="mailto:[email protected]">Carsten Sorensen</A></P></I></FONT>
+<h1>See also:</h1>
+<ul>
+<li><a href="expr_str.htm">String expressions, functions and formatting</a>
+</ul>
+<hr>
+<p>Last updated 21 June 1997 by <a href="mailto:[email protected]">Carsten Sorensen</a></p>
+</body>
+</html>
--- a/doc/asm/history.htm
+++ b/doc/asm/history.htm
@@ -1,97 +1,103 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<HTML>
-<HEAD>
-	<TITLE>xAsm History</TITLE>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+	<title>xAsm History</title>
         <link rel="stylesheet" type="text/css" href="../style.css">
-</HEAD>
-
-<BODY>
-<I><H2>xAsm History</H2></I><HR>
-
-<TABLE BORDER=1>
-	<CAPTION><I>The history of xAsm</I></CAPTION>
-
-<TR>
-	<TD ALIGN="Center"><B><I>Version</I></B></TD>
-	<TD ALIGN="Center"><B><I>Dated</I></B></TD>
-	<TD><B><I>Release notes</I></B></TD>
-</TR>
-<TR>
-	<TD ALIGN="Center">1.0</TD>
-	<TD ALIGN="Center">1 Oct. 96</TD>
-	<TD>First release</TD>
-</TR>
-<TR>
-	<TD ALIGN="Center">1.01</TD>
-	<TD ALIGN="Center">1 Dec. 96</TD>
-	<TD>Fixed  bug  in <A HREF="incbin.htm">INCBIN</A> (sometimes reported the section full)<BR>
-                 Added <A HREF="miscfunc.htm">DEF()</A> function</TD>
-</TR>
-<TR>
-	<TD ALIGN="Center">1.02</TD>
-	<TD ALIGN="Center">12 Feb. 97</TD>
-	<TD>Added <A HREF="expr_str.htm">STRLEN(), STRCAT(), STRIN(), STRCMP(), STRSUB(), STRUPR() and STRLWR()</A> functions<BR>
-	<A HREF="export.htm">IMPORT/EXPORT/GLOBAL</A> takes multiple arguments now<BR>
-	<A HREF="section.htm">HRAM</A> sectiontype added<BR>
-	ORG like features added to <A HREF="section.htm">SECTION</A><BR>
-	<A HREF="trg_gb.htm">LDIO</A> mnemonic added</TD>
-</TR>
-<TR>
-	<TD ALIGN="Center">1.03</TD>
-	<TD ALIGN="Center">23 Mar. 97</TD>
-	<TD>The <A HREF="section.htm">HRAM section</A> was 128 bytes long instead of 127. potentially thrashing the interrupt enable register if you filled the HRAM.<BR>
-	The <A HREF="miscfunc.htm">BANK() function</A>, when used on a symbol defined in the current sourcefile, returned the wrong bank ID. (reported by Harry P. Mulder)<BR>
-	The <A HREF="miscfunc.htm">BANK() function</A> didn't check whether the argument was a properly defined symbol. (reported by Harry P. Mulder)<BR>
-	Completely new lexical analyser module. This fixed several linenumber bugs and other macro/if/rept related bugs. Also fixed a bug which made it possible to have equated symbols with the same name as a reserved keyword (if you get a "parse error" with this release on some of your sources, this is probably what is going on)<BR>
-	<A HREF="fail.htm">FAIL and WARN</A> commands.<BR>
-	<A HREF="presym.htm">__LINE__, __FILE__, __TIME__, __DATE__</A> predefined symbols added.<BR>
-</TD>
-</TR>
-<TR>
-	<TD ALIGN="Center">1.04</TD>
-	<TD ALIGN="Center">03 July 1997</TD>
-	<TD>First ASMotor release<BR>
-<A HREF="presym.htm">__TIME__ and __DATE__</A> give todays date instead of when the assembler was compiled.<BR>
-Sometimes the first line of a file wouldn't assemble correctly. Reported by Jeff Frohwein.<BR>
-Unrolling multiline <A HREF="equs.htm">string symbols</A> left the linecounter in a sorry state. Jeff Frohwein again.<BR>
-<A HREF="db.htm">DB and DW</A> can now (officially ;-) be used in BSS/HRAM/VRAM sections without any arguments to reserve a byte or a word respectively. Reported/suggested/inspired by Mr. Frohwein.<BR>
-The character # can now be used as part of a <A HREF="symbols.htm">symbol name</A>. Jeff....<BR>
-The <A HREF="rs.htm">RS</A> counter "_RS" is now defined from the very start of the assembly process instead of after the first RSSET or RSRESET.<BR>
-Bug fixed: You couldn't use \0-\9 and \@ in <A HREF="expr_str.htm">{} constructs</A><BR>
-<A HREF="purge.htm">PURGE</A> pseudo-op added. Purges a symbol from the symboltable and memory. Use with extreme caution! Inspired by Harry P. Mulder<BR>
-<A HREF="macro.htm">MACRO</A> parameter passing method changed drastically. Read (and re-read) the manual for details. Suggested by Harry P. Mulder.<BR>
-</TD>
-<TR>
-	<TD ALIGN="Center">1.05</TD>
-	<TD ALIGN="Center">20 July 1997</TD>
-	<TD><B>RGBDS fixes:</B><BR>
+</head>
+<body>
+<h1>xAsm History</h1>
+<table>
+	<caption>The history of xAsm</caption>
+<thead>
+<tr>
+	<th scope="col">Version</th>
+	<th scope="col">Dated</th>
+	<th scope="col">Release notes</th>
+</tr>
+</thead>
+<tr>
+	<td>1.0</td>
+	<td>1 Oct. 96</td>
+	<td>First release</td>
+</tr>
+<tr>
+	<td>1.01</td>
+	<td>1 Dec. 96</td>
+	<td><ul>
+<li>Fixed  bug  in <a href="incbin.htm">INCBIN</a> (sometimes reported the section full)</li>
+                 <li>Added <a href="miscfunc.htm">DEF()</a> function
+</ul></td>
+</tr>
+<tr>
+	<td>1.02</td>
+	<td>12 Feb. 97</td>
+	<td><ul>
+<li>Added <a href="expr_str.htm">STRLEN(), STRCAT(), STRIN(), STRCMP(), STRSUB(), STRUPR() and STRLWR()</a> functions</li>
+	<li><a href="export.htm">IMPORT/EXPORT/GLOBAL</a> takes multiple arguments now</li>
+	<li><a href="section.htm">HRAM</a> sectiontype added</li>
+	<li>ORG like features added to <a href="section.htm">SECTION</a></li>
+	<li><a href="trg_gb.htm">LDIO</a> mnemonic added</li>
+</ul></td>
+</tr>
+<tr>
+	<td>1.03</td>
+	<td>23 Mar. 97</td>
+	<td><ul>
+<li>The <a href="section.htm">HRAM section</a> was 128 bytes long instead of 127. potentially thrashing the interrupt enable register if you filled the HRAM.</li>
+	<li>The <a href="miscfunc.htm">BANK() function</a>, when used on a symbol defined in the current sourcefile, returned the wrong bank ID. (reported by Harry P. Mulder)</li>
+	<li>The <a href="miscfunc.htm">BANK() function</a> didn't check whether the argument was a properly defined symbol. (reported by Harry P. Mulder)</li>
+	<li>Completely new lexical analyser module. This fixed several linenumber bugs and other macro/if/rept related bugs. Also fixed a bug which made it possible to have equated symbols with the same name as a reserved keyword (if you get a "parse error" with this release on some of your sources, this is probably what is going on)</li>
+	<li><a href="fail.htm">FAIL and WARN</a> commands.</li>
+	<li><a href="presym.htm">__LINE__, __FILE__, __TIME__, __DATE__</a> predefined symbols added.</li>
+</ul>
+</td>
+</tr>
+<tr>
+	<td>1.04</td>
+	<td>03 July 1997</td>
+	<td><ul><li>First ASMotor release</li>
+<li><a href="presym.htm">__TIME__ and __DATE__</a> give todays date instead of when the assembler was compiled.</li>
+<li>Sometimes the first line of a file wouldn't assemble correctly. Reported by Jeff Frohwein.</li>
+<li>Unrolling multiline <a href="equs.htm">string symbols</a> left the linecounter in a sorry state. Jeff Frohwein again.</li>
+<li><a href="db.htm">DB and DW</a> can now (officially ;-) be used in BSS/HRAM/VRAM sections without any arguments to reserve a byte or a word respectively. Reported/suggested/inspired by Mr. Frohwein.</li>
+<li>The character # can now be used as part of a <a href="symbols.htm">symbol name</A>. Jeff....</li>
+<li>The <a href="rs.htm">RS</a> counter "_RS" is now defined from the very start of the assembly process instead of after the first RSSET or RSRESET.</li>
+<li>Bug fixed: You couldn't use \0-\9 and \@ in <a href="expr_str.htm">{} constructs</a></li>
+<li><a href="purge.htm">PURGE</a> pseudo-op added. Purges a symbol from the symboltable and memory. Use with extreme caution! Inspired by Harry P. Mulder</li>
+<li><a href="macro.htm">MACRO</a> parameter passing method changed drastically. Read (and re-read) the manual for details. Suggested by Harry P. Mulder.</li>
+</ul>
+</td>
+<tr>
+	<td>1.05</td>
+	<td>20 July 1997</td>
+	<td><B>RGBDS fixes:</B><BR>
 	RGBAsm supports the LDD and LDI syntax plus [HLD] and [HLI]. LDH is
 	synonymous with LDIO.<BR>
 	<B>General fixes:</B><BR>
 There was a bug in the macro parameter passing. Any whitespace after the
 last parameter would be appended to the last parameter. Reported by Jeff Frohwein.<BR>
-A section stack has been implemented. Look up <A HREF="pops.htm">POPS and PUSHS</A>. Jeff Frohweins doing again.<BR>
-<A HREF="opt.htm">OPT</A> command added for defining and changing some options while assembling.<BR>
-You can now define which characters are used for the <A HREF="expr_int.htm">Gameboy graphics
-integer (`)</A> using the <A HREF="usage.htm">commandline</A> or the new <A HREF="opt.htm">OPT</A> command. Cool idea by (surprise surprise) Jeff Frohwein.<BR>
-Also, an option stack has been added. Look up <A HREF="popo.htm">POPO and PUSHO</A> in the
+A section stack has been implemented. Look up <a href="pops.htm">POPS and PUSHS</A>. Jeff Frohweins doing again.<BR>
+<a href="opt.htm">OPT</A> command added for defining and changing some options while assembling.<BR>
+You can now define which characters are used for the <a href="expr_int.htm">Gameboy graphics
+integer (`)</A> using the <a href="usage.htm">commandline</A> or the new <a href="opt.htm">OPT</A> command. Cool idea by (surprise surprise) Jeff Frohwein.<BR>
+Also, an option stack has been added. Look up <a href="popo.htm">POPO and PUSHO</A> in the
 manual.<BR>
 Fixed yet another line number bug reported by Jeff Frohwein (when will this guy leave me alone? ;)<BR>
-</TD>
-<TR>
-	<TD ALIGN="Center">1.06</TD>
-	<TD ALIGN="Center">22 July 1997</TD>
-	<TD><B>General fixes:</B><BR>
+</td>
+<tr>
+	<td>1.06</td>
+	<td>22 July 1997</td>
+	<td><B>General fixes:</B><BR>
 The lamest typo bug of all time has been fixed. RGBAsm would output a word defined with DW as 4 bytes instead of 2. Jeff Frohwein reported this.<BR>
 The first line of an included file didn't assemble correctly.<BR>
-<A HREF="usage.htm">-b option</A> added for setting the characters used for binary constants.<BR>
-</TD>
-</TR>
-<TR>
-	<TD ALIGN="Center">1.08</TD>
-	<TD ALIGN="Center">21 September 1997</TD>
-	<TD><B>General fixes:</B><BR>
+<a href="usage.htm">-b option</A> added for setting the characters used for binary constants.<BR>
+</td>
+</tr>
+<tr>
+	<td>1.08</td>
+	<td>21 September 1997</td>
+	<td><B>General fixes:</B><BR>
 A crash occured if you tried to use a macro symbol in an expression.
 (Jeff Frohwein)<BR>
 You couldn't use STRCMP, STRLEN and STRIN in relocatable expressions. (Harry
@@ -99,102 +105,102 @@
 Relocatable symbols are no longer allowed as arguments to the DEF function.<BR>
 Bug fixed in the assembler where it would sometimes write out too many bytes
 for HRAM section definitions.<BR>
-</TD>
-</TR>
-	<TR>
-		<TD ALIGN="Center">1.08</TD>
-		<TD ALIGN="Center">02 July 1999</TD>
-		<TD>
+</td>
+</tr>
+	<tr>
+		<td>1.08</td>
+		<td>02 July 1999</td>
+		<td>
 			<B>Feature:</B>
 			<BR>
-			DQ directive added for defining 32-bit data constants. See operation of DW & DB.
+			DQ directive added for defining 32-bit data constants. See operation of DW &amp; DB.
 			<BR>
-		</TD>
-	</TR>
-	<TR>
-		<TD ALIGN="Center">1.08</TD>
-		<TD ALIGN="Center">05 July 1999</TD>
-		<TD>
+		</td>
+	</tr>
+	<tr>
+		<td>1.08</td>
+		<td>05 July 1999</td>
+		<td>
 			<B>Feature:</B>
 			<BR>
 			Allow only a part of a binary file to be included instead of the whole thing.
 			<BR>
-		</TD>
-	</TR>
-	<TR>
-		<TD ALIGN="Center">1.08</TD>
-		<TD ALIGN="Center">10 June 1999</TD>
-		<TD>
+		</td>
+	</tr>
+	<tr>
+		<td>1.08</td>
+		<td>10 June 1999</td>
+		<td>
 			<B>Feature:</B>
 			<BR>
 			Added output of file dependency information for each file included/assembled. Enabled with a command line option.
 			<BR>
-		</TD>
-	</TR>
-	<TR>
-		<TD ALIGN="Center">1.08</TD>
-		<TD ALIGN="Center">?? ???? 1999</TD>
-		<TD>
+		</td>
+	</tr>
+	<tr>
+		<td>1.08</td>
+		<td>?? ???? 1999</td>
+		<td>
 			<B>Feature:</B>
 			<BR>
 			Added ORG directive to allow anonymous sections.
 			<BR>
-		</TD>
-	</TR>
-	<TR>
-		<TD ALIGN="Center">1.08</TD>
-		<TD ALIGN="Center">?? ???? 1999</TD>
-		<TD>
+		</td>
+	</tr>
+	<tr>
+		<td>1.08</td>
+		<td>?? ???? 1999</td>
+		<td>
 			<B>Feature:</B>
 			<BR>
 			Added ability to output error information in either RGBDS or Microsoft Developer Studio format.
 			<BR>
-		</TD>
-	</TR>
-	<TR>
-		<TD ALIGN="Center">1.08</TD>
-		<TD ALIGN="Center">?? ???? 1999</TD>
-		<TD>
+		</td>
+	</tr>
+	<tr>
+		<td>1.08</td>
+		<td>?? ???? 1999</td>
+		<td>
 			<B>Feature:</B>
 			<BR>
 			Added pseudo-instructions to handle NE (not equal), EQ (equal), and LT (less than) on JR/JP/CALL instructions
 			<BR>
-		</TD>
-	</TR>
-	<TR>
-		<TD ALIGN="Center">1.08</TD>
-		<TD ALIGN="Center">?? ???? 1999</TD>
-		<TD>
+		</td>
+	</tr>
+	<tr>
+		<td>1.08</td>
+		<td>?? ???? 1999</td>
+		<td>
 			<B>Feature:</B>
 			<BR>
 			Added STRTRIM, STRLTRIM, STRRTRIM directives to allow trimming of white space from strings in macro arguments.
 			<BR>
-		</TD>
-	</TR>
-	<TR>
-		<TD ALIGN="Center">1.08</TD>
-		<TD ALIGN="Center">?? ???? 1999</TD>
-		<TD>
+		</td>
+	</tr>
+	<tr>
+		<td>1.08</td>
+		<td>?? ???? 1999</td>
+		<td>
 			<B>Bug Fix:</B>
 			<BR>
 			When an "unknown symbol" error was reported during the link phase the undefined symbol was not given.
 			<BR>
-		</TD>
-	</TR>
-	<TR>
-		<TD ALIGN="Center">1.08</TD>
-		<TD ALIGN="Center">?? ???? 1999</TD>
-		<TD>
+		</td>
+	</tr>
+	<tr>
+		<td>1.08</td>
+		<td>?? ???? 1999</td>
+		<td>
 			<B>Bug Fix:</B>
 			<BR>
 			Declaring a symbol as GLOBAL in a header file and then referencing it in code but never defining it would crash the linker.
 			<BR>
-		</TD>
-	</TR>
-	<TR>
-		<TD ALIGN="Center">1.09</TD>
-		<TD ALIGN="Center">08 February 2000</TD>
-		<TD>
+		</td>
+	</tr>
+	<tr>
+		<td>1.09</td>
+		<td>08 February 2000</td>
+		<td>
 			<B>Feature:</B>
 			<BR>
 			Can now use a command line option to set the number format between a slightly tweaked Motorola/RGBDS format and Zilog.
@@ -201,7 +207,7 @@
 			<BR>
 			Hex numbers can now be represented as $FF or FFh.
 			<BR>
-			Octal as &77 or 77o.
+			Octal as &amp;77 or 77o.
 			<BR>
 			Binary as %10010110 or 10010110b.
 			<BR>
@@ -209,10 +215,10 @@
 			<BR>
 			Decimal numbers remain unchanged.
 			<BR>
-		</TD>
-	</TR>
+		</td>
+	</tr>
 
 </TABLE>
 
 <BR><HR>
-<FONT SIZE="-1"><I><P ALIGN=RIGHT>Last updated 21 September 1997 by <A HREF="mailto:[email protected]">Carsten Sorensen</A></P></I></FONT>
+<FONT SIZE="-1"><I><P ALIGN=RIGHT>Last updated 21 September 1997 by <a href="mailto:[email protected]">Carsten Sorensen</A></P></I></FONT>
--- a/doc/asm/if.htm
+++ b/doc/asm/if.htm
@@ -1,37 +1,24 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<HTML>
-<HEAD>
-	<TITLE>xAsm IF, ELSE, ENDC</TITLE>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+	<title>xAsm IF, ELSE, ENDC</title>
         <link rel="stylesheet" type="text/css" href="../style.css">
-</HEAD>
-
-<BODY>
-<I><H2>IF<BR>
-ELSE<BR>
-ENDC
-</H2></I>
-<HR>
-
-<P>These three commands is used to conditionally assemble parts of your file. It is a powerful feature commonly used in macros.<BR>
-<BR>
-<TABLE BORDER=0 BGCOLOR="Black" CELLPADDING=8 WIDTH="50%">
-<TR>
-	<TD><FONT COLOR="#00FF00">
-<PRE>IF   2+2==4
+</head>
+<body>
+<h1>IF, ELSE, ENDC</h1>
+<p>These three commands is used to conditionally assemble parts of your file. It is a powerful feature commonly used in macros.</p>
+<pre>IF   2+2==4
 PRINTT    "2+2==4\n"
 ELSE
 PRINTT    "2+2!=4\n"
-ENDC</PRE>
-</FONT></TD>
-</TR>
-</TABLE>
-<P>The ELSE block is optional. IF/ELSE/ENDC-blocks can be nested.<BR>
-
-<H3>See also:</H3>
-<UL>
-<LI><A HREF="expr_int.htm">Integer and Boolean expressions</A>
-</UL>
-
-<BR><HR>
-<FONT SIZE="-1"><I><P ALIGN=RIGHT>Last updated 21 June 1997 by <A HREF="mailto:[email protected]">Carsten Sorensen</A></P></I></FONT>
+ENDC</pre>
+<p>The ELSE block is optional. IF/ELSE/ENDC-blocks can be nested.</p>
+<h1>See also:</h1>
+<ul>
+<li><a href="expr_int.htm">Integer and Boolean expressions</a>
+</ul>
+<hr>
+<p>Last updated 21 June 1997 by <a href="mailto:[email protected]">Carsten Sorensen</a></p>
+</body>
+</html>
--- a/doc/asm/incbin.htm
+++ b/doc/asm/incbin.htm
@@ -1,44 +1,22 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<HTML>
-<HEAD>
-	<TITLE>xAsm INCBIN</TITLE>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+	<title>xAsm INCBIN</title>
         <link rel="stylesheet" type="text/css" href="../style.css">
-</HEAD>
-
-<BODY>
-<I><H2>INCBIN
-</H2></I>
-<HR>
-
-<P>You  probably have some graphics you'd like to include. Use <B>INCBIN</B> to include a raw binary
-file as it  is. If the file isn't found in the current directory the <A HREF="usage.htm">include-path</A> list will be searched.<BR>
-<BR>
-<TABLE BORDER=0 BGCOLOR="Black" CELLPADDING=8 WIDTH="50%">
-<TR>
-	<TD><FONT COLOR="#00FF00">
-<PRE>INCBIN    "titlepic.bin"
-INCBIN    "sprites\\hero.bin"</PRE>
-</FONT></TD>
-</TR>
-</TABLE>
-
-<P>You can also include only part of a file with <B>INCBIN</B>. The example below includes 256 bytes from <I>data.bin</I> starting from position 78.<BR>
-
-<BR>
-<TABLE BORDER=0 BGCOLOR="Black" CELLPADDING=8 WIDTH="50%">
-<TR>
-	<TD><FONT COLOR="#00FF00">
-<PRE>INCBIN    "data.bin",78,256</PRE>
-</FONT></TD>
-</TR>
-</TABLE>
-
-
-<H3>See also:</H3>
-<UL>
-	<LI><A HREF="expr_str.htm">String expressions, functions and formatting</A>
-</UL>
-
-<BR><HR>
-<FONT SIZE="-1"><I><P ALIGN=RIGHT>Last updated 21 June 1997 by <A HREF="mailto:[email protected]">Carsten Sorensen</A></P></I></FONT>
+</head>
+<body>
+<h1>INCBIN</h1>
+<p>You  probably have some graphics you’d like to include. Use <dfn>INCBIN</dfn> to include a raw binary file as it is. If the file isn’t found in the current directory the <a href="usage.htm">include-path</a> list will be searched.</p>
+<pre>INCBIN    "titlepic.bin"
+INCBIN    "sprites\\hero.bin"</pre>
+<p>You can also include only part of a file with <b>INCBIN</b>. The example below includes 256 bytes from <i>data.bin</i> starting from position 78.</p>
+<pre>INCBIN    "data.bin",78,256</pre>
+<h1>See also:</h1>
+<ul>
+	<li><a href="expr_str.htm">String expressions, functions and formatting</a>
+</ul>
+<hr>
+<p>Last updated 21 June 1997 by <a href="mailto:[email protected]">Carsten Sorensen</a></p>
+</body>
+</html>
--- a/doc/asm/include.htm
+++ b/doc/asm/include.htm
@@ -1,30 +1,19 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<HTML>
-<HEAD>
-	<TITLE>xAsm INCLUDE</TITLE>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+	<title>xAsm INCLUDE</title>
         <link rel="stylesheet" type="text/css" href="../style.css">
-</HEAD>
-
-<BODY>
-<I><H2>INCLUDE
-</H2></I>
-<HR>
-
-<P>Use INCLUDE 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 <A HREF="usage.htm">include-path</A> list will be searched. You may nest <B>INCLUDE</B> calls infinitely (or until you run out of memory whichever comes first).<BR>
-<BR>
-<TABLE BORDER=0 BGCOLOR="Black" CELLPADDING=8 WIDTH="50%">
-<TR>
-	<TD><FONT COLOR="#00FF00">
-<PRE>INCLUDE   "irq.inc"</PRE>
-</FONT></TD>
-</TR>
-</TABLE>
-
-<H3>See also:</H3>
-<UL>
-<LI><A HREF="expr_str.htm">String expressions, functions and formatting</A>
-</UL>
-
-<BR><HR>
-<FONT SIZE="-1"><I><P ALIGN=RIGHT>Last updated 21 June 1997 by <A HREF="mailto:[email protected]">Carsten Sorensen</A></P></I></FONT>
+</head>
+<body>
+<h1>INCLUDE</h1>
+<p>Use INCLUDE 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 <a href="usage.htm">include-path</a> list will be searched. You may nest <b>INCLUDE</b> calls infinitely (or until you run out of memory whichever comes first).</p>
+<pre>INCLUDE   "irq.inc"</pre>
+<h1>See also:</h1>
+<ul>
+<li><a href="expr_str.htm">String expressions, functions and formatting</a>
+</ul>
+<hr>
+<p>Last updated 21 June 1997 by <a href="mailto:[email protected]">Carsten Sorensen</a></p>
+</body>
+</html>
--- a/doc/asm/labels.htm
+++ b/doc/asm/labels.htm
@@ -1,30 +1,22 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<HTML>
-<HEAD>
-	<TITLE>xAsm Labels</TITLE>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+	<title>xAsm Labels</title>
         <link rel="stylesheet" type="text/css" href="../style.css">
-</HEAD>
-
-<BODY>
-<I><H2>Labels</H2></I><HR>
-<P>One  of  the assemblers main tasks is to keep track of addresses for you so you don't have to remember obscure numbers but can make do with a meaningful name, a label.<BR>
-<P>This can be done in a number of ways:<BR>
-<BR>
-<TABLE BORDER=0 BGCOLOR="Black" CELLPADDING=8 WIDTH="50%">
-<TR>
-	<TD><FONT COLOR="#00FF00">
-<PRE>GlobalLabel
+</head>
+<body>
+<h1>Labels</h1>
+<p>One of the assembler’s main tasks is to keep track of addresses for you so you dor’t have to remember obscure numbers but can make do with a meaningful name, a label.</p>
+<p>This can be done in a number of ways:</p>
+<pre>GlobalLabel
 AnotherGlobal:
 .locallabel
 .yet_a_local:
-ThisWillBeExported::        ;note the two colons</PRE>          
-</FONT></TD>
-</TR>
-</TABLE>
-<P>This  is very similar to other assemblers. Local labels are  only accessible within the scope they are defined. A scope starts after a global label and ends at the next global label. You  may  or  may not have seen the <B>::</B> feature  before. It declares a normal global label but does an <A HREF="export.htm">EXPORT</A> at the same time.<BR>
-<P>Labels will normally change their value during the <A HREF="../link.htm">link process</A> and are thus <B>not</B> constant.<BR>
-<BR>
-
-<BR><HR>
-<FONT SIZE="-1"><I><P ALIGN=RIGHT>Last updated 21 June 1997 by <A HREF="mailto:[email protected]">Carsten Sorensen</A></P></I></FONT>
+ThisWillBeExported::        ;note the two colons</pre>
+<p>This  is very similar to other assemblers. Local labels are  only accessible within the scope they are defined. A scope starts after a global label and ends at the next global label. You  may  or  may not have seen the <b>::</b> feature  before. It declares a normal global label but does an <a href="export.htm">EXPORT</a> at the same time.</p>
+<p>Labels will normally change their value during the <a href="../link.htm">link process</a> and are thus <em>not</em> constant.</p>
+<hr>
+<p>Last updated 21 June 1997 by <a href="mailto:[email protected]">Carsten Sorensen</a></p>
+</body>
+</html>
--- a/doc/asm/macro.htm
+++ b/doc/asm/macro.htm
@@ -1,80 +1,42 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<HTML>
-<HEAD>
-	<TITLE>xAsm MACRO/ENDM</TITLE>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+	<title>xAsm MACRO/ENDM</title>
         <link rel="stylesheet" type="text/css" href="../style.css">
-</HEAD>
-
-<BODY>
-<I><H2>MACRO<BR>
-ENDM</H2></I><HR>
-
-<P>One of the best features of an assembler is the ability to write macros for it. Macros also provide a method of passing
-arguments to them and they can then react to the input using IF-constructs.<BR>
-<BR>
-<TABLE BORDER=0 BGCOLOR="Black" CELLPADDING=8 WIDTH="50%">
-<TR>
-	<TD><FONT COLOR="#00FF00">
-<PRE>MyMacro:  MACRO
+</head>
+<body>
+<h1>MACRO, ENDM</h1>
+<p>One of the best features of an assembler is the ability to write macros for it. Macros also provide a method of passing arguments to them and they can then react to the input using IF-constructs.</p>
+<pre>MyMacro:  MACRO
           ld   a,80
           call MyFunc
-          ENDM</PRE>
-</FONT></TD>
-</TR>
-</TABLE>
-<P>The above example is a very simple macro. You execute the macro by typing its name.<BR>
-<BR>
-<TABLE BORDER=0 BGCOLOR="Black" CELLPADDING=8 WIDTH="50%">
-<TR>
-	<TD><FONT COLOR="#00FF00">
-<PRE>          add  a,b
+          ENDM</pre>
+<p>The above example is a very simple macro. You execute the macro by typing its name.</p>
+<pre>          add  a,b
           ld   sp,hl
           MyMacro        ;This will be expanded
-          sub  a,87</PRE>
-</FONT></TD>
-</TR>
-</TABLE>
-<P>When the assembler meets MyMacro it will insert the macrodefinition (the text enclosed in <B>MACRO/ENDM</B>).
-<P id="labelsuffix">Suppose your macro contains a loop.<BR>
-<BR>
-<TABLE BORDER=0 BGCOLOR="Black" CELLPADDING=8 WIDTH="50%">
-<TR>
-	<TD><FONT COLOR="#00FF00">
-<PRE>LoopyMacro:    MACRO
+          sub  a,87</pre>
+<p>When the assembler meets MyMacro it will insert the macrodefinition (the text enclosed in <b>MACRO/ENDM</b>).</p>
+<p id="labelsuffix">Suppose your macro contains a loop.</p>
+<pre>LoopyMacro:    MACRO
                xor  a,a
 .loop          ld   [hl+],a
                dec  c
                jr   nz,.loop
-               ENDM</PRE>
-</FONT></TD>
-</TR>
-</TABLE>
-<A TARGET="#labelsuffix"></A><P>This is fine. That is, if you only use the macro once per <A HREF="labels.htm">scope</A>. To get around this problem there is a special label string equate called <B>\@</B> that you can append to your labels and it will then expand to a unique string.
-<B>\@</B> also works in <A HREF="rept.htm">REPT-blocks</A> should you have any loops there.<BR>
-<BR>
-<TABLE BORDER=0 BGCOLOR="Black" CELLPADDING=8 WIDTH="50%">
-<TR>
-	<TD><FONT COLOR="#00FF00">
-<PRE>LoopyMacro:    MACRO
+               ENDM</pre>
+<p>This is fine. That is, if you only use the macro once per <a href="labels.htm">scope</a>. To get around this problem there is a special label string equate called <b>\@</b> that you can append to your labels and it will then expand to a unique string.</p>
+<p><b>\@</b> also works in <a href="rept.htm">REPT-blocks</a> should you have any loops there.</p>
+<pre>LoopyMacro:    MACRO
                xor  a,a
 .loop\@        ld   [hl+],a
                dec  c
                jr   nz,.loop\@
-               ENDM</PRE>
-</FONT></TD>
-</TR>
-</TABLE>
-<H4>Arguments</H4>
-<P>I'd like <I>LoopyMacro</I> a lot better if I didn't have to pre-load the registers with values and <I>then</I> call it.
-What  I'd like is the ability to pass it arguments and it then loaded the registers itself.
-<P>And I can do that. In macros you can get the arguments by using the special macro string equates <B>\1</B> through
-<B>\9</B>, <B>\1</B> being the first argument specified on the calling of the macro.<BR>
-<BR>
-<TABLE BORDER=0 BGCOLOR="Black" CELLPADDING=8 WIDTH="50%">
-<TR>
-	<TD><FONT COLOR="#00FF00">
-<PRE>LoopyMacro:    MACRO
+               ENDM</pre>
+<h2>Arguments</h2>
+<p>I’d like <i>LoopyMacro</i> a lot better if I didn’t have to pre-load the registers with values and <em>then</em> call it. What  I’d like is the ability to pass it arguments and it then loaded the registers itself.</p>
+<p>And I can do that. In macros you can get the arguments by using the special macro string equates <b>\1</b> through <b>\9</b>, <b>\1</b> being the first argument specified on the calling of the macro.</p>
+<pre>LoopyMacro:    MACRO
                ld   hl,\1
                ld   c,\2
                xor  a,a
@@ -81,41 +43,18 @@
 .loop\@        ld   [hl+],a
                dec  c
                jr   nz,.loop\@
-               ENDM</PRE>
-</FONT></TD>
-</TR>
-</TABLE>
-<P>Now I can call the macro specifying two arguments. The first being the address and the second being a bytecount.
-The macro will then reset all bytes in this range.<BR>
-<BR>
-<TABLE BORDER=0 BGCOLOR="Black" CELLPADDING=8 WIDTH="50%">
-<TR>
-	<TD><FONT COLOR="#00FF00">
-<PRE>               LoopyMacro     MyVars,54</PRE>
-</FONT></TD>
-</TR>
-</TABLE>
-<P>     You  can  specify up to nine arguments when  calling  a
-     macro.  Arguments are passed as string equates. There's no need to enclose them in quotes. Parameter passing has changed a bit since v1.03 in that an expression will not be evaluated first but passed directly. This means that it's probably a very good idea to use
-brackets around \1-\9 if you perform further calculations on them. For instance if you pass 1+2 as the first argument and then do
+               ENDM</pre>
+<p>Now I can call the macro specifying two arguments. The first being the address and the second being a bytecount. The macro will then reset all bytes in this range.</p>
+<pre>               LoopyMacro     MyVars,54</pre>
+<p>You can specify up to nine arguments when calling a macro. Arguments are passed as string equates. There’s no need to enclose them in quotes. Parameter passing has changed a bit since v1.03 in that an expression will not be evaluated first but passed directly. This means that it’s probably a very good idea to use brackets around \1–\9 if you perform further calculations on them. For instance if you pass 1+2 as the first argument and then do <code>    PRINTV  \1*2</code>
+you will get the value 5 on screen and not 6 as you might have expected.</p>
+<p>Note that a colon (:) following the macro-name is required. Macros can't be exported or imported. It's valid to call a macro from a macro (yes, even the same one).</p>
 
-<P><TABLE BORDER=0 BGCOLOR="Black" CELLPADDING=8 WIDTH="50%">
-<TR>
-	<TD><FONT COLOR="#00FF00">
-<PRE>    PRINTV  \1*2
-</PRE>
-</FONT></TD>
-</TR>
-</TABLE>
-
-you will get the value 5 on screen and not 6 as you might have expected..<BR>
-
-<P>Note that a colon (:) following the macro-name is required. Macros can't be exported or imported. It's valid to call a macro from a macro (yes, even the same one).<BR>
-
-<H3>See also:</H3>
-<UL>
-<LI><A HREF="shift.htm">SHIFT</A>
-</UL>
-
-<BR><HR>
-<FONT SIZE="-1"><I><P ALIGN=RIGHT>Last updated 02 July 1997 by <A HREF="mailto:[email protected]">Carsten Sorensen</A></P></I></FONT>
+<h1>See also:</h1>
+<ul>
+<li><a href="shift.htm">SHIFT</a>
+</ul>
+<hr>
+<p>Last updated 02 July 1997 by <a href="mailto:[email protected]">Carsten Sorensen</a></p>
+</body>
+</html>
--- a/doc/asm/miscfunc.htm
+++ b/doc/asm/miscfunc.htm
@@ -1,42 +1,38 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<HTML>
-<HEAD>
-	<TITLE>xAsm Other functions</TITLE>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+	<title>xAsm Other functions</title>
         <link rel="stylesheet" type="text/css" href="../style.css">
-</HEAD>
-
-<BODY>
-<I><H2>Other functions
-</H2></I>
-<HR>
-
-There's a few other functions that do various useful things:
-
-<P><TABLE BORDER=1>
-	<CAPTION><I>Other functions</I></CAPTION>
-
-<TR>
-	<TD><B><I>Name</I></B></TD>
-	<TD><B><I>Operation</I></B></TD>
-</TR>
-<TR>
-	<TD>BANK(<I>label</I>)</TD>
-	<TD>Gameboy ONLY: Returns the bank number <I>label</I> is in. The link will have to resolve this so it can't be used when the expression has to be constant</TD>
-</TR>
-<TR>
-	<TD>DEF(<I>label</I>)</TD>
-	<TD>Returns TRUE if <I>label</I> has been defined</TD>
-</TR>
-</TABLE>
-
-<H3>See also:</H3>
-<UL>
-	<LI><A HREF="section.htm">Sections</A>
-	<LI><A HREF="symbols.htm">Symbols</A>
-	<LI><A HREF="presym.htm">Predeclared symbols</A>
-	<LI><A HREF="if.htm">Conditional assembling</A>
-</UL>
-
-<BR><HR>
-<FONT SIZE="-1"><I><P ALIGN=RIGHT>Last updated 21 June 1997 by <A HREF="mailto:[email protected]">Carsten Sorensen</A></P></I></FONT>
+</head>
+<body>
+<h1>Other functions</h1>
+<p>There's a few other functions that do various useful things:</p>
+<table>
+	<caption>Other functions</caption>
+<thead>
+<tr>
+	<th scope="col">Name</th>
+	<th scope="col">Operation</th>
+</tr>
+</thead>
+<tr>
+	<td>BANK(<i>label</i>)</td>
+	<td>Gameboy ONLY: Returns the bank number <i>label</i> is in. The link will have to resolve this so it can't be used when the expression has to be constant</td>
+</tr>
+<tr>
+	<td>DEF(<i>label</i>)</td>
+	<td>Returns TRUE if <i>label</i> has been defined</td>
+</tr>
+</table>
+<h1>See alse:</h1>
+<ul>
+	<li><a href="section.htm">Sections</a>
+	<li><a href="symbols.htm">Symbols</a>
+	<li><a href="presym.htm">Predeclared symbols</a>
+	<li><a href="if.htm">Conditional assembling</a>
+</ul>
+<hr>
+<p>Last updated 21 June 1997 by <a href="mailto:[email protected]">Carsten Sorensen</a></p>
+</body>
+</html>
--- a/doc/asm/opt.htm
+++ b/doc/asm/opt.htm
@@ -1,38 +1,27 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<HTML>
-<HEAD>
-	<TITLE>xAsm OPT</TITLE>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+	<title>xAsm OPT</title>
         <link rel="stylesheet" type="text/css" href="../style.css">
-</HEAD>
+</head>
+<body>
+<h1>OPT</h1>
+<p>OPT can be used to change <I>some</I> of the options during assembling you source instead of defining them on the commandline.</p>
+<p>OPT takes a comma-seperated list of options as its argument:</p>
 
-<BODY>
-<I><H2>OPT
-</H2></I>
-<HR>
-
-<P>OPT can be used to change <I>some</I> of the options during assembling you source instead of defining them on the commandline.<BR>
-<P>OPT takes a comma-seperated list of options as its argument:
-
-<P><TABLE BORDER=0 BGCOLOR="Black" CELLPADDING=8 WIDTH="50%">
-<TR>
-	<TD><FONT COLOR="#00FF00">
-<PRE>    PUSHO
+<pre>    PUSHO
     OPT   g.oOX    ;Set the GB graphics constants to use these characters
     DW    `..ooOOXX
     POPO
-    DW    `00112233</PRE>   
-</FONT></TD>
-</TR>
-</TABLE>
-
-<P>The options that OPT can modify are currently: <B>b, e and g</B>
-
-<H3>See also:</H3>
-<UL>
-<LI><A HREF="usage.htm">Usage</A>
-<LI><A HREF="popo.htm">The option stack</A>
-</UL>
-
-<BR><HR>
-<FONT SIZE="-1"><I><P ALIGN=RIGHT>Last updated 20 July 1997 by <A HREF="mailto:[email protected]">Carsten Sorensen</A></P></I></FONT>
+    DW    `00112233</pre>
+<p>The options that OPT can modify are currently: <b>b, e and g</b></p>
+<h1>See also:</h1>
+<ul>
+<li><a href="usage.htm">Usage</a>
+<li><a href="popo.htm">The option stack</a>
+</ul>
+<hr>
+<p>Last updated 20 July 1997 by <a href="mailto:[email protected]">Carsten Sorensen</a></p>
+</body>
+</html>
--- a/doc/asm/popo.htm
+++ b/doc/asm/popo.htm
@@ -1,25 +1,18 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<HTML>
-<HEAD>
-	<TITLE>xAsm POPO, PUSHO</TITLE>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+	<title>xAsm POPO, PUSHO</title>
         <link rel="stylesheet" type="text/css" href="../style.css">
-</HEAD>
-
-<BODY>
-<I><H2>POPO<BR>
-PUSHO
-</H2></I>
-<HR>
-
-<P>POPO and PUSHO provide the interface to the option stack. PUSHO will push the current set of options on the option stack. POPO 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 stacks number of entries is limited only by the amount of memory in your machine.
-
-<P>German people: Yes, I know what "POPO" means. You are hereby allowed to snigger and giggle every time you type it.
-
-<H3>See also:</H3>
-<UL>
-<LI><A HREF="opt.htm">Changing options while assembling</A>
-</UL>
-
-<BR><HR>
-<FONT SIZE="-1"><I><P ALIGN=RIGHT>Last updated 20 July 1997 by <A HREF="mailto:[email protected]">Carsten Sorensen</A></P></I></FONT>
+</head>
+<body>
+<h1>POPO, PUSHO</h1>
+<p>POPO and PUSHO provide the interface to the option stack. PUSHO will push the current set of options on the option stack. POPO 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 stacks number of entries is limited only by the amount of memory in your machine.</p>
+<h1>See also:</h1>
+<ul>
+<li><a href="opt.htm">Changing options while assembling</a>
+</ul>
+<hr>
+<p>Last updated 20 July 1997 by <a href="mailto:[email protected]">Carsten Sorensen</a></p>
+</body>
+</html>
--- a/doc/asm/pops.htm
+++ b/doc/asm/pops.htm
@@ -1,23 +1,18 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<HTML>
-<HEAD>
-	<TITLE>xAsm POPS, PUSHS</TITLE>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+	<title>xAsm POPS, PUSHS</title>
         <link rel="stylesheet" type="text/css" href="../style.css">
-</HEAD>
-
-<BODY>
-<I><H2>POPS<BR>
-PUSHS
-</H2></I>
-<HR>
-
-<P>POPS and PUSHS provide the interface to the section stack. PUSHS will push the current section context on the section stack. POPS can then later be used to restore it. Useful for defining sections in included files when you don't want to destroy the section context for the program that included your file. The stacks number of entries is limited only by the amount of memory in your machine.
-
-<H3>See also:</H3>
-<UL>
-<LI><A HREF="section.htm">Sections</A>
-</UL>
-
-<BR><HR>
-<FONT SIZE="-1"><I><P ALIGN=RIGHT>Last updated 18 July 1997 by <A HREF="mailto:[email protected]">Carsten Sorensen</A></P></I></FONT>
+</head>
+<body>
+<h1>POPS, PUSHS</h1>
+<p>POPS and PUSHS provide the interface to the section stack. PUSHS will push the current section context on the section stack. POPS can then later be used to restore it. Useful for defining sections in included files when you don't want to destroy the section context for the program that included your file. The stacks number of entries is limited only by the amount of memory in your machine.</p>
+<h1>See also:</h1>
+<ul>
+<li><a href="section.htm">Sections</a>
+</ul>
+<hr>
+<p>Last updated 18 July 1997 by <a href="mailto:[email protected]">Carsten Sorensen</a></p>
+</body>
+</html>
--- a/doc/asm/presym.htm
+++ b/doc/asm/presym.htm
@@ -1,64 +1,63 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<HTML>
-<HEAD>
-	<TITLE>xAsm Predeclared symbols</TITLE>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+	<title>xAsm Predeclared symbols</title>
         <link rel="stylesheet" type="text/css" href="../style.css">
-</HEAD>
-
-<BODY>
-<I><H2>Predeclared symbols
-</H2></I>
-<HR>
-
-<TABLE BORDER=1>
-	<CAPTION><I>Symbols</I></CAPTION>
-<TR>
-	<TD><B><I>Name</I></B></TD>
-	<TD><B><I>Contents</I></B></TD>
-	<TD><B><I>Type</I></B></TD>
-</TR>
-<TR>
-	<TD>@</TD>
-	<TD>PC value</TD>
-	<TD>EQU</TD>
-</TR>
-<TR>
-	<TD>_PI</TD>
-	<TD>Fixed point &#182</TD>
-	<TD>EQU</TD>
-</TR>
-<TR>
-	<TD>_RS</TD>
-	<TD>_RS counter</TD>
-	<TD>SET</TD>
-</TR>
-<TR>
-	<TD>_NARG</TD>
-	<TD>Number of arguments passed to macro</TD>
-	<TD>EQU</TD>
-</TR>
-<TR>
-	<TD>__LINE__</TD>
-	<TD>The current linenumber</TD>
-	<TD>EQU</TD>
-</TR>
-<TR>
-	<TD>__FILE__</TD>
-	<TD>The current filename</TD>
-	<TD>EQUS</TD>
-</TR>
-<TR>
-	<TD>__DATE__</TD>
-	<TD>Todays date</TD>
-	<TD>EQUS</TD>
-</TR>
-<TR>
-	<TD>__TIME__</TD>
-	<TD>The current time</TD>
-	<TD>EQUS</TD>
-</TR>
-</TABLE>
-
-<BR><HR>
-<FONT SIZE="-1"><I><P ALIGN=RIGHT>Last updated 21 June 1997 by <A HREF="mailto:[email protected]">Carsten Sorensen</A></P></I></FONT>
+</head>
+<body>
+<h1>Predeclared symbols</h1>
+<table>
+	<caption>Symbols</caption>
+<thead>
+<tr>
+	<th scope="col">Name</th>
+	<th scope="col">Contents</th>
+	<th scope="col">Type</th>
+</tr>
+</thead>
+<tr>
+	<td>@</td>
+	<td>PC value</td>
+	<td>EQU</td>
+</tr>
+<tr>
+	<td>_PI</td>
+	<td>Fixed point ¶</td>
+	<td>EQU</td>
+</tr>
+<tr>
+	<td>_RS</td>
+	<td>_RS counter</td>
+	<td>SET</td>
+</tr>
+<tr>
+	<td>_NARG</td>
+	<td>Number of arguments passed to macro</td>
+	<td>EQU</td>
+</tr>
+<tr>
+	<td>__LINE__</td>
+	<td>The current linenumber</td>
+	<td>EQU</td>
+</tr>
+<tr>
+	<td>__FILE__</td>
+	<td>The current filename</td>
+	<td>EQUS</td>
+</tr>
+<tr>
+	<td>__DATE__</td>
+	<td>Todays date</td>
+	<td>EQUS</td>
+</tr>
+<tr>
+	<td>__TIME__</td>
+	<td>The current time</td>
+	<td>EQUS</td>
+</tr>
+</table>
+<hr>
+<p>Last updated 21 June 1997 by <a href="mailto:[email protected]">Carsten Sorensen</a></p>
+</body>
+</html>
--- a/doc/asm/print.htm
+++ b/doc/asm/print.htm
@@ -1,40 +1,29 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<HTML>
-<HEAD>
-	<TITLE>xAsm PRINTT, PRINTV, PRINTF</TITLE>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+	<title>xAsm PRINTT, PRINTV, PRINTF</title>
         <link rel="stylesheet" type="text/css" href="../style.css">
-</HEAD>
-
-<BODY>
-<I><H2>PRINTT<BR>
-PRINTV<BR>
-PRINTF<BR>
-</H2></I>
-<HR>
-
-<P>These  three  instructions  type  text and  values  to stdout. Useful for debugging macros or wherever you may feel  the
-need to tell yourself some important information.<BR>
-<BR>
-<TABLE BORDER=0 BGCOLOR="Black" CELLPADDING=8 WIDTH="50%">
-<TR>
-	<TD><FONT COLOR="#00FF00">
-<PRE>PRINTT    "I'm the greatest programmer in the whole wide world\n"
+</head>
+<body>
+<h1>PRINTT, PRINTV, PRINTF</h1>
+<p>These  three  instructions  type  text and  values  to stdout. Useful for debugging macros or wherever you may feel the need to tell yourself some important information.</p>
+<pre>PRINTT    "I'm the greatest programmer in the whole wide world\n"
 PRINTV    (2+3)/5
-PRINTF    MUL(3.14,3987.0)</PRE>   
-</FONT></TD>
-</TR>
-</TABLE>
-<B>PRINTT</B> prints out a string<BR>
-<B>PRINTV</B> prints out an integer value or, as in the example, the result of a calculation. Unsurprisingly you can also print out a <A HREF="symbols.htm">constant symbols</A> value<BR>
-<B>PRINTF</B> prints out a fixed point value.<BR>
+PRINTF    MUL(3.14,3987.0)</pre>
+<ul>
+	<li><dfn>PRINTT</dfn> prints out a string</li>
+	<li><dfn>PRINTV</dfn> prints out an integer value or, as in the example, the result of a calculation. Unsurprisingly you can also print out a <a href="symbols.htm">constant symbols</a> value</li>
+	<li><dfn>PRINTF</dfn> prints out a fixed point value.</li>
+</ul>
 
-<H3>See also:</H3>
-<UL>
-	<LI><A HREF="asm/expr_int.htm">Integer and Boolean expressions</A>
-	<LI><A HREF="asm/expr_fix.htm">Fixed-point expressions and functions</A>
-	<LI><A HREF="asm/expr_str.htm">String expressions, functions and formatting</A>
-</UL>
-
-<BR><HR>
-<FONT SIZE="-1"><I><P ALIGN=RIGHT>Last updated 21 June 1997 by <A HREF="mailto:[email protected]">Carsten Sorensen</A></P></I></FONT>
+<h1>See also:</h1>
+<ul>
+	<li><a href="asm/expr_int.htm">Integer and Boolean expressions</a>
+	<li><a href="asm/expr_fix.htm">Fixed-point expressions and functions</a>
+	<li><a href="asm/expr_str.htm">String expressions, functions and formatting</a>
+</ul>
+<hr>
+<p>Last updated 21 June 1997 by <a href="mailto:[email protected]">Carsten Sorensen</a></p>
+</body>
+</html>
--- a/doc/asm/purge.htm
+++ b/doc/asm/purge.htm
@@ -1,26 +1,18 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<HTML>
-<HEAD>
-	<TITLE>xAsm PURGE</TITLE>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+	<title>xAsm PURGE</title>
         <link rel="stylesheet" type="text/css" href="../style.css">
-</HEAD>
-
-<BODY>
-<I><H2>PURGE</H2></I><HR>
-
-<P>The PURGE command allows you to completely remove a symbol from the symbol table as if it had never existed. USE WITH EXTREME CAUTION!!! I can't stress this enough but you <B>seriously</B> need to know what you are doing. DON'T purge symbol that you use in expressions the linker needs to calculate. In fact, it's probably not even safe to purge anything other than string symbols and macros.<BR>
-<BR>
-<TABLE BORDER=0 BGCOLOR="Black" CELLPADDING=8 WIDTH="50%">
-<TR>
-	<TD><FONT COLOR="#00FF00">
-<PRE>Kamikaze    EQUS    "I don't want to live anymore"
+</head>
+<body>
+<h1>PURGE</h1>
+<p>The PURGE command allows you to completely remove a symbol from the symbol table as if it had never existed. USE WITH EXTREME CAUTION!!! I can’t stress this enough but you <em>seriously</em> need to know what you are doing. DON’T purge symbol that you use in expressions the linker needs to calculate. In fact, it’s probably not even safe to purge anything other than string symbols and macros.</p>
+<pre>Kamikaze    EQUS    "I don't want to live anymore"
 AOLer       EQUS    "Me too"
-            PURGE   Kamikaze,AOLer</PRE>          
-</FONT></TD>
-</TR>
-</TABLE>
-<P>Note that string symbols that are part of a PURGE command WILL NOT BE EXPANDED as the ONLY exception to this rule.<BR>
-
-<BR><HR>
-<FONT SIZE="-1"><I><P ALIGN=RIGHT>Last updated 02 July 1997 by <A HREF="mailto:[email protected]">Carsten Sorensen</A></P></I></FONT>
+            PURGE   Kamikaze,AOLer</pre>
+<p>Note that string symbols that are part of a PURGE command WILL NOT BE EXPANDED as the ONLY exception to this rule.</p>
+<hr>
+<p>Last updated 02 July 1997 by <a href="mailto:[email protected]">Carsten Sorensen</a></p>
+</body>
+</html>
--- a/doc/asm/rept.htm
+++ b/doc/asm/rept.htm
@@ -1,34 +1,19 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<HTML>
-<HEAD>
-	<TITLE>xAsm REPT, ENDR</TITLE>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+	<title>xAsm REPT, ENDR</title>
         <link rel="stylesheet" type="text/css" href="../style.css">
-</HEAD>
-
-<BODY>
-<I><H2>REPT<BR>
-ENDR
-</H2></I>
-<HR>
-
-<P>Suppose you're feeling lazy and you want to unroll a time consuming loop. <B>REPT</B> is here for that purpose. Everything between REPT and ENDR will be repeated a number of times just as if you done a copy/paste operation yourself<BR>
-<BR>
-<TABLE BORDER=0 BGCOLOR="Black" CELLPADDING=8 WIDTH="50%">
-<TR>
-	<TD><FONT COLOR="#00FF00">
-<PRE>REPT 4
+</head>
+<body>
+<h1>REPT, ENDR</h1>
+<p>Suppose you’re feeling lazy and you want to unroll a time consuming loop. <dfn>REPT</dfn> is here for that purpose. Everything between REPT and ENDR will be repeated a number of times just as if you done a copy/paste operation yourself</p>
+<pre>REPT 4
 add  a,c
-ENDR</PRE>
-</FONT></TD>
-</TR>
-</TABLE>
-<P>This will assemble <B>add a,c</B> four times.<BR>
-<P>You can also use REPT to generate tables on the fly:
-<TABLE BORDER=0 BGCOLOR="Black" CELLPADDING=8 WIDTH="50%">
-<TR>
-	<TD><FONT COLOR="#00FF00">
-<PRE>; --
+ENDR</pre>
+<p>This will assemble <code>add a,c</code> four times.</p>
+<p>You can also use REPT to generate tables on the fly:</p>
+<pre>; --
 ; -- Generate a 256 byte sine table with values between 0 and 128
 ; --
 ANGLE   SET     0.0
@@ -35,17 +20,13 @@
         REPT    256
         DB      (MUL(64.0,SIN(ANGLE))+64.0)>>16
 ANGLE   SET     ANGLE+256.0
-        ENDR</PRE>
-</FONT></TD>
-</TR>
-</TABLE>
-
-REPT is also very useful in recursive macros and as in macros you can also use the special label operator \@. REPT-blocks can be nested.<BR>
-
-<H3>See also:</H3>
-<UL>
-<LI><A HREF="macro.htm#labelsuffix">\@</A>
-</UL>
-
-<BR><HR>
-<FONT SIZE="-1"><I><P ALIGN=RIGHT>Last updated 21 June 1997 by <A HREF="mailto:[email protected]">Carsten Sorensen</A></P></I></FONT>
+        ENDR</pre>
+<p>REPT is also very useful in recursive macros and as in macros you can also use the special label operator \@. REPT-blocks can be nested.<p>
+<h1>See also:</h1>
+<ul>
+<li><a href="macro.htm#labelsuffix">\@</a>
+</ul>
+<hr>
+<p>Last updated 21 June 1997 by <a href="mailto:[email protected]">Carsten Sorensen</a></p>
+</body>
+</html>
--- a/doc/asm/rs.htm
+++ b/doc/asm/rs.htm
@@ -1,90 +1,76 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<HTML>
-<HEAD>
-	<TITLE>xAsm RSSET, RSRESET, RB, RW</TITLE>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+	<title>xAsm RSSET, RSRESET, RB, RW</title>
         <link rel="stylesheet" type="text/css" href="../style.css">
-</HEAD>
-
-<BODY>
-<I><H2>RSSET<BR>
-RERESET<BR>
-RB<BR>
-RW</H2></I><HR>
-
-<P>The <B>RS</B> group of commands is a handy way of defining structures:<BR>
-<BR>     
-<TABLE BORDER=0 BGCOLOR="Black" CELLPADDING=8 WIDTH="50%">
-<TR>
-	<TD><FONT COLOR="#00FF00">
-<PRE>              RSRESET
+</head>
+<body>
+<h1>RSSET, RERESET, RB, RW</h1>
+<p>The <dfn>RS</dfn> group of commands is a handy way of defining structures:</p>
+<pre>              RSRESET
 str_pStuff    RW   1
 str_tData     RB   256
 str_bCount    RB   1
-str_SIZEOF    RB   0</PRE>          
-</FONT></TD>
-</TR>
-</TABLE>
-<P>The example defines four <A HREF="equ.htm">equated</A> symbols:<BR>
-<BR>
-<TABLE BORDER=1>
-	<CAPTION><I>Defined symbols</I></CAPTION>
-
-<TR>
-	<TD><B><I>Name</I></B></TD>
-	<TD><B><I>Value</I></B></TD>
-</TR>
-<TR>
-	<TD>str_pStuff</TD>
-	<TD>0</TD>
-</TR>
-<TR>
-	<TD>str_tData</TD>
-	<TD>2</TD>
-</TR>
-<TR>
-	<TD>str_bCount</TD>
-	<TD>258</TD>
-</TR>
-<TR>
-	<TD>str_SIZEOF</TD>
-	<TD>259</TD>
-</TR>
-</TABLE>
-<BR>
-There are four commands in the RS group of commands:<BR>
-<BR>     
-<TABLE BORDER=1>
-	<CAPTION><I>RS related commands</I></CAPTION>
-
-<TR>
-	<TD><B><I>Command</I></B></TD>
-	<TD><B><I>Meaning</I></B></TD>
-</TR>
-<TR>
-	<TD>RSRESET</TD>
-	<TD>Resets the <A HREF="presym.htm">_RS</A> counter to zero</TD>
-</TR>
-<TR>
-	<TD>RSSET <I>constexpr</I></TD>
-	<TD>Sets the <A HREF="presym.htm">_RS</A> counter to <I>constexpr</I></TD>
-</TR>
-<TR>
-	<TD>RB <I>constexpr</I></TD>
-	<TD>Sets the preceding symbol to <A HREF="presym.htm">_RS</A> and adds <I>constexpr</I> to _RS</TD>
-</TR>
-<TR>
-	<TD>RW <I>constexpr</I></TD>
-	<TD>Sets the preceding symbol to <A HREF="presym.htm">_RS</A> and adds <I>constexpr*2</I> to _RS</TD>
-</TR>
-</TABLE>
-
-<P>Note that a colon (:) following the symbol-name is not allowed. RS symbols can be exported and imported. They don't change their value during the link process.<BR>
-
-<H3>See also:</H3>
-<UL>
-<LI><A HREF="expr_int.htm">Integer and Boolean expressions</A>
-</UL>
-
-<BR><HR>
-<FONT SIZE="-1"><I><P ALIGN=RIGHT>Last updated 21 June 1997 by <A HREF="mailto:[email protected]">Carsten Sorensen</A></P></I></FONT>
+str_SIZEOF    RB   0</pre>
+<p>The example defines four <a href="equ.htm">equated</a> symbols:</p>
+<table>
+	<caption>Defined symbols</caption>
+<thead>
+<tr>
+	<th scope="col">Name</th>
+	<th scope="col">Value</th>
+</tr>
+</thead>
+<tr>
+	<td>str_pStuff</td>
+	<td>0</td>
+</tr>
+<tr>
+	<td>str_tData</td>
+	<td>2</td>
+</tr>
+<tr>
+	<td>str_bCount</td>
+	<td>258</td>
+</tr>
+<tr>
+	<td>str_SIZEOF</td>
+	<td>259</td>
+</tr>
+</table>
+<p>There are four commands in the RS group of commands:</p>
+<table>
+	<caption>RS related commands</caption>
+<thead>
+<tr>
+	<th scope="col">Command</th>
+	<th scope="col">Meaning</th>
+</tr>
+</thead>
+<tr>
+	<td>RSRESET</td>
+	<td>Resets the <a href="presym.htm">_RS</a> counter to zero</td>
+</tr>
+<tr>
+	<td>RSSET <i>constexpr</i></td>
+	<td>Sets the <a href="presym.htm">_RS</a> counter to <i>constexpr</i></td>
+</tr>
+<tr>
+	<td>RB <i>constexpr</i></td>
+	<td>Sets the preceding symbol to <a href="presym.htm">_RS</a> and adds <i>constexpr</i> to _RS</td>
+</tr>
+<tr>
+	<td>RW <i>constexpr</i></td>
+	<td>Sets the preceding symbol to <a href="presym.htm">_RS</a> and adds <i>constexpr*2</i> to _RS</td>
+</tr>
+</table>
+<p>Note that a colon (:) following the symbol-name is not allowed. RS symbols can be exported and imported. They don't change their value during the link process.</p>
+<h1>See also:</h1>
+<ul>
+<li><a href="expr_int.htm">Integer and Boolean expressions</a>
+</ul>
+<hr>
+<p>Last updated 21 June 1997 by <a href="mailto:[email protected]">Carsten Sorensen</a></p>
+</body>
+</html>
--- a/doc/asm/section.htm
+++ b/doc/asm/section.htm
@@ -1,95 +1,63 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<HTML>
-<HEAD>
-	<TITLE>xAsm SECTION</TITLE>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+	<title>xAsm SECTION</title>
         <link rel="stylesheet" type="text/css" href="../style.css">
-</HEAD>
-
-<BODY>
-<I><H2>SECTION</H2></I>
-<HR>
-
-<P>Before you can start writing code you must define a section. This tells the assembler what kind of data follows and if it is code where to put it.<BR>
-<BR>
-<TABLE BORDER=0 BGCOLOR="Black" CELLPADDING=8 WIDTH="50%">
-<TR>
-	<TD><FONT COLOR="#00FF00">
-<PRE>SECTION   "CoolStuff",CODE</PRE>   
-</FONT></TD>
-</TR>
-</TABLE>
-<P>This switches to the section called <B>"CoolStuff"</B> (or creates it if it doesn't already exits) and it defines
-it as a code section. All sections within a sourcefile must be identified by a <B>unique</B> name.<BR>
-<BR>
-<TABLE BORDER=1>
-	<CAPTION><I>Section types</I></CAPTION>
-
-<TR>
-	<TD><B><I>Name</I></B></TD>
-	<TD><B><I>Function</I></B></TD>
-</TR>
-<TR>
-	<TD>CODE</TD>
-	<TD>A code section. The linker decides where to put this. For the Gameboy it also decides which bank to put it in except #0 (the HOME bank).</TD>
-</TR>
-<TR>
-	<TD>DATA</TD>
-	<TD>Really just a synonym for CODE.</TD>
-</TR>
-<TR>
-	<TD>BSS</TD>
-	<TD>This section is for variables. For the Gameboy it will be placed where the Gameboy RAM is.</TD>
-</TR>
-<TR>
-	<TD>HOME</TD>
-	<TD>Gameboy ONLY: A code section that will be placed in Gameboy bank #0.</TD>
-</TR>
-<TR>
-	<TD>VRAM</TD>
-	<TD>Gameboy ONLY: This section is for allocating VRAM and will be placed where the Gameboy VRAM is.</TD>
-</TR>
-<TR>
-	<TD>HRAM</TD>
-	<TD>Gameboy ONLY: This section is for allocating variables in the high RAM area ($FF80-$FFFE) and will be placed there. Suggested by Jens Ch. Restemeier. NOTE WELL: if you use this method of allocating HRAM the assembler will NOT choose the short addressingmode in the LD instruction because the actual address calculation is done by the linker! If you find this undesirable you can use <A HREF="rs.htm">RSSET/RB/RW</A> instead or use the LDIO mnemonic. The address calculation is then done by the assembler.</TD>
-</TR>
-</TABLE>     
-<P>Due to quite a lot of emails requesting an ORG directive you can now add an address to the sectiontype for the Gameboy:<BR>
-<BR>
-<TABLE BORDER=0 BGCOLOR="Black" CELLPADDING=8 WIDTH="50%">
-<TR>
-	<TD><FONT COLOR="#00FF00">
-<PRE>SECTION   "CoolStuff",HOME[$1234]</PRE>   
-</FONT></TD>
-</TR>
-</TABLE>
-<P>This will force the section to address $1234. This also works with the other sectiontypes. For CODE/DATA sections the linker  will then place the section in any bank at the address you specify. If you also want to specify the bank you can do:<BR>
-<BR>
-<TABLE BORDER=0 BGCOLOR="Black" CELLPADDING=8 WIDTH="50%">
-<TR>
-	<TD><FONT COLOR="#00FF00">
-<PRE>SECTION   "CoolStuff",DATA[$4567],BANK[3]</PRE>   
-</FONT></TD>
-</TR>
-</TABLE>
-<P>And if you only want to force the section into a certain bank, and not it's position within the bank, that's also possible:<BR>
-<BR>
-<TABLE BORDER=0 BGCOLOR="Black" CELLPADDING=8 WIDTH="50%">
-<TR>
-	<TD><FONT COLOR="#00FF00">
-<PRE>SECTION   "CoolStuff",CODE,BANK[7]</PRE>   
-</FONT></TD>
-</TR>
-</TABLE>
-<P><B>HINT:</B> If you think this is a lot of typing for doing a simple ORG type thing you can quite easily write an intelligent macro (called ORG for example) that uses <A HREF="expr_str.htm">\@</A> for the sectionname and determines correct sectiontype etc as arguments for SECTION<BR>
-
-<H3>See also:</H3>
-<UL>
-<LI><A HREF="../link.htm">xLink</A> documentation
-<LI><A HREF="expr_int.htm">Integer and Boolean expressions</A>
-<LI><A HREF="expr_str.htm">String expressions, functions and formatting</A>
-<LI><A HREF="pops.htm">POPS and PUSHS:</A> The section stack.
-</UL>
-
-<BR><HR>
-<FONT SIZE="-1"><I><P ALIGN=RIGHT>Last updated �18 July 1997 by <A HREF="mailto:[email protected]">Carsten Sorensen</A></P></I></FONT>
+</head>
+<body>
+<h1>SECTION</h1>
+<p>Before you can start writing code you must define a section. This tells the assembler what kind of data follows and if it is code where to put it.</p>
+<pre>SECTION   "CoolStuff",CODE</pre>
+<p>This switches to the section called <b>"CoolStuff"</b> (or creates it if it doesn't already exits) and it defines it as a code section. All sections within a sourcefile must be identified by a <em>unique</em> name.</p>
+<table>
+	<caption>Section types</caption>
+<thead>
+<tr>
+	<th scope="col">Name</th>
+	<th scope="col">Function</th>
+</tr>
+</thead>
+<tr>
+	<td>CODE</td>
+	<td>A code section. The linker decides where to put this. For the Gameboy it also decides which bank to put it in except #0 (the HOME bank).</td>
+</tr>
+<tr>
+	<td>DATA</td>
+	<td>Really just a synonym for CODE.</td>
+</tr>
+<tr>
+	<td>BSS</td>
+	<td>This section is for variables. For the Gameboy it will be placed where the Gameboy RAM is.</td>
+</tr>
+<tr>
+	<td>HOME</td>
+	<td>Gameboy ONLY: A code section that will be placed in Gameboy bank #0.</td>
+</tr>
+<tr>
+	<td>VRAM</td>
+	<td>Gameboy ONLY: This section is for allocating VRAM and will be placed where the Gameboy VRAM is.</td>
+</tr>
+<tr>
+	<td>HRAM</td>
+	<td>Gameboy ONLY: This section is for allocating variables in the high RAM area ($FF80-$FFFE) and will be placed there. Suggested by Jens Ch. Restemeier. NOTE WELL: if you use this method of allocating HRAM the assembler will NOT choose the short addressingmode in the LD instruction because the actual address calculation is done by the linker! If you find this undesirable you can use <a href="rs.htm">RSSET/RB/RW</a> instead or use the LDIO mnemonic. The address calculation is then done by the assembler.</td>
+</tr>
+</table>
+<p>Due to quite a lot of emails requesting an ORG directive you can now add an address to the sectiontype for the Gameboy:</p>
+<pre>SECTION   "CoolStuff",HOME[$1234]</pre>
+<p>This will force the section to address $1234. This also works with the other sectiontypes. For CODE/DATA sections the linker  will then place the section in any bank at the address you specify. If you also want to specify the bank you can do:</p>
+<pre>SECTION   "CoolStuff",DATA[$4567],BANK[3]</pre>
+<p>And if you only want to force the section into a certain bank, and not it's position within the bank, that's also possible:</p>
+<pre>SECTION   "CoolStuff",CODE,BANK[7]</pre>
+<p><strong>HINT:</strong> If you think this is a lot of typing for doing a simple ORG type thing you can quite easily write an intelligent macro (called ORG for example) that uses <a href="expr_str.htm">\@</a> for the sectionname and determines correct sectiontype etc as arguments for SECTION</p>
+<h1>See also:</h1>
+<ul>
+<li><a href="../link.htm">xLink</a> documentation
+<li><a href="expr_int.htm">Integer and Boolean expressions</a>
+<li><a href="expr_str.htm">String expressions, functions and formatting</a>
+<li><a href="pops.htm">POPS and PUSHS:</a> The section stack.
+</ul>
+<hr>
+<p>Last updated �18 July 1997 by <a href="mailto:[email protected]">Carsten Sorensen</a></p>
+</body>
+</html>
--- a/doc/asm/set.htm
+++ b/doc/asm/set.htm
@@ -1,31 +1,22 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<HTML>
-<HEAD>
-	<TITLE>xAsm SET</TITLE>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+	<title>xAsm SET</title>
         <link rel="stylesheet" type="text/css" href="../style.css">
-</HEAD>
-
-<BODY>
-<I><H2>SET</H2></I><HR>
-
-<P>SETs are like <A HREF="equ.htm">EQUates</A> also constant symbols in the sense that their values are defined during the assembly process. These symbols are normally used in macros.<BR>
-<BR>
-<TABLE BORDER=0 BGCOLOR="Black" CELLPADDING=8 WIDTH="50%">
-<TR>
-	<TD><FONT COLOR="#00FF00">
-<PRE>KINKYCOUNT     SET  2
-KINKYCOUNT     SET  DONUT_ISGOOD+KINKYCOUNT</PRE>          
-</FONT></TD>
-</TR>
-</TABLE>
-<P>Note that a colon (:) following the label-name is not allowed. SETs can be exported and imported but the result is undefined and might change in a later release. Alternatively you can use = as a synonym for SET.<BR>
-
-<H3>See also:</H3>
-<UL>
-<LI><A HREF="expr_int.htm">Integer and Boolean expressions</A>
-</UL>
-
-<BR><HR>
-<FONT SIZE="-1"><I><P ALIGN=RIGHT>Last updated 21 June 1997 by <A HREF="mailto:[email protected]">Carsten Sorensen</A></P></I></FONT>
+</head>
+<body>
+<h1>SET</h1>
+<p>SETs are like <a href="equ.htm">EQUates</a> also constant symbols in the sense that their values are defined during the assembly process. These symbols are normally used in macros.</p>
+<pre>KINKYCOUNT     SET  2
+KINKYCOUNT     SET  DONUT_ISGOOD+KINKYCOUNT</pre>
+<p>Note that a colon (:) following the label-name is not allowed. SETs can be exported and imported but the result is undefined and might change in a later release. Alternatively you can use = as a synonym for SET.</p>
+<h1>See also:</h1>
+<ul>
+<li><a href="expr_int.htm">Integer and Boolean expressions</a>
+</ul>
+<hr>
+<p>Last updated 21 June 1997 by <a href="mailto:[email protected]">Carsten Sorensen</a></p>
+</body>
+</html>
 
--- a/doc/asm/shift.htm
+++ b/doc/asm/shift.htm
@@ -1,21 +1,19 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<HTML>
-<HEAD>
-	<TITLE>xAsm SHIFT</TITLE>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+	<title>xAsm SHIFT</title>
         <link rel="stylesheet" type="text/css" href="../style.css">
-</HEAD>
-
-<BODY>
-<I><H2>SHIFT</H2></I><HR>
-
-<P><B>SHIFT</B> is a special command only available in <A HREF="macro.htm">macros</A>. Very useful in <A HREF="rept.htm">REPT-blocks</A>. It will "shift" the arguments by one "to the left". <B>\1</B> will get <B>\2</B>'s value, <B>\2</B> will get <B>\3</B>'s value and so forth.<BR>
-
-<H3>See also:</H3>
-<UL>
-<LI><A HREF="macro.htm">Macros</A>
-<LI><A HREF="rept.htm">Automatically repeating blocks of code</A>
-</UL>
-
-<BR><HR>
-<FONT SIZE="-1"><I><P ALIGN=RIGHT>Last updated 21 June 1997 by <A HREF="mailto:[email protected]">Carsten Sorensen</A></P></I></FONT>
+</head>
+<body>
+<h1>SHIFT</h1>
+<p><dfn>SHIFT</dfn> is a special command only available in <a href="macro.htm">macros</a>. Very useful in <a href="rept.htm">REPT-blocks</a>. It will "shift" the arguments by one "to the left". <b>\1</b> will get <b>\2</b>'s value, <b>\2</b> will get <b>\3</b>'s value and so forth.</p>
+<h1>See also:</h1>
+<ul>
+<li><a href="macro.htm">Macros</a>
+<li><a href="rept.htm">Automatically repeating blocks of code</a>
+</ul>
+<hr>
+<p>Last updated 21 June 1997 by <a href="mailto:[email protected]">Carsten Sorensen</a></p>
+</body>
+</html>
--- a/doc/asm/symbols.htm
+++ b/doc/asm/symbols.htm
@@ -1,33 +1,31 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<HTML>
-<HEAD>
-	<TITLE>xAsm Symbols</TITLE>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+	<title>xAsm Symbols</title>
         <link rel="stylesheet" type="text/css" href="../style.css">
-</HEAD>
+</head>
+<body>
+<h1>xAsm Symbols</h1>
+<p>xAsm supports several types of symbols:</p>
+<ul>
+<li><a href="labels.htm">Label</a>. Used to assign a memory location with a name
+<li><a href="equ.htm">EQUate</a>. Give a constant a name.
+<li><a href="set.htm">SET</a>. Same as EQUate but with a subtle difference. You can change the value of a SET during assembling.
+<li><a href="rs.htm">Structures (the RS group)</a>. Define a structure easily.
+<li><a href="equs.htm">String equate (EQUS)</a>. Give an often used string a name. Can also be used as a mini-macro. Much like #define in C.
+<li><a href="macro.htm">MACROs</a>. A block of code or pseudo instructions that you invoke like any other mnemonic. You can give them arguments too! Life is good.
+</ul>
 
-<BODY>
-<I><H2>xAsm Symbols</H2></I><HR>
+<p><strong>A symbol cannot have the same name as a reserved keyword.</strong></p>
 
-xAsm supports several types of symbols:<BR>
-<BR>
-<UL>
-<LI><A HREF="labels.htm">Label</A>. Used to assign a memory location with a name
-<LI><A HREF="equ.htm">EQUate</A>. Give a constant a name.
-<LI><A HREF="set.htm">SET</A>. Same as EQUate but with a subtle difference. You can change the value of a SET during assembling.
-<LI><A HREF="rs.htm">Structures (the RS group)</A>. Define a structure easily.
-<LI><A HREF="equs.htm">String equate (EQUS)</A>. Give an often used string a name. Can also be used as a mini-macro. Much like #define in C.
-<LI><A HREF="macro.htm">MACROs</A>. A block of code or pseudo instructions that you invoke like any other mnemonic. You can give them arguments too! Life is good.
-</UL>
-
-<B>A symbol cannot have the same name as a reserved keyword.</B>
-
-<H3>See also:</H3>
-<UL>
-<LI><A HREF="presym.htm">Predeclared symbols</A>
-<LI><A HREF="export.htm">Importing and exporting symbols</A>
-<LI><A HREF="purge.htm">Purging symbols</A>
-</UL>
-
-<BR><HR>
-<FONT SIZE="-1"><I><P ALIGN=RIGHT>Last updated 02 July 1997 by <A HREF="mailto:[email protected]">Carsten Sorensen</A></P></I></FONT>
+<h1>See also:</h1>
+<ul>
+<li><a href="presym.htm">Predeclared symbols</a>
+<li><a href="export.htm">Importing and exporting symbols</a>
+<li><a href="purge.htm">Purging symbols</a>
+</ul>
+<hr>
+<p>Last updated 02 July 1997 by <a href="mailto:[email protected]">Carsten Sorensen</a></p>
+</body>
+</html>
--- a/doc/asm/syntax.htm
+++ b/doc/asm/syntax.htm
@@ -1,47 +1,23 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<HTML>
-<HEAD>
-	<TITLE>xAsm Syntax</TITLE>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+	<title>xAsm Syntax</title>
         <link rel="stylesheet" type="text/css" href="../style.css">
-</HEAD>
+</head>
 
-<BODY>
-<I><H2>xAsm Syntax</H2></I><HR>
-
-The syntax line-based, just as in any other assembler. Meaning that you do one instruction or pseudo-op per line:<BR>
-<BR>
-<TABLE BORDER=0 BGCOLOR="Black" CELLPADDING=8 WIDTH="50%">
-<TR>
-	<TD><FONT COLOR="#00FF00">
-<PRE>[label] [instruction] [;comment]</PRE>
-</FONT></TD>
-</TR>
-</TABLE>
-<BR>
-Example:<BR>
-<BR>   
-<TABLE BORDER=0 BGCOLOR="Black" CELLPADDING=8 WIDTH="50%">
-<TR>
-	<TD><FONT COLOR="#00FF00">
-<PRE>John:          ld   a,87 ;Weee</PRE>
-</FONT></TD>
-</TR>
-</TABLE>
-<P>A comment can also be an asterisk (*) followed by the comment if the asterisk is the first character on the line:
-<BR>
-<BR>   
-<TABLE BORDER=0 BGCOLOR="Black" CELLPADDING=8 WIDTH="50%">
-<TR>
-	<TD><FONT COLOR="#00FF00">
-<PRE>********************************
+<body>
+<h1>xAsm Syntax</h1>
+<p>The syntax line‐based, just as in any other assembler. Meaning that you do one instruction or pseudo‐op per line:</p>
+<pre>[label] [instruction] [;comment]</pre>
+<p>Example:</p>
+<pre>John:          ld   a,87 ;Weee</pre>
+<p>A comment can also be an asterisk (*) followed by the comment if the asterisk is the first character on the line:</p>
+<pre>********************************
 * These are full line comments *
-********************************</PRE>
-</FONT></TD>
-</TR>
-</TABLE>
-      
-<P>All pseudo-ops, mnemonics and registers (reserved keywords) are <I>case-insensitive</I> and all labels are <I>case-sensitive</I>.<BR>
-
-<BR><HR>
-<FONT SIZE="-1"><I><P ALIGN=RIGHT>Last updated 21 June 1997 by <A HREF="mailto:[email protected]">Carsten Sorensen</A></P></I></FONT>
+********************************</pre>
+<p>All pseudo‐ops, mnemonics and registers (reserved keywords) are <em>case‐insensitive</em> and all labels are <em>case‐sensitive</em>.</p>
+<hr>
+<p>Last updated 21 June 1997 by <a href="mailto:[email protected]">Carsten Sorensen</a></p>
+</body>
+</html>
--- a/doc/asm/trg_gb.htm
+++ b/doc/asm/trg_gb.htm
@@ -1,102 +1,102 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<HTML>
-<HEAD>
-	<TITLE>xAsm Gameboy</TITLE>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+	<title>xAsm Gameboy</title>
         <link rel="stylesheet" type="text/css" href="../style.css">
-</HEAD>
-
-<BODY>
-<I><H2>Gameboy
-</H2></I>
-<HR>
-
-<P>The full GB-Z80 instruction-set is implemented with a few modifications to the original Zilog syntax. This is due
-to a Bison problem but in my opinion the syntax is better than the original one.<BR>   
-<H4><BR>
-Instructions</H4>
-<PRE>    ADC
-    ADD
-    AND
-    BIT
-    CALL
-    CCF
-    CP
-    CPL
-    DAA
-    DEC
-    DI
-    EI
-    EX
-    HALT
-    INC
-    JP
-    JR
-    LD
-    LDD
-    LDI
-    LDH/LDIO    (see note below)
-    NOP
-    OR
-    POP
-    PUSH
-    RES
-    RET
-    RETI
-    RL
-    RLA
-    RLC
-    RLCA
-    RR
-    RRA
-    RRC
-    RRCA
-    RST
-    SBC
-    SCF
-    SET
-    SLA
-    SRA
-    SRL
-    STOP
-    SUB
-    SWAP
-    XOR</PRE>   
-<P>Note that you can use both
-<PRE>    OR   A,B
-    OR   B</PRE>   
-<H4><BR>Addressingmodes</H4>
-<P>Indirect addressing has been changed to [ ] instead  of ( ):<BR>
-<PRE>    A
-    B
-    C
-    D
-    E
-    H
-    L
-    AF
-    BC
-    DE
-    HL
-    SP
-    [BC]
-    [DE]
-    [HL]
-    [HL-]/[HLI]
-    [HL+]/[HLD]
-    [SP]
-    n8       (8 bit expression)
-    n16      (16 bit expression)
-    n3       (3 bit CONSTANT expression)
-    [n16]/[$FF00+n8]
-    [$FF00+C]/[C]</PRE>          
-<P>The  assembler will intelligently decide between  <B>[n16]</B> and  <B>[$FF00+n8]</B> in the LD instruction.  Note however  that  if  you  use  any <A HREF="symbols.htm">constant symbols</A> in the expression they had better  be defined before the instruction or your symbol-table may become mangled. Also worth noting is that it will only ever select the short $FF00 mode when you use constant symbols. NOT if you use symbols defined in a <A HREF="section.htm">HRAM section</A>. As this defies the whole point of implementing the HRAM sectiontype I've added the LDIO mnemonic. It works like the LD instruction but it will ALWAYS generate the $FF00+ form and it will also automatically logically AND the expression with $FF if it is relocatable. Which is what you want. Trust me ;)<BR>
-<BR>
-<H4>Conditioncodes</H4>
-<PRE>    C
-    NC
-    Z
-    NZ</PRE>
-
-<BR><HR>
-<FONT SIZE="-1"><I><P ALIGN=RIGHT>Last updated 20 July 1997 by <A HREF="mailto:[email protected]">Carsten Sorensen</A></P></I></FONT>
+</head>
+<body>
+<h1>Gameboy</h1>
+<p>The full GB-Z80 instruction-set is implemented with a few modifications to the original Zilog syntax. This is due to a Bison problem but in my opinion the syntax is better than the original one.</p>
+<h2>Instructions</h2>
+<ul>
+    <li>ADC
+    <li>ADD
+    <li>AND
+    <li>BIT
+    <li>CALL
+    <li>CCF
+    <li>CP
+    <li>CPL
+    <li>DAA
+    <li>DEC
+    <li>DI
+    <li>EI
+    <li>EX
+    <li>HALT
+    <li>INC
+    <li>JP
+    <li>JR
+    <li>LD
+    <li>LDD
+    <li>LDI
+    <li>LDH/LDIO    (see note below)
+    <li>NOP
+    <li>OR
+    <li>POP
+    <li>PUSH
+    <li>RES
+    <li>RET
+    <li>RETI
+    <li>RL
+    <li>RLA
+    <li>RLC
+    <li>RLCA
+    <li>RR
+    <li>RRA
+    <li>RRC
+    <li>RRCA
+    <li>RST
+    <li>SBC
+    <li>SCF
+    <li>SET
+    <li>SLA
+    <li>SRA
+    <li>SRL
+    <li>STOP
+    <li>SUB
+    <li>SWAP
+    <li>XOR
+</ul>
+<p>Note that you can use both
+<pre>    OR   A,B
+    OR   B</pre>
+<h2>Addressingmodes</h2>
+<p>Indirect addressing has been changed to [ ] instead  of ( ):</p>
+<ul>
+   <li> A
+   <li> B
+   <li> C
+   <li> D
+   <li> E
+   <li> H
+   <li> L
+   <li> AF
+   <li> BC
+   <li> DE
+   <li> HL
+   <li> SP
+   <li> [BC]
+   <li> [DE]
+   <li> [HL]
+   <li> [HL-]/[HLI]
+   <li> [HL+]/[HLD]
+   <li> [SP]
+   <li> n8       (8 bit expression)
+   <li> n16      (16 bit expression)
+   <li> n3       (3 bit CONSTANT expression)
+   <li> [n16]/[$FF00+n8]
+   <li> [$FF00+C]/[C]
+</ul>
+<p>The  assembler will intelligently decide between  <b>[n16]</b> and  <b>[$FF00+n8]</b> in the LD instruction.  Note however  that  if  you  use  any <a href="symbols.htm">constant symbols</a> in the expression they had better  be defined before the instruction or your symbol-table may become mangled. Also worth noting is that it will only ever select the short $FF00 mode when you use constant symbols. NOT if you use symbols defined in a <a href="section.htm">HRAM section</a>. As this defies the whole point of implementing the HRAM sectiontype I've added the LDIO mnemonic. It works like the LD instruction but it will ALWAYS generate the $FF00+ form and it will also automatically logically AND the expression with $FF if it is relocatable. Which is what you want. Trust me ;)</p>
+<h2>Conditioncodes</h2>
+<ul>
+<li>    C
+<li>    NC
+<li>    Z
+<li>    NZ
+</ul>
+<hr>
+<p>Last updated 20 July 1997 by <a href="mailto:[email protected]">Carsten Sorensen</a></p>
+</body>
+</html>
--- a/doc/asm/usage.htm
+++ b/doc/asm/usage.htm
@@ -1,38 +1,30 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<HTML>
-<HEAD>
-	<TITLE>xAsm Usage</TITLE>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+	<title>xAsm Usage</title>
         <link rel="stylesheet" type="text/css" href="../style.css">
-</HEAD>
-
-<BODY>
-<I><H2>xAsm Usage</H2></I><HR>
-
-<TABLE BORDER=0 BGCOLOR="Black" CELLPADDING=8 WIDTH="50%">
-<TR>
-	<TD><FONT COLOR="#00FF00">
-<PRE>C:\>xAsm [options] asmfile</PRE>
-</FONT></TD>
-</TR>
-</TABLE>
-Options are preceded by a dash (-) and go as follows:<BR>
-<BR>
-<PRE>    o<B>objectfile</B> : Write an <A HREF="../rgb0.htm">object-file</A> for <A HREF="../link.htm">xLink</A>
-    i<B>path</B>       : Add an extra include-path
+</head>
+<body>
+<h1>xAsm Usage</h1>
+<pre>C:\>xAsm [options] asmfile</pre>
+<p>Options are preceded by a hyphen (-) and go as follows:</p>
+<pre>    o<b>objectfile</b> : Write an <a href="../rgb0.htm">object-file</a> for <a href="../link.htm">xLink</a>
+    i<b>path</b>       : Add an extra include-path
     h           : Short help text
-    e<B>(l|b)</B>      : Change endianness (CAUTION!)
-    g<B>ASCI</B>       : Change the four characters used for Gameboy graphics
-                  constants (default is <B>0123</B>)
-    b<B>AS</B>         : Change the two characters used for binary constants
-                  (default is <B>01</B>)
-    z<B>HX</B>         : Set the byte value (hex format) used for uninitialised data (default is ? for random)
-</PRE>
+    e<b>(l|b)</b>      : Change endianness (CAUTION!)
+    g<b>ASCI</b>       : Change the four characters used for Gameboy graphics
+                  constants (default is <b>0123</b>)
+    b<b>AS</b>         : Change the two characters used for binary constants
+                  (default is <b>01</b>)
+    z<b>HX</b>         : Set the byte value (hex format) used for uninitialised data (default is ? for random)
+</pre>
 
-<H3>See also:</H3>
-<UL>
-<LI><A HREF="opt.htm">Changing options while assembling</A>
-</UL>
-
-<BR><HR>
-<FONT SIZE="-1"><I><P ALIGN=RIGHT>Last updated 08 October 1997 by <A HREF="mailto:[email protected]">Carsten Sorensen</A></P></I></FONT>
+<h1>See also:</h1>
+<ul>
+<li><a href="opt.htm">Changing options while assembling</a>
+</ul>
+<hr>
+<p>Last updated 08 October 1997 by <a href="mailto:[email protected]">Carsten Sorensen</a></p>
+</body>
+</html>