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

[OSASK 2883] Re: Fullset EUC



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

Thu, 03 Jan 2002 03:39:18 -0000 の
[OSASK 2870] Re: Fullset EUC
に返信です。

>  実は、G0が1バイト文字でG1が複数バイト文字と指定されたら、こん
>な風に動いてくれることが僕の理想なんです。
>  0x20〜0x7eの文字:これは問題ない。普通にbase0を加える。
>  0x00〜0x1fの文字:これもbase0を加えてしまう。
>  0x7f, 0xffの文字:これもbase0を加えてしまう。
>  0x80〜0xa0の文字:これもbase0を加えてしまう(もちろんシングル
>                    シフトのコードは除く)。

 むむむ……グリフに使わないところ全てグラフィックキャラクタとは……
かなり高い理想ですね(^^;
 GL,GRともに1バイト文字という設定ならわかりますが、GLは1バイトでは
なくマルチバイトなんですよね? どういう環境を想定するのでしょうか?
グラフィックキャラクタがマトモに出てくるのは8ビットマシンだけで、
シフトJISの時代には0x00-0x1f,0x7f,0x80,0xfd-0xffを除いて廃れてしまっ
たのではありませんか?
(そもそもEUCでこれを変換するというのがナゾですが)

 以下はこの疑問を踏まえての考えです。

 グラフィックキャラクタをまっとうに使うなら、GLもGRも1バイト文字の
8ビットマシンっぽい設定がふさわしいと思います。これは本式EUCでも
容易に(と言うより値域チェックの手抜きで)実現可能です。

 しかしシフトJISでも部分的には生き残っているわけで、シンプルEUCの
特権機能としてなら、別に難しくはないとも思います。
「GLでないなら、GRもC0もC1もみーんなまとめて1バイトコードだ♪」
という手抜きによって実現可能です。これならシングルシフト後の扱いに
悩む事はありません。

>  また、たとえば日本語EUCのシングルシフトでG2が呼び出されたあと
>に0x80〜0xa0など「来てはいけない」文字が来てしまったとしても、そ
>こは何事もなかったかのようにbase2を加えるようにして欲しいんです

 うーむ、やはり何を想定するのかナゾナゾです。シングルシフトを使っ
て500文字まで使えるようにする1バイト文字環境というのは聞いたこと
がありません。base0の代わりにbase2を加えるとはそういうことですよね。

>  こんなEUCの規定を超えるような文字についての取り決めはけしから
>んと思うかもしれませんが、グラフィックキャラクターを使ったテキス
>トというものが存在して、そして以上のようなたわいもない配慮をする
>だけでこれらを救えるのですから、安いものです。・・・これは過去の
>資産に救いの手をさしのべるためのものであり、新たにこれを前提にし
>たテキストが増えてほしいというわけではありません。

 けしからんとかは思いませんけど(^^;
 EUCに惚れた理由が「簡単」なので(NASMもそう)。簡単な方へと考えが
流れます。上に書いたようなのなら簡単にできますが。


 で、結局「文字集合大きさビット」はどこへ行っちゃったんでしょうか?
完全に忘れられているようなので、optの上位に適当に振ってみますと、

     96^nビット : ^nビット    : 下位16ビット
00000   0  1  0 : 01 00 01 00 : 00000000 : 00000011
rrrrr  G3 G2 G1   G3 G2 G1 G0

私の考えではこんな感じになります。この場合、各文字集合の大きさは
    G0:94^1  G1:94^2  G2:96^1  G3:94^2
という指示になります(G2はいわゆるLatin-1かな?)。

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