Skip to content

// FIELD NOTES //

Development stories.

Stories from building the curriculum and its tools: what we tried, what happened, and what changed our understanding. Follow an investigation from the first surprising result to the evidence that helped explain it.

AMIGA · 68000

The Sheep That Slid Off the Hay Bale

A forty-year-old race condition, faithfully reproduced.

A sheep drifts off the back of a hay bale, a pixel every nine frames. The cause: two word-reads of the beam position, four cycles apart, disagreeing about what line it is.

Read →

AMIGA · THE CAPTURE RIG

Filming a Race Condition

In which I fail to reproduce my own bug, four nops at a time.

To film the sheep bug, I deleted the three-line fix and pointed the camera. The build refused to misbehave — and finding out why meant sweeping the poll phase one nop at a time.

Read →

THE SHIPPING BAR

The Game That Couldn't Be Won

In which sixteen verified units add up to zero finishable games, and a sheep teaches a robot to demand satisfaction.

After Flock, I audited the other three first games. Two had nothing to win — and Dash, the NES platformer, literally couldn't be finished: the jump was fifteen pixels, the pit sixteen.

Read →

SPECTRUM · ATTRIBUTE CLASH

What Attribute Clash Actually Taught

The Spectrum's most famous flaw, the myth that grew around it, and the design lesson underneath both.

One attribute byte per 8×8 cell is the reason you can spot a Spectrum screenshot across a crowded room. It's also why the Ultimate 'great sprites in one cell' story is a myth — and why the real lesson is better.

Read →

BASIC · SINCLAIR + C64

What You're Allowed to Call Things

On the Spectrum a string variable must be one letter. On the C64, speed and spell are the same variable. Both rules are a ROM showing through.

Type LET name$ = "Sam" into a Spectrum and it will not even take the line — just a flashing '?'. The reason is one comparison in the ROM's syntax checker — and it decides what you're allowed to call things.

Read →