Annotation of hatari/src/cpu/events.h, revision 1.1.1.2

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: extern void reset_frame_rate_hack (void);
                     20: extern int rpt_available;
                     21: 
                     22: extern void compute_vsynctime (void);
                     23: extern void init_eventtab (void);
                     24: extern void do_cycles_ce (long cycles);
                     25: extern void do_cycles_ce020 (int clocks);
                     26: extern void do_cycles_ce020_mem (int clocks);
                     27: extern void do_cycles_ce000 (int clocks);
                     28: extern int is_cycle_ce (void);
                     29: extern int current_hpos (void);
                     30: 
                     31: static void events_schedule (void);
                     32: 
                     33: extern unsigned long currcycle, nextevent, is_lastline;
                     34: typedef void (*evfunc)(void);
                     35: typedef void (*evfunc2)(uae_u32);
                     36: 
                     37: typedef unsigned long int evt;
                     38: 
                     39: struct ev
                     40: {
                     41:     int active;
                     42:     evt evtime, oldcycles;
                     43:     evfunc handler;
                     44: };
                     45: 
                     46: struct ev2
                     47: {
                     48:     int active;
                     49:     evt evtime;
                     50:     uae_u32 data;
                     51:     evfunc2 handler;
                     52: };
                     53: 
                     54: enum {
                     55:     ev_hsync, ev_audio, ev_cia, ev_misc,
                     56:     ev_max
                     57: };
                     58: 
                     59: enum {
                     60:     ev2_blitter, ev2_disk, ev2_misc,
                     61:     ev2_max = 12
                     62: };
                     63: 
                     64: extern struct ev eventtab[ev_max];
                     65: extern struct ev2 eventtab2[ev2_max];
                     66: 
                     67: extern void event2_newevent (int, evt, uae_u32);
                     68: extern void event2_newevent2 (evt, uae_u32, evfunc2);
                     69: extern void event2_remevent (int);
                     70: 
                     71: /*#if 0
                     72: #ifdef JIT
                     73: #include "events_jit.h"
                     74: #else
                     75: #include "events_normal.h"
                     76: #endif
                     77: #else
                     78: #include "events_jit.h"
                     79: #endif
                     80: */
                     81: 
                     82: #include "events_normal.h"
                     83: 
                     84: 
                     85: STATIC_INLINE bool cycles_in_range (unsigned long endcycles)
                     86: {
                     87:        signed long c = get_cycles ();
                     88:        return (signed long)endcycles - c > 0;
                     89: }
                     90: 
                     91: #endif //HATARI_EVENT_H

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.