mirror of
https://github.com/AppleWin/AppleWin.git
synced 2024-12-29 08:30:04 +00:00
510 lines
18 KiB
HTML
510 lines
18 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||
<html>
|
||
<head>
|
||
<title>AppleWin Debugger Tutorial</title>
|
||
<meta http-equiv="CONTENT-TYPE" content="text/html; charset=windows-1252">
|
||
</head>
|
||
<body style="DIRECTION: ltr" lang="en-US">
|
||
<h1><a name="Memory">Memory</a></h1>
|
||
<h3><a name="Memory_View">Viewing Memory</a></h3>
|
||
<p>There are two mini-memory areas on the info panel. You can view memory in
|
||
Hex, (normal 7-Bit) ASCII, or Apple (8-Bit) TEXT format.</p>
|
||
<p>Control characters are shown in yellow. The Apple uses something called
|
||
8-Bit (High-Bit) ASCII, in which the first 128 characters (normal ASCII) are
|
||
also mapped onto the last 128 characters, but with a different
|
||
background. (Technically, the first 64 characters are drawn inverse, the
|
||
next 64 characters flashing, and the last 128 normally.) Some programs
|
||
will store text in this extended Apple format, where a High-Bit character can
|
||
be used as a flag to represent an end of word.</p>
|
||
<p>Here is a summary:</p>
|
||
<ul>
|
||
<li>
|
||
<p style="MARGIN-BOTTOM: 0in"><i>Normal ASCII (non-control characters) will show up in
|
||
cyan; High-Bit text in white.</i></p>
|
||
<li>
|
||
<p style="MARGIN-BOTTOM: 0in"><i>Apple TEXT (normal ASCII) will also display with an
|
||
inverse background; High-Bit with a normal background.</i></p>
|
||
</li>
|
||
</ul>
|
||
<br>
|
||
<table border="0" cellpadding="2" cellspacing="0" width="75%">
|
||
<COLGROUP>
|
||
<col width="64">
|
||
<col width="192">
|
||
<tbody>
|
||
<tr bgcolor="#000000">
|
||
<td bgcolor="#000000" width="25%">
|
||
<p><font color="#ffffff"><b>Command</b></font></p>
|
||
</td>
|
||
<td bgcolor="#000000" width="75%">
|
||
<p style="FONT-STYLE: normal"><font color="#ffffff"><b>Effect</b></font></p>
|
||
</td>
|
||
</tr>
|
||
<tr bgcolor="#999999">
|
||
<td width="25%">
|
||
<p><font color="#000000"><font face="Courier"><b>M1 ####</b></font></font></p>
|
||
</td>
|
||
<td width="75%">
|
||
<p><i>View mini-memory 1 in Hex at the Address</i></p>
|
||
</td>
|
||
</tr>
|
||
<tr bgcolor="#cccccc">
|
||
<td width="25%">
|
||
<p><font color="#000000"><font face="Courier"><b>M2 ####</b></font></font></p>
|
||
</td>
|
||
<td width="75%">
|
||
<p><i>View mini-memory 2 in Hex at the Address</i></p>
|
||
</td>
|
||
</tr>
|
||
<tr bgcolor="#999999">
|
||
<td width="25%">
|
||
<p><font color="#000000"><font face="Courier"><b>MA1 ####</b></font></font></p>
|
||
</td>
|
||
<td width="75%">
|
||
<p><i>View mini-memory 1 in ASCII at the Address</i></p>
|
||
</td>
|
||
</tr>
|
||
<tr bgcolor="#cccccc">
|
||
<td width="25%">
|
||
<p><font color="#000000"><font face="Courier"><b>MA2 ####</b></font></font></p>
|
||
</td>
|
||
<td width="75%">
|
||
<p><i>View mini-memory 2 in ASCII at the Address</i></p>
|
||
</td>
|
||
</tr>
|
||
<tr bgcolor="#999999">
|
||
<td width="25%">
|
||
<p><font color="#000000"><font face="Courier"><b>MT1 ####</b></font></font></p>
|
||
</td>
|
||
<td width="75%">
|
||
<p><i>View mini-memory 1 in <20>Apple Text<78> at the Address</i></p>
|
||
</td>
|
||
</tr>
|
||
<tr bgcolor="#cccccc">
|
||
<td width="25%">
|
||
<p><font color="#000000"><font face="Courier"><b>MT2 ####</b></font></font></p>
|
||
</td>
|
||
<td width="75%">
|
||
<p><i>View mini-memory 1 in <20>Apple Text<78> at the Address</i></p>
|
||
</td>
|
||
</tr>
|
||
<tr bgcolor="#999999">
|
||
<td width="25%">
|
||
<p><font color="#000000"><font face="Courier"><b>D ####</b></font></font></p>
|
||
</td>
|
||
<td width="75%">
|
||
<p><i>Alias for M1</i></p>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<p><font size="3"><b>Examples</b>:</font></p>
|
||
<table bgcolor="#000000" border="0" cellpadding="2" cellspacing="0" width="90%">
|
||
<COLGROUP>
|
||
<col width="64">
|
||
<col width="192">
|
||
<tbody>
|
||
<tr bgcolor="#00b8ff">
|
||
<td bgcolor="#30c0ff" width="25%">
|
||
<p><font color="#000000"><b>Input </b></font>
|
||
</p>
|
||
</td>
|
||
<td bgcolor="#30c0ff" width="75%">
|
||
<p><font color="#000000"><b>Effect </b></font>
|
||
</p>
|
||
</td>
|
||
</tr>
|
||
<tr bgcolor="#000000">
|
||
<td width="25%">
|
||
<p><font color="#00b8ff"><font face="Courier"><b>MA1 D0D0</b></font></font></p>
|
||
</td>
|
||
<td width="75%">
|
||
<p><font color="#ffffff"><i>View Applesoft Tokens (Low ASCII cyan, High ASCII white)</i></font></p>
|
||
</td>
|
||
</tr>
|
||
<tr bgcolor="#000000">
|
||
<td bgcolor="#000000" width="25%">
|
||
<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">MT2
|
||
FF0A</span></b></font></font></p>
|
||
</td>
|
||
<td bgcolor="#000000" width="75%">
|
||
<p><font color="#ffffff"><i>View Apple message displayed when booted, showing Apple Model.</i></font></p>
|
||
</td>
|
||
</tr>
|
||
<tr bgcolor="#000000">
|
||
<td bgcolor="#000000" width="25%">
|
||
<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">DATA</span></b></font></font></p>
|
||
</td>
|
||
<td bgcolor="#000000" width="75%">
|
||
<p><font color="#ffffff"><i>Switch to the Data Window to view memory. Most scrolling keys
|
||
work.</i></font></p>
|
||
</td>
|
||
</tr>
|
||
<tr bgcolor="#000000">
|
||
<td bgcolor="#000000" width="25%">
|
||
<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">CODE</span></b></font></font></p>
|
||
</td>
|
||
<td bgcolor="#000000" width="75%">
|
||
<p><font color="#ffffff"><i>Switch to the Code Window to view the disassembler.</i></font></p>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<br>
|
||
|
||
<h3>Zero-page Watches</h3>
|
||
<p>Add a zero-page watch at the indirect address (nn).</p>
|
||
<table border="0" cellpadding="2" cellspacing="0" width="75%">
|
||
<COLGROUP>
|
||
<col width="64">
|
||
<col width="192">
|
||
<tbody>
|
||
<tr bgcolor="#000000">
|
||
<td bgcolor="#000000" width="25%">
|
||
<p><font color="#ffffff"><b>Command</b></font></p>
|
||
</td>
|
||
<td bgcolor="#000000" width="75%">
|
||
<p style="FONT-STYLE: normal"><font color="#ffffff"><b>Effect</b></font></p>
|
||
</td>
|
||
</tr>
|
||
<tr bgcolor="#999999">
|
||
<td width="25%">
|
||
<p><font color="#000000"><font face="Courier"><b>ZPA (or ZP) nn</b></font></font></p>
|
||
</td>
|
||
<td width="75%">
|
||
<p><i>Add/Update address to next zero page pointer</i></p>
|
||
</td>
|
||
</tr>
|
||
<tr bgcolor="#cccccc">
|
||
<td width="25%">
|
||
<p><font color="#000000"><font face="Courier"><b>ZPA (or ZP) # nn</b></font></font></p>
|
||
</td>
|
||
<td width="75%">
|
||
<p><i>Add/Update address to specific zero page pointer</i></p>
|
||
</td>
|
||
</tr>
|
||
<tr bgcolor="#999999">
|
||
<td width="25%">
|
||
<p><font color="#000000"><font face="Courier"><b>ZPC #</b></font></font></p>
|
||
</td>
|
||
<td width="75%">
|
||
<p><i>Clear (remove) zero page pointer</i></p>
|
||
</td>
|
||
</tr>
|
||
<tr bgcolor="#cccccc">
|
||
<td width="25%">
|
||
<p><font color="#000000"><font face="Courier"><b>ZPD #</b></font></font></p>
|
||
</td>
|
||
<td width="75%">
|
||
<p><i>Disable zero page pointer - it is still in the list, just not active</i></p>
|
||
</td>
|
||
</tr>
|
||
<tr bgcolor="#999999">
|
||
<td width="25%">
|
||
<p><font color="#000000"><font face="Courier"><b>ZPE #</b></font></font></p>
|
||
</td>
|
||
<td width="75%">
|
||
<p><i>(Re)Enable disabled zero page pointer</i></p>
|
||
</td>
|
||
</tr>
|
||
<tr bgcolor="#cccccc">
|
||
<td width="25%">
|
||
<p><font color="#000000"><font face="Courier"><b>ZPL</b></font></font></p>
|
||
</td>
|
||
<td width="75%">
|
||
<p><i>List all zero page pointers</i></p>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<br>
|
||
|
||
<h3>Memory Watches</h3>
|
||
<p>Add a 16-bit memory watch at the 16-bit address nnnn.<br>
|
||
NB. For 'WA # v': specifying 'v' instead of an address will watch the video scanner.</p>
|
||
<table border="0" cellpadding="2" cellspacing="0" width="75%">
|
||
<COLGROUP>
|
||
<col width="64">
|
||
<col width="192">
|
||
<tbody>
|
||
<tr bgcolor="#000000">
|
||
<td bgcolor="#000000" width="25%">
|
||
<p><font color="#ffffff"><b>Command</b></font></p>
|
||
</td>
|
||
<td bgcolor="#000000" width="75%">
|
||
<p style="FONT-STYLE: normal"><font color="#ffffff"><b>Effect</b></font></p>
|
||
</td>
|
||
</tr>
|
||
<tr bgcolor="#999999">
|
||
<td width="25%">
|
||
<p><font color="#000000"><font face="Courier"><b>WA (or W) nnnn|symbol</b></font></font></p>
|
||
</td>
|
||
<td width="75%">
|
||
<p><i>Add/Update address or symbol to next watch</i></p>
|
||
</td>
|
||
</tr>
|
||
<tr bgcolor="#cccccc">
|
||
<td width="25%">
|
||
<p><font color="#000000"><font face="Courier"><b>WA (or W) # nnnn|symbol|v</b></font></font></p>
|
||
</td>
|
||
<td width="75%">
|
||
<p><i>Add/Update address or symbol to specific watch</i></p>
|
||
</td>
|
||
</tr>
|
||
<tr bgcolor="#999999">
|
||
<td width="25%">
|
||
<p><font color="#000000"><font face="Courier"><b>WC #</b></font></font></p>
|
||
</td>
|
||
<td width="75%">
|
||
<p><i>Clear (remove) watch</i></p>
|
||
</td>
|
||
</tr>
|
||
<tr bgcolor="#cccccc">
|
||
<td width="25%">
|
||
<p><font color="#000000"><font face="Courier"><b>WD #</b></font></font></p>
|
||
</td>
|
||
<td width="75%">
|
||
<p><i>Disable specific watch - it is still in the list, just not active</i></p>
|
||
</td>
|
||
</tr>
|
||
<tr bgcolor="#999999">
|
||
<td width="25%">
|
||
<p><font color="#000000"><font face="Courier"><b>WE #</b></font></font></p>
|
||
</td>
|
||
<td width="75%">
|
||
<p><i>(Re)Enable disabled watch</i></p>
|
||
</td>
|
||
</tr>
|
||
<tr bgcolor="#cccccc">
|
||
<td width="25%">
|
||
<p><font color="#000000"><font face="Courier"><b>WL</b></font></font></p>
|
||
</td>
|
||
<td width="75%">
|
||
<p><i>List all watches</i></p>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<br>
|
||
|
||
<h3><a name="Memory_Search">Searching Memory</a></h3>
|
||
<p>You can search memory for hex values. Wildcard support is also supported
|
||
via the '<b>?</b>' wildcard operator, including nibble searching. A
|
||
single '<b>?</b>' by itself, means match one byte of any value. A hex
|
||
value with the high nibble or low nibble of '<b>?</b>' will mask off the
|
||
corresponding nibble. (At the moment there is no way to refer to the
|
||
list of results. A future version will support _# to reference
|
||
search result's addresses.)</p>
|
||
<p>Searching memory for text is forthcoming in a future version of the debugger.</p>
|
||
<br>
|
||
<table border="0" cellpadding="2" cellspacing="0" width="75%">
|
||
<COLGROUP>
|
||
<col width="64">
|
||
<col width="192">
|
||
<tbody>
|
||
<tr bgcolor="#000000">
|
||
<td bgcolor="#000000" width="25%">
|
||
<p><font color="#ffffff"><b>Command</b></font></p>
|
||
</td>
|
||
<td bgcolor="#000000" width="75%">
|
||
<p><font color="#ffffff"><b>Effect</b></font></p>
|
||
</td>
|
||
</tr>
|
||
<tr bgcolor="#cccccc">
|
||
<td width="25%">
|
||
<p><font color="#000000" face="Courier"><b>SH #,len byte1 <20></b></font></p>
|
||
</td>
|
||
<td width="75%">
|
||
<p><i>Search memory for 8-bit hex value(s).</i></p>
|
||
</td>
|
||
</tr>
|
||
<tr bgcolor="#999999">
|
||
<td width="25%">
|
||
<p><font color="#000000"><font face="Courier"><b>SH #,len word1 <20></b></font></font></p>
|
||
</td>
|
||
<td width="75%">
|
||
<p><i>Search memory for 16-bit value(s).</i></p>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<br>
|
||
<p><font size="4"><b>Examples</b>:</font></p>
|
||
<table bgcolor="#000000" border="0" cellpadding="2" cellspacing="0" width="90%">
|
||
<COLGROUP>
|
||
<col width="64">
|
||
<col width="192">
|
||
<tbody>
|
||
<tr bgcolor="#00b8ff">
|
||
<td bgcolor="#30c0ff" width="25%">
|
||
<p><font color="#000000"><b>Input </b></font>
|
||
</p>
|
||
</td>
|
||
<td bgcolor="#30c0ff" width="75%">
|
||
<p><font color="#000000"><b>Effect </b></font>
|
||
</p>
|
||
</td>
|
||
</tr>
|
||
<tr bgcolor="#000000">
|
||
<td width="25%">
|
||
<p><b><font color="#00b8ff" face="Courier">SH 800,8000 C030</font></b></p>
|
||
</td>
|
||
<td width="75%">
|
||
<p><i><font color="#ffffff">Search memory for speaker access.</font></i></p>
|
||
</td>
|
||
</tr>
|
||
<tr bgcolor="#000000">
|
||
<td bgcolor="#000000" width="25%">
|
||
<p><b><font color="#00b8ff" face="Courier">SH 800,8000 AD ? C0</font></b></p>
|
||
</td>
|
||
<td bgcolor="#000000" width="75%">
|
||
<p><i><font color="#ffffff">Search memory for <20> <b>LDA $<font color="#ffff00">C0xx</font></b><EFBFBD>.</font></i></p>
|
||
</td>
|
||
</tr>
|
||
<tr bgcolor="#000000">
|
||
<td bgcolor="#000000" width="25%">
|
||
<p><b><font color="#00b8ff" face="Courier">SH 800,8000 3? C0</font></b></p>
|
||
</td>
|
||
<td bgcolor="#000000" width="75%">
|
||
<p><i><font color="#ffffff">Search memory for speaker access <b>$<font color="#ffff00">C03x</font></b>.</font></i></p>
|
||
</td>
|
||
</tr>
|
||
<tr bgcolor="#000000">
|
||
<td bgcolor="#000000" width="25%">
|
||
<p><b><font color="#00b8ff" face="Courier">SH 800,8000 ?1 C0</font></b></p>
|
||
</td>
|
||
<td bgcolor="#000000" width="75%">
|
||
<p><i><font color="#ffffff">Search memory for soft-switch $<b><font color="#ffff00">C0x1</font></b>.</font></i></p>
|
||
</td>
|
||
</tr>
|
||
<tr bgcolor="#000000">
|
||
<td bgcolor="#000000" width="25%">
|
||
<p><b><font color="#00b8ff" face="Courier">L _1</font></b></p>
|
||
</td>
|
||
<td bgcolor="#000000" width="75%">
|
||
<p><i><font color="#ffffff">Disassemble from search result #<b><font color="#ffff00">1</font></b>
|
||
address.</font></i></p>
|
||
<p><i><font color="#ffffff">Note: Not yet implemented!</font></i></p>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<br>
|
||
<h3><a name="Memory_Change">Changing Memory</a></h3>
|
||
<p>To change the Apple's memory, the classic "Apple Monitor" command to enter
|
||
memory is recognized, as well as the "normal" debugger comamnd.<br>
|
||
</p>
|
||
<br>
|
||
<table border="0" cellpadding="2" cellspacing="0" width="75%">
|
||
<COLGROUP>
|
||
<col width="64">
|
||
<col width="192">
|
||
<tbody>
|
||
<tr bgcolor="#000000">
|
||
<td bgcolor="#000000" width="25%">
|
||
<p><font color="#ffffff"><b>Command</b></font></p>
|
||
</td>
|
||
<td bgcolor="#000000" width="75%">
|
||
<p><font color="#ffffff"><b>Effect</b></font></p>
|
||
</td>
|
||
</tr>
|
||
<tr bgcolor="#cccccc">
|
||
<td width="25%">
|
||
<p><font color="#000000"><font face="Courier"><b>####:byte1 <20></b></font></font></p>
|
||
</td>
|
||
<td width="75%">
|
||
<p><i>Classic "Apple Monitor" command to enter byte(s). Alias for E.</i></p>
|
||
</td>
|
||
</tr>
|
||
<tr bgcolor="#999999">
|
||
<td width="25%">
|
||
<p><font color="#000000" face="Courier"><b>E addr byte1 <20></b></font></p>
|
||
</td>
|
||
<td width="75%">
|
||
<p><i>Set memory to the 8-Bit (byte) value(s)</i><i>.</i></p>
|
||
</td>
|
||
</tr>
|
||
<tr bgcolor="#cccccc">
|
||
<td width="25%">
|
||
<p><font color="#000000" face="Courier"><b>EB symbol ####</b></font></p>
|
||
</td>
|
||
<td width="75%">
|
||
<p><i>Alias for E.</i></p>
|
||
</td>
|
||
</tr>
|
||
<tr bgcolor="#999999">
|
||
<td width="25%">
|
||
<p><font color="#000000"><font face="Courier"><b>E8 symbol ####</b></font></font></p>
|
||
</td>
|
||
<td width="75%">
|
||
<p><i>Alias for E.</i></p>
|
||
</td>
|
||
</tr>
|
||
<tr bgcolor="#cccccc">
|
||
<td width="25%">
|
||
<p><font color="#000000"><font face="Courier"><b>EW symbol ####</b></font></font></p>
|
||
</td>
|
||
<td width="75%">
|
||
<p><i>Set memory (at the symbol Address) to the 16-Bit (word) Value(s).</i></p>
|
||
</td>
|
||
</tr>
|
||
<tr bgcolor="#999999">
|
||
<td width="25%">
|
||
<p><font color="#000000"><font face="Courier"><b>E16 symbol ####</b></font></font></p>
|
||
</td>
|
||
<td width="75%">
|
||
<p><i>Alias for EW.</i></p>
|
||
</td>
|
||
</tr>
|
||
<tr bgcolor="#cccccc">
|
||
<td width="25%">
|
||
<p><font color="#000000"><font face="Courier"><b>NOP</b></font></font></p>
|
||
</td>
|
||
<td width="75%">
|
||
<p><i>Writes an <20>NOP<4F> opcode (EA) at the current Program Counter (PC)</i></p>
|
||
</td>
|
||
</tr>
|
||
<tr bgcolor="#999999">
|
||
<td width="25%">
|
||
<p><font color="#000000"><font face="Courier"><b>ZAP</b></font></font></p>
|
||
</td>
|
||
<td width="75%">
|
||
<p><i>Alias for NOP.</i></p>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<br>
|
||
<p><font size="4"><b>Examples</b>:</font></p>
|
||
<table bgcolor="#000000" border="0" cellpadding="2" cellspacing="0" width="90%">
|
||
<COLGROUP>
|
||
<col width="64">
|
||
<col width="192">
|
||
<tbody>
|
||
<tr bgcolor="#00b8ff">
|
||
<td bgcolor="#30c0ff" width="25%">
|
||
<p><font color="#000000"><b>Input </b></font>
|
||
</p>
|
||
</td>
|
||
<td bgcolor="#30c0ff" width="75%">
|
||
<p><font color="#000000"><b>Effect </b></font>
|
||
</p>
|
||
</td>
|
||
</tr>
|
||
<tr bgcolor="#000000">
|
||
<td width="25%">
|
||
<p><font color="#00b8ff"><font face="Courier"><b>300:60</b></font></font></p>
|
||
</td>
|
||
<td width="75%">
|
||
<p><i><span style="COLOR: white">Same
|
||
as Applesoft Poke 768,96</span></i></p>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h2>
|
||
<br>
|
||
</h2>
|
||
</body>
|
||
</html>
|