AcornSearch - Acorn and RISC OS information searching
RISC OS Search
containing
"Nutty quip goes here!"
Home  |  About  |  Filebase Archive  |  StrongHelp Manuals  |  Newsgroups  |  Module Database
=>     R0 =     Bits 0..7     Device ID
           Bits 24..25     00 => no data transfer, 01 => read, 10 => write, 11 => reserved
           Bit 26     Scatter Bit, if set, R3 is a pointer to a scatter list.
           Bit 27     If clear, poll escape during transfer and abort if escape pressed
           Bit 28     If set, repeatedly retry on timeout
           Bit 29     Set if a background transfer (possibly 0 length).
     R1 =     Length of SCSI control block
     R2 =     Ptr to SCSI control block
     R3 =     RAM ptr for start of transfer or pointer to scatter list of address length
           pairs if Bit 26 of R0 is set. After each chunk in the scatter list is
           transferred the address should be incremented and the length set to 0.
     R4 =     Length of transfer (in bytes).
     R5 =     Timeout in centiseconds or 0 for default timeout
     R6 =     Address to call back when transfer is complete if background Bit set.
           The call is made in IRQ mode with IRQs disabled.
           If an error has occurred, V is set, R0 points to a non-dynamic error
           block, (ie a pointer to a fixed block in the module rather than built
           up in a buffer), R1 indicates the cause of the error and R2 the logical
           address on the device of where the error occured.
     R7 =     Workspace pointer to pass in R12 for background call back.
     R8 =     access key

=>     V clear
     R0 =     returns a 32 Bit id incremented for each operation. Used to cancel op.
     R3 =     updated to indicate how much of transfer was successful (if scatter list, pointer to first unused/partially used entry).
     R4 =     updated to the amount untransferred

=>     V set
     R0 =     points to an error block
     R1 =     indicates the cause of the error
     R2 =     hold the logical address on the device of where the error occured.
     R3 =     updated to indicate how much of transfer was successful (if scatter
           list, points to first unused entry, entry is updated to indicate amount
           transfered).
     R4 =     updated to the amount untransferred

This SWI issues a SCSI command to a device and can be called in the background.

[sh-index] Back to list of manuals