Document updates for the R3 release
[clinton/Virtual-Jaguar-Rx.git] / src / jaguar.h
1 #ifndef __JAGUAR_H__
2 #define __JAGUAR_H__
3
4 #include <stdint.h>
5 #include "memory.h" // For "UNKNOWN" enum
6
7 void JaguarSetScreenBuffer(uint32_t * buffer);
8 void JaguarSetScreenPitch(uint32_t pitch);
9 void JaguarInit(void);
10 void JaguarReset(void);
11 void JaguarDone(void);
12
13 uint8_t JaguarReadByte(uint32_t offset, uint32_t who = UNKNOWN);
14 uint16_t JaguarReadWord(uint32_t offset, uint32_t who = UNKNOWN);
15 uint32_t JaguarReadLong(uint32_t offset, uint32_t who = UNKNOWN);
16 void JaguarWriteByte(uint32_t offset, uint8_t data, uint32_t who = UNKNOWN);
17 void JaguarWriteWord(uint32_t offset, uint16_t data, uint32_t who = UNKNOWN);
18 void JaguarWriteLong(uint32_t offset, uint32_t data, uint32_t who = UNKNOWN);
19
20 bool JaguarInterruptHandlerIsValid(uint32_t i);
21 void JaguarDasm(uint32_t offset, uint32_t qt);
22
23 void JaguarExecuteNew(void);
24 void JaguarStepInto(void);
25 void JaguarStepOver(int depth);
26
27 // Exports from JAGUAR.CPP
28
29 extern int32_t jaguarCPUInExec;
30 extern uint32_t jaguarMainROMCRC32, jaguarROMSize, jaguarRunAddress;
31 extern char * jaguarEepromsPath;
32 extern bool jaguarCartInserted;
33 extern bool bpmActive, bpmSaveActive;
34 extern uint32_t bpmAddress1;
35 extern bool startM68KTracing;
36
37 // Various clock rates
38
39 #define M68K_CLOCK_RATE_PAL 13296950
40 #define M68K_CLOCK_RATE_NTSC 13295453
41 #define RISC_CLOCK_RATE_PAL 26593900
42 #define RISC_CLOCK_RATE_NTSC 26590906
43
44 // Stuff for IRQ handling
45
46 #define ASSERT_LINE 1
47 #define CLEAR_LINE 0
48
49 //Temp debug stuff (will go away soon, so don't depend on these)
50
51 void DumpMainMemory(void);
52 uint8_t * GetRamPtr(void);
53
54 #endif // __JAGUAR_H__