delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2001/06/29/00:08:05

From: "Matt" <para AT tampabay DOT rr DOT com>
Newsgroups: comp.os.msdos.djgpp
Subject: DPMI problem
Lines: 23
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 5.50.4522.1200
X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200
Message-ID: <bwS_6.65731$_T2.17269145@typhoon.tampabay.rr.com>
Date: Fri, 29 Jun 2001 03:22:47 GMT
NNTP-Posting-Host: 65.32.102.67
X-Complaints-To: abuse AT rr DOT com
X-Trace: typhoon.tampabay.rr.com 993784967 65.32.102.67 (Thu, 28 Jun 2001 23:22:47 EDT)
NNTP-Posting-Date: Thu, 28 Jun 2001 23:22:47 EDT
Organization: RoadRunner - TampaBay
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

I have a game which accesses VGA memory (A000:0000) directly. In 16-bit
mode, that's ok, but to get it to run under DJGPP I either have to rewrite
the thing or map VGA memory to linear memory. There is a function to do
that, but I can only do it with a DPMI 1.0 server.

Is there a way to accomplish the same thing (i.e. direct linear access to
A000:0000 from my ds selector) with a DPMI 0.9 server? Right now I'm looking
at the following options, and neither of them look good:

1. Use __djgpp_nearptr_enable(). The documentation recommends against this,
and considering that I just overhauled a number of asm files and am aware of
a number of bugs already, I'm not so sure I like the thought of being able
to kill my system.
2. Use function 02h to map the segment to a descriptor, use function 06h to
locate the linear base of the descriptor, then use functions 07h and 08h to
modify my ds segment so I can read that linear address.

Is there any way to do it directly, or is there a DPMI 0.9 server which
supports function 0508h (map device -> linear)?

-Matt


- Raw text -


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