mirror of
https://github.com/fadden/6502bench.git
synced 2024-09-06 17:54:25 +00:00
Add more bugs & quirks
This commit is contained in:
parent
e995747cb0
commit
3cb1596d90
@ -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>PC relative branches don't wrap around at bank boundaries.</li>
|
||||||
<li>BRK <arg> is assembled to opcode $05 rather than $00.</li>
|
<li>BRK <arg> is assembled to opcode $05 rather than $00.</li>
|
||||||
<li>WDM is not supported.</li>
|
<li>WDM is not supported.</li>
|
||||||
|
<li>Source file names must not have spaces in them on Windows.</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<p>Quirks:</p>
|
<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>
|
SourceGen currently generates require parenthesis.)</li>
|
||||||
<li>Undocumented opcodes: SBX ($cb) uses the mnemonic AXS. All other
|
<li>Undocumented opcodes: SBX ($cb) uses the mnemonic AXS. All other
|
||||||
opcodes match up with the "unintended opcodes" document.</li>
|
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>
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
@ -190,6 +196,8 @@ code, but also needs to know how to handle the corner cases.</p>
|
|||||||
<ul>
|
<ul>
|
||||||
<li>PC relative branches don't wrap around at bank boundaries.</li>
|
<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>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>
|
</ul>
|
||||||
|
|
||||||
<p>Quirks:</p>
|
<p>Quirks:</p>
|
||||||
|
@ -39,8 +39,10 @@ is set to 65816.</p>
|
|||||||
|
|
||||||
<h2><a name="label">Edit Label</a></h2>
|
<h2><a name="label">Edit Label</a></h2>
|
||||||
<p>Sets or clears a label at the selected offset. The label must have
|
<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
|
the
|
||||||
you edit an auto-generated label you will be required to change the name.</p>
|
<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.
|
<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
|
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
|
convenient form, such as a local loop identifier. Global labels are
|
||||||
|
@ -378,6 +378,11 @@ with most assemblers:</p>
|
|||||||
</ul>
|
</ul>
|
||||||
<p>Label comparisons are case-sensitive, as is customary for programming
|
<p>Label comparisons are case-sensitive, as is customary for programming
|
||||||
languages.</p>
|
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
|
<p><b>Platform symbols</b> are defined in platform symbol files. These
|
||||||
are named with a ".sym65" extension, and have a fairly straightforward
|
are named with a ".sym65" extension, and have a fairly straightforward
|
||||||
|
Loading…
Reference in New Issue
Block a user