メモリマップ
CPUアドレス空間
6502のアドレスバスは16ビットとなっていて、そこに32KByteのROM、2KByteのWRAM、I/Oポートがマップされています。
アドレス | 内容 | ミラーアドレス |
---|---|---|
$0000-$07FF | WRAM | |
$0800-$1FFF | 未使用 | $0000-$07FF |
$2000-$2007 | I/Oポート (PPU) | |
$2008-$3FFF | 未使用 | $2000-$2007 |
$4000-$401F | I/Oポート (APU, etc) | |
$4020-$5FFF | 拡張RAM(特殊なマッパー使用時) | |
$6000-$7FFF | バッテリーバックアップRAM | |
$8000-$BFFF | プログラムROM LOW | |
$C000-$FFFF | プログラムROM HIGH |
PPUアドレス空間
PPUは6502からはマップされておらず、データの送受信はI/Oポートを通じて行います。また、PPUのアドレスバスは14ビットとなっています。
アドレス | 内容 | ミラーアドレス |
---|---|---|
$0000-$0FFF | パターンテーブル LOW | |
$1000-$1FFF | パターンテーブル HIGH | |
$2000-$23BF | 画面1 ネームテーブル | |
$23C0-$23FF | 画面1 属性テーブル | |
$2400-$27BF | 画面2 ネームテーブル | |
$27C0-$27FF | 画面2 属性テーブル | |
$2800-$2BBF | 画面3 ネームテーブル | $2000-$23BF |
$2BC0-$2BFF | 画面3 属性テーブル | $23C0-$23FF |
$2C00-$2FBF | 画面4 ネームテーブル | $2400-$27BF |
$2FC0-$2FFF | 画面4 属性テーブル | $27C0-$2FFF |
$3000-$3EFF | 未使用 | $2000-$2EFF |
$3F00-$3F0F | BGパレットテーブル | |
$3F10-$3F1F | スプライトパレットテーブル | |
$3F20-$3FFF | 未使用 | $3F00-$3F1F |
$4000-$FFFF | 未使用 | $0000-$3FFF |