memcpy(cpu,m68ki_cpu_p->dar,0x40);\r
pc=m68ki_cpu_p->pc;\r
*(unsigned int *)(cpu+0x44)=m68k_get_reg(NULL, M68K_REG_SR);\r
- *(unsigned int *)(cpu+0x48)=m68ki_cpu_p->sp[0];\r
+ *(unsigned int *)(cpu+0x48)=m68ki_cpu_p->sp[m68ki_cpu_p->s_flag^SFLAG_SET];\r
cpu[0x4c] = CPU_INT_LEVEL>>8;\r
cpu[0x4d] = CPU_STOPPED;\r
m68k_set_context(oldcontext);\r
#elif defined(EMU_M68K)\r
void *oldcontext = m68ki_cpu_p;\r
m68k_set_context(is_sub ? &PicoCpuMS68k : &PicoCpuMM68k);\r
+ m68k_set_reg(M68K_REG_SR, *(unsigned int *)(cpu+0x44));\r
memcpy(m68ki_cpu_p->dar,cpu,0x40);\r
m68ki_cpu_p->pc=*(unsigned int *)(cpu+0x40);\r
- m68k_set_reg(M68K_REG_SR, *(unsigned int *)(cpu+0x44));\r
- m68ki_cpu_p->sp[0]=*(unsigned int *)(cpu+0x48);\r
+ m68ki_cpu_p->sp[m68ki_cpu_p->s_flag^SFLAG_SET]=*(unsigned int *)(cpu+0x48);\r
CPU_INT_LEVEL = cpu[0x4c] << 8;\r
CPU_STOPPED = cpu[0x4d];\r
m68k_set_context(oldcontext);\r