int main(int argc,char *argv[]) { printf("\n* ATTiny861 loader vers. 1.0 *"); printf("\nLZs,2002-2017"); if(argc < 2 || *argv[1] != '-') usage(); if(init() != 0) { exit(1); } switch(argv[1][1]) { case 'w': if(readblk(argv[2],FLSIZE) == 0) { time( &start_time ); writefls(); time( &stop_time ); } break; case 'r': readfls(); if(!err) writeblk(argv[2],FLSIZE); break; case 'd': rdee(); if(!err) writeblk(argv[2],EESIZE); break; case 'u': if(readblk(argv[2],EESIZE) == 0) { wree(); } break; case 'l': wlocks(&argv[1][1]); break; case 'f': writefuses(argv[2],argv[1][2]); break; case 's': readsign(); rcalib(); break; default: printf("Unrecognised option %c\n",argv[1][1]); } RST1; setLoBits(RST | OE, 0x63); release(); elapsed_time = stop_time - start_time; if(elapsed_time) printf("\nElapsed time %ld sec.",elapsed_time); printf("\n\n"); return 0; }
void postamble(void) { char line[STRLEN]; int i, n = (max_fuse+7)/8; writefuses(); for (i=0; i<n; i++) checkfuse += fusebits[i]; checkfuse &= 0xffff; sprint(line, "C%.4x*\n%c", checkfuse, ETX); chksumline(line); checksum &= 0xffff; fprint(1, "%.4x", zflag ? 0 : checksum); if (dflag) fprint(2, "%.4x", checksum); }