diff --git a/poc/avr_sdcard/main.c b/poc/avr_sdcard/main.c index 6d75ebe..72dcf5f 100644 --- a/poc/avr_sdcard/main.c +++ b/poc/avr_sdcard/main.c @@ -44,7 +44,7 @@ extern FILE uart_stdout; //#define FILENAME "rom.smc" //ok //#define FILENAME "supert.smc" //#define FILENAME "vortex.smc" -//#define FILENAME "mrdo.smc" +#define FILENAME "mrdo.smc" //#define FILENAME "spacei.smc" //#define FILENAME "bank01.smc" //ok //#define FILENAME "bank02.smc" //ok @@ -55,7 +55,7 @@ extern FILE uart_stdout; //#define FILENAME "bank07.smc" //ok //#define FILENAME "banklo.smc" //ok //#define FILENAME "bankhi.smc" //ok -#define FILENAME "vram2.smc" //ok +//#define FILENAME "vram2.smc" //ok #define DUMPNAME "dump256.smc" #define BUFFER_SIZE 512 @@ -65,6 +65,42 @@ extern FILE uart_stdout; uint8_t read_buffer[BUFFER_SIZE]; +uint16_t crc_xmodem_update (uint16_t crc, uint8_t data) +{ + int i; + crc = crc ^ ((uint16_t)data << 8); + for (i=0; i<8; i++) + { + if (crc & 0x8000) + crc = (crc << 1) ^ 0x1021; + else + crc <<= 1; + } + + return crc; +} + +uint16_t do_crc(uint8_t * data,uint16_t size) +{ + uint16_t crc =0; + uint16_t i; + for (i=0; i