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