Mail Archives: djgpp/1999/03/29/15:30:23
X-magnet-rcpt: | <djgpp AT delorie DOT com>
|
From: | "Mark Usher" <marku AT magnet DOT at>
|
To: | <djgpp AT delorie DOT com>
|
Subject: | Re: Tricky interrupt problem
|
Date: | Mon, 29 Mar 1999 22:30:37 +0200
|
Message-ID: | <NABBKDNBEOKOCFKNJILIOEMBDGAA.marku@magnet.at>
|
MIME-Version: | 1.0
|
X-Priority: | 3 (Normal)
|
X-MSMail-Priority: | Normal
|
X-Mailer: | Microsoft Outlook IMO, Build 9.0.2212 (4.71.2419.0)
|
Importance: | Normal
|
X-MimeOLE: | Produced By Microsoft MimeOLE V5.00.2013.600
|
Reply-To: | djgpp AT delorie DOT com
|
Hi
Thankyou. You set me on the right track here.
> Using __dpmi_int is OK, but the trick is to point DS:DX at the 16-bit
> "transfer buffer" that djgpp uses to talk with DOS. You fill the
> transfer buffer with data, set up DS:DX to point to it, call the
> interrupt, and then copy the new data back.
>
> The libc sources have lots of examples of using the transfer buffer.
After a couple of hours beating the keyboard to death I am finally starting
to get it together.
I have realised that I am going to have to declare two small buffers in
conventional memory to make this work.
I am now getting stuck getting the address back for the buffer I have
created to transfer to ds, dx.
At the moment it looks like this-
_dpmi_regs reg;
struct ControlBlock *pCB;
__dpmi_allocate_dos_memory(21,&pCB); /* ?? correct for a 21 byte block */
...
reg.x.ds = _go32_info_block. ????
reg.x.dx = _go32_info_block. ????
Hope you can spare me a little time to help me out.
Mark Usher
marku AT magnet DOT at
- Raw text -