The Three Registers: PF0, PF1, PF2#
Everything the playfield does starts with three 8-bit registers — PF0, PF1, PF2 — and the 20 bits of them the TIA actually draws. This page lays out exactly which bit lights which pixel. We will stay on the left half of the screen the whole way; the other half turns out to be a story of its own.
What one “pixel” is#
First, what these bits paint. A playfield pixel is a virtual block, generated on the fly by the TIA as the beam passes — not a dot in any frame buffer. Each is 4 color clocks wide and exactly one scanline tall. The playfield has no vertical resolution of its own: a pixel is one scanline high, and a taller block is just the same bits held unchanged across consecutive lines — exactly how the Christmas-tree kernel grows its shape.
Twenty bits, left to right#
The left half of the screen is 20 of these pixels. The TIA fills them, left to right, from the three registers in order: the four high bits of PF0, then all of PF1, then all of PF2. But the bit order within each register is the catch — and it is not uniform:
Reading that strip left to right reveals the two quirks the whole chapter keeps warning about:
PF0is only half a register. The low four bits (D0–D3) are unused; the picture starts at D4 and runs up through D7. The other nibble simply doesn’t appear.PF1is reversed. WherePF0andPF2count upward (D4→D7 and D0→D7),PF1is drawn downward, D7→D0. A pattern that looks correct written left-to-right in your head has to be entered intoPF1flipped end-for-end.
So the leftmost four pixels come from PF0’s high nibble, the next eight from PF1 read backwards, and the last eight from PF2 read forwards. Lay a shape across those boundaries and you are juggling three bit conventions at once — which is why playfield graphics are usually worked out on paper, or generated by a tool, rather than by eye.
…and then there’s the other half#
Notice what we have not touched: those 20 bits describe only the left 20 pixels. The screen is 40 pixels wide. You never wrote the right half at all — and yet something appears there on every line. Where do the other 20 pixels come from? That is the subject of Symmetry: Reflection & Repetition.