Draft27 is working for IIe
This commit is contained in:
parent
c7335600c4
commit
8e4c3366fb
|
@ -112,11 +112,21 @@ BYTE __stdcall LanguageCardUnit::IO(WORD PC, WORD uAddr, BYTE bWrite, BYTE uValu
|
|||
if (MemOptimizeForModeChanging(PC, uAddr))
|
||||
return bWrite ? 0 : MemReadFloatingBus(nExecutedCycles);
|
||||
|
||||
bool bBankChanged = GetLastSlotToSetMainMemLC() != SLOT0;
|
||||
if (bBankChanged)
|
||||
SetMemMainLanguageCard(NULL, SLOT0, true); // TODO: fix for non-//e
|
||||
|
||||
// IF THE MEMORY PAGING MODE HAS CHANGED, UPDATE OUR MEMORY IMAGES AND
|
||||
// WRITE TABLES.
|
||||
if (lastmemmode != memmode)
|
||||
if ((lastmemmode != memmode) || bBankChanged)
|
||||
{
|
||||
SetMemMode((GetMemMode() & ~MF_LANGCARD_MASK) | (memmode & MF_LANGCARD_MASK));
|
||||
if (lastmemmode != memmode)
|
||||
{
|
||||
// UINT oldmode = GetMemMode();
|
||||
SetMemMode((GetMemMode() & ~MF_LANGCARD_MASK) | (memmode & MF_LANGCARD_MASK));
|
||||
// UINT newmode = GetMemMode();
|
||||
// LogOutput("[s%d] LC memmode: %08X -> %08X\n", pLC->m_slot, oldmode, newmode);
|
||||
}
|
||||
MemUpdatePaging(0); // Initialize=0
|
||||
}
|
||||
|
||||
|
@ -383,7 +393,12 @@ BYTE __stdcall Saturn128K::IO(WORD PC, WORD uAddr, BYTE bWrite, BYTE uValue, ULO
|
|||
if ((lastmemmode != memmode) || bBankChanged)
|
||||
{
|
||||
if (lastmemmode != memmode)
|
||||
{
|
||||
// UINT oldmode = GetMemMode();
|
||||
SetMemMode((GetMemMode() & ~MF_LANGCARD_MASK) | (memmode & MF_LANGCARD_MASK));
|
||||
// UINT newmode = GetMemMode();
|
||||
// LogOutput("[s%d] LC memmode: %08X -> %08X\n", pLC->m_slot, oldmode, newmode);
|
||||
}
|
||||
MemUpdatePaging(0); // Initialize=0
|
||||
}
|
||||
|
||||
|
|
|
@ -401,6 +401,11 @@ LPBYTE GetCxRomPeripheral(void)
|
|||
return pCxRomPeripheral; // Can be NULL if at MODE_LOGO
|
||||
}
|
||||
|
||||
UINT GetLastSlotToSetMainMemLC(void)
|
||||
{
|
||||
return g_lastSlotToSetMainMemLC;
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
|
||||
static BYTE __stdcall IORead_C00x(WORD pc, WORD addr, BYTE bWrite, BYTE d, ULONG nExecutedCycles)
|
||||
|
|
|
@ -118,3 +118,4 @@ UINT GetRamWorksActiveBank(void);
|
|||
void SetMemMainLanguageCard(LPBYTE ptr, UINT slot, bool bMemMain=false);
|
||||
|
||||
LPBYTE GetCxRomPeripheral(void);
|
||||
UINT GetLastSlotToSetMainMemLC(void);
|
||||
|
|
Loading…
Reference in New Issue