10 REM ******************************** 20 REM * PROGRAM TO CALCULATE VALUES * 30 REM * TO BE USED IN A SINUS TABLE * 40 REM * * 50 REM * WRITTEN BY JASON FINCH FOR * 60 REM * CDU TECHNO INFO DEC1990 * 70 REM ******************************** 80 : 90 : 100 REM ** SET-UP SPRITE FOR DEMO 110 : 120 POKE53269,0:POKE53271,0:POKE53277,0:POKE53287,1:POKE53264,1:POKE53248,54 130 POKE2040,13:FORI=0TO63:POKE832+I,255+255*(I>23):NEXT 140 : 150 : 160 POKE53280,5:POKE53281,11:PRINT"[147][158] [200]OW MANY VALUES TO CREATE?",," :[153]"; 170 OPEN1,0:INPUT#1,A$:CLOSE1:PRINT 180 VL=VAL(A$) 190 PRINT"[158] [210]ANGE OF SINUS SWEEP IN PIXELS"," :[153]"; 200 OPEN1,0:INPUT#1,A$:CLOSE1:PRINT 210 PR=VAL(A$) 220 : 230 REM ** CHECK INPUTS WITHIN RANGE 240 : 250 IF PR=0 OR VL=0 OR PR>192 THEN RUN160 260 : 270 PRINT"[158] [208]RESS ANY KEY TO START CALCULATIONS":POKE198,0:WAIT198,1:POKE198,0 280 PRINT"[147] [212]HE VALUES ARE....[155]" 290 POKE 53249,0: POKE 53269,1: REM ** DISPLAY SPRITE 300 : 310 REM ******************************* 320 REM * MAIN LOOP TO CALCULATE * 330 REM * VALUES FOR USE IN TABLE * 340 REM * * 350 REM * SEE MAGAZINE FOR A DETAILED * 360 REM * EXPLANATION OF THE * 370 REM * ALGORITHM THAT I HAVE USED * 380 REM ******************************* 390 : 400 : 410 FOR NM=0 TO VL-1 420 : 430 REM ** NEXT LINE CALCULATES VALUE 440 : 450 Z=INT(0.5*PR*SIN(6.283185*NM/VL)+PR/2) 460 : 470 : 480 REM ** CHANGE LINE BELOW TO "POKE" 490 REM ** THE VALUE OF 'Z' IF YOU WANT 500 REM ** TO STORE THE VALUES IN MEM'Y 510 : 520 PRINTZ"[157],";:IF POS(0)>30 THEN PRINT"" 530 POKE 53249,50+Z: REM ** MOVE SPRITE 540 : 550 NEXT 560 : 570 PRINT:PRINT"[158] [197][206][196] [207][198][160][204][201][211][212]: [208]RESS ANY KEY TO RE-RUN" 580 POKE 198,0: WAIT 198,1: POKE 198,0 590 POKE 53269,0: RUN160