home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS - Coast to Coast / simteldosarchivecoasttocoast.iso / dv_x / dvix.zip / MKTABLE.C < prev    next >
C/C++ Source or Header  |  1992-10-02  |  852b  |  61 lines

  1. #ifndef lint
  2. static char *mktable_c = "$Header: /user/bruce/dvix/RCS/mktable.c,v 1.2 1989/04/27 16:50:59 xwindows Exp $";
  3. #endif     lint
  4.  
  5. #include <stdio.h>
  6.  
  7. unsigned char reverse_byte[0x100] = { 0 };
  8.  
  9. main()
  10. {
  11.     seed_table();
  12.     fill_in_table();
  13.     print_table();
  14.     exit(0);
  15. }
  16.  
  17. seed_table()
  18. {
  19.     int i = 0;
  20.     int j = 0x100/2;
  21.     int b = 0;
  22.  
  23.     for (;;) {
  24.         reverse_byte[i] = b;
  25.         if (j == 0)
  26.             break;
  27.         i = 2*i + 1;
  28.         b = b + j;
  29.         j = j/2;
  30.     }
  31. }
  32.  
  33. fill_in_table()
  34. {
  35.     int b;
  36.  
  37.     for (b = 1; b < 0x100-2; b += 1)
  38.         reverse_byte[b+1] =
  39.             reverse_byte[b] ^ reverse_byte[b^(b+1)];
  40. }
  41.  
  42. print_table()
  43. {
  44.     int b;
  45.  
  46.     printf("unsigned char reverse_byte[0x100] = {\n\t");
  47.     b = 0;
  48.     for (;;) {
  49.         printf("0x%02x", reverse_byte[b] & 0xff);
  50.         b += 1;
  51.         if (b == 0x100) {
  52.             printf("\n};\n");
  53.             return;
  54.         } else if (b % 8 == 0) {
  55.             printf(",\n\t");
  56.         } else {
  57.             printf(", ");
  58.         }
  59.     }
  60. }
  61.