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ů:

  1. nastaví konfiguraci počítače z CMOS paměti
  2. provede autonomní test počítače
  3. inicializace periférie
  4. nainstaluje obslužné rutiny přerušení Biosu
  5. vyhledá svoje rozšíření na přídavných deskách a provádí instalaci těchto rozšiřujících rutin
  6. spustí zavádění operačního systému.

Nastavení konfigurace z CMOS

   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.

Autonomní test systému (POST)

   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í.

Pípání při testování systému

   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

Následující kroky

   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í.

Služby Biosu

Služby video-INT 10h

   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ě.

Hardwarová konfigurace-INT 11h

   V registru AX vrací hodnotu informující o konfiguraci hardwaru systému. Tato hodnota je shodná s hodnotou v datové oblasti Biosu.

Velikost použitelné paměti-INT 10h

   V registru AX vrací počet kilobajtů základní paměti počítače.

Diskové I/O operace-INT 13h

   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.

Obsluha sériového portu-INT 14h

   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.

Obsluha klávesnice-INT 16h

   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 tiskárny-INT 17h

   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.

Obsluha časovače-INT 1Ah

   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.

Přehled přerušení

Čí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