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:
00 | No effect, transparent |
01 | Invert all bits of the underlaying pixel. Allways done on all 8 pixels of the output even when BPP is less than 8. |
10 | Opaue: replace output with all bits with 0s |
11 | Opaue: replace output with all bits with 1s |