diff --git a/SourceGen/RuntimeData/Help/mainwin.html b/SourceGen/RuntimeData/Help/mainwin.html
index 1ab19c7..3ac7d4d 100644
--- a/SourceGen/RuntimeData/Help/mainwin.html
+++ b/SourceGen/RuntimeData/Help/mainwin.html
@@ -195,7 +195,7 @@ enabled will depend on what you have selected in the main window.
at least one line has hints. The keyboard shortcuts for hints are
two-key combinations.
-
Format Address Table. Formats
a series of bytes as parts of a table of addresses.
Toggle Single-Byte Format. Toggles
a range of lines between default format and single-byte format. Enabled
@@ -357,7 +357,7 @@ again to re-enable the string & fill analyzer.
menu item to "flatten" the item.
-
Tables of addresses are fairly common. Sometimes you'll find them as a
series of 16-bit words, like this:
@@ -383,12 +383,14 @@ values are to be pushed onto the stack for an RTS call.
While the .dd2 case is easy to format with the data operand editor,
formatting addresses whose components are split into multiple tables can
-be tedious.
+be tedious. Even in the easy case, you may want to create labels and set
+code hints for each item.
-
The Split-Address Table Formatter helps you associate symbols with the
-addresses in the table. To use it, start by selecting the entire table.
-In the example above, you would select all 6 bytes. The number of bytes
-in each part must be equal: here, it's 3 low bytes, followed by 3 high
+
The Address Table Formatter helps you associate symbols with the
+addresses in the table. It works for simple and "split" tables.
+
To use it, start by selecting the entire table. In the examples above,
+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
number of parts -- two parts for 16-bit data, three parts for 24-bit data --
the formatter will report an error.
@@ -398,15 +400,19 @@ is split into sections.
Address Characteristics: select whether the table has 16-bit
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
adjust them by 1.
-
Low Byte Source: indicate which part of the table holds the low bytes. In
- the example above, the low bytes came first, followed by the high bytes,
- so you would select "first part of selection". If they were stored the
- other way around, you would click "second part" instead.
-
High Byte Source: indicate which part of the table holds the high bytes. For
- a 16-bit address this will be the part you didn't pick for the low bytes.
+
Low Byte Source: indicate which part of the table or word holds the
+ low bytes. For common little-endian words, the low bytes come first. In
+ the split-table example above, the low bytes came first, followed by the
+ high bytes, so you would select "first part of selection". If they were
+ stored the other way around, you would click "second part" instead.
+
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
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
@@ -424,7 +430,9 @@ is split into sections.
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
shown. If no label was found, the table will show "(+)", indicating
- that a permanent label will be added at the target offset.
+ 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.
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.
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
is just significantly more convenient. It also does everything as a single
-undoable action, so if it comes out looking wrong, just hit "undo".
+undoable action, so if it comes out looking wrong, just hit "undo" and
+try something else.
diff --git a/SourceGen/RuntimeData/Help/tutorials.html b/SourceGen/RuntimeData/Help/tutorials.html
index 7e603d5..0ce0926 100644
--- a/SourceGen/RuntimeData/Help/tutorials.html
+++ b/SourceGen/RuntimeData/Help/tutorials.html
@@ -333,7 +333,7 @@ on to the next tutorial to learn more.
can do. We assume you've already finished the Basic Features tutorial.
-
Split-Address Table Formatting
+
Address Table Formatting
Start a new project. Select the Apple //e platform, click Select File
and navigate to the Examples directory. In A2-Amper-fdraw, select
@@ -381,9 +381,10 @@ to make the operand there say >FUNC. (If it says
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
address $1da9 (which should be .FILL 12,$1e). Select
-Actions > Format Split-Address Table.
+Actions > Format Address Table.
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
list should show the symbol "FUNC". The rest of the addresses will look like
(+) T1DD0. The "(+)" means that a label was not found at
diff --git a/SourceGen/SourceGen.csproj b/SourceGen/SourceGen.csproj
index a35cd11..7d21f10 100644
--- a/SourceGen/SourceGen.csproj
+++ b/SourceGen/SourceGen.csproj
@@ -137,8 +137,8 @@
FontPicker.xaml
-
- FormatSplitAddress.xaml
+
+ FormatAddressTable.xamlGotoBox.xaml
@@ -306,7 +306,7 @@
DesignerMSBuild:Compile
-
+ DesignerMSBuild:Compile
diff --git a/SourceGen/WpfGui/FormatSplitAddress.xaml b/SourceGen/WpfGui/FormatAddressTable.xaml
similarity index 98%
rename from SourceGen/WpfGui/FormatSplitAddress.xaml
rename to SourceGen/WpfGui/FormatAddressTable.xaml
index 6fd8db5..ab05d53 100644
--- a/SourceGen/WpfGui/FormatSplitAddress.xaml
+++ b/SourceGen/WpfGui/FormatAddressTable.xaml
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
-->
-
@@ -55,7 +55,7 @@ limitations under the License.
Content="16-bit" Checked="WidthRadio_CheckedChanged"/>
-
@@ -129,7 +129,7 @@ limitations under the License.
-
+