stringtranslate.com

CTIA и GTIA

Чип NTSC GTIA производства Okidata

Color Television Interface Adapter [1] ( CTIA ) и его преемник Graphic Television Interface Adapter [1] ( GTIA ) — это специальные чипы, используемые в 8-битных компьютерах Atari и домашней игровой консоли Atari 5200. В этих системах чип CTIA или GTIA работает вместе с ANTIC для создания видеодисплея. ANTIC генерирует графику игрового поля (текст и растровое изображение), в то время как CTIA/GTIA обеспечивает цвет для игрового поля и добавляет наложенные объекты, известные как графика игрока/ракеты ( спрайты ). Под руководством Джея Майнера чипы CTIA/GTIA были разработаны Джорджем Маклеодом при технической помощи Стива Смита. [2] [3] [4]

Color Television Interface Adapter и Graphic Television Interface Adapter — названия микросхем, указанные в руководстве по обслуживанию Atari на местах. [1] В различных публикациях микросхемы именовались по-разному, иногда использовалось альтернативное написание Adapter [5] [6] или Graphics , [3] или утверждалось, что «C» в «CTIA» означает Colleen/Candy [5], а «G» в «GTIA» означает George. [3] [5] [6] [7]

История

2600 и ТИА

Atari построила свой первый чип драйвера дисплея, Television Interface Adaptor , но повсеместно называемый TIA, как часть консоли Atari 2600. [8] Дисплей TIA логически состоял из двух основных наборов объектов, «игроков» и «ракет» , которые представляли движущиеся объекты, и «игрового поля», которое представляло статическое фоновое изображение, на котором происходило действие. Чип использовал данные в регистрах памяти для создания цифровых сигналов, которые преобразовывались в реальном времени через цифро-аналоговый преобразователь и радиочастотный модулятор для создания телевизионного дисплея.

Обычный способ отрисовки игрового поля — использовать битовую карту, хранящуюся в буфере кадра , в котором каждая ячейка памяти в буфере кадра представляет одно или несколько мест на экране. В случае 2600, который обычно использовал разрешение 160x192 пикселей, буфер кадра должен был иметь не менее 160x192/8 = 3840 байт памяти. Созданная в эпоху, когда ОЗУ было очень дорогим, TIA не могла себе позволить это решение.

Вместо этого система реализовала систему отображения, которая использовала один 20-битный регистр памяти , который можно было скопировать или отразить на правой половине экрана, чтобы создать то, что фактически было 40-битным дисплеем. Каждое местоположение могло быть отображено в одном из четырех цветов из палитры из 128 возможных цветов. TIA также включала несколько других объектов отображения, «игроков» и «ракет». Они состояли из двух 8-битных объектов, известных как «игроков», одного 1-битного объекта, известного как «мяч», и двух 1-битных «ракет». Все эти объекты можно было перемещать в произвольные горизонтальные местоположения с помощью настроек в других регистрах.

Ключ к системе TIA и низкой цене 2600 заключался в том, что система реализовала достаточно памяти только для рисования одной строки дисплея, все из которых хранились в регистрах. Чтобы нарисовать весь экран, полный данных, пользовательский код ждал, пока телевизионный дисплей достигнет правой стороны экрана, и обновлял регистры для игрового поля и игрока/ракет, чтобы правильно отразить следующую строку на дисплее. Эта схема рисовала экран построчно из программного кода на картридже ROM , метод, известный как «гонка луча».

CTIA

Atari изначально предполагала, что 2600 будет иметь короткий срок службы на рынке в три года, когда она была разработана в 1976 году, что означало, что компании понадобится новый дизайн к 1979 году. [8] Первоначально этот новый дизайн был просто обновленной игровой консолью, похожей на 2600, и был построен вокруг похожего базового дизайна, просто обновленного. Работа над тем, что станет CTIA, началась в 1977 году и была направлена ​​на создание системы с удвоенным разрешением и удвоенным количеством цветов. Более того, изменяя количество цветов на игровом поле, можно было поддерживать гораздо более высокие разрешения до 320 пикселей по горизонтали. Игроки и ракеты также были обновлены, включая четырех 8-битных игроков и четыре 2-битных ракеты, но также допуская дополнительный режим для объединения четырех ракет в пятого игрока.

Вскоре после начала проектирования, революция домашних компьютеров началась всерьез во второй половине 1977 года. В ответ Atari решила выпустить две версии новой машины, модель начального уровня в качестве игровой консоли и версию высокого уровня в качестве домашнего компьютера. [8] В любой роли требовалось более сложное игровое поле, особенно поддержка графики персонажей в роли компьютера. Дизайн CTIA был хорошо продвинут на тот момент, поэтому вместо перепроектирования было предложено умное решение путем добавления второго чипа, который бы эффективно автоматизировал процесс гонки луча. Вместо того, чтобы программировать пользователя, обновляя регистры CTIA на основе его синхронизации прерываний, новый ANTIC выполнял эту рутинную работу, считывая данные из буфера кадра и передавая их в CTIA на лету.

В результате этих изменений новые чипы обеспечивают значительно улучшенное количество и выбор графических режимов по сравнению с TIA. Вместо одного режима игрового поля с разрешением 20 или 40 бит пара CTIA/ANTIC может отображать шесть текстовых режимов и восемь графических режимов с различными разрешениями и глубиной цвета, позволяя программисту выбирать баланс между разрешением, цветами и использованием памяти для своего дисплея.

CTIA против GTIA

Палитра из 256 цветов, используемая в чипе GTIA (только NTSC) с 16 оттенками и 16 значениями яркости
Именно это Atari TIA и CTIA использовали в качестве палитры (только NTSC) с 16 оттенками и всего 8 значениями яркости, что составляло 128 уникальных цветов.

Первоначальный дизайн чипа CTIA также включал три дополнительных цветовых интерпретации обычных графических режимов. Эта функция обеспечивает альтернативные выражения графических режимов высокого разрешения ANTIC, представляющих 1 бит на пиксель, 2 цвета с шириной пикселей в половину цветовой тактовой частоты как 4 бита на пиксель, до 16 цветов, пикселей с шириной двухцветной тактовой частоты. Эта функция была готова до дебюта компьютеров в ноябре 1979 года, но была настолько задержана в цикле разработки, что Atari уже заказала партию из около 100 000 чипов CTIA с отсутствующими графическими режимами. Не желая выбрасывать уже произведенные чипы, компания решила использовать их в первоначальном выпуске моделей Atari 400 и 800 на рынке США. Компьютеры, оснащенные CTIA, но не имеющие 3 дополнительных цветовых режимов, поставлялись до октября-ноября 1981 года. [5] [6] С этого момента все новые устройства Atari оснащались новым чипом, теперь называемым GTIA, который поддерживал новые режимы интерпретации цвета. [6] [9]

Оригинальная операционная система Atari 800/400 поддерживала альтернативные режимы интерпретации цвета GTIA с самого начала, [9] что позволяло легко заменить CTIA на GTIA, как только он был готов. Авторизованные сервисные центры Atari устанавливали чип GTIA в компьютеры, оснащенные CTIA, бесплатно, если компьютер находился на гарантии; в противном случае замена стоила бы 62,52 доллара. [6] [7]

GTIA также устанавливалась во все более поздние компьютеры Atari XL и XE, а также на консоли Atari 5200.

Функции

В приведенном ниже списке описываются присущие CTIA/GTIA аппаратные возможности, то есть предполагаемая функциональность самого оборудования, без учета результатов, достигнутых с помощью прерываний, обслуживаемых ЦП, или ядер отображения, управляющих частыми изменениями регистров.

CTIA/GTIA — это телевизионное интерфейсное устройство со следующими характеристиками:

Версии

по номеру детали

Atari, Inc. намеревалась объединить функции чипов ANTIC и GTIA в одной интегральной схеме, чтобы снизить себестоимость компьютеров Atari и консолей 5200. Разрабатывались две такие прототипные схемы, однако ни одна из них не пошла в производство.

Распиновка

Распиновка Atari GTIA (C014805)

Регистры

8-битные компьютеры Atari отображают CTIA/GTIA на шестнадцатеричной странице $D0xx, а консоль Atari 5200 отображает ее на шестнадцатеричной странице $C0xx.

CTIA/GTIA предоставляет 54 регистра чтения/записи, управляющих графикой игрока/ракеты, цветами игрового поля, триггерами джойстика и клавишами консоли. Многие адреса регистров CTIA/GTIA имеют двойное назначение, выполняя различные функции как регистр чтения и записи. Поэтому никакой код не должен читать аппаратные регистры, ожидая извлечения ранее записанного значения.

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

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

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

В отдельных регистрационных списках ниже применяется следующая легенда:

Горизонтальные координаты игрока/ракеты

Эти регистры определяют горизонтальное положение в цветовых часах левого края (старший бит байтовых шаблонов GRAF*) объектов Player/Missile. Координаты всегда основаны на движке цветовых часов аппаратного обеспечения дисплея, а НЕ просто на текущем режиме отображения Playfield. Это также означает, что объекты Player/Missile могут быть перемещены в области сканирования за пределами текущего режима Playfield.

Обратите внимание, что хотя битовые шаблоны объектов Ракеты используют один и тот же байт для отображаемых пикселей (GRAFM), каждая Ракета может быть позиционирована независимо. Когда включена опция "пятый Игрок" (см. регистр PRIOR/GPRIOR), превращающая четыре Ракеты в одного "Игрока", Ракеты переключаются с отображения цвета связанного объекта Игрока на отображение значения COLPF3. Новое положение "Игрока" на экране должно быть установлено путем указания положения каждой Ракеты по отдельности.

Пиксели игрока/ракеты визуализируются только в видимых частях пиксельного движка GTIA. Объекты игрока/ракеты не визуализируются во время горизонтального пробела или вертикального пробела. Однако объект может частично находиться в пределах горизонтального пробела. Пиксели объектов, которые выходят за пределы горизонтального пробела, тогда находятся в пределах видимой части дисплея и все еще могут регистрировать столкновения. Диапазон горизонтального положения видимых цветовых часов составляет от $22 hex /34 dec до $DD hex /221 dec .

Чтобы удалить объект «Игрок/Ракета» из видимой области отображения, горизонтальные позиции (слева) 0 и (справа) $DE hex /222 dec (или больше) обеспечат отсутствие отрисовки пикселей независимо от размера объекта «Игрок/Ракета», и, таким образом, не будут отмечены непреднамеренные столкновения.

HPOSP0 $D000 Запись

Горизонтальное положение игрока 0

HPOSP1 $D001 Запись

Горизонтальное положение игрока 1

HPOSP2 $D002 Запись

Горизонтальное положение игрока 2

HPOSP3 $D003 Запись

Горизонтальное положение игрока 3

HPOSM0 $D004 Запись

Горизонтальное положение ракеты 0

HPOSM1 $D005 Запись

Горизонтальное положение ракеты 1

HPOSM2 $D006 Запись

Горизонтальное положение ракеты 2

HPOSM3 $D007 Запись

Горизонтальное положение ракеты 3

Ниже приведены координаты цветовых часов левого и правого краев возможных размеров игрового поля, полезные при выравнивании объектов «Игрок»/«Ракета» по компонентам игрового поля:

Управление размером игрока/ракеты

Можно выбрать три размера: Normal, Double и Quad width. Левый край (см. Горизонтальные координаты) фиксирован, а изменение размера расширяет Player или Missile вправо во всех случаях.

Обратите внимание, что в размере Quad один пиксель Player/Missile имеет ту же ширину, что и текстовый символ Antic Mode 2. Выбор приоритета Player/Missile в сочетании с графикой Player Missile ширины Quad может использоваться для создания нескольких цветов текста на строку режима.

У каждого игрока есть свой регистр контроля размера:

SIZEP0 $D008 Запись

Размер игрока 0

SIZEP1 $D009 Запись

Размер игрока 1

SIZEP2 $D00A Запись

Размер игрока 2

SIZEP3 $D00B Запись

Размер игрока 3

Управление размером плеера:

Ценности:

РАЗМЕР $D00C Запись

Все размеры Ракет контролируются одним регистром, но каждая Ракета может быть установлена ​​независимо от других. Когда включена опция "пятый Игрок" (см. регистр PRIOR/GPRIOR), превращающая четыре Ракеты в одного "Игрока", ширина по-прежнему задается путем указания размера для каждой Ракеты по отдельности.

Ценности:

Графические шаблоны игрока/ракеты

Каждый объект Player имеет свой собственный 8-битный регистр шаблона. Объекты Missile совместно используют один регистр с 2 битами на каждую Missile. После установки значения оно будет продолжать отображаться на каждой строке сканирования. Без какого-либо другого вмешательства со стороны CPU или ANTIC DMA для обновления значений результатом являются вертикальные полосатые шаблоны по высоте экрана, включая области сканирования за пределами экрана. Этот режим работы не нагружает CPU или DMA на компьютере. Он полезен для отображения чередующихся цветных границ и вертикальных линий, разделяющих области экрана.

GRAFP0 $D00D Запись

Графический шаблон для игрока 0

GRAFP1 $D00E Запись

Графический шаблон для игрока 1

GRAFP2 $D00F Запись

Графический шаблон для игрока 2

GRAFP3 $D010 Запись

Графический шаблон для игрока 3

Каждый игрок имеет ширину 8 бит (пикселей). Если бит установлен, пиксель отображается в цвете, назначенном цветовому регистру, связанному с игроком. Если бит не установлен, объект игрока прозрачен, показывая игроков, ракеты, пиксели игрового поля или цвет фона. Вывод пикселей начинается с горизонтальной позиции, указанной значением HPOS игрока, причем первым выводится самый высокий бит.

GRAFM $D011 Запись

Графический шаблон для всех ракет

Каждая ракета имеет ширину 2 бита (пикселя). Если бит установлен, пиксель отображается в цвете, назначенном цветовому регистру для игрока, связанного с ракетой. Когда включен пятый игрок (см. PRIOR/GPRIOR), все пиксели ракет отображают COLPF3. Если бит не установлен, объект ракеты прозрачен, показывая игроков, ракеты, пиксели игрового поля или цвет фона. Вывод пикселей начинается с горизонтальной позиции, указанной значением HPOS ракеты, причем первым выводится самый высокий бит.

Значения ракет:

Столкновения игрока с ракетой

CTIA/GTIA имеет 60 бит, обеспечивающих автоматическое обнаружение столкновений при пересечении пикселей Player, Missile и Playfield. Один бит указывает, что ненулевой пиксель объекта Player/Missile пересек пиксель определенного регистра цвета. Для пикселей, отрисованных с использованием регистра/значения цвета фона, столкновение не регистрируется. Эта система обеспечивает мгновенное, идеальное по пикселям сравнение перекрытий без дорогостоящей оценки CPU ограничивающего прямоугольника или маскирования битовой карты изображения.

Фактическое значение цвета объекта не учитывается. Если регистры цвета Player, Missile, Playfield и Background имеют одинаковое значение, что делает объекты фактически «невидимыми», пересечения объектов все равно будут регистрировать столкновения. Это полезно для создания скрытых или секретных объектов и стен.

Скрытые пересечения также регистрируют столкновения. Если приоритет объекта Player находится за регистром цвета Playfield, а приоритет другого объекта Player выше (передний план), чем Playfield, и пиксели Player переднего плана закрывают как Playfield, так и объект Player за Playfield, то столкновение между Playfield и обоими объектами Player на заднем и переднем плане будет зарегистрировано вместе со столкновением между объектами Player на переднем и заднем плане.

Обратите внимание, что столкновения ракет друг с другом не происходит.

Столкновения игрока/ракеты могут происходить только тогда, когда пиксели объектов игрока/ракеты попадают в видимые части дисплея. Объекты игрока/ракеты не визуализируются во время горизонтального пробела или вертикального пробела. Диапазон видимых цветовых тактовых импульсов составляет от 34 до 221, а видимые строки сканирования находятся в диапазоне от строки 8 до строки 247. Данные игрока/ракеты за пределами этих координат не визуализируются и не будут регистрировать столкновения. Объект может частично находиться в пределах горизонтального пробела. Пиксели объектов, которые попадают за пределы горизонтального пробела, находятся в пределах видимой части дисплея и все еще могут регистрировать столкновения.

Чтобы удалить объект «Игрок/Ракета» из видимой области отображения, горизонтальные позиции (слева) 0 и (справа) 222 (или больше) обеспечат отсутствие отрисовки пикселей независимо от размера объекта «Игрок/Ракета», и, таким образом, не будут отмечены непреднамеренные столкновения.

Наконец, обнаружение столкновений объектов Player, Missile и Playfield происходит в реальном времени, регистрируя столкновение по мере объединения пикселей изображения и вывода их на дисплей. Проверка битов столкновений объекта до того, как объект будет отрисован CTIA/GTIA, не покажет никаких столкновений.

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

Поскольку столкновения — это всего лишь один бит, столкновения, очевидно, не являются аддитивными. Независимо от того, сколько раз и в каких местах происходит столкновение между пикселями в одном кадре, есть только 1 бит, указывающий на то, что произошло столкновение. Установленный бит столкновения информирует программу о том, что она может исследовать связанные объекты, чтобы определить места столкновений, а затем решить, как реагировать для каждого места.

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

Когда опция "пятый игрок" включена (см. регистр PRIOR/GPRIOR), единственным изменением является переключение Ракет 0 на 3 с отображения цвета связанного объекта Игрока на отображение значения COLPF3. Новые столкновения "Игрока" по-прежнему сообщаются для отдельных Ракет.

Столкновения игрока/ракеты с игровым полем

Каждый бит указывает, что пиксель объекта Player/Missile пересек пиксель указанного объекта цвета Playfield. Для цвета фона не зарегистрировано ни одного столкновения.

Скрытые пересечения также регистрируют столкновения. Если приоритет объекта Игрок/Ракета находится за регистром цвета игрового поля, а приоритет другого объекта Игрок/Ракета выше (передний план), чем игровое поле, и пиксели Игрока/Ракеты переднего плана закрывают как игровое поле, так и объект Игрока/Ракеты за игровым полем, то столкновение между игровым полем и обоими фоновыми и передними объектами Игрока/Ракеты будет зарегистрировано.

Режимы пикселей с высоким разрешением и 1/2 цветовой тактовой частотой ( режимы ANTIC 2, 3 и F) обрабатываются по-разному. Цвет «фона», отображаемый как COLPF2, где значения пикселей равны 0, не регистрирует столкновение. Пиксели с высоким разрешением отображаются как значение яркости из COLPF1. Пиксели группируются в пары цветовой тактовой частоты (пиксели 0 и 1, пиксели 2 и 3, продолжающиеся до пикселей 318 и 319). Если любой из пикселей пары равен 1, обнаруживается столкновение между пикселями игрока или ракеты и цветом игрового поля COLPF2.

Режимы GTIA 9 и 11 не обрабатывают столкновения игрового поля. В режиме GTIA 10 столкновения игрового поля будут регистрироваться там, где пиксели игрового поля используют COLPF0 через COLPF3

M0PF $D000 Читать

Столкновения ракеты 0 с игровым полем

M1PF $D001 Читать

Столкновения ракеты 1 с игровым полем

M2PF $D002 Читать

Столкновения ракеты 2 с игровым полем

M3PF $D003 Читать

Столкновения ракеты 3 с игровым полем

P0PF $D004 Читать

Столкновения игрока 0 с игровым полем

P1PF $D005 Читать

Столкновения игрока 1 с игровым полем

P2PF $D006 Читать

Столкновения игрока 2 с игровым полем

P3PF $D007 Читать

Столкновения игрока 3 с игровым полем

Столкновения ракет с игроками

Ракеты сталкиваются с игроками и игровыми полями. Столкновений ракет с ракетами не происходит.

M0PL $D008 Читать

Ракета 0 столкновений с игроком

M1PL $D009 Читать

Столкновения ракеты 1 с игроком

M2PL $D00A Читать

Столкновения ракеты 2 с игроком

M3PL $D00B Читать

Ракета 3 столкновений с игроком

Столкновения игроков

Столкновение между двумя игроками устанавливает бит столкновения в регистрах столкновений обоих игроков. Когда сталкиваются Игрок 0 и Игрок 1, устанавливается бит столкновения Игрока 0 для Игрока 1, а также устанавливается бит столкновения Игрока 1 для Игрока 0.

Игрок не может столкнуться сам с собой, поэтому его бит всегда равен 0.

P0PL $D00C Читать

Столкновения игрока 0 с игроком

P1PL $D00D Читать

Столкновения Игрока 1 с Игроком

P2PL $D00E Читать

Столкновения Игрока 2 с Игроком

P3PL $D00F Читать

Столкновения Игрока 3 с Игроком

Цвет и яркость игрока/ракеты и игрового поля

Все пиксели объектов Player/Missile и все пиксели Playfield в режиме интерпретации цвета CTIA/GTIA по умолчанию используют косвенную адресацию для указания цвета. Косвенная адресация означает, что значения данных пикселей не определяют цвет напрямую, а указывают на другой источник информации для цвета. CTIA/GTIA содержат аппаратные регистры, которые устанавливают значения, используемые для цветов, и информация о пикселях ссылается на эти регистры. Палитра на Atari представляет собой 8 уровней яркости по 16 цветов для всего 128 цветов. Гибкость косвенной адресации цвета позволяет программе подгонять цвета экрана под цель отображения программы.

Все аппаратные регистры цвета имеют соответствующие теневые регистры.

COLPM0 $D012 Запись

ТЕНЬ: PCOLOR0 $02C0

Цвет/яркость Игрока и Ракеты 0.

При включении 9-цветного режима GTIA (значение PRIOR/GPRIOR $80) этот регистр используется для границы и фона (значение пикселя игрового поля 0), а не COLBK.

COLPM1 $D013 Запись

ТЕНЬ: PCOLOR1 $02C1

Цвет/яркость Игрока и Ракеты 1.

COLPM2 $D014 Запись

ТЕНЬ: PCOLOR2 $02C2

Цвет/яркость Игрока и Ракеты 2.

COLPM3 $D015 Запись

ТЕНЬ: PCOLOR3 $02C3

Цвет/яркость Игрока и Ракеты 3.

COLPF0 $D016 Запись

ТЕНЬ: ЦВЕТ0 $02C4

Цвет/яркость игрового поля 0.

COLPF1 $D017 Запись

ТЕНЬ: ЦВЕТ1 $02C5

Цвет/яркость игрового поля 1.

Этот регистр используется для установленных пикселей (значение 1) в текстовых режимах ANTIC 2 и 3 и режиме карты F. Используется только часть яркости, которая объединяется с помощью OR со значением цвета COLPF2. В других режимах символов и карт этот регистр обеспечивает ожидаемый цвет и яркость для пикселя.

COLPF2 $D018 Запись

ТЕНЬ: ЦВЕТ2 $02C6

Цвет/яркость Playfield 2.

Этот регистр используется для цвета фона игрового поля текстовых режимов ANTIC 2 и 3, а также режима карты F. То есть, где используется значение пикселя 0. В других режимах символов и карт этот регистр обеспечивает ожидаемый цвет и яркость для пикселя.

COLPF3 $D019 Запись

ТЕНЬ: ЦВЕТ3 $02C7

Цвет/яркость Playfield 3

COLPF3 доступен в нескольких особых случаях:

COLBK $D01A Запись

ТЕНЬ: ЦВЕТ4 $02C8

Цвет/яркость фона игрового поля.

Цвет фона отображается там, где нет других пикселей по всей области отображения overscan. Для фона возможны следующие исключения:

Биты регистров цвета :

Старший полубайт регистра цвета определяет один из 16 цветов ($00, $10, $20... до $F0).

Младший разряд регистра определяет одно из 16 значений яркости ($00, $01, $02... до $0F).

В обычном режиме интерпретации цвета младший бит не имеет значения, и доступны только 8 значений яркости ($00, $02, $04, $06, $08, $0A, $0C, $0E), поэтому полная цветовая палитра составляет 128 значений цвета.

В режиме интерпретации цвета GTIA $4 (режим только яркости) доступны полные 16 бит значений яркости для пикселей игрового поля, предоставляя палитру из 256 цветов. Любые объекты Player/Missile, отображаемые в этом режиме, окрашиваются косвенно, что по-прежнему использует палитру из 128 цветов.

В обычном режиме интерпретации цвета значения пикселей находятся в диапазоне от $0 до $3, обычно указывая на регистры цвета COLBK, COLPF0, COLPF1, COLPF2 соответственно. Режимы цветного текста также включают опции использования COLPF3 для определенных диапазонов значений символов. Для получения дополнительной информации см. графические режимы ANTIC .

Когда для отображения включены графические шаблоны игрока/ракеты, где установлены биты графических шаблонов, отображаемый цвет берется из регистров, назначенных объектам.

Существуют исключения для генерации и отображения цвета:

Использование регистров цвета в режимах символов ANTIC :

Использование цветовых регистров в режимах карты ANTIC :

Использование регистров цвета в режимах GTIA (ANTIC F) :

Цвета игрока/ракеты всегда доступны для объектов игрока/ракеты во всех режимах, хотя цвета могут быть изменены, когда действуют специальные режимы GTIA (16 оттенков/16 цветов).

Различные элементы управления игроком/ракетой и GTIA

ПРЕДЫДУЩАЯ $D01B запись

ТЕНЬ: GPRIOR $026F

Этот регистр управляет несколькими функциями управления цветом CTIA/GTIA: режимом интерпретации цвета игрового поля GTIA, многоцветными объектами игрока, пятым игроком и приоритетом игрока/ракеты/игрового поля.

Интерпретации цветов игрового поля GTIA

CTIA включает только один режим интерпретации цвета по умолчанию для потока данных игрового поля ANTIC. Это базовая функциональность, предполагаемая в большинстве обсуждений ANTIC и CTIA/GTIA, если не указано иное. GTIA включает три альтернативных режима интерпретации цвета для данных игрового поля. Эти режимы работают путем сопряжения соседних цветовых часов из ANTIC, таким образом, пиксели, выводимые GTIA, всегда имеют ширину двух цветовых часов. Хотя эти режимы могут быть задействованы при отображении любого режима игрового поля ANTIC, полная цветовая палитра, возможная с этими параметрами обработки цвета GTIA, реализуется только в режимах ANTIC на основе пикселей 12 цветовых часов (режимы ANTIC 2, 3, F.) Эти параметры GTIA чаще всего используются с дисплеем в режиме F. Специальные режимы обработки цвета GTIA также изменяют отображение или поведение графики игрока/ракеты различными способами.

Управление интерпретацией цвета является глобальной функцией GTIA, влияющей на весь экран. GTIA изначально не может смешивать на одном дисплее различные режимы интерпретации цвета GTIA и режим CTIA по умолчанию, необходимые для большинства игровых полей ANTIC. Смешивание режимов интерпретации цвета требует программной записи в регистр PRIOR по мере генерации дисплея (обычно прерыванием списка отображения).

Биты 7 и 6 PRIOR предоставляют четыре значения, определяющие режимы интерпретации цвета:

16 оттенков

Этот режим использует регистр COLBK для указания цвета фона. Вместо использования косвенности, значения пикселей напрямую представляют яркость. Этот режим позволяет использовать все четыре бита яркости в цветовой палитре Atari и, таким образом, способен отображать 256 цветов.

Графика игрока/ракеты (без опции пятого игрока) отображается правильно в этом режиме, однако обнаружение столкновений с игровым полем отключено. Приоритет игрового поля всегда внизу. Когда ракеты переключаются на роль пятого игрока, то там, где объекты ракеты перекрывают игровое поле, яркость пикселей ракеты сливается со значением яркости пикселей игрового поля.

9 Цвет

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

Пиксели задерживаются на один цветовой такт (половина пикселя режима GTIA) при выводе. Это смещение позволяет получать интересные эффекты. Например, быстрое переключение страниц между этим режимом и другим режимом GTIA создает дисплей с явно более высоким разрешением и большим количеством цветов.

Этот режим уникален тем, что для границы и фона (пиксели игрового поля со значением 0) он использует регистр цвета COLPM0, а не COLBK.

Графика Игрока/Ракеты отображается правильно, за исключением того, что Игрок/Ракета 0 неотличимы от пикселей фона, поскольку они используют тот же регистр цвета, COLPM0. Пиксели игрового поля, использующие цвета Игрока/Ракеты, изменяются настройками приоритета, как если бы они были объектами Игрока/Ракеты, и поэтому могут влиять на отображение Игроков/Ракеты. (См. обсуждение ниже о приоритетах Игрока/Ракеты/Игрового поля).

Пиксели игрового поля, использующие цвета Player/Missile, не вызывают столкновений, когда объекты Player/Missile накладываются на них. Однако графика Player/Missile, перекрывающая цвета игрового поля COLPF0 — COLPF3, вызовет ожидаемое столкновение.

16 цветов

Этот режим использует регистр COLBK для указания яркости всех пикселей Playfield (значения от 1 hex /1 dec до F hex /15 dec .) Наименее значимый бит значения яркости не наблюдается, поэтому доступны только стандартные/CTIA 8 значения яркости ( $0 , $2 , $4 , $6 , $8 , $A , $C , $E ). Кроме того, сам фон использует только цветовой компонент, установленный в регистре COLBK. Значение яркости фона принудительно устанавливается равным 0. Как и в режиме Luminance, косвенность отключена, и значения пикселей напрямую представляют цвет.

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

Графика игрока/ракеты (без опции пятого игрока) отображается правильно в этом режиме, однако обнаружение столкновений с игровым полем отключено. Приоритет игрового поля всегда внизу. Когда ракеты переключаются на роль пятого игрока, то, когда объекты ракеты перекрывают игровое поле, пиксели ракеты наследуют значение цвета пикселей игрового поля.

Многоцветный плеер

PRIOR бит 5, значение 20 hex /32 dec включает объекты Multi-Color Player. Там, где пиксели двух объектов Player/Missile накладываются друг на друга, появляется третий цвет. Это реализуется путем устранения приоритетной обработки между парами объектов Player/Missile, в результате чего CTIA/GTIA выполняет побитовое ИЛИ двух цветных пикселей для вывода нового цвета.

Пример: пиксель игрока со значением цвета 98 hex /152 dec (синий) накладывается на пиксель игрока со значением цвета 46 hex /70 dec (красный), в результате чего получается цвет пикселя DE hex /228 dec (светло-зеленый/желтый).

Пары Игрок/Ракеты, способные давать многоцветный вывод:

Пятый игрок

PRIOR бит 4, значение $10 hex /16 dec позволяет Ракетам стать пятым Игроком. Никаких функциональных изменений в Ракете не происходит, кроме цветовой обработки Ракет. Обычно Ракеты отображаются с использованием цвета связанного Игрока. Когда Пятый Игрок включен, все Ракеты отображают цвет Игрового поля 3 (COLPF3). Горизонтальное положение, размер, вертикальная задержка и столкновения Игрока/Ракеты продолжают работать таким же образом. Приоритет Пятого Игрока для пересечений пикселей объектов Игрока равен COLPF3, но пиксели Пятого Игрока имеют приоритет над всеми цветами Игрового поля.

Изменение обработки цвета также приводит к некоторым исключениям для отображения ракет в альтернативных цветовых режимах GTIA:

Пятый игрок вводит исключение для значения приоритета $8 (биты 1000) (см. обсуждение приоритета ниже).

Приоритет

PRIOR биты с 3 по 0 предоставляют четыре значения приоритета Player/Missile и Playfield, которые определяют, какое значение пикселя отображается при пересечении пикселей объектов Player/Missile и пикселей Playfield. Четыре значения предоставляют конкретные параметры, перечисленные в таблице приоритетов ниже. "PM" означает обычную реализацию Player/Missile без Fifth Player. Пятый Player, "P5", показан там, где его приоритет возникает, когда он включен.

Таблица точна для режимов ANTIC Playfield Character и Map с использованием режима интерпретации цвета по умолчанию (CTIA). Режимы интерпретации цвета GTIA и режимы ANTIC, основанные на высоком разрешении, 12 пикселей цветовых часов, ведут себя по-разному (отмечено позже).

Если установлено несколько бит, то при возникновении конфликта CTIA/GTIA выводит черный пиксель. Обратите внимание, что черный означает фактически черный цвет, а не просто цвет фона, COLBK.

Хотя пятый игрок отображается со значением COLPF3, его приоритет выше всех цветов игрового поля. Это создает исключение для значения приоритета $8 (биты 1000). В этом режиме игровые поля 0 и 1 имеют более высокий приоритет, чем игроки, а игроки имеют более высокий приоритет, чем игровые поля 2 и 3. Когда пиксели игрового поля 0 или 1 пересекают любой пиксель игрока, отображаемым результатом является пиксель игрового поля. Однако, если пятый игрок также пересекает то же самое место, его значение отображается над игровым полем, из-за чего создается впечатление, что игровое поле 3 имеет наивысший приоритет. Если пиксель игрового поля 0 или 1 удален из этого пересечения, то пиксель пятого игрока не имеет пикселя игрового поля для переопределения и поэтому также отстает от пикселей игрока.

Когда все биты Priority равны 0, возникает другой эффект — пиксели Player и Playfield логически ИЛИ объединяются вместе способом, аналогичным функции Multi-Color Player. В этой ситуации пиксели Player 0 и 1 могут смешиваться с пикселями Playfield 0 и 1, а пиксели Player 2 и 3 могут смешиваться с пикселями Playfield 2 и 3. Кроме того, когда используется опция Multi-Color Player, полученный объединенный цвет Player также может смешиваться с Playfield, создавая больше цветов. Когда рассматриваются все возможности слияния цветов, оборудование CTIA/GTIA может выводить 23 цвета на строку сканирования. Начиная с цвета фона в качестве первого цвета, возможны оставшиеся 22 цвета и слияния цветов:

Когда все биты приоритета равны 0, цвета ракет функционируют так же, как и соответствующие игроки, как описано выше. Когда включен пятый игрок, пиксели ракет вызывают такое же слияние цветов, как показано для COLPF3 в таблице выше (цвета с 19 по 22).

Режимы приоритета и высокого разрешения

Результат приоритета отличается для режимов «Символ» и «Карта», использующих высокое разрешение, 12 пикселей цветной синхронизации — режимы ANTIC 2, 3 и F. Эти различия в обработке приоритетов можно использовать для создания цветного текста или графики в этих режимах, которые традиционно считаются «монохромными».

В этих режимах ANTIC COLPF2 выводится как "фон" игрового поля, а COLBK выводится как граница вокруг игрового поля. Графические или глифовые пиксели выводятся с использованием только компонента яркости COLPF1, смешанного с цветовым компонентом фона (обычно COLPF2).

Приоритетные отношения между игроками/ракетами и COLPF2 работают в соответствии с приведенной ниже таблицей приоритетов. Пиксели игрока/ракеты с более высокими приоритетами заменят COLPF2 в качестве цвета «фона». COLPF1 всегда имеет наивысший приоритет и не может быть скрыт игроками или ракетами. Пиксели глифа/графики используют цветовой компонент цвета с наивысшим приоритетом (игровое поле, игрок или ракета) и компонент яркости COLPF1. Обратите внимание, что это поведение также последовательно, когда конфликты приоритетов игрока/ракеты приводят к истинному черному цвету для «фона». По сути, значение цвета, которое CTIA/GTIA в конечном итоге использует для цвета «фона», «оттеняет» пиксели глифа/графики переднего плана COLPF1.

VDELAY $D01C Запись

Вертикальная задержка P/M Графика

Этот регистр используется для обеспечения движения по одной строке сканирования, когда разрешение Double Line Player/Missile включено в регистре ANTIC DMACT . Это работает путем маскирования обновлений ANTIC DMA в регистрах GRAF* на четных строках сканирования, заставляя графический шаблон смещаться вниз на одну строку сканирования.

Поскольку разрешение Single Line требует обновлений ANTIC DMA на каждой строке сканирования, а VDELAY маскирует обновления на четных строках сканирования, этот бит снижает разрешение Single Line Player/Missile до Double Line.

GRACTL $D01D Запись

Графический контроль

GRACTL управляет получением CTIA/GTIA данных DMA игрока/ракеты от ANTIC и переключает режим ввода триггера джойстика.

Получение данных Player/Missile DMA требует настройки CTIA/GTIA для получения данных. Это делается с помощью пары бит в GRACTL, которые соответствуют паре бит в регистре DMACTL ANTIC , которые предписывают ANTIC отправлять данные Player и данные Missile. Бит 0 GRACTL соответствует биту 2 DMACTL, что позволяет передавать данные Missile. Бит 1 GRACTL соответствует биту 3 DMACTL, что позволяет передавать данные Player. Эти биты должны быть установлены для GTIA для получения данных Player/Missile от ANTIC через DMA. Когда графика Player/Missile управляется непосредственно CPU, эти биты должны быть выключены.

Регистры триггеров джойстика сообщают о нажатом/не нажатом состоянии в реальном времени. Если опрос ввода программы может быть недостаточно частым для захвата кратковременных нажатий кнопок джойстика, то триггеры можно настроить на блокировку в закрытом/нажатом состоянии и сохранение этого состояния даже после отпускания кнопки. Установка бита GRACTL 2 включает фиксацию всех триггеров. Очистка бита возвращает триггеры в незафиксированное состояние реального времени.

HITCLR $D01E Запись

Очистить столкновения

Любая запись в этот регистр очищает все биты обнаружения столкновений игрока и ракеты.

Другие функции CTIA/GTIA

Триггеры джойстика

TRIG0 $D010 Читать

ТЕНЬ: STRIG0 $0284

Триггер джойстика 0

TRIG1 $D011 Читать

ТЕНЬ: STRIG1 $0285

Триггер джойстика 1.

TRIG2 $D012 Читать

ТЕНЬ: STRIG2 $0286

Триггер джойстика 2.

TRIG3 $D013 Читать

ТЕНЬ: STRIG3 $0287

Триггер джойстика 3

Биты с 7 по 1 всегда равны 0. Бит 0 сообщает о состоянии триггера джойстика. Значение 1 указывает на то, что триггер не нажат. Значение 0 указывает на то, что триггер нажат.

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

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

PAL $D014 Читать

Флаги PAL.

Этот регистр сообщает стандарт отображения для системы. Когда биты с 3 по 0 установлены в 1 (значение $f hex /15 dec ), система работает в NTSC. Когда биты равны нулю, система работает в режиме PAL.

CONSPK $D01F Запись

Консольный динамик

Bit3 управляет внутренним динамиком Atari 800/400. В более поздних моделях консольный динамик удален, и звук смешивается с обычными аудиосигналами POKEY для вывода на порт монитора и RF-адаптер. Atari OS использует консольный динамик для вывода щелчка клавиатуры и звука звонка/зуммера.

Операционная система устанавливает бит динамика во время процедуры Vertical Blank. Повторная запись 0 в бит будет производить жужжащий звук частотой 60 Гц, поскольку Vertical Blank сбрасывает значение. Полезные тоны могут быть сгенерированы с использованием кода 6502, эффективно добавляя пятый аудиоканал, хотя канал требует процессорного времени для поддержания аудиотонов.

КОНСОЛЬ $D01F Читать

Клавиши консоли

Бит назначается для сообщения о состоянии каждой из специальных клавиш консоли, Start, Select и Option. Значение бита 0 указывает на то, что клавиша нажата, а 1 указывает на то, что клавиша не нажата. Значения клавиш/битов:

Операция с графикой игрока/ракеты (спрайты)

Аппаратная система " спрайта " обрабатывается CTIA/GTIA. Официальное название ATARI для системы спрайтов - "Player/Missile Graphics", поскольку она была разработана для уменьшения необходимости манипулировать памятью дисплея для быстро движущихся объектов, таких как "игрок" и его оружие, "ракеты", в игре-стрелялке .

Player по сути является глифом шириной 8 пикселей и высотой 256 ТВ-линий и имеет два цвета: фон (прозрачный) ( 0в глифе) и передний план ( 1). Объект Missile похож, но имеет ширину всего 2 пикселя. CTIA/GTIA объединяет пиксели объектов Player/Missile с пикселями Playfield в соответствии с их приоритетом. Прозрачные ( 0) пиксели игрока не влияют на Playfield и отображают либо Playfield, либо пиксель фона без изменений. Обычная ширина пикселя всех объектов Player/Missile составляет одну цветовую тактовую частоту. Значение регистра может установить ширину пикселей Player или Missile в 1, 2 или 4 цветовых тактовых частоты.

Реализация Player/Missile от CTIA/GTIA похожа на реализацию TIA . Player — это 8-битное значение или шаблон в указанной горизонтальной позиции, который автоматически повторяется для каждой строки сканирования или до тех пор, пока шаблон не будет изменен в регистре. Ракеты имеют ширину 2 бита и совместно используют один регистр шаблона, так что четыре значения шириной 2 бита занимают 8-битный регистр шаблона, но каждая ракета имеет независимую горизонтальную позицию и размер. Объекты Player/Missile расширяют высоту дисплея, включая границу экрана. То есть, реализация графики Player/Missile по умолчанию от CTIA/GTIA представляет собой полосу вниз по экрану. Несмотря на кажущуюся ограниченность, этот метод облегчает использование графики Player/Missile в качестве альтернативных цветных вертикальных границ или разделителей на дисплее, и когда значения приоритета установлены для помещения пикселей Player/Missile за пикселями игрового поля, их можно использовать для добавления дополнительных цветов на дисплей. Все Players и Missiles, установленные на максимальную ширину и размещенные рядом, могут покрывать всю игровую область обычной ширины.

CTIA/GTIA поддерживает несколько опций управления цветом Игрока/Ракеты. Значение регистра PRIOR/GPRIOR может переключать четыре Ракеты между двумя вариантами отображения цвета — каждая Ракета (от 0 до 3) выражает цвет связанного объекта Игрока (от 0 до 3) или все Ракеты показывают цвет регистра COLPF3/COLOR3. Когда Ракеты окрашены одинаково, их можно рассматривать как пятого игрока, но правильное размещение на экране по-прежнему требует сохранения значений во всех четырех регистрах горизонтального положения Ракеты. PRIOR/GPRIOR также управляет функцией, которая заставляет перекрывающиеся пиксели двух Игроков генерировать третий цвет, позволяя создавать разноцветные объекты Игрока за счет сокращения количества доступных объектов. Наконец, PRIOR/GPRIOR можно использовать для изменения наслоения переднего плана/фона (называемого «приоритетом») пикселей Игрока/Ракеты по сравнению с пикселями Игрового поля и может создавать конфликты приоритетов, которые предсказуемо влияют на отображаемые цвета.

Традиционная идея спрайта с изображением/шаблоном, который меняется по вертикали, также встроена в графическую систему Player/Missile. Чип ANTIC включает функцию выполнения DMA для автоматической подачи новых пиксельных шаблонов в CTIA/GTIA по мере генерации дисплея. Это можно сделать для каждой строки сканирования или каждой второй строки сканирования, в результате чего пиксели Player/Missile будут высотой в одну или две строки сканирования. Таким образом, объект Player/Missile можно считать чрезвычайно высоким символом в шрифте, шириной 8 бит/пикселей, по высоте дисплея.

Перемещение объектов Player/Missile по горизонтали так же просто, как изменение регистра в CTIA/GTIA (в Atari BASIC один оператор POKE перемещает игрока или ракету по горизонтали). Перемещение объекта по вертикали достигается либо перемещением блока определения глифа в новое место в битовой карте Player или Missile, либо вращением всей битовой карты Player/Missile (128 или 256 байт). В худшем случае вращение всей битовой карты все еще довольно быстро в машинном языке 6502, даже несмотря на то, что в 6502 отсутствует инструкция перемещения блока, имеющаяся в 8080. Поскольку спрайт имеет длину ровно 128 или 256 байт, индексацию можно легко разместить в регистре шириной в байт на 6502. В Atari BASIC отсутствует команда перемещения высокоскоростной памяти, а перемещение памяти с использованием BASIC PEEK() и POKE(s) происходит мучительно медленно. Программы Atari BASIC, использующие графику Player/Missile, имеют другие возможности для выполнения высокоскоростных перемещений памяти. Один из методов — вызов короткой процедуры машинного языка через функцию USR() для выполнения перемещений памяти. Другой вариант — использование большой строки в качестве карты памяти Player/Missile и выполнение команд копирования строк, которые приводят к перемещению памяти со скоростью машинного языка.

Аккуратное использование графики Player/Missile с другими графическими функциями оборудования Atari может значительно упростить графическое программирование, особенно игр.

Улучшения GTIA

Чип GTIA обратно совместим с CTIA и добавляет 3 цветовые интерпретации для 14 «нормальных» графических режимов игрового поля ANTIC. Нормальная цветовая интерпретация чипа CTIA ограничена на строку развертки максимум 4 цветами в режимах карты или 5 цветами в текстовых режимах (плюс 4 цвета для графики игрока/ракеты), если не используются специальные методы программирования. Три новые цветовые интерпретации в GTIA обеспечивают теоретически в общей сложности 56 графических режимов (14 режимов ANTIC, умноженные на четыре возможных цветовых интерпретации). Однако только графические режимы, основанные на высоком разрешении, 12 пикселей цветовых часов (то есть текстовые режимы Antic 2, 3 и графический режим F), способны полностью выразить цветовые палитры этих 3 новых цветовых интерпретаций. Три дополнительные цветовые интерпретации используют информацию в двух цветовых часах (четыре бита) для генерации пикселя в одном из 16 цветовых значений. Это изменяет режим отображения F с 2 цветов на пиксель, 320 пикселей по горизонтали, одной строки сканирования на строку режима, на 16 цветов и 80 пикселей по горизонтали. Дополнительные цветовые интерпретации позволяют следующее:

Из этих режимов особенно выделяется Atari BASIC Graphics 9. Он позволяет Atari отображать оцифрованные фотографии в оттенках серого, которые, несмотря на низкое разрешение, были очень впечатляющими в то время. Кроме того, допуская 16 оттенков одного тона вместо 8 оттенков, доступных в других графических режимах, он увеличивает количество различных цветов, которые Atari может отображать, со 128 до 256. К сожалению, эта функция ограничена для использования только в этом режиме, который из-за своего низкого разрешения не получил широкого распространения.

Текстовые режимы Antic 2 и 3 способны отображать те же цветовые диапазоны, что и графика режима F при использовании альтернативных цветовых интерпретаций GTIA. Однако, поскольку также применяется уменьшение пикселей и превращает текст шириной 8 пикселей, 2 цвета в 2 пикселя, 16 цветных блоков, эти режимы не подходят для реального текста, и поэтому эти графические режимы не популярны за пределами демонстраций. Эффективное использование функции интерпретации цвета GTIA с текстовыми режимами требует тщательно сконструированного набора символов, обрабатывающего символы как пиксели. Этот метод позволяет отображать очевидный графический режим GTIA "высокого разрешения", который обычно занимает 8 КБ ОЗУ, вместо этого используя только около 2 КБ (1 КБ для набора символов и 1 КБ для экранной ОЗУ и списка отображения.)

GTIA также исправила ошибку в CTIA, которая вызывала смещение графики на «половину цветовой частоты». Побочным эффектом исправления было то, что программы, которые полагались на цветовые артефакты в монохромных режимах высокого разрешения, отображали другую пару цветов. [5] [15]

Владельцы Atari могут определить, оснащена ли их машина чипом CTIA или GTIA, выполнив команду BASICPOKE 623,64 . Если после выполнения экран почернел, машина оснащена новым чипом GTIA. Если он остается синим, машина оснащена чипом CTIA.

Ошибки

Последние компьютеры Atari XE, сделанные для восточноевропейского рынка, были собраны в Китае. Многие, если не все, имеют глючный чип PAL GTIA. Значения яркости в Graphics 9 и выше ошибочны, проявляясь в виде полос. Замена чипа решает проблему. Также были попытки исправить неисправные чипы GTIA с помощью некоторых внешних схем.

Смотрите также

Ссылки

  1. ^ abc Atari Home Computer Field Service Manual - 400/800 (PDF) . Atari, Inc. стр. 1–10 . Получено 2010-09-10 .
  2. ^ Нойбауэр, Дуг (2009-06-20). «Годы Atari, Дуг Нойбауэр. Star Raiders, Solaris и Pokey». DougNeubauer.com .
  3. ^ abc Шерер, Робин Алан (июнь 1988). "GTIA Joystick Painter - мощный инструмент анимации Atari". ANTIC . 7 (2): 37. ISSN  0113-1141 . Получено 26.01.2011 .
  4. Патент США 4296476, Mayer, Steven T.; Miner, Jay G .; Neubauer, Douglas G.; Decuir, Joseph C., «Система обработки данных с программируемым графическим генератором», выдан 20 октября 1981 г., передан Atari, Inc. 
  5. ^ abcde Патчетт, Крейг; Шерер, Робин (1984). "Специальные чипы и ПЗУ". Карта основной памяти для Atari. Рестон, Вирджиния: Reston Publishing Company. ISBN 0-8359-4242-2. Получено 2011-01-26 .
  6. ^ abcde Мейс, Скотт (1982-03-15). «Atari тихо переходит на 16-цветный графический чип». InfoWorld . 4 (10). Пало-Альто, Калифорния: Popular Computing: 3–4. ISSN  0199-6649 . Получено 01.02.2011 .
  7. ^ ab Чемберлен, Крейг (июль 1982 г.). «Atari Video Graphics And The New GTIA». Compute! (26): 124. ISSN  0194-357X . Получено 24.01.2011 .
  8. ^ abc Джо Декуир, «3 поколения архитектуры игровых автоматов», CGEXPO99
  9. ^ ab Small, David; Small, Sandy; Blank, George (май 1983). "Философия дизайна и демонстрации GTIA". The Creative Atari. Creative Computing Press. ISBN 978-0-916688-34-9. Получено 2011-01-26 .
  10. Switzer, Steve (октябрь 1983 г.). «Atari Clinic». ANTIC . 2 (7): 103. ISSN  0113-1141 . Получено 01.02.2011 .
  11. ^ Майкл Каррент, «Что такое чипы SALLY, ANTIC, CTIA/GTIA, POKEY и FREDDIE?», Atari 8-битные компьютеры: часто задаваемые вопросы
  12. ^ abcde Борис, Дэн. «Чипы Атари». Домашняя страница Дэна Б. Проверено 1 февраля 2011 г.
  13. ^ Vendel, Curt. "Atari 800XLCR". AtariMuseum.com . Архивировано из оригинала 2011-09-13 . Получено 2011-02-01 .
  14. ^ Vendel, Curt. "KERI Performance Tester". AtariMuseum.com . Архивировано из оригинала 2011-09-13 . Получено 2011-02-01 .
  15. ^ Смолл, Дэвид; Смолл, Сэнди; Бланк, Джордж, ред. (1983). «Волшебник, принцесса и Atari». Creative Atari. Creative Computing Press. ISBN 0916688348.

Внешние ссылки