The TIA (as seen by the programmer)
7.0 Horizontal Positioning
The horizontal position of each object is set by writing to
its associated reset register (RESP0, RESP1, RESM0, RESM1,
RESBL) which are all strobe registers (they trigger their
function as soon as they are addressed). That causes the
object to be positioned wherever the electron bean was in
its sweep across the screen when the register was reset.
for example, if the electron beam was 60 color clocks into
a scan line when RESP0 was written to, player 0 would be
positioned 60 color clocks "in on the next scan line.
Whether or not P0 is actually drawn on the screen is a
function of the data in the GP0 register, but if it were
drawn, it would show up at 60. Resets to these registers
anywhere during horizontal blanking will position objects
at the left edge of the screen (color clock 0). Since
there are 3 color clocks per machine cycle, and it can take
up to 5 machine cycles to write the register, the
programmer is confined to positioning the objects at 15
color clock intervals across the screen. This course
positioning is fine tuned by the Horizontal Motion,
explained in section 8.0.
Missiles have an additional positioning command. Writing a
1 to D1 of the reset missile-to-player register (RESMP0,
RESMP1) disables that missiles graphics (turns it off) and
repositions it horizontally to the center of its
associated player. Until a 0 is written to the register,
the missiles horizontal position is locked to the center
of its player in preparation to be fired again.