Термінова допомога студентам
Дипломи, курсові, реферати, контрольні...

Переривання BIOS

РефератДопомога в написанніДізнатися вартістьмоєї роботи

H скидання контролера 0aH довше читання 01H дати статус 0bH довга запис 02H читати сектори 0cH шукати циліндр 03H писати сектори 0dH альтернативний скидання 04H верифікація 05H форматувати доріжку 08H дати параметри диска 09H форматувати параметри диска 10H перевірити готовність 11H рекалибрация 14H діагностика 15H дати тип диска 16H змінити статус 17H встановити тип диска. INT 26H записує… Читати ще >

Переривання BIOS (реферат, курсова, диплом, контрольна)

INT 13H: Дисковий ввод-вывод Этот сервіс надає прямий доступом до адаптерам дискети і твердого диска. Рекомендується там, де може бути, використовувати INT 25H і INT 26H (INT 25H/26H — пряма дискова операція чтения/записи:

INT 25H читає секторы.

INT 26H записує сектори), щоб дати драйверам пристроїв DOS виконувати всю низкоуровневую обробку. Зрозуміло, для таких операцій, як форматування диска чи установка захисту від копіювання, переривання INT 13H може бути єдиною альтернативой.

Подфункции:

(Подфункции > 8 — лише твердих дисков).

00H скидання контролера 0aH довше читання 01H дати статус 0bH довга запис 02H читати сектори 0cH шукати циліндр 03H писати сектори 0dH альтернативний скидання 04H верифікація 05H форматувати доріжку 08H дати параметри диска 09H форматувати параметри диска 10H перевірити готовність 11H рекалибрация 14H діагностика 15H дати тип диска 16H змінити статус 17H встановити тип диска.

AH Сервіс ___ ____________________________________________________________________________.

00H Скидання устрою. Викликає рекалибрацию контроллера.

Якщо DL дорівнює 80H чи 81H, виконано скидання контролера твердого диска.

___ ____________________________________________________________________________.

01H Дати статус помилки останньої операции.

Вхід: DL = диск. DL < 80H = дискета; DL > 7FH = твердий диск.

Вихід: AL містить код помилки диска (те, що значення за адресою 0:0441) ___ ____________________________________________________________________________.

02H Читати секторы.

Вхід: DL = номер диска (0=диск A…;80H=твердый диск 0;81H=твердый диск 1).

DH = номер голівки чтения/записи.

CH = номер доріжки (цилиндра)(0-n) ?+.

CL = номер сектора (1-n) ?———± Див. зауваження ниже.

AL = число секторів (у сумі але лише один цилиндр).

ES:BX => адресу буфера викликає программы.

0:0078 => Таблиця параметрів дискети (для гнучких дисков).

0:0104 => Таблиця параметрів твердого диска (для твердих дисков).

Вихід: Carry-флаг=1 при помилці і код помилки диска в AH.

ES:BX буфер містить дані, прочитані з диска.

Зауваження: на і циліндр відводиться відповідно 6 і десяти бит:

1 1 1 1 1 1.

?5+4+3+2+1+0+9+8?7+6+5+4+3+2+1+0+ CX: |з з з з з з з з З з P. S p.s p. s p.s p. s s|.

±±±±±±±±?-±±±±±±±+.

±+—-? ісп. як старші біти номери цилиндра.

___ ____________________________________________________________________________.

03H Писати секторы.

Вхід: (аналогічно подфункции 02H).

ES:BX => дані, записувані на диск.

Вихід: Carry-флаг=1 при помилці і код помилки диска в AH. ___ ____________________________________________________________________________.

04H Перевірити сектори. Перевіряє CRC для зазначених секторів на ошибки.

Вхід: (аналогічно подфункция 02H. ES: BX краще також предоставить).

Вихід: Carry-флаг=1 при помилці і код помилки диска в AH. ___ ____________________________________________________________________________.

05H Форматувати доріжку. Дані на доріжці, є, разрушаются.

Вхід: DL, DH, CH = диск, голівка, доріжка (див. подф. 02H).

ES:BX => дескриптори секторів (потрібно 512-байтовый буфер) дискета: 1 4-байтовый «CHNS «(Циліндр, Голівка, N сектора, Розмір) кожному за сектора на доріжці (тобто. 36 байт для 9-секторных доріжок); номери секторів д.б. упорядочены.

" Z «- код розміру сектора: 0=128; 1=256; 2=512; 3=1024.

_AT_ Твердий диск: 1 2-байтовый «FN «(Прапор, N сектора) кожному за сектора на доріжці. Послідовність полів «N «определяет.

" коефіцієнт прослаивания «(«interleave factor »).

_XT_ Твердий диск: ES: BX немає. Натомість AL містить значення «прослаивания «між 1 і 16 (10H).

Вихід: Carry-флаг=1 при помилці і код помилки диска в AH.

(твердий диск: «F «-поля прописані у 80H, щоб позначити погані сектори) ___ ____________________________________________________________________________.

08H _AT_ _XT_ Дати параметри диска. Повертає інформацію про устройстве.

Вхід: DL = диск.

Вихід: DL = число тв. дисків першою контроллере.

DH = максимальний номер головки.

CH = максимальний номер циліндра (молодші 8 бит).

CL = максим. номер сектора (і старші біти макр. номери циліндра) ___ ____________________________________________________________________________.

09H _AT_ Форматувати параметри диска. Повідомляє BIOS про будь-якому динамічному зміні таблиць параметрів устройства.

Вхід: Вектори для INT 41H і INT 46H адресують Табл. параметрів тв. диска відповідно для пристроїв 0 і 1.

Зауваження: _XT_ повинен вказувати обидві таблиці через вектор INT 40H. ___ ____________________________________________________________________________.

0aH _AT_ _XT_ Читання довше: 512 байт + 4-байтоый ECC (код корекції ошибок).

Вхід: (як подф. 02H).

Вихід: Carry-флаг=1 при помилці і код помилки диска в AH.

ES:BX => в буфері (дані сектора + 4 байта) * число секторів (з AL) ___ ____________________________________________________________________________.

0bH _AT_ _XT_ Запис довга. Пише 512 байт + 4-байтовый ECC.

Вхід: (як подф. 02H).

ES:BX => буфер містить дані сектора + 4 байта за кожен сектор

Вихід: Carry-флаг=1 при помилці і код помилки диска в AH. ___ ____________________________________________________________________________.

0cH _AT_ _XT_ Шукати циліндр. Переміщає голівку до потрібної дорожке.

Вхід: DL, DH, CH = диск, голівка, доріжка (див. подф. 02H).

Вихід: Carry-флаг=1 при помилці і код помилки диска в AH. ___ ____________________________________________________________________________.

0dH _AT_ _XT_ Альтернативний скидання устройства.

Вхід: DL = диск ___ ____________________________________________________________________________.

0eH _AT_ читати буфер секторов.

Вхід: (як подф. 02H).

Вихід: Carry-флаг=1 при помилці і код помилки диска в AH. ___ ____________________________________________________________________________.

0fH _AT_ писати буфер секторов.

Вхід: (як подф. 02H).

Вихід: Carry-флаг=1 при помилці і код помилки диска в AH. ___ ____________________________________________________________________________.

10H _AT_ _XT_ перевірити готовність устройства.

Вхід: DL = диск.

Вихід: код помилки диска (статус) в AH. ___ ____________________________________________________________________________.

11H _AT_ _XT_ Рекалибровать устройство.

Вхід: DL = диск.

Вихід: код помилки диска (статус) в AH. ___ ____________________________________________________________________________.

12H _AT_ Діагностика RAM контроллера.

Вихід: код помилки диска (статус) в AH. ___ ____________________________________________________________________________.

13H _AT_ Діагностика устройства.

Вихід: код помилки диска (статус) в AH. ___ ____________________________________________________________________________.

14H _AT_ _XT_ Внутрішня діагностика контроллера.

Вихід: код помилки диска (статус) в AH. ___ ____________________________________________________________________________.

15H _AT_ Читати тип диска (недоступна в XT BIOS).

Вхід: DL = диск.

Вихід: AH = код устройства:

0 = пристрій DL отсутствует.

1 = дискета; логіка заміни диска отсутствует.

2 = дискета; логіка заміни диска доступна (більшість случаев).

3 = твердий диск ___ ____________________________________________________________________________.

16H _AT_ Читати статус заміни диска.

Вихід: AH = код статуса:

0 = диск ні заменен.

6 = заміна активна (відкрита дискова дверь);

DL = номер замінного диска ___ ____________________________________________________________________________.

17H _AT_ встановити тип дискети (використовується перед операцією форматирования).

Вхід: DL = номер устрою диска (0 чи 1).

AL = тип носія диска:

0 = не используется.

1 = 360K дискета в 360K устройстве.

2 = 360K дискета в 1.2M устройстве.

3 = 1.2M дискета в 1.2M устройстве.

КОДИ ПОМИЛОК ДИСКА.

INT 13H повертає Carry-флаг (CF=1), якщо відбулася помилка. Причому у регістр AH поміщається одне із наведених нижче кодів помилок. Ці самі значення можуть повернутися при запиті стану диска (подфункция 00H).

Зауваження: при помилці рекомендується скидання подфункцией 00H і повторити 3 раза.

#Ош. Опис ____ __________________________________________________________________________ 00H остання операція виконано безпомилково 01H погана команда: зрадливий запит до контролеру 02H погана адресна марка 03H захист записи: спроба записи на захищену дискету 04H ID сектора запорчен або знайдено. 05H помилка скидання — _AT_ 08H збій DMA 09H перекриття DMA: спроба записи через 64K-байтовую кордон. 0bH зустрівся прапор поганий доріжки — _AT_ 10H збій CRC: розбіжність контрольної суми даних. 11H дані виправлені; можна виправити помилка; виправлено алгоритмом ECC — _AT_ 20H збій контролера 40H невдалий пошук. Яку Сподівалися Отримати доріжка не знайдено 80H Тайм-аут. Пристрій не відповіло 0bbH невизначена помилка — _AT_ 0ffH збій операції опитування (sense) — _AT_.

Примечание.

_AT_ … позначає IBM AT чи сумісний; виходить з 80 286 CPU.

_XT_ … позначає XT (зазвичай називає відмінностей у BIOS твердого диска).

Показати весь текст
Заповнити форму поточною роботою