Аппаратное обеспечение персонального компьютера© Александр Фролов, Григорий ФроловТом 33, М.: Диалог-МИФИ, 1997, 304 стр. Функции MSCDEXВ этом разделе мы приведем краткое описание основных функций программного интерфейса расширения MSCDEX.EXE, доступные в среде MS-DOS. Все функции расширения MSCDEX.EXE вызываются через мультиплексное прерывание INT 2Fh. При этом в регситр AH записывается значение 15h, а в регистр AL – код функции. Определение количества устройств CD-ROMСегодня все большее количество компьютеров оснащается сразу несколькими устойствами чтения CD-ROM. С помощью функции 00h можно определить количество устройств чтения CD-ROM, имеющихся в системе, номер первого устройства CD-ROM, а также проверить, установлена ли программа MSCDEX:
Заметим, что буквенные обозначения устройств не обязательно должны идти последовательно, начинаясь со значения, которое функция 00h возвращает в регистре CX. Если вам нужно определить обозначения всех устройств чтения CD-ROM, следует воспользоваться функцией 150Dh, о которой мы расскажем ниже в этом разделе. Получение списка устройств CD-ROMС помощью функции 01h вы можете получить список структур CD_ROM_Driver_Desc, описывающих установленные устройства CD-ROM:
Первый байт такой структуры содержит номер устройства (unit nubmer), следом за которым идут четыре байта адреса заголовка драйвера, обслуживающего данное устройство: typedef struct _CD_ROM_Driver_Desc { unsigned char cSubUnit; unsigned long dwDevHeader; } CD_ROM_Driver_Desc; Перед вызовом этой функции необходимо подготовить буфер достаточного размера. Размер буфера нетрудно определить, узнав предварительно количество устройств CD-ROM, установленных в системе, с помощью функции 00h. Для каждого устройства в буфере требуется пять байт оперативной памяти. Получение имени файла прав собственностиФункция 02h записывает в буфер имя файла, содержащего права собственности на компакт-диск, установленный в устройстве чтения CD-ROM:
Функция может вернуть в выходном буфере пустую строку, состоящую из одного нулевого байта. Получение имени файла резюмеФункция 03h записывает в буфер имя файла, содержащего резюме компакт-диска, установленного в устройстве чтения CD-ROM:
Функция может вернуть в выходном буфере пустую строку, состоящую из одного нулевого байта. Получение имени файла библиографической документацииФункция 04h записывает в буфер имя файла, содержащего библиографическую документацию компакт-диска, установленного в устройстве чтения CD-ROM:
Функция может вернуть в выходном буфере пустую строку, состоящую из одного нулевого байта. Чтение сектора оглавления компакт-дискаПри помощи функции 05h вы можете найти все оглавления тома Volume Descriptor:
Чтение сектора по абсолютному адресуФункция 08h предназначена для прямого чтения секторов компакт-диска и напоминает прерывание INT 25h опреационной системы MS-DOS:
Проверка устройства чтения CD-ROMПри помощи функции 0Bh вы можете проверить, является диск устройством чтения CD-ROM, доступ к которому возможен через функции MSCDEX:
Определение версии MSCDEXФункция 0Ch предназначена для определения версии установленной программы MSCDEX:
Определение обозначения устройств чтения CD-ROMПри помощи функции 0Dh вы можете заполнить массив номерами установленных в системе устройств чтения CD-ROM:
Размер массива должен быть равен количеству установленных в системе устройств чтения CD-ROM, которое можно определить с помощью функции 00h. Вызов драйвера CD-ROMФункция 10h предназначена для прямого вызова драйвера устройства чтения CD-ROM:
Перед вызовом этой функции вы должны подготовить заголовок запроса. Вызывая драйвер CD-ROM, вы можете выполнять такие операции, как проигрывание звуковых дорожек, извлечение компакт-диска, получение информации об устройстве, компакт-диске и дорожках и так далее. |