|
|
1.1 root 1: /*
2: Hatari - clocks_timings.h
3:
1.1.1.2 root 4: This file is distributed under the GNU General Public License, version 2
5: or at your option any later version. Read the file gpl.txt for details.
1.1 root 6: */
7:
8: #ifndef HATARI_CLOCKS_TIMINGS_H
9: #define HATARI_CLOCKS_TIMINGS_H
10:
11:
12:
13:
1.1.1.3 ! root 14: /* All the possible clock frequencies in Hz used in the supported machines. */
1.1 root 15: /* When a value is 0, the corresponding part is not available in this model */
16:
17: typedef struct
18: {
19: /* Common to all machines */
20: Uint32 MCLK_Freq;
21: Uint32 BUS_Freq;
22:
1.1.1.3 ! root 23: Uint32 CPU_Freq; /* 'normal' CPU Freq (eg 8 MHz for ST or 16 MHz for Falcon) */
1.1 root 24: Uint32 FPU_Freq;
25: Uint32 DMA_Freq;
26: Uint32 MFP_Freq;
27: Uint32 MFP_Timer_Freq;
28: Uint32 FDC_Freq;
29: Uint32 BLITTER_Freq;
30: Uint32 YM_Freq;
31: Uint32 ACIA_Freq;
32: Uint32 IKBD_Freq;
33:
34: /* STF specific */
35: Uint32 MMU_Freq; /* STF only */
36: Uint32 GLUE_Freq; /* STF only */
37: Uint32 SHIFTER_Freq; /* STF/STE */
38:
39: /* STE specific */
40: Uint32 MCU_Freq; /* replaces MMU+GLUE in STF */
41: Uint32 DMA_Audio_Freq; /* also used for SND SHIFTER in TT */
42:
43: /* TT specific */
44: Uint32 TTVIDEO_Freq;
45:
46: /* Falcon specific */
47: Uint32 COMBEL_Freq; /* includes the BLITTER */
48: Uint32 VIDEL_Freq;
49: Uint32 CODEC_Freq;
50: Uint32 DSP_Freq;
51:
1.1.1.3 ! root 52: /* Common to all machines, runtime variables */
! 53: Uint32 CPU_Freq_Emul; /* Freq in Hz at which the CPU is emulated (taking nCpuFreqShift and CPU_Freq into account) */
1.1 root 54:
55: } CLOCKS_STRUCT;
56:
57:
58:
59: extern CLOCKS_STRUCT MachineClocks;
60:
61: extern bool RoundVBLPerSec;
62:
63:
64: #define CLOCKS_TIMINGS_SHIFT_VBL 24 /* The value returned by ClocksTimings_GetVBLPerSec is << 24 to increase precision */
65:
66: /* Functions' prototypes */
67:
68: void ClocksTimings_InitMachine ( MACHINETYPE MachineType );
1.1.1.3 ! root 69: void ClocksTimings_UpdateCpuFreqEmul ( MACHINETYPE MachineType , int nCpuFreqShift );
1.1 root 70: Uint32 ClocksTimings_GetCyclesPerVBL ( MACHINETYPE MachineType , int ScreenRefreshRate );
71: Uint32 ClocksTimings_GetVBLPerSec ( MACHINETYPE MachineType , int ScreenRefreshRate );
72: Uint32 ClocksTimings_GetVBLDuration_micro ( MACHINETYPE MachineType , int ScreenRefreshRate );
73: Sint64 ClocksTimings_GetSamplesPerVBL ( MACHINETYPE MachineType , int ScreenRefreshRate , int AudioFreq );
74:
75:
76:
77:
78:
79: #endif
80:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.