- •Технический обзор 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)
- •Частота тонального генератора
- •Управление генератором шума
Заголовок картриджа пзу (rom) для mega drive
Поместите в ПЗУ картриджа по адресу 100H-1FFH.
Адрес |
Длинна (байт) |
Значение |
Описание |
100H |
16 |
‘SEGA MEGA DRIVE’ |
Имя системы Sega Mega Drive. |
110H |
16 |
“(C)SEGA 1988 JUL’ |
Права и дата выпуска системы |
120H |
48 |
Название игры (внутр) |
Название игры для страны-производителя (внутреняя) |
150H |
48 |
Название игры (заруб) |
Название игры для остальных стран (внешняя) |
180H |
14 |
‘GM-XXXXXXX-XX’ |
Тип картриджа, номер продукта и версия Тип : Игра = ‘GM’, Обучающий = ‘AI’ Номер : Номер продукта Версия : Версия программы или отличия |
18EH |
2 |
$XXXX |
Контрольная сумма защищенной области |
190H |
16 |
Данные управления |
Данные использованных устройств ввода/вывода: Джойстик для Master System : 0 Планшет (Tablet) : T Джойстик : J Шар управления : B Клавиатура : K “Подушка” : V Принтер : P CD-ROM : C |
1A0H |
8 |
$000000, $XXXXXX |
Размер ПЗУ: Начальный адрес (всегда = 0) Конечный адрес |
1A8H |
8 |
$FF0000, $FFFFFF |
Используемое ОЗУ: Начальный адрес (всегда = $FF0000) Конечный адрес (всегда = $FFFFFF) |
1B0H |
12 |
Данные внешнего ОЗУ |
Если нет внешнего ОЗУ, заполнить кодом пробела ($20): 1B0H dc.b ‘RA’ 1B2H dc.b %1x1yz000 1B3H dc.b %00100000 x : 1 для энергонезависимой, 0 для обычной y,z : 10 для четных адресов, 11 для нечетных адресов 00 для всех адресов (16 битное ОЗУ) 1B4H dc.l $XXXXXX : Адрес начала ОЗУ 1B8H dc.l $XXXXXX : Адрес конца ОЗУ |
1BCH |
12 |
Данные модема |
Если не используется модем, заполнить пробелом ($20) 1BCH dc.b ‘MO’ 1BEH dc.b ‘xxxx’ 1C2H dc.b ‘yy.z’ xxxx : Фирменное имя yy : Номер модема z : Версия |
1C8H |
40 |
Записки |
Произвольный текст |
1F0H |
16 |
Страна выпуска |
Страны, в которых возможен выпуск продукта: Япония : J США : U Европа : E |
Обязательно заполняйте этот заголовок корректно, иначе на некоторых системах программа не будет работать.
• От переводчика:
• Заголовок актуален только для систем, со встроенной Операционной Системой (во встроенной ПЗУ). В обычных приставках
Mega Drive и Mega Drive 2 такого ПЗУ нет, поэтому заголовок не несет никакой функции.
Однако, всегда заполняйте заголовок полностью и правильно, это позволит программам-каталогизаторам
идентифицировать вашу программу (утилиты GoodXXX) и не возникнет путаницы. Еще, это считается хорошим тоном.
КАК ПОСЧИТАТЬ КОНТРОЛЬНУЮ СУММУ
Контрольная сумма считается следующим образом. Сначала место, занимаемое программой, заполните кодом ($FF). Затем загрузите все свои программы по адресам расположения (а фактически – будущий ROM) и программу подсчета контрольной суммы в ОЗУ по адресу $FF8000. Запустите программу в ОЗУ с адреса $FF8000. Через некоторое время программа остановится и младшее слово в регистре d0 (младшие 16 бит) и будут контрольной суммой. Перед прожигом будущего ПЗУ, сначала место объемом будущего ПЗУ заполните кодом $FF.
end_addr equ $1A4
org -$8000
start: move.l (a0),d1
addq.l #$1,d1
movea.l #$200,a0
sub.l a0,d1
amr.l s1,d1 ;счетчик
move d1,d2
subq.w #$1,d2
swap d1
moveq #$0,d0
?l2: add (a0)+,d0
dbra d2,?l2
dbra d1,?l2
nop
nop
nop
nop
nop
nop
?le: nop
nop
bra.b ?Ie
РАСПРЕДЕЛЕНИЕ ПАМЯТИ ДЛЯ ЭМУЛЯЦИИ
Для эмуляции процессора 68000
Все адреса по началу следует отключить: от $0 до $FFFFFF
Затем, следует включить следующие области:
1. Программа и данные по адресам $000000 по $7FFFFF
2. Статическое ОЗУ для Z80 по адресам с $A00000 по $A01FFF
3. Звуковой FM чип по адресам с $A04000 по $A04FFF
4. Порты ввода/вывода и управление сопроцессором Z80 с $A10000 по $A11FFF
5. Видеоконтроллер VDP и звуковой порт по адресам с $C00000 по $C00FFF
6. Статическое ОЗУ по адресам с $FF0000 по $FFFFFF
КАРТА ОЗУ (№ 171-5642-02)
Это устройство имеет две области:
1 : Основное динамическое ОЗУ с $000000 по $0FFFFF
2 : Энергонезависимое статическое ОЗУ с $200000 по $203FFF
1. Инициализация
Записать слово 0100H по адресу $A11000.
Записать 0FFH по адресу $A130F0.
Зажгется зеленый светодиод.
2. Защита от стирания/записи
Записать 03H по адресу $A130F0.
Зажгется красный светодиод.
3. Запись и чтение
Записать 01H по адресу $A130F0.
Красный светодиод погаснет.
4. Примечание: Доступ эмулятора к этим портам нужно разрешить перед записью, а затем запретить.
