Hi,
Code Slasher wrote:
The problem is that for some strange reason, as soon as I enable interrupts the LPT 1 (IRQ 7) fires even though on 32bit pcs this does not occur.
Anyone have an idea why this would happen?
To be honest, I don't know exactly what causes it...
I had the same problem on an older Pentium 166 MHz (not sure what the motherboard was) many years ago on an early version of my OS - I haven't seen it for about 8 years.
At the time I couldn't find any problem with my code, and in the end I gave up and put a dummy IRQ handler in (i.e. just an "iret" to stop it crashing).
Today, I did a Google search for "spurious IRQ7 8259A" and found a lot of confused people - it seems Linux has the same problem on a wide variety of different hardware, and no-one seems to know exactly what causes it.
One of the better pages seems to be
this page. I like the last possibility they've listed:
"
A device issues interrupt requests for a period of time too short to be recognized correctly by the 8259A, or the CPU acknowledges ( /INTA) the request too late (See data sheet for the Intersil 82C59A , page 6)"
In any case, I'd suggest adding a dummy IRQ handler and ignoring it - if the entire Linux community can't figure it out, chances are we won't either...
Cheers,
Brendan