6502bench/docs/sgtutorial/generating-code.html

180 lines
7.4 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<!-- START: /incl-head.html -->
<!-- common head elements -->
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"
integrity="sha384-vtXRMe3mGCbOeY7l30aIg8H9p3GdeSe4IFlP6G8JMa7o7lXvnz3GFKzPxzJdPfGK" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"/>
<link rel="stylesheet" href="../main.css"/>
<!-- END: /incl-head.html -->
<title>Generating Code - SourceGen Tutorial</title>
</head>
<body>
<!-- START: /incl-masthead.html -->
<div id="masthead">
<!--<div class="masthead-title" style="background-image: url('images/screenshot-mainwin.png');">-->
<div class="masthead-title">
6502bench
</div>
</div>
<!-- END: /incl-masthead.html -->
<!-- START: /incl-topnav.html active:#topnav-sgtutorial -->
<div id="topnav">
<!-- top navigation bar contents -->
<nav>
<a id="topnav-home" href=".././">HOME</a>
<a id="topnav-sgtutorial" class="active" href="../sgtutorial">SourceGen Tutorial</a>
<a id="topnav-menuicon" href="javascript:void(0);" class="icon" onclick="toggleSidenav()">
<i class="fa fa-bars"></i>
</a>
</nav>
<script>
// Sidenav toggle function.
//
// Use a jQuery function to toggle the sidenav bar. The initial state
// is undefined / inherited, so it will pop in and out as the screen
// resizes around the "large" breakpoint.
function toggleSidenav() {
$("#sidenav").toggle("fast");
}
</script>
</div>
<!-- END: /incl-topnav.html -->
<!-- START: incl-sidenav.html active:#sidenav-generating-code -->
<div id="sidenav">
<!-- side navigation bar contents -->
<ul>
<li id="sidenav-index"><a href="./">Introduction</a></li>
<li id="sidenav-about-disasm"><a href="about-disasm.html">About Disassembly</a></li>
<li id="sidenav-using-sourcegen"><a href="using-sourcegen.html">Using SourceGen</a>
<ul>
<li id="sidenav-moving-around"><a href="moving-around.html">Moving Around</a></li>
<li id="sidenav-making-edits"><a href="making-edits.html">Making Edits</a></li>
<li id="sidenav-labels-symbols"><a href="labels-symbols.html">Labels &amp; Symbols</a></li>
<li id="sidenav-editing-data"><a href="editing-data.html">Editing Data Operands</a></li>
<li id="sidenav-generating-code" class="active"><a href="generating-code.html">Generating Code</a></li>
</ul></li>
<li id="sidenav-digging-deeper"><a href="digging-deeper.html">Digging Deeper</a>
<ul>
<li id="sidenav-string-formatting"><a href="string-formatting.html">String Formatting</a></li>
<li id="sidenav-local-variables"><a href="local-variables.html">Local Variables</a></li>
<li id="sidenav-inline-data"><a href="inline-data.html">Inline Data</a></li>
<li id="sidenav-odds-ends"><a href="odds-ends.html">Odds &amp; Ends</a></li>
</ul></li>
<li id="sidenav-advanced-topics"><a href="advanced-topics.html">Advanced Topics</a>
<ul>
<li id="sidenav-address-tables"><a href="address-tables.html">Address Tables</a></li>
<li id="sidenav-extension-scripts"><a href="extension-scripts.html">Extension Scripts</a></li>
<li id="sidenav-visualizations"><a href="visualizations.html">Visualizations</a></li>
</ul></li>
<li id="sidenav-suggestions"><a href="suggestions.html">Suggestions</a></li>
</ul>
</div>
<!-- END: incl-sidenav.html -->
<div id="main">
<h2>Generating Code</h2>
<div class="grid-container">
<div class="grid-item-image">
<img src="images/t1-asmgen-dlg.png" alt="t1-asmgen-dlg"/>
</div>
<div class="grid-item-text">
<p>You can generate assembly source code from the disassembled data.
Select <samp>File &gt; Generate Assembly</samp>
(or hit <kbd class="key">Ctrl+Shift+A</kbd>)
to open the source generation and assembly dialog.</p>
</div>
</div>
<div class="grid-container">
<div class="grid-item-image">
<img src="images/t1-asmgen-preview.png" alt="t1-asmgen-preview"/>
</div>
<div class="grid-item-text">
<p>Pick your favorite assembler from the drop list at the top right,
then click <samp>Generate</samp>. An assembly source file will be generated in the
directory where your project files lives, named after a combination of the
project name and the assembler name. A preview of the assembled code
appears in the top window. (It's called a "preview" because it has line numbers
added and is cut off after a certain limit.)</p>
</div>
</div>
<div class="grid-container">
<div class="grid-item-image">
<img src="images/t1-asmgen-asmout.png" alt="t1-asmgen-asmout"/>
</div>
<div class="grid-item-text">
<p>If you have a cross-assembler installed and configured, you can run
it by clicking <samp>Run Assembler</samp>. The output from the assembler will appear
in the lower window, along with an indication of whether the assembled
file matches the original. (Unless there are bugs in SourceGen or the assembler,
it should always match exactly.)</p>
<p>Click <samp>Close</samp> to close the window.</p>
</div>
</div>
<div class="grid-container">
<div class="grid-item-text">
<p>If you want to output source code for display on a web site or
posting in an online forum, you have a couple of options. The easiest
way to do this is to select the lines and use <samp>Edit &gt; Copy</samp>
to copy them to the system clipboard, and then simply paste it elsewhere.
The format will match what's on the screen, and will not be tailored to
any specific assembler. The set of columns included in the copy can be
configured in the application settings editor, e.g. you can limit it to
just the columns typically found in source code.</p>
</div>
</div>
<div class="grid-container">
<div class="grid-item-image">
<img src="images/t1-export-dlg.png" alt="t1-export-dlg"/>
</div>
<div class="grid-item-text">
<p>To export some or all of the project as text or HTML, use
<samp>File &gt; Export</samp> (<kbd class="key">Ctrl+Shift+E</kbd>).
This is an easy way to share a disassembly listing with people who
don't have access to SourceGen. The feature is primarily useful in
situations where you want to show the disassembly data (Address
and Bytes), or want to embed visualizations (explained later).</p>
</div>
</div>
</div> <!-- #main -->
<div id="prevnext">
<a href="editing-data.html" class="btn-previous">&laquo; Previous</a>
<a href="digging-deeper.html" class="btn-next">Next &raquo;</a>
</div>
<!-- START: /incl-footer.html -->
<div id="footer">
<hr/>
<p>Copyright 2021 faddenSoft</p>
<!-- <p id="screen-size"></p>
<script>
var w = window.innerWidth;
var h = window.innerHeight;
var x = document.getElementById("screen-size");
x.innerHTML = "DEBUG: initial window size " + w + "x" + h;
</script> -->
</div>
<!-- END: /incl-footer.html -->
</body>
</html>