- •Технический обзор 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)
- •Частота тонального генератора
- •Управление генератором шума
§ 4 Порты vdp
Порты VDP находятся в адресном пространстве 68000.
-
Адрес
Старший байт
Младший байт
$C00000
Порт данных
$C00002
Порт данных
$C00004
Порт управления
$C00006
Порт управления
$C00008
Счетчик координат луча
$C0000A
Запрещено
$C0000C
Запрещено
$C0000E
Запрещено
$C00010
Запрещено
PSG
_ $ C00000 (ПОРТ ДАННЫХ) _
ЧТЕНИЕ/ЗАПИСЬ: VRAM, VSRAM, CRAM
-
D7
D6
D5
D4
D3
D2
D1
D0
$C00000
1 байт
DT15
DT14
DT13
DT12
DT11
DT10
DT9
DT8
D15 – D8
2 байт
DT7
DT6
DT5
DT4
DT3
DT2
DT1
DT0
D7 – D0
Порты $C00000 и $C00002 полностью одинаковы
При записи в порт $C0000 слова (WORD), биты DT15-DT0 соответствуют битам записываемых данных.
_ $ C00004 (ПОРТ УПРАВЛЕНИЯ) _
ЧТЕНИЕ: РЕГИСТР СТАТУСА
-
D7
D6
D5
D4
D3
D2
D1
D0
$C00004
1 байт
*
*
*
*
*
*
EMPTY
FULL
D15 – D8
2 байт
F
SOVR
C
ODD
VB
HB
DMA
PAL
D7 – D0
D7
D6
D5
D4
D3
D2
D1
D0
$C00004
1 байт
*
*
*
*
*
*
EMPTY
FULL
D15 – D8
2 байт
F
SOVR
C
ODD
VB
HB
DMA
PAL
D7 – D0
* Не используются
EMPTY 1 : Буфер FIFO для записи пуст
0 :
FULL 1 : Буфер FIFO для записи полон
0:
F 1 : Произошло Кадровое прерывание
SOVR 1 : Переполнение спрайтов, слишком много на одну строку (экрана)
Более 17 в режиме 32 символа.
Более 21 в режиме 40 символов.
C 1 : Пересечение пикселей двух спрайтов с цветом не 0.
0 :
ODD 1 : Нечетный кадр изображения в чересстрочном режиме.
0 : Четный кадр изображения в чересстрочном режиме.
VB 1 : Происходит Кадровое гашение
0 :
HB 1 : Происходит Строчное гашение
0 :
DMA 1 : DMA занят
0 :
PAL 1 : Режим PAL
0 : Режим NTSC
ПЕРВЫЙ ВАРИАНТ ЗАПИСИ : УСТАНОВКА РЕГИСТРА
-
D7
D6
D5
D4
D3
D2
D1
D0
$C00004
1 байт
1
0
0
RS4
RS3
RS2
RS1
RS0
D15 – D8
2 байт
D7
D6
D5
D4
D3
D2
D1
D0
D7 – D0
Порты $C00000 и $C00002 полностью одинаковы
RS4 ~ RS0 : Номер внутреннего регистра.
D7 ~ D0 : Данные для регистра
При записи можно использовать запись двух слов (WORD, 16 бит) или 1 запись длинного слова (LONG WORD, 32 бита). При записи длинного слова первыми записываются биты 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
ЗАПИСЬ В VRAME
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
Для использования этой возможности нужно использовать либо две записи по 16 бит или одну запись на 32 бита.
• От переводчика:
• При использовании первого варианта использовать только 16 бит (1 слово “WORD”), при использовании второго
варианта использовать только 32 бита (2 слова “WORD” или 1 длинное слово “LONG WORD”). При записи
длинного слова, биты D31-D16 записываются первым словом, а биты D15-D0 вторым.
• VDP определяет какой тип записи используется по комбинации битов CD1 и CD0. Если комбинация такая:
CD1=1 и CD0=0 то это первый вариант, при других комбинациях (см. таблицу) применяется второй вариант.
• Внимание! Код ID CD5 используется при инициализации и запуска сервиса DMA. При этом дополнительной
информации обо всех вариантах кода ID нет. Будьте внимательны, в примерах указаны нормальные значения.
_ $ C00008 (СЧЕТЧИК КООРДИНАТ ЛУЧА) _
НЕ ЧЕРЕЗСТРОЧНЫЙ РЕЖИМ
-
D7
D6
D5
D4
D3
D2
D1
D0
$C00008
1 байт
VC7
VC6
VC5
VC4
VC3
VC2
VC1
VC0
D15 – D8
2 байт
HC8
HC7
HC6
HC5
HC4
HC3
HC2
HC1
D7 – D0
ЧЕРЕЗСТРОЧНЫЙ РЕЖИМ
-
D7
D6
D5
D4
D3
D2
D1
D0
$C00008
1 байт
VC7
VC6
VC5
VC4
VC3
VC2
VC1
VC8
D15 – D8
2 байт
HC8
HC7
HC6
HC5
HC4
HC3
HC2
HC1
D7 – D0
HC8 ~ HC1 : Счетчик координаты X
VC8 ~ VC0 : Счетчик координаты Y
• От переводчика:
• Счетчик координат возвращает координаты (X/Y) выводимой в данный момент точки экрана (растра).
• В чересстрочном режиме младший бит координаты Y надо брать в регистре статуса (ODD).
