PS2SDK
PS2 Homebrew Libraries
sram.c
1 /*
2 # _____ ___ ____ ___ ____
3 # ____| | ____| | | |____|
4 # | ___| |____ ___| ____| | \ PS2DEV Open Source Project.
5 #-----------------------------------------------------------------------
6 # Copyright ps2dev - http://www.ps2dev.org
7 # Licenced under Academic Free License version 2.0
8 # Review ps2sdk README & LICENSE files for further details.
9 */
10 
11 #include "acsram_internal.h"
12 
13 int acSramRead(acSramAddr addr, void *buf, int size)
14 {
15  volatile acUint16 *src;
16  int i;
17 
18  src = (volatile acUint16 *)(2 * (addr & 0x7FFF) + 0xB2500000);
19  for ( i = size; i > 0; buf = (acUint8 *)buf + 1 )
20  {
21  --i;
22  *(acUint8 *)buf = *(volatile acUint8 *)src++;
23  }
24  return size - i;
25 }
26 
27 int acSramWrite(acSramAddr addr, void *buf, int size)
28 {
29  volatile acUint16 *dst;
30  int i;
31 
32  dst = (volatile acUint16 *)(2 * (addr & 0x7FFF) + 0xB2500000);
33  for ( i = size; i > 0; ++dst )
34  {
35  --i;
36  *dst = *(acUint8 *)buf;
37  buf = (acUint8 *)buf + 1;
38  }
39  return size - i;
40 }
41 
42 int acSramModuleStart(int argc, char **argv)
43 {
44  (void)argc;
45  (void)argv;
46  return 0;
47 }
48 
49 int acSramModuleStop()
50 {
51  return 0;
52 }
53 
54 int acSramModuleRestart(int argc, char **argv)
55 {
56  (void)argc;
57  (void)argv;
58  return 0;
59 }
60 
61 int acSramModuleStatus()
62 {
63  return 1;
64 }