Write or pick a program
Type 6502 assembly in the editor or choose an example such as Snake, Colour bars or the maths demo. Programs start at $0600.
Type 6502 assembly and press Run: it is assembled and runs on a 32×32 colour screen with keyboard input.
Step one instruction at a time, set breakpoints and watch the registers, flags and memory change.
Loading the emulator…
Type 6502 assembly in the editor or choose an example such as Snake, Colour bars or the maths demo. Programs start at $0600.
Press Run (or Ctrl/⌘+Enter). The code is assembled; mistakes are listed with their line numbers. Click the screen to send keys to the program.
Pause, step one instruction at a time and click a line number to set a breakpoint. Watch the registers, flags, memory and disassembly as it runs.
The 6502 has three 8-bit registers, a 256-byte stack and a handful of addressing modes. These ideas get you a long way.
Each byte from $0200 to $05FF is one pixel, 32 per row. STA $0200 colours the top-left pixel; add $20 to move down one row.
Addresses $00–$FF take one byte to name and one cycle less to read. Keep counters and pointers there.
Store a 16-bit address in two zero-page bytes, low byte first, then LDA ($10),Y reads from that address plus Y. The Snake and pattern examples use this to walk the screen.
ADC adds the carry too, so start an addition with CLC and a subtraction with SEC. Branches like BCC and BCS test the carry afterwards.
After SED, ADC and SBC count in decimal: $58 + $46 gives $04 with the carry set (104). Handy for scores; turn it off again with CLD.
Every load and arithmetic instruction updates N and Z. Step through a loop and watch them change before the branch that tests them.
Create pixel-art sprites, title screens and short clips for your games and demos from a prompt with WaveSpeed AI.
Make sprites, tiles and title screens in a retro style.
Turn a still picture into a short animated clip.
Turn a picture into a 3D model.
$1 in free credits for eligible new accounts. No card needed. Generators have separate account and credit requirements. The 6502 emulator is free.
Yes. It is free with no sign-up, no ads and no limits. Your program is saved in your browser so it is still there next time.
The original NMOS 6502 with all 151 documented instructions, binary-coded decimal mode with the NMOS flag behaviour, the JMP ($xxFF) page bug and the documented cycle counts, including page-crossing and branch penalties.
It passes a widely used 6502 functional test program and 1.5 million single-instruction test cases that check registers, flags, memory and cycle counts.
64 KB of RAM. The screen is $0200–$05FF (one byte per pixel, 16 colours), reading $FE gives a new random byte, $FF holds the last key you pressed, and programs load at $0600. Programs written for the popular beginner 6502 tutorials that use this layout run unchanged.
Click or tap the screen, then type: the key's ASCII code goes to $FF. The arrow keys and the on-screen arrows send w, a, s and d, which the Snake and Paint examples use.
Labels (loop: or a word at the start of a line), constants (define name value or name = value), *= or .org, .byte/dcb, .word, .text, .asciiz and .res, numbers in hex ($FF), binary (%1010), decimal and characters ('A'), arithmetic, and < and > for the low and high byte. A value below $100 uses zero page; write $00FF to force the absolute form.
Click a line number (or press F9 on a line) to set a breakpoint. Run stops before that instruction; Step (F10) runs one instruction and highlights its line. The registers, flags, memory and disassembly update after every stop, which makes it a great way to learn 6502 assembly.
Your program is saved in your browser automatically. You can also save it as an .asm file, download the assembled .bin, copy a hex dump, save the whole machine state, or copy a link that contains the program.
No. Assembling and running happen in your browser. A share link keeps the program in the part of the address after #, which browsers do not send to the server.
Free, in your browser, with a debugger.