Handle number of M68K cycles used when tracing in debugger mode
[clinton/Virtual-Jaguar-Rx.git] / src / gpu.h
1 //
2 // GPU.H: Header file
3 //
4
5 #ifndef __GPU_H__
6 #define __GPU_H__
7
8 //#include "types.h"
9 #include "memory.h"
10
11 #define GPU_CONTROL_RAM_BASE 0x00F02100
12 #define GPU_WORK_RAM_BASE 0x00F03000
13
14 void GPUInit(void);
15 void GPUReset(void);
16 void GPUExec(int32_t);
17 void GPUDone(void);
18 void GPUUpdateRegisterBanks(void);
19 void GPUHandleIRQs(void);
20 void GPUSetIRQLine(int irqline, int state);
21
22 uint8_t GPUReadByte(uint32_t offset, uint32_t who = UNKNOWN);
23 uint16_t GPUReadWord(uint32_t offset, uint32_t who = UNKNOWN);
24 uint32_t GPUReadLong(uint32_t offset, uint32_t who = UNKNOWN);
25 void GPUWriteByte(uint32_t offset, uint8_t data, uint32_t who = UNKNOWN);
26 void GPUWriteWord(uint32_t offset, uint16_t data, uint32_t who = UNKNOWN);
27 void GPUWriteLong(uint32_t offset, uint32_t data, uint32_t who = UNKNOWN);
28
29 uint32_t GPUGetPC(void);
30 void GPUReleaseTimeslice(void);
31 void GPUResetStats(void);
32 uint32_t GPUReadPC(void);
33 bool GPUIsRunning(void);
34
35 // GPU interrupt numbers (from $F00100, bits 4-8)
36
37 enum { GPUIRQ_CPU = 0, GPUIRQ_DSP, GPUIRQ_TIMER, GPUIRQ_OBJECT, GPUIRQ_BLITTER };
38
39 // Exported vars
40
41 extern uint32_t gpu_reg_bank_0[], gpu_reg_bank_1[];
42
43 #endif // __GPU_H__