Spectrum Progress #02
19 января 1997

Записи программиста - программирование музыкального процессора AY-8912/10.

<b>Записи программиста</b> - программирование музыкального процессора
 AY-8912/10.
  (C) Денис Паринов, 1997.

       
       
       

  Музыкальный  процессор включает в себя 16 ре-
гистров.  14 из них используется для формирова-
ния звука.

  Для  того,  чтобы  поместить  в регистр музы-
кального сопроцессора какие либо данные, надо:

1) выбрать регистр для записи данных

   LD BC,#FFFD
   LD A,номер регистра 0 - 13
   OUT (C),A

2) записать данные

   LD BC,#BFFD
   LD A,какoе либо число 0 - 255
   OUT (C),A

  Для чтения данных из регистра надо:

1) выбрать регистр для записи данных

   LD BC,#FFFD
   LD A,номер регистра 0 - 13
   OUT (C),A
2) считать данные
   IN A,(C)

  Первые   шесть   регистров  используются  для
задания   высоты  звучания  каждого  канала  из
диапазона 0 - 4095.
  Регистры R0,R1 - частота звучания канала A.
  Регистры R2,R3 - частота звучания канала B.
  Регистры R4,R5 - частота звучания канала C.

  Регистр R6 - определяет частоту выводимого
  шума для трёх каналов из диапазона 0 - 31.

  Регистр R7 - управляет звуковыми каналами
  d7d6d5d4d3d2d1d0
   x x │ │ │ │ │ └ запрещает звучание канала A.
       │ │ │ │ └── запрещает звучание канала B.
       │ │ │ └──── запрещает звучание канала C.
       │ │ └────── запрещает шум канала A.
       │ └──────── запрещает шум канала B.
       └────────── запрещает шум канала C.

  Следующие   три   регистра  используются  для
задания  громкости  звука  из диапазона 0 - 15.
4-й  бит  указывает  на то, что громкость будет
изменятся   способом   указанным  в  R13  и  со
скоростью указаной в R11/R12.

  Регистр R8  - определяет громкость канала A.
  Регистр R9  - определяет громкость канала B.
  Регистр R10 - определяет громкость канала C.

  Регистры   R11,  R12  -  определяют  скорость
изменения  громкости  звука  от 0 до 65535. (на
практике   изменение   рег.   R11  малоощутимо,
поэтому достаточно задавать только рег. R12)

  Регистр   R13   -   упровляет   формированием
огибающей выходного сигнала:

 #0,#1,#2,#3,#9 - затухание, затем тихо;
 #4,#5,#6,#7,#F - нарастание, затем тихо;
 #B - затухание, затем громко;
 #D - нарастание, затем зромко;
 #8 - повторяющееся затухание;
 #C - повторяющееся нарастание;
 #E - повторяющееся нарастание и
      затухание;
 #A - повторяющееся затухание и
      нарастание;

  Ну, а теперь  несколько примеров,  демонстри-
рующих сказаное.

  Перед  обращением  к  программе  в  регистр A
необходимо записать номер эффекта с 1 по 4.

; Вх: A - номер эффекта с 1 - 4.

AY_EFF  LD      HL,EFFECT1 ;Вычисляем
        LD      BC,#000E   ;адрес начала
NEFF    ADD     HL,BC      ;эффекта следующего
        DEC     A          ;за выбранным.
        JP      NZ,NEFF    ;
        DEC     HL         ;HL на конец выбра-
                           ;нного эффекта.
        LD      A,#0D      ;Начать с рег-ра R13
        LD      C,#FD      ;
NREG    LD      B,#FF      ;Выбрать регистр AY
        OUT     (C),A      ;для записи данных.
        LD      B,#BF      ;Запись в регистр AY
        OUTD               ;байта из (HL) и
                           ;уменьшение HL на 1.
        DEC     A          ;Уменьшение номера
                           ;регистра AY, если
        JP      P,NREG     ;он Є 0, продолжить.
        RET                ;Иначе выйти.

; Эффект используется в различных boot'ах при
; запуске программ.

EFFECT1 DEFW    #0080,#0001,#0000 ;частота тона
   ;для каналов A, B, C
        DEFB    #00        ;частота шума
        DEFB    #38        ;00111000 выкл. шум.
        DEFB    #10,#10,#10;громк. канал. A,B,C
        DEFW    #1500      ;изменение громкости
        DEFB    #01        ;затухание

; Эффект из программы Honey Commander.

EFFECT2 DEFW    #203C,#2064,#208C
        DEFB    #00
        DEFB    #38
        DEFB    #10,#10,#10
        DEFW    #0810
        DEFB    #01

; Эффект 2 из Honey Commander.

EFFECT3 DEFW    #2050,#2060,#2070
        DEFB    #01
        DEFB    #00
        DEFB    #10,#10,#10
        DEFW    #0400
        DEFB    #01

; Эффект напоминающий вращение лопастей
; вертолёта.

EFFECT4 DEFW    #0000,#0000,#0000
        DEFB    #00
        DEFB    #07
        DEFB    #10,#10,#10
        DEFW    #0100
        DEFB    #0E

  В  заключение,  об  одном неприятном моменте.
Иногда  при  чтении с диска из динамиков слышен
гул  -  это происходит из за того, что програм-
мист  не  заглушает  муз.процессор.  Обычно для
этого  нужно ещё раз проинициализировать проиг-
рователь мелодии.
  На всякий случай мы приводим программу заглу-
шающую муз.процессор.

RES_AY  LD      HL,#0D00
        LD      DE,#FFBF
        LD      C,#FD
RES_AY1 LD      B,D
        OUT     (C),H
        LD      B,E
        OUT     (C),L
        DEC     H
        JP      P,RES_AY1
        RET

                    ══ * ══



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

От редакции - Шпаргалка - информация об управлении в журнале.

От редакции - авторы работавшие над вторым номером журнала Spectrum Progress.

Инструментарий - Статья о новой операционной системе ДОМЕН ОС.

Инструментарий - Статья о инструментальной системе для СПЕКТРУМА "THE GRAPHIC ADVENTURE CREATOR".

Инструментарий - Статья о том, как работать в системе для разработки Адвентюрных игр "THE GRAPHIC ADVENTURE CREATOR".

Инструментарий - Инструкция по эксплуатации программы "XPLAYER 78".

Инструментарий - Инструкция по пользованию пакетом программ "ZX-WINWORD", предназначенных для подготовки иллюстрированных текстов.

Игротека - Новелла к новой отечественной игре "RETURN TO HOME 4".

Игротека - краткая характеристика новой отечественной игры "RETURN TO HOME 4".

Игротека - Новелла и описание игры "DEMON'S REVENGE".

Записи программиста - программирование музыкального процессора AY-8912/10.

Записи программиста - Основы программирования под API Домен ОС.

Железяка - "SPRINTER-97": технические характеристики.

Железяка - "SPRINTER-97": Видеосистема.

Железяка - "SPRINTER-97": графический ускоритель.

Конкурс - Конкурс на лучшее название нового компьютера ф."ПЕТЕРС".

Новости - Информация о игре "RETURN TO HOME 5" (Смертельные миры, вторжение Торостоидов) игра является продолжением "RETURN TO HOME 4".

Новости - информация о новом текстовом редакторе "TEXTWRITER" demo.

Новости - впечатления о провалившемся ENLIGHT'97.

Водолей - Программисты... с точки зрения подхода к работе.

Форум - Информация о компьютерной сети SPbZXNet в Питере.

Форум - анкетирование, проведенное Алексеем Лебедевым (CONDOR SOFT) среди пользователей ZX Spectrum в 1997 г.

Форум - Интервью с известным ярославским программистом Романовым Р. (NICODIM).

Форум - Интервью с Николаем Носковым и Иваном Макарченко, создателями фирмы "ПЕТЕРС".

Реклама - бесплатная реклама и объявления...


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

Похожие статьи:
Phantasmogore - любовь до гроба.
Реклама - Реклама и объявления.
Примечaния
Юмор - В.Тихонов.
Приёмы кодинга - Рекурсия.

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