1
0
mirror of https://github.com/fadden/6502bench.git synced 2024-07-30 15:29:01 +00:00

Add more bugs & quirks

This commit is contained in:
Andy McFadden 2018-10-30 15:42:13 -07:00
parent e995747cb0
commit 3cb1596d90
3 changed files with 17 additions and 2 deletions

View File

@ -166,6 +166,7 @@ code, but also needs to know how to handle the corner cases.</p>
<li>PC relative branches don't wrap around at bank boundaries.</li>
<li>BRK &lt;arg&gt; is assembled to opcode $05 rather than $00.</li>
<li>WDM is not supported.</li>
<li>Source file names must not have spaces in them on Windows.</li>
</ul>
<p>Quirks:</p>
@ -179,6 +180,11 @@ code, but also needs to know how to handle the corner cases.</p>
SourceGen currently generates require parenthesis.)</li>
<li>Undocumented opcodes: SBX ($cb) uses the mnemonic AXS. All other
opcodes match up with the "unintended opcodes" document.</li>
<li>ca65 is implemented as a single-pass assembler, so label widths
can't always be known in time. For example, if you .ORG $0000 after
the point where the labels are used, the assembler will already have
generated them as absolute values. Width disambiguation must be applied
to instructions that aren't ambiguous to multi-pass assemblers.</li>
</ul>
@ -190,6 +196,8 @@ code, but also needs to know how to handle the corner cases.</p>
<ul>
<li>PC relative branches don't wrap around at bank boundaries.</li>
<li>For some failures, an exit code of zero is returned.</li>
<li>Some indexed store instructions cause errors if the label isn't
unambiguously DP (e.g. `STX $00,X` vs. `STX $0000,X`).</li>
</ul>
<p>Quirks:</p>

View File

@ -39,8 +39,10 @@ is set to 65816.</p>
<h2><a name="label">Edit Label</a></h2>
<p>Sets or clears a label at the selected offset. The label must have
the proper form, and not have the same name as another symbol. If
you edit an auto-generated label you will be required to change the name.</p>
the
<a href="intro.html#about-symbols">proper form</a>, and not have the same
name as another symbol. If you edit an auto-generated label you will
be required to change the name.</p>
<p>The label may be marked as local, global, or global and exported.
Local labels may be modified by the assembly code generator to have a more
convenient form, such as a local loop identifier. Global labels are

View File

@ -378,6 +378,11 @@ with most assemblers:</p>
</ul>
<p>Label comparisons are case-sensitive, as is customary for programming
languages.</p>
<p>Some assemblers restrict the set of valid labels further. For example,
64tass uses a leading underscore to indicate a local label, and reserves
a double leading underscore (e.g. <code>__label</code>) for its own
purposes. In such cases, the label will be modified to comply with the
target assembler syntax.</p>
<p><b>Platform symbols</b> are defined in platform symbol files. These
are named with a ".sym65" extension, and have a fairly straightforward