add dump
cleanup debug code
This commit is contained in:
parent
8e1e5ea072
commit
f832f0f72b
20
snes/fatfstest/dump_mrdo.txt
Normal file
20
snes/fatfstest/dump_mrdo.txt
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
00000000 18 fb 78 c2 10 e2 20 a2 ff 01 9a a9 00 48 ab a9 |..x... ......H..|
|
||||||
|
00000010 8f 8d 00 21 a9 03 9c 00 42 8d 01 21 9c 02 21 9c |...!....B..!..!.|
|
||||||
|
00000020 03 21 a9 09 8d 05 21 9c 06 21 9c 07 21 9c 08 21 |.!....!..!..!..!|
|
||||||
|
00000030 9c 09 21 9c 0a 21 9c 0b 21 9c 0c 21 9c 0d 21 9c |..!..!..!..!..!.|
|
||||||
|
00000040 0d 21 9c 0e 21 9c 0e 21 9c 0f 21 9c 0f 21 9c 10 |.!..!..!..!..!..|
|
||||||
|
00000050 21 9c 10 21 9c 11 21 9c 11 21 9c 12 21 9c 12 21 |!..!..!..!..!..!|
|
||||||
|
00000060 9c 13 21 9c 13 21 9c 14 21 9c 14 21 a9 80 8d 15 |..!..!..!..!....|
|
||||||
|
00000070 21 9c 16 21 9c 17 21 9c 1a 21 9c 1b 21 a9 01 8d |!..!..!..!..!...|
|
||||||
|
00000080 1b 21 9c 1c 21 9c 1c 21 9c 1d 21 9c 1d 21 9c 1e |.!..!..!..!..!..|
|
||||||
|
00000090 21 8d 1e 21 9c 1f 21 9c 1f 21 9c 20 21 9c 20 21 |!..!..!..!. !. !|
|
||||||
|
|
||||||
|
|
||||||
|
Bank: 0x01 Addr: 0x008000 Block: 0x0040 CRC 0xb8ec
|
||||||
|
Bank: 0x02 Addr: 0x010000 Block: 0x0080 CRC 0x9b9b
|
||||||
|
Bank: 0x03 Addr: 0x018000 Block: 0x00c0 CRC 0x798e
|
||||||
|
Bank: 0x04 Addr: 0x020000 Block: 0x0100 CRC 0x1092
|
||||||
|
Bank: 0x05 Addr: 0x028000 Block: 0x0140 CRC 0x9d0c
|
||||||
|
Bank: 0x06 Addr: 0x030000 Block: 0x0180 CRC 0xf960
|
||||||
|
Bank: 0x07 Addr: 0x038000 Block: 0x01c0 CRC 0x20ed
|
||||||
|
Bank: 0x08 Addr: 0x040000 Block: 0x0200 CRC 0xe5a3
|
||||||
@ -13,14 +13,22 @@
|
|||||||
#include "debug.h"
|
#include "debug.h"
|
||||||
#include "crc.h"
|
#include "crc.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* o debug STA global o optimize internal transfer buffer o direct write to mempage o relocate main code o exec loaded file
|
|
||||||
*/
|
o relocate main code
|
||||||
|
o exec loaded file
|
||||||
|
|
||||||
|
o debug STA global
|
||||||
|
o optimize internal transfer buffer
|
||||||
|
o direct writeto mempage
|
||||||
|
|
||||||
|
|
||||||
#define ROM_NAME "MRDO.SMC"
|
*/
|
||||||
#define BLOCK_SIZE 512
|
|
||||||
#define BASE_ADDR 0x008000
|
|
||||||
|
#define ROM_NAME "MRDO.SMC"
|
||||||
|
#define BLOCK_SIZE 512
|
||||||
|
#define BASE_ADDR 0x008000
|
||||||
|
|
||||||
padStatus pad1;
|
padStatus pad1;
|
||||||
DWORD acc_size; /* Work register for fs command */
|
DWORD acc_size; /* Work register for fs command */
|
||||||
@ -114,16 +122,12 @@ void wait(void)
|
|||||||
{
|
{
|
||||||
printfc("SNES::wait: press A to continue\n");
|
printfc("SNES::wait: press A to continue\n");
|
||||||
enablePad();
|
enablePad();
|
||||||
|
|
||||||
// waitForVBlank();
|
|
||||||
pad1 = readPad((byte) 0);
|
pad1 = readPad((byte) 0);
|
||||||
while (!pad1.A) {
|
while (!pad1.A) {
|
||||||
waitForVBlank();
|
waitForVBlank();
|
||||||
pad1 = readPad((byte) 0);
|
pad1 = readPad((byte) 0);
|
||||||
}
|
}
|
||||||
printfc("SNES::wait: done\n");
|
printfc("SNES::wait: done\n");
|
||||||
|
|
||||||
// disablePad();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void boot(void)
|
void boot(void)
|
||||||
@ -233,9 +237,8 @@ void boot(void)
|
|||||||
printfc("SNES::main: read cnt=%i p1=%li p2=%li s2=%i\n", cnt,
|
printfc("SNES::main: read cnt=%i p1=%li p2=%li s2=%i\n", cnt,
|
||||||
p1, p2, s2);
|
p1, p2, s2);
|
||||||
|
|
||||||
// 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);
|
||||||
break;
|
break;
|
||||||
@ -247,27 +250,21 @@ void boot(void)
|
|||||||
}
|
}
|
||||||
printfs(1 + bank, "BANK %X ADDR %LX", bank, addr);
|
printfs(1 + bank, "BANK %X ADDR %LX", bank, addr);
|
||||||
|
|
||||||
/*
|
printfc("SNES::main: mem %x %x %x %x %x\n",
|
||||||
* for (i=0; i<BLOCK_SIZE; i++){ *(byte*)(addr + i) = Buff[i]; }
|
|
||||||
*/
|
|
||||||
printfc("SNES::main: mem %x %x %x %x %lx\n",
|
|
||||||
*(byte *) (addr + 0), *(byte *) (addr + 1),
|
*(byte *) (addr + 0), *(byte *) (addr + 1),
|
||||||
*(byte *) (addr + 2), *(byte *) (addr + 3), addr);
|
*(byte *) (addr + 2), *(byte *) (addr + 3));
|
||||||
|
|
||||||
// if (addr=0x10fe00){
|
#if 0
|
||||||
printc_packet(addr, 512, (byte *) (addr));
|
printc_packet(addr, 512, (byte *) (addr));
|
||||||
|
#endif
|
||||||
// }
|
|
||||||
addr += s2;
|
addr += s2;
|
||||||
if (addr % 0x10000 == 0) {
|
if (addr % 0x10000 == 0) {
|
||||||
|
crc = crc_update_mem(crc_addr,0x8000);
|
||||||
// crc = crc_update_mem(crc_addr,0x8000);
|
printfc("addr=%lx crc=%x\n",crc_addr,crc);
|
||||||
// printfc("addr=%lx crc=%x\n",crc_addr,crc);
|
wait();
|
||||||
// printfs(1 + bank,"BANK %X ADDR %LX CRC
|
printfs(1 + bank,"BANK %X ADDR %LX CRC %X",bank,addr,crc);
|
||||||
// %X",bank,addr,crc);
|
|
||||||
addr += 0x8000;
|
addr += 0x8000;
|
||||||
|
crc_addr+=0x8000;
|
||||||
// crc_addr+=0x8000;
|
|
||||||
bank++;
|
bank++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -17,5 +17,6 @@
|
|||||||
#define SHARED_MAX_SIZE 512
|
#define SHARED_MAX_SIZE 512
|
||||||
#define SHARED_ADDR 0x3d0000
|
#define SHARED_ADDR 0x3d0000
|
||||||
|
|
||||||
#undef MMIO_DEBUG
|
#undef MMIO_DEBUG
|
||||||
#undef FATFS_DEBUG
|
#undef FATFS_DEBUG
|
||||||
|
#define DISKIO_DEBUG 1
|
||||||
@ -1,6 +1,7 @@
|
|||||||
|
|
||||||
#include "integer.h"
|
#include "integer.h"
|
||||||
#include "diskio.h"
|
#include "diskio.h"
|
||||||
|
#include "config.h"
|
||||||
|
|
||||||
static volatile
|
static volatile
|
||||||
DSTATUS Stat = STA_NOINIT; /* Disk status */
|
DSTATUS Stat = STA_NOINIT; /* Disk status */
|
||||||
@ -47,7 +48,7 @@ DSTATUS disk_initialize (BYTE drv) {
|
|||||||
|
|
||||||
int fd = open(IMAGE_NAME, O_RDWR);
|
int fd = open(IMAGE_NAME, O_RDWR);
|
||||||
if (fd == -1) {
|
if (fd == -1) {
|
||||||
perror("DISKIO::disk_initialize: Error opening file for writing");
|
perror("BSNES::disk_initialize: Error opening file for writing");
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -55,12 +56,12 @@ DSTATUS disk_initialize (BYTE drv) {
|
|||||||
lseek(fd,0,SEEK_SET);
|
lseek(fd,0,SEEK_SET);
|
||||||
|
|
||||||
image_addr = (BYTE*)mmap(0, size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
|
image_addr = (BYTE*)mmap(0, size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
|
||||||
#ifdef MMIO_DEBUG
|
#ifdef DISKIO_DEBUG
|
||||||
printf("DISKIO::disk_initialize: Open Image (size %i) %p\n",size,image_addr);
|
printf("BSNES::disk_initialize: Open Image (size %i) %p\n",size,image_addr);
|
||||||
#endif
|
#endif
|
||||||
if (image_addr == MAP_FAILED) {
|
if (image_addr == MAP_FAILED) {
|
||||||
close(fd);
|
close(fd);
|
||||||
perror("DISKIO::disk_initialize: Error mmapping the file");
|
perror("BSNES::disk_initialize: Error mmapping the file");
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -96,13 +97,13 @@ DRESULT disk_read (
|
|||||||
|
|
||||||
DWORD offset = sector * 512;
|
DWORD offset = sector * 512;
|
||||||
int size = count * 512;
|
int size = count * 512;
|
||||||
//#ifdef MMIO_DEBUG
|
#ifdef DISKIO_DEBUG
|
||||||
printf("DISKIO::disk_read: sector=%li count=%i addr=%p off=%li size=%i\n",sector,count,image_addr + offset,offset,size);
|
printf("BSNES::disk_read: sector=%li count=%i addr=%p off=%li size=%i\n",sector,count,image_addr + offset,offset,size);
|
||||||
//#endif
|
printf("BSNES::disk_read: %02x %02x %02x %02x\n",buff[0],buff[1],buff[2],buff[3]);
|
||||||
|
#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 DISKIO_DEBUG
|
||||||
#ifdef MMIO_DEBUG
|
printf("BSNES::disk_read: done\n");
|
||||||
printf("DISKIO::disk_read: done\n");
|
|
||||||
#endif
|
#endif
|
||||||
return RES_OK;
|
return RES_OK;
|
||||||
}
|
}
|
||||||
@ -125,8 +126,8 @@ DRESULT disk_write (
|
|||||||
|
|
||||||
DWORD offset = sector * 512;
|
DWORD offset = sector * 512;
|
||||||
int size = count * 512;
|
int size = count * 512;
|
||||||
#ifdef MMIO_DEBUG
|
#ifdef DISKIO_DEBUG
|
||||||
printf("disk_write: sector=%li count=%i addr=%p off=%li size=%i\n",sector,count,image_addr + offset,offset,size);
|
printf("BSNES::disk_write: sector=%li count=%i addr=%p off=%li size=%i\n",sector,count,image_addr + offset,offset,size);
|
||||||
#endif
|
#endif
|
||||||
memcpy(image_addr + offset,buff,size);
|
memcpy(image_addr + offset,buff,size);
|
||||||
return RES_OK;
|
return RES_OK;
|
||||||
@ -152,22 +153,22 @@ DRESULT disk_ioctl (
|
|||||||
|
|
||||||
switch (ctrl) {
|
switch (ctrl) {
|
||||||
case GET_SECTOR_COUNT : /* Get number of sectors on the disk (DWORD) */
|
case GET_SECTOR_COUNT : /* Get number of sectors on the disk (DWORD) */
|
||||||
#ifdef MMIO_DEBUG
|
#ifdef DISKIO_DEBUG
|
||||||
printf("disk_ioctl: GET_SECTOR_COUNT\n");
|
printf("BSNES::disk_ioctl: GET_SECTOR_COUNT\n");
|
||||||
#endif
|
#endif
|
||||||
ofs = 60; w = 2; n = 0;
|
ofs = 60; w = 2; n = 0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GET_SECTOR_SIZE : /* Get sectors on the disk (WORD) */
|
case GET_SECTOR_SIZE : /* Get sectors on the disk (WORD) */
|
||||||
#ifdef MMIO_DEBUG
|
#ifdef DISKIO_DEBUG
|
||||||
printf("disk_ioctl: GET_SECTOR_SIZE\n");
|
printf("BSNES::disk_ioctl: GET_SECTOR_SIZE\n");
|
||||||
#endif
|
#endif
|
||||||
*(WORD*)buff = 512;
|
*(WORD*)buff = 512;
|
||||||
return RES_OK;
|
return RES_OK;
|
||||||
|
|
||||||
case GET_BLOCK_SIZE : /* Get erase block size in sectors (DWORD) */
|
case GET_BLOCK_SIZE : /* Get erase block size in sectors (DWORD) */
|
||||||
#ifdef MMIO_DEBUG
|
#ifdef DISKIO_DEBUG
|
||||||
printf("disk_ioctl: GET_BLOCK_SIZE\n");
|
printf("BSNES::disk_ioctl: GET_BLOCK_SIZE\n");
|
||||||
#endif
|
#endif
|
||||||
*(DWORD*)buff = 32;
|
*(DWORD*)buff = 32;
|
||||||
return RES_OK;
|
return RES_OK;
|
||||||
|
|||||||
@ -6,8 +6,6 @@
|
|||||||
#include "diskio.h"
|
#include "diskio.h"
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void FATFS::init() {
|
void FATFS::init() {
|
||||||
command = CMD_NONE;
|
command = CMD_NONE;
|
||||||
sector = 0;
|
sector = 0;
|
||||||
@ -61,7 +59,7 @@ uint8 FATFS::mmio_read(unsigned addr) {
|
|||||||
addr &= 0xffff;
|
addr &= 0xffff;
|
||||||
if (addr == MMIO_RETVAL){
|
if (addr == MMIO_RETVAL){
|
||||||
#ifdef FATFS_DEBUG
|
#ifdef FATFS_DEBUG
|
||||||
printf("FATFS::mmio_read retal=%i\n",retval);
|
printf("BSNES::mmio_read retal=%i\n",retval);
|
||||||
#endif
|
#endif
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
@ -71,33 +69,33 @@ uint8 FATFS::mmio_read(unsigned addr) {
|
|||||||
void FATFS::mmio_write(unsigned addr, uint8 data) {
|
void FATFS::mmio_write(unsigned addr, uint8 data) {
|
||||||
addr &= 0xffff;
|
addr &= 0xffff;
|
||||||
#ifdef FATFS_DEBUG
|
#ifdef FATFS_DEBUG
|
||||||
printf("FATFS::mmio_write 0x%04x 0x%02x (%i)\n",addr,data,data);
|
printf("BSNES::mmio_write 0x%04x 0x%02x (%i)\n",addr,data,data);
|
||||||
#endif
|
#endif
|
||||||
if (addr == 0x3010){
|
if (addr == 0x3010){
|
||||||
switch(data){
|
switch(data){
|
||||||
case CMD_INIT:
|
case CMD_INIT:
|
||||||
#ifdef FATFS_DEBUG
|
#ifdef FATFS_DEBUG
|
||||||
printf("FATFS::mmio_write CMD_INIT \n");
|
printf("BSNES::mmio_write CMD_INIT \n");
|
||||||
#endif
|
#endif
|
||||||
command = CMD_INIT;
|
command = CMD_INIT;
|
||||||
retval = disk_initialize(0);
|
retval = disk_initialize(0);
|
||||||
break;
|
break;
|
||||||
case CMD_READ:
|
case CMD_READ:
|
||||||
#ifdef FATFS_DEBUG
|
#ifdef FATFS_DEBUG
|
||||||
printf("FATFS::mmio_write CMD_READ \n");
|
printf("BSNES::mmio_write CMD_READ \n");
|
||||||
#endif
|
#endif
|
||||||
command = CMD_READ;
|
command = CMD_READ;
|
||||||
break;
|
break;
|
||||||
case CMD_WRITE:
|
case CMD_WRITE:
|
||||||
command = CMD_WRITE;
|
command = CMD_WRITE;
|
||||||
#ifdef FATFS_DEBUG
|
#ifdef FATFS_DEBUG
|
||||||
printf("FATFS::mmio_write CMD_WRITE \n");
|
printf("BSNES::mmio_write CMD_WRITE \n");
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
command = CMD_NONE;
|
command = CMD_NONE;
|
||||||
#ifdef FATFS_DEBUG
|
#ifdef FATFS_DEBUG
|
||||||
printf("FATFS::mmio_write CMD_NONE \n");
|
printf("BSNES::mmio_write CMD_NONE \n");
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -106,13 +104,13 @@ void FATFS::mmio_write(unsigned addr, uint8 data) {
|
|||||||
if (addr >= MMIO_SECTOR01 && addr <= MMIO_SECTOR04){
|
if (addr >= MMIO_SECTOR01 && addr <= MMIO_SECTOR04){
|
||||||
sector = data << ( (3 - ( addr - MMIO_SECTOR01)) << 3);
|
sector = data << ( (3 - ( addr - MMIO_SECTOR01)) << 3);
|
||||||
#ifdef FATFS_DEBUG
|
#ifdef FATFS_DEBUG
|
||||||
printf("FATFS::mmio_write set sector: byte=%i val=%i sector=%i \n",(3 - ( addr - MMIO_SECTOR01)),data,sector);
|
printf("BSNES::mmio_write set sector: byte=%i val=%i sector=%i \n",(3 - ( addr - MMIO_SECTOR01)),data,sector);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
if (addr == MMIO_COUNT){
|
if (addr == MMIO_COUNT){
|
||||||
count = data;
|
count = data;
|
||||||
#ifdef FATFS_DEBUG
|
#ifdef FATFS_DEBUG
|
||||||
printf("FATFS::mmio_write set count: count=%i \n",count);
|
printf("BSNES::mmio_write set count: count=%i \n",count);
|
||||||
#endif
|
#endif
|
||||||
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);
|
||||||
@ -123,13 +121,13 @@ void FATFS::mmio_write(unsigned addr, uint8 data) {
|
|||||||
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
|
||||||
printf("FATFS::mmio_write set offset: no command to trigger \n");
|
printf("BSNES::mmio_write set offset: no command to trigger \n");
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (addr == MMIO_RETVAL){
|
if (addr == MMIO_RETVAL){
|
||||||
#ifdef FATFS_DEBUG
|
#ifdef FATFS_DEBUG
|
||||||
printf("FATFS::mmio_write reg 0x3016 reset\n");
|
printf("BSNES::mmio_write reg 0x3016 reset\n");
|
||||||
#endif
|
#endif
|
||||||
retval = STA_VOID;
|
retval = STA_VOID;
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user