delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2004/07/26/06:14:03

X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f
Message-ID: <014301c472f9$33d162c0$0d01a8c0@josepmariaxp>
From: "turomas" <josepmaria AT turomas DOT com>
To: <djgpp AT delorie DOT com>
Subject: PM hardware interrupts
Date: Mon, 26 Jul 2004 12:13:13 +0200
MIME-Version: 1.0
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2720.3000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2739.300
X-MailScanner-Information: Please contact the ISP for more information
X-MailScanner: Found to be clean
Reply-To: djgpp AT delorie DOT com

This is a multi-part message in MIME format.

------=_NextPart_000_0140_01C47309.ECB4FA80
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

First:

The inline assembler is to store the coprocessor state and restor it =
after interrupt ends. (If the interrupt ocurs when coprocessor is doing =
any action - A floating comparation - and there are floating point =
operations in the interrupt the coprocessor makes non interrupt =
operation wrong).


Second:

It is normal ethernet cards, sound cards, etcs... uses Int10. Try to use =
Int 9 or Int 5. If you want to use Int 10 go to Bios configuration =
PNP/PCI Configuration and tell Bios that you uses NO PNP Operating =
System. Then go to IRQ Resources and put Irq 10 to Legacy ISA. This =
reserve IRQ10  to you because no PNP cards can uses this interrupt.


Third:
When a interrupt finishes you have to tell it to processor and to PIC. =
Processor accepts new interrupts when receives enable() ("sti") or when =
receives "iret" function.  Don't put enable() in your interrupt code, =
DPMI libraries  do it for you and it can crash your code. PIC have to =
receive an non specific EOI outport(0x20,0x20).


I did have problems with chain in some interrupts. What hapens if old =
ineterrupt enables CPU in the middle of the code?........

------=_NextPart_000_0140_01C47309.ECB4FA80
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2737.800" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT face=3DArial size=3D2>First:</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>The inline assembler is to store the =
coprocessor=20
state and restor it after interrupt ends. (If the interrupt ocurs when=20
coprocessor is doing any action - A floating comparation - and there are =

floating point operations in the interrupt the coprocessor makes non =
interrupt=20
operation wrong).</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Second:</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>It is normal ethernet cards, sound =
cards, etcs...=20
uses Int10. Try to use Int 9 or Int 5. If you want to use Int 10 go to =
Bios=20
configuration PNP/PCI Configuration and tell Bios that you uses NO PNP =
Operating=20
System. Then go to IRQ Resources and put Irq 10 to Legacy ISA. This =
reserve=20
IRQ10&nbsp; to you because no PNP cards can uses this =
interrupt.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Third:</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>When a interrupt finishes you have to =
tell it to=20
processor and to PIC. Processor accepts new interrupts when receives =
enable()=20
("sti") or when receives "iret" function. &nbsp;Don't put enable() in =
your=20
interrupt code, DPMI libraries&nbsp; do it for you and it can crash your =
code.=20
PIC have to receive an non&nbsp;specific&nbsp;EOI=20
outport(0x20,0x20).</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>I did have problems with chain in some =
interrupts.=20
What hapens if old ineterrupt enables CPU in the middle of the=20
code?........</FONT></DIV></BODY></HTML>

------=_NextPart_000_0140_01C47309.ECB4FA80--


- Raw text -


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