( Rob3Task)

   OSCLI" ChannelVoice 1 StringLib-Pluck"
   OSCLI" Volume 127"

200 VARIABLE radius
500 VARIABLE y
20 VARIABLE dx

( Moving circle as one task)
: movecircle
  3000 y @ DO 255 128 0 use_colour
            I y @ radius @ CIRCLE PAUSE dx @ +LOOP ;

TASK: taskcircle movecircle TASK;

: movesquare
   1500 y @ DO  0 128 255 use_colour
             500 I radius @ DUP RECTANGLE PAUSE dx @ +LOOP ;

TASK: tasksquare movesquare TASK;

: sound_setup
   400 BEATS=
   [ HEX ] E00 [ DECIMAL ] TEMPO=
   BEGIN
      BEAT
      0=
   UNTIL
;

: do_sounds
   50 0 DO
    1 -15 21 10 20 SOUND2
    1 -15 21 10 40 SOUND2
    1 -15 21 10 60 SOUND2
    1 -15 5 10 80 SOUND2
    PAUSE
   LOOP
;

TASK: tasksound do_sounds TASK;

TEX: tskall ( 100 100 tasksound) 100 100 taskcircle 100 100 tasksquare TEX;

: Main ( sound_setup) NOWIMPS GET tskall CR ;

