Hi all, with help of Tyler and his collection of test systems,
we finally figured out the LBAcache SCSI detection bug:

IF you have SCSI and
IF you load LBAcache to UMB and
IF those UMBs are not fully DMAable - in other words
IF those UMBs are created by some EMM386
THEN the LBA detection (int 13.41) works *but*
the int 13.08 *geometry* detection fails! It returns error AX=80xx, timeout,
after quite some delay (seconds), carry set, no other registers updated.

We tried a few things: The "ES:DI=0:0 to guard against BIOS bugs" did not
do the trick. Even SI=DI=-1 did not crash, so next was the stack:

mov ax,7000
mov ss,ax

makes int 13.08 work if you try from "LOADHIGH DEBUG" (if UMB are too small,
DEBUG will not actually be loaded high).

So CONCLUSION:
The SCSI BIOS seems to do DMA to the CALLER STACK!

Please suggest some nice cozy place in low DOS RAM which can be used
by LBAcache as temporary stack while calling int 13.08, thanks.

Eric


-------------------------------------------------------
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click
_______________________________________________
Freedos-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to