Changes

Jump to: navigation, search

6502 Emulator

412 bytes added, 11:00, 4 March 2020
no edit summary
[[Category:SPO600]][[Category:6502]][[Category:Assembly Language]][[Image:6502_Emulator_Screenshot.png|thumb|400px|right|A screen shot of the 6502 Emulator running [[6502_Emulator_Example_Code#Etch-a-Sketchtm_Style_Drawing|the drawing example code]].]]
A simple web-based [[6502]] emulator is available at [http://6502.cdot.systems http://6502.cdot.systems]. This emulator is used in the [[SPO600]] course to teach 8-bit [[Assembly Language|assembly language]] before transitioning to more complex 64-bit x86_64 and [[AArch64]] assembly language.
== Basic Controls ==
The emulator has a text area for data entryentering and editing code, a small bit-mapped graphics screen (32x32 pixels), a character screen (80x25 characters), a debug area, a memory monitor, and a message area.
These controls are available at the top of the screen:
The Speed slider lets you adjust the speed of the emulator from about 1% of native 6502 performance (left) to roughly full native speed (right). Setting the speed slider to a lower setting can be useful for debugging and for viewing the progress of operations on the displays.
There are also controls to Save and Load the text area to/from local storage on the computer on which it is running (as a download/upload); this works nicely with a local github repository.
== Using the Debugger ==
== Using the Monitor ==
Selecting the Monitor checkbox will display the specified region of memory as code is executed. For example, specifying a start of $00 and a length of $ff 100 will display the entire zero page.
== Turning the Text Screen On/Off ==
If C=0: X,Y registers set the cursor position
Y:X A is returned as a pointer to the current screen position (i.e., Y is the high byte and A is the low byte of a pointer to the memory address of the current cursor position)
If C=1: X,Y registers return the current cursor position

Navigation menu