Download Print this page

Nintendo NES-001 - Entertainment System Game Console Documentation page 10

User guide
Hide thumbs Also See for NES-001 - Entertainment System Game Console:

Advertisement

The 2A03 had a 16-bit address bus and as such could support 64 KB of memory with
addresses from $0000-$FFFF. Figure 2-5 is the CPU memory map used by the NES,
showing the layout of memory. The left hand map is a simplified version showing the major
sections, while the map to the right divides these sections further.
Zero Page refers to addresses in the range $0000-$00FF, that is the first page in memory
and is used by certain addressing modes to allow quicker execution [4]. Memory locations
$0000-$07FF are mirrored three times at $0800-$1FFF. This means that, for example, any
data written to $0000 will also be written to $0800, $1000 and $1800. The memory mapped
I/O registers are located at $2000-$401F. Locations $2000-$2007 are mirrored every 8 bytes
in the region $2008-$3FFF and the remaining registers follow this mirroring. SRAM (WRAM)
is the Save RAM, the addresses used to access RAM in the cartridges for storing save
games.
From $8000 onwards is the addresses allocated to cartridge PRG-ROM. Games with only
one 16 KB bank of PRG-ROM will load it into both $8000 and $C000. This is to ensure that
the vector table is located in the correct addresses. Games with two 16 KB PRG-ROM banks
will load one into $8000 and the other into $C000. Games with more than two banks use
memory mappers to determine which banks to load into memory. The memory mapper
monitors memory writes for a specific address (or range of addresses) and when that
address is written to, it performs a bank switch. The details vary between different memory
mappers and more information can be found in Appendix D.
10

Advertisement

loading

This manual is also suitable for:

Entertainment system