- •Технический обзор sega genesis конфиденциально собственность sega
- •******* Содержание *******
- •§ 1 Спецификация экрана
- •§2 Внутреннее строение vdp
- •§ 3 Прерывания
- •§ 4 Порты vdp
- •§ 4 Регистры vdp
- •§ 6 Доступ к памяти vdp
- •Чтение из vram (Видеобуфера)
- •§ 7 Пересылка с помощю dma
- •3. Термин: Данные заполнения - байт.
- •§8 Прокрутка экрана (Скроллинг)
- •§ 11 Приоритет
- •3. Режим обратной совместимости
- •4. Системные порты ввода/вывода
- •§ 1 Номер версии
- •§ 2 Порт ввода/вывода
- •§ 4 Управление сопроцессором z80
- •§5 Ресурсы z80
- •5. Распределение vram
- •1 32 Символа по горизонтали
- •2 40 Символов по горизонтали
- •Заголовок картриджа пзу (rom) для mega drive
- •Звуковая система genesis руководство программиста содержание
- •II Управление z80-м со стороны 68k
- •III. Управление чипом fm
- •IV. Управление psg
- •Немножко о “Операторах”
- •Обзор регистров
- •Спецификация огибающей
- •Обзор регистров: Регистр 22h - lfo
- •Регистры 24h и 25h – Таймер a
- •Регистр 26h – Таймер b
- •Регистр 27h
- •Регистр 28h – Включение/выключение ноты
- •Регистры 2ah/2bh – 8 битный цап
- •Тестовая программа
- •Программируемый генератор звука (psg)
- •Частота тонального генератора
- •Управление генератором шума
Программируемый генератор звука (psg)
PSG содержит четыре звуковых канала, из них 3 канала тональных и один шумовой. Каждый из каналов содержит независимый регистр управления громкостью. PSG управляется через порт 7FH.
Управление громкостью для всех каналов происходит записью следующих байт в порт 7FH:
-
Описание
D7
D6
D5
D4
D3
D2
D1
D0
Тоновый генератор #1:
1
0
0
1
A3
A2
A1
A0
Тоновый генератор #2:
1
0
0
1
A3
A2
A1
A0
Тоновый генератор #3:
1
0
0
1
A3
A2
A1
A0
Шумовой генератор:
1
1
1
1
A3
A2
A1
A0
-
A3
A2
A1
A0
Затухание
0
0
0
0
0 dB (максимальная громкость)
0
0
0
1
2 dB (чем больше затухание, тем тише звук)
0
0
1
0
4 dB
0
0
1
1
6 dB
0
1
0
0
8 dB
0
1
0
1
10 dB
0
1
1
0
12 dB
0
1
1
1
14 dB
1
0
0
0
16 dB
1
0
0
1
18 dB
1
0
1
0
20 dB
1
0
1
1
22 dB
1
1
0
0
24 dB
1
1
0
1
26 dB
1
1
1
0
28 dB
1
1
1
1
- выключен -
Пример
..Когда стартует игра Mk3, исполняется следующий код:
LD HL,CLRTB ;Таблица инициализации
LD C,PSG_PRT ;Порт PSG = 7FH
LD B,4 ;Передать четыре байта
OTIR ;Записать
(и т.д.)
CLTB defb $9F,$BF,$DF,$FF
Этот код выключает все четыре канала. Неплохо его использовать и во время нажатия на кнопку “Пауза”, чтобы не оставалось звуков во время паузы.
