home *** CD-ROM | disk | FTP | other *** search
- {
- John Wong
-
- >Does anyone out there have any fade-in routines??? Also can anyone
- >recomend some good books on VGA Programming and Animation???
-
- This might be a fade out routine, but you could modify it to fade in.
- }
- {$G+}
- Program fades;
-
- Uses
- Crt, Dos;
- { TPC /$G+ To Compile }
- Var
- All_RGB : Array[1..256 * 3] Of Byte;
- x,color : Integer;
-
-
- Procedure FadeOut2; { This is Hard Cores Fade Out }
- begin
- {for using Textmode use color 7, or For Graphics}
- x := 1;
- Color := 7;
- Repeat;
- port[$3c8] := color;
- port[$3c9] := 60 - x;
- port[$3c9] := 60 - x;
- port[$3c9] := 60 - x;
- inc(x);
- Delay(75);
- Until x = 60;
-
- { Get The Screen Back ( Change This ) }
- Color := 7;
- port[$3c8] := color;
- port[$3c9] := 60 + x;
- port[$3c9] := 60 + x;
- port[$3c9] := 60 + x;
- inc(x);
- Delay(25);
- end;
-
- Procedure FadeOut;
- Label
- OneCycle,
- ReadLoop,
- DecLoop,
- Continue,
- Retr,
- Wait,
- Retr2,
- Wait2;
- begin { FadeOut }
- Asm
- MOV CX,64
- OneCycle:
-
- MOV DX,3DAh
- Wait: in AL,DX
- TEST AL,08h
- JZ Wait
- Retr: in AL,DX
- TEST AL,08h
- JNZ Retr
-
- MOV DX,03C7h
- xor AL,AL
- OUT DX,AL
- INC DX
- INC DX
- xor BX,BX
- ReadLoop:
- in AL,DX
- MOV Byte Ptr All_RGB[BX],AL
- INC BX
- CMP BX,256*3
- JL ReadLoop
-
- xor BX,BX
- DecLoop:
- CMP Byte Ptr All_RGB[BX],0
- JE Continue
- DEC Byte Ptr All_RGB[BX]
-
- Continue:
- INC BX
- CMP BX,256*3
- JL DecLoop
-
- MOV DX,3DAh
- Wait2: in AL,DX
- TEST AL,08h
- JZ Wait2
- Retr2: in AL,DX
- TEST AL,08h
- JNZ Retr2
-
- MOV DX,03C8h
- MOV AL,0
- OUT DX,AL
- INC DX
- MOV SI,OFFSET All_RGB
- CLD
- PUSH CX
- MOV CX,256*3
- REP OUTSB
- POP CX
-
- LOOP OneCycle
-
- end;
- end; { FadeOut }
-
-
- begin
- fadeout;
- NormVideo;
- Fadeout2;
- end.