Think #30
09 августа 1999

Программистам - Об AY'ке.

<b>Программистам</b> - Об AY'ке.
       ╔═════════════════════════╗
       ║ Программистам об AY-шке ║▓
       ╚═════════════════════════╝▓▒
        ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒░
         ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░
          ░░░░░░░░░░░░░░░░░░░░░░░░░░░


ТЕХНИЧЕСКАЯ ИНФОРМАЦИЯ ПО ПРОГРАММИРОВАHИЮ
МУЗЫКАЛЬНОГО СОПРОЦЕССОРА "AY" НА SPECCY !
==========================================


Музыкальный   сопроцессор  подключается  к
спектруму через два внутренних порта:

1. Порт 49149 (#BFFD)
2. Порт 65533 (#FFFD)

  Именно через эти два порта процессор Z80
осуществляет  обмен  данными с муз.сопр. У
муз.сопр.  имеется  шестнадцать внутренних
регистров R0...R15.Эти регистры двунаправ-
ленные,т.е. информацию можно в них записы-
вать  и считывать.Для доступа к произволь-
ному  регистру  его  неужно  сделать теку-
щим,для  этого  надо  записать номер этого
регистра  (0..15)  в  порт  65533... после
этого  можно  осуществлять обмен данными с
этим регистром:

Для записи в рег. - вывод в порт 49149

Для чтения из рег. - чтение из порта 65533

Муз.сопр. имеет три независимых канала для
формирования   звука   (A,B  и  C)  и  два
двунаправленных   восьмиразрядных   канала
ввода/вывода - IRA и IRB:

Через  канал  IRA  осуществляется  связь с
принтером, вывод сигналов для специального
интерфейса  MIDI  и,  кроме этого,связь со
специальной выносной  клавиатурой функцио-
нальных клавиш, используемых в расширенном
интерпретаторе Бейсика.
Но  данные  функции  канал IRA выполняет в
натуральном  Sinclairе, а у нас в России в
наших  моделях  это  не  прижилось... ( по
крайней  мере мной небыло найдено ни одной
машины,  где  бы  так  использовался канал
IRA)...

В  наше  время каналы IRA и IRB некоторыми
используються   для   подключения  внешних
устройств: AY-Mouse, AY-Covox и т.д. Hеко-
торые из них даже стали стандартом, правда
не очень распостраненным (Ay-Mouse).

Теперь  рассмотрим  для чего нужны все ре-
гистры и как сформировать звук:

*** R0/R1, R2/R3, R4/R5 ***

Три  спаренных  регистра R0/R1;R2/R3;R4/R5
используются   для  выборки  частоты  тона
соответственно   для   каналов  A,B  и  C.
Необходимые  двенадцатиразрядные  значения
образуються  из восьми бит младшего по но-
меру  регистра и четырех младших бит стар-
шего по номеру регистра...

*** Регистр R6 ***

Младшие  пять  разрядов этого регистра за-
дают частоту шума...

*** Регистр R7 ***

Через этот регистр осуществляется управле-
ние  звуковыми и шумовыми каналами, а так-
же каналами ввода/вывода IRA и IRB:

Биты 0..2

  если их установить,то будет запрещен вы-
  вод частоты тона в каналы A,B и C соотв.

Биты 3..5

  -//- но для частоты шума...

Биты 6 и 7

  Их состояние определяет режим работы ка-
  налов IRA и IRB соответственно:

  если бит=1, то канал работает на ввод...
  если бит=0, то канал работает на вывод..

*** Регистры R8,R9 и R10 ***

Младшие  пять  разрядов этих регистров уп-
равляют  соответственно амплитудой каналов
A,B и C.

*** Регистры R11/R12 ***

Спаренные    регистры   R11/R12   образуют
шестнадцатиразрядное   значение  огибающей
выходного сигнала,R11-младш. R12-старш.

*** Регистр R13 ***

Младшие 4 разряда этого регистра управляют
формой и режимом огибающейвыходного сигна-
ла:

Бит 0 - затухание
Бит 1 - чередование
Бит 2 - нарастание
Бит 3 - продолжение

*** Регистры R14/R15 ***

R14-связь с IRA  R15-связь с IRB ...

------------------------------------------

Теперь конкретно о воспроизведении Digital
эффектов:
Оцифрованный  звук  представляет  из  себя
конечный  набор  восьмиразрядных байт, ха-
рактеризующих значения амплитуды цифруемых
колебаний  в дискретные моменты времени...
Для  воспроизведения оцифровок нужно пода-
вать  в  порты  управления  громкостью эти
байты     с    определенной    частотой...
Распространены  два  вида форматов Digital
звука

1.Wav-файлы:   Оцифровка  производиться по
  256-бальной шкале (0..255), только поло-
  жительной части звуковой волны...

2.Aif-файлы:   Оцифровка  производиться по
  двум 128-бальным шкалам:

  Положительная часть волны (0...128)
  Отрицательная часть волны (-128...0)

Рассмотрим  как  же  воспроизвести  оцифр.
звук:  Если  у вас есть COVOX, то значения
байтов  из  WAV-файла  целиком и полностью
подаются в порт данных COVOX`а. Для проиг-
рывания  AIF-файлов  к каждому байту перед
подачей  его на COVOX надо прибавить число
128...

Это  обуславливается  тем,  что COVOX -это
устройство  для воспроизведения восьмибит-
ных  WAV-файлов... и AIF необходимо преоб-
разовать   для   корректного  проигрывания
COVOX'ом...


А теперь программа:


         ORG  30000
COVOX    EQU  #FB
START    EQU  35000
LENGTH   EQU  5000
PAUSA    EQU  20
         XOR  A
         OUT  (COVOX),A
         LD   HL,START
         LD   DE,LENGTH
LOOP     LD   A,(HL)
***      ADD  A,128
         OUT  (COVOX),A
         LD   B,PAUSA
         DJNZ $
         INC  HL
         DEC  DE
         LD   A,D
         OR   E
         JR   NZ,LOOP
         RET


Если  же  у  вас нет COVOX'а,но есть AY,то
можно  воспроизвести  DIGITAL звук на нем,
хотя качество будет похуже:

         ORG  30000
START    EQU  35000
LENGTH   EQU  5000
PAUSA    EQU  20
CHANEL   EQU  10
         LD   BC,#FFFD
         LD   A,#07
         OUT  (C),A
         LD   B,#BF
         LD   A,#FF
         OUT  (C),A
         LD   HL,START
         LD   DE,LENGTH
         LD   BC,#FF
         LD   A,CHANEL
         OUT  (C),A
LOOP     LD   B,#BF
         LD   A,(HL)
***      ADD  A,128
         SRL  A
         SRL  A
         SRL  A
         OUT  (C),A
         LD   B,PAUSA
         DJNZ $
         INC  HL
         DEC  DE
         LD   A,D
         OR   E
         JR   NZ,LOOP
         RET



Переменные используемые в программах имеют
следующие значения:

START- адресс хранения в памяти оцифровки.

LENGTH - длина оцифровки.

COVOX - порта  COVOX'а   (обычно   #FB для
PENTAGONA 128, и 231 для SCORPIONA 256)...

CHANEL-канал для воспроизведения(см. выше)

PAUSA-самый главный параметр.Он определяет
с какой частотой будет проигрываться оциф-
ровка.  Вообще  говоря  PAUSA задает время
паузы  между  двумя  соседними  выводами в
звуковой канал...


В обоих случаях звездочкой помечены строч-
ки,   которые  необходимо  оставить,  если
воспроизводятся  AIF-файлы, и надо удалить
для воспроизведения WAV-файлов...

Вот  в принципе и все что надо знать чтобы
воспроизвести оцифровку...

Но  данный способ воспроизведения является
частото  время зависимым, т.е. при измене-
нии частоты изменяется соответствующим об-
разом  и  время воспроизведения инструмен-
та...




Другие статьи номера:

От автора - Надежда что газета скоро станет модемной...

Новости - Близится к концу работа над созданием CD-диска.

Проходилка - Гомер Симпсон в России.

Обзор новинок - Pussy, TR-Dos/MS-Dos конвертор.

Программистам - Об AY'ке.

Невыдуманные истории - Юмористические истории.

Сказочки - Юмор.

Анекдоты - Юмор.

Ассемблер - Индикатор - цветные квадратики.

Пароли - Пароли к игре "Net Walk".

Анкета - Анкета для читателей.

Поздравляем... - С Днем Рождения Think!!!

Birthday List v0.0 - Список дней рождений.

WANTED - Розыск программ...

Реклама - Реклама и объявления ...

Православный интернет магазин остров книг интернет-магазин православных книг.

Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Программирование - Качесвенная процедура конверсия ZX картинки в ASCII.
От редакции - Hу, вот и третий номер...
Slang - Сленоговый словарь демосцены.
Железо - Клава и крыса.
Сетевые новости - Новые станции BBS: Sirius & Death Station.

В этот день...   19 апреля