-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDANGUS.PAS
83 lines (74 loc) · 1.5 KB
/
DANGUS.PAS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
program dangus1;
uses
crt, graph;
Type
Tdangus = Object { fonas, t.y., dangus }
zvaigzdes : array [0 .. 99] of record
x : 0 .. 639;
y : 0 .. 479;
end;
constructor paruosk;
procedure pastumk (vnt : byte);
procedure trink;
procedure piesk (sp : byte);
end;
var
dangus : Tdangus;
gd, gm : integer;
kiek : byte;
constructor Tdangus.paruosk;
var
ck : byte;
begin
randomize;
for ck := 0 to 99 do
begin
zvaigzdes [ck].x := random (640);
zvaigzdes [ck].y := random (480);
end
end;
procedure Tdangus.pastumk;
var
ck : byte;
begin
for ck := 0 to 99 do
zvaigzdes [ck].x := (zvaigzdes [ck].x + (640 - vnt)) mod 640;
end;
procedure Tdangus.trink;
var
ck : integer;
begin
for ck := 0 to 99 do
putpixel (zvaigzdes [ck].x mod 640, zvaigzdes [ck].y, 0)
end;
procedure Tdangus.piesk;
var
ck : integer;
begin
for ck := 0 to 99 do
putpixel (zvaigzdes [ck].x, zvaigzdes [ck].y, sp)
end;
{ palaukia vertikalaus ekrano perpieÕmo, animacija maØiau mirga }
Procedure waitRetrace; Assembler;
asm
mov dx,3DAh
@@1:
in al,dx
and al,08h
jnz @@1
@@2:
in al,dx
and al,08h
jz @@2
end;
begin
initgraph (gd, gm, '');
dangus.paruosk;
repeat
dangus.trink;
dangus.pastumk (2);
dangus.piesk (7);
delay (100);
until port [$60] = 1;
closegraph
end.