163

内部レジスタ

エミュレータの資料をまとめてみた。推測情報も入ってるので全てを信じないこと。

$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 はバッテリーバックアップ可