gcc 4.2 warning fixes
[picodrive.git] / Pico / cd / Sek.c
index 6005f59..47370da 100644 (file)
@@ -1,4 +1,4 @@
-// (c) Copyright 2006 notaz, All rights reserved.
+// (c) Copyright 2007 notaz, All rights reserved.
 
 
 #include "../PicoInt.h"
@@ -40,14 +40,14 @@ static int SekIntAckS68k(int level)
 {
   int level_new = new_irq_level(level);
 
-  dprintf("s68kACK %i -> %i", level, level_new);
+  elprintf(EL_INTS, "s68kACK %i -> %i", level, level_new);
   PicoCpuCS68k.irq = level_new;
   return CYCLONE_INT_ACK_AUTOVECTOR;
 }
 
 static void SekResetAckS68k(void)
 {
-  dprintf("s68k: Reset encountered @ %06x", SekPcS68k);
+  elprintf(EL_ANOMALY, "s68k: Reset encountered @ %06x", SekPcS68k);
 }
 
 static int SekUnrecognizedOpcodeS68k(void)
@@ -55,7 +55,7 @@ static int SekUnrecognizedOpcodeS68k(void)
   unsigned int pc, op;
   pc = SekPcS68k;
   op = PicoCpuCS68k.read16(pc);
-  dprintf("Unrecognized Opcode %04x @ %06x", op, pc);
+  elprintf(EL_ANOMALY, "Unrecognized Opcode %04x @ %06x", op, pc);
   //exit(1);
   return 0;
 }
@@ -64,9 +64,13 @@ static int SekUnrecognizedOpcodeS68k(void)
 #ifdef EMU_M68K
 static int SekIntAckMS68k(int level)
 {
+#ifndef EMU_CORE_DEBUG
   int level_new = new_irq_level(level);
-  dprintf("s68kACK %i -> %i", level, level_new);
+  elprintf(EL_INTS, "s68kACK %i -> %i", level, level_new);
   CPU_INT_LEVEL = level_new << 8;
+#else
+  CPU_INT_LEVEL = 0;
+#endif
   return M68K_INT_ACK_AUTOVECTOR;
 }
 #endif
@@ -75,8 +79,16 @@ static int SekIntAckMS68k(int level)
 static void SekIntAckFS68k(unsigned level)
 {
   int level_new = new_irq_level(level);
-  dprintf("s68kACK %i -> %i", level, level_new);
+  elprintf(EL_INTS, "s68kACK %i -> %i", level, level_new);
+#ifndef EMU_CORE_DEBUG
   PicoCpuFS68k.interrupts[0] = level_new;
+#else
+  {
+    extern int dbg_irq_level_sub;
+    dbg_irq_level_sub = level_new;
+    PicoCpuFS68k.interrupts[0] = 0;
+  }
+#endif
 }
 #endif
 
@@ -107,8 +119,9 @@ PICO_INTERNAL int SekInitS68k()
     void *oldcontext = g_m68kcontext;
     g_m68kcontext = &PicoCpuFS68k;
     memset(&PicoCpuFS68k, 0, sizeof(PicoCpuFS68k));
-    m68k_init();
+    fm68k_init();
     PicoCpuFS68k.iack_handler = SekIntAckFS68k;
+    PicoCpuFS68k.sr = 0x2704; // Z flag
     g_m68kcontext = oldcontext;
   }
 #endif
@@ -146,7 +159,7 @@ PICO_INTERNAL int SekResetS68k()
   {
     void *oldcontext = g_m68kcontext;
     g_m68kcontext = &PicoCpuFS68k;
-    m68k_reset();
+    fm68k_reset();
     g_m68kcontext = oldcontext;
   }
 #endif
@@ -161,6 +174,13 @@ PICO_INTERNAL int SekInterruptS68k(int irq)
   irqs = Pico_mcd->m.s68k_pend_ints >> 1;
   while ((irqs >>= 1)) real_irq++;
 
+#ifdef EMU_CORE_DEBUG
+  {
+    extern int dbg_irq_level_sub;
+    dbg_irq_level_sub=real_irq;
+    return 0;
+  }
+#endif
 #ifdef EMU_C68K
   PicoCpuCS68k.irq=real_irq;
 #endif