|
|
1.1 ! root 1: /* ! 2: * UAE - The Un*x Amiga Emulator ! 3: * ! 4: * Events ! 5: * These are best for low-frequency events. Having too many of them, ! 6: * or using them for events that occur too frequently, can cause massive ! 7: * slowdown. ! 8: * ! 9: * Copyright 1995-1998 Bernd Schmidt ! 10: */ ! 11: ! 12: #ifndef HATARI_EVENT_H ! 13: #define HATARI_EVENT_H ! 14: ! 15: #undef EVENT_DEBUG ! 16: ! 17: #define do_cycles do_cycles_slow ! 18: ! 19: //#include "machdep/rpt.h" ! 20: #include "rpt.h" ! 21: ! 22: extern volatile frame_time_t vsynctime, vsyncmintime; ! 23: extern void reset_frame_rate_hack (void); ! 24: extern int rpt_available; ! 25: extern frame_time_t syncbase; ! 26: ! 27: extern void compute_vsynctime (void); ! 28: extern void init_eventtab (void); ! 29: extern void do_cycles_ce (long cycles); ! 30: extern void do_cycles_ce020 (int clocks); ! 31: extern void do_cycles_ce020_mem (int clocks); ! 32: extern void do_cycles_ce000 (int clocks); ! 33: extern int is_cycle_ce (void); ! 34: extern int current_hpos (void); ! 35: ! 36: static void events_schedule (void); ! 37: ! 38: extern unsigned long currcycle, nextevent, is_lastline; ! 39: typedef void (*evfunc)(void); ! 40: typedef void (*evfunc2)(uae_u32); ! 41: ! 42: typedef unsigned long int evt; ! 43: ! 44: struct ev ! 45: { ! 46: int active; ! 47: evt evtime, oldcycles; ! 48: evfunc handler; ! 49: }; ! 50: ! 51: struct ev2 ! 52: { ! 53: int active; ! 54: evt evtime; ! 55: uae_u32 data; ! 56: evfunc2 handler; ! 57: }; ! 58: ! 59: enum { ! 60: ev_hsync, ev_audio, ev_cia, ev_misc, ! 61: ev_max ! 62: }; ! 63: ! 64: enum { ! 65: ev2_blitter, ev2_disk, ev2_misc, ! 66: ev2_max = 12 ! 67: }; ! 68: ! 69: extern struct ev eventtab[ev_max]; ! 70: extern struct ev2 eventtab2[ev2_max]; ! 71: ! 72: extern void event2_newevent (int, evt, uae_u32); ! 73: extern void event2_newevent2 (evt, uae_u32, evfunc2); ! 74: extern void event2_remevent (int); ! 75: ! 76: /*#if 0 ! 77: #ifdef JIT ! 78: #include "events_jit.h" ! 79: #else ! 80: #include "events_normal.h" ! 81: #endif ! 82: #else ! 83: #include "events_jit.h" ! 84: #endif ! 85: */ ! 86: ! 87: #include "events_normal.h" ! 88: ! 89: ! 90: STATIC_INLINE bool cycles_in_range (unsigned long endcycles) ! 91: { ! 92: signed long c = get_cycles (); ! 93: return (signed long)endcycles - c > 0; ! 94: } ! 95: ! 96: #endif //HATARI_EVENT_H
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.