EBCDIC (英語: Extended Binary Coded Decimal Interchange Code[1]、エビシディック、拡張二進化十進コード[2]) はIBMにより定義された8ビットコード化文字セットである[3]ASCII普及前の1963年に、BCD(Binary-coded decimal、二進化十進コード)を拡張する形で作られ、主にIBM系のメインフレームオフィスコンピュータなどで使用されている[4][5][6]

IBMのCDRACharacter Data Representation Architecture; 文字データ表現体系)では、EBCDICは符号化方法(Encoding Scheme)の1つと位置づけられている[7]。各国語などの文字集合であるコードページを、EBCDICなどの符号化方式で符号化するが、EBCDICの符号化にもシングルバイトダブルバイトマルチバイトの構造がある。これらの組み合わせがCCSIDとして定義されており、例えば日本用のEBCDICのCCSIDは、ひらがな漢字を含まない組み合わせも含めると、10以上定義されている[8]

この他、IBM以外の互換メーカーなどのEBCDICをベースとした各種の文字コードまたは符号化方法も、EBCDICまたはEBCDIC系と呼ばれる場合がある。

歴史

編集

EBCDICはSystem/360と同時に発表された。

IBMはASCII標準化委員会の主提案社であったが[9]、BCDをベースとしたのは、当時のデータの大多数はパンチカードの形でBCDの形式で保管されていたため、蓄積データの互換性を優先したためである。

System/360がベストセラーとなると、そのクローンであるRCA Spectra、ICL System 4、富士通 FACOM日立製作所 HITACなどもEBCDICを採用した。

EBCDICを標準の文字コードとするオペレーティングシステムには、IBMメインフレーム用のz/OSz/VSEz/VMや、IBMミッドレンジコンピュータ用のOS/400IBM iなどがある。ただし、IBMメインフレーム上でもz/OS上のUSS(UNIX互換環境)や、Linux、あるいはAS/400Power Systems i Edition上で稼動するLinuxやAIXなどは、ASCIIである。EBCDICと、ASCII、シフトJISUnicodeなどの主要な文字コード間は、オペレーティングシステム、ミドルウェア、各種ツール、アプリケーション・ソフトウェアなどの機能を使用したコード変換が行われている。

IBM以外ではBS2000HP MPEUnisys MCPなどもEBCDICをベースにしている。日立製作所はEBCDICをベースとした自社の文字コードをEBCDIKと呼んでいる[10]。上述のようにIBMの日本用EBCDICの組み合わせ(CCSID)は10以上定義されているが、他メーカーでは細部が異なるため、いわゆるEBCDIC系統では多数の文字コードが存在している。

詳細

編集

CCSID、コードページとの関係

編集

上述のように、IBM CDRA上ではEBCDICは「文字コード」ではなく「符号化方法」の1つであり、具体的なコード配置(各文字と符号位置の配置)はコードページによっても異なる。符号化方法にEBCDIC (1100)を使用したコードページとCCSIDの例には以下がある。なお CCSID 5026(日本語カタカナ拡張)にはコードページが2つあり(混合CCSID)、切り替えて使用する。

EBCDICを使用したCCSID、コードページの例
CCSID コードページ(CPGID) 符号化方法(ES) コードページ名 備考
37[11] 37 1100 USA/Canada - CECP USA英語(EBCDIC)
500[12] 500 1100 International #5 多国語英語(EBCDIC)
5026/930/1390[13] 290 1100 Japanese (Katakana) Extended SBCS日本語カナ(EBCDIC)
300 1100 Japan (Kanji) - Host, DBCS DBCS日本語(EBCDIC)
5035/939/1399[14] 01027 1100 Japanese (Latin) Extended SBCS日本語英小文字カナ(EBCDIC)
300 1100 Japan (Kanji) - Host, DBCS DBCS日本語(EBCDIC)

コード配置

編集
  • EBCDICを使用した全てのコードページで、共通の符号位置を持つ文字 (例えば、'SP'(ブランク) = X'40'は共通だが、以下に記載の無い英小文字の有無や位置はコードページにより異なる)
  00 10 20 30 40 50 60 70 80 90 A0 B0 C0 D0 E0 F0
0         sp & -                 0
1             /           A J   1
2                         B K S 2
3                         C L T 3
4                         D M U 4
5                         E N V 5
6                         F O W 6
7                         G P X 7
8                         H Q Y 8
9                         I R Z 9
A               :                
B         .   , #                
C         < * % @                
D         ( ) _ '                
E         + ; > =                
F             ? "                
  • カナ拡張されたEBCDICコードの例(IBMによるカナ拡張の一例;コードページ:298の場合)
  00 10 20 30 40 50 60 70 80 90 A0 B0 C0 D0 E0 F0
0         sp & - { } ¥ 0
1           / a j A J   1
2         b k s B K S 2
3         c l t C L T 3
4         d m u D M U 4
5         e n v E N V 5
6         f o w F O W 6
7         g p x G P X 7
8         h q y   H Q Y 8
9         i r z   I R Z 9
A         ¢ ! ¦ :          
B         . $ , #          
C         < * % @          
D         ( ) _ '          
E         + ; > =          
F         ? "          

制御文字コードの配置

編集

EBCDICにもASCIIと同様、通信処理の制御や周辺機器の制御などの目的に用いる文字コードが存在する。割り当て範囲は、16進数表現の00hから3Fhの間と0FFh。

  • IBMによるカナ拡張の一例(コードページ:298)と組み合わせた場合のコード表
  00 10 20 30 40 50 60 70 80 90 A0 B0 C0 D0 E0 F0
0 NUL DLE DS (予約) sp & - { } ¥ 0
1 SOH DC1 SOS (予約)   / a j A J   1
2 STX DC2 FS SYN b k s B K S 2
3 ETX DC3 WUS IR c l t C L T 3
4 SEL RES/ENP BYP/INP PP d m u D M U 4
5 HT NL LF TRN e n v E N V 5
6 RNL BS ETB NBS f o w F O W 6
7 DEL POC ESC EOT g p x G P X 7
8 GE CAN SA SBS h q y   H Q Y 8
9 SPS EM SFE IT i r z   I R Z 9
A RPT UBS SM/SW RFF ¢ ! ¦ :          
B VT CU1 CSP CU3 . $ , #          
C FF IFS MFA DC4 < * % @          
D CR IGS ENQ NAK ( ) _ '          
E SO/LS1 IRS ACK (予約) + ; > =          
F SI/LS0 IUS/ITB BEL SUB ? "         EO

ASCIIと共通の機能名称を持つ制御文字コードがある反面、プリンタ等の基本的な改行制御に関わる制御文字コードの個数に差異があるといった違いもある。

  • EBCDIC:CR=Carriage Return、NL=New Line、LF=Line Feed、FF=Form Feed(計4種類)
  • ASCII:CR=Carriage Return、LF=Line Feed、FF=Form Feed(計3種類)

脚注

編集
  1. ^ J.DONOVAN 1972, p. 65.
  2. ^ AS/400用語集
  3. ^ Extended Binary-Coded Decimal Interchange Code (EBCDIC) - IBM Terminology
  4. ^ What is EBCDIC? - wiseGEEK
  5. ^ The EBCDIC character set - Application programming on z/OS
  6. ^ EBCDIC - DB2 10 for z/OS
  7. ^ Appendix A. Encoding Schemes - IBM CDRA
  8. ^ Coded character set identifiers - IBM CDRA
  9. ^ They had 4 staff on the final 21-member ASA X3.2 sub-committee
  10. ^ 付録K.4 EBCDIC/EBCDIKのコード表 - 日立製作所
  11. ^ CCSID 37 - IBM CDRA
  12. ^ CCSID 500 - IBM CDRA
  13. ^ CCSID 5026 - IBM CDRA
  14. ^ CCSID 5035 - IBM CDRA

参考文献

編集
  • J.DONOVAN, JOHN (1972). systems programming. ISBN 0-07-085175-1 

外部リンク

編集

📚 Artikel Terkait di Wikipedia

文字コード

Interchange の略)がアメリカ規格協会(ASA)で制定された。1964年にはIBM社がSystem/360とともにEBCDICという文字コード、4ビットのBCDを8ビットに拡張した文字コードを発表した。 文字エンコーディングに関わる用語は頻繁に誤解・誤用される。下記では、用語の実際の使われ方と意味を紹介する。

ColdFire

ダー提供の翻訳ソフトを使った場合)、オブジェクトコードレベルでは完全な互換ではない。従来の68000系CPUと比較すると、その命令セットの違いは、BCD演算命令など、あまり使われない命令を削除し、他の命令もアドレッシングモードが削減されている点である。これにより単純で低コストな命令デコーダを実現し

パンチカード

カードに開ける丸穴は直径1mmと紙テープの穴より小さい。BCD文字(6ビット)とEBCDIC文字(8ビット)のビット構成をそのままパンチする(バイナリ方式)。BCDの場合は1段32欄で3段という形で使用し、1欄で1文字を表す。EBCDICの場合はBCDでの3段目のうち2行を1段目の6穴に加えて8ビットを

3増し符号

3増し符号(さんましふごう、excess-three code、excess-3、XS-3、3増しコード)は、二進化十進表現 (BCD) の一種で、十進の各桁を、以下のようにその値に3を足した4ビットの2進で表現する方法をいう。 例えば、 123410 = 0100010101100111excess-3

コンピュータ略語一覧

All purpose Symbolic Instruction Code BBS 電子掲示板 (Bulletin Board System) BCC Blind Carbon Copy BCC Borland C Compiler BCD 二進化十進表現 (Binary Coded Decimal)

アンドリュー・タネンバウムとリーナス・トーバルズの議論

http://www.computer.org/portal/site/computer/menuitem.5d61c1d591162e4b0ef1bd108bcd45f3/index.jsp?&pName=computer_level1_article&TheCat=1005&path=computer/h

イオンエンジン

all_Effect_Thruster_Performance_and_Plume_Experiments/links/5acb843f0f7e9bcd5199bacc/Bismuth-Vapor-Hall-Effect-Thruster-Performance-and-Plume-Experiments

タンデムコンピューターズ

処理が必要だった。T/16ではそれをコンパイラに任せている。HP 3000 はCOBOLサポートのためにBCD演算を実装していた。T/16ではBCDと64ビット整数との変換命令のみを用意し、BCDを直接扱わないようにして単純化している。 T/16の各CPUは、TTL論理回路とSRAMを搭載した2枚の基板で構成されており、約0