なる研電子工作小品集>漢字ROM(仮)

漢字ROM(仮)

漢字表示 グラフィック表示デバイスが手に入りまして、これに文字列を表示してやるぞってことで。 漢字ROMとか日本語ROMとか呼ばれるものを作ってみました。 これは蛍光表示管ですが、秋月で売ってるグラフィックLCDとかマトリクスLEDにも応用できますよ〜(投)。

●文字コード

EUC,JIS,などいろいろありますが、2バイト固定なのとwindowsが標準にしてるので扱いやすいので、ここではShift-JISを使いました。

ANKコード 2バイトというと、0x0000から0xFFFFまであるのですが漢字はこの1/8程しかありません。スカスカです。 ROMを効率的に(略

Shift-JISのコードは、2バイトで構成されてまして、 上位バイトはANKコード(右表)の未定義領域[0x80,0x9f],[0xE0,0xFF]になるように、 下位バイトはANKコードの制御文字以外のコード[0x40,0x7E],[0x80,0xFF]になるように、 なってます。

windowsでは記号とJIS第一水準漢字JIS第二水準漢字、のほかに、 NEC特殊文字NEC選定IBM拡張文字IBM拡張文字、もShift-JISのコード上に配置されています。 0x0000 から 0xffff までのバイナリファイルをみると分布が大体分ります。 (?_?)つ わかんねーよ


Shift-JISコード ちょっとイイカゲンですが、Shift-JISコードへの各文字群の分布は右のようになっとります。 これをもとにShift-JISを対応する文字のビットマップの先頭アドレスへ変換する関数とその逆関数を作ります。
灰色の部分をを削ったバイナリファイル

これだけだと半角文字の表示ができないので、0x85??に半角ANKを割り当てました。

●ビットマップフォントの作成

windowsに登録されているフォントをビットマップフォントに変換するプログラム書きました。 フォント名と幅高を入力するとfont.datを吐きます。 仕組みは、windowsに描画させてPrintScreenしてるだけです。 コンパイラはActiveBASICの古いバージョンです。

●シリアル漢字ROM

32x32dot文字の場合、font.datは32x32x8640/8=1080k[Byte]もあるので並のEEPROMには収まりません。 ここで最近大量に購入した4MB MMCの出番です。安い!美味い!早い!です。 基盤に半田付けしてしまってもかまいませんが、抜き差しできると「交換してフォントが変わる(おぉぉぉ!!)」ということができますので、ソケットを使いました。

今回はMMCが3.3Vなのにマイコンは5Vなのでレベル変換をしないといけません。

テスタで測ったら、案の定3.9Vも出てまして、4.7kΩの抵抗を負荷にしたら3.3Vになりました。 【描きかけ です】

●関連リンク

なる研>電子工作小品集>MMCの使い方
なる研>日記>カテゴリ>漢字ROMな日々

超こだはりの郵便局巡りシフトJISの「拡張文字」
森山 将之のホームページWindows の文字セット
あずきフォント
ことり文字フォント
「マンガ パソコン通信のRS-232入門」日刊工業新聞社

<<電子工作小品集へ戻る

Since 2005/09/09
LastUpdated 2005/09/09
Copyright 2005 Naru
 今日  昨日