内部レジスタ
エミュレータの資料をまとめてみた。推測情報も入ってるので全てを信じないこと。
$4800 RW 7:0 internal work RAM data port $5000 _W 7:0 IRQ counter[7:0] $5800 _W 7 IRQ enable 0:off 1:on 6:0 IRQ counter[14:8] $6000-$7fff RW exteral work RAM area (optional, 0x2000 byte) $8000,$8800,$9000,$9800 _W 7:6 memory select 11:ROM or RAM else:ROM 7:0 PPU bank#0 register for 0x0000-,0x0400-,0x0800-,0x0c00-0x0fff $a000,$a800,$b000,$b800 _W 7:6 memory select 11:ROM or RAM else:ROM 7:0 PPU bank#1 register for 0x1000-,0x1400-,0x1800-,0x1c00-0x1fff $c000,$c800,$d000,$d800 _W 7:6 memory select 11:RAM else:ROM 7:0 PPU bank#2 register for 0x2000-,0x2400-,0x2800-,0x2c00-0x2fff $e000 _W 6 sound generator enable 0:on 1:off 5:0 CPU bank register for $8000-$9fff $e800 _W 7 PPU bank #0 memory select 0:ROM&RAM 1:ROM 6 PPU bank #1 memory select 5:0 CPU bank register for $a000-$bfff $f000 _W 5:0 CPU bank register for $c000-$dfff $f800 _W 7 internal work RAM pointer auto increment 0:off 1:on 6:0 internal work RAM pointer address
考察
- Work RAM write protect の解除方法が未だ不明
- DDS2 を解析してたら外部 RAM の容量は 0x2000 byte のようだ
- VRAM A10 (input) は Charcter ROM A10 (output) に接続されている
- PPU area 0x0000-0x1fff に RAM が割り当てられるようなんだけど、その RAM は 163 内部にあるのか、ファミコン本体の VRAM を無理矢理振っているのか判断できていない
- 前者の場合は容量はいくつ? というか、163 内部にさらに SRAM が入ってるとはちょっと思いづらい気もする。
- 前者の場合は 0x400 byte 単位でやるからスクロールは不可になる。
- internal Work RAM はバッテリーバックアップ可