![]() |
![]() ![]() |
![]() |
![]()
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 ![]() ![]() 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 !? |
|
|
![]()
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
![]() ![]() =================== sorry za offtopic nie moglem sie powstrzymac -------------------- brak sygnaturki rowniez jest sygnaturką
|
|
|
![]()
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.
|
|
|
![]()
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... -------------------- |
|
|
![]()
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 ![]() 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 ![]() _____________________________ VICTORY ![]() 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] |
|
|
![]()
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
![]() 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 ![]() Czekam na ocene ![]() |
|
|
![]()
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"?
-------------------- |
|
|
![]()
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
![]() 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. |
|
|
![]()
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? -------------------- |
|
|
![]()
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.
|
|
|
![]()
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. -------------------- |
|
|
![]()
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. |
|
|
![]()
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...
-------------------- |
|
|
![]()
Post
#14
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 335 Pomógł: 6 Dołączył: 7.03.2002 Ostrzeżenie: (0%) ![]() ![]() |
ale sie czepiasz
![]() |
|
|
![]()
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
![]() P.S. - zawsze się czegoś czepnę. Już taka moja wredna natura ![]() -------------------- |
|
|
![]()
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
![]() Kiedy ja to widziałem po raz ostatni? Z 2- 3 lata temu? Historia... ![]() -------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 12:04 |