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

Result:

Input Charge Card Number: 0000
Valid