go to 1.1 got to 1.3 1.2 Address Overview

As described under 1.1 Technical details the GameBoyTM has a 16-bit address-BUS. giving an addressable range of 65535 Byte or 64KByte. All hardware components of the GameBoyTM including RAM, ROM, Video RAM and I /O Ports are memory mapped as shown below.

Figure 3: address overview

Figure 3 shows the general definition for hardware devices. The 32K area between 0000h and 7FFFh is the "user program area" where the program ROM is located. The user program area is divided into  home & fixed home .

Above this area the video RAM is situated from 8000h to 9FFFh (8kByte). On top of this is the work RAM area from A000h to FFFFh. The address space from A000h to C000h can be used for externally located RAM in a  cartridge.

Figure 4: more detailed addresses overview

Figure 4 shows a more detailed overview of the hardware addresses. Further information on address definition can be found in "gbspec.txt“ ("Reserved Memory Locations").

The user program area consists of home and fixed home blocks each of these being 16kByte in length. These memory blocks are called "pages" or "banks" (see 1.3 Memory mapping for more information). The '.gb'-files these will always be 2^x pages in length as checksumming takes place on a 16KByte block basis.

A user program starts in the 'fixed home' page 00. Small programs in a 16 KByte ROM run entirely in this space. Larger programs of up to 32 KByte using a 32 KByte ROM flow over into the home page 01.

To facilitate programs requiring larger ROMs without causing addressing conflict by going outside of the 32K Byte user program area the memory bank controller (MBC) provides a means of mapping further contiguous 16KByte pages into the home page 01 area.

go to 1.1 got to 1.3 This document was created with StarOffice 4.0 by Marc Rawer