Go to the documentation of this file.00001 #ifndef _ARCH_GBA_H_
00002 #define _ARCH_GBA_H_
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
00026 
00027 
00028 
00029 
00030 
00031 
00032 
00033 
00034 
00035 
00036 
00037 
00038 
00039 
00040 
00041 
00042 
00043 
00044 
00045 
00046 
00047 
00048 
00049 
00053 #define WRAM_START      0x03000000      
00054 #define WRAM_END        (WRAM_START + 0x8000)   
00055 #define INT_VECTOR      (WRAM_END - 4)  
00056 
00060 #define REG_DISPCNT     0x04000000      
00061 #define REG_STAT        0x04000004      
00062 #define REG_VCOUNT      0x04000006      
00063 #define REG_BG0CNT      0x04000008      
00064 #define REG_BG1CNT      0x0400000a      
00065 #define REG_BG2CNT      0x0400000c      
00066 #define REG_BG3CNT      0x0400000e      
00067 #define REG_BG0HOFS     0x04000010      
00068 #define REG_BG0VOFS     0x04000012      
00069 #define REG_BG1HOFS     0x04000014      
00070 #define REG_BG1VOFS     0x04000016      
00071 #define REG_BG2HOFS     0x04000018      
00072 #define REG_BG2VOFS     0x0400001a      
00073 #define REG_BG3HOFS     0x0400001c      
00074 #define REG_BG3VOFS     0x0400001e      
00075 #define REG_BG2PA       0x04000020      
00076 #define REG_BG2PB       0x04000022      
00077 #define REG_BG2PC       0x04000024      
00078 #define REG_BG2PD       0x04000026      
00079 #define REG_BG2X        0x04000028      
00080 #define REG_BG2Y        0x0400002c      
00081 #define REG_BG3PA       0x04000030      
00082 #define REG_BG3PB       0x04000032      
00083 #define REG_BG3PC       0x04000034      
00084 #define REG_BG3PD       0x04000036      
00085 #define REG_BG3X        0x04000038      
00086 #define REG_BG3Y        0x0400003c      
00087 #define REG_WINCNT      0x04000040      
00088 #define REG_WININ       0x04000048      
00089 #define REG_WINOUT      0x0400004a      
00090 #define REG_MOSAIC      0x0400004c      
00091 #define REG_BLDCNT      0x04000050      
00092 #define REG_BLDALPHA    0x04000052      
00093 #define REG_BLDY        0x04000054      
00094 
00098 #define REG_SOUND1CNT   0x04000060      
00099 #define REG_SOUND2CNT   0x04000068      
00100 #define REG_SOUND3CNT   0x04000070      
00101 #define REG_SOUND4CNT   0x04000078      
00102 #define REG_SOUNDCNT    0x04000080      
00103 #define REG_SOUNDBIAS   0x04000088      
00104 #define REG_WAVE_RAM0   0x04000090      
00105 #define REG_WAVE_RAM1   0x04000094      
00106 #define REG_WAVE_RAM2   0x04000098      
00107 #define REG_WAVE_RAM3   0x0400009c      
00108 #define REG_FIFO_A      0x040000a0      
00109 #define REG_FIFO_B      0x040000a4      
00110 
00114 #define REG_DMA0SAD     0x040000b0      
00115 #define REG_DMA0DAD     0x040000b4      
00116 #define REG_DMA0CNT     0x040000b8      
00117 #define REG_DMA1SAD     0x040000bc      
00118 #define REG_DMA1DAD     0x040000c0      
00119 #define REG_DMA1CNT     0x040000c4      
00120 #define REG_DMA2SAD     0x040000c8      
00121 #define REG_DMA2DAD     0x040000cc      
00122 #define REG_DMA2CNT     0x040000d0      
00123 #define REG_DMA3SAD     0x040000d4      
00124 #define REG_DMA3DAD     0x040000d8      
00125 #define REG_DMA3CNT     0x040000dc      
00126 
00130 #define REG_TMR0CNT     0x04000100      
00131 #define REG_TMR1CNT     0x04000104      
00132 #define REG_TMR2CNT     0x04000108      
00133 #define REG_TMR3CNT     0x0400010c      
00134 
00138 #define REG_SIODATA32   0x04000120      
00139 #define REG_SIOCNT      0x04000128      
00140 #define REG_SIODATA8    0x0400012a      
00141 
00145 #define REG_KEYINPUT    0x04000130      
00146 #define REG_KEYCNT      0x04000132      
00147 
00151 #define REG_RCNT        0x04000134      
00152 
00156 #define REG_JOYCNT      0x04000140      
00157 #define REG_JOYSTAT     0x04000158      
00158 #define REG_JOY_RECV    0x04000150      
00159 #define REG_JOY_TRANS   0x04000154      
00160 
00164 #define REG_IE          0x04000200      
00165 #define REG_IF          0x04000202      
00166 #define REG_WAITCNT     0x04000204      
00167 #define REG_IME         0x04000208      
00168 
00172 #define INT_VBLANK      0x0001      
00173 #define INT_HBLANK      0x0002      
00174 #define INT_VCOUNT      0x0004      
00175 #define INT_TMR0        0x0008      
00176 #define INT_TMR1        0x0010      
00177 #define INT_TMR2        0x0020      
00178 #define INT_TMR3        0x0040      
00179 #define INT_SIO         0x0080      
00180 #define INT_DMA0        0x0100      
00181 #define INT_DMA1        0x0200      
00182 #define INT_DMA2        0x0400      
00183 #define INT_DMA3        0x0800      
00184 #define INT_KEYPAD      0x1000      
00185 #define INT_GAMEPAK     0x2000      
00186 
00190 #define REG_HALTCNT     0x04000300      
00191 
00192 
00193 #define outw(_reg, _val)    (*((volatile unsigned short *)(_reg)) = (_val))
00194 #define outdw(_reg, _val)   (*((volatile unsigned long *)(_reg)) = (_val))
00195 #define inw(_reg)           (*((volatile unsigned short *)(_reg)))
00196 #define indw(_reg)          (*((volatile unsigned long *)(_reg)))
00197 
00198 
00199 #define GBAKEY_A        0x0001
00200 #define GBAKEY_B        0x0002
00201 #define GBAKEY_SELECT   0x0003
00202 #define GBAKEY_START    0x0008
00203 #define GBAKEY_RIGHT    0x0010
00204 #define GBAKEY_LEFT     0x0020
00205 #define GBAKEY_UP       0x0040
00206 #define GBAKEY_DOWN     0x0080
00207 #define GBAKEY_R        0x0100
00208 #define GBAKEY_L        0x0200
00209 
00213 #define TMR_PRE_64      0x00010000  
00214 #define TMR_PRE_256     0x00020000  
00215 #define TMR_PRE_1024    0x00030000  
00216 #define TMR_IRQ_ENA     0x00400000  
00217 #define TMR_ENA         0x00800000  
00218 
00222 #define SIO_BAUD_9600     0x0000
00223 #define SIO_BAUD_38400    0x0001
00224 #define SIO_BAUD_57600    0x0002
00225 #define SIO_BAUD_115200   0x0003
00226 #define SIO_CTS_ENA       0x0004
00227 #define SIO_PARITY_ODD    0x0008
00228 #define SIO_TX_FULL       0x0010
00229 #define SIO_RX_EMPTY      0x0020
00230 #define SIO_ERROR         0x0040
00231 #define SIO_DATA_8BIT     0x0080
00232 #define SIO_FIFO_ENA      0x0100
00233 #define SIO_PARITY_ENA    0x0200
00234 #define SIO_SEND_ENA      0x0400
00235 #define SIO_RECV_ENA      0x0800
00236 #define SIO_MODE_32BIT    0x1000
00237 #define SIO_MODE_MULTI    0x2000
00238 #define SIO_MODE_UART     0x3000
00239 #define SIO_IRQ_ENA       0x4000
00240 
00241 #endif