On Thu, Aug 28, 2003 at 07:26:30AM -0600, ron minnich wrote:
It's also worth mentioning that the current code works only if the "trampoline" code is also located below 64K.
oops. What do you mean by "trampoline" here?
32-16-32 transition in vgabios.c and 16-32-16 transition in idt.c. The problem is that 16-bit code segment descriptor (0x28) has base address zero and 64K limit.
(I studied these code to implement my own 32-bit legacy services but abandoned it because vm86 starts looking inevitable...)
Perhaps we can put these functions in a special section and modify the ld script to put this section near the beginning of image so that these functions will be located below 64K for most cases.
Do you think you could test a new vgabios.c for me?
Sure. My EPIA doesn't need the fix but I can confirm the fix doesn't break it.
-- Takeshi