Секреты программирования игр


API пакета программ DIGPAK


Пакет программ DIGPAK наряду с интерфейсами реального и защищенного режима DOS включает в себя набор исходных текстов, которые работают во всех моделях памяти. Драйверы DIGPAK полностью совместимы с драйверами MIDPAK. Кроме того, хотя все драйверы DIGPAK разрабатывались для реального режима, они работают в защищенном режиме через подключаемый интерфейс DIGPLAY. Поддержка защищенного режима требует наличия драйверов DIGPAK версии 3.4 или выше.

В версии 3.4 пока имеются не всё драйверы звука DIGPAK. Еще не конвертированы драйверы для Gravis Ultrasound и Turtle Beach Multisound. Кроме того, драйверы, использующие таймер 8253, также не будут работать в  защищенном режиме из-за большой потери производительности и возможных конфликтов вследствие высокой частоты прерываний таймера.

Набор драйверов оцифрованного звука использует вектор прерывания 66h, что обеспечивает прозрачный программный интерфейс. Ниже описываются два способа воспроизведения оцифрованного звука. Первый способ основан на прерываниях. Второй - на использовании библиотеки функций на Си или ассемблере, которые позволяют не только осуществлять доступ к драйверам звука, но и предоставляют другие полезные функции. Эти функции находятся в исходном файле DIGPLAY.ASM.

******************************************************************

********* Спецификация интерфейса прерывания 66h *****************

******************************************************************

Вызывая функции для исполнения звука, вы передаете ей адрес структуры звуковых данных (SNDSTRUC), содержащей базовую информацию, описыва­ющую желаемый звуковой эффект. Ниже показано, как это сделать.

*** РЕАЛЬНЫЙ РЕЖИМ:

typedef struct

(

unsigned char far *sound* // дальний указатель на звуковые данные

unsigned short sndlen;    // длина звуковой последовательности

short far *IsPiaying;     // адрес флага состояния

short frequency;          // частота воспроизведения

} SNDSTRUC;

*** ЗАЩИЩЕННЫЙ РЕЖИМ:

typedef struct

{

unsigned char *sound* // должен быть в формате

// СМЕШЕНИЕ:СЕГМЕНТ в пределах 1Мб!

unsigned short sndlen;// длина звуковой последовательности < 64К

short *IsPlaying;     // адрес флага состояния. СМЕЩЕНИЕ:СЕГМЕНТ!

short frequency;      // частота воспроизведения

} SNDSTRUC;

********* функции DIGPAK *****************************************

Замечание

Все неуказанные номера функций являются устаревшими.




Начало  Назад  Вперед