-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDL01.PAS
executable file
·65 lines (59 loc) · 1.49 KB
/
DL01.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
Program DL01;
Uses DU, DUTypes, DLTitle;
{$I DUMCGA.INC}
{$I FTRI.INC}
Var Pal: RGBMap;
I : Word;
J : Word;
F : Word;
B : Byte;
FP, AP: Word;
Begin
MCGAINIT;
GrOn;
New (Hatter);
Move (Ptr (Seg (DLKep), Ofs (DLKep)+40+32)^, Pal, 768);
For I := 0 to 255 Do With Pal [I] Do begin R := R shr 2;G := G shr 2;B := B shr 2;end;
SetRGBPal (Pal);
{Move (Ptr (Seg (DLKep), Ofs (DLKEp)+846)^, VHatter, 64000);}
F := 0;
Repeat
HCLS;
Inc (F);
If F > 319 then F := 319;
FP := 30;
AP := 130;
While (Byte (Ptr (Seg (DLKep), Ofs (DLKEp)+846+Sor [FP]+F)^) = 0) Do Inc (FP);
While (Byte (Ptr (Seg (DLKep), Ofs (DLKEp)+846+Sor [AP]+F)^) = 0) Do Dec (AP);
If FP < 130 then FTri (Hatter,159,99,F,FP,F,AP,20);
For I := 70 to 130 Do
begin
For J := 0 to F Do
begin
{B := Byte (Ptr (Seg (DLKep), Ofs (DLKEp)+846+Sor [I]+J)^);}
{If B <> 0 then Hatter ^[Sor [I]+J] := B;}
asm
lea si, sor
mov cx, i
add cx, cx
add si, cx
mov bx, ds:[si]
add bx, j
mov ax, seg dlkep
mov es, ax
mov di, 846
add di, bx
mov al, es:[di] {=szin}
cmp al, 0
jz @vege
les di, hatter
add di, bx
mov es:[di], al
@vege:
end;
end;
end;
RW;HRajz;
Until Port [$60] = 1;
Dispose (Hatter);
End.