10MODE2:VDU5
20A=0.1
30VDU23;8202;0;0;0;
40PROCstartup
50CLS
60PROCdraw(6,320,512,6,100)
70PROCdraw(5,320,512,2,-100)
80PROCdraw(6,960,512,2,-100)
90PROCdraw(5,960,512,6,100)
100PROCdrawsin(6,640,768,3,100)
110PROCdrawsin(5,640,768,5,-100)
120PROCdrawsin(6,640,256,5,-100)
130PROCdrawsin(5,640,256,3,100)
140PROCdraw(12,640,512,1,20)
150PROCdraw(11,640,512,4,-20)
160SOUND1,-10,50,10
170A=GET
180MODE7
190RUN
200END
210DEFPROCdraw(t%,x%,y%,c%,w%)
220GCOL0,c%
230MOVEx%,y%
240FOR T=0 TO t%*PI STEP0.1:R=A*T
250X=R*COS(T):Y=R*SIN(T)
260DRAW X*w%+x%,Y*w%+y%
270NEXT T
280ENDPROC
290DEFPROCdrawsin(t%,x%,y%,c%,w%)
300GCOL0,c%
310MOVEx%,y%
320FOR T=0 TO t%*PI STEP0.1:R=A*T
330Y=R*COS(T):X=R*SIN(T)
340DRAW X*w%+x%,Y*w%+y%
350NEXT T
360ENDPROC
370DEFPROCstartup
374VDU4
375PRINT'''''" SPIRAL MAKER"
376PRINT''" By Theo Gray"
380COLOUR5:PRINT'''''"EXAMPLE/MAKE UP
OWN/ABORT (E/O/A)"
390REPEAT
400A$=GET$
410UNTIL A$="E" OR A$="e" OR A$="O" OR
A$="o" OR A$="A" OR A$="a"
420IF A$="E" OR A$="e" THEN ENDPROC EL
SE IF A$="O" OR A$="O" THEN PROCown ELSE
END
430VDU5
440ENDPROC
450DEFPROCown
460CLS
470REPEAT
480VDU28,0,31,19,27
490CLS
500INPUTTAB(0,31)"ENTER COLOUR (1-7)
:"C%:CLS
510INPUTTAB(0,31)"ENTER START X VALUE
:"X%:CLS
520INPUTTAB(0,31)"ENTER START Y VALUE
:"Y%:CLS
530INPUTTAB(0,31)"ENTER NO. OF HALF
TURNS:"T%:CLS
540INPUTTAB(0,31)"ENTER WIDTH OF
SPIRAL:"W%:CLS
550INPUTTAB(0,31)"ENTER PROC. TO USE -
NORM. OR OTHER (N/O):"B$:CLS
560IF B$="O" THEN PROCdrawsin(T%,X%,Y%
,C%,W%) ELSE PROCdraw(T%,X%,Y%,C%,W%)
570INPUTTAB(0,31)"ANOTHER OR START
AGAIN (A/S)? "A$
580IF A$<>"A" AND A$<>"S" THEN GOTO570
590IF A$="S" THEN RUN
600UNTIL 0
610ENDPROC