AppleWin/AppleWin/source/Common.h

74 lines
2.5 KiB
C

#pragma once
const double _M14 = 14.31818e6;
const double CLK_6502 = (_M14 / 14.0);
const UINT uCyclesPerLine = 65; // 25 cycles of HBL & 40 cycles of HBL'
const UINT uVisibleLinesPerFrame = 64*3; // 192
const UINT uLinesPerFrame = 262; // 64 in each third of the screen & 70 in VBL
const DWORD dwClksPerFrame = uCyclesPerLine * uLinesPerFrame; // 17030
#define MAX(a,b) (((a) > (b)) ? (a) : (b))
#define MIN(a,b) (((a) < (b)) ? (a) : (b))
#define RAMWORKS // 8MB RamWorks III support
// Use a base freq so that DirectX (or sound h/w) doesn't have to up/down-sample
// Assume base freqs are 44.1KHz & 48KHz
const DWORD SPKR_SAMPLE_RATE = 44100;
#define MODE_LOGO 0
#define MODE_PAUSED 1
#define MODE_RUNNING 2
#define MODE_DEBUG 3
#define MODE_STEPPING 4
#define SPEED_MIN 0
#define SPEED_NORMAL 10
#define SPEED_MAX 40
#define DRAW_BACKGROUND 1
#define DRAW_LEDS 2
#define DRAW_TITLE 4
#define DRAW_BUTTON_DRIVES 8
#define BTN_HELP 0
#define BTN_RUN 1
#define BTN_DRIVE1 2
#define BTN_DRIVE2 3
#define BTN_DRIVESWAP 4
#define BTN_FULLSCR 5
#define BTN_DEBUG 6
#define BTN_SETUP 7
#define MAXIMAGES 16
#define TITLE TEXT("Apple //e Emulator")
#define LOAD(a,b) RegLoadValue(TEXT("Configuration"),a,1,b)
#define SAVE(a,b) RegSaveValue(TEXT("Configuration"),a,1,b)
#define REGVALUE_SPKR_VOLUME "Speaker Volume"
#define REGVALUE_MB_VOLUME "Mockingboard Volume"
#define REGVALUE_SOUNDCARD_TYPE "Soundcard Type"
#define REGVALUE_KEYB_BUFFER_ENABLE "Keyboard Buffer Enable"
#define REGVALUE_SAVESTATE_FILENAME "Save State Filename"
#define REGVALUE_SAVE_STATE_ON_EXIT "Save State On Exit"
#define REGVALUE_HDD_ENABLED "Harddisk Enable"
#define REGVALUE_HDD_IMAGE1 "Harddisk Image 1"
#define REGVALUE_HDD_IMAGE2 "Harddisk Image 2"
#define REGVALUE_PDL_XTRIM "PDL X-Trim"
#define REGVALUE_PDL_YTRIM "PDL Y-Trim"
#define WM_USER_BENCHMARK WM_USER+1
#define WM_USER_RESTART WM_USER+2
#define WM_USER_SAVESTATE WM_USER+3
#define WM_USER_LOADSTATE WM_USER+4
enum eSOUNDCARDTYPE {SC_UNINIT=0, SC_NONE, SC_MOCKINGBOARD, SC_PHASOR}; // Apple soundcard type
typedef BYTE (__stdcall *iofunction)(WORD nPC, BYTE nAddr, BYTE nWriteFlag, BYTE nWriteValue, ULONG nCyclesLeft);
typedef BYTE (__stdcall *cxfunction)(WORD nPC, WORD nAddr, BYTE nWriteFlag, BYTE nWriteValue, ULONG nCyclesLeft);
typedef struct _IMAGE__ { int unused; } *HIMAGE;