ТМС9918
Эта статья нуждается в дополнительных цитатах для проверки . ( апрель 2015 г. ) |




TMS9918 ( VDC — это контроллер видеодисплея ), производимый компанией Texas Instruments , в руководствах именуемый «Процессор видеодисплея» (VDP) и представленный в 1979 году. [1] TMS9918 и его варианты использовались в ColecoVision , CreatiVision , Memotech MTX , MSX , Персональный компьютер NABU , SG-1000 / SC-3000 , Spectravideo SV-318 , SV-328 , Sord M5 , Tatung Einstein , TI-99/4. , Casio PV-2000 , Coleco Adam , Hanimex Pencil II и Tomy Tutor .
TMS9918 генерирует как символьную графику на основе сетки (используемую для отображения текста или фоновых изображений), так и спрайты , используемые для перемещения объектов переднего плана.
Ключевые особенности этого чипа, как было подчеркнуто в презентации Карла Гуттага (одного из разработчиков) в 1980 году: [1]
- 256 на 192 полноцветных пикселя на экран
- 15 различных цветов и/или оттенков
- чересстрочной развертки Композитный видеовыход без
- Прямое подключение к динамическому ОЗУ типа RAS/CAS.
- Автоматическое обновление динамической оперативной памяти
- Общий 8-битный интерфейс ЦП с отображением в памяти
- ЦП обращается к ОЗУ через VDP (нет необходимости в DMA )
- 32 динамических персонажа на экране
- Тридцать два шаблона 8×8 в строке, 24 строки на экран
- Текстовый режим с сорока шаблонами 6×8 в строке
- Многоцветный режим с отображаемыми в памяти цветными квадратами размером 64 на 48
- Внешний видеовход и управление
- Однополярное питание +5 Вольт
- N-канального кремниевого затвора Стандартная технология
Семейство продуктов
[ редактировать ]Все микросхемы этого семейства обычно обозначаются именем TMS9918, иногда с постфиксом «А». Буква «А» указывает на вторую версию чипа, в которой добавлены новые функции, в первую очередь добавлен режим растрового изображения (Graphic II).
Чип вариант | Видеовыход | Видео вход | Частота видео | Поддержка режима 2 |
---|---|---|---|---|
9918 | Композитный | Композитный | 60 Гц | Нет |
9918А/9118 | Композитный | Композитный | 60 Гц | Да |
9928А/9128 | ЮПбПр | (Никто) | 60 Гц | Да |
9929А/9129 | ЮПбПр | (Никто) | 50 Гц | Да |
ТМС9918
[ редактировать ]TMS9918 ; использовался только в TI-99/4 TI -99/4A и другие компьютеры имели версию A VDC.
TMS9918A, TMS9928A и TMS9929A
[ редактировать ]TMS9918A TMS9928A и — с частотой выводят видеосигнал с частотой 60 Гц , а TMS9929A 50 Гц. Разница между «1» и «2» в «TMS9918A» и «TMS9928A» заключается в том, что версия «1» выводит композитное видео NTSC , а версии «2» (включая TMS9929A) выводят аналоговое видео YPbPr. [2] ( Яркость Y и цветоразностные сигналы Pr (RY) и Pb (BY) . Потребность в последнем была преобладающей в мире 50 Гц , включая Европу, из-за разных стандартов видеосигнала PAL и SECAM . Было более рентабельно вывести Y, Pr и Pb и закодировать их в PAL или SECAM в радиочастотном модуляторе , чем пытаться иметь разные консоли для каждого другого цветового стандарта. Версия «1» также оснащена внешним композитным видеовходом, что делает ее удобной для использования в «титровальных программах» видео, которые могут накладывать текст или графику на видео, тогда как версия «2» этого не делает.
Первоначальные варианты TMS9918 представляли собой NMOS с обедненной нагрузкой и производились по технологии 4,5 мкм; это был один из первых чипов NMOS с истощающей нагрузкой, произведенных Texas Instruments, в отличие от микропроцессора TMS9900 , который использовал более старый процесс NMOS с расширенной нагрузкой, который требовал трех напряжений питания. Из-за большого размера кристалла и относительно высокой внутренней скорости TMS9918 нагревался настолько, что потребовался радиатор - некоторые устройства, такие как тайваньская консоль DINA (гибрид Colecovision/SG-1000), не устанавливали радиаторы и страдали от сбоев в работе чип. К 1983 году компания Texas Instruments уменьшила размер кристалла до 3 мкм, что позволило снизить температуру и больше не требовало радиатора — машины MSX и Sega SG-1000 использовали более новый 3 мкм TMS9918, в то время как большинство Colecovisions имели исходный вариант 4,5 мкм (последний выпуск). из консолей, выпущенных в 1985 году, была более новая модель TMS9918).
ТМС9118, ТМС9128 и ТМС9129
[ редактировать ]Более поздние варианты микросхем серии TMS9918, TMS9118 , TMS9128 и TMS9129 , были выпущены в середине-конце 1980-х годов, но никогда не пользовались большой популярностью. Изменена функция одного контакта, а распределение видеопамяти позволяет использовать две микросхемы 16 КБ × 4 бит вместо восьми микросхем 16 КБ × 1 бит, необходимых для TMS99xx. В остальном чипы полностью идентичны TMS9918A, TMS9928A и TMS9929A соответственно.
Внешние интерфейсы
[ редактировать ]Видеопамять
[ редактировать ]VDP имеет внешнюю видеопамять размером 16 КБ × 8 бит. Эта память находится за пределами адресного пространства ЦП . Наличие отдельного адресного пространства означает, что процессору приходится выполнять больше работы для записи или чтения этой памяти, но это также означает, что VDC не замедляет работу процессора, когда он периодически считывает эту память для создания изображения. Кроме того, он оставляет больше адресного пространства, доступного ЦП для другой памяти и оборудования, отображаемого в памяти.
В зависимости от используемого режима экрана для формирования изображения может потребоваться не вся видеопамять. В этих случаях ЦП может использовать дополнительную видеопамять для других целей. Например, один из вариантов использования — в качестве блокнота для распаковки графических или звуковых данных, хранящихся в ПЗУ картриджа. Другое популярное применение — создание второй копии некоторых или всех отображаемых данных для устранения мерцания и разрывов — метод, известный как двойная буферизация .
Процессор
[ редактировать ]ЦП связывается с VDP через 8-битную шину . Вывод, управляемый ЦП, разделяет эту шину на два «порта»: порт управления и порт данных. Чтобы записать или прочитать байт видеопамяти, ЦП сначала должен записать два байта из порта управления VDP во внутренний адресный регистр VDC . Затем ЦП выполняет фактическую запись или чтение через порт данных VDP. Когда байт данных записывается или считывается, TMS9918 автоматически увеличивает регистр внутреннего адреса. Эта функция автоматического приращения ускоряет запись и чтение блоков данных. Порт управления также используется для доступа к различным внутренним регистрам.
Графика
[ редактировать ]TMS9918 имеет два отдельных типа графики: символы и спрайты .
Персонажи
[ редактировать ]Символы обычно используются для создания текста или фоновых изображений. Они появляются за спрайтами.
Режимы экрана
[ редактировать ]TMS9918 имеет ряд режимов экрана, управляющих характеристиками персонажей.
Документировано
[ редактировать ]В TMS9918A доступны четыре документированных режима экрана (как упоминалось ранее, в TMS9918 отсутствует режим Graphic 2):
- Режим 0 (Текст): всего 240×192 пикселей, как символы 40×24, взятые из 1 набора символов, состоящего из 256 символов размером 6×8 пикселей. Весь набор символов имеет ограничение в два цвета. Этот режим не поддерживает спрайты.
- Режим 1 (график 1): всего 256×192 пикселей, как символы 32×24, взятые из 1 набора символов, состоящего из 256 символов размером 8×8 пикселей. Каждая группа из 8 символов в наборе символов имеет ограничение в два цвета. Например, символы от «0» до «7» будут иметь одинаковые цветовые атрибуты .
- Режим 2 (графика 2): всего 256×192 пикселей, как символы 32×24, полученные из 3 наборов символов по 256 символов размером 8×8 пикселей. Каждая строка символа шириной 8 пикселей в наборах символов имеет ограничение в два цвета. В этом режиме для каждого символа на экране создается уникальный символ, что позволяет отображать растровые изображения.
- Режим 3 (Многоцветный): всего 256×192 пикселей, изменяемые виртуальные пиксели 64×48, как « полуграфические » символы 32×24. Эта полуграфика определяется специальным набором символов из 256 символов, определяемых «жирными пикселями» размером 2 × 2. В каждом толстом пикселе имеется 4х4 пикселя, но пиксели внутри жирного пикселя не могут быть определены индивидуально, хотя каждый жирный пиксель может иметь свой собственный цвет, отсюда и название этого режима (Многоцветный). Этот режим очень блочный и используется редко.
Подробности режима экрана 2
[ редактировать ]Технически, режим 2 — это режим персонажей с красочным набором символов. Экран разделен по горизонтали на три области размером 256×64 пикселей, каждая из которых имеет свой набор символов. Последовательно печатая символы от 0 до 255 во всех трех областях, программа может имитировать графический режим, в котором каждый пиксель можно настроить индивидуально. Однако результирующий фреймбуфер является нелинейным.
Программа также может использовать три одинаковых набора символов, а затем работать с экраном как в текстовом режиме с красочным набором символов. Фоновые узоры и спрайты тогда состоят из красочных персонажей. Это обычно использовалось в играх, поскольку для заполнения и прокрутки всего экрана нужно было переместить всего 32×24 байта.
Проблема использования режима 2 TMS9918 заключалась в том, что каждая область пикселя 8×1 могла иметь только два цвета: передний план и фон. Их можно было свободно выбирать из 16 цветовой палитры, но для каждой области 8×1 могло существовать только два цвета. При работе с экраном на языке BASIC с помощью LINE
команда, можно легко превысить максимальное количество цветов в 2 на область 8×1 и в конечном итоге получить « разлив цвета ».
Недокументированный
[ редактировать ]Первоначально компания Texas Instruments документировала только четыре режима, перечисленных выше. Однако бит, который включает режим 2, более интересен, чем предполагалось изначально. Его лучше всего описать как бит-модификатор для других режимов. Включение этого параметра делает три вещи: [3]
- Увеличивает размер таблицы цветов.
- Делит экран по горизонтали на трети.
- Заменяет два бита адреса таблицы шаблонов и цветов на биты маски, которые контролируют, имеет ли каждая треть экрана собственную таблицу шаблонов и цветов или нет.
Учитывая это, возможны три дополнительных режима. Обратите внимание: хотя оригинальные чипы TMS9918A поддерживают эти режимы, клоны и эмуляторы могут не поддерживать их.
- Режим 0 (Текст) + Режим 2 (Графика 2) : известен как режим растрового текста . Этот режим позволяет создавать двухцветные растровые изображения без таблицы цветов. Это экономит память за счет немного уменьшенного разрешения по горизонтали (текстовый режим имеет разрешение по горизонтали 240 пикселей вместо 256 пикселей, как в графических режимах).
- Режим 1 (графика 1) + режим 2 (графика 2): известен как режим полурастрового изображения . Компания Texas Instruments фактически задокументировала этот «недокументированный» режим экрана в своем руководстве под названием «Руководство для программистов видеодисплеев SPPU004» . [4] В разделе 8.4.2 « Игры с адресацией VRAM » [4] они обсуждают, как этот режим сочетает экономию памяти режима 1 с детализацией цвета режима 2. Однако, как они говорят, этот режим ограничивает количество отображаемых спрайтов до 8 вместо 32. Поэтому термин « «недокументированный», используемый для описания этого режима, является неправильным. Однако, поскольку это руководство не было широко известно, этот режим обычно считается одним из недокументированных режимов. Как правило, единственная причина использовать этот режим вместо режима 2 — уменьшить потребление памяти.
- Режим 3 (многоцветный) + режим 2 (графический 2) : известен как многоцветный растровый режим. Этот режим является скорее новинкой, поскольку он не предлагает ничего сверх того, что уже может делать стандартный многоцветный режим.
Прокрутка
[ редактировать ]TMS9918 не имеет регистров прокрутки , поэтому прокрутка должна выполняться программно. Более того, прокрутку можно выполнять только по границам символов, а не попиксельно. [ нужна ссылка ]
Спрайты
[ редактировать ]Спрайты обычно используются для создания движущихся объектов переднего плана. Они появляются перед персонажами (плитами).
Режимы 1, 2 и 3 позволяют отображать спрайты. На экране может быть до 32 монохромных спрайтов размером 8×8 или 16×16 пикселей, каждый из которых имеет свой собственный цвет. Иллюзию многоцветных спрайтов можно создать, наложив несколько спрайтов друг на друга.
В одной строке сканирования может быть не более 4 спрайтов; Горизонтальные пиксели любых дополнительных спрайтов удаляются. Спрайты с более высоким приоритетом отрисовываются первыми. VDP сообщает в регистре состояния номер первого удаленного спрайта. ЦП может обойти это ограничение, меняя приоритеты спрайтов, чтобы в каждом кадре рисовался другой набор спрайтов; вместо того, чтобы полностью исчезнуть, спрайты будут мерцать. Этот метод известен как мультиплексирование спрайтов.
Автоматическое перемещение спрайтов не обрабатывается VDP. Вместо этого на практике ЦП реагирует на вертикальное прерывание VDP — стандартный выход VDP, который запускается автоматически каждые 50 или 60 секунды (в зависимости от варианта микросхемы) в начале VBI ( интервал вертикального гашения ). ). Затем ЦП переходит к процедуре обработки спрайтов в программном обеспечении, которая, в свою очередь, сообщает VDP, где переместить спрайты.
Когда два непрозрачных пикселя в любой паре спрайтов сталкиваются, устанавливается флаг столкновения спрайтов. Это полезно для запуска более сложных процедур обнаружения столкновений внутри программного обеспечения, которые затем могут определить точное место столкновения и отреагировать на него, поскольку сам VDP не может сообщить, какие два спрайта столкнулись.
Цвета
[ редактировать ]В чипах семейства TMS9918 использовалась композитная видеопалитра . Цвета генерировались на основе комбинации значений яркости и цветности для TMS9918A и значений Y , RY и BY для TMS9928A/9929A.
Значения таблицы данных
[ редактировать ]TMS9918 имеет фиксированную 16-цветную палитру , состоящую из 15 отображаемых цветов и «прозрачного» цвета.
- Когда для спрайтов используется «прозрачный», будут показаны фоновые символы.
- Когда для символов используется «прозрачный», будет отображаться внешний видеосигнал.
Согласно «Таблице 2.3 – Назначение цветов» в техническом паспорте. [5] уровни выходов следующие:
Цветовой код | Цвет | Яркость | цветность | И | РЮ (Пр) | BY (Пб) |
---|---|---|---|---|---|---|
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% |
Примечания. Цвета являются лишь иллюстративными и были преобразованы из значений YPrPb (MS9928A/9929A) в sRGB с учетом гамма-коррекции . Колориметрия 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
Но сначала вам нужно обратить внимание на тот факт, что для всех цветов, не имеющих цветности (например, черного, серого и белого), RY и BY не равны 0%, но все имеют смещение 47%. Поэтому вам нужно сначала вычесть это смещение из всех значений RY и BY. Поскольку на практике этот шаг никогда не будет выполнен в одиночку, не исключено, что некоторые результаты будут отрицательными:
Цветовой код | Цвет | И | РГ | К |
---|---|---|---|---|
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%:
Цветовой код | Цвет | Р | Г | Б |
---|---|---|---|---|
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.3390% | 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 здесь выглядят несколько бледными, как вы можете видеть в первой таблице выше. В таблице ниже используются значения с гамма-коррекцией, которые (записаны в шестнадцатеричном формате, поскольку это необходимо для кодирования Википедии):
Цветовой код | Цвет | Р | Г | Б |
---|---|---|---|---|
1 | черный | 00 | 00 | 00 |
2 | средний зеленый | 0А | ОБЪЯВЛЕНИЕ | 1Е |
3 | светло-зеленый | 34 | С8 | 4С |
4 | темно-синий | 2Б | 2D | Е3 |
5 | светло-голубой | 51 | 4Б | ФБ |
6 | темно-красный | БД | 29 | 25 |
7 | голубой | 1Е | Е2 | ЕСЛИ |
8 | средний красный | ФБ | 2С | 2Б |
9 | светло-красный | ФФ | 5F | 4С |
10 | темно-желтый | БД | А2 | 2Б |
11 | светло-желтый | D7 | Б4 | 54 |
12 | темно-зеленый | 0А | 8С | 18 |
13 | пурпурный | ИЗ | 32 | 9А |
14 | серый | Б2 | Б2 | Б2 |
15 | белый | ФФ | ФФ | ФФ |
Примечание. Используемые шаги: Округлите все значения до двух десятичных знаков, затем возведите их в степень 1,6 для гамма-коррекции и, наконец, преобразуйте диапазон значений от 0...100 до 0...255.
Технические характеристики
[ редактировать ]- Видеопамять: прямое подключение к 4, 8 или 16 КБ.
- Текстовые режимы: 40×24 и 32×24.
- Разрешение: 256 × 192
- Цвета: 15 цветов + прозрачный.
- Спрайты: 32, 1 цвет, максимум 4 на горизонтальную линию.
Наследие
[ редактировать ]На смену TMS9918A от Texas Instruments пришел от Yamaha V9938 , в котором были добавлены дополнительные режимы растрового изображения, более красочные спрайты , регистр вертикальной полноэкранной прокрутки, регистры вертикального и горизонтального смещения, аппаратный блиттер и настраиваемая палитра . V9938 был разработан для компьютеров стандарта MSX2 и позже использовался в сторонней модернизации TI-99/4A — Geneve 9640 «компьютера на карте» .
На смену V9938, в свою очередь, пришел V9958 , в котором были добавлены некоторые дополнительные режимы высокого цвета и горизонтальный двухстраничный регистр прокрутки. Эти чипы использовались в системах MSX2+/ turboR .
Toshiba создала клон под названием T6950 и не поддерживает недокументированную функцию маскировки шаблонов / таблиц цветов в режиме графики 2. [6] [ нужен лучший источник ] Позже Toshiba выпустила T7937A MSX-Engine со встроенным VDP и исправила функции маскировки. Оба VDP от Toshiba имеют немного другую палитру, чем Texas VDP, с более яркими цветами.
TMS9918 послужил основой для чипов VDP от Sega в Master System , Game Gear и Mega Drive . PPU Nintendo, используемый в Famicom/NES, также был основан на TMS9918. Они использовали дополнительные режимы отображения и регистры, а также добавили возможности аппаратной прокрутки и другие расширенные функции.
См. также
[ редактировать ]- TMS34010 , микропроцессор 1986 года со специальными графическими инструкциями.
- 8-битные компьютеры Atari имеют сопоставимое графическое оборудование, представленное в том же году.
- Motorola 6845 — контроллер дисплея, широко используемый в 8-битных компьютерах.
- Моторола 6847
- Ямаха В9938
- Ямаха В9958
- Список 8-битной компьютерной аппаратной графики
Ссылки
[ редактировать ]- ^ Jump up to: а б «Проект технического симпозиума TMS9918 в Аризоне - Разработка - SMS Power!» . www.smspower.org .
- ^ «Цветовые пространства YUV, YCbCr, YPbPr | DiscoveryBiz.Net» . сайт Discoverybiz.net .
- ^ Процессор видеодисплея / гибридные режимы. , который также используется.
- ^ Jump up to: а б Процессоры видеодисплея — Руководство программиста (PDF) . Техасские инструменты.
- ^ Texas Instruments (1982), TMS9918A/TMS9928A/TMS9929A Процессоры видеодисплея (PDF) , получено 2 ноября 2018 г.
- ^ «Недокументированный режим 1 + 2: опрос/обсуждение | Центр ресурсов MSX (страница 2/4)» .