![](http://datasheet.mmic.net.cn/370000/TVP3026-135_datasheet_16743199/TVP3026-135_45.png)
2–31
2.7
The TVP3026 has an on-chip three-color 64x64 pixel user-definable cursor. The cursor operation defaults
to the XGA standard, but X-windows and three-color modes are also available (see subsection 2.7.3,
Three-Color 64 X 64 Cursor). The cursor operates in both noninterlaced and interlaced modes.
On-Chip Cursor
The pattern for the 64 x 64 cursor is provided by the cursor RAM, which may be accessed by the MPU at
any time. Cursor positioning is performed using the cursor-position (x,y) registers (see register bit definitions
in subsection 2.15.5, Cursor Position-(x,y) Registers). Positions x and y are defined in the TVP3026
increasing from left to right and from top to bottom, respectively, as seen on the display screen.
On-chip cursor control is performed by the indirect cursor-control register (index: 0x06). The direct cursor
control register provides an alternate means of enabling and disabling the cursor and selecting the cursor
mode. See the cursor-control register bit definitions in subsection 2.15.3, Indirect Cursor Control Register
and subsection 2.15.4, Direct Cursor-Control Register for more details.
2.7.1
The 64 x 64 x 2 cursor RAM defines the pixel pattern within the 64x64 pixel cursor window. It is not initialized
and may be written to or read by the MPU at any time, even when the cursor is enabled.
Cursor RAM
The cursor RAM address zero is at the top left corner of the RAM as shown in Figure 2–8. The 0 bits for the
entire cursor array (associated with the cursor plane) cursor plane are stored in the first 512 bytes of the
RAM, and the 1 bits for the entire cursor array are stored in the last 512 bytes of the RAM. Information for
eight cursor pixels is stored in each byte. The MSB (D7) corresponds with the first or leftmost pixel displayed
on the screen.
The 64 x 64 x 2 cursor RAM stores a total of 8192 bits and is accessed through the 8-bit MPU data bus. There
are, therefore, 1024 bytes stored in the RAM and a 10-bit address is used. The upper two bits of the cursor
RAM address (A9, A8) are written to cursor control register (index: 0x06) bits CCR3 and CCR2. The MSB
of the address (CCR3) selects cursor plane 0 or cursor plane 1. The lower eight bits of the cursor RAM
address (A7–A0) are written to the cursor RAM write address register (direct register: 0000) for writing to
the RAM and to the cursor RAM read address register (direct register: 0011) for reading the RAM. Then the
plane 0 or 1 data for the first eight pixels is written to the cursor RAM data register (direct register: 1011).
This stores the cursor pixel data in the cursor RAM and automatically increments the cursor RAM address
register. The upper two bits of the cursor RAM address also increment when the lower eight bits roll over
from 0xFF to 0x00. A second write to the cursor RAM data register loads the plane 0 or 1 data for the next
eight cursor pixels, and so on. Update of the entire cursor RAM requires 1024 writes to the cursor RAM data
register.
To read from the cursor RAM, the address of the first cursor-RAM location to be read is loaded using CCR3
and CCR2 and the cursor-RAM read address register. Then a read is performed on the cursor-RAM data
register (direct register: 1011) which reads the plane 0 or 1 data for eight consecutive pixels. Similar to the
cursor RAM write operation, when the read is completed, CCR3 and CCR2 and the cursor-RAM address
register are automatically incremented and further reads are made to successive cursor RAM locations.
Upload of the entire cursor RAM requires 1024 reads of the cursor RAM data register.
NOTES
The cursor RAM upper address bits CCR3 and CCR2 in the cursor control register
default to zeros after reset. Since software normally sets these bits to 0s before
accessing the cursor RAM, it may not be necessary to write to CCR3 and CCR2
Internally, the entire 10-bit address is loaded into the address counter after a write
to the cursor RAM address register (direct register, 0000 or 0011), so CCR3 and
CCR2 should be written first if they are to be changed.
Vertical retrace is determined by detecting 2048 or 4096 pixel clocks between rising
edges of the internal BLANK signal. CCR4 selects 2048 when reset to 0 and 4096
when set to 1.