Skip to content
Nikita Zimin edited this page Apr 4, 2023 · 2 revisions

С версии 2022.3 (октябрь 2022) в эмуляторе реализовано звуковое устройство Aberrant Sound Module на базе AY-3-8912, по схеме от aberranthacker (Олег Цымбалюк).

Схема устройства здесь и также описана на форуме.

Устройство откликается по адресам 0177360, 0177362, 0177364, каждый из этих адресов это отдельный чип AY. Запись слова -- выбираем регистр AY. Запись байта -- пишем в регистр AY. Устройство инвертирует сигналы, шина данных тоже инверсная, поэтому программно инверсию данных делать не нужно.

Устройство включается в эмуляторе командой Emulator > AY Device on PPU.

Фрагмент кода отправки блока регистров в AY, взят отсюда:

        MOV  $0177360,R4
        MOV  $PSGReg01_Instr,R5

        CLR  R3
        MOV  R3,(R4)    # Register 0: Channel A Tone Period
        MOVB (R5)+,(R4) # Value: 8-bit fine tune A

        INC  R3
        MOV  R3,(R4)    # Register 1: Channel A Tone Period
        MOVB (R5)+,(R4) # Value: 4-bit coarse tune A

        INC  R3
        MOV  R3,(R4)    # Register 2: Channel B Tone Period
        MOVB (R5)+,(R4) # Value : 8-bit fine tune B

        INC  R3
        MOV  R3,(R4)    # Register 3: Channel B Tone Period
        MOVB (R5)+,(R4) # Value: 4-bit coarse tune B

        INC  R3
        MOV  R3,(R4)    # Register 4: Channel C Tone Period
        MOVB (R5)+,(R4) # Value : 8-bit fine tune C

        INC  R3
        MOV  R3,(R4)    # Register 5: Channel C Tone Period
        MOVB (R5)+,(R4) # Value: 4-bit coarse tune C