Add comment for the reason that reset doesn't affect memmode & videomode for II and II+ models.
Add accessor for memmode, make static and replace extern refs with GetMemMode().
This commit is contained in:
parent
8dcc5d50ca
commit
d7de4908cd
4 changed files with 28 additions and 14 deletions
|
@ -2794,7 +2794,7 @@ void _DrawTriStateSoftSwitch( RECT & rect, int nAddress, int iDisplay, int iActi
|
|||
else // Main Memory is active, or Bank # is not active
|
||||
{
|
||||
RECT temp = rect;
|
||||
int iBank = (memmode & MF_BANK2)
|
||||
int iBank = (GetMemMode() & MF_BANK2)
|
||||
? 2
|
||||
: 1
|
||||
;
|
||||
|
@ -2858,9 +2858,9 @@ void _DrawSoftSwitchLanguageCardBank( RECT & rect, int iBankDisplay, int bg_defa
|
|||
// 0 = RAM
|
||||
// 1 = Bank 1
|
||||
// 2 = Bank 2
|
||||
bool bBankWritable = (memmode & MF_WRITERAM) ? 1 : 0;
|
||||
int iBankActive = (memmode & MF_HIGHRAM)
|
||||
? (memmode & MF_BANK2)
|
||||
bool bBankWritable = (GetMemMode() & MF_WRITERAM) ? 1 : 0;
|
||||
int iBankActive = (GetMemMode() & MF_HIGHRAM)
|
||||
? (GetMemMode() & MF_BANK2)
|
||||
? 2
|
||||
: 1
|
||||
: 0
|
||||
|
@ -2959,8 +2959,8 @@ void _DrawSoftSwitchMainAuxBanks( RECT & rect, int bg_default = BG_INFO )
|
|||
int dx = 7 * w;
|
||||
|
||||
int nAddress = 0xC002;
|
||||
bool bMainRead = (memmode & MF_AUXREAD) ? true : false;
|
||||
bool bAuxWrite = (memmode & MF_AUXWRITE) ? true : false;
|
||||
bool bMainRead = (GetMemMode() & MF_AUXREAD) ? true : false;
|
||||
bool bAuxWrite = (GetMemMode() & MF_AUXWRITE) ? true : false;
|
||||
|
||||
temp.right = rect.left + dx;
|
||||
_DrawSoftSwitch( temp, nAddress, !bMainRead, "R", "m", "x", NULL, BG_DATA_2 );
|
||||
|
|
|
@ -2174,19 +2174,27 @@ void ResetMachineState ()
|
|||
|
||||
//===========================================================================
|
||||
|
||||
/*
|
||||
* In comments, UTAII is an abbreviation for a reference to "Understanding the Apple II" by James Sather
|
||||
*/
|
||||
|
||||
// todo: consolidate CtrlReset() and ResetMachineState()
|
||||
// Ctrl+Reset - TODO: This is a terrible place for this code! Should be in AppleWin.cpp
|
||||
void CtrlReset()
|
||||
{
|
||||
// Ctrl+Reset - TODO: This is a terrible place for this code!
|
||||
if (!IS_APPLE2) // TODO: Why not for A][ & A][+ too?
|
||||
if (!IS_APPLE2)
|
||||
{
|
||||
// For A][ & A][+, reset doesn't reset the LC switches (UTAII:5-29)
|
||||
MemResetPaging();
|
||||
|
||||
// For A][ & A][+, reset doesn't reset the video mode (UTAII:4-4)
|
||||
VideoResetState(); // Switch Alternate char set off
|
||||
}
|
||||
|
||||
PravetsReset();
|
||||
DiskReset();
|
||||
HD_Reset();
|
||||
KeybReset();
|
||||
if (!IS_APPLE2) // TODO: Why not for A][ & A][+ too?
|
||||
VideoResetState(); // Switch Alternate char set off
|
||||
sg_SSC.CommReset();
|
||||
MB_Reset();
|
||||
sg_Mouse.Reset(); // Deassert any pending IRQs - GH#514
|
||||
|
|
|
@ -178,7 +178,8 @@ static LPBYTE memimage = NULL;
|
|||
static LPBYTE pCxRomInternal = NULL;
|
||||
static LPBYTE pCxRomPeripheral = NULL;
|
||||
|
||||
DWORD memmode = MF_BANK2 | MF_SLOTCXROM | MF_WRITERAM; // 2.9.0.4 now global as Debugger needs access for LC status info in DrawSoftSwitches()
|
||||
static const DWORD kMemModeInitialState = MF_BANK2 | MF_SLOTCXROM | MF_WRITERAM;
|
||||
static DWORD memmode = kMemModeInitialState;
|
||||
static BOOL modechanging = 0; // An Optimisation: means delay calling UpdatePaging() for 1 instruction
|
||||
static BOOL Pravets8charmode = 0;
|
||||
|
||||
|
@ -824,6 +825,11 @@ static void BackMainImage(void)
|
|||
|
||||
//===========================================================================
|
||||
|
||||
DWORD GetMemMode(void)
|
||||
{
|
||||
return memmode;
|
||||
}
|
||||
|
||||
static void SetMemMode(const DWORD uNewMemMode)
|
||||
{
|
||||
#if defined(_DEBUG) && 0
|
||||
|
@ -860,7 +866,7 @@ static void ResetPaging(BOOL initialize);
|
|||
static void UpdatePaging(BOOL initialize);
|
||||
|
||||
// Call by:
|
||||
// . CtrlReset() Soft-reset (Ctrl+Reset)
|
||||
// . CtrlReset() Soft-reset (Ctrl+Reset) for //e
|
||||
void MemResetPaging()
|
||||
{
|
||||
ResetPaging(0); // Initialize=0
|
||||
|
@ -869,7 +875,7 @@ void MemResetPaging()
|
|||
static void ResetPaging(BOOL initialize)
|
||||
{
|
||||
g_bLastWriteRam = 0;
|
||||
SetMemMode(MF_BANK2 | MF_SLOTCXROM | MF_WRITERAM);
|
||||
SetMemMode(kMemModeInitialState);
|
||||
UpdatePaging(initialize);
|
||||
}
|
||||
|
||||
|
|
|
@ -56,7 +56,6 @@ extern iofunction IOWrite[256];
|
|||
extern LPBYTE memwrite[0x100];
|
||||
extern LPBYTE mem;
|
||||
extern LPBYTE memdirty;
|
||||
extern DWORD memmode;
|
||||
|
||||
#ifdef RAMWORKS
|
||||
const UINT kMaxExMemoryBanks = 127; // 127 * aux mem(64K) + main mem(64K) = 8MB
|
||||
|
@ -78,6 +77,7 @@ LPBYTE MemGetAuxPtr(const WORD);
|
|||
LPBYTE MemGetMainPtr(const WORD);
|
||||
LPBYTE MemGetBankPtr(const UINT nBank);
|
||||
LPBYTE MemGetCxRomPeripheral();
|
||||
DWORD GetMemMode(void);
|
||||
bool MemIsAddrCodeMemory(const USHORT addr);
|
||||
void MemInitialize ();
|
||||
void MemInitializeROM(void);
|
||||
|
|
Loading…
Add table
Reference in a new issue