Thread: Emulation error
View Single Post
Old 02 February 2014, 09:45   #4
Toni Wilen
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 43
Posts: 21,523
Originally Posted by jdow View Post
Also may I suggest that uaehf.device disable interpreting the driverinit LSEGs?
driveinit is not implemented, never found any documentation (it only says "driveinit is not yet supported." in log if it is set in RDB). And I want to emulate everything just because you can, you are supposed to be able to run some ancient and stupid software on emulation. Even if it is most stupid thing to do

Normal LSEG blocks of course needs to be handled.

If you want "official" support, mount the HDF as A600/A1200/A4000 IDE or A590/A2091 SCSI drive (You also need A590/A2091 boot rom image). This bypasses uaehf.device and uses official binary driver. Good idea for comparison purposes too.

DiskEd edits the raw disk. You feed it the command "DiskEd DH0:" or "DiskEd DH0", it's pleasantly agnostic about that it appears. That goes off and searches for the DH0 device information and pulls out "uae.device". And it promptly comes up empty.
RDB hardfiles shouldn't have anything to do with uae.device, it is directory filesystem only. Are you sure you don't have any directory filesystems active at the same time?

Speaking of SCSI - your implementation appears to be faulty. The old HardFrame RDB tool, RDPrepX, uses direct SCSI commands to probe for possible multiple SCSI buses, multiple LUNs, as well as multiple SCSI IDs. It bombs out the first time it tries to probe a second LUN. It also uses mode sense and other support commands. I'd have to dig out the source code to double check what all it uses. Personally I prefer RDPrepX to HDFoolBox given a choice. I also use the hdwrench.library and the tester tool I built for it. I get finer grade control that way. {^_-}
I am quite sure one has used those tools (until now). hdtoolbox and other popular tools that use scsi commands work fine.

It should return normal CHECK CONDITION + ILLEGAL REQUEST/INVALID LUN if lun is > 0. (Not much point in supporting LUNs with HD emulation anyway)

Even Linux/NetBSD or even Amix works with low level SCSI emulation so the problem has to be somewhere, probably uaehf.device HD_SCSICMD does not update all structure fields 100% correctly.

Attach all tools with problems and those problems will disappear. No need for sources but I'd would of course help.

btw, does those tools support SCSI-II or only SCSI-I? Because very ancient versions of hdtoolbox for example don't like what INQUIRY returns if drive is SCSI-II.
Toni Wilen is online now  
Page generated in 0.03984 seconds with 10 queries