Mail Archives: djgpp/1998/04/27/10:09:11
From: | "Javier Calleja" <dismuntel AT apdo DOT com>
|
To: | <djgpp AT delorie DOT com>
|
Subject: | Put an interrupr function in DOS mermory with 'dosputmem'.
|
Date: | Mon, 27 Apr 1998 16:05:56 +0200
|
Message-ID: | <01bd71e5$98f53c60$0100a8c0@dismuntel.ctv.es>
|
MIME-Version: | 1.0
|
This is a multi-part message in MIME format.
------=_NextPart_000_000B_01BD71F6.5C7E0C60
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Hello:
I'm still programming the aplication which uses the PacketDriver =
functions. I need to put an interrupt function handler int the DOS =
memory and I need to use its segment:offset.
I could do it with the _go32_dpimi_allocate_real_mode_callback_ret =
function or similar, but I have read that it's so slow because this =
function calls to the interrupt function handler which is allocated in =
the dpmi memory.
I've also read that I can put my interrupt function directly in the =
part of the DOS memory if I use an seginfo structure to know where it is =
allocated my interrupt function code and I use the dosputmem function to =
copy it to DOS memory.
But, how can I know how much bytes I need to copy with the dosputmem =
(I must put in a field of this function the number of bytes to copy)?
And how must I write this interrupt function? This function is a void =
far interrupt in C standar and I don=B4t know if I must end it with any =
special return or if it needs any special parameter to call (as any =
pointer to a structure register)
Could someone help me?
I'm looking forward your answer, and any sample is welcome.
Kind regards from Spain
Javier Calleja
Av. Pais Valenciano 155, E
46680-Algemes=ED (Valencia)
Espa=F1a
Tlf:+34-96-2481217
FAX:+34-96-2481217
=20
email:dismuntel AT apdo DOT com
------=_NextPart_000_000B_01BD71F6.5C7E0C60
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD W3 HTML//EN">
<HTML>
<HEAD>
<META content=3Dtext/html;charset=3Diso-8859-1 =
http-equiv=3DContent-Type>
<META content=3D'"MSHTML 4.71.1712.3"' name=3DGENERATOR>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV> </DIV>
<DIV><FONT color=3D#000000 face=3DArial size=3D2> =
Hello:</FONT></DIV>
<DIV><FONT color=3D#000000 face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2> I'm still programming the =
aplication which=20
uses the <STRONG>P</STRONG><STRONG>acketDriver</STRONG> functions. I =
need to put=20
an interrupt function handler int the DOS memory and I need to use its=20
segment:offset.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2> I could do it with the=20
<EM>_go32_dpimi_allocate_real_mode_callback_ret</EM> function or =
similar, but I=20
have read that it's so slow because this function calls to the interrupt =
function handler which is allocated in the dpmi memory.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2> I've also read that I can put my =
interrupt=20
function directly in the part of the DOS memory if I use an =
<EM>seginfo</EM>=20
structure to know where it is allocated my interrupt function code and I =
use the=20
<EM>dosputmem</EM> function to copy it to DOS memory.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2> But, how can I know how much =
bytes I need to=20
copy with the <EM>dosputmem</EM> (I must put in a field of this function =
the=20
number of bytes to copy)?</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2> And how must I write this =
interrupt=20
function? This function is a <STRONG>void far interrupt</STRONG> in C =
standar=20
and I don´t know if I must end it with any special return or if it =
needs=20
any special parameter to call (as any pointer to a structure=20
register)</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2> Could someone help =
me?</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2> I'm looking forward your answer, =
and any=20
sample is welcome.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV> </DIV>
<DIV><FONT face=3DArial size=3D2>Kind regards from Spain</FONT></DIV>
<DIV> </DIV>
<DIV><FONT color=3D#000000 face=3DArial size=3D2>Javier Calleja<BR>Av. =
Pais Valenciano=20
155, E<BR>46680-Algemesí=20
(Valencia)<BR>España<BR>Tlf:+34-96-2481217<BR>FAX:+34-96-2481217<B=
R>=20
<BR><A=20
href=3D"mailto:email:dismuntel AT apdo DOT com">email:dismuntel AT apdo DOT com</A></FO=
NT></DIV></BODY></HTML>
------=_NextPart_000_000B_01BD71F6.5C7E0C60--
- Raw text -