From: Toni Wilen Date: Wed, 21 May 2025 14:10:28 +0000 (+0300) Subject: Fix Apollo AT500/2000 IDE HD controlller, AT variant boot ROM does not initialize... X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=3f61f17fe9011afdda18e196787153ce5bdd4669;p=francis%2Fwinuae.git Fix Apollo AT500/2000 IDE HD controlller, AT variant boot ROM does not initialize if it sees set SCSI hardware config bit. --- diff --git a/expansion.cpp b/expansion.cpp index 0eb80774..e12678b8 100644 --- a/expansion.cpp +++ b/expansion.cpp @@ -5320,6 +5320,16 @@ static const struct expansionboardsettings cdtvsram_settings[] = { } }; +static const struct expansionboardsettings apollo500_settings[] = { + { + _T("SCSI module installed"), + _T("scsi") + }, + { + NULL + } +}; + const struct expansionromtype expansionroms[] = { { @@ -5452,8 +5462,8 @@ const struct expansionromtype expansionroms[] = { NULL, apollo_init_hd, NULL, apollo_add_scsi_unit, ROMTYPE_APOLLOHD, 0, 0, BOARD_AUTOCONFIG_Z2, false, NULL, 0, false, EXPANSIONTYPE_SCSI | EXPANSIONTYPE_IDE, - 8738, 0, 0 - }, + 8738, 0, 0, false, NULL, + false, 0, apollo500_settings }, { _T("add500"), _T("ADD-500"), _T("Archos"), NULL, add500_init, NULL, add500_add_scsi_unit, ROMTYPE_ADD500, 0, 0, BOARD_AUTOCONFIG_Z2, false, diff --git a/idecontrollers.cpp b/idecontrollers.cpp index 220df249..b2ef4e8b 100644 --- a/idecontrollers.cpp +++ b/idecontrollers.cpp @@ -2436,6 +2436,10 @@ static bool apollo_init(struct autoconfig_info *aci, int cpuboard_model) ide->userdata = currprefs.cpuboard_settings & 1; } else { ide->userdata = aci->rc->autoboot_disabled ? 2 : 0; + ide->userdata |= 1; + if (aci->rc->device_settings & 1) { + ide->userdata &= ~1; + } } ide->configured = 0;