From: Toni Wilen Date: Thu, 25 May 2017 14:22:36 +0000 (+0300) Subject: Added dummy FORMAT TRACK and VERIFY TRACK commands. X-Git-Tag: 3500~25 X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=f9915758dc06e59749ec965f1db115f1aeb1555c;p=francis%2Fwinuae.git Added dummy FORMAT TRACK and VERIFY TRACK commands. --- diff --git a/hardfile.cpp b/hardfile.cpp index 95f9f073..df659568 100644 --- a/hardfile.cpp +++ b/hardfile.cpp @@ -1423,6 +1423,20 @@ int scsi_hd_emulate (struct hardfiledata *hfd, struct hd_hardfiledata *hdhfd, ua goto readprot; scsi_len = 0; break; + case 0x05: /* VERIFY TRACK */ + // do nothing + if (nodisk (hfd)) + goto nodisk; + scsi_len = 0; + break; + case 0x06: /* FORMAT TRACK */ + // do nothing + if (nodisk (hfd)) + goto nodisk; + if (is_writeprotected(hfd)) + goto readprot; + scsi_len = 0; + break; case 0x09: /* READ VERIFY */ if (nodisk(hfd)) goto nodisk; diff --git a/scsi.cpp b/scsi.cpp index 40b5c972..1fc01ec5 100644 --- a/scsi.cpp +++ b/scsi.cpp @@ -67,7 +67,7 @@ extern int log_scsiemu; static const int outcmd[] = { 0x04, 0x0a, 0x0c, 0x2a, 0xaa, 0x15, 0x55, 0x0f, -1 }; static const int incmd[] = { 0x01, 0x03, 0x08, 0x12, 0x1a, 0x5a, 0x25, 0x28, 0x34, 0x37, 0x42, 0x43, 0xa8, 0x51, 0x52, 0xb9, 0xbd, 0xbe, -1 }; -static const int nonecmd[] = { 0x00, 0x05, 0x09, 0x0b, 0x11, 0x16, 0x17, 0x19, 0x1b, 0x1d, 0x1e, 0x2b, 0x35, 0x45, 0x47, 0x48, 0x49, 0x4b, 0x4e, 0xa5, 0xa9, 0xba, 0xbc, 0xe0, 0xe3, 0xe4, -1 }; +static const int nonecmd[] = { 0x00, 0x05, 0x06, 0x09, 0x0b, 0x11, 0x16, 0x17, 0x19, 0x1b, 0x1d, 0x1e, 0x2b, 0x35, 0x45, 0x47, 0x48, 0x49, 0x4b, 0x4e, 0xa5, 0xa9, 0xba, 0xbc, 0xe0, 0xe3, 0xe4, -1 }; static const int scsicmdsizes[] = { 6, 10, 10, 12, 16, 12, 10, 6 }; static void scsi_illegal_command(struct scsi_data *sd) @@ -146,6 +146,12 @@ bool scsi_emulate_analyze (struct scsi_data *sd) return true; } break; + case 0x06: // FORMAT TRACK + if (sd->device_type == UAEDEV_CD) + goto nocmd; + sd->direction = 0; + sd->data_len = 0; + return true; case 0x0c: // INITIALIZE DRIVE CHARACTERICS (SASI) if (sd->hfd && sd->hfd->ci.unit_feature_level < HD_LEVEL_SASI) goto nocmd;