From: Shawn Hargreaves Newsgroups: comp.os.msdos.djgpp Subject: Re: VBE 2.0 Pmode Bank Switching... Date: Sun, 16 Feb 1997 12:19:24 +0000 Organization: None Distribution: world Message-ID: References: <5e54vt$pp1 AT news DOT cableinet DOT net> NNTP-Posting-Host: talula.demon.co.uk MIME-Version: 1.0 Lines: 29 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp 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'. */