
2-38
Functional Description
If the instruction is a JUMP/CALL WHEN/IF <phase>, the DMA
SCRIPTS Pointer (DSP) is updated to the transfer address before
halting.
All other instructions may halt before completion.
2.10.7 Sample Interrupt Service Routine
A sample of an interrupt service routine for the SYM53C895 is shown
below. This routine can be repeated if polling is used, or should be called
when the IRQ/ pin is asserted if using hardware interrupts.
1.
Read ISTAT.
2.
If the INTF bit is set, it must be written to a one to clear this status.
3.
If only the SIP bit is set, read SCSI Interrupt Status Zero (SIST0) and
SCSI Interrupt Status One (SIST1) to clear the SCSI interrupt
condition and get the SCSI interrupt status. The bits in the SIST0
and SIST1 indicate which SCSI interrupt(s) occurred and determine
what action is required to service the interrupt(s).
4.
If only the DIP bit is set, read DMA Status (DSTAT) to clear the
interrupt condition and get the DMA interrupt status. The bits in the
DSTAT indicate which DMA interrupt(s) occurred and determine what
action is required to service the interrupt(s).
5.
If both the SIP and DIP bits are set, read SIST0, SIST1, and DSTAT
to clear the SCSI and DMA interrupt condition and get the interrupt
status. If using 8-bit reads of the SIST0, SIST1, and DSTAT registers
to clear interrupts, insert a 12 CLK delay between the consecutive
reads to ensure that the interrupts clear properly. Both the SCSI and
DMA interrupt conditions should be handled before leaving the
interrupt service routine. It is recommended that the DMA interrupt
be serviced before the SCSI interrupt because a serious DMA
interrupt condition could inuence how the SCSI interrupt is acted
upon.
6.
When using polled interrupts, go back to step 1 before leaving the
interrupt service routine, in case any stacked interrupts moved in
when the rst interrupt was cleared. When using hardware interrupts,
the IRQ/ pin is asserted again if there are any stacked interrupts.
This re-enters the system into the interrupt service routine.