From 6998eb4021b61708fde5ea2a173e3526b9c03cb4 Mon Sep 17 00:00:00 2001
From: Andy McFadden
The "executable" box holds the full path to the cross-assembler
-executable. For cc65 this is bin/cl65.exe
, for Merlin32
-you need Merlin32.exe
. (On non-Windows platforms, you
-won't need the ".exe".) For cc65 you need a full installation, with
-the configuration files and libraries, not just the cl65 binary itself.
bin/cl65.exe
,
+for Merlin32 you need Merlin32.exe
,
+for 64tass it's 64tass.exe
.
+(On non-Windows platforms, you won't need the ".exe".) For cc65 you need
+a full installation, with the configuration files and libraries, not just
+the cl65 binary alone.
The "column widths" section allows you to specify the width of the label, opcode, operand, and comment fields. If the width is less than 1, or isn't a valid number, 1 will be used. (Note: the comment width isn't diff --git a/SourceGen/RuntimeData/Help/tutorials.html b/SourceGen/RuntimeData/Help/tutorials.html index bb1f065..4d51886 100644 --- a/SourceGen/RuntimeData/Help/tutorials.html +++ b/SourceGen/RuntimeData/Help/tutorials.html @@ -82,9 +82,9 @@ things happened:
There's an easier way. Use Edit > Undo twice, to get back to the place +
There's an easier way. Use Edit > Undo twice, to get back to the time where line $2005 is using "L2009" as its operand. Select that line and Actions > Edit Operand. Enter "IS_OK", then select "Create label at target address instead". Hit "OK".
@@ -237,7 +237,7 @@ process: the operand at $2005 is still a numeric reference. It was automatically changed to match IS_OK in the same way that the references to MAIN were when we renamed "L2000" earlier. If you actually do want the symbolic reference, there's another option in the Edit Operand dialog that -does it.) +does it. The difference can be noted in the Info window.)We now have two ".STR" lines, one for "string zero ", one with the +
We now have two ".STR" lines, one for "string zero ", and one with the STR1 label and the rest of the string data. This is okay, but it's not -really what we want. The code at $2022 appears to be loading a 16-bit +really what we want. The code at $200B appears to be loading a 16-bit address from data at $2025, so we want to use that if we can.
-Select Edit > Undo twice. You should be back to a state where there's -a single ".STR" line at the bottom, split across two lines with a '+'.
+Select Edit > Undo three times. You should be back to the state where +there's a single ".STR" line at the bottom, split across two lines with +a '+'.
Select the line at $2026. This is currently formatted as a string, but that appears to be incorrect, so let's format it as individual bytes instead. There's an easy way to do that: use Actions > Toggle Single-Byte @@ -287,10 +288,11 @@ the top line in the dialog should now say, "10 bytes selected". Because of 3 or 4, so the 24-bit and 32-bit options are not enabled. Click the "16-bit words, little-endian" radio button, then over to the right, click the "Address" radio button. Click "OK".
-We just told SourceGen that those 10 bytes are actually five numeric +
We just told SourceGen that those 10 bytes are actually five 16-bit numeric references. SourceGen determined that the addresses are contained in the file, and created labels for each of them. Labels only work if they're -on their own line, so each string is now in a separate ".STR" statement.
+on their own line, so the long string was automatically split into five +separate ".STR" statements.Use File > Save (or hit Ctrl+S) to save your work.
@@ -394,7 +396,7 @@ label, apply the label to the low and high bytes in the table, add a code entry point hint -- but did several of them at once.We don't want to save this project, so select File > Close. When -SourceGen asks if you want to continue, click OK.
+SourceGen asks for confirmation, click Discard & Continue.00 20
, which
-could be a load address (C64 binaries look like this). So let's start
+could be a load address (some C64 binaries look like this). So let's start
with that assumption.
Click on the first line of code at address $1000, and select Actions > Remove Hints. The $20 got absorbed into a string. The string is making it hard to manipulate the next few bytes, so let's fix that by -selecting Edit > Toggle Data Scan. This turns off the feature that -looks for strings and .FILL regions, so now each uncategorized byte is +selecting Edit > Toggle Data Scan (Ctrl+D). This turns off the feature +that looks for strings and .FILL regions, so now each uncategorized byte is on its own line.
-Select the first two lines, use Actions > Edit Operand, and format -it as a 16-bit little-endian word. We're assuming this is the load -address for the data that follows, so click on the line with address -$1002, select Actions > Set Address, and enter "2000". With that -line still selected, use Actions > Hint As Code Entry Point to identify -it as code.
+You could select the first two lines and use Actions > Edit Operand +to format them as a 16-bit little-endian hex value, but there's a shortcut: +select the first line only, then Edit > Format As Word (Ctrl+W). It +automatically grabbed the following byte and combined them. Since we believe +$2000 is the load address for everything that follows, click on the line +with address $1002, select Actions > Set Address, and enter "2000". With +that line still selected, use Actions > Hint As Code Entry Point +(Ctrl+H then Ctrl+C) to identify it as code.
That looks better, but it's branching off the bottom of the screen (unless you have a really tall screen or small fonts) because of all the intervening data. Use Edit > Toggle Data Scan to turn the string @@ -429,17 +433,18 @@ finder back on.
followed by $00. These look like null-terminated strings, so let's make it official. But first, let's do it wrong. Click on the line with address $2004 to select it. Hold the shift key down, then double-click -on the operand field of the line with address $2031 (i.e. click on -"last string"). +on the operand field of the line with address $2031 (i.e. double-click on +the words "last string").The Edit Data Format dialog opens, but the null-terminated strings option is not available. This is because we didn't include the null byte on the last string. To be recognized as one of the "special" string types, every selected string must match the expected pattern.
Cancel out of the dialog. Hold the control key down, and double-click -on the operand on line $203c ($00). Control-clicking adds the line to -the selection, and double-clicking the operand reopens the dialog. You -should see "Null-terminated strings (4)" as an available option now. Click -on that, then click OK. The strings are now shown as .ZSTR.
+on the operand on line $203c (.DD1 $00
). Control-clicking
+adds the line to the selection, and double-clicking the operand reopens
+the dialog. You should see "Null-terminated strings (4)" as an available
+option now. Click on that, then click OK. The strings are now shown
+as .ZSTR operands.
It's wise to save your work periodically. Use File > Save to create a project file for Tutorial2.
@@ -494,7 +499,9 @@ counts are adjusted for everything SourceGen can figure out. For example, the BEQ on line $205a shows "2+" cycles, meaning that it takes at least two cycles but might take more. That's because conditional branches take an extra cycles if the branch is taken. The BNE on line $2061" shows 3 cycles, -because we know that the branch is always taken. +because we know that the branch is always taken. (If you want to see why, +look at the value of the 'Z' flag in the "flags" column. Lower-case 'z' +means the zero-flag is clear.)The cycle-count comments are included in assembled output as well. If you add an end-of-line comment, it appears after the cycle count.
Hit Ctrl+S to save your project. Make that a habit.
@@ -530,7 +537,7 @@ you scroll up, you'll see that the stores to PTR1+1 and PTR2+1 are now just stores to $03 and $05.The nearby-target behavior is generally desirable, because it lets you avoid explicitly labeling every part of a multi-byte data item. For now, -use Edit > Undo to turn it back on.
+use Edit > Undo to switch it back on.The code at $2085 looks a bit strange. LDX, then a BIT with a weird symbol, then another LDX. If you look at the "bytes" column, you'll notice