Технический обзор SEGA GENESIS [Автор неизвестен] (doc) читать постранично, страница - 23
Книга в формате doc! Изображения и текст могут не отображаться!
[Настройки текста] [Cбросить фильтры]
#3 Всегда записывать сначала старшие биты/байт, а затем младшие биты/байт.
Программируемый генератор звука (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
Этот код выключает все четыре канала. Неплохо его использовать и во время нажатия на кнопку “Пауза”, чтобы не оставалось звуков во время паузы.
Частота тонального генератора
Частота задается 10-ти битным значением. Это значение уменьшается счетчиком до 0, и затем перезагружается. Поэтому, чем больше число, тем ниже частота.
Чтобы записать значение частоты в генератор, нужно записать пару байт в регистр 7FH:
Канал
Первый байт (адрес)
Второй байт (данные)
D7
D6
D5
D4
D3
D2
D1
D0
D7
D6
D5
D4
D3
D2
D1
D0
1
1
0
0
0
D3
D2
D1
D0
0
0
D9
D8
D7
D6
D5
D4
2
1
0
1
0
D3
D2
D1
D0
0
0
D9
D8
D7
D6
D5
D4
3
1
1
0
0
D3
D2
D1
D0
0
0
D9
D8
D7
D6
D5
D4
D9 - D0 – 10-ти битное значение частоты (период).
Управление генератором шума
Генератор шума использует 3 бита управления “шаблоном” шума. Бит "FB" (Обратная связь) производит периодический шум или “белый” шум:
Частота шума зависит от битов NF1 и NF0:
NF1
NF0
Источник частоты шума
0
0
Такты/2 (Высокие частоты, менее крупный)
0
1
Такты/4
1
0
Такты/8 (Низкие частоты, более крупный)
1
1
Тоновый генератор 3
Примечание: "Такты" это фиксированная частота. Она управляется генератором на кварцевом резонаторе.
Когда биты NF1 и NFO равны 1, генератор тона 3 задает тактовую частоту генератора шума. Это позволяет получить “скользящий” шум по частоте. Этот эффект, например, можно использовать для озвучивания разгона реактивного двигателя.
Чтобы записать управляющие биты в генератор шума надо записать байт по адресу порта 7FH:
D7
D6
D5
D4
D3
D2
D1
D0
1
1
1
0
0
FB
NF1
NF0
Последние комментарии
1 день 2 часов назад
1 день 10 часов назад
2 дней 56 минут назад
2 дней 4 часов назад
2 дней 5 часов назад
2 дней 5 часов назад