Доброе время суток.
Мне надо вставить в программу код типа:
mov ax, 0x1510
....
int 0x2f
Как его грамотно "перефразировать" и вставить в программу так, чтоб Винда не висла?
Здравствуйте Alexander, Вы писали:
A>Доброе время суток. A>Мне надо вставить в программу код типа: A>mov ax, 0x1510 A>.... A>int 0x2f A>Как его грамотно "перефразировать" и вставить в программу так, чтоб Винда не висла?
Не понял, что ты пытаешся этим сделать... Мультиплексное прерывание дос... mscdex-сервис...
Если пишешь win32 сразу забудь о прерываниях. Ничего общего с дос.
SM>Не понял, что ты пытаешся этим сделать... Мультиплексное прерывание дос... mscdex-сервис... SM>Если пишешь win32 сразу забудь о прерываниях. Ничего общего с дос.
Я хотел написать проигрыватель CD без использования MCI... так судя по всему не пойдёт...
Может ты подскажешь как это можна сделать по-другому.
Здравствуйте Alexander, Вы писали:
A>Здравствуйте ServerMouse, Вы писали:
SM>>Не понял, что ты пытаешся этим сделать... Мультиплексное прерывание дос... mscdex-сервис... SM>>Если пишешь win32 сразу забудь о прерываниях. Ничего общего с дос. A>Я хотел написать проигрыватель CD без использования MCI... так судя по всему не пойдёт... A>Может ты подскажешь как это можна сделать по-другому.
Для Win9x ещё можно сделать нечто подобное, только сначала нужно проникнуться описанием функций DPMI и понять что делать INT 2F AX=1510h в принципе нельзя, потому как там адрес буфера указывается в формате seg16:off16. Поэтому нужно использовать INT 31h AX=300h, правда его тоже вызвать напрямую нельзя. Память для буфера выделяется через такой атавизм как GlobalDosAlloc (KERNEL). В MSDN описания такой функции скорее всего нет, правда она числется в списке Deleted Windows Programming Elements.
Теперь о реализации.
В MSDN есть статья "How Win32 Applications Can Read CD-ROM Sectors in Windows 95". Там пример с использованием thunk'а к 16-битной dll (Нужен компилятор и линкер, на которых можно программировать под Win3x, естествено VC 6 не катит, судя по всему потребется компилятор с ассемблера и компилятор thunk-скриптов). Если не страшно использовать использовать недокуметированные функции (QT_Thunk, VxDCall, LoadLibrary16, ...), то можно всё воткнуть в один exe и обойтись без скриптов для thunk. Только нужно хорошо подумать стоит ли игра свеч.
Здравствуйте Roman_M, Вы писали:
A>>Здравствуйте ServerMouse, Вы писали: RM>В MSDN есть статья "How Win32 Applications Can Read CD-ROM Sectors in Windows 95". Там пример с использованием thunk'а к 16-битной dll (Нужен компилятор и линкер, на которых можно программировать под Win3x, естествено VC 6 не катит, судя по всему потребется компилятор с ассемблера и компилятор thunk-скриптов). Если не страшно использовать использовать недокуметированные функции (QT_Thunk, VxDCall, LoadLibrary16, ...), то можно всё воткнуть в один exe и обойтись без скриптов для thunk. Только нужно хорошо подумать стоит ли игра свеч.
может и стоит, только не с моим объёмом знаний в данной области... а за столь детальный ответ болшое ПАСИБА