1)  ஢ન  
/* Check Card Number */
#include <string.h>

/* 0/1 - invalid/Ok */
int  CheckMod10(char *cardNo)  {
  int i,j=0,count=0,len;
  len = strlen(cardNo);
  for(i=0; i<len-1; i++)  {
    j = (int)(cardNo[len - i - 2] - '0');
    if(!(i % 2))  j <<= 1;
    if(j > 9)  count += (j % 10) + 1;
    else  count += j;  }
  j = 0;
  while((count + j) % 10)  j++;
  j += '0';
  return ((j==cardNo[len-1]) ? 1 : 0);
  }
/*******************************************************************/
void main(void)  {
  char *cNoOk="4000000000000002", *cNoBad="4000000000000003";
  int res;
  res = CheckMod10(cNoOk);   /* cardNo Ok      */
  res = CheckMod10(cNoBad);  /* CardNo invalid */
  }

===========================================================================

2) May be changed in future !!!

   4000000000000000-4999999999999999, Visa, 13, 16 chars,    "VI"

   5100000000000000-5599999999999999, Euro, 16,          "EU"

   30000000000000  -30999999999999  , DCl , 14,          "DC"
   36000000000000  -36999999999999  , DCl ,              ...
   38000000000000  -38999999999999  , DCl ,              ... 

   370000000000000 -379999999999999 , AmEx, 15,          "AM"

   3528000000000000-3589999999999999, JCB , 16,          "JC"

   5000000000000000-5099999999999999, Cirrus, 16,18,19   "EU"  ; Cirrus Maestro
   5600000000000000-6799999999999999, 
=============================================================================

3) ᮡ !   ⠫樨 室 ன 
䨪  ABG.

11.07.2000  	Dmitry Zoubkov.  (095) 232-56-93, dimaz@abgcard.ru
