<!--# include virtual="/ssi/ssi_start.shtml" -->
<link REL="stylesheet" TYPE="text/css" HREF="/people/tantos/styles.css">
<h1>Wishbone Monitor Controller Mouse Sprite Module</h1>
<strong>Wishbone Monitor Controller Mouse Sprite Module</strong> is a
future extension to the existing VGA core. The need for such a module is
pretty obvious I think. It takes a lot of time to keep track of mouse cursor position and
prevent destroying it. Alternatively you can remove the mouse from the screen prior each WR access
and restore it afterwards. Not only it takes a lot of time it also makes the cursor blinking and
interfere with the refresh of the screen. HW support for mouse cursor overlay can make graphical
application's life much easier.
The planned functionality will use one 512 bytes chuck on on-chip RAM.
The 32x32 pixel image of the mouse with 2 bits per pixel is planned to be placed there. The 512
bytes of available memory allows for 2 mouse images to be stored. The overlay engine than takes
care of reading the content and put it on the output video data. As the memory is dual-ported
there can no collisions occur. Thus de-coupling is not needed for this functionality and the
overlaying can be done in the part of the core synchronized with the pixel clock.
The meaning of each pixel planned to be the following:
<tr><td>00</td><td>No effect, transparent</td></tr>
<tr><td>01</td><td>Invert all bits of the underlaying pixel. Allways done on all 8 pixels of the output even when BPP is less than 8.</td></tr>
<tr><td>10</td><td>Opaue: replace output with all bits with 0s</td></tr>
<tr><td>11</td><td>Opaue: replace output with all bits with 1s</td></tr>
<h2>Author & Maintainer</h2>
<a href="/people/tantos">Andras Tantos</a>
<!--# include virtual="/ssi/ssi_end.shtml" -->