A photograph of a chip, running
The 6502 was not the best processor of 1975. It was the one an engineer could afford out of pocket, and that turned out to matter more than everything else combined.
One chip was destroyed to make this
The visual6502 team decapped a 6502, photographed the die, traced every polygon by hand, and gave the result away. Everything below stands on that.
register & ALU section3,510 transistors that moved the industry
| Debut WESCON, Chuck Peddle's team at MOS Technology | Sept 1975 |
| Price against $179 for the 8080 and the 6800 | $25 |
| Transistors counted off the traced die, not the datasheet | 3,510 |
| Package 8-bit data, 16-bit address, 64 KB of space | 40-pin DIP |
| Clock 2 MHz for the 6502A; two phases per cycle | 1 MHz |
| Instructions 151 documented opcodes, 13 addressing modes | 56 |
| Registers plus S, PC and the P status byte | A · X · Y |
| Zero page reachable in one byte, so it acts like 256 registers | 256 bytes |
| Still shipping as WDC's 65C02, 50 years on | Today |
The instruction set
56 mnemonics, 151 documented opcodes, 13 addressing modes. An 8-bit opcode has room for 256, and the decoder answers to most of the rest as well, because it decodes bit patterns rather than consulting a table. The leftovers have been load-bearing in demoscene code for forty years.
ADCANDASLBCCBCSBEQBITBMIBNEBPLBRKBVCBVSCLCCLDCLICLVCMPCPXCPYDECDEXDEYEORINCINXINYJMPJSRLDALDXLDYLSRNOPORAPHAPHPPLAPLPROLRORRTIRTSSBCSECSEDSEISTASTXSTYTAXTAYTSXTXATXSTYA
Where the part landed
| Year | Machine | Part |
|---|---|---|
| 1976 | MOS KIM-1 | 6502 |
| 1977 | Apple II · Commodore PET · Atari VCS | 6502 / 6507 |
| 1979 | Atari 400 & 800 | 6502 |
| 1980 | Commodore VIC-20 · Acorn Atom | 6502 |
| 1981 | BBC Micro | 6502A |
| 1982 | Commodore 64 | 6510 |
| 1983 | Nintendo Famicom / NES | Ricoh 2A03 |
| 1986 | Apple IIgs | 65C816 |
Same polygons, new engine
The die geometry comes from the visual6502 trace untouched. What changed is how fast it can be solved and how it gets drawn.
It lights up
A node lights when it is logically high. That is not an animation: it is 3,510 switches being solved to a fixed point twice per clock cycle, and then painted.
It is connected
Tap a trace and it highlights what it is connected to at that instant. The connected group changes as transistors open and close, which is the entire point.
It is fast
About 28,500 half-cycles per second natively, roughly 94 times the original JavaScript, and the renderer redraws in six draw calls regardless of zoom, because the layout never changes.
How it is checked
A headless harness runs the original visual6502 JavaScript and dumps the level of all 1,725 nodes at every half-cycle. This engine matches bit for bit. Matching registers would only show agreement about the 6502; matching every node shows agreement about the silicon.
Then the datasheet oracle: documented cycle counts including page-crossing and branch penalties, the read-modify-write double write, JSR and RTS stack layout, ADC and SBC flags, decimal mode. A shared misreading of the die data would pass the first test and fail this one.
The archive is one hosting bill from gone
visual6502.org runs, but it has not been touched since January 2012, it is reachable over plain HTTP only, and browsers increasingly disagree with that. The chip collection index and the user guides are readable only through the Internet Archive.
None of that is a complaint. The team gave the work away under terms that let anyone carry it forward, which is exactly what this page is: a second copy, on hardware I control, with the links checked.
Everything 6502, in one place
43 resources in 7 groups. Anything with a warning chip has a problem you would otherwise have to discover yourself.
The source material
visual6502.org itself: the site, the simulators, the die shots, and the polygon data everything else is built on. It runs, but it has not been touched since 2012, and it is HTTP only.
| Resource | What it is | State |
|---|---|---|
| visual6502.org | The project home. Last content update: January 8, 2012. | http only |
| JSSim · the original simulator | The 2010 in-browser transistor-level 6502. Kiosk mode: play, step, reset. | ok |
| JSSim · advanced | Node search, memory editing, logged traces, arbitrary programs. Where the real work happens. | ok |
| Visual 6800 | The same treatment applied to Motorola's competitor. | ok |
| Visual ARM1 | The first ARM, simulated the same way. The 6502's most consequential descendant. | ok |
| visual6502 on GitHub | segdefs, transdefs, nodenames and chipsim: the geometry and the solver, MIT licensed. | ok |
| 6502 die shots | The high-resolution photographs of the decapped die that the polygons were traced from. | ok |
| The visual6502 wiki | The chip collection, the user guides, the working notes. The MediaWiki behind it now returns a 500. | down · 500 |
| Wiki, via the Internet Archive | The chips-in-our-collection index as it stood before the wiki fell over. | mirror |
| visual6502 blog | Decapping write-ups, new chips, and the reconstruction work as it happened. | ok |
| 6502 in Action · SIGGRAPH 2010 slides | The talk that introduced the project. Still the best short explanation of the method. | |
| SIGGRAPH 2010 abstract | Two pages on modelling a chip as polygons instead of behaviour. | |
| FAQ | Why not just write an emulator, how long a chip takes to preserve, and what the tooling is. | ok |
| Downloads | Netlists, polygon data and images, straight from the source. | ok |
| The original links page | The team's own bibliography, circa 2011. Several entries have rotted; most have not. | ok |
This rebuild
The same die data, re-rendered on the GPU and re-solved in a faster engine, verified node-for-node against the original.
| Resource | What it is | State |
|---|---|---|
| Visual 6502 · run it | Pan, zoom, tap a wire to trace its connected group, and watch the registers fall out of the silicon. | ok |
| tinymachines/6502 | Source for the renderer, the solver, and the verification harness. | ok |
| perfect6502 | Michael Steil's C port of the same netlist: the reference for how fast this simulation can go. | ok |
Reference and primary documents
What MOS actually shipped to engineers, plus the modern reference sites that superseded it.
| Resource | What it is | State |
|---|---|---|
| MCS6500 Family Hardware Manual (1976) | The original manual: pinouts, timing diagrams, bus behaviour, interrupt sequences. | |
| MCS6500 Family Programming Manual (1976) | MOS teaching you its own instruction set, addressing modes and idioms. | |
| 6502.org documents | The deepest single archive of datasheets, app notes and errata for the whole family. | ok |
| 6502 instruction set (mass:werk) | The cleanest opcode reference on the web: per-instruction flags, cycles and modes. | ok |
| Obelisk 6502 reference | Andrew Jacobs' tutorial-style architecture and instruction reference, rehoused at 6502.org. | ok |
| c64ref · 6502 tables | Side-by-side comparison of how a dozen sources document each opcode. Excellent for settling arguments. | ok |
| MOS 6502 on Wikipedia | The history, the variants, the lawsuit, and the part where it never really died. | ok |
The opcodes MOS never documented
56 mnemonics were published. The decoder responds to plenty more, because it decodes rather than looks up, and demoscene coders have been mining the leftovers ever since.
| Resource | What it is | State |
|---|---|---|
| How MOS 6502 illegal opcodes really work | Michael Steil derives the undocumented instructions from the decode ROM instead of cataloguing them. | ok |
| Extended opcode matrix (oxyron) | All 256 opcodes on one page, legal and otherwise, with cycles and flags. | ok |
| Opcode decoding logic | Neil Parker on the aaabbbcc bit pattern that makes the whole instruction set fall into place. | ok |
| NMOS 6510 Unintended Opcodes | The definitive community document on the unstable ones, down to which are safe at which temperature. | ok |
Learn it, write it, build one
The 6502 is still the best first CPU, and it is still buyable new.
| Resource | What it is | State |
|---|---|---|
| Ben Eater's 6502 computer | Build a working 6502 machine on breadboards, one video at a time. The modern on-ramp. | ok |
| easy6502 | Nick Morgan's tutorial with an assembler and simulator embedded right in the page. | ok |
| mass:werk disassembler | Paste bytes, get source. Handles the undocumented opcodes too. | ok |
| 6502.org tutorials | Decimal mode, interrupts, multiplication, 16-bit arithmetic: the hard-won practical notes. | ok |
| forum.6502.org | Still active, still answering questions, still the place homebrew designs get reviewed. | ok |
| Western Design Center | Bill Mensch, co-designer of the original, has been selling CMOS 6502s continuously since 1981. | ok |
The chips it shared a board with
A 6502 on its own does nothing visible. The machines people remember are the 6502 plus one strange custom chip.
| Resource | What it is | State |
|---|---|---|
| NESdev · CPU | The Ricoh 2A03: a 6502 with decimal mode fused off and a sound engine bolted on. | ok |
| C64-Wiki · 6510 | The 6502 with an I/O port grafted into zero page, which is how the C64 banks its memory. | ok |
| Stella | The Atari 2600 emulator. The 2600 had 128 bytes of RAM and no framebuffer: the CPU drew the picture. | ok |
| AtariAge | TIA schematics, the STELLA programmer's guide, and thirty years of 2600 programming threads. | ok |
| Apple II FPGA | Stephen Edwards rebuilds an entire Apple II, 6502 included, in reconfigurable logic. | ok |
Worth reading properly
Three pieces that explain why anyone bothers tracing polygons off a 50-year-old die.
| Resource | What it is | State |
|---|---|---|
| Simplicity Betrayed | George Phillips on why emulating a simple machine accurately is so much harder than it looks. | ok |
| The 6502 and the best layout guy in the world | Russ Cox on hand-drawn layout, and how much of the 6502's elegance is physical rather than logical. | ok |
| Intel 4004 35th anniversary project | The reconstruction effort that visual6502 explicitly took its cue from, and diverged from. | ok |
Credit
This exists because the visual6502 team decapped a 6502, photographed the die, traced it by hand, and gave it away: Greg James, Brian Silverman, Barry Silverman, Ed Spittles, Segher Boessenkool, Achim Breidenbach, and everyone else who contributed.
Code is MIT. The die geometry is CC BY-NC-SA 3.0, attributed to Greg James and www.visual6502.org, and those terms carry to this deployment and to anything you take from it.


