BCX Console Demonstration Program s110.bas

 ' ------------------------------------------ 
 ' Check validity of a credit card number 
 ' Based on public domain code written 
 ' by Frank Cox, September 1, 1991.) 
 ' ------------------------------------------ 
 ' --- Modified for BCX by Kevin Diggins --- 
 ' ------------------------------------------ 
 
 DIM Card$
 
 INPUT "Input Charge Card Number: ", Card$
 
 IF LEN(Card$) = 0 THEN END
 
 IF CCValid(Card$) THEN
   PRINT "Valid"
 ELSE
   PRINT "Invalid"
 END IF
 
 FUNCTION CCValid(TheCard$)
   LOCAL Tmp$
   LOCAL c, m, Temp, CheckSum
 
   Tmp$ = REMOVE$(TheCard$, CHR$(32))      ' remove spaces from the data 
   FOR c = (LEN(Tmp$) - 1) TO 1 STEP -1    ' compute the checksum 
     IF m = 2 THEN
       m = 1
     ELSE
       m = 2
     END IF
     Temp = VAL(MID$(Tmp$, c, 1)) * m
     CheckSum = CheckSum + Temp
     IF Temp > 9 THEN CheckSum = CheckSum - 9
   NEXT
 
   IF MOD((CheckSum + VAL(RIGHT$(Tmp$, 1))), 10) = 0 THEN
     FUNCTION = -1
   ELSE
     FUNCTION =  0
   END IF
 
 END FUNCTION