SILICON ARCADE Build the machines that ate your pocket money
ATTRACT MODE MOS 6502 · RUST · CLEAN ROOM

You played it.
Now build the
machine that ran it.

Twenty-nine builds that start at LDA #$48 and end with a cycle-accurate 8-bit computer running real software on your desk. No hand-waving, no copied source, no chapter you cannot compile.

NO COIN REQUIRED — THE WHOLE BOOK IS FREE ON THE WEB

WHAT IT LOOKED LIKE LIVE
1UP 004250 HIGH SCORE 018600 STAGE 3
WHAT MAKES IT HAPPEN cpu_ops_arith.rs
// 0x6D  ADC absolute — 4 cycles
fn adc(&mut self, bus: &mut Bus, mode: Mode) {
    let m   = self.operand(bus, mode);
    let c   = u16::from(self.p.contains(Flags::C));
    let sum = u16::from(self.a) + u16::from(m) + c;
    let out = sum as u8;

    // V: the result’s sign disagrees with BOTH inputs
    self.p.set(Flags::V, (self.a ^ out) & (m ^ out) & 0x80 != 0);
    self.p.set(Flags::C, sum > 0xFF);
    self.a = out;
    self.set_zn(out);
}
151OPCODES, ALL OF THEM
3/3CONFORMANCE SUITES
29BUILDS, EACH ONE RUNS
0LINES BORROWED
THE PREMISE

Nostalgia gets you through the door. Understanding is why you stay.

01

A whole machine fits in your head

Fifty-six instructions. Sixty-four kilobytes of address space. This is the last generation of computer one person can hold completely — every cycle, every flag, every documented quirk.

02

Rust, taught by something real

Ownership, traits, exhaustive matching and wrapping arithmetic land differently when the compiler is stopping you corrupting a machine you can watch running.

03

The mistakes are in the book

Decimal-mode overflow. The indirect-jump page wrap. Why BRK pushes PC+2. Written up as they were found, not tidied away afterwards.

STAGE SELECT

Twenty-nine builds. Each one runs.

Every build ends with something on screen and a test that proves it.

STAGE 01PART 1
Hello, world LDA / JSR / RTS
STAGE 03INTERLUDE
The disassembler read your own bytes
STAGE 06PART 1
Memory dump indexed addressing
STAGE 09PART 2
Pseudo-random numbers an LFSR by hand
STAGE 10PART 2
Multiplication shift and add
STAGE 14PART 2
Division shift and subtract
STAGE 20PART 2
State machine parser jump-table dispatch
STAGE 21PART 2
A tiny monitor your first real program
STAGE 23INTERLUDE
BRK, IRQ and NMI the interrupt model
STAGE 26BOSS
Conformance finding real bugs
STAGE 27PART 3
Cycle counting page-cross penalties
STAGE 29FINAL
The application a machine on your desk

… PLUS SEVENTEEN MORE, THROUGH DECIMAL MODE, CONFORMANCE, CYCLE COUNTING AND THE FINISHED APPLICATION.

HOW YOU KNOW IT IS RIGHT

“Looks about right” is not a passing grade.

The book hands you the same conformance suites the emulator-writing community has used for years, and a scorecard you fill in as you go. You finish knowing exactly which corners of the chip you have proved and which you have not.

Test suites by Klaus Dormann, MIT licensed, used with attribution. Nothing here is derived from another emulator’s source.

cargo test --release
6502_functional_test
ok
6502_decimal_test
ok
6502_interrupt_test
ok
opcodes implemented
151 / 151
cycle counts verified
all modes
unsafe blocks
0
THE ARCADE FLOOR

One core. Then the machines it grew into.

The 6502 core

The CPU, the bus, the debugger. Everything else is built on this.

SHIPPING

A British micro

Video, sound, keyboard and a filing system. Volume two.

IN PROGRESS

Commodore 64

The same core, a very different machine around it.

QUEUED

Z80 family

Spectrum, Amstrad, Game Boy. A new core, the same method.

ON THE MAP
EDITIONS

The whole book is free to read on the web.

Buy a copy when it has earned it. That is the deal, and it is the reason this project exists in the shape it does.

FREE PLAY £0

The complete book on the web. All twenty-nine builds, every listing. No account, no wall, no email required.

READ NOW
INSERT COIN [YOUR PRICE]

6502 Construction Set in print, plus DRM-free PDF and EPUB and the full reference appendices.

PRE-ORDER
TWO PLAYER [YOUR PRICE]

The book, graded exercises with an autograder, the conformance harness, and the build channel.

JOIN THE LIST