void test_read(void) { char cbuf[255]; char d_buf[512]; int i; int line = 0; int pos = 0; int lines_per_screen = 20; int addr; addr = 0x0; ata_read_sectors(addr, 1, &d_buf); while(1) { for(i = 0; i < lines_per_screen; i++){ snprintf(cbuf, sizeof(cbuf), "%03x: %02x%02x%02x%02x %02x%02x%02x%02x %c%c%c%c%c%c%c%c", pos, d_buf[pos+0], d_buf[pos+1], d_buf[pos+2], d_buf[pos+3], d_buf[pos+4], d_buf[pos+5], d_buf[pos+6], d_buf[pos+7], printc(d_buf[pos+0]), printc(d_buf[pos+1]), printc(d_buf[pos+2]), printc(d_buf[pos+3]), printc(d_buf[pos+4]), printc(d_buf[pos+5]), printc(d_buf[pos+6]), printc(d_buf[pos+7])); lcd_puts(0,line++, cbuf); lcd_update(); pos += 8; } line = 0; if(wait_for_button() == 8) { pos -= 16; if(pos<0) pos = 0; } } }