Tandy Graphics Adapter(TGA、Tandy graphicsとも呼ばれる)は、 IBM PC互換機であるTandy 1000シリーズのコンピュータディスプレイ規格であり、 IBM PCjrのビデオサブシステムとの互換性を持ちながら、独自の規格となった。
Tandy 1000 シリーズは 1984 年にIBM PCjrのクローンとして始まり、[ 1 ]既存の PCjr ソフトウェアのサポートを提供しました。[ 2 ]その結果、グラフィックス サブシステムはほぼ互換性があります。
1984年3月に発売されたPCjrは、IBMのビデオゲートアレイ[ 3 ] (後のビデオグラフィックスアレイとは混同しないように)とMC6845 CRTC [ 4 ]を中心としたグラフィックスサブシステムを備え、カラーグラフィックスアダプタ(CGA)の機能を拡張し、各画面モードでの色数を増やしています。CGAの2色モードは4色で表示でき、4色モードは16色すべてで表示できます。[ 5 ]
Tandy 1000はPCjrよりもはるかに成功したため、[ 1 ]両者の共通のハードウェア機能はIBMよりもTandyブランドとより強く結びつくようになった。
Tandyグラフィックスサブシステムには特定の名称はありませんが(Tandyのドキュメントでは「ビデオシステムロジック」[ 6 ]と呼ばれています)、一般的にはTGAと呼ばれています[ 7 ]。特に明記されていない限り、この記事でTGAについて説明している情報は、PCjrビデオサブシステムにも適用されます。
EGAは最終的にIBM互換機上でTGAグラフィックスの上位互換機能を提供するようになったが、TGA用に書かれたソフトウェアはEGAカードとは互換性がない。





Tandy 1000 SL以前のTandy 1000システムとPCjrには、このタイプのビデオが搭載されています。[ 8 ]いくつかのCGA互換モードと拡張モードが提供されています。[ 9 ]
CGA互換モード:
どちらのテキスト表示モードも、モノクロ表示または16色表示に設定できます。
CGAモードに加えて、以下の機能も提供します。
一部のゲームはTandyハードウェアを検出し、CGA表示モードが選択されている場合でもTandyモードで強化されたグラフィックを表示する一方、他のゲームでは「Tandy」グラフィックを選択するオプションが提供されています。[ 7 ]

Tandy 1000 SLシリーズ、TLシリーズ、RLシリーズのモデルにはこのタイプのビデオが搭載されています。[ 8 ] Tandy Video Iと同じモードに加え、CGA以外のモードが1つ追加されています。[ 10 ]
内蔵ジョイスティックポート、16色グラフィック、マルチチャンネルサウンドを備えたTandy 1000は、 VGA時代以前のIBM PC互換ゲームに最適なプラットフォームと考えられており、そのグラフィックとサウンドの組み合わせは事実上の標準となり、「Tandy互換」となった。[ 1 ]
1988年までに、パッケージに「Tandy」と記載されたゲームが一般的になった。そうすることで、Radio Shackが店頭で販売する可能性が非常に高くなったと言われている。[ 11 ] Computer Gaming Worldが1989年にテストした66のゲームのうち28がTandyグラフィックスをサポートしていた。 [ 12 ] 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グラフィックスをサポートしていると示されている。[ 13 ] [ 14 ]
Tandy グラフィック ハードウェア用のディスプレイ ドライバは Windows 2.0 に付属しており、Windows 3.0でも使用できました。[ 15 ]
Tandy コンピュータのマザーボードには TGA グラフィックスが組み込まれています。PCjr は独自の 18 ピン プラグを備えたカスタム モニターを使用していますが、[ 16 ]アダプタ (IBM の CGA/EGA と同じDE-9コネクタとピン配置) を使用すると、 IBM カラー ディスプレイまたは同様の4 ビットデジタル ( TTL ) RGBIモニターに接続できます。[ 17 ] Tandy 1000 は DE-9 コネクタを直接提供します。[ 18 ]
モニターは、次の表に示すように、4 ビットのデジタルレベルを 16 色に変換する役割を担っています (実際の色はモニターによって多少異なる場合があります)。[ 19 ] [ 20 ] [ 21 ] [ 22 ] [ 23 ] [ 24 ] [ 25 ]
後の Tandy 1000 SL および TL モデルでは、TGA の強化版が提供され、表示色は 16 色に制限されていましたが、解像度は640 × 200に向上しました。[ 8 ] [ 10 ]
ピクセルあたり 1 ビットまたは 2 ビットを使用する CGA ビデオ モードで動作する場合、TGA のプログラム可能なパレット制御レジスタを使用して、2 または 4 つのパレット エントリを 16 色のいずれかに再マッピングできます。[ 26 ]ソフトウェアは、CGA モードでこれを使用して、実際の CGA の 3 つのハードワイヤード パレットを回避できます。
CGAグラフィックモードでは、以下の色選択の改善が利用可能です。
パレットマッピングのロジックは、テキストモードでも常にアクティブになっているため、RAM内の文字属性バイトを変更することなく、パレットを変更するだけで、特定のテキストの外観(表示、非表示、色の循環など)を変更することが可能です。
PCjr/TGAのプログラマブルパレットはIBM EGAにも引き継がれ、64色に対応する6ビットエントリに拡張されました。VGAはこの16×6ビットの「内部パレット」を維持しつつ、カスケード接続された256×18ビットのRAMDACによる「外部パレット」を追加しました。
IBMが設計した他のすべてのPCビデオ規格とは異なり、TGAはメインシステムRAMの一部をビデオRAMとして使用します。PCjrにはメインボード上に64KBのRAMが内蔵されており、PCjrメインボード上の専用スロットに差し込む特別なカードを介してさらに64KBをインストールできます。[ 26 ]この64KBまたは128KBの基本RAMは、PCjrビデオサブシステムと共有されるという点で特殊です。
TGAビデオモードでは、16KBまたは32KBのRAMを使用します。[ 26 ]テキストモードでは、80×25または40×25のテキスト形式用にそれぞれ4ページまたは8ページに分割された16KBを使用します。テキスト表示ページに使用されていない16KBの任意の部分は、汎用RAMとして使用できます。
グラフィカルモードでは、ベース 128 KB の RAM は 8 つの 16 KB バンクに分割されます。[ 26 ] PCjr は、16 KB を使用するビデオモードでは、任意のバンクをビデオ生成に使用できます。32 KB を使用するモードでは、任意の偶数バンクと次の奇数バンクを連結して使用できます。[ 26 ] PCjr は、CGA 互換性のために、ベース RAM の任意の 16 KB バンクを CPU アクセス用のアドレス 0xB8000 に独立してマッピングすることもできます。[ 26 ]
アドレス 0xB8000 を除き、CPU はアドレス空間の最初の 128 KB 内のネイティブ アドレスを介していつでも任意のバンクにアクセスできます。[ 26 ]最初のバンクは x86 CPU の割り込みベクタ テーブルと BIOS が使用するデータ領域と重複しているため、一般的にグラフィックスには使用できません。[ 27 ]
システムメモリを使用することには利点があります。専用のビデオ RAM のコストを節約でき、ビデオが動作している間は 6845 CRT コントローラによってダイナミック RAM がリフレッシュされるため、個別の DRAM リフレッシュ回路は不要です。PCjr のベースとなっているIBM PC XTでは、DRAM のリフレッシュは8237 DMA コントローラの 1 つのチャネルによって実行され、 8253プログラマブル タイマーの 1 つのチャネルによってトリガーされますが、PCjr では 8237 が削除され、タイマー チャネルが再利用されています (キーボード インターフェイスの他のコスト削減の複雑さを回避するため)。[ 26 ]
最大で128KB近いRAMをビデオに使用できます(ソフトウェアの大部分がROM (例えばPCjrカートリッジ)にある場合、または最初の128KBを超えるRAMにある場合)。また、表示されるビデオバンクを瞬時に切り替えて、ダブルバッファリング(またはトリプルバッファリング、16KBビデオモードでは最大7倍のバッファリング)を実装し、滑らかなフルスクリーンアニメーションを実現できます。これはCGAでは不可能なことです。
Tandy 1000シリーズのコンピュータは、PCjrのコスト削減策(ほとんどの機種は8237 DMAコントローラを搭載している)を取り入れていないが、PCjrのビデオとの互換性を保つため、同じRAM共有方式を採用している。
PCjrのビデオサブシステムとTandy 1000のグラフィックスサブシステムは同一ではありません。違いの1つは、アドレス0xB8000のビデオメモリの開口部のサイズです。PCjrのビデオハードウェアはビデオバッファに最大32KBのRAMを使用できますが、アドレス0xB8000で使用できるのはそのうちの16KBのみにすることで、CGAを正確にエミュレートしています。実際のCGAと同様に、0xB8000の16KBのRAMはアドレス0xBC000にエイリアスされています。[ 28 ]
一方、Tandyのハードウェアでは、選択された32KBのビデオRAMすべてが0xB8000番地で使用可能になります。この違いにより、Tandyグラフィックス用に作成された一部のソフトウェアはPCjr上で正しく動作せず、320×200ピクセルの16色画像や、周期的に黒い水平線が入った640×200ピクセルの画像(いわゆる「ベネチアンブラインド」効果)が表示されます。
アドレス0xBC000のメモリラップアラウンドに依存するPCjr用ソフトウェアは、Tandy 1000では正しく動作しない可能性がある。[ 29 ]