X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=config_file%2Fconfig_file.h;h=6880f0fcada497f7912ca1f9c3b62ee06dc2013a;hb=59a59c3067a086f8ab8522200819552c4603caac;hp=e6e766dcad79acd641bc38cb300bdca132ba7ee9;hpb=93f7465e336c53528f8504227a2bf743ad5308e9;p=pistorm diff --git a/config_file/config_file.h b/config_file/config_file.h index e6e766d..6880f0f 100644 --- a/config_file/config_file.h +++ b/config_file/config_file.h @@ -1,4 +1,9 @@ -#include "../m68k.h" +#ifndef _CONFIG_FILE_H +#define _CONFIG_FILE_H + +#include "m68k.h" + +#include #define MAX_NUM_MAPPED_ITEMS 8 #define SIZE_KILO 1024 @@ -33,6 +38,7 @@ typedef enum { CONFITEM_MOUSE, CONFITEM_KEYBOARD, CONFITEM_PLATFORM, + CONFITEM_SETVAR, CONFITEM_NUM, } config_items; @@ -49,6 +55,7 @@ struct emulator_config { unsigned char map_type[MAX_NUM_MAPPED_ITEMS]; long map_offset[MAX_NUM_MAPPED_ITEMS]; + long map_high[MAX_NUM_MAPPED_ITEMS]; unsigned int map_size[MAX_NUM_MAPPED_ITEMS]; unsigned int rom_size[MAX_NUM_MAPPED_ITEMS]; unsigned char *map_data[MAX_NUM_MAPPED_ITEMS]; @@ -63,10 +70,13 @@ struct emulator_config { unsigned char mouse_enabled, keyboard_enabled; unsigned int loop_cycles; + unsigned int mapped_low, mapped_high; + unsigned int custom_low, custom_high; }; struct platform_config { char *subsys; + unsigned char id; int (*custom_read)(struct emulator_config *cfg, unsigned int addr, unsigned int *val, unsigned char type); int (*custom_write)(struct emulator_config *cfg, unsigned int addr, unsigned int val, unsigned char type); @@ -75,12 +85,18 @@ struct platform_config { int (*register_write)(unsigned int addr, unsigned int value, unsigned char type); int (*platform_initial_setup)(struct emulator_config *cfg); - void (*setvar)(char *var, char *val); + void (*handle_reset)(struct emulator_config *cfg); + void (*shutdown)(struct emulator_config *cfg); + void (*setvar)(struct emulator_config *cfg, char *var, char *val); }; unsigned int get_m68k_cpu_type(char *name); struct emulator_config *load_config_file(char *filename); -int handle_mapped_read(struct emulator_config *cfg, unsigned int addr, unsigned int *val, unsigned char type, unsigned char mirror); -int handle_mapped_write(struct emulator_config *cfg, unsigned int addr, unsigned int value, unsigned char type, unsigned char mirror); +int handle_mapped_read(struct emulator_config *cfg, unsigned int addr, unsigned int *val, unsigned char type); +int handle_mapped_write(struct emulator_config *cfg, unsigned int addr, unsigned int value, unsigned char type); int get_named_mapped_item(struct emulator_config *cfg, char *name); +int get_mapped_item_by_address(struct emulator_config *cfg, uint32_t address); +unsigned int get_int(char *str); + +#endif /* _CONFIG_FILE_H */