logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak ustawić jasne tło w trybie tekstowym DOS w Turbo Pascalu 7.0?

andrzejlisek 29 Wrz 2006 01:17 2473 7
REKLAMA
  • #1 3067611
    andrzejlisek
    Poziom 32  
    Posty: 3637
    Pomógł: 82
    Ocena: 707
    Niektóre programy pracujące w trybie tekstowym DOS są tak napisane, że zamiast migającego tekstu jest jasne tło, czyli zarówno kolor tła jak i kolor tekstu może być wybrany spośród całego zestawu 16 kolorów. Takim programem jest na przypład edytor DOS wywoływany poleceniem "edit" z wiersza poleceń. Na jakiej zasadzie to jest zrobione i jak to można zrobić w Turbo Pascalu 7.0 lub ewentualnie Microsoft QuickBasic 4.5?
  • REKLAMA
  • #2 3067662
    Xitami
    Poziom 29  
    Posty: 1130
    Pomógł: 118
    Ocena: 31
    crt.textattr:=$70
    albo
    crt.textattr:=$07
    pobaw się różnymi wartościami
  • REKLAMA
  • #3 3067865
    ed-ek
    Poziom 34  
    Posty: 1814
    Pomógł: 275
    Ocena: 42
    Poniżej masz różne możliwości:

    uses Crt;
    begin
    TextBackground(Black);clrscr;{caly ekran czarny}
    { zielone litery na czarnym tle}
    TextColor(Green);
    TextBackground(Black);
    WriteLn('Witaj!');
    { pulsowanie light-red liter }
    { na jasno-szarym tle }
    TextColor(LightRed+Blink);
    TextBackground(LightGray);
    WriteLn('nacisnij klawisz');
    readkey;
    { Yellow litery na blue tle }
    TextColor(14); { Yellow = 14 }
    TextBackground(Blue);
    clrscr;
    WriteLn('po clrscr jest caˆe tlo blue');
    NormVideo; { Original attribute }
    WriteLn('powrot...nacisnij klawisz');
    readkey;
    TextBackground(Black);
    clrscr;
    writeln(' ustawienie czarnego tla ekranu,nacisnij klawisz');
    readkey;
  • #4 3070662
    maciek_slon
    Poziom 29  
    Posty: 942
    Pomógł: 143
    Ocena: 27
    Sęk w tym że jeśli ustawi się na kolor tła numer od 8 do 15stu to wg zasad tekst powinien zacząć migać a kolor tła powinien być o 8 mniejszy (zamiast szarego czarny, zamiast białego szary itp). Ale jak zareaguje komputer - to już kwiestia systemu. Np. po uruchomieniu programu w okienku - będzie jasne tło. Ale po zmaksymalizowaniu okienka na cały ekran - tło ciemnieje i tekst zaczyna migać.
  • REKLAMA
  • #5 3070792
    ed-ek
    Poziom 34  
    Posty: 1814
    Pomógł: 275
    Ocena: 42
    Kolor tła powinno się ustawiać w zakresie od 0 do 7. Tak informują zasady programowania w Pascalu.
  • REKLAMA
  • #6 3071069
    Xitami
    Poziom 29  
    Posty: 1130
    Pomógł: 118
    Ocena: 31
    Dokładniej w Turbo Pascalu
    Jeżeli dobrze pamiętam nie każda EGA miga
  • #7 3073975
    andrzejlisek
    Poziom 32  
    Posty: 3637
    Pomógł: 82
    Ocena: 707
    Na jednym i tym samym komputerze, na pełnym ekranie w jednym programie tło może mieć 1 z 7 kolorów, a tekst może migać, a w innym tło można zdefiniować na 1 z 16 kolorów bez możliwości migania tekstu. Takimi programami są np. Edytor MS-DOS (dostarczony razem z systemem, wywoływany poleceniem EDIT), Norton Commander firmy Symantec, prawdopodobnie Norton Utilities tej samej firmy, na pewno WF-KaPeR dla DOS firmy Wa-Pro (program do prowadzenia księgi przychodów i rozchodów oraz obliczania podatku dochodowego i VAT).

    Jednym słowem musi być możliwość przeprogramowania karty graficznej, by zamias migania tekstu oferowała pełną paletę kolorów tekstu i tła.

    Może to da się poprzez wstawki assemblerowskie lub wysyłanie określonych bajtów do portów (tych, które określa się liczbą 1-65535)?
  • #8 3090662
    spros
    Poziom 17  
    Posty: 186
    Pomógł: 16
    Ocena: 26
    atrybut znaku jest zapisany liczba 8 bitowa. 1bit migotania 3 bity koloru tla i 4 bity koloru znaku.
    na pewno mozna ustawic karte zeby migala albo zeby dawala jasne tlo. tyle ze nie pamietam co sie tam ustawialo :D napewno bylo to mozliwe bo robilem takie rzeczy :D. chyba jakas zmienna systemowa, jak sobie przypomne to podpowiem :)

Podsumowanie tematu

✨ W trybie tekstowym DOS kolor tła i tekstu jest określany przez 8-bitowy atrybut znaku, gdzie 1 bit odpowiada za migotanie, 3 bity za kolor tła, a 4 bity za kolor tekstu. Standardowo kolor tła ustawia się w zakresie 0–7, a kolory tła od 8 do 15 powodują migotanie tekstu, co jest zależne od systemu i trybu wyświetlania (np. pełny ekran vs. okno). Programy takie jak edytor DOS wywoływany poleceniem "edit", Norton Commander czy WF-KaPeR potrafią wyświetlać jasne tło bez migotania, co wymaga przeprogramowania karty graficznej lub manipulacji portami sprzętowymi, często realizowane przez wstawki assemblerowe. W Turbo Pascalu 7.0 można ustawiać kolory tła i tekstu za pomocą procedur TextBackground i TextColor z modułu Crt, np. crt.textattr:=$70 ustawia jasne tło i ciemny tekst. Migotanie zależy także od typu karty graficznej (np. nie każda EGA obsługuje migotanie).
Wygenerowane przez model językowy.
REKLAMA