pass jumptable ptr from C
[cyclone68000.git] / Cyclone.h
index fdcff59..f3c1835 100644 (file)
--- a/Cyclone.h
+++ b/Cyclone.h
@@ -19,6 +19,8 @@ extern "C" {
 \r
 extern int CycloneVer; // Version number of library\r
 \r
+extern long CycloneJumpTab[65536]; // default jump table\r
+\r
 struct Cyclone\r
 {\r
   unsigned int d[8];    // [r7,#0x00]\r
@@ -55,10 +57,14 @@ struct Cyclone
 };\r
 \r
 // Initialize. Used only if Cyclone was compiled with compressed jumptable, see config.h\r
-void CycloneInit(void);\r
+#define CycloneInit() \\r
+       CycloneInitJT(CycloneJumpTab)\r
+void CycloneInitJT(void *jt);\r
 \r
 // Reset\r
-void CycloneReset(struct Cyclone *pcy);\r
+#define CycloneReset(pcy) \\r
+       CycloneResetJT(pcy, CycloneJumpTab)\r
+void CycloneResetJT(struct Cyclone *pcy, void *jt);\r
 \r
 // Run cyclone. Cycles should be specified in context (pcy->cycles)\r
 void CycloneRun(struct Cyclone *pcy);\r
@@ -78,7 +84,9 @@ void CyclonePack(const struct Cyclone *pcy, void *save_buffer);
 void CycloneUnpack(struct Cyclone *pcy, const void *save_buffer);\r
 \r
 // genesis: if 1, switch to normal TAS handlers\r
-void CycloneSetRealTAS(int use_real);\r
+#define CycloneSetRealTAS(use_real) \\r
+       CycloneSetRealTAS_JT(use_real, CycloneJumpTab)\r
+void CycloneSetRealTAS_JT(int use_real, void *jt);\r
 \r
 \r
 // These values are special return values for IrqCallback.\r