Date: Tue, 24 Aug 93 10:16:34 -0400 From: DJ Delorie 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.