在FC中有两块内存空间,一个是CPU的,一个是PPU的。这两块空间都是64KB的,但一般都不会用全。
FC的CPU--2A03可以访问的内存空间为64KB其中上32KB(0x8000-0xFFFF)被分配给Cartridge中的PRGROM,即代码区。下32KB被分配给内置内存、I/O寄存器、扩展ROM、SRAM(备份RAM)。整个空间分配如下:
--------------------------------------- $10000
卡带的上层PRGROM(16KB)
--------------------------------------- $C000
卡带的下层PRGROM(16KB)
--------------------------------------- $8000
卡带的SRAM(备份RAM)
--------------------------------------- $6000
扩展ROM
--------------------------------------- $5000
输入/输出寄存器
--------------------------------------- $2000
$0000-$0800的镜像,无实际意义
--------------------------------------- $0800
一般内存(RAM)
--------------------------------------- $0200
栈
--------------------------------------- $0100 $0000-$08000 为2KB的内部物理RAM,
零页内存 $0800-$2000为$0000-$0800做4次镜象
--------------------------------------- $0000
FC的PPU-2C02 也可以访问64KB内存空间,其中只有16KB的物理内存处在PPU内存空间的最下端。
--------------------------------------- $4000
空
--------------------------------------- $3F20
动画/精灵调色板
--------------------------------------- $3F10
图象调色板
--------------------------------------- $3F00
空
--------------------------------------- $3000
属性表3
--------------------------------------- $2FC0
名字表3(32X30块tile)
--------------------------------------- $2C00
属性表2
--------------------------------------- $2BC0
名字表2(32X30块tile)
--------------------------------------- $2800
属性表1
--------------------------------------- $27C0
名字表1(32X30块tile)
--------------------------------------- $2400
属性表0
--------------------------------------- $23C0
名字表0(32X30块tile)
--------------------------------------- $2000
模式表1存储tile
--------------------------------------- $1000
模式表0存储tile
--------------------------------------- $0000