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

Conflicts:

	snes/fatfstest/Makefile
	snes/fatfstest/main.c
This commit is contained in:
david 2009-06-08 10:32:24 +02:00
commit cb0ea4f8c8
18 changed files with 638 additions and 64 deletions

View File

@ -29,7 +29,11 @@ LIBS=-L$(SDK)/lib/cl
#-L$(SDK)/lib/c134 #-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=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 APP=fatfs.smc
GFX=debugfont GFX=debugfont
@ -61,6 +65,7 @@ hook.obj: hook.asm
$(AS) -V $? $(AS) -V $?
%.obj: %.c %.obj: %.c
<<<<<<< HEAD:snes/fatfstest/Makefile
$(CC) -wl -wp -sop -ML -I $(INC) $? $(CC) -wl -wp -sop -ML -I $(INC) $?
#$(APP): $(OBJS) #$(APP): $(OBJS)
@ -84,6 +89,19 @@ $(APP): $(OBJS) hook.obj
repair: $(APP) repair: $(APP)
$(UCON) -snes -chk $(APP) 2>&1 >/dev/null $(UCON) -snes -chk $(APP) 2>&1 >/dev/null
rm -rf fatfs.bak 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

View File

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

37
snes/fatfstest/crc.c Normal file
View File

@ -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
snes/fatfstest/crc.h Normal file
View File

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

View File

@ -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]; word debugMap[0x400];
static char debug_buffer[255]; static char debug_buffer[512];
static char screen_buffer[255]; static char screen_buffer[512];
void debug_init(void) { void debug_init(void) {
@ -94,12 +90,17 @@ void _print_console(const char *buffer){
*(byte*) 0x3000=*buffer++; *(byte*) 0x3000=*buffer++;
} }
void printfc(char *fmt,...){ void printfc(char *fmt,...){
va_list ap; va_list ap;
va_start(ap,fmt); va_start(ap,fmt);
vsprintf(debug_buffer,fmt,ap); vsprintf(debug_buffer,fmt,ap);
va_end(ap); va_end(ap);
_print_console(debug_buffer); _print_console(debug_buffer);
//memset(debug_buffer,0,255);
} }
void printfs(word y,char *fmt,...){ void printfs(word y,char *fmt,...){
@ -108,8 +109,42 @@ void printfs(word y,char *fmt,...){
vsprintf(screen_buffer,fmt,ap); vsprintf(screen_buffer,fmt,ap);
va_end(ap); va_end(ap);
_print_screen(y,screen_buffer); _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 */ /* keep the linker happy */
int open(const char * _name, int _mode){ int open(const char * _name, int _mode){

View File

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

View File

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

View File

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

View File

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

View File

@ -3,7 +3,7 @@
<plist version="1.0"> <plist version="1.0">
<dict> <dict>
<key>currentDocument</key> <key>currentDocument</key>
<string>snes/fatfstest/integer.h</string> <string>snes/fatfstest/pad.c</string>
<key>documents</key> <key>documents</key>
<array> <array>
<dict> <dict>
@ -35,6 +35,36 @@
<key>firstVisibleLine</key> <key>firstVisibleLine</key>
<integer>0</integer> <integer>0</integer>
</dict> </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> <key>poc/avr_sdcard/mmc.h</key>
<dict> <dict>
<key>caret</key> <key>caret</key>
@ -77,33 +107,215 @@
<key>firstVisibleLine</key> <key>firstVisibleLine</key>
<integer>211</integer> <integer>211</integer>
</dict> </dict>
<key>snes/fatfstest/debug.c</key> <key>snes/crc/crc.c</key>
<dict> <dict>
<key>caret</key> <key>caret</key>
<dict> <dict>
<key>column</key> <key>column</key>
<integer>1</integer>
<key>line</key>
<integer>39</integer> <integer>39</integer>
<key>line</key>
<integer>27</integer>
</dict> </dict>
<key>firstVisibleColumn</key> <key>firstVisibleColumn</key>
<integer>0</integer> <integer>0</integer>
<key>firstVisibleLine</key> <key>firstVisibleLine</key>
<integer>0</integer> <integer>0</integer>
</dict> </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>0</integer>
<key>line</key>
<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> <key>snes/fatfstest/diskio.c</key>
<dict> <dict>
<key>caret</key> <key>caret</key>
<dict> <dict>
<key>column</key> <key>column</key>
<integer>25</integer> <integer>6</integer>
<key>line</key> <key>line</key>
<integer>39</integer> <integer>91</integer>
</dict> </dict>
<key>firstVisibleColumn</key> <key>firstVisibleColumn</key>
<integer>0</integer> <integer>0</integer>
<key>firstVisibleLine</key> <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> </dict>
<key>snes/fatfstest/event.h</key> <key>snes/fatfstest/event.h</key>
<dict> <dict>
@ -119,14 +331,56 @@
<key>firstVisibleLine</key> <key>firstVisibleLine</key>
<integer>0</integer> <integer>0</integer>
</dict> </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> <key>snes/fatfstest/integer.h</key>
<dict> <dict>
<key>caret</key> <key>caret</key>
<dict> <dict>
<key>column</key> <key>column</key>
<integer>2</integer> <integer>28</integer>
<key>line</key> <key>line</key>
<integer>35</integer> <integer>24</integer>
</dict> </dict>
<key>firstVisibleColumn</key> <key>firstVisibleColumn</key>
<integer>0</integer> <integer>0</integer>
@ -138,14 +392,28 @@
<key>caret</key> <key>caret</key>
<dict> <dict>
<key>column</key> <key>column</key>
<integer>13</integer> <integer>0</integer>
<key>line</key> <key>line</key>
<integer>22</integer> <integer>26</integer>
</dict> </dict>
<key>firstVisibleColumn</key> <key>firstVisibleColumn</key>
<integer>0</integer> <integer>0</integer>
<key>firstVisibleLine</key> <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> </dict>
<key>snes/fatfstest/pad.c</key> <key>snes/fatfstest/pad.c</key>
<dict> <dict>
@ -161,19 +429,47 @@
<key>firstVisibleLine</key> <key>firstVisibleLine</key>
<integer>0</integer> <integer>0</integer>
</dict> </dict>
<key>tools/bsnes/cart/cart.cpp</key> <key>snes/fatfstest/ressource.asm</key>
<dict> <dict>
<key>caret</key> <key>caret</key>
<dict> <dict>
<key>column</key> <key>column</key>
<integer>0</integer> <integer>0</integer>
<key>line</key> <key>line</key>
<integer>95</integer> <integer>14</integer>
</dict> </dict>
<key>firstVisibleColumn</key> <key>firstVisibleColumn</key>
<integer>0</integer> <integer>0</integer>
<key>firstVisibleLine</key> <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> </dict>
<key>tools/bsnes/cart/cart.hpp</key> <key>tools/bsnes/cart/cart.hpp</key>
<dict> <dict>
@ -189,35 +485,77 @@
<key>firstVisibleLine</key> <key>firstVisibleLine</key>
<integer>24</integer> <integer>24</integer>
</dict> </dict>
<key>tools/bsnes/chip/fatfs/diskio.cpp</key> <key>tools/bsnes/chip/fatfs/config.h</key>
<dict> <dict>
<key>caret</key> <key>caret</key>
<dict> <dict>
<key>column</key> <key>column</key>
<integer>0</integer> <integer>0</integer>
<key>line</key> <key>line</key>
<integer>0</integer> <integer>21</integer>
</dict> </dict>
<key>firstVisibleColumn</key> <key>firstVisibleColumn</key>
<integer>0</integer> <integer>0</integer>
<key>firstVisibleLine</key> <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> </dict>
<key>tools/bsnes/chip/fatfs/fatfs.cpp</key> <key>tools/bsnes/chip/fatfs/fatfs.cpp</key>
<dict> <dict>
<key>caret</key> <key>caret</key>
<dict> <dict>
<key>column</key> <key>column</key>
<integer>23</integer> <integer>2</integer>
<key>line</key> <key>line</key>
<integer>69</integer> <integer>56</integer>
</dict> </dict>
<key>firstVisibleColumn</key> <key>firstVisibleColumn</key>
<integer>0</integer> <integer>0</integer>
<key>firstVisibleLine</key> <key>firstVisibleLine</key>
<integer>43</integer> <integer>17</integer>
</dict> </dict>
<key>tools/bsnes/chip/fatfs/fatfs.hpp</key> <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> <dict>
<key>caret</key> <key>caret</key>
<dict> <dict>
@ -245,22 +583,121 @@
<key>firstVisibleLine</key> <key>firstVisibleLine</key>
<integer>0</integer> <integer>0</integer>
</dict> </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> </dict>
<key>openDocuments</key> <key>openDocuments</key>
<array> <array>
<string>snes/fatfstest/debug.c</string> <string>snes/fatfstest/debug.c</string>
<string>snes/fatfstest/pad.c</string> <string>snes/fatfstest/pad.c</string>
<string>snes/fatfstest/diskio.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>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/event.h</string>
<string>snes/fatfstest/integer.h</string> <string>snes/fatfstest/integer.h</string>
<string>tools/bsnes/chip/fatfs/fatfs.hpp</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>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> <string>tools/bsnes/chip/fatfs/diskio.cpp</string>
</array> </array>
<key>showFileHierarchyDrawer</key> <key>showFileHierarchyDrawer</key>
<false/> <false/>
<key>windowFrame</key> <key>windowFrame</key>
<string>{{0, 60}, {1110, 818}}</string> <string>{{0, 52}, {1205, 826}}</string>
</dict> </dict>
</plist> </plist>

View File

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

View File

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

View File

@ -96,10 +96,11 @@ DRESULT disk_read (
DWORD offset = sector * 512; DWORD offset = sector * 512;
int size = count * 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); 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); memcpy(buff,image_addr + offset,size);
printf("%x %x %x %x\n",buff[0],buff[1],buff[2],buff[3]);
#ifdef MMIO_DEBUG #ifdef MMIO_DEBUG
printf("DISKIO::disk_read: done\n"); printf("DISKIO::disk_read: done\n");
#endif #endif

View File

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

View File

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

View File

@ -44,9 +44,10 @@ image_not_parted:
image: image:
rm -fv disk00.vfat 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 mount -o loop disk00.vfat disk
sudo cp -v ../../../roms/*smc disk/ sudo cp -v ../../../roms/*smc disk/
sudo cp -v /var/log/syslog disk/test.txt
sudo umount disk sudo umount disk
mount: mount:

Binary file not shown.

View File

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