beautypg.com

Avago Technologies LSI53C1010 User Manual

Page 298

background image

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

This manual is related to the following products: