ファミコンメモリマップ

 ファミコンのメモリマップは$0000〜$FFFFの64KBの空間で、I/Oが直接マッピングされているメモリマップドI/Oと
なっています。

 ディスクシステムにおいて、通常のファミコンと異なる部分としては、プログラムROMエリアの前半がRAMとなり、
後半8KBにDISK-BIOSが常駐します。後半8KBはROMですから、プログラムからの書換えはできません。




下記に参考資料として一般的なファミリーコンピュータのメモリマップを示します。
ミラーのエリアは不要なのでグレーアウトしています。
アドレス サイズ
(Byte)
機能 概要
$0000〜$07FF 2,048 RAM 唯一ワークエリアとして使用できる空間。先頭256バイトは高速アクセス可能。
$0800〜$0FFF 2,048 RAM $0000〜$07FFのミラー1
$1000〜$17FF 2,048 RAM $0000〜$07FFのミラー2
$1800〜$1FFF 2,048 RAM $0000〜$07FFのミラー3
$2000〜$2007 8 I/Oレジスタ1 PPU制御レジスタ ビデオ画面操作(PPU通信)を行う
$2008〜$3FFF 8,184 I/Oレジスタ $2000〜$2007のミラーを1,023回繰り返し
$4000〜$401F 32 I/Oレジスタ2 CPU制御レジスタ サウンド設定、コントローラ状態検出をなど行う
$4020〜$5FFF 8,160 拡張ROM
$6000〜$7FFF 8,192 SRAM
$8000〜$BFFF 16,384 PRG-ROM1 プログラムROMエリア1
$C000〜$FFF9 16,378 PRG-ROM2 プログラムROMエリア2
$FFFA〜$FFFF 6 VECTOR 割込みベクタアドレス




下記にディスクシステムRAMアダプタ接続時のメモリマップの概要を示します。詳細については後述致します。
アドレス サイズ
(Byte)
機能 概要
$0000〜$07FF 2,048 RAM 唯一ワークエリアとして使用できる空間。先頭256バイトは高速アクセス可能。
$0800〜$0FFF 2,048 RAM $0000〜$07FFのミラー1
$1000〜$17FF 2,048 RAM $0000〜$07FFのミラー2
$1800〜$1FFF 2,048 RAM $0000〜$07FFのミラー3
$2000〜$2007 8 I/Oレジスタ1 PPU制御レジスタ ビデオ画面操作(PPU通信)を行う
$2008〜$3FFF 8,184 I/Oレジスタ $2000〜$2007のミラーを1,023回繰り返し
$4000〜$4017 32 I/Oレジスタ2 CPU制御レジスタ サウンド設定、コントローラ状態検出をなど行う
$4022〜$408A DISK-I/O ディスクシステム ディスクドライブコントロール用I/Oポート
$4100〜$5FFF 7,935 拡張ROM
$6000〜$DFF9 32,761 PRG-RAM プログラムRAMエリア ディスクカードからロード可能
$DFFA〜$DFFF 6 VECTOR 割込みベクタアドレス
$E000〜$FFFF 8,191 DISK-BIOS ディスクシステム システムROMが格納される


 RAMアダプタを接続したことにより、特に注意すべき点はPRG-RAMエリアの変移と割り込みベクタアドレスの変移です。


 割込みベクタは、通常のカートリッジの場合は$FFFA〜$FFFFのエリアですが、RAMアダプタがセットされている場合は
$E000〜$FFFFの範囲がDISK-BIOSに占有されますので自由に操作できません。
そのため、割込みベクタが$DFFA〜$DFFFへ移ります。




割込みベクタエリアの詳細を下記に示します。

割込みの
種類
ファミコン標準 RAMアダプタ
装着時
NMI $FFFA〜$FFFB $DFFA〜$DFFB
RESET $FFFC〜$FFFD $DFFC〜$DFFD
IRQ/BRK $FFFE〜$FFFF $DFFE〜$DFFF





任天堂株式会社の登録商標です。本webサイト中のゲーム画像の著作権は全て開発ゲームメーカーへ帰属します。
Copyright(C) 2004 by Fantasy.