The TIA (as seen by the programmer)

6.0 The Moveable Objects Graphics

All 5 moveable objects (P0, M0, P1, M1, BL) can be assigned a horizontal location on the screen and moved left or right relative to their location. Vertical positions, however, are treated in an entirely different manner. In principle, these objects appear at whatever scan lines their graphics registers are enabled. For example, let us assume the ball is to be positioned vertically in the center of the screen. The screen has 192 scan lines and we want the ball to be 2 scan lines thick. The ball graphics would be disabled until scan line 96, enabled for 2 scan lines, then disabled for the rest of the frame. Each type of object (players, missiles, and ball) has its own characteristics and limitations.

6.1 Missile Graphics (M0, M1)

The two missile graphics registers will draw a missile on any scan line by writing a 1 to the one bit enable missile registers (ENAM0, ENAM1). Writing a 0 to these registers will disable the graphics. The missiles left edge is positioned by a horizontal position register, but the right edge is a function of how wide the missile is make. Width of a missile is controlled by writing into bits D4 and D5 of the number-size registers (NUSIZ0, NUSIZ1). This has the effect of stretching the missile out over 1,2,4, or 8 color clock counts (a full scan line is 160 color clocks).

6.2 Ball Graphics (BL)

The ball graphics register works just like the missile registers. Writing a 1 to the enable ball register (ENABL) enables the ball graphics until the register is disabled. The ball can also be stretched to widths of 1, 2, 4, or 8 color clock counts by writing to bits D4 and D5 of the CTRLPF register.

The ball can also be vertically delayed one can line. For example, if the ball graphics were enabled on scan line 95, it could be delayed to not display on the screen until scan line 96 by writing a 1 to D0 of the vertical delay (VDELBL) register. The reason for having a vertical delay capability is because most programs will update the TIA every 2 lines. This confines all vertical movements of objects to 2 scan line jumps. The use of vertical delay allows the objects to move one scan line at a time.

6.3 Player Graphics (P0, P1)

The player graphics are the most sophisticated of all the moveable objects. They have all the capabilities of the missile and ball graphics, plus three move capabilities. Players can take on a shape such as a man or an airplane, and the player can easily be flipped over horizontally to display the mirror image (reflection) instead of the original image, plus multiple copies of the players can be created.

The player graphics are drawn line-by-line like all other graphics. The difference here is each scan line of the player is 8 bits wide, whereas the missiles and ball are one bit wide. Therefore, a player can be though of as being drawn of graph paper 8 squares wide and as tall as desired. To color in the squares of this imaginary graph paper, 8 data bits are written into the players graphics registers (GP0, GP1). This 8 bit register is scanned from D7 to D0, and wherever a 1 is found that square gets the players color (from the color-lum register) and where a 0 is found that square gets the background color. To position a player vertically, simply leave all 0s in the graphics registers (GP0, GP1) until the electron beam is on the scan line desired, write to the graphics register line- by-line describing the player, then write all 0s to turn off the players graphics until the end of that frame.

To display a mirror image (reflection) instead of the original figure, write a 1 to D3 of the one bit reflection register (REFP0, REFP1). A 0 written to these registers restores the original figure.

Multiple copies of players as well as their size are controlled by writing 3 bits (D0, D1, D2) into the number- size registers (NUSIZ0, NUSIZ1). These three bits select from 1 to 3 copies of the player, spacing of those copies, as well as the size of the player (each square of the player can be 1, 2, or 4 clocks wide). Whenever multiple copies are selected, the TIA automatically creates the same number of copies of the missile for that player. Again, the specifics of all this are laid out in the TIA hardware manual.

Vertical delay for the players works exactly like the ball by writing a 1 to D0 in the players vertical delay registers (VDELP0, VDELP1). Writing a 0 to these locations disables the vertical delay.

Back to Table of Contents

Back to '5.0 Playfield'
Forward to '7.0 Horizontal Positioning'

See also: 'TIA 1A - TELEVISION INTERFACE ADAPTOR (MODEL 1A) - 6. Moving Object Graphics Registers'