§ Исходный код
1SCREEN 13
2
3TYPE pt
4 x AS SINGLE
5 y AS SINGLE
6 sx AS SINGLE
7 sy AS SINGLE
8 lt AS SINGLE
9END TYPE
10
11DIM fp(0 TO 320) AS pt
12
13
14FOR i = 1 TO 31
15 OUT 968, i
16 OUT 969, 2 * i
17 OUT 969, 0
18 OUT 969, 0
19NEXT
20
21FOR i = 0 TO 31
22 OUT 968, 32 + i
23 OUT 969, 63
24 OUT 969, 2 * i
25 OUT 969, 0
26NEXT
27
28DO
29
30 nfree = 0
31
32
33 DEF SEG = &HA000
34 FOR i = 0 TO 63999
35 v% = PEEK(i) - 2
36 IF v% < 0 THEN v% = 0
37 POKE i, v%
38 NEXT
39 DEF SEG
40
41
42 FOR i = 0 TO 320
43
44 IF fp(i).lt > 0 THEN
45
46 PSET (fp(i).x, fp(i).y), INT(fp(i).lt)
47 fp(i).x = fp(i).x + fp(i).sx
48 fp(i).y = fp(i).y + fp(i).sy
49 fp(i).sy = fp(i).sy + .01
50 fp(i).sx = fp(i).sx * .995
51 fp(i).lt = fp(i).lt - .25
52
53 ELSE
54
55 fp(i).lt = 0
56 nfree = nfree + 1
57
58 END IF
59
60 NEXT
61
62
63 IF nfree > 160 THEN
64
65 rx = RND * 320
66 ry = RND * 100
67 FOR i = 0 TO 320
68
69 IF fp(i).lt = 0 THEN
70
71 v = RND
72 fp(i).x = rx
73 fp(i).y = ry
74 fp(i).sx = SIN(i / 320 * 6.28) * v
75 fp(i).sy = COS(i / 320 * 6.28) * v
76 fp(i).lt = 32 + RND * 31
77
78 END IF
79 NEXT
80
81 END IF
82
83LOOP WHILE INKEY$ = ""