1 // SPDX-License-Identifier: MIT
10 #define MAX_NUM_MAPPED_ITEMS 8
11 #define SIZE_KILO 1024
12 #define SIZE_MEGA (1024 * 1024)
13 #define SIZE_GIGA (1024 * 1024 * 1024)
60 struct emulator_config {
61 unsigned int cpu_type;
63 unsigned char map_type[MAX_NUM_MAPPED_ITEMS];
64 unsigned long map_offset[MAX_NUM_MAPPED_ITEMS];
65 unsigned long map_high[MAX_NUM_MAPPED_ITEMS];
66 unsigned int map_size[MAX_NUM_MAPPED_ITEMS];
67 unsigned int rom_size[MAX_NUM_MAPPED_ITEMS];
68 unsigned char *map_data[MAX_NUM_MAPPED_ITEMS];
69 unsigned int map_mirror[MAX_NUM_MAPPED_ITEMS];
70 char *map_id[MAX_NUM_MAPPED_ITEMS];
72 struct platform_config *platform;
74 char *mouse_file, *keyboard_file;
76 char mouse_toggle_key, keyboard_toggle_key;
77 unsigned char mouse_enabled, mouse_autoconnect, keyboard_enabled, keyboard_grab, keyboard_autoconnect;
79 unsigned int loop_cycles;
80 unsigned int mapped_low, mapped_high;
81 unsigned int custom_low, custom_high;
84 struct platform_config {
88 int (*custom_read)(struct emulator_config *cfg, unsigned int addr, unsigned int *val, unsigned char type);
89 int (*custom_write)(struct emulator_config *cfg, unsigned int addr, unsigned int val, unsigned char type);
91 int (*register_read)(unsigned int addr, unsigned char type, unsigned int *val);
92 int (*register_write)(unsigned int addr, unsigned int value, unsigned char type);
94 int (*platform_initial_setup)(struct emulator_config *cfg);
95 void (*handle_reset)(struct emulator_config *cfg);
96 void (*shutdown)(struct emulator_config *cfg);
97 void (*setvar)(struct emulator_config *cfg, char *var, char *val);
101 extern "C" int get_mapped_item_by_address(struct emulator_config *cfg, uint32_t address);
103 unsigned int get_m68k_cpu_type(char *name);
104 struct emulator_config *load_config_file(char *filename);
105 void free_config_file(struct emulator_config *cfg);
107 int handle_mapped_read(struct emulator_config *cfg, unsigned int addr, unsigned int *val, unsigned char type);
108 int handle_mapped_write(struct emulator_config *cfg, unsigned int addr, unsigned int value, unsigned char type);
109 int get_named_mapped_item(struct emulator_config *cfg, char *name);
110 int get_mapped_item_by_address(struct emulator_config *cfg, uint32_t address);
111 uint8_t *get_mapped_data_pointer_by_address(struct emulator_config *cfg, uint32_t address);
112 void add_mapping(struct emulator_config *cfg, unsigned int type, unsigned int addr, unsigned int size, int mirr_addr, char *filename, char *map_id, unsigned int autodump);
113 unsigned int get_int(char *str);
116 #endif /* _CONFIG_FILE_H */