diff options
-rw-r--r-- | doc/README | 2 | ||||
-rw-r--r-- | doc/casm.html | 151 |
2 files changed, 151 insertions, 2 deletions
@@ -1,7 +1,7 @@ casm - A portable cross assembler ================================= - Copyright 2003-2015 Ian Cowburn + Copyright 2003-2015 Ian Cowburn This program is free software: you can redistribute it and/or modify diff --git a/doc/casm.html b/doc/casm.html index f7f05c2..469456a 100644 --- a/doc/casm.html +++ b/doc/casm.html @@ -154,6 +154,9 @@ http://www.gnu.org/licenses/gpl-3.0.html)</a></p> <p> <a href="#gbcpu">Gameboy Z80</a> - The Gameboy Z80 derivative processor. </p> +<p> +<a href="#65c816">65c816</a> - 65c816 processor support, as used in the SNES. +</p> <h1 id="casm">CASM</h1> @@ -295,7 +298,7 @@ Sets the program counter (PC) to <i>value</i>. The PC defaults to zero on initialisation. If the optional second argument is passed the current memory bank in use is set to <i>bank</i>. Note that it also possible to set the bank by passing a 24-bit address. This was added for convenience when using the -65c618 processor. +65c816 processor. </td></tr> <tr><td class="cmd"> @@ -1240,6 +1243,15 @@ down to a single blank line in the listing. <h1 id="z80">Z80 CPU</h1> +<h2>Using the Z80</h2> + +The Z80 processor can be selected by passing <b>z80</b> to the processor +directive, i.e. + +<pre class="codeblock"> + processor z80 +</pre> + <h2>Opcodes</h2> <p> @@ -1341,6 +1353,15 @@ The Z80 assembler has no options. <h1 id="6502">6502 CPU</h1> +<h2>Using the 6502</h2> + +The 6502 processor can be selected by passing <b>6502</b> to the processor +directive, i.e. + +<pre class="codeblock"> + processor 6502 +</pre> + <h2>Opcodes</h2> The 6502 assembler uses the standard Motorola opcodes. @@ -1410,6 +1431,15 @@ e.g. <h1 id="gbcpu">Gameboy Z80 derivative CPU</h1> +<h2>Using the Gameboy Z80 derivative</h2> + +The Gameboy Z80 derivative processor can be selected by passing <b>gameboy</b> +to the processor directive, i.e. + +<pre class="codeblock"> + processor gameboy +</pre> + <h2>Opcodes</h2> <p> @@ -1517,6 +1547,125 @@ it is used as an address: The Gameboy CPU assembler has no options. + +<h1 id="65c816">65c816 CPU</h1> + +<h2>Using the 65c816 processor</h2> + +The 65c816 processor can be selected by passing <b>65c816</b> +to the processor directive, i.e. + +<pre class="codeblock"> + processor 65c816 +</pre> + +<h2>Opcodes</h2> + +The 65c816 assembler uses the standard opcodes. As an addition some implicit +opcodes are generally followed by a byte that can be used, e.g. in the case +of a BRK interrupt. In these cases the following byte is automatically set to +zero unless a argument is supplied (in any addressing mode) and this is written +out as the following byte. e.g. + +<pre class="codeblock"> + processor 65c618 + + brk ; Produces the bytes 0x00 0x00 + brk $ff ; Produces the bytes 0x00 0xff + + wdm ; Produces the bytes 0x42 0x00 + wdm $80 ; Produces the bytes 0x42 0x80 +</pre> + + +<h2>Additional Directives</h2> + +The 65c618 assembler has some addition directives. As with the built-in +directives, these can be preceded by an optional period (.) character. + +<table> + +<thead><tr><td class="head">Directive</td> +<td class="head">Description</td></tr></thead> +<tr> + +<td class="cmd"> +m8 +</td> + +<td class="def"> +Sets the assembler to produce 8-bit immediate values for the Accumulator in the +appropriate instructions. +</td></tr> + +<td class="cmd"> +m16 +</td> + +<td class="def"> +Sets the assembler to produce 16-bit immediate values for the Accumulator in the +appropriate instructions. +</td></tr> + +<td class="cmd"> +x8 +</td> + +<td class="def"> +Sets the assembler to produce 8-bit immediate values for the index registers X +and Y in the appropriate instructions. +</td></tr> + +<td class="cmd"> +x16 +</td> + +<td class="def"> +Sets the assembler to produce 16-bit immediate values for the index registers X +and Y in the appropriate instructions. +</td></tr> + +<tr><td class="cmd"> +mx <i>accumulator-size</i>, <i>index-size</i> +</td> + +<td class="def"> +Sets the Accumulator and index register sizes for immediate values to either +8 or 16 bits. +</td></tr> + +</table> + +<h2>Options</h2> + +The 65c618 assembler has the following options. + +<table> + +<thead><tr><td class="head">65c618 Option</td> +<td class="head">Description</td></tr></thead> + +<tr><td class="cmd"> +option a16, <on|off> +</td> +<td class="def"> +Switches on or off the generation of 16-bit absolute values for the Accumulator. +Note that this can also be done using the directives described in the previous +section. +</td></tr> + +<tr><td class="cmd"> +option i16, <on|off> +</td> +<td class="def"> +Switches on or off the generation of 16-bit absolute values for the index +registers X and Y. +Note that this can also be done using the directives described in the previous +section. +</td></tr> + +</table> + <!-- vim: ai sw=4 ts=8 expandtab spell --> </body> |