Commodore64: Whoops, forgot the CIA in the new test framework.
This commit is contained in:
parent
155aea5b89
commit
9cc6936b89
|
@ -102,6 +102,8 @@
|
|||
<Compile Include="Computers\Commodore64\Experimental\C64.Glue.cs" />
|
||||
<Compile Include="Computers\Commodore64\Experimental\C64NTSC.cs" />
|
||||
<Compile Include="Computers\Commodore64\Experimental\C64PAL.cs" />
|
||||
<Compile Include="Computers\Commodore64\Experimental\Chips\Internals\Cia.Interface.cs" />
|
||||
<Compile Include="Computers\Commodore64\Experimental\Chips\Internals\Cia.Internal.cs" />
|
||||
<Compile Include="Computers\Commodore64\Experimental\IMotherboard.cs" />
|
||||
<Compile Include="Computers\Commodore64\Experimental\Chips\Internals\Cpu.Interface.cs" />
|
||||
<Compile Include="Computers\Commodore64\Experimental\Chips\Internals\Cpu.Internal.cs" />
|
||||
|
|
|
@ -15,10 +15,31 @@ namespace BizHawk.Emulation.Computers.Commodore64.Experimental
|
|||
public int ReadAddress()
|
||||
{
|
||||
int addr = 0xFFFF;
|
||||
addr &= cpu.OutputAddress();
|
||||
addr &= expansion.OutputAddress();
|
||||
addr &= vic.OutputAddress();
|
||||
addr &= cpu.Address;
|
||||
addr &= expansion.Address;
|
||||
addr &= vic.Address;
|
||||
return addr;
|
||||
}
|
||||
|
||||
public int ReadData()
|
||||
{
|
||||
int data = 0xFF;
|
||||
data &= expansion.Data;
|
||||
if (pla.Basic)
|
||||
data &= basicRom.Data;
|
||||
if (pla.CharRom)
|
||||
data &= characterRom.Data;
|
||||
if (pla.GraphicsRead)
|
||||
data &= colorRam.Data;
|
||||
if (pla.IO)
|
||||
{
|
||||
data &= sid.Data;
|
||||
data &= vic.Data;
|
||||
}
|
||||
data &= cpu.Data;
|
||||
data &= kernalRom.Data;
|
||||
data &= memory.Data;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,7 +12,7 @@ namespace BizHawk.Emulation.Computers.Commodore64.Experimental.Chips.Internals
|
|||
|
||||
virtual public bool Data { get { return true; } }
|
||||
public bool OutputData() { return Data; }
|
||||
virtual public bool OutputSense() { return Sense; }
|
||||
public bool OutputSense() { return Sense; }
|
||||
virtual public int Peek(int addr) { return 0xFF; }
|
||||
virtual public void Poke(int addr, int val) { }
|
||||
virtual public void Precache() { }
|
||||
|
|
|
@ -0,0 +1,36 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace BizHawk.Emulation.Computers.Commodore64.Experimental.Chips.Internals
|
||||
{
|
||||
public partial class Cia
|
||||
{
|
||||
public Func<int> InputAddress;
|
||||
public Func<bool> InputClock;
|
||||
public Func<bool> InputCNT;
|
||||
public Func<int> InputData;
|
||||
public Func<bool> InputFlag;
|
||||
public Func<int> InputPortA;
|
||||
public Func<int> InputPortB;
|
||||
public Func<bool> InputRead;
|
||||
public Func<bool> InputReset;
|
||||
public Func<bool> InputSP;
|
||||
|
||||
virtual public bool CNT { get { return true; } }
|
||||
virtual public int Data { get { return 0xFF; } }
|
||||
virtual public bool IRQ { get { return true; } }
|
||||
public bool OutputCNT() { return CNT; }
|
||||
public int OutputData() { return Data; }
|
||||
public bool OutputIRQ() { return IRQ; }
|
||||
public bool OutputPC() { return PC; }
|
||||
public int OutputPortA() { return PortA; }
|
||||
public int OutputPortB() { return PortB; }
|
||||
public bool OutputSP() { return SP; }
|
||||
virtual public bool PC { get { return true; } }
|
||||
virtual public int PortA { get { return 0xFF; } }
|
||||
virtual public int PortB { get { return 0xFF; } }
|
||||
virtual public bool SP { get { return true; } }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace BizHawk.Emulation.Computers.Commodore64.Experimental.Chips.Internals
|
||||
{
|
||||
public partial class Cia
|
||||
{
|
||||
}
|
||||
}
|
|
@ -16,7 +16,7 @@ namespace BizHawk.Emulation.Computers.Commodore64.Experimental.Chips.Internals
|
|||
|
||||
virtual public void Execute()
|
||||
{
|
||||
if (InputWrite() && InputSelect())
|
||||
if (InputWrite())
|
||||
memory[InputAddress() & addressMask] = InputData() & dataMask;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,7 +9,6 @@ namespace BizHawk.Emulation.Computers.Commodore64.Experimental.Chips.Internals
|
|||
{
|
||||
public Func<int> InputAddress;
|
||||
public Func<int> InputData;
|
||||
public Func<bool> InputSelect;
|
||||
|
||||
protected int addressMask;
|
||||
protected int dataMask;
|
||||
|
@ -26,9 +25,7 @@ namespace BizHawk.Emulation.Computers.Commodore64.Experimental.Chips.Internals
|
|||
{
|
||||
get
|
||||
{
|
||||
if (InputSelect())
|
||||
return memory[InputAddress() & addressMask] & dataMask;
|
||||
return 0xFF;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -8,13 +8,12 @@ namespace BizHawk.Emulation.Computers.Commodore64.Experimental.Chips.Internals
|
|||
public abstract partial class Sid
|
||||
{
|
||||
public Func<int> InputAddress;
|
||||
public Func<bool> InputChipSelect;
|
||||
public Func<int> InputData;
|
||||
public Func<bool> InputRead;
|
||||
|
||||
public int Data { get { return 0xFF; } }
|
||||
virtual public int OutputData() { return Data; }
|
||||
virtual public void Precache() { }
|
||||
virtual public void SyncState(Serializer ser) { }
|
||||
virtual public int Data { get { return 0xFF; } }
|
||||
public int OutputData() { return Data; }
|
||||
public void Precache() { }
|
||||
public void SyncState(Serializer ser) { }
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,7 +8,6 @@ namespace BizHawk.Emulation.Computers.Commodore64.Experimental.Chips.Internals
|
|||
public abstract partial class Vic
|
||||
{
|
||||
public Func<int> InputAddress;
|
||||
public Func<bool> InputChipSelect;
|
||||
public Func<int> InputData;
|
||||
public Func<bool> InputRead;
|
||||
|
||||
|
@ -74,37 +73,37 @@ namespace BizHawk.Emulation.Computers.Commodore64.Experimental.Chips.Internals
|
|||
return Address;
|
||||
}
|
||||
|
||||
virtual public bool OutputAEC()
|
||||
public bool OutputAEC()
|
||||
{
|
||||
return AEC;
|
||||
}
|
||||
|
||||
virtual public bool OutputBA()
|
||||
public bool OutputBA()
|
||||
{
|
||||
return BA;
|
||||
}
|
||||
|
||||
virtual public bool OutputCAS()
|
||||
public bool OutputCAS()
|
||||
{
|
||||
return CAS;
|
||||
}
|
||||
|
||||
virtual public int OutputData()
|
||||
public int OutputData()
|
||||
{
|
||||
return Data;
|
||||
}
|
||||
|
||||
virtual public bool OutputIRQ()
|
||||
public bool OutputIRQ()
|
||||
{
|
||||
return IRQ;
|
||||
}
|
||||
|
||||
virtual public bool OutputPHI0()
|
||||
public bool OutputPHI0()
|
||||
{
|
||||
return PHI0;
|
||||
}
|
||||
|
||||
virtual public bool OutputRAS()
|
||||
public bool OutputRAS()
|
||||
{
|
||||
return RAS;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue