МЕНЮ


Фестивали и конкурсы
Семинары
Издания
О МОДНТ
Приглашения
Поздравляем

НАУЧНЫЕ РАБОТЫ


  • Инновационный менеджмент
  • Инвестиции
  • ИГП
  • Земельное право
  • Журналистика
  • Жилищное право
  • Радиоэлектроника
  • Психология
  • Программирование и комп-ры
  • Предпринимательство
  • Право
  • Политология
  • Полиграфия
  • Педагогика
  • Оккультизм и уфология
  • Начертательная геометрия
  • Бухучет управленчучет
  • Биология
  • Бизнес-план
  • Безопасность жизнедеятельности
  • Банковское дело
  • АХД экпред финансы предприятий
  • Аудит
  • Ветеринария
  • Валютные отношения
  • Бухгалтерский учет и аудит
  • Ботаника и сельское хозяйство
  • Биржевое дело
  • Банковское дело
  • Астрономия
  • Архитектура
  • Арбитражный процесс
  • Безопасность жизнедеятельности
  • Административное право
  • Авиация и космонавтика
  • Кулинария
  • Наука и техника
  • Криминология
  • Криминалистика
  • Косметология
  • Коммуникации и связь
  • Кибернетика
  • Исторические личности
  • Информатика
  • Инвестиции
  • по Зоология
  • Журналистика
  • Карта сайта
  • Прерывание BIOS

    Прерывание 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 и 10

    бит:

    1 1 1 1 1 1

    ?5+4+3+2+1+0+9+8?7+6+5+4+3+2+1+0+

    CX: |c c c c c c c c C c S s s s 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 или совместимый; базируется на 80286 CPU

    _XT_ ...... обозначает XT (обычно ссылается на отличия в BIOS твердого

    диска)


    Приглашения

    09.12.2013 - 16.12.2013

    Международный конкурс хореографического искусства в рамках Международного фестиваля искусств «РОЖДЕСТВЕНСКАЯ АНДОРРА»

    09.12.2013 - 16.12.2013

    Международный конкурс хорового искусства в АНДОРРЕ «РОЖДЕСТВЕНСКАЯ АНДОРРА»




    Copyright © 2012 г.
    При использовании материалов - ссылка на сайт обязательна.