quickdev16/snes/crc/debug.c
2009-04-25 20:41:02 +02:00

81 lines
1.8 KiB
C

#include "data.h"
#include "pad.h"
#include "PPU.h"
#include "ressource.h"
#include "crc.h"
word debugMap[0x400];
void initDebugMap(void) {
word i;
for(i=0; i<0x400; i++) {
debugMap[i] = 0x00;
}
}
void int2hex(word i, char *buf)
{
word a;
for (a = 0; a < 4; ++a) {
buf[a] = (i >> (4 * (2 * 2 - 1 - a))) & 0xf;
if (buf[a] < 10)
buf[a] += '0';
else
buf[a] += 'A' - 10;
}
buf[a] = 0;
}
void debug(void) {
word i,j;
word crc01;
word crc02;
padStatus pad1;
char line_header[32] = "BANK CRC ADDR 123456789ABCDEF";
char line[32] = " ";
char test_buffer[] = "da";
void *pointer;
VRAMLoad((word) debugFont_pic, 0x5000, 2048);
CGRAMLoad((word) debugFont_pal, (byte) 0x00, (word) 16);
VRAMLoad((word) debugMap, 0x4000, 0x0800);
setTileMapLocation(0x4000, (byte) 0x00, (byte) 0);
setCharacterLocation(0x5000, (byte) 0);
*(byte*) 0x2100 = 0x0f; // enable background
j=0;
waitForVBlank();
for(i=0; i<32; i++) {
waitForVBlank();
VRAMByteWrite((byte) (line_header[i]-32), (word) (0x4000+i+(j*0x20)));
}
while(1){
pointer = (void*)0x8000;
crc02 = crc_update(test_buffer,2);
//crc01 = crc_update(pointer,255);
for(j=0; j<8; j++) {
crc01 = crc_update(pointer,0x8000);
int2hex(j,&line[0]);
int2hex(crc01,&line[5]);
int2hex((word)pointer,&line[10]);
waitForVBlank();
for(i=0; i<32; i++) {
waitForVBlank();
VRAMByteWrite((byte) (line[i]-32), (word) (0x4000+i+((j+1)*0x20)));
}
//pointer+=0x010000;
}
while(!pad1.start) {
waitForVBlank();
pad1 = readPad((byte) 0);
}
}
}
#pragma section CODE=BANK3,offset $3:0000
char far dummy[128];