1 #ifndef MEM_H_
2 #define MEM_H_
3 
4 
5 ////           ////
6 // Z80 MEMORYMAP //
7 ////           ////
8 
9 /*
10  * 0x0000-0x3fff: Z80 RAM
11  * 0000-1FFFh : RAM
12  * 2000-3FFFh : RAM (mirror)
13  */
14 #define Z80_RAM_START 0x0000
15 #define Z80_RAM_END 0x3fff
16 
17 /*
18  * 0x4000-0x5fff: YM2612
19  * The YM2612 has two address lines, so it is available at 4000-4003h and
20  * is mirrored repeatedly up to 5FFFh.
21  */
22 #define YM2612_RAM_START 0x4000
23 #define YM2612_RAM_END 0x5fff
24 
25 /* 0x6000-0x6fff: bank register */
26 #define BANK_RAM_START 0x6000
27 #define BANK_RAM_END 0x6fff
28 
29 /* 0x7000-0x7fff: PSG/VDP */
30 #define PSGVDP_RAM_START 0x7000
31 #define PSGVDP_RAM_END 0x7fff
32 
33 /* 0x8000-0xffff: M68K bank */
34 #define M68K_RAM_START 0x8000
35 #define M68K_RAM_END 0xffff
36 
37 
38 ////            ////
39 // m68K MEMORYMAP //
40 ////            ////
41 
42 /* 0x000000-0x7fffff: Rom */
43 #define M68K_ROM_START 0x000000
44 #define M68K_ROM_END 0x7fffff
45 
46 /* 0x800000-0x9fffff: empty area1 */
47 #define M68K_EMPTY1_START 0x800000
48 #define M68K_EMPTY1_END 0x9fffff
49 
50 /* 0xa00000-0xafffff: system I/O and control */
51 #define M68K_IO_START 0xa00000
52 #define M68K_IO_END 0xafffff
53 
54 /* 0xb00000-0xbfffff: empty area */
55 #define M68K_EMPTY2_START 0xb00000
56 #define M68K_EMPTY2_END 0xbfffff
57 
58 /* 0xc00000-0xdfffff: VDP/PSG */
59 #define M68K_VDP_START 0xc00000
60 #define M68K_VDP_END 0xdfffff
61 
62 #endif
63