INT 10H - INT 10H
![]() | Tento článek obsahuje seznam obecných Reference, ale zůstává z velké části neověřený, protože postrádá dostatečné odpovídající vložené citace.Červen 2015) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
INT 10h, INT 10H nebo INT 16 je zkratka pro Přerušení hovoru BIOS 10hex, 17. vektor přerušení v x86 - počítačový systém na bázi. The BIOS obvykle nastavuje a skutečný režim obsluha přerušení v tomto vektoru, který poskytuje video služby. Mezi takové služby patří nastavení režimu videa, výstup znaků a řetězců a grafická primitiva (čtení a zápis pixelů v grafickém režimu).
Chcete-li použít toto volání, načtěte AH s číslem požadované podfunkce, načtěte další požadované parametry do jiných registrů a proveďte hovor. INT 10 hodin je poměrně pomalý, takže mnoho programů obchází tuto rutinu systému BIOS a přistupuje přímo k hardwaru displeje. Nastavení režimu videa, které se provádí zřídka, lze provést pomocí systému BIOS, zatímco kreslení grafiky na obrazovku ve hře je třeba provést rychle, takže přímý přístup k video RAM je vhodnější než volání systému BIOS pro každý pixel .
Navíc v moderním systému x86 lze hovory systému BIOS provádět pouze v systému Skutečný režim nebo Virtuální režim 8086. v8086 není možnost v systému Windows Dlouhý režim. To znamená, že moderní operační systém, který pracuje v Chráněný režim (32 bitů) nebo Dlouhý režim (64 bitů), bude muset přepnout do reálného režimu a zpět, aby mohl volat BIOS - což je nesmírně nákladná operace. Ačkoli většina moderních systémů obvykle používá ovladače zařízení, které přímo nastavují režim videa, není možné, aby systémy pro fanoušky měly ovladač zařízení pro každou grafickou kartu - problém, který trápí i starší nepodporované systémy, jako je Windows 98. Takové systémy místo toho mohou přejít do reálného režimu, aby přeply režim videa, a poté přímo táhnout do framebufferu.
v EFI Systémy 1.x, INT 10H a Rozšíření VESA BIOS (VBE) jsou nahrazeny protokolem EFI UGA. V široce používaném UEFI Systémy 2.x, INT 10H a VBE jsou nahrazeny UEFI GOP.[1][2]
Seznam podporovaných funkcí
Seznam je neúplný; použijte seznam Ralfa Browna pro komplexní informace. Přidejte prosím pouze IBM / PC nebo jiné běžné standardní funkce. 00h až 0fh jsou CGA.
Funkce | Kód funkce | Parametry | Vrátit se |
---|---|---|---|
Nastavte režim videa | AH = 00h | AL = režim videa | AL = příznak režimu videa / bajt režimu ovladače CRT |
Nastavit tvar kurzoru v textovém režimu | AH = 01h | CH = Skenování začátku řádku, CL = Skenování konce řádku Normálně má buňka znaků 8 řádků skenování, 0-7. CX = 0607h je tedy normální kurzor podtržení, CX = 0007h je kurzor celého bloku. Pokud je nastaven bit 5 CH, často to znamená „Skrýt kurzor“. CX = 2607h je tedy neviditelný kurzor. Některé grafické karty mají 16 řádků skenování, 00h-0Fh. Některé grafické karty nepoužívají bit 5 CH. S těmito proveďte Start> Konec (např. CX = 0706h) | |
Nastavte pozici kurzoru | AH = 02h | BH = číslo stránky, DH = řádek, DL = sloupec | |
Získejte polohu a tvar kurzoru | AH = 03h | BH = číslo stránky | AX = 0, CH = začátek řádku skenování, CL = konec řádku skenování, DH = řádek, DL = sloupec |
Číst světelné pero pozice (nefunguje na VGA systémy) | AH = 04h | AH = stav (0 = nespuštěno, 1 = spuštěno), BX = pixel X, CH = pixel Y, CX = počet řádků pixelů pro režimy 0Fh-10h, DH = znak Y, DL = znak X | |
Vyberte aktivní stránku zobrazení | AH = 05h | AL = číslo stránky | |
Posuňte okno nahoru | AH = 06h | AL = řádky k posouvání (0 = jasné, jsou použity CH, CL, DH, DL), BH = Barva pozadí a Barva popředí. BH = 43 h, znamená, že barva pozadí je červená a barva popředí je azurová Atributy barev systému BIOS CH = číslo horního řádku, CL = číslo levého sloupce, DH = číslo spodního řádku, DL = číslo pravého sloupce | |
Posuňte okno dolů | AH = 07h | jako výše | |
Přečíst znak a atribut na pozici kurzoru | AH = 08h | BH = číslo stránky | AH = Barva, AL = Znak |
Napište znak a atribut na pozici kurzoru | AH = 09h | AL = Znak, BH = Číslo stránky, BL = Barva, CX = Kolikrát se má tisknout znak | |
Znak zapisujte pouze na pozici kurzoru | AH = 0 Ah | AL = Znak, BH = Číslo stránky, CX = Kolikrát se má tisknout znak | |
Nastavit barvu pozadí / ohraničení | AH = 0Bh, BH = 00h | BL = Barva pozadí / ohraničení (ohraničení pouze v textových režimech) | |
Nastavit paletu | AH = 0Bh, BH = 01h | BL = ID palety (platilo pouze v CGA, ale novější karty to podporují v mnoha nebo všech grafických režimech) | |
Napište grafický pixel | AH = 0Ch | AL = Barva, BH = číslo stránky, CX = x, DX = y | |
Přečtěte si grafický pixel | AH = 0Dh | BH = číslo stránky, CX = x, DX = y | AL = Barva |
Teletypový výstup | AH = 0Eh | AL = Znak, BH = Číslo stránky, BL = Barva (pouze v grafickém režimu) | |
Získejte aktuální režim videa | AH = 0Fh | AL = režim videa, AH = počet sloupců znaků, BH = aktivní stránka | |
Změňte znakovou sadu textového režimu[3] | AH = 11 hodin | BH = počet bajtů na znak, CX = počet znaků ke změně, DX = počáteční znak ke změně, ES: BP = offset dat znaků | |
Napište řetězec (EGA +, význam PC AT minimální) | AH = 13 hodin | AL = režim zápisu, BH = číslo stránky, BL = Barva, CX = počet znaků v řetězci, DH = řádek, DL = sloupec, ES: BP = posun řetězce | |
nastavit režimy videa vyhovující VESA, počínaje 640 x 480 a dosahujícími 1280 x 1024 s 256 barvami | AX = 4f02h | BX = video režim, pokud Podepsat bit (bit 15) nastaven, video paměť nebude obnovena | |
jiný VESA VBE příkazy | AX = 4F00h až 4F15h | Viz specifikace | Viz specifikace |
Viz také
Reference
- ^ „Co je efifb? - Dokumentace k jádru Linuxu“. www.kernel.org. Citováno 2020-11-24.
- ^ „Co je vesafb? - Dokumentace k jádru Linuxu“. www.kernel.org. Citováno 2020-11-24.
- ^ "Rutina změny písma". Software navždy mladý. Citováno 8. března, 2020.