video "titlers" that could overlay text or graphics on video, while the '2' version does not. TMS9118, TMS9128, and TMS9129 A later variant of the TMS9918 series chips, the TMS9118, TMS9128, and TMS9129, were released in the mid-late 1980s, but were never very popular. The function of one pin is changed, and the mapping of the video memory allows two 16Kx4-bit chips to be used instead of the eight 16Kx1-bit chips the TMS99xx needs. Otherwise the chips are completely identical to the TMS9918A, TMS9928A and TMS9929A respectively. External interfaces Video RAM The VDP has 16K × 8 bits of external video memory. This memory is outside the address space of the CPU. Having a separate address space means that the CPU has to do more work to write or read this memory, but it also means that the VDC doesn't slow the CPU down when it periodically reads this memory to generate the display. Additionally, it leaves more address space available to the CPU for other memory and memory-mapped hardware. Depending on the screen mode being used, not all of the video memory may be needed to generate the display. In these cases, the CPU may use the extra video memory for other purposes. For example, one use is as a scratch-pad for uncompressing graphics or sound data stored in cartridge ROM into. Another popular use is to create a second copy of some or all of the display data to eliminate flickering and tearing, a technique known as double buffering. CPU The CPU communicates with the VDP through an 8-bit bus. A pin controlled by the CPU separates this bus into two "ports", a control port and a data port. To write or read a byte of video memory, the CPU first has to write two bytes on the VDP's control port to the VDC's internal address register. Next, the CPU performs the actual write or read on the VDP's data port. As a data byte is written or read, the TMS9918 automatically increments the internal address register. This auto-increment feature accelerates writes and reads of blocks of data. The control port is also used to access various internal registers. Graphics The TMS9918 has two separate and distinct graphics types: characters and sprites. Characters Characters are typically used to create text or background images. They appear behind sprites. Screen modes The TMS9918 has a number of screen modes that