diff --git a/src/BlueSCSI.cpp b/src/BlueSCSI.cpp index 9097abf..cb04a6f 100644 --- a/src/BlueSCSI.cpp +++ b/src/BlueSCSI.cpp @@ -355,8 +355,8 @@ void setup() // clear and initialize default inquiry blocks // default SCSI HDD memset(&default_hdd, 0, sizeof(default_hdd)); - default_hdd.ansi_version = 1; - default_hdd.response_format = 1; + default_hdd.ansi_version = 2; + default_hdd.response_format = 2; default_hdd.additional_length = 31; memcpy(&default_hdd.vendor, "QUANTUM", 7); memcpy(&default_hdd.product, "BLUESCSI F1", 11); @@ -366,8 +366,8 @@ void setup() memset(&default_optical, 0, sizeof(default_optical)); default_optical.peripheral_device_type = 5; default_optical.rmb = 1; - default_optical.ansi_version = 1; - default_optical.response_format = 1; + default_optical.ansi_version = 2; + default_optical.response_format = 2; default_optical.additional_length = 42; default_optical.sync = 1; memcpy(&default_optical.vendor, "BLUESCSI", 8); @@ -635,7 +635,17 @@ void findDriveImages(FsFile root) { readSCSIDeviceConfig(dev); } - } + } + // HDN(.*).hd1 is a SCSI-1 device. + if (file_name_length > 6 && + tolower(name[file_name_length - 4]) == '.' && + tolower(name[file_name_length - 3]) == 'h' && + tolower(name[file_name_length - 2]) == 'd' && + tolower(name[file_name_length - 1]) == '1') + { + dev->inquiry_block->ansi_version = 1; + dev->inquiry_block->response_format = 0; + } } LOG_FILE.sync(); } diff --git a/src/BlueSCSI.h b/src/BlueSCSI.h index 3e6c7bb..dabf6f7 100644 --- a/src/BlueSCSI.h +++ b/src/BlueSCSI.h @@ -279,7 +279,7 @@ struct SCSI_INQUIRY_DATA byte ansi_version:3; byte always_zero_byte3:5; // byte 3 - byte response_format:4; + byte response_format:4; // 0 = SCSI1, 1 = Before SCSI2 was finalized, 2 = SCSI2 byte reserved_byte4:2; byte tiop:1; byte always_zero_byte4:1;