40 lines
667 B
C#
40 lines
667 B
C#
using System;
|
|
|
|
namespace BizHawk.Emulation.Cores.Computers.Commodore64.MOS
|
|
{
|
|
// ROM chips
|
|
public sealed class Chip23128
|
|
{
|
|
[SaveState.DoNotSave] private readonly int[] _rom;
|
|
|
|
public Chip23128()
|
|
{
|
|
_rom = new int[0x4000];
|
|
}
|
|
|
|
public Chip23128(byte[] data) : this()
|
|
{
|
|
Flash(data);
|
|
}
|
|
|
|
public void Flash(byte[] data)
|
|
{
|
|
// ensures ROM is mirrored
|
|
for (var i = 0; i < _rom.Length; i += data.Length)
|
|
{
|
|
Array.Copy(data, 0, _rom, i, data.Length);
|
|
}
|
|
}
|
|
|
|
public int Peek(int addr)
|
|
{
|
|
return _rom[addr & 0x3FFF];
|
|
}
|
|
|
|
public int Read(int addr)
|
|
{
|
|
return _rom[addr & 0x3FFF];
|
|
}
|
|
}
|
|
}
|