拡張グラフィックスアダプタ(EGA)は、IBM PC のグラフィックスアダプタ[ 2 ] [ 3 ]であり 、1984 年に初代 IBM PCで導入されたCGA規格に取って代わった事実上のコンピュータディスプレイ規格であり、1987 年にVGA規格に取って代わられました。IBMが製造したオリジナルの EGA カードに加えて、多くの互換性のあるサードパーティ製カードが製造され、EGA グラフィックス モードは VGA およびそれ以降の規格でも引き続きサポートされました。
IBMは、新しいPC/ATの発売直後の1984年10月に、拡張グラフィックスアダプタ(EGA)を発表しました。 [ 2 ] [ 3 ] IBM EGAカードは以前のIBM PCにもインストールできますが、マザーボードのROMアップグレードが必要です。[ 4 ]
Chips and Technologiesの最初の製品は、1985 年 9 月に発表された、オリジナルの EGA 上の IBM 独自のチップ 19 個の機能を処理する 4 個のチップからなるEGAチップセットです。同年 11 月のCOMDEXまでに、6 社以上の企業が C&T のチップセットをベースにした EGA 互換ボードを発表しました。[ 5 ]最初の EGA 互換ボードは、1985 年 12 月にVideo Sevenからリリースされた、C&T のチップセットを使用した Vega でした。[ 6 ] : 34 Vega はオリジナルの IBM EGA ボードの半分の長さです。[ 7 ]
1984年から1987年の間に、 Autoswitch EGA [ 8 ]やGenoa SystemsのSuper EGAチップセット[ 9 ]など、他のサードパーティメーカーが互換性のあるカードを製造した。
EGA規格は、1987年にPS/2コンピュータシリーズでMCGAとVGAが導入されたことで取って代わられた。[ 10 ]
Herculesグラフィックスは高品質のテキストとモノクログラフィックスを組み合わせた業界標準として存在していましたが、EGAはカラーグラフィックスを含む最初の標準でした。 [ 11 ] 1985年までにInfoWorldはEGAを「次世代グラフィックス標準」と評しましたが、高コストとソフトウェアサポートの不足のため「販売は低調」でした。同誌は「市場の反応は…肯定的ではあるものの、圧倒的なものではなく、EGAの複雑さがソフトウェアベンダーのサポート努力を遅らせていることが一因である」と述べています。[ 12 ]開発者はグラフィックス技術が遅いと不満を述べていましたが[ 11 ] 、商用ソフトウェアは1984年にリリースされたThe Ancient Art of WarでEGAのサポートをすぐに開始しました。[ 13 ] 1985年にリリースされたMicrosoft Flight Simulator v2.12、[ 14 ] [ 15 ] Jet、[ 16 ] Silent Service、[ 17 ] Cyrus 、[ 18 ]は、 Windows 1.0とともにEGAをサポートしています。 1986年に発売されたシエラ社の『キングズ・クエストIII』は、それを採用した初期の主流PCゲームの一つだった。
1985 年後半に最初のクローンボードが登場し、EGA のコストが下がりました。[ 12 ] 1986 年半ばまでに、EGA はビジネス グラフィックスで最も人気のある標準になりました。[ 19 ] 1987 年までに、EGA ソフトウェアのサポートは一般的になりました。[ 20 ] 1990 年代初頭までのほとんどのソフトウェアは EGA で実行できますが、市販のゲームの大部分は、 CGA およびTandyとの下位互換性のため、また拡張 EGA モニターを所有していないユーザーをサポートするために、 320 × 200で 16 色を使用しています。350 ライン モードは主にフリーウェア/シェアウェア ゲームやアプリケーション ソフトウェアで使用されていますが、SimCity は640 × 350で 16 色のモードで実行される市販ゲームの注目すべき例です。[ 21 ] [ 22 ]

オリジナルの IBM EGA は、 64 KB のオンボードRAMを搭載した8 ビット PC ISAカードです。オプションのドーターボード(グラフィックス メモリ拡張カード) を使用すると、最低 64 KB の追加 RAM が提供され、グラフィックス メモリ モジュール キットを完全に搭載すると最大 192 KB まで拡張できます。[ 23 ]これらのアップグレードがない場合、このカードは 640 × 350 モードでは 4 色に制限されます。[ 24 ]
出力はCGAと同様にダイレクトドライブRGBで行われますが[ 25 ] 、コンポジットビデオ出力は含まれていません[ 26 ] 。MDAおよびCGAモニターに加え、EGA専用に新たにリリースされた拡張カラーモニターも駆動できます[ 27 ] 。
EGA専用モニターは、200ラインモードの15.7kHzから350ラインモードの21.8kHzに切り替えることができるデュアルシンク設計を採用している。 [ 27 ]

多くのEGAカードには、モニターの種類を選択するためのDIPスイッチがカードの背面に付いています。CGAを選択した場合、カードは200行モードで動作し、テキストモードでは8×8文字を使用します。EGAを選択した場合、カードは350行モードで動作し、テキストは8×14文字を使用します。
EGA 仕様を使用するサードパーティ製カードの中には 、工場出荷時から 128 KB の RAM を搭載して販売されているものもあれば、 複数のグラフィック ページ、複数のテキスト モード文字セット、大きなスクロール表示を可能にするために 256 KB ものRAMを搭載しているものもあります。[ 8 ] ATI Technologies EGA Wonderなどの一部のサードパーティ製カードは、EGA 規格を拡張し、最大800 × 560の拡張グラフィック モードや自動モニター タイプの検出などの機能を追加で提供しています。[ 28 ]





EGAは、最大640 × 350ピクセルの複数の解像度で最大16色(モードに応じて固定パレットまたは64色(6ビットRGB)の色域から選択されたパレットを使用)の表示を実現するほか、より高解像度での2つのモノクロモードも提供します。EGAカードには、追加のグラフィック機能のためにシステムBIOSを拡張するROMと、カスタムCRTコントローラ(CRTC)が含まれています。[ 29 ]
IBM EGA CRTCは、特定のモードオプションを通じてIBM MDAおよびCGAアダプタのすべてのモードをサポートしていますが[ 29 ] 、これらのカードで使用されているMotorola MC6845とレジスタが完全に互換性があるわけではないため、レジスタを直接プログラムしてモードを選択するソフトウェアは、EGAで異なる結果を生成する可能性があります[ 30 ] 。
サポートされている解像度は、320 × 200 および 640 × 200 (CGA または EGA モニター[ 31 ]上)、720 × 350 および 640 × 350 (MDA モニター上)、320 × 350 および 640 × 350 (EGA モニター上) です。EGA は、 350 ライン モードを使用する場合は 21.8 kHz、 200 ライン モードを使用する場合は 15.7 kHz でスキャンします。どちらの水平スキャン レートでも、垂直スキャン レートは 60 Hz です。[ 27 ]
640 × 350 の高解像度モードでは、拡張 EGA モニターが必要で、赤、緑、青のピクセルあたり 2 ビット (4 段階の強度) のすべての組み合わせを含む 64 色のパレットから 16 色を選択できます。 ビデオ RAM が 64 KB しかない EGA アダプタでは、ピクセルあたり 4 色しか選択できません。[ 27 ] 640 × 200 および 320 × 200 グラフィック モードは、CGA ソフトウェアおよびモニターとの下位互換性を提供しますが、これらのモードでは CGA が制限するより小さな 4 色のパレットではなく、16 色の CGA パレット全体を同時に使用できます。[ 31 ]
EGAの16色グラフィックモードは、ビットプレーンとマスクレジスタ[ 32 ]をCPUのビット演算[ 33 ]と組み合わせて使用し、グラフィックスを高速化しています。同じ技術はVGAでも使用されました。
EGAは以下をサポートします:
テキストモード:
サードパーティ製ボードの拡張グラフィックモード:
EGAでは、CGAの16色すべてを同時に使用でき、それぞれをより大きな64色パレット(赤、緑、青それぞれ2ビット)からマッピングできます。CGAの代替色である茶色もこのパレットに含まれているため、追加のディスプレイハードウェアなしで使用できます。後のVGA規格では、この方式をさらに発展させ、64色それぞれをより大きなカスタマイズ可能な256色パレットからマッピングするようになりました。
標準のEGAモニターは、200ラインモードでの拡張カラーパレットの使用をサポートしていません。これは、モニターがCGAカードに接続されているか、200ラインモードで出力しているEGAカードに接続されているかを区別できないためです。EGAは、拡張カラー情報を伝送するためにコネクタの一部のピンを再定義します。モニターがCGAカードに接続されている場合、これらのピンは有効なカラー情報を伝送しないため、モニターがそれらをカラー情報として解釈すると画面が乱れる可能性があります。このため、標準のEGAモニターは200ラインモードでCGAのピン割り当てを使用し、CGAカードでも使用できるようにしています。
一部のEGAモニターは切り替え可能で、200ラインモードでもフルパレットを使用するように設定でき、多くの場合、機械式スイッチを介して行われます。320 ×200または640×200の拡張カラーパレットをサポートしてリリースされた市販ゲームはごくわずかです( Super Off RoadのDOS版を含む)。[ 34 ] [ 35 ]
EGAパレットから色を選択する際、赤、緑、青の各チャンネルに2ビットずつ使用され、0、1、2、3の値を表します。例えば、マゼンタを選択する場合、赤と青の値は中程度の強度(2、または2進数で10)となり、緑の値はオフ(0)となります。
下の表は、標準の16色のCGAカラーに対応するカラーパレットの例を示しています。各色はrgbRGBバイナリ(カード内部のビット順)で表され、小文字は低輝度ビット、大文字は高輝度ビットを表します。10進数と16進数の値(24ビットsRGBウェブカラーに変換済み)も併記されています。

以下の画像は、EGAの全パレットを詳細に示しています。




EGAは出力にCGAコネクタと同じ9ピンDサブミニチュア(DE-9)メスコネクタを使用します。信号規格とピン配置はCGAとの下位互換性があり、EGAモニターをCGAカードで使用できるほか、その逆も可能です。
EGAモードで動作する場合、ピン2、6、7はEGAのセカンダリRGB信号用に再利用されます(下記のピン配置表を参照)。200ラインCGAモードで動作する場合、EGAカードは標準のIBM CGAモニターと完全な下位互換性がありますが、サードパーティ製モニターとの互換性は様々でした。

サードパーティ製のモニターの中には、内部でピン2をグランドに接続しているものがあります。EGAカードに接続すると、EGAのセカンダリ赤色出力がグランドに短絡し、カードが損傷する可能性があります。また、一部のモニターはピン2を唯一のグランドとして配線しているため、EGAでは動作しません。
逆に、EGAモニターはCGAアダプターでも動作するはずですが、CGAモードに設定されていない場合、セカンダリーレッド信号は接地(常にゼロ)され、セカンダリーブルー信号はフローティング(未接続)になるため、茶色以外のすべての高輝度色が正しく表示されず、未接続のセカンダリーブルーの状態が不確定なため、すべての色に青みがかった色合いが生じる可能性があります。
IBM 5154 EGA モニターは、CGA 同期信号で動作する場合、特別な IBM 5153 CGA 互換モードを備えており、このモードで動作しているときに前述のすべての問題を回避するために、自動的に CGA ピン配置に切り替わります。[ 36 ]
オリジナルの IBM EGA カードには、カード背面の2 つのRCA コネクタへのアクセスを提供する機能コネクタ(青色のコネクタ J4、このページの最初の写真を参照) が含まれており、 EGA アダプタが使用するように構成できるいくつかのアナログ信号とデジタル信号も提供されます。 [ 37 ]一部のクローン カードには RCA コネクタがありません。[ 11 ]
カラーテキストモードおよびCGAグラフィックモードでは、ビデオメモリはアドレスB8000hから始まる16KBのアドレスにマッピングされ 、モノクロ(MDA互換)テキストモードでは、ビデオメモリは B0000hから始まる16KBのアドレスを占有します。これらのアドレスマッピングは下位互換性のために設けられています。
EGAに新たに追加されたモードでは、ビデオメモリはアドレスA0000hから始まり、64KBを占有します 。カラーモードとモノクロモードでベースアドレスが異なるため、EGAをモノクログラフィックカードと同時使用したり、MDAテキストモードのEGAをCGAと同時使用したりすることが可能になります。
EGAのネイティブグラフィックモードは、インターリーブ方式のCGAやHerculesとは異なり、プレーン方式です。ビデオメモリは、RGBIカラースペースの各コンポーネントに対応する4つの「プレーン」に分割されています(ただし、640×350 × 2は1つのプレーンです)。各ピクセルは、各プレーンの1ビットで表されます。赤プレーンのビットがオンで、他のプレーンの対応するビットがどれもオンでない場合、画面上のその場所に赤いピクセルが表示されます。そのピクセルに対応する他のすべてのビットもオンであれば、白になり、以下同様です。
飛行機は、輸送モードによって大きさが異なります。
すべてのプレーンは、CPUのアドレス空間のセグメントA000に配置されています。これらはバンク切り替え方式で動作し、CPUバス上では一度に1つのプレーンしか読み取ることができません。ただし、プログラマはカード上の制御レジスタを設定することで、書き込み先のプレーンを選択したり、複数のプレーンに同時に書き込んだりすること ができます。例外として、読み取りモード1では、4つのプレーンすべてが読み取られ、プログラムされた「カラー比較」データと比較されます。そして、4つのプレーンすべてを比較した結果を示す1バイトがI/Oバス上で読み取られます。
ソフトウェア開発者は、特にPCやXTクラスのコンピュータを使用している場合、または256KのビデオRAMがない場合、EGAの平面設計のためにパフォーマンスが遅いと不満を述べていた。[ 11 ]
EGAスタイルのカラーパレットは、古いゲームのスタイルを再現しようとする場合、『クリムゾン・ダイヤモンド』のような現代のゲームでもまだ使用されています。 [ 39 ]