BIOS A START POČÍTAČE
BIOS představuje základní software (někdy je též nazýván firmware) počítače. Je zde uložen kód nutný pro nabootování, software pro nastavování vestavěných periferií jako HDD, FDD, sériové a paralelní porty atd. a často i pro podporu power-managementu, který umožňuje snížit příkon počítače v okamžicích, kdy není zatížen (tato funkce je zvlášť výhodná u notebooků). Součástí BIOSu jsou i rutiny pro obsluhu základních periferií.
Většina BIOSu je výrobci základní desky dodávána ve formě tzv. Flash, což znamená, že lze programově BIOS měnit. Výrobce základní desky pak dodává nové verze BIOSu, čím je v jistých mezích umožněn průběžný upgrade. Především z důvodu možné virové infikace je zápis do těchto flash pamětí chráněn jumperem na základní desce. U některých základních desek je dokonce zápis do těch 8kB BIOSu nutných k nabootování chráněn zvláštní propojkou, aby i v případě neúspěšné změny BIOSu byl počítač ještě schopen nabootovat a pokus o upgrade zopakovat.
BIOS musí plnit následující funkce:
Aby se činnost Biosu a počítače vůbec spustila musí být BIOS umístěn do pevné paměti počítače v oblasti v níž mikroprocesor začíná svou činnost po přivedení napájení. Po zapnutí provádí BIOS šest základních kroků:
Tato paměť nahrazuje konfigurační přepínače u starších modelů PC a ukládá se do ní základní konfigurace počítače. Jelikož je spolu s obvodem reálných hodin zálohovaná z baterie, je tudíž nezávislá na napájení počítače. Je dostupná pomocí svého řadiče jako dvojice portů s adresami 70h (zde se zapisuje adresa) a 71h (odtud se čtou nebo zapisují data) a má obsah 64B. Pokud se tedy provádí zápis nebo čtení musí se nejprve poslat adresa paměťové buňky na port 70h a pak se zapíší nebo čtou data na portu 71h.
Provádí se jako následující krok po startu počítače. Tento test ověřuje provozuschopnost celého systému. Nejdřív se kontroluje mikroprocesor, dále ROM Biosu, následuje kontrola prvních 64kB paměti (tu pak používá jako pracovní oblast), kontroluje funkci systémového řadiče, řadiče paměti a řadiče I/O obvodů. Pokračuje se kontrolou ostatních periferních obvodů na základní desce a pak desku grafického adaptéru. Po dobu těchto testů neprovádí žádné hlášení. Pokud se vyskytne chyba, je o ní uživatel informování pípnutím. Následuje zobrazení hlášení o verzi Biosu a autorských právech. Pak testuje a zjišťuje velikost paměti, kterou pak zobrazí v hlášení. Testují se jednotlivé periférie připojené k počítači v tomto pořadí: Klávesnice, sériové porty, paralelní porty, řadič FD a HD. Pokud odhalí chybu při těchto testech, zobrazí odpovídající hlášení.
Award BIOS, se ohlašuje velmi stručně. Jedno dlouhé pípnutí následované dvěma krátkými informuje pouze o chybě grafické karty, která nemůže na monitoru zobrazit chybové hlášení. Dvě krátká písknutí znamenají drobnou chybu, která však nemá vliv na spuštění operačního systému (stiskem F1 lze pokračovat v natažení OS). Jedno písknutí znamená, že je vše v pořádku. A počítač je připraven k práci.
AMI BIOS je při svém pípání sdělnější (vydává různý počet tónů stejné délky). Jejich význam udává následující tabulka:
Počet tónů |
Význam |
Jeden tón |
Chyba obnovování paměti RAM (Refresh) |
Dva tóny |
Chyba parity paměti RAM |
Tři tóny |
Chyba základní paměti RAM o kapacitě 64KB |
Čtyři tóny |
Vadný časovací obvod |
Pět tónů |
Chyba procesoru |
Šest tónů |
Adresové vedení A20 nepracuje správně |
Sedm tónů |
Chyba přerušení, výjimečný stav procesoru |
Osm tónů |
Vadná paměť grafické karty |
Devět tónů |
Nesprávný kontrolní součet paměti ROM |
Deset tónů |
Vadná paměť CMOS (Setup) |
Jedenáct tónů |
Vadná paměť cache |
Po POSTu následuje inicializace periferních zařízení. Samotný inicializační program bývá však umístěn v Biosu těchto přídavných desek. Instalace rutin Biosu je následujícím krokem při startu. Bios zde provádí inicializaci svých obslužných rutin. To se provádí tak, že do tabulky vektorů přerušení umístí adresy obslužných rutin. Po instalaci rutin ROM Biosu jsou prohledány připojené desky zda neobsahují vlastní Bios a jestli ano předá mu řízení, aby mohl provést inicializaci a přesměrovat vektory přerušení (jako např. INT 10h, INT 13h). Posledním krokem je volání přerušení INT 19h, které natáhne a spustí zaváděč operačního systému z diskety nebo pevného disku. A to tak že prohledává všechny nainstalované disky. Nenajde-li ho, pokusí se spustit GW BASIC a pokud se to nepodaří, vypíše chybové hlášení a zastaví procesor. BIOS též předává operačnímu systému informace o tom, který proces žádá o zpřístupnění nebo uvolnění některého zařízení.
Toto přerušení je používáno k obsluze požadavků VIDEO. Obsahuje řadu různých funkcí, jejíž volání se provádí přiřazením čísla funkce do registru AH.Tyto služby jsou prováděny jak ROM Biosem tak i Biosem na video kartě.
V registru AX vrací hodnotu informující o konfiguraci hardwaru systému. Tato hodnota je shodná s hodnotou v datové oblasti Biosu.
V registru AX vrací počet kilobajtů základní paměti počítače.
Toto přerušení umožňuje přímý přístup k pevnému disku nebo k disketové jednotce. Pro uživatele se však doporučuje přístup přes služby operačního systému. Volání těchto služeb se provádí uložením specifického čísla služby do registru AH a skokem na přerušení INT 13h. Pokud je disková operace ukončená chybou, je nastaven příznak CF a v registru AH je vracen chybový kód, určující jakým způsobem byla operace ukončena. Pokud chyba nenastala a registr AH není použit při výstupu je vně 00H.
Toto přerušení je využíváno pro obsluhu sériových portů. Dokáže obsloužit čtyři sériové porty, jejichž bázová adresa je uložena a nastavena na adresách 400h-407h datové oblasti Biosu.
Přerušení vytváří uživatelské rozhraní pro obsluhu klávesnice, přitom stav klávesnice je čten nezávisle na běžící úloze pomocí přerušení INT 09h, které se generuje hardwarově.
Obsluha tohoto přerušení umožňuje přístup k paralelnímu rozhraní CENTRONICS, jehož bázové adresy jsou uloženy v datové oblasti Biosu počínaje adresou 408h. Bios může obsloužit až čtyři tyto porty, ale jen dva mají přidělené přerušení. Na adrese 478h datové oblasti Biosu je uložena hodnota TIME OUTu tiskárny.
Díky tomuto přerušení máme přístup k systémovým hodinám. Bios pracuje s takzvaným čítačem taktů, což jsou intervaly po 55 ms po startu počítače nebo RESETU. A zároveň je umožněn přístup k hodinám reálného času, což je samostatný obvod na základní desce, který je zálohován baterií, díky tomu je pak nezávislý na napájení a na činnosti mikroprocesoru.
Číslo přerušení |
Funkce |
00 |
Interní HW-dělení nulou |
01 |
Interní HW-krokování |
02 |
Externí HW-NMI |
03 |
Interní HW-trasování |
04 |
Interní HW-přetečení |
05 |
BIOS-print screen |
06 |
Interní HW-neznámá instrukce |
07 |
Interní HW-NPU nenalezeno |
08 |
Interní HW-časovač (timer) |
09 |
IRQ1-klávesnice |
0A |
IRQ2/IRQ9-videoadaptér |
0B |
IRQ3-Com2 |
0C |
IRQ4-Com1 |
0D |
IRQ5-LPT2 |
0E |
IRQ6-FDD |
0F |
IRQ7-LPT1 |
10 |
BIOS-služby videoadaptéru |
11 |
BIOS-konfigurace systému |
12 |
BIOS-velikost paměti |
13 |
BIOS-služby HDD |
14 |
BIOS-služby AUX/USART |
15 |
BIOS-doplňkové služby |
16 |
BIOS-rozšířené služby klávesnice |
17 |
BIOS-obsluha tiskárny |
18 |
ROM BASIC-start |
19 |
ROM BIOS-zavedení systému |
1A |
BIOS-obsluha hodin (RTC) |
1B |
BIOS-Ctrl+Break |
1C |
ROM BIOS-systémové hodiny |
1D |
DATA-tabulka inicializace videoadaptéru |
1E |
DATA-tabulka disketových mechanik |
1F |
DATA-Tabulka grafických znaků |
20 |
DOS-ukončení programu |
21 |
DOS-služby DOS |
22 |
DOS-Ukončovací adresa procesu |
23 |
DOS-Ctrl+C výstup |
24 |
DOS-obsluha neopravitelných chyb I/O |
25 |
DOS-absolutní čtení disku |
26 |
DOS-absolutní zápis na disk |
27 |
DOS-TSR výstup |
28 |
Interní BIOS-klávesnice |
29 |
Interní BIOS-videoadaptér |
2A |
NET-služby NETBIOS (MS) |
2B |
Interní DOS |
2C |
Interní DOS |
2D |
Interní DOS |
2E |
Interní DOS |
2F |
TSR-PRINT(multiplex) |
30 |
DATA-CP/M kompatibilita |
31 |
TSR-DPMI služby pro ovládač paměti v chráněném režimu |
32 |
Rezervováno |
33 |
TSR-MS MOUSE NPU |
34 |
NPU D8h-emulace NPU |
35 |
NPU D9h-emulace NPU |
36 |
NPU DAh-emulace NPU |
37 |
NPU DBh-emulace NPU |
38 |
NPU DCh-emulace NPU |
39 |
NPU DDh-emulace NPU |
3A |
NPU DEh-emulace NPU |
3B |
NPU DFh-emulace NPU |
3C |
NPU-emulace NPU |
3D |
NPU-emulace NPU |
3E |
NPU-emulace NPU |
3F |
MS DLL-DLL manažer paměti |
40 |
TSR-Relokace FDD na HDD |
41 |
DATA-Tabulka HDD parametrů |
42 |
TSR-relokace služeb videoadaptéru |
43 |
DATA-EGA+uživatelská tabulka znaků |
44 |
DATA-EGA+uživatelská tabulka znaků |
45 |
HW-rezervováno |
46 |
BIOS-tabulka parametrů druhého HDD |
47 |
HW-rezervováno |
48 |
HW-rezervováno |
49 |
HW-rezervováno |
4A |
BIOS-budík |
4B |
VDS-virtuální DMA systém |
4C-4F |
HW-rezervováno |
50-5A |
Definováno uživatelem |
5B |
MS NET-NTLI |
5C |
NET-BIOS |
5D-5F |
Definováno uživatelem |
60-66 |
Uživatelská obsluha |
67 |
LIM/EMS-základní služby |
68 |
Definováno uživatelem |
69 |
DECNET-Základní služby |
6A |
DECNET-rozšířené služby |
6B |
NOVELL-základní služby |
6C |
DOS 3,2-RTC |
6D |
Interní VGABIOS |
6E |
DECNET-DOS interface |
6F |
Definováno uživatelem |
70 |
IRQ8-RTC |
71 |
IRQ9-LAN adaptér 1 |
72 |
IRQ10-rezervováno |
73 |
IRQ11-rezervováno |
74 |
IRQ12-rezervováno |
75 |
IRQ13-chyba 80287 |
76 |
IRQ14-HDD |
77 |
IRQ15-rezervováno |
78 |
Uživatelská obsluha |
79 |
NOVELL-rozšířené funkce |
7B-7F |
Uživatelská obsluha |
80-F0 |
ROM BASIC |
F1-FD |
Definováno uživatelem |
FE |
Interní HW-rezervováno |
FF |
Interní HW-rezervováno |
Na dnešním trhu existuje velké množství základních desek (motherboardů) a jejich výrobců. Chcete-li si upgradovat jejich BIOS nebo hledáte k nim manuál, je nutné znát jejich výrobce. Zjistit výrobce však nebývá vždy jednoduché.
Máte-li Award BIOS, můžete výrobce vyčíst z kódu BIOS, který se objeví při zapnutí počítače. Tak např. to bude 401A0-0202. A právě dva znaky před pomlčkou udávají výrobce (v našem případě je výrobcem desky Asustek). Kódy jednotlivých výrobců udává následující tabulka:
Kód | Výrobce desky | Kód | Výrobce desky | |
A0 | Asustek | E1 | ECS (Elitegroup) | |
A1 | Abit (Silicon Star) | F0 | FIC Tchaj-wan | |
A2 | Atrend | G0 | Giga Byte | |
A3 | ASI | I3 | Iwill | |
AB | AOpen | J3 | J. Bond | |
C3 | Chaintech | N5 | NEC | |
C9 | Computrend | O0 | Ocean | |
D0 | Dataexpert | S2 | Soyo | |
D2 | Digital Equipment | V6 | Vobis |
Máte-li AMI BIOS, poznáte výrobce podle čtyřmístného kódu ve třetí skupině čísel. Tak např. deska s číslem 51-0102-1128-00111111-101094-AMS 123-P je vyrobena firmou Chaintech. Kódy jednotlivých výrobců opět udává následující tabulka:
Kód | Výrobce desky | Kód | Výrobce desky | |
1102 | Soyo | 1218 | Elite | |
1106 | Dynasty | 1292 | Asustek | |
1112 | Aquarius | 1353 | J. Bond | |
1114 | Iwill | 1472 | Datacom | |
1128 | Chaintech | 1628 | Digital Equipment | |
1131 | Elitegroup | 1655 | Kongston | |
1135 | Acer | 1770 | Acer | |
1199 | Giga Byte | 1868 | Soyo |