* Super NES and Super Nintendo Entertainment System are trademarks of
* Nintendo Co., Limited and its subsidiary companies.
*/
+
#include "snes9x.h"
+
+#ifdef USE_SA1
+
#include "memmap.h"
+#include "debug.h"
+#include "missing.h"
#include "ppu.h"
#include "cpuexec.h"
-
#include "sa1.h"
+
#define CPU SA1
-#define ICPU SA1ICPU\r
-//#define ICPU SA1
+#define ICPU SA1
+
+#undef Registers
+
#define Registers SA1Registers
#define S9xGetByte S9xSA1GetByte
#define S9xGetWord S9xSA1GetWord
#define S9xOpcode_NMI S9xSA1Opcode_NMI
#define S9xUnpackStatus S9xSA1UnpackStatus
#define S9xPackStatus S9xSA1PackStatus
-#define S9xFixCycles S9xSA1FixCycles\r
-//CSNES Not even used\r
-/*
+#define S9xFixCycles S9xSA1FixCycles
+
+#if 0
#define Immediate8 SA1Immediate8
#define Immediate16 SA1Immediate16
#define Relative SA1Relative
#define DirectIndirect SA1DirectIndirect
#define DirectIndirectLong SA1DirectIndirectLong
#define StackRelative SA1StackRelative
-#define StackRelativeIndirectIndexed SA1StackRelativeIndirectIndexed\r
-*/
+#define StackRelativeIndirectIndexed SA1StackRelativeIndirectIndexed
+#endif
//#undef CPU_SHUTDOWN
#undef VAR_CYCLES
#define SA1_OPCODES
-#include "cpuops.cpp"
+#include "65c816ops.inc"
void S9xSA1MainLoop ()
{
#ifdef CPU_SHUTDOWN
SA1.PCAtOpcodeStart = SA1.PC;
#endif
- (*SA1.S9xOpcodes [*SA1.PC++].S9xOpcode) (&SA1Registers, &SA1ICPU, &SA1);
+ (*SA1.S9xOpcodes [*SA1.PC++].S9xOpcode)();
}
+ return;
}
- else
#endif
- for (i = 0; i < 3 && SA1.Executing; i++)
- {
+ for (i = 0; i < 3 && SA1.Executing; i++)
+ {
#ifdef CPU_SHUTDOWN
- SA1.PCAtOpcodeStart = SA1.PC;
+ SA1.PCAtOpcodeStart = SA1.PC;
#endif
- (*SA1ICPU.S9xOpcodes [*SA1.PC++].S9xOpcode) (&SA1Registers, &SA1ICPU, &SA1);
- }
+ (*SA1.S9xOpcodes [*SA1.PC++].S9xOpcode)();
+ }
}
+
+#endif
+