X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=inline;f=Pico%2FSek.c;h=e77128087310fdeb18711dde8d8539b4b0ac5954;hb=8527dc450a96f7a292b7f302e8e55147628b6042;hp=ddce5580fbc83270bb51023d6fdf0b0906cca90b;hpb=03e4f2a349247334666c87abe3a908df72d23051;p=picodrive.git diff --git a/Pico/Sek.c b/Pico/Sek.c index ddce558..e771280 100644 --- a/Pico/Sek.c +++ b/Pico/Sek.c @@ -125,6 +125,7 @@ PICO_INTERNAL int SekInit() memset(&PicoCpuFM68k, 0, sizeof(PicoCpuFM68k)); fm68k_init(); PicoCpuFM68k.iack_handler = SekIntAckF68K; + PicoCpuFM68k.sr = 0x2704; // Z flag g_m68kcontext = oldcontext; } #endif @@ -164,44 +165,20 @@ PICO_INTERNAL int SekReset() } -PICO_INTERNAL int SekInterrupt(int irq) -{ -#ifdef EMU_CORE_DEBUG - { - extern unsigned int dbg_irq_level; - dbg_irq_level=irq; - return 0; - } -#endif -#ifdef EMU_C68K - PicoCpuCM68k.irq=irq; -#endif -#ifdef EMU_M68K - { - void *oldcontext = m68ki_cpu_p; - m68k_set_context(&PicoCpuMM68k); - m68k_set_irq(irq); // raise irq (gets lowered after taken or must be done in ack) - m68k_set_context(oldcontext); - } -#endif -#ifdef EMU_F68K - PicoCpuFM68k.interrupts[0]=irq; -#endif - - return 0; -} - // data must be word aligned PICO_INTERNAL void SekState(int *data) { #ifdef EMU_C68K memcpy32(data,(int *)PicoCpuCM68k.d,0x44/4); + data[0x11] = PicoCpuCM68k.flags; #elif defined(EMU_M68K) memcpy32(data, (int *)PicoCpuMM68k.dar, 0x40/4); data[0x10] = PicoCpuMM68k.pc; + data[0x11] = m68k_get_reg(&PicoCpuMM68k, M68K_REG_SR); #elif defined(EMU_F68K) memcpy32(data, (int *)PicoCpuFM68k.dreg, 0x40/4); data[0x10] = PicoCpuFM68k.pc; + data[0x11] = PicoCpuFM68k.sr; #endif }