From f035a533740400aa7c6846946c756a6688df5991 Mon Sep 17 00:00:00 2001 From: tomcw Date: Wed, 21 Aug 2024 23:00:48 +0100 Subject: [PATCH] For II/II+/Unenhanced //e use the new SmartPort firmware, but with $Cs07 = 0x3C. (#1319) --- source/Harddisk.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/source/Harddisk.cpp b/source/Harddisk.cpp index 1ac6c885..077a048a 100644 --- a/source/Harddisk.cpp +++ b/source/Harddisk.cpp @@ -202,13 +202,11 @@ void HarddiskInterfaceCard::Reset(const bool powerCycle) void HarddiskInterfaceCard::InitializeIO(LPBYTE pCxRomPeripheral) { const DWORD HARDDISK_FW_SIZE = APPLE_SLOT_SIZE; - - WORD id = IsEnhancedIIE() ? IDR_HDC_SMARTPORT_FW : IDR_HDDRVR_V2_FW; + WORD id = IDR_HDC_SMARTPORT_FW; // If not enhanced //e, then modify the firmware later // Use any cmd line override if (m_useHdcFirmwareV1 || m_saveStateFirmwareV1) id = IDR_HDDRVR_FW; else if (m_useHdcFirmwareV2 || m_saveStateFirmwareV2) id = IDR_HDDRVR_V2_FW; - else if (m_useHdcFirmwareMode == HdcSmartPort) id = IDR_HDC_SMARTPORT_FW; m_saveStateFirmwareV1 = false; m_saveStateFirmwareV2 = false; @@ -241,6 +239,11 @@ void HarddiskInterfaceCard::InitializeIO(LPBYTE pCxRomPeripheral) const BYTE numDrives = (m_useHdcFirmwareMode == HdcBlockMode2Devices) ? 1 : 3; pFirmwareBase[0xFE] = (pFirmwareBase[0xFE] & 0xCF) | (numDrives << 4); // 2 or 4 drives } + else if (!IsEnhancedIIE()) + { + if (m_useHdcFirmwareMode != HdcSmartPort) + pFirmwareBase[0x07] = 0x3C; // Block mode (not SmartPort) + } } RegisterIoHandler(m_slot, IORead, IOWrite, NULL, NULL, this, NULL);