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

[OSASK 2331] Re: JPN16.FNT from Shinonome font.



  こんにちは、川合です。


Koyanagi Masaaki さんは 2001/10/17 13:32:12 の「[OSASK 2329] Re:
 JPN16.FNT from Shinonome font.」で書きました:

>IBM ではなくて MS拡張文字の間違いです。すみません。

  いや、実はIBM拡張文字かもしれません。僕は勝手にMSだと思ったの
ですが、証拠はありませんし(笑)。

>半角カタカナを
>shinonome-0.9.5-src/16/hankaku/font_src_diff.bit
>から変換して追加しました。JPN16.FNT と変換のソースファイルを
>http://homepage1.nifty.com/dreaming/osask/jpn16s1.lzh
>に置きました。

  ありがとうございます。おお、ちゃんと出ています。これでフォント
ファイルのバンドルは問題なくできます。本当に助かりました。

>半角カタカナの対応するコード位置が良く分からないのですが
>
>/* +0x09ca0〜0x0a09f : 半角カタカナ 64文字 [2e40-2e5f] */
>
>なので半角カタカナのコード 0xa0 が 0x2e40 に対応すると思ったら
>実際は 0x1f だけずれているようです。
>
>        if (code >= 0xa0 && code <= 0xff) {/* hankaku katakana */
>          code += 0x2e40 - 0xa0 + 0x1f;/* 0x1f is offset ??? */
>        }

  げっ、本当ですか?・・・バグかなあ・・・参ったなあ。

  ・・・と思ったら、僕のバグじゃないような気がしてきました。

static unsigned int get_offset_hankaku(unsigned int jiscode)
{
  unsigned int high, low, result;

  high = jiscode >> 8;
  low = jiscode & 0xff;
  result = (high - 0x21) * 0xbc0 + (low - 0x21) * 0x10;

  return result;
}

  この関数で0x2e40をコンバートすると、0x09ca0にならない気がしま
す。そのせいではないでしょうか?

  それと、半角カタカナは64文字しかありませんので、

    if (code >= 0xa0 && code <= 0xdf) {/* hankaku katakana */

の方がいいかもしれません(問題はなさそうなので今のままでかまいま
せんが)。

---

  さて僕はこのフォントをバンドルするために、メーリングリストに入
ってきます。PDSなので黙って使っても問題はないのでしょうが、お礼
は言いたいですし、ついでにOSASKの紹介もできますから(笑)。

  もしかして、NEC拡張文字フォントも用意しています、なんてことは
ないかなあ・・・機会があったら聞いてみます。


  それでは。

--
    川合 秀実(KAWAI Hidemi)
川合堂社長 / OSASK計画総指揮 / カーネル開発班
E-mail:kawai !Atmark! imasy.org
Homepage http://www.imasy.org/~kawai/