From 405af35d72b7617aa17fd4d0244a52d86668801a Mon Sep 17 00:00:00 2001 From: pjgat09 Date: Thu, 8 Mar 2012 08:12:44 +0000 Subject: [PATCH] Started work on Atari 2600 core. Added stubs for the TIA and M6532 to be filled in later. Memory map is hard coded, but will only work for basic 4K carts like pitfall. That'll have to be changed later. --- BizHawk.Emulation/BizHawk.Emulation.csproj | 2 + .../Consoles/Atari/2600/Atari2600.Core.cs | 112 +++- .../Consoles/Atari/2600/Atari2600.cs | 1 + .../Consoles/Atari/2600/M6532.cs | 56 ++ BizHawk.Emulation/Consoles/Atari/2600/TIA.cs | 32 + .../Consoles/Atari/docs/2600_mem_map.txt | 634 ++++++++++++++++++ 6 files changed, 832 insertions(+), 5 deletions(-) create mode 100644 BizHawk.Emulation/Consoles/Atari/2600/M6532.cs create mode 100644 BizHawk.Emulation/Consoles/Atari/2600/TIA.cs create mode 100644 BizHawk.Emulation/Consoles/Atari/docs/2600_mem_map.txt diff --git a/BizHawk.Emulation/BizHawk.Emulation.csproj b/BizHawk.Emulation/BizHawk.Emulation.csproj index b03df25588..29f72a42ef 100644 --- a/BizHawk.Emulation/BizHawk.Emulation.csproj +++ b/BizHawk.Emulation/BizHawk.Emulation.csproj @@ -78,6 +78,8 @@ + + diff --git a/BizHawk.Emulation/Consoles/Atari/2600/Atari2600.Core.cs b/BizHawk.Emulation/Consoles/Atari/2600/Atari2600.Core.cs index 170c56c9c1..960fabecda 100644 --- a/BizHawk.Emulation/Consoles/Atari/2600/Atari2600.Core.cs +++ b/BizHawk.Emulation/Consoles/Atari/2600/Atari2600.Core.cs @@ -1,40 +1,142 @@ using System; using System.Collections.Generic; using System.IO; +using BizHawk.Emulation.CPUs.M6502; +using BizHawk.Emulation.Consoles.Atari; namespace BizHawk { partial class Atari2600 { - public byte[] ram = new byte[128]; public byte[] rom; - public BizHawk.Emulation.CPUs.M6502.MOS6502 cpu; + public MOS6502 cpu; + public M6532 m6532; + public TIA tia; + // The Atari 2600 memory mapper looks something like this...usually + + // N/A Page # + // 000 0000000 000000 + + // 0x0000-0x003F - TIA Registers + // 0x0040-0x007F - TIA Registers (mirror) + // 0x0080-0x00FF - 6532 RAM + + // 0x0100-0x01FF - Mirror of 0x00FF + + // 0x0200-0x023F - TIA Registers (mirror) + // 0x0240-0x027F - TIA Registers (mirror) + + // 0x0280-0x029F - 6532 Registers + // 0x02A0-0x02BF - 6532 Registers (mirror) + // 0x02C0-0x02DF - 6532 Registers (mirror) + // 0x02E0-0x02FF - 6532 Registers (mirror) + + // 0x0300-0x033F - TIA Registers (mirror) + // 0x0340-0x037F - TIA Registers (mirror) + + // 0x0380-0x039F - 6532 Registers (mirror) + // 0x03A0-0x03BF - 6532 Registers (mirror) + // 0x03C0-0x03DF - 6532 Registers (mirror) + // 0x03E0-0x03FF - 6532 Registers (mirror) + + // 0x0400-0x07FF - Mirror of 0x0000-0x03FF + // 0x0800-0x0BFF - Mirror of 0x0000-0x03FF + // 0x0C00-0x0FFF - Mirror of 0x0000-0x03FF + + // 0x1000-0x1FFF - ROM + + // If page# % 4 == 0 or 1, TIA + // If page# % 4 == 2 or 3, 6532 + // if (addr & 0x0200 == 0x0000 && addr & 0x1080 == 0x0080) + // RAM + // else + // registers + // else + // ROM + public byte ReadMemory(ushort addr) { - return 0xFF; + ushort maskedAddr = (ushort)(addr & 0x1FFF); + ushort pageNum = (ushort)(maskedAddr >> 6); + if (pageNum < 0x40) + { + // if Page 0x02, or a mirror + if (pageNum % 4 > 1) + { + return m6532.ReadMemory(maskedAddr); + } + // if Page 0x01 or 0x02, or a mirror + else + { + return tia.ReadMemory(maskedAddr); + } + } + // ROM data + else + { + Console.WriteLine("ROM read"); + return rom[maskedAddr & 0x0FFF]; + } } public void WriteMemory(ushort addr, byte value) { + ushort maskedAddr = (ushort)(addr & 0x1FFF); + ushort pageNum = (ushort)(maskedAddr >> 6); + if (pageNum < 0x40) + { + if (pageNum % 4 > 1) + { + m6532.WriteMemory(maskedAddr, value); + } + else + { + tia.WriteMemory(maskedAddr, value); + } + } + // ROM data + else + { + Console.WriteLine("ROM write(?): " + addr.ToString("x")); + } } public void HardReset() { cpu = new Emulation.CPUs.M6502.MOS6502(); + cpu.debug = true; cpu.ReadMemory = ReadMemory; cpu.WriteMemory = WriteMemory; + // Setup TIA + tia = new TIA(cpu); + // Setup 6532 + m6532 = new M6532(cpu, ram); + //setup the system state here. for instance.. - cpu.PC = 0x0123; //set the initial PC + // Read from the reset vector for where to start + cpu.PC = (ushort)(ReadMemory(0xFFFC) + (ReadMemory(0xFFFD) << 8)); //set the initial PC + //cpu.PC = 0x0000; //set the initial PC } public void FrameAdvance(bool render) { + Frame++; + //cpu.Execute(228); + cpu.Execute(1); //clear the framebuffer (hack code) if (render == false) return; for (int i = 0; i < 256 * 192; i++) - frameBuffer[i] = 0; //black + { + if (i < 64*256) + frameBuffer[i] = i % 256; //black + if (i >= 64*256 && i < 128*256) + frameBuffer[i] = (i % 256) << 8; //black + if (i >= 128*256) + frameBuffer[i] = (i % 256) << 16; //black + } + //run one frame's worth of cpu cyclees (i.e. do the emulation!) //this should generate the framebuffer as it goes. diff --git a/BizHawk.Emulation/Consoles/Atari/2600/Atari2600.cs b/BizHawk.Emulation/Consoles/Atari/2600/Atari2600.cs index 8bf4e57451..5988b20362 100644 --- a/BizHawk.Emulation/Consoles/Atari/2600/Atari2600.cs +++ b/BizHawk.Emulation/Consoles/Atari/2600/Atari2600.cs @@ -13,6 +13,7 @@ namespace BizHawk public CoreOutputComm CoreOutputComm { get; private set; } public IVideoProvider VideoProvider { get { return this; } } public ISoundProvider SoundProvider { get { return this; } } + public byte[] ram = new byte[128]; public Atari2600(GameInfo game, byte[] rom) { var domains = new List(1); diff --git a/BizHawk.Emulation/Consoles/Atari/2600/M6532.cs b/BizHawk.Emulation/Consoles/Atari/2600/M6532.cs new file mode 100644 index 0000000000..589bd5cb29 --- /dev/null +++ b/BizHawk.Emulation/Consoles/Atari/2600/M6532.cs @@ -0,0 +1,56 @@ +using System; +using System.Globalization; +using System.IO; +using BizHawk.Emulation.CPUs.M6502; + +namespace BizHawk.Emulation.Consoles.Atari +{ + // Emulates the M6532 RIOT Chip + public partial class M6532 + { + MOS6502 Cpu; + public byte[] ram; + + public M6532(MOS6502 cpu, byte[] ram) + { + Cpu = cpu; + this.ram = ram; + } + + public byte ReadMemory(ushort addr) + { + ushort maskedAddr; + + if ((addr & 0x1080) == 0x0080 && (addr & 0x0200) == 0x0000) + { + maskedAddr = (ushort)(addr & 0x007f); + Console.WriteLine("6532 ram read: " + maskedAddr.ToString("x")); + return ram[maskedAddr]; + } + else + { + maskedAddr = (ushort)(addr & 0x0007); + Console.WriteLine("6532 register read: " + maskedAddr.ToString("x")); + } + + return 0x3A; + } + + public void WriteMemory(ushort addr, byte value) + { + ushort maskedAddr; + + if ((addr & 0x1080) == 0x0080 && (addr & 0x0200) == 0x0000) + { + maskedAddr = (ushort)(addr & 0x007f); + Console.WriteLine("6532 ram write: " + maskedAddr.ToString("x")); + ram[maskedAddr] = value; + } + else + { + maskedAddr = (ushort)(addr & 0x0007); + Console.WriteLine("6532 register write: " + maskedAddr.ToString("x")); + } + } + } +} \ No newline at end of file diff --git a/BizHawk.Emulation/Consoles/Atari/2600/TIA.cs b/BizHawk.Emulation/Consoles/Atari/2600/TIA.cs new file mode 100644 index 0000000000..f4da0a458f --- /dev/null +++ b/BizHawk.Emulation/Consoles/Atari/2600/TIA.cs @@ -0,0 +1,32 @@ +using System; +using System.Globalization; +using System.IO; +using BizHawk.Emulation.CPUs.M6502; + +namespace BizHawk.Emulation.Consoles.Atari +{ + // Emulates the M6532 RIOT Chip + public partial class TIA + { + MOS6502 Cpu; + + public TIA(MOS6502 cpu) + { + Cpu = cpu; + } + + public byte ReadMemory(ushort addr) + { + ushort maskedAddr = (ushort)(addr & 0x3f); + Console.WriteLine("TIA read: " + maskedAddr.ToString("x")); + + return 0x3A; + } + + public void WriteMemory(ushort addr, byte value) + { + ushort maskedAddr = (ushort)(addr & 0x3f); + Console.WriteLine("TIA write: " + maskedAddr.ToString("x")); + } + } +} \ No newline at end of file diff --git a/BizHawk.Emulation/Consoles/Atari/docs/2600_mem_map.txt b/BizHawk.Emulation/Consoles/Atari/docs/2600_mem_map.txt new file mode 100644 index 0000000000..25f3a713f5 --- /dev/null +++ b/BizHawk.Emulation/Consoles/Atari/docs/2600_mem_map.txt @@ -0,0 +1,634 @@ +Obtained from: http://www.romhacking.net/documents/470/ + +*************************************************** +* $0000-$003F = TIA Addresses $00-$3F (zero page) * +* ----------------------------------------------- * +* * +* mirror: $xyz0 * +* * +* x = {even} * +* y = {anything} * +* z = {0, 4} * +* * +*************************************************** + +************************************** +* $0080-$00FF = RIOT RAM (zero page) * +* ---------------------------------- * +* * +* mirror: $xy80 * +* * +* x = {even} * +* y = {0,1,4,5,8,9,$C,$D} * +* * +************************************** + +**************************************** +* $0280-$029F = RIOT Addresses $00-$1F * +* ------------------------------------ * +* * +* mirror: $xyz0 * +* * +* x = {even} * +* y = {2,3,6,7,$A,$B,$E,$F} * +* z = {8,$A,$C,$E} * +* * +**************************************** + +***************************************** +* $1000-$1FFF = ROM Addresses $000-$FFF * +* ------------------------------------- * +* * +* mirror: $x000 * +* * +* x = {odd} * +* * +***************************************** + + +Mirrors: + +$0000-$003F = TIA Addresses $00-$3F (zero page) +$0040-$007F = TIA Addresses $00-$3F (mirror) +$0080-$00FF = RIOT RAM (zero page) +$0100-$013F = TIA Addresses $00-$3F (mirror) +$0140-$017F = TIA Addresses $00-$3F (mirror) +$0180-$01FF = RIOT RAM (mirror) +$0200-$023F = TIA Addresses $00-$3F (mirror) +$0240-$027F = TIA Addresses $00-$3F (mirror) +$0280-$029F = RIOT Addresses $00-$1F +$02A0-$02BF = RIOT Addresses $00-$1F (mirror) +$02C0-$02DF = RIOT Addresses $00-$1F (mirror) +$02E0-$02FF = RIOT Addresses $00-$1F (mirror) +$0300-$033F = TIA Addresses $00-$3F (mirror) +$0340-$037F = TIA Addresses $00-$3F (mirror) +$0380-$039F = RIOT Addresses $00-$1F (mirror) +$03A0-$03BF = RIOT Addresses $00-$1F (mirror) +$03C0-$03DF = RIOT Addresses $00-$1F (mirror) +$03E0-$03FF = RIOT Addresses $00-$1F (mirror) +$0400-$043F = TIA Addresses $00-$3F (mirror) +$0440-$047F = TIA Addresses $00-$3F (mirror) +$0480-$04FF = RIOT RAM (mirror) +$0500-$053F = TIA Addresses $00-$3F (mirror) +$0540-$057F = TIA Addresses $00-$3F (mirror) +$0580-$05FF = RIOT RAM (mirror) +$0600-$063F = TIA Addresses $00-$3F (mirror) +$0640-$067F = TIA Addresses $00-$3F (mirror) +$0680-$069F = RIOT Addresses $00-$1F (mirror) +$06A0-$06BF = RIOT Addresses $00-$1F (mirror) +$06C0-$06DF = RIOT Addresses $00-$1F (mirror) +$06E0-$06FF = RIOT Addresses $00-$1F (mirror) +$0700-$073F = TIA Addresses $00-$3F (mirror) +$0740-$077F = TIA Addresses $00-$3F (mirror) +$0780-$079F = RIOT Addresses $00-$1F (mirror) +$07A0-$07BF = RIOT Addresses $00-$1F (mirror) +$07C0-$07DF = RIOT Addresses $00-$1F (mirror) +$07E0-$07FF = RIOT Addresses $00-$1F (mirror) +$0800-$083F = TIA Addresses $00-$3F (mirror) +$0840-$087F = TIA Addresses $00-$3F (mirror) +$0880-$08FF = RIOT RAM (mirror) +$0900-$093F = TIA Addresses $00-$3F (mirror) +$0940-$097F = TIA Addresses $00-$3F (mirror) +$0980-$09FF = RIOT RAM (mirror) +$0A00-$0A3F = TIA Addresses $00-$3F (mirror) +$0A40-$0A7F = TIA Addresses $00-$3F (mirror) +$0A80-$0A9F = RIOT Addresses $00-$1F (mirror) +$0AA0-$0ABF = RIOT Addresses $00-$1F (mirror) +$0AC0-$0ADF = RIOT Addresses $00-$1F (mirror) +$0AE0-$0AFF = RIOT Addresses $00-$1F (mirror) +$0B00-$0B3F = TIA Addresses $00-$3F (mirror) +$0B40-$0B7F = TIA Addresses $00-$3F (mirror) +$0B80-$0B9F = RIOT Addresses $00-$1F (mirror) +$0BA0-$0BBF = RIOT Addresses $00-$1F (mirror) +$0BC0-$0BDF = RIOT Addresses $00-$1F (mirror) +$0BE0-$0BFF = RIOT Addresses $00-$1F (mirror) +$0C00-$0C3F = TIA Addresses $00-$3F (mirror) +$0C40-$0C7F = TIA Addresses $00-$3F (mirror) +$0C80-$0CFF = RIOT RAM (mirror) +$0D00-$0D3F = TIA Addresses $00-$3F (mirror) +$0D40-$0D7F = TIA Addresses $00-$3F (mirror) +$0D80-$0DFF = RIOT RAM (mirror) +$0E00-$0E3F = TIA Addresses $00-$3F (mirror) +$0E40-$0E7F = TIA Addresses $00-$3F (mirror) +$0E80-$0E9F = RIOT Addresses $00-$1F (mirror) +$0EA0-$0EBF = RIOT Addresses $00-$1F (mirror) +$0EC0-$0EDF = RIOT Addresses $00-$1F (mirror) +$0EE0-$0EFF = RIOT Addresses $00-$1F (mirror) +$0F00-$0F3F = TIA Addresses $00-$3F (mirror) +$0F40-$0F7F = TIA Addresses $00-$3F (mirror) +$0F80-$0F9F = RIOT Addresses $00-$1F (mirror) +$0FA0-$0FBF = RIOT Addresses $00-$1F (mirror) +$0FC0-$0FDF = RIOT Addresses $00-$1F (mirror) +$0FE0-$0FFF = RIOT Addresses $00-$1F (mirror) +$1000-$1FFF = ROM Addresses $000-$FFF +$2000-$203F = TIA Addresses $00-$3F (mirror) +$2040-$207F = TIA Addresses $00-$3F (mirror) +$2080-$20FF = RIOT RAM (mirror) +$2100-$213F = TIA Addresses $00-$3F (mirror) +$2140-$217F = TIA Addresses $00-$3F (mirror) +$2180-$21FF = RIOT RAM (mirror) +$2200-$223F = TIA Addresses $00-$3F (mirror) +$2240-$227F = TIA Addresses $00-$3F (mirror) +$2280-$229F = RIOT Addresses $00-$1F (mirror) +$22A0-$22BF = RIOT Addresses $00-$1F (mirror) +$22C0-$22DF = RIOT Addresses $00-$1F (mirror) +$22E0-$22FF = RIOT Addresses $00-$1F (mirror) +$2300-$233F = TIA Addresses $00-$3F (mirror) +$2340-$237F = TIA Addresses $00-$3F (mirror) +$2380-$239F = RIOT Addresses $00-$1F (mirror) +$23A0-$23BF = RIOT Addresses $00-$1F (mirror) +$23C0-$23DF = RIOT Addresses $00-$1F (mirror) +$23E0-$23FF = RIOT Addresses $00-$1F (mirror) +$2400-$243F = TIA Addresses $00-$3F (mirror) +$2440-$247F = TIA Addresses $00-$3F (mirror) +$2480-$24FF = RIOT RAM (mirror) +$2500-$253F = TIA Addresses $00-$3F (mirror) +$2540-$257F = TIA Addresses $00-$3F (mirror) +$2580-$25FF = RIOT RAM (mirror) +$2600-$263F = TIA Addresses $00-$3F (mirror) +$2640-$267F = TIA Addresses $00-$3F (mirror) +$2680-$269F = RIOT Addresses $00-$1F (mirror) +$26A0-$26BF = RIOT Addresses $00-$1F (mirror) +$26C0-$26DF = RIOT Addresses $00-$1F (mirror) +$26E0-$26FF = RIOT Addresses $00-$1F (mirror) +$2700-$273F = TIA Addresses $00-$3F (mirror) +$2740-$277F = TIA Addresses $00-$3F (mirror) +$2780-$279F = RIOT Addresses $00-$1F (mirror) +$27A0-$27BF = RIOT Addresses $00-$1F (mirror) +$27C0-$27DF = RIOT Addresses $00-$1F (mirror) +$27E0-$27FF = RIOT Addresses $00-$1F (mirror) +$2800-$283F = TIA Addresses $00-$3F (mirror) +$2840-$287F = TIA Addresses $00-$3F (mirror) +$2880-$28FF = RIOT RAM (mirror) +$2900-$293F = TIA Addresses $00-$3F (mirror) +$2940-$297F = TIA Addresses $00-$3F (mirror) +$2980-$29FF = RIOT RAM (mirror) +$2A00-$2A3F = TIA Addresses $00-$3F (mirror) +$2A40-$2A7F = TIA Addresses $00-$3F (mirror) +$2A80-$2A9F = RIOT Addresses $00-$1F (mirror) +$2AA0-$2ABF = RIOT Addresses $00-$1F (mirror) +$2AC0-$2ADF = RIOT Addresses $00-$1F (mirror) +$2AE0-$2AFF = RIOT Addresses $00-$1F (mirror) +$2B00-$2B3F = TIA Addresses $00-$3F (mirror) +$2B40-$2B7F = TIA Addresses $00-$3F (mirror) +$2B80-$2B9F = RIOT Addresses $00-$1F (mirror) +$2BA0-$2BBF = RIOT Addresses $00-$1F (mirror) +$2BC0-$2BDF = RIOT Addresses $00-$1F (mirror) +$2BE0-$2BFF = RIOT Addresses $00-$1F (mirror) +$2C00-$2C3F = TIA Addresses $00-$3F (mirror) +$2C40-$2C7F = TIA Addresses $00-$3F (mirror) +$2C80-$2CFF = RIOT RAM (mirror) +$2D00-$2D3F = TIA Addresses $00-$3F (mirror) +$2D40-$2D7F = TIA Addresses $00-$3F (mirror) +$2D80-$2DFF = RIOT RAM (mirror) +$2E00-$2E3F = TIA Addresses $00-$3F (mirror) +$2E40-$2E7F = TIA Addresses $00-$3F (mirror) +$2E80-$2E9F = RIOT Addresses $00-$1F (mirror) +$2EA0-$2EBF = RIOT Addresses $00-$1F (mirror) +$2EC0-$2EDF = RIOT Addresses $00-$1F (mirror) +$2EE0-$2EFF = RIOT Addresses $00-$1F (mirror) +$2F00-$2F3F = TIA Addresses $00-$3F (mirror) +$2F40-$2F7F = TIA Addresses $00-$3F (mirror) +$2F80-$2F9F = RIOT Addresses $00-$1F (mirror) +$2FA0-$2FBF = RIOT Addresses $00-$1F (mirror) +$2FC0-$2FDF = RIOT Addresses $00-$1F (mirror) +$2FE0-$2FFF = RIOT Addresses $00-$1F (mirror) +$3000-$3FFF = ROM Addresses $000-$FFF (mirror) +$4000-$403F = TIA Addresses $00-$3F (mirror) +$4040-$407F = TIA Addresses $00-$3F (mirror) +$4080-$40FF = RIOT RAM (mirror) +$4100-$413F = TIA Addresses $00-$3F (mirror) +$4140-$417F = TIA Addresses $00-$3F (mirror) +$4180-$41FF = RIOT RAM (mirror) +$4200-$423F = TIA Addresses $00-$3F (mirror) +$4240-$427F = TIA Addresses $00-$3F (mirror) +$4280-$429F = RIOT Addresses $00-$1F (mirror) +$42A0-$42BF = RIOT Addresses $00-$1F (mirror) +$42C0-$42DF = RIOT Addresses $00-$1F (mirror) +$42E0-$42FF = RIOT Addresses $00-$1F (mirror) +$4300-$433F = TIA Addresses $00-$3F (mirror) +$4340-$437F = TIA Addresses $00-$3F (mirror) +$4380-$439F = RIOT Addresses $00-$1F (mirror) +$43A0-$43BF = RIOT Addresses $00-$1F (mirror) +$43C0-$43DF = RIOT Addresses $00-$1F (mirror) +$43E0-$43FF = RIOT Addresses $00-$1F (mirror) +$4400-$443F = TIA Addresses $00-$3F (mirror) +$4440-$447F = TIA Addresses $00-$3F (mirror) +$4480-$44FF = RIOT RAM (mirror) +$4500-$453F = TIA Addresses $00-$3F (mirror) +$4540-$457F = TIA Addresses $00-$3F (mirror) +$4580-$45FF = RIOT RAM (mirror) +$4600-$463F = TIA Addresses $00-$3F (mirror) +$4640-$467F = TIA Addresses $00-$3F (mirror) +$4680-$469F = RIOT Addresses $00-$1F (mirror) +$46A0-$46BF = RIOT Addresses $00-$1F (mirror) +$46C0-$46DF = RIOT Addresses $00-$1F (mirror) +$46E0-$46FF = RIOT Addresses $00-$1F (mirror) +$4700-$473F = TIA Addresses $00-$3F (mirror) +$4740-$477F = TIA Addresses $00-$3F (mirror) +$4780-$479F = RIOT Addresses $00-$1F (mirror) +$47A0-$47BF = RIOT Addresses $00-$1F (mirror) +$47C0-$47DF = RIOT Addresses $00-$1F (mirror) +$47E0-$47FF = RIOT Addresses $00-$1F (mirror) +$4800-$483F = TIA Addresses $00-$3F (mirror) +$4840-$487F = TIA Addresses $00-$3F (mirror) +$4880-$48FF = RIOT RAM (mirror) +$4900-$493F = TIA Addresses $00-$3F (mirror) +$4940-$497F = TIA Addresses $00-$3F (mirror) +$4980-$49FF = RIOT RAM (mirror) +$4A00-$4A3F = TIA Addresses $00-$3F (mirror) +$4A40-$4A7F = TIA Addresses $00-$3F (mirror) +$4A80-$4A9F = RIOT Addresses $00-$1F (mirror) +$4AA0-$4ABF = RIOT Addresses $00-$1F (mirror) +$4AC0-$4ADF = RIOT Addresses $00-$1F (mirror) +$4AE0-$4AFF = RIOT Addresses $00-$1F (mirror) +$4B00-$4B3F = TIA Addresses $00-$3F (mirror) +$4B40-$4B7F = TIA Addresses $00-$3F (mirror) +$4B80-$4B9F = RIOT Addresses $00-$1F (mirror) +$4BA0-$4BBF = RIOT Addresses $00-$1F (mirror) +$4BC0-$4BDF = RIOT Addresses $00-$1F (mirror) +$4BE0-$4BFF = RIOT Addresses $00-$1F (mirror) +$4C00-$4C3F = TIA Addresses $00-$3F (mirror) +$4C40-$4C7F = TIA Addresses $00-$3F (mirror) +$4C80-$4CFF = RIOT RAM (mirror) +$4D00-$4D3F = TIA Addresses $00-$3F (mirror) +$4D40-$4D7F = TIA Addresses $00-$3F (mirror) +$4D80-$4DFF = RIOT RAM (mirror) +$4E00-$4E3F = TIA Addresses $00-$3F (mirror) +$4E40-$4E7F = TIA Addresses $00-$3F (mirror) +$4E80-$4E9F = RIOT Addresses $00-$1F (mirror) +$4EA0-$4EBF = RIOT Addresses $00-$1F (mirror) +$4EC0-$4EDF = RIOT Addresses $00-$1F (mirror) +$4EE0-$4EFF = RIOT Addresses $00-$1F (mirror) +$4F00-$4F3F = TIA Addresses $00-$3F (mirror) +$4F40-$4F7F = TIA Addresses $00-$3F (mirror) +$4F80-$4F9F = RIOT Addresses $00-$1F (mirror) +$4FA0-$4FBF = RIOT Addresses $00-$1F (mirror) +$4FC0-$4FDF = RIOT Addresses $00-$1F (mirror) +$4FE0-$4FFF = RIOT Addresses $00-$1F (mirror) +$5000-$5FFF = ROM Addresses $000-$FFF (mirror) +$6000-$603F = TIA Addresses $00-$3F (mirror) +$6040-$607F = TIA Addresses $00-$3F (mirror) +$6080-$60FF = RIOT RAM (mirror) +$6100-$613F = TIA Addresses $00-$3F (mirror) +$6140-$617F = TIA Addresses $00-$3F (mirror) +$6180-$61FF = RIOT RAM (mirror) +$6200-$623F = TIA Addresses $00-$3F (mirror) +$6240-$627F = TIA Addresses $00-$3F (mirror) +$6280-$629F = RIOT Addresses $00-$1F (mirror) +$62A0-$62BF = RIOT Addresses $00-$1F (mirror) +$62C0-$62DF = RIOT Addresses $00-$1F (mirror) +$62E0-$62FF = RIOT Addresses $00-$1F (mirror) +$6300-$633F = TIA Addresses $00-$3F (mirror) +$6340-$637F = TIA Addresses $00-$3F (mirror) +$6380-$639F = RIOT Addresses $00-$1F (mirror) +$63A0-$63BF = RIOT Addresses $00-$1F (mirror) +$63C0-$63DF = RIOT Addresses $00-$1F (mirror) +$63E0-$63FF = RIOT Addresses $00-$1F (mirror) +$6400-$643F = TIA Addresses $00-$3F (mirror) +$6440-$647F = TIA Addresses $00-$3F (mirror) +$6480-$64FF = RIOT RAM (mirror) +$6500-$653F = TIA Addresses $00-$3F (mirror) +$6540-$657F = TIA Addresses $00-$3F (mirror) +$6580-$65FF = RIOT RAM (mirror) +$6600-$663F = TIA Addresses $00-$3F (mirror) +$6640-$667F = TIA Addresses $00-$3F (mirror) +$6680-$669F = RIOT Addresses $00-$1F (mirror) +$66A0-$66BF = RIOT Addresses $00-$1F (mirror) +$66C0-$66DF = RIOT Addresses $00-$1F (mirror) +$66E0-$66FF = RIOT Addresses $00-$1F (mirror) +$6700-$673F = TIA Addresses $00-$3F (mirror) +$6740-$677F = TIA Addresses $00-$3F (mirror) +$6780-$679F = RIOT Addresses $00-$1F (mirror) +$67A0-$67BF = RIOT Addresses $00-$1F (mirror) +$67C0-$67DF = RIOT Addresses $00-$1F (mirror) +$67E0-$67FF = RIOT Addresses $00-$1F (mirror) +$6800-$683F = TIA Addresses $00-$3F (mirror) +$6840-$687F = TIA Addresses $00-$3F (mirror) +$6880-$68FF = RIOT RAM (mirror) +$6900-$693F = TIA Addresses $00-$3F (mirror) +$6940-$697F = TIA Addresses $00-$3F (mirror) +$6980-$69FF = RIOT RAM (mirror) +$6A00-$6A3F = TIA Addresses $00-$3F (mirror) +$6A40-$6A7F = TIA Addresses $00-$3F (mirror) +$6A80-$6A9F = RIOT Addresses $00-$1F (mirror) +$6AA0-$6ABF = RIOT Addresses $00-$1F (mirror) +$6AC0-$6ADF = RIOT Addresses $00-$1F (mirror) +$6AE0-$6AFF = RIOT Addresses $00-$1F (mirror) +$6B00-$6B3F = TIA Addresses $00-$3F (mirror) +$6B40-$6B7F = TIA Addresses $00-$3F (mirror) +$6B80-$6B9F = RIOT Addresses $00-$1F (mirror) +$6BA0-$6BBF = RIOT Addresses $00-$1F (mirror) +$6BC0-$6BDF = RIOT Addresses $00-$1F (mirror) +$6BE0-$6BFF = RIOT Addresses $00-$1F (mirror) +$6C00-$6C3F = TIA Addresses $00-$3F (mirror) +$6C40-$6C7F = TIA Addresses $00-$3F (mirror) +$6C80-$6CFF = RIOT RAM (mirror) +$6D00-$6D3F = TIA Addresses $00-$3F (mirror) +$6D40-$6D7F = TIA Addresses $00-$3F (mirror) +$6D80-$6DFF = RIOT RAM (mirror) +$6E00-$6E3F = TIA Addresses $00-$3F (mirror) +$6E40-$6E7F = TIA Addresses $00-$3F (mirror) +$6E80-$6E9F = RIOT Addresses $00-$1F (mirror) +$6EA0-$6EBF = RIOT Addresses $00-$1F (mirror) +$6EC0-$6EDF = RIOT Addresses $00-$1F (mirror) +$6EE0-$6EFF = RIOT Addresses $00-$1F (mirror) +$6F00-$6F3F = TIA Addresses $00-$3F (mirror) +$6F40-$6F7F = TIA Addresses $00-$3F (mirror) +$6F80-$6F9F = RIOT Addresses $00-$1F (mirror) +$6FA0-$6FBF = RIOT Addresses $00-$1F (mirror) +$6FC0-$6FDF = RIOT Addresses $00-$1F (mirror) +$6FE0-$6FFF = RIOT Addresses $00-$1F (mirror) +$7000-$7FFF = ROM Addresses $000-$FFF (mirror) +$8000-$803F = TIA Addresses $00-$3F (mirror) +$8040-$807F = TIA Addresses $00-$3F (mirror) +$8080-$80FF = RIOT RAM (mirror) +$8100-$813F = TIA Addresses $00-$3F (mirror) +$8140-$817F = TIA Addresses $00-$3F (mirror) +$8180-$81FF = RIOT RAM (mirror) +$8200-$823F = TIA Addresses $00-$3F (mirror) +$8240-$827F = TIA Addresses $00-$3F (mirror) +$8280-$829F = RIOT Addresses $00-$1F (mirror) +$82A0-$82BF = RIOT Addresses $00-$1F (mirror) +$82C0-$82DF = RIOT Addresses $00-$1F (mirror) +$82E0-$82FF = RIOT Addresses $00-$1F (mirror) +$8300-$833F = TIA Addresses $00-$3F (mirror) +$8340-$837F = TIA Addresses $00-$3F (mirror) +$8380-$839F = RIOT Addresses $00-$1F (mirror) +$83A0-$83BF = RIOT Addresses $00-$1F (mirror) +$83C0-$83DF = RIOT Addresses $00-$1F (mirror) +$83E0-$83FF = RIOT Addresses $00-$1F (mirror) +$8400-$843F = TIA Addresses $00-$3F (mirror) +$8440-$847F = TIA Addresses $00-$3F (mirror) +$8480-$84FF = RIOT RAM (mirror) +$8500-$853F = TIA Addresses $00-$3F (mirror) +$8540-$857F = TIA Addresses $00-$3F (mirror) +$8580-$85FF = RIOT RAM (mirror) +$8600-$863F = TIA Addresses $00-$3F (mirror) +$8640-$867F = TIA Addresses $00-$3F (mirror) +$8680-$869F = RIOT Addresses $00-$1F (mirror) +$86A0-$86BF = RIOT Addresses $00-$1F (mirror) +$86C0-$86DF = RIOT Addresses $00-$1F (mirror) +$86E0-$86FF = RIOT Addresses $00-$1F (mirror) +$8700-$873F = TIA Addresses $00-$3F (mirror) +$8740-$877F = TIA Addresses $00-$3F (mirror) +$8780-$879F = RIOT Addresses $00-$1F (mirror) +$87A0-$87BF = RIOT Addresses $00-$1F (mirror) +$87C0-$87DF = RIOT Addresses $00-$1F (mirror) +$87E0-$87FF = RIOT Addresses $00-$1F (mirror) +$8800-$883F = TIA Addresses $00-$3F (mirror) +$8840-$887F = TIA Addresses $00-$3F (mirror) +$8880-$88FF = RIOT RAM (mirror) +$8900-$893F = TIA Addresses $00-$3F (mirror) +$8940-$897F = TIA Addresses $00-$3F (mirror) +$8980-$89FF = RIOT RAM (mirror) +$8A00-$8A3F = TIA Addresses $00-$3F (mirror) +$8A40-$8A7F = TIA Addresses $00-$3F (mirror) +$8A80-$8A9F = RIOT Addresses $00-$1F (mirror) +$8AA0-$8ABF = RIOT Addresses $00-$1F (mirror) +$8AC0-$8ADF = RIOT Addresses $00-$1F (mirror) +$8AE0-$8AFF = RIOT Addresses $00-$1F (mirror) +$8B00-$8B3F = TIA Addresses $00-$3F (mirror) +$8B40-$8B7F = TIA Addresses $00-$3F (mirror) +$8B80-$8B9F = RIOT Addresses $00-$1F (mirror) +$8BA0-$8BBF = RIOT Addresses $00-$1F (mirror) +$8BC0-$8BDF = RIOT Addresses $00-$1F (mirror) +$8BE0-$8BFF = RIOT Addresses $00-$1F (mirror) +$8C00-$8C3F = TIA Addresses $00-$3F (mirror) +$8C40-$8C7F = TIA Addresses $00-$3F (mirror) +$8C80-$8CFF = RIOT RAM (mirror) +$8D00-$8D3F = TIA Addresses $00-$3F (mirror) +$8D40-$8D7F = TIA Addresses $00-$3F (mirror) +$8D80-$8DFF = RIOT RAM (mirror) +$8E00-$8E3F = TIA Addresses $00-$3F (mirror) +$8E40-$8E7F = TIA Addresses $00-$3F (mirror) +$8E80-$8E9F = RIOT Addresses $00-$1F (mirror) +$8EA0-$8EBF = RIOT Addresses $00-$1F (mirror) +$8EC0-$8EDF = RIOT Addresses $00-$1F (mirror) +$8EE0-$8EFF = RIOT Addresses $00-$1F (mirror) +$8F00-$8F3F = TIA Addresses $00-$3F (mirror) +$8F40-$8F7F = TIA Addresses $00-$3F (mirror) +$8F80-$8F9F = RIOT Addresses $00-$1F (mirror) +$8FA0-$8FBF = RIOT Addresses $00-$1F (mirror) +$8FC0-$8FDF = RIOT Addresses $00-$1F (mirror) +$8FE0-$8FFF = RIOT Addresses $00-$1F (mirror) +$9000-$9FFF = ROM Addresses $000-$FFF (mirror) +$A000-$A03F = TIA Addresses $00-$3F (mirror) +$A040-$A07F = TIA Addresses $00-$3F (mirror) +$A080-$A0FF = RIOT RAM (mirror) +$A100-$A13F = TIA Addresses $00-$3F (mirror) +$A140-$A17F = TIA Addresses $00-$3F (mirror) +$A180-$A1FF = RIOT RAM (mirror) +$A200-$A23F = TIA Addresses $00-$3F (mirror) +$A240-$A27F = TIA Addresses $00-$3F (mirror) +$A280-$A29F = RIOT Addresses $00-$1F (mirror) +$A2A0-$A2BF = RIOT Addresses $00-$1F (mirror) +$A2C0-$A2DF = RIOT Addresses $00-$1F (mirror) +$A2E0-$A2FF = RIOT Addresses $00-$1F (mirror) +$A300-$A33F = TIA Addresses $00-$3F (mirror) +$A340-$A37F = TIA Addresses $00-$3F (mirror) +$A380-$A39F = RIOT Addresses $00-$1F (mirror) +$A3A0-$A3BF = RIOT Addresses $00-$1F (mirror) +$A3C0-$A3DF = RIOT Addresses $00-$1F (mirror) +$A3E0-$A3FF = RIOT Addresses $00-$1F (mirror) +$A400-$A43F = TIA Addresses $00-$3F (mirror) +$A440-$A47F = TIA Addresses $00-$3F (mirror) +$A480-$A4FF = RIOT RAM (mirror) +$A500-$A53F = TIA Addresses $00-$3F (mirror) +$A540-$A57F = TIA Addresses $00-$3F (mirror) +$A580-$A5FF = RIOT RAM (mirror) +$A600-$A63F = TIA Addresses $00-$3F (mirror) +$A640-$A67F = TIA Addresses $00-$3F (mirror) +$A680-$A69F = RIOT Addresses $00-$1F (mirror) +$A6A0-$A6BF = RIOT Addresses $00-$1F (mirror) +$A6C0-$A6DF = RIOT Addresses $00-$1F (mirror) +$A6E0-$A6FF = RIOT Addresses $00-$1F (mirror) +$A700-$A73F = TIA Addresses $00-$3F (mirror) +$A740-$A77F = TIA Addresses $00-$3F (mirror) +$A780-$A79F = RIOT Addresses $00-$1F (mirror) +$A7A0-$A7BF = RIOT Addresses $00-$1F (mirror) +$A7C0-$A7DF = RIOT Addresses $00-$1F (mirror) +$A7E0-$A7FF = RIOT Addresses $00-$1F (mirror) +$A800-$A83F = TIA Addresses $00-$3F (mirror) +$A840-$A87F = TIA Addresses $00-$3F (mirror) +$A880-$A8FF = RIOT RAM (mirror) +$A900-$A93F = TIA Addresses $00-$3F (mirror) +$A940-$A97F = TIA Addresses $00-$3F (mirror) +$A980-$A9FF = RIOT RAM (mirror) +$AA00-$AA3F = TIA Addresses $00-$3F (mirror) +$AA40-$AA7F = TIA Addresses $00-$3F (mirror) +$AA80-$AA9F = RIOT Addresses $00-$1F (mirror) +$AAA0-$AABF = RIOT Addresses $00-$1F (mirror) +$AAC0-$AADF = RIOT Addresses $00-$1F (mirror) +$AAE0-$AAFF = RIOT Addresses $00-$1F (mirror) +$AB00-$AB3F = TIA Addresses $00-$3F (mirror) +$AB40-$AB7F = TIA Addresses $00-$3F (mirror) +$AB80-$AB9F = RIOT Addresses $00-$1F (mirror) +$ABA0-$ABBF = RIOT Addresses $00-$1F (mirror) +$ABC0-$ABDF = RIOT Addresses $00-$1F (mirror) +$ABE0-$ABFF = RIOT Addresses $00-$1F (mirror) +$AC00-$AC3F = TIA Addresses $00-$3F (mirror) +$AC40-$AC7F = TIA Addresses $00-$3F (mirror) +$AC80-$ACFF = RIOT RAM (mirror) +$AD00-$AD3F = TIA Addresses $00-$3F (mirror) +$AD40-$AD7F = TIA Addresses $00-$3F (mirror) +$AD80-$ADFF = RIOT RAM (mirror) +$AE00-$AE3F = TIA Addresses $00-$3F (mirror) +$AE40-$AE7F = TIA Addresses $00-$3F (mirror) +$AE80-$AE9F = RIOT Addresses $00-$1F (mirror) +$AEA0-$AEBF = RIOT Addresses $00-$1F (mirror) +$AEC0-$AEDF = RIOT Addresses $00-$1F (mirror) +$AEE0-$AEFF = RIOT Addresses $00-$1F (mirror) +$AF00-$AF3F = TIA Addresses $00-$3F (mirror) +$AF40-$AF7F = TIA Addresses $00-$3F (mirror) +$AF80-$AF9F = RIOT Addresses $00-$1F (mirror) +$AFA0-$AFBF = RIOT Addresses $00-$1F (mirror) +$AFC0-$AFDF = RIOT Addresses $00-$1F (mirror) +$AFE0-$AFFF = RIOT Addresses $00-$1F (mirror) +$B000-$BFFF = ROM Addresses $000-$FFF (mirror) +$C000-$C03F = TIA Addresses $00-$3F (mirror) +$C040-$C07F = TIA Addresses $00-$3F (mirror) +$C080-$C0FF = RIOT RAM (mirror) +$C100-$C13F = TIA Addresses $00-$3F (mirror) +$C140-$C17F = TIA Addresses $00-$3F (mirror) +$C180-$C1FF = RIOT RAM (mirror) +$C200-$C23F = TIA Addresses $00-$3F (mirror) +$C240-$C27F = TIA Addresses $00-$3F (mirror) +$C280-$C29F = RIOT Addresses $00-$1F (mirror) +$C2A0-$C2BF = RIOT Addresses $00-$1F (mirror) +$C2C0-$C2DF = RIOT Addresses $00-$1F (mirror) +$C2E0-$C2FF = RIOT Addresses $00-$1F (mirror) +$C300-$C33F = TIA Addresses $00-$3F (mirror) +$C340-$C37F = TIA Addresses $00-$3F (mirror) +$C380-$C39F = RIOT Addresses $00-$1F (mirror) +$C3A0-$C3BF = RIOT Addresses $00-$1F (mirror) +$C3C0-$C3DF = RIOT Addresses $00-$1F (mirror) +$C3E0-$C3FF = RIOT Addresses $00-$1F (mirror) +$C400-$C43F = TIA Addresses $00-$3F (mirror) +$C440-$C47F = TIA Addresses $00-$3F (mirror) +$C480-$C4FF = RIOT RAM (mirror) +$C500-$C53F = TIA Addresses $00-$3F (mirror) +$C540-$C57F = TIA Addresses $00-$3F (mirror) +$C580-$C5FF = RIOT RAM (mirror) +$C600-$C63F = TIA Addresses $00-$3F (mirror) +$C640-$C67F = TIA Addresses $00-$3F (mirror) +$C680-$C69F = RIOT Addresses $00-$1F (mirror) +$C6A0-$C6BF = RIOT Addresses $00-$1F (mirror) +$C6C0-$C6DF = RIOT Addresses $00-$1F (mirror) +$C6E0-$C6FF = RIOT Addresses $00-$1F (mirror) +$C700-$C73F = TIA Addresses $00-$3F (mirror) +$C740-$C77F = TIA Addresses $00-$3F (mirror) +$C780-$C79F = RIOT Addresses $00-$1F (mirror) +$C7A0-$C7BF = RIOT Addresses $00-$1F (mirror) +$C7C0-$C7DF = RIOT Addresses $00-$1F (mirror) +$C7E0-$C7FF = RIOT Addresses $00-$1F (mirror) +$C800-$C83F = TIA Addresses $00-$3F (mirror) +$C840-$C87F = TIA Addresses $00-$3F (mirror) +$C880-$C8FF = RIOT RAM (mirror) +$C900-$C93F = TIA Addresses $00-$3F (mirror) +$C940-$C97F = TIA Addresses $00-$3F (mirror) +$C980-$C9FF = RIOT RAM (mirror) +$CA00-$CA3F = TIA Addresses $00-$3F (mirror) +$CA40-$CA7F = TIA Addresses $00-$3F (mirror) +$CA80-$CA9F = RIOT Addresses $00-$1F (mirror) +$CAA0-$CABF = RIOT Addresses $00-$1F (mirror) +$CAC0-$CADF = RIOT Addresses $00-$1F (mirror) +$CAE0-$CAFF = RIOT Addresses $00-$1F (mirror) +$CB00-$CB3F = TIA Addresses $00-$3F (mirror) +$CB40-$CB7F = TIA Addresses $00-$3F (mirror) +$CB80-$CB9F = RIOT Addresses $00-$1F (mirror) +$CBA0-$CBBF = RIOT Addresses $00-$1F (mirror) +$CBC0-$CBDF = RIOT Addresses $00-$1F (mirror) +$CBE0-$CBFF = RIOT Addresses $00-$1F (mirror) +$CC00-$CC3F = TIA Addresses $00-$3F (mirror) +$CC40-$CC7F = TIA Addresses $00-$3F (mirror) +$CC80-$CCFF = RIOT RAM (mirror) +$CD00-$CD3F = TIA Addresses $00-$3F (mirror) +$CD40-$CD7F = TIA Addresses $00-$3F (mirror) +$CD80-$CDFF = RIOT RAM (mirror) +$CE00-$CE3F = TIA Addresses $00-$3F (mirror) +$CE40-$CE7F = TIA Addresses $00-$3F (mirror) +$CE80-$CE9F = RIOT Addresses $00-$1F (mirror) +$CEA0-$CEBF = RIOT Addresses $00-$1F (mirror) +$CEC0-$CEDF = RIOT Addresses $00-$1F (mirror) +$CEE0-$CEFF = RIOT Addresses $00-$1F (mirror) +$CF00-$CF3F = TIA Addresses $00-$3F (mirror) +$CF40-$CF7F = TIA Addresses $00-$3F (mirror) +$CF80-$CF9F = RIOT Addresses $00-$1F (mirror) +$CFA0-$CFBF = RIOT Addresses $00-$1F (mirror) +$CFC0-$CFDF = RIOT Addresses $00-$1F (mirror) +$CFE0-$CFFF = RIOT Addresses $00-$1F (mirror) +$D000-$DFFF = ROM Addresses $000-$FFF (mirror) +$E000-$E03F = TIA Addresses $00-$3F (mirror) +$E040-$E07F = TIA Addresses $00-$3F (mirror) +$E080-$E0FF = RIOT RAM (mirror) +$E100-$E13F = TIA Addresses $00-$3F (mirror) +$E140-$E17F = TIA Addresses $00-$3F (mirror) +$E180-$E1FF = RIOT RAM (mirror) +$E200-$E23F = TIA Addresses $00-$3F (mirror) +$E240-$E27F = TIA Addresses $00-$3F (mirror) +$E280-$E29F = RIOT Addresses $00-$1F (mirror) +$E2A0-$E2BF = RIOT Addresses $00-$1F (mirror) +$E2C0-$E2DF = RIOT Addresses $00-$1F (mirror) +$E2E0-$E2FF = RIOT Addresses $00-$1F (mirror) +$E300-$E33F = TIA Addresses $00-$3F (mirror) +$E340-$E37F = TIA Addresses $00-$3F (mirror) +$E380-$E39F = RIOT Addresses $00-$1F (mirror) +$E3A0-$E3BF = RIOT Addresses $00-$1F (mirror) +$E3C0-$E3DF = RIOT Addresses $00-$1F (mirror) +$E3E0-$E3FF = RIOT Addresses $00-$1F (mirror) +$E400-$E43F = TIA Addresses $00-$3F (mirror) +$E440-$E47F = TIA Addresses $00-$3F (mirror) +$E480-$E4FF = RIOT RAM (mirror) +$E500-$E53F = TIA Addresses $00-$3F (mirror) +$E540-$E57F = TIA Addresses $00-$3F (mirror) +$E580-$E5FF = RIOT RAM (mirror) +$E600-$E63F = TIA Addresses $00-$3F (mirror) +$E640-$E67F = TIA Addresses $00-$3F (mirror) +$E680-$E69F = RIOT Addresses $00-$1F (mirror) +$E6A0-$E6BF = RIOT Addresses $00-$1F (mirror) +$E6C0-$E6DF = RIOT Addresses $00-$1F (mirror) +$E6E0-$E6FF = RIOT Addresses $00-$1F (mirror) +$E700-$E73F = TIA Addresses $00-$3F (mirror) +$E740-$E77F = TIA Addresses $00-$3F (mirror) +$E780-$E79F = RIOT Addresses $00-$1F (mirror) +$E7A0-$E7BF = RIOT Addresses $00-$1F (mirror) +$E7C0-$E7DF = RIOT Addresses $00-$1F (mirror) +$E7E0-$E7FF = RIOT Addresses $00-$1F (mirror) +$E800-$E83F = TIA Addresses $00-$3F (mirror) +$E840-$E87F = TIA Addresses $00-$3F (mirror) +$E880-$E8FF = RIOT RAM (mirror) +$E900-$E93F = TIA Addresses $00-$3F (mirror) +$E940-$E97F = TIA Addresses $00-$3F (mirror) +$E980-$E9FF = RIOT RAM (mirror) +$EA00-$EA3F = TIA Addresses $00-$3F (mirror) +$EA40-$EA7F = TIA Addresses $00-$3F (mirror) +$EA80-$EA9F = RIOT Addresses $00-$1F (mirror) +$EAA0-$EABF = RIOT Addresses $00-$1F (mirror) +$EAC0-$EADF = RIOT Addresses $00-$1F (mirror) +$EAE0-$EAFF = RIOT Addresses $00-$1F (mirror) +$EB00-$EB3F = TIA Addresses $00-$3F (mirror) +$EB40-$EB7F = TIA Addresses $00-$3F (mirror) +$EB80-$EB9F = RIOT Addresses $00-$1F (mirror) +$EBA0-$EBBF = RIOT Addresses $00-$1F (mirror) +$EBC0-$EBDF = RIOT Addresses $00-$1F (mirror) +$EBE0-$EBFF = RIOT Addresses $00-$1F (mirror) +$EC00-$EC3F = TIA Addresses $00-$3F (mirror) +$EC40-$EC7F = TIA Addresses $00-$3F (mirror) +$EC80-$ECFF = RIOT RAM (mirror) +$ED00-$ED3F = TIA Addresses $00-$3F (mirror) +$ED40-$ED7F = TIA Addresses $00-$3F (mirror) +$ED80-$EDFF = RIOT RAM (mirror) +$EE00-$EE3F = TIA Addresses $00-$3F (mirror) +$EE40-$EE7F = TIA Addresses $00-$3F (mirror) +$EE80-$EE9F = RIOT Addresses $00-$1F (mirror) +$EEA0-$EEBF = RIOT Addresses $00-$1F (mirror) +$EEC0-$EEDF = RIOT Addresses $00-$1F (mirror) +$EEE0-$EEFF = RIOT Addresses $00-$1F (mirror) +$EF00-$EF3F = TIA Addresses $00-$3F (mirror) +$EF40-$EF7F = TIA Addresses $00-$3F (mirror) +$EF80-$EF9F = RIOT Addresses $00-$1F (mirror) +$EFA0-$EFBF = RIOT Addresses $00-$1F (mirror) +$EFC0-$EFDF = RIOT Addresses $00-$1F (mirror) +$EFE0-$EFFF = RIOT Addresses $00-$1F (mirror) +$F000-$FFFF = ROM Addresses $000-$FFF (mirror)