Commit | Line | Data |
---|---|---|
cf76e892 JPM |
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__ |