mirror of
https://github.com/fadden/6502bench.git
synced 2024-11-29 10:50:28 +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>BRK <arg> 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>
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user