]> Shamusworld >> Repos - stargem2/blob - src/timing.h
Finally fixed problems with demo mode.
[stargem2] / src / timing.h
1 //
2 // TIMING.H: System timing support functionality
3 //
4 // by James Hammons
5 // (C) 2005 Underground Software
6 //
7 #ifndef __TIMING_H__
8 #define __TIMING_H__
9
10 // Even though it's driven at 4 MHz, internally it runs at 1/4 that speed
11 #define M6808_CLOCK_SPEED_IN_HZ         (3579000.0 / 4.0)
12 #define M6809_CLOCK_SPEED_IN_HZ         (1000000.0)
13
14 #define M6808_CYCLE_IN_USEC             (1000000.0 / M6808_CLOCK_SPEEK_IN_HZ)
15 #define M6809_CYCLE_IN_USEC             (1000000.0 / M6809_CLOCK_SPEED_IN_HZ)
16
17 #define USEC_TO_M6808_CYCLES(u)  (uint32_t)(((u) / M6808_CYCLE_IN_USEC) + 0.5)
18 #define USEC_TO_M6809_CYCLES(u)  (uint32_t)(((u) / M6809_CYCLE_IN_USEC) + 0.5)
19
20 void InitializeEventList(void);
21 void SetCallbackTime(void (* callback)(void), double time);
22 void RemoveCallback(void (* callback)(void));
23 void AdjustCallbackTime(void (* callback)(void), double time);
24 double GetTimeToNextEvent(void);
25 void HandleNextEvent(void);
26
27 #endif  // __TIMING_H__