cosmac前回の記事ではCOSMACで音をだしてみましたが、次はCOSMACで文字を表示してみます。今回製作したCPU基板には4bitのバスがでていますので、これをHD44780インターフェース準拠のLCDに接続してみました。回路図は以下のようになります。ついでにユーザスイッチとリセットスイッチもつけました。オリジナルのCPU回路ではTPB信号がコネクタに出力されていないので、空きピンを使ってジャンパー線で接続することにします。ブレッドボードでプロトタイプを製作しました。この写真ではすでに表示プログラムが動いています。LCDの表示プログラムは次のようになりました。.ENプログラムは0000から004Dですので、77バイトしかないのですが、これをトグルスイッチで入力するのは結構疲れます。プログラムが間違っているのか、入力ミスなのかという問題切り分けにも一苦労です。そこで、このプログラムには同じような処理がいくつもあるので、それをサブルーチンにすれば少しはコードが短くなるかなと試してみました。SEP命令でプログラムカウンタとなるレジスタをR7またはR8に切り替えることでそれぞれのサブルーチンにジャンプします。サブルーチンから戻る場合はジャンプ前に使っていたR3レジスタをプログラムカウンタに設定することで元にもどります。3を置いている理由は、R7やR8レジスタをサブルーチンのエントリアドレスに再設定するためのテクニックです。サブルーチンを使ったプログラムは次のようになりました。.ENプログラムの大きさは0000から004Bとなったので2バイトは短くできましたが、結局サブルーチン側である程度のコードが必要なためこの大きさでは効果がでませんでした。現在のCPUには実装されているスタックは便利だなと実感できました。COSMACにLCDを接続することができました。これまで製作したミニ電子オルガンとLCDの専用基板を作って、Arduinoのように積み重ねて利用できるようにしてみます。次の記事Aboutデジモノが好きなかんぱぱがいろいろ実験しているサイトです。