Хелпикс

Главная

Контакты

Случайная статья





Таблица 5.1 – Машинные коды процессора MCS6502



Таблица 5.1 – Машинные коды процессора MCS6502

 

Условные обозначения, принятые в таблице 5.1:

а – двухбайтовый адрес в диапазоне 0000h...FFFFh;

е – однобайтовое относительное смещение (00h...FFh);

z – однобайтовый адрес в диапазоне "нулевой страницы" 0000h...00FFh;

#n – однобайтовая константа (00h...FFh);

А – аккумулятор;

X, Y – индексные регистры.

 

Таблица 5.2 - Примеры способов адресации процессора MCS6502

 

Разнообразие способов адресации лишь на первый взгляд кажется чересчур сложным. Это материал для понимания, а не для запоминания. В своих программах на первых порах можно ограничиться теми способами, которые наиболее понятны. Получающееся при этом некоторое увеличение объема программы, для случая ГИТС не имеет принципиального значения ввиду достаточности свободного места памяти РПЗУ.

 

Функциональное описание системы команд процессора MCS6502 приведено в таблице 5.3. В ней рассмотрены действия, которые совершает процессор над соответствующими операндами. Длительность выполнения команд составляет от 2 до 7 тактов и зависит от способа адресации [8].

 

Таблица 5.3 – Система команд процессора MCS6502

 

Условные обозначения:

m – однобайтовый или двухбайтовый аргумент; е – однобайтовое относительное смещение; С – флаг переноса; А – аккумулятор; X, Y – индексные регистры; P – регистр состояния; SP – указатель стека; “AND” – логическое “И”; “OR” – логическое “ИЛИ”; “XRA” – исключающее “ИЛИ”.

-----------------------------------------------------------------------------------------------------------

 

 

7 МЕТОДИКА СОСТАВЛЕНИЯ ПРОГРАММЫ ДЛЯ ГИТС

 

Приведенных выше данных достаточно для самостоятельного составления простых программ с ассемблированием кодов вручную. Именно так поступали первопроходцы, собиравшие в 80-х годах компьютеры “Микро-80” и “Радио-86РК”. Подобная практика и сейчас может пригодиться пользователям при разработке собственных телевизионных испытательных таблиц. Однако время не стоит на месте, и было бы большой ошибкой не воспользоваться средствами автоматизации составления программ, представителями которых выступают многочисленные ассемблеры, кроссассемблеры, отладчики.

 

Проще всего осуществить разработку собственной программы для ГИТС при помощи IBM-совместимого компьютера, используя ассемблеры SVASMO2 (John Michne, 1988) или TASM Assembler v2.7 (Speech Technology Inc., 1989). Первая программа ориентирована исключительно на машинные коды MCS6502, вторая – более универсальна и работает со многими типами процессоров. Если выбирать одну программу из двух, то следует предпочесть TASM Assembler, поскольку в ней имеется больше возможностей по диагностике ошибочных ситуаций. Программа TASM Assembler v2.7 для работы под DOS распространяется Shareware, ее архивированная копия находится, в частности, на ftp-сервере журнала “Радио” в виде файла “tasm276.zip”.

 

Опыт подсказывает, что научиться программированию на незнакомом для себя языке проще всего при наличие трех составляющих, во-первых, имея четко поставленную цель, во-вторых, осознавая ее перспективность и, в-третьих, изучая листинги реально работающих программ. В частности, для “Dendy” существует целый кладезь наработанного программного обеспечения, который доступен буквально каждому – это игровые программы, зашитые в игровых картриджах. Бинарные коды программ можно получить при помощи несложной приставки-копировщика "ROM-copier", подключаемой к LPT-порту любого IBM-совместимого компьютера [6]. Далее следует поработать с дизассемблером, понимающим коды процессора MCS6502, например, с многофункциональной программой IDA v3.7 (Data Rescue, 1997).

 

Другой путь – научиться программировать на конкретном специализированном примере, в качестве которого можно использовать программу, зашиваемую в РПЗУ DS1 для ГИТС (из журнала “Радио” [1]). В приложении А приведен ее полный листинг, полученный программой TASM Assembler в виде файла с расширением *.lst. В приложении Б приведены коды прошивки РПЗУ DS2.

 

Методика работы следующая. Вначале необходимо сформировать исходный текст ассемблерной программы в виде текстового DOS-файла под названием “gits.asm”, который легко получить из листинга приложения А, если удалить в каждой строке по 24 первых символов слева (до начала ассемблерных команд). Затем следует поместить файл “gits.asm” в каталог, где находится запускаемый файл “tasm.exe” программы TASM Assembler, после чего набрать в командной строке: tasm –65 –g3 gits.asm и нажать клавишу <ENTER>. После отработки программы в текущем каталоге должны появиться два новых файла: “gits.lst” (текст листинга, аналогичный приложению А) и “gits.obj” (бинарный файл длиной 1088 байтов для прошивки РПЗУ).

 

Теперь следует внимательно изучить логику работы программы ГИТС по ее ассемблерному тексту и сопоставить алгоритмы с приведенными в настоящем материале. Необходимо учесть, что при разработке базовой программы для ГИТС не ставилась задача получить минимальный объем кода, поэтому имеются резервы для ее сокращения. В частности, можно попытаться внести какие-либо усовершенствования в текст программы, затем сохранить файл с расширением *.asm, запустить еще раз в работу TASM Assembler, получить бинарный файл и прошить его в РПЗУ картриджа “Dendy”. Если все сделано правильно, то на экране телевизора появятся запрограммированные вами изменения в работе ГИТС.

 

8 ПРОГРАММЫ-ЭМУЛЯТОРЫ

 

Можно ли увидеть результаты изменений в программе, не прошивая РПЗУ? Оказывается, можно. Для этого необходимо иметь IBM-совместимый компьютер не ниже Pentium-120 с объемом памяти не менее 4 Мб и звуковой картой. Еще потребуется одна из программ-эмуляторов, например, FCE-Ultra, RockNES, Nester, бесплатные версии которых можно скачать с сайта http://emu-russia.km.ru. “Старинный” DOS-эмулятор Nesticle использовать не рекомендуется, поскольку в нем не совсем корректно выполнена процедура выхода из немаскируемого прерывания.

 

Кроме того, необходимо перевести бинарные файлы прошивок S-ROM и V-ROM (ГИТС) в специальный формат, понятный эмулятору. Таких форматов существует несколько типов: iNES формат (расширение .nes), Famicom Disk System (расширения .dka, .dkb, .500), dNESe формат, fwNES формат. Самый распространенный из них - это формат iNES и соответственно файлы с расширением .nes. Структура типичного файла .nes приведена в приложении В настоящего документа.

 

Для ориентира, первые 16 байтов отводятся под загрузчик (хэддер). Для прошивки ГИТС он будет иметь вид: <4E 45 53 1A 01 01 00 00 00 00 00 00 00 00 00 00>.

 

После успешной отработки данной методики можно приступить к творческому процессу создания своего собственного телевизионного теста. О том, какие существуют тесты и что проверяют с их помощью, пойдет речь дальше.

 

9 РАЗНОВИДНОСТИ ТЕЛЕВИЗИОННЫХ ТЕСТОВ

 

В радиолюбительской литературе опубликовано большое количество схем самодельных генераторов телевизионных сигналов. Их классификация и возможности подробно изложены в [9]. Методика настройки с их помощью приводится буквально в каждом справочнике по ремонту телевизоров.

 

Преимуществом ГИТС на базе “Dendy” является универсальность и оперативность, поскольку в любой момент времени можно заменой РПЗУ добавить новый тест или изменить существующий. Программным путем легко создать практически любую испытательную картинку для комплексной проверки телевизора. Для лучшего представления о возможностях испытательных сигналов ниже приводится обобщенная информация.

 

1) Сигнал “равномерно светящееся поле” предназначен для регулировки статического баланса белого, чистоты цвета, установки оптимального электрического режима кинескопа, проверки цепей стабилизации высокого напряжения.

 

2) Сигналы “точечное поле”, “сетчатое поле”, “шахматное поле” должны быть геометрически синхронизированы между собой, в частности, точки должны совпадать с вершинами квадратных ячеек. Желательно иметь их прямые и инвертированные разновидности. Наблюдая попеременно изображения перечисленных сигналов, можно визуально проконтролировать работу устройств стабилизации размеров кадра. Также эти сигналы предназначены для установки формата изображения и его центрирования, проверки нелинейных и геометрических искажений растра, статического и динамического сведения лучей, фокусировки в центре и по краях, проверки общей работоспособности телевизора.

 

3) Сигнал “шкала серого” или “градации серого” предназначен для проверки правильности воспроизведения полутонов, динамического баланса белого, точности фиксации уровня черного, установки контрастности, контроля подавления цветовой поднесущей при разных уровнях яркости. В ГИТС имеется следующая шкала градаций яркости: 0, 25, 50, 75, 100%.

 

4) Сигнал “мелкие вертикальные полосы” предназначен для оценки полосы пропускания канала изображения, регулировки четкости, проверки прохождения ВЧ-составляющих телевизионного сигнала.

 

5) Сигналы “горизонтальные черно-белые полосы” и “вертикальные черно-белые полосы” предназначены для проверки переходных искажений в канале яркости, точности фиксации уровня черного, регулировки яркости и контрастности изображения.

 

6) Сигналы “горизонтальные цветные полосы” и “вертикальные цветные полосы” предназначены для проверки правильности воспроизведения основных и дополнительных цветов, насыщенности в смежных строках, равенства уровней прямого и задержанного сигналов, настройка НЧ- и ВЧ-предыскажений, проверки правильности матрицирования, устойчивости работы устройств цветовой синхронизации.

 

Рассматриваемый генератор вырабатывает телевизионный сигнал формата PAL, поэтому необходимо обращать внимание на структуру искажений и помех, являющихся специфическими для данного формата:

- “дифференциальное усиление” – нежелательное относительное изменение размаха сигнала цветности при изменении мгновенного значения сигнала яркости;

- “дифференциальная фаза” – нежелательное относительное изменение фазы сигнала цветности при изменении мгновенного значения сигнала яркости;

- “квадратурные искажения” – нарушение квадратурности составляющих сигнала цветности и, как следствие, возникновение между ними перекрестных искажений.

 

Перечисленные сигналы относятся к числу основных и наиболее простых для формирования. Более сложными являются цветные комплексные испытательные таблицы типа УЭИТ и ТИТ, подобные тем, что передаются из телецентров. Их аналоги можно сформировать при помощи ГИТС, предварительно нарисовав на бумаге всю структуру изображения, включая графику каждого из 960 блоков экрана. Двух фонтов формирования пейзажа должно хватить на самый изощренный рисунок испытательной таблицы, включая круг в центре экрана. На каждое такое изображение потребуется 1 Кб памяти S-ROM, итого в микросхеме КР573РФ6А должно поместиться 7 комплексных таблиц, а с уплотнением информации – еще больше.



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.