X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Finclude%2Fclock.h;h=cd0afe769a01c8a9a3a72b9a9cff8fdfc28bf668;hb=1d731c12554223de8480d16ef5403e3022c7139f;hp=e4b686fb87e6f651d580712abbac61769dc24030;hpb=86bd0f2592c3cd674239532247276bd2d579a857;p=virtualjaguar diff --git a/src/include/clock.h b/src/include/clock.h index e4b686f..cd0afe7 100644 --- a/src/include/clock.h +++ b/src/include/clock.h @@ -1,14 +1,28 @@ +// +// CLOCK.H: System timing support functionality +// +// by James L. Hammons +// + #ifndef __CLOCK_H__ #define __CLOCK_H__ #include "types.h" -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); +// 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 + +#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) + +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 +#endif // __CLOCK_H__