| Zeile 1: | Zeile 1: | ||
| − | + | Die VESA BIOS Extensions (kurz: VBE) sind ein Standard der [[VESA]]. Er vereinheitlicht den Zugriff auf eine Grafikkarte, bietet dabei allerdings deutlich mehr Möglichkeiten als [[VGA]]. Der Standard wird von nahezu allen Grafikkarten in Version 2.0 oder der letzten Version, 3.0, unterstützt. '''Daher bezieht sich dieser Artikel, wenn nicht anders vermerkt, auf Version 2.0.''' | |
| − | Die VESA BIOS Extensions (kurz: VBE) sind ein Standard der [[VESA]]. Er vereinheitlicht den Zugriff auf eine Grafikkarte, bietet dabei allerdings deutlich mehr Möglichkeiten als [[VGA]]. Der Standard wird von nahezu allen Grafikkarten in Version 2.0 oder der letzten Version, 3.0, unterstützt. | ||
== VBE Funktionen == | == VBE Funktionen == | ||
| Zeile 182: | Zeile 181: | ||
* AX = 4F01h | * AX = 4F01h | ||
* CX = Nummer des Grafikmodus | * CX = Nummer des Grafikmodus | ||
| − | * ES:DI = Zeiger auf freien Speicher für den ModeInfoBlock | + | * ES:DI = Zeiger auf freien Speicher für den ModeInfoBlock (256 Bytes) |
| + | So kann man die Nummer desjenigen Grafikmodus herausfinden, den man benötigt. | ||
| − | + | {| {{prettytable}} | |
| + | !Offset | ||
| + | !Eintrag | ||
| + | !Größe | ||
| + | !Beschreibung | ||
| + | |- bgcolor=chartreuse | ||
| + | |0 | ||
| + | |ModeAttributes | ||
| + | |Word | ||
| + | | | ||
| + | *Bit 7: 0=kein LFB, 1=LFB verfügbar | ||
| + | *Bit 6: 0=kein VGA kompatibles Speichermodell, 1=VGA kompatibles Speichermodell verfügbar (=paged) | ||
| + | *Bit 5: 0=VGA kompatibler Modues, 1= nicht VGA kompatibel | ||
| + | *Bit 4: 0=Textmodus, 1=Grafikmodus | ||
| + | *Bit 3: 0=Monochrom, 1=farbig | ||
| + | *Bit 2: 0=TTY Ausgabe Funktionen werden nicht unterstuützt, 1=werden unterstützt | ||
| + | *Bit 1: Reserved (1) | ||
| + | *Bit 0: 0=Modus wird nicht unterstützt, 1=wird unterstützt | ||
| + | |- | ||
| + | |2 | ||
| + | |WinAAttributes | ||
| + | |Byte | ||
| + | | | ||
| + | *Bit 2: 0=Window nicht schreibbar, 1=Window schreibbar | ||
| + | *Bit 1: 0=Window lesbar, 1=nicht lesbar | ||
| + | *Bit 0: 0=Reallozierung der Windows nicht möglich, 1=ist möglich | ||
| + | |- | ||
| + | |3 | ||
| + | |WinBAttributes | ||
| + | |Byte | ||
| + | |''siehe WinAAttributes'' | ||
| + | |- | ||
| + | |4 | ||
| + | |WinGranularity | ||
| + | |Word | ||
| + | |in KB | ||
| + | |- | ||
| + | |6 | ||
| + | |WinSize | ||
| + | |Word | ||
| + | |Window Größe in KB | ||
| + | |- | ||
| + | |8 | ||
| + | |WinASegment | ||
| + | |Word | ||
| + | |WindowA Start Segment | ||
| + | |- | ||
| + | |10 | ||
| + | |WinBSegment | ||
| + | |Word | ||
| + | |WindowB Start Segment | ||
| + | |- | ||
| + | |12 | ||
| + | |WinFuncPtr | ||
| + | |Dword | ||
| + | |Zeiger auf die "Window Function" (segment:offset) | ||
| + | |- bgcolor=crimson | ||
| + | |16 | ||
| + | |BytesPerScanLine | ||
| + | |Word | ||
| + | | | ||
| + | |- bgcolor=crimson | ||
| + | |18 | ||
| + | |XResolution | ||
| + | |Word | ||
| + | |Horizontale Auflösung | ||
| + | |- bgcolor=crimson | ||
| + | |20 | ||
| + | |YResolution | ||
| + | |Word | ||
| + | |Vertikale Auflösung | ||
| + | |- | ||
| + | |22 | ||
| + | |XCharSize | ||
| + | |Byte | ||
| + | |Breite eines Buchstabens (Textmodus) | ||
| + | |- | ||
| + | |23 | ||
| + | |YCharSize | ||
| + | |Byte | ||
| + | |Höhe eines Buchstabens (Textmodues) | ||
| + | |- | ||
| + | |24 | ||
| + | |NumberOfPlanes | ||
| + | |Byte | ||
| + | | | ||
| + | |- bgcolor=crimson | ||
| + | |25 | ||
| + | |BitsPerPixel | ||
| + | |Byte | ||
| + | |Bits pro Pixel (=Farbtiefe) | ||
| + | |- | ||
| + | |26 | ||
| + | |NumberOfBanks | ||
| + | |Byte | ||
| + | | | ||
| + | |- bgcolor=crimson | ||
| + | |27 | ||
| + | |Speichermodell | ||
| + | |Byte | ||
| + | | | ||
| + | *00h = Text mode | ||
| + | *01h = CGA graphics | ||
| + | *02h = Hercules graphics | ||
| + | *03h = Planar | ||
| + | *04h = Packed pixel | ||
| + | *05h = Non-chain 4, 256 color | ||
| + | *06h = Direct color | ||
| + | *07h = YUV | ||
| + | |- | ||
| + | |28 | ||
| + | |BankSize | ||
| + | |Byte | ||
| + | |in KB | ||
| + | |- | ||
| + | |29 | ||
| + | |NumberOfImagePages | ||
| + | |Byte | ||
| + | |Anzahl der Images minus Eins | ||
| + | |- | ||
| + | |30 | ||
| + | |Reserviert | ||
| + | |Byte | ||
| + | |=1 | ||
| + | |- bgcolor=lightskyblue | ||
| + | |31 | ||
| + | |RedMaskSize | ||
| + | |Byte | ||
| + | |Anzahl der Bits, die den roten Farbanteil angeben (Speichermodell: direct color) | ||
| + | |- bgcolor=lightskyblue | ||
| + | |32 | ||
| + | |RedFieldPosition | ||
| + | |Byte | ||
| + | |Position des ersten Bits ([[LSB]]), das den roten Farbanteil angibt | ||
| + | |- bgcolor=lightskyblue | ||
| + | |33 | ||
| + | |GreenMaskSize | ||
| + | |Byte | ||
| + | | | ||
| + | |- bgcolor=lightskyblue | ||
| + | |34 | ||
| + | |GreenFieldPosition | ||
| + | |Byte | ||
| + | | | ||
| + | |- bgcolor=lightskyblue | ||
| + | |35 | ||
| + | |BlueMaskSize | ||
| + | |Byte | ||
| + | | | ||
| + | |- bgcolor=lightskyblue | ||
| + | |36 | ||
| + | |BlueFieldPosition | ||
| + | |Byte | ||
| + | | | ||
| + | |- bgcolor=lightskyblue | ||
| + | |37 | ||
| + | |RsvdMaskSize | ||
| + | |Byte | ||
| + | | | ||
| + | |- | ||
| + | |38 | ||
| + | |DirectColorModeInfo | ||
| + | |Byte | ||
| + | | | ||
| + | *Bit 1: 0=Alle reservierten Bits in der Farbmaske dürfen NICHT benutzt werden, 1=dürfen benutzt werden | ||
| + | *Bit 0: 0=Color ramp is fixed, 1=programmable (???) | ||
| + | |- bgcolor=chartreuse | ||
| + | |39 | ||
| + | |PhysBasePtr | ||
| + | |DWord | ||
| + | |Physikalische Adresse des LFB | ||
| + | |- | ||
| + | |43 | ||
| + | |OffScreenMemOffset | ||
| + | |DWord | ||
| + | |Zeiger auf den Anfang des Teil des Grafikspeichers, der nicht auf dem Bildschirm zu sehen ist | ||
| + | |- | ||
| + | |47 | ||
| + | |OffScreenMemSize | ||
| + | |Word | ||
| + | |in KB | ||
| + | |- | ||
| + | |49 | ||
| + | |Reserviert | ||
| + | |206 Bytes | ||
| + | | | ||
| + | |} | ||
| − | + | Von diesen Einträgen sind einige besonders wichtig: | |
| + | *In <font color=chartreuse>grün</font>: Diese Einträge sind für die Verwendung des [[LFB]] wichtig. | ||
| + | *In <font color=crimson>rot</font>: Diese Einträge sind zum Adressieren/Zeichnen eines Pixels wichtig. | ||
| + | *In <font color=lightskyblue>blau</font>: Diese Einträge zeigen an, wie die Farbe eines Pixels anzugeben ist. Dies ist in der Regel eine [[RGB]]-Angabe. Dafür muss das Speichermodell (27) ''direct color'' sein (=6h). | ||
=== In einen Grafikmodus umschalten: 4F02h === | === In einen Grafikmodus umschalten: 4F02h === | ||