tridoraemu,docs: emulate vgafb shifter/maskgen and new iomem layout

This commit is contained in:
slederer 2026-02-08 01:58:50 +01:00
parent 4d103f99ec
commit e8e4b5dd24
3 changed files with 78 additions and 15 deletions

View file

@ -9,11 +9,11 @@ Registers
| _FB_PS_ | $90C | Palette Select |
| _FB_PD_ | $910 | Palette Data |
| _FB_CTL_ | $914 | Control Register |
| _FB_SHIFTER | $918 | Shift Assist Register |
| _FB_SHIFTCOUNT | $91C | Shift Count Register |
| _FB_SHIFTERM | $920 | Shifted Mask Register |
| _FB_SHIFTERSP | $924 | Shifter Spill Register |
| _FB_MASKGEN | $928 | Mask Generator Register |
| _FB_SHIFTER_ | $918 | Shift Assist Register |
| _FB_SHIFTCOUNT_ | $91C | Shift Count Register |
| _FB_SHIFTERM_ | $920 | Shifted Mask Register |
| _FB_SHIFTERSP_ | $924 | Shifter Spill Register |
| _FB_MASKGEN_ | $928 | Mask Generator Register |
## Pixel Data
Pixel data is organized in 32-bit-words. With four bits per pixel, one word
@ -121,12 +121,12 @@ For each four bits of a pixel, the corresponding four mask bits
are all set to one if the pixel value is not zero.
This can be used to combine foreground and background pixel data
with a pixel value of zero for a transparent background color.
where a pixel value of zero is used to indicate a transparent foreground pixel.
Usually, the mask will be inverted with a *NOT* instruction
to clear all pixels in the background that are set in the foreground
with an *AND* instruction
before *ORing* foreground and background together.
Usually, the mask will be inverted with a *NOT* instruction.
The result can then be used to clear all pixels in the background
that are set in the foreground, using an *AND* instruction.
As the last step, foreground and masked background data can be combined with an *OR* instruction.
Example in hexadecimal, each digit is a pixel:
| Pixel Data | Mask |