osDpGetStatus, osDpSetStatus, osDpSetNextBuffer
Controls/inquires Display processor (DP)
#include <ultra64.h> /* ultra64.h */ u32 osDpGetStatus(void); void osDpSetStatus(u32 status); s32 osDpSetNextBuffer(void *bufPtr, u64 size);
These routines provide basic control for the DP interface.
The osDpGetStatus call returns the hardware status of the DP command status register. The 32-bit returned value contains the following bits of potential interest:
DPC_STATUS_TMEM_BUSY | :DP texture load is in progress. |
DPC_STATUS_PIPE_BUSY | :DP primitive is still being processed. |
DPC_STATUS_CMD_BUSY | :DP command buffer is full. |
DPC_STATUS_DMA_BUSY | :DP DMA is in progress. |
The osDpSetStatus call updates the DP command status register with status. The bits of potential interest include:
DPC_CLR_TMEM_CTR | :Reset DP TMEM counter. |
DPC_CLR_PIPE_CTR | :Reset DP PIPE counter. |
DPC_CLR_CMD_CTR | :Reset DP CMD counter. |
DPC_CLR_CLOCK_CTR | :Reset DP CLOCK counter. |
The osDpSetNextBuffer call updates the DP pointers causing the DP to begin reading an RDP display list from the DRAM buffer located at the location pointed to by the bufPtr argument. The length of the buffer must be indicated by size, which is the number of bytes in the RDP display list.
osDpGetStatus, osDpSetStatus, osDpSetNextBuffer, and osDpGetCounters
1999/04/30 Changed Format