So what good is the automatic
EOI
mode with problems
like
those
just
covered? Well, again, like the other EOls,
selection
is
dependent upon the application.
If
inter·
rupts are controlled at a predetermined rate, so
as
not to
cause the problems mentioned above, the automatic
EOI
mode works perfect just the way it is. However,
if
in·
terl'unt!LhannAn
!l:.naf~dt"'JloJhL4'--l!tP'\
inl'lAtArmiru.tA
rAtA
157
Ise
ISS
IS.
153
152
IS1
ISO
101010600
,765432'0
, ,
IEFORE
COMMAND
......
",;11'1,;
CVI
l;ommana.
Aller
it'S
reset tnough, the cor·
responding
IR
level is assigned lowest priority. Other
IR
priorities rotate
to
conform to the fUlly nested mode
based on the newly assigned low priority
Figures 13A and B show how the rotate on non·specific
EOI
command
effects
the interrupt priorities. Let's
assume the
IR
priorities were assigned with
IRO
the
highest and IA7 the lowest, as in 13A. IAe and
IR4
are
already in service but
ne~her
is
completed. Being the
higher
priority routine, IA4 is necessarily the routine
being executed. During the IA4 routine a rotate on non.
specific
EOI
command is executed. When this happens,
bit 4 in the
ISR
is reset.
IR4
then becomes the lowest
priority and IA5 becomes the highest as in
13B.
43
levels
will
conform to the fully nested mode based on
the newly assigned low priority.
An example of how the set
priority command works is
shown
In
Figures 14A and
14B.
These figures show the
status
of
the ISA and the relative priorities
of
the inter-
rupt levels before and after the set priority command.
Two interrupt routines are shown to be in service
in
Figure
14A.
Since IA2 is the highest priority,
it
is
necessarily the routine being executed. During the
IR2
routine. priorities are altered so that
IRS
is the highest.
This is done
simply by issuing the set priority command
to
the 8259A. In this case, the command specifies
IR4
as
being the lowest priority, The result of this set priority
command is shown in Figure 148. Ellen though tA7 now