OSDN Git Service

mapper i/o and debugger added.
[motonesemu/motonesemu.git] / include / mapper.h
index 0a574d9..868f61e 100644 (file)
@@ -1,34 +1,56 @@
 #ifndef __mapper_h__
 #define __mapper_h__
 
+typedef void (*mp_set_addr_t)(unsigned short addr);
+typedef unsigned char (*mp_get_data_t)(void);
 
-#define FNAME_LEN 1024
-extern int mapper_load;
-extern char mapper_fname [FNAME_LEN];
+typedef unsigned char (*mp_dbg_get_byte_t)(unsigned short offset);
+typedef unsigned short (*mp_dbg_get_short_t)(unsigned short offset);
 
-int init_mapper(void);
-void clean_mapper(void);
 
 #ifdef __mapper_impl__
 
-/*mapper side.*/
-int mp_init(void);
-int mp_load(void);
+/*======================
+     mapper side.
+======================*/
+int mp_init(mp_set_addr_t set_func, mp_get_data_t get_func);
+int mp_set_debugger(mp_dbg_get_byte_t byte_func, mp_dbg_get_short_t short_func);
 void mp_clean(void);
 
+void mp_set_addr(unsigned short addr);
+unsigned char mp_get_data(void);
+
+unsigned char mp_dbg_get_byte(unsigned short offset);
+unsigned short mp_dbg_get_short(unsigned short offset);
+
 #else /*__mapper_impl__*/
 
-/*emulator side.*/
+/*======================
+    emulator side.
+======================*/
+
+#define FNAME_LEN 1024
+extern int mapper_load;
+extern char mapper_fname [FNAME_LEN];
+
+int init_mapper(void);
+void clean_mapper(void);
 
 
-typedef int (*mp_init_t)(void);
-typedef int (*mp_load_t)(void);
+typedef int (*mp_init_t)(mp_set_addr_t set_func, mp_get_data_t get_func);
 typedef void (*mp_clean_t)(void);
+typedef int (*mp_set_debugger_t)(mp_dbg_get_byte_t byte_func, mp_dbg_get_short_t short_func);
 
 mp_init_t mp_init;
-mp_load_t mp_load;
 mp_clean_t mp_clean;
 
+mp_set_addr_t mp_set_addr;
+mp_get_data_t mp_get_data;
+
+mp_set_debugger_t mp_set_debugger;
+mp_dbg_get_byte_t mp_dbg_get_byte;
+mp_dbg_get_short_t mp_dbg_get_short;
+
 #endif /*__mapper_impl__*/
 
 #endif /*__mapper_h__*/