sim: added extensionmodule support + progger
[calu.git] / 3b_sim / iext.hpp
diff --git a/3b_sim/iext.hpp b/3b_sim/iext.hpp
new file mode 100644 (file)
index 0000000..99b0842
--- /dev/null
@@ -0,0 +1,27 @@
+#ifndef __IEXT_I_
+#define __IEXT_I_
+
+class CCpu;
+
+#include "ccpu.hpp"
+
+class disasm;
+
+#include "disasm.h"
+
+
+class Iext {
+       public:
+               static void setCPU(CCpu* cpu) {m_cpu = cpu;}
+               static void setDisasm(disasm* dasm) { m_disasm = dasm; }
+
+               virtual ~Iext() {}
+               //called by cpu before every tick
+               virtual void applyTick() = 0;
+               virtual void loadData(const int address, CDat value) = 0;
+               virtual CDat readData(const int address) = 0;
+               static CCpu* m_cpu;
+               static disasm* m_disasm;
+};
+
+#endif