From a71e5ea0724667acb80fa256fb32b2ccb06f11a8 Mon Sep 17 00:00:00 2001 From: TC1995 Date: Fri, 12 Sep 2025 01:23:12 +0200 Subject: [PATCH] Last minute changes for the IDE hdd (September 12th, 2025) When a secondary slave is shadowed by an ATAPI secondary master, make sure the signature (and on reset too) doesn't make it "recognized" (0xeb14) in the cylinder register (as in, 0x0000'ing it) --- src/disk/hdc_ide.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/disk/hdc_ide.c b/src/disk/hdc_ide.c index b034fa3e3..e8c9fb05e 100644 --- a/src/disk/hdc_ide.c +++ b/src/disk/hdc_ide.c @@ -812,7 +812,7 @@ ide_set_signature(ide_t *ide) ide->tf->sector = 1; ide->tf->head = 0; ide->tf->secount = 1; - ide->tf->cylinder = ide_signatures[ide->type & ~IDE_SHADOW]; + ide->tf->cylinder = (ide->type == IDE_ATAPI_SHADOW) ? 0x0000 : ide_signatures[ide->type & ~IDE_SHADOW]; if (ide->type == IDE_HDD) ide->drive = 0; @@ -1581,7 +1581,7 @@ ide_reset_registers(ide_t *ide) ide->tf->atastat = DRDY_STAT | DSC_STAT; ide->tf->error = 1; ide->tf->secount = 1; - ide->tf->cylinder = ide_signatures[ide->type & ~IDE_SHADOW]; + ide->tf->cylinder = (ide->type == IDE_ATAPI_SHADOW) ? 0x0000 : ide_signatures[ide->type & ~IDE_SHADOW]; ide->tf->sector = 1; ide->tf->head = 0;