View Single Post
Old 18 October 2012, 17:53   #18
Toni Wilen
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 44
Posts: 23,112
Originally Posted by thomas View Post
I still don't see a reason why a (hard drive) file system would need to call TD_GETGEOMETRY. Scsi.device does not even support TD_GETGEOMETRY.
Forget it, I thought it was needed.

Do these old controllers with crashing drivers support disks bigger than 4GB? If they don't, the discussion is pointless.
Good point, but see below.

1. calculate the last block of the partition. If it is inside the first 4GB of the drive, use CMD_READ and CMD_WRITE. No 64 bit or SCSI support needed.
A590 with pre-7.0 ROM and CDTV SCSI expansion (all available ROM versions) have 1G limit (returns error if >1G access) when using CMD_READ/WRITE but HD_SCSICMD is "unlimited".

AFAIK there are also other old true SCSI controllers that convert CMD_READ/WRITE to SCSI Read(6) and Write(6) which has 1G limit. HD_SCSICMD and Read/Write(10) works fine, even if drive is >4G. (But on the other hand some controllers simply hang if drive is too big..)

This is the remaining annoying problem.

ADDED: I guess this should work: if end of partition is <4G and CMD_READ fails, re-read using HD_SCSICMD SCSI Read(6). Select DS if it succeeds.

Last edited by Toni Wilen; 18 October 2012 at 19:24.
Toni Wilen is online now  
Page generated in 0.04128 seconds with 11 queries