Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Pascal :PPPPPP
Seth
post
Post #1





Grupa: Przyjaciele php.pl
Postów: 2 335
Pomógł: 6
Dołączył: 7.03.2002

Ostrzeżenie: (0%)
-----


Czy moze ktos bawil sie w Pascalu w tryb SVGA256 ?
Nasz zacofany program uczelniany programowania w Pasacalu zmusil mnie do napisania programu z wykorzystaniem tylko graph (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) i teraz mam pewien problem. Otoz inicjujac ten tryb jeszcze wczoraj wszystko dzialalo, a dzisiaj juz nie - mimo, ze nic nie zmienialem (IMG:http://forum.php.pl/style_emoticons/default/laugh.gif)

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.


Czy ktos moze mi powiedziec co do cholery jest nie tak !?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Seth
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 335
Pomógł: 6
Dołączył: 7.03.2002

Ostrzeżenie: (0%)
-----


Wlasnie chodzi o to, ze nie wywala zadnego bledu.
Po odpaleniu tego pojawia mi sie tryb 640x480 ale za chiny nie mozna nic wypisyca na ekranie. Przyczym czasami zdaza sie, ze wyskakuje blad... Matrixa (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) (zart)... blad ochroy pamieci w windowsie i caly pascal siada.
Najciekawsze jest to, ze jak juz wyzej wspomnialem nie zmienialem nic w kodzie a sam z sibie sie sypnal.
Jezeli ktos chce to moge udostepnic pascala i ten kod wraz z vga256.bgi. Ja juz rece zalamalem (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

_____________________________


VICTORY (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Oto poprawny kod:
Kod
PROGRAM GrDemo;



Uses

  Graph,

  Crt,

  Dos;



{$i svga16.inc}

{$i svga256.inc}

{$i svga32k.inc}



VAR

  GraphMode   : integer;

  GraphDriver : integer;

  Ky : Char;

  Drv : Integer;



{$F+}

FUNCTION DetectVGA256 : Integer;

BEGIN

  DetectVGA256 := 1; {640X480}

END;

{$F-}



BEGIN

  GraphDriver := InstallUserDriver('SVGA256',@DetectVGA256);

  GraphDriver := Detect;

  InitGraph(GraphDriver,GraphMode,'');

  setcolor(15);

  line(0,0,GetMaxX,GetMaxY);

  line(0,GetMaxY,GetMaxX,0);

  Ky := ReadKey;

  CloseGraph;

END.


itsme: Niestety kolorowanie skladni Pascala na forum strasznie spowalnia proces ladowania strony, wiec uzylem zwyklego, wysluzonego [code]
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.09.2025 - 04:38