X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=ROM2%2Fmain_basic.c;h=27d6e0bee9ddfb90af0faad6397dc422adce830d;hb=dc87be12e6cb8428ab33c0984c5f871e6e1c5587;hp=03d56a877c9cbcc599f7809e6efa29a0d9368739;hpb=31352d878e591a3e7deb159fd9b65a2fb6706fa9;p=uccvend-snackrom.git diff --git a/ROM2/main_basic.c b/ROM2/main_basic.c index 03d56a8..27d6e0b 100644 --- a/ROM2/main_basic.c +++ b/ROM2/main_basic.c @@ -14,6 +14,7 @@ #include "sci.h" #include "vend.h" #include "xmodem.h" +//#include "sha1.h" u8 last_standalone; u8 last_switch_input; @@ -323,6 +324,9 @@ void getrom() { send_string("Writing to serial port (maybe). Size is 0x"); send_string(u82hex(_rom_src_len >> 8)); send_string(u82hex(_rom_src_len & 0xff)); + send_string("@0x"); + send_string(u82hex((u16)(&_rom_src_data) >> 8)); + send_string(u82hex((u16)(&_rom_src_data) & 0xff)); send_string(" with signature "); s[0] = _rom_src_data[0]; s[1] = _rom_src_data[1]; @@ -332,7 +336,10 @@ void getrom() { send_string(CRLF " Type YES to download rom.tar.bz2 via XMODEM: "); msg_clr(); while (!sci_have_packet); /* spin */ - if (!my_strncmp("YES", (char*)sci_rx_buf, 3)) return; + if (!my_strncmp("YES", (char*)sci_rx_buf, 3)) { + send_string(CRLF "Transfer cancelled." CRLF); + return; + } sci_init(); sci_doing_xmodem = 1; @@ -345,16 +352,19 @@ void getrom() { char *end = (char*)_rom_src_data+_rom_src_len; bool aborted = 0; while (1) { - if (!xmodem_send_packet((char*)p, 128)) { - aborted = 1; - break; - } - p += 128; if (p + 128 > end) { /* send partial packet */ if (!xmodem_send_packet((char*)p, end-p)) aborted = 1; break; + } if ((u16)p == 0xb600) { + /* we have an eeprom here. skip it. */ + p += 0x0200; + continue; + } else if (!xmodem_send_packet((char*)p, 128)) { + aborted = 1; + break; } + p += 128; } xmodem_finish_xfer(); @@ -372,6 +382,9 @@ void quit() { unknown_command(); } +//SHA1_CTX ctx; +//u8 sha1_digest[SHA1_SIGNATURE_SIZE]; + int main() { u8 i; for (i = 0; i < 11; i++) @@ -393,7 +406,6 @@ int main() { set_msg(" CRUEL "); - //comm_init(); //coinmech_init(); sci_init(); keypad_init(); @@ -451,6 +463,11 @@ int main() { } if (sci_have_packet) { + if (must_verify()) { + //SHA1_Init(&ctx); + //SHA1_Update(&ctx, sci_rx_buf, my_strlen(sci_rx_buf)); + //SHA1_Final(sha1_digest, &ctx); + } switch (sci_rx_buf[0]) { case '\0': case '#':