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 ATARI_MEMORY_MAP_H 6 #define ATARI_MEMORY_MAP_H 7 8 9 /* the DMA-accessible RAM */ 10 /*#define ATARI_CHIPRAM_BASE 0x00000000*/ 11 /* actually, the first 2kB aren't usable */ 12 #define ATARI_CHIPRAM_BASE 0x00001000 13 #define ATARI_CHIPRAM_MAX 0x00e00000 14 #define ATARI_CHIPRAM_LAST \ 15 (ATARI_CHIPRAM_BASE + (ATARI_CHIPRAM_MAX - 1)) 16 17 #define ATARI_TOSROM_BASE 0x00e00000 18 #define ATARI_TOSROM_MAX 0x00100000 19 #define ATARI_TOSROM_LAST \ 20 (ATARI_TOSROM_BASE + (ATARI_TOSROM_MAX - 1)) 21 22 /* some reserved ST I/O there... */ 23 24 /* cartridge ROM */ 25 #define ATARI_CARTROM_BASE 0x00fa0000 26 #define ATARI_CARTROM_MAX 0x00020000 27 #define ATARI_CARTROM_LAST \ 28 (ATARI_CARTROM_BASE + (ATARI_CARTROM_MAX - 1)) 29 30 #define ATARI_SYSROM_BASE 0x00fc0000 31 #define ATARI_SYSROM_MAX 0x00030000 32 #define ATARI_SYSROM_LAST \ 33 (ATARI_SYSROM_BASE + (ATARI_SYSROM_MAX - 1)) 34 35 /* more ST I/O there... */ 36 37 /* the fast, non-DMA-accessible RAM */ 38 #define ATARI_FASTRAM_BASE 0x01000000 39 // max on TT, 40 // but there is nothing beyond until SHADOW_BASE 41 //#define ATARI_FASTRAM_MAX 0x00400000 42 #define ATARI_FASTRAM_MAX 0xfe000000 43 #define ATARI_FASTRAM_LAST \ 44 (ATARI_FASTRAM_BASE + (ATARI_FASTRAM_MAX - 1)) 45 46 47 48 /* due to ST legacy (24 bit addressing), IO is actually there */ 49 #define ATARI_SHADOW_BASE 0xff000000 50 51 #define ATARI_IO_BASE (ATARI_SHADOW_BASE + 0x00f00000) 52 #define ATARI_IO_MAX 0x00100000 53 #define ATARI_IO_LAST \ 54 (ATARI_IO_BASE + (ATARI_IO_MAX - 1)) 55 56 57 58 59 60 /* physical memory layout as used by the bootloader */ 61 62 //#define ATARI_ZBEOS_STACK_BASE 0x00040000 63 #define ATARI_ZBEOS_STACK_BASE 0x00060000 64 #define ATARI_ZBEOS_STACK_END 0x00080000 65 66 /* from .prg shell.S will copy itself there 67 * must stay in sync with src/system/ldscripts/m68k/boot_prg_atari_m68k.ld 68 */ 69 #define ATARI_ZBEOS_BASE 0x00080000 70 #define ATARI_ZBEOS_MAX 0x00080000 71 #define ATARI_ZBEOS_LAST \ 72 (ATARI_ZBEOS_BASE + (ATARI_ZBEOS_MAX - 1)) 73 74 75 #define ATARI_STRAM_VIRT_BASE 76 77 #endif /* ATARI_MEMORY_MAP_H */ 78