This commit is contained in:
Frater 2017-09-24 01:45:36 +02:00
commit 43352ff262
1291 changed files with 220976 additions and 0 deletions

150
WATER/DATGEN.PAS Normal file
View file

@ -0,0 +1,150 @@
uses crt;
type pbuf = ^buf;
buf = array[0..64000] of byte;
tb = record
c : byte;
pos : word;
end;
var r,r1,sc,
g,b : pbuf;
f : file;
x,y,c : word;
row : array[0..320*3-1] of byte;
tc : word;
tbuf : array[0..100] of word;
pal : array[0..768] of byte;
tmp : array[0..20000] of tb;
procedure setrgb(c,r,g,b:byte);
begin
port[$3c8] := c;
port[$3c9] := r;
port[$3c9] := g;
port[$3c9] := b;
end;
var ty,tt,ab : word;
procedure zeta(n1,n2,n3:string);
begin
assign(f,n1);
reset(f,1);
seek(f,8);
for y := 0 to 199 do
begin
blockread(f,row,320*3);
for x := 0 to 319 do r^[x+y*320] := row[x*3+0];
end;
close(f);
assign(f,n2);
reset(f,1);
seek(f,8);
for y := 0 to 199 do
begin
blockread(f,row,320*3);
for x := 0 to 319 do r1^[x+y*320] := row[x*3+0];
end;
close(f);
assign(f,n3);
rewrite(f,1);
{ move(r1^,mem[$a000:0],64000);}
for y := 34 downto 1 do
begin
tc := 0;
for x := 0 to 64000 do
if (sc^[x] <> 40) and
(r^[x] <> r1^[x]) and
(g^[x] = y) then
begin
tmp[tc].c := r^[x];
tmp[tc].pos := x;
sc^[x] := 40;
mem[$a000:x] := 10;
inc(tc);
end;
ab := tc-1;
for tt := 1 to 158 do
begin
tc := 0;
for ty := 0 to ab do
begin
if tmp[ty].c = tt then
begin
mem[$a000:tmp[ty].pos] := 40;
tbuf[tc] := tmp[ty].pos;
inc(tc);
end;
end;
blockwrite(f,tc,2);
if tc > 0 then blockwrite(f,tbuf,tc*2);
end;
end;
close(f);
end;
begin
getmem(r,64000);
getmem(r1,64000);
getmem(g,64000);
getmem(b,64000);
getmem(sc,64000);
fillchar(r^,64000,#0);
fillchar(r1^,64000,#0);
fillchar(g^,64000,#0);
fillchar(b^,64000,#0);
fillchar(sc^,64000,#0);
fillchar(tmp,sizeof(tmp),#0);
asm
mov ax,$13
int $10
end;
{ Load fixed green mask }
assign(f,'green.clx');
reset(f,1);
seek(f,778);
blockread(f,g^,64000);
close(f);
{
assign(f,'o:k1.mtv');
reset(f,1);
seek(f,8);
for y := 0 to 199 do
begin
blockread(f,row,320*3);
for x := 0 to 319 do mem[$a000:x+y*320] := row[x*3+1];
end;
close(f);
}
zeta('o:k1.mtv','o:k2.mtv','o:wat1.dat');
zeta('o:k2.mtv','o:k3.mtv','O:wat2.dat');
zeta('o:k3.mtv','o:k5.mtv','O:wat3.dat');
{ zeta('o:k4.mtv','o:k5.mtv','O:wat4.dat');}
repeat until keypressed;
asm
mov ax,$3
int $10
end;
freemem(r,64000);
freemem(r1,64000);
freemem(g,64000);
freemem(b,64000);
freemem(sc,64000);
end.