www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1993/07/19/14:57:38

From: Mat Hostetter <iclone!mjhostet AT cs DOT unm DOT edu>
Date: Mon, 19 Jul 93 11:41:41 -0600
To: DJ Delorie <ctron.com!dj AT cs DOT unm DOT edu>
Subject: Re: How to load ES in protected mode?
Cc: djgpp AT sun DOT soe DOT clarkson DOT edu

>Since real mode pointers can't point to virtual memory anyway (the
>memory might be out on disk somewhere), there's really no way to  
make
>it work the way you think it should.

I modified turbo_assist() to give me a "low memory" malloc().  I use  
this buffer to communicate with the BIOS.  I've used this technique  
successfully.  Right now I am trying to pass the returned  
segment/offset pair to the BIOS in ES:BX.

>For all the BIOS calls that go32 knows about, you must use the  
offset
>register as a 32-bit offset, and leave the segment registers alone.
>For all BIOS functions that go32 does not understand, you can't call
them anyway.

I modified exception_handler() to pass int 0x13 on to  
generic_handler.  That seems to work.

I guess I'll just add another case to turbo_assist() that grabs ES  
out of the high two bytes of EBX and then does the int 0x13 that I  
want.  I was hoping there was a way to bypass this step, though...

-Mat

- Raw text -


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