Both sides previous revisionPrevious revisionNext revision | Previous revision |
spo600:6502_emulator [2025/01/27 16:20] – [Using the Monitor] chris | spo600:6502_emulator [2025/04/09 21:14] (current) – chris |
---|
====== 6502 Emulator ====== | ====== 6502 Emulator ====== |
| |
A simple web-based [[6502]] emulator is available at [[http://6502.cdot.systems]] (note that this is an http link, not an https link). This emulator is used in the [[start|SPO600]] course to teach 8-bit [[Assembly Language|assembly language]] before transitioning to more complex 64-bit x86_64 and [[ARMv8#AArch64]] assembly language. | A simple web-based [[6502]] emulator is available at [[http://6502.proximity.on.ca]] (note that this is an http link, not an https link). This emulator is used in the [[start|SPO600]] course to teach 8-bit [[Assembly Language|assembly language]] before transitioning to more complex 64-bit x86_64 and [[ARMv8#AArch64]] assembly language. |
| |
In most 6502 documentation, including this page, the ''$'' prefix indicates hexadecimal notation. (Note that in some other contexts, hexadecimal is indicated by a ''0x'' prefix or an ''h'' suffix). | In most 6502 documentation, including this page, the ''$'' prefix indicates hexadecimal notation. (Note that in some other contexts, hexadecimal is indicated by a ''0x'' prefix or an ''h'' suffix). |
* Origin assignment: You can tell the assembler where to assemble the following code with this syntax: ''*=$XXXX'' where XXXX is an address in hexadecimal. Multiple origin assignments may be used. Example: ''*=$1800'' | * Origin assignment: You can tell the assembler where to assemble the following code with this syntax: ''*=$XXXX'' where XXXX is an address in hexadecimal. Multiple origin assignments may be used. Example: ''*=$1800'' |
* "define" directive: Macro assignments may be created with the "define" directive: ''define macro value'' -- for example: ''define WHITE $01'' -- the macro value will be substituted into lines wherever the macro name appears (e.g., ''LDA #WHITE''). | * "define" directive: Macro assignments may be created with the "define" directive: ''define macro value'' -- for example: ''define WHITE $01'' -- the macro value will be substituted into lines wherever the macro name appears (e.g., ''LDA #WHITE''). |
* "dcb" directive: the Define Constant Byte (dcb) directive will cause the assembler to place individual byte values into memory. These byte values may be in hexadecimal prefixed with $, decimal with no prefix, or single printable non-space characters quoted with double quotes. | * "dcb" directive: the Define Constant Byte (dcb) directive will cause the assembler to place individual byte values into memory. These byte values may be in hexadecimal prefixed with $, decimal with no prefix, or single printable non-space characters quoted with double quotes. A label may be placed in front of a dcb directive. |
| |
==== High and Low Label Bytes ==== | ==== High and Low Label Bytes ==== |