]> git.sesse.net Git - pistorm/blobdiff - m68k.h
introducing CPU state parameter
[pistorm] / m68k.h
diff --git a/m68k.h b/m68k.h
index 555b314f04f81f773f232d618b2951cf13f0955b..bb8e68614bdd874426998eeea9977f558d8b05b5 100644 (file)
--- a/m68k.h
+++ b/m68k.h
@@ -52,6 +52,7 @@ extern "C" {
 #include MUSASHI_CNF
 #else
 #include "m68kconf.h"
+
 #endif
 
 /* ======================================================================== */
@@ -71,6 +72,10 @@ extern "C" {
 #define M68K_IRQ_6    6
 #define M68K_IRQ_7    7
 
+#define M68K_SZ_LONG  0
+#define M68K_SZ_BYTE  1
+#define M68K_SZ_WORD  2
+
 
 /* Special interrupt acknowledge values.
  * Use these as special returns from the interrupt acknowledge callback
@@ -89,6 +94,7 @@ extern "C" {
  */
 #define M68K_INT_ACK_SPURIOUS      0xfffffffe
 
+struct m68ki_cpu_core;
 
 /* CPU types for use in m68k_set_cpu_type() */
 enum
@@ -175,6 +181,10 @@ typedef enum
  *       USER mode, but it is also slower.
  */
 
+#define m68k_read_disassembler_8 m68k_read_memory_8
+#define m68k_read_disassembler_16 m68k_read_memory_16
+#define m68k_read_disassembler_32 m68k_read_memory_32
+
 /* Read from anywhere */
 unsigned int  m68k_read_memory_8(unsigned int address);
 unsigned int  m68k_read_memory_16(unsigned int address);
@@ -199,6 +209,11 @@ void m68k_write_memory_8(unsigned int address, unsigned int value);
 void m68k_write_memory_16(unsigned int address, unsigned int value);
 void m68k_write_memory_32(unsigned int address, unsigned int value);
 
+/* PiStorm speed hax */
+void m68k_add_ram_range(uint32_t addr, uint32_t upper, unsigned char *ptr);
+void m68k_add_rom_range(uint32_t addr, uint32_t upper, unsigned char *ptr);
+void m68k_clear_ranges();
+
 /* Special call to simulate undocumented 68k behavior when move.l with a
  * predecrement destination mode is executed.
  * To simulate real 68k behavior, first write the high word to
@@ -208,8 +223,6 @@ void m68k_write_memory_32(unsigned int address, unsigned int value);
  */
 void m68k_write_memory_32_pd(unsigned int address, unsigned int value);
 
-
-
 /* ======================================================================== */
 /* ============================== CALLBACKS =============================== */
 /* ======================================================================== */
@@ -316,10 +329,10 @@ void m68k_init(void);
  *       the CPU for the first time, the CPU will be set to
  *       M68K_CPU_TYPE_68000.
  */
-void m68k_pulse_reset(void);
+void m68k_pulse_reset(struct m68ki_cpu_core *state);
 
 /* execute num_cycles worth of instructions.  returns number of cycles used */
-int m68k_execute(int num_cycles);
+int m68k_execute(struct m68ki_cpu_core *state, int num_cycles);
 
 /* These functions let you read/write/modify the number of cycles left to run
  * while m68k_execute() is running.