diff --git a/software/SCSI2SD/src/geometry.c b/software/SCSI2SD/src/geometry.c index 0666b5a..c3c6bb7 100755 --- a/software/SCSI2SD/src/geometry.c +++ b/software/SCSI2SD/src/geometry.c @@ -28,7 +28,16 @@ uint32_t getScsiCapacity( uint32_t capacity = (sdDev.capacity - sdSectorStart) / SDSectorsPerSCSISector(bytesPerSector); - if (scsiSectors && (capacity > scsiSectors)) + + if (sdDev.capacity == 0) + { + capacity = 0; + } + else if (sdSectorStart >= sdDev.capacity) + { + capacity = 0; + } + else if (scsiSectors && (capacity > scsiSectors)) { capacity = scsiSectors; } diff --git a/software/SCSI2SD/v4/SCSI2SD.cydsn/SCSI2SD.cyfit b/software/SCSI2SD/v4/SCSI2SD.cydsn/SCSI2SD.cyfit index c2567cd..4ee1a97 100644 Binary files a/software/SCSI2SD/v4/SCSI2SD.cydsn/SCSI2SD.cyfit and b/software/SCSI2SD/v4/SCSI2SD.cydsn/SCSI2SD.cyfit differ