delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1998/10/09/21:32:33

Sender: nate AT cartsys DOT com
Message-ID: <361EB7A5.8BBF7010@cartsys.com>
Date: Fri, 09 Oct 1998 18:25:57 -0700
From: Nate Eldredge <nate AT cartsys DOT com>
X-Mailer: Mozilla 4.05 [en] (X11; I; Linux 2.0.35 i486)
MIME-Version: 1.0
To: djgpp AT delorie DOT com
Subject: Re: Newbie to DJGPP2.01 from BC5.02 struggling with int13h stuff.
References: <361E50EA DOT 42398FCE AT interlog DOT com>
Reply-To: djgpp AT delorie DOT com

Seyil Yoon wrote:
> 
> Having previously worked in BC5.02, there are a bunch of issues
> that I never had to deal with that I now do because of DJGPP2.01.
> 
> In BC5.02, here is what I would have written:
[snipped]
> In DJGPP2.01, I realize that int86() will not work in this case
> (since int13h/ah=2 is not on the list of "supported" functions).
> But after reading the FAQ and the help, I am not sure how exactly
> I should be tackling this. I have the feeling it has to do with
> __dpmi_regs,
> __dpmi_int, and some other stuff which I don't understand completely.
> Any help would be greatly appreciated.

Something like the following should work:

#include <dpmi.h>
#include <go32.h>
#include <sys/movedata.h>

__dpmi_regs r;
r.h.ah = 2;
/* etcetera */
/* Now copy your buffer into the conventional-memory tranfer buffer. 
WARNING:
   this assumes that you don't try to copy more than the size of the
transfer buffer
   (normally 16K but can be as low as 2K).  */
dosmemput(buf, size_of_buf, __tb); 
r.x.es = (__tb >> 4); /* load r.x.es with segment of __tb */
r.x.bx = (__tb & 0xf); /* r.x.bx <- offset */
__dpmi_int(0x13, &r);

HTH

By the way, please post in plain text and not HTML.
-- 

Nate Eldredge
nate AT cartsys DOT com

- Raw text -


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