1
0
mirror of https://github.com/fadden/6502bench.git synced 2025-04-22 08:39:05 +00:00

Add some content

This commit is contained in:
Andy McFadden 2018-09-30 15:12:28 -07:00
parent fcc1d34f41
commit 2221a80055
5 changed files with 96 additions and 4 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

View File

@ -10,12 +10,104 @@
<body>
<div id=content>
<h1>6502bench Tools</h1>
<h1>6502bench SourceGen</h1>
<p>An alpha release is now available.
Visit the github <a href="https://github.com/fadden/6502bench/">project page</a>.</p>
<p>6502bench is a code development "workbench" for the 65xx family
of processors, including the 6502, 65C02, and 65802/65816. It currently
features one tool, the SourceGen disassembler.</p>
<ul>
<li>Watch demo:
<a href="https://youtu.be/dalISyBPQq8">see the product in action</a></li>
<li>Download source &amp; binaries:
<a href="https://github.com/fadden/6502bench/releases">6502bench Releases</a></li>
<li>GitHub project:
<a href="https://github.com/fadden/6502bench/">github.com/fadden/6502bench</a></li>
</ul>
<hr/>
<p><strong>SourceGen</strong> is an industrial-strength disassembler for 6502,
65C02, and 65816 programs. Key features include:</p>
<ul>
<li>Fully interactive point-and-click GUI. Define labels, set addresses,
add comments, and see the results immediately. Add multi-line comments
and have them word-wrapped automatically.</li>
<li>The disassembly engine traces code execution, automatically finding all
instructions reachable from a given starting point. Changes to the
processor status flags are tracked, allowing identification of branches
that are always/never taken, accurate cycle count listings, and correct
analysis of 65816 code with variable-width registers.</li>
<li>Easy generation of assembly source code in populate formats (currently
cc65 and Merlin 32). Cross-assemblers can be invoked from the GUI to
verify correctness.</li>
<li>Symbols and constants are provided for ROM and operating system entry
points on several popular systems.</li>
</ul>
<p>
<a href="images/screenshot-mainwin.png"><img border="2" src="images/screenshot-mainwin-small.png" alt="Main Window Screenshot" width="320" height="180"></a>
<a href="images/screenshot-asmwin.png"><img border="2" src="images/screenshot-asmwin-small.png" alt="Gen/Asm Dialog Screenshot" width="320" height="180"></a>
</p>
<p>Additional features:</p>
<ul>
<li>Analyzer:</li>
<ul>
<li>Support for 6502, 65C02, and 65816, including undocumented
opcodes.</li>
<li>Hinting mechanism allows manual identification of code, data, and
inline data.</li>
<li>Editable labels are generated for every branch destination and data
target.</li>
<li>Automatic detection and classification of ASCII strings and runs
of identical bytes.</li>
<li>Symbol files for ROM entry points, operating system constants, and
other platform-specific data are stored in plain text files.</li>
<li>Extension scripts can be defined that automatically reformat code and
identify inline data that follows a JSR/JSL.</li>
</ul>
<li>User interface:</li>
<ul>
<li>"Infinite" undo/redo of all operations.</li>
<li>Cross-reference tables are generated for every branch and data target
address, as well as for external platform symbols.</li>
<li>Instruction operand formats (hex, decimal, binary, ASCII, symbol) can
be set for individual instructions. References to nearby symbols are
offset, allowing simple expressions like "addr + 1".</li>
<li>Data areas can be formatted in various formats, including individual
bytes, 16-bit and 24-bit words, addresses, or strings.</li>
<li>Multi-line comments can be "boxed" for an authentic retro feel.</li>
<li>Notes can be added that aren't included in generated output. These
also function as color-coded bookmarks. Very useful for marking up a
work in progress.</li>
<li>Instruction summaries, including CPU cycles and flags modified, are
shown along with a description of the opcode's function.</li>
<li>Various aspects of the code display can be reconfigured, including
upper/lower case, pseudo-opcode naming, and expression formats. These
choices are not part of the project definition, so everyone can view a
project according to their own personal preferences.</li>
</ul>
<li>Code generation:</li>
<ul>
<li>Labels can be coaxed from global to local as allowed by the
assembler.</li>
<li>Symbols may be exported from one project and imported into another
to facilitate multi-binary disassembly.</li>
</ul>
<li>Miscellaneous:</li>
<ul>
<li>All data files are stored in text formats (primarly JSON).</li>
<li>The project file includes nothing from the data file but a CRC. This
may allow the project to be shared without violating copyrights (subject
to local laws).</li>
</ul>
</ul>
<p>SourceGen is written in C# .NET, with the WinForms API for the user
interface. The full source code for the project is available on GitHub,
licensed under Apache 2.0.</p>
<p>A more interesting web site should appear here soon.</p>
</div>