Mód 13h
Jako mód 13h (též režim 13h, anglicky mode 13h) se označuje grafický režim karet Video Graphics Array (VGA) na osobních počítačích IBM PC kompatibilní. Standard VGA přišel v roce 1987 a mód 13h (13 hexadecimálně) byl jedním z nich. Název je od hodnoty parametru registru AX, kterým se (softwarovým přerušením 10h) nastavoval.
Vlastnosti
- šířka: 320 pixelů
- výška: 200 pixelů
- poměr stran: 16:10
- počet barev: 256
Paleta
Mód 13h byl vůbec prvním grafickým režimem na PC, který měl 256 barev (barevných atributů). Každý z těchto atributů mohl mít přiřazen svůj odstín (složky RGB, dohromady nazývané paleta). Složky byly 6bitové (hodnoty 0 až 63 pro každou z R,G,B), bylo tedy možno vybírat z 218 = 262 144 odstínů. Nastavením nových odstínů pro daný barevný atribut se automaticky změnily všechny příslušné pixely na obrazovce (což samo o sobě mohlo být využito pro zdánlivé animace, ztmavování/zesvětlování, barevné přechody apod.). Podobně jako u jiných režimů, změna palety byla tak rychlá, že šla provést v intervalu návratu paprsku (při vykreslování obrazu na CRT monitoru).
Pro 256barevné režimy vznikly i některé standardy grafických formátů: GIF, PCX, PNG, TGA.
Mód 13h dokázal (ovšem ne příliš kvalitně) simulovat high colorové režimy – buď 6bitové (tj. 64stupňový) grayscale nebo 3:3:2 (pseudo)high color. První způsob dokázal grafiku s počtem barev nad 256 namapovat do pole 64 ze svých 256 barevných atributů, s odstíny odpovídající stupním šedi (přičemž ostatní atributy mohly být využity na jakékoli jiné barvy) – ovšem za cenu ztráty barevné informace.
Druhý subrežim (3:3:2 high color) u každého barevného atributu (respektive jeho bitové reprezentace) rozdělil následujícím způsobem: z jeho 8 bitů připadly nejvyšší 3 bity na 8 intenzit modré složky, prostřední 3 bity na 8 intenzit zelené složky, a nejnižší 2 bity na 4 intenzity červené složky, z nichž všech se skládala výsledná barva. Vzhledem k tomu, že lidské oko je schopno rozlišit mnohem více odstínů (desítky až stovky tisíc), nepůsobil (alespoň subjektivně) tento mód dokonale a nenašel velkého využití.
Linear Frame Buffering
Možná ještě větší změnou u módu 13h bylo představení LFB (linear frame buffer) – videopaměťového buferu s lineárním přístupem. Videopaměť dosavadních grafických režimů byla přístupná netriviálním přepínáním mezi čtyřmi paměťovými buffery (nazývanými „mapy“ popř. „banky“); v případě módu 13h bylo všech 320×200, tj. 64 000 pixelů/bajtů (1 pixel = 1 bajt) přístupno adresováním přes 16bitový ofset (segment začínal na 0A000h). Adresa libovolného pixelu na souřadnicích (x, y) byl tedy . To umožňovalo práci s videopamětí coby s lineárním dvojrozměrným polem s výhodami, které to přinášelo (snadno šlo aplikovat různé filtry, konvoluce, rozostření, detekci hran, atd.). Zejména v jazyce symbolických adres šlo dosáhnout díky tomuto zjednodušení značného zrychlení. Tehdejší PC (i80386, 486SX/DX, Pentium, …) zvládaly v tomto režimu zobrazovat 3D grafiku v přijatelných rychlostech a fps.
Éra módu 13h
Mód 13h se stal velice populárním grafickým režimem pro PC a MS-DOS pro grafické 16bitové a později 32bitové aplikace a hry a to po následujících dekádu. Vzhledem k nižšímu rozlišení nebyl vhodný pro aplikace (s výjimkou grafických).
Teprve v druhé polovině 90. let začaly převládat 256barevné SVGA režimy a barevná rozlišení high color a true color, stejně jako MS-DOS ustupoval Microsoft Windows 95. Speciální kategorií programů, které si oblíbily tento režim, byly počítačové hry s bitmapovou grafikou, ve „folkloru“ pak amatérské hry, fanouškovské magazíny a demoscéna. Z ostatních platforem v průběhu času ty 8bitové přestávaly PC konkurovat výkonnostně. Naopak, Amiga měla již v době uvedením VGA módu 13h své grafické režimy s 12bitovou barevnou hloubkou (4096 barev, de facto 4:4:4 high color).
Další generace grafických karet se standardem VESA zajistila zpětnou kompatibilitu s režimy VGA; stejně tak zůstala u lineárního videopaměťového bufferingu. „Neoficiálně“ šlo vlastnosti režimu 13h mírně upravit (tzv. tweakovat) a získat tak řadu dalších odvozených rozlišení – populární z nich bylo rozlišení 256×256/256 barev ve kterém v 16bitovém indexu do videopaměti jeho vyšší bajt přímo představoval souřadnici y a spodní bajt x.