Page 68 - 4875
P. 68
Число прочитаних секторів повертається в регістр AL.
Регістри DS, BX, CX і DX зберігають свої значення.
У більшості випадків програма вказує тільки один сектор або
усі сектори на доріжці. Для послідовного читання секторів програма
повинна збільшувати вміст регістрів CH і CL. Слід зауважити, що
коли номер сектора досягає максимального значення, його необхідно
скинути в 01, а номер доріжки збільшити на 1 чи змінити сторону 0 на
1 (для двосторонніх дискет).
Для виклику певної функції переривання int 13h програма
повинна занести її в регістр АН. При чому в інші регістри слід записати
параметри – номер FDD та HDD, номер циліндру, головки, адрес
таблиці параметрів.
Розглянемо детальніше основні функції роботи з пристроями
збереження даних FDD і HDD:
1 Скидання (Reset) дискової системи
На вході:АХ = 00h
DL = <адреса пристрою FDD чи HDD>
На виході: Регістри не використовуються
Функцію використовують традиційно в системах не більше 4-х
HDD, і 2-ох FDD (рекомендують використовувати) після того, як
виникла помилка при виконанні операцій запису або читання.
(Виконують команду Reset, потім повторюють операцію.)
Адреси пристрою в підсистемі представляються наступним
чином:
0 – FDD ”A”
1 – FDD ”B”
…
80h – HDD ”0”
81h – HDD ”1”
…
Після виклику переривань функція виконує Reset і рекалібровку
дискового контролера. В ході цієї операції зчитуючі головки
встановлюються на нульову доріжку після чого пристрій знову готовий
до виконання операцій. Якщо в байті адреса, старший біт встановити в
„1”, то відбудеться скидання контролера HDD.
2 Визначення стану дискової системи
67