www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1995/02/26/23:40:05

Date: Sun, 26 Feb 95 20:58 MST
From: mat AT ardi DOT com (Mat Hostetter)
To: "William Parsons Newhall, Jr." <NEWHALL AT american DOT edu>
Cc: djgpp AT sun DOT soe DOT clarkson DOT edu
Subject: Re: Accessing VESA SVGA Frame Buffer
References: <9502261918 DOT AA24318 AT sun DOT soe DOT clarkson DOT edu DOT soe>

>>>>> "William" == William Parsons Newhall, <NEWHALL AT american DOT edu> writes:

    William> Is there any way I can access the frame buffer(or the 64K
    William> DOS window into it at A000:0000) under dpmi?

Sure, that's how Executor (our commercial Macintosh(tm) emulator)
works.  We make the VESA paging calls ourselves when necessary.  There
are a variety of ways to do what you want.  Which is best depends on
what you need to accomplish and how comfortable you are with x86
assembly.  gcc's inline asm facilities are great if you need them.

djgpp has library functions to allow you to move memory between
"protected mode" memory and "conventional" (i.e. DOS) memory.  The
easiest thing would just be to use those.

If you actually need to hack assembly for some reason (and you
probably don't) the key is to load a selector with a value referring
to conventional memory and then make 0xA0000 references using that
selector.  Since explicit "segment overrides" are expensive, there are
a variety of ways to make sure your code is fast, again depending on
what it is you want to accomplish.

-Mat

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019