Actually, I noticed this a while ago, but never sent a patch (since I don't have a
program using it).
In the flags there are 2 bits. One is tested for by the current TARGET_TO_HOST macro,
the other is tested for by the current
HOST_TO_TARGET macro. Those are technically correct, but there is another anomaly.
It seems that specifying BOTH bits in regular
(16-bit) ASPI means no data transfer at all (although you would think that specifying
a 0 length data buffer would be enough anyway).
This is technically not supported in WNASPI32, but if the DLLs were to merge I don't
think it would be a problem. Specifying no bits
is defined as SRB_DIR_SCSI. The way I coded it is SRB_DIR_SCSI means a transfer both
ways.
To accomplish that I just thought of it as: As long as you don't specifically specify
a transfer in the opposite direction, you want to
transfer the data. So instead of checking for TARGET_TO_HOST, you check to make sure
that HOST_TO_TARGET was /not/ specified, and
instead of checking for HOST_TO_TARGET, you check to make sure that TARGET_TO_HOST was
/not/ specified.
Like I said, I have no idea if that is correct, but that may be an easier way to do it
than checking for every possible case.
And I'm definitely glad to see other people hammering on the code. ASPI is very cool
because it is the first step to actually using
Wine to support a piece of hardware (like a CD-R or DVD). Although in a way, a DVD
player/CD-R program is not really a hardware
interface, it's more of an application, and thus more along the lines of what Wine
does.
Well, on to the next project (like figuring out how in the hell to get Linux to see
past the cylinder limitations jumper on a
> 32GB Maxtor, right now I am thinking just use EZ-Drive and multiply C*H*S reported
>by EZ-Drive to get the correct LBA capacity).
-Dave
Marcus Meissner wrote:
> Hi,
>
> Trying to get SoftDVD Max from MGI Soft to run under WINE, I had to fix
> some bits in the WinASPI dll, see Changelog.
>
> The player also appears to want a RPC2 compliant DVD drive (supporting
> region codes). I just added a hack to return success on the apropiate
> calls.
>
> Ciao, Marcus
>
> Changelog:
> slightly better REQUEST SENSE dumping, fixed GET_DEV_TYPE returns,
> work around EXEC SCSI commands which do not set the host<->target data
> flags, ignore errors on DVD REPORT KEY/DVD SEND KEY.
>