Vývoj operačného systému/Bootloader po druhé - práca s diskovými jednotkami: Rozdiel medzi revíziami

Smazaný obsah Přidaný obsah
Riadok 138:
|}
|-
| 02 || Čítanie sektorov zo zariadenia || AL = počet sektorov na čítanie,

DL = zariadenie, DH = číslo "hlavy",

ES:BX = adresa uloženia prečítaných dát v pamäti, CX[0-5] = sektor,

CX[6-15] = stopa/cylinder

|| CF = v prípade chyby 1; inak 0, AH = kód stavu (ako pre funkciu 01), AL = počet prečítaných sektorov
 
AH = kód stavu (ako pre funkciu 01),
 
AL = počet prečítaných sektorov
|-
| 03 || Zápis sektorov na zariadenie || AL = počet sektorov na zápis, DL = zariadenie, DH = číslo "hlavy", ES:BX = adresa dát na zápis, CX[0:5] = sektor, CX[6:15] = stopa/cylinder || CF = v prípade chyby 1; inak 0, AH = kód stavu (ako pre funkciu 01), AL = počet zapísaných sektorov
 
DL = zariadenie,
 
DH = číslo "hlavy",
 
ES:BX = adresa dát na zápis,
 
CX[0:5] = sektor,
 
CX[6:15] = stopa/cylinder
 
|| CF = v prípade chyby 1; inak 0,
 
AH = kód stavu (ako pre funkciu 01),
 
AL = počet zapísaných sektorov
|-
| 04 || Overenie sektorov na disku (hľadanie chýb). S dátami v pamäti sa nepracuje. Pri výskyte chyby by mal program niekoľkokrát overiť (a reštartovať), či sa disketa nachádza v zariadení. || AL = počet sektorov na overenie,

DL = zariadenie,

DH = číslo "hlavy",

ES:BX, CX[0:5] = sektor,

CX[6:15] = stopa/cylinder || CF = v prípade chyby 1; inak 0, AH = kód stavu (ako pre funkciu 01), AL = počet (úspešne{{Bez citácie}}) overených sektorov
 
|| CF = v prípade chyby 1; inak 0,
 
AH = kód stavu (ako pre funkciu 01),
 
AL = počet (úspešne{{Bez citácie}}) overených sektorov
|-
| 08 || Získa parametre zariadenia || DL = zariadenie,
| 08 || Získa parametre zariadenia || DL = zariadenie, [ES:DI = niekedy vyžadovaná hodnota 0 na niektorých BIOSoch] || CF = v prípade chyby 1; inak 0, AH = kód stavu (ako pre funkciu 01), DL = počet (pevných?<ref name="floppy_or_all">Rôzne zdroje uvádzajú rôzne informácie, nemusí sa jednať len o diskety.</ref>) diskov, DH = posledná (maximálna) "hlava" <ref name="last_head_lol">Z dôvodu číslovania "hláv" od 0 je nutné pripočítať 1 na zistenie počtu hláv</ref>, CX[0:5] = počet sektorov na stope, CX[6:15] = posledná maximálna) stopa/cylinder<ref name="last_head_lol">Z dôvodu číslovania cylindrov/stôp od 0 je nutné pripočítať 1 na zistenie celkového počtu</ref>, ES:DI = adresa tabuľky parametrov <ref name="floppy_or_all" />, BL = typ diskety podľa tabuľky
 
[ES:DI = niekedy vyžadovaná hodnota 0 na niektorých BIOSoch]
 
|| CF = v prípade chyby 1; inak 0,
 
AH = kód stavu (ako pre funkciu 01), DL = počet (pevných?<ref name="floppy_or_all">Rôzne zdroje uvádzajú rôzne informácie, nemusí sa jednať len o diskety.</ref>) diskov,
 
DH = posledná (maximálna) "hlava" <ref name="last_head_lol">Z dôvodu číslovania "hláv" od 0 je nutné pripočítať 1 na zistenie počtu hláv</ref>,
 
CX[0:5] = počet sektorov na stope,
 
CX[6:15] = posledná maximálna) stopa/cylinder<ref name="last_head_lol">Z dôvodu číslovania cylindrov/stôp od 0 je nutné pripočítať 1 na zistenie celkového počtu</ref>,
 
ES:DI = adresa tabuľky parametrov <ref name="floppy_or_all" />,
 
BL = typ diskety podľa tabuľky
{| class="wikitable"
|-
Řádek 158 ⟶ 216:
|}
|-
| 42 || Rozšírené čítanie sektorov zo zariadenia, funguje na princípe paketov a používa adresovanie LBA || DL = zariadenie, DS:SI = adresa na DAP ''(Disk Address Packet'' - paket diskovej addresy) || CF = v prípade chyby 1; inak 0,

AH = kód stavu (ako pre funkciu 01)
|-
| 43 || Rozšírený zápis sektorov zo zariadenia, funguje na princípe paketov a používa adresovanie LBA || DL = zariadenie,

DS:SI = adresa na DAP,

AL = nastavenia zápisu

|| CF = v prípade chyby 1; inak 0,

AH = kód stavu (ako pre funkciu 01)
|-
| 46 || Vysunutie konkrétneho média
| 46 || Vysunúť konkrétne médium. || DL = zariadenie, AL = 00 (rezerovované{{Bez citácie}}) || CF = v prípade chyby 1; inak 0, AH = kód stavu (ako pre funkciu 01)
 
|| DL = zariadenie, AL = 00 (rezerovované{{Bez citácie}})
 
|| CF = v prípade chyby 1; inak 0,
 
AH = kód stavu (ako pre funkciu 01)
|}
<references />