www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1993/08/24/10:29:11

Date: Tue, 24 Aug 93 10:16:34 -0400
From: DJ Delorie <dj AT ctron DOT com>
To: WEIMER AT juncol DOT juniata DOT edu
Cc: djgpp AT sun DOT soe DOT clarkson DOT edu
Subject: Re: Far Pointers

> #define MODE3_BASE 0xB8000000L
> The old way compiles nicely in things like microsoft C and borland C.
> It compiles (and links) in DJGPP if you take out the far, but whenever I
> used it generates an exception at pointer B8000000 and crashed. So I figured
> I'd try using MK_FP, but DJGPP gives a 'parse error' before '_seg' anda 'parse
> error' before 'ofs'. Any clues on how to get this working?

You're forgetting that there ARE NO SEGMENTS in djgpp.  You can't use
the same segment arithmetic you use in real mode in protected mode.

The correct way to access this memory is to use the dosmemput() and
dosmemget() functions, passing it (0xb8000 + ofs) as the "offset" and
your local memory as the local buffer.  If you don't want to support
DPMI, the correct MODE3_BASE is 0xe00b8000, not 0xb8000000.


- Raw text -


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