Porting old applications from Sequoia to ASPI
A simple workaround to disable the AutoSense feature
by Fayez Mohamood

This article might help some of you who are trying to translate programs that use older libraries for SCSI communication like Sequoia.

"DisableAutoSense()" should be pretty self-explanatory to most of you; this Sequoia function allows us to tell a SCSI disk-drive not to send back the sense data in case an error occurs.

It gives us the flexibility to read back the previous sense data at our leisure.

Now as I have recently understood, the DisableAutoSense is not a feature provided by the SCSI device, rather it is a function provided by the Sequoia library.

Problem is, as far as I know, ASPI does not provide such a feature, therefore it could be a little tedious trying to figure out how to handle all your already existing parts of the code that uses the RequestSense() function to get the sense data especially like in my case where my code has over 1 million lines.

However, if you do stick to object oriented programming techniques while writing your code, you should be able to get away with a simple fix. Just keep a location that stores any sense data after every command is executed.

Now in case the command came back with a bad return error code, instead of calling your RequestSense() function (which would not give you any valid data anyways) you can just go back and retrieve the data from that location where you stored it.

Hope this helps. Feel free to contact me if there are any other problems you might be facing with similar issues.

Fayez Mohamood (fxm4139@njit.edu)