--- /dev/null
+DECLARE SUB playsound (a$)
+DECLARE SUB start ()
+DECLARE SUB turnoff ()
+DECLARE SUB dispimg (a$)
+DECLARE SUB turnon ()
+DECLARE SUB ellips (x!, y!, s!, v!, t!)
+DECLARE SUB prn (x!, y!, msg$, siz!, col1!)
+DECLARE SUB timerAdd (element!, time!, value!)
+DECLARE SUB timerdisp ()
+DECLARE SUB timerinit ()
+DECLARE SUB timerprocess ()
+DECLARE SUB mo (x!, y!, an!, s!, w!)
+DIM SHARED depth
+DIM SHARED pi
+
+DIM SHARED sh1, sh2, sv1, sv2, hp, vp
+DIM SHARED timerTime(0 TO 50, 0 TO 100)
+DIM SHARED timerValue(0 TO 50, 0 TO 100)
+
+DIM SHARED timerCplace(0 TO 50)
+DIM SHARED timerCtime(0 TO 50)
+DIM SHARED timerCvalue(0 TO 50)
+DIM SHARED timerLast
+
+
+pi = 3.14128
+
+playsound "luule.mp3"
+SCREEN 13
+start
+
+timerinit
+2
+
+
+timerprocess
+IF timerCtime(0) > 0 THEN
+ IF im1 = 0 THEN
+ dispimg "pikk.i01"
+ im1 = 1
+ END IF
+END IF
+
+
+
+IF timerCtime(0) > 1.5 THEN
+ IF im2 = 0 THEN
+ dispimg "pikk4.i01"
+ im2 = 1
+ END IF
+END IF
+
+
+IF timerCtime(0) > 9 THEN
+ IF im3 = 0 THEN
+ dispimg "pikk3.i01"
+ im3 = 1
+ END IF
+END IF
+
+IF timerCtime(0) > 17 THEN
+ IF im4 = 0 THEN
+ dispimg "pikk2.i01"
+ im4 = 1
+ END IF
+END IF
+
+IF timerCtime(0) > 24 THEN
+ IF im5 = 0 THEN
+ dispimg "pikk1.i01"
+ im5 = 1
+ END IF
+END IF
+
+IF timerCtime(0) > 33 THEN
+ IF im6 = 0 THEN
+ dispimg "pikk5.i01"
+ im6 = 1
+ END IF
+END IF
+
+IF timerCtime(0) > 41 THEN
+ IF im7 = 0 THEN
+ dispimg "pikk.i01"
+ im7 = 1
+ END IF
+END IF
+
+
+IF timerCtime(0) > 43 THEN
+ turnoff
+END IF
+
+'LOCATE 1, 1
+'PRINT timerCtime(0)
+GOTO 2
+SYSTEM
+
+SUB dispimg (a$)
+
+
+OPEN a$ FOR INPUT AS #1
+INPUT #1, xs
+INPUT #1, ys
+
+FOR y = 1 TO ys
+FOR x = 1 TO xs
+INPUT #1, a
+PSET (x - 1, 200 - y), a
+NEXT x
+NEXT y
+
+
+CLOSE #1
+END SUB
+
+SUB ellips (x, y, s, v, t)
+
+IF x > 0 THEN
+IF y > 0 THEN
+
+CIRCLE (x, y), s, v, , , t
+PAINT (x, y), v
+
+END IF
+END IF
+
+END SUB
+
+SUB playsound (a$)
+
+SHELL "c:\progra~1\winamp\winamp.exe " + a$
+SCREEN 0
+SCREEN 7, , , 1
+
+END SUB
+
+SUB prn (x, y, msg$, siz, col1)
+IF x < 0 THEN GOTO prn1
+IF x > 319 THEN GOTO prn1
+
+DIM bck(10000)
+
+GET (0, 0)-(100, 7), bck
+LOCATE 1, 1
+PRINT msg$
+
+col = col1
+
+FOR x1 = 0 TO LEN(msg$) * 8 - 1
+FOR y1 = 0 TO 7
+ IF POINT(x1, y1) > 0 THEN
+ rx = x1 * siz + x
+ ry = y1 * siz + y
+ IF col1 > 100 THEN col = RND * 4 + 10
+ IF col1 > 200 THEN
+ LINE (rx, ry)-(rx + siz - 1, ry + siz - 1), col, B
+ ELSE
+ LINE (rx, ry)-(rx + siz - 1, ry + siz - 1), col, BF
+ END IF
+' LINE (rx, ry)-(rx + siz - 1, ry + siz - 1), col, BF
+ END IF
+NEXT y1
+NEXT x1
+
+
+PUT (0, 0), bck, PSET
+prn1:
+END SUB
+
+SUB start
+c = 0
+FOR r = 0 TO 5
+FOR g = 0 TO 5
+FOR B = 0 TO 5
+OUT &H3C8, c
+c = c + 1
+OUT &H3C9, r * 12
+OUT &H3C9, g * 12
+OUT &H3C9, B * 12
+NEXT B
+NEXT g
+NEXT r
+
+END SUB
+
+SUB timerAdd (element, time, value)
+
+FOR a = 0 TO 100
+ IF (timerTime(element, a) = 0) AND (timerValue(element, a) = 0) THEN GOTO timer3
+NEXT a
+timer3:
+
+timerTime(element, a) = time
+timerValue(element, a) = value
+
+END SUB
+
+SUB timerdisp
+LOCATE 1, 1
+
+FOR a = 0 TO 10
+ PRINT timerCplace(a), timerCtime(a), timerCvalue(a)
+NEXT a
+
+END SUB
+
+SUB timerinit
+timerLast = TIMER
+
+paus = 24
+
+' stuff size
+timerAdd 0, 0, 0
+timerAdd 0, 1000, 1000
+
+END SUB
+
+SUB timerprocess
+
+timerCurrent = TIMER
+timerDiff = timerCurrent - timerLast
+timerLast = timerCurrent
+
+FOR a = 0 TO 50
+ ctim = timerCtime(a) + timerDiff
+ Cplace = timerCplace(a)
+timer2:
+ IF timerTime(a, Cplace + 1) = -1 THEN
+ ctim = 0
+ Cplace = 0
+ END IF
+ IF timerTime(a, Cplace + 1) < ctim THEN
+ IF timerTime(a, Cplace + 1) = 0 THEN
+ timerCvalue(a) = timerValue(a, Cplace)
+ GOTO timer1:
+ END IF
+ Cplace = Cplace + 1
+ GOTO timer2
+ END IF
+
+ v1 = timerValue(a, Cplace)
+ t1 = timerTime(a, Cplace)
+ v2 = timerValue(a, Cplace + 1)
+ t2 = timerTime(a, Cplace + 1)
+
+ IF v1 = v2 THEN
+ timerCvalue(a) = v1
+ ELSE
+ Tdiff1 = t2 - t1
+ Tdiff2 = ctim - t1
+ Vdiff = v2 - v1
+ timerCvalue(a) = Tdiff2 / Tdiff1 * Vdiff + v1
+ END IF
+timer1:
+ timerCplace(a) = Cplace
+ timerCtime(a) = ctim
+NEXT a
+
+END SUB
+
+SUB turnoff
+x = 160
+
+FOR y = 100 TO 1 STEP -1
+
+ LINE (160 - x - 5, 90 - y - 5)-(160 + x + 5, 110 + y + 5), 0, B
+ LINE (160 - x - 3, 90 - y - 3)-(160 + x + 3, 110 + y + 3), 3, B
+ LINE (160 - x, 90 - y)-(160 + x, 110 + y), 15, B
+
+ SOUND 0, .1
+NEXT y
+
+
+
+FOR x = 160 TO 0 STEP -1
+
+ LINE (160 - x - 5, 90 - 5)-(160 + x + 5, 110 + 5), 0, B
+ LINE (160 - x - 3, 90 - 3)-(160 + x + 3, 110 + 3), 1, B
+ LINE (160 - x, 90)-(160 + x, 110), 15, B
+ SOUND 0, .05
+NEXT x
+
+playsound "silent.mp3"
+SCREEN 10
+SCREEN 13
+CLS
+1
+a$ = INPUT$(1)
+GOTO 1
+
+
+END SUB
+