Техасские инструменты TMS9918 - Texas Instruments TMS9918

VDP TMS9918A
VDP TMS9918A
VDP TMS9928A

В TMS9918 это Контроллер видеодисплея (VDC) производства Инструменты Техаса, представленный в 1979 году. TMS9918 и его варианты использовались в ColecoVision и CreatiVision, Memotech MTX, MSX, SG-1000 /SC-3000, Spectravideo, Сорд М5, Татунг Эйнштейн, Техасские инструменты TI-99/4, Casio PV-2000 и Томи Репетитор.

TMS9918 поддерживает создание как символьной графики на основе сетки (используется для отображения текста или фоновых изображений), так и спрайты используется для перемещения объектов переднего плана.

Семейство продуктов

Существует несколько вариантов, называемых TMS9918, TMS9918A, TMS9928A и TMS9929A, где буква A обозначает вторую версию чипа, в которой добавлены новые функции, в первую очередь добавление битовая карта режим (График II). Версия не-A использовалась только в TI-99/4; TI-99 / 4A и другие компьютеры имели VDC версии A. TMS9918A и TMS9928A выводят видеосигнал с частотой 60 Гц, а TMS9929A ​​- с частотой 50 Гц. Разница между «1» и «2» в «TMS9918A» и «TMS9928A» заключается в том, что версия «1» выводит составной NTSC видео, в то время как версии '2' (включая TMS9929A) выводят YPbPr, а точнее цветовые различия Y, R-Y и B-Y (яркость и цветоразностные сигналы). Потребность в последнем преобладала в мире 50 Гц, включая Европу, из-за различных стандартов видеосигнала. PAL и СЕКАМ. Было более рентабельным выводить Y, R-Y и B-Y и кодировать их в PAL или SECAM в Модулятор RF, чем пытаться использовать разные консоли для разных цветовых стандартов. Версия «1» также имеет внешний композитный видеовход, что сделало ее удобным чипом для использования в «заголовках» видео, которые могут накладывать текст или графику на видео, в то время как версия «2» - нет.

Более поздний вариант микросхем серии TMS9918, TMS9118, TMS9128 и TMS9129, был выпущен в середине-конце 1980-х годов, но никогда не пользовался большой популярностью. Функция одного контакта изменена, и отображение видеопамяти позволяет использовать два чипа размером 16Kx4 бит вместо восьми чипов размером 16Kx1 бит, необходимых для TMS99xx. В остальном чипы полностью идентичны TMS9918A, TMS9928A и TMS9929A ​​соответственно.

Все микросхемы этого семейства обычно обозначаются именем TMS9918, иногда с постфиксом «A».

Обзор линейки продуктов Texas Instruments TMS9918
Вариант чипаВидео выходВидео вЧастота видеоПоддержка режима 2
9918КомпозитныйКомпозитный60 ГцНет
9918A / 9118КомпозитныйКомпозитный60 Гцда
9928A / 9128Яркость и разница в цвете(Никто)60 Гцда
9929A ​​/ 9129Яркость и разница в цвете(Никто)50 Гцда

Внешние интерфейсы

Видео RAM

VDP имеет 16k × 8 бит внешней видеопамяти. Эта память находится вне адресного пространства ЦПУ. Наличие отдельного адресного пространства означает, что ЦП должен выполнять больше работы для записи или чтения этой памяти, но это также означает, что VDC не замедляет ЦП, когда он периодически считывает эту память для создания отображения. Кроме того, он оставляет больше адресного пространства, доступного ЦП для другой памяти и оборудования с отображением памяти.

В зависимости от используемого режима экрана не вся видеопамять может потребоваться для создания изображения. В этих случаях ЦП может использовать дополнительную видеопамять для других целей. Например, одно использование - это блокнот для распаковки графических или звуковых данных, хранящихся в ПЗУ картриджа. Еще одно популярное использование - создание второй копии некоторых или всех отображаемых данных для устранения мерцания и разрывов, метод, известный как двойная буферизация.

ЦПУ

ЦП связывается с VDP через 8-битную шину. Контакт, управляемый ЦП, разделяет эту шину на два «порта», порт управления и порт данных. Чтобы записать или прочитать байт видеопамяти, ЦП сначала должен записать два байта из порта управления VDP во внутренний адресный регистр VDC. Затем ЦП выполняет фактическую запись или чтение порта данных VDP. При записи или чтении байта данных TMS9918 автоматически увеличивает внутренний адресный регистр. Эта функция автоматического увеличения ускоряет запись и чтение блоков данных. Порт управления также используется для доступа к различным внутренним регистрам.

Графика

TMS9918 имеет два отдельных и разных типа графики, персонажей и спрайты.

Символы

Символы обычно используются для создания текста или фоновых изображений. Они появляются за спрайтами.

Режимы экрана

TMS9918 имеет несколько режимов экрана, которые управляют характеристиками персонажей.

Документировано

В TMS9918A доступны четыре задокументированных режима экрана (как упоминалось ранее, в TMS9918 отсутствует режим Graphic 2):

  • Режим 0 (текст): Всего 240 × 192 пикселей, как 40 × 24 символов, извлеченных из 1 набора символов из 256 символов 6 × 8 пикселей. Весь набор символов имеет ограничение в 2 цвета. Этот режим не поддерживает спрайты.
  • Режим 1 (Рисунок 1): Всего 256 × 192 пикселей, как 32 × 24 символа, извлеченные из 1 набора символов из 256 символов 8 × 8 пикселей. Каждая группа из 8 символов в наборе символов имеет 2-цветное ограничение. Например, символы от «0» до «7» будут иметь одинаковые атрибуты цвета.
  • Режим 2 (Рисунок 2): Всего 256 × 192 пикселей, как 32 × 24 символа, извлеченные из 3 наборов символов из 256 символов 8 × 8 пикселей. Каждая строка символа шириной 8 пикселей в наборах символов имеет ограничение в 2 цвета. Этот режим обеспечивает уникальный символ для каждого местоположения символа на экране, что позволяет отображать растровые изображения.
  • Режим 3 (многоцветный): Всего 256 × 192 пикселей, 64 × 48 изменяемых виртуальных пикселей, как 32 × 24 «полуграфических» символов. Эта полуграфика определена в специальном наборе символов из 256 символов, определяемых 2 × 2 «жирными пикселями». В каждом жирном пикселе есть 4 × 4 пикселя, но пиксели внутри жирного пикселя не могут быть определены индивидуально, хотя каждый жирный пиксель может иметь свой собственный цвет, отсюда и название этого режима (Многоцветный). Этот режим очень блочный и используется редко.
Без документов

Изначально Texas Instruments документировала только четыре режима, перечисленных выше. Однако бит, разрешающий режим 2, более интересен, чем предполагалось изначально. Лучше всего описывать его как бит-модификатор для других режимов. Включение этого делает три вещи[1]:

  1. Увеличивает размер таблицы цветов.
  2. Делит экран по горизонтали на три части.
  3. Изменяет два адресных бита таблицы шаблонов и цветов на биты маски, которые определяют, имеет ли каждая треть экрана свой собственный шаблон и таблицу цветов или нет.

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

  • Режим 0 (текст) + режим 2 (график 2): Известный как режим растрового текста. Этот режим позволяет использовать двухцветные растровые изображения без таблицы цветов. Это экономит память за счет небольшого уменьшения горизонтального разрешения (текстовый режим имеет горизонтальное разрешение 240 пикселей вместо 256 пикселей, как в графических режимах).
  • Режим 1 (График 1) + Режим 2 (График 2): Известный как режим Half-Bitmap. Компания Texas Instruments фактически задокументировала этот «недокументированный» режим экрана в своем руководстве под названием «Руководство программиста процессоров видеодисплея SPPU004». В разделе 8.4.2, Игра в игры с адресацией VRAM, они обсуждают, как этот режим сочетает экономию памяти в режиме 1 с детализацией цвета в режиме 2. Однако, как они продолжают говорить, этот режим ограничивает количество спрайтов, которые могут быть отображается как 8 вместо 32. Следовательно, термин «недокументированный», используемый для описания этого режима, неверен. Однако, поскольку это руководство не было широко известно, этот режим обычно считается одним из недокументированных режимов. Как правило, единственная причина использовать этот режим вместо режима 2 - уменьшить потребление памяти.
  • Режим 3 (Многоцветный) + Режим 2 (Графический 2): Известный как многоцветный растровый режим. Этот режим является скорее новинкой, так как он не предлагает ничего, кроме того, что уже может сделать стандартный многоцветный режим.

Подробности о режиме экрана 2

Технически режим 2 - это символьный режим с красочным набором символов. Экран разделен по горизонтали на три области размером 256 × 64 пикселей, каждая из которых получает свой собственный набор символов. Последовательно печатая символы от 0 до 255 во всех трех областях, программа может имитировать графический режим, в котором каждый пиксель может быть установлен индивидуально. Однако в результате кадровый буфер нелинейна.

Программа также может использовать три идентичных набора символов, а затем обрабатывать экран как текстовый режим с красочным набором символов. Фоновые узоры и спрайты состоят из красочных персонажей. Это обычно использовалось в играх, потому что нужно было переместить только 32x24 байта, чтобы заполнить и прокрутить весь экран. Графика может быть нарисована так, чтобы границы 8 × 8 пикселей не были слишком очевидными, искусство, в котором Konami был особенно известен своим мастерством[нужна цитата ].

Проблема использования режима 2 TMS9918 заключалась в том, что каждая область 8 × 1 пикселя могла иметь только два цвета: передний план и фон. Их можно было свободно выбирать из 16 цветовой палитры, но для каждой области 8x1 могло существовать только два цвета. При манипулировании экраном в BASIC с помощью команды СТРОКА можно легко превысить максимальное количество 2 цветов на область 8 × 1 и получить "разлив цвета ".

Прокрутка

TMS9918 не имеет регистров прокрутки, поэтому прокрутка должна выполняться программно. Кроме того, прокрутка может выполняться только по границам символов.[нужна цитата ]

Спрайты

Спрайты обычно используются для создания движущихся объектов переднего плана. Они появляются перед персонажами (плитками).

Режимы 1, 2 и 3 могут отображать спрайты. На экране может быть до 32 монохромных спрайтов размером 8 × 8 или 16 × 16 пикселей, каждый спрайт имеет свой единственный цвет. Иллюзию разноцветных спрайтов можно создать, наложив несколько спрайтов друг на друга.

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

Автоматическое перемещение спрайтов не обрабатывается VDP. Вместо этого на практике ЦП улавливает «вертикальное прерывание» VDP - стандартный вывод VDP, который автоматически запускается каждые 50 или 60 секунд (в зависимости от варианта микросхемы), в начале VBI (интервал вертикального гашения ). Затем ЦП переходит к процедуре обработки спрайтов в программном обеспечении, которая, в свою очередь, сообщает VDP, где изменить положение спрайтов.

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

Цвета

TMS9918 имеет фиксированную 16-цветовую палитру, состоящую из 15 отображаемых цветов и «прозрачного» цвета.

  • Когда для спрайтов используется «прозрачный», будут отображаться символы фона.
  • Когда для символов используется «прозрачный», будет отображаться внешний видеосигнал.

Согласно даташиту[2] три аналоговых цветовых выхода обеспечивают следующие уровни:

Цветовой кодЦветYR-YК
0прозрачный---
1чернить0 %47 %47 %
2средний зеленый53 %7 %20 %
3светло-зеленый67 %17 %27 %
4темно-синий40 %40 %100 %
5светло-синий53 %43 %93 %
6темно-красный47 %83 %30 %
7голубой73 %0 %70 %
8средний красный53 %93 %27 %
9светло-красный67 %93 %27 %
10темно-желтый73 %57 %7 %
11светло-желтый80 %57 %17 %
12темно-зеленый47 %13 %23 %
13пурпурный53 %73 %67 %
14серый80 %47 %47 %
15белый100 %47 %47 %

Вы должны учитывать это только до того времени электронно-лучевые трубки были доступны для компьютерных мониторов, а также для телевизоров, и что эти ЭЛТ требовали Гамма-коррекция. Значение для Гамма-коррекция ЭЛТ для телевизоров было 1,6 (примечание: ЭЛТ Macintosh мониторы имели 1,8, а ЭЛТ мониторов ПК - 2,2). Современное Компьютерные мониторы с плоским экраном не нужно Гамма-коррекция и по этой причине цвета TMS9918 были бы несколько бледными, если бы вы забыли учесть этот факт. В приведенной выше таблице уже используются исправленные значения, которые (записаны в шестнадцатеричном формате, поскольку это необходимо для кодировки Википедии):

Цветовой кодЦветрграммB
1чернить000000
2средний зеленый0AОБЪЯВЛЕНИЕ1E
3светло-зеленый34C84C
4темно-синий2B2DE3
5светло-синий514BFB
6темно-красныйBD2925
7голубой1EE2EF
8средний красныйFB2C2B
9светло-красныйFF5F4C
10темно-желтыйBDA22B
11светло-желтыйD7B454
12темно-зеленый0A8C18
13пурпурныйAF32
14серыйБи 2Би 2Би 2
15белыйFFFFFF

Характеристики

  • Видео RAM: 16 КБ
  • Текстовые режимы: 40 × 24 и 32 × 24
  • Разрешение: 256 × 192 (15 цветов + прозрачный)
  • Спрайты: 32, 1 цвет, максимум 4 на горизонтальную линию

Наследие

TMS9918 был первым потребительским устройством, которое использовало DRAM.[3]Поскольку в то время достаточно DRAM для хранения полного буфера кадра было слишком дорого, TMS9918 использует спрайты.[3][4]

TMS9918A от Texas Instruments пришла на смену Yamaha. V9938, который добавил дополнительные режимы растровых изображений, более красочный спрайты, регистр вертикальной полноэкранной прокрутки, регистры вертикального и горизонтального смещения, аппаратное обеспечение блиттер и настраиваемый палитра. V9938 был разработан для стандарта компьютеров MSX2, а затем использовался в стороннем обновлении до TI-99 / 4A - Женева 9640 «компьютер на карте». V9938, в свою очередь, сменил V9958, который добавил несколько дополнительных режимов высокой цветности и регистр горизонтальной двухстраничной прокрутки. Эти микросхемы использовались в системах MSX2 + / turboR, а также на карте обновления TIM для TI-99 / 4A, хотя ходят слухи, что V9958 также использовался в поколении игровых автоматов Photo Play. Yamaha также произвела V9990, который некоторые считают продолжением V9958,[ВОЗ? ] но он не имеет обратной совместимости.

Toshiba создала клон под названием T6950, который не поддерживает недокументированную функцию маскирования узоров / таблиц цветов в режиме графики 2.[5][нужен лучший источник ] Позже Toshiba выпустила T7937A MSX-Engine со встроенным VDP и исправила функции маскировки. Оба VDP от Toshiba имеют немного другую палитру, чем Texas VDP, с более яркими цветами.

TMS9918 послужил основой для VDP фишки в Sega Мастер Система, Игровое снаряжение, и Мега Драйв.[нужна цитата ] Они использовали дополнительные режимы отображения и регистры, а также добавили оборудование. прокрутка возможности и другие расширенные функции.

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

  • Семейство 8-битных Atari, линейка домашних компьютеров с сопоставимым графическим оборудованием, представленная в том же году
  • Motorola 6845, контроллер дисплея, широко используемый в 8-битных компьютерах

Рекомендации

  1. ^ Процессор видеодисплея / гибридные режимы., который также используется.
  2. ^ Техасские инструменты (1982), Процессоры видеодисплея TMS9918A / TMS9928A / TMS9929A (PDF), получено 2018-11-02
  3. ^ а б Карл Гуттаг. «Некоторая (личная) история и контекст обработки спрайтов».
  4. ^ "Процессор видеодисплея". Патент США 4 243 984.
  5. ^ Номер детали Toshiba VDP, без функции маскировки.

внешняя ссылка