home *** CD-ROM | disk | FTP | other *** search
/ Carousel Volume 2 #1 / carousel.iso / mactosh / unix / unix_fro.c < prev    next >
C/C++ Source or Header  |  1984-09-18  |  535b  |  37 lines

  1. /* fromhex.c, UNIX version */
  2.  
  3. #include <stdio.h>
  4.  
  5. int bytes,sum;
  6.  
  7. main()
  8. {
  9.     register i,v;
  10.     register n;
  11.  
  12.     n = 0;
  13.     v = 0;
  14.     while ((i = getchar()) != EOF) {
  15.         i &= 0177;
  16.         if (i == '|') 
  17.             break;
  18.         if (i < 0100 || i > 0117)
  19.             continue;
  20.         v = (v << 4) | (i & 0xF);
  21.         if ((++n & 1) == 0) {
  22.             putchar(v);
  23.             sum += v;
  24.             v = 0;
  25.             bytes++;
  26.         }
  27.     }
  28.     n = 0;
  29.     for (i = 0 ; i < 8 ; i++)
  30.         n = (n << 4) | (getchar() & 0xF);
  31.     if (n != (bytes + sum))
  32.         fprintf(stderr, "bad checksum\n");
  33.     else
  34.         fprintf(stderr, "checksum good!\n");
  35.     exit(0);
  36. }
  37.