[misc.handicap] Interrupt Driven

Eric.Bohlman@p1.f778.n115.z1.fidonet.org (Eric Bohlman) (09/20/90)

Index Number: 10482

[This is from the Blink Talk Conference]

 UA> From: UCCXMGM@OSUCC.BITNET
 UA>      The program works pretty well except that the real-time
 UA> clock interrupt, (1CH), which drives it, has such a high
 UA> priority that it conflicts with communications programs such
 UA> as "Kermit."  Believe me, you know you've got problems when
 UA> ...
 UA>      Keeping with the issue at hand, I need to find an
 UA> interrupt whose priority is somewhere between that of the
 UA> clock-tick, (1CH) and that of the idle, (28H).  The interrupt
 UA> for "PRINT.COM" seems to be a good candidate if I could find
 UA> out which interrupt number drives it.  I want to stay away
 UA> from rearranging the interrupt mask for many reasons.  Thank

The only interrupts that have "priorities" are the hardware interrupts 08  
through 0F.  All the others are software interrupts, and the priority  
controller has nothing to do with them.  1C is a software interrupt issued by  
the handler for 08; the problem is that the 08 handler doesn't issue an EOI to  
the PIC until after issuing the 1C software interrupt.  The solution is for  
your 1C handler to do it itself (just write 20H to port 20H).  That will  
re-enable the serial interrupts.  If I remember right, the 08 handler issues  
the EOI immediately on return from invoking 1C, so you shouldn't cause any  
problems.

By the way, I found some problems in working with 1C (I've also written a  
screen reader) and had to eventually go with a 08 handler instead.  Apparently  
some applications were taking control of 1C but not chaining it; this was over  
a year ago and I've forgotten the specifics.
 

--
Uucp: ..!{decvax,oliveb}!bunker!hcap!hnews!115!778.1!Eric.Bohlman
Internet: Eric.Bohlman@p1.f778.n115.z1.fidonet.org