]> Shamusworld >> Repos - virtualjaguar/commitdiff
New timer based system code
authorShamus Hammons <jlhamm@acm.org>
Fri, 4 Feb 2005 06:31:38 +0000 (06:31 +0000)
committerShamus Hammons <jlhamm@acm.org>
Fri, 4 Feb 2005 06:31:38 +0000 (06:31 +0000)
src/include/clock.h

index 492f0b44610a36bf4bd137e6a5700820a1a43cbc..cd0afe769a01c8a9a3a72b9a9cff8fdfc28bf668 100644 (file)
@@ -9,19 +9,20 @@
 
 #include "types.h"
 
-struct Event
-{
-       double eventTime;
-       void (* eventCallback)(void);
-};
+// 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
 
-/*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);//*/
+#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)
 
-#endif
+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 // __CLOCK_H__