Mail Archives: djgpp/1997/02/16/09:42:44
Jason Barstow writes:
>>Also, some cards use memory-mapped IO, in which case you have to create
>>a pmode selector for accessing the required addresses, and put it in %es
>
>Can you give an example of a card that uses MMIO?
>I've written the MMIO bank switch routines but I'm still using
>the old INT method until I get a chance to test it out.
I believe some (all?) Mach64 cards do. I've yet to get my hands on an
MMIO card for testing, but people have managed to run my Allegro drivers
on such hardware, so I must have got it right :-)
>
>Also, is it only the bank swith code that requires %es?
>I don't remember seeing MMIO alternatives for other VESA
>functions.
I don't know: the VESA spec is quite vague in this whole area. In
Allegro, I always load the selector on the assumption that it can't do
any harm if it isn't required, and these routines are hardly speed
critical. One oddity to beware of: in SciTech's SVGAKIT lib, they use
%es for the bank switch and set display start routines, but %ds for the
palette set function (I think this must be because %ds:%edi points to
the new palette data). There's no mention of this in the VESA specs, but
I'm inclined to trust that SciTech have got it right...
/*
* Shawn Hargreaves - shawn AT talula DOT demon DOT co DOT uk - http://www.talula.demon.co.uk/
* Ghoti: 'gh' as in 'enough', 'o' as in 'women', and 'ti' as in 'nation'.
*/
- Raw text -