sms: improve irq handling
[picodrive.git] / pico / pico_int.h
index da0fbb9..7225cab 100644 (file)
@@ -169,7 +169,7 @@ extern struct DrZ80 drZ80;
 #define z80_run(cycles)    ((cycles) - DrZ80Run(&drZ80, cycles))\r
 #define z80_run_nr(cycles) DrZ80Run(&drZ80, cycles)\r
 #define z80_int()          drZ80.Z80_IRQ = 1\r
-#define z80_int()          drZ80.Z80_IRQ = 1\r
+#define z80_int_assert(a)  drZ80.Z80_IRQ = (a)\r
 #define z80_nmi()          drZ80.Z80IF |= 8\r
 \r
 #define z80_cyclesLeft     drZ80.cycles\r
@@ -182,6 +182,7 @@ extern struct DrZ80 drZ80;
 #define z80_run(cycles)    Cz80_Exec(&CZ80, cycles)\r
 #define z80_run_nr(cycles) Cz80_Exec(&CZ80, cycles)\r
 #define z80_int()          Cz80_Set_IRQ(&CZ80, 0, HOLD_LINE)\r
+#define z80_int_assert(a)  Cz80_Set_IRQ(&CZ80, 0, (a) ? ASSERT_LINE : CLEAR_LINE)\r
 #define z80_nmi()          Cz80_Set_IRQ(&CZ80, IRQ_LINE_NMI, 0)\r
 \r
 #define z80_cyclesLeft     (CZ80.ICount - CZ80.ExtraCycles)\r
@@ -193,6 +194,7 @@ extern struct DrZ80 drZ80;
 #define z80_run(cycles)    (cycles)\r
 #define z80_run_nr(cycles)\r
 #define z80_int()\r
+#define z80_int_assert(a)\r
 #define z80_nmi()\r
 \r
 #endif\r
@@ -546,6 +548,7 @@ typedef struct
 #define P32XF_68KCPOLL   (1 << 0)\r
 #define P32XF_68KVPOLL   (1 << 1)\r
 #define P32XF_Z80_32X_IO (1 << 7) // z80 does 32x io\r
+#define P32XF_DRC_ROM_C  (1 << 8) // cached code from ROM\r
 \r
 #define P32XI_VRES (1 << 14/2) // IRL/2\r
 #define P32XI_VINT (1 << 12/2)\r
@@ -914,6 +917,7 @@ void PicoWrite16_32x(unsigned int a, unsigned int d);
 void PicoMemSetup32x(void);\r
 void Pico32xSwapDRAM(int b);\r
 void Pico32xMemStateLoaded(void);\r
+void p32x_update_banks(void);\r
 void p32x_m68k_poll_event(unsigned int flags);\r
 void p32x_sh2_poll_event(SH2 *sh2, unsigned int flags, unsigned int m68k_cycles);\r
 \r