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.

This commit is contained in:
pjgat09 2012-03-08 08:12:44 +00:00
parent 137522691c
commit 405af35d72
6 changed files with 832 additions and 5 deletions

View File

@ -78,6 +78,8 @@
<Compile Include="Buffer.cs" />
<Compile Include="Consoles\Atari\2600\Atari2600.cs" />
<Compile Include="Consoles\Atari\2600\Atari2600.Core.cs" />
<Compile Include="Consoles\Atari\2600\TIA.cs" />
<Compile Include="Consoles\Atari\2600\M6532.cs" />
<Compile Include="Consoles\Calculator\TI83.cs" />
<Compile Include="Consoles\Nintendo\NES\APU.cs" />
<Compile Include="Consoles\Nintendo\NES\BoardSystem.cs" />

View File

@ -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.

View File

@ -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<MemoryDomain>(1);

View File

@ -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"));
}
}
}
}

View File

@ -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"));
}
}
}

View File

@ -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)