]> git.sesse.net Git - pistorm/blob - config_file/config_file.h
Cleanup, move mouse/keyboard input code out of emulator.c
[pistorm] / config_file / config_file.h
1 #include "../m68k.h"
2
3 #define MAX_NUM_MAPPED_ITEMS 8
4 #define SIZE_KILO 1024
5 #define SIZE_MEGA (1024 * 1024)
6 #define SIZE_GIGA (1024 * 1024 * 1024)
7
8 typedef enum {
9   MAPTYPE_NONE,
10   MAPTYPE_ROM,
11   MAPTYPE_RAM,
12   MAPTYPE_REGISTER,
13   MAPTYPE_NUM,
14 } map_types;
15
16 typedef enum {
17   MAPCMD_UNKNOWN,
18   MAPCMD_TYPE,
19   MAPCMD_ADDRESS,
20   MAPCMD_SIZE,
21   MAPCMD_RANGE,
22   MAPCMD_FILENAME,
23   MAPCMD_OVL_REMAP,
24   MAPCMD_MAP_ID,
25   MAPCMD_NUM,
26 } map_cmds;
27
28 typedef enum {
29   CONFITEM_NONE,
30   CONFITEM_CPUTYPE,
31   CONFITEM_MAP,
32   CONFITEM_LOOPCYCLES,
33   CONFITEM_MOUSE,
34   CONFITEM_KEYBOARD,
35   CONFITEM_NUM,
36 } config_items;
37
38 typedef enum {
39   OP_TYPE_BYTE,
40   OP_TYPE_WORD,
41   OP_TYPE_LONGWORD,
42   OP_TYPE_MEM,
43   OP_TYPE_NUM,
44 } map_op_types;
45
46 struct emulator_config {
47   unsigned int cpu_type;
48
49   unsigned char map_type[MAX_NUM_MAPPED_ITEMS];
50   long map_offset[MAX_NUM_MAPPED_ITEMS];
51   unsigned int map_size[MAX_NUM_MAPPED_ITEMS];
52   unsigned char *map_data[MAX_NUM_MAPPED_ITEMS];
53   int map_mirror[MAX_NUM_MAPPED_ITEMS];
54   char *map_id[MAX_NUM_MAPPED_ITEMS];
55
56   char *mouse_file;
57
58   char mouse_toggle_key, keyboard_toggle_key;
59   unsigned char mouse_enabled, keyboard_enabled;
60
61   unsigned int loop_cycles;
62 };
63
64 unsigned int get_m68k_cpu_type(char *name);
65 struct emulator_config *load_config_file(char *filename);
66
67 int handle_mapped_read(struct emulator_config *cfg, unsigned int addr, unsigned int *val, unsigned char type, unsigned char mirror);
68 int handle_mapped_write(struct emulator_config *cfg, unsigned int addr, unsigned int value, unsigned char type, unsigned char mirror);
69 int handle_register_read(unsigned int addr, unsigned char type, unsigned int *val);
70 int handle_register_write(unsigned int addr, unsigned int value, unsigned char type);