Enhanced Graphics Adapter（エンハンスト グラフィックス アダプター、EGA）は、IBMが1984年に開発したディスプレイ規格である。グラフィックモードで640×350 64色中16色が表示可能。

 歴史 
EGAは1984年10月にIBMより発表された。PC/ATの発売直後だが、PC/AT専用ではない。

EGA規格は1987年にPS/2とともに発表されたMCGAおよびVGAに置き換えられた。

VGAが発表される少し前に、ジェノア・システムズ (Genoa Systems) がプロプライエタリなチップセットを搭載したハーフサイズのグラフィックカード、Super EGAを発表、後期はSuper VGAと同様にVGAで拡張されたモードをサポートした。

 設計 
EGAは最大640x350ピクセルの画面解像度で64色のパレットから16色を選択して同時に表示する。EGAカードは追加のグラフィック機能をサポートするシステムBIOSの拡張のために16KBのROMを搭載し、旧来のグラフィックコントローラー（MDA、CGA）でビデオタイミング信号を生成するのに使われていたモトローラMC6845チップと後方互換のモードを持つカスタムCRTCを搭載していた。

640x350高解像度モードではピクセルあたり赤、緑、青の各2ビットずつ、それぞれの原色に4階調の輝度を設定でき、それらを組み合わせ可能なパレット（計64色）から16色を選択できた。EGAはCGAの640x200および320x200グラフィックモードのうち16色バージョンを搭載していた。EGA 4ビット（16色）グラフィックモードはCPUのビット演算によるビットプレーンとマスクレジスタの複雑な使用方法としても知られ、VGAや多くの互換ハードウェアに継承されることになる、早期のグラフィックアクセラレータを構成するものであった。

EGAは350ラインモード時に21.8kHz、200ラインモード時に15.7kHzで駆動するデュアルシンクである。オリジナルのCGAモードも存在するが、EGAはCGAとのハードウェア互換性は完全ではない。EGAはボード上のスイッチの設定を変えることでMDA用モニターを使用できるものの、この設定では640x350高解像度モノクログラフィックと標準MDAテキストモードのみが利用可能である。

EGAカードはISAバスを採用し、当初は8ビット版および16ビット版が用意されていた。オリジナルのIBM製EGAカードは64KBのオンボードRAMを持ち、64KBのEGAカードでは640x350モード時は4色に制限されるため64KBを追加するためにはドーターボードを必要とした。ほとんどのサードパーティー製カードは128KBが実装済みで、一部は256KBを搭載して複数のグラフィックページをサポートした。ATIテクノロジーズやパラダイス（現・ウェスタン・ディジタルなどいくつかのサードパーティー製EGA互換品は640x400、640x480、720x540などの拡張されたグラフィックモード、モニター種別の自動検出、CGAモニターを使うための400ラインインターレースモードをサポートしていた。

 表示機能 

テキストモード
40x25、8x8ピクセルフォント（有効解像度は320x200）
80x25、8x8ピクセルフォント（有効解像度は640x200）
80x25、8x14ピクセルフォント（有効解像度は640x350）
80x43、8x8ピクセルフォント（有効解像度は640x344）
EGA グラフィックモード
640x350、16色（64色の6ビットパレット）、ピクセル縦横比は1:1.37
640x350、2色、ピクセル縦横比は1:1.37
640x200、16色、ピクセル縦横比は1:2.4
320x200、16色、ピクセル縦横比は1:1.2
サードパーティー製ボードの拡張グラフィックモード
640x400
640x480
720x540

 カラーパレット 

EGAパレットは全ての16色CGAカラーを同時に使用することができ、これらの色はそれぞれ計64色から選んで置き換えることができた。これは追加のディスプレイハードウェア無しでCGA特有の茶色を表示させることも可能にした。後のVGA規格では64色をさらにカスタマイズすることができた。拡張カラーパレットは200ラインモードでは使用できなかった。

EGAパレットから色を選択するとき、赤、緑、青チャンネルに2ビットが使用される。これは各チャンネルが0、1、2、3の値を設定できることを意味する。マゼンタカラーを選択するには、赤と青の値を中輝度（十進数で2またはバイナリ値で10）として、緑の値をオフ（0）にセットする。64色EGAパレットで指定値を計算するとき、指定するバイナリ値の書式は"rgbRGB"、小文字をチャンネル輝度の最下位ビット、大文字を最上位ビットとする。マゼンタであれば、赤と青の最上位ビットは1なので、大文字のRとBの場所が1になる。残りの桁は全て0となり、マゼンタカラーを表すバイナリ値は"000101"となる。これは10進数で5となるから、パレット指定に5をセットすることでマゼンタが選択されたことになる。全てのデフォルト色のカラー値を次の表に記述する。

+ EGA 16色パレット（標準CGAカラーに設定した場合） 番号色 16進数 rgbRGB 10進数 0 Black #000000 000000 0 1 Blue #0000aa 000001 1 2 Green #00aa00 000010 2 3 Cyan #00aaaa 000011 3 4 Red #aa0000 000100 4 5 Magenta #aa00aa 000101 5 6 Brown #aa5500 010100 20 7 White / light gray #aaaaaa 000111 7 8 Dark gray / bright black #555555 111000 56 9 Bright blue #5555ff 111001 57 10 Bright green #55ff55 111010 58 11 Bright cyan #55ffff 111011 59 12 Bright red #ff5555 111100 60 13 Bright magenta #ff55ff 111101 61 14 Bright yellow #ffff55 111110 62 15 Bright white #ffffff 111111 63

仕様
EGAはCGA端子と同じ9ピンメスのDサブ端子を使用する。ピン割り当てを含むハードウェア信号インターフェースはCGAとほぼ互換性がある。その違いは3つのピンがEGAのセカンダリRGB信号となっていること。詳しくは、CGAではピンとされていたのが、ピンとされていたのが、予約ピンとされていたのがに変更されている。EGAがCGAと同じ走査レートのモードで動作している場合、CGAモニターへの接続は正常に動作するが、モニターが2ピンをグラウンドに接続している場合はEGAの出力をグラウンドに短絡させることになり、EGAアダプターの損傷に繋がる恐れがある。

ほとんどのEGAカードはカード背面にモニター種別を選択するためのディップスイッチを持っており、CGAが選択されていると、カードは200ラインモードで動作し、テキストモードでは8x8ピクセルフォントが使用される。350ラインモードには切り替えることができず、拡張カラーパレットも使用できない。EGAが選択されると、カードは350ラインモードで動作し、8x14ピクセルフォントが使用される。しかし、グラフィックモードは640x350x2のみが使用できる。

IBM 5154 EGAモニターは特殊なIBM 5153 CGA互換モードを備えていて、CGA相当の同期信号で動作しているときは自動でCGAのピン割り当てに切り替え、先に述べた問題を回避するようになっている。

メモリ割り当て
EGAグラフィックモードはプレーンアクセス方式で、これはCGAやHerculesモードとは対照的である。ビデオメモリは4ページに分割され（2ページを持つ530x350x2を除く）、それぞれRGBI色空間を持つ。各ビットは1ピクセルを表す。赤ページの1ビットが有効にされると、他のページの同等のビットがセットされていなくても、画面上の指定位置に赤色のドットが現れる。同じピクセルの他のプレーン全てのビットも有効にすると、それは白色になる。各プレーンのサイズは、8KB（200ラインモードと640x350ピクセル2色）、16KB（64KBビデオRAMでの640x350ピクセル）、32KB（128KBビデオRAMでの640x350）となり、CPUアドレス空間のセグメントA000に割り当てられる。それらはバンク切り替え方式で、一度に1プレーンのみ読むことができるのだが、プログラマーは書き込み先のプレーンをEGAカードのコントロールレジスタにセットする手法をとっていた。したがって、読み込みは常に1プレーンのみだが、書き込みは全てのプレーンに一度に行うことができた。

後方互換性を確保するため、カラーテキストとCGAモードはセグメントB800、モノクロテキストはB000に割り当てられた。

コネクタ
EGAではDE-9メスコネクタが使われている。ピン番号は上段が1-5、下段が6-9で、どちらも右から左に番号を割り当てた状態のピン割り当てを次に示す。

+ ピン割り当て ピン 名称 役割1 GND Ground2 SR Secondary Red (Intensity)3 PR Primary Red4 PG Primary Green5 PB Primary Blue6 SG Secondary Green (Intensity)7 SB Secondary Blue (Intensity)8 H Horizontal Sync9 V Vertical Sync

信号
種別デジタル、TTLレベル 640×350、他 水平同期周波数 15.7kHzまたは21.8 kHz 垂直同期周波数 60 Hz 表現可能色数 6ビット（64色）