
СПО / Справочный материал / int13ext(rus)
.docРасширения 13-го прерывания.
СОДЕРЖАНИЕ
-
Проверка установки…………………………………………….ah41h
-
Расширенное чтение…………………………………………….ah42h
-
Расширенная запись…………………………………………….ah43h
-
Проверка секторов………………………………………………ah44h
-
Блокировка/Разблокировка диска…………………………….ah45h
-
Извлечь носитель………………………………………………..ah46h
-
Расширенный поиск…………………………………………….ah47h
-
Получить параметры диска……………………………………ah48h
-
Расширенная замена носителей……………………………….ah49h
10. Установка конфигурации аппаратных средств………..……ah50h
--------d-1341--BX55AA-----------------------
INT 13 - IBM/MS INT 13 Extensions-Проверка установки
AH = 41h
BX = 55AAh
DL = drive (80h-FFh)
Return: CF установлен при ошибке (расширения не поддерживаются)
AH = 01h ( недопустимая операция )
CF=0 , если всё удачно
BX = AA55h , если установленны
AH = главная версия расширений
01h = 1.x
20h = 2.0 / EDD-1.0
21h = 2.1 / EDD-1.1
30h = EDD-3.0
AL = внутреннее использование
CX = API поддерживают битовую карту (see #00253)
DH = версия расширения(v2.0+ ??? -- not present in 1.x)
Битовые поля для IBM/MS INT 13 Extensions API поддерживает битовые поля:
Бит(ы) Описание (Таблица 00253)
-
Расширенные функции доступа к диску (AH=42h-
44h,47h,48h)поддерживаются.
-
Функции контроллера сЪёмного диска(AH=45h,46h,48h,49h,INT 15/AH=52h)поддерживаются
-
Усовершенствованные функции (EDD) дисковода (AH=48h,AH=4Eh) поддерживаются
3-15 зарезервированны(0)
--------------------------------------------------------------------
INT 13 - IBM/MS INT 13 Extensions – Расширенное чтение
AH = 42h
DL = номер диска
DS:SI ->адресс дискового пакета (см. *00254)
Return:
CF=0 , если всё удачно
AH = 00h
CF установлен при ошибке
AH = код ошибки(see #00216)
По адресу дискового блока пакета, поле счётчика установлено в число блоков, успешно переданных.
SeeAlso: AH=02h,AH=41h"INT 13 Ext",AH=43h"INT 13 Ext"
Формат дискового пакета адреса:
Смещение Размер Описание (Table 00254)
00h BYTE 10h (размер пакета)
01h BYTE зарезервирован(0)
02h WORD число блоков для передачи (max 007Fh for
Phoenix EDD)
04h DWORD -> буфер передачи
08h QWORD Старт абсолютного номера блока
(Для не-LBA устройств,вычисляется как :
(Cylinder*NumHeads + SelectedHead) * SectorPerTrack + SelectedSector - 1
--------d-1343-------------------------------
INT 13 - IBM/MS INT 13 Extensions – Расширенная запись
AH = 43h
AL = флаги записи
---v1.0,2.0---
bit 0: провека записи
bits 7-1 резерв (0)
---v2.1+ ---
00h,01h запись без проверки
02h запись с проверкой
DL = номер диска
DS:SI -> дисковый пакет адреса (see #00254)
Return:
CF=0 , если всё удачно
AH = 00h
CF установлен при ошибке
AH = код ошибки(see #00216)
По адресу дискового блока пакета, поле счётчика установлено в число блоков, успешно переданных.
Заметка:
BIOS возвращает CF=1/AH=01h (неверная функция), если проверка требуется, но не поддерживается
SeeAlso: AH=03h,AH=41h"INT 13 Ext",AH=42h"INT 13 Ext",AH=44h
--------d-1344-------------------------------
INT 13 - IBM/MS INT 13 Extensions – Проверка секторов
AH = 44h
DL = номер диска
DS:SI ->адресс дискового пакета (см. *00254)
Return:
CF=0 , если всё удачно
AH = 00h
CF установлен при ошибке
AH = код ошибки(see #00216)
По адресу дискового блока пакета, поле счётчика установлено в число блоков, успешно проверенных.
SeeAlso: AH=04h,AH=41h"INT 13 Ext",AH=42h"INT 13 Ext",AH=47h
--------d-1345-------------------------------
INT 13 - IBM/MS INT 13 Extensions - Блокировка/Разблокировка диска
AH = 45h
AL = операция
00h средства блокировки в диске
01h средство разблокировки
02h проверка статуса блокировки
DL = номер диска
Return:
CF=0 , если всё удачно
AH = 00h
AL = состояние блокировки (00h = разблокирован)
CF установлен при ошибке
AH = код ошибки(see #00216)
Заметка:
Эта функция требуется для поддержания любого сменного диска пронумерованного 80h или выше; до 255 блокировок может быть помещено в диск, и носители Физически не разблокируются , пока все блокировки не будут удалены.
SeeAlso: AH=41h"INT 13 Ext",AH=46h,AH=49h,INT 15/AH=52h"INT 13 Extensions"
--------d-1346-------------------------------
INT 13 - IBM/MS INT 13 Extensions – Извлечь носитель
AH = 46h
AL = 00h (резерв)
DL = номер диска
Return:
CF=0 , если всё удачно
AH = 00h
AL = состояние блокировки (00h = разблокирован)
CF установлен при ошибке
AH = код ошибки(see #00216)
SeeAlso: AH=49h,INT 15/AH=52h"INT 13 Extensions"
--------d-1347-------------------------------
INT 13 - IBM/MS INT 13 Extensions – Расширенный поиск
AH = 47h
DL = номер диска
DS:SI-> Дисковый пакет адреса (см. *00254)
Return:
CF=0 , если всё удачно
AH = 00h
CF установлен при ошибке
AH = код ошибки(see #00216)
SeeAlso: AH=0Ch,AH=42h"INT 13 Ext"
--------d-1348-------------------------------
INT 13 - IBM/MS INT 13 Extensions – Получить параметры диска
AH = 48h
DL = диск (80h-FFh)
DS:SI -> буффер для параметров диска(see #00255)
Return:
CF=0 , если всё удачно
AH = 00h
DS:SI буффер заполнен
CF установлен при ошибке
AH = код ошибки(see #00216)
BUG(Дефект):
Некоторые различные Compaq BIOS-ы некорректно сообщают информацию о высоко-пронумерованных дисках (типа 90-ого, B0h, D0h, и F0h) в подарок, давая им ту же самую геометрию как у диска 80h;
Сканирование числа дисков , останавливается как только число допустимых дисков увеличится до значения хр. по адресу 0040h:0075h
SeeAlso: AH=08h,AH=41h,AH=49h,MEM 0040h:0075h
Формат IBM/MS INT 13 Extensions диск-параметров:
Смещение Размер Описание (Table 00255)
00h WORD (Запрос) размер буфера
(001Ah для v1.x, 001Eh для v2.x, 42-ого для v3.0)(Возврат) размер возвращенных данных
02h WORD информационный флаг(see #00256)
04h DWORD число физических цилиндров на диске
08h DWORD число физических головок на диске
10h QWORD общее число секторов на диске
18h WORD байт в секторе
---v2.0+ ---
1Ah DWORD -> EDD параметры конфигурации (see #00260)
FFFFh:FFFFh если недоступны
---v3.0 ---
1Eh WORD сигнатура BEDDh индицирует присутствие
информации Пути Устройства(Device Path info)
20h BYTE длина Device Path информации, включающей
сигнатуру и этот байт(24h for v3.0)
21h 3 BYTEs резерв (0)
24h 4 BYTEs ASCIZ имя главной шины(host bus)("ISA" or
"PCI")
28h 8 BYTEs ASCIZ имя-тип интерфейса
"ATA"
"ATAPI"
"SCSI"
"USB"
"1394" IEEE 1394 (FireWire)
"FIBRE" Fibre Channel
30h 8 BYTEs Interface Path (see #00257)
38h 8 BYTEs Device Path (see #00258)
40h BYTE резерв (0)
41h BYTE контрольная сумма байтов 1Eh-40h (второго
дополнения суммы , которая делает 8-разрядную сумму из байтов 1Eh-41h равной 00h)
Заметка:
если размер меньше 30 при вызове, последний DWORD не будет
возвращен v2.x выполнением; Таккже для Device Path info.
SeeAlso: #00259,#03160
Битовые поля (Bitfields) для IBM/MS INT 13 Extensions информационных флагов:
Биты Описание(Table 00256)
0 DMA boundary errors handled transparently
(Ошибки границы DMA, обработанные очевидно)
1 cylinder/head/sectors-per-track нформация имеет силу
2 сЪёмный диск
3 поддержка записи с проверкой
4 диск поддерживает (change-line) (требуется ,если диск >= 80h
есть сЪёмный)
5 диск может быть заблокирован(требуется ,если диск >= 80h
есть сЪёмный)
6 CHS информационный набор установлен к максимальным поддерживаемым значеним, не текущего носителя
15-7 резерв (0)
SeeAlso: #00255
Фармат EDD v3.0 Interface Path:
Смещение Размер Описание (Table 00257)
---ISA---
00h WORD 16-bit базовый адрес
02h 6 BYTEs резерв (0)
---PCI---
00h BYTE номер PCI шины
01h BYTE номер PCI устройства
02h BYTE PCI function number(PCI функциональный номер)
03h 5 BYTEs резерв (0)
SeeAlso: #00255,#00258
Формат EDD v3.0 Device Path:
Смещение Размер Описание (Table 00258)
---ATA---
00h BYTE флаг: 00h = master, 01h = slave
01h 7 BYTEs резерв (0)
---ATAPI---
00h BYTE флаг: 00h = master, 01h = slave
01h BYTE логический номер устройства
02h 6 BYTEs резерв (0)
---SCSI---
00h BYTE логический номер устройства
01h 7 BYTEs резерв (0)
---USB---
00h BYTE будет определен(to be determined)
01h 7 BYTEs резерв (0)
---IEEE1394---
00h QWORD 64-bit FireWire General Unique Identifier
(GUID)(FireWire Общий Уникальный Идентификатор)
---FibreChannel---
00h QWORD Word Wide Number (WWN)
SeeAlso: #00255,#00257
Фармат Phoenix Enhanced Disk Drive Spec оттранслированной таблицы параметров диска:
Смещение Размер Описание(Table 00259)
00h WORD число цилиндров
02h BYTE число головок
03h BYTE A0h (сигнатура, указывающая оттранслированную
таблицу)
04h BYTE число физических секторов на дорожке
05h WORD Старт номера цилиндра предварительной
компенсации записи
(starting write precompensation cylinder number)
07h BYTE резерв
08h BYTE управляющий байт
(see #03162 at INT 41"DISK 0")
09h WORD число физических секторов
0Bh BYTE число физических головок
0Ch WORD номер цилиндра зоны посадки головок
0Eh BYTE число логических секторов в дорожку
0Fh BYTE контрольная сумма
Program: the Phoenix Enhanced Disk Drive Specification Является добавлением к IBM / MS INT 13 расширениям
SeeAlso: #00260,#03160
Формат Phoenix Enhanced Disk Drive Spec Fixed Disk Parameter Table:
Смещение Размер Описание(Table 00260)
00h WORD физический базовый адрес порта ввода –
вывода(I/O)
02h WORD Адрес порта-управления дисковода
04h BYTE флаги диска (see #00261)
05h BYTE частная информация
Биты 7-4 резерв (0)
Биты 3-0: Phoenix частный (используемый BIOS)
06h BYTE IRQ для диска (bits 3-0; bits 7-4
зарезервированны и должны быть == 0)
07h BYTE счётчик секторов для мульти-секторной
передачи
08h BYTE управление DMA
биты 7-4: DMA тип (0-2) согласно ATA-2 спецификации биты 3-0: DMA канал
09h BYTE programmed I/O control (программное
управление вводом-выводом)
биты 7-4: резерв (0)
биты 3-0: PIO тип (1-4) согласно ATA-2 спецификации
0Ah WORD Опции диска (see #00262)
0Ch 2 BYTEs резерв (0)
0Eh BYTE уровень пересмотров расширений(high
nybble=major, low nybble=minor)
(в настоящее время 10h для v1.0 и 11h для v1.1-3.0)
0Fh BYTE 2's дополняют контрольную сумму байтов 00h-
0Eh;(8-разрядная сумма всех байтов 00h-0Fh должна равняться 00h)
SeeAlso: #00259
Битовые поля для Phoenix Enhanced Disk Drive Spec диск-флагов:
Биты Описание (Table 00261)
7 резерв (1)
6 LBA включена
5 резерв (1)
4 диск есть slave
3-0 резерв (0)
SeeAlso: #00260,#00262
Битовые поля Phoenix Enhanced Disk Drive Spec опций диска:
Биты Описания(Table 00262)
0 быстрый PIO включен (разрешен)
1 быстрый DMA доступ включён
2 блок PIO (multi-секторная передача) включена
3 CHS трансляция включена
4 LBA трансляция включена
5 сменный носитель(media)
6 ATAPI устройство (CD-ROM)
7 32-битовый режим передачи
---v1.1+ ---
8 ATAPI устройство использует DRQ, чтобы сообщить о готовности
для команды пакета (должен быть 0 если бит 6 == 0)
10-9 тип передачи (должен быть 00 если бит 3 == 0)
00 Phoenix сдвигающаяся бит трансляция
01 LBA-assisted трансляция
10 резерв
11 частная трансляция
---v3.0---
11 Ultra DMA доступ разрешен
15-12 резерв
SeeAlso: #00260,#00261
--------d-1349-------------------------------
INT 13 - IBM/MS INT 13 Extensions – Расширенная замена носителей
AH = 49h
DL = номер диска
Return: CF = 0 если носители не изменились
AH = 00h
CF установлен если носители, возможно, изменились
AH = 06h (see #00216)
Заметка:
В отличие от AH=16h, любой номер диска может быть определен
SeeAlso: AH=16h,AH=41h"INT 13 Ext",AH=46h
--------d-134E-------------------------------
INT 13 - IBM/MS INT 13 Extensions v2.1 – Установка конфигурации аппаратных
средств
AH = 4Eh
AL = функция
00h разрешить выбор с упреждением
01h запретить выбор с упреждением
02h установить максимальный PIO режим передачи
03h установить PIO-режим в 0
04h установить PIO-режим передачи по умолчанию
05h разрешить INT 13 DMA максимальный режим
06h запретить INT 13 DMA
DL = номер диска
Return: CF = 0 если выполнилась успешно
AH = 00h
AL = статус
00h команда безопасна (воздействовала только на указанный
диск)
01h воздействуют на другие устройства
CF установлен при ошибке
AH = код ошибки (see #00216)
Заметка:
DMA и PIO режимы взаимоисключающие, так выбор DMA отключает
PIO (или для указанного устройства или всех устройств на этом
rонтроллере), и выбор PIO отключает DMA
SeeAlso: AH=41h"INT 13 Extensions",AX=5001h"Enhanced Disk Drive"