I'm working on a color light meter (using a "TCS230/ TCS3200 Color Recognition Sensor" from eBay), and need to calculate some logarithms...
The EzSBC1 doesn't have a log function, but I found an old, classic BASIC subroutine, here modified for the EzSBC1:
---------------------------------
' Calculate the logarithm (base 10) of X with 6 significant digits
FOR X = 1 TO 20
GOSUB calculate_log_x:
PRINT "x = ",X,TAB(10),"log(x) = ",Log_x
NEXT X
END
' ---------------------------------------------
calculate_log_x:
' input: X
' output: Log_x
' uses variables E, L, Y
E=0
Y=X
WHILE Y>=1
Y=0.5*Y
E=E+1
WEND
WHILE Y<0.5
Y=2*Y
E=E-1
WEND
Y = (Y-0.7071068)/(Y+0.7071068)
L = Y*Y
Log_x = INT((((0.598979*L+0.961471)*L+2.88539)*Y+E-0.5)*0.30103E6+0.5)/1E6
RETURN