www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1994/08/22/10:51:51

Date: Mon, 22 Aug 94 08:08:47 cst
From: jsherril AT redstone-emh2 DOT army DOT mil
To: djgpp AT sun DOT soe DOT clarkson DOT edu
Subject: HW Interrupts (1.08 vs. 1.12)

I have a program which reprogrammed the timer to
have an accurate benchmark timer.  This program
worked under djgpp 1.08.  I have now upgraded
to 1.12 and it doesn't work.  [Although I was
very happy to see gmake in 1.12 :-).] I know lots
of things have changed in go32 which contribute to the 
problem.  I have identified and (I hope) corrected
the following:

  + base of vector numbers corresponding to IRQs
    is now variable and can be obtained from go32.
  + selectors have changed.

The problem I get is an exception when I attempt to
install the new entry in the IDT.  I suspect that I do not
know which selector is the correct one for the physical
addresses used by the instruction which reads the IDTR. 
I am not replacing the whole IDT only a single entry.
So I guess I have the following questions:

 1.  Which selector is the correct one to access the IDT?
 2.  Should I really be using a go32 call to install it?
 3.  Is there an example of another protected mode ISR?
 4.  Should I also have a real-mode version of the ISR
     installed?  I tried to help someone install an ISR
     with the Watcom compiler and they kept mentioning
     "bi-modal interrupt handlers."

Any help would be greatly appreciated.

Joel Sherrill


- Raw text -


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