From: Shamus Hammons Date: Fri, 4 Feb 2005 06:31:38 +0000 (+0000) Subject: New timer based system code X-Git-Tag: 2.0.0~105 X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d239f761839f68e3171f51c35aea7b5c0bec3f33;hp=a406fffa6c13391e497e4b66397b6e0358f3ffa8;p=virtualjaguar New timer based system code --- diff --git a/src/include/clock.h b/src/include/clock.h index 492f0b4..cd0afe7 100644 --- a/src/include/clock.h +++ b/src/include/clock.h @@ -9,19 +9,20 @@ #include "types.h" -struct Event -{ - double eventTime; - void (* eventCallback)(void); -}; +// Note that these are NTSC timings: +#define RISC_CYCLE_IN_USEC 0.03760684198 +#define M68K_CYCLE_IN_USEC (RISC_CYCLE_IN_USEC * 2) +#define HORIZ_PERIOD_IN_USEC 63.5555 -/*void clock_init(void); -void clock_reset(void); -void clock_done(void); -void clock_byte_write(uint32, uint8); -void clock_word_write(uint32, uint16); -uint8 clock_byte_read(uint32); -uint16 clock_word_read(uint32);//*/ +#define USEC_TO_RISC_CYCLES(u) (uint32)(((u) / RISC_CYCLE_IN_USEC) + 0.5) +#define USEC_TO_M68K_CYCLES(u) (uint32)(((u) / M68K_CYCLE_IN_USEC) + 0.5) -#endif +void InitializeEventList(void); +void SetCallbackTime(void (* callback)(void), double time); +void RemoveCallback(void (* callback)(void)); +void AdjustCallbackTime(void (* callback)(void), double time); +double GetTimeToNextEvent(void); +void HandleNextEvent(void); + +#endif // __CLOCK_H__