{ 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.