\r
// burn cycles while not in SekRun() and while in\r
#define SekCyclesBurn(c) SekCycleCnt += c\r
-#define SekCyclesBurnRun(c) SekCyclesLeft -= c\r
+#define SekCyclesBurnRun(c) { \\r
+ SekCyclesLeft -= c; \\r
+ if (SekCyclesLeft < 0) \\r
+ SekCyclesLeft = 0; \\r
+}\r
\r
// note: sometimes may extend timeslice to delay an irq\r
#define SekEndRun(after) { \\r
unsigned short hint_vector;\r
unsigned char busreq;\r
unsigned char s68k_pend_ints;\r
- unsigned int state_flags; // 04: emu state: reset_pending\r
+ unsigned int state_flags; // 04\r
unsigned int stopwatch_base_c;\r
- unsigned int pad[3];\r
+ unsigned int m68k_comm_dirty;\r
+ unsigned short m68k_poll_a;\r
+ unsigned short m68k_poll_cnt;\r
+ unsigned int pad;\r
unsigned char bcram_reg; // 18: battery-backed RAM cart register\r
unsigned char pad2;\r
unsigned short pad3;\r
void pcd_event_schedule(unsigned int now, enum pcd_event event, int after);\r
void pcd_event_schedule_s68k(enum pcd_event event, int after);\r
unsigned int pcd_cycles_m68k_to_s68k(unsigned int c);\r
+void pcd_sync_s68k(unsigned int m68k_target);\r
void pcd_state_loaded(void);\r
\r
// pico/pico.c\r