Mail Archives: djgpp/1995/02/26/23:40:05
>>>>> "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 -