Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Sega_Tech_Rus.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.15 Mб
Скачать

§ 4 Регистры vdp

VDP имеет для записи регистры от #0 до #23 и для чтения все 25 регистров. Есть 2 режима для установок регистров. Один режим 4 (IV) и один режим 5 (V). Здесь пойдет речь о режиме 5, о режиме 4 смотрите секцию “MARK”. Если менять режим во время кадра, то можно получить разные эффекты.

РЕГИСТР РЕЖИМА №1

D7

D6

D5

D4

D3

D2

D1

D0

Регистр №0

0

0

0

IE1

0

1

M3

0

IE1 1 : Включает Строчное прерывание (уровень 4 для 68000)

0: Отключает Строчное прерывание (см. регистр №10)

M3 1 : Останов счетчика координат (X/Y).

0: Включает счетчик координат (X/Y)

РЕГИСТР РЕЖИМА №2

D7

D6

D5

D4

D3

D2

D1

D0

Регистр №1

0

DISP

IE0

M1

M2

1

0

0

DISP 1 : Включает отображение (картинка на экране)

0 : Отключает отображение (экран черный)

IE0 1 : Включает Кадровое прерывание (уровень 6 для 68000)

0 : Отключает Кадровое прерывание

M1 1 : DMA включен

0 : DMA выключен

M2 1 : Размер по вертикали 30 символов (режим PAL)

0 : Размер по вертикали 28 символов (режим PAL, в режиме NTSC всегда 0)

БАЗОВЫЙ АДРЕС ПЛОСКОСТИ A

D7

D6

D5

D4

D3

D2

D1

D0

Регистр №2

0

0

SA15

SA14

SA13

0

0

0

VRAM АДРЕС $XXX0_0000_0000_0000

БАЗОВЫЙ АДРЕС ДЛЯ ОКНА

D7

D6

D5

D4

D3

D2

D1

D0

Регистр №3

0

0

WD15

WD14

WD13

WD12

WD11

0

WD11 должен быть 0 в режиме 40 символов по горизонтали

VRAM АДРЕС $XXXX_X000_0000_0000 (режим 32 символов по горизонтали)

VRAM АДРЕС $XXXX_0000_0000_0000 (режим 40 символов по горизонтали)

БАЗОВЫЙ АДРЕС ПЛОСКОСТИ B

D7

D6

D5

D4

D3

D2

D1

D0

Регистр №4

0

0

0

0

0

SB15

SB14

SB13

VRAM АДРЕС $XXX0_0000_0000_0000

БАЗОВЫЙ АДРЕС АТРИБУТОВ СПРАЙТОВ

D7

D6

D5

D4

D3

D2

D1

D0

Регистр №5

0

AT15

AT14

AT13

AT12

AT11

AT10

AT9

AT9 должен быть 0 при режиме 40 символов в строке

VRAM АДРЕС $XXXX_XXX0_0000_0000 (32 символа в строке)

VRAM АДРЕС $XXXX_XX00_0000_0000 (40 символов в строке)

РЕГИСТР НЕ ИСПОЛЬЗУЕТСЯ

D7

D6

D5

D4

D3

D2

D1

D0

Регистр №6

0

0

0

0

0

0

0

0

ФОНОВЫЙ ЦВЕТ

D7

D6

D5

D4

D3

D2

D1

D0

Регистр №7

0

0

CPT1

CPT0

COL3

COL2

COL1

COL0

CPT1,0 : ПАЛИТРА ЦВЕТА

COL3~0 : КОД ЦВЕТА

РЕГИСТР НЕ ИСПОЛЬЗУЕТСЯ

D7

D6

D5

D4

D3

D2

D1

D0

Регистр №8

0

0

0

0

0

0

0

0

РЕГИСТР НЕ ИСПОЛЬЗУЕТСЯ

D7

D6

D5

D4

D3

D2

D1

D0

Регистр №9

0

0

0

0

0

0

0

0

РЕГИСТР СТРОЧНОГО ПРЕРЫВАНИЯ

D7

D6

D5

D4

D3

D2

D1

D0

Регистр №10

BIT7

BIT6

BIT5

BIT4

BIT3

BIT2

BIT1

BIT0

Этот регистр используется для указания периода Строчного прерывания (с шагом в 1 строку)

Строчное прерывание разрешается битом IE=1 (в регистре режима №1)

От переводчика:

• Регистр задает количество пропущенных строк до следующего прерывания (0 – каждая строка,

1 – каждая вторая и т.д.).

РЕГИСТР РЕЖИМА №3

D7

D6

D5

D4

D3

D2

D1

D0

Регистр №11

0

0

0

0

IE2

VSCR

HSCR

LSCR

IE2 1 : Разрешает Внешнее прерывание (уровень 2 для 68000)

0 : Запрещает Внешнее прерывание

* Смотрите Прерывания и системные порты ввода/вывода

VSCR: режим вертикальной прокрутки HSCR, LSCR: режим горизонтальной прокрутки

VSCR

ФУНКЦИЯ

HSCR

LSCR

ФУНКЦИЯ

0

ПОЛНАЯ ПРОКРУТКА

0

0

ПОЛНАЯ ПРОКРУТКА

1

КАЖДЫЕ 2 СИМВОЛА

0

1

ЗАПРЕЩЕНО

1

0

КАЖДЫЙ СИМВОЛ

1

1

КАЖДУЮ СТРОКУ ТОЧЕК

* ДЛЯ ОБОИХ ПЛОСКОСТЕЙ A И B

РЕГИСТР РЕЖИМА №4

D7

D6

D5

D4

D3

D2

D1

D0

Регистр №12

RS0

0

0

0

S/TE

LSM1

LSM0

RS1

RS0 0 : Режим 32 символа в строке

1 : Режим 40 символов в строке

RS1 0 : Режим 32 символа в строке

1 : Режим 40 символов в строке

* RS0 и RS1 должны иметь одинаковые значения.

32 символа 0000_XXX0

40 символа 1000_XXX1

S/TE 1 : Разрешает SHADOW (тень) и HIGHLIGHT (подсветку).

0 : Запрещает SHADOW (тень) и HIGHLIGHT (подсветку).

LSM1, LSM0 : установка чересстрочного режима

LSM1

LSM0

ФУНКЦИЯ

0

0

НЕ ЧЕРЕЗСТРОЧНЫЙ

0

1

ЧЕРЕЗСТРОЧНЫЙ

1

0

ЗАПРЕЩЕНО

1

1

ЧЕРЕЗСТРОЧНЫЙ (2x разрешение)

БАЗОВЫЙ АДРЕС ТАБЛИЦЫ ГОРИЗОНТАЛЬОЙ ПРОКРУТКИ

D7

D6

D5

D4

D3

D2

D1

D0

Регистр №13

0

0

HS15

HS14

HS13

HS12

HS11

HS10

VRAM АДРЕС $XXXX_XX00_0000_0000

РЕГИСТР НЕ ИСПОЛЬЗУЕТСЯ

D7

D6

D5

D4

D3

D2

D1

D0

Регистр №14

0

0

0

0

0

0

0

0

АВТОМАТИЧЕСКОЕ УВЕЛИЧЕНИЕ АДРЕСА

Этот регистр настраивает автоматическое увеличение адреса при доступе к ОЗУ.

D7

D6

D5

D4

D3

D2

D1

D0

Регистр №15

INC7

INC6

INC5

INC4

INC3

INC2

INC1

INC0

INC7~0 : Число увеличения (0~$FF)

На это число увеличится счетчик адреса при каждом обращении к ОЗУ.

От переводчика:

• Регистр задает число, на которое увеличится счетчик адреса. Если число равно 0, то счетчик адреса

не изменится. Для последовательного обращения необходимо занести число 1. Но при заполнении

знакогенератора удобнее пользоваться словами (WORD), потому, что символы хранятся в ПЗУ (ROM)

картриджа, а архитектура приставки не позволяет обращаться к ПЗУ (ROM) побайтно. Поэтому можно

перебрасывать информацию из ПЗУ (ROM) в VRAM (Видеобуфер) словами (WORD). Число регистра

автоматического увеличения адреса при этом должно быть равно 2.

• Регистр действует на все типы ОЗУ: VRAM (видеобуфер), CRAM (ОЗУ цвета), VSRAM (ОЗУ прокрутки) и т.д.

РАЗМЕР ПРОКРУТКИ

D7

D6

D5

D4

D3

D2

D1

D0

Регистр №16

0

0

VSZ1

VSZ0

0

0

HSZ1

HSZ0

VSZ1

VSZ0

ФУНКЦИЯ

HSZ1

HSZ0

ФУНКЦИЯ

0

0

32 символа в высоту

0

0

32 символа в ширину

0

1

64 символа в высоту

0

1

64 символа в ширину

1

0

ЗАПРЕЩЕНО

1

0

ЗАПРЕЩЕНО

1

1

128 символов в высоту

1

1

128символов в ширину

* ДЛЯ ОБОИХ ПЛОСКОСТЕЙ A И B

ПОЗИЦИЯ ОКНА ПО ГОРИЗОНТАЛИ

D7

D6

D5

D4

D3

D2

D1

D0

Регистр №17

RIGHT

0

0

WHP5

WHP4

WHP3

WHP2

WHP1

RIGHT 0 : Окно с левой стороны от базовой точки.

1 : Окно с правой стороны от базовой точки.

WHP5 ~ 1 Базовая точка по горизонтали 0=Слева;

1=1 символ вправо;

2=2 символа вправо; и т.д.

ПОЗИЦИЯ ОКНА ПО ВЕРТИКАЛИ

D7

D6

D5

D4

D3

D2

D1

D0

Регистр №18

DOWN

0

0

WVP4

WVP3

WVP2

WVP1

WVP0

DOWN 0 : Окно сверху от базовой точки.

1 : Окно снизу от базовой точки.

WVP4 ~ 0 Базовая точка по вертикали 0=Вверху;

1=1 символ вниз;

2=2 символа вниз; и т.д.

МЛАДШИЙ БАЙТ СЧЕТЧИКА DMA

D7

D6

D5

D4

D3

D2

D1

D0

Регистр №19

LG7

LG6

LG5

LG4

LG3

LG2

LG1

LG0

СТАРШИЙ БАЙТ СЧЕТЧИКА DMA

D7

D6

D5

D4

D3

D2

D1

D0

Регистр №20

LG15

LG14

LG13

LG12

LG11

LG10

LG9

LG8

LG15~0 : СЧЕТЧИК DMA

От переводчика:

• Счетчик DMA задает размер пересылаемой (копируемой) области памяти.

• Значение LG0 – LG15 указывает на количество слов (WORD), т.е. если надо переместить с помощью DMA 256 байт,

число LG должно быть равно 128.

МЛАДШИЙ БАЙТ АДРЕСА ОРИГИНАЛА DMA

D7

D6

D5

D4

D3

D2

D1

D0

Регистр №21

SA8

SA7

SA6

SA5

SA4

SA3

SA2

SA1

СРЕДНИЙ БАЙТ АДРЕСА ОРИГИНАЛА DMA

D7

D6

D5

D4

D3

D2

D1

D0

Регистр №22

SA16

SA15

SA14

SA13

SA12

SA11

SA10

SA9

СТАРШИЙ БАЙТ АДРЕСА ОРИГИНАЛА DMA

D7

D6

D5

D4

D3

D2

D1

D0

Регистр №23

DMD1

DMD0

SA22

SA21

SA20

SA19

SA18

SA17

SA22~1 : Адрес оригинала DMA

DMD1, 0 : Режим DMA

DMD1

DMD0

ФУНКЦИЯ

0

SA23

ИЗ ПАМЯТИ В VRAM

1

0

ЗАПОЛНЕНИЕ VRAM

1

1

КОПИРОВАНИЕ VRAM

От переводчика:

• При инициализации сервиса DMA, необходимо задать размер копируемой/заполняемой области в словах (WORD).

Затем записывается адрес источника и режим. ВАЖНО! Запись адреса начинается с младшего адреса (Регистр №21),

затем записывается средний байт адреса (Регистр №22) а последним записывается старший байт адреса и

режим работы (Регистр №23). Последним записывается адрес приемника. DMA начинает работу сразу после

записи адреса приемника. Кроме того, команда записи в регистр № 23 и адреса приемника должны находится во

внутреннем ОЗУ приставки (Адреса $FF0000 - $FFFFFF). Более подробно о сервисе DMA смотрите ниже.

• Как показала практика, иногда программа инициализации DMA работает и в ПЗУ. Видимо дело в выравнивании команд

процессора М68000 по четным и кратным адресам. Это связано с тем, что из-за особенностей схемы приставки

М68000 может читать из ПЗУ только словами (WORD).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]