Технический обзор SEGA GENESIS [Автор неизвестен] (doc) читать постранично, страница - 3

Книга в формате doc! Изображения и текст могут не отображаться!


 [Настройки текста]  [Cбросить фильтры]

в режиме 32 символов по горизонтали и 80 Спрайтов в режиме 40 символов по горизонтали.
ОКНО
1 окно, связанное с плоскостью A.
ЦВЕТ
64 цвета из 512 возможных

Для PAL (Европейский телевизионный стандарт 50Hz), вертикальный размер составляет
30 символов (240 точек).
VDP поддерживает оба стандарта: NTSC и PAL. В обоих случаях, экран делится на активное окно,
где показывается картинка, и кадровый обратный ход (кадровое гашение) где монитор подготавливается
к следующему кадру.


Таблица состава растра:


Строк в экране
В столбце символов
Строк
(Отображение)
Строк
(Обратный ход)
NTSC
262
28
224
38
PAL
312
28
224
98
PAL
312
30
240
82

§2 Внутреннее строение VDP

CPU управляет VDP через порты в адресном пространстве.

_ CTRL (Управление) _
Управляет REGISTER, VRAM, CRAM, VSRAM, DMA DISPLAY, и т.д.

_ VRAM (Видеобуфер VDP) _
Основное хранилище отображаемых данных.

_ CRAM (ОЗУ цвета) _
64 цвета разделено на 4 палитры по 16 цветов каждая.

_ VSRAM (ОЗУ вертикальной прокрутки) _
До 20 разных значений вертикальной прокрутки на каждую плоскость: A и B.

_ DMA (Прямой доступ к памяти) _
VDP может перемещать данные на большой скорости из ОЗУ процессора в видеобуфер, ОЗУ цвета,
и ОЗУ вертикальной прокрутки без участия CPU, захватывая шины 68000 когда он занят выполнением
команды.

VDP может еще и заполнять видеобуфер константой или копировать фрагмент внутри видеобуфера
без участия 68000.


§ 3 ПРЕРЫВАНИЯ

Есть три аппаратных прерывания: Кадровое, Строчное и Внешнее (от портов ввода/вывода).
Можно управлять каждым через биты lEO, IE1 и IE2 в регистрах VDP. Прерывания используют
метод автоматического формирования вектора (AUTO-VECTOR) из таблицы векторов 68000
и имеют уровни приоритетов 6, 4 и 2 из 7 возможных. Уровень 6 закреплен за Кадровым прерыванием
и имеет максимальный приоритет.

lEO Кадровое прерывание - Уровень приоритета 6 (Максимальный)
IE1 Строчное прерывание - Уровень приоритета 4 (Средний)
IE2 Внешнее прерывание - Уровень приоритета 2 (Минимальный)
1 : Разрешен
0 : Запрещен

• От переводчика:
• Процессор 68К имеет встроенный контроллер прерываний на 7 уровней. Есть регистр маски прерываний.
Маской задается номер приоритета (7..1) и прерывания с номером меньше маски не проходят. Уровень
7 запретить нельзя. Используются только уровни 2, 4 и 6.

_ Кадровое прерывание (V-INT) _
Кадровое прерывание приходит сразу после начала кадрового обратного хода.


_ СТРОЧНОЕ ПРЕРЫВАНИЕ (H-INT) _
Строчное прерывание приходит сразу после начала строчного обратного хода.


VDP загружает отображаемую информация, включая все требуемые значения регистров, для строки экрана
за 36 тактов CPU, в это время CPU может управлять параметрами отображения следующей строки, а не
той, где произошло прерывание

Горизонтальное прерывание контролируется счетчиком строк в регистре #10. Если изменять значение счетчика
каждую строку, то можно получить любой период строчных прерываний.

Например: Если регистр #10 равен 00h, тогда прерывания происходят каждую строку.
Если регистр #10 равен O1h, тогда прерывания происходят каждую вторую строку.
Если регистр #10 равен O2h, тогда прерывания происходят каждую третью строку.
И т.д.
_ ВНЕШНЕЕ ПРЕРЫВАНИЕ (EX-INT) _

Внешнее прерывание формируется устройством периферии (световой пистолет, модем) и останавливает счетчик для дальнейшей обработки процессором.





Для инициализации Внешнего прерывания, а так же для установки Кадрового и Строчного смотрите
ниже по документу.

§ 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 :