Assembler - язык неограниченных возможностей

         

Звуковые платы


Звуковые платы, совместимые с Sound Blaster, поддерживают стандартный интерфейс для общения с компьютером через порты 220h– 22Fh для воспроизведения оцифрованного звука. Кроме того, большинство звуковых плат поддерживает порты 0388h – 038Fh для совместимости с Adlib — одной из первых звуковых плат, в которой не было возможности вывода оцифрованного звука, а присутствовал только частотный синтез. Возможности частотного синтеза значительно расширились со времени появления Adlib, но речь не о ней, потому что средства MIDI-интерфейса позволяют получать более качественную музыку, a Sound Blaster — звук.

Базовый порт для звуковой платы может не быть равен 220h, в этом случае все следующие адреса надо изменить:

порт 220h для чтения: состояние левого канала FM

порт 220h для записи: индексный регистр левого канала FM

порт 221h: регистр данных левого канала FM

порт 222h для чтения: состояние правого канала FM

порт 222h для записи: индексный регистр правого канала FM

порт 223h: регистр данных правого канала FM

порт 224h для записи: индексный регистр микшера

порт 225h: регистр данных микшера

порт 226h: сброс и инициализация DSP

порт 228h для чтения: состояние FM

порт 228h для записи: индексный регистр FM

порт 229h для записи: регистр данных FM

порт 22Ah для чтения: чтение данных из DSP

порт 22Ch для записи: вывод данных/команд DSP

порт 22Ch для чтения: состояние буфера записи DSP (бит 7)

порт 22Eh для чтения: состояние буфера чтения DSP (бит 7)

Программирование современных звуковых плат — весьма сложное занятие, поэтому в качестве примера рассмотрим одну часто применяемую операцию — воспроизведение оцифрованного звука. С этой целью потребуется программировать только DSP, для которого и команды, и данные (которые фактически являются аргументами команд) посылают в один и тот же порт 22Ch. Кроме того, стандартный DSP вызывает одно аппаратное прерывание (чаще всего IRQ5) и использует один канал DMA (чаще всего канал 1). DMA — конструкция, позволяющая внешним устройствам работать с памятью компьютера без вмешательства центрального процессора, рассмотрена в следующей главе, а здесь остановимся на основных командах DSP и попробуем воспроизвести звук без использования DMA и IRQ.



Содержание раздела