X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=Pico%2Fcd%2FSek.c;h=47370dae921361b282014a926b5cfe7d3799202a;hb=1b0ac8adc97d65c686a48c4375c07907de86be24;hp=dc714e84eb00e64677be2e1d2b1610ae6dda35b9;hpb=03e4f2a349247334666c87abe3a908df72d23051;p=picodrive.git diff --git a/Pico/cd/Sek.c b/Pico/cd/Sek.c index dc714e8..47370da 100644 --- a/Pico/cd/Sek.c +++ b/Pico/cd/Sek.c @@ -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 @@ -109,6 +121,7 @@ PICO_INTERNAL int SekInitS68k() memset(&PicoCpuFS68k, 0, sizeof(PicoCpuFS68k)); fm68k_init(); PicoCpuFS68k.iack_handler = SekIntAckFS68k; + PicoCpuFS68k.sr = 0x2704; // Z flag 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