Nasz zacofany program uczelniany programowania w Pasacalu zmusil mnie do napisania programu z wykorzystaniem tylko graph


Czesc kodu odpowiedzialna za inicjacje grafiki to:
Kod
PROGRAM GrDemo;
USES
Crt,
Graph;
VAR
GraphDriver : integer; { Sterownik graficzny }
GraphMode : integer; { Tryb graficzny }
Page: byte; { Numer strony graficznej }
{ Detekcja sterownika VGA256 }
FUNCTION DetectVGA256 : integer;
VAR
DetectedDriver : integer;
SuggestedMode : integer;
BEGIN
DetectGraph(DetectedDriver, SuggestedMode);
IF (DetectedDriver = VGA) OR (DetectedDriver = MCGA) THEN
BEGIN
DetectVGA256 := 1; {640x480}
END
ELSE
BEGIN
DetectVGA256 := grError;
END;
END;
{ Inicjajca trybu graficznego
TODO: kontorla bledow }
PROCEDURE Initialize;
VAR
PathToDriver : string;
BEGIN
DirectVideo := False;
PathToDriver := 'e:tpsvga'; { Sciezka do driverow graficznych }
GraphDriver := InstallUserDriver('Svga256',@DetectVGA256);
InitGraph(GraphDriver, GraphMode, PathToDriver);
IF GraphResult <> grOK THEN
BEGIN
writeln('Error');
END;
END;
{ Opoznienie }
PROCEDURE Pause;
BEGIN
delay(100000);
delay(100000);
delay(100000);
delay(100000);
END;
{ Zapobiega migotaniu obrazu }
PROCEDURE WaitRetrace; ASSEMBLER;
ASM
mov dx,3DAh
@@loop1: in al,dx; and al,8; jnz @@loop1;
@@loop2: in al,dx; and al,8; jz @@loop2
END;
{ Przeskakiwanie po stronach }
PROCEDURE PageFlipping;
BEGIN
IF Page = 1 THEN
BEGIN
SetVisualPage(0);
SetActivePage(1);
Page := 0;
END
ELSE
BEGIN
SetVisualPage(1);
SetActivePage(0);
Page := 1;
END;
ClearDevice;
WaitRetrace;
Pause;
END;
{ Glowna czesc programu }
BEGIN
Initialize;
outtextxy(10,10,'sdfsdf');
repeat
until keypressed;
CloseGraph;
end.
USES
Crt,
Graph;
VAR
GraphDriver : integer; { Sterownik graficzny }
GraphMode : integer; { Tryb graficzny }
Page: byte; { Numer strony graficznej }
{ Detekcja sterownika VGA256 }
FUNCTION DetectVGA256 : integer;
VAR
DetectedDriver : integer;
SuggestedMode : integer;
BEGIN
DetectGraph(DetectedDriver, SuggestedMode);
IF (DetectedDriver = VGA) OR (DetectedDriver = MCGA) THEN
BEGIN
DetectVGA256 := 1; {640x480}
END
ELSE
BEGIN
DetectVGA256 := grError;
END;
END;
{ Inicjajca trybu graficznego
TODO: kontorla bledow }
PROCEDURE Initialize;
VAR
PathToDriver : string;
BEGIN
DirectVideo := False;
PathToDriver := 'e:tpsvga'; { Sciezka do driverow graficznych }
GraphDriver := InstallUserDriver('Svga256',@DetectVGA256);
InitGraph(GraphDriver, GraphMode, PathToDriver);
IF GraphResult <> grOK THEN
BEGIN
writeln('Error');
END;
END;
{ Opoznienie }
PROCEDURE Pause;
BEGIN
delay(100000);
delay(100000);
delay(100000);
delay(100000);
END;
{ Zapobiega migotaniu obrazu }
PROCEDURE WaitRetrace; ASSEMBLER;
ASM
mov dx,3DAh
@@loop1: in al,dx; and al,8; jnz @@loop1;
@@loop2: in al,dx; and al,8; jz @@loop2
END;
{ Przeskakiwanie po stronach }
PROCEDURE PageFlipping;
BEGIN
IF Page = 1 THEN
BEGIN
SetVisualPage(0);
SetActivePage(1);
Page := 0;
END
ELSE
BEGIN
SetVisualPage(1);
SetActivePage(0);
Page := 1;
END;
ClearDevice;
WaitRetrace;
Pause;
END;
{ Glowna czesc programu }
BEGIN
Initialize;
outtextxy(10,10,'sdfsdf');
repeat
until keypressed;
CloseGraph;
end.
Czy ktos moze mi powiedziec co do cholery jest nie tak !?