From 4a61063406560724c3bca4d3af8be92303cd91de Mon Sep 17 00:00:00 2001 From: David Voswinkel Date: Sun, 7 Jun 2009 17:26:09 +0200 Subject: [PATCH] added crc checks --- snes/fatfstest/Makefile | 8 ++--- snes/fatfstest/config.h | 2 +- snes/fatfstest/crc.c | 37 +++++++++++++++++++++ snes/fatfstest/crc.h | 4 +++ snes/fatfstest/debug.c | 48 ++++++++++++++++++++++++---- snes/fatfstest/debug.h | 1 + snes/fatfstest/diskio.c | 4 +-- snes/fatfstest/hook.asm | 2 ++ snes/fatfstest/main.c | 62 ++++++++++++++++++++++++++---------- snes/fatfstest/ressource.asm | 3 -- snes/fatfstest/ressource.h | 1 - 11 files changed, 138 insertions(+), 34 deletions(-) create mode 100644 snes/fatfstest/crc.c create mode 100644 snes/fatfstest/crc.h diff --git a/snes/fatfstest/Makefile b/snes/fatfstest/Makefile index 8c9c055..47705a9 100644 --- a/snes/fatfstest/Makefile +++ b/snes/fatfstest/Makefile @@ -28,7 +28,7 @@ LIBS=-L$(SDK)/lib/cl #-L$(SDK)/lib/c134 -OBJS=hook.obj 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 APP=fatfs.smc GFX=debugfont @@ -66,11 +66,11 @@ hook.obj: hook.asm $(APP): $(OBJS) $(LD) -HB -M21 -V -T -Pff \ - -C3e8000,000000 -U000000,000000 \ + -C3e8000,1f0000 -U000000,000000 \ -Avectors=FFE4,7FE4 \ -Aregistration_data=FFB0,7FB0 \ - -Aressource=3f8000,8000 \ - -Ahook=0108000,0000 \ + -Aressource=18000,8000 \ + -Ahook=8000,0000 \ -N $(OBJS) $(LIBS) -O $@ ucon64 -snes -chk $(APP) 2>&1 >/dev/null diff --git a/snes/fatfstest/config.h b/snes/fatfstest/config.h index 6094016..c870802 100644 --- a/snes/fatfstest/config.h +++ b/snes/fatfstest/config.h @@ -15,7 +15,7 @@ #define SHARED_SIZE 512 -#define SHARED_ADDR 0x3f0000 +#define SHARED_ADDR 0x3d0000 #undef MMIO_DEBUG diff --git a/snes/fatfstest/crc.c b/snes/fatfstest/crc.c new file mode 100644 index 0000000..8c951a0 --- /dev/null +++ b/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=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){ diff --git a/snes/fatfstest/debug.h b/snes/fatfstest/debug.h index c9ed2a1..e8ba412 100644 --- a/snes/fatfstest/debug.h +++ b/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); diff --git a/snes/fatfstest/diskio.c b/snes/fatfstest/diskio.c index 166aa45..bf811db 100644 --- a/snes/fatfstest/diskio.c +++ b/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"); diff --git a/snes/fatfstest/hook.asm b/snes/fatfstest/hook.asm index b6c81ab..4b959dc 100644 --- a/snes/fatfstest/hook.asm +++ b/snes/fatfstest/hook.asm @@ -3,3 +3,5 @@ HOOK SECTION HOOK: jsr >START brk + + diff --git a/snes/fatfstest/main.c b/snes/fatfstest/main.c index f6b2792..fd7f814 100644 --- a/snes/fatfstest/main.c +++ b/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,31 @@ void main(void) { printfc("SNES::main: read cnt=%i s2=%i\n",cnt,s2); break; } - printfs(1,"%lu BYTES READ", p2); - + printfs(1 + bank,"BANK %X ADDR %LX",bank,addr); + /* for (i=0; i