X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=Pico%2FSek.c;h=3ce710fecb4ed9ad4f1dca0e9eda1beee2cb9c55;hb=1c88b865ceb1e1801bcf20010088fd62cdf2cc06;hp=b3b35a348c97c23a3c7babdd4b35f31f8d9cc6a3;hpb=312e9ce192d49b4bea2f8a7e3cd2eb91a860564f;p=picodrive.git diff --git a/Pico/Sek.c b/Pico/Sek.c index b3b35a3..3ce710f 100644 --- a/Pico/Sek.c +++ b/Pico/Sek.c @@ -41,8 +41,8 @@ static int (*ResetCallback)()=DoReset; -// interrupt acknowledgment #ifdef EMU_C68K +// interrupt acknowledgment static void SekIntAck(int level) { // try to emulate VDP's reaction to 68000 int ack @@ -72,6 +72,12 @@ static int SekUnrecognizedOpcode() PicoCpu.stopped = 1; return 1; } +#ifdef EMU_M68K // debugging cyclone + { + extern int have_illegal; + have_illegal = 1; + } +#endif //exit(1); return 0; } @@ -143,12 +149,10 @@ int SekReset() PicoInitPc(M68000_regs.pc); #endif #ifdef EMU_M68K - { - void *oldcontext = m68ki_cpu_p; - m68k_set_context(&PicoM68kCPU); - m68k_pulse_reset(); - m68k_set_context(oldcontext); - } + m68k_set_context(&PicoM68kCPU); // if we ever reset m68k, we always need it's context to be set + m68ki_cpu.sp[0]=0; + m68k_set_irq(0); + m68k_pulse_reset(); #endif return 0; @@ -190,3 +194,11 @@ void SekState(unsigned char *data) memcpy(data+0x40,&PicoM68kCPU.pc, 0x04); #endif } + +void SekSetRealTAS(int use_real) +{ +#ifdef EMU_C68K + CycloneSetRealTAS(use_real); +#endif +} +