Int 0Ah: Hornet-Specific Hardware Interrupt

The Int 0Ah Service is the hardware IRQ2 handler. The IRQ2 interrupt line has a potential of 16 separate interrupt sources, requiring the Int 0Ah service to "poll" the sources to determine what should be serviced. In order to provide flexible interrupt take-over capability, the Int 0Ah service utilizes a jump table in RAM (Irq2VecTbl) for the addresses of the various service routines.

The service uses a rotating priority poll to ensure that all services on the IRQ2 interrupt will eventually get serviced (except TIMER1 gets preferential treatment). The RAM variable LASTIRQ2 identifies the last source serviced on the IRQ2 line and is used to implement the rotating poll.

The Int 0Ah Interrupt services the following hardware interrupts:

Note: The GPIO lines must be properly configured to generate an IRQ2 interrupt. A hardware problem in early versions of the Hornet chip prohibits use of GPIO[24], GPIO[25], and GPIO[26] as reliable IRQ2 Interrupt sources.

Hardware Interrupts