mirror of
https://github.com/mauiaaron/apple2.git
synced 2024-06-26 00:29:27 +00:00
WARN: this is still a WIP and untested. Instead of nanosleep() the cpu thread now uses an adaptive spinloop. This better emulates the actual apple //e speed in preparation to do near-realtime audio. The drawback is that the cpu thread is pegged at 100% usage.
27 lines
505 B
C
27 lines
505 B
C
/*
|
|
* Apple // emulator for Linux
|
|
*
|
|
* CPU Timing Support.
|
|
*
|
|
* Mostly this adds support for specifically throttling the emulator speed to
|
|
* match a 1.02MHz Apple //e.
|
|
*
|
|
* Added 2013 by Aaron Culliney
|
|
*
|
|
*/
|
|
|
|
#ifndef _TIMING_H_
|
|
#define _TIMING_H_
|
|
|
|
#define APPLE2_HZ 1020000
|
|
#define NANOSECONDS 1000000000
|
|
|
|
// 0 = run as fast as possible, 1 = approximate apple, X = 1/X rate
|
|
void timing_set_cpu_scale(unsigned int scale);
|
|
|
|
void timing_initialize();
|
|
|
|
void timing_throttle();
|
|
|
|
#endif // whole file
|