Browse Source

Merge branch 'master' of git@github.com:optixx/snesram
Conflicts:

snes/fatfstest/Makefile
snes/fatfstest/main.c

david 15 years ago
parent
commit
cb0ea4f8c8

+ 18 - 0
snes/fatfstest/Makefile

@@ -29,7 +29,11 @@ LIBS=-L$(SDK)/lib/cl
 #-L$(SDK)/lib/c134
 
 
+<<<<<<< HEAD:snes/fatfstest/Makefile
 OBJS=StartupSnes.obj main.obj pad.obj PPU.obj debug.obj ressource.obj diskio.obj ff.obj
+=======
+OBJS=hook.obj StartupSnes.obj main.obj pad.obj PPU.obj debug.obj ressource.obj diskio.obj ff.obj crc.obj
+>>>>>>> c1203c3519d95a92e82a6f2ebf741ad663e46e33:snes/fatfstest/Makefile
 APP=fatfs.smc
 GFX=debugfont
 
@@ -61,6 +65,7 @@ hook.obj: hook.asm
 	$(AS) -V $?
 
 %.obj: %.c
+<<<<<<< HEAD:snes/fatfstest/Makefile
 	$(CC)  -wl -wp -sop -ML -I $(INC) $?
 
 #$(APP): $(OBJS)
@@ -84,6 +89,19 @@ $(APP): $(OBJS) hook.obj
 repair: $(APP)
 	$(UCON) -snes -chk $(APP) 2>&1 >/dev/null
 	rm -rf fatfs.bak
+=======
+		$(CC)  -wl -wp -sop -ML -I $(INC) $?
+
+$(APP): $(OBJS)
+		$(LD) -HB -M21 -V -T -Pff \
+                -C3e8000,1f0000 -U000000,000000 \
+                -Avectors=FFE4,7FE4 \
+                -Aregistration_data=FFB0,7FB0 \
+                -Aressource=18000,8000 \
+                -Ahook=8000,0000 \
+                -N $(OBJS) $(LIBS) -O $@
+		ucon64 -snes -chk $(APP) 2>&1 >/dev/null
+>>>>>>> c1203c3519d95a92e82a6f2ebf741ad663e46e33:snes/fatfstest/Makefile
 
 
 

+ 1 - 1
snes/fatfstest/config.h

@@ -15,7 +15,7 @@
 
 
 #define SHARED_SIZE     512
-#define SHARED_ADDR     0x3f0000
+#define SHARED_ADDR     0x3d0000
 
 
 #undef MMIO_DEBUG

+ 37 - 0
snes/fatfstest/crc.c

@@ -0,0 +1,37 @@
+#include "data.h"
+
+
+word crc_update (char far *data, word size)
+{
+	word i;
+    word j;
+	word crc=0;
+	for (j=0; j<size; j++){
+		crc = crc ^ ((word)data[j]<< 8);
+		for (i=0; i<8; i++){
+        	if (crc & 0x8000)
+            	crc = (crc << 1) ^ 0x1021;
+        	else
+            	crc <<= 1;
+    	}
+	}
+	return crc;
+}
+
+
+word crc_update_mem (unsigned long addr, word size)
+{
+	word i;
+    word j;
+	word crc=0;
+	for (j=0; j<size; j++){
+		crc = crc ^ ((word) *(byte*)(addr+j)<< 8);
+		for (i=0; i<8; i++){
+        	if (crc & 0x8000)
+            	crc = (crc << 1) ^ 0x1021;
+        	else
+            	crc <<= 1;
+    	}
+	}
+	return crc;
+}

+ 4 - 0
snes/fatfstest/crc.h

@@ -0,0 +1,4 @@
+
+word crc_update (byte *data, word size);
+word crc_update_mem (unsigned long, word size);
+

+ 41 - 6
snes/fatfstest/debug.c

@@ -10,14 +10,10 @@
 
 
 
-word debug_colors[] = {
-  0xff7f, 0x1f00, 0x1802, 0x9772, 0xb55a, 0xbf5a, 0x1f5b, 0x7b73,
-  0x987f, 0x7f5f, 0xff03, 0xfc7f, 0xff7f, 0xff7f, 0xff7f, 0xff7f
-};
 
 word debugMap[0x400];
-static char debug_buffer[255];
-static char screen_buffer[255];
+static char debug_buffer[512];
+static char screen_buffer[512];
 
 
 void debug_init(void) {
@@ -94,12 +90,17 @@ void _print_console(const char *buffer){
         *(byte*) 0x3000=*buffer++;
 }
 
+
+
+
 void printfc(char *fmt,...){
   va_list ap;
   va_start(ap,fmt);
   vsprintf(debug_buffer,fmt,ap);
   va_end(ap);
   _print_console(debug_buffer);
+  //memset(debug_buffer,0,255);
+
 }
 
 void printfs(word y,char *fmt,...){
@@ -108,8 +109,42 @@ void printfs(word y,char *fmt,...){
   vsprintf(screen_buffer,fmt,ap);
   va_end(ap);
   _print_screen(y,screen_buffer);
+  memset(screen_buffer,0,255);
 }
 
+void printc_packet(unsigned long addr,unsigned int len,byte *packet){
+	unsigned int i,j;
+	unsigned int sum = 0;
+	unsigned int clear=0;
+	
+	for (i=0;i<len;i+=16) {
+		
+		sum = 0;
+		for (j=0;j<16;j++) {
+			sum +=packet[i+j];
+		}
+		if (!sum){
+			clear=1;
+			continue;
+		}
+		if (clear){
+			printfc("*\n");
+			clear = 0;
+		}	
+		printfc("%lx:", addr + i);
+		for (j=0;j<16;j++) {
+			printfc(" %x", packet[i+j]);
+		}
+		printfc(" |");
+		for (j=0;j<16;j++) {
+			if (packet[i+j]>=33 && packet[i+j]<=126 )
+				printfc("%c", packet[i+j]);
+			else
+				printfc(".");
+		}
+		printfc("|\n");
+	}
+}
 
 /* keep the linker happy */
 int open(const char * _name, int _mode){

+ 1 - 0
snes/fatfstest/debug.h

@@ -5,4 +5,5 @@ void debug_enable(void);
 void printfs(word y,char* fmt,...);
 void printfc(char* fmt,...);
 void clears(void);
+void printc_packet(unsigned long addr,unsigned int len,byte *packet);
 

+ 2 - 2
snes/fatfstest/diskio.c

@@ -87,9 +87,9 @@ DRESULT disk_read (
     byte retval;
     word i;
     
-    #ifdef MMIO_DEBUG
+    //#ifdef MMIO_DEBUG
     printfc("SNES::disk_read called sector=%li count=%i\n",sector,count);
-    #endif
+    //#endif
     if (drv || !count) return RES_PARERR;
     #ifdef MMIO_DEBUG
     printfc("SNES::disk_read drv ok\n");

+ 2 - 0
snes/fatfstest/hook.asm

@@ -3,3 +3,5 @@ HOOK SECTION
 HOOK:
     jsr   	>START
     brk
+
+

+ 51 - 13
snes/fatfstest/main.c

@@ -11,7 +11,7 @@
 #include "ressource.h";
 #include "PPU.h"
 #include "debug.h"
-
+#include "crc.h"
 
 /*
 
@@ -23,8 +23,11 @@ o exec loaded file
 */
 
 //#pragma section CODE=BANK2,offset $2:0000
-#define ROM_NAME "SUPER02.SMC"
+
+#define ROM_NAME "MRDO.SMC"
+//#define ROM_NAME "TEST.TXT"
 #define BLOCK_SIZE 512
+#define BASE_ADDR 0x008000
 
 
 padStatus pad1;
@@ -37,7 +40,11 @@ FATFS fatfs[2];             /* File system object for each logical drive */
 BYTE Buff[512];            /* Working buffer */
 
 DWORD p1, p2, p3;
-BYTE res;
+DWORD addr;
+DWORD crc_addr; 
+UINT crc;
+ 
+BYTE res,bank;
 WORD w1;
 UINT s1, s2, cnt;
 
@@ -132,7 +139,11 @@ void wait(void){
     //disablePad();
 }
 
-
+void boot(void){
+    #asm 
+        jsl  $008000 
+    #endasm 
+}
 
 void main(void) {
 	word i,j;
@@ -152,7 +163,7 @@ void main(void) {
 
     put_rc(f_mount(0, &fatfs[0]));
     
-#if 1
+#if 0
     printfc("SNES::main: Try to get free\n");
     res = f_getfree("", &p2, &fs);
     if (res)
@@ -232,14 +243,19 @@ void main(void) {
     put_rc(f_open(&file1, ROM_NAME, FA_READ));
 
 
-    p1 = 1024 * 16;
-    p2 = 0;
+    p1 = 32768L * 8; 
+    p2 = 0 ;
+    p3 = 0;
+    cnt = 0;
+    bank =0;
+    addr = BASE_ADDR;
+    crc_addr = BASE_ADDR;
     while (p1) {
         cnt = BLOCK_SIZE;
         p1 -= BLOCK_SIZE;
-        res = f_read(&file1, Buff, cnt, &s2);
-        printfc("SNES::main: read cnt=%i p1=%i p2=%i s2=%i\n",cnt,p1,p2,s2);
-        //printfc("SNES::main: read %x %x %x %x \n",Buff[0],Buff[1],Buff[2],Buff[3]);
+        res = f_read(&file1, (byte*)(addr) , cnt, &s2);
+        printfc("SNES::main: read cnt=%i p1=%li p2=%li s2=%i\n",cnt,p1,p2,s2);
+        //printfc("SNES::main: file %x %x %x %x\n",Buff[0],Buff[1],Buff[2],Buff[3]);
         if (res != FR_OK) {
             printfc("SNES::main: read failed\n");
             put_rc(res);
@@ -250,17 +266,39 @@ void main(void) {
           printfc("SNES::main: read cnt=%i s2=%i\n",cnt,s2);
           break;
         }
+<<<<<<< HEAD:snes/fatfstest/main.c
         printfs(1,"%lu BYTES READ", p2);
+=======
+        printfs(1 + bank,"BANK %X  ADDR %LX",bank,addr);
+>>>>>>> c1203c3519d95a92e82a6f2ebf741ad663e46e33:snes/fatfstest/main.c
         /*
         for (i=0; i<BLOCK_SIZE; i++){
-          *(byte*)(0x020000 + i) = Buff[i];
+          *(byte*)(addr  + i) = Buff[i];
         }
         */
+<<<<<<< HEAD:snes/fatfstest/main.c
         printfs(2,"%i BYTES TANS %x",BLOCK_SIZE, 0x020000 + p2);
+=======
+        printfc("SNES::main: mem  %x %x %x %x %lx\n",*(byte*)(addr  + 0) ,*(byte*)(addr  + 1) ,*(byte*)(addr  + 2) ,*(byte*)(addr  + 3) ,addr);
+        //if (addr=0x10fe00){
+            
+        printc_packet(addr,512,(byte*)(addr));
+            
+        //}
+        
+        addr+=s2;
+        if (addr%0x10000==0){
+    		//crc = crc_update_mem(crc_addr,0x8000);
+            //printfc("addr=%lx crc=%x\n",crc_addr,crc);
+            //printfs(1 + bank,"BANK %X  ADDR %LX CRC %X",bank,addr,crc);
+            addr+=0x8000;
+            //crc_addr+=0x8000;
+            bank++;
+        }
+>>>>>>> c1203c3519d95a92e82a6f2ebf741ad663e46e33:snes/fatfstest/main.c
     }
-    printfs(1,"%lu BYTES READ", p2);
     put_rc(f_close(&file1));
-  
+    boot();
     while(1){
       wait();
 	}	

+ 458 - 21
snesram.tmproj

@@ -3,7 +3,7 @@
 <plist version="1.0">
 <dict>
 	<key>currentDocument</key>
-	<string>snes/fatfstest/integer.h</string>
+	<string>snes/fatfstest/pad.c</string>
 	<key>documents</key>
 	<array>
 		<dict>
@@ -35,6 +35,36 @@
 			<key>firstVisibleLine</key>
 			<integer>0</integer>
 		</dict>
+		<key>poc/avr_sdcard/main.c</key>
+		<dict>
+			<key>caret</key>
+			<dict>
+				<key>column</key>
+				<integer>0</integer>
+				<key>line</key>
+				<integer>113</integer>
+			</dict>
+			<key>columnSelection</key>
+			<false/>
+			<key>firstVisibleColumn</key>
+			<integer>0</integer>
+			<key>firstVisibleLine</key>
+			<integer>106</integer>
+			<key>selectFrom</key>
+			<dict>
+				<key>column</key>
+				<integer>0</integer>
+				<key>line</key>
+				<integer>146</integer>
+			</dict>
+			<key>selectTo</key>
+			<dict>
+				<key>column</key>
+				<integer>0</integer>
+				<key>line</key>
+				<integer>113</integer>
+			</dict>
+		</dict>
 		<key>poc/avr_sdcard/mmc.h</key>
 		<dict>
 			<key>caret</key>
@@ -77,33 +107,215 @@
 			<key>firstVisibleLine</key>
 			<integer>211</integer>
 		</dict>
+		<key>snes/crc/crc.c</key>
+		<dict>
+			<key>caret</key>
+			<dict>
+				<key>column</key>
+				<integer>39</integer>
+				<key>line</key>
+				<integer>27</integer>
+			</dict>
+			<key>firstVisibleColumn</key>
+			<integer>0</integer>
+			<key>firstVisibleLine</key>
+			<integer>0</integer>
+		</dict>
+		<key>snes/crc/debug.c</key>
+		<dict>
+			<key>caret</key>
+			<dict>
+				<key>column</key>
+				<integer>3</integer>
+				<key>line</key>
+				<integer>6</integer>
+			</dict>
+			<key>firstVisibleColumn</key>
+			<integer>0</integer>
+			<key>firstVisibleLine</key>
+			<integer>2</integer>
+		</dict>
+		<key>snes/crc/debug.h</key>
+		<dict>
+			<key>caret</key>
+			<dict>
+				<key>column</key>
+				<integer>10</integer>
+				<key>line</key>
+				<integer>0</integer>
+			</dict>
+			<key>firstVisibleColumn</key>
+			<integer>0</integer>
+			<key>firstVisibleLine</key>
+			<integer>0</integer>
+		</dict>
+		<key>snes/crc/main.c</key>
+		<dict>
+			<key>caret</key>
+			<dict>
+				<key>column</key>
+				<integer>0</integer>
+				<key>line</key>
+				<integer>49</integer>
+			</dict>
+			<key>firstVisibleColumn</key>
+			<integer>0</integer>
+			<key>firstVisibleLine</key>
+			<integer>20</integer>
+		</dict>
+		<key>snes/fatfstest/Makefile</key>
+		<dict>
+			<key>caret</key>
+			<dict>
+				<key>column</key>
+				<integer>23</integer>
+				<key>line</key>
+				<integer>72</integer>
+			</dict>
+			<key>firstVisibleColumn</key>
+			<integer>0</integer>
+			<key>firstVisibleLine</key>
+			<integer>29</integer>
+		</dict>
+		<key>snes/fatfstest/StartupSnes.asm</key>
+		<dict>
+			<key>caret</key>
+			<dict>
+				<key>column</key>
+				<integer>0</integer>
+				<key>line</key>
+				<integer>0</integer>
+			</dict>
+			<key>firstVisibleColumn</key>
+			<integer>0</integer>
+			<key>firstVisibleLine</key>
+			<integer>97</integer>
+		</dict>
+		<key>snes/fatfstest/config.h</key>
+		<dict>
+			<key>caret</key>
+			<dict>
+				<key>column</key>
+				<integer>28</integer>
+				<key>line</key>
+				<integer>17</integer>
+			</dict>
+			<key>firstVisibleColumn</key>
+			<integer>0</integer>
+			<key>firstVisibleLine</key>
+			<integer>0</integer>
+		</dict>
+		<key>snes/fatfstest/crc.c</key>
+		<dict>
+			<key>caret</key>
+			<dict>
+				<key>column</key>
+				<integer>0</integer>
+				<key>line</key>
+				<integer>0</integer>
+			</dict>
+			<key>firstVisibleColumn</key>
+			<integer>0</integer>
+			<key>firstVisibleLine</key>
+			<integer>0</integer>
+		</dict>
+		<key>snes/fatfstest/crc.h</key>
+		<dict>
+			<key>caret</key>
+			<dict>
+				<key>column</key>
+				<integer>0</integer>
+				<key>line</key>
+				<integer>0</integer>
+			</dict>
+			<key>firstVisibleColumn</key>
+			<integer>0</integer>
+			<key>firstVisibleLine</key>
+			<integer>0</integer>
+		</dict>
+		<key>snes/fatfstest/data.h</key>
+		<dict>
+			<key>caret</key>
+			<dict>
+				<key>column</key>
+				<integer>0</integer>
+				<key>line</key>
+				<integer>0</integer>
+			</dict>
+			<key>firstVisibleColumn</key>
+			<integer>0</integer>
+			<key>firstVisibleLine</key>
+			<integer>0</integer>
+		</dict>
 		<key>snes/fatfstest/debug.c</key>
 		<dict>
 			<key>caret</key>
 			<dict>
 				<key>column</key>
-				<integer>1</integer>
+				<integer>0</integer>
 				<key>line</key>
-				<integer>39</integer>
+				<integer>144</integer>
+			</dict>
+			<key>firstVisibleColumn</key>
+			<integer>0</integer>
+			<key>firstVisibleLine</key>
+			<integer>0</integer>
+		</dict>
+		<key>snes/fatfstest/debug.h</key>
+		<dict>
+			<key>caret</key>
+			<dict>
+				<key>column</key>
+				<integer>32</integer>
+				<key>line</key>
+				<integer>7</integer>
 			</dict>
 			<key>firstVisibleColumn</key>
 			<integer>0</integer>
 			<key>firstVisibleLine</key>
 			<integer>0</integer>
 		</dict>
+		<key>snes/fatfstest/dis</key>
+		<dict>
+			<key>caret</key>
+			<dict>
+				<key>column</key>
+				<integer>0</integer>
+				<key>line</key>
+				<integer>32759</integer>
+			</dict>
+			<key>firstVisibleColumn</key>
+			<integer>0</integer>
+			<key>firstVisibleLine</key>
+			<integer>32759</integer>
+		</dict>
 		<key>snes/fatfstest/diskio.c</key>
 		<dict>
 			<key>caret</key>
 			<dict>
 				<key>column</key>
-				<integer>25</integer>
+				<integer>6</integer>
 				<key>line</key>
-				<integer>39</integer>
+				<integer>91</integer>
 			</dict>
 			<key>firstVisibleColumn</key>
 			<integer>0</integer>
 			<key>firstVisibleLine</key>
-			<integer>13</integer>
+			<integer>72</integer>
+		</dict>
+		<key>snes/fatfstest/event.c</key>
+		<dict>
+			<key>caret</key>
+			<dict>
+				<key>column</key>
+				<integer>0</integer>
+				<key>line</key>
+				<integer>0</integer>
+			</dict>
+			<key>firstVisibleColumn</key>
+			<integer>0</integer>
+			<key>firstVisibleLine</key>
+			<integer>39</integer>
 		</dict>
 		<key>snes/fatfstest/event.h</key>
 		<dict>
@@ -119,14 +331,56 @@
 			<key>firstVisibleLine</key>
 			<integer>0</integer>
 		</dict>
+		<key>snes/fatfstest/ff.c</key>
+		<dict>
+			<key>caret</key>
+			<dict>
+				<key>column</key>
+				<integer>0</integer>
+				<key>line</key>
+				<integer>1281</integer>
+			</dict>
+			<key>firstVisibleColumn</key>
+			<integer>0</integer>
+			<key>firstVisibleLine</key>
+			<integer>153</integer>
+		</dict>
+		<key>snes/fatfstest/ff.h</key>
+		<dict>
+			<key>caret</key>
+			<dict>
+				<key>column</key>
+				<integer>18</integer>
+				<key>line</key>
+				<integer>56</integer>
+			</dict>
+			<key>firstVisibleColumn</key>
+			<integer>0</integer>
+			<key>firstVisibleLine</key>
+			<integer>42</integer>
+		</dict>
+		<key>snes/fatfstest/hook.asm</key>
+		<dict>
+			<key>caret</key>
+			<dict>
+				<key>column</key>
+				<integer>0</integer>
+				<key>line</key>
+				<integer>7</integer>
+			</dict>
+			<key>firstVisibleColumn</key>
+			<integer>0</integer>
+			<key>firstVisibleLine</key>
+			<integer>0</integer>
+		</dict>
 		<key>snes/fatfstest/integer.h</key>
 		<dict>
 			<key>caret</key>
 			<dict>
 				<key>column</key>
-				<integer>2</integer>
+				<integer>28</integer>
 				<key>line</key>
-				<integer>35</integer>
+				<integer>24</integer>
 			</dict>
 			<key>firstVisibleColumn</key>
 			<integer>0</integer>
@@ -138,14 +392,28 @@
 			<key>caret</key>
 			<dict>
 				<key>column</key>
-				<integer>13</integer>
+				<integer>0</integer>
 				<key>line</key>
-				<integer>22</integer>
+				<integer>26</integer>
 			</dict>
 			<key>firstVisibleColumn</key>
 			<integer>0</integer>
 			<key>firstVisibleLine</key>
-			<integer>62</integer>
+			<integer>0</integer>
+		</dict>
+		<key>snes/fatfstest/myEvents.h</key>
+		<dict>
+			<key>caret</key>
+			<dict>
+				<key>column</key>
+				<integer>0</integer>
+				<key>line</key>
+				<integer>0</integer>
+			</dict>
+			<key>firstVisibleColumn</key>
+			<integer>0</integer>
+			<key>firstVisibleLine</key>
+			<integer>0</integer>
 		</dict>
 		<key>snes/fatfstest/pad.c</key>
 		<dict>
@@ -161,19 +429,47 @@
 			<key>firstVisibleLine</key>
 			<integer>0</integer>
 		</dict>
-		<key>tools/bsnes/cart/cart.cpp</key>
+		<key>snes/fatfstest/ressource.asm</key>
 		<dict>
 			<key>caret</key>
 			<dict>
 				<key>column</key>
 				<integer>0</integer>
 				<key>line</key>
-				<integer>95</integer>
+				<integer>14</integer>
 			</dict>
 			<key>firstVisibleColumn</key>
 			<integer>0</integer>
 			<key>firstVisibleLine</key>
-			<integer>44</integer>
+			<integer>0</integer>
+		</dict>
+		<key>snes/fatfstest/ressource.h</key>
+		<dict>
+			<key>caret</key>
+			<dict>
+				<key>column</key>
+				<integer>0</integer>
+				<key>line</key>
+				<integer>2</integer>
+			</dict>
+			<key>firstVisibleColumn</key>
+			<integer>0</integer>
+			<key>firstVisibleLine</key>
+			<integer>0</integer>
+		</dict>
+		<key>tools/bsnes/cart/cart.cpp</key>
+		<dict>
+			<key>caret</key>
+			<dict>
+				<key>column</key>
+				<integer>24</integer>
+				<key>line</key>
+				<integer>48</integer>
+			</dict>
+			<key>firstVisibleColumn</key>
+			<integer>0</integer>
+			<key>firstVisibleLine</key>
+			<integer>33</integer>
 		</dict>
 		<key>tools/bsnes/cart/cart.hpp</key>
 		<dict>
@@ -189,35 +485,77 @@
 			<key>firstVisibleLine</key>
 			<integer>24</integer>
 		</dict>
-		<key>tools/bsnes/chip/fatfs/diskio.cpp</key>
+		<key>tools/bsnes/chip/fatfs/config.h</key>
 		<dict>
 			<key>caret</key>
 			<dict>
 				<key>column</key>
 				<integer>0</integer>
 				<key>line</key>
-				<integer>0</integer>
+				<integer>21</integer>
 			</dict>
 			<key>firstVisibleColumn</key>
 			<integer>0</integer>
 			<key>firstVisibleLine</key>
-			<integer>24</integer>
+			<integer>0</integer>
+		</dict>
+		<key>tools/bsnes/chip/fatfs/diskio.cpp</key>
+		<dict>
+			<key>caret</key>
+			<dict>
+				<key>column</key>
+				<integer>58</integer>
+				<key>line</key>
+				<integer>102</integer>
+			</dict>
+			<key>firstVisibleColumn</key>
+			<integer>0</integer>
+			<key>firstVisibleLine</key>
+			<integer>65</integer>
+		</dict>
+		<key>tools/bsnes/chip/fatfs/diskio.h</key>
+		<dict>
+			<key>caret</key>
+			<dict>
+				<key>column</key>
+				<integer>28</integer>
+				<key>line</key>
+				<integer>50</integer>
+			</dict>
+			<key>firstVisibleColumn</key>
+			<integer>0</integer>
+			<key>firstVisibleLine</key>
+			<integer>0</integer>
 		</dict>
 		<key>tools/bsnes/chip/fatfs/fatfs.cpp</key>
 		<dict>
 			<key>caret</key>
 			<dict>
 				<key>column</key>
-				<integer>23</integer>
+				<integer>2</integer>
 				<key>line</key>
-				<integer>69</integer>
+				<integer>56</integer>
 			</dict>
 			<key>firstVisibleColumn</key>
 			<integer>0</integer>
 			<key>firstVisibleLine</key>
-			<integer>43</integer>
+			<integer>17</integer>
 		</dict>
 		<key>tools/bsnes/chip/fatfs/fatfs.hpp</key>
+		<dict>
+			<key>caret</key>
+			<dict>
+				<key>column</key>
+				<integer>31</integer>
+				<key>line</key>
+				<integer>10</integer>
+			</dict>
+			<key>firstVisibleColumn</key>
+			<integer>0</integer>
+			<key>firstVisibleLine</key>
+			<integer>0</integer>
+		</dict>
+		<key>tools/bsnes/chip/fatfs/integer.h</key>
 		<dict>
 			<key>caret</key>
 			<dict>
@@ -245,22 +583,121 @@
 			<key>firstVisibleLine</key>
 			<integer>0</integer>
 		</dict>
+		<key>tools/bsnes/memory/memory.cpp</key>
+		<dict>
+			<key>caret</key>
+			<dict>
+				<key>column</key>
+				<integer>6</integer>
+				<key>line</key>
+				<integer>22</integer>
+			</dict>
+			<key>firstVisibleColumn</key>
+			<integer>0</integer>
+			<key>firstVisibleLine</key>
+			<integer>0</integer>
+		</dict>
+		<key>tools/bsnes/memory/memory.hpp</key>
+		<dict>
+			<key>caret</key>
+			<dict>
+				<key>column</key>
+				<integer>31</integer>
+				<key>line</key>
+				<integer>132</integer>
+			</dict>
+			<key>firstVisibleColumn</key>
+			<integer>0</integer>
+			<key>firstVisibleLine</key>
+			<integer>84</integer>
+		</dict>
+		<key>tools/bsnes/memory/smemory/smemory.cpp</key>
+		<dict>
+			<key>caret</key>
+			<dict>
+				<key>column</key>
+				<integer>20</integer>
+				<key>line</key>
+				<integer>9</integer>
+			</dict>
+			<key>firstVisibleColumn</key>
+			<integer>0</integer>
+			<key>firstVisibleLine</key>
+			<integer>0</integer>
+		</dict>
+		<key>tools/bsnes/memory/smemory/smemory.hpp</key>
+		<dict>
+			<key>caret</key>
+			<dict>
+				<key>column</key>
+				<integer>0</integer>
+				<key>line</key>
+				<integer>0</integer>
+			</dict>
+			<key>firstVisibleColumn</key>
+			<integer>0</integer>
+			<key>firstVisibleLine</key>
+			<integer>0</integer>
+		</dict>
+		<key>tools/ffsample/linux/main.c</key>
+		<dict>
+			<key>caret</key>
+			<dict>
+				<key>column</key>
+				<integer>18</integer>
+				<key>line</key>
+				<integer>385</integer>
+			</dict>
+			<key>firstVisibleColumn</key>
+			<integer>0</integer>
+			<key>firstVisibleLine</key>
+			<integer>229</integer>
+		</dict>
 	</dict>
 	<key>openDocuments</key>
 	<array>
 		<string>snes/fatfstest/debug.c</string>
 		<string>snes/fatfstest/pad.c</string>
 		<string>snes/fatfstest/diskio.c</string>
+		<string>snes/fatfstest/ff.c</string>
+		<string>tools/bsnes/memory/memory.hpp</string>
+		<string>tools/bsnes/memory/memory.cpp</string>
+		<string>tools/bsnes/memory/smemory/smemory.cpp</string>
+		<string>tools/bsnes/cart/cart.cpp</string>
+		<string>tools/bsnes/memory/smemory/smemory.hpp</string>
+		<string>snes/fatfstest/data.h</string>
+		<string>snes/fatfstest/ff.h</string>
+		<string>snes/fatfstest/event.c</string>
+		<string>snes/fatfstest/StartupSnes.asm</string>
 		<string>snes/fatfstest/main.c</string>
+		<string>tools/ffsample/linux/main.c</string>
+		<string>snes/crc/crc.c</string>
+		<string>snes/crc/main.c</string>
+		<string>poc/avr_sdcard/main.c</string>
+		<string>snes/crc/debug.h</string>
+		<string>snes/crc/debug.c</string>
+		<string>snes/fatfstest/crc.h</string>
+		<string>snes/fatfstest/crc.c</string>
+		<string>snes/fatfstest/Makefile</string>
+		<string>snes/fatfstest/hook.asm</string>
+		<string>snes/fatfstest/myEvents.h</string>
+		<string>snes/fatfstest/ressource.asm</string>
+		<string>snes/fatfstest/ressource.h</string>
+		<string>snes/fatfstest/dis</string>
 		<string>snes/fatfstest/event.h</string>
 		<string>snes/fatfstest/integer.h</string>
 		<string>tools/bsnes/chip/fatfs/fatfs.hpp</string>
+		<string>tools/bsnes/chip/fatfs/diskio.h</string>
 		<string>tools/bsnes/chip/fatfs/fatfs.cpp</string>
+		<string>snes/fatfstest/debug.h</string>
+		<string>tools/bsnes/chip/fatfs/config.h</string>
+		<string>snes/fatfstest/config.h</string>
+		<string>tools/bsnes/chip/fatfs/integer.h</string>
 		<string>tools/bsnes/chip/fatfs/diskio.cpp</string>
 	</array>
 	<key>showFileHierarchyDrawer</key>
 	<false/>
 	<key>windowFrame</key>
-	<string>{{0, 60}, {1110, 818}}</string>
+	<string>{{0, 52}, {1205, 826}}</string>
 </dict>
 </plist>

+ 2 - 2
tools/bsnes/cart/cart.cpp

@@ -46,8 +46,8 @@ void Cartridge::load_end() {
   memory::stAram.map(stA.ram, stA.ram_size);
   memory::stBrom.map(stB.rom, stB.rom_size);
   memory::stBram.map(stB.ram, stB.ram_size);
-
-  memory::cartrom.write_protect(true);
+  /* enable rom write */
+  memory::cartrom.write_protect(false);
   memory::cartram.write_protect(false);
   memory::bscram.write_protect(true);
   memory::stArom.write_protect(true);

+ 2 - 2
tools/bsnes/chip/fatfs/config.h

@@ -14,8 +14,8 @@
 #define MMIO_RETVAL     0x3016
 
 
-#define SHARED_SIZE     512
-#define SHARED_ADDR     0x3f0000
+#define SHARED_MAX_SIZE     512
+#define SHARED_ADDR     0x3d0000
 
 #undef MMIO_DEBUG
 #undef FATFS_DEBUG

+ 3 - 2
tools/bsnes/chip/fatfs/diskio.cpp

@@ -96,10 +96,11 @@ DRESULT disk_read (
 
     DWORD offset = sector  * 512;
     int size = count * 512;
-    #ifdef MMIO_DEBUG
+    //#ifdef MMIO_DEBUG
     printf("DISKIO::disk_read: sector=%li count=%i addr=%p off=%li size=%i\n",sector,count,image_addr + offset,offset,size);
-    #endif
+    //#endif
     memcpy(buff,image_addr + offset,size);
+    printf("%x %x %x %x\n",buff[0],buff[1],buff[2],buff[3]);
     #ifdef MMIO_DEBUG
     printf("DISKIO::disk_read: done\n");
     #endif

+ 8 - 8
tools/bsnes/chip/fatfs/fatfs.cpp

@@ -13,7 +13,7 @@ void FATFS::init() {
   sector = 0;
   count = 0;
   retval = -1;
-  scratch_buffer = (unsigned char*)malloc(SHARED_SIZE);
+  scratch_buffer = (unsigned char*)malloc(SHARED_MAX_SIZE);
 }
 
 void FATFS::enable() {
@@ -38,17 +38,17 @@ void FATFS::reset() {
 }
 
 
-void FATFS::fetchMem() {
-  for ( int i=0;i<SHARED_SIZE;i++){
+void FATFS::fetchMem(unsigned int len) {
+  for ( int i=0;i<len;i++){
       scratch_buffer[i] = bus.read(SHARED_ADDR + i);
   } 
 }
 
-void FATFS::pushMem() {
-  for ( int i=0;i<SHARED_SIZE;i++){
+void FATFS::pushMem(unsigned int len) {
+  for ( int i=0;i<len;i++){
       bus.write(SHARED_ADDR + i,scratch_buffer[i]);
       #ifdef FATFS_DEBUG
-      if ( i < 8)
+      if ( i < 4)
         printf("0x%02x ",scratch_buffer[i]);
       #endif
   }
@@ -117,9 +117,9 @@ void FATFS::mmio_write(unsigned addr, uint8 data) {
       if (command == CMD_READ) {
           retval = disk_read (0, (BYTE*)scratch_buffer, sector, count);
           if (!retval)
-              pushMem();
+              pushMem(512 * count);
       } else if (command == CMD_WRITE) {
-            fetchMem();
+            fetchMem(512 * count);
             retval = disk_write (0, (BYTE*)scratch_buffer, sector, count);
       } else{
             #ifdef FATFS_DEBUG

+ 2 - 2
tools/bsnes/chip/fatfs/fatfs.hpp

@@ -7,8 +7,8 @@ public:
   void reset();
 
 
-  void fetchMem();
-  void pushMem();
+  void fetchMem(unsigned int len);
+  void pushMem(unsigned int len);
 
 
   uint8 mmio_read (unsigned addr);

+ 2 - 1
tools/ffsample/linux/Makefile

@@ -44,9 +44,10 @@ image_not_parted:
 
 image:
 	rm -fv disk00.vfat
-	mkfs.vfat  -I -F 16 -v -C disk00.vfat 32000 
+	mkfs.vfat  -I -F 12 -v -C disk00.vfat 32000 
 	sudo mount -o loop disk00.vfat disk
 	sudo cp -v ../../../roms/*smc  disk/
+	sudo cp -v /var/log/syslog disk/test.txt 
 	sudo umount disk
 
 mount:

BIN
tools/ffsample/linux/fftest


+ 3 - 3
tools/ffsample/linux/main.c

@@ -354,9 +354,9 @@ int main (void)
 				break;
 
 			case 'o' :	/* fo <mode> <name> - Open a file */
-				if (!(&ptr, &p1)) break;
+				//if (!(&ptr, &p1)) break;
 				while (*ptr == ' ') ptr++;
-				put_rc(f_open(&file1, ptr, (BYTE)p1));
+				put_rc(f_open(&file1, ptr, (BYTE)FA_READ));
 				break;
 
 			case 'c' :	/* fc - Close a file */
@@ -383,7 +383,7 @@ int main (void)
 					p2 += s2;
 					if (cnt != s2) break;
 				}
-				s2 = Timer;
+				s2 = Timer + 1;
 				printf("%lu bytes read with %lu bytes/sec.\n", p2, p2 * 100 / s2);
 				break;