Interface Rules for the SCSI Firmware
5-3
5
information; it does imply that only one routine handles the exit conditions
dictated by bit 13 of the second word in the user packet (also known as the
status word).
Multiple callers of the SCSI firmware are separate, independent drivers that
handle SCSI returns without knowledge of other drivers/callers. This
definition implies that more than one routine handles the exit conditions
dictated by bit 13 of the first returned status word.
Interface Rules for Multiple Callers
You send a command by loading the address of your packet in address register
A2 and jumping to the FUNNEL command entry ($FFFE078E). The system
must be in supervisory mode and the interrupt mask must the equal specified
in the packet.
A command may be sent to the FUNNEL command entry almost any time,
except as noted below.
A command may not be sent to the FUNNEL command entry point after the
following returned intermediate status codes have been received (all
intermediate status codes have bit 15 set):
1. ($xx04) Message received.
2. ($xx06) Command received (TARGET role)
The above intermediate status codes are returned when a TARGET is threaded
and on the SCSI bus. These cases require entry to the RTE entry to complete
the firmware-specified actions. Refer to Rule 2 below.
You may send a command to the FUNNEL command entry on all final status
returns except:
Final status with bit 13 clear, indicating that an RTE is to be executed. (In this
case, a new command may be sent by entering the firmware at the SCSI_RTE
entry, $FFFE079A. Register A3 must remain intact.)
IMPLEMENTATION NOTE: Your interface driver or interface server usually
has the command entry processing and command status processing
decoupled. In other words, commands are sent to the SCSI firmware as a
result of a subroutine call or as a result of a TRAP call to your driver or server.
Rule 1: COMMANDS ARE SENT TO FUNNEL
COMMAND ENTRY.