Мультиплексное прерывание INT 2Fh. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Мультиплексное прерывание INT 2Fh.



Используется для организации взаимодействия резидентных программ с системой и друг с другом. Для программиста зарезервированы функции: C0h - FFh.

Вызов:

AH = 2Fh

AL = подфункция

Возврат:

AL = 0 - программа не установлена и ее можно установить

AL = 1 - программа не установлена и ее нельзя установить

AL = 0FFh - программа уже установлена.

При ошибке:

CF = 1

AX = код ошибки.

Прерывание INT 13h, функция 02h - чтение сектора.

Считывает один или несколько определенных пользователем секторов физического диска в выделенный буфер. Для начального сектора указываются такие координаты: дорожка,сектор, головка. Секторы на дорожке нумеруются от единицы, дорожки и головки нумеруются от нуля.

Вызов:

AH = 02h

AL = количество читаемых секторов

CH = дорожка

CL = начальный сектор

DH = головка

DL = дисковод (00h - 07Fh - для дискетного дисковода, 80h - 0FFh - для "винчестера".

ES: BX = адрес буфера, в который будет читаться информация из секторов

Возврат:

CF = 0

AH = 0

AL = количество прочитанных секторов

При ошибке:

CF = 1

AH = байт состояния.

(*) Биты регистра CX 5...0 определяют номер сектора, а биты 15...6 - номер дорожки!!! Это выглядит так:

Номер бита                
Содержимое бита c c c c c c c c
Номер бита                
Содержимое бита C c S s s s s s

Буква "C" или "c" означает, что бит принадлежит номеру дорожки; Буква "S" или "s" означает, что бит принадлежит номеру сектора.

Таким образом, биты "7" и "6" являются старшими битами номера дорожки, а биты "5" и "4" являются старшими битами номера сектора.

Прерывание INT 13h, функция 03h - запись сектора.

Записывает один или несколько определенных пользователем секторов на физический диск. Для начального сектора указываются такие координаты: дорожка, сектор, головка. Секторы на дорожке нумеруются от единицы, дорожки и головки нумеруются от нуля.

Вызов:

AH = 03h

AL = количество записываемых секторов

CH = дорожка

CL = начальный сектор

DH = головка

DL = дисковод (00h - 07Fh - для дискетного дисковода, 80h-0FFh - для "винчестера".

ES: BX = адрес буфера, информация из которого будет записываться в сектора

Возврат:

CF = 0

AH = 0

AL = количество записанных секторов

При ошибке:

CF = 1

AH = байт состояния.

(*) Биты регистра CX 5...0 определяют номер сектора, а биты 15...6 - номер дорожки!!! (см. функцию 02h).

Прерывание INT 13h, функция 08h - получение параметров дисковода.

Вызов:

AH = 08h

DL = дисковод (00h-07Fh - для дискетного дисковода, 80h-0FFh - для "винчестера".

Возврат:

AH = 0

BL = тип дисковода (только AT и PS2)

DL = количество накопителей, обслуживаемых первым контроллером

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

CL = максимальный номер сектора

CH = максимальный номер дорожки (см. функцию 02h)

ES:DI = адрес таблицы параметров дисковода

При ошибке:

CF = 1

AH = байт состояния.

(*) Функция не работает на IBM XT для дисководов!!!

Приложение 2. Формат загрузочной записи для MS DOS различных версий

Формат BOOT - записи для версий MS DOS до 4.0

Смещение (HEX) Размер (DEC) Содержимое
00h   Команда EB xx 90 перехода на программу начальной загрузки
03h   Название фирмы - производителя и номер операционной системы
0Bh   Блок параметров BIOS (BPB)
18h   Количество секторов на дорожке
1Ah   Количество поверхностей диска
1Ch   Количество скрытых секторов, которые иногда используются для разбиения диска на разделы
1Eh   Программа начальной загрузки, называемая загрузочной записью (Boot Record).
1FEh   Код: 55 AA

Формат BOOT - записи для версии MS DOS 4.0

Смещение (HEX) Размер (DEC) Содержимое
00h   Команда EB xx 90 перехода на программу начальной загрузки
03h   Название фирмы - производителя и номер операционной системы
0Bh   Расширенный блок параметров BIOS (EBPB)
24h   Физический номер дисковода (00h - для дискетного дисковода, 80h - для винчестера)
25h   Зарезервировано
26h   Символ ") " - признак расширенной загрузочной записи MS DOS 4.0
27h   Серийный номер диска,создается во время его форматирования
2Bh   Метка (Volume Label) диска, задается во время его форматирования
36h   Обычно содержит запись типа "FAT 12" или аналогичную
3Eh   Программа начальной загрузки, называемая загрузочной записью (Boot Record).
1FEh   Код: 55 AA

Формат Master Boot Record (MBR) - главной загрузочной записи жесткого диска

Смещение (HEX) Размер (DEC) Содержимое
00h   Программа, называемая главной загрузочной записью (MBR, или Master Boot Record).
1BEh   Элемент таблицы разделов диска
1CEh   Элемент таблицы разделов диска
1DEh   Элемент таблицы разделов диска
1EEh   Элемент таблицы разделов диска
1FEh   Код: 55 AA

Формат BPB для версий MS DOS до 4.0

Смещение (HEX) Размер (DEC) Содержимое
00h   Количество байтов в одном секторе диска
02h   Количество секторов в одном кластере
03h   Количество зарезервированных секторов
05h   Количество копий FAT
06h   Максимальное количество дескрипторов файлов, содержащихся в корневом каталоге диска
08h   Общее количество секторов на носителе данных в разделе DOS
0Ah   Байт - описатель среды носителя данных
0Bh   Количество секторов, занимаемых одной копией FAT

Формат EBPB

Смещение (HEX) Размер (DEC) Содержимое
00h   Количество байтов в одном секторе диска
02h   Количество секторов в одном кластере
03h   Количество зарезервированных секторов
05h   Количество копий FAT
06h   Максимальное количество дескрипторов файлов, содержащихся в корневом каталоге диска
08h   Общее количество секторов на носителе данных в разделе DOS
0Ah   Байт - описатель среды носителя данных
0Bh   Количество секторов, занимаемых одной копией FAT
0Dh   Количество секторов на дорожке
0Fh   Количество головок накопителя
11h   Количество скрытых секторов для раздела, который по размеру меньше 32-х Мегабайт
13h   Количество скрытых секторов для раздела, который по размеру ревышает 32 Мегабайта (Используется только в MS DOS 4.0)
15h   Общее количество секторов на логическом диске для раздела, который по размеру превышает 32 Мегабайта

Параметры дискет различных типов

(В таблицу не вошли данные о совсем старых дискетах с объемом 320 Kb, 180 Kb, 120 Kb и других):

Диаметр диска 3.5" 3.5" 3.5" 5.25" 5.25"
Емкость диска, Kb          
Media Descryptor F0h F0h F9h F9h FDh
Количество сторон          
Количество дорожек на стороне          
Количество секторов на дорожке          
Размер сектора          
Количество секторов в кластере          
Длина FAT в секторах          
Количество копий FAT          
Длина корневого каталога в секторах          

Приложение 3. Коды ошибок при выполнении функция MS-DOS и BIOS

00h Ошибки нет
01h Неправильный номер функции
02h Файл не найден
03h Путь не найден
04h Слишком много открытых файлов
05h Доступ запрещен
06h Неправильный дескриптор
07h Уничтожен блок управления памятью (MCB-блок)
08h Не хватает памяти
09h Неправильный адрес блока памяти
0Ah Неправильное окружение
0Bh Неправильный формат
0Ch Неправильный код доступа
0Dh Неправильные данные
0Eh Неизвестное устройство
0Fh Неправильный дисковод
10h Попытка удалить текущий каталог
11h Не то же устройство
12h Больше нет файлов
13h Диск защищен от записи
14h Неизвестное устройство
15h Дисковод не готов
16h Неизвестная команда
17h Ошибка контрольной суммы
19h Ошибка поиска дорожки
1Ah Неизвестный носитель
1Bh Сектор не найден
1Ch В принтере нет бумаги
1Dh Отказ записи
1Eh Отказ чтения
1Fh Общая ошибка
50h Файл уже существует
52h Не могу создать каталог
54h Слишком много перенаправлений
55h Двойное перенаправление
57h Неправильный параметр

Коды ошибок при выполнении функций BIOS

00h Ошибки нет
01h Неправильная команда
02h Не найдена адресная метка
03h Диск защищен от записи
04h Сектор не найден
05h Сброс жесткого диска не прошел
06h Дискета вынута
07h Неправильная таблица параметров жесткого диска (HDPT - Hard Disk Parameter Table)
0Ch Не найден тип носителя данных
0Dh Неправильное число секторов в формате на жестком диске
10h Невосстановимая ошибка данных
11h Восстановленная ошибка данных на жестком диске
20h Неисправность контроллера
40h Ошибка позиционирования
80h Тайм-аут диска
AAh Жесткий диск не готов
BBh Неизвестная ошибка жесткого диска

 



Поделиться:


Последнее изменение этой страницы: 2016-07-16; просмотров: 460; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.222.184.162 (0.009 с.)