36 lines
942 B
C
36 lines
942 B
C
//
|
|
// GPU.H: Header file
|
|
//
|
|
|
|
#ifndef __GPU_H__
|
|
#define __GPU_H__
|
|
|
|
#include "memory.h"
|
|
|
|
#define GPU_CONTROL_RAM_BASE 0x00F02100
|
|
#define GPU_WORK_RAM_BASE 0x00F03000
|
|
|
|
void GPUInit(void);
|
|
void GPUReset(void);
|
|
void GPUExec(int32_t);
|
|
void GPUSetIRQLine(int irqline, int state);
|
|
|
|
uint8_t GPUReadByte(uint32_t offset, uint32_t who = UNKNOWN);
|
|
uint16_t GPUReadWord(uint32_t offset, uint32_t who = UNKNOWN);
|
|
uint32_t GPUReadLong(uint32_t offset, uint32_t who = UNKNOWN);
|
|
void GPUWriteByte(uint32_t offset, uint8_t data, uint32_t who = UNKNOWN);
|
|
void GPUWriteWord(uint32_t offset, uint16_t data, uint32_t who = UNKNOWN);
|
|
void GPUWriteLong(uint32_t offset, uint32_t data, uint32_t who = UNKNOWN);
|
|
|
|
bool GPUIsRunning(void);
|
|
|
|
// GPU interrupt numbers (from $F00100, bits 4-8)
|
|
|
|
enum { GPUIRQ_CPU = 0, GPUIRQ_DSP, GPUIRQ_TIMER, GPUIRQ_OBJECT, GPUIRQ_BLITTER };
|
|
|
|
// Exported vars
|
|
|
|
extern uint32_t gpu_reg_bank_0[], gpu_reg_bank_1[];
|
|
|
|
#endif // __GPU_H__
|