mirror of
https://github.com/fadden/6502bench.git
synced 2024-12-30 14:31:13 +00:00
Document visualizations
This commit is contained in:
parent
4696132dfa
commit
af4ec49c9b
@ -164,9 +164,10 @@ Interfaces.cs in the PluginCommon directory. <b>Bear in mind that this
|
|||||||
feature is still evolving, and the interfaces may change significantly
|
feature is still evolving, and the interfaces may change significantly
|
||||||
in the near future.</b></p>
|
in the near future.</b></p>
|
||||||
|
|
||||||
<p>The current interfaces can be used to identify inline data that follows
|
<p>The current interfaces can be used to generate visualizations, to
|
||||||
JSR, JSL, or BRK instructions, and to format operands. The latter can be
|
identify inline data that follows JSR, JSL, or BRK instructions, and to
|
||||||
useful for replacing immediate load operands with symbolic constants.</p>
|
format operands. The latter can be useful for replacing immediate
|
||||||
|
load operands with symbolic constants.</p>
|
||||||
|
|
||||||
<p>Scripts may be loaded from the RuntimeData directory, or from the directory
|
<p>Scripts may be loaded from the RuntimeData directory, or from the directory
|
||||||
where the project file lives. Attempts to load them from other locations
|
where the project file lives. Attempts to load them from other locations
|
||||||
@ -190,16 +191,17 @@ for IntelliSense completion, and get all the usual syntax and compile
|
|||||||
checking in the editor. (This is why there's a RuntimeData project for
|
checking in the editor. (This is why there's a RuntimeData project for
|
||||||
Visual Studio.)</p>
|
Visual Studio.)</p>
|
||||||
|
|
||||||
<p>If you have the solution configured for debug builds, SourceGen will set
|
<p>If you have the solution configured for debug builds, SourceGen will pass
|
||||||
the IncludeDebugInformation flag to true when compiling scripts. This
|
<code>IncludeDebugInformation=true</code> to the script compiler. This
|
||||||
causes a .PDB file to be created. While this can help with debugging,
|
causes a .PDB file to be created. While this can help with debugging,
|
||||||
it can sometimes get in the way: if you edit the script source code and
|
it can sometimes get in the way: if you edit the script source code and
|
||||||
reload the project, SourceGen will recompile the script, but the old .PDB
|
reload the project without restarting the app, SourceGen will recompile
|
||||||
file will still be open by VisualStudio and you'll get error messages.</p>
|
the script, but the old .PDB file will still be open by VisualStudio
|
||||||
|
and you'll get error messages.</p>
|
||||||
|
|
||||||
<p>Some commonly useful functions are defined in the PluginCommon.Util class,
|
<p>Some commonly useful functions are defined in the
|
||||||
which is available to plugins. These call into the CommonUtil library,
|
<code>PluginCommon.Util</code> class, which is available to plugins. These
|
||||||
which is shared with SourceGen.
|
call into the CommonUtil library, which is shared with SourceGen.
|
||||||
While plugins can use CommonUtil directly, they should avoid doing so. The
|
While plugins can use CommonUtil directly, they should avoid doing so. The
|
||||||
APIs there are not guaranteed to be stable, so plugins that rely on them
|
APIs there are not guaranteed to be stable, so plugins that rely on them
|
||||||
may break in a subsequent release of SourceGen.</p>
|
may break in a subsequent release of SourceGen.</p>
|
||||||
@ -338,9 +340,9 @@ not help you debug 6502 projects.</p>
|
|||||||
symbols loaded from .sym65 files and find addresses that fall within
|
symbols loaded from .sym65 files and find addresses that fall within
|
||||||
the bounds of the file. If it finds an address that is the start
|
the bounds of the file. If it finds an address that is the start
|
||||||
of a code/data line and doesn't already have a user-supplied label,
|
of a code/data line and doesn't already have a user-supplied label,
|
||||||
the platform symbol's label will be applied. Useful for
|
and the platform symbol's label isn't already defined elsewhere, the
|
||||||
disassembling ROM images or other code with an established set of
|
platform label will be applied. Useful when disassembling ROM images
|
||||||
public entry points.
|
or other code with an established set of public entry points.
|
||||||
(Tip: disable "analyze uncategorized data" from the project
|
(Tip: disable "analyze uncategorized data" from the project
|
||||||
properties editor first.)</li>
|
properties editor first.)</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -69,6 +69,13 @@ and 65816 code. The official web site is
|
|||||||
</ul></li>
|
</ul></li>
|
||||||
</ul></li>
|
</ul></li>
|
||||||
|
|
||||||
|
<li><a href="visualization.html">Visualizations</a>
|
||||||
|
<ul>
|
||||||
|
<li><a href="visualization.html#overview">Overview</a></li>
|
||||||
|
<li><a href="visualization.html#vis-and-sets">Visualizations and Visualization Sets</a></li>
|
||||||
|
<li><a href="visualization.html#runtime">Scripts Included with SourceGen</a></li>
|
||||||
|
</ul></li>
|
||||||
|
|
||||||
<li><a href="editors.html">Editors</a>
|
<li><a href="editors.html">Editors</a>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="editors.html#address">Edit Address</a></li>
|
<li><a href="editors.html#address">Edit Address</a></li>
|
||||||
|
@ -5,12 +5,12 @@
|
|||||||
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
|
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
<link href="main.css" rel="stylesheet" type="text/css" />
|
<link href="main.css" rel="stylesheet" type="text/css" />
|
||||||
<title>Main Window - 6502bench SourceGen</title>
|
<title>Using SourceGen - 6502bench SourceGen</title>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<div id="content">
|
<div id="content">
|
||||||
<h1>6502bench SourceGen: Main Window</h1>
|
<h1>6502bench SourceGen: Using SourceGen</h1>
|
||||||
<p><a href="index.html">Back to index</a></p>
|
<p><a href="index.html">Back to index</a></p>
|
||||||
|
|
||||||
<h2><a name="starting-new">Starting a New Project</a></h2>
|
<h2><a name="starting-new">Starting a New Project</a></h2>
|
||||||
@ -192,6 +192,8 @@ enabled will depend on what you have selected in the main window.</p>
|
|||||||
<li><a href="editors.html#lvtable">Edit Prior Local Variable Table</a>.
|
<li><a href="editors.html#lvtable">Edit Prior Local Variable Table</a>.
|
||||||
Modify or delete entries in the most recently defined local
|
Modify or delete entries in the most recently defined local
|
||||||
variable table.</li>
|
variable table.</li>
|
||||||
|
<li><a href="visualization.html#vis-and-sets">Create/Edit Visualization Set</a>.
|
||||||
|
Create a new visualization set or edit an existing set.</li>
|
||||||
|
|
||||||
<li><a href="#hints">Hinting</a> (Hint As Code Entry Point, Hint As
|
<li><a href="#hints">Hinting</a> (Hint As Code Entry Point, Hint As
|
||||||
Data Start, Hint As Inline Data, Remove Hints). Enabled when one or more
|
Data Start, Hint As Inline Data, Remove Hints). Enabled when one or more
|
||||||
|
139
SourceGen/RuntimeData/Help/visualization.html
Normal file
139
SourceGen/RuntimeData/Help/visualization.html
Normal file
@ -0,0 +1,139 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<link href="main.css" rel="stylesheet" type="text/css" />
|
||||||
|
<title>Visualizations - 6502bench SourceGen</title>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div id="content">
|
||||||
|
<h1>6502bench SourceGen: Visualizations</h1>
|
||||||
|
<p><a href="index.html">Back to index</a></p>
|
||||||
|
|
||||||
|
<h2><a name="overview">Overview</a></h2>
|
||||||
|
|
||||||
|
<p>Programs are generally a combination of code and data. Sometimes
|
||||||
|
the data is graphical in nature, e.g. a bitmap used as a font or
|
||||||
|
game sprite. Being able to see the data in graphic form can make it
|
||||||
|
easier to determine the purpose of associated code.</p>
|
||||||
|
<p>While modern systems use GIF, JPEG, and PNG to hold 2D bitmaps,
|
||||||
|
graphical elements embedded in 6502 applications are almost always
|
||||||
|
in a platform-specific form. For this reason, the task of generating
|
||||||
|
images from data is performed by
|
||||||
|
<a href="advanced.html#extension-scripts">extension scripts</a>. Some
|
||||||
|
scripts for common formats are included in the SourceGen runtime directory.
|
||||||
|
If these don't do what you need, you can write your own scripts and
|
||||||
|
include them in your project.</p>
|
||||||
|
<p>The project file doesn't store the converted graphics. Instead, the
|
||||||
|
project file holds a string that identifies the converter, and a list of
|
||||||
|
parameters that are passed to the converter. Images are generated when
|
||||||
|
the project is first opened, and updated if the set of loaded extension
|
||||||
|
scripts changes.</p>
|
||||||
|
<p>Visualizations are not included in generated assembly output. They
|
||||||
|
may be included in HTML exports.</p>
|
||||||
|
|
||||||
|
|
||||||
|
<h2><a name="vis-and-sets">Visualizations and Visualization Sets</a></h2>
|
||||||
|
|
||||||
|
<p>Visualizations are essentially decorative: they do not affect the
|
||||||
|
assembled output, and do not change how code is analyzed. They are
|
||||||
|
contained in sets that are placed at arbitrary offsets. Each set can
|
||||||
|
contain multiple items. For example, if a file has data for
|
||||||
|
10 bitmaps, you can place a visualization near each, or create a single
|
||||||
|
visualization set with all 10 items and put it at the start of the file.</p>
|
||||||
|
|
||||||
|
<p>To create a visualization set, select a code or data line, and use
|
||||||
|
Actions > Create/Edit Visualization Set. To edit a visualization set,
|
||||||
|
select it and use the same menu item, or just double-click on it. This
|
||||||
|
opens the Visualization Set Editor window.</p>
|
||||||
|
|
||||||
|
<p>The visualization set editor shows a list of visualizations associated
|
||||||
|
with the selected file offset. You can create a new visualization, edit
|
||||||
|
or remove an existing entry, or rearrange them.
|
||||||
|
If you select "New Bitmap" or edit an existing bitmap entry, the
|
||||||
|
Bitmap Visualization Editor window will open.</p>
|
||||||
|
|
||||||
|
<h4>Bitmap Visualization Editor</h4>
|
||||||
|
|
||||||
|
<p>The combo box at the top of the screen lists every bitmap visualization
|
||||||
|
generator defined by an active extension script. Select the one that is
|
||||||
|
appropriate for the data you're trying to visualize. Every visualizer may
|
||||||
|
have different parameters, so as you select different entries the set of
|
||||||
|
input parameters below the preview window may change.</p>
|
||||||
|
|
||||||
|
<p>The "tag" is a unique string that will be shown in the display list.
|
||||||
|
This is not a label, and may contain any characters you want (but leading
|
||||||
|
and trailing whitespace will be trimmed). The only requirement is that
|
||||||
|
it be unique among visualization tags.</p>
|
||||||
|
<p>The preview window shows the visualizer output. The generated image is
|
||||||
|
expanded to fill the window, so small images will be shown with very
|
||||||
|
large pixels.
|
||||||
|
If you resize the editor window, the preview window will expand, which
|
||||||
|
can make it easier to see detail on larger images.
|
||||||
|
If the generator fails, the preview window will show a red 'X', and an
|
||||||
|
error message will appear below it.</p>
|
||||||
|
<p>Parameters may be numeric or boolean. The latter use a simple checkbox,
|
||||||
|
the former a text entry field that accepts decimal and hexadecimal values.
|
||||||
|
The range of allowable values is shown to the right of the entry field.
|
||||||
|
If you enter an invalid value, the parameter description will turn red.</p>
|
||||||
|
|
||||||
|
|
||||||
|
<h2><a name="runtime">Scripts Included with SourceGen</a></h2>
|
||||||
|
|
||||||
|
<p>A number of visualization generation scripts are included with
|
||||||
|
SourceGen, in the platform-specific runtime data directories.</p>
|
||||||
|
|
||||||
|
<p>Most generators will take the file offset, bitmap width, and bitmap
|
||||||
|
height as parameters. Offsets are handled as they are elsewhere, i.e.
|
||||||
|
always in hexadecimal, with a leading '+'.
|
||||||
|
Some less-common parameters include:</p>
|
||||||
|
<ul>
|
||||||
|
<li><b>Row stride</b> - number of bytes used to hold a row. This
|
||||||
|
is used when a row has padding on the end, e.g. a bitmap that's
|
||||||
|
7 bytes wide might be padded to 8 for easy indexing. If you set
|
||||||
|
this to zero the visualizer will default to no padding
|
||||||
|
(stride == width).</li>
|
||||||
|
<li><b>Column stride</b> - number of bytes used to hold a column.
|
||||||
|
This is uncommon, but could be used if (say) a pair of bitmaps
|
||||||
|
was stored with interleaved bytes. If you set this to zero the
|
||||||
|
visualizer will default to no interleave (stride == 1).</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h3>Apple II - VisHiRes</h3>
|
||||||
|
|
||||||
|
<p>There is no standard format for small hi-res bitmaps, but certain
|
||||||
|
arrangements are common. The script defines three generators:</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li><b>Hi-Res Bitmap</b> - converts an MxN row-major bitmap.</li>
|
||||||
|
<li><b>Hi-Res Bitmap Font</b> - converts a series of MxN row-major
|
||||||
|
bitmaps. This is intended for hi-res fonts, which are typically
|
||||||
|
8 bytes per entry, stored one after another. These are always
|
||||||
|
converted as monochrome, and have a 1-pixel transparent gap
|
||||||
|
between elements.</li>
|
||||||
|
<li><b>Hi-Res Screen Image</b> - used for 8KiB screen images. The
|
||||||
|
data is linearized and converted to a 280x192 bitmap.</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p>Widths are specified in bytes, not pixels. Each byte represents 7
|
||||||
|
pixels (with some hand-waving).</p>
|
||||||
|
|
||||||
|
<p>In addition to offset, dimensions, and stride values, the bitmap
|
||||||
|
converter has a checkbox for monochrome or color, and a checkbox that
|
||||||
|
will cause the first byte to be treated as an odd column rather than
|
||||||
|
an event one. The odd/even setting affects green/purple and orange/blue,
|
||||||
|
but has no effect on black or white.</p>
|
||||||
|
<p>The converter generates one output pixel for every source pixel, so
|
||||||
|
half-pixel shifts are not rendered.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="footer">
|
||||||
|
<p><a href="index.html">Back to index</a></p>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
<!-- Copyright 2019 faddenSoft -->
|
||||||
|
</html>
|
Loading…
Reference in New Issue
Block a user