Нужна спецификация MSCDEX\'а
Но нет документации на 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 адрес драйвера