前の気圧計の時の初期化ルーチンをそっくり持ち込んで再度テストする。12X6のポイントの小さいフォントだが、画面に文字が出た。これからまた一仕事である。この文字フォントを右に90°傾けて縦置きにしなければなならない。縦置きフォントが出た。文字が出て画面は一気にそれらしくなる(1/6/2015)文字フォントの回転に頭を抱えている。最初、素直にフォントグリフを縦にスキャンするルーチンを擬似コーディングし、実際のソースをみながら開発に入ったところ、描画ルーチンの実装で重大な思い違いを発見して愕然となった。ねむいさんの描画ルーチンは色々なところで高速化が図られており、文字フォントはひとつづつのピクセルを描画するのではなく、文字フォント枠(レクタングル)をあらかじめ描画ドライバーの原始関数で設定してから、そこへ連続したピクセルデータを送って、ドットが流し込まれる方式がとられている。画像処理ドライバーで良く使われる高速化手段である。この方式ではスキャンする方向が決まっており(もちろんコマンドで方向は換えられるが、原始関数を駆使する必要あり)、今のままでは、フォントグリフを縦に並べることは出来ない。文字を作ってから、縦のドットを横にスキャンするような形でドットを拾って送り込む必要がある。うーむ、単純に考えていたが、文字を回転するのはえらく難しくなってきた。文字が画面上縦になるのを我慢すれば、このまま出しても良いが、やっぱりみっともない。考えていたが、ここまできて辞めるわけにはいかない。速度は遅くなるかもしれないが、2次元配列にフォントを流し込んでから、これをさらに縦横に転置するロジックを作ることにする。コーディングしてみると意外に捗った。既存のルーチンをうまく活用してFONTX2形式のフォントを、fontdata[x][y]などの二次元配列に流し込み、このxとyを逆さまにしてやれば良いだけである。ついでに既存のフォント出力も、この方式に替え、パラメーターでフォントの回転が出来る関数をでっちあげた。意気揚々とテストに入る。ノーマルの出力(画面の赤)。うむ、問題なく表示された。次は、問題の回転出力である。うーむ、ゴミが出るだけだ。あ、配列番号が間違っている。配列の番号は0からスタートするので最後からスキャンするときは、1少ない数値から戻らないといけない。最後も0を含める必要がある。ABはオリジナル関数から)。ここまで来れば実際の心電波形に数値を入れてみよう。