'Ha, I use F Plot instead of the normal Plot command...TURBO POWER !!! 
'Even if it is NOT compiled, it's 11 secs faster than the original 
'code !
' ---------------------------------  
'
' AMOSPro Compiler Example 
'
' Cycling Plasma     
'
' By Jean-Baptiste BOLCATO 
'
' (c) 1993 Europress Software Ltd. 
'
' ---------------------------------  
'
'
' --------------------------------------------       
' Remark: What about a little Plasma effect?     
'
'         Average Acceleration:  260 % 
'
'         Test configuration: A1200, 6Mb 
'         Original AMOS Compiler:  240 % 
' --------------------------------------------       
' ---- Variables Init ---- 
Set Buffer 4
' Ntsc test
XMAX=256
YMAX=256-56*(Ntsc=True)
' Plasma calculation zone  
XBLOCK=248
YBLOCK=248
'Precalculate circle-scroll coords 
Degree 
Dim X(360),Y(360)
XMID=XBLOCK-XMAX/2
YMID=YBLOCK-YMAX/2
For A=1 To 360
   X(A)=XMID+XMID*Cos(A)
   Y(A)=YMID+YMID*Sin(A)
Next A
' ---- Screen Init ----
Screen Open 0,512,512,32,Lowres
Screen Display 0,160,50,XMAX,YMAX
Flash Off : Curs Off : Hide 
For I=1 To 15
   Colour I,$800+I*$11
   Colour 31-I,$800+I*$11
Next I
Colour 31,$700
Cls 0 : Wait Vbl 
' ---- Main Loop ----
Timer=0
' Describe whole plasma zone 
For Y=0 To YBLOCK/2
   For X=0 To XBLOCK/2
      ' Calculate x,y-pixel's ink
      IK=X*X
      IK=IK+Y*Y
      IK=IK/16
      IK=IK mod 31
      Inc IK
      ' Draw pixel 
       F Plot X,Y,IK
       F Plot XBLOCK-X,Y,IK
       F Plot X,YBLOCK-Y,IK
       F Plot XBLOCK-X,YBLOCK-Y,IK
   Next X
Next Y
' Pattern copy 
Screen Copy 0,0,0,248,248 To 0,248,0
Screen Copy 0,0,0,248,248 To 0,0,248
Screen Copy 0,0,0,248,248 To 0,248,248
' --- Final Report --- 
T#=Timer
Screen Open 1,320,32,2,Lowres
Palette 0,$FFF : Paper 0 : Pen 1
Curs Off : Cls 0
Print "      --- Final status report ---      "
Print 
Print Using "< Needs####.##s to draw whole plasma >";T#/50
' --- Final Fireworks! ---   
' Cycle colors 
Screen 0
Shift Up 1,1,31,1
' Screen circle scroll 
Repeat 
   Add A,1,1 To 360
   Screen Offset 0,X(A),Y(A)
   Wait Vbl 
Until Mouse Key or(Inkey$<>"")
End 
