Avago Technologies LSI53C1010 User Manual
Page 298
![background image](https://www.manualsdir.com/files/864554/content/doc298.png)
B-4
Multithreaded SCRIPTS Example
status_phase:
MOVE FROM status_buf, WHEN STATUS
JUMP REL(to_decisions), WHEN NOT MSG_IN
msg_in_phase:
MOVE FROM msg_in_buf, WHEN MSG_IN
JUMP REL(disconnected), IF DISCONNECT_
JUMP REL(msg_in_phase), WHEN SAVE_DATAPTR_ ;compare data,
wait for phase
INT error_not_cmd_complete, IF NOT 0x00
CLEAR ACK
MOVE SCNTL2 & 0x7F TO SCNTL2
WAIT DISCONNECT
INT io_complete
disconnected:
MOVE SCNTL2 & 0x7F TO SCNTL2
WAIT DISCONNECT
JUMP REL(wait_for_reselect)
to_decisions:
JUMP REL(msg_in_phase),
WHEN MSG_IN
JUMP REL(cmd_phase),
IF CMD
JUMP REL(data_in_phase),
IF DATA_IN
JUMP REL(data_out_phase),
IF DATA_OUT
JUMP REL(status_phase),
IF STATUS
INT error_unexpected_phase
;Reselect SCRIPT code
wait_for_reselect:
WAIT RESELECT REL(CPU_set_SIGP)
SCSI_id_jump_table:
MOVE SSID TO SFBR
JUMP REL(id_0), IF 0x00 ;
JUMP REL(id_1), IF 0x01
JUMP REL(id_2), IF 0x02
INT reselect_id_error
id_0:
MOVE MEMORY 4, PATCH_addr_of_table0_ptr,
PATCH_chip_physaddr+DSA
;initialize SXFER for synchronous transfers from table
MOVE MEMORY
1,PATCH_addr_of_table0+2,PATCH_chip_physaddr+SXFER
MOVE MEMORY
1,PATCH_addr_of_table0,PATCH_chip_physaddr+SCNTL3