Статья, опубликованная в электронном журнале Rush в 1999 году.
(c) Иноземцев Алекс & HARD
from Witchcraft 1999
I. Глава самая важная.
1. Введение
Так что же такое это загадочное слово DMA Ultrasound Card? Сколько всяких нелепых вымыслов и слухов окутало этот девайс, как никакой из всех ранее созданных для SPECCY. И по сей день идут жаркие споры в fido, и самое интересное в том, что спорят юзеры никогда ранее не видевшие эту карту и не слышавшие ее звучания. И вот теперь, когда основная работа по созданию DMA Ultrasound Card уже за плечами, мы решили написать эту статью, чтобы раз и навсегда покончить со всеми этими нелепыми выдумками.
Итак, что же такое DMA Ultrasound Card прежде всего это звуковая карта, построенная на принципе прямого доступа к памяти (Direct Memory Access), имеющая некоторые дополнительные функции (см. ниже).
2. Техническая характеристика.
Чтобы все всем было понятно привожу техническую характеристику карты с краткими пояснениями.
Количество каналов*bit: 4*8
Громкость: 0-63 (6 бит)
Частота дискретизации: до 3.5МГц(не кГц!)
Чаще всего возникают вопросы (споры) о частоте дискретизации,обьясню подробно: м\с i8237A (аналог - КР1810ВТ37) работает, по схеме, с максимальной частотой выборки 3.5МГц(7МГц некоторые модификации при TURBO), найти такое применение в области звука весьма сложно,т.к. максимальная частота дискретизации .wav - 48кГц. Поэтому во всех характеристиках, связанных со звуком, пишется 48кГц.
Обслуживаемая память: до 1Мб (с возможностью обслуживания до 16Мб).
Макс. размер сэмпла: до 64кб (т.к. DMA видит страницы не по 16кб, как Z80, а по 64кб!). Вообще длина сэмпла не ограничена, она просто разбивается на отрезки кратные 64кб.
3. Дополнительные возможности DMA
- DMA Ultrasound Card представляет возможность использования дополнительно 2-х таймерных прерываний с частотой от 30Гц до 1.7МГц. Для чего это нужно? Это уже дело программиста.
- Использование картой ОЗУ компа дает возможность использовать ее как акселератор для работы с блоками. Аналог команды ldir процессора Z80 выполняется за 8 тактов на байт при частоте контроллера 3.5МГц, и за 4 такта при частоте 7МГц. Т.к. размер банка DMA - 64кб, против 16кб Z80, то можно делать пересылку блоков между страницами.
- Программный тормоз компутера. В тестовом режиме контроллер DMA выдает только запрос прямого доступа к памяти, а сигналы выборки не формирутся. Поэтому единственный видимый эффект - это замедление работы компьютера.В этом режиме контроллер выдает максимум 437500 обращений к памяти в секунду, что приводит к торможению компа на 50%. Этот режим дает возможность подбором частоты обращенй установить любую скорость работы компьютера.
- Нельзя не сказать о том, что с DMA возможно проигрывание с HDD .wav-ов 44кГц, стерео, с CD качеством, в realtime неограниченной длины.
Какая от этого польза?-спросите Вы, да вот какая: полноэкранный мультиколор или сколл полного экрана за 2/3 INT'а (при 7МГц - за 28000 тактов). Программным путем можно выставить любой INT (сверху-вниз). Т.к. сэмпл проигрывается по прерываниям, то можно проигрывать запакованный сэмпл с распаковкой в реальном времени.
Кстати, проигрывание .mod ведется по прерываниям, за INT тратится 1000 тактов Z80 (9000 в пике).
4.Программное обеспечение.
ПО для данной карточки написано уже довольно таки не мало, это и муз. редактор адаптированный под DMA - всеми любимый Digital Studio, .mod-, .wav - плейеры, FX-микшер, утилита установки скорости работы компа - FreeSpeed, библиотека звуковых эффектов - DSI, целая куча полностью озвученных игрушек и т.д., и т.п. Сейчас пишется и другой софт.
Одно из самых больших достоинств карты это то,что любая программа, написанная под DMA, не вешается при отсутствии таковой (в отличие от GS). Поэтому ничто не мешает вам, к примеру, поиграть в игру под DMA, просто музыкального сопровождения и эффектов не будет.
DMA Ultrasound Card в отличие от General Sound разрабатывалась не только для озвучивания игрушек (см. ZF#7 - ~Riff Tracker~), это полноценная, профессиональная звуковая карта.
В последущих статьях я постараюсь дать руководство по программированию карты, методику сборки и отладки ее со всевоможными тестами и советами, с помощью которых сборка карты сводится к минимальным затратам времени и сил.
Кстати, о стоимости: DMA Ultrasound Card обойдется баксов в 15-20 (GS стоит 50$!), в зависимости от комплектующих, импортные мелки стоят раза в 1.5 дороже. Ну и недели 2-3 для сборки и наладки.
...






