//
// TIMING.H: System timing support functionality
//
-// by James L. Hammons
+// by James Hammons
// (C) 2005 Underground Software
//
-
#ifndef __TIMING_H__
#define __TIMING_H__
-#include "types.h"
-
-// Note that these are NTSC timings:
+// Even though it's driven at 4 MHz, internally it runs at 1/4 that speed
+#define M6808_CLOCK_SPEED_IN_HZ (3579000.0 / 4.0)
+#define M6809_CLOCK_SPEED_IN_HZ (1000000.0)
-//#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 M6502_CYCLE_IN_USEC 0.9765625
-#define M6808_CYCLE_IN_USEC 0.9765625
-#define M6809_CYCLE_IN_USEC 1.0
+#define M6808_CYCLE_IN_USEC (1000000.0 / M6808_CLOCK_SPEEK_IN_HZ)
+#define M6809_CYCLE_IN_USEC (1000000.0 / M6809_CLOCK_SPEED_IN_HZ)
-//#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)
-//#define USEC_TO_M6502_CYCLES(u) (uint32)(((u) / M6502_CYCLE_IN_USEC) + 0.5)
-#define USEC_TO_M6808_CYCLES(u) (uint32)(((u) / M6808_CYCLE_IN_USEC) + 0.5)
-#define USEC_TO_M6809_CYCLES(u) (uint32)(((u) / M6809_CYCLE_IN_USEC) + 0.5)
+#define USEC_TO_M6808_CYCLES(u) (uint32_t)(((u) / M6808_CYCLE_IN_USEC) + 0.5)
+#define USEC_TO_M6809_CYCLES(u) (uint32_t)(((u) / M6809_CYCLE_IN_USEC) + 0.5)
void InitializeEventList(void);
void SetCallbackTime(void (* callback)(void), double time);