Из журнала ZX-Guide #2, Рязань, 05-11.1999 DMA Sound Blaster (c) AlCo Предположим,что вы не пожалели свой ко- мпьютер и, вконец искромсав ланцетом (но- жом, отвёрткой) плату, поставили-таки 384x x304. Теперь вы с грустью глядите на кучу проводов,торчащую из совсем недавно краси- во пропаянной платы,и наверняка ничего хо- рошего обо мне не думаете. Но оказывается, это ещё не всё! То, что вы уже сделали - всего лишь подготовитель- ная часть к установке чудовищного по воз- можностям музыкального девайса Sound Blaster v1.00! Вкратце опишу, на что же он способен: - Цифровые звучки на прерываниях (6000 t/ int).Это могут быть,например,вопли раненых врагов в играх и т.п.; - Multi-channel music (16 каналов, 8 кГц); - Цифровая музыка из Digital Studio (3 ка- нала,16 кГц) или из Ultra Sonic (4 канала, 8 кГц) на прерываниях (45000 t/int). Отсу- тствие частотных искажений звука. - MOD'ы с частотой микширования 16 кГц БЕЗ Turbo. А в Turbo их можно вешать на преры- вание! - Проигрывание оцифровок с распаковкой в Realtime (.mp3???) Для его сборки вам потребуется: - 2 шт. 555ИР23 (можно 1533ИР23); - 2 шт. 572ПА1 или мешок резисторов; - 2 инвертора (рекомендую DD94). Теперь схема:
Некоторые пояснения: 16 кГц взято не от балды,а так,чтобы было равно 0,когда элек- тронный луч рисует слева направо,и 1,когда он возвращается справа налево. В регистр считывается крайний правый столбец 384x304 экрана (и правильно,нехрена рисовать там:у меня,например,отображается только ~336 то- чек по горизонтали),а точнее,рисунок этого столбца без атрибутов(атрибуты лучше обну- лить). Так просто всё будет при включенном 384x304,а для того, чтобы в обычном режиме звук не считывался с экрана, нужно внести небольшое добавление в схему Contact 2.03:
Почему я сразу не внёс этот инвертор в схему 384x304? Во-первых,GND легче найти:) Во-вторых, так круче: щёлкнул переключате- лем,и меняется вся картинка (загрузите ис- ходник LISTER80.H и всё поймёте). Внимание! Канал, который здесь нарисо- ван, понимается как ЛЕВЫЙ. ПРАВЫЙ канал - ещё один регистр и ЦАП, причём на вход /C этого второго регистра подаётся тот же 16 кГц,только инвертированный. В остальном скажу вот что:схема Contact +SB больше меняться не будет,за исключени- ем одного маленького момента:вместо GND на сигнал OE^ регистра лучше подать какой-ни- будь разряд порта #EFF7 (если они ещё не все заняты). Я,к сожалению,не знаю станда- ртного (на данный момент) назначения битов этого порта. Если кто знает,plz,скажите.(И не забудьте выделить битик под SB!) Программирование SB. Итак, если вы ещё не знаете, адреса та- кие (левый канал,режим 256x192,0-й экран): С начала прерывания... - Первые 16 байт считываются из #F8CF 4-й странички ОЗУ согласно строения экрана; - Следующие 64 - с адреса #C00F той же 4-й стр. согласно строения экрана (DOWN HL); - Следующие 192 - с адреса #600F; - И, наконец,последние 48 - с адреса #F80F 4-й странички ОЗУ. Для режима 384x304 всё аналогично,толь- ко все адреса на #2000 меньше. Для правого канала ко всем адресам надо прибавить 8. Если кто скажет, что адреса неудобные, то может сразу выйти из этой статьи.Адреса именно такие, какие есть,поскольку на ско- рость работы программ это НЕ ВЛИЯЕТ. Программу, которая довольно резво (6000 t) играет сэмпл в эти адреса,вы можете по- заимствовать всё из того же LISTER80.H. Плейер для цифровой музыки строится так (к примеру,возьмём 3 канала с громкостью): Для каждого из 3 каналов: OUT (32765),page LD D,'MIX3CHN LD LX,16 BEGIN LD C,D ADD A,B + ADC HL,SP + 20 раз LD E,... | LDI + EX AF,AF';a'='endinst CP H JR NZ,$+4 LD H,beginst EX AF,AF' INC D DEC LX JP NZ,BEGIN (около 43 t/байт) И для смесителя каналов: OUT (32765),20 MIX3CHN LD DE,... + + LD C,... + | | LD A,(BC) | | | LD L,... | 11b| 46b| 256b ADD A,(HL) + x4 + x5 | x16 ADD A,(IX+...)| -- | -- + --- LD (DE),A | 44b|230b| 4k => INC D + -1 | | + | JP $+26 | DS 23 + (около 60 t/байт) P.S. Днесь читал про DMA UltraSound. Чува- ки! 20 микросхем - это же полплаты компью- тера! Разве Speccy для того придуман прос- тым, чтобы на него вешали такие чудовищные девайсы? P.P.S. И ещё: решающим для многих аргумен- том против DMA UltraSound будет тот факт, что во время его работы нельзя использо- вать MultiColor и бордерные эффекты!