'
' Casting 9's, table lookup version.
'

DEFINT I-K
DEFLNG L
FUNCTION CAST2 (L) STATIC
' On first call, set up table values
   IF IFIRSTCALL = 0 THEN
      IFIRSTCALL = 1
      REDIM ISUM(0 TO 99)
      ISUM(0) = 0
      FOR I = 1 TO 91 STEP 9
         FOR J = 1 TO 9
            ISUM(I+J-1) = J
         NEXT J
      NEXT I
   END IF
' Then loop over pairs of digits
   K = 0
   L1 = L
   WHILE L1 > 99
      K = ISUM(K + ISUM(L1 MOD 100))
      L1 = L1 \ 100
   WEND
   CAST2 = ISUM(K + ISUM(L1))
END FUNCTION
