コードページ 437 ( CCSID 437 ) は、初代IBM PC (パーソナルコンピュータ)の文字セットです。 [ 2 ] また、CP437 、OEM-US 、OEM 437 、[ 3 ] PC-8 、[ 4 ] またはMS-DOS Latin US [ 5 ] とも呼ばれます。このセットには、印刷可能なすべてのASCII 文字と、アクセント付き文字 (発音記号 )、ギリシャ文字、アイコン、線描画記号が含まれています。これは、「OEM フォント 」または「高 ASCII 」、あるいは「拡張 ASCII 」[ 4 ] (相互に互換性のない ASCII 拡張機能の 1 つ) と呼ばれることもあります。
この文字セットは、 EGA およびVGA 互換グラフィックカードの中核となる主要な文字セットです。そのため、PCの再起動時にフォントが読み込まれてレンダリングされる前に表示されるテキストは、通常この文字セットを使用してレンダリングされます。[ 注1 ] IBM PCの時代に開発された多くのファイル形式も、コードページ437に基づいています。
ディスプレイアダプタ オリジナルの IBM PC には、IBM モノクロディスプレイアダプタ (MDA) のROMに格納された 9×14 ピクセル/文字のフォントと、 カラーグラフィックスアダプタ ( CGA ) カードの 8×8 ピクセル/文字のフォントとして、このフォントが含まれていました。IBM拡張グラフィックスアダプタ (EGA) には、8×14 ピクセル/文字バージョン[ 6 ] と、CGA 互換モード用の 8×8 ピクセル/文字バージョン[ 7 ] が含まれていました。VGAに は 9×16 バージョンが含まれていました。
これらのディスプレイアダプタはすべてテキストモードを備えており、各文字セルには8ビットの 文字コードポイント が含まれています(詳細 は後述)。これにより、グラフィック文字には256個の値を指定できます。256個のコードすべてにROM内でグラフィック文字が割り当てられており、ASCIIで非グラフィック制御文字用に予約されていたコード0~31も含まれています。
東欧の様々なPCは、異なる文字セットを使用しており、ジャンパーやCMOS設定でユーザーが選択できる場合もあった。これらの文字セットは、例えば多くの線画文字のコードポイントを共有するなど、可能な限り437に一致するように設計されていたが、同時に現地語のテキストも表示できるようになっていた。
文字セット 以下の表はコードページ437を示しています。各文字は、対応するUnicode コードポイント(文字のコードと一致しない場合)とともに表示されます。通常、文字のすぐ左にカーソルを合わせた場合にのみ表示されるツールチップには、Unicodeコードポイント名と10進数の Altコード が表示されます。一部のコードポイントには複数の対応するUnicode文字が存在するため、以下の注記も参照してください。
ROMには256種類の8ビットコードすべてに対応するグラフィックが用意されていますが、一部のAPIでは 、特に0~31の範囲と127のコードなど、一部のコードポイントが印刷されません。[ 12 ] 代わりに、制御文字として解釈されます。たとえば、初代IBM PCでテキストを出力する多くの方法では、16進 コード07、08、0A、0DをそれぞれBEL 、BS 、LF 、CR として解釈していました。また、多くのプリンタではこれらの文字を印刷できませんでした。
記号と句読点
Unicodeへの変換において、一部のコードには一意の単一のUnicode相当コードが存在しない場合があります。適切な選択は文脈によって異なる場合があります。
↑ 0 は空白を描画しますが、 C 文字列の終端文字として使用されるということは、より正確には NUL と翻訳されることを意味します。Star Micronics プリンタは、コード ページ 437 に基づく C0 領域グラフィックスの実装において、このコードをスラッシュ付きゼロ として再利用しています。 [ 17 ] ↑ 14 (E hex ) 図のように、連桁付き8分音符 [U+266B, ♫] へのマッピングは、 Unicode Consortium が提供するデータに従います。 [ 18 ] IBM の GCGID (Graphic Character Global IDentifier) 文字 ID システムでは、これは SM910000 であり、「2 つの音符」と注釈されています。 [ 14 ] [ 15 ] ただし、参照グリフは、連桁付き16分音符 2 つ[U+266C, ♬] を示しています。 [ 14 ] IBM 日本語ホスト コード の仕様では、SM910080 (つまり、全幅 属性が設定された SM910000) は明示的に U+266C にマッピングされ、それに応じて 16 分音符 2 つを示します。 [ 19 ] ↑ 124 (7C hex ) この位置の実際のグリフは、オリジナルのMDA でレンダリングされたオリジナルのIBM PC および互換フォントでは、 破線バー [U+00A6, ¦] です。このレンダリングは後にCGA 、 EGA 、 VGA にも採用されました(記事の冒頭の画像を参照)。しかし、ほとんどすべてのソフトウェアはこのコードを ASCII 文字 [U+007C, |] と想定しています。たとえば、プログラミング言語ではこれを「または」として使用します。1990 年代初頭に、この位置にASCII の縦棒があり、破線バーの記号は ASCII の一部ではないことが明確になりました。 ↑ 127 (7F hex ) は「家」ですが、ギリシャ文字の首都デルタ [U+0394, Δ] としても使われることがありました。 ↑ 179 (B3 hex ) IBM のフォントでは、完全な拡張文字 [U+23AE, ⎮] としても機能する可能性があります。 ↑ IBMの各種製品におけるE0からEFまでの文字範囲の比較。 IBMでは225(E1 hex )はラテン文字の「 シャープ s 小」[ 15 ] [U+00DF、ß]として識別されていますが、OEMフォントではギリシャ文字の小 ベータ [U+03B2、β]として表示されることがあります。このラテン文字がギリシャ文字の中に配置されていることは、複数の用途を想定していることを示唆しています。↑ 227 (E3 hex ) は IBM ではギリシャ文字の「パイ 小」[U+03C0, π] として識別されますが、OEM フォントではギリシャ文字の大文字パイ [U+03A0, Π] またはn 項積 記号 [U+220F, ∏] として表示されることがあります。 ↑ 228 (E4 hex ) は IBM によってギリシャ文字の「 シグマ 大文字」[U+03A3, Σ]として識別されますが、 n 進 総和 記号 [U+2211, ∑]としても使用されます ↑ 230 (E6 hex ) は IBM ではギリシャ文字の「ミュー 小」[U+03BC, μ] として識別されますが、マイクロ記号 [U+00B5, µ] としても使用されます。IBM のギリシャ文字 GCGID テーブル[ 20 ] ではこのコード ページの文字がギリシャ文字にマッピングされますが、cp437_DOSLatinUS から Unicode テーブル[ 13 ] ではマイクロ記号にマッピングされます。 ↑ 233 (E9 hex ) は、IBM によってギリシャ文字の「シータ 大文字」[U+0398, Θ] として識別されています。 [ 14 ] [ 15 ] ただし、これらの記号は数学と物理学で使用され、小文字のシータがはるかに一般的に使用されます (極座標など)。 ↑ 234 (EA hex ) は IBM によってギリシャ文字の「オメガ 大文字」[U+03A9, Ω] として識別されていますが、オーム 記号 [U+2126, Ω] としても使用されています。Unicode ではこれらの文字は同等であると考えており、どちらの文脈でも U+03A9 を使用することを推奨しています。 [ 21 ] ↑ 235 (EB hex ) は、IBM によってギリシャ文字の「デルタ小文字」[U+03B4, δ] として識別されています。非公式には、小文字の エト [U+00F0, ð] や偏微分 記号 [U+2202, ∂]にも使用されていました。 ↑ 237 (ED hex ) は、IBM ではギリシャ文字の「ファイ 小 (閉じた形)」[U+03D5、ϕ; または、斜体の数式セットから、U+1D719、𝜙] として識別されますが、Unicode では cp437_DOSLatinUS テーブルで開いた (または「ループ状」) 形 [U+03C6、φ] にマッピングされます。 [ 13 ] IBM のギリシャ文字 GCGID テーブル[ 20 ] と Unicode のギリシャ文字コード表[ 22 ] を比較すると、たとえば IBM が Unicode にマッピングする際に開いた形と閉じた形を反転させた箇所がわかります。この文字は、空集合 記号 [U+2205、∅]、直径 記号 [U+2300、⌀]、およびストローク付きラテン文字 O [U+00D8、Ø; および U+00F8、ø] としても使用されます。 ↑ 238 (EE hex ) は、IBM ではギリシャ文字の「イプシロン 小文字」[U+03B5, ε] として識別されますが、OEM フォントでは要素記号 [U+2208, ∈] として表示されることもあります。 ユーロ記号 [U+20AC, €]としてよく使われていました。 ↑ 244 (F4 hex ) と 245 (F5 hex ) は 積分記号 (∫)の上部と下部であり、ボックス描画ブロックの垂直線である文字 179 (B3 hex )で拡張できます。244 は長い s 文字 [U+017F, ſ]にも使用できます ↑ 249 (F9 hex ) と 250 (FA hex ) はほとんど区別がつかない。前者は後者よりわずかに大きいドットで、どちらも箇条書き 、中点 、乗算ドット [U+2219, ∙] ↑ 251 (FB hex ) は チェックマーク [U+2713, ✓]としても使用されることがありました ↑ 255 (FF 16 進数 ) は空白を描画します。非改行スペース (NBSP) としての使用は、IBM PC 用に設計されたワードプロセッサで前例があります。
歴史 ビル・ゲイツ は、1995年10月2日号のフォーチュン誌に掲載されたゲイツとポール・アレン のインタビューの中で、コードページ437の文字セットは、 Wang ワードプロセッシングマシン(WISCII )の文字セットから部分的に流用されたと述べている。
「…私たちはWangの専用ワードプロセッサにも魅了されていました。汎用マシンでも同じようにできるはずだと考えていたからです。だからこそ、IBM PCのキーボードを設計する際に、Wangの面白い文字セット、つまりスマイリーフェイスや四角、三角形などを組み込んだのです。いつかWangのワードプロセッシングソフトウェアのクローンを作りたいと思っていました。」
しかし、ゲイツの説明は、WISCII文字セットにはスマイリーフェイスやボックス描画文字が含まれていないため、部分的に不正確であると異議を唱えられている。[ 23 ]
デビッド・J・ブラッドリー (PCのROM-BIOS の開発者)へのインタビューによると、キャラクターはシアトルからアトランタへの飛行機の中で、アンディ・サエンス(ビデオカードの担当者)、ルー・エッゲブレヒト(PCのチーフエンジニア)、そして彼自身による4時間の会議で決定されたとのことである。[ 24 ]
グラフィック文字の選択には、いくつかの内部的な論理が存在する。
表の0行目と1行目、コード0~31(16進 数 で00 ~1F )は、様々な装飾文字 (補文字および装飾文字)です。単独文字127(16進数で 7F )もこのグループに属します。 表の2行目から7行目、コード32から126(16進数 で 20から7E )は、標準的なASCII 印刷可能文字です。 表の8行目から10行目、コード128から175(80 16進数 からAF 16 進数)は、国際テキスト文字の一部です。 表の行 11 ~ 13、コード 176 ~ 223 (B0 16 進数 から DF 16 進数 ) は、ボックス描画 とブロック 文字です。このブロックは、文字 192 ~ 223 (C0 16 進数 から DF 16 進数 ) がすべての右腕と右塗りつぶし領域を含むように配置されています。オリジナルのIBM PC MDA ディスプレイアダプタは、コード ページ 437 の文字グリフを 8ピクセル幅の ビットマップ として格納していましたが、視覚的な強化のために画面上に 9 ピクセルごとに表示していました。この文字範囲では、8 番目のピクセル列が特別なハードウェア回路によって複製され[ 25 ] 、線と塗りつぶし領域の隙間が埋められました。VGA アダプタでは、この動作をオンまたはオフにすることができます。[ 26 ] 表の14行目と15行目、コード224から254(16進数 でE0からFE ) は数学記号に充てられており、最初の12個は物理学で一般的に使用されるギリシャ文字の抜粋です。 Microsoft Windows 用のフォントのほとんどは、表示されている Unicode インデックスの特殊グラフィック文字を含んでいます。これは、 Microsoft がフォントデザイナーにサポートを推奨しているWGL4 セットの一部であるためです。(等幅ラスターフォントファミリーのTerminal は 、少なくとも一部の解像度では、コードページ 437 のすべての文字を再現した初期のフォントでした。) これらの文字をこれらのコードポイントから直接描画するために、MS Linedraw [ 27 ] と呼ばれるMicrosoft Windows フォントは、コードページ 437 のすべての文字を再現し、制限はあるものの、DOS テキストを最新の Windows マシンで DOS で表示されていたとおりに表示する 1 つの方法を提供します。[ 28 ]
コードページ1055 (HPシンボルセット0Lとも呼ばれる) [ 29 ] は、ボックス描画、ハーフブロック、黒丸(黒丸はこのコードページでは中央のドットを置き換える箇条書きを置き換えます)、および黒四角形を含むサブセットであり、それらを上半分に移動します。スペースも含まれます。[ 30 ]
国際化 コードページ437には、主に128から175(80 hex からAF hex )の値を持つ一連の国際文字が含まれています。しかし、 英語 、ドイツ語 [ 注2 ] 、スウェーデン語 [注3 ] など、西ヨーロッパの主要な言語の一部しか完全にカバーしていないため、多くの西ヨーロッパの主要な言語にとって重要な文字(主に大文字)がいくつか欠けています。
スペイン語 :Á、Í、Ó、Úフランス語 : À、Â、È、Ê、Ë、Î、Ï、Ô、ā、œ、Ù、Û、Ÿポルトガル語 : Á、À、Â、Ã、ã、Ê、Í、Ó、Ô、Õ、õ、Úカタロニア語 : À、È、Í、Ï、Ò、Ó、Úイタリア語 : À、È、Ì、Ò、Ùアイスランド語 : Á、Ð、ð、Í、Ó、Ú、Ý、ý、Þ、þデンマーク語 /ノルウェー語 : Ø と ø。文字番号 237 (ED 16 進数 )、小文字の phi (閉じた形) は、うまく表示されない可能性があるものの、代替として使用できます (さらに、Unicode にマッピングされたり、Unicode フォントで開いた形の phi または閉じた縦形の phi としてレンダリングされたりする傾向があり、これらはストローク付きの O からさらに離れています)。これを補うために、デンマーク語 /ノルウェー語 とアイスランド語の コード ページ ( 865 と861 ) では、セント記号 (¢) を ø に、円記号 (¥) を Ø に置き換えました。基本的な数学記号を除き、ほとんどのギリシャ文字 記号は省略された。(それらはギリシャ語コードページ737 と869 に収録されている。コードページ437に既に収録されていたギリシャ文字記号の一部は、数学的または科学的な形式から、ギリシャ語での実際の使用法に合わせてグリフが変更された。) セント (¢)、ポンド (£)、円 /元 (¥)の通貨記号に加えて、かつてのヨーロッパの通貨記号が2つあります。オランダのフローリン (ƒ)とスペインのペセタ (₧)です。スペインのペセタは国際的に重要な通貨ではなく、独自の記号もなかったため、後者の存在は珍しいと言えます。単に「Pt」、「Pta」、「Pts」、「Ptas」と略されていました。しかし、 IBMの電動タイプライター のスペイン版には、ペセタ専用のポジションが1つありました。
後期の DOS 文字セット、例えばコード ページ 850 (DOS Latin-1)、コード ページ 852 (DOS Central-European)、コード ページ 737 (DOS Greek) は、単一および二重のボックス描画文字を保持しつつ、混合文字 (水平二重/垂直単一など) を破棄することで、コード ページ 437 との互換性を保ちつつ、国際的に使用できる文字の不足を補いました。コード ページ 437 のすべての文字は、 Unicode および Microsoft のWGL4 文字セットで同様のグリフを持つため、 Microsoft Windowsのほとんどのフォント、 Linux カーネルのデフォルトの VGA フォント、およびX11の ISO 10646 フォントで使用できます。
注記 ↑ 東欧、アラブ諸国、アジア諸国で利用可能なシステムでは、異なるセットが使用されることが多いですが、これらのセットは437にできる限り適合するように設計されています。「OEM」(Original Equipment Manufacturer:オリジナル機器メーカー)という表記は、メーカーが異なる市場に合わせてセットを変更する可能性があることを示しています。 ↑ ただし、ẞ は 2017 年まで採用されておらず、すべて大文字のテキストでのみ使用されました。 ↑ また、バスク語 、 マレー語 、1999 年以前の トルクメン語の ラテン文字 など、あまり重要でない西ヨーロッパの言語やその他の言語も完全に網羅していますが、これはおそらく、その文字体系がそれを基に構築されたためであり、その逆ではありません。
参考文献 ↑ 文字セット 、インターネット割り当て番号機関 (IANA)、2018年12月12日↑ 「CCSID 437情報文書」 。 2016年3月27日に オリジナル からアーカイブされました。 ↑ 「OEM 437」 。Go Global Developer Center。Microsoft 。 2016年6 月 9日に オリジナル からアーカイブ済み。 2011年 9月22日 に取得 。 1 2 「OEM フォント」 。 百科事典 。PCmag.com。2020 年 11 月 27 日のオリジナルから アーカイブ済み。2021 年 10 月 19 日 取得 。 ↑ カノ、ナディーン。「付録 H コード ページ」。 グローバリゼーションとローカリゼーション :コード ページ 437 MS-DOS ラテン アメリカ 。 マイクロソフト 。2016 年 3 月 17 日のオリジナルから アーカイブ。2025 年 2 月 6 日 取得 。 ↑ IBM Enhanced Graphics Adapter マニュアル (PDF) . p. 1. ↑ IBM Enhanced Graphics Adapter マニュアル (PDF) . p. 1. 1 2 3 「このサイトで使用されている用語集」 。Microsoft 。 (「Alt+Numpad」という用語の説明を参照してください) 。 2018年 8月17日 取得 。 {{cite web}}: CS1メンテナンス: アーカイブサービスは非推奨になりました (リンク)↑ Murray Sargent. 「Unicode文字の入力 – Murray Sargent: Math in Office」 。 2018年 8月17日 取得 。 ↑ 「ALT+テンキーのASCIIキーの組み合わせ:難解なパスワードを作成するαとΩ」 。 2018年 8月17日 取得 。 ↑ 「ASCII または Unicode のラテン文字と記号を挿入する - Office サポート」 。Microsoft。2018 年 8 月 17 日 取得 。 ↑ 「SBCSコードページ情報ドキュメントCPGID 00437」 。コード化 文字 セットと関連リソース 。IBM。1986 [1984-05-01]。 2016年6月9日に オリジナルからアーカイブ 。 2011年 11月14日 に取得。 1 2 3 Steele, Shawn (1996 年 4 月 24 日). "cp437_DOSLatinUS から Unicode テーブルへ" (TXT) . 2.00. Unicode コンソーシアム . 2016 年 6 月 9 日のオリジナルから アーカイブ済み. 2011 年 11 月 14 日 取得 . 1 2 3 4 コードページ CPGID 00437 (PDF) 、IBM 1 2 3 4 "コードページ (CPGID): 00437" 。 コード化文字セットと関連リソース 。IBM 。1984年 。 2023年 8月3日 取得 。 ↑ 国際ユニコードコンポーネント(ICU)、ibm-437_P100-1995.ucm 、2002年12月3日 ↑ 「付録 D: 文字セット (§ IBM 特殊文字セット)」 (PDF) 。 ユーザーマニュアル: LC-8021 ドットマトリックスプリンタ 。 スターマイクロニクス 。1997 年。p. 55。2004 年 9 月 8 日にオリジナルから アーカイブ (PDF) 。2024 年 4 月 25 日 に取得 。 ↑ ウィスラー、ケン(1999年7月27日)。 「IBM PCのメモリマップドビデオグラフィックスからUnicodeへ」 。Unicode コンソーシアム 。 ↑ 「IBM 日本語グラフィック文字セット、漢字:DBCS-Host および DBCS-PC」 (PDF) 。IBM 。 2002 年。CH 3-3220-024 2002-11。 1 2 「グラフィック文字識別子:アルファベット、ギリシャ文字」 . コード化された文字セットと関連リソース . IBM . 2017年 2月25日 取得 . ↑ Unicodeコンソーシアム (2003年5月21日)「第7章:ヨーロッパのアルファベット文字」 Unicode標準4.0 (PDF) 。Addison -Wesley (2003年8月発行) 。176 ページ 。ISBN 0-321-18578-1 2016年6月9日 に取得 。↑ 「ギリシャ語とコプト語:範囲:0370–03FF」 (PDF) 。Unicode 標準、バージョン9.0。Unicode コンソーシアム 。 2017年 2月25日 取得 。 ↑ ネカセク、ミハル(2021年10月1日)。 「奇妙な物語」 。 OS/2 ミュージアム 。 2026 年 4 月 5 日 に取得 。 ↑ Edwards, Benj (2015年11月6日) [2011]. "ASCII スマイリー文字の起源: David Bradley 博士との電子メールのやり取り" . 2016年11月28日のオリジナルから アーカイブ済み。 2016年 11月27日 取得 。 IBM PC 文字セットの最初の 32 文字を見ると 、スマイリー フェイス、音符、トランプのマークなど、風変わりな文字がたくさん見つかります。これらは文字ベースのゲームを意図したものでした [...] 8 ビット文字を使用していたため、128 の新しい場所を埋める必要がありました。そこに真面目な文字を配置しました。Datamaster の 経験に基づいて、外国語の文字の 3 列です。ブロック グラフィック文字の 3 列 [...] モノクロ ディスプレイ アダプタを使用している多くの顧客は、グラフィックをまったく使用できませんでした。 [...] 2 列には、数学記号、ギリシャ文字 (数学用) などがありました [...] 最初の 32 文字 (x00-x1F) についてですか? [...] これらの文字はテレタイプ送信に由来します。しかし、文字ベースの画面に表示することはできました。そこで、「真面目ではない」文字のセットを追加しました。これらは表示専用の文字であり、送信や保存用ではありませんでした。最も可能性の高い用途は、文字ベースのゲームでした。[...] IBM PC のほとんどのものと同様に、1 年間の開発スケジュールでは、熟考や修正のための時間はほとんどありませんでした。[...] 文字セットは 3 人で 4 時間の会議で開発され、私はシアトルからアトランタへの飛行機に乗っていたそのうちの 1 人でした。その会議の後、若干の修正がありましたが、設計/修正/決定すべき他の多くのことがあったので、それで終わりでした。[...] その飛行機旅行の他の参加者は、ビデオ カードの責任者である Andy Saenz と、PC のチーフ エンジニアである Lew Eggebrecht でした。 ↑ ウィルトン、リチャード(1987年12月)。プログラマーズガイド:PCおよびPS/2ビデオシステム:EGA 、 VGA、HGC、MCGAからの最大限のビデオパフォーマンス (第1 版)。 マイクロソフトプレス 。ISBN 1-55615-103-9 。↑ Joshua D. Neal、「属性コントローラレジスタ:属性モード制御レジスタ」、ハードウェアレベルのVGAおよびSVGAビデオプログラミング情報ページ:ビット2はライングラフィックス有効化です。 ↑ マイク・ジェイコブス。 「MS LineDraw フォント ファミリー - タイポグラフィ | Microsoft Docs」 。Microsoft タイポグラフィ 。2.00。Microsoft Corporation。2018 年 8 月 17 日 取得 。 ↑ スタッフ (2013 年 10 月 26 日)。 「 WD97: MS LineDraw フォントが Word で使用できない」 。Microsoft。2.0。Microsoft。KB179422 、Q179422。2016 年 3 月 24 日のオリジナルから アーカイブ済み。2012 年 7 月 1 日 取得 。 ↑ 「HPシンボルセット」 。 ↑ 「コードページ1055」 (PDF) 。2013年1月21日に オリジナル (PDF) からアーカイブされました 。
外部リンク IBM PCのメモリマップドビデオグラフィックスをUnicodeに変換する方法について、公式Unicodeサイトをご覧ください。