1 DECLARE SUB playsound (a$)
3 DECLARE SUB ellips (x!, y!, s!, v!, t!)
4 DECLARE SUB prn (x!, y!, msg$, siz!, col1!)
5 DECLARE SUB timerAdd (element!, time!, value!)
6 DECLARE SUB timerdisp ()
7 DECLARE SUB timerinit ()
8 DECLARE SUB timerprocess ()
9 DECLARE SUB mo (x!, y!, an!, s!, w!)
13 DIM SHARED sh1, sh2, sv1, sv2, hp, vp
14 DIM SHARED timerTime(0 TO 50, 0 TO 100)
15 DIM SHARED timerValue(0 TO 50, 0 TO 100)
17 DIM SHARED timerCplace(0 TO 50)
18 DIM SHARED timerCtime(0 TO 50)
19 DIM SHARED timerCvalue(0 TO 50)
32 s1 = SIN(timerCvalue(1) * 1.3) * .5 + 1.1
33 s2 = COS(timerCvalue(1) * 1.3) * .5 + 1.1
39 vp = SIN(timerCvalue(1) * 1.3)
43 hp = SIN(timerCvalue(1)) * .7
46 mo timerCvalue(2), timerCvalue(3), timerCvalue(4), timerCvalue(0), 0
48 ellips 100, timerCvalue(6), timerCvalue(7) + 4, 14, .5
49 ellips 100, timerCvalue(6), timerCvalue(7) + 2, 10, .5
50 ellips 100, timerCvalue(6), timerCvalue(7), 0, .5
51 prn timerCvalue(5), 10, "KHK", 7, 250
53 prn timerCvalue(8), 130, "Infotehno-", 2, 0
54 prn timerCvalue(8), 150, " loogia", 2, 0
59 IF timerCtime(0) > 26 THEN CHAIN "ray.bas"
61 LINE (0, 0)-(319, 199), 15, BF
65 SUB ellips (x, y, s, v, t)
70 CIRCLE (x, y), s, v, , , t
78 SUB mo (x, y, an, s, w)
82 IF depth / 2 = depth \ 2 THEN c = 1 ELSE c = 3
88 x1 = SIN(an) * s * 2.5 + x
89 y1 = COS(an) * s * 2.5 + y
90 IF w = 3 THEN ns = s / sv2 ELSE ns = s / sv1
91 mo x1, y1, an + vp, ns, 3
95 x1 = SIN(an - pi / 2) * s * 2.5 + x
96 y1 = COS(an - pi / 2) * s * 2.5 + y
97 IF w = 4 THEN ns = s / sh2 ELSE ns = s / sh1
98 mo x1, y1, an + hp, ns, 4
102 x1 = SIN(an - pi) * s * 2.5 + x
103 y1 = COS(an - pi) * s * 2.5 + y
104 IF w = 1 THEN ns = s / sv2 ELSE ns = s / sv1
105 mo x1, y1, an + vp, ns, 1
109 x1 = SIN(an - pi * 1.5) * s * 2.5 + x
110 y1 = COS(an - pi * 1.5) * s * 2.5 + y
111 IF w = 2 THEN ns = s / sh2 ELSE ns = s / sh1
112 mo x1, y1, an + hp, ns, 2
120 SHELL "c:\progra~1\winamp\winamp.exe " + a$
126 SUB prn (x, y, msg$, siz, col1)
127 IF x < 0 THEN GOTO prn1
128 IF x > 319 THEN GOTO prn1
132 GET (0, 0)-(100, 7), bck
138 FOR x1 = 0 TO LEN(msg$) * 8 - 1
140 IF POINT(x1, y1) > 0 THEN
143 IF col1 > 100 THEN col = RND * 4 + 10
145 LINE (rx, ry)-(rx + siz - 1, ry + siz - 1), col, B
147 LINE (rx, ry)-(rx + siz - 1, ry + siz - 1), col, BF
149 ' LINE (rx, ry)-(rx + siz - 1, ry + siz - 1), col, BF
155 PUT (0, 0), bck, PSET
159 SUB timerAdd (element, time, value)
162 IF (timerTime(element, a) = 0) AND (timerValue(element, a) = 0) THEN GOTO timer3
166 timerTime(element, a) = time
167 timerValue(element, a) = value
175 PRINT timerCplace(a), timerCtime(a), timerCvalue(a)
195 timerAdd 1, 1000, 1000
214 timerAdd 3, 1000, 160
220 timerAdd 4, 2000, 10000
229 timerAdd 5, paus + 2, 321
241 timerAdd 7, paus, 130
242 timerAdd 7, paus + 2, 1
244 ' "Infotehnoloogia" message
249 timerAdd 8, paus, 100
250 timerAdd 8, paus + 1, -1
258 timerDiff = timerCurrent - timerLast
259 timerLast = timerCurrent
262 ctim = timerCtime(a) + timerDiff
263 Cplace = timerCplace(a)
265 IF timerTime(a, Cplace + 1) = -1 THEN
269 IF timerTime(a, Cplace + 1) < ctim THEN
270 IF timerTime(a, Cplace + 1) = 0 THEN
271 timerCvalue(a) = timerValue(a, Cplace)
278 v1 = timerValue(a, Cplace)
279 t1 = timerTime(a, Cplace)
280 v2 = timerValue(a, Cplace + 1)
281 t2 = timerTime(a, Cplace + 1)
289 timerCvalue(a) = Tdiff2 / Tdiff1 * Vdiff + v1
292 timerCplace(a) = Cplace
300 playsound "marine.mp3"
304 FOR x = 0 TO 160 STEP 15
306 LINE (160 - x - 5, 90 - 5)-(160 + x + 5, 110 + 5), 1, BF
307 LINE (160 - x - 3, 90 - 3)-(160 + x + 3, 110 + 3), 3, BF
308 LINE (160 - x, 90)-(160 + x, 110), 15, BF
315 FOR y = 10 TO 100 STEP 15
318 LINE (160 - x - 5, 90 - y - 5)-(160 + x + 5, 110 + y + 5), 1, BF
319 LINE (160 - x - 3, 90 - y - 3)-(160 + x + 3, 110 + y + 3), 3, BF
320 LINE (160 - x, 90 - y)-(160 + x, 110 + y), 15, BF
327 prn RND * 250, RND * 180, STR$(INT(RND * 2)), 3, 0
338 GET (1, a)-(318, a + 1), buf
340 PUT (0, a), buf, PSET
342 PUT (2, a), buf, PSET