Tandy Graphics Adapter ( TGA , также Tandy graphics ) — стандарт компьютерных дисплеев для серии Tandy 1000 IBM PC-совместимых компьютеров, который совместим с видеоподсистемой IBM PCjr, но стал самостоятельным стандартом.
Серия Tandy 1000 появилась в 1984 году как клон IBM PCjr [1] , предлагая поддержку существующего программного обеспечения PCjr. [2] В результате ее графическая подсистема в значительной степени совместима.
PCjr, выпущенный в 1983 году, имел графическую подсистему, построенную на основе Video Gate Array IBM [3] (не путать с более поздним Video Graphics Array ) и MC6845 CRTC [4] , и расширял возможности цветного графического адаптера (CGA), увеличивая количество цветов в каждом режиме экрана. Двухцветный режим CGA может отображаться четырьмя цветами, а его четырехцветный режим может отображаться всеми 16 цветами. [5]
Поскольку Tandy 1000 оказался гораздо более успешным, чем PCjr, [1] их общие аппаратные возможности стали больше ассоциироваться с брендом Tandy, чем с IBM.
Хотя для графической подсистемы Tandy нет конкретного названия (в документации Tandy она называется «Video System Logic» [6] ), в обиходе ее называют TGA. [7] Если не указано иное, информация в этой статье, описывающая TGA, также применима к видеоподсистеме PCjr.
Хотя EGA в конечном итоге обеспечит расширенный набор графики TGA на IBM-совместимых компьютерах, программное обеспечение, написанное для TGA, несовместимо с картами EGA. [ необходима цитата ]
Системы Tandy 1000 до Tandy 1000 SL и PCjr имеют этот тип видео. [8] Он предлагает несколько режимов, совместимых с CGA, и расширенные режимы. [9]
Режимы, совместимые с CGA:
Оба текстовых режима можно настроить на отображение в монохромном режиме или в 16 цветах.
Помимо режимов CGA, он предлагает:
Некоторые игры обнаруживают оборудование Tandy и отображают улучшенную графику в режиме Tandy, даже если выбран режим отображения CGA, в то время как другие предлагают возможность выбрать графику «Tandy». [7]
Модели Tandy 1000 серий SL, TL и RL имеют этот тип видео. [8] Он предлагает те же режимы, что и Tandy Video I, плюс еще один режим, не являющийся CGA:
Благодаря встроенным портам джойстика, 16-цветной графике и многоканальному звуку Tandy 1000 считалась лучшей платформой для игр, совместимых с IBM PC, до эры VGA, а сочетание ее графики и звука стало фактическим стандартом, « совместимым с Tandy ». [1]
28 из 66 игр, протестированных Computer Gaming World в 1989 году, поддерживали графику Tandy. [10] Такие игры, как Cisco Heat , Indiana Jones and the Last Crusade , Loom , Magic Pockets , Oh No! More Lemmings , Out of This World , Overkill , Prince of Persia , The Secret of Monkey Island и SimCity , указаны как поддерживающие графику PCjr/Tandy. [11] [12]
Драйвер дисплея для графического оборудования Tandy поставлялся с Windows 2.0 и мог использоваться в Windows 3.0 . [13]
Графика TGA встроена в материнские платы компьютеров Tandy. PCjr использует специальный монитор с уникальным 18-контактным разъемом, [14] но адаптер (с тем же разъемом DE-9 и распиновкой, что и у CGA/EGA от IBM ) может подключить его к IBM Color Display или аналогичному 4-битному цифровому ( TTL ) монитору RGBI . [15] Tandy 1000 имеет разъем DE-9 напрямую. [16]
Монитор отвечает за преобразование 4-битных цифровых уровней в 16 цветов, как показано в следующей таблице (фактические цвета могут несколько отличаться в зависимости от монитора): [17] [18] [19] [20] [21] [22] [23]
Более поздние модели Tandy 1000 SL и TL предлагали улучшенную версию TGA, по-прежнему ограниченную отображением 16 цветов, но с улучшенным разрешением 640 × 200. [ 24]
При работе в видеорежимах CGA, использующих 1 или 2 бита на пиксель, TGA позволяет переназначать 2 или 4 элемента палитры на любой из 16 цветов в гамме CGA с помощью программируемых регистров управления палитрой. [25] Это позволяет программному обеспечению использовать режимы CGA, не ограничиваясь тремя жестко запрограммированными палитрами фактического CGA.
В графических режимах CGA доступны следующие улучшения в выборе цвета:
Логика сопоставления палитры всегда активна, даже в текстовых режимах, поэтому можно изменить внешний вид определенного текста (появление, исчезновение, циклическая смена цветов и т. д.), просто изменив палитру, не внося никаких изменений в байты атрибутов символов в оперативной памяти.
Программируемая палитра PCjr/TGA была перенесена в IBM EGA, где она была расширена до 6-битных записей для 64 цветов. VGA сохранила эту 16 x 6-битную «внутреннюю палитру» и добавила еще одну, каскадную 256 x 18-битную RAMDAC «внешнюю палитру».
В отличие от любого другого разработанного IBM стандарта видео для ПК, TGA использует часть основной системной оперативной памяти в качестве видеопамяти. PCjr имел 64 КБ встроенной оперативной памяти на материнской плате, и дополнительные 64 КБ можно было установить с помощью специальной карты, которая вставлялась в выделенный слот на материнской плате PCjr. [25] Эти 64 КБ или 128 КБ базовой оперативной памяти являются особенными, поскольку они используются совместно с видеоподсистемой PCjr.
Видеорежимы TGA используют 16 КБ или 32 КБ ОЗУ. [25] Текстовые режимы используют 16 КБ, разделенных на 4 или 8 страниц, для текстовых форматов 80×25 или 40×25 соответственно; любая часть из 16 КБ, не используемая для страниц отображения текста, может использоваться как общая ОЗУ.
В графических режимах базовые 128 КБ ОЗУ делятся на восемь банков по 16 КБ. [25] PCjr может использовать любой банк для генерации видео в видеорежиме, который использует 16 КБ. В режиме, который использует 32 КБ, он может использовать любой четный банк, объединенный со следующим более высоким нечетным банком. [25] PCjr также может независимо отображать любой 16 КБ банк базовой ОЗУ на адрес 0xB8000 для доступа к ЦП, для совместимости с CGA. [25]
За исключением адреса 0xB8000, ЦП может получить доступ к любому банку в любое время через свой собственный адрес в первых 128 КБ адресного пространства. [25] Первый банк перекрывает таблицу векторов прерываний ЦП x86 и область данных, используемую BIOS, поэтому он, как правило, не может использоваться для графики.
Использование системной памяти имеет преимущества: оно экономит стоимость выделенной видеопамяти, а динамическая память обновляется контроллером CRT 6845, пока работает видео, поэтому нет необходимости в отдельной схеме обновления DRAM. В IBM PC XT, на котором основан PCjr, обновление DRAM выполняется одним каналом контроллера DMA 8237 , запускаемым одним каналом программируемого таймера 8253 , в то время как в PCjr 8237 исключен, а канал таймера перепрофилирован (чтобы обойти сложность другого сокращения расходов в интерфейсе клавиатуры). [25]
Для видео можно использовать почти 128 КБ ОЗУ (если программное обеспечение в основном находится в ПЗУ, например, на картриджах PCjr, или в ОЗУ свыше первых 128 КБ), а отображаемые видеобанки можно переключать мгновенно, реализуя двойную буферизацию (или тройную буферизацию, или до 7-кратной буферизации в видеорежимах 16 КБ) для плавной полноэкранной анимации, чего не может сделать CGA.
Компьютеры Tandy 1000 не включают меры по сокращению расходов PCjr (большинство из них имеют контроллер DMA 8237), но для совместимости с видео PCjr они используют ту же схему совместного использования оперативной памяти.
Видеоподсистемы PCjr и графические подсистемы Tandy 1000 не идентичны. Одно из различий заключается в размере апертуры видеопамяти по адресу 0xB8000. Хотя видеооборудование PCjr может использовать до 32 КБ ОЗУ для видеобуфера, оно точно эмулирует CGA, делая доступным только 16 КБ из них по адресу 0xB8000. Как и в случае с настоящим CGA, 16 КБ ОЗУ по адресу 0xB8000 имеют псевдоним по адресу 0xBC000.
Аппаратное обеспечение Tandy, напротив, делает все 32 КБ выбранной видеопамяти доступными по адресу 0xB8000. Это различие приводит к тому, что некоторое программное обеспечение, написанное для графики Tandy, не работает правильно на PCjr, отображая изображения в формате 320 × 200 16-цветный или 640 × 200 с периодическими черными горизонтальными линиями: эффект «жалюзи».
Возможно, что программное обеспечение для PCjr, использующее циклический переход по адресу 0xBC000, не будет корректно работать на Tandy 1000.