(cherry picked from commit 864e88e992b7868db06866d94ea2097c3f6e17b5)
This commit is contained in:
parent
763b8172f0
commit
7ce956212c
1 changed files with 44 additions and 13 deletions
|
@ -6,11 +6,42 @@
|
||||||
</head>
|
</head>
|
||||||
<body style="DIRECTION: ltr" lang="en-US">
|
<body style="DIRECTION: ltr" lang="en-US">
|
||||||
<h2><a name="Symbols"></a>Symbols</h2>
|
<h2><a name="Symbols"></a>Symbols</h2>
|
||||||
<p>AppleWin supports loading of ACME, and Merlin Symbol Tables. The default
|
<p>
|
||||||
filename read into the Main Symbol Table is “APPLE2E.SYM”.</p>
|
When a programmer writes an assembly language program instead of directly referring to a memory address over and over again they use a <b>symbolic name</b> instead.
|
||||||
<p>Looking up symbols is now easier. Can't remember an address of a symbol,
|
For example, instead of always directly hard-coding $C000 everywhere to read the keyboard they would instead write:
|
||||||
or can't remember the symbol for an address? The new symbol commands
|
<p><font color="#00b8ff"><font face="courier"><b><pre style="background: rgb(0,0,0) 0% 50%;">
|
||||||
makes it easy:</p>
|
KEYBOARD EQU $C000
|
||||||
|
1 LDA KEYBOARD
|
||||||
|
BPL 1
|
||||||
|
</pre></b></font></font></p>
|
||||||
|
</p>When debugging assembly programs since you typically don't have the source file availabe you can tell the debugger how to interpret a memory address as a variable name or symbol.
|
||||||
|
A <b>symbol</b> is the symbolic name and the address assigned to it.</P>
|
||||||
|
<p>AppleWin supports loading of the assemblers ACME, and Merlin's symbol tables -- a collection of symbols, one per line, organized and collectively called a symbol table.
|
||||||
|
The semi-colon is a comment-till-end-of-line. The file format per line is: <b>ADDRESS SYMBOL</b></p>
|
||||||
|
<p>e.g.
|
||||||
|
<p><font color="#00b8ff"><font face="courier"><b><pre style="background: rgb(0,0,0) 0% 50%;">
|
||||||
|
; IO Map
|
||||||
|
C000 KEYBOARD
|
||||||
|
</pre></b></font></font></p>
|
||||||
|
|
||||||
|
<p>There are 9 symbol tables to help organize "modules"; each symbol table individually can be turned off/on independently.
|
||||||
|
<pre>
|
||||||
|
MAIN APPLE2E.SYM
|
||||||
|
BASIC A2_BASIC.SYM
|
||||||
|
ASM A2_ASM.SYM
|
||||||
|
User1 A2_USER1.SYM
|
||||||
|
User2 A2_USER2.SYM
|
||||||
|
Src1 A2_SRC1.SYM
|
||||||
|
Src2 A2_SRC2.SYM
|
||||||
|
DOS33 A2_DOS33.SYM
|
||||||
|
PRODOS A2_PRODOS.SYM
|
||||||
|
</pre></p>
|
||||||
|
<p>On startup the debugger reads 3 symbol tables by default: Main, Basic, User1.</p>
|
||||||
|
</p>
|
||||||
|
<p>Looking up symbols is easy. If you can't remember an address of a symbol,
|
||||||
|
or the reversse -- can't remember the symbol for an address -- you can use the following symbol commands:
|
||||||
|
(#### referes to either a hex address or a symbolic name)
|
||||||
|
</p>
|
||||||
<p><br>
|
<p><br>
|
||||||
<br>
|
<br>
|
||||||
</p>
|
</p>
|
||||||
|
@ -48,22 +79,22 @@ the Symbol or Address, and display which Symbol Table it is in.</span></i></p>
|
||||||
</tr>
|
</tr>
|
||||||
<tr bgcolor="#cccccc">
|
<tr bgcolor="#cccccc">
|
||||||
<td width="25%">
|
<td width="25%">
|
||||||
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">SYMUSER
|
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; ">SYMUSER
|
||||||
LOAD</span></b></font></font></p>
|
LOAD</span></b></font></font></p>
|
||||||
</td>
|
</td>
|
||||||
<td width="75%">
|
<td width="75%">
|
||||||
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Loads
|
<p><i><span style="BACKGROUND: 0% 50%; ">Reloads
|
||||||
the User Symbol Table.</span></i></p>
|
the User Symbol Table: <b>A2_USER1.SYM</b></span></i></p>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr bgcolor="#999999">
|
<tr bgcolor="#999999">
|
||||||
<td width="25%">
|
<td width="25%">
|
||||||
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">SYMUSER
|
<p><font color="#000000"><font face="Courier"><b><span style="BACKGROUND: 0% 50%; ">SYMUSER
|
||||||
CLEAR</span></b></font></font></p>
|
CLEAR</span></b></font></font></p>
|
||||||
</td>
|
</td>
|
||||||
<td width="75%">
|
<td width="75%">
|
||||||
<p><i><span style="BACKGROUND: 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">Clears
|
<p><i><span style="BACKGROUND: 0% 50%;">Clears
|
||||||
the User Symbol Table!</span></i></p>
|
the User Symbol Table from RAM.</span></i></p>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr bgcolor="#cccccc">
|
<tr bgcolor="#cccccc">
|
||||||
|
@ -239,8 +270,8 @@ LIFE 64</span></b></font></font></p>
|
||||||
</tr>
|
</tr>
|
||||||
<tr bgcolor="#000000">
|
<tr bgcolor="#000000">
|
||||||
<td bgcolor="#000000" width="276">
|
<td bgcolor="#000000" width="276">
|
||||||
<p><font color="#00b8ff"><font face="Courier"><b><span style="BACKGROUND: rgb(0,0,0) 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">EW
|
<p><font color="#00b8ff"><font face="courier"><b><span style="background: rgb(0,0,0) 0% 50%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial">ew
|
||||||
LIFE 3E8</span></b></font></font></p>
|
life 3e8</span></b></font></font></p>
|
||||||
</td>
|
</td>
|
||||||
<td bgcolor="#000000" width="515">
|
<td bgcolor="#000000" width="515">
|
||||||
<p><font color="#ffffff"><i>Set 16-Bit variable (@ $<b><font color="#ffff00">0300</font></b>)“Life”
|
<p><font color="#ffffff"><i>Set 16-Bit variable (@ $<b><font color="#ffff00">0300</font></b>)“Life”
|
||||||
|
|
Loading…
Add table
Reference in a new issue