- •Скидання дискової системи
- •Визначення стану дискової системи
- •Читання сектора
- •Запис сектора
- •Перевірка сектора
- •Форматування доріжки
- •Форматування доріжки нмд
- •Читання буферу сектора (нмд)
- •Запис буферу сектора (нмд)
- •Форматування нмд
- •Пошук доріжки (нмд)
- •Визначення стану нмд
- •Рекалібровка нмд
- •Перевірка пам'яті контролера нмд
- •Перевірка нмд
- •Визначення типу типа нгмд або нмд
- •Перевірка заміни диску
- •Встановлення типу дискети
- •Паркування головок нмд
Читання сектора
На вході: |
AH |
02h |
|
AL |
Кількість секторів, які потрібно прочитати |
|
CH |
Номер доріжки |
|
CL |
Номер сектора |
|
DH |
Номер головки |
|
DL |
Адреса пристрою НГМД або НМД (0, 1, ..., 80h, 81h, ...) |
|
ES:BX |
Адреса буферу для даних |
На виході: |
AH |
Стан дисководу після завершення останньої операції |
|
CF |
1, якщо виникла помилка, 0, якщо помилки немає |
Примітка: |
|
PC, XT, AT, PS/2 |
Ця функція дозволяє прочитати один сабо декілька секторів диску в буфер, що знаходиться оперативній пам'яті.
Для НМД номер доріжки і номер сектора задаються наступним чином: біти 5...0 регістра CX задають номер сектора, а біти 15...6 – номер доріжки.
Перед читанням необхідно підготовити таблицю параметрів НГМД чи НМД.
Запис сектора
На вході: |
AH |
03h |
|
AL |
Кількість секторів, які необхідно прочитати |
|
CH |
Номер доріжки |
|
CL |
Номер сектора |
|
DH |
Номер головки |
|
DL |
Адреса пристрою НГМД або НМД (0, 1, ..., 80h, 81h, ...) |
|
ES:BX |
Адреса буферу для даних |
На виході: |
AH |
Стан пристрою після завершення операції |
|
CF |
1, якщо виникла помилка, 0, якщо помилки немає |
Примітка: |
|
PC, XT, AT, PS/2 |
Функція запису секторів аналогічна до попередньої, за виключенням напряму переміщення даних – дані записуються з буферу в один або декілька секторів диску. Необхідно відзначити, що при роботі з НГМД не для кожної BIOS буде очікування перед виконанням операції запису, поки двигун розкрутиться до робочої швидкості. В результаті програма може отримати признак помилки. Перед тим, як робити вивід про причину помилки, слід скинути контролер НГМД функцією 00H та повторити операцію запису три рази.
Перевірка сектора
На вході: |
AH |
04h |
|
AL |
Кількість секторів, які потрібно перевірити |
|
CH |
Номер доріжки |
|
CL |
Номер сектора |
|
DH |
Номер головки |
|
DL |
Адрес пристрою НГМД або НМД (0, 1, ..., 80h, 81h, ...) |
На виході: |
AH |
Стан пристрою після завершення операції |
|
AL |
Кількість перевірених секторів |
|
CF |
1, якщо виникла помилка, 0, якщо помилка немає |
Примітка: |
|
PC, XT, AT, PS/2 |
За допомогою цієї функції програма може впевнитися, що вказані сектори існують і їх можна прочитати. Діна перевіряються по методу циклічного надлишкового контролю (CRC ). Адреса буфера не потрібна, так як при перевірці читання даних в оперативну пам'ять не виконується.
Перед використанням цієї функції впевніться в тому, що двигун НГМД розкрутився до робочої швидкості (на виконання цієї операції зазвичай достатньо 0,5 - 1 сек), в протилежному випадку виникне помилка.
