VOGONS


First post, by superfury

User metadata
Rank l33t++
Rank
l33t++

What happens when you make the character height(register) more than 8(CGA) or 14(MDA)? Will those add blank lines(all zeroes in the font), wrap back to the top of the font or actually display the next character's rows? As far as I can find out, just like VGA, the setting goes up to 0x1F(register 9), so up to 16 character rows, so what happens when you specify 8 and up in said register? What font rows are displayed on lines 8+(CGA) and 14+(MDA)?

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 1 of 4, by reenigne

User metadata
Rank Oldbie
Rank
Oldbie

Wraps to the top on CGA. I'll check the schematic later, but I expect there are two blank lines on MDA before it wraps back to the top (4 bits of Y address instead of 3).

Reply 2 of 4, by reenigne

User metadata
Rank Oldbie
Rank
Oldbie

Yes, CGA wraps after 8 scanlines and MDA wraps after 16. The MDA font is really 16 scanlines high in the ROM but lines 14 and 15 of each character are blank.

Reply 3 of 4, by superfury

User metadata
Rank l33t++
Rank
l33t++

So, if I understand correctly, on CGA, lines 8-15, 16-23, 24-31 becomes lines 0-7(repeatedly in a loop until 31) of the same character in the font? And on MDA, lines 14-15 are blank, while lines 16-31==lines 0-15?

So, essentially, CGA becomes stripped to 3-bits(&=0x7) on lookup, while MDA becomes stripped to 4-bits(&=0xF) for it's 5-bit input value?

Edit: Just behaved the fonts to be handled as said above(CGA &=7; MDA &=F).

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io