From 29555b30d3f96257ac12a546e75891490603aee8 Mon Sep 17 00:00:00 2001 From: Michael McMaster Date: Thu, 18 Nov 2021 20:37:39 +1000 Subject: [PATCH] Fix for CD emulation stopping the SCSI drive during load/eject requests --- CHANGELOG | 2 ++ src/firmware/disk.c | 10 +++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 6142fee0..2387e7c0 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,8 @@ ? 6.4.13 - Fix SCSI writes with sector sizes larger than 512. - Fix 2Gb SD cards being detected as 1Gb + - Fix for CD emulation stopping the drive when receiving a load/eject + request 20210810 6.4.12 diff --git a/src/firmware/disk.c b/src/firmware/disk.c index 43c58e55..af802f10 100755 --- a/src/firmware/disk.c +++ b/src/firmware/disk.c @@ -351,11 +351,15 @@ int scsiDiskCommand() { // START STOP UNIT // Enable or disable media access operations. - // Ignore load/eject requests. We can't do that. //int immed = scsiDev.cdb[1] & 1; int start = scsiDev.cdb[4] & 1; - - if (start) + int loadEject = scsiDev.cdb[4] & 2; + + if (loadEject) + { + // Ignore load/eject requests. We can't do that. + } + else if (start) { blockDev.state = blockDev.state | DISK_STARTED; if (!(blockDev.state & DISK_INITIALISED)) -- 2.26.2