[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[OSASK 2869] Re: Fullset EUC



Hidemi KAWAI さん、こんにちは。I.Tak. です。

Wed, 02 Jan 2002 08:17:34 -0000 の
[OSASK 2863] Re: Fullset EUC
に返信です。

>  そこで、素朴な疑問をいくつか書かせてください。I.Tak.さんのルー
>チンでは、G0とG1とG3のベースしか指定できていません。G2のベースは
>指定できるようにしておかなくていいんですか?・・・いや、今はG2を
>使うのは日本語だけだから大丈夫だというのは分かるんですが、それは
>「フルセット」と呼ぶには少々甘いような気がしませんか?

 むむ、そのとおりです。しまった……

>  僕の認識では、EUCというのは確かに「GLにG0、GRにG1を呼び出して
>おき、シングルシフトでGRにG2かG3を一文字だけ呼び出すという仕様」
>なんですが、一般的にはG0は94文字集合であるという保証はありません
>し、G1が94x94の文字集合であるという保証もありません。

 G1はまさにそのとおりですが、G0は94^n集合だけだそうです。0x20の
空白が使えない、というのが主な理由になるようです。
 また、シングルシフトはLとRを区別しないのが今の仕様だそうですが、
私の計算はGR専用です。むむう。

>  したがって僕の考える一般的なEUCのデコーダーのオプションは、
>・G0、G1、G2、G3のベース
>・それぞれが、94(=128)、94x94、94x94x94、94x94x94x94のどの集合
>  であるのかを指定するためのフラグのようなもの(まあ、さすがに
>  4バイト符号は使わないと思いますが・・・笑)。

 はい、それで十分だと思います。ちなみに現在96^n (n>=2)集合はあ
りません。
 ところで94(or 96)文字集合にはやっぱり128文字分の空間を与えるん
ですか。これってGL:GR=JIS X 0201みたいな特殊な場合にしか効かない
配置じゃありませんか?(これだけ最適化とは(^^;)

>  これらは仕様であって、利用されないと思われるうちは、未実装であ
>ってかまいません。

 現実に即した最適化というわけですね。

>  たとえば、こんな仕様はどうでしょう?
>    cmd(0x00ec), opt, len, ptr_src, ptr_dst, base0, base1, base2, base3
>ここでoptの下位16bitを0x0003にさせることにして、これはUniversal
>EUCを意味するということにします(0x0002はSimple EUC)。そして、

 下位二ビットとは……いつかどこかの他人の空似(^^;;;

 シンプルEUCが取り分けてあるのは最適化のためなんでしょうか?
確かにレジスタに余裕ができますけど。
    下位二ビット=G2使用ビット:G3使用ビット
みたいな意味ではないのでしょうか。

>optの上位16bitに以下の意味を与えます。
>    rrrrrrrrddccbbaa
>    r:リザーブビット
>    aa, bb, cc, dd:それぞれG0, G1, G2, G3が何バイト文字であるかを
>                   表している。00は1バイト文字、01は2バイト文字、
>                   10は3バイト文字。11はリザーブ。

 上に出てきた94or96ビットが居ないなあ(^^;

>・・・こういう仕様であれば、僕はすぐに組み込みます(とりあえずdd
>ccbbaa == 01_00_01_00固定であっても)。ルーチンがSJISよりもはる
>かに大きくなったとしても、です。

 メモリアクセスと分岐は若干増えますが、シフトJISよりは簡潔になると
思いますよ。


>> ちなみにKS C 5601は番号不足で1997年にKS X 1001になったそうです。
>  KS C 5601の後ろの空きに文字を割り当てたのかな???

 あ、これは JIS C → JIS X と同じ移転があったということです。
それから、Unicode2.0ではすでにハングルの全文字収録および移転ができて
いるそうです。完成形ハングルを20%しか含まない文字集合の韓国標準化には
反対があったとか、あちらでも問題は多いようで。

>  ・・・とりあえず上の仕様にしてoptを0x00440003に限定すれば、I.T
>ak.さんのルーチンはほとんどそのまま使えそうです。それでよければ
>OSASK ver.2.1に組み込みましょうか?

 せっかく一ヶ月もあるし、もっといじります。

------------------------------------------------------------
I.Tak. <msy !Atmark! catvmics.ne.jp>
http://home1.catvmics.ne.jp/~msy/takhome.htm