Model Machine

An 8-bit computer with no CPU. A language model reads the registers, the ROM and the memory, then returns the next machine state, one instruction at a time. A reference core runs beside it, so you can see how faithfully a model behaves as hardware.

Not signed in
Machine halted
clock 0 model - cost 0 tok core idle
ROM read only
Registers 8 bit
PC
0
A
000
X
000
Z flag
1
Memory 200-20F click a cell to poke
Core agreement no steps yet
Trace 0 retired
Press Step. Each step is one model call, and the model is doing the arithmetic.

What you are looking at

There is no CPU in this machine. The registers, the 16 bytes of memory and the ROM listing are real numbers held by this page. The transition from one of those states to the next is written by a language model on Pollinations, one instruction per call.

The reference core is forty lines of ordinary JavaScript that executes the same instruction set exactly. It runs the same program in parallel and never touches the model. The agreement bar is the fraction of steps where the model's registers matched the core's.

Models are good at this for a few instructions and then they drift: a flag goes stale, a branch is taken the wrong way, a register is quietly reset. Watching that happen is the point.

Instruction set

LDA #n / LDX #n load a literal. LDA 200 loads a byte from memory. STA 200 stores A. ADD #n, SUB #n, INC, DEC work on A and set Z when the result is zero. INX / DEX step X. CPX #n sets Z when X equals n. BNE 003 / BEQ 003 / JMP 003 jump to the line labelled 003. OUT prints A. HLT stops.

Every step, the page sends the model a state and the ROM, and asks for one JSON object back. Prose, a code fence, a number out of range or a missing key is a failed step, and the page says so instead of hiding it.

The page keeps your key in this tab, sends it to gen.pollinations.ai and nowhere else, and every model call is billed to your own Pollen.