Tandy 1000 HX Technical Reference Manual page 138

Table of Contents

Advertisement

8259A
After Rotate (IR4 was serviced, ail other priorities
rotated correspondingly)
There are two ways to accomplish Automatic Rota-
tion using 0CW2, the Rotation on Non-Specific EOI
Command (R = 1, SL = 0, EOI = 1) and the Ro-
tate in Automatic EOI Mode which is set by (R = 1,
SL = 0, EOI = 0) and cleared by (R = 0, SL = 0,
EOI = 0).
Specific Rotation
(Specific Priority)
The programmer can change priorities by program-
ming the bottom priority and thus fixing all other pri-
orities; i.e., if IR5 is programmed as the bottom prior-
ity device, then IR6 will have the highest one.
The Set Priority command is issued in 0CW2 where:
R = 1, SL = 1, L0-L2 is the binary priority level
code of the bottom priority device.
Observe that in this mode internal status is updated
by software control during 0CW2. However, it is in-
dependent of the End of Interrupt (EOI) command
(also executed by OCW2). Priority changes can be
executed during an EOI command by using the Ro-
tate on Specific EOI command in OCW2 (R = 1, SL
= 1, EOI = 1 and LO-L2 = IR level to receive
bottom priority).
Interrupt Masks
Each Interrupt Request input can bem masked indi-
vidually by the Interrupt Mask Register (IMR) pro-
grammed through 0CW1. Each bit in the IMR masks
one interrupt channel if it is set (1). Bit 0 masks IR0,
Bit 1 masks IR1 and so forth. Masking an IR channel
does not affect the other channels operation.
ture during its execution under software control. For
example, the routine may wish to inhibit lower priori-
ty requests for a portion of its execution but enable
some of them for another portion.
The difficulty here is that if an Interrupt Request is
acknowledged and an End of Interrupt command did
not reset its IS bit (i.e., while executing a service
routine), the 8259A would have inhibited all lower
priority requests with no easy way for the routine to
enable them.
That is where the Special Mask Mode comes in. In
the special Mask Mode, when a mask bit is set in
0CW1, it inhibits further interrupts at that level and
enables interrupts from all other levels (lower as well
as higher) that are not masked.
Thus, any interrupts may be selectively enabled by
loading the mask register.
The special Mask Mode is set by 0WC3 where:
SSMM = 1.SMM = 1,and cleared where SSMM =
1.SMM = 0.
Poll Command
In this mode the INT output is not used or the micro-
processor internal Interrupt Enable flip-flop is reset,
disabling its interrupt input. Service to devices is
achieved by software using a Poll command.
The Poll command is issued by setting P = ' 1 " in
0CW3. The 8259A treats the next RD pulse to the
8259A (i.e., RD = 0, C§ = 0) as an interrupt ac-
knowledge, sets the appropriate IS bit if there is a
request, and reads the priority level. Interrupt is fro-
zen from WR to RD.
The word enabled onto the data bus during RD is:
P7
D6
D5
P4
D3
P2
D1
DO
|
I
W2
W1
W o ]
W0-W2: Binary code of the highest priority level
requesting service.
I: Equal to " 1 " if there is an interrupt.
This mode is useful if there is a routine command
common to several levels so that the INTA se-
quence is not needed (saves ROM space). Another
application is to use the poll mode to expand the
number of priority levels to more than 64.
Special Mask Mode
Some applications may require an interrupt service
routine to dynamically alter the system priority struc-
Reading the S259A Status
The input status of several internal registers can be
read to update the user information on the system.
2-249

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents