具体的には、文字色と背景色で「デフォルトカラー」をサポートした。
そのほかにカーソルの形状や色の指定などが可能になっている。ここでは、この文字色と背景色について考えてみる。
Windowsコンソールの表示色は
IBM PC当初のハードウェアの制限を受け続けていた
そもそもWindowsのコンソールは、Win32アプリケーション(デスクトップアプリケーション)がコンソールAPIを使って出力などをするように作られたもの。
コンソールは、文字や背景の色を16個のカラーコードで指定する。つまり全部で16色しか利用できない。
WindowsアプリケーションはグラフィックスでRGB各8bitのフルカラーを使えるというのに、コンソールの中の文字や背景の色はたった16色しか指定できないのである。
これは、IBM PCに搭載されたCGAなどのテキストモードの仕様を引き継いだからだ。
現在のコンソールは、アプリケーションが指定した文字列をWindowsがフォントのビットパターンとして描画している。
しかし、IBM PCが発売された当時は、CPUも高速ではなかったため、現在のような「ビットマップディスプレイ」で文字を扱うと描画速度が遅くなってしまう。
そんなIBM PCのディスプレイカード(CGA、MGAと呼ばれるハードウェア)では、文字をハードウェアで表示していた。
具体的には、ビデオメモリーに文字コードとアトリビュートを書き込むと、ハードウェアでフォントパターン(当時は、これをキャラクタージェネレーターと呼んでいた)として表示させていた。
プログラム側は、8bitの文字コードをビデオメモリに書き込むだけで、文字が表示できた。
このときビデオメモリには、文字コードだけでなく、表示色を指定する「アトリビュート」も同時に書き込んだ。合わせて16bitをメモリに書き込むだけで文字が表示できたわけだ。
進化するWindows 10のターミナル、“色”で30年来の制限から脱却
http://ascii.jp/elem/000/001/792/1792101/
引用元: http://hayabusa9.5ch.net/test/read.cgi/news/1546341583/