Sim's blog

電子工作はじめてみました

FR60付録基板 OSDフォントのファイルフォーマット(訂正あり)

2008-04-02 23:03:29 | その他のマイコン
FR60付録基板 _fr.hのバージョンの続きになります。

半分メモかわりです。

MB91FB310Aのディスプレイ出力コントローラOSDCは、基本的に文字の出力ができるけど、グラフィック出力みたく点を打ったりはできません。ただし、フォントROMに好きな文字の形を設定できるので、グラフィック文字を並べることで簡易的にグラフィックを作ることができます。文字のサイズは最大24×32ドットで、フォントROMには1792文字(文字コード000-6ff)登録できます。一画面の最大の文字数は42×16文字です。

小さいサイズのフォントを作ることはできますが、24×32の左上の部分が使われるだけで、1792文字を超える登録ができるわけではありません。
この1792文字ですが、モノクロの場合の文字数です。グラフィック文字というかドットに色がつく場合にはモノクロ4文字分をたばねて1文字にします。したがってグラフィック文字だけを使うと1792の1/4の448文字になります。意外と少ないですが、448は28×16なのでいっぱいに使うと672×512ドット(672 = 28×24、512 = 16×32)のグラフィック画面を表示できます。ただし、使える色は512色(RGB各3bit)中の16色だけです。昔のPC-8801とかそういうノリです。もっともフォントROMというかフラッシュに書いているので、簡単に書き換えるというわけにはいかないです。

フォントは富士通マイクロエレクトロニクスが提供しているPedWinというソフトで作れますが、1ドットずつ作るのはたいへんそうです。

ファイルフォーマットに関する情報はPedWinのヘルプファイルの付録の章の「MB91310(OSDC)Flash書き込み用形式」に載っています。24×32を3バイト×32と思って、左側の1バイトは0x200000番地から右側の2バイトを0x000000番地から書き込みます。バイトオーダーはリトルエンディアンです。詳しくはヘルプファイルを見てください。以上のメモリイメージをモトローラSフォーマットに変換したものがフォントファイル(.hex)になっています。
4/3 訂正 pcm1723さんにファイルフォーマットの説明が間違っていることを教えていただきました。見る場所がそもそも間違っていました。「A.4.15 MB91310(OSDC)Flash CPU用形式」の説明を見てください。

1文字あたり128バイト使用します。128バイトのうち32バイトはダミーの0xffです。グラフィック文字だと4文字なので1文字あたり512バイト(=128×4)になります。
4/3 訂正 1文字あたり256バイトしようします。256バイトのうち160バイトはダミーの0xffです。グラフィック文字だと4文字なので1文字あたり1024バイト(=256×4)になります。

グラフィック文字の色の構成ですが、モノクロで考えたときの一文字目の左上の4ビットが色コードになります。例えばグラフィックの一番左上が13番の色コードだとすると、モノクロでは、13を2進に直した1011になります。以下、4文字分の1ライン目を使ってグラフィック文字の1ライン目を作り、2ライン目を4つ使ってグラフィック文字の2ライン目を作っています。