目次


CPUアドレス空間

6502のアドレスバスは16ビットとなっていて、そこに32KByteのROM、2KByteのRAM、I/Oポートがマップされています。

アドレス 内容 ミラーアドレス
0x0000-0x07FF RAM
0x0800-0x1FFF 未使用 0x0000-0x07FF
0x2000-0x2007 I/Oポート (PPU)
0x2008-0x3FFF 未使用 0x2000-0x2007
0x4000-0x401F I/Oポート (APU, etc)
0x4020-0x5FFF 拡張RAM(特殊なマッパー使用時)
0x6000-0x7FFF バッテリーバックアップRAM
0x8000-0xBFFF プログラムROM LOW
0xC000-0xFFFF プログラムROM HIGH

PPUアドレス空間

PPUは6502からはマップされておらず、データの送受信はI/Oポートを通じて行います。また、PPUのアドレスバスは14ビットとなっています。

アドレス 内容 ミラーアドレス
0x0000-0x0FFF パターンテーブル LOW
0x1000-0x1FFF パターンテーブル HIGH
0x2000-0x23BF 画面1 ネームテーブル
0x23C0-0x23FF 画面1 属性テーブル
0x2400-0x27BF 画面2 ネームテーブル
0x27C0-0x27FF 画面2 属性テーブル
0x2800-0x2BBF 画面3 ネームテーブル 0x2000-0x23BF
0x2BC0-0x2BFF 画面3 属性テーブル 0x23C0-0x23FF
0x2C00-0x2FBF 画面4 ネームテーブル 0x2400-0x27BF
0x2FC0-0x2FFF 画面4 属性テーブル 0x27C0-0x2FFF
0x3000-0x3EFF 未使用 0x2000-0x2EFF
0x3F00-0x3F0F BGパレットテーブル
0x3F10-0x3F1F スプライトパレットテーブル
0x3F20-0x3FFF 未使用 0x3F00-0x3F1F
0x4000-0xFFFF 未使用 0x0000-0x3FFF