64 lines
1.2 KiB
C#
64 lines
1.2 KiB
C#
using System;
|
|
using System.IO;
|
|
using System.Collections.Generic;
|
|
|
|
using BizHawk.Emulation.Common;
|
|
using BizHawk.Emulation.Cores.Components.I8048;
|
|
|
|
namespace BizHawk.Emulation.Cores.Consoles.O2Hawk
|
|
{
|
|
public partial class O2Hawk : ICodeDataLogger
|
|
{
|
|
private ICodeDataLog _cdl;
|
|
|
|
public void SetCDL(ICodeDataLog cdl)
|
|
{
|
|
_cdl = cdl;
|
|
if (cdl == null)
|
|
this.cpu.CDLCallback = null;
|
|
else this.cpu.CDLCallback = CDLCpuCallback;
|
|
}
|
|
|
|
public void NewCDL(ICodeDataLog cdl)
|
|
{
|
|
cdl["ROM"] = new byte[MemoryDomains["ROM"].Size];
|
|
cdl["HRAM"] = new byte[MemoryDomains["Zero Page RAM"].Size];
|
|
|
|
cdl["WRAM"] = new byte[MemoryDomains["Main RAM"].Size];
|
|
|
|
if (MemoryDomains.Has("Cart RAM"))
|
|
{
|
|
cdl["CartRAM"] = new byte[MemoryDomains["Cart RAM"].Size];
|
|
}
|
|
|
|
cdl.SubType = "O2";
|
|
cdl.SubVer = 0;
|
|
}
|
|
|
|
[FeatureNotImplemented]
|
|
void ICodeDataLogger.DisassembleCDL(Stream s, ICodeDataLog cdl)
|
|
{
|
|
}
|
|
|
|
public void SetCDL(I8048.eCDLogMemFlags flags, string type, int cdladdr)
|
|
{
|
|
if (type == null) return;
|
|
byte val = (byte)flags;
|
|
_cdl[type][cdladdr] |= (byte)flags;
|
|
}
|
|
|
|
void CDLCpuCallback(ushort addr, I8048.eCDLogMemFlags flags)
|
|
{
|
|
|
|
if (addr < 0x400)
|
|
{
|
|
|
|
}
|
|
else
|
|
{
|
|
mapper.MapCDL(addr, flags);
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
} |