c64- rename MemoryBus to Memory since it is emulating the whole controller now

This commit is contained in:
saxxonpike 2012-11-03 14:26:43 +00:00
parent bb2fafec63
commit 1e2ee5f0b5
2 changed files with 116 additions and 116 deletions

View File

@ -18,7 +18,7 @@ namespace BizHawk.Emulation.Computers.Commodore64
public Cia cia1;
public Cia cia2;
public MOS6502X cpu;
public MemoryBus mem;
public Memory mem;
public Sid sid;
public VicII vic;
public VicSignals vicSignal;
@ -43,7 +43,7 @@ namespace BizHawk.Emulation.Computers.Commodore64
// initialize memory (this must be done AFTER all other chips are initialized)
string romPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "C64Kernal");
mem = new MemoryBus(romPath, vic, sid, cia1, cia2);
mem = new Memory(romPath, vic, sid, cia1, cia2);
cia2.ReadPortA = mem.CIA2ReadPortA;
cia2.ReadPortB = mem.CIA2ReadPortB;
cia2.WritePortA = mem.CIA2WritePortA;

View File

@ -6,7 +6,7 @@ using System.Text;
namespace BizHawk.Emulation.Computers.Commodore64
{
public enum MemoryBusDesignation
public enum MemoryDesignation
{
Disabled,
RAM,
@ -25,17 +25,17 @@ namespace BizHawk.Emulation.Computers.Commodore64
Expansion2
}
public class MemoryBusLayout
public class MemoryLayout
{
public MemoryBusDesignation Mem1000 = MemoryBusDesignation.RAM;
public MemoryBusDesignation Mem8000 = MemoryBusDesignation.RAM;
public MemoryBusDesignation MemA000 = MemoryBusDesignation.RAM;
public MemoryBusDesignation MemC000 = MemoryBusDesignation.RAM;
public MemoryBusDesignation MemD000 = MemoryBusDesignation.RAM;
public MemoryBusDesignation MemE000 = MemoryBusDesignation.RAM;
public MemoryDesignation Mem1000 = MemoryDesignation.RAM;
public MemoryDesignation Mem8000 = MemoryDesignation.RAM;
public MemoryDesignation MemA000 = MemoryDesignation.RAM;
public MemoryDesignation MemC000 = MemoryDesignation.RAM;
public MemoryDesignation MemD000 = MemoryDesignation.RAM;
public MemoryDesignation MemE000 = MemoryDesignation.RAM;
}
public class MemoryBus
public class Memory
{
// chips
public Cia cia1;
@ -53,7 +53,7 @@ namespace BizHawk.Emulation.Computers.Commodore64
public bool exRomPin = true;
public bool gamePin = true;
public byte[] kernalRom;
public MemoryBusLayout layout;
public MemoryLayout layout;
// ram
public byte[] colorRam;
@ -67,7 +67,7 @@ namespace BizHawk.Emulation.Computers.Commodore64
public bool readTrigger = true;
public bool writeTrigger = true;
public MemoryBus(string sourceFolder, VicII newVic, Sid newSid, Cia newCia1, Cia newCia2)
public Memory(string sourceFolder, VicII newVic, Sid newSid, Cia newCia1, Cia newCia2)
{
ram = new byte[0x10000];
WipeMemory();
@ -88,7 +88,7 @@ namespace BizHawk.Emulation.Computers.Commodore64
cpu00 = 0x2F;
cpu01 = 0x37;
layout = new MemoryBusLayout();
layout = new MemoryLayout();
UpdateLayout();
}
@ -119,13 +119,13 @@ namespace BizHawk.Emulation.Computers.Commodore64
{
}
public MemoryBusDesignation GetDesignation(ushort addr)
public MemoryDesignation GetDesignation(ushort addr)
{
MemoryBusDesignation result;
MemoryDesignation result;
if (addr < 0x1000)
{
result = MemoryBusDesignation.RAM;
result = MemoryDesignation.RAM;
}
else if (addr < 0x8000)
{
@ -152,36 +152,36 @@ namespace BizHawk.Emulation.Computers.Commodore64
result = layout.MemE000;
}
if (result == MemoryBusDesignation.IO)
if (result == MemoryDesignation.IO)
{
addr &= 0x0FFF;
if (addr < 0x0400)
{
result = MemoryBusDesignation.Vic;
result = MemoryDesignation.Vic;
}
else if (addr < 0x0800)
{
result = MemoryBusDesignation.Sid;
result = MemoryDesignation.Sid;
}
else if (addr < 0x0C00)
{
result = MemoryBusDesignation.ColorRam;
result = MemoryDesignation.ColorRam;
}
else if (addr < 0x0D00)
{
result = MemoryBusDesignation.Cia1;
result = MemoryDesignation.Cia1;
}
else if (addr < 0x0E00)
{
result = MemoryBusDesignation.Cia2;
result = MemoryDesignation.Cia2;
}
else if (addr < 0x0F00)
{
result = MemoryBusDesignation.Expansion1;
result = MemoryDesignation.Expansion1;
}
else
{
result = MemoryBusDesignation.Expansion2;
result = MemoryDesignation.Expansion2;
}
}
@ -202,47 +202,47 @@ namespace BizHawk.Emulation.Computers.Commodore64
}
else
{
MemoryBusDesignation des = GetDesignation(addr);
MemoryDesignation des = GetDesignation(addr);
switch (des)
{
case MemoryBusDesignation.Basic:
case MemoryDesignation.Basic:
result = basicRom[addr & 0x1FFF];
break;
case MemoryBusDesignation.Character:
case MemoryDesignation.Character:
result = charRom[addr & 0x0FFF];
break;
case MemoryBusDesignation.Vic:
case MemoryDesignation.Vic:
result = vic.regs[addr & 0x3F];
break;
case MemoryBusDesignation.Sid:
case MemoryDesignation.Sid:
result = sid.regs[addr & 0x1F];
break;
case MemoryBusDesignation.ColorRam:
case MemoryDesignation.ColorRam:
result = colorRam[addr & 0x03FF];
break;
case MemoryBusDesignation.Cia1:
case MemoryDesignation.Cia1:
result = cia1.regs[addr & 0x0F];
break;
case MemoryBusDesignation.Cia2:
case MemoryDesignation.Cia2:
result = cia2.regs[addr & 0x0F];
break;
case MemoryBusDesignation.Expansion1:
case MemoryDesignation.Expansion1:
result = 0;
break;
case MemoryBusDesignation.Expansion2:
case MemoryDesignation.Expansion2:
result = 0;
break;
case MemoryBusDesignation.Kernal:
case MemoryDesignation.Kernal:
result = kernalRom[addr & 0x1FFF];
break;
case MemoryBusDesignation.RAM:
case MemoryDesignation.RAM:
result = ram[addr];
break;
case MemoryBusDesignation.ROMHi:
case MemoryDesignation.ROMHi:
result = cart.chips[0].data[addr & cart.chips[0].romMask];
break;
case MemoryBusDesignation.ROMLo:
case MemoryDesignation.ROMLo:
result = cart.chips[0].data[addr & cart.chips[0].romMask];
break;
default:
@ -268,47 +268,47 @@ namespace BizHawk.Emulation.Computers.Commodore64
}
else
{
MemoryBusDesignation des = GetDesignation(addr);
MemoryDesignation des = GetDesignation(addr);
switch (des)
{
case MemoryBusDesignation.Basic:
case MemoryDesignation.Basic:
result = basicRom[addr & 0x1FFF];
break;
case MemoryBusDesignation.Character:
case MemoryDesignation.Character:
result = charRom[addr & 0x0FFF];
break;
case MemoryBusDesignation.Vic:
case MemoryDesignation.Vic:
result = vic.Read(addr);
break;
case MemoryBusDesignation.Sid:
case MemoryDesignation.Sid:
result = sid.Read(addr);
break;
case MemoryBusDesignation.ColorRam:
case MemoryDesignation.ColorRam:
result = ReadColorRam(addr);
break;
case MemoryBusDesignation.Cia1:
case MemoryDesignation.Cia1:
result = cia1.Read(addr);
break;
case MemoryBusDesignation.Cia2:
case MemoryDesignation.Cia2:
result = cia2.Read(addr);
break;
case MemoryBusDesignation.Expansion1:
case MemoryDesignation.Expansion1:
result = 0;
break;
case MemoryBusDesignation.Expansion2:
case MemoryDesignation.Expansion2:
result = 0;
break;
case MemoryBusDesignation.Kernal:
case MemoryDesignation.Kernal:
result = kernalRom[addr & 0x1FFF];
break;
case MemoryBusDesignation.RAM:
case MemoryDesignation.RAM:
result = ram[addr];
break;
case MemoryBusDesignation.ROMHi:
case MemoryDesignation.ROMHi:
result = cart.Read(addr);
break;
case MemoryBusDesignation.ROMLo:
case MemoryDesignation.ROMLo:
result = cart.Read(addr);
break;
default:
@ -333,84 +333,84 @@ namespace BizHawk.Emulation.Computers.Commodore64
if (loRom && hiRom && exRomPin && gamePin)
{
layout.Mem1000 = MemoryBusDesignation.RAM;
layout.Mem8000 = MemoryBusDesignation.RAM;
layout.MemA000 = MemoryBusDesignation.Basic;
layout.MemC000 = MemoryBusDesignation.RAM;
layout.MemD000 = ioEnable ? MemoryBusDesignation.IO : MemoryBusDesignation.Character;
layout.MemE000 = MemoryBusDesignation.Kernal;
layout.Mem1000 = MemoryDesignation.RAM;
layout.Mem8000 = MemoryDesignation.RAM;
layout.MemA000 = MemoryDesignation.Basic;
layout.MemC000 = MemoryDesignation.RAM;
layout.MemD000 = ioEnable ? MemoryDesignation.IO : MemoryDesignation.Character;
layout.MemE000 = MemoryDesignation.Kernal;
}
else if (loRom && !hiRom && exRomPin)
{
layout.Mem1000 = MemoryBusDesignation.RAM;
layout.Mem8000 = MemoryBusDesignation.RAM;
layout.MemA000 = MemoryBusDesignation.RAM;
layout.MemC000 = MemoryBusDesignation.RAM;
layout.MemD000 = ioEnable ? MemoryBusDesignation.IO : MemoryBusDesignation.Character;
layout.MemE000 = MemoryBusDesignation.RAM;
layout.Mem1000 = MemoryDesignation.RAM;
layout.Mem8000 = MemoryDesignation.RAM;
layout.MemA000 = MemoryDesignation.RAM;
layout.MemC000 = MemoryDesignation.RAM;
layout.MemD000 = ioEnable ? MemoryDesignation.IO : MemoryDesignation.Character;
layout.MemE000 = MemoryDesignation.RAM;
}
else if (loRom && !hiRom && !exRomPin && !gamePin)
{
layout.Mem1000 = MemoryBusDesignation.RAM;
layout.Mem8000 = MemoryBusDesignation.RAM;
layout.MemA000 = MemoryBusDesignation.RAM;
layout.MemC000 = MemoryBusDesignation.RAM;
layout.MemD000 = ioEnable ? MemoryBusDesignation.IO : MemoryBusDesignation.RAM;
layout.MemE000 = MemoryBusDesignation.RAM;
layout.Mem1000 = MemoryDesignation.RAM;
layout.Mem8000 = MemoryDesignation.RAM;
layout.MemA000 = MemoryDesignation.RAM;
layout.MemC000 = MemoryDesignation.RAM;
layout.MemD000 = ioEnable ? MemoryDesignation.IO : MemoryDesignation.RAM;
layout.MemE000 = MemoryDesignation.RAM;
}
else if ((!loRom && hiRom && gamePin) || (!loRom && !hiRom && !exRomPin))
{
layout.Mem1000 = MemoryBusDesignation.RAM;
layout.Mem8000 = MemoryBusDesignation.RAM;
layout.MemA000 = MemoryBusDesignation.RAM;
layout.MemC000 = MemoryBusDesignation.RAM;
layout.MemD000 = ioEnable ? MemoryBusDesignation.IO : MemoryBusDesignation.Character;
layout.MemE000 = MemoryBusDesignation.Kernal;
layout.Mem1000 = MemoryDesignation.RAM;
layout.Mem8000 = MemoryDesignation.RAM;
layout.MemA000 = MemoryDesignation.RAM;
layout.MemC000 = MemoryDesignation.RAM;
layout.MemD000 = ioEnable ? MemoryDesignation.IO : MemoryDesignation.Character;
layout.MemE000 = MemoryDesignation.Kernal;
}
else if (!loRom && !hiRom && gamePin)
{
layout.Mem1000 = MemoryBusDesignation.RAM;
layout.Mem8000 = MemoryBusDesignation.RAM;
layout.MemA000 = MemoryBusDesignation.RAM;
layout.MemC000 = MemoryBusDesignation.RAM;
layout.MemD000 = MemoryBusDesignation.RAM;
layout.MemE000 = MemoryBusDesignation.RAM;
layout.Mem1000 = MemoryDesignation.RAM;
layout.Mem8000 = MemoryDesignation.RAM;
layout.MemA000 = MemoryDesignation.RAM;
layout.MemC000 = MemoryDesignation.RAM;
layout.MemD000 = MemoryDesignation.RAM;
layout.MemE000 = MemoryDesignation.RAM;
}
else if (loRom && hiRom && gamePin && !exRomPin)
{
layout.Mem1000 = MemoryBusDesignation.RAM;
layout.Mem8000 = MemoryBusDesignation.ROMLo;
layout.MemA000 = MemoryBusDesignation.Basic;
layout.MemC000 = MemoryBusDesignation.RAM;
layout.MemD000 = ioEnable ? MemoryBusDesignation.IO : MemoryBusDesignation.Character;
layout.MemE000 = MemoryBusDesignation.Kernal;
layout.Mem1000 = MemoryDesignation.RAM;
layout.Mem8000 = MemoryDesignation.ROMLo;
layout.MemA000 = MemoryDesignation.Basic;
layout.MemC000 = MemoryDesignation.RAM;
layout.MemD000 = ioEnable ? MemoryDesignation.IO : MemoryDesignation.Character;
layout.MemE000 = MemoryDesignation.Kernal;
}
else if (!loRom && hiRom && !gamePin && !exRomPin)
{
layout.Mem1000 = MemoryBusDesignation.RAM;
layout.Mem8000 = MemoryBusDesignation.RAM;
layout.MemA000 = MemoryBusDesignation.ROMHi;
layout.MemC000 = MemoryBusDesignation.RAM;
layout.MemD000 = ioEnable ? MemoryBusDesignation.IO : MemoryBusDesignation.Character;
layout.MemE000 = MemoryBusDesignation.Kernal;
layout.Mem1000 = MemoryDesignation.RAM;
layout.Mem8000 = MemoryDesignation.RAM;
layout.MemA000 = MemoryDesignation.ROMHi;
layout.MemC000 = MemoryDesignation.RAM;
layout.MemD000 = ioEnable ? MemoryDesignation.IO : MemoryDesignation.Character;
layout.MemE000 = MemoryDesignation.Kernal;
}
else if (loRom && hiRom && !gamePin && !exRomPin)
{
layout.Mem1000 = MemoryBusDesignation.RAM;
layout.Mem8000 = MemoryBusDesignation.ROMLo;
layout.MemA000 = MemoryBusDesignation.ROMHi;
layout.MemC000 = MemoryBusDesignation.RAM;
layout.MemD000 = ioEnable ? MemoryBusDesignation.IO : MemoryBusDesignation.Character;
layout.MemE000 = MemoryBusDesignation.Kernal;
layout.Mem1000 = MemoryDesignation.RAM;
layout.Mem8000 = MemoryDesignation.ROMLo;
layout.MemA000 = MemoryDesignation.ROMHi;
layout.MemC000 = MemoryDesignation.RAM;
layout.MemD000 = ioEnable ? MemoryDesignation.IO : MemoryDesignation.Character;
layout.MemE000 = MemoryDesignation.Kernal;
}
else if (!gamePin && exRomPin)
{
layout.Mem1000 = MemoryBusDesignation.Disabled;
layout.Mem8000 = MemoryBusDesignation.ROMLo;
layout.MemA000 = MemoryBusDesignation.Disabled;
layout.MemC000 = MemoryBusDesignation.Disabled;
layout.MemD000 = MemoryBusDesignation.IO;
layout.MemE000 = MemoryBusDesignation.ROMHi;
layout.Mem1000 = MemoryDesignation.Disabled;
layout.Mem8000 = MemoryDesignation.ROMLo;
layout.MemA000 = MemoryDesignation.Disabled;
layout.MemC000 = MemoryDesignation.Disabled;
layout.MemD000 = MemoryDesignation.IO;
layout.MemE000 = MemoryDesignation.ROMHi;
}
}
@ -444,30 +444,30 @@ namespace BizHawk.Emulation.Computers.Commodore64
}
else
{
MemoryBusDesignation des = GetDesignation(addr);
MemoryDesignation des = GetDesignation(addr);
switch (des)
{
case MemoryBusDesignation.Vic:
case MemoryDesignation.Vic:
vic.Write(addr, val);
break;
case MemoryBusDesignation.Sid:
case MemoryDesignation.Sid:
sid.Write(addr, val);
break;
case MemoryBusDesignation.ColorRam:
case MemoryDesignation.ColorRam:
colorRam[addr & 0x03FF] = (byte)(val & 0x0F);
break;
case MemoryBusDesignation.Cia1:
case MemoryDesignation.Cia1:
cia1.Write(addr, val);
break;
case MemoryBusDesignation.Cia2:
case MemoryDesignation.Cia2:
cia2.Write(addr, val);
break;
case MemoryBusDesignation.Expansion1:
case MemoryDesignation.Expansion1:
break;
case MemoryBusDesignation.Expansion2:
case MemoryDesignation.Expansion2:
break;
case MemoryBusDesignation.RAM:
case MemoryDesignation.RAM:
ram[addr] = val;
break;
default: