2013-11-04 00:36:15 +00:00
|
|
|
|
using BizHawk.Common;
|
|
|
|
|
|
2014-10-03 21:04:37 +00:00
|
|
|
|
namespace BizHawk.Emulation.Cores.Computers.Commodore64.MOS
|
2012-11-27 05:11:40 +00:00
|
|
|
|
{
|
|
|
|
|
// used as Color RAM in C64
|
2016-02-22 23:50:11 +00:00
|
|
|
|
public sealed class Chip2114
|
2012-11-27 05:11:40 +00:00
|
|
|
|
{
|
2017-04-24 13:35:05 +00:00
|
|
|
|
private int[] _ram = new int[0x400];
|
2012-11-27 05:11:40 +00:00
|
|
|
|
|
|
|
|
|
public Chip2114()
|
|
|
|
|
{
|
|
|
|
|
HardReset();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void HardReset()
|
|
|
|
|
{
|
2017-04-24 13:35:05 +00:00
|
|
|
|
for (var i = 0; i < 0x400; i++)
|
|
|
|
|
{
|
|
|
|
|
_ram[i] = 0x0;
|
|
|
|
|
}
|
2012-11-27 05:11:40 +00:00
|
|
|
|
}
|
|
|
|
|
|
2016-02-22 23:50:11 +00:00
|
|
|
|
public int Peek(int addr)
|
2012-11-27 05:11:40 +00:00
|
|
|
|
{
|
2016-02-22 23:50:11 +00:00
|
|
|
|
return _ram[addr & 0x3FF];
|
2012-11-27 05:11:40 +00:00
|
|
|
|
}
|
|
|
|
|
|
2016-02-22 23:50:11 +00:00
|
|
|
|
public void Poke(int addr, int val)
|
2012-11-27 05:11:40 +00:00
|
|
|
|
{
|
2016-02-22 23:50:11 +00:00
|
|
|
|
_ram[addr & 0x3FF] = val & 0xF;
|
2012-11-27 05:11:40 +00:00
|
|
|
|
}
|
|
|
|
|
|
2016-02-22 23:50:11 +00:00
|
|
|
|
public int Read(int addr)
|
2012-11-27 05:11:40 +00:00
|
|
|
|
{
|
2016-02-22 23:50:11 +00:00
|
|
|
|
return _ram[addr & 0x3FF];
|
2012-11-27 05:11:40 +00:00
|
|
|
|
}
|
|
|
|
|
|
2013-11-04 00:36:15 +00:00
|
|
|
|
public int ReadInt(int addr)
|
|
|
|
|
{
|
2016-02-22 23:50:11 +00:00
|
|
|
|
return _ram[addr & 0x3FF];
|
2013-11-04 00:36:15 +00:00
|
|
|
|
}
|
2013-08-23 08:57:20 +00:00
|
|
|
|
|
2012-12-03 08:38:12 +00:00
|
|
|
|
public void SyncState(Serializer ser)
|
|
|
|
|
{
|
2017-05-13 12:56:32 +00:00
|
|
|
|
ser.Sync("_ram", ref _ram, useNull: false);
|
2013-11-04 00:36:15 +00:00
|
|
|
|
}
|
2012-12-03 08:38:12 +00:00
|
|
|
|
|
2016-02-22 23:50:11 +00:00
|
|
|
|
public void Write(int addr, int val)
|
2012-11-27 05:11:40 +00:00
|
|
|
|
{
|
2016-02-22 23:50:11 +00:00
|
|
|
|
_ram[addr & 0x3FF] = val & 0xF;
|
2012-11-27 05:11:40 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|