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 .
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.