S1R72104 Technical Manual
28
EPSON
Rev.1.1
Status_Message(1AH)
Executes the message-in phase after executing the status phase.
Valid only in the connected condition. It can be issued in either Target or Initiator mode.
If issued in the disconnected condition, it sets SCSIINT2 and CMDER bits, causing interruption.
In Target mode
Writing the status message to be sent in FIFO issues this command.
It is allowed also to write the status message to be transferred in FIFO after issuing the command.
The IC acts as follows:
Sets the status phase, and transfer one status byte taken out of FIFO.
Sets the message-in phase, and transfer one message byte taken out of FIFO.
Suspends REQ-ACK hand-shake until FIFO becomes full of data, if FIFO was empty.
After that, it sets GOOD bit of MAININT register.
It causes interruption.
In Initiator mode
Issuing this command makes each one byte of status and message taken in FIFO.
CPU reads one status byte, then one message byte, from FIFO.
The IC acts as follows:
Negates XSACK if it is asserted at the start of execution.
Enters status into FIFO after checking the status phase at the timing of assertion of XSREQ.
After receiving status, it enters message into FIFO after checking the message-in phase at the timing of
assertion of XSREQ.
After that, it sets GOOD bit of MAININT register.
It causes interruption.
Note: The message length is fixed at one byte.
7.4.3 Command Execution and State Transition
The IC has the following three state transitions from the viewpoint of execution of SCSI-type commands:
Disconnected condition (D)
Connected condition in Initiator mode (I)
Connected condition in Target mode (T)
The state transition among those conditions are caused by specific commands, as shown in the figure below:
The transition from I to D is done implicitly except by Assert_RST command.
It means that there is no command which causes such transition explicitly. The disconnected condition is
assumed if busfree is found when a next connection-type command is issued, and the command is executed. If
busfree is not found, the disconnected condition is waited for, and the connection-related command is
suspended.
The connection-type command can be executed in the disconnected condition. It may be issued in such
condition.
If it is issued while SCSI control command is under execution, though, a command error will occur.
A transfer-type command can be executed in the connected condition. If it is issued in the disconnected
condition, a command error will occur.
Both connection- and transfer-type commands can be executed when the IC is in the condition where no SCSI
control command is under execution.
If they are issued while SCSI control command is under execution, a command error will occur.
WAIT_SCAM_SELECT_COMMAND
WAIT_SELECT_COMMAND
RESELECT
SELECT
***
WAIT_RESELECT
D
T
I
BUSFREE
ASSERT_RST