Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Маппер UNROM




Программирование мапперов.

 

В адресном пространстве CPU есть два окна, в которые отображается содержимое PRG-ROM ($8000-$BFFF и $C000-FFFF). В окно $C000-$FFFF всегда отображается последний блок PRG-ROM («хвост» ПЗУ). За содержимое окна $8000-$BFFF – отвечает маппер (как правило, при включении – это самое начало ПЗУ).

Каждый маппер имеет определенное количество регистров управления, доступных только для записи. Адресуются они через области, отведенные для PRG-ROM. То есть – чтение из памяти по адресам $8000-$FFFF приводит к чтению ПЗУ (PRG-ROM), а запись, по некоторым адресам из этого диапазона (см. спецификации мапперов), приводит к записи управляющих слов в соответствующие регистры маппера.

В качестве примера рассмотрим простейший маппер – «UNROM».

 

 

UN-ROM – один из простейших мапперов. Он предусматривает работу с PRG-ROM объёмом 128k, в качестве CHR используется ОЗУ размером 8k. Маппер строится на базе двух микросхем (74ls161 и 74ls32) и программно представлен как один регистр, который отражается на всё пространство первого окна ($8000-$BFFF). То есть запись по любому адресу из этого диапазона приведет к записи в регистр маппера. Записываемый байт определяет номер блока ПЗУ, подключаемого в окно $8000-$BFFF (блоки нумеруются с нуля и с начала адресации реальной ПЗУ). В окно $C000-$FFFF всегда подключены последние 16k ПЗУ.

Знакогенератор заполняется программно, через регистры PPU ($2006,$2007) – запись должна производится в адресное пространство PPU, отведенное под знакогенератор ($0000-$1FFF).

 

Информацию об архитектуре других типов мапперов см. в приложении «Спецификации мапперов».

 

Ввод/Вывод в Денди.

 

Архитектура Денди не изобилует большим (а может и достаточным) количеством портов ввода/вывода. Программно под порты выделены две ячейки из адресного пространства CPU (на аппаратном уровне процессора). Это ячейки с адресами $4016 и $4017. Аппаратных же линий намного меньше – а именно: 3 линии (бита) на выход и 5 + 2 линии на вход. Опрос линий чисто программный.

Наиболее распространены (в России) модели приставок Денди с двумя «разъёмами» для «джойстиков» (так их называют в быту) – по 15 контактов каждый (есть и 9-ти контактные или шнуры джойстиков могут быть «вделаны» в приставку, в этом случае, как правило, есть еще один 15-ти штырьковый разъём – но такие варианты встречаются редко). Условимся называть разъём для подключения первого джойстика «Порт A», второго «Порт B» (каждый по 15 штырьков). Если оба порта имеют по 9 штырьков, то есть третий – 15-ти штырьковый, который дублирует «Порт B» и содержит дополнительные сигналы (аналогично, если джойстики неразъемные). Если, как в большинстве случаев, оба разъема имеют 15 контактов – к «Порту A» подключено не более шести, ко второму – все 15 (в том числе и сигналы с «Порта A», правда, на другие контакты). В общем «Порт A» предназначен для подключения «первого» джойстика (аппаратно возможно и подключение светового пистолета - «Zapper»). К «Порту B» подключается все другие периферийные устройства (второй джойстик, световой пистолет, разъветвитель на 4 джойстика и многое другое), фактически на него выведены все линии портов ввода/вывода Денди (за исключением одного из «Порта A»). Теперь подробнее о программной модели и аппаратной реализации.

Вывод – 3 бита “OUT” (непосредственно с процессора), адресуются путем записи значения в регистр $4016, младшие биты. Бит 0 используется в качестве стробирующего сигнала-защелки состояния джойстиков (см. ниже).

Ввод – порт $4016 “J1” (чтение), аппаратно присутствуют только два младших бита. Бит D0 выведен на «Порт A» и используется для чтения последовательного кода состояния джойстика 1. Бит D1 выведен на «Порт B».

Ввод – порт $4017 “J2” (чтение), аппаратно присутствуют 5 младших бит. Нулевой бит – аналогично для джойстика 2.

Распиновка портов (2 по 15) приведена на рисунке.

 

«Порт A»

  GND
  SND IN
  J1 D0
  CLK
  OUT0 (STRB)
  VCC

 

«Порт B»

  GND
  SND IN
  #IRQ
  J2 D4
  J2 D3
  J2 D2
  J2 D1
  J2 D0
  CLK2
  OUT2
  OUT1
  OUT0 (STRB)
  J1 D1
  CLK
  VCC

 

При каждом чтении из $4016 или $4017 процессор выдает сигналы (#OE), разрешающие чтение из буферов портов (для каждого порта свой сигнал – процессором предусмотрено аппаратно, см. Приложение 5). Соответственно считываются значения входных линий. Кстати опять, ничто не мешало разработчикам NES (Денди) сделать на каждом порту по 8 линий на вход.

О других сигналах.

· SND IN – аналоговый выход с pAPU (см. ниже)

· #IRQ – линия запроса прерывания (от периферийного устройства)

· CLK/CLK2 – синхроимпульс тактовой частоты процессора (1.79МГц для PAL)




Поделиться с друзьями:


Дата добавления: 2014-11-16; Просмотров: 1247; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.014 сек.