Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Pascal :PPPPPP
Seth
post 25.05.2003, 20:48:38
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 tongue.gif i teraz mam pewien problem. Otoz inicjujac ten tryb jeszcze wczoraj wszystko dzialalo, a dzisiaj juz nie - mimo, ze nic nie zmienialem 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
itsme
post 25.05.2003, 21:32:00
Post #2





Grupa: Zarząd
Postów: 1 512
Pomógł: 2
Dołączył: 22.04.2002
Skąd: Koszalin




tyle razy mowilem i powiem jeszcze raz KOD prosze ogarniac znacznikami w tym przypadku [PASCAL]. Nie ma questionmark.gif no coz dlaczego jeszcze nie napisales questionmark.gif

===================
sorry za offtopic nie moglem sie powstrzymac


--------------------
brak sygnaturki rowniez jest sygnaturką
Go to the top of the page
+Quote Post
Seth
post 26.05.2003, 06:48:52
Post #3





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

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


Aj... masz racje ciagle o tym zapominam. Ale komu potrzebne jest kolorwanie skladni, przeciez to taki zbytek luksusu... wszystko zaciemnia i nikt go nie uzywa.
Go to the top of the page
+Quote Post
scanner
post 26.05.2003, 06:55:10
Post #4





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




Seth: myślę, że podpadasz pod: http://forum.php.pl/regulamin.php#IV.2.d
Wywala jakieś błędy czy coś?

Kurde, z Pascalem ostatni raz miałem do czynienia coś z 7 lat temu a i tak mój "nauczyciel" nie wychodził poza tryb tekstowy...


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
Seth
post 26.05.2003, 07:01:21
Post #5





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 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 sad.gif

_____________________________


VICTORY 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
Seth
post 28.05.2003, 10:14:14
Post #6





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

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


Jako, ze juz skonczylem projekt, wiec podziele sie z wami moim dzieckiem winksmiley.jpg
Tutaj mozna sciagnac plik exe (pisane pod dos'a): http://rallylinks.w.interia.pl/grdemo.zip
Plik trzeba rozpakowac w jakies 'latwo' dostepne dla dosa miejsce. Najlepiej na c:grdemo. Po odpaleniu programu nalezy podac sciezka gdzie rozpakowalismy pliki i dodac drvs (czyl w naszym przypadku: c:grdemodrvs). Milego ogladania smile.gif


Czekam na ocene smile.gif
Go to the top of the page
+Quote Post
scanner
post 28.05.2003, 10:20:24
Post #7





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




działa, działa - napis sobie miga, tylko czemu tamm nie ma opcji "wyjdz"?


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
Seth
post 28.05.2003, 10:22:33
Post #8





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

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


Te napis kiedys przestanie migac winksmiley.jpg
Po pewnym czasie przestaje i sa kolejne etapy dema... trzeba tylko poczekac. Na koncu sa takie ladne kolorki i wtedy juz mozna wcisnac klawisz (dowolny) aby wyjsc no i jeszcze podczas kodu Matrix.

Tylko jeszcze obawiam sie, ze delay moze byc za duzy na starsze komputery. Ja testowalem to na P4 2GHz, wiec dalem dosc duzy - jaby bylo duze spowolnienie to napiszcie zmienie w prgramie co trzeba i kazdy bedzie mogl sam ustawic.
Go to the top of the page
+Quote Post
scanner
post 28.05.2003, 10:25:09
Post #9





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




no dobra.. ale w robocie poczekac raczej nie mogę - obejrze w domu.

P.S.
MOże przyspieszyć o połowe miganie?


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
Seth
post 28.05.2003, 10:34:02
Post #10





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

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


Juz uaktualnilem wersje - teraz samemu mozna wybrac sobie opoznienie.
Go to the top of the page
+Quote Post
scanner
post 28.05.2003, 10:41:49
Post #11





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




Podaję:

c:grdemodrvs
0,01 (oraz 0.01)

i się wyłacza bez powodu.


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
Seth
post 28.05.2003, 10:44:39
Post #12





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

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


Podaj 1000 czy cos kolo tego - to jest wartosc opoznienia delay'a w pascalu mozna dac tylko do 10000 (mogly mi sie pomylic zera ale tak jest w przyblizeniu), wiec aby jeszcze dodatkowo zwolnic wstawilem to w petle (stad ta druga liczba) - dlatego tu najlepiej podawac przy wolnych komputerach 1. CZyli, jezeli damy delay na: 100 a druga wartosc na 2 to bedziemy mieli 200 itd.

Piewsza wartosc jest podawana w milisekundach z przedzialu <0,10000> druga to unsigned integer.
Go to the top of the page
+Quote Post
scanner
post 28.05.2003, 10:49:57
Post #13





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




no to napisz, ze to przedzial, bo jak widze; podaj opoznienie 0,costam, to mysle, ze to jest wartosc domyslna...


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
Seth
post 28.05.2003, 10:51:09
Post #14





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

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


ale sie czepiasz tongue.gif
Go to the top of the page
+Quote Post
scanner
post 28.05.2003, 10:53:52
Post #15





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




no nie powiem, działa i to nawet dobrze smile.gif

P.S. - zawsze się czegoś czepnę. Już taka moja wredna natura tongue.gif))


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
DeyV
post 28.05.2003, 10:57:16
Post #16





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




NO NO NO bardzo ładnie aaevil.gif I to w Pascalu...
Kiedy ja to widziałem po raz ostatni?
Z 2- 3 lata temu? Historia... winksmiley.jpg


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 12:04