ON ERROR OSCLI "REFRESH ON" : IF ERR=17 CHAIN @lib$+"../examples/tools/touchide" ELSE MODE 3 : PRINT REPORT$ : END IF @ispal% THEN PRINT "This program needs a 'High Color' display (32768 colours or more)" END ENDIF : MODE 8:OFF:ORIGIN 640,512 m1%=400 : *REFRESH OFF REPEAT CLS t% = (t%+1) MOD 360 FOR a1%=0 TO 345 STEP 15 x1%=m1%*SINRAD(a1%+t%) y1%=m1%*COSRAD(a1%+t%) PROCbow(1536*a1%/360) GCOL 1:CIRCLEFILL x1%,y1%,80 GCOL 0:CIRCLE x1%,y1%,80 NEXT x1%=m1%*SINRAD(a1%+t%) y1%=m1%*COSRAD(a1%+t%) x2%=(m1%+82)*SINRAD(a1%+t%) y2%=(m1%+82)*COSRAD(a1%+t%) PROCbow(0) GCOL 1:MOVE x1%,y1%:MOVE x2%,y2%:PLOT 181,0,0 GCOL 0:MOVE x1%,y1%:MOVE x2%,y2%:PLOT 165,0,0 REPEAT WAIT 0 : UNTIL T%<>TIME *REFRESH T% = TIME UNTIL FALSE END : DEFPROCbow(N%) CASE N% DIV 256 OF WHEN 0: r%=255:g%=N% MOD 256:b%=0 WHEN 1: r%=255-(N% MOD 256):g%=255:b%=0 WHEN 2: r%=0:g%=255:b%=N% MOD 256 WHEN 3: r%=0:g%=255-(N% MOD 256):b%=255 WHEN 4: r%=N% MOD 256:g%=0:b%=255 WHEN 5: r%=255:g%=0:b%=255-(N% MOD 256) OTHERWISE r%=128:g%=128:b%=128 ENDCASE COLOR 1,r%,g%,b% ENDPROC