Silicon observatory / No. 002

Inside the 6510.

The chip that ran the Commodore 64. Write assembly, step it, watch the screen fill.

1982INTRODUCED
8 bitDATA WIDTH
985 kHzCLOCK
≈3,500TRANSISTORS
READY

02 / Video output

VIC-II subset
BORDER $D0200
BACKGROUND $D0210
RASTER $D012000
SCREEN BASE $D018$0400

03 / Processor die

MOS 6510
PROGRAM COUNTER$040016 OPCODE$A9 INSTRUCTION DECODERLDA #$01 8-BIT DATA PATH ABALU INDEX X / Y$00 $00 ACCUMULATOR$00 MEMORY / I/O STATUS REGISTERNV-BDIZC STACK POINTER$01FD
A · BINARY00000000
PC$0400
INSTRUCTIONS0
CYCLES0
Ready. Step to fetch and execute the first instruction.

04 / Registers & flags

Changes glow

Bit 5 is unused and always reads 1. Bit 4 (B) is not a real flip-flop: it only exists in the byte pushed by BRK and PHP.

05 / Memory

$04

One 256-byte page at a time. Green outline marks the program counter. Bytes changed by the last instruction flash. Reads of $D000–$DFFF go through the I/O rules; this dump shows the raw bytes underneath.

Execution trace

Newest first · last 60
No instructions executed.

07 / The instruction set

08 / What it got right, and what it got wrong

Measured against the 8080 and the 6800

What it got right

What it got wrong