1
0
mirror of https://github.com/fadden/6502bench.git synced 2024-12-30 14:31:13 +00:00

Rename FormatSplitAddress to FormatAddressTable

Updated menus and docs to match.
This commit is contained in:
Andy McFadden 2019-09-15 13:37:38 -07:00
parent 9fc61507ca
commit 6f81d748ee
9 changed files with 50 additions and 40 deletions

View File

@ -2181,14 +2181,14 @@ namespace SourceGen {
} }
} }
public bool CanFormatSplitAddress() { public bool CanFormatAddressTable() {
EntityCounts counts = SelectionAnalysis.mEntityCounts; EntityCounts counts = SelectionAnalysis.mEntityCounts;
// Must be at least one line of data, and no code. Note this is lines, not bytes, // Must be at least one line of data, and no code. Note this is lines, not bytes,
// so we can't screen out single-byte lines without additional work. // so we can't screen out single-byte lines without additional work.
return (counts.mDataLines > 0 && counts.mCodeLines == 0); return (counts.mDataLines > 0 && counts.mCodeLines == 0);
} }
public void FormatSplitAddress() { public void FormatAddressTable() {
TypedRangeSet trs = GroupedOffsetSetFromSelected(); TypedRangeSet trs = GroupedOffsetSetFromSelected();
if (trs.Count == 0) { if (trs.Count == 0) {
// shouldn't happen // shouldn't happen
@ -2196,7 +2196,7 @@ namespace SourceGen {
return; return;
} }
FormatSplitAddress dlg = new FormatSplitAddress(mMainWin, mProject, trs, FormatAddressTable dlg = new FormatAddressTable(mMainWin, mProject, trs,
mOutputFormatter); mOutputFormatter);
dlg.ShowDialog(); dlg.ShowDialog();

View File

@ -58,7 +58,7 @@ and 65816 code. The official web site is
<li><a href="mainwin.html#info">Info Window</a></li> <li><a href="mainwin.html#info">Info Window</a></li>
<li><a href="mainwin.html#navigation">Navigation</a></li> <li><a href="mainwin.html#navigation">Navigation</a></li>
<li><a href="mainwin.html#hints">Adding and Removing Hints</a></li> <li><a href="mainwin.html#hints">Adding and Removing Hints</a></li>
<li><a href="mainwin.html#split-address">Format Split-Address Table</a></li> <li><a href="mainwin.html#address-table">Format Address Table</a></li>
<li><a href="mainwin.html#toggle-single">Toggle Single-Byte Format</a></li> <li><a href="mainwin.html#toggle-single">Toggle Single-Byte Format</a></li>
<li><a href="mainwin.html#format-as-word">Format As Word</a></li> <li><a href="mainwin.html#format-as-word">Format As Word</a></li>
<li><a href="mainwin.html#toggle-data">Toggle Data Scan</a></li> <li><a href="mainwin.html#toggle-data">Toggle Data Scan</a></li>

View File

@ -195,7 +195,7 @@ enabled will depend on what you have selected in the main window.</p>
at least one line has hints. The keyboard shortcuts for hints are at least one line has hints. The keyboard shortcuts for hints are
two-key combinations.</li> two-key combinations.</li>
<li><a href="#split-address">Format Split-Address Table</a>. Formats <li><a href="#address-table">Format Address Table</a>. Formats
a series of bytes as parts of a table of addresses.</li> a series of bytes as parts of a table of addresses.</li>
<li><a href="#toggle-single">Toggle Single-Byte Format</a>. Toggles <li><a href="#toggle-single">Toggle Single-Byte Format</a>. Toggles
a range of lines between default format and single-byte format. Enabled a range of lines between default format and single-byte format. Enabled
@ -357,7 +357,7 @@ again to re-enable the string &amp; fill analyzer.</p>
menu item to "flatten" the item.</p> menu item to "flatten" the item.</p>
<h3><a name="split-address">Format Split-Address Table</a></h3> <h3><a name="address-table">Format Address Table</a></h3>
<p>Tables of addresses are fairly common. Sometimes you'll find them as a <p>Tables of addresses are fairly common. Sometimes you'll find them as a
series of 16-bit words, like this:</p> series of 16-bit words, like this:</p>
@ -383,12 +383,14 @@ values are to be pushed onto the stack for an RTS call.</p>
<p>While the .dd2 case is easy to format with the data operand editor, <p>While the .dd2 case is easy to format with the data operand editor,
formatting addresses whose components are split into multiple tables can formatting addresses whose components are split into multiple tables can
be tedious.</p> be tedious. Even in the easy case, you may want to create labels and set
code hints for each item.</p>
<p>The Split-Address Table Formatter helps you associate symbols with the <p>The Address Table Formatter helps you associate symbols with the
addresses in the table. To use it, start by selecting the entire table. addresses in the table. It works for simple and "split" tables.</p>
In the example above, you would select all 6 bytes. The number of bytes <p>To use it, start by selecting the entire table. In the examples above,
in each part must be equal: here, it's 3 low bytes, followed by 3 high you would select all 6 bytes. The number of bytes in each part of a
split table must be equal: here, it's 3 low bytes, followed by 3 high
bytes. If the number of bytes selected can't be evenly divided by the bytes. If the number of bytes selected can't be evenly divided by the
number of parts -- two parts for 16-bit data, three parts for 24-bit data -- number of parts -- two parts for 16-bit data, three parts for 24-bit data --
the formatter will report an error.</p> the formatter will report an error.</p>
@ -398,15 +400,19 @@ is split into sections.</p>
<ul> <ul>
<li>Address Characteristics: select whether the table has 16-bit <li>Address Characteristics: select whether the table has 16-bit
addresses or 24-bit addresses. (24-bit addresses are disabled if you addresses or 24-bit addresses. (24-bit addresses are disabled if you
don't have the CPU set to 65816.) If the address parts are being pushed don't have the CPU set to 65816.) If the table is split into individual
sub-tables for low bytes and high bytes, check the "Parts are split
across sub-tables" box. If the address parts are being pushed
on the stack for an RTS/RTL, check the "Adjusted for RTS/RTL" box to on the stack for an RTS/RTL, check the "Adjusted for RTS/RTL" box to
adjust them by 1.</li> adjust them by 1.</li>
<li>Low Byte Source: indicate which part of the table holds the low bytes. In <li>Low Byte Source: indicate which part of the table or word holds the
the example above, the low bytes came first, followed by the high bytes, low bytes. For common little-endian words, the low bytes come first. In
so you would select "first part of selection". If they were stored the the split-table example above, the low bytes came first, followed by the
other way around, you would click "second part" instead.</li> high bytes, so you would select "first part of selection". If they were
<li>High Byte Source: indicate which part of the table holds the high bytes. For stored the other way around, you would click "second part" instead.</li>
a 16-bit address this will be the part you didn't pick for the low bytes. <li>High Byte Source: indicate which part of the table or word holds
the high bytes. For a 16-bit address this will be the part you didn't
pick for the low bytes.
Sometimes, if all addresses land on the same 256-byte page, the high byte Sometimes, if all addresses land on the same 256-byte page, the high byte
will be a constant in the code, and only the low bytes will be stored in will be a constant in the code, and only the low bytes will be stored in
a table. If that's the case, select "Constant", and enter the high byte a table. If that's the case, select "Constant", and enter the high byte
@ -424,7 +430,9 @@ is split into sections.</p>
file, the offset is shown as dashes instead. If the address can be file, the offset is shown as dashes instead. If the address can be
mapped, and it already has a user-specified label, the label will be mapped, and it already has a user-specified label, the label will be
shown. If no label was found, the table will show "(+)", indicating shown. If no label was found, the table will show "(+)", indicating
that a permanent label will be added at the target offset.</li> that a permanent label will be added at the target offset. If everything
is set up correctly, and the addresses fall entirely within the program,
you shouldn't see any unknown entries here.</li>
</ul> </ul>
<p>For a 16-bit address, you have three choices: low byte first, high byte <p>For a 16-bit address, you have three choices: low byte first, high byte
@ -443,7 +451,8 @@ pages. You just need to have all of the data selected.</p>
data in question is part of a table. The formatting, labels, and code hints data in question is part of a table. The formatting, labels, and code hints
are applied as if you entered them all individually by hand. The formatter are applied as if you entered them all individually by hand. The formatter
is just significantly more convenient. It also does everything as a single is just significantly more convenient. It also does everything as a single
undoable action, so if it comes out looking wrong, just hit "undo".</p> undoable action, so if it comes out looking wrong, just hit "undo" and
try something else.</p>
<h3><a name="toggle-single">Toggle Single-Byte Format</a></h3> <h3><a name="toggle-single">Toggle Single-Byte Format</a></h3>

View File

@ -333,7 +333,7 @@ on to the next tutorial to learn more.</p>
can do. We assume you've already finished the Basic Features tutorial.</p> can do. We assume you've already finished the Basic Features tutorial.</p>
<h3>Split-Address Table Formatting</h3> <h3>Address Table Formatting</h3>
<p>Start a new project. Select the Apple //e platform, click Select File <p>Start a new project. Select the Apple //e platform, click Select File
and navigate to the Examples directory. In A2-Amper-fdraw, select and navigate to the Examples directory. In A2-Amper-fdraw, select
@ -381,9 +381,10 @@ to make the operand there say <code>&gt;FUNC</code>. (If it says
You could repeat these steps for the remaining items, but there's a faster You could repeat these steps for the remaining items, but there's a faster
way. Click on the line at address $1d97, then shift-click the line at way. Click on the line at address $1d97, then shift-click the line at
address $1da9 (which should be <code>.FILL 12,$1e</code>). Select address $1da9 (which should be <code>.FILL 12,$1e</code>). Select
Actions &gt; Format Split-Address Table.</p> Actions &gt; Format Address Table.</p>
<p>The message at the top should indicate that there are 30 bytes <p>The message at the top should indicate that there are 30 bytes
selected. In Address Characteristics, click the "adjusted for RTS/RTL" selected. In Address Characteristics, click the "Parts are split across
sub-tables" checkbox and the "adjusted for RTS/RTL"
checkbox. As soon as you do, the first line of the Generated Addresses checkbox. As soon as you do, the first line of the Generated Addresses
list should show the symbol "FUNC". The rest of the addresses will look like list should show the symbol "FUNC". The rest of the addresses will look like
<code>(+) T1DD0</code>. The "(+)" means that a label was not found at <code>(+) T1DD0</code>. The "(+)" means that a label was not found at

View File

@ -137,8 +137,8 @@
<Compile Include="WpfGui\FontPicker.xaml.cs"> <Compile Include="WpfGui\FontPicker.xaml.cs">
<DependentUpon>FontPicker.xaml</DependentUpon> <DependentUpon>FontPicker.xaml</DependentUpon>
</Compile> </Compile>
<Compile Include="WpfGui\FormatSplitAddress.xaml.cs"> <Compile Include="WpfGui\FormatAddressTable.xaml.cs">
<DependentUpon>FormatSplitAddress.xaml</DependentUpon> <DependentUpon>FormatAddressTable.xaml</DependentUpon>
</Compile> </Compile>
<Compile Include="WpfGui\GotoBox.xaml.cs"> <Compile Include="WpfGui\GotoBox.xaml.cs">
<DependentUpon>GotoBox.xaml</DependentUpon> <DependentUpon>GotoBox.xaml</DependentUpon>
@ -306,7 +306,7 @@
<SubType>Designer</SubType> <SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator> <Generator>MSBuild:Compile</Generator>
</Page> </Page>
<Page Include="WpfGui\FormatSplitAddress.xaml"> <Page Include="WpfGui\FormatAddressTable.xaml">
<SubType>Designer</SubType> <SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator> <Generator>MSBuild:Compile</Generator>
</Page> </Page>

View File

@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License. limitations under the License.
--> -->
<Window x:Class="SourceGen.WpfGui.FormatSplitAddress" <Window x:Class="SourceGen.WpfGui.FormatAddressTable"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
@ -22,7 +22,7 @@ limitations under the License.
xmlns:system="clr-namespace:System;assembly=mscorlib" xmlns:system="clr-namespace:System;assembly=mscorlib"
xmlns:local="clr-namespace:SourceGen.WpfGui" xmlns:local="clr-namespace:SourceGen.WpfGui"
mc:Ignorable="d" mc:Ignorable="d"
Title="Format Split-Address Table" Title="Format Address Table"
SizeToContent="WidthAndHeight" ResizeMode="NoResize" SizeToContent="WidthAndHeight" ResizeMode="NoResize"
ShowInTaskbar="False" WindowStartupLocation="CenterOwner" ShowInTaskbar="False" WindowStartupLocation="CenterOwner"
Loaded="Window_Loaded"> Loaded="Window_Loaded">
@ -55,7 +55,7 @@ limitations under the License.
Content="16-bit" Checked="WidthRadio_CheckedChanged"/> Content="16-bit" Checked="WidthRadio_CheckedChanged"/>
<RadioButton Name="width24Radio" GroupName="Addr" Margin="0,4,0,0" <RadioButton Name="width24Radio" GroupName="Addr" Margin="0,4,0,0"
Content="24-bit" Checked="WidthRadio_CheckedChanged"/> Content="24-bit" Checked="WidthRadio_CheckedChanged"/>
<CheckBox Margin="0,4,0,0" Content="Parts are split across tables" <CheckBox Margin="0,4,0,0" Content="Parts are split across sub-tables"
IsChecked="{Binding IsSplitTable}"/> IsChecked="{Binding IsSplitTable}"/>
<CheckBox Margin="0,4,0,0" Content="Adjusted for RTS/RTL (target - 1)" <CheckBox Margin="0,4,0,0" Content="Adjusted for RTS/RTL (target - 1)"
IsChecked="{Binding IsAdjustedForReturn}"/> IsChecked="{Binding IsAdjustedForReturn}"/>

View File

@ -29,7 +29,7 @@ namespace SourceGen.WpfGui {
/// <summary> /// <summary>
/// Split-address table generator. /// Split-address table generator.
/// </summary> /// </summary>
public partial class FormatSplitAddress : Window, INotifyPropertyChanged { public partial class FormatAddressTable : Window, INotifyPropertyChanged {
/// Format descriptors to apply. /// Format descriptors to apply.
/// </summary> /// </summary>
public SortedList<int, FormatDescriptor> NewFormatDescriptors { get; private set; } public SortedList<int, FormatDescriptor> NewFormatDescriptors { get; private set; }
@ -155,7 +155,7 @@ namespace SourceGen.WpfGui {
} }
public FormatSplitAddress(Window owner, DisasmProject project, TypedRangeSet selection, public FormatAddressTable(Window owner, DisasmProject project, TypedRangeSet selection,
Formatter formatter) { Formatter formatter) {
InitializeComponent(); InitializeComponent();
Owner = owner; Owner = owner;

View File

@ -105,7 +105,7 @@ limitations under the License.
<KeyGesture>Ctrl+W</KeyGesture> <KeyGesture>Ctrl+W</KeyGesture>
</RoutedUICommand.InputGestures> </RoutedUICommand.InputGestures>
</RoutedUICommand> </RoutedUICommand>
<RoutedUICommand x:Key="FormatSplitAddressCmd" Text="Format Split-Address Table..."/> <RoutedUICommand x:Key="FormatAddressTableCmd" Text="Format Address Table..."/>
<RoutedUICommand x:Key="GotoCmd" Text="Go To..."> <RoutedUICommand x:Key="GotoCmd" Text="Go To...">
<RoutedUICommand.InputGestures> <RoutedUICommand.InputGestures>
<KeyGesture>Ctrl+G</KeyGesture> <KeyGesture>Ctrl+G</KeyGesture>
@ -216,8 +216,8 @@ limitations under the License.
CanExecute="IsProjectOpen" Executed="FindNextCmd_Executed"/> CanExecute="IsProjectOpen" Executed="FindNextCmd_Executed"/>
<CommandBinding Command="{StaticResource FormatAsWordCmd}" <CommandBinding Command="{StaticResource FormatAsWordCmd}"
CanExecute="CanFormatAsWord" Executed="FormatAsWordCmd_Executed"/> CanExecute="CanFormatAsWord" Executed="FormatAsWordCmd_Executed"/>
<CommandBinding Command="{StaticResource FormatSplitAddressCmd}" <CommandBinding Command="{StaticResource FormatAddressTableCmd}"
CanExecute="CanFormatSplitAddress" Executed="FormatSplitAddressCmd_Executed"/> CanExecute="CanFormatAddressTable" Executed="FormatAddressTableCmd_Executed"/>
<CommandBinding Command="{StaticResource GotoCmd}" <CommandBinding Command="{StaticResource GotoCmd}"
CanExecute="IsProjectOpen" Executed="GotoCmd_Executed"/> CanExecute="IsProjectOpen" Executed="GotoCmd_Executed"/>
<CommandBinding Command="Help" <CommandBinding Command="Help"
@ -338,7 +338,7 @@ limitations under the License.
<MenuItem Command="{StaticResource HintAsInlineDataCmd}" InputGestureText="Ctrl+H, Ctrl+I"/> <MenuItem Command="{StaticResource HintAsInlineDataCmd}" InputGestureText="Ctrl+H, Ctrl+I"/>
<MenuItem Command="{StaticResource RemoveHintsCmd}" InputGestureText="Ctrl+H, Ctrl+R"/> <MenuItem Command="{StaticResource RemoveHintsCmd}" InputGestureText="Ctrl+H, Ctrl+R"/>
<Separator/> <Separator/>
<MenuItem Command="{StaticResource FormatSplitAddressCmd}"/> <MenuItem Command="{StaticResource FormatAddressTableCmd}"/>
<MenuItem Command="{StaticResource ToggleSingleByteFormatCmd}"/> <MenuItem Command="{StaticResource ToggleSingleByteFormatCmd}"/>
<MenuItem Command="{StaticResource FormatAsWordCmd}"/> <MenuItem Command="{StaticResource FormatAsWordCmd}"/>
<MenuItem Command="{StaticResource DeleteMlcCmd}"/> <MenuItem Command="{StaticResource DeleteMlcCmd}"/>

View File

@ -979,8 +979,8 @@ namespace SourceGen.WpfGui {
e.CanExecute = IsProjectOpen() && mMainCtrl.CanFormatAsWord(); e.CanExecute = IsProjectOpen() && mMainCtrl.CanFormatAsWord();
} }
private void CanFormatSplitAddress(object sender, CanExecuteRoutedEventArgs e) { private void CanFormatAddressTable(object sender, CanExecuteRoutedEventArgs e) {
e.CanExecute = IsProjectOpen() && mMainCtrl.CanFormatSplitAddress(); e.CanExecute = IsProjectOpen() && mMainCtrl.CanFormatAddressTable();
} }
private void CanHintAsCodeEntryPoint(object sender, CanExecuteRoutedEventArgs e) { private void CanHintAsCodeEntryPoint(object sender, CanExecuteRoutedEventArgs e) {
@ -1133,8 +1133,8 @@ namespace SourceGen.WpfGui {
mMainCtrl.FormatAsWord(); mMainCtrl.FormatAsWord();
} }
private void FormatSplitAddressCmd_Executed(object sender, ExecutedRoutedEventArgs e) { private void FormatAddressTableCmd_Executed(object sender, ExecutedRoutedEventArgs e) {
mMainCtrl.FormatSplitAddress(); mMainCtrl.FormatAddressTable();
} }
private void GotoCmd_Executed(object sender, ExecutedRoutedEventArgs e) { private void GotoCmd_Executed(object sender, ExecutedRoutedEventArgs e) {