When a programmer writes an assembly language program instead of directly referring to a memory address over and over again they use a symbolic name instead. For example, instead of always directly hard-coding $C000 everywhere to read the keyboard they would instead write:
KEYBOARD EQU $C000
1 LDA KEYBOARD
BPL 1
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: ADDRESS SYMBOL
e.g.
; IO Map
C000 KEYBOARD
There are 9 symbol tables to help organize "modules"; each symbol table individually can be turned off/on independently.
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
On startup the debugger reads 3 symbol tables by default: Main, Basic, User1.
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)
Command |
Effect |
SYM |
Display the number of symbols in the Main, User, and Source symbol tables. |
SYM #### |
Look-up the Symbol or Address, and display which Symbol Table it is in. |
SYMUSER LOAD |
Reloads the User Symbol Table: A2_USER1.SYM |
SYMUSER CLEAR |
Clears the User Symbol Table from RAM. |
SYMMAIN #### |
Look-up only in the Main symbol table. |
SYMUSER #### |
Look-up only in the User symbol table. |
SYMSRC #### |
Look-up only in the Source symbol table. |
SYM name = #### |
Add (or update) a symbol in the User table with the new Address. |
SYM ! name |
Remove a symbol from the User table. |
E symbol ## |
Set memory (at the symbol Address) to the 8-Bit (byte) Value. |
EB symbol #### |
Alias for E. |
E8 symbol #### |
Alias for E. |
EW symbol #### |
Set memory (at the symbol Address) to the 16-Bit (word) Value. |
E16 symbol #### |
Alias for EW. |
Examples:
Input |
Effect |
SYM |
Displays number of symbols in the Main, User, and Source tables. |
SYMMAIN CLEAR |
Clears the main symbol table!! |
SYMMAIN LOAD APPLE2E.SYM |
Reloads the main symbol table. |
SYM FA62 |
Look up the Address $FA62 (RESET). |
SYM HOME |
Look up the Address $FC58 (HOME). |
SYM LIFE = 300 |
Define a new user symbol, called “Life” at Address $0300. |
E LIFE 64 |
Set 8-Bit variable (@ $0300)“Life” to 100 (decimal). |
ew life 3e8 |
Set 16-Bit variable (@ $0300)“Life” to 1000 (decimal). |