return drZ80.Z80PC_BASE;
}
+static void dz80_noop_irq_ack(void) {}
+
#ifdef FAST_Z80SP
static u32 drz80_sp_base;
*/
#ifdef FAST_Z80SP
// drZ80 is locked in single bank
- drz80_sp_base = (PicoAHW & PAHW_SMS) ? 0xc000 : 0x0000;
+ drz80_sp_base = (PicoIn.AHW & PAHW_SMS) ? 0xc000 : 0x0000;
drZ80.Z80SP_BASE = z80_read_map[drz80_sp_base >> Z80_MEM_SHIFT] << 1;
#endif
- if (PicoAHW & PAHW_SMS)
+ drZ80.z80_irq_callback = NULL; // use auto-clear
+ if (PicoIn.AHW & PAHW_SMS) {
drZ80.Z80SP = drZ80.Z80SP_BASE + 0xdff0; // simulate BIOS
+ drZ80.z80_irq_callback = dz80_noop_irq_ack;
+ }
// XXX: since we use direct SP pointer, it might make sense to force it to RAM,
// but we'll rely on built-in stack protection for now
#endif
#ifdef _USE_CZ80
Cz80_Reset(&CZ80);
- if (PicoAHW & PAHW_SMS)
+ if (PicoIn.AHW & PAHW_SMS)
Cz80_Set_Reg(&CZ80, CZ80_SP, 0xdff0);
#endif
}