;-----------------------------------------------------------------------!
; DevEnquiry!
;-----------------------------------------------------------------------!
fn DevEnquiry
push{lr}; save regs
movsr0, cmdEnquiry; setup
blUsbSetupMS;
movsr0, pidOut; send command wrapper
movsr1, cbwSz;
movsr2, 0; use tBuff
blUsbBulkTD;
cbnzr0, 9f; oops
; for some devices, a delay here seems to be essential
; one device needs approx 800 ms
; It might also be reqd for the 1st SCSI operation.
movsr0, 0x380; delay for a bit, but why? !!!
blUsbDelay;
movsr0, pidIn; get payload
movsr1, 36; enquiry data size
movsr2, 0; use tBuff
blUsbBulkTD;
cbnzr0, 9f; oops
addsr0, r7, devEnq; stash details
addsr1, r7, tBuff;
movsr2, 36;
blblkcpy;
movsr2, 42; only reason for doing this
blUsbDump;
movsr0, pidIn; get status
movsr1, cswSz;
movsr2, 0; use tBuff
blUsbBulkTD;
cbnzr0, 9f; oops
ldrbr0, [r7, tBuff+12]; get status code (0 = ok)
9:pop{pc};
fe DevEnquiry
|