Interrupt Controller (8259A)
EOI COMMANDS
Upon completion of an interrupt service routine, the 8259A needs to
be notified so its ISR can be updated. This is done to keep track of
interrupt levels being serviced and their relative priorities. Three
different End-Of-Interrupt (EOI) formats are available. These are the
nonspecific EOI command, the specific EOI command, and the
automatic EOI mode. Which EOI you select depends upon the
interrupt operations you wish to perform.
Nonspecific EOI Commands
A nonspecific EOI command sent from the microprocessor informs
the 8259A that a service routine has been completed without
specifying its exact interrupt level. The 8259A automatically deter-
mines the interrupt level and resets the correct bit in the ISR.
To take advantage of the nonspecific EOI, the 8259A must be in a
mode of operation in which it can predetermine in-service routine
levels. For this reason the nonspecific EOI command should be used
only when the most recent level acknowledged and serviced is always
the highest priority level. When the 8259A receives a nonspecific EOI
command, it simply resets the highest priority ISR bit,
thus
confirming to the 8259A that the highest priority routine of those in
service is finished.
The main advantage of using the nonspecific EOI command is that IR
level specification is not necessary as it is in the specific EOI
command. However, special consideration should be given when
deciding to use the nonspecific EOI. Two program conditions in
which it is best not to use the nonspecific EOI are as follows:
•
Using the set priority command within an interrupt service
routine
•
Using a special mask mode
12-31