Emerson MVME147 Computer Hardware User Manual


 
Interface Rules for the SCSI Firmware
5-11
5
MOVE.W 2(A2),D0 STATUS WORD TO D0.
BTST #15,D0 FINAL/INTERMEDIATE STATUS?
BEQ FINALSTAT IF 0, THE RETURN IS A FINAL ONE.
******************************************************************
************
*THE FOLLOWING CODE CHECKS ALL ALLOWED INTERMEDIATE RETURN CODES.
*
CMP.B #$02,D0 WAITING FOR AN INTERRUPT? (BUS CLEAR)
IF <EQ> THEN
BRA RET_OUT NO NEW COMMANDS TO SEND BECAUSE NO QUEUING
NECESSARY
* FOR MULTIPLE CALLERS, THE SCSI FIRMWARE QUEUES COMMANDS WHEN THE
BUS IS
* BUSY.
* BECAUSE OF THIS REASON, NO COMMAND QUEUING IS NECESSARY IN THE
DRIVER. IF
* THERE IS NO QUEUING IN THE DRIVER, THE DRIVER WILL NOT HAVE A NEW
COMMAND
* TO SEND WHENEVER AN INTERMEDIATE OR FINAL RETURN OCCURS. THE
COMMANDS ARE
* ALWAYS SENT AS THEY ARRIVE TO THE DRIVER.
* ’RET_INT’ is the user’s code to handle the return from interrupt
process.
ENDI
CMP.B #$04,D0 MESSAGE INTERPRETATION?
IF <EQ> THEN
BSR INTERPRET INTERPRET IS A MESSAGE INTERPRETATION
ROUTINE
BRA RET_INT
ENDI
CMP.B #$06,D0 COMMAND RECEIVED FOR THE TARGET?
IF <EQ> THEN
BSR SERVCMD SERVCMD IS TARGET ROLE COMMAND SERVICE
ROUTINE
BRA RET_INT
ENDI