- •Технический обзор 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)
- •Частота тонального генератора
- •Управление генератором шума
§ 6 Доступ к памяти vdp
_ УСТАНОВКИ АДРЕСАЦИИ ОЗУ _
Вы можете получить доступ к VRAM, CRAM и VSRAM после записи длинного слова (32 бита) управления
по адресу $C00004 или $C00006.
Можно использовать два слова (WORD) или одно длинное слово (LONG WORD) при установке адреса.
Если используется длинное слово, то биты D31 - D16 записываются первыми, затем биты D15 - D0.
-
D7
D6
D5
D4
D3
D2
D1
D0
1 слово
1 байт
CD1
CD0
A13
A12
A11
A10
A9
A8
D15 – D8
$C00004
2 байт
A7
A6
A5
A4
A3
A2
A1
A0
D7 – D0
2 слово
1 байт
0
0
0
0
0
0
0
0
D15 – D8
$C00004
2 байт
CD5
CD4
CD3
CD2
0
0
A15
A14
D7 – D0
CD5~CD0 : Код ID
A15~A0 : Адрес назначения в ОЗУ
-
CD5
CD4
CD3
CD2
CD1
CD0
ЗАПИСЬ В VRAM
0
0
0
0
0
1
ЗАПИСЬ В CRAM
0
0
0
0
1
1
ЗАПИСЬ В VSRAM
0
0
0
1
0
1
ЧТЕНИЕ ИЗ VRAM
0
0
0
0
0
0
ЧТЕНИЕ ИЗ CRAM
0
0
1
0
0
0
ЧТЕНИЕ ИЗ VSRAM
0
0
0
1
0
0
• От переводчика:
• Для ускорения доступа, можно задать только начальный адрес ОЗУ VDP. А потом можно просто обращаться
к регистру данных VDP, правда, перед этим нужно инициализировать счетчик автоматического увеличения
адреса.
_ ДОСТУП К VRAM (ВИДЕОБУФЕР) _
Объем VRAM всего 64 Кбайт, поэтому адрес занимает 16 бит и имеет состояния от 0 до $FFFF. Доступ
к VRAM можно получить следующим образом:
-
D7
D6
D5
D4
D3
D2
D1
D0
1 слово
1 байт
0
1
A13
A12
A11
A10
A9
A8
D15 – D8
$C00004
2 байт
A7
A6
A5
A4
A3
A2
A1
A0
D7 – D0
2 слово
1 байт
0
0
0
0
0
0
0
0
D15 – D8
$C00004
2 байт
0
0
0
0
0
0
A15
A14
D7 – D0
Данные
1 байт
DT15
DT14
DT13
DT12
DT11
DT10
DT9
DT8
D15 – D8
$C00000
2 байт
DT7
DT6
DT5
DT4
DT3
DT2
DT1
DT0
D7 – D0
A15~A0 : Адрес VRAM
D15~D0 : Данные VRAM
При использовании длинного слова (LONG WORD) биты D31 ~ D16 записываются первыми, затем D15 ~ D0.
Если используете запись байта, данные D7 ~ D0, и могут быть записаны в $C00000 или $C00001.
Адрес VRAM увеличится на число в регистре № 15 независимо от размера данных (8/16 бит).
Адрес A0 у VRAM используется для расчета увеличения адреса, но игнорируется при декодировании.
Адресация и декодирование адреса VRAM:
адрес VRAM декодируется, используя A15 ~ A1, и A0 определяет формат записи данных. Записываемые данные
не могут перекрыть границу слова (WORD, 16 бит). Младший и старший байты обменяются местами, если A0=1.
-
При A0=0
Адрес
Байт
Слово
Двойное слово
нечетный
D7 ~ D0
D15 ~ D8
D31 ~ D24
четный
D7 ~ D0
D23 ~ D16
нечетный
D15 ~ D8
четный
D7 ~ D0
-
При A0=1
Адрес
Байт
Слово
Двойное слово
нечетный
D7 ~ D0
D7 ~ D0
D23 ~ D16
четный
D15 ~ D8
D31 ~ D24
нечетный
D7 ~ D0
четный
D15 ~ D8
(ПРИМЕР)
СТАРТОВЫЙ АДРЕС: 0 Регистр #15=2
-
Адрес
Байт
Слово
Двойное слово
0
1-ый D7 ~ D0
1-ое D15 ~ D8
1-ое D31 ~ D24
1
D7 ~ D0
D23 ~ D16
2
2-ой D7 ~ D0
2-ое D15 ~ D8
D15 ~ D8
3
D7 ~ D0
D7 ~ D0
4
3-ий D7 ~ D0
3-ее D15 ~ D8
2-ое D31 ~ D24
5
D7 ~ D0
D23 ~ D16
6
4-ый D7 ~ D0
4-ое D15 ~ D8
D15 ~ D8
7
D7 ~ D0
D7 ~ D0
8
5-ый D7 ~ D0
5-ое D15 ~ D8
3-ее D31 ~ D24
9
D7 ~ D0
D23 ~ D16
СТАРТОВЫЙ АДРЕС: 0 Регистр #15=1
-
Адрес
Байт
Слово
Двойное слово
0
2-ой D7 ~ D0
2-ое D7 ~ D0
1-ое D7 ~ D0
1
1-ый D7 ~ D0
D15 ~ D8
D15 ~ D8
2
4-ый D7 ~ D0
4-ое D7 ~ D0
2-ое D7 ~ D0
3
3-ий D7 ~ D0
D15 ~ D8
D15 ~ D8
4
6-ой D7 ~ D0
6-ое D7 ~ D0
3-ее D7 ~ D0
5
5-ый D7 ~ D0
D15 ~ D8
D15 ~ D8
6
8-ой D7 ~ D0
8-ое D7 ~ D0
4-ое D7 ~ D0
7
7-ой D7 ~ D0
D15 ~ D8
D15 ~ D8
8
10-ый D7 ~ D0
10-ое D7 ~ D0
5-ое D7 ~ D0
9
9-ый D7 ~ D0
D15 ~ D8
D15 ~ D8
СТАРТОВЫЙ АДРЕС: 1 Регистр #15=2
-
Адрес
Байт
Слово
Двойное слово
0
1-ый D7 ~ D0
1-ое D7 ~ D0
1-ое D23 ~ D16
1
D15 ~ D8
D31 ~ D24
2
2-ой D7 ~ D0
2-ое D7 ~ D0
1-ое D23 ~ D16
3
D15 ~ D8
D31 ~ D24
4
3-ий D7 ~ D0
3-ое D7 ~ D0
2-ое D23 ~ D16
5
D15 ~ D8
D31 ~ D24
6
4-ый D7 ~ D0
4-ое D7 ~ D0
2-ое D23 ~ D16
7
D15 ~ D8
D31 ~ D24
8
5-ый D7 ~ D0
5-ое D7 ~ D0
3-ое D23 ~ D16
9
D15 ~ D8
D31 ~ D24
СТАРТОВЫЙ АДРЕС: 1 Регистр #15=1
-
Адрес
Байт
Слово
Двойное слово
0
1-ый D7 ~ D0
1-ое D7 ~ D0
1-ое D23 ~ D16
1
D15 ~ D8
D31 ~ D24
2
3-ий D7 ~ D0
3-ее D7 ~ D0
2-ое D23 ~ D16
3
2-ой D7 ~ D0
D15 ~ D8
D31 ~ D24
4
5-ый D7 ~ D0
5-ое D7 ~ D0
3-ое D23 ~ D16
5
4-ый D7 ~ D0
D15 ~ D8
D31 ~ D24
6
7-ой D7 ~ D0
7-ое D7 ~ D0
4-ое D23 ~ D16
7
6-ой D7 ~ D0
D15 ~ D8
D31 ~ D24
8
9-ый D7 ~ D0
9-ое D7 ~ D0
5-ое D23 ~ D16
9
8-ой D7 ~ D0
D15 ~ D8
D31 ~ D24
