#include "huc.h"

#define ED_OK 0x00

#asm
	.bank 2
	.org $6000
	.include "ed_sd.asm"
	.code
#endasm

init_screen(){
	set_color_rgb(1, 7, 7, 7);
	set_font_color(1, 0);
	set_font_pal(0);
	load_default_font();
}

main() {
	char 	everdrive_error;
	char	ed_addr[4];
	char 	buffer[512];
	int 	i, j;
	
	/* set sector 0 disk address to read from  for the moment */
	ed_addr[0] = 0x00;
	ed_addr[1] = 0x00;
	ed_addr[2] = 0x00;
	ed_addr[3] = 0x00;
	
	/* ??? */
	#asm
	lda    	#$02
	tam    	#$03
	#endasm
	
	/* enable everdrive card */
	put_string("ed_begin", 1, 2);
	ed_begin();
	put_string("OK", 20, 2) ;
	
	/* initialise disk interface */
	put_string("disk_init", 1, 3);
	everdrive_error = 0;
	everdrive_error = disk_init();
	if (everdrive_error != ED_OK) {
		put_number(everdrive_error, 3, 20, 3);
	} else {
		put_string("OK", 20, 3) ;
	}
	
	/* open disk for read and set read address */
	put_string("disk_open_read", 1, 5);
	everdrive_error = 0;
	everdrive_error = disk_open_read();
	if (everdrive_error != ED_OK) {
		put_number(everdrive_error, 3, 20, 5);
	} else {
		put_string("OK", 20, 5);
	}
	
	/* read a single 512 byte sector drom disk */
	put_string("disk_read_sector", 1, 6);
	everdrive_error = 0;
	everdrive_error = disk_read_sector(buffer);
	if (everdrive_error != ED_OK) {
		put_number(everdrive_error, 3, 20, 6);
	} else {
		put_string("OK", 20, 6);
	}
	
	/* print out content of 512 byte buffer */
	put_string("sector hex data", 1, 7);
	for(j=0; j<16;j++) {
		for(i=0; i<16; i++) {
			put_hex(buffer[i+(j*16)], 2, 2*i, j+9);
		}
	}
		
	/* disable ed */
	put_string("ed_end", 1, 26);
	ed_end();
	put_string("OK", 20, 26) ;
	
	for (;;) {
		vsync();
		joytrg(0);
	}
}
