diff -ru linux_orig/main.c linux/main.c --- linux_orig/main.c Fri Feb 13 16:53:48 2004 +++ linux/main.c Mon Jul 10 16:54:45 2006 @@ -205,7 +205,7 @@ } else { - sprintf( s, "FPR%04X", firstaddr ); + sprintf( s, "PRO%04X", firstaddr ); com_puts( s ); for( addr = firstaddr;; addr++ ) { @@ -215,9 +215,13 @@ write(fd,&d1,1); //if( d1 == 0xA5 ) com_putc( 0xA5 ); // send A5 two times - if( d1 == 0xA5 ) write(fd,&d1,1); // send A5 two times + if( d1 == 0xA5 ) + { + d1 = 0; + write(fd,&d1,1); + } // send 0 after 0xA5 - if( (addr & 0xF) == 0xF ) + if( (addr & 0x1FF) == 0x1FF ) { tcdrain(fd); printf( "\033[AProgramming: %04X - %04X\n", firstaddr, addr + 1); @@ -231,7 +235,7 @@ if( addr == lastaddr ) { com_putc( 0xA5); - com_putc( 0x00); + com_putc( 0xFF); tcdrain(fd); printf( "\033[AProgramming: %04X - %04X\n", firstaddr, addr); @@ -239,6 +243,7 @@ if( com_getc (TIMEOUT) == COMMAND_DONE ) { printf( "Programming successful" ); + com_puts( "RES" ); } else { @@ -260,7 +265,7 @@ while (1) { printf("\033[A%s at %ld Baud: %c\n", device, baud_value[baudrate],WAITSTRING[++i&3] ); - com_puts( "\370\360\340\200\374" ); + com_puts( "\370\360\340\300\374" ); if( com_getc( 0 ) == COMMAND_DONE ) {