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 ivbetest
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 plikamivideoinfo
ivideotest
.
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
- VESA Super VGA BIOS Extension 1.0 (standard nr VS891001) 1 października 1989 r.
- Rozszerzenie VESA BIOS 1.2
- Rozszerzenie VESA BIOS 2.0
- Rozszerzenie VESA BIOS 3.0
- Dr Dobb bada specyfikację VESA VBE 2.0
- Jak korzystać z Super VGA (VESA 1.x nieliniowy)
- VESA BIOS Extension Serial Control Interface Standard w Wayback Machine (archiwum 2005-12-21)
- VESA BIOS Extension / Accelerator Functions (VBE / AF) w Wayback Machine (archiwum 2008-12-09)
- Interfejs VESA BIOS
Linki zewnętrzne
- Notatki programisty SuperVGA/VESA
- Lista chipsetów implementujących VESA VBE 2.0/3.0
- Przechwyć informacje o trybie VBE pakiet źródłowy vbespy
- Jak korzystać z pakietu źródłowego vbespy
- VBETOOL - (w międzyczasie zarchiwizowana) aplikacja do wykonywania kodu BIOS karty graficznej