|
TMS9918A VDP
|
The TMS9918A is the Video Display Processor (VDP) for the TI-99/4A. The TI-99/4 contained the TMS9918 (no A), and this
"A" is where the 4A got the "A" in its name. This was a powerful graphics chip and was used in several different
systems including the MSX.
|
KEY FEATURES OF THE TMS9918A |
|
- 256 x 192 Screen Resolution
- 15 colors plus transparent
- Direct wiring to 4K, 8K, or 16K dynamic RAM memories
- Automatic and transparent refresh of dynamic RAMs
- Composite video output
- Unique planar representation for 3D simulation
- Standard 40-pin package
|
The 16 Colors
Color (HEX) | Color | | Color (HEX) | Color | |
0 | Transparent | | 8 | Medium Red | |
1 | Black | | 9 | Light Red | |
2 | Medium Green | | A | Dark Yellow | |
3 | Light Green | | B | Light Yellow | |
4 | Dark Blue | | C | Dark Green | |
5 | Light Blue | | D | Magenta | |
6 | Dark Red | | E | Gray | |
7 | Cyan | | F | White | |
VIDEO DISPLAY MODES
The VDP displays an image on the screen that can best be envsioned as a set of display planes sandwiched together. The
graphic above shows the definition of each of the planes. Objects on planes closest to the viewer have higher priority.
In cases where two entities on two different planes are occupying the same spot on the screen, the entity on the higher priority
plane will show at that point. The first 32 planes each may contain a single sprite. The areas of the Sprite Planes,
outside of the sprite itself, are transparent. Since the coordinates of the sprite are in terms of pixels, the sprite can be
positioned and moved about very accurately. Sprites are available in three sizes: 8x8 pixels, 16x16 pixels, and
32x32 pixels.
Behind the Sprite Planes is the Pattern Plane. The Pattern Plane is used for textual and graphics images generated by the
Text, Graphics I, Graphics II, or Multicolor modes. Behind the Pattern Plane is the backdrop, which is larger in area than
the other planes so that it forms a border around the other planes. The last and lowest priority plane is the External VDP
Plane. Its image is defined by the external VDP input pin which allows the TMS9918A to mix the external video signal
internal to the chip.
Graphics I Mode
In this mode the Pattern Plane creates 24 rows of 32 characters with each character being 8x8 pixels in size. Two
unique colors are allowed for each character. You can use any of the 16 colors, but only two
at a time can be used in a character. This mode gives the standard 32 column output of the TI-99. Sprites can be used
in this mode.
Text Mode
This mode creates 24 rows of 40 characters, with each character being 6x8 pixels in size. Sprites are not available in
this mode and only two colors can be defined for the entire screen. In other words you could have a blue background with
yellow text. This mode would only be useful with text only programs, but does permit 40 column output.
Multicolor mode
In this mode the screen is broken into a grid of 64x48 positions, each which is a 4x4 pixel. Sprites can be used in this
mode.
Graphics II Mode (bitmap mode)
This mode is similar to the Graphics I mode except that it allows a larger library of patterns. It has the same 24
rows of 32 characters, with each character being 8x8 pixels in size. The cool thing though, is that it segments the
screen into three equal parts, where as the Graphics I mode only can only use the first third of the screen. Sprites are
available in this mode.
|
TMS9918A VDP BLOCK DIAGRAM
TMS 9918A PIN ASSIGNMENTS AND FUNCTIONS
SIGNATURE | PIN | I/0 | DESCRIPTION |
XTAL1, XTAL2 | 40,39 | I | 10.7+MHz crystal inputs |
CPUCLK | 38 | O | VDP color burst frequency clock.
Typically not used on the TMS9918A |
GROMCLK | 37 | O |
VDP output clock=XTAL/24. Typically not used. |
COMVID | 36 | O |
Composite video output for the TMS9918A. |
EXTVDP | 35 | I/O |
External VDP input. |
RESET/ SYNC | 34 | I |
The RESET pin is a trilevel input pin. When it is below 0.8 volts, RESET initializes the
VDP. When it is above 9 volts, RESET is the synchronizing input for the external video. |
VCC | 33 | I |
+5 volt supply |
RD0 (MSB) | 32 | I |
VRAM read data bus. |
RD1 | 31 | I |
VRAM read data bus. |
RD2 | 30 | I |
VRAM read data bus. |
RD3 | 29 | I |
VRAM read data bus. |
RD4 | 28 | I |
VRAM read data bus. |
RD5 | 27 | I |
VRAM read data bus. |
RD6 | 26 | I |
VRAM read data bus. |
RD7 | 25 | I |
VRAM read data bus. |
CD0 (MSB) | 24 | I/O |
CPU data bus |
CD1 | 23 | I/O |
CPU data bus |
CD2 | 22 | I/O |
CPU data bus |
CD3 | 21 | I/O |
CPU data bus |
CD4 | 20 | I/O |
CPU data bus |
CD5 | 19 | I/O |
CPU data bus |
CD6 | 18 | I/O |
CPU data bus |
CD7 (LSB) | 17 | I/O |
CPU data bus |
INT | 16 | O |
CPU interrupt output. |
CSR | 15 | I |
CPU-VDP read strobe |
CSW | 14 | I |
CPU-VDP write strobe |
MODE | 13 | I |
CPU interface mode select; usually a processor address line |
VSS | 12 | I |
Ground Reference |
R/W | 11 | O |
VRAM write strobe |
AD0 (MSB) | 10 | O |
VRAM address/data bus |
AD1 | 9 | O |
VRAM address/data bus |
AD2 | 8 | O |
VRAM address/data bus |
AD3 | 7 | O |
VRAM address/data bus |
AD4 | 6 | O |
VRAM address/data bus |
AD5 | 5 | O |
VRAM address/data bus |
AD6 | 4 | O |
VRAM address/data bus |
AD7 | 3 | O |
VRAM address/data bus |
CAS | 2 | O |
VRAM column address strobe |
RAS | 1 | O |
VRAM row address strobe |