mirror of
https://github.com/AppleWin/AppleWin.git
synced 2024-05-28 17:41:37 +00:00
Add LC Reset()
This commit is contained in:
parent
729cd56093
commit
b550e9ec51
|
@ -84,6 +84,14 @@ LanguageCardUnit::~LanguageCardUnit(void)
|
||||||
// . else: subclass will do ptr clean up
|
// . else: subclass will do ptr clean up
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void LanguageCardUnit::Reset(const bool powerCycle)
|
||||||
|
{
|
||||||
|
// For power on: card's ctor will have set card's local memmode to LanguageCardUnit::kMemModeInitialState.
|
||||||
|
// For reset: II/II+ unaffected, so only for //e or above.
|
||||||
|
if (IsAppleIIeOrAbove(GetApple2Type()))
|
||||||
|
SetLCMemMode(LanguageCardUnit::kMemModeInitialState);
|
||||||
|
}
|
||||||
|
|
||||||
void LanguageCardUnit::InitializeIO(LPBYTE pCxRomPeripheral)
|
void LanguageCardUnit::InitializeIO(LPBYTE pCxRomPeripheral)
|
||||||
{
|
{
|
||||||
RegisterIoHandler(m_slot, &LanguageCardUnit::IO, &LanguageCardUnit::IO, NULL, NULL, this, NULL);
|
RegisterIoHandler(m_slot, &LanguageCardUnit::IO, &LanguageCardUnit::IO, NULL, NULL, this, NULL);
|
||||||
|
@ -537,6 +545,9 @@ UINT Saturn128K::GetSaturnMemorySize()
|
||||||
|
|
||||||
void LanguageCardManager::Reset(const bool powerCycle /*=false*/)
|
void LanguageCardManager::Reset(const bool powerCycle /*=false*/)
|
||||||
{
|
{
|
||||||
|
if (IsApple2PlusOrClone(GetApple2Type()) && !powerCycle) // For reset : II/II+ unaffected
|
||||||
|
return;
|
||||||
|
|
||||||
if (GetLanguageCard())
|
if (GetLanguageCard())
|
||||||
GetLanguageCard()->SetLastRamWrite(0);
|
GetLanguageCard()->SetLastRamWrite(0);
|
||||||
|
|
||||||
|
@ -544,19 +555,6 @@ void LanguageCardManager::Reset(const bool powerCycle /*=false*/)
|
||||||
SetMemMode(0);
|
SetMemMode(0);
|
||||||
else
|
else
|
||||||
SetMemMode(LanguageCardUnit::kMemModeInitialState);
|
SetMemMode(LanguageCardUnit::kMemModeInitialState);
|
||||||
|
|
||||||
// For power on: card's ctor will have set card's local memmode to LanguageCardUnit::kMemModeInitialState.
|
|
||||||
// For reset: II/II+ unaffected, so only for //e or above.
|
|
||||||
if (IsAppleIIeOrAbove(GetApple2Type()))
|
|
||||||
{
|
|
||||||
if (GetCardMgr().QuerySlot(SLOT0) != CT_Empty) // LC or Saturn
|
|
||||||
dynamic_cast<LanguageCardUnit&>(GetCardMgr().GetRef(SLOT0)).SetLCMemMode(GetMemMode() & MF_LANGCARD_MASK);
|
|
||||||
for (UINT i = SLOT1; i < NUM_SLOTS; i++)
|
|
||||||
{
|
|
||||||
if (GetCardMgr().QuerySlot(i) == CT_Saturn128K)
|
|
||||||
dynamic_cast<LanguageCardUnit&>(GetCardMgr().GetRef(i)).SetLCMemMode(GetMemMode() & MF_LANGCARD_MASK);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void LanguageCardManager::SetMemModeFromSnapshot(void)
|
void LanguageCardManager::SetMemModeFromSnapshot(void)
|
||||||
|
|
|
@ -15,7 +15,7 @@ public:
|
||||||
virtual ~LanguageCardUnit(void);
|
virtual ~LanguageCardUnit(void);
|
||||||
|
|
||||||
virtual void Destroy(void) {}
|
virtual void Destroy(void) {}
|
||||||
virtual void Reset(const bool powerCycle) {}
|
virtual void Reset(const bool powerCycle);
|
||||||
virtual void Update(const ULONG nExecutedCycles) {}
|
virtual void Update(const ULONG nExecutedCycles) {}
|
||||||
|
|
||||||
virtual void InitializeIO(LPBYTE pCxRomPeripheral);
|
virtual void InitializeIO(LPBYTE pCxRomPeripheral);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user