3,510 transistors, 1,725 nodes, every one of them switching for real
running
the chip is awake and nobody is interrupting it.
powering the die
3,510 transistors
3,510 transistors, 1,725 nodes, every one of them switching for real
running
the chip is awake and nobody is interrupting it.
A MOS 6502 from 1975, the chip inside the Apple II, the Commodore 64, the NES and the Atari 2600. Not an emulator of it. The real thing, transistor by transistor, running in your browser while you look at it.
In 2010 the visual6502 team removed the lid of a 6502, photographed the die and traced every one of its 3,510 transistors and 1,725 nodes. This page takes that netlist and solves the electrical network at every half cycle of the clock. Nothing here decides what an instruction does. The behaviour falls out of the transistors, the same way it did on your grandfather desk.
Every small slab is one transistor, sitting where it sat on the silicon. The lines above them are the connections in the netlist, which is how the signals actually travel. A transistor lights up when its gate is high, and brightest when it is conducting.
What is not shown is the metal artwork of the die photograph. That layer is published under a non commercial licence and this page leaves it alone. The positions and the connections are facts about a chip whose mask protection expired in 1985, and they are credited below.
TRACE writes one line per instruction: cycle, program counter, the raw bytes, the disassembly and every register. BUS writes one line per memory access. SIGNALS writes down the interrupts and the resets. You can download the whole thing. A log you cannot check is worth nothing.
The chip runs real 6502 machine code, assembled from source we wrote: a shift and add multiply, a bubble sort, the linear feedback shift register that gave arcade machines their randomness, a sixteen bit fibonacci, and a memory fill that verifies itself. You can read the source at /data/rom.s and the assembled bytes at /data/rom.bin.
The market does not decorate this chip, it interrupts it, which is how the outside world talks to a CPU for real. A buy pulls IRQ low and the size of the trade arrives in memory at $FE00. A big buy pulls NMI, which cannot be masked. A sell drops a byte on the data bus mid fetch and the chip swallows it, because silicon does not defend itself. A big sell pulls RES and you get to watch the whole reset sequence in the log. Volume sets the clock speed.
The netlist and the transistor positions come from the visual6502 project, by Greg James, Brian Silverman and Barry Silverman, who did the hard part. The pull up data comes from perfect6502 by Michael Steil. The node names are MIT licensed work by Brian Silverman, Barry Silverman, Ed Spittles and Segher Boessenkool. The simulator here was written from scratch, following the algorithm those projects made public.