1 // SPDX-License-Identifier: MIT
3 #include "config_file/config_file.h"
5 #define AC_Z2_BASE 0xE80000
6 #define AC_Z3_BASE 0xFF000000
7 #define AC_SIZE (64 * 1024)
8 #define AC_PIC_LIMIT 16
10 #define AC_MEM_SIZE_8MB 0
11 #define AC_MEM_SIZE_64KB 1
12 #define AC_MEM_SIZE_128KB 2
13 #define AC_MEM_SIZE_256KB 3
14 #define AC_MEM_SIZE_512KB 4
15 #define AC_MEM_SIZE_1MB 5
16 #define AC_MEM_SIZE_2MB 6
17 #define AC_MEM_SIZE_4MB 7
19 #define AC_MEM_SIZE_EXT_16MB 0
20 #define AC_MEM_SIZE_EXT_32MB 1
21 #define AC_MEM_SIZE_EXT_64MB 2
22 #define AC_MEM_SIZE_EXT_128MB 3
23 #define AC_MEM_SIZE_EXT_256MB 4
24 #define AC_MEM_SIZE_EXT_512MB 5
25 #define AC_MEM_SIZE_EXT_1024MB 6
26 #define AC_MEM_SIZE_EXT_RES 7
38 enum autoconfg_z3_regs {
39 AC_Z3_REG_ER_TYPE = 0x00,
40 AC_Z3_REG_ER_PRODUCT = 0x04,
41 AC_Z3_REG_ER_FLAGS = 0x08,
42 AC_Z3_REG_ER_RES03 = 0x0C,
43 AC_Z3_REG_MAN_HI = 0x10,
44 AC_Z3_REG_MAN_LO = 0x14,
45 AC_Z3_REG_SER_BYTE0 = 0x18,
46 AC_Z3_REG_SER_BYTE1 = 0x1C,
47 AC_Z3_REG_SER_BYTE2 = 0x20,
48 AC_Z3_REG_SER_BYTE3 = 0x24,
49 AC_Z3_REG_INIT_DIAG_VEC_HI = 0x28,
50 AC_Z3_REG_INIT_DIAG_VEC_LO = 0x2C,
51 AC_Z3_REG_ER_RES0C = 0x30,
52 AC_Z3_REG_ER_RES0D = 0x34,
53 AC_Z3_REG_ER_RES0E = 0x38,
54 AC_Z3_REG_ER_RES0F = 0x3C,
55 AC_Z3_REG_ER_Z2_INT = 0x40,
56 AC_Z3_REG_WR_ADDR_HI = 0x44,
57 AC_Z3_REG_WR_ADDR_NIB_HI = 0x46,
58 AC_Z3_REG_WR_ADDR_LO = 0x48,
59 AC_Z3_REG_WR_ADDR_NIB_LO = 0x4A,
60 AC_Z3_REG_SHUTUP = 0x4C,
61 AC_Z3_REG_RES50 = 0x50,
62 AC_Z3_REG_RES54 = 0x54,
63 AC_Z3_REG_RES58 = 0x58,
64 AC_Z3_REG_RES5C = 0x5C,
65 AC_Z3_REG_RES60 = 0x60,
66 AC_Z3_REG_RES64 = 0x64,
67 AC_Z3_REG_RES68 = 0x68,
68 AC_Z3_REG_RES6C = 0x6C,
69 AC_Z3_REG_RES70 = 0x70,
70 AC_Z3_REG_RES74 = 0x74,
71 AC_Z3_REG_RES78 = 0x78,
72 AC_Z3_REG_RES7C = 0x7C,
75 #define BOARDTYPE_Z3 0x80
76 #define BOARDTYPE_Z2 (0x80|0x40)
77 #define BOARDTYPE_FREEMEM 0x20
78 #define BOARDTYPE_BOOTROM 0x10
79 #define BOARDTYPE_LINKED 0x08
81 #define Z3_FLAGS_MEMORY 0x80
82 #define Z3_FLAGS_NOSHUTUP 0x40
83 #define Z3_FLAGS_EXTENSION 0x20
84 #define Z3_FLAGS_RESERVED 0x10
86 #define PISTORM_MANUF_ID 0xDEBE
88 unsigned int autoconfig_read_memory_8(struct emulator_config *cfg, unsigned int address);
89 void autoconfig_write_memory_8(struct emulator_config *cfg, unsigned int address, unsigned int value);
91 unsigned int autoconfig_read_memory_z3_8(struct emulator_config *cfg, unsigned int address);
92 void autoconfig_write_memory_z3_8(struct emulator_config *cfg, unsigned int address, unsigned int value);
93 void autoconfig_write_memory_z3_16(struct emulator_config *cfg, unsigned int address, unsigned int value);
95 void autoconfig_reset_all();
97 void add_z2_pic(uint8_t type, uint8_t index);
98 void remove_z2_pic(uint8_t type, uint8_t index);