コードページ437

コードページ437とは、オリジナルのIBM PCの文字セットである。CP437やOEM-US、OEM 437、PC-8、DOS Latin USとしても知られる。32番から126番のASCIIコード、アクセント付き文字の拡張範囲のコード、ギリシア文字がいくつか、アイコン、線を引くための記号、これらが含まれている。「OEMフォント」や「high ASCII」、「拡張ASCII」として言及されることもある。

この文字セットはEGAおよびVGAに互換性があるグラフィックカードの初期フォントとして残っている。PCが再起動してフォントが記録媒体から読み込まれる前に表示されるテキストは一般的にこの文字セットで描画される。IBM PCの時代に開発された多くのファイルフォーマットもまたコードページ437がもとになっている。

1. ディスプレイアダプタ
-------------

9×14ピクセルのフォントとしてIBM Monochrome Display Adapter  のROMに、またColor Graphics Adapter  カードの8×8ピクセルのフォントとしてこのフォントはオリジナルのIBM PCに含まれていた。

これらのディスプレイアダプタはすべて各文字のセルに8ビット文字のコードポイントが含まれているテキストモードが存在していて、256通りの値が表示可能文字として使えるようになっていた。ASCIIで非表示可能文字として予約されている0番から31番の範囲のコードも含めて、256コードすべてが表示可能文字としてROMに割り当てられた。

東ヨーロッパの様々なPC機種で異なる文字セットが使われていて、ジャンパやCMOSの設定でユーザーが選べるものもあった。現地語のテキストを表示ができるようにしつつもコードポイントを多くの罫線素片で共有するなどして、可能な限りコードページ437と合うようにこれらの文字セットは設計された。

2. Altコード
---------

Altコードの数字の組み合わせはコードページ437とその他のDOSコードページがもとになっている。Altキーを押しつつテンキーで3桁で十進法のAltキーコードを入力することによってユーザーは文字を入力できる。マイクロソフトによって専用の文字セットに、後にUnicodeにWindowsで切り替えがなされたとき、もとのコードは残された。

3. 文字セット
--------

コードページ437は次の表に表される。対応するUnicodeのコードポイントと十進法でのコードポイントが各文字とあわせて表示される。一部のコードポイントには対応するUnicodeのコードポイントが複数あるため下の注記も見ること。十進法のコードはAltコードとして知られてもいる。

256通りすべての8ビットコードにグラフィックがROMで提供されているが、一部のコードポイント、特に1番から31番の範囲と127番のコードは一部のAPIでは表示されない。代わりに制御文字として解釈される。例えばオリジナルのIBM PCでは多くのテキスト出力方法ではそれらのコードはBEL、BS、CR、LFとして解釈される。また多くのプリンタでもこれらの文字は印刷ができなかった。



3.1. 脚注
-------

Unicodeに変換するときには一部のコードは一対一にUnicodeで対応するものがないことに気を付けるべきである。何が正しい選択かは状況による。

4. 歴史
-----

ビル・ゲイツは1995年10月2日号の//Fortune Magazine//のビル・ゲイツとポール・アレンとのインタビューの中でワングのワードプロセッサの文字セットからコードページ437の範囲はとられたと述べている。

"... We were also fascinated by dedicated word processors from Wang, because we believed that general-purpose machines could do that just as well. That's why, when it came time to design the keyboard for the IBM PC, we put the funny Wang character set into the machine—you know, smiley faces and boxes and triangles and stuff. We were thinking we'd like to do a clone of Wang word-processing software someday." 「...汎用マシンでワードプロセッサと同じ役目が果たせると考えていたため、ワングの専用ワードプロセッサにわたしたちも夢中になりました。IBM PCのキーボードをデザインすることになったときに、お知りの通り笑顔や四角形や三角形など、ユーモアのあるワングの文字セットをマシンに取り入れたのはこれが理由です。」デイビッド・J・ブラッドリーのインタビューによると、Andy Saenz、Lew Eggebrecht、また彼自身によってシアトルからアトランタへの飛行機に乗っているときの4時間の会議中にこれらの文字は定められた。

表示文字の選ばれ方に関する内部規則がある。

表の0番目と1番目の行、0番から31番  までのコードは装飾記号に分類される。127  番と離れている文字もこのグループに属する。
表の2番目から7番目の行、 番の文字を除いて、)32番から126番  までのコードはASCII印字可能文字になる。
表の8番目から10番目 の行、128番から175番  までのコードは国際的なテキスト文字を収録している。
表の11番目から13番目 、176番から223番  までのコードは罫線素片とブロック文字になる。右側に線がある文字や右側を塗りつぶすための文字は全て192番から223番  までの文字に含まれるように、このブロックは配置されている。オリジナルのIBM PCのMDAではこのコードページの437グリフは8ピクセルの幅のビットマップとして保持されていたが、見た目をよくするために画面上では9ピクセルごとに表示された。この範囲の文字における各文字の8番目のピクセル列は特殊なハードウェア回路によって重複して表示され、各行の隙間、特に塗りつぶしを行った際の隙間をなくすために使われた。
表の14番目から15番目  の行、224番から255番  までのコードは数学記号にあてられていて、最初の12コードは物理でよく使われるギリシャ文字を収録している。244番目  と245番目  は積分記号として使われる記号である斜体の長いsの上の部分、下の部分になっていて、179  番の文字である罫線素片の縦線で伸ばせるようになっている。244  番目の文字は長いs  の代替として使うこともできる。249番目  と250番目  は、前者が印刷上の中黒  に似た後者を少し大きくしたものであり、ほとんど区別がつかない。255  番目の文字はただ空白であり、数式を整えるためのノーブレークスペースのようなものとして働く。マイクロソフトによってフォントのデザイナーにサポートすることが推奨されているWGL4セットの一部として、Windowsの多くのフォントはこれらの特別な表示文字は示したUnicodeのインデックスに含まれている。これらの文字をコードページ437のコードポイントから直接表示するためにMS LinedrawというWindowsのフォントはコードページ437の文字すべてを持ち、制限付きながらも、DOS向けのテキストをDOSで表示したように今のWindowsマシンで表示できるようにしている。

5. 国際化
------

大体128から175の数値で国際文字が一続きにコードページ437に存在する。しかしながら多くの西洋の言語に大切ないくつかの文字が欠けている。

スペイン語: Á、Í、Ó、Ú
フランス語: À、Â、È、Ê、Ë、Î、Ï、Ô、Œ、œ、Ù、Û、Ÿ
ポルトガル語: Á、À、Â、Ã、ã、Ê、Í、Ó、Ô、Õ、õ、Ú
カタルーニャ語: À、È、Í、Ï、Ò、Ó、Ú
イタリア語: À、È、Ì、Ò and Ù
アイスランド語: Á、Ð、ð、Í、Ó、Ú、Ý、ý、Þ、þ
デンマーク語/ノルウェー語: Øø うまく描画されないかもしれないが、237  番目の文字の小文字のファイが代替として使える。 これを埋め合わせるために、デンマーク語やノルウェー語、アイスランド語のコードページではセント記号  をø、円記号  をØで置き換えた。
基本的な数学記号の範囲をこえたほとんどのギリシア文字の記号は省略されている。セント、ポンド、円/元の通貨記号といっしょに以前使われていたヨーロッパの通貨記号がいくつかある。フローリンやペセタである。スペインのペセタは国際的な通用力を持っていたわけでもなく、また「Pt」、「Pta」、「Pts」、「Ptas」のように省略されていただけであってそれ自体の記号はなかったため、後者の存在は異例である。ただしIBM Electric typewriterのスペインモデルでもその記号に独立した位置づけがされていた。

コードページ850やコードページ850、コードページ737のような後にできたのODS用の文字セットでは、混ぜ合わせた文字は無くしつつも、単線および二線の罫線素片を残してコードページ437との互換性を部分的に保ちつつ国際的な使用をするために隙間がなくなっている。UnicodeとマイクロソフトのWGL4の文字セットに似ている字形がコードページ437の文字すべてにあり、そのためWindowsのほとんどのフォントで、またLinuxカーネルの標準VGAフォントで、X11のISO 10646フォントで使うことができる。

6. 関連項目
-------

ANSI
ASCII
Atari ST文字セット 

7. 脚注
-----

8. 参考文献
-------

9. 外部リンク
--------

[ftp://ftp.software.ibm.com/software/globalization/gcoc/attachments/CP00437.pdf IBM Code Page 437 reference chart]
[1] Unicode公式サイト