Support NSC for Apple II/II+ via F8-ROM (#827 PR #873)

This commit is contained in:
TomCh
2020-11-25 21:57:34 +00:00
committed by GitHub
parent c455488b50
commit 6e166dfff6
8 changed files with 137 additions and 42 deletions
+25 -8
View File
@@ -441,11 +441,20 @@ static __forceinline void IRQ(ULONG& uExecutedCycles, BOOL& flagc, BOOL& flagn,
//===========================================================================
#define READ _READ
#define WRITE(value) _WRITE(value)
#define READ _READ_WITH_IO_F8xx
#define WRITE(value) _WRITE_WITH_IO_F8xx(value)
#define HEATMAP_X(address)
#include "CPU/cpu6502.h" // MOS 6502
#undef READ
#undef WRITE
//-------
#define READ _READ
#define WRITE(value) _WRITE(value)
#include "CPU/cpu65C02.h" // WDC 65C02
#undef READ
@@ -454,8 +463,8 @@ static __forceinline void IRQ(ULONG& uExecutedCycles, BOOL& flagc, BOOL& flagn,
//-----------------
#define READ Heatmap_ReadByte(addr, uExecutedCycles)
#define WRITE(value) Heatmap_WriteByte(addr, value, uExecutedCycles);
#define READ Heatmap_ReadByte_With_IO_F8xx(addr, uExecutedCycles)
#define WRITE(value) Heatmap_WriteByte_With_IO_F8xx(addr, value, uExecutedCycles);
#define HEATMAP_X(address) Heatmap_X(address)
@@ -465,6 +474,14 @@ static __forceinline void IRQ(ULONG& uExecutedCycles, BOOL& flagc, BOOL& flagn,
#include "CPU/cpu6502.h" // MOS 6502
#undef Cpu6502
#undef READ
#undef WRITE
//-------
#define READ Heatmap_ReadByte(addr, uExecutedCycles)
#define WRITE(value) Heatmap_WriteByte(addr, value, uExecutedCycles);
#define Cpu65C02 Cpu65C02_debug
#include "CPU/cpu65C02.h" // WDC 65C02
#undef Cpu65C02
@@ -505,10 +522,10 @@ BYTE CpuRead(USHORT addr, ULONG uExecutedCycles)
{
if (g_nAppMode == MODE_RUNNING)
{
return _READ;
return _READ_WITH_IO_F8xx; // Superset of _READ
}
return Heatmap_ReadByte(addr, uExecutedCycles);
return Heatmap_ReadByte_With_IO_F8xx(addr, uExecutedCycles);
}
// Called by z80_WRMEM()
@@ -516,11 +533,11 @@ void CpuWrite(USHORT addr, BYTE value, ULONG uExecutedCycles)
{
if (g_nAppMode == MODE_RUNNING)
{
_WRITE(value);
_WRITE_WITH_IO_F8xx(value); // Superset of _WRITE
return;
}
Heatmap_WriteByte(addr, value, uExecutedCycles);
Heatmap_WriteByte_With_IO_F8xx(addr, value, uExecutedCycles);
}
//===========================================================================