CPU実験室

誰も見向きもしない古いCPUをいじって動かしてみようというプロジェクトです

7219コントロール

CでLEDディスプレイコントローラMAX7219のドライバ部分を記述してみました。

3線シリアルのDIN、CLK、LOADにつながった各ピンをパタパタON/OFFするだけなのでCで書くまでもないのですが。しかも少しでも速くなるかと思ってインラインアセンブラにしてみました。高級言語には役不足的な処理です。

 

f:id:O3I:20201113222234j:plain

 

これをコンパイルすると、ほぼそのまま無駄のないコードを吐きます。ちょっといいところはビット操作SET/RESのディストネーションに直接アドレスを指定できるところでオリジナルのZ80ではできなかったアドレッシングのはずです。さらに符号拡張して1バイトで指定する「0ページアドレッシング」になってました。

 

f:id:O3I:20201113222250j:plain

これらを使ってMAX7219に制御ワードをおくるルーチンを作成。ボード上で正常動作しました。

 

f:id:O3I:20201113222320j:plain