/[pcsx2_0.9.7]/trunk/pcsx2/Hw.h
ViewVC logotype

Diff of /trunk/pcsx2/Hw.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 31 by william, Tue Sep 7 03:24:11 2010 UTC revision 62 by william, Tue Sep 7 11:08:22 2010 UTC
# Line 13  Line 13 
13   *  If not, see <http://www.gnu.org/licenses/>.   *  If not, see <http://www.gnu.org/licenses/>.
14   */   */
15    
16    #pragma once
17    
18  #ifndef __HW_H__  namespace EEMemoryMap
19  #define __HW_H__  {
20            static const uint RCNT0_Start           = 0x10000000;
21  extern void CPU_INT( u32 n, s32 ecycle );          static const uint RCNT0_End                     = 0x10000800;
22            static const uint RCNT1_Start           = 0x10000800;
23            static const uint RCNT1_End                     = 0x10001000;
24            static const uint RCNT2_Start           = 0x10001000;
25            static const uint RCNT2_End                     = 0x10001800;
26            static const uint RCNT3_Start           = 0x10001800;
27            static const uint RCNT3_End                     = 0x10002000;
28    
29            static const uint IPU_Start                     = 0x10002000;
30            static const uint IPU_End                       = 0x10003000;
31    
32            static const uint GIF_Start                     = 0x10003000;
33            static const uint GIF_End                       = 0x10003800;
34    
35            static const uint VIF0_Start            = 0x10003800;
36            static const uint VIF0_End                      = 0x10003C00;
37            static const uint VIF1_Start            = 0x10003C00;
38            static const uint VIF1_End                      = 0x10004000;
39    
40            static const uint VIF0_FIFO_Start       = 0x10004000;
41            static const uint VIF0_FIFO_End         = 0x10005000;
42            static const uint VIF1_FIFO_Start       = 0x10005000;
43            static const uint VIF1_FIFO_End         = 0x10006000;
44            static const uint GIF_FIFO_Start        = 0x10006000;
45            static const uint GIF_FIFO_End          = 0x10007000;
46            static const uint IPU_FIFO_Start        = 0x10007000;
47            static const uint IPU_FIFO_End          = 0x10008000;
48    
49            static const uint VIF0dma_Start         = 0x10008000;
50            static const uint VIF0dma_End           = 0x10009000;
51            static const uint VIF1dma_Start         = 0x10009000;
52            static const uint VIF1dma_End           = 0x1000A000;
53    
54            static const uint GIFdma_Start          = 0x1000A000;
55            static const uint GIFdma_End            = 0x1000B000;
56    
57            static const uint fromIPU_Start         = 0x1000B000;
58            static const uint fromIPU_End           = 0x1000B400;
59            static const uint toIPU_Start           = 0x1000B400;
60            static const uint toIPU_End                     = 0x1000C000;
61    
62            static const uint SIF0dma_Start         = 0x1000C000;
63            static const uint SIF0dma_End           = 0x1000C400;
64            static const uint SIF1dma_Start         = 0x1000C400;
65            static const uint SIF1dma_End           = 0x1000C800;
66            static const uint SIF2dma_Start         = 0x1000C800;
67            static const uint SIF2dma_End           = 0x1000D000;
68    
69            static const uint fromSPR_Start         = 0x1000D000;
70            static const uint fromSPR_End           = 0x1000D400;
71            static const uint toSPR_Start           = 0x1000D400;
72            static const uint toSPR_End                     = 0x1000E000;
73    
74            static const uint DMAC_Start            = 0x1000E000;
75            static const uint DMAC_End                      = 0x1000F000;
76    
77            static const uint INTC_Start            = 0x1000F000;
78            static const uint INTC_End                      = 0x1000F100;
79    
80            static const uint SIO_Start                     = 0x1000F100;
81            static const uint SIO_End                       = 0x1000F200;
82            static const uint SBUS_Start            = 0x1000F200;
83            static const uint SBUS_End                      = 0x1000F400;
84    
85            // MCH area --  Really not sure what this area is.  Information is lacking.
86            static const uint MCH_Start                     = 0x1000F400;
87            static const uint MCH_End                       = 0x1000F500;
88    
89            // Extended master control register area for DMAC.
90            static const uint DMACext_Start         = 0x1000F500;
91            static const uint DMACext_End           = 0x1000F600;
92    
93  //////////////////////////////////////////////////////////////////////////  };
 // Hardware FIFOs (128 bit access only!)  
 //  
 // VIF0   -- 0x10004000 -- PS2MEM_HW[0x4000]  
 // VIF1   -- 0x10005000 -- PS2MEM_HW[0x5000]  
 // GIF    -- 0x10006000 -- PS2MEM_HW[0x6000]  
 // IPUout -- 0x10007000 -- PS2MEM_HW[0x7000]  
 // IPUin  -- 0x10007010 -- PS2MEM_HW[0x7010]  
   
 void __fastcall ReadFIFO_page_4(u32 mem, mem128_t *out);  
 void __fastcall ReadFIFO_page_5(u32 mem, mem128_t *out);  
 void __fastcall ReadFIFO_page_6(u32 mem, mem128_t *out);  
 void __fastcall ReadFIFO_page_7(u32 mem, mem128_t *out);  
   
 void __fastcall WriteFIFO_page_4(u32 mem, const mem128_t *value);  
 void __fastcall WriteFIFO_page_5(u32 mem, const mem128_t *value);  
 void __fastcall WriteFIFO_page_6(u32 mem, const mem128_t *value);  
 void __fastcall WriteFIFO_page_7(u32 mem, const mem128_t *value);  
94    
95  // HW defines  // HW defines
96  enum EERegisterAddresses  enum EERegisterAddresses
# Line 88  enum EERegisterAddresses Line 142  enum EERegisterAddresses
142          VIF0_ITOPS              =       0x10003890,          VIF0_ITOPS              =       0x10003890,
143          VIF0_ITOP               =       0x100038d0,          VIF0_ITOP               =       0x100038d0,
144          VIF0_TOP                =       0x100038e0,          VIF0_TOP                =       0x100038e0,
145          VIF0_R0                 =       0x10003900,          VIF0_ROW0               =       0x10003900,
146          VIF0_R1                 =       0x10003910,          VIF0_ROW1               =       0x10003910,
147          VIF0_R2                 =       0x10003920,          VIF0_ROW2               =       0x10003920,
148          VIF0_R3                 =       0x10003930,          VIF0_ROW3               =       0x10003930,
149          VIF0_C0                 =       0x10003940,          VIF0_COL0               =       0x10003940,
150          VIF0_C1                 =       0x10003950,          VIF0_COL1               =       0x10003950,
151          VIF0_C2                 =       0x10003960,          VIF0_COL2               =       0x10003960,
152          VIF0_C3                 =       0x10003970,          VIF0_COL3               =       0x10003970,
153    
154          VIF1_STAT               =       0x10003c00,          VIF1_STAT               =       0x10003c00,
155          VIF1_FBRST              =       0x10003c10,          VIF1_FBRST              =       0x10003c10,
# Line 112  enum EERegisterAddresses Line 166  enum EERegisterAddresses
166          VIF1_TOPS               =       0x10003cc0,          VIF1_TOPS               =       0x10003cc0,
167          VIF1_ITOP               =       0x10003cd0,          VIF1_ITOP               =       0x10003cd0,
168          VIF1_TOP                =       0x10003ce0,          VIF1_TOP                =       0x10003ce0,
169          VIF1_R0                 =       0x10003d00,          VIF1_ROW0               =       0x10003d00,
170          VIF1_R1                 =       0x10003d10,          VIF1_ROW1               =       0x10003d10,
171          VIF1_R2                 =       0x10003d20,          VIF1_ROW2               =       0x10003d20,
172          VIF1_R3                 =       0x10003d30,          VIF1_ROW3               =       0x10003d30,
173          VIF1_C0                 =       0x10003d40,          VIF1_COL0               =       0x10003d40,
174          VIF1_C1                 =       0x10003d50,          VIF1_COL1               =       0x10003d50,
175          VIF1_C2                 =       0x10003d60,          VIF1_COL2               =       0x10003d60,
176          VIF1_C3                 =       0x10003d70,          VIF1_COL3               =       0x10003d70,
177    
178          VIF0_FIFO               =       0x10004000,          VIF0_FIFO               =       0x10004000,
179          VIF1_FIFO               =       0x10005000,          VIF1_FIFO               =       0x10005000,
# Line 132  enum EERegisterAddresses Line 186  enum EERegisterAddresses
186          D0_CHCR                 =       0x10008000,          D0_CHCR                 =       0x10008000,
187          D0_MADR                 =       0x10008010,          D0_MADR                 =       0x10008010,
188          D0_QWC                  =       0x10008020,          D0_QWC                  =       0x10008020,
189            D0_TADR                 =       0x10008030,
190            D0_ASR0                 =       0x10008040,
191            D0_ASR1                 =       0x10008050,
192    
193            VIF0_CHCR               =       0x10008000,
194            VIF0_MADR               =       0x10008010,
195            VIF0_QWC                =       0x10008020,
196            VIF0_TADR               =       0x10008030,
197            VIF0_ASR0               =       0x10008040,
198            VIF0_ASR1               =       0x10008050,
199    
200  //VIF1  //VIF1
201          D1_CHCR                 =       0x10009000,          D1_CHCR                 =       0x10009000,
# Line 140  enum EERegisterAddresses Line 204  enum EERegisterAddresses
204          D1_TADR                 =       0x10009030,          D1_TADR                 =       0x10009030,
205          D1_ASR0                 =       0x10009040,          D1_ASR0                 =       0x10009040,
206          D1_ASR1                 =       0x10009050,          D1_ASR1                 =       0x10009050,
207          D1_SADR                 =       0x10009080,  
208            VIF1_CHCR               =       0x10009000,
209            VIF1_MADR               =       0x10009010,
210            VIF1_QWC                =       0x10009020,
211            VIF1_TADR               =       0x10009030,
212            VIF1_ASR0               =       0x10009040,
213            VIF1_ASR1               =       0x10009050,
214    
215  //GS  //GS
216          D2_CHCR                 =       0x1000A000,          D2_CHCR                 =       0x1000A000,
# Line 149  enum EERegisterAddresses Line 219  enum EERegisterAddresses
219          D2_TADR                 =       0x1000A030,          D2_TADR                 =       0x1000A030,
220          D2_ASR0                 =       0x1000A040,          D2_ASR0                 =       0x1000A040,
221          D2_ASR1                 =       0x1000A050,          D2_ASR1                 =       0x1000A050,
222          D2_SADR                 =       0x1000A080,  
223            GIF_CHCR                =       0x1000A000,
224            GIF_MADR                =       0x1000A010,
225            GIF_QWC                 =       0x1000A020,
226            GIF_TADR                =       0x1000A030,
227            GIF_ASR0                =       0x1000A040,
228            GIF_ASR1                =       0x1000A050,
229    
230  //fromIPU  //fromIPU
231          D3_CHCR                 =       0x1000B000,          D3_CHCR                 =       0x1000B000,
232          D3_MADR                 =       0x1000B010,          D3_MADR                 =       0x1000B010,
233          D3_QWC                  =       0x1000B020,          D3_QWC                  =       0x1000B020,
234          D3_TADR                 =       0x1000B030,          D3_TADR                 =       0x1000B030,
235          D3_SADR                 =       0x1000B080,  
236            fromIPU_CHCR    =       0x1000B000,
237            fromIPU_MADR    =       0x1000B010,
238            fromIPU_QWC             =       0x1000B020,
239            fromIPU_TADR    =       0x1000B030,
240    
241  //toIPU  //toIPU
242          D4_CHCR                 =       0x1000B400,          D4_CHCR                 =       0x1000B400,
243          D4_MADR                 =       0x1000B410,          D4_MADR                 =       0x1000B410,
244          D4_QWC                  =       0x1000B420,          D4_QWC                  =       0x1000B420,
245          D4_TADR                 =       0x1000B430,          D4_TADR                 =       0x1000B430,
246          D4_SADR                 =       0x1000B480,  
247            toIPU_CHCR              =       0x1000B400,
248            toIPU_MADR              =       0x1000B410,
249            toIPU_QWC               =       0x1000B420,
250            toIPU_TADR              =       0x1000B430,
251    
252  //SIF0  //SIF0
253          D5_CHCR                 =       0x1000C000,          D5_CHCR                 =       0x1000C000,
254          D5_MADR                 =       0x1000C010,          D5_MADR                 =       0x1000C010,
255          D5_QWC                  =       0x1000C020,          D5_QWC                  =       0x1000C020,
256    
257            SIF0_CHCR               =       0x1000C000,
258            SIF0_MADR               =       0x1000C010,
259            SIF0_QWC                =       0x1000C020,
260    
261  //SIF1  //SIF1
262          D6_CHCR                 =       0x1000C400,          D6_CHCR                 =       0x1000C400,
263          D6_MADR                 =       0x1000C410,          D6_MADR                 =       0x1000C410,
264          D6_QWC                  =       0x1000C420,          D6_QWC                  =       0x1000C420,
265          D6_TADR                 =       0x1000C430,          D6_TADR                 =       0x1000C430,
266    
267            SIF1_CHCR               =       0x1000C400,
268            SIF1_MADR               =       0x1000C410,
269            SIF1_QWC                =       0x1000C420,
270            SIF1_TADR               =       0x1000C430,
271    
272  //SIF2  //SIF2
273          D7_CHCR                 =       0x1000C800,          D7_CHCR                 =       0x1000C800,
274          D7_MADR                 =       0x1000C810,          D7_MADR                 =       0x1000C810,
275          D7_QWC                  =       0x1000C820,          D7_QWC                  =       0x1000C820,
276    
277            SIF2_CHCR               =       0x1000C800,
278            SIF2_MADR               =       0x1000C810,
279            SIF2_QWC                =       0x1000C820,
280    
281  //fromSPR  //fromSPR
282          D8_CHCR                 =       0x1000D000,          D8_CHCR                 =       0x1000D000,
283          D8_MADR                 =       0x1000D010,          D8_MADR                 =       0x1000D010,
284          D8_QWC                  =       0x1000D020,          D8_QWC                  =       0x1000D020,
285          D8_SADR                 =       0x1000D080,  
286          D9_CHCR         =       0x1000D400,          fromSPR_CHCR    =       0x1000D000,
287            fromSPR_MADR    =       0x1000D010,
288            fromSPR_QWC             =       0x1000D020,
289    
290    //toSPR
291            D9_CHCR                 =       0x1000D400,
292            D9_MADR                 =       0x1000D010,
293            D9_QWC                  =       0x1000D020,
294    
295            toSPR_CHCR              =       0x1000D400,
296            toSPR_MADR              =       0x1000D410,
297            toSPR_QWC               =       0x1000D420,
298    
299          DMAC_CTRL               =       0x1000E000,          DMAC_CTRL               =       0x1000E000,
300          DMAC_STAT               =       0x1000E010,          DMAC_STAT               =       0x1000E010,
# Line 263  union tGS_SMODE2 Line 371  union tGS_SMODE2
371          bool IsInterlaced() const { return INT; }          bool IsInterlaced() const { return INT; }
372  };  };
373    
374  void hwReset();  extern void hwReset();
   
 // hw read functions  
 extern mem8_t  hwRead8 (u32 mem);  
 extern mem16_t hwRead16(u32 mem);  
   
 extern mem32_t __fastcall hwRead32_page_00(u32 mem);  
 extern mem32_t __fastcall hwRead32_page_01(u32 mem);  
 extern mem32_t __fastcall hwRead32_page_02(u32 mem);  
 extern mem32_t __fastcall hwRead32_page_0F(u32 mem);  
 extern mem32_t __fastcall hwRead32_page_0F_INTC_HACK(u32 mem);  
 extern mem32_t __fastcall hwRead32_generic(u32 mem);  
   
 extern void __fastcall hwRead64_page_00(u32 mem, mem64_t* result );  
 extern void __fastcall hwRead64_page_01(u32 mem, mem64_t* result );  
 extern void __fastcall hwRead64_page_02(u32 mem, mem64_t* result );  
 extern void __fastcall hwRead64_generic_INTC_HACK(u32 mem, mem64_t *out);  
 extern void __fastcall hwRead64_generic(u32 mem, mem64_t* result );  
   
 extern void __fastcall hwRead128_page_00(u32 mem, mem128_t* result );  
 extern void __fastcall hwRead128_page_01(u32 mem, mem128_t* result );  
 extern void __fastcall hwRead128_page_02(u32 mem, mem128_t* result );  
 extern void __fastcall hwRead128_generic(u32 mem, mem128_t *out);  
   
 // hw write functions  
 extern void hwWrite8 (u32 mem, u8  value);  
 extern void hwWrite16(u32 mem, u16 value);  
   
 extern void __fastcall hwWrite32_page_00( u32 mem, mem32_t value );  
 extern void __fastcall hwWrite32_page_01( u32 mem, mem32_t value );  
 extern void __fastcall hwWrite32_page_02( u32 mem, mem32_t value );  
 extern void __fastcall hwWrite32_page_03( u32 mem, mem32_t value );  
 extern void __fastcall hwWrite32_page_0B( u32 mem, mem32_t value );  
 extern void __fastcall hwWrite32_page_0E( u32 mem, mem32_t value );  
 extern void __fastcall hwWrite32_page_0F( u32 mem, mem32_t value );  
 extern void __fastcall hwWrite32_generic( u32 mem, mem32_t value );  
   
 extern void __fastcall hwWrite64_page_00( u32 mem, const mem64_t* srcval );  
 extern void __fastcall hwWrite64_page_01( u32 mem, const mem64_t* srcval );  
 extern void __fastcall hwWrite64_page_02( u32 mem, const mem64_t* srcval );  
 extern void __fastcall hwWrite64_page_03( u32 mem, const mem64_t* srcval );  
 extern void __fastcall hwWrite64_page_0E( u32 mem, const mem64_t* srcval );  
 extern void __fastcall hwWrite64_generic( u32 mem, const mem64_t* srcval );  
   
 extern void __fastcall hwWrite128_generic(u32 mem, const mem128_t *srcval);  
   
 bool hwMFIFOWrite(u32 addr, u8 *data, u32 size);  
375    
376  extern const int rdram_devices;  extern const int rdram_devices;
377  extern int rdram_sdevid;  extern int rdram_sdevid;
   
 #endif /* __HW_H__ */  

Legend:
Removed from v.31  
changed lines
  Added in v.62

  ViewVC Help
Powered by ViewVC 1.1.22