Lista funkcji BIOS
Z Wikipedii
Poniżej znajduje się lista funkcji BIOS dostępnych dla programistów.
[edytuj] Funkcje przerwania 13h
[edytuj] Funkcja 00h
Sprowadza wewnętrzne rejestry kontrolera do ściśle określonego stanu początkowego. Operacja, która wykonywana jest aktualnie zostaje przerwana.
[edytuj] Funkcja 01h
Zostaje odczytany status ostatniej operacji. Funkcja odtwarza w rejestrze AH bajt statusu taki sam jak po ostatnio przeprowadzonej operacji bez względu na to jak dawno się zakończyła.
[edytuj] Funkcja 02h
Jeden lub kilka sektorów z dysku zostaje odczytanych przez funkcję 02h. W pamięci umiejscawiane są wszystkie przeczytane sektory, zaczynając od adresu podanego w ES:BX, ewentualnie zamazując inne dane. Do obowiązku programisty należy zarezerwowanie odpowiedniej ilości wolnego miejsca.
[edytuj] Funkcja 03h
Funkcja ta jest odpowiednikiem funkcji 02h. Różnica polega na tym, że jako sektor zapisywane są zawsze pełne 512- bajtowe bloki pamięci (zaczynając od adresu ES: BX) nawet wtedy, gdy nie posiadają one wyłącznie danych, które zostały umieszczone tam przez programistę.
[edytuj] Funkcja 04h
Funkcja przeprowadzając czytanie próbne, sprawdza poprawność kodów ECC.
[edytuj] Funkcja 05h
Sektory ścieżki lub cylindra zostają sformatowane. Dla każdego sektora oddzielnie w pamięci należy przygotować odpowiednie bloki danych. W skład bloku wchodzą cztery bajty które kolejno oznaczają:
Bajt 0 - numer ścieżki
Bajt 1 - numer głowicy
Bajt 2 - numer sektora
Bajt 3 - liczba bajtów w sektorze:
0 = 128; 1 = 256; 2 = 512; 3 = 1024.
Funkcja ta nie może być stosowana w dyskach posiadających własny zintegrowany kontroler np. IDE lub posługujących się tłumaczeniem.
[edytuj] Funkcja 06h
Ścieżka posiadająca uszkodzony sektor ( więcej niż jeden ) jest znakowana jako zła. Uniemożliwia to zapis jakichkolwiek danych. Funkcja obsługuje prawidłowo jedynie kontroler dysku twardego modelu XT.
Funkcja ta nie może być stosowana w dyskach posiadających własny zintegrowany kontroler np. IDE lub posługujących się tłumaczeniem.
[edytuj] Funkcja 07h
Zostaje sformatowany cały dysk zaczynając od podanego cylindra. Funkcja obsługuje prawidłowo jedynie kontroler dysku twardego modelu XT.
Funkcja ta nie może być stosowana w dyskach posiadających własny zintegrowany kontroler np. IDE lub posługujących się tłumaczeniem.
[edytuj] Funkcja 08h
Funkcja informacyjna. Dostarcza informacje na temat parametrów geometrycznych napędu.
[edytuj] Funkcja 09h
Następuje dopasowanie geometrycznych parametrów napędu.
Jeżeli parametry geometryczne dysku twardego nie odpowiadają żadnemu z modeli „umieszczonych” na stałe w programie Setup, zazwyczaj jest możliwość wyboru typu dodatkowego, zazwyczaj 47. Pozwala to na swobodne określenie geometrii napędu. Do dwóch 16 – bitowych tablic (oddzielnie dla pierwszego i drugiego dysku systemowego) przesyłane są informacje, które wprowadził użytkownik.
Nieco inaczej od reszty traktowane są pozycje 41h i 46h tablicy wektorów przerwań, ponieważ nie wskazują na żadną z procedur obsługi przerwań. Ustawiane są na początkowe adresy tych tablic z parametrami dysków. Budowa tych tablic jest taka sama jak zwracana przez funkcję 08h. Funkcja 09h działa więc na zasadzie odnalezienia ( przy pomocy wskaźników INT41h oraz INT46h ) tablic z parametrami geometrycznymi i pokazanie zawartości do „dyspozycji” BIOS-u.
[edytuj] Funkcja 0Ah
Zostają odczytane sektory (od jednego do 127) i umieszczone w pamięci operacyjnej ( w określonym buforze ). System ECC kontrolera nie przeprowadza żadnych korekcji. Dane ze wszystkich sektorów przesyłane są w niezmienionym stanie.
[edytuj] Funkcja 0Bh
Sektory od jednego do 127 zostają zapisane ( razem z bajtami ECC ). Sektory pobierane są z określonego bufora w pamięci operacyjnej. System ECC kontrolera nie przeprowadza żadnych korekcji. Dane ze wszystkich sektorów przesyłane są w niezmienionym stanie
Funkcja ta daje możliwość sprawdzenia działania układów ECC. Aby to sprawdzić należy celowo zapisać sektor wraz ze złymi bajtami kontrolnymi. Potem należy poddać sektor próbie odczytu.
[edytuj] Funkcja 0Ch
Zostaje aktywowana określona głowica i ustawiana nad żądanym cylindrem.
[edytuj] Funkcja 0Dh
Następuje reset napędu.
[edytuj] Funkcja 0Eh
Do wskazanego obszaru pamięci operacyjnej zostaje przesłana aktualna zawartość 512-bajtowego bufora kontrolera. Nie są czytane żadne dane z dysku.
[edytuj] Funkcja 0Fh
Do bufora kontrolera ( ze wskazanego obszaru pamięci ) transmitowane jest 512 bajtów. Nie są zapisywane żadne dane na dysk.
[edytuj] Funkcja 10h
Funkcja ta służy do sprawdzania gotowości dysku do wykonywania poleceń.
[edytuj] Funkcja 11h
Następuje kalibracja czyli funkcja ustawia głowicę nad ścieżką zerową.
[edytuj] Funkcja 12h
Zostaje sprawdzona pamięć RAM kontrolera dysku twardego. Nie każda wersja BIOS-u ma opracowaną tę funkcję.
[edytuj] Funkcja 13h
Zostaje przeprowadzony obszerny test napędu przez kontroler i zwrócenie błędu jeżeli wystąpi ewentualny błąd. Nie każda wersja BIOS-u ma opracowaną tę funkcję.
[edytuj] Funkcja 19h
Funkcja ta przydatna jest w razie konieczności transportu napędu, który (dysk) nie jest wyposażony w odpowiedni mechanizm, który to po wyłączeniu zasilania samoczynnie „parkuje” głowicę. Funkcja 19h przesuwa głowice nad cylinder. Ma to za zadanie chronić głowice jak również powierzchnię magnetyczną przed ewentualnymi uszkodzeniami spowodowanymi wstrząsami.
[edytuj] Funkcja 41h
Funkcja sprawdza, czy dysk jest zgodny ze specyfikacją EIDE. Nie każda wersja BIOS-u ma opracowaną tę funkcję.
[edytuj] Funkcja 48h
Następuje odczytanie parametrów dysku twardego EIDE. Nie każda wersja BIOS-u ma opracowaną tę funkcję.
[edytuj] Źródła
- Anatomia PC Wydawnictwa Helion, wydanie 4.