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