ふう、久しぶりにたっぷり休めたような気がします。いや、仕事自体はきつくないです。単に時間が取られて家事以外の他のことができなくなるだけです。今後、本年中は若干の自由時間が使えるようになる予定です。
で、小型の液晶ディスプレイが気になったので、実物を取り寄せることにしました。ついでにマイコンボードも。秋葉原の有名な電子部品の小売店で、通信販売をしているのでそれを利用。
マイコンボードはルネサス社のRX62の一つで、その小売店でボードに仕立てたものです。試作や学習用です。96MHzクロック動作で、ROMが512KB、RAMが96KB、データフラッシュが32KB。データフラッシュは3万回の消去が可能のようです。データシートは2011年のものです。
長らくARMを使っていたので、使うのが楽しみです、…私が使えればですが。とても豪華なCPUというかマイコンで、十分に使いこなすのは大変な気がします。マイコンなので割り込み系が理解できないとアウトです。10msec~100msec毎のタイマ割り込みのプログラミングができれば、後は何とかなりそうです。
白黒128×64ドットのLCDパネルとのやりとりはPIO(普通の1/0の入出力)ですからまだ楽。後述する320×240カラーパネルとのやりとりはSPIと呼ばれるインターフェースで、SDカードと同様です。後者は成功すればその後のプログラミングは普通にできますが、接続成功まではマニュアルをよく読まないといけません。
白黒128×64ドットのLCDパネルは参考資料とやらが2010年のものです。多分、仕入れたロットが終われば販売終了です。LCDのコントロールICは標準的な感じなので、今回の勉強は将来も役立つはずです。IC内のグラフィックメモリに8bit単位で書き込むと、その通り表示されるようです。こちらが今回の実験のメインです。
カラー320×240のユニットは何となく怪しくて、おそらくどこかで大量発注があったものの余りだと思います。まだマニュアルをざっと読んだ程度です。
表示画面の幅は58mmほどで、割と見やすいと思います。1ドット単位でRGBの6bitずつのメモリが入っていて、そこに書き込めば良いのでしょうが、マニュアルが豪華というか複雑というか、よく読んで適切にコマンドを発行しないといけないみたいです。まあなにせ、安かったのでカラー320×240表示の魅力に負けてしまいました。こちらは表示に成功すればラッキーの感じです。
こちらにはついでにSDカードのソケットが付いています。つまり、これと上述のマイコンボードを接続し、さらにPS/2キーボードを繋ぐと8bit時代の感覚のパソコンの出来上がりと、…なるはずです。
こんな感じの装備で無いとtiny BASICはやってられません。前述したように、もう少しハードが豪華になるとPCそのものでプログラミングした方がずっと良いと思います。
今回の実験の当初の設定目標はtiny BASICの考え方でどこまで粘れるか、ということ。そのtiny BASICはなるべく東大版Palo Alto tiny BASICの作りを踏襲します。
後は私が納得できるまで。まず、tiny BASICの変数がA~Zの1文字であるように、GOTO先をラベルとして01~26などと固定しポインタの表を作れば、それだけでかなり高速になるはずです。おそらくプログラムの大きさが1KBを超えるあたりから違いが顕著になるはずです。プログラムが小さければ高速化の工夫はあまり役立ちません。
その次は2分探索表の導入で、変数名やラベルの文字列の自由度がぐっと増すはずです。しかし、こうした拡張路線を続けるとC言語あたりと変わらなくなるので、しだいに意味が無くなって行くと思います。
別方向としては、私がTSS技術と思っている1行コンパイラ方式で、こちらは上述のハードから2万円程度までの装置で役立つ考え方と思っています。マルチタスク化して、イーサネットが使えれば印象的なので、対応できるマイコンボード(等)を探してみます。