| www.delorie.com/archives/browse.cgi | search |
| Date: | Tue, 18 Feb 2003 09:11:40 +0200 |
| From: | Zaretskii Eli <ezaretski AT elta DOT co DOT il> |
| Subject: | RE: Passing pointers to dpmi_int |
| To: | Paul Cousoulis <paulcsouls AT worldnet DOT att DOT net>, djgpp AT delorie DOT com |
| Message-id: | <4D19136444628A40840EFE8C5AE04147017A1C@ELTIMAIL1.elta.co.il> |
| MIME-version: | 1.0 |
| X-MIMEOLE: | Produced By Microsoft Exchange V6.0.6249.0 |
| Thread-topic: | Passing pointers to dpmi_int |
| Thread-index: | AcLW3vYwxY204hIKQGiGjEejqoGrrAAPcodg |
| X-PRIVAWALL-ID: | 0002556710ab |
| X-OriginalArrivalTime: | 18 Feb 2003 07:11:52.0896 (UTC) |
| FILETIME=[03496400:01C2D71D] | |
| Reply-To: | djgpp AT delorie DOT com |
This message was scanned for viruses and other malicious code by PrivaWall.
This mail was sent from ELTA SYS LTD.
> From: Paul Cousoulis [mailto:paulcsouls AT worldnet DOT att DOT net]
> Sent: Tuesday, February 18, 2003 1:35 AM
>
> I'm trying to implement the Virtual DMA Service. In order to lock DMA
> memory I need to pass the address of a structure to int 4b in
> es:di. The
> physical address should be returned in dds_local, but I keep getting
> zero even though the function seems to otherwise return successfully.
> The code I'm using is:
> >
> > dr.x.dx = 0;
> > dr.x.ax = 0x8103;
> > temp = (int)(&dds_local);
> > dr.x.es = (unsigned short)(temp>>16);
> > dr.x.di = (unsigned short)(temp & 0xffff);
> > if(__dpmi_int(0x4b,&dr)) printf("error\n");
Did you read section 18.13 of the DJGPP FAQ list?
This message is processed by the PrivaWall Email Security Server.
| webmaster | delorie software privacy |
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |