Игровая приставка Sega MegaDrive Игровая приставка MEGA DRIVE фирмы SEGA была первой 16-разрядной игровой системой и использовала передовые схемотехнические решения. Система до сих пор имеется в продаже и для нее выпускается различное программное обеспечение. Дальнейшим развитием ряда, начатого моделями SEGA GENESIS и SEGA MEGA DRIVE, стала видеоприставка MEGA DRIVE 2. Популярность приставки объясняется большим количеством качественного программного обеспечения, обусловленным удачным выбором процессора. Компания SEGA всегда отдавала предпочтение передовым технологиям, и на этот раз также не отступила от своего принципа. Основой приставки является процессор 68000 производства фирмы MOTOROLA. При 16-разрядной шине данных он имеет 32-разрядную внутреннюю архитектуру, увеличивающую быстродействие программ. Кроме того, данный процессор используется в таких компьютерах, как Apple Macintosh и Amiga, что открывает доступ к большому количеству программ, которые легко переносятся на приставку. В помощь основному процессору предназначен дополнительный 8-разрядный сопроцессор, в качестве которого применяется микропроцессор Z80. Часть программы может загружаться в память сопроцессора и выполняться независимо от основной программы (вот вам и настоящая многозадачность!), что освобождает ресурсы центрального процессора. - Графический сопроцессор представляет собой специально разработанную микросхему, формирующую цветное изображение размером 320x224 точки. Одновременно на экране отображаются только 64 цвета из доступных 512. Графика в приставке спрайтовая, и картинка строится из заранее создаваемых блоков. Спрайты могут иметь размер от 8x8 до 32x32 точки. При выводе на экран совмещаются два слоя фонового изображения и спрайты. Для создания звукового сопровождения используются две микросхемы: программируемый четырехканальный звуковой генератор и синтезатор производства фирмы YAMAHA. Программы для игр хранятся в картриджах, подключаемых к системе через 64-контактный разъем. Внутри картриджа располагается ПЗУ с записанной программой, а иногда и ОЗУ для сохранения игровой ситуации. К приставке подсоединяются два 10-кнопочных игровых пульта. Четыре кнопки образуют стандартную крестовину, а оставшиеся шесть предназначены для управления. Существуют также пульты с большим числом кнопок. 3.1. Технические характеристики Центральный процессор Тип М68000 Разрядность шины данных 16 бит Разрядность шины адреса 23 бит Тактовая частота 7,6 МГц Память ОЗУ 64 Кб ПЗУ 2 Кб Видеопамять 64 Кб Видеопроцессор Тип графики спрайтовая Адресное пространство 64 Кб Разрядность шины данных 8 бит Количество спрайтов 80 Размер спрайтов 8x8 ... 32x32 Разрешение 320x224 Число цветов всего 512 одновременно на экране 64 3.2. Архитектура и принцип работы В этом разделе подробно описана архитектура центрального процессора, звукового сопроцессора и видеопроцессора игровой приставки SEGA MEGA DRIVE. Затем рассказывается о назначении внутренних регистров микросхем и их использовании программами. Проанализируем структуру игровой приставки и особенности написания программного обеспечения для нее. 3.2.1. Структурная схема Внутренняя архитектура игровой приставки MEGA DRIVE несколько отличается от рассмотренных ранее. Дело в том, что в данной приставке применяются два процессора, работающие с общим адресным пространством. Структурная схема игровой приставки SEGA MEGA DRIVE приведена на рис. 3.1. Основой схемы является центральный процессор (CPU), в качестве которого используется микропроцессор М68000 фирмы MOTOROLA. К нему подключено внутреннее ОЗУ игровой приставки объемом 64 Кб (32Кх16) и внутреннее ПЗУ объемом 2 Кб, располагаемые в картридже. Также к процессору подсоединен системный контроллер (SYSCON), осуществляющий дешифрацию адреса и формирование сигналов выборки внутреннего ОЗУ и ПЗУ Дополнительно системный контроллер синхронизирует взаимодействие центрального процессора и сопроцессора с общим адресным пространством. Сопроцессор Z80 управляет двумя звуковыми процессорами игровой приставки.
Звуковой процессор PSG - это программируемый генератор аудиосигналов, требующийся в основном для создания различных звуковых эффектов. Второй аудиопроцессор представляет собой шестиголосный музыкальный синтезатор, задачей которого является воспроизведение фоновой музыки во время игры. Сопроцессор Z80 хранит данные и программы в ОЗУ объемом 8 Кб. Следует отметить, что ОЗУ включено в общее адресное пространство центрального процессора, благодаря чему процессор в состоянии записывать сюда данные и программы. Затем управление передается сопроцессору, который будет выполнять загруженную программу, освобождая ресурсы центрального процессора. Выходные сигналы звуковых процессоров поступают на входы усилителя НЧ и на разъем подключения головных телефонов. Усиленные сигналы звукового сопровождения смешиваются и подаются на линейный выход аудиосигнала приставки. Видеопроцессор состоит из собственно видеопроцессора, схемы интерфейса видеопамяти и контроллера прямого доступа к памяти. Информация, необходимая для генерации изображения, хранится в видеопамяти объемом 64 Кб. Она не включена в адресное пространство центрального процессора, и доступ к ней осуществляется через регистры видеопроцессора или посредством контроллера прямого доступа к памяти. Из полученных данных видеопроцессор вырабатывает сигналы развертки и основных цветов. Далее они используются в микросхеме формирователя полного видеосигнала, которая преобразует их в стандартный телевизионный цветной сигнал, передаваемый на соответствующий выход приставки. Синхронизация работы всех модулей игровой приставки также возложена на видеопроцессор. Опорная частота его внутреннего генератора стабилизируется внешним кварцевым резонатором X1 (53 МГц). Видеопроцессор формирует сигналы тактовой частоты 7,6 МГц для центрального процессора и 3,5 МГц для процессора Z80. Контроллер прямого доступа к памяти позволяет быстро пересылать данные из встроенного ОЗУ или картриджа в видеопамять без участия центрального процессора. Эта функция применяется для обновления сведений в видеопамяти во время кадрового синхроимпульса. Контроллер ввода/вывода игровой приставки SEGA MEGA DRIVE обеспечивает обмен информацией с игровыми пультами через два разъема. Особенностью пультов приставки является передача данных контроллеру ввода/вывода в параллельном коде. Это значит, что состояние всех клавиш считывается за одно обращение к порту (в приставках фирмы NINTENDO, например, одно обращение соответствует операции чтения состояния определенной клавиши). Встроенный контроллер прерываний обрабатывает сигналы, поступающие от видеопроцессора, и формирует запросы на прерывание, передаваемые центральному процессору. Системный контроллер, контроллер ввода/вывода и видеопроцессор могут быть как отдельными микросхемами, так и составными частями 208-выводной БИС. Однако это изменение конструкции приставки не влияет на ее программную архитектуру и основные сигналы. Сигналы всех шин (данных, адреса и управления) центрального процессора выведены на 64-контактный разъем, через который подключается картридж с программным обеспечением. В картридже располагается ПЗУ и при необходимости дополнительное ОЗУ. Кроме того, здесь разрешается установить микросхему, выполняющую переключение страниц ПЗУ. Внешний сетевой адаптер подает напряжение на внутренний стабилизатор (+5 В), обеспечивающий функционирование микросхем игровой приставки. 3.2.2. Центральный процессор Структурная схема центрального процессора игровой приставки SEGA MEGA DRIVE приведена на рис. 3.2. В приставке MEGA DRIVE в качестве центрального используется популярный процессор М68000 производства фирмы MOTOROLA, тактовая частота которого составляет 7,6 МГц. Микропроцессор связан с другими устройствами посредством 23-разрядной шины адреса, 16-разрядной шины данных и шины управления. Шина адреса позволяет процессору обращаться к 16 Мб памяти. Регистры внешних устройств (системного контроллера, видеопроцессора и т.д.) адресуются процессором так же, как и ячейки памяти, и находятся в его общем адресном пространстве. Обратите внимание: у микропроцессора нет выхода для младшего разряда адреса А0 вместо этого используются два сигнала - LDS и UDS. Низкий уровень на выходе LDS соответствует ожиданию процессором передачи младшего байта данных по разрядам D7 - D0 на выходе UDS - ожиданию передачи старшего байта по линиям D15 - D8. Если считывается 16-разрядное слово, низкий уровень устанавливается одновременно на обоих выходах. Как видно из структурной схемы, процессор состоит из вычислительного блока с набором регистров общего назначения (АЛУ), контроллера шины и контроллера прерываний. Сигналы, вырабатываемые
Рис. 3.2. Структурная схема центрального процессора игровой приставки SEGA MEGA DRIVE контроллером шины, разрешают различным модулям занимать шины процессора для обмена информацией. Контроллер прерываний принимает запросы, поступающие от других узлов приставки, и обеспечивает их обслуживание центральным процессором в соответствии с приоритетом и установленным режимом. Далее рассматриваются программная архитектура процессора, внутренние регистры, способы адресации, система команд и система прерываний. Полная документация по процессору М68000 занимает 649 страниц, что не позволяет включить ее в книгу разумного объема. Если окажется, что приведенных здесь сведений вам недостаточно, обратитесь к литературе, указанной в конце книги, или попробуйте найти информацию на перечисленных там же сайтах Internet. Регистры процессора Отличительной чертой процессора М68000 приставки SEGA MEGA DRIVE является внутренняя 32-разрядная архитектура при внешней 16-разрядной шине данных. Именно поэтому такой вариант микропроцессора считается переходным от 16-разрядных моделей к 32-разрядным. В связи с названной особенностью все внутренние регистры процессора также являются 32-разрядными. Центральный процессор игровой приставки SEGA MEGA DRIVE содержит восемь 32-разрядных регистров данных (D0- D7), восемь 32-разрядных регистров адреса (А0- А7), один из которых используется как 32-разрядный указатель стека пользователя (А7 или USP), а также 32-разрядный счетчик команд (PC) и 16-разрядный регистр состояния процессора (CCR): Каждый регистр имеет собственное имя и назначение. Регистры данных D0- D7. Используются для хранения битов, байтов, слов, двойных слов и любых других структур данных, над которыми процессор производит различные операции. Также могут применяться как индексные регистры при обращении к памяти. Регистры адреса А0- А7. Задействуются как программные указатели стека, индексные регистры ИЛИ регистры базового адреса. В таком качестве они полезны при выполнении операций с 16- или 32-разрядными данными. Регистр А7 используется при вызове подпрограмм и обработке исключений как аппаратно реализованный указатель стека. Регистр указателя системного стека SSP. Процессор М68000 может работать с двумя независимыми стеками. Один из стеков применяется программой пользователя, а другой - операционной системой (он включается, когда процессор функционирует в режиме супервизора). Регистр состояния процессора SR. Этот 16-разрядный регистр разделен на две части. Каждый бит в младшем байте данного регистра является флагом и изменяет свое значение в зависимости от результата выполненной процессором команды. Старший байт регистра предназначен для переключения режимов центрального процессора. Младший байт имеет собственное имя (CCR). Структура регистра состояния центрального процессора игровой приставки SEGA MEGA DRIVE представлена на рис. 3.3.
Рис. 3.3. Структура регистра состояния центрального процессора игровой приставки SEGA MEGA DRIVE Старший байт регистра состояния задает режим работы процессора. Как видно из рис. 3.3, только пять разрядов влияют на функционирование процессора, оставшиеся три разряда постоянно установлены в 0. Флаг Т - флаг трассировки. Если он установлен, то после выполнения каждой команды процессор будет передавать управление процедуре обслуживания трассировочного прерывания. Флаг используется при отладке программ, а в остальных случаях должен быть равен 0. Флаг S является флагом режима супервизора. Процессор М68000 может работать в пользовательском режиме или в режиме супервизора. Если этот флаг равен 0, то процессор функционирует в режиме пользователя и использует стек пользователя. Если же флаг установлен, процессор находится в режиме супервизора и применяет системный стек. При запуске программы задействован стек пользователя. Системный стек включается при обработке исключений и запросов на прерывание. Флаги I2 - 10 - маска приоритета прерываний, их состояние определяет реакцию процессора при поступлении запроса на прерывание. Эти три разряда интерпретируются как число в диапазоне от 0 до 7. После установки указанных флагов в 1 процессор не будет обслуживать прерывания с номером, меньшим или равным заданному. Прерывание с номером 7 запретить нельзя. Из восьми разрядов младшего байта регистра состояния используются только пять. Три старших разряда регистра флагов всегда сброшены. Ниже кратко описано их назначение. Флаг X - флаг расширения. Применяется при выполнении арифметических команд. Флаг принимает значение 1, если разрядность результата арифметической операции превосходит установленную разрядность операндов. Данный флаг является аналогом флага переноса, но на него не влияют логические и некоторые арифметические операции. Флаг N - флаг отрицательного результата. Устанавливается в 1, если самый старший разряд результата выполненной операции равен 1. В противном случае флаг сбрасывается. Флаг Z - флаг нулевого результата. Устанавливается в 1, если результат выполнения операции равен 0. Флаг V - флаг переполнения. Флаг принимает значение 1, если разрядность результата выполненной операции над числами со знаком превосходит установленную разрядность операндов. Другими словами, состояние этого флага определяется наличием переноса в самый старший разряд. Флаг С - флаг переноса. Равен 1, если разрядность результата выполненной операции превосходит установленную разрядность операндов. Например, если при сложении двух 8-разрядных чисел получится 9-разрядное число. Иначе говоря, состояние данного флага определяется наличием переноса из самого старшего разряда. Счетчик команд PC. В этом регистре процессора хранится адрес команды, которая должна быть выполнена. Во время обработки команды содержимое регистра автоматически увеличивается, после чего он указывает на следующую команду. Команды перехода позволяют изменить содержимое регистра и задать необходимую последовательность выполнения команд, размещенных в памяти. При использовании относительной адресации содержимое счетчика команд интерпретируется как указатель на адрес команды. Способы адресации Для корректной работы процессора в код команды необходимо включить местоположение необходимых данных с помощью различных методов адресации. Ниже подробно рассмотрены методы адресации центрального процессора игровой приставки SEGA MEGA DRIVE (рис. 3.4). Непосредственная регистровая адресация с использованием регистра данных. Операнд находится в одном из регистров данных центрального процессора. Название применяемого регистра указывается непосредственно в команде (рис. 3.4а). Непосредственная регистровая адресация с использованием регистра адреса. Операнд находится в одном из регистров адреса центрального процессора. Название регистра задается непосредственно в команде (рис. 3.4б). Косвенная регистровая адресация. В команде определяется имя регистра адреса, где хранится адрес операнда в памяти (рис. 3.4в).
Рис. 3.4. Методы адресации центрального процессора М68000 игровой приставки SEGA MEGA DRIVE Косвенная регистровая адресация с последующим увеличением адреса. В команде указывается один из регистров А0 - А7, где содержится адрес, определяющий расположение операнда в памяти. После того как выборка данных произведена, число, хранящееся в регистре, автоматически увеличивается на длину операнда (на 1 для байта, на 2 для слова и на 4 для двойного слова). Название используемого регистра адреса вводится непосредственно в команде (рис. 3.4г). Косвенная регистровая адресация с предшествующим уменьшением адреса. В команде указывается регистр (А0 - А7), где содержится адрес, определяющий расположение операнда в памяти. Перед выборкой данных из памяти число, хранящееся в регистре, автоматически уменьшается на длину операнда (на 1 для байта, на 2 для слова и на 4 для двойного слова). Название применяемого регистра адреса вписывается непосредственно в команде (рис. 3.4д). Косвенная регистровая адресация со смещением. В команде указывается регистр адреса и 16-разрядное смещение. Расположение операнда в памяти определяется путем сложения содержимого регистра адреса с заданным смещением. Смещение рассматривается как число со знаком в диапазоне от -32768 до 32767 (рис. 3.4е). Косвенно-индексная регистровая адресация со смещением. В команде указывается регистр адреса, индексный регистр и 8-разрядное смещение. Расположение операнда в памяти определяется путем сложения содержимого регистра адреса с содержимым индексного регистра и заданным смещением. Смещение рассматривается как число со знаком в диапазоне от -127 до 128 (рис. 3.4ж). Относительная адресация со смещением. Адрес операнда вычисляется так же, как и при косвенной регистровой адресации со смещением, только вместо регистра адреса используется счетчик команд PC (рис. 3.4з). Относительная адресация со смещением и индексированием. Адрес операнда вычисляется так же, как и при косвенно-индексной регистровой адресации со смещением, только вместо регистра адреса применяется счетчик команд PC (рис. 3.4и). Абсолютная короткая адресация. В команде указывается 16-разрядный адрес размещения операнда в памяти. Абсолютная длинная адресация. В команде указывается полный 32-разрядный адрес размещения операнда в памяти. Неявная адресация. Для команд расположение операндов строго фиксировано, дополнительных указаний не требуется. Непосредственная адресация. Операнд хранится в памяти сразу за кодом команды, начиная с адреса РС+1. В записи команды на языке ассемблера при этом указываются непосредственные данные. Система команд Центральный процессор игровой приставки SEGA MEGA DRIVE может выполнять около 120 различных команд. Они делятся на следующие функциональные группы: * команды пересылки данных: MOVE, EXG; * команды арифметических операций: ADD, ADDI, SUB, SUBI, MULS, MULU, DIVS, DIVU, NEG, CLR; * команды логических, операций: AND, EOR, NOT, OR; * команды работы с отдельными разрядами: BCHG, BCLR, BSET, BTST; * команды вычисления адреса: LEA, PEA; * команды сдвига и вращения: ASL, ASR, LSR, LSL, ROL, ROR, ROXR, ROXL; * команды двоично-десятичной арифметики: ABCD, NBCD, SBCD; * команды управления выполнением программы: Вес, DBcc, BRA, BSR, JMP, JSR, RTS; * команды управления процессором: NOP, RTE, STOP, BREAK, TRAP, MOVE to SR, MOVE from SR. Список команд центрального процессора игровой приставки SEGA MEGA DRIVE и их краткое описание приведены в приложении 1. Для получения более полной информации по системе команд следует обратиться к специальной литературе. Система прерываний Обработка запросов на прерывание в центральном процессоре игровой приставки SEGA MEGA DRIVE базируется на понятии «исключение» (exception) и характерна для 16-разрядных процессоров. При возникновении какого-либо события, требующего немедленной реакции системы, выполнение текущей программы прекращается, а управление передается по заданному адресу для обработки новой ситуации. Исключения могут быть внутренними (например, деление на 0 или ошибка адресации), которые вызываются в результате работы программы, и внешними (запросы на прерывания), инициируемыми внешними устройствами системы. Рассмотрим действия центрального процессора при обслуживании внутреннего исключения: 1. После получения сигнала об исключении устройство управления процессора генерирует вектор исключения. Фактически вектор представляет собой внутренний номер возникшей ситуации. 2. Полученный вектор умножается на 4 для формирования адреса в диапазоне 0h - 3FCh. 3. Содержимое счетчика команд и регистра состояния процессора запоминается в стеке. 4. Двойное слово, расположенное в памяти по вычисленному ранее адресу, записывается в счетчик команд. Таким образом, управление передается процедуре обработки исключения. Обработка внешнего запроса прерывания несколько отличается от рассмотренной выше процедуры. У процессора есть три входа запроса прерывания. Низкий логический уровень на всех входах свидетельствует об отсутствии запроса на прерывание. Если же на этих входах появляется любая другая комбинация, она сравнивается с значением, записанным в разрядах 12 - 10 регистра состояния процессора. Когда код на входах процессора больше, чем установленный в регистре состояния приоритет (12 - 10), происходит обработка соответствующего исключения. В игровой приставке SEGA MEGA DRIVE используются только три прерывания: с номером 2 (прерывание от внешнего устройства), 4 (прерывание по строчному синхроимпульсу) и 6 (прерывание по кадровому синхроимпульсу). Всего центральный процессор игровой приставки SEGA MEGA DRIVE может обрабатывать 256 исключительных ситуаций. При этом первые 64 с кодами 00h - 3Fh используются системой, а оставшиеся 192 могут задействоваться пользовательской программой. Ниже кратко описано назначение системных векторов. Вектор 00 - рестарт системы. Исключительная ситуация возникает при первом запуске системы или при поступлении сигнала RESET. Это единственный вектор, занимающий два двойных слова. При начальной установке системы процессор переходит в режим супервизора, маска приоритета прерываний задается равной 7, трассировка выключается. Двойное слово, записанное по адресу 000000h, копируется в указатель системного стека SSP. Следующее двойное слово копируется в счетчик команд PC. Вектор 01 - рестарт системы. Практически не применяется, поскольку данные используются при возникновении исключения с кодом 0. По адресу, соответствующему этому вектору, записан адрес, по которому передается управление при начальном запуске системы. Вектор 02 - ошибка шины. Исключительная ситуация возникает при появлении сигнала низкого логического уровня на входе BERR процессора. Вектор 03 - ошибка адресации. Данная ошибка появляется, если процессор пытается обратиться к слову или двойному слову, начинающемуся с нечетного адреса. Вектор 04 - неизвестная операция. По адресу, заданному в этом векторе, управление будет передано, если процессор получил неправильный код команды (то есть команда с таким кодом отсутствует в системе команд процессора). Вектор 05 - деление на 0. Причина возникновения данной ситуации ясна из названия. Вектор 06 - команда СHK. После выполнения команды СHK, если условие Dn операнд верно (см. таблицу команд в приложении 1), управление будет передано по указанному в векторе адресу. Вектор 07 - команда TRAPV. По адресу, определяемому этим вектором, управление передается после выполнения команды TRAPV, если флаг V установлен в 1. Вектор 08 - нарушение привилегий. Исключительная ситуация возникает при попытке выполнить привилегированную команду в пользовательском режиме (флаг S равен 0). Вектор 09 - трассировка. Если флаг трассировки Т в регистре состояния установлен, то после выполнения каждой команды управление передается по адресу, заданному вектором. Основное назначение, данного исключения - пошаговая отладка программ. Векторы 0A - 0Е. Зарезервированы (не используются). Вектор 0F - неинициализированный вектор прерывания. Процедура обработки данной исключительной ситуации вызывается, когда процессор получил запрос на прерывание, но не может определить соответствующий ему вектор из-за неправильных управляющих сигналов. Векторы 10-17. Зарезервированы (не используются). Вектор 18 - нераспознанное прерывание. Исключительная ситуация возникает, если при обработке запроса на прерывание на вход BERR поступает сигнал низкого логического уровня, свидетельствующий об ошибке на шине процессора. Вектор 19 - вектор прерывания 1. По адресу, записанному в векторе, управление передается, когда поступает запрос на прерывание с приоритетом 1. Вектор 1А - вектор прерывания 2. По адресу записанному в векторе, управление передается, когда поступает запрос на прерывание с приоритетом 2. В игровой приставке SEGA MEGA DRIVE это прерывание от дополнительных внешних устройств. Вектор 1В - вектор прерывания 3. По адресу, записанному в векторе, управление передается при поступлении запроса на прерывание с приоритетом 3. Вектор 1С - вектор прерывания 4. По адресу, записанному в векторе, управление передается, когда поступает запрос на прерывание с приоритетом 4. В игровой приставке SEGA MEGA DRIVE это прерывание по строчному синхроимпульсу. Вектор 1D - вектор прерывания 5. По адресу, записанному в векторе, управление передается при поступлении запроса на прерывание с приоритетом 5. Вектор 1Е - вектор прерывания 6. По адресу, записанному в векторе, управление передается, когда поступает запрос на прерывание с приоритетом 6. В игровой приставке SEGA MEGA DRIVE это прерывание по кадровому синхроимпульсу. Вектор 1F - вектор прерывания 7. По адресу, записанному в векторе, управление передается, когда поступает запрос на прерывание с приоритетом 7. Векторы 20 - 2F - векторы команды TRAP. После выполнения команды TRAP #n вызывается процедура обработки исключения с номером 20h+n. Векторы 30 - 3F. Зарезервированы (не используются). Векторы 40 - FF. Векторы применяются программой пользователя для собственных целей. 3.2.3. Адресное пространство Центральный процессор игровой приставки MEGA' DRIVE способен обращаться к 16 Мб памяти с адресами 000000h - FFFFFFh. В едином адресном пространстве располагаются внутреннее ПЗУ и ОЗУ приставки, регистры ввода/вывода, память сопроцессора Z80 и память подключенного картриджа. Распределение адресного пространства игровой приставки SEGA MEGA DRIVE показано на рис. 3.5. Рассмотрим более подробно назначение основных блоков памяти.
Рис. 3.5. Распределение адресного пространства центрального процессора игровой приставки SEGA MEGA DRIVE Адреса 000000h - 0007FFh. Здесь располагается встроенное ПЗУ приставки с программой начального запуска, которая считывает информацию из картриджа, сравнивает ее с записанным образцом и передает управление в ПЗУ картриджа по адресу запуска игры. После передачи управления внутреннее ПЗУ отключается, а при обращении по этим адресам становится доступным ПЗУ картриджа В некоторых моделях стартовое ПЗУ отсутствует. Адреса 000000h - 3FFFFFh. По указанным адресам подключается ПЗУ картриджа с записанной в нем программой. Адреса 400000h - 7FFFFFh. Эта область памяти зарезервирована фирмой-изготовителем для дальнейших расширений. Некоторые картриджи могут подключать сюда ПЗУ, если объем программы превышает 4 Мб. Адреса 80000 Oh - 9FFFFFh. Данная область памяти также зарезервирована фирмой-изготовителем для дальнейших расширений. Некоторые картриджи подключают по этим адресам внутреннее ОЗУ. Адреса A00000h - А0FFFFh. Область памяти, которая используется совместно центральным процессором М68000 и сопроцессором Z80. Более подробно работа этой области памяти будет рассматриваться в разделе, посвященном звуковым процессорам игровой приставки. Адреса A10000h - A11FFFh. Регистры управления сопроцессором. Адреса A12000h - BFFFFFh. Не используются. Адреса C00000h - DFFFFFh. Регистры управления видеопроцессором. Адреса E00000h - FEFFFFh. Доступ запрещен. Адреса FF0000h - FFFFFFh. Внутреннее ОЗУ игровой приставки. Далее >>