[12] [DFN[TRON 仕様コード]]は、 [[BTRON]]
で使われている[[符号化文字集合]]です。
[13]
符号化方式は特別な符号列によって符号平面を切り替える
[[ISO/IEC 2022]] のような戦略を採用しています。
もっとも [[ISO/IEC 2022]] は情報交換用の[[符号]]ですが、
TRON コードはそうではありません。
各符号平面は16ビットで、[[制御文字]]と同じ[[バイト]]を避けて
4つの領域に分けられています。
[[四分区]]から成る平面を切り替えて使うというアイデアはまさに今はなき
[[DIS 10646]] とそっくりです。
TRON コードは [[文字コード]]の一種ですが、 [[BTRON]]
には[RUBY[[[平文]]][プレイン・テキスト]]に相当する概念が無いので、
[[可変長セグメント]]のようなものが含まれていたりもします。
[WEAK[とはいっても、 [[ISO/IEC 2022]] や [[ISO/IEC 10646]] の体系でも [[ISO/IEC 6429]] の[[制御シーケンス]]などは[[文字コード]]とはいえないものです。]]
[14] TRON コードを設計した[[坂村健]]氏らは、
[[言語]]が異なれば[[文字]]も別に符号化した方がよいと考えていました。
また、 [[JIS]] の[[包摂規準]]や [[UCS]] の
[[CJK統合漢字]]のように異なる[[字形]]を1つの[[符号位置]]にまとめるよりも、
できるだけ細かく分けて符号化して、
検索などで必要に応じて同一視するのが望ましいと考えていました。
その他色々な経緯から、既存の [[JIS]] の[[文字コード]]や [[UCS]]
や[[大漢和辞典]]などの[[文字集合]]をそのまま取り入れたり、
独自に制作した[[GT書体]]の[[文字集合]]を取り入れたりしています。
TRON (コード) の売りの1つは[[外字]]が必要ないこととされていましたが、
[[文字]]とそれ以外の敷居が低い TRON コード ([[TAD]])
では[[画像]]を[[文字]]とほとんど同じように扱えました。
ですから、 TRON コードには外字領域のようなものは用意されていません。
* 符号化方式
[3] 8ビット空間又は16ビット空間を[DFN[[[面]]]]と呼び、
同時に使用する[[文字]]群の1単位とします。
[[面]]は[[言語指定コード]]によって切り替えます。
[4] 8ビットの面は仕様上存在するだけで実際には使われていないそうです。
[5] 16ビットの面は、あらゆる[[ビット組合せ]]を使うのではなく、
[[制御文字]]に相当する部分 ([[CL]] など) を避けています。
[PRE[
上\下 00 20 7E 80 A0 FD FE FF
00 +-------+--------+-+--+-+--------+
01 +-------+ +-+ +-+ |
| |
20 | +--------+ +---------+ |
| |A | |C | |
| | | | | |
| | | | | |
7E | +--------+ +---------+ |
80 | +--------+ +---------+ |
| |B | |D | |
| | | | | |
FD | | | | | |
FE | +--------+ +---------+--+
FF +-------+--------+--+------------+
]PRE]
[6] どこかで聞いたことがある話だと思ったあなた! そう、
[[DIS 10646]] そっくりです。
[WEAK[([[DIS 10646]] は [[CR]] も避けていますが、 TRON は [[CR]] も使っています。)]]
[7]
- '''[CODE(char)[0x0000]]〜[CODE(char)[0x0020]], [CODE(char)[0x007F]], [CODE(char)[0x00A0]]''':
[[制御コード]] (>>8)
- '''[CODE(char)[0x2121]]〜[CODE(char)[0xFDFD]]''' (抜けあり):
[[文字コード]] (>>10)
- '''[CODE(char)[0xFE21]]〜[CODE(char)[0xFE7E]], [CODE(char)[0xFE80]]〜[CODE(char)[0xFEFD]], [CODE(char)[0xFEFE]]''':
[[言語指定コード]]
- '''[CODE(char)[0xFF21]]〜[CODE(char)[0xFF7E]]''':
[[TRON仕様特殊コード]]
- '''[CODE(char)[0xFF80]]〜[CODE(char)[0xFFFE]]''':
[[TRON仕様エスケープ]]
- '''[CODE(char)[0xFFFF]]''': [CODE(charname)[[[EOF]]]]
[10] [DFN[文字コード]]の領域 ([[図形文字]]が割当てられ得る領域)
は16ビットの1面に4つあり、合計で48400符号位置/面あります。
,領域 ,名称 ,符号位置数
,[CODE(char)[0x2121]]〜[CODE(char)[0x7E7E]] ,Aゾーン ,8836 ([CODE(math)[94 × 94]])
,[CODE(char)[0x8021]]〜[CODE(char)[0xFD7E]] ,Bゾーン ,11844 ([CODE(math)[126 × 94]])
,[CODE(char)[0x2180]]〜[CODE(char)[0x7EFD]] ,Cゾーン ,11844 ([CODE(math)[94 × 126]])
,[CODE(char)[0x8080]]〜[CODE(char)[0xFDFD]] ,Dゾーン ,15876 ([CODE(math)[126 × 126]])
[[#comment]]
* 制御コード
[8] 16ビットの[[面]]の [CODE(char)[0x0000]]〜[CODE(char)[0x0020]],
[CODE(char)[0x007F]], [CODE(char)[0x00A0]]
は[DFN[制御コード]]とされ、次のものが定義されています。
,符号位置 ,名前 ,説明
,[CODE(char)[0x0000]] ,無効 ,文字列終端。
,[CODE(char)[0x0009]] ,"タブ ([CODE(charname)[[[HT]]]], [CODE(charname)[[[TAB]]]])" ,次の[[タブ位置]]または[[フィールド]]への[[遷移]]。[[タブ書式]]や[[フィールド書式]]が未設定なら無視。
,[CODE(char)[0x000A]] ,改段落 ([CODE(charname)[[[NL]]]]) ,[[改行]]または[[改段落]]。
,[CODE(char)[0x000B]] ,改コラム ,[[改コラム]]。[[コラム指定]]されていないなら改ページと同じ。
,[CODE(char)[0x000C]] ,改ページ ,[[改頁]]。[[図形]]内埋込み[[文章データ]]なら[[改行]]と同じ。
,[CODE(char)[0x000D]] ,改行 ,[[フィールド]]内または[[段落]]内の[[改行]]。
,[CODE(char)[0x0020]] ,"セパレータ, プロポーショナル[CODE(charname)[[[SP]]]] (英語モード)" ,[[語]]や[[文節]]の区切れ。
,[CODE(char)[0x00A0]] ,英字固定ピッチ[CODE(charname)[[[SP]]]] (英語モード)
以上の8つを使用し、残りの[[符号位置]]は使用しません
[SRC[BTRON3]]。
[11]
*参考文献
-[BTRON3] [CITE[BTRON3仕様書 Ver 3.20.00]], [[TRON協会]], 1999年,
。
[[TRONコード]]に関しては
を参照。[[準TAD]] に関しては付録Bを参照。
-[BTRON-DIFF] [CITE[超漢字(B-right/V R2)仕様書]]
[CSECTION[第1編 BTRON3 仕様書に対する制限・補足]], [[Personal Media Corporation]],
2000年10月20日,
。
[[TRONコード]]に関しては
を参照。
-[BRV-R4] [CITE[超漢字(B-right/V R4)仕様書]], 2001年,
。
[[TRONコード]]に関しては
[CITE[第1編 BTRON3 仕様書に対する制限・補足]]
を参照。
-[GT] 。
-[GT-CHO2] [CITE[GT書体セット・利用方法【BTRON仕様OS編】]],
2000年12月13日, 。
-[R4.100B] [CITE[超漢字4 R4.100B バージョンアップ版]], 2003年9月17日,
。
[[#comment]]
* メモ
- [1] ''TRON文字収録センター''
- [2] [[iモード絵文字]]で間違いの修正と称して非互換変更が行われたようです。使ってた人は困ってるみたい。[[文字コード]]の連中は懲りないなあ。