mirror of
https://github.com/fadden/6502bench.git
synced 2025-02-07 14:31:00 +00:00
Minor documentation update
This commit is contained in:
parent
bdad8501f0
commit
55359d423a
@ -92,11 +92,11 @@ specific system.</p>
|
|||||||
<p>The tutorial is divided into four broad sections:</p>
|
<p>The tutorial is divided into four broad sections:</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="about-disasm.html">About Disassembly</a>: start here if you're
|
<li><a href="about-disasm.html">About Disassembly</a>: start here if you're
|
||||||
unclear how "disassembling" works. Or is.</li>
|
unclear how "disassembling" works. Or what it is.</li>
|
||||||
<li><a href="using-sourcegen.html">Using SourceGen</a>: start here if you're
|
<li><a href="using-sourcegen.html">Using SourceGen</a>: start here if you're
|
||||||
familiar with disassembly. This shows how to create a project, move around in
|
familiar with disassembly. This shows how to create a project, move around in
|
||||||
the file, make edits, and generate assembly source.</li>
|
the file, make edits, and generate assembly source.</li>
|
||||||
<li><a href="deeper-subjects.html">Deeper Subjects</a>: some less-common
|
<li><a href="digging-deeper.html">Digging Deeper</a>: some less-common
|
||||||
situations you may run into are discussed, along with some advanced features.</li>
|
situations you may run into are discussed, along with some advanced features.</li>
|
||||||
<li><a href="advanced-topics.html">Advanced Topics</a>: a quick look at
|
<li><a href="advanced-topics.html">Advanced Topics</a>: a quick look at
|
||||||
some optional but very handy features.</li>
|
some optional but very handy features.</li>
|
||||||
|
@ -94,21 +94,26 @@ suggestions to help you on your way.</p>
|
|||||||
conventions, like whether to use MixedCase or underscore_separated
|
conventions, like whether to use MixedCase or underscore_separated
|
||||||
or SCREAMING_CAPS for labels.</li>
|
or SCREAMING_CAPS for labels.</li>
|
||||||
<li>Use the program thoroughly. Understand all of what it does.</li>
|
<li>Use the program thoroughly. Understand all of what it does.</li>
|
||||||
<li>Begin each project by separating code from data. Identify external
|
<li>Remember that SourceGen works by tracing through code from marked
|
||||||
|
start points, rather than treating everything as code and requiring you
|
||||||
|
to mark all the data items.
|
||||||
|
Begin each project by finding the code. Identify external
|
||||||
entry points, format tables of addresses, and find JSRs that are
|
entry points, format tables of addresses, and find JSRs that are
|
||||||
followed by inline data. Write an extension script to handle the
|
followed by inline data. Use an extension script to handle the
|
||||||
inlines so you won't keep tripping over them. If parts of the program
|
inlines so you won't keep tripping over them. If parts of the program
|
||||||
are relocated to a different address, set the appropriate address
|
are relocated to a different address, set the appropriate address
|
||||||
overrides. Progress will be easier once you get code, data, and junk
|
overrides.</li>
|
||||||
identified and arranged in memory.
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>Code start tags are rarely needed, and code end tags are almost never
|
<li>Code start tags are rarely needed, and code end tags are almost
|
||||||
needed. You shouldn't have to spend a lot of time manually tagging things.
|
never needed. You shouldn't have to spend a lot of time manually
|
||||||
If a piece of code isn't being found, it's usually best to figure out why
|
tagging things. If a piece of code isn't being found, it's usually
|
||||||
the code that calls it isn't being found, instead of trying to tag it and
|
best to figure out why the code that calls it isn't being found,
|
||||||
forge ahead. It might be dead code that's never called, or it might be
|
instead of trying to tag it and forge ahead from that point. It might
|
||||||
called from a table that you can format to add code entry tags for
|
be dead code that's never called, or it might be called from a table
|
||||||
multiple addresses with a single operation.</li>
|
that you can format to add code entry tags for multiple addresses with
|
||||||
|
a single operation. Taking the time to find the table and format it
|
||||||
|
is faster than hand-formatting dozens of little handlers, and it's
|
||||||
|
something you'll need to do eventually anyway.</li>
|
||||||
</ul></li>
|
</ul></li>
|
||||||
<li>Start with easily identifiable pieces. If a chunk of code is reading
|
<li>Start with easily identifiable pieces. If a chunk of code is reading
|
||||||
from the keyboard, you can make reasonable guesses about the purpose of
|
from the keyboard, you can make reasonable guesses about the purpose of
|
||||||
|
@ -85,14 +85,31 @@
|
|||||||
|
|
||||||
<h2>Using SourceGen</h2>
|
<h2>Using SourceGen</h2>
|
||||||
|
|
||||||
|
<div class="grid-container">
|
||||||
|
<div class="grid-item-text">
|
||||||
|
<p>Many disassemblers take a very simple approach: they dump
|
||||||
|
the entire binary as if it were an instruction stream. It's then
|
||||||
|
left to the human to carve away the data sections. SourceGen
|
||||||
|
comes at the problem from a different angle, and assumes
|
||||||
|
everything is data until proven otherwise. The human need only
|
||||||
|
identify where code areas start. The computer will trace through
|
||||||
|
code automatically, following branches and subroutine calls, and
|
||||||
|
whatever isn't traced is either data storage or junk (dead code,
|
||||||
|
alignment padding, etc).</p>
|
||||||
|
<p>The difference in approach can be confusing at first for people
|
||||||
|
accustomed to other software. Code tracing tends to produce better
|
||||||
|
results more quickly, however, because much of the tedium is handled
|
||||||
|
by the software.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<hr style="width:80%;"/>
|
||||||
|
|
||||||
<div class="grid-container">
|
<div class="grid-container">
|
||||||
<div class="grid-item-text">
|
<div class="grid-item-text">
|
||||||
<p>This first section covers the basics of working with SourceGen: how to
|
<p>This first section covers the basics of working with SourceGen: how to
|
||||||
move around, make edits, generate code, and so on.
|
move around, make edits, generate code, and so on.
|
||||||
SourceGen has some unusual features, so it's worth reading through this
|
You can't do anything useful until you open an existing project or
|
||||||
even if you've used other disassemblers.</p>
|
|
||||||
|
|
||||||
<p>You can't do anything useful until you open an existing project or
|
|
||||||
create a new one, so we'll start there.</p>
|
create a new one, so we'll start there.</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -106,7 +123,8 @@
|
|||||||
No part of the data file is included in the project file, so you need
|
No part of the data file is included in the project file, so you need
|
||||||
to keep both files in the same place.
|
to keep both files in the same place.
|
||||||
If the program you're disassembling was split into more than one data
|
If the program you're disassembling was split into more than one data
|
||||||
file, you'll need a separate project file for each.</p>
|
file, you'll need a separate project file for each (or combine them into
|
||||||
|
a single file with the concatenation tool).</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -134,8 +152,8 @@
|
|||||||
of the primary CPU varieties (6502, 65C02, W65C02, and 65816). If
|
of the primary CPU varieties (6502, 65C02, W65C02, and 65816). If
|
||||||
you're unsure, just take your best guess. It's easy to change things after the
|
you're unsure, just take your best guess. It's easy to change things after the
|
||||||
project has been started.</p>
|
project has been started.</p>
|
||||||
<p>The area on the right side of the window has a list of the files, scripts,
|
<p>The area on the right side of the window has a list of the symbol
|
||||||
and optional features that will be enabled for the
|
files, scripts, and optional features that will be enabled for the
|
||||||
selected system. The various items here will be explained in more
|
selected system. The various items here will be explained in more
|
||||||
detail later on.</p>
|
detail later on.</p>
|
||||||
</div>
|
</div>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user