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

VDP TMS9918A
VDP TMS9918A
VDP TMS9928A

TMS9918 является Video Display Controller (VDC) производства Texas Instruments и введены в 1979. TMS9918 и его варианты были использованы в ColecoVision , CreatiVision , Memotech MTX , MSX , SG-1000 / SC-3000 , Spectravideo , Sord M5 , Татунг Эйнштейн , Texas Instruments TI-99/4 , Casio PV-2000 и Tomy Tutor .

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

Ключевые особенности этого чипа, как было подчеркнуто в презентации 1980 года Карлом Гуттагом (одним из разработчиков):

  • 256 на 192 полноцветных пикселей на экран
  • 15 разных цветов и / или оттенков
  • Цветной композитный видеовыход без чересстрочной развертки
  • Прямая проводка к динамической RAMS типа RAS / CAS
  • Автоматическое обновление динамической RAMS
  • Общий 8-битный интерфейс ЦП с отображением в память
  • ЦП обращается к ОЗУ через VDP (нет необходимости в DMA)
  • 32 динамических символа на экране
  • Тридцать два шаблона 8X8 в ряд, 24 ряда на экран
  • Текстовый режим с сорока шаблонами 6X8 в строке
  • Многоцветный режим с отображаемыми в памяти цветными квадратами 64 на 48
  • Внешний видеовход и управление
  • Однополярное питание +5 вольт
  • Стандартная технология кремниевого затвора с N-каналом

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

Все микросхемы этого семейства обычно обозначаются именем TMS9918, иногда с постфиксом «A». Буква «A» обозначает вторую версию чипа, в которой добавлены новые функции, в первую очередь добавлен режим растрового изображения ( рисунок II).

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

TMS9918

Версия не-A использовалась только в TI-99/4; TI-99 / 4A и другие компьютеры имели VDC версии A.

TMS9918A и TMS9928A

TMS9918A и TMS9928A выводят видеосигнал с частотой 60 Гц, а TMS9929A ​​- с частотой 50 Гц. Разница между '1' и '2' в 'TMS9918A' и 'TMS9928A' заключается в том, что версия '1' выводит композитное видео NTSC , в то время как версии '2' (включая TMS9929A) выводят аналоговый YPbPr ( яркость Y и RY и цветоразностные сигналы BY). Потребность в последнем преобладала в мире 50 Гц, включая Европу, из-за различных стандартов видеосигнала PAL и SECAM . Было более экономически выгодно выводить Y, RY и BY и кодировать их в PAL или SECAM в RF модулятор , чем пытаться иметь разные консоли для каждого другого цветового стандарта. Версия «1» также имеет внешний композитный видеовход, что сделало ее удобным чипом для использования в «заголовках» видео, которые могут накладывать текст или графику на видео, в то время как версия «2» этого не делает.

TMS9118, TMS9128 и TMS9129

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

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

Видео 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. Увеличивает размер таблицы цветов.
  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 могло существовать только два цвета. При манипулировании экраном в БЕЙСИКЕ с помощью команды ЛИНИЯ можно легко превысить максимальное количество 2 цветов на область 8 × 1 и получить « разлив цвета ».

Прокрутка

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

Спрайты

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

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

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

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

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

Цвета

В микросхемах семейства TMS9918 использовалась композитная видеопалитра. Цвета были получены на основе комбинации Luminance и Chrominance значений для TMS9918A и Y , RY и BY значений являются для TMS9928A / 9929A.

Значения из таблицы

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

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

В соответствии с таблицей 2.3 «Назначение цветов» на выходных данных даташита уровни следующие:

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

Примечания. Цвета были преобразованы из значений Y, RY и BY в sRGB с использованием приведенной здесь формулы . Значения яркости и цветности указаны для TMS9918A. Значения Y, RY и BY указаны для TMS9928A / 9929A. Гамма-коррекция и колориметрия SMPTE C не учитывались - см. Следующий раздел.

ЭЛТ-дисплей

Чтобы преобразовать Y, RY и BY в RGB, вам необходимо учитывать, как возник Y, а именно:

 Y = R * 0.30 + G * 0.59 + B * 0.11

Таким образом, вам нужно использовать следующие формулы:

 R = R-Y + Y
 B = B-Y + Y
 G = (Y - 0.30 * R - 0.11 * B) / 0.59

Но сначала вам нужно обратить внимание на тот факт, что для всех цветов, у которых нет Chrominance - например, черного, серого и белого - RY и BY не равны 0%, но все имеют смещение 47%. Поэтому вам нужно сначала вычесть это смещение из всех значений RY и BY. Поскольку на практике этот шаг никогда не будет выполнен в одиночку, нет проблем, что некоторые результаты будут отрицательными:

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

Теперь вы можете выполнить преобразование в RGB. Все результаты должны быть в диапазоне от 0% до 100%:

Цветовой код Цвет р грамм B
1 чернить 0% 0,0000% 0%
2 средний зеленый 13% 78,3729% 26%
3 светло-зеленый 37% 85,9831% 47%
4 темно-синий 33% 33,6780% 93%
5 светло-синий 49% 46,4576% 99%
6 темно-красный 83% 31,8644% 30%
7 голубой 26% 92,6102% 96%
8 средний красный 99% 33,33 90% 33%
9 светло-красный 113% 53,9492% 47%
10 темно-желтый 83% 75,3729% 33%
11 светло-желтого 90% 80,5085% 50%
12 темно-зеленый 13% 68,7627% 23%
13 пурпурный 79% 36,0508% 73%
14 серый 80% 80,0000% 80%
15 белый 100% 100,0000% 100%

Вы можете прийти к выводу, что ошибочное значение 113% для R цвета «светло-красный» является результатом опечатки в таблице данных, и там RY не должно превышать 80%. Но если вы измеряете выходные сигналы микросхемы с помощью осциллографа , вы обнаружите, что все значения в таблице верны. Таким образом, ошибка находится внутри микросхемы и приводит к насыщению красного сигнала. По этой причине это значение следует скорректировать до 100%.

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

Цветовой код Цвет р грамм B
1 чернить 00 00 00
2 средний зеленый 0A ОБЪЯВЛЕНИЕ 1E
3 светло-зеленый 34 C8 4C
4 темно-синий 2B 2D E3
5 светло-синий 51 4B FB
6 темно-красный BD 29 25
7 голубой 1E E2 EF
8 средний красный FB 2C 2B
9 светло-красный FF 5F 4C
10 темно-желтый BD A2 2B
11 светло-желтого D7 B4 54
12 темно-зеленый 0A 8C 18
13 пурпурный AF 32
14 серый Би 2 Би 2 Би 2
15 белый FF FF FF

Примечание. Используемые шаги: округлить все значения до двух десятичных знаков, затем увеличить до степени 1,6 для гамма-коррекции и, наконец, преобразовать диапазон значений от 0 ... 100 до 0 ... 255.

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

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

Наследие

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

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

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

TMS9918 был основой для чипов VDP в Sega Master System , Game Gear и Mega Drive . Они использовали дополнительные режимы отображения и регистры, а также добавили возможности аппаратной прокрутки и другие расширенные функции.

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

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

использованная литература

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