+#if defined(DEBUG_ASM_6502)
+#define TriggerIRQ TriggerIRQ_d
+#define TriggerNMI TriggerNMI_d
+#define TriggerNMINSF TriggerNMINSF_d
+#define X6502_Run X6502_Run_d
+#define X6502_Reset X6502_Reset_d
+#define X6502_Power X6502_Power_d
+#define X6502_AddCycles X6502_AddCycles_d
+#define X6502_IRQBegin X6502_IRQBegin_d
+#define X6502_IRQEnd X6502_IRQEnd_d
+#define X6502_C
+#define X6502_A
+#define X6502_D
+
+#elif defined(ASM_6502)
+#define TriggerIRQ TriggerIRQ_a
+#define TriggerNMI TriggerNMI_a
+#define TriggerNMINSF TriggerNMINSF_a
+#define X6502_Reset X6502_Reset_a
+#define X6502_Power X6502_Power_a
+#define X6502_AddCycles X6502_AddCycles_a
+#define X6502_IRQBegin X6502_IRQBegin_a
+#define X6502_IRQEnd X6502_IRQEnd_a
+#define X6502_A
+
+extern uint32 nes_registers[0x10];
+#define X6502_Run(c) \
+{ \
+ int32 cycles = (c) << 4; /* *16 */ \
+ if (PAL) cycles -= (c); /* *15 */ \
+ nes_registers[7]+=cycles; \
+ if (nes_registers[7] > 0) X6502_Run_a(); \
+}
+
+#else