Ĺadny brzuch
W pascalu można wejść w jakiś bliżej mi nie znany tryb graficzny (nie używając żadnego USES; grafika 320x200 @255kol.), mianowicie chodzi mi o kod assemblera:
ASM mov ax, 13h int 10h END;Jak w tym trybie coś narysować albo napisać? Ja znalazłem takie coś:
Mem[$A000:x+320*y]:=c;Ups, może ze spacjami będzie lepiej...
M e m [ $ A 0 0 0 : x + 3 2 0 * y ] : = c;Ale to polecenie zakolowuje tylko jeden piksel o położeniu x,y na kolor c (0<x<321 0<y<201 -1<c<255). Jak chcecie zobaczyć jaki kolor jest dla jakiego c to napiszcie:
FOR i:=0 TO 255 DO Mem[$A000:i+1]:=i;A ja chciałbym jakoś lepiej wykorzystać ten tryb. Narazie napisałem już w nim jeden program (fajnie się rysuje literki - piksel po pikselu... - że też mi się chciało), ale chciałbym jakoś to usprawnić. Są jakieś procedury rysujące w tym trybie?
EDYTOWANO (EMOTIKONKI RULEZ...)
___________________________________________________________________________
GG# 2370024 | Po wyciągnięciu zawleczki granat przestaje być twoim przyjacielem...
cytat:BlackMesa napisał:
A ja chciałbym jakoś lepiej wykorzystać ten tryb. Narazie napisałem już w nim jeden program (fajnie się rysuje literki - piksel po pikselu... - że też mi się chciało), ale chciałbym jakoś to usprawnić. Są jakieś procedury rysujące w tym trybie?
To co napisałeś, jest po prostu przełączeniem się na tryb graficzny 320x200x256.
W tym trybie jeden bajt pamięci ekranu odpowiada jednemu pikselowi.
Stosując poniższą instrukcję
M e m [ $ A 0 0 0 : x + 3 2 0 * y ] : = c ;
po prostu rysujesz, wpisując kolory bezpośrednio do pamięci ekranu.
Z tego co pamiętam to nie ma specjalnych procedur do rysowania w tym trybie - trzeba je napisać samemu :)
A z ciekawości - dlaczego nie korzystasz z standardowych trybów dostępnych z poziomu Pascala ?
Łołłł. Lepiej pokombinuj z czymś innym, w tym co teraz robisz to się napiszesz i napiszesz. Wyniki nie są powalające na kolana, czyni nie warto.
:cheesy:
Udanych prób :!:!:!:!
________________________________________________
._-= EVERYTHING THAT HAS BEGINNING HAS AN END =-_.
http://4programmers....le.html?id=1204 - AFS 1.9.0.5
Mam immunitet wszystkiego na DYS.
cytat:OXI powiedział:
A z ciekawości - dlaczego nie korzystasz z standardowych trybów dostępnych z poziomu Pascala ?Bo lubię eksperymentować. Piszę sobie właśnie własny unit do Pascala (wykorzystujący ten tryb). Pozatym ten sposób nie wymaga podawania ścieżki do jakiś plików ze sterownikami (albo czymśtam - nie pamiętam, coś się podawało przed InitGraph; )
___________________________________________________________________________
GG# 2370024 | Po wyciągnięciu zawleczki granat przestaje być twoim przyjacielem...
cytat:BlackMesa napisał:
cytat:OXI powiedział:
A z ciekawości - dlaczego nie korzystasz z standardowych trybów dostępnych z poziomu Pascala ?
Bo lubię eksperymentować. Piszę sobie właśnie własny unit do Pascala (wykorzystujący ten tryb).
OK, rozumiem.
Życzę powodzenia w pracach nad tym unitem :ok:
Widze, że ktoś tu polubił tajemnice pascala....
:cheesy:
________________________________________________
._-= EVERYTHING THAT HAS BEGINNING HAS AN END =-_.
http://4programmers....le.html?id=1204 - AFS 1.9.0.5
Mam immunitet wszystkiego na DYS.
I w końcu ktoś o Pascalu :) Naprawdę przydałoby się to o czym piszecie tu w gazetce! Szczerze, to w nie mam bladego pojęcia o tym wszystkim i właśnie dlatego chcę się tego nauczyć
cytat:Th0mas napisał:
Szczerze, to w nie mam bladego pojęcia o tym wszystkim i właśnie dlatego chcę się tego nauczyć
Polecam książki o Pascalu napisane przez Andrzeja Marciniaka i wydane przez BUM. Dobrze napisane - ja właśnie z nich nauczyłem się kiedyś Pascala :)
| GG:5365367 | ICQ:245363570 |
Jeśli chodzi o kurs pascala od podstaw, to Oxi ma rację - od tego są książki. Ale w gazetce możnaby poświęcić troszkę miejsca na ciekawostki z Pascala. Ja na przykład niedawno dowiedziałem się jak w programie wykorzystać mysz (to naprawdę proste, ale w szkole tego nie uczą), albo jak zapisać a^b. Z tym drugim zawsze robiliśmy to tak:
FUNCTION Potega (a,b :Integer) :Integer; VAR lic :Integer; c :Integer; BEGIN c:=1; FOR lic:=1 TO b DO a:=a*c; END
Ale niedawno dowiedziałem się że wystarczy:
Exp(a*Ln(b))
Wynika to z prostego wzorku matematycznego: a^b=e^(a*ln B) W szkole stosowaliśmy tą pierwszą metodę!
GG# 2370024 | Po wyciągnięciu zawleczki granat przestaje być twoim przyjacielem...
cytat:BlackMesa napisał:
Ale niedawno dowiedziałem się że wystarczy:
Exp(a*Ln(b))
Wynika to z prostego wzorku matematycznego: a^b=e^(a*ln B) W szkole stosowaliśmy tą pierwszą metodę!
Znam ten wzór - ale rzeczywiście podczas nauki programowania pokazują to zwykle na pętli. Wydaje mi się, że to nie tyle z niewiedzy co raczej z chęci zademonstrowania działania pętli i samego języka. Chociaż niekoniecznie jest tak w każdym przypadku.
Co do wzoru który podałeś wyżej to wkradł się mały błąd - powinno być a^b = e^(b*ln a)
| GG:5365367 | ICQ:245363570 |
Jakoś łatwiej mi wydać 10 zł co 2 miechy, niż 60 zł na raz na głupią książkę, tylko o jednym temacie.:cheesy:
Zrobisz co będiesz chciał :)
Ale dla mnie książki dużo lepiej się nadają do nauki programowania niż kursy, które można znaleźć w internecie. A jeśli będziesz się opierał tylko na kursie w KĄE czy jakiejś innej gazetce to czekają cię dłuuuuuugie lata nauki podstaw.
| GG:5365367 | ICQ:245363570 |
To jest znany tryb 13h :)
W necie jest o tym pełno (Dobrze poszukaj).
:)
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
ASM mov ax, 13h int 10h END;Jak w tym trybie coś narysować albo napisać? Ja znalazłem takie coś:
Mem[$A000:x+320*y]:=c;Ups, może ze spacjami będzie lepiej...
M e m [ $ A 0 0 0 : x + 3 2 0 * y ] : = c;Ale to polecenie zakolowuje tylko jeden piksel o położeniu x,y na kolor c (0<x<321 0<y<201 -1<c<255). Jak chcecie zobaczyć jaki kolor jest dla jakiego c to napiszcie:
FOR i:=0 TO 255 DO Mem[$A000:i+1]:=i;A ja chciałbym jakoś lepiej wykorzystać ten tryb. Narazie napisałem już w nim jeden program (fajnie się rysuje literki - piksel po pikselu... - że też mi się chciało), ale chciałbym jakoś to usprawnić. Są jakieś procedury rysujące w tym trybie?
EDYTOWANO (EMOTIKONKI RULEZ...)
___________________________________________________________________________
GG# 2370024 | Po wyciągnięciu zawleczki granat przestaje być twoim przyjacielem...
cytat:BlackMesa napisał:
A ja chciałbym jakoś lepiej wykorzystać ten tryb. Narazie napisałem już w nim jeden program (fajnie się rysuje literki - piksel po pikselu... - że też mi się chciało), ale chciałbym jakoś to usprawnić. Są jakieś procedury rysujące w tym trybie?
To co napisałeś, jest po prostu przełączeniem się na tryb graficzny 320x200x256.
W tym trybie jeden bajt pamięci ekranu odpowiada jednemu pikselowi.
Stosując poniższą instrukcję
M e m [ $ A 0 0 0 : x + 3 2 0 * y ] : = c ;
po prostu rysujesz, wpisując kolory bezpośrednio do pamięci ekranu.
Z tego co pamiętam to nie ma specjalnych procedur do rysowania w tym trybie - trzeba je napisać samemu :)
A z ciekawości - dlaczego nie korzystasz z standardowych trybów dostępnych z poziomu Pascala ?
Łołłł. Lepiej pokombinuj z czymś innym, w tym co teraz robisz to się napiszesz i napiszesz. Wyniki nie są powalające na kolana, czyni nie warto.
:cheesy:
Udanych prób :!:!:!:!
________________________________________________
._-= EVERYTHING THAT HAS BEGINNING HAS AN END =-_.
http://4programmers....le.html?id=1204 - AFS 1.9.0.5
Mam immunitet wszystkiego na DYS.
cytat:OXI powiedział:
A z ciekawości - dlaczego nie korzystasz z standardowych trybów dostępnych z poziomu Pascala ?Bo lubię eksperymentować. Piszę sobie właśnie własny unit do Pascala (wykorzystujący ten tryb). Pozatym ten sposób nie wymaga podawania ścieżki do jakiś plików ze sterownikami (albo czymśtam - nie pamiętam, coś się podawało przed InitGraph; )
___________________________________________________________________________
GG# 2370024 | Po wyciągnięciu zawleczki granat przestaje być twoim przyjacielem...
cytat:BlackMesa napisał:
cytat:OXI powiedział:
A z ciekawości - dlaczego nie korzystasz z standardowych trybów dostępnych z poziomu Pascala ?
Bo lubię eksperymentować. Piszę sobie właśnie własny unit do Pascala (wykorzystujący ten tryb).
OK, rozumiem.
Życzę powodzenia w pracach nad tym unitem :ok:
Widze, że ktoś tu polubił tajemnice pascala....
:cheesy:
________________________________________________
._-= EVERYTHING THAT HAS BEGINNING HAS AN END =-_.
http://4programmers....le.html?id=1204 - AFS 1.9.0.5
Mam immunitet wszystkiego na DYS.
I w końcu ktoś o Pascalu :) Naprawdę przydałoby się to o czym piszecie tu w gazetce! Szczerze, to w nie mam bladego pojęcia o tym wszystkim i właśnie dlatego chcę się tego nauczyć
cytat:Th0mas napisał:
Szczerze, to w nie mam bladego pojęcia o tym wszystkim i właśnie dlatego chcę się tego nauczyć
Polecam książki o Pascalu napisane przez Andrzeja Marciniaka i wydane przez BUM. Dobrze napisane - ja właśnie z nich nauczyłem się kiedyś Pascala :)
| GG:5365367 | ICQ:245363570 |
Jeśli chodzi o kurs pascala od podstaw, to Oxi ma rację - od tego są książki. Ale w gazetce możnaby poświęcić troszkę miejsca na ciekawostki z Pascala. Ja na przykład niedawno dowiedziałem się jak w programie wykorzystać mysz (to naprawdę proste, ale w szkole tego nie uczą), albo jak zapisać a^b. Z tym drugim zawsze robiliśmy to tak:
FUNCTION Potega (a,b :Integer) :Integer; VAR lic :Integer; c :Integer; BEGIN c:=1; FOR lic:=1 TO b DO a:=a*c; END
Ale niedawno dowiedziałem się że wystarczy:
Exp(a*Ln(b))
Wynika to z prostego wzorku matematycznego: a^b=e^(a*ln B) W szkole stosowaliśmy tą pierwszą metodę!
GG# 2370024 | Po wyciągnięciu zawleczki granat przestaje być twoim przyjacielem...
cytat:BlackMesa napisał:
Ale niedawno dowiedziałem się że wystarczy:
Exp(a*Ln(b))
Wynika to z prostego wzorku matematycznego: a^b=e^(a*ln B) W szkole stosowaliśmy tą pierwszą metodę!
Znam ten wzór - ale rzeczywiście podczas nauki programowania pokazują to zwykle na pętli. Wydaje mi się, że to nie tyle z niewiedzy co raczej z chęci zademonstrowania działania pętli i samego języka. Chociaż niekoniecznie jest tak w każdym przypadku.
Co do wzoru który podałeś wyżej to wkradł się mały błąd - powinno być a^b = e^(b*ln a)
| GG:5365367 | ICQ:245363570 |
Jakoś łatwiej mi wydać 10 zł co 2 miechy, niż 60 zł na raz na głupią książkę, tylko o jednym temacie.:cheesy:
Zrobisz co będiesz chciał :)
Ale dla mnie książki dużo lepiej się nadają do nauki programowania niż kursy, które można znaleźć w internecie. A jeśli będziesz się opierał tylko na kursie w KĄE czy jakiejś innej gazetce to czekają cię dłuuuuuugie lata nauki podstaw.
| GG:5365367 | ICQ:245363570 |
To jest znany tryb 13h :)
W necie jest o tym pełno (Dobrze poszukaj).
:)