2006-02-25 20:50:29 +00:00
|
|
|
#pragma once
|
|
|
|
|
2019-12-19 19:42:30 +00:00
|
|
|
#include "Card.h"
|
2014-08-14 16:48:38 +00:00
|
|
|
#include "Common.h"
|
2022-02-13 21:37:05 +00:00
|
|
|
#include "StrFormat.h"
|
|
|
|
#include "Log.h"
|
2014-08-13 20:30:35 +00:00
|
|
|
|
2016-09-06 20:38:00 +00:00
|
|
|
void LogFileTimeUntilFirstKeyReadReset(void);
|
|
|
|
void LogFileTimeUntilFirstKeyRead(void);
|
|
|
|
|
2019-01-09 21:29:36 +00:00
|
|
|
extern const UINT16* GetOldAppleWinVersion(void);
|
2024-07-28 15:12:36 +00:00
|
|
|
extern UINT16 g_AppleWinVersion[4];
|
2022-02-15 18:48:20 +00:00
|
|
|
extern std::string g_VERSIONSTRING; // Constructed in WinMain()
|
2006-02-25 20:50:29 +00:00
|
|
|
|
2020-11-26 21:50:06 +00:00
|
|
|
void SetAppleWinVersion(UINT16 major, UINT16 minor, UINT16 fix, UINT16 fix_minor);
|
|
|
|
bool CheckOldAppleWinVersion(void);
|
|
|
|
|
2019-09-07 09:16:51 +00:00
|
|
|
extern std::string g_pAppTitle;
|
2006-06-27 02:34:46 +00:00
|
|
|
|
2012-03-20 23:17:06 +00:00
|
|
|
extern eApple2Type g_Apple2Type;
|
2016-03-21 23:48:02 +00:00
|
|
|
eApple2Type GetApple2Type(void);
|
|
|
|
void SetApple2Type(eApple2Type type);
|
2006-06-12 22:06:50 +00:00
|
|
|
|
2019-06-28 20:34:34 +00:00
|
|
|
double Get6502BaseClock(void);
|
|
|
|
void SetCurrentCLK6502(void);
|
|
|
|
|
2020-11-26 21:50:06 +00:00
|
|
|
// set g_dwSpeed =
|
|
|
|
// | clockMultiplier == 0 => unchanged
|
|
|
|
// | clockMultiplier < 1 => (max(0.5, clockMultiplier) - 0.5) * 20
|
|
|
|
// | else => min(SPEED_MAX - 1, clockMultiplier * 10)
|
|
|
|
void UseClockMultiplier(double clockMultiplier);
|
2017-02-25 22:32:46 +00:00
|
|
|
|
2006-02-25 20:50:29 +00:00
|
|
|
extern bool g_bFullSpeed;
|
2006-07-02 09:56:50 +00:00
|
|
|
|
2008-06-20 23:47:25 +00:00
|
|
|
//===========================================
|
|
|
|
|
2006-06-12 22:06:50 +00:00
|
|
|
extern AppMode_e g_nAppMode;
|
|
|
|
|
2020-11-26 21:50:06 +00:00
|
|
|
extern std::string g_sStartDir;
|
2019-09-06 16:34:25 +00:00
|
|
|
extern std::string g_sProgramDir;
|
2019-09-07 09:16:51 +00:00
|
|
|
extern std::string g_sCurrentDir;
|
2023-06-02 16:28:04 +00:00
|
|
|
extern std::string g_sBuiltinSymbolsDir;
|
2006-06-25 03:41:52 +00:00
|
|
|
|
2020-11-26 21:50:06 +00:00
|
|
|
bool SetCurrentImageDir(const std::string& pszImageDir);
|
|
|
|
|
2016-09-10 21:58:26 +00:00
|
|
|
extern bool g_bRestart;
|
2006-02-25 20:50:29 +00:00
|
|
|
|
|
|
|
extern DWORD g_dwSpeed;
|
|
|
|
extern double g_fCurrentCLK6502;
|
|
|
|
|
2006-03-12 09:05:39 +00:00
|
|
|
extern int g_nCpuCyclesFeedback;
|
|
|
|
extern DWORD g_dwCyclesThisFrame;
|
|
|
|
|
2014-07-18 03:18:59 +00:00
|
|
|
extern int g_nMemoryClearType; // Cmd line switch: use specific MIP (Memory Initialization Pattern)
|
2006-02-25 20:50:29 +00:00
|
|
|
|
2020-10-11 16:34:44 +00:00
|
|
|
extern class CardManager& GetCardMgr(void);
|
2020-10-11 15:08:05 +00:00
|
|
|
extern class SynchronousEventManager g_SynchronousEventMgr;
|
2009-02-14 03:54:12 +00:00
|
|
|
|
2020-11-26 21:50:06 +00:00
|
|
|
extern HANDLE g_hCustomRomF8; // INVALID_HANDLE_VALUE if no custom F8 rom
|
|
|
|
extern bool g_bCustomRomF8Failed; // Set if custom F8 ROM file failed
|
|
|
|
extern HANDLE g_hCustomRom; // INVALID_HANDLE_VALUE if no custom rom
|
|
|
|
extern bool g_bCustomRomFailed; // Set if custom ROM file failed
|
2008-08-19 21:36:31 +00:00
|
|
|
|
2020-11-26 21:50:06 +00:00
|
|
|
extern bool g_bEnableSpeech;
|
2010-02-14 21:11:26 +00:00
|
|
|
#ifdef USE_SPEECH_API
|
|
|
|
class CSpeech;
|
|
|
|
extern CSpeech g_Speech;
|
2012-05-06 22:14:03 +00:00
|
|
|
#endif
|
|
|
|
|
2020-11-26 21:50:06 +00:00
|
|
|
extern bool g_bDisableDirectInput; // Cmd line switch: don't init DI (so no DIMouse support)
|
|
|
|
extern bool g_bDisableDirectSound; // Cmd line switch: don't init DS (so no MB/Speaker support)
|
|
|
|
extern bool g_bDisableDirectSoundMockingboard; // Cmd line switch: don't init MB support
|
2020-05-23 15:23:06 +00:00
|
|
|
|
2021-01-17 10:48:06 +00:00
|
|
|
class Pravets& GetPravets(void);
|
|
|
|
|
2020-05-23 15:23:06 +00:00
|
|
|
//#define LOG_PERF_TIMINGS
|
|
|
|
#ifdef LOG_PERF_TIMINGS
|
|
|
|
class PerfMarker
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
PerfMarker(UINT64& globalCounter)
|
|
|
|
: counter(globalCounter)
|
|
|
|
{
|
|
|
|
QueryPerformanceCounter(&timeStart);
|
|
|
|
}
|
|
|
|
~PerfMarker()
|
|
|
|
{
|
|
|
|
QueryPerformanceCounter(&timeEnd);
|
|
|
|
counter += (UINT64)timeEnd.QuadPart - (UINT64)timeStart.QuadPart;
|
|
|
|
}
|
|
|
|
private:
|
|
|
|
UINT64& counter;
|
|
|
|
LARGE_INTEGER timeStart;
|
|
|
|
LARGE_INTEGER timeEnd;
|
|
|
|
};
|
|
|
|
#endif
|