Jameco Electronics 3000 User Manual

Page of 349
User’s Manual
97
7.10  Rabbit Interrupt Structure
An interrupt causes a call to be executed, pushing the PC on the stack and starting to exe-
cute code at the interrupt vector address. The interrupt vector addresses have a fixed lower 
byte value for all interrupts. The upper byte is adjustable by setting the registers EIR and 
IIR for external and internal interrupts respectively. There are only two external interrupts 
generated by transitions on certain pins in Parallel Port E.
The interrupt vectors are shown in Table 6-2.
The interrupts differ from most Z80 or Z180 interrupts in that the 256-byte tables pointed 
to EIR and IIR contain the actual instructions beginning the interrupt routines rather than a 
16-bit pointer to the routine. The interrupt vectors are spaced 16 bytes apart so that the 
entire code will fit in the table for very small interrupt routines.
Interrupts have priority 1, 2 or 3. The processor operates at priority 0, 1, 2 or 3. If an inter-
rupt is being requested, and its priority is higher than the priority of the processor, the 
interrupt will take place after then next instruction. The interrupt automatically raises the 
processor’s priority to its own priority. The old processor priority is pushed into the 4-
position stack of priorities contained in the IP register. Multiple devices can be requesting 
interrupts at the same time. In each case there is a latch set in the device that requests the 
interrupt. If that latch is cleared before the interrupt is latched by the central interrupt 
logic, then the interrupt request is lost and no interrupt takes place. This is shown in 
Table 7-15. The priorities shown in this table apply only for interrupts of the same priority 
level and are only meaningful if two interrupts are requested at the same time. Most of the 
devices can be programmed to interrupt at priority level 1, 2 or 3.