ASPI - obituary?
Jeff A Reid
Jeff_A_Reid at notes.seagate.com
Thu Jan 30 21:57:00 PST 1997
* From the SCSI Reflector (scsi at symbios.com), posted by:
* Jeff A Reid <Jeff_A_Reid at notes.seagate.com>
While creating a ASPI based tester, I learned a little about
the ASPI interface and here goes on some of the questions:
>... can I transfer more than 64K of data?
>... can I attempt precisely 64K of data
>... can I transfer 64K w/out seeing corrupt bytes?
With ASPI yes, some SCSI controllers no.
Limit is DOS memory below 640K, using QEMM to maximize
available memory, I have been able to do 540K transfers.
There may be a limit with some Windows 3.1 ASPI drivers
(but not the DOS ASPI).
>... can I detect overruns of small buffers?
>... can I detect underruns?
An "good" ASPI driver should not overflow a buffer
or hang, but throw away excess data instead. I found
some popular ASPI drivers that just hang. Make sure
that your buffers are always big enough.
I never found out how to detect the actual amount
of data transferred. Usually what you get is what
you asked for, and if not, a check condition along
with sense data should explain the difference.
Except Inquiry, which never returns an error.
>... can I turn off auto-sense?
Don't know on this one.
>... can I make the Escape key cancel stuff?
>... can I set my own timeouts?
Since ASPI immediately returns, you can implement
the escape or timeout handling yourself, while
"polling" for srb completion status, or using the
"post" feature. You have to use the ASPI Abort
I/O srb[?]==? to cancel a pending command.
>... must I count adapters
Use ASPI Inquiry srb==0 command to get the number of
host adapters. Use ASPI Get Device Type srb==1, to "poll"
for devices on each adapter. Note that a lot of cards
only check for device presence at system boot time.
>... must I zero the offset of segment:offset ptrs?
If the ASPI driver needs to adjust segment:offset, it
should do it itself. Bus-mastering cards (DMA recommended
for PC97) need to convert to physical address anyway,
so this shouldn't matter.
>Anybody have a more positive experience to report?
Our tester works with several ASPI drivers.
* For SCSI Reflector information, send a message with
* 'info scsi' (no quotes) in the message body to majordomo at symbios.com
More information about the T10