1 /* 2 * Copyright 2008, François Revol, revol@free.fr. All rights reserved. 3 * Distributed under the terms of the MIT License. 4 */ 5 #ifndef AMIGA_MEMORY_MAP_H 6 #define AMIGA_MEMORY_MAP_H 7 8 9 /* the DMA-accessible RAM */ 10 #define AMIGA_CHIPRAM_BASE 0x00000000 11 //XXX: 12 /* actually, the first 2kB aren't usable */ 13 //#define AMIGA_CHIPRAM_BASE 0x00001000 14 #define AMIGA_CHIPRAM_MAX 0x00e00000 15 #define AMIGA_CHIPRAM_LAST \ 16 (AMIGA_CHIPRAM_BASE + (AMIGA_CHIPRAM_MAX - 1)) 17 18 #define AMIGA_ROM_BASE 0x00f80000 19 #define AMIGA_ROM_MAX 0x00080000 20 #define AMIGA_ROM_LAST \ 21 (AMIGA_ROM_BASE + (AMIGA_ROM_MAX - 1)) 22 23 /* some reserved ST I/O there... */ 24 25 /* cartridge ROM */ 26 #define AMIGA_CARTROM_BASE 0x00fa0000 27 #define AMIGA_CARTROM_MAX 0x00020000 28 #define AMIGA_CARTROM_LAST \ 29 (AMIGA_CARTROM_BASE + (AMIGA_CARTROM_MAX - 1)) 30 31 #define AMIGA_SYSROM_BASE 0x00fc0000 32 #define AMIGA_SYSROM_MAX 0x00030000 33 #define AMIGA_SYSROM_LAST \ 34 (AMIGA_SYSROM_BASE + (AMIGA_SYSROM_MAX - 1)) 35 36 /* more ST I/O there... */ 37 38 /* the fast, non-DMA-accessible RAM */ 39 #define AMIGA_FASTRAM_BASE 0x01000000 40 // max on TT, 41 // but there is nothing beyond until SHADOW_BASE 42 //#define AMIGA_FASTRAM_MAX 0x00400000 43 #define AMIGA_FASTRAM_MAX 0xfe000000 44 #define AMIGA_FASTRAM_LAST \ 45 (AMIGA_FASTRAM_BASE + (AMIGA_FASTRAM_MAX - 1)) 46 47 48 49 /* due to ST legacy (24 bit addressing), IO is actually there */ 50 #define AMIGA_SHADOW_BASE 0xff000000 51 52 #define AMIGA_IO_BASE (AMIGA_SHADOW_BASE + 0x00f00000) 53 #define AMIGA_IO_MAX 0x00100000 54 #define AMIGA_IO_LAST \ 55 (AMIGA_IO_BASE + (AMIGA_IO_MAX - 1)) 56 57 58 59 60 61 /* physical memory layout as used by the bootloader */ 62 63 //#define AMIGA_ZBEOS_STACK_BASE 0x00040000 64 #define AMIGA_ZBEOS_STACK_BASE 0x00060000 65 #define AMIGA_ZBEOS_STACK_END 0x00080000 66 67 /* from .prg shell.S will copy itself there 68 * must stay in sync with src/system/ldscripts/m68k/boot_prg_amiga_m68k.ld 69 */ 70 #define AMIGA_ZBEOS_BASE 0x00080000 71 #define AMIGA_ZBEOS_MAX 0x00080000 72 #define AMIGA_ZBEOS_LAST \ 73 (AMIGA_ZBEOS_BASE + (AMIGA_ZBEOS_MAX - 1)) 74 75 76 #define AMIGA_STRAM_VIRT_BASE 77 78 #endif /* AMIGA_MEMORY_MAP_H */ 79