Message-ID: From: Shawn Hargreaves To: djgpp AT delorie DOT com Subject: Allocate physical memory? Date: Mon, 23 Mar 1998 10:15:04 -0000 MIME-Version: 1.0 Content-Type: text/plain Precedence: bulk I'm in the process of writing a VBE/AF (the SciTech hardware accelerator API) driver for Allegro, which had already managed to roughly double the speed of the demo game when running in page flipping mode on my Matrox card. At present this supports a range of hardware drawing functions (area fills and blits), but only when they are operating entirely within the video memory. VBE/AF also provides the ability to use a bus mastering transfer mode on some high end cards, which in theory has the potential to speed up blitting from system memory to the screen, but I'm unsure if/how I will be able to use this. To initiate a bus master copy, I need to program the graphics controller with the physical memory address of the source data, but as far as I can see there is no way for me obtain this information! I need some way to allocate a block of contiguous physical memory locations, but unless I've missed something, there are no DPMI functions to do this (using conventional memory will break under Windows). Before I totally give up on this idea, does anyone know a way that I could obtain such a memory buffer? Even if it is only possible in a few specific environments, the potential benefits of this are so great that I really want to make it work if that is at all possible... Shawn Hargreaves.