2 // TIMING.H: System timing support functionality
5 // (C) 2005 Underground Software
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)
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)
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)
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);
27 #endif // __TIMING_H__