Rozszerzenia VESA BIOS

VESA BIOS Extensions ( VBE ) to standard VESA , obecnie w wersji 3, definiujący interfejs, który może być używany przez oprogramowanie w celu uzyskania dostępu do zgodnych kart graficznych w wysokich rozdzielczościach i głębi bitowej. Jest to przeciwieństwo „tradycyjnych” BIOS -u INT 10h , które są ograniczone do rozdzielczości 640 × 480 pikseli z 16-bitową (4-bitową) głębią lub mniejszą. VBE jest udostępniany przez BIOS karty graficznej , który instaluje podczas uruchamiania kilka wektorów przerwań , na które wskazuje samo.

Większość nowszych kart implementuje bardziej wydajny standard VBE 3.0. Starsze wersje VBE zapewniają tylko trybu rzeczywistego , którego nie można używać bez znaczącego spadku wydajności w systemach operacyjnych działających w trybie chronionym . W rezultacie standard VBE prawie nigdy nie był używany do pisania sterowników kart graficznych; każdy sprzedawca musiał więc wymyślić własny protokół do komunikacji z własną kartą graficzną. Mimo to często zdarza się, że sterownik wykorzystuje przerwanie trybu rzeczywistego w celu zainicjowania trybów ekranu i uzyskania bezpośredniego dostępu do danych karty. liniowy bufor ramek , ponieważ w przeciwnym razie zadania te wymagałyby obsługi wielu setek zastrzeżonych odmian, które istnieją z karty na kartę.

W systemach EFI 1.x INT 10H i VESA BIOS Extensions (VBE) są zastępowane protokołem EFI UGA. W powszechnie używanych UEFI 2.x INT 10H i VBE są zastępowane przez UEFI GOP .

Normy

Wczesny VBE

VBE 1.0 (VS891001) został zdefiniowany w 1989 r. VBE 1.1 (VS900602) został zdefiniowany w 1990 r. VBE 1.2 (VS911022) został zdefiniowany w 1991 r. Te wersje VBE wymagają do działania trybu rzeczywistego.

VBE definiuje kilka nowych funkcji wywoływanych przez INT 10H . Numeracja funkcji zaczyna się od AX=4F00 lub (AH=4F, AL=00), dla funkcji 00h . 00h do 05h zostały zdefiniowane w VBE 1.0, 06h i 07h w 1.1 i 08h w 1.2.

Rozszerzenia VESA BIOS (rdzeń VBE) 2.0 (listopad 1994)

Ten standard zapewnia podstawową funkcjonalność rozszerzeń VESA BIOS. Pozwala aplikacjom określić możliwości karty graficznej i zapewnia możliwość ustawienia znalezionych trybów wyświetlania. VBE 2.0 dodaje kilka nowych funkcji w stosunku do poprzedniego standardu VBE 1.2, w tym liniowy do bufora ramki i bankowanie w trybie chronionym . Niektóre funkcje VBE Core 2.0 obejmują:

Liniowy dostęp do bufora ramki
Umożliwia bezpośredni dostęp do bufora ramki w trybie chronionym jako jeden duży obszar pamięci zamiast mniej wydajnych mniejszych fragmentów.
Bankowanie w trybie chronionym
Umożliwia dostęp do bufora ramki z trybu chronionego bez „przechodzenia” do trybu rzeczywistego . Jest to realizowane za pomocą nowej funkcji 0Ah .
Przerzucanie stron Super VGA
Umożliwia animację o wyższej wydajności, zapewniając płynne animacje w grach komputerowych i innych wysokowydajnych programach graficznych.
Wirtualne ekrany Super VGA
Umożliwia oprogramowaniu konfigurowanie wirtualnych ekranów wyświetlać rozdzielczości większe niż rzeczywista wyświetlana rozdzielczość i płynnie przewijać lub przesuwać większy obraz.
Tryby High Color i TrueColor
Standardowe w branży 16-bitowe i 24-bitowe tryby graficzne dla rozdzielczości od 320×200 do 1600 × 1200 .

Rozszerzenia VESA BIOS (rdzeń VBE) 3.0 (wrzesień 1998)

Nadzbiór standardu VBE 2.0. Ten standard dodaje do standardu VBE 2.0 kontrolę częstotliwości odświeżania , udogodnienia dla okularów stereo , ulepszone multi-buforowanie i inne funkcje.

Potrójne buforowanie
Umożliwia aplikacjom działającym z dużą szybkością wykonywanie wielu buforów przy mniejszym migotaniu ekranu i bez konieczności czekania na działanie kontrolera graficznego.
Sterowanie częstotliwością odświeżania za pomocą taktowania GTF
Umożliwia to aplikacjom i narzędziom systemu operacyjnego zmianę częstotliwości odświeżania w standardowy sposób we wszystkich kontrolerach graficznych VBE 3.0. Ważne dla aplikacji stereo, ponieważ po włączeniu trybu stereo efektywna częstotliwość odświeżania użytkownika jest zmniejszona o połowę.
Przerzucanie stron stereo
Podczas przeglądania aplikacji przy użyciu okularów stereo , oprogramowanie musi przewracać strony dwa razy częściej niż normalnie, ponieważ musi generować osobne obrazy dla każdego oka. Ta nowa funkcja umożliwia prawidłowe wyświetlanie oprogramowania zgodnego ze stereo.
Sprzętowa synchronizacja stereo
Umożliwia oprogramowaniu stereo określenie, czy na karcie graficznej użytkownika znajduje się złącze okularów stereo.

Dodano nowy „Punkt wejścia trybu chronionego” jako alternatywę dla funkcji 0Ah .

Funkcje VBE/akceleratora (VBE/AF) (sierpień 1996)

VBE/AF zapewnia niskopoziomowy, standardowy interfejs do typowych funkcji akceleracji dostępnych na większości sprzętu. Niektóre z funkcji zdefiniowanych w standardzie to dostęp do kursorów sprzętowych, transfery bloków bitowych (Bit Blt), duszki poza ekranem , panoramowanie sprzętowe, rysowanie i inne funkcje. Jest zdefiniowany do pracy w 32-bitowym trybie chronionym.

Specyfikacje uzupełniające

Dodatkowe specyfikacje zapewniają niezależny od urządzenia interfejs między oprogramowaniem użytkowym a sprzętem Super VGA. Numery funkcji są przydzielane przez VESA Software Standards Committee (SSC).

Rozszerzenia zarządzania energią (PM)

monitorami zgodnymi z DPMS za pośrednictwem specjalnego systemu sygnalizacyjnego, który może być używany z istniejącymi kontrolerami graficznymi i kablami monitora. Ten system sygnalizacji pozwala karcie graficznej nakazać monitorowi przejście w różne stany zarządzania energią lub oszczędzania energii, które skutecznie umożliwiają samoczynne wyłączenie monitora, gdy nie jest używany.

Rozszerzenia interfejsów płaskich (FP)

Umożliwia dostęp do specjalnych funkcji w płaskich kontrolerach panelowych.

Rozszerzenia interfejsu audio (AI)

Zapewnia standardowe usługi audio.

Obecnie (wersja 1.00) specyfikacja VBE/AI definiuje trzy klasy urządzeń: WAVE, MIDI i VOLUME. Typy urządzeń nieobjęte gwarancją:

Kontrola CDROM
, która jest objęta rozszerzeniem CD-ROM firmy Microsoft .
Procesory efektów
Ta klasa urządzeń zostanie rozszerzona w przyszłej wersji specyfikacji VBE/AI.

rozszerzenia OEM

Zapewnia standardowe wejście do rozszerzeń specyficznych dla dostawcy.

Wyświetl kanał danych (DDC)

Kanał danych wyświetlacza lub DDC to cyfrowe połączenie między wyświetlaczem komputera a kartą graficzną , które umożliwia wyświetlaczowi przekazywanie swoich specyfikacji do karty. Standard został stworzony przez VESA .

Interfejs sterowania szeregowego (SCI)

Zapewnia niezależne od sprzętu środki dla systemu operacyjnego i aplikacji do odczytu i zapisu danych przez szeregowy interfejs sterowania I²C .

Numery trybów VBE

Chociaż numer trybu jest wartością 16-bitową, opcjonalne numery trybów VBE mają szerokość 14 bitów. Bit 15 jest używany przez VGA BIOS jako flaga do czyszczenia lub zachowania pamięci wyświetlacza. Numery trybów zdefiniowane przez VBE w następujący sposób:

Fragment Oznaczający
0–8 Numery trybów. Jeśli bit 8 ma wartość 1, jest to tryb VBE zdefiniowany przez VESA.
9-10 Zarezerwowane do rozbudowy. Musi być ustawiony na 0.
11 Kontrola częstotliwości odświeżania Wybierz. Jeśli jest ustawiona na 1, użyj określonych przez użytkownika wartości CRTC dla częstotliwości odświeżania, w przeciwnym razie użyj domyślnej częstotliwości odświeżania systemu BIOS.
12–13 Zarezerwowane dla VBE/AF. Musi być ustawiony na 0.
14 Wybór liniowego/płaskiego bufora ramki. Jeśli ustawione na 1, użyj liniowego bufora ramek, w przeciwnym razie użyj bufora ramek z bankiem.
15 Zachowaj pamięć wyświetlacza Wybierz. Jeśli ustawione na 1, zachowaj pamięć wyświetlacza, w przeciwnym razie wyczyść pamięć wyświetlacza.

Począwszy od VBE/Core 2.0, VESA nie definiuje już nowych numerów trybu VESA i nie wymaga już urządzenia do implementacji starych numerów. Aby poprawnie wykryć informacje o trybie ekranu, użyj funkcji 01h — Zwróć informacje o trybie VBE .

Tryb 81FFh to specjalny tryb wideo przeznaczony do zachowania aktualnej zawartości pamięci i zapewnienia dostępu do całej pamięci wideo.

Tryby zdefiniowane przez VESA

Począwszy od standardu VBE 2.0, VESA nie definiuje nowych trybów, a stare tryby nie są już obowiązkowe. Korzystanie ze zdefiniowanych trybów należy uznać za przestarzałe: nowoczesne karty graficzne mogą, ale nie muszą, używać tych numerów trybów (nawet jeśli większość z nich korzysta ze zgodności wstecznej), a nowoczesne oprogramowanie nie powinno ich używać. Właściwym sposobem wykrywania przez oprogramowanie dostępnych trybów wyświetlania jest uzyskanie listy trybów (za pomocą funkcji „Function 00h – Return VBE Controller Information”), a następnie sprawdzanie każdego trybu (za pomocą funkcji „Function 01h: Return VBE Mode Information”), aż znajdzie tryb lub tryby, których wymaga. [ potrzebne źródło ]

Tryby graficzne 320×200 640×400 640×480 800×600 1024×768 1280×1024
Paleta 16 kolorów 258 (0102h), 106 (6Ah) 260 (0104h) 262 (0106h)
Paleta 256 kolorów 256 (0100h) 257 (0101h) 259 (0103h) 261 (0105h) 263 (0107h)
15-bitowy (5:5:5) 269 ​​(010Dh) 272 (0110h) 275 (0113h) 278 (0116h) 281 (0119h)
16-bitowy (5:6:5) 270 (010Eh) 273 (0111h) 276 (0114h) 279 (0117h) 282 (011 Ah)
24-bitowy (8:8:8) 271 (010Fh) 274 (0112h) 277 (0115h) 280 (0118h) 283 (011Bh)

Tryby 264–268 to tryby tekstowe. 264 (0108h) to 80 kolumn × 60 wierszy (80 × 60), 265 (0109h) to 132 × 25, 266 (010Ah) to 132 × 43, 267 (010Bh) to 132 × 50, a 268 (010Ch) to 132 × 60.

Tryby tekstowe Kolumny
Wydziwianie 80 132
25 265 (0109h)
43 266 (010 Ah)
50 267 (010Bh)
60 264 (0108h) 268 (010Ch)

Inne powszechnie dostępne tryby graficzne

Poniższa tabela łączy tryby zdefiniowane przez VESA (wartości zaznaczone na czarno) wraz z trybami powszechnie używanymi, które mogą nie działać na wszystkich kartach graficznych, ponieważ nie są zdefiniowane przez żaden standard (oznaczone na czerwono ) .

Tryby graficzne 320×200 640×400 640×480 800×500 800×600 896×672 1024×640 1024×768 1152 × 720 1280 × 1024 1360 × 768 1440 × 900 1600 × 1200
Paleta 16 kolorów
258 (0102h), 106 (6Ah)
260 (0104h) 262 (0106h)
Paleta 256 kolorów 256 (0100h) 257 (0101h) 367 (016Fh) 259 (0103h) 303 (012Fh) 362 (016 Ah) 261 (0105h) 357 (0165h) 263 (0107h) 352 (0160h) 284 (011Ch)
15-bitowy (5:5:5) 269 ​​(010Dh) 289 (0121h) 272 (0110h) 368 (0170h) 275 (0113h) 304 (0130h) 363 (016Bh) 278 (0116h) 358 (0166h) 281 (0119h) 353 (0161h) 285 (011Dh)
16-bitowy (5:6:5) 270 (010Eh) 290 (0122h) 273 (0111h) 369 (0171h) 276 (0114h) 305 (0131h) 364 (016Ch) 279 (0117h) 359 (0167h) 282 (011 Ah) 978 (03d2h) 354 (0162h) 286 (011Eh)
24-bitowy (8:8:8) 271 (010Fh) 291 (0123h) 274 (0112h) 370 (0172h) 277 (0115h) 306 (0132h) 365 (016Dh) 280 (0118h) 360 (0168h) 283 (011Bh) 355 (0163h) 287 (011Fh)
32-bitowy (8:8:8) 292 (0124h) 297 (0129h) 371 (0173h) 302 (012Eh) 307 (0133h) 366 (016Eh) 312 (0138h) 361 (0169h) 317 (013Dh) 980 (03d4h) 356 (0164h) 322 (0142h)

Wykrywanie trybu

Napisano kilka narzędzi do wykrywania trybów VBE dostępnych w systemie. Na ogół działają poprzez wywołanie funkcji 01h , która jest bardziej niezawodna niż zakładanie tabeli rozszerzonych trybów jako części samodokumentacji urządzenia.

  • hwinfo to narzędzie do wykrywania sprzętu używane w SuSE Linux i niektórych innych dystrybucjach Linuksa . Uruchamianie hwinfo --framebuffer zgłasza informacje graficzne, w tym tryby VESA w wierszu „Tryb”.
  • mdt to narzędzie Linux lub DOS , które wykorzystuje funkcje VESA BIOS do odczytu danych monitora.
  • Linux Real Mode Interface (LRMI) ma program vbetest , który drukuje informacje VESA.
  • SciTech Software miał niepowiązany vbetest dla DOS, którego początki sięgają 1994 roku.
  • Wersja x86 „PC” GNU GRUB 2 ma polecenie vbeinfo do drukowania dostępnych trybów wideo i vbetest do wypróbowania określonego trybu. Używają wbudowanej tabeli zamiast funkcji 01h . W przypadku innych platform, w tym x86 EFI, są one zastępowane bardziej ogólnymi plikami videoinfo i videotest .

Numery trybów wideo systemu Linux

Jądro Linuksa pozwala użytkownikowi wybrać tryb VESA podczas rozruchu, przekazując kod w pamięci do jądra. Program ładujący LILO przekazuje ten kod na podstawie parametru "vga" w swoim pliku konfiguracyjnym. Przyjmuje postać „vga=XXX”, gdzie XXX to wartość dziesiętna, lub „vga=0xHHH”, gdzie HHH to wartość szesnastkowa. Jednak parametr programu ładującego „vga=” nie akceptuje bezpośrednio numerów trybów wideo VESA; raczej numer trybu wideo systemu Linux to numer VESA plus 512 (w przypadku reprezentacji dziesiętnej) lub plus 0x200 (w przypadku reprezentacji szesnastkowej). Na przykład zdefiniowana wartość VESA 257 (0x101), reprezentująca 640x480 i 256 kolorów, odpowiada wartości trybu wideo Linuksa równej 769 (0x301).

Jak wspomniano wcześniej, standard VESA definiuje ograniczony zestaw trybów; w szczególności żaden powyżej 1280 × 1024 nie jest objęty gwarancją, a zamiast tego ich implementacja jest całkowicie opcjonalna dla producentów kart graficznych. Ponieważ sprzedawcy mogą dowolnie wykorzystywać dodatkowe wartości, oznacza to, że w poniższej tabeli tryby zaznaczone na czerwono (i wyrażone w postaci dziesiętnej) mogą nie mieć zastosowania do Twojej karty graficznej !

320×200 640×400 640×480 800×500 800×600 896×672 1024 × 640 1024 × 768 1152 × 720 1280 × 1024 1400 × 1050 1440 × 900 1600 × 1200 1920 × 1200
16 kolorów 770 0302 godz 772 0304 godz 774 0306 godz
256 kolorów 768 0300 godz 769 0301 godz 879 036 Fh 771 0303 godz 815 032 Fh 874 036 Ah 773 0305 godz 869 775 0307 godz 835 864 796 893
15-bitowy (5:5:5) 781 030 Dh 801 0321 godz 784 0310 godz 880 0370 godz 787 0313 godz 816 0330 godz 875 036Bh 790 0316 godz 870 793 0319 godz 865 797
16-bitowy (5:6:5) 782 030Eh 802 0322 godz 785 0311 godz 881 0371 godz 788 0314 godz 817 0331 godz 876 036 rozdz 791 0317 godz 871 794 031 Ah 837 866 798
24-bitowy (8:8:8) 783 030 Fh 803 0323 godz 786 0312 godz 882 0372 godz 789 0315 godz 818 0332 godz 877 036 Dh 792 0318 godz 872 795 031Bh 838 867 799
32-bitowy (8:8:8) 1 804 809 883 814 819 878 824 873 829 868 834

1: 32-bitowy to naprawdę (8:8:8:8), ale ostateczna liczba 8-bitowa to „pusty” kanał alfa. Poza tym jest równy kolorowi 24-bitowemu. Wiele procesorów graficznych używa 32-bitowego trybu kolorów zamiast trybu 24-bitowego jedynie w celu szybszego dostępu do pamięci wideo dzięki 32-bitowemu wyrównaniu pamięci.


VGA= 864 [ 352 (0160h)] pojawia się również, aby wybrać 1280 × 800 (8-bit) dla różnych wyświetlaczy laptopów. VGA= 834 [ 322 (0142h)] to 1400 × 1050

Tryby dostępne w Parallels

Emulacja VESA BIOS w maszynie wirtualnej Parallels ma inny zestaw niestandardowych trybów VESA. Od wersji 3214 LRMI vbetest ujawnia te tryby:

640×400 640×480 720×480 800×500 800×600 896×672 1024 × 640 1024 × 768 1152 × 720 1280 × 1024 1440 × 900 1600 × 1200
Paleta 256 kolorów 256 (0100h) 257 (0101h) 367 (016Fh) 364 (016Ch) 259 (0103h) 297 (0129h) 358 (0166h) 261 (0105h) 355 (0163h) 263 (0107h) 352 (0160h) 284 (011Ch)
15-bitowy (5:5:5) 272 (0110h) 275 (0113h) 278 (0116h) 281 (0119h) 285 (011Dh)
16-bitowy (5:6:5) 289 (0121h) 273 (0111h) 368 (0170h) 365 (016Dh) 276 (0114h) 298 (012 Ah) 359 (0167h) 279 (0117h) 356 (0164h) 282 (011 Ah) 353 (0161h) 286 (011Eh)
24-bitowy (8:8:8) 290 (0122h) 274 (0112h) 369 (0171h) 366 (016Eh) 277 (0115h) 299 (012Bh) 360 (0168h) 280 (0118h) 357 (0165h) 283 (011Bh) 354 (0162h) 287 (011Fh)

Zobacz też

Dalsza lektura

Linki zewnętrzne