
         Краткое описание General Instruments м/сх. AY-3-8910 (12)
         ---------------------------------------------------------

Аналог: Yamaha 2149F (хотя оригинальный AY и чип от Yamaha немного
различаются по звуку и по функциям).

аVssа 1аааа 40 Vcc
а NCа 2аааа 39 TEST1
ACHBа 3аааа 38 ACHC
ACHAа 4аааа 37 DA0
а NCа 5аааа 36 DA1
IOB7а 6аааа 35 DA2
IOB6а 7аааа 34 DA3
IOB5а 8аааа 33 DA4
IOB4а 9аааа 32 DA5
IOB3 10аааа 31 DA6
IOB2 11аааа 30 DA7
IOB1 12аааа 29 BC1
IOB0 13аааа 28 BC2
IOA7 14аааа 27 BDIR
IOA6 15аааа 26 TEST2
IOA5 16аааа 25 A8
IOA4 17аааа 24 A9*
IOA3 18аааа 23 RESET*
IOA2 19аааа 22 CLOCK
IOA1 20аааа 21 IOA0

Vcc + 5 V

r# name  used by    description
===============================================================================
00 R0  Tone Gen.   Channel A Fine Tune Register         Нижние 8 бит частоты A
01 R1  Tone Gen.   Channel A Coarse Tune Register       Верхние 4 бита частоты A
02 R2  Tone Gen.   Channel B Fine Tune Register         Нижние 8 бит частоты B
03 R3  Tone Gen.   Channel B Coarse Tune Register       Верхние 4 бита частоты B
04 R4  Tone Gen.   Channel C Fine Tune Register         Нижние 8 бит частоты C
05 R5  Tone Gen.   Channel C Coarse Tune Register       Верхние 8 бит частоты C
06 R6  Noise Gen.  Noise Period Register                Частота шума (ударников)
07 R7  Mixer,I/O   Mixer Control - I/O Enable Register  Миксер (xxCBA CBA)
08 R10 Amp.Control Channel A Amplitude Control Register Громкость канала A
09 R11 Amp.Control Channel B Amplitude Control Register Громкость канала B
0A R12 Amp.Control Channel C Amplitude Control Register Громкость канала C
0B R13 Envelope Gn Envelope Fine Tune Register          Нижние 8 бит част.огиб
0C R14 Envelope Gn Envelope Coarse Tune Register        Верхние 4 бита част.ог.
0D R15 Envelope Gn Envelope Shape/Cycle Ctrl Register   Форма огибающей
0E R16 I/O         I/O Port A Data Store                ???
0F R17 I/O         I/O Port B Data Store                ???
================================================================================

Все 16 регистров имеют длину 1 байт. При использовании AY на БК надо учитывать
специфику способа подключения и работы с муз.сопроцессором предложенным RDC:
при записи в порт (177714o) СЛОВА задается номер AY-регистра (0-15), при
записи БАЙТА - данные. Кроме того, все записи в 177714 порт инверсные.
Т е чтобы выбрать 0 регистр надо выдать команду:

MOV #377, @#177714 (376 - первый, 375 - второй и т д).

то же самое относится к данным. Они инверсные.

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

Фоормат регистров 00, 02, 04 (нижние 8 бит частоты мелодического канала):

bit#  7 6 5 4 3 2 1 0
      L L L L L L L L

биты 7-0 задают нижние 8 бит частоты мелодии в соответсвующем канале
         (00 - канал A, 02 - канал B, 04 - канал C). Чем меньше число тем
         ниже частота звука (басы) и наоборот - большее число соответствует
         более высокой частоте. Верхние 4 бита находятся в регистрах 01, 03, 05
         соответственно (для каналов A, B, C).
-------------------------------------------------------------------------------

Формат регистров 01, 03, 05 (верхние 4 бита частоты мелодического канала):

bit#  7 6 5 4 3 2 1 0
      x x x x H H H H

биты 3-0 задают верхние 4 бита частоты мелодии и в паре с данными из регистров
         00, 02 и 04 обазуют результирующую 12 - битовую частоту канала
         (HHHH LLLL LLLL).
-------------------------------------------------------------------------------

Формат регистра 06 (частота шума)

bit#  7 6 5 4 3 2 1 0
      x x x N N N N N

биты 4-0 задают общую для всех каналов частоту шума которая изменяется таким
         образом от 0 до 31 (десятичное).
-------------------------------------------------------------------------------

Формат регистра R7 (Mixer):

bit# 7 6 | 5 4 3 | 2 1 0
         | Noise | Melody
     x x | C B A | C B A

если бит 5 = 0 - в канале C шум
если бит 4 = 0 - в канале B шум
если бит 3 = 0 - в канале A шум

если бит 2 = 0 - канал C играет мелодию
если бит 1 = 0 - канал B играет мелодию
если бит 0 = 0 - канал A играет мелодию

Шум и мелодию можно назначить играющими одновременно. Громкость шума соот-
ветствует громкости тона (см. регистры 08, 09, 0A). Частота шума общая
для всех каналов задается в регистре 06 и изменяется в пределах 0-31 (см.
рег. 06). Если в каком-либо из каналов выключены звук и шум, то соответсвую-
щий каналу регистр громкости напрямую управляет уровнем напряжения на выходе.
Получается что-то типа 4-битного логарифмического Covox-а. Таким образом
можно воспроизводить оцифрованный звук - хотя обычные 8-битные "сэмплы"
из Scream Tracker требут преобразования в 4-битный логарифмический вид.
-------------------------------------------------------------------------------

Формат регистров 08, 09, 0A (Громкости каналов):

bit#  7 6 5 4 3 2 1 0
      x x x E V V V V

биты 3-0 - громкость канала (0-мин, 15-макс). Громкость задается по логариф-
           мической шкале т е уменьшение числа на 2 вызывает уменьшение
           громкости в 2 раза.

бит 4    - установить envelope (огибающую) на канал. При установленной оги-
           бающей управление громкостю передается AY. При этом громкость
           изменяется во времени согласно заданной в регистре 0D форме
           огибающей, а период (частота) изменения задается в регистрах 0B и
           0C.
-------------------------------------------------------------------------------

Формат регистра 0B (нижние 8 бит периода огибающей)

bit#  7 6 5 4 3 2 1 0
      L L L L L L L L
-------------------------------------------------------------------------------

Формат регистра 0C (верхние 4 бита периода огибающей)

bit#  7 6 5 4 3 2 1 0
      x x x x H H H H
-------------------------------------------------------------------------------

Формат регистра 0D (форма огибающей)

bit#  7 6 5 4 3 2 1 0
      x x x x S S S S

биты 3-0  - задают форму (shape) изменения громкости в канале.

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