home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Collection of Hack-Phreak Scene Programs
/
cleanhpvac.zip
/
cleanhpvac
/
KMAGV1.ZIP
/
RASTEXAM.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1995-09-13
|
3KB
|
114 lines
{RASTEXAM.PAS / EXAMPLE FOR RASTER BARS}
{WRITING BY THE KING IN 10/14/95 }
Uses Crt;
Var
BLUEBAR : Array[1..63*2,1..3] Of Byte; {THE RASTER BAR}
Num:Byte;
R,G,B:Byte;
Del:Byte;
{---------------------------------------------}
{Build The Palette for the BLUE BAR ... }
{---------------------------------------------}
Procedure BuildBlueBar;
Var T:Byte;
Begin
For T:=1 To 63 Do Begin
BlueBar[T,1] := 0;
BlueBar[T,2] := 0;
BlueBar[T,3] := T;
End;
For T:=1 To 63 Do Begin
BlueBar[63+T,1] := 0;
BlueBar[63+T,2] := 0;
BlueBar[63+T,3] := 63-T;
End;
End;
{-------------------------------------------------}
{Init The Program ... }
{-------------------------------------------------}
Procedure Init;
Begin
Clrscr;
Port[$21] := 1; {Disable Interrupts for speed}
BuildBlueBar; {Build Blue Bars}
TextColor(15);
Writeln(' HI EVERYONE ! ');
Writeln(' ------------- ');
Writeln(' This is the example for the RASTER EFFECT wrote by THE KING');
Writeln;
Gotoxy(1,20);
Writeln(' Press Any Key To Continue');
End;
{----------------------------------------}
{ If Retrace End Sent TRUE , Else FALSE. }
{----------------------------------------}
Function Retrace:Boolean; Assembler;
asm
Xor Ah,Ah {Ah = 0}
Mov Dx,3dah {Dx = 3DAh}
@Vert1:
In Al,Dx {Al = Port[3DAh]}
Test Al,8 {Check The 4 Bit For Checking If}
Jz @Exit {Finish With Vertical Retrace}
Inc Ah
@Exit:
Mov Al,Ah
End;
{--------------------------------------------------}
{Put the Bars on the screen .. }
{--------------------------------------------------}
Procedure PutBars;
Begin
Num:=1;
Repeat
Del:=1;
Num :=1;
Repeat
If Num > 63*2 Then Num := 1;
R := BlueBar[Num,1];
G := BlueBar[Num,2];
B := BlueBar[Num,3];
If Del = 6 Then
Begin
Inc(Num);
Del := 1;
End;
Inc(Del);
Asm
Mov Al,0 {Paint On Color 0}
Mov Dx,3c8h {The R,G,B}
Out Dx,Al
Inc Dx
Mov Al,R
Out Dx,Al
Mov Al,G
Out Dx,Al
Mov Al,B
Out Dx,Al
End;
Until(Retrace);
Until(KeyPressed);
End;
Begin
Init;
PutBars;
Port[$21] := 0; {Enable Interrupts.}
Asm
Mov Al,0 {Paint On Color 0}
Mov Dx,3c8h {0,0,0 To Return To Reglar Mode}
Out Dx,Al
Inc Dx
Mov Al,0
Out Dx,Al
Mov Al,0
Out Dx,Al
Mov Al,0
Out Dx,Al
End;
End.