mirror of
https://github.com/AppleWin/AppleWin.git
synced 2026-04-26 11:30:11 +00:00
Disk II: changing 'enhancedisk' doesn't cause a restart + added accessors (fixes #546)
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
|
||||
#include "../Applewin.h"
|
||||
#include "../CPU.h"
|
||||
#include "../Disk.h" // BOOL enhancedisk
|
||||
#include "../DiskImage.h" // Disk_Status_e
|
||||
#include "../Harddisk.h" // HD_CardIsEnabled()
|
||||
|
||||
class CConfigNeedingRestart
|
||||
@@ -11,7 +11,6 @@ public:
|
||||
CConfigNeedingRestart(UINT bEnableTheFreezesF8Rom = false) :
|
||||
m_Apple2Type( GetApple2Type() ),
|
||||
m_CpuType( GetMainCpu() ),
|
||||
m_bEnhanceDisk(enhancedisk),
|
||||
m_uSaveLoadStateMsg(0)
|
||||
{
|
||||
m_bEnableHDD = HD_CardIsEnabled();
|
||||
@@ -27,7 +26,6 @@ public:
|
||||
m_Apple2Type = other.m_Apple2Type;
|
||||
m_CpuType = other.m_CpuType;
|
||||
memcpy(m_Slot, other.m_Slot, sizeof(m_Slot));
|
||||
m_bEnhanceDisk = other.m_bEnhanceDisk;
|
||||
m_bEnableHDD = other.m_bEnableHDD;
|
||||
m_bEnableTheFreezesF8Rom = other.m_bEnableTheFreezesF8Rom;
|
||||
m_uSaveLoadStateMsg = other.m_uSaveLoadStateMsg;
|
||||
@@ -39,7 +37,6 @@ public:
|
||||
return m_Apple2Type == other.m_Apple2Type &&
|
||||
m_CpuType == other.m_CpuType &&
|
||||
memcmp(m_Slot, other.m_Slot, sizeof(m_Slot)) == 0 &&
|
||||
m_bEnhanceDisk == other.m_bEnhanceDisk &&
|
||||
m_bEnableHDD == other.m_bEnableHDD &&
|
||||
m_bEnableTheFreezesF8Rom == other.m_bEnableTheFreezesF8Rom &&
|
||||
m_uSaveLoadStateMsg == other.m_uSaveLoadStateMsg;
|
||||
@@ -54,7 +51,6 @@ public:
|
||||
eCpuType m_CpuType;
|
||||
SS_CARDTYPE m_Slot[NUM_SLOTS]; // 0..7
|
||||
SS_CARDTYPE m_SlotAux;
|
||||
BOOL m_bEnhanceDisk;
|
||||
bool m_bEnableHDD;
|
||||
UINT m_bEnableTheFreezesF8Rom;
|
||||
UINT m_uSaveLoadStateMsg;
|
||||
|
||||
@@ -24,6 +24,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
#include "StdAfx.h"
|
||||
|
||||
#include "../Applewin.h"
|
||||
#include "../Disk.h" // Drive_e, Disk_Status_e
|
||||
#include "../Frame.h"
|
||||
#include "../Registry.h"
|
||||
#include "../resource/resource.h"
|
||||
@@ -127,7 +128,7 @@ BOOL CPageDisk::DlgProcInternal(HWND hWnd, UINT message, WPARAM wparam, LPARAM l
|
||||
|
||||
case WM_INITDIALOG:
|
||||
{
|
||||
m_PropertySheetHelper.FillComboBox(hWnd, IDC_DISKTYPE, m_discchoices, enhancedisk);
|
||||
m_PropertySheetHelper.FillComboBox(hWnd, IDC_DISKTYPE, m_discchoices, Disk_GetEnhanceDisk() ? 1 : 0);
|
||||
m_PropertySheetHelper.FillComboBox(hWnd, IDC_COMBO_DISK1, m_defaultDiskOptions, -1);
|
||||
m_PropertySheetHelper.FillComboBox(hWnd, IDC_COMBO_DISK2, m_defaultDiskOptions, -1);
|
||||
m_PropertySheetHelper.FillComboBox(hWnd, IDC_COMBO_HDD1, m_defaultHDDOptions, -1);
|
||||
@@ -177,10 +178,11 @@ BOOL CPageDisk::DlgProcInternal(HWND hWnd, UINT message, WPARAM wparam, LPARAM l
|
||||
|
||||
void CPageDisk::DlgOK(HWND hWnd)
|
||||
{
|
||||
const BOOL bNewEnhanceDisk = (BOOL) SendDlgItemMessage(hWnd, IDC_DISKTYPE,CB_GETCURSEL, 0, 0);
|
||||
if (bNewEnhanceDisk != enhancedisk)
|
||||
const bool bNewEnhanceDisk = SendDlgItemMessage(hWnd, IDC_DISKTYPE,CB_GETCURSEL, 0, 0) ? true : false;
|
||||
if (bNewEnhanceDisk != Disk_GetEnhanceDisk())
|
||||
{
|
||||
m_PropertySheetHelper.GetConfigNew().m_bEnhanceDisk = bNewEnhanceDisk;
|
||||
Disk_SetEnhanceDisk(bNewEnhanceDisk);
|
||||
REGSAVE(TEXT(REGVALUE_ENHANCE_DISK_SPEED), (DWORD)bNewEnhanceDisk);
|
||||
}
|
||||
|
||||
const bool bNewHDDIsEnabled = IsDlgButtonChecked(hWnd, IDC_HDD_ENABLE) ? true : false;
|
||||
|
||||
@@ -45,9 +45,8 @@ Input
|
||||
. Mouse WM_USER_RESTART
|
||||
. CP/M WM_USER_RESTART
|
||||
Sound
|
||||
. MB/Phasor/SAM/None WM_USER_RESTART
|
||||
. MB/Phasor/SAM/None WM_USER_RESTART
|
||||
Disk
|
||||
. Enhanced disk speed WM_USER_RESTART Why? (used to patch Disk][ f/w - but not anymore)
|
||||
. HDD enable WM_USER_RESTART
|
||||
Advanced
|
||||
. Save State WM_USER_SAVESTATE
|
||||
@@ -399,9 +398,6 @@ void CPropertySheetHelper::ApplyNewConfig(const CConfigNeedingRestart& ConfigNew
|
||||
if (CONFIG_CHANGED_LOCAL(m_Slot[5]))
|
||||
SetSlot5(ConfigNew.m_Slot[5]);
|
||||
|
||||
if (CONFIG_CHANGED_LOCAL(m_bEnhanceDisk))
|
||||
REGSAVE(TEXT(REGVALUE_ENHANCE_DISK_SPEED), ConfigNew.m_bEnhanceDisk);
|
||||
|
||||
if (CONFIG_CHANGED_LOCAL(m_bEnableHDD))
|
||||
{
|
||||
REGSAVE(TEXT(REGVALUE_HDD_ENABLED), ConfigNew.m_bEnableHDD ? 1 : 0);
|
||||
@@ -425,7 +421,6 @@ void CPropertySheetHelper::SaveCurrentConfig(void)
|
||||
m_ConfigOld.m_CpuType = GetMainCpu();
|
||||
m_ConfigOld.m_Slot[4] = g_Slot4;
|
||||
m_ConfigOld.m_Slot[5] = g_Slot5;
|
||||
m_ConfigOld.m_bEnhanceDisk = enhancedisk;
|
||||
m_ConfigOld.m_bEnableHDD = HD_CardIsEnabled();
|
||||
m_ConfigOld.m_bEnableTheFreezesF8Rom = sg_PropertySheet.GetTheFreezesF8Rom();
|
||||
|
||||
@@ -444,7 +439,6 @@ void CPropertySheetHelper::RestoreCurrentConfig(void)
|
||||
SetMainCpu(m_ConfigOld.m_CpuType);
|
||||
g_Slot4 = m_ConfigOld.m_Slot[4];
|
||||
g_Slot5 = m_ConfigOld.m_Slot[5];
|
||||
enhancedisk = m_ConfigOld.m_bEnhanceDisk;
|
||||
HD_SetEnabled(m_ConfigOld.m_bEnableHDD);
|
||||
sg_PropertySheet.SetTheFreezesF8Rom(m_ConfigOld.m_bEnableTheFreezesF8Rom);
|
||||
}
|
||||
@@ -503,9 +497,6 @@ bool CPropertySheetHelper::HardwareConfigChanged(HWND hWnd)
|
||||
if (CONFIG_CHANGED(m_Slot[5]))
|
||||
strMsgMain += GetSlot(5);
|
||||
|
||||
if (CONFIG_CHANGED(m_bEnhanceDisk))
|
||||
strMsgMain += ". Floppy disk speed setting has changed\n";
|
||||
|
||||
if (CONFIG_CHANGED(m_bEnableHDD))
|
||||
strMsgMain += ". Harddisk(s) have been plugged/unplugged\n";
|
||||
|
||||
|
||||
Reference in New Issue
Block a user