1
0
mirror of https://github.com/fadden/6502bench.git synced 2024-06-11 17:29:29 +00:00

Minor documentation update

This commit is contained in:
Andy McFadden 2021-09-06 11:41:08 -07:00
parent bdad8501f0
commit 55359d423a
3 changed files with 43 additions and 20 deletions

View File

@ -92,11 +92,11 @@ specific system.</p>
<p>The tutorial is divided into four broad sections:</p>
<ul>
<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
familiar with disassembly. This shows how to create a project, move around in
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>
<li><a href="advanced-topics.html">Advanced Topics</a>: a quick look at
some optional but very handy features.</li>

View File

@ -94,21 +94,26 @@ suggestions to help you on your way.</p>
conventions, like whether to use MixedCase or underscore_separated
or SCREAMING_CAPS for labels.</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
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
are relocated to a different address, set the appropriate address
overrides. Progress will be easier once you get code, data, and junk
identified and arranged in memory.
overrides.</li>
<ul>
<li>Code start tags are rarely needed, and code end tags are almost never
needed. You shouldn't have to spend a lot of time manually tagging things.
If a piece of code isn't being found, it's usually best to figure out why
the code that calls it isn't being found, instead of trying to tag it and
forge ahead. It might be dead code that's never called, or it might be
called from a table that you can format to add code entry tags for
multiple addresses with a single operation.</li>
<li>Code start tags are rarely needed, and code end tags are almost
never needed. You shouldn't have to spend a lot of time manually
tagging things. If a piece of code isn't being found, it's usually
best to figure out why the code that calls it isn't being found,
instead of trying to tag it and forge ahead from that point. It might
be dead code that's never called, or it might be called from a table
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>
<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

View File

@ -85,14 +85,31 @@
<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-item-text">
<p>This first section covers the basics of working with SourceGen: how to
move around, make edits, generate code, and so on.
SourceGen has some unusual features, so it's worth reading through this
even if you've used other disassemblers.</p>
<p>You can't do anything useful until you open an existing project or
You can't do anything useful until you open an existing project or
create a new one, so we'll start there.</p>
</div>
</div>
@ -106,7 +123,8 @@
No part of the data file is included in the project file, so you need
to keep both files in the same place.
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>
@ -134,8 +152,8 @@
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
project has been started.</p>
<p>The area on the right side of the window has a list of the files, scripts,
and optional features that will be enabled for the
<p>The area on the right side of the window has a list of the symbol
files, scripts, and optional features that will be enabled for the
selected system. The various items here will be explained in more
detail later on.</p>
</div>