- /* Determine which block is being sent */
- if (c == (blocknr & 0xff))
- /* Last block repeated */
- lcd_printf(0, 2, LCD_FILL, "Repeat blk %d", blocknr);
- else if (c == ((blocknr + 1) & 0xff))
- /* Next block */
- lcd_printf(0, 2, LCD_FILL, "Recv blk %d", ++blocknr);
- else
+ /* Determine which block is being sent */
+ if (c == (blocknr & 0xff))
+ /* Last block repeated */
+ lcd_printf(0, 2, LCD_FILL, "Repeat blk %d", blocknr);
+ else if (c == ((blocknr + 1) & 0xff))
+ /* Next block */
+ lcd_printf(0, 2, LCD_FILL, "Recv blk %d", ++blocknr);
+ else
+ {
+ /* Sync lost */
+ lcd_printf(0, 3, LCD_FILL, "Sync lost (%d/%d)", c, blocknr);
+ purge = true;
+ break;
+ }
+
+ buf = block_buffer; /* Reset pointer to start of buffer */
+ checksum = 0;
+ crc = 0;
+ for (i = 0; i < blocksize; i++)
+ {
+ if ((c = ser_getchar()) == EOF)