Added a Virtual Jaguar Rx logo in the About window
[clinton/Virtual-Jaguar-Rx.git] / src / jaguar.h
CommitLineData
cf76e892
JPM
1#ifndef __JAGUAR_H__
2#define __JAGUAR_H__
3
c89f8ff7 4#include <stdlib.h>
cf76e892
JPM
5#include <stdint.h>
6#include "memory.h" // For "UNKNOWN" enum
7
1081a838
JPM
8// Breakpoint struture
9typedef struct BrkInfo
10{
11 bool Used; // Allocated breakpoint
12 bool Active; // Active breakpoint
13 char *Name; // Functions's name
14 char *Filename; // Source filename
15 char *LineSrc; // Source code line
16 size_t NumLine; // Line number
17 size_t Adr; // Breakpoint address
18 size_t HitCounts; // Hit counts
19}S_BrkInfo;
20
cf76e892
JPM
21void JaguarSetScreenBuffer(uint32_t * buffer);
22void JaguarSetScreenPitch(uint32_t pitch);
1081a838
JPM
23extern void JaguarInit(void);
24extern void JaguarReset(void);
25extern void JaguarDone(void);
cf76e892 26
1081a838 27// Memory functions
cf76e892
JPM
28uint8_t JaguarReadByte(uint32_t offset, uint32_t who = UNKNOWN);
29uint16_t JaguarReadWord(uint32_t offset, uint32_t who = UNKNOWN);
30uint32_t JaguarReadLong(uint32_t offset, uint32_t who = UNKNOWN);
31void JaguarWriteByte(uint32_t offset, uint8_t data, uint32_t who = UNKNOWN);
32void JaguarWriteWord(uint32_t offset, uint16_t data, uint32_t who = UNKNOWN);
33void JaguarWriteLong(uint32_t offset, uint32_t data, uint32_t who = UNKNOWN);
34
35bool JaguarInterruptHandlerIsValid(uint32_t i);
36void JaguarDasm(uint32_t offset, uint32_t qt);
37
38void JaguarExecuteNew(void);
44432db5
JPM
39int JaguarStepInto(void);
40int JaguarStepOver(int depth);
cf76e892
JPM
41
42// Exports from JAGUAR.CPP
43
44extern int32_t jaguarCPUInExec;
45extern uint32_t jaguarMainROMCRC32, jaguarROMSize, jaguarRunAddress;
46extern char * jaguarEepromsPath;
47extern bool jaguarCartInserted;
48extern bool bpmActive, bpmSaveActive;
1081a838 49extern size_t bpmHitCounts;
cf76e892
JPM
50extern uint32_t bpmAddress1;
51extern bool startM68KTracing;
1081a838
JPM
52extern S_BrkInfo *brkInfo;
53extern size_t brkNbr;
cf76e892
JPM
54
55// Various clock rates
56
57#define M68K_CLOCK_RATE_PAL 13296950
58#define M68K_CLOCK_RATE_NTSC 13295453
59#define RISC_CLOCK_RATE_PAL 26593900
60#define RISC_CLOCK_RATE_NTSC 26590906
61
62// Stuff for IRQ handling
63
64#define ASSERT_LINE 1
65#define CLEAR_LINE 0
66
67//Temp debug stuff (will go away soon, so don't depend on these)
68
69void DumpMainMemory(void);
70uint8_t * GetRamPtr(void);
71
72#endif // __JAGUAR_H__