mirror of https://github.com/stella-emu/stella.git
Turned variable into static constant in M6502, since it has never changed
since Stella was created. git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3033 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
This commit is contained in:
parent
49bc759bee
commit
a21f3be6e4
|
@ -97,7 +97,7 @@ Console::Console(OSystem& osystem, Cartridge& cart, const Properties& props)
|
||||||
myControllers[0] = new Joystick(Controller::Left, myEvent, *mySystem);
|
myControllers[0] = new Joystick(Controller::Left, myEvent, *mySystem);
|
||||||
myControllers[1] = new Joystick(Controller::Right, myEvent, *mySystem);
|
myControllers[1] = new Joystick(Controller::Right, myEvent, *mySystem);
|
||||||
|
|
||||||
M6502* m6502 = new M6502(1, myOSystem.settings());
|
M6502* m6502 = new M6502(myOSystem.settings());
|
||||||
|
|
||||||
myRiot = new M6532(*this, myOSystem.settings());
|
myRiot = new M6532(*this, myOSystem.settings());
|
||||||
myTIA = new TIA(*this, myOSystem.sound(), myOSystem.settings());
|
myTIA = new TIA(*this, myOSystem.sound(), myOSystem.settings());
|
||||||
|
|
|
@ -47,11 +47,10 @@
|
||||||
#include "M6502.hxx"
|
#include "M6502.hxx"
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
M6502::M6502(uInt32 systemCyclesPerProcessorCycle, const Settings& settings)
|
M6502::M6502(const Settings& settings)
|
||||||
: myExecutionStatus(0),
|
: myExecutionStatus(0),
|
||||||
mySystem(0),
|
mySystem(0),
|
||||||
mySettings(settings),
|
mySettings(settings),
|
||||||
mySystemCyclesPerProcessorCycle(systemCyclesPerProcessorCycle),
|
|
||||||
myLastAccessWasRead(true),
|
myLastAccessWasRead(true),
|
||||||
myTotalInstructionCount(0),
|
myTotalInstructionCount(0),
|
||||||
myNumberOfDistinctAccesses(0),
|
myNumberOfDistinctAccesses(0),
|
||||||
|
@ -77,7 +76,7 @@ M6502::M6502(uInt32 systemCyclesPerProcessorCycle, const Settings& settings)
|
||||||
for(uInt32 t = 0; t < 256; ++t)
|
for(uInt32 t = 0; t < 256; ++t)
|
||||||
{
|
{
|
||||||
myInstructionSystemCycleTable[t] = ourInstructionCycleTable[t] *
|
myInstructionSystemCycleTable[t] = ourInstructionCycleTable[t] *
|
||||||
mySystemCyclesPerProcessorCycle;
|
SYSTEM_CYCLES_PER_CPU;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef DEBUG_OUTPUT
|
#ifdef DEBUG_OUTPUT
|
||||||
|
@ -147,7 +146,7 @@ inline uInt8 M6502::peek(uInt16 address, uInt8 flags)
|
||||||
myLastAddress = address;
|
myLastAddress = address;
|
||||||
}
|
}
|
||||||
////////////////////////////////////////////////
|
////////////////////////////////////////////////
|
||||||
mySystem->incrementCycles(mySystemCyclesPerProcessorCycle);
|
mySystem->incrementCycles(SYSTEM_CYCLES_PER_CPU);
|
||||||
|
|
||||||
#ifdef DEBUGGER_SUPPORT
|
#ifdef DEBUGGER_SUPPORT
|
||||||
if(myReadTraps != NULL && myReadTraps->isSet(address))
|
if(myReadTraps != NULL && myReadTraps->isSet(address))
|
||||||
|
@ -176,7 +175,7 @@ inline void M6502::poke(uInt16 address, uInt8 value)
|
||||||
myLastAddress = address;
|
myLastAddress = address;
|
||||||
}
|
}
|
||||||
////////////////////////////////////////////////
|
////////////////////////////////////////////////
|
||||||
mySystem->incrementCycles(mySystemCyclesPerProcessorCycle);
|
mySystem->incrementCycles(SYSTEM_CYCLES_PER_CPU);
|
||||||
|
|
||||||
#ifdef DEBUGGER_SUPPORT
|
#ifdef DEBUGGER_SUPPORT
|
||||||
if(myWriteTraps != NULL && myWriteTraps->isSet(address))
|
if(myWriteTraps != NULL && myWriteTraps->isSet(address))
|
||||||
|
@ -306,7 +305,7 @@ void M6502::interruptHandler()
|
||||||
// Handle the interrupt
|
// Handle the interrupt
|
||||||
if((myExecutionStatus & MaskableInterruptBit) && !I)
|
if((myExecutionStatus & MaskableInterruptBit) && !I)
|
||||||
{
|
{
|
||||||
mySystem->incrementCycles(7 * mySystemCyclesPerProcessorCycle);
|
mySystem->incrementCycles(7 * SYSTEM_CYCLES_PER_CPU);
|
||||||
mySystem->poke(0x0100 + SP--, (PC - 1) >> 8);
|
mySystem->poke(0x0100 + SP--, (PC - 1) >> 8);
|
||||||
mySystem->poke(0x0100 + SP--, (PC - 1) & 0x00ff);
|
mySystem->poke(0x0100 + SP--, (PC - 1) & 0x00ff);
|
||||||
mySystem->poke(0x0100 + SP--, PS() & (~0x10));
|
mySystem->poke(0x0100 + SP--, PS() & (~0x10));
|
||||||
|
@ -316,7 +315,7 @@ void M6502::interruptHandler()
|
||||||
}
|
}
|
||||||
else if(myExecutionStatus & NonmaskableInterruptBit)
|
else if(myExecutionStatus & NonmaskableInterruptBit)
|
||||||
{
|
{
|
||||||
mySystem->incrementCycles(7 * mySystemCyclesPerProcessorCycle);
|
mySystem->incrementCycles(7 * SYSTEM_CYCLES_PER_CPU);
|
||||||
mySystem->poke(0x0100 + SP--, (PC - 1) >> 8);
|
mySystem->poke(0x0100 + SP--, (PC - 1) >> 8);
|
||||||
mySystem->poke(0x0100 + SP--, (PC - 1) & 0x00ff);
|
mySystem->poke(0x0100 + SP--, (PC - 1) & 0x00ff);
|
||||||
mySystem->poke(0x0100 + SP--, PS() & (~0x10));
|
mySystem->poke(0x0100 + SP--, PS() & (~0x10));
|
||||||
|
|
|
@ -56,13 +56,9 @@ class M6502 : public Serializable
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
Create a new 6502 microprocessor with the specified cycle
|
Create a new 6502 microprocessor.
|
||||||
multiplier. The cycle multiplier is the number of system cycles
|
|
||||||
per processor cycle.
|
|
||||||
|
|
||||||
@param systemCyclesPerProcessorCycle The cycle multiplier
|
|
||||||
*/
|
*/
|
||||||
M6502(uInt32 systemCyclesPerProcessorCycle, const Settings& settings);
|
M6502(const Settings& settings);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Destructor
|
Destructor
|
||||||
|
@ -324,9 +320,6 @@ class M6502 : public Serializable
|
||||||
/// Reference to the settings
|
/// Reference to the settings
|
||||||
const Settings& mySettings;
|
const Settings& mySettings;
|
||||||
|
|
||||||
/// Indicates the number of system cycles per processor cycle
|
|
||||||
const uInt32 mySystemCyclesPerProcessorCycle;
|
|
||||||
|
|
||||||
/// Table of system cycles for each instruction
|
/// Table of system cycles for each instruction
|
||||||
uInt32 myInstructionSystemCycleTable[256];
|
uInt32 myInstructionSystemCycleTable[256];
|
||||||
|
|
||||||
|
@ -357,6 +350,9 @@ class M6502 : public Serializable
|
||||||
/// is set to zero
|
/// is set to zero
|
||||||
uInt16 myDataAddressForPoke;
|
uInt16 myDataAddressForPoke;
|
||||||
|
|
||||||
|
/// Indicates the number of system cycles per processor cycle
|
||||||
|
static const uInt32 SYSTEM_CYCLES_PER_CPU = 1;
|
||||||
|
|
||||||
#ifdef DEBUGGER_SUPPORT
|
#ifdef DEBUGGER_SUPPORT
|
||||||
/// Pointer to the debugger for this processor or the null pointer
|
/// Pointer to the debugger for this processor or the null pointer
|
||||||
Debugger* myDebugger;
|
Debugger* myDebugger;
|
||||||
|
|
Loading…
Reference in New Issue