/********************************************************************* * Copyright (C) 2003 Tord Lindstrom (pukko@home.se) * This file is subject to the terms and conditions of the PS2Link License. * See the file LICENSE in the main directory of this distribution for more * details. */ #ifndef PS2REGS_H #define PS2REGS_H /* TIMERS */ #define T0_COUNT *((volatile unsigned int *)0x10000000) #define T0_MODE *((volatile unsigned short *)0x10000010) #define T0_COMP *((volatile unsigned short *)0x10000020) #define T0_HOLD *((volatile unsigned short *)0x10000030) #define T1_COUNT *((volatile unsigned int *)0x10000800) #define T1_MODE *((volatile unsigned short *)0x10000810) #define T1_COMP *((volatile unsigned short *)0x10000820) #define T1_HOLD *((volatile unsigned short *)0x10000830) #define T2_COUNT *((volatile unsigned int *)0x10001000) #define T2_MODE *((volatile unsigned short *)0x10001010) #define T2_COMP *((volatile unsigned short *)0x10001020) #define T3_COUNT *((volatile unsigned int *)0x10001800) #define T3_MODE *((volatile unsigned short *)0x10001810) #define T3_COMP *((volatile unsigned short *)0x10001820) /* IPU */ #define IPU_CMD *((volatile unsigned long *)0x10002000) #define IPU_CTRL *((volatile unsigned int *)0x10002010) #define IPU_BP *((volatile unsigned int *)0x10002020) #define IPU_TOP *((volatile unsigned long *)0x10002030) /* GIF */ #define GIF_CTRL *((volatile unsigned int *)0x10003000) #define GIF_MODE *((volatile unsigned int *)0x10003010) #define GIF_STAT *((volatile unsigned int *)0x10003020) #define GIF_TAG0 *((volatile unsigned int *)0x10003040) #define GIF_TAG1 *((volatile unsigned int *)0x10003050) #define GIF_TAG2 *((volatile unsigned int *)0x10003060) #define GIF_TAG3 *((volatile unsigned int *)0x10003070) #define GIF_CNT *((volatile unsigned int *)0x10003080) #define GIF_P3CNT *((volatile unsigned int *)0x10003090) #define GIF_P3TAG *((volatile unsigned int *)0x100030a0) /* VIF */ #define VIF0_STAT *((volatile unsigned int *)0x10003800) #define VIF0_FBRST *((volatile unsigned int *)0x10003810) #define VIF0_ERR *((volatile unsigned int *)0x10003820) #define VIF0_MARK *((volatile unsigned int *)0x10003830) #define VIF0_CYCLE *((volatile unsigned int *)0x10003840) #define VIF0_MODE *((volatile unsigned int *)0x10003850) #define VIF0_NUM *((volatile unsigned int *)0x10003860) #define VIF0_MASK *((volatile unsigned int *)0x10003870) #define VIF0_CODE *((volatile unsigned int *)0x10003880) #define VIF0_ITOPS *((volatile unsigned int *)0x10003890) #define VIF0_ITOP *((volatile unsigned int *)0x100038d0) #define VIF0_R0 *((volatile unsigned int *)0x10003900) #define VIF0_R1 *((volatile unsigned int *)0x10003910) #define VIF0_R2 *((volatile unsigned int *)0x10003920) #define VIF0_R3 *((volatile unsigned int *)0x10003930) #define VIF0_C0 *((volatile unsigned int *)0x10003940) #define VIF0_C1 *((volatile unsigned int *)0x10003950) #define VIF0_C2 *((volatile unsigned int *)0x10003960) #define VIF0_C3 *((volatile unsigned int *)0x10003970) #define VIF1_STAT *((volatile unsigned int *)0x10003c00) #define VIF1_FBRST *((volatile unsigned int *)0x10003c10) #define VIF1_ERR *((volatile unsigned int *)0x10003c20) #define VIF1_MARK *((volatile unsigned int *)0x10003c30) #define VIF1_CYCLE *((volatile unsigned int *)0x10003c40) #define VIF1_MODE *((volatile unsigned int *)0x10003c50) #define VIF1_NUM *((volatile unsigned int *)0x10003c60) #define VIF1_MASK *((volatile unsigned int *)0x10003c70) #define VIF1_CODE *((volatile unsigned int *)0x10003c80) #define VIF1_ITOPS *((volatile unsigned int *)0x10003c90) #define VIF1_BASE *((volatile unsigned int *)0x10003ca0) #define VIF1_OFST *((volatile unsigned int *)0x10003cb0) #define VIF1_TOPS *((volatile unsigned int *)0x10003cc0) #define VIF1_ITOP *((volatile unsigned int *)0x10003cd0) #define VIF1_TOP *((volatile unsigned int *)0x10003ce0) #define VIF1_R0 *((volatile unsigned int *)0x10003d00) #define VIF1_R1 *((volatile unsigned int *)0x10003d10) #define VIF1_R2 *((volatile unsigned int *)0x10003d20) #define VIF1_R3 *((volatile unsigned int *)0x10003d30) #define VIF1_C0 *((volatile unsigned int *)0x10003d40) #define VIF1_C1 *((volatile unsigned int *)0x10003d50) #define VIF1_C2 *((volatile unsigned int *)0x10003d60) #define VIF1_C3 *((volatile unsigned int *)0x10003d70) /* FIFO */ //#define VIF0_FIFO(write) *((volatile unsigned int128 *)0x10004000) //#define VIF1_FIFO(read/write) *((volatile unsigned int128 *)0x10005000) //#define GIF_FIFO(write) *((volatile unsigned int128 *)0x10006000) //#define IPU_out_FIFO(read) *((volatile unsigned int128 *)0x10007000) //#define IPU_in_FIFO(write) *((volatile unsigned int128 *)0x10007010) /* DMAC */ #define CHCR 0x00 #define MADR 0x04 #define QWC 0x08 #define TADR 0x0C #define ASR0 0x10 #define ASR1 0x14 #define DMA0 ((volatile unsigned int *)0x10008000) #define DMA1 ((volatile unsigned int *)0x10009000) #define DMA2 ((volatile unsigned int *)0x1000a000) #define DMA3 ((volatile unsigned int *)0x1000b000) #define DMA4 ((volatile unsigned int *)0x1000b400) #define DMA5 ((volatile unsigned int *)0x1000c000) #define DMA6 ((volatile unsigned int *)0x1000c400) #define DMA7 ((volatile unsigned int *)0x1000c800) #define DMA8 ((volatile unsigned int *)0x1000d000) #define DMA9 ((volatile unsigned int *)0x1000d400) #define D0_CHCR *((volatile unsigned int *)0x10008000) #define D0_MADR *((volatile unsigned int *)0x10008010) #define D0_QWC *((volatile unsigned int *)0x10008020) #define D0_TADR *((volatile unsigned int *)0x10008030) #define D0_ASR0 *((volatile unsigned int *)0x10008040) #define D0_ASR1 *((volatile unsigned int *)0x10008050) #define D1_CHCR *((volatile unsigned int *)0x10009000) #define D1_MADR *((volatile unsigned int *)0x10009010) #define D1_QWC *((volatile unsigned int *)0x10009020) #define D1_TADR *((volatile unsigned int *)0x10009030) #define D1_ASR0 *((volatile unsigned int *)0x10009040) #define D1_ASR1 *((volatile unsigned int *)0x10009050) #define D2_CHCR *((volatile unsigned int *)0x1000a000) #define D2_MADR *((volatile unsigned int *)0x1000a010) #define D2_QWC *((volatile unsigned int *)0x1000a020) #define D2_TADR *((volatile unsigned int *)0x1000a030) #define D2_ASR0 *((volatile unsigned int *)0x1000a040) #define D2_ASR1 *((volatile unsigned int *)0x1000a050) #define D3_CHCR *((volatile unsigned int *)0x1000b000) #define D3_MADR *((volatile unsigned int *)0x1000b010) #define D3_QWC *((volatile unsigned int *)0x1000b020) #define D4_CHCR *((volatile unsigned int *)0x1000b400) #define D4_MADR *((volatile unsigned int *)0x1000b410) #define D4_QWC *((volatile unsigned int *)0x1000b420) #define D4_TADR *((volatile unsigned int *)0x1000b430) #define D5_CHCR *((volatile unsigned int *)0x1000c000) #define D5_MADR *((volatile unsigned int *)0x1000c010) #define D5_QWC *((volatile unsigned int *)0x1000c020) #define D6_CHCR *((volatile unsigned int *)0x1000c400) #define D6_MADR *((volatile unsigned int *)0x1000c410) #define D6_QWC *((volatile unsigned int *)0x1000c420) #define D7_CHCR *((volatile unsigned int *)0x1000c800) #define D7_MADR *((volatile unsigned int *)0x1000c810) #define D7_QWC *((volatile unsigned int *)0x1000c820) #define D8_CHCR *((volatile unsigned int *)0x1000d000) #define D8_MADR *((volatile unsigned int *)0x1000d010) #define D8_QWC *((volatile unsigned int *)0x1000d020) #define D8_SADR *((volatile unsigned int *)0x1000d080) #define D9_CHCR *((volatile unsigned int *)0x1000d400) #define D9_MADR *((volatile unsigned int *)0x1000d410) #define D9_QWC *((volatile unsigned int *)0x1000d420) #define D9_TADR *((volatile unsigned int *)0x1000d430) #define D9_SADR *((volatile unsigned int *)0x1000d480) /* DMAC */ #define D_CTRL *((volatile unsigned int *)0x1000e000) #define D_STAT *((volatile unsigned int *)0x1000e010) #define D_PCR *((volatile unsigned int *)0x1000e020) #define D_SQWC *((volatile unsigned int *)0x1000e030) #define D_RBSR *((volatile unsigned int *)0x1000e040) #define D_RBOR *((volatile unsigned int *)0x1000e050) #define D_STADR *((volatile unsigned int *)0x1000e060) /* INTC */ //#define I_STAT 0x1000f000 //#define I_MASK 0x1000f010 /* TOOL putchar */ // .byte KPUTCHAR (0x1000f180) /* SIF */ // #define SB_SMFLG (0x1000f230) /* DMAC */ #define D_ENABLER *((volatile unsigned int *)0x1000f520) #define D_ENABLEW *((volatile unsigned int *)0x1000f590) /* VU Mem */ #define VUMicroMem0 *((volatile unsigned int *)0x11000000) #define VUMem0 *((volatile unsigned int *)0x11004000) #define VUMicroMem1 *((volatile unsigned int *)0x11008000) #define VUMem1 *((volatile unsigned int *)0x1100c000) /* GS Privileged */ #define GS_PMODE *((volatile unsigned long *)0x12000000) #define GS_SMODE1 *((volatile unsigned long *)0x12000010) #define GS_SMODE2 *((volatile unsigned long *)0x12000020) #define GS_SRFSH *((volatile unsigned long *)0x12000030) #define GS_SYNCH1 *((volatile unsigned long *)0x12000040) #define GS_SYNCH2 *((volatile unsigned long *)0x12000050) #define GS_SYNCV *((volatile unsigned long *)0x12000060) #define GS_DISPFB1 *((volatile unsigned long *)0x12000070) #define GS_DISPLAY1 *((volatile unsigned long *)0x12000080) #define GS_DISPFB2 *((volatile unsigned long *)0x12000090) #define GS_DISPLAY2 *((volatile unsigned long *)0x120000a0) #define GS_EXTBUF *((volatile unsigned long *)0x120000b0) #define GS_EXTDATA *((volatile unsigned long *)0x120000c0) #define GS_EXTWRITE *((volatile unsigned long *)0x120000d0) #define GS_BGCOLOR *((volatile unsigned long *)0x120000e0) #define GS_CSR *((volatile unsigned long *)0x12001000) #define GS_IMR *((volatile unsigned long *)0x12001010) #define GS_BUSDIR *((volatile unsigned long *)0x12001040) #define GS_SIGLBLID *((volatile unsigned long *)0x12001080) /* GS General */ #define GS_PRIM 0x00 #define GS_RGBAQ 0x01 #define GS_ST 0x02 #define GS_UV 0x03 #define GS_XYZF2 0x04 #define GS_XYZ2 0x05 #define GS_TEX0_1 0x06 #define GS_TEX0_2 0x07 #define GS_CLAMP_1 0x08 #define GS_CLAMP_2 0x09 #define GS_FOG 0x0a #define GS_XYZF3 0x0c #define GS_XYZ3 0x0d #define GS_AD 0x0e #define GS_TEX1_1 0x14 #define GS_TEX1_2 0x15 #define GS_TEX2_1 0x16 #define GS_TEX2_2 0x17 #define GS_XYOFFSET_1 0x18 #define GS_XYOFFSET_2 0x19 #define GS_PRMODECONT 0x1a #define GS_PRMODE 0x1b #define GS_TEXCLUT 0x1c #define GS_SCANMSK 0x22 #define GS_MIPTBP1_1 0x34 #define GS_MIPTBP1_2 0x35 #define GS_MIPTBP2_1 0x36 #define GS_MIPTBP2_2 0x37 #define GS_TEXA 0x3b #define GS_FOGCOL 0x3d #define GS_TEXFLUSH 0x3f #define GS_SCISSOR_1 0x40 #define GS_SCISSOR_2 0x41 #define GS_ALPHA_1 0x42 #define GS_ALPHA_2 0x43 #define GS_DIMX 0x44 #define GS_DTHE 0x45 #define GS_COLCLAMP 0x46 #define GS_TEST_1 0x47 #define GS_TEST_2 0x48 #define GS_PABE 0x49 #define GS_FBA_1 0x4a #define GS_FBA_2 0x4b #define GS_FRAME_1 0x4c #define GS_FRAME_2 0x4d #define GS_ZBUF_1 0x4e #define GS_ZBUF_2 0x4f #define GS_BITBLTBUF 0x50 #define GS_TRXPOS 0x51 #define GS_TRXREG 0x52 #define GS_TRXDIR 0x53 #define GS_HWREG 0x54 #define GS_SIGNAL 0x60 #define GS_FINISH 0x61 #define GS_LABEL 0x62 #endif