diff --git a/source/Common.h b/source/Common.h index c8572e96..6dcf7756 100644 --- a/source/Common.h +++ b/source/Common.h @@ -200,7 +200,7 @@ inline bool IsApple2Original(eApple2Type type) // Apple ][ inline bool IsApple2Plus(eApple2Type type) // Apple ][,][+ { - return (type & (APPLE2E_MASK|APPLE2C_MASK)) == 0; + return ((type & (APPLE2E_MASK|APPLE2C_MASK)) == 0) && !(type & APPLECLONE_MASK); } inline bool IsClone(eApple2Type type) @@ -210,8 +210,7 @@ inline bool IsClone(eApple2Type type) inline bool IsApple2PlusOrClone(eApple2Type type) // Apple ][,][+ or clone ][,][+ { - return ((type & (APPLE2E_MASK|APPLE2C_MASK)) == 0) - || (type & APPLECLONE_MASK) && !(type & A2TYPE_CLONE_A2E); + return (type & (APPLE2E_MASK|APPLE2C_MASK)) == 0; } extern eApple2Type g_Apple2Type; diff --git a/source/Memory.cpp b/source/Memory.cpp index 42dcc991..cc43c55e 100644 --- a/source/Memory.cpp +++ b/source/Memory.cpp @@ -1903,9 +1903,10 @@ BYTE __stdcall MemSetPaging(WORD programcounter, WORD address, BYTE write, BYTE #endif // DETERMINE THE NEW MEMORY PAGING MODE. - if (g_Slot0 != CT_Empty && (address >= 0x80 && address <= 0x8F)) + if (address >= 0x80 && address <= 0x8F) { - SetMemMode( g_pLanguageCard->SetPaging(address, memmode, modechanging, write ? true : false) ); + if (!IS_APPLE2 || (IsApple2PlusOrClone(GetApple2Type()) && g_Slot0 != CT_Empty)) + SetMemMode( g_pLanguageCard->SetPaging(address, memmode, modechanging, write ? true : false) ); } else if (!IS_APPLE2) {