Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Нужна спецификация MSCDEX\'а

Аноним
Хочу написать Unit для работы с Audio CD.
Но нет документации на MSCDEX.
461
08 февраля 2002 года
gerard
102 / / 20.12.1999
Если вас заинтересует, как работать с MSCDEX из программы на Ассемблере, то могу кое-что об этом рассказать.

Итак, обращение к MSCDEX производится через INT 2Fh (это так называемое мультиплексное прерывание, используемое для работы с резидентными программами типа PRINT, APPEND и т.д.). При этом в AH заносится 15h - код программы MSCDEX, в AL - номер функции:

00h - вернуть в CX номер первого устройства CD-ROM (0 - A, 1 - B и т.д.) и в BX число таких устройств (именно устройств, так как один и тот же драйвер может поддерживать и несколько однотипных устройств)

01h - записать по адресу ES:BX таблицу адресов драйверов устройств CD-ROM. Таблица состоит из пятибайтных элементов, число которых равно числу устройств, первый байт содержит 0, остальные - адрес драйвера в виде сегмент:смещение. Если один драйвер поддерживает несколько устройств, то первый байт будет содержать номера 0, 1 и т.д.

02h - записать по адресу ES:BX имя файла копирайта для устройства с номером (CX)

03h - записать по адресу ES:BX имя файла
абстракта для устройства с номером (CX)

04h - записать по адресу ES:BX имя файла
библиографии для устройства с номером (CX)

В функциях 02h - 04h следует отводить под имя файла не менее 38 байт (31 байт самого имени, 6 байт номера версии и нулевой байт)

05h - записать по адресу ES:BX описатель тома с номером (DX) для устройства с номером (CX). Описатели нумеруются с нуля. В AL возвращается 1 для стандартного описателя, FFh для последнего описателя и 0 - для всех остальных. Под описатель нужно отводить 2 Кб

06h - включить функцию отладки

07h - выключить функцию отладки

08h - прочитать (DX) секторов, начиная с номера (SI:DI), с устройства (CX) и записать их по адресу ES:BX

09h - записать (DX) секторов, начиная с номера (SI:DI), на устройство (CX), прочитав их по адресу ES:BX

0Bh - возвращает BX = ADADh, если устройство с номером (CX) поддерживается MSCDEX

0Ch - возвращает в BX номер версии MSCDEX

0Dh - записать по адресу ES:BX массив номеров всех устройств CD-ROM

0Eh - для устройства с номером (CX) получить в DX (если BX = 0) или установить из DX (если BX = 1) код описателя тома, который MSCDEX будет искать на диске (DX = 0100h для первичного описателя и 0201h для добавочного описателя формата Kanji)

0Fh - для устройства с номером (CX) найти файл, если его имя с полным путем записано по адресу ES:BX, и сохранить информацию о нем по адресу SI:DI

10h - для устройства с номером (CX) вернуть в ES:BX адрес драйвера
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог