A working MOS 6502 microcomputer simulator running entirely in your browser — CPU, RAM, ROM, video chip, and a real 6522 VIA peripheral, all wired to a memory-mapped bus. The same code runs as a terminal app and as this WebAssembly build. Long-term goal: a teaching tool for how 6502-era machines actually worked — chip selects, memory-mapped I/O, polling vs. interrupts, and writing assembly that transfers to real silicon.
GOOS=js and renders the TUI to a canvas.Windows, menus, status bar, drop shadows, drag-to-move — this is foxpro-go, a from-scratch homage to FoxPro for DOS's TUI (and dBASE before it). The simulator embeds it as the host shell.
Try: F10 opens the menu bar. Drag any window by its
title. Right-click on the desktop to drag the whole layout.
$FFFC.| Range | Device |
|---|---|
| $0000-$1FFF | RAM (8 KB) |
| $2000-$9FFF | open / expansion |
| $A000-$A3FF | VIC color plane |
| $A400-$A7FF | VIC char plane |
| $A800-$ABFF | VIC controller |
| $B000-$B0FF | 6522 VIA #1 |
| $B100-$BFFF | peripheral slots (15×) |
| $C000-$DFFF | VIC graphics plane |
| $E000-$FFFF | ROM |
v to cycle Hex / Disasm / Labels.$B000 to inspect the VIA.Each peripheral lives on its own chip-select region, decoded by high address bits exactly the way a 74HC138 would on a real board. The VIA's registers mirror every 16 bytes through its 256-byte CS block — same as a real 65C22 with only 4 register-select pins. The intent: demos written here transfer to real silicon unmodified.
v to cycle Hex / Disasm / Labels.Carl Edwards · thecarledwards.com