/* start graphics operation */
Pico_mcd->s68k_regs[0x58] = 0x80;
+ Pico_mcd->m.state_flags &= ~PCD_ST_S68K_POLL;
+ Pico_mcd->m.s68k_poll_cnt = 0;
gfx_schedule();
}
Pico_mcd->s68k_regs[0x64] =
Pico_mcd->s68k_regs[0x65] = 0;
+ Pico_mcd->m.state_flags &= ~PCD_ST_S68K_POLL;
+ Pico_mcd->m.s68k_poll_cnt = 0;
if (Pico_mcd->s68k_regs[0x33] & PCDS_IEN1) {
elprintf(EL_INTS|EL_CD, "s68k: gfx_cd irq 1");
pcd_irq_s68k(1, 1);
\r
d = (Pico_mcd->s68k_regs[a]<<8) | Pico_mcd->s68k_regs[a+1];\r
\r
- if (a >= 0x0e && a < 0x30)\r
- return s68k_poll_detect(a, d);\r
+ if ((a >= 0x0e && a < 0x30) || a == 0x58)\r
+ d = s68k_poll_detect(a, d);\r
\r
end:\r
return d;\r
a &= 0x1ff;\r
if (a >= 0x0e && a < 0x30) {\r
d = Pico_mcd->s68k_regs[a];\r
- s68k_poll_detect(a & ~1, d);\r
+ d = s68k_poll_detect(a & ~1, d);\r
goto regs_done;\r
}\r
d = s68k_reg_read16(a & ~1);\r