(12-28-2020, 12:17 PM)patters Wrote: Thanks, that has resolved the compilation issue. However, the maths doesn't seem correct for this fSin function. My sample FOR loop below should draw a sine wave across the screen.
Code:REM SINCLAIR BASIC SIN (radians)
10 FOR d=0 TO 255: PLOT d,90: LET r=(d+90)*PI/180: DRAW 0,64*(SIN r): NEXT d
Code:REM BORIEL BASIC fSIN (degrees)
FOR d=0 TO 255: PLOT d,90: DRAW 0,64*(fSin (d+90)): NEXT d
In both cases I have offset the sine wave by 90 degrees on the X axis. Notice that the fSIN pattern seems to break and reset just as it prepares to enter the fourth quad (but slightly before the symmetry point) of the pre-calculated table.
I get the correct result if I DIM d as Integer first.
Seems that you're not doing it and d + 90 is results in overflow (200 + 90 for example is out of the range 0-255).
Code:
REM BORIEL BASIC fSIN (degrees)
DIM d as Integer
FOR d=0 TO 255: PLOT d,90: DRAW 0,64*(fSin (d+90)): NEXT d