     #define NUMVAL(x)    (x - '0')  
     #define TONUM(x)    NUMVAL(x)  
     #define TODIGIT(x)    (x + '0')  
     static char trconst[] = {'3', '7', '1', '3', 
               '7', '1', '3', '7'};     
     char calc_check_digit (char * trnum)      
          {
          int sum, val;      
          int i;         
          for ( sum = i = 0 ; i < 8 ; i++)          
               {
               sum += TONUM (trnum[i]) * TONUM (trconst[i]);
               }
          val = 10 - (sum % 10);      
          if (val == 10)          
               val = 0;  
          return (TODIGIT (val));      
          }


