#endif\r
\r
\r
-static void init_jump_table(void);\r
+static int init_jump_table(void);\r
\r
/* Custom function handler */\r
typedef void (*icust_handler_func)(u32 vector);\r
};\r
\r
\r
-/********************/\r
-/* helper functions */\r
-/********************/\r
-\r
-\r
-#if 0\r
-static void famec_SetFetch(u32 low_adr, u32 high_adr, u32 fetch_adr)\r
-{\r
- u32 i, j;\r
-\r
- i = (low_adr >> M68K_FETCHSFT) & M68K_FETCHMASK;\r
- j = (high_adr >> M68K_FETCHSFT) & M68K_FETCHMASK;\r
-\r
- while (i <= j)\r
- g_m68kcontext->Fetch[i++] = fetch_adr;\r
-}\r
-\r
-static void famec_SetBanks(void)\r
-{\r
- u32 i=0;\r
- while(m68kcontext.fetch[i].low_addr != (u32)-1)\r
- {\r
- famec_SetFetch(m68kcontext.fetch[i].low_addr,m68kcontext.fetch[i].high_addr,m68kcontext.fetch[i].offset);\r
- i++;\r
- }\r
-}\r
-#endif\r
-\r
-\r
/***********************/\r
/* core main functions */\r
/***********************/\r
{\r
if (!initialised)\r
{\r
+#ifdef FAMEC_NO_GOTOS\r
init_jump_table();\r
return 0;\r
+#else\r
+ goto init_jump_table;\r
+#endif\r
}\r
\r
/* Comprobar si la CPU esta detenida debido a un doble error de bus */\r
// Cache SR\r
SET_SR(m68kcontext.sr)\r
\r
- // Cache PPL\r
- flag_I = M68K_PPL;\r
+ // Cache PPL\r
+ flag_I = M68K_PPL;\r
\r
// Fijar PC\r
SET_PC(m68kcontext.pc)\r
#endif\r
\r
return cycles - m68kcontext.io_cycle_counter;\r
-}\r
-\r
\r
+#ifdef FAMEC_NO_GOTOS\r
+}\r
\r
-static void init_jump_table(void)\r
+static int init_jump_table(void)\r
+{{\r
+#else\r
+init_jump_table:\r
{\r
+#endif\r
u32 i, j;\r
\r
for(i = 0x0000; i <= 0xFFFF; i += 0x0001)\r
JumpTable[0xF000 + i] = CAST_OP(0xF000);\r
\r
initialised = 1;\r
-}\r
+ return 0;\r
+}}\r
\r
\r