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.
>

Reply via email to