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