BIOS Overall Memory Map

From CPCWiki - THE Amstrad CPC encyclopedia!
Jump to: navigation, search

RAM

 0000h   40h  Copy of ROM (RST/IRQ Vectors)
 0040h        User RAM
 A67Ch   80h  User Defined Characters CHR(F0h..FFh)
 A6FCh    4h  AMSDOS Header (for RSX commands)
 A700h  500h  AMSDOS Data
 AC00h  500h  BASIC Data
 B100h  800h  BIOS Data
 B900h  200h  BIOS Code (relocated from ROM)
 BB00h  300h  BIOS Vectors
 BE00h   40h  Stack
 BE40h   40h  Stack or AMSDOS Data
 BE80h  180h  Stack
 C000h 4000h  VRAM

BIOS ROM

 0000h   40h  RST/IRQ Vectors
 0040h 37C0h  Stuff
 3800h  800h  Character Set (256 characters, 8x8 bits each)

BASIC/AMSDOS ROMS

 C000     1h  ROM Type (lower 2bit: 0=Foreground, 1=Background, 2-3=?)
                       (bit7: 1=prevent KL_FIND_COMMAND from searching
                        further foreground ROMs)
 C001     1h  ROM Mark (whatever, usually 0 or 1)
 C002     1h  ROM Version (usually 00h or higher)
 C003     1h  ROM Modification (whatever, usually 0)
 C004     2h  Pointer to RSX Function Names
 C006    ...  RSX Function Vectors (3bytes each) (1st=Initialization Code)