Звуки на Спринтере ?

Компьютер "Спринтер" http://sprinter.nedopc.org

Moderator: Shaos

User avatar
Vasil Ivanov
Doomed
Posts: 413
Joined: 11 Dec 2003 14:34

Звуки на Спринтере ?

Post by Vasil Ivanov »

Каким образом на Спринтере извлекать звуки ?.
Есть у кого-нить работающий кусок кода по
этой теме ?. Как-то помниться в старо-давние
времена я попробовал, но ничего вразумительного
не вышло ;(.
Vasil Ivanov
vasil-i@yandex.ru
User avatar
Shaos
Admin
Posts: 24008
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Звуки на Спринтере ?

Post by Shaos »

Vasil Ivanov wrote:Каким образом на Спринтере извлекать звуки ?.
Есть у кого-нить работающий кусок кода по
этой теме ?. Как-то помниться в старо-давние
времена я попробовал, но ничего вразумительного
не вышло ;(.
Я внятного ответа с примером так от Петерсов и не получил в свое время. Пищать то его можно заставить, как я понимаю (через тот же ковокс-интерфейс), но делать устойчивый семплрейт наверное трудновато будет. Видимо надо плеер дизассемблировать.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
CHRV
God
Posts: 1101
Joined: 29 Dec 2003 01:00
Location: Москва

Re: Звуки на Спринтере ?

Post by CHRV »

Василий!
Я тебе отправил мылом все собранные мною примеры с форума (я их оформил ввиде файла). Там в том числе пример как работать со звуком от И.Мака.
User avatar
Shaos
Admin
Posts: 24008
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Звуки на Спринтере ?

Post by Shaos »

CHRV wrote:Василий!
Я тебе отправил мылом все собранные мною примеры с форума (я их оформил ввиде файла). Там в том числе пример как работать со звуком от И.Мака.
Ну и мне отправь - я выложу на сайт ;)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Vasil Ivanov
Doomed
Posts: 413
Joined: 11 Dec 2003 14:34

Re: Звуки на Спринтере ?

Post by Vasil Ivanov »

Shaos wrote:
Vasil Ivanov wrote:Каким образом на Спринтере извлекать звуки ?.
Есть у кого-нить работающий кусок кода по
этой теме ?. Как-то помниться в старо-давние
времена я попробовал, но ничего вразумительного
не вышло ;(.
Я внятного ответа с примером так от Петерсов и не получил в свое время. Пищать то его можно заставить, как я понимаю (через тот же ковокс-интерфейс), но делать устойчивый семплрейт наверное трудновато будет. Видимо надо плеер дизассемблировать.
Это идея, в данной ситуации, тем более что плейер не большой - 4 кило.
Vasil Ivanov
vasil-i@yandex.ru
User avatar
CHRV
God
Posts: 1101
Joined: 29 Dec 2003 01:00
Location: Москва

Re: Звуки на Спринтере ?

Post by CHRV »

Shaos wrote: Ну и мне отправь - я выложу на сайт ;)
Отправил тоже!
User avatar
Shaos
Admin
Posts: 24008
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Covox Blaster

Post by Shaos »

Тут всплыла информация, которая является актуальной и несколько противоречит тому, что было написано в старой документации на Спринтер:

Code: Select all

Звук
            Ivan_Mak
            (Sprinter Team)
            2002/09/13 04:28
                   Re: Программирование звука [re: Shaos] 



            Звук через COVOX-Blaster (COVOX с буферным ОЗУ) 

            CBL=COVOX-Blaster 

            Порт управления: 004Eh (16-bit port!!!, писать только через OUT 
            (c),reg) 

            ; bit 7 - COVOX-Blaster on (если 0 то обычный режим COVOX) 
            ; bit 6 - STEREO-mode on 
            ; bit 5 - 16bit-mode on 
            ; bit 4 - Interrupt on - включение прерываний 

            ; bits 3..0 - частота 
            ; 
            ; 0 16khz -- mono/stereo --- это старые режимы -- не использовать! 
            ; 1 22khz -- mono/stereo --- это старые режимы -- не использовать! 
            ; 2 reserved 
            ; 3 reserved 
            ; 4 reserved 
            ; 5 reserved 
            ; 6 reserved 
            ; 7 reserved 
            ; 
            ; 8 7.8125 KHz -- mono/stereo 8/16 bit 
            ; 9 10.9375 KHz -- mono/stereo 8/16 bit 
            ; A 15.625 KHz -- mono/stereo 8/16 bit 
            ; B 21.875 KHz -- mono/stereo 8/16 bit 
            ; C 31.25 KHz -- mono/stereo 8/16 bit 
            ; D 43.75 KHz -- mono/stereo 8/16 bit 
            ; E 54.6875 KHz -- mono/stereo 8/16 bit 
            ; F 109.375 KHz -- mono/stereo 8/16 bit 

            Порт 0FEh - биты запроса прерываний от CBL 

            bit 7 - запрос данных для CBL 
            bit 5 - синхронизация экрана (кадровый импульс, 4мс длиной, 20мс 
            период) 


            Запись данных в COVOX-Blaster производится с помощью акселератора,
            записью в страницу ОЗУ 0FDh (просто записать блок 128/256 байт с 
            адреса 0C000h) 
            или через порт 4Fh командами OTIR блок записываемых данных по
            запросу. Для 8 бит режима - 128 байт; для 16 бит - 256 байт 
P.S. Оказалось, что это из архива CHRV, который он тут выше озвучивал - так что слепляю темы вместе и приаттачиваю сам архив
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24008
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Covox Blaster

Post by Shaos »

Самый простой пример:

Code: Select all

Test:
 LD BC,04Eh
 LD A,8Bh  ; включить 8 бит 22khz mono
 OUT (C),A ; - CBL - включен!
 INC C
 LD HL,Sample
 OTIR  ; загрузить все 256 байт
 RET

Sample:
  DB 80h,81,82h,....   ; (256 отсчетов звука с нулем на уровне 80h)
Должен пищать одну ноту (если в Sample записать синус, то должно чисто звучать).

Запрос данных в бите 7 порта FE появляется для каждых 128 байт (256 в режиме 16 бит). Его следует проверять, если его не оказалось, то прерывание экранное, а не от CBL.

При выставленных прерываниях от CBL, стоит использовать режим IM 2, иначе, будет часто вызываться DOS-овая процедура прерываний и могут появиться тормоза на высоких частотах.


В режиме 8 бит сэмплы должны иметь уровень нуля на 80h,
16 бит сэмплы - уровень нуля - 0000h,
Stereo-сэмплы - должны иметь чередующиеся отсчеты левого и правого канала.

Code: Select all

mono_8bit:
  DB 80h,81h,7Fh....

mono_16bit:
  DW 0,1000,-1000...

stereo_8bit:
  DB 80h,80h,81h,80h,7Fh,80h...  ; здесь один канал играет, второй молчит

stereo_16bit:
  DW 0,0,1000,0,-1000,0...  ;  аналогично, один канал играет, второймолчит
(При тестировании 16 бит режима следует помнить, что звук с амплитудой в единицы почти не слышен)

P.S. Формат данных выбран так, что бы из WAV-файлов данные в CBL пересылать простой операцией блочной пересылки.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24008
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Звуки на Спринтере ?

Post by Shaos »

Ну и обычный ZX-бипер должен работать, и обычный пентагоновский Covox:
Стандартный спектрумовский бипер (бит 5 порта #FE) выведен через ту
же схему, что и Covox, и AY. (TDA1543) Программируется стандартно.

Covox - 8-бит -- позволяет выводить WAV сигналы. В стандартной
конфигурации Covox подключен на порт #FB и #4F. Вывод последовательности
байтов в любой из этих портов приведет появлению сигнала на звуковом выходе.

В стандартной конфигурации на выходы левого и правого канала выдается один
и тот же сигнал (монофоническое звучание).
Я тут за главного - если что шлите мыло на me собака shaos точка net