![](http://datasheet.mmic.net.cn/390000/SYM53C1010-33_datasheet_16836324/SYM53C1010-33_82.png)
2-54
Functional Description
In the case of Transfer Control Instructions, once instruction
execution begins it continues to completion before halting.
In the case of a JUMP/CALL WHEN/IF <phase> instruction, the
DMA
SCRIPTS Pointer (DSP)
is updated to the transfer address before
halting.
All other instructions may halt before completion.
2.2.16.7 Sample Interrupt Service Routine
The following is a sample of an Interrupt Service Routine (ISR) for the
SYM53C1010. It can be repeated if polling is used, or should be called
when the INTA/ (or INTB/) pin is asserted if hardware interrupts are used.
1.
Read
Interrupt Status Zero (ISTAT0)
.
2.
If the INTF bit is set, write it 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 tell which SCSI interrupts occurred and determine what
action is required to service the interrupts.
4.
If only the DIP bit is set, read
DMA Status (DSTAT)
to clear the
interrupt condition and determine the DMA interrupt status. The bits
in the DSTAT register indicate which DMA interrupts occurred and
determine what action is required to service the interrupts.
5.
If both the SIP and DIP bits are set, read
SCSI Interrupt Status Zero
(SIST0)
,
SCSI Interrupt Status One (SIST1)
, and
DMA Status
(DSTAT)
to clear the SCSI and DMA interrupt condition and
determine the interrupt status. If using 8-bit reads of the SIST0,
SIST1, and DSTAT registers to clear interrupts, insert a 12 clock
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 ISR. It is recommended that the DMA
interrupt is serviced before the SCSI interrupt, because a serious
DMA interrupt condition could influence how the SCSI interrupt is
acted upon.
6.
When using polled interrupts go back to Step 1 before leaving the
ISR in case any stacked interrupts moved in when the first interrupt
was cleared. When using hardware interrupts, the INTA/ (or INTB/)