72 lines
1.2 KiB
ObjectPascal
72 lines
1.2 KiB
ObjectPascal
Unit Intro2;
|
|
Interface
|
|
Procedure IntroASM;
|
|
Implementation
|
|
|
|
Uses
|
|
CRT,DOS,GRAPHVGA,LibUses;
|
|
Var
|
|
pct : imageinfo;
|
|
Spt : Word;
|
|
|
|
Procedure CopyBob(Y1,Y2 : word);
|
|
Var
|
|
X,Y : word;
|
|
Begin
|
|
asm
|
|
{ Calcul des pts de depart }
|
|
Push DS
|
|
Mov AX,Y2
|
|
mov BX,320
|
|
Mul bx
|
|
Mov DI,AX { DI = DI + 289 (320-31) }
|
|
Mov AX,Y1
|
|
Mul BX
|
|
Mov SI,AX { SI = SI + 289 (320-31) }
|
|
Mov AX,0A000h {WriteS}
|
|
Mov ES,AX
|
|
Mov AX,SPt
|
|
Mov DS,AX
|
|
Mov DX,39
|
|
@@B1: Mov CX,160
|
|
Rep MovsW
|
|
dec DX
|
|
jnz @@B1
|
|
Pop DS
|
|
end;
|
|
End;
|
|
|
|
Procedure initFont;
|
|
begin
|
|
InitGraph(VGA);
|
|
LoadImage(Title_Logo,Pct);
|
|
PutImage(Pct,1);
|
|
Delay(1000);
|
|
FadeOut(0,$FF,1);
|
|
FillChar(Screen^,64000,0);
|
|
Freeimage(Pct);
|
|
LoadImage(Title_txt,Pct);
|
|
Spt := Seg(Pct.Picture^);
|
|
end;
|
|
|
|
Procedure IntroAsm;
|
|
Var
|
|
C : Byte;
|
|
Begin
|
|
initFont;
|
|
C := 0;
|
|
PaletteOff;
|
|
While (c<39+(4*40)) do
|
|
Begin
|
|
CopyBob(C,80);
|
|
fadein(0,4,Pct.Palette,1);
|
|
delay(1500);
|
|
fadeWhite(1,4,1);
|
|
Fadeout(0,4,1);
|
|
inc(C,40);
|
|
End;
|
|
FreeImage(Pct);
|
|
end;
|
|
|
|
End.
|
|
|