Системное программное обеспечение. Рощин А.В. - 47 стр.

UptoLike

Составители: 

47
Функция 1bh: Дать информацию FAT (текущий диск)
Вход AH = 1bh
Выход DS:BX = адрес байта FAT ID (отражающего тип диска)
DX = всего кластеров на диске
AL = секторов в кластере
CX = байтов в секторе
Описание
: Возвращает информацию о размере и типе текущего диска.
Размер диска в байтах = (DX * AL * CX). Для определения свободного
места на диске используйте функции 36h Disk Free или 32h Disk Info.
Внимание
: Эта функция изменяет содержимое регистра DS.
Функция 1ch: Дать информацию FAT (любой диск)
Вход AH = 1ch
DL = номер диска (0 = текущий, 1 = A, и т.д.)
Выход DS:BX = адрес байта FAT ID (отражающего тип диска)
DX = всего кластеров
AL = секторов в кластере
CX = байтов в секторе
Описание
: Аналогична функции 1bh Get FAT Cur, с той разницей, что
регистр DL указывает диск, для которого вы хотите получить
информацию.
Функция 25h: Установить вектор прерывания
Вход AH = 25h
AL = номер прерывания
DS:DX = вектор прерывания: адрес программы обработки
прерывания
Описание
: Устанавливает значение элемента таблицы векторов
прерываний для прерывания с номером AL равным DS:DX. Это
равносильно записи 4-байтового адреса в 0000:(AL*4), но, в отличие от
прямой записи, DOS здесь знает, что вы делаете, и гарантирует, что в
момент записи прерывания будут заблокированы.
Внимание
: Не забудьте восстановить DS (если необходимо) после этого
вызова.
Функция 26h: Построить PSP
Вход AH = 26h
DX = адрес сегмента (параграфа) для нового PSP
CS = сегмент PSP, используемого как шаблон для нового PSP
Описание
: Устанавливает PSP для порождаемого процесса по адресу
DX:0000. Текущий PSP (100h байт, начиная с CS:0), копируется в DX:0.
Соответственно корректируется поле MemTop. Векторы Terminate, Ctrl-
Break и Critical Error копируются в PSP из векторов прерываний int 22h, int
23h и int 24h.
                                    47




Функция 1bh: Дать информацию FAT (текущий диск)
Вход AH = 1bh
Выход      DS:BX = адрес байта FAT ID (отражающего тип диска)
           DX = всего кластеров на диске
           AL = секторов в кластере
           CX = байтов в секторе
Описание: Возвращает информацию о размере и типе текущего диска.
Размер диска в байтах = (DX * AL * CX). Для определения свободного
места на диске используйте функции 36h Disk Free или 32h Disk Info.
Внимание: Эта функция изменяет содержимое регистра DS.
Функция 1ch: Дать информацию FAT (любой диск)
Вход AH = 1ch
     DL = номер диска (0 = текущий, 1 = A, и т.д.)
Выход      DS:BX = адрес байта FAT ID (отражающего тип диска)
           DX = всего кластеров
           AL = секторов в кластере
           CX = байтов в секторе
Описание: Аналогична функции 1bh Get FAT Cur, с той разницей, что
регистр DL указывает диск, для которого вы хотите получить
информацию.
Функция 25h: Установить вектор прерывания
Вход AH = 25h
     AL = номер прерывания
     DS:DX = вектор прерывания: адрес программы обработки
     прерывания
Описание: Устанавливает значение элемента таблицы векторов
прерываний для прерывания с номером AL равным DS:DX. Это
равносильно записи 4-байтового адреса в 0000:(AL*4), но, в отличие от
прямой записи, DOS здесь знает, что вы делаете, и гарантирует, что в
момент записи прерывания будут заблокированы.
Внимание: Не забудьте восстановить DS (если необходимо) после этого
вызова.
Функция 26h: Построить PSP
Вход AH = 26h
      DX = адрес сегмента (параграфа) для нового PSP
      CS = сегмент PSP, используемого как шаблон для нового PSP
Описание: Устанавливает PSP для порождаемого процесса по адресу
DX:0000. Текущий PSP (100h байт, начиная с CS:0), копируется в DX:0.
Соответственно корректируется поле MemTop. Векторы Terminate, Ctrl-
Break и Critical Error копируются в PSP из векторов прерываний int 22h, int
23h и int 24h.