Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
54
Добавлен:
03.06.2014
Размер:
2.63 Mб
Скачать

РасширениеMscdex

Вторая компонента, необходимая для работы в среде MS-DOS с устройством чтенияCD-ROM – программа Microsoft CD-ROM Extention, которая находится в файлеMSCDEX.EXE. Этот файл входит в комплект MS-DOS и иногда поставляется вместе с устройством чтенияCD-ROM на той же дискете, что и драйвер. Для того чтобы избежать несовместимости, мы рекомендуем всегда использовать ту программу MSCDEX.EXE, что устанавливается на диск вместе с MS-DOS.

Программа MSCDEX.EXE подключается в файле AUTOEXEC.BAT операционной системыMS-DOS следующим образом:

c:\dos\mscdex /d:idecd01

Обратите внимание, что значение параметра /dдолжно совпадать со значением аналогичного параметра для драйвера.

В среде операционной системы Microsoft Windows 95 программаMSCDEX.EXE не нужна, так как все выполняемые ей функции встроены в операционную систему.

Что же касается Microsoft Windows NT, то в ней только часть функций расширенияMSCDEX.EXE моделируется для виртуальной машины DOS. Поэтому не все программы, исходные тексты которых приведены в этой главе, будут там правильно работать.

ФункцииMscdex

В этом разделе мы приведем краткое описание основных функций программного интерфейсарасширенияMSCDEX.EXE, доступные в среде MS-DOS.

Все функции расширения MSCDEX.EXEвызываются через мультиплексное прерываниеINT 2Fh. При этом в регситрAH записывается значение 15h, а в регистрAL – код функции.

Определение количества устройствCd-rom

Сегодня все большее количество компьютеров оснащается сразу несколькими устойствами чтения CD-ROM. С помощью функции 00h можно определитьколичество устройств чтенияCD-ROM, имеющихся в системе, номер первого устройстваCD-ROM, а также проверить, установлена ли программаMSCDEX:

Регистры на входе:

AX= 1500h;

Регистры на выходе:

BX = количество устройств чтенияCD-ROM, установленных в системе;

CX = номер первого устройства чтенияCD-ROM. Значение 0 соответствует устройствуA:, 1 –B: и так далее

Заметим, что буквенные обозначения устройств не обязательно должны идти последовательно, начинаясь со значения, которое функция 00h возвращает в регистреCX. Если вам нужно определить обозначения всех устройств чтенияCD-ROM, следует воспользоваться функцией 150Dh, о которой мы расскажем ниже в этом разделе.

Получение списка устройств cd-rom

С помощью функции 01h вы можете получить список структур CD_ROM_Driver_Desc, описывающих установленные устройстваCD-ROM:

Регистры на входе:

AX= 1501h;

ES:BX = адрес буфера, в который будет скопирован список устройствCD-ROM

Регистры на выходе:

Не используются

Первый байт такой структуры содержит номер устройства (unit nubmer), следом за которым идут четыре байта адреса заголовка драйвера, обслуживающего данное устройство:

typedef struct _CD_ROM_Driver_Desc

{

unsigned char cSubUnit;

unsigned long dwDevHeader;

}CD_ROM_Driver_Desc;

Перед вызовом этой функции необходимо подготовить буфер достаточного размера. Размер буфера нетрудно определить, узнав предварительно количество устройств CD-ROM, установленных в системе, с помощью функции 00h. Для каждого устройства в буфере требуется пять байт оперативной памяти.

Соседние файлы в папке несколько программ