X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=cpu%2Fmusashi%2Fm68kcpu.h;h=a1dff7ded7829e151518ea75cc1b066ce463c910;hb=8fde2033ac268ee9fe198f5d1c9d0b964f2763ab;hp=50aa6cef979a5322712aea74037397e67e1d658e;hpb=3335750a7df62a52857348365e9dbbf6f23a0d29;p=picodrive.git diff --git a/cpu/musashi/m68kcpu.h b/cpu/musashi/m68kcpu.h index 50aa6ce..a1dff7d 100644 --- a/cpu/musashi/m68kcpu.h +++ b/cpu/musashi/m68kcpu.h @@ -27,8 +27,10 @@ #define M68KCPU__HEADER // notaz: something's missing this -#ifndef UINT16 +#ifndef UINT64 #define UINT64 unsigned long long +#endif +#ifndef UINT16 #define UINT32 unsigned int #define UINT16 unsigned short #define UINT8 unsigned char @@ -140,6 +142,7 @@ /* Exception Vectors handled by emulation */ #define EXCEPTION_BUS_ERROR 2 /* This one is not emulated! */ #define EXCEPTION_ADDRESS_ERROR 3 /* This one is partially emulated (doesn't stack a proper frame yet) */ +#undef EXCEPTION_ILLEGAL_INSTRUCTION #define EXCEPTION_ILLEGAL_INSTRUCTION 4 #define EXCEPTION_ZERO_DIVIDE 5 #define EXCEPTION_CHK 6 @@ -917,6 +920,7 @@ typedef struct // notaz sint cyc_remaining_cycles; + sint not_polling; } m68ki_cpu_core; // notaz @@ -1620,7 +1624,7 @@ INLINE void m68ki_stack_frame_buserr(uint sr) /* Format 8 stack frame (68010). * 68010 only. This is the 29 word bus/address error frame. */ -void m68ki_stack_frame_1000(uint pc, uint sr, uint vector) +INLINE void m68ki_stack_frame_1000(uint pc, uint sr, uint vector) { /* VERSION * NUMBER @@ -1674,7 +1678,7 @@ void m68ki_stack_frame_1000(uint pc, uint sr, uint vector) * if the error happens at an instruction boundary. * PC stacked is address of next instruction. */ -void m68ki_stack_frame_1010(uint sr, uint vector, uint pc) +INLINE void m68ki_stack_frame_1010(uint sr, uint vector, uint pc) { /* INTERNAL REGISTER */ m68ki_push_16(0); @@ -1721,7 +1725,7 @@ void m68ki_stack_frame_1010(uint sr, uint vector, uint pc) * if the error happens during instruction execution. * PC stacked is address of instruction in progress. */ -void m68ki_stack_frame_1011(uint sr, uint vector, uint pc) +INLINE void m68ki_stack_frame_1011(uint sr, uint vector, uint pc) { /* INTERNAL REGISTERS (18 words) */ m68ki_push_32(0); @@ -1965,7 +1969,7 @@ m68k_read_memory_8(0x00ffff01); /* Service an interrupt request and start exception processing */ -void m68ki_exception_interrupt(uint int_level) +INLINE void m68ki_exception_interrupt(uint int_level) { uint vector; uint sr; @@ -2010,6 +2014,7 @@ void m68ki_exception_interrupt(uint int_level) /* Get the new PC */ new_pc = m68ki_read_data_32((vector<<2) + REG_VBR); + //new_pc = m68k_read_immediate_32((vector<<2) + REG_VBR); // notaz hack /* If vector is uninitialized, call the uninitialized interrupt vector */ if(new_pc == 0)