mirror of
https://github.com/AppleWin/AppleWin.git
synced 2024-11-19 04:08:45 +00:00
769d4c6927
Support 2nd Disk][ in slot-5, via command line: - -s5 diskii - -s5d1 \<imagefile\> - -s5d2 \<imagefile\> NB. there's currently no Configuration UI support, except the Drive icons' tooltips show what's in slot-5 & slot-6 (for drive-n). So there's no way to eject the disks or insert new disks. The use-case I'm supporting it Wasteland which just has the 4 disks in the 4 drives. Improved card management: - Added `class Card` (in Card.h) which all other cards (that exist as classes) derive from (eg. LC,SSC,Mouse,Disk2). - Added `class CardManager` (in CardManager.cpp\h) which now manages the 8 slots (and aux slot). - Added `class Disk2CardManager` (in Disk2CardManager.cpp\h) which provides methods for operations that act on all Disk2 instances at the same time. - Currently limited to just 1x SSC and 1x Mouse card (why would you need more?). This simplifies things, meaning there's no need to have dedicated SSCManager / MouseCardManager objects. - Currently the 2nd Disk2 card can only be put into slot-5. This limitation is just due to the complexity of the Configuration UI. Having a more general drop-down per slot UI would remove this limitation.
49 lines
1.5 KiB
C
49 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 CpuAdjustIrqCheck(UINT uCyclesUntilInterrupt);
|
|
void CpuDestroy ();
|
|
void CpuCalcCycles(ULONG nExecutedCycles);
|
|
DWORD CpuExecute(const DWORD uCycles, const bool bVideoUpdate);
|
|
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 CpuSaveSnapshot(class YamlSaveHelper& yamlSaveHelper);
|
|
void CpuLoadSnapshot(class YamlLoadHelper& yamlLoadHelper, UINT version);
|
|
|
|
BYTE CpuRead(USHORT addr, ULONG uExecutedCycles);
|
|
void CpuWrite(USHORT addr, BYTE a, ULONG uExecutedCycles);
|
|
|
|
enum eCpuType {CPU_UNKNOWN=0, 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);
|
|
|
|
bool Is6502InterruptEnabled(void);
|
|
void ResetCyclesExecutedForDebugger(void);
|
|
void SetMouseCardInstalled(bool installed);
|