home *** CD-ROM | disk | FTP | other *** search
- /* fromhex.c, UNIX version */
-
- #include <stdio.h>
-
- int bytes,sum;
-
- main()
- {
- register i,v;
- register n;
-
- n = 0;
- v = 0;
- while ((i = getchar()) != EOF) {
- i &= 0177;
- if (i == '|')
- break;
- if (i < 0100 || i > 0117)
- continue;
- v = (v << 4) | (i & 0xF);
- if ((++n & 1) == 0) {
- putchar(v);
- sum += v;
- v = 0;
- bytes++;
- }
- }
- n = 0;
- for (i = 0 ; i < 8 ; i++)
- n = (n << 4) | (getchar() & 0xF);
- if (n != (bytes + sum))
- fprintf(stderr, "bad checksum\n");
- else
- fprintf(stderr, "checksum good!\n");
- exit(0);
- }
-