Czy da się przedefiniować paletę w trybie tekstowym
fatalbomb
Uwaga: aby zrozumieć w pełni ten kod, przeczytaj najpierw poprzednią wskazówkę ("jak zdefiniować kolor w trybie graficznym", u dołu zamieściłem link). Będę się do tego odwoływał.
Aby przedefiniować paletę w trybie tekstowym, trzeba (chyba?) trochę oszukać system. Wchodzimy do trybu graficznego, po czym z niego wychodzimy, wybierając tryb tekstowy. Potem majstrujemy jak chcemy, używając SetRGBPalette (uwaga: tutaj też kolory 9, 10, 11 itp jako 57, 58, 59 itd...!). Zaczynamy tak:
<b>uses</b> crt, graph;
<b>var</b> Gd, Gm:Integer;
<b>begin</b>
Gd := VGA;
Gm := VGAHi;
InitGraph (Gd, Gm);
TextMode (CO80); { Nie używać w tym miejscu CloseGraph! }
{ --- I tu majstrujemy z paletą i całą resztą --- }
<b>end</b>.
I to cała filozofia! Polecam.
Artykuł "jak zdefiniować kolor w trybie graficznym" . Jakby nie chodziło, to piszcie.
Mozna chyba prosciej:
bez trybu graficznego:
port[$3c8] := 7; {numer koloru ktory chcesz zmienic 7 standardowo j.szary}
port[$3c9] := 63; {Skladowa R - czerwonego koloru 0-63}
port[$3c9] := 63; {Skladowa G - zielonego koloru}
port[$3c9] := 0; {Skladowa B - niebieskiego koloru}
przy czym mozesz korzystac tylko z kolorow 0-63 -> niestety tylko 2^16 ale to i tak chyba wystarczy 16 bitow
powodzenia,
Kamil (http://www.programowanie.vsz.pl)
Fajne...
Dodaj link do tej poprzedniej wskazówki - z czasem dojdą kolejne artykuły i nikt nie znajdzie "poprzedniej wskazówki".