fixed directory name and file permissions
[qbasicapps.git] / graphics / presentations / KHK jõulud / khkdemo2.bas
diff --git a/graphics/presentations/KHK jõulud/khkdemo2.bas b/graphics/presentations/KHK jõulud/khkdemo2.bas
new file mode 100755 (executable)
index 0000000..c8d7a53
--- /dev/null
@@ -0,0 +1,294 @@
+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
+