Читайте также:
|
|
Функция прерывает цикл вывода оцифрованных данных.
Вход: ВХ = 12
АХ = 0 - прервать цикл в конце текущей итерации;
= 1 - прервать цикл немедленно.
Выход: АХ = 0 - успешное выполнение операции;
= 1 - цикл вывода звука не активен.
Использование функций драйвера для проигрывания VOC-файлов
Давайте подытожим разговор об используемых функциях. Вообще-то они потрясающе просты и вы наверняка сможете самостоятельно написать небольшую программу и поэкспериментировать с цифровыми каналами ввода-вывода звуковой карты Sound Blaster... Как бы не так! Неужели я вас брошу одних в этом цифровом чистилище? Ни в коем случае. Давайте-ка вместе загрузим драйвер и проиграем какой-нибудь VOC-файл. То, что у нас получится, вы можете впоследствии использовать в собственных играх.
Первое, что мы должны сделать, это загрузить CT-VOICE.DRV в память. Для этого нужно просто выделить некоторое количество памяти, открыть файл как двоичный и загрузить его байт за байтом. Есть, правда, одна проблема: драйвер должен быть загружен от границы сегмента. Это значит, что сегмент может, быть любым, но смещение начала драйвера должно быть нулевым. Ни одна функция из семейства allocate этого делать не умеет. Здесь необходима функция, которая способна резервировать память на границе параграфа. Такая функция называется _dos_allocmem(). Итак, нам надо сделать следующее:
§ Открыть файл CT-VOICE.DRV;
§ Определить его размер;
§ Отвести под него память;
§ Загрузить его.
Это делает функция, приведенная в Листинге 9.1.
Дата добавления: 2015-07-12; просмотров: 195 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Функция 0: Получить версию драйвера | | | Листинг 9.1. Выделение памяти для CT-VOICE.DRV. |