25 // Exports from JAGUAR.CPP
27 extern int32 jaguar_cpu_in_exec;
28 extern uint32 jaguar_mainRom_crc32;
29 extern char * jaguar_eeproms_path;
30 extern char * whoName[9];
32 void jaguar_init(void);
33 void jaguar_reset(void);
34 //void jaguar_reset_handler(void);
35 void jaguar_done(void);
37 uint8 JaguarReadByte(uint32 offset, uint32 who = UNKNOWN);
38 uint16 JaguarReadWord(uint32 offset, uint32 who = UNKNOWN);
39 uint32 JaguarReadLong(uint32 offset, uint32 who = UNKNOWN);
40 void JaguarWriteByte(uint32 offset, uint8 data, uint32 who = UNKNOWN);
41 void JaguarWriteWord(uint32 offset, uint16 data, uint32 who = UNKNOWN);
42 void JaguarWriteLong(uint32 offset, uint32 data, uint32 who = UNKNOWN);
44 uint32 jaguar_interrupt_handler_is_valid(uint32 i);
45 void jaguar_dasm(uint32 offset, uint32 qt);
48 void JaguarExecute(int16 * backbuffer, bool render);
50 // Some handy macros to help converting native endian to big endian (jaguar native)
53 #define SET32(r, a, v) r[(a)] = ((v) & 0xFF000000) >> 24, r[(a)+1] = ((v) & 0x00FF0000) >> 16, \
54 r[(a)+2] = ((v) & 0x0000FF00) >> 8, r[(a)+3] = (v) & 0x000000FF
55 #define GET32(r, a) ((r[(a)] << 24) | (r[(a)+1] << 16) | (r[(a)+2] << 8) | r[(a)+3])
56 #define SET16(r, a, v) r[(a)] = ((v) & 0xFF00) >> 8, r[(a)+1] = (v) & 0xFF
57 #define GET16(r, a) ((r[(a)] << 8) | r[(a)+1])
59 // Various clock rates
61 #define M68K_CLOCK_RATE_PAL 13296950
62 #define M68K_CLOCK_RATE_NTSC 13295453
63 #define RISC_CLOCK_RATE_PAL 26593900
64 #define RISC_CLOCK_RATE_NTSC 26590906
66 // Stuff for IRQ handling
71 //Temp debug stuff (will go away soon, so don't depend on these)
73 void DumpMainMemory(void);
74 uint8 * GetRamPtr(void);
76 #endif // __JAGUAR_H__