]> git.sesse.net Git - pistorm/blob - platforms/amiga/amiga-autoconf.h
b7484dec329a8c25df8b04e0f121b14a5c53b2dc
[pistorm] / platforms / amiga / amiga-autoconf.h
1 #include "config_file/config_file.h"
2
3 #define AC_Z2_BASE 0xE80000
4 #define AC_Z3_BASE 0xFF000000
5 #define AC_SIZE (64 * 1024)
6 #define AC_PIC_LIMIT 8
7
8 #define AC_MEM_SIZE_8MB 0
9 #define AC_MEM_SIZE_64KB 1
10 #define AC_MEM_SIZE_128KB 2
11 #define AC_MEM_SIZE_256KB 3
12 #define AC_MEM_SIZE_512KB 4
13 #define AC_MEM_SIZE_1MB 5
14 #define AC_MEM_SIZE_2MB 6
15 #define AC_MEM_SIZE_4MB 7
16
17 #define AC_MEM_SIZE_EXT_16MB 0
18 #define AC_MEM_SIZE_EXT_32MB 1
19 #define AC_MEM_SIZE_EXT_64MB 2
20 #define AC_MEM_SIZE_EXT_128MB 3
21 #define AC_MEM_SIZE_EXT_256MB 4
22 #define AC_MEM_SIZE_EXT_512MB 5
23 #define AC_MEM_SIZE_EXT_1024MB 6
24 #define AC_MEM_SIZE_EXT_RES 7
25
26 enum autoconf_types {
27     ACTYPE_MAPFAST_Z2,
28     ACTYPE_MAPFAST_Z3,
29     ACTYPE_A314,
30     ACTYPE_PISCSI,
31     ACTYPE_NUM,
32 };
33
34 enum autoconfg_z3_regs {
35     AC_Z3_REG_ER_TYPE           = 0x00,
36     AC_Z3_REG_ER_PRODUCT        = 0x04,
37     AC_Z3_REG_ER_FLAGS          = 0x08,
38     AC_Z3_REG_ER_RES03          = 0x0C,
39     AC_Z3_REG_MAN_HI            = 0x10,
40     AC_Z3_REG_MAN_LO            = 0x14,
41     AC_Z3_REG_SER_BYTE0         = 0x18,
42     AC_Z3_REG_SER_BYTE1         = 0x1C,
43     AC_Z3_REG_SER_BYTE2         = 0x20,
44     AC_Z3_REG_SER_BYTE3         = 0x24,
45     AC_Z3_REG_INIT_DIAG_VEC_HI  = 0x28,
46     AC_Z3_REG_INIT_DIAG_VEC_LO  = 0x2C,
47     AC_Z3_REG_ER_RES0C          = 0x30,
48     AC_Z3_REG_ER_RES0D          = 0x34,
49     AC_Z3_REG_ER_RES0E          = 0x38,
50     AC_Z3_REG_ER_RES0F          = 0x3C,
51     AC_Z3_REG_ER_Z2_INT         = 0x40,
52     AC_Z3_REG_WR_ADDR_HI        = 0x44,
53     AC_Z3_REG_WR_ADDR_NIB_HI    = 0x46,
54     AC_Z3_REG_WR_ADDR_LO        = 0x48,
55     AC_Z3_REG_WR_ADDR_NIB_LO    = 0x4A,
56     AC_Z3_REG_SHUTUP            = 0x4C,
57     AC_Z3_REG_RES50             = 0x50,
58     AC_Z3_REG_RES54             = 0x54,
59     AC_Z3_REG_RES58             = 0x58,
60     AC_Z3_REG_RES5C             = 0x5C,
61     AC_Z3_REG_RES60             = 0x60,
62     AC_Z3_REG_RES64             = 0x64,
63     AC_Z3_REG_RES68             = 0x68,
64     AC_Z3_REG_RES6C             = 0x6C,
65     AC_Z3_REG_RES70             = 0x70,
66     AC_Z3_REG_RES74             = 0x74,
67     AC_Z3_REG_RES78             = 0x78,
68     AC_Z3_REG_RES7C             = 0x7C,
69 };
70
71 #define BOARDTYPE_Z3 0x80
72 #define BOARDTYPE_Z2 (0x80|0x40)
73 #define BOARDTYPE_FREEMEM 0x20
74 #define BOARDTYPE_BOOTROM 0x10
75 #define BOARDTYPE_LINKED 0x08
76
77 #define Z3_FLAGS_MEMORY    0x80
78 #define Z3_FLAGS_NOSHUTUP  0x40
79 #define Z3_FLAGS_EXTENSION 0x20
80 #define Z3_FLAGS_RESERVED  0x10
81
82 #define PISTORM_MANUF_ID 0xDEBE
83
84 unsigned int autoconfig_read_memory_8(struct emulator_config *cfg, unsigned int address);
85 void autoconfig_write_memory_8(struct emulator_config *cfg, unsigned int address, unsigned int value);
86
87 unsigned int autoconfig_read_memory_z3_8(struct emulator_config *cfg, unsigned int address);
88 void autoconfig_write_memory_z3_8(struct emulator_config *cfg, unsigned int address, unsigned int value);
89 void autoconfig_write_memory_z3_16(struct emulator_config *cfg, unsigned int address, unsigned int value);