kuroneko
04-02-2012, 03:02 AM
Not something I particularly wanted to do but as there was at least one request I did it anyway. It offered certain challenges so wasn't a total loss. The usual feature list applies:
per cell colour (foreground and background)
monochrome mode (when you're short on hub memory)
Note that this driver should definitely have a twin which uses indexed mode. If I'm not too busy this week it will be up soon. Timing is XGA 1024x768, 65MHz pixel clock.
'' mailbox layout (128xH, full colour)
''
'' long[par][0]: screen: [!Z]:addr = 16:16 -> zero (accepted)
'' long[par][1]: font: size:[!Z]:addr = 8:8:16 -> zero (accepted)
'' long[par][2]: colours: c/a:[!Z]:addr = 1:15:16 -> zero (accepted), optional colour [buffer]
'' long[par][3]: frame indicator/sync lock
''
'' colour [buffer] format
''
'' - (%0--//--0) address (full colour, word array)
'' - (%1--//---) colour value (waitvid 2 colour VGA format)
And for the indexed version:
'' mailbox layout (128xP, full/indexed colour)
''
'' long[par][0]: [!Z]:addr = 16:16 -> zero (accepted) screen buffer [command]
'' long[par][1]: size:[!Z]:addr = 8:8:16 -> zero (accepted) font descriptor [parameter]
'' long[par][2]: [!Z]:addr = 16:16 -> zero (accepted) cursor location [unused]
'' long[par][3]: frame indicator/sync lock
''
'' colour [buffer] format
''
'' - (%0--//--0) address (full colour, word array)
'' - (%1--//---) colour value (waitvid 2 colour VGA format)
''
'' background palette format
''
'' - %%RGB-RGB-RGB-RGB-, MSB holds index 0 (waitvid 4 colour VGA format)
The indexed driver has both 8x8 and 8x12 modes enabled which gives you text resolutions of 128x96 and 128x64 respectively. The 128xH driver is limited to mode 8x12 (128x64). Note that the command interface has changed for the indexed version (due to added cursor support).
References
VGA, 100xH/P, dual cog, per cell colour (full/indexed)
VGA, 50xH, single cog, per cell colour ("Despair and Hope" release)
Yet another 50 column VGA text driver (single cog)
per cell colour (foreground and background)
monochrome mode (when you're short on hub memory)
Note that this driver should definitely have a twin which uses indexed mode. If I'm not too busy this week it will be up soon. Timing is XGA 1024x768, 65MHz pixel clock.
'' mailbox layout (128xH, full colour)
''
'' long[par][0]: screen: [!Z]:addr = 16:16 -> zero (accepted)
'' long[par][1]: font: size:[!Z]:addr = 8:8:16 -> zero (accepted)
'' long[par][2]: colours: c/a:[!Z]:addr = 1:15:16 -> zero (accepted), optional colour [buffer]
'' long[par][3]: frame indicator/sync lock
''
'' colour [buffer] format
''
'' - (%0--//--0) address (full colour, word array)
'' - (%1--//---) colour value (waitvid 2 colour VGA format)
And for the indexed version:
'' mailbox layout (128xP, full/indexed colour)
''
'' long[par][0]: [!Z]:addr = 16:16 -> zero (accepted) screen buffer [command]
'' long[par][1]: size:[!Z]:addr = 8:8:16 -> zero (accepted) font descriptor [parameter]
'' long[par][2]: [!Z]:addr = 16:16 -> zero (accepted) cursor location [unused]
'' long[par][3]: frame indicator/sync lock
''
'' colour [buffer] format
''
'' - (%0--//--0) address (full colour, word array)
'' - (%1--//---) colour value (waitvid 2 colour VGA format)
''
'' background palette format
''
'' - %%RGB-RGB-RGB-RGB-, MSB holds index 0 (waitvid 4 colour VGA format)
The indexed driver has both 8x8 and 8x12 modes enabled which gives you text resolutions of 128x96 and 128x64 respectively. The 128xH driver is limited to mode 8x12 (128x64). Note that the command interface has changed for the indexed version (due to added cursor support).
References
VGA, 100xH/P, dual cog, per cell colour (full/indexed)
VGA, 50xH, single cog, per cell colour ("Despair and Hope" release)
Yet another 50 column VGA text driver (single cog)