delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1999/06/13/02:02:20

From: "Johan Venter" <jventer AT writeme DOT com>
Newsgroups: comp.os.msdos.djgpp
References: <376230d5 DOT 102598132 AT news DOT xmission DOT com>
Subject: Re: Calling DOS functions
Lines: 32
X-Newsreader: Microsoft Outlook Express 4.72.3110.1
X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3110.3
Message-ID: <dUG83.9466$PN5.25345@newsfeeds.bigpond.com>
Date: Sun, 13 Jun 1999 11:54:33 +1000
NNTP-Posting-Host: 203.40.82.151
X-Trace: newsfeeds.bigpond.com 929249929 203.40.82.151 (Sun, 13 Jun 1999 14:58:49 EST)
NNTP-Posting-Date: Sun, 13 Jun 1999 14:58:49 EST
Organization: Telstra BigPond Internet Services (http://www.bigpond.com)
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

>I've got as far as using
>dosmemput and dosmemget to move my data to and from the go32 transfer
>buffer,

Great! You found the transfer buffer. Many ppl don't know anything about it.
Anyway, on to your prob.

> but I'm not clear on how I set up the _go32_dpmi_registers
>with the correct segment and offset values before handing it off to
>_go32_dpmi_simulate_int.

NOTE:: __dpmi_regs is the actual structure, _go32_dpmi_registers is just a #define to it.
Check dpmi.h. Also, I assume you want to load es and di with segment:offset pair. If not,
just change registers.

Do this:

__dpmi_regs r;

r.x.di = __tb & 0x0F;        //get the offset
r.x.es = (__tb >> 4) & 0xFFFF;        //get the segment

There you go!

--
Johan Venter
ICQ 3643877
Visit The TPU DJGPP Interest Group:
http://surf.to/djgppig



- Raw text -


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