|
From: Brian P. <br...@sg...> - 2001-11-12 21:11:12
|
Eric is correct, it switches between real and protected mode for every BIOS call. The reason for this is so that I don't have play with GDT & IDT tables. Even so the point is that it still requires a mode switch for every call and thats what Eric is trying to eliminate. Brian -----Original Message----- From: Phillip Susi [mailto:ps...@cf...] Sent: Monday, November 12, 2001 12:28 PM To: ros...@re... Subject: [ros-kernel] Re: Thoughts about loadros Why does it have to keep switching back to real mode? Can't 16bit code be called from pmode by making an intersegment call to a 16bit code segment? I thought that's how windows worked before 386 enhanced mode: real mode code was directly called from pmode, but the code only generated references to the first 1 MB of memory, which was the same for all tasks so multiple dos VM's couldn't be run. Then 386 enhanced mode made use of virtual 86 mode to support multiple dos VM's. Also, doesn't flat real mode mean the code is running in a 16bit segment, but can still use 32bit overrides to generate 32bit addresses? Doesn't that require a special compiler or hand asm coding to do? At 11:21 AM 11/12/2001 +0100, you wrote: >You're right, the existing loadros is a hack. But OTOH, FreeLoader is not >that much better. For each bios call FreeLoader must switch to real mode and >back to protected mode while a modified loadros runs in flat real mode, this >means it can call into the bios without mode switching and can access the >full 4GB physical memory space. > >AFAIR, the main problem with FreeLoader was the 32bit disk access. IMHO it >is extremely bad to call these bios functions from protected mode. It is not >only the mode-switching but especially the fact that all parameters have to >be passed to the bios in a buffer. Brrr.. :-/ > >- Eric Kohl ==================================================== = To remove yourself from this mailing list, go to = = http://www.reactos.com/home/mailing.html = ==================================================== ==================================================== = To remove yourself from this mailing list, go to = = http://www.reactos.com/home/mailing.html = ==================================================== |