mirror of
https://github.com/AppleWin/AppleWin.git
synced 2024-11-18 12:06:47 +00:00
37ad1ebd63
Also: . support new CpuType independently of Apple2Type . save-state: don't save disk track image if no disk . save-state: re-init AppleWin internals & UI to reflect changed Apple2Type
47 lines
1.5 KiB
C
47 lines
1.5 KiB
C
#pragma once
|
|
|
|
struct regsrec
|
|
{
|
|
BYTE a; // accumulator
|
|
BYTE x; // index X
|
|
BYTE y; // index Y
|
|
BYTE ps; // processor status
|
|
WORD pc; // program counter
|
|
WORD sp; // stack pointer
|
|
BYTE bJammed; // CPU has crashed (NMOS 6502 only)
|
|
};
|
|
|
|
extern regsrec regs;
|
|
extern unsigned __int64 g_nCumulativeCycles;
|
|
|
|
void CpuDestroy ();
|
|
void CpuCalcCycles(ULONG nExecutedCycles);
|
|
DWORD CpuExecute (DWORD);
|
|
ULONG CpuGetCyclesThisVideoFrame(ULONG nExecutedCycles);
|
|
void CpuInitialize ();
|
|
void CpuSetupBenchmark ();
|
|
void CpuIrqReset();
|
|
void CpuIrqAssert(eIRQSRC Device);
|
|
void CpuIrqDeassert(eIRQSRC Device);
|
|
void CpuNmiReset();
|
|
void CpuNmiAssert(eIRQSRC Device);
|
|
void CpuNmiDeassert(eIRQSRC Device);
|
|
void CpuReset ();
|
|
void CpuSetSnapshot_v1(const BYTE A, const BYTE X, const BYTE Y, const BYTE P, const BYTE SP, const USHORT PC, const unsigned __int64 CumulativeCycles);
|
|
void CpuSaveSnapshot(class YamlSaveHelper& yamlSaveHelper);
|
|
void CpuLoadSnapshot(class YamlLoadHelper& yamlLoadHelper);
|
|
|
|
BYTE CpuRead(USHORT addr, ULONG uExecutedCycles);
|
|
void CpuWrite(USHORT addr, BYTE a, ULONG uExecutedCycles);
|
|
|
|
DWORD CpuGetEmulationTime_ms(void);
|
|
|
|
enum eCpuType {CPU_6502=1, CPU_65C02, CPU_Z80}; // Don't change! Persisted to Registry
|
|
|
|
eCpuType GetMainCpu(void);
|
|
void SetMainCpu(eCpuType cpu);
|
|
eCpuType ProbeMainCpuDefault(eApple2Type apple2Type);
|
|
void SetMainCpuDefault(eApple2Type apple2Type);
|
|
eCpuType GetActiveCpu(void);
|
|
void SetActiveCpu(eCpuType cpu);
|