CPU実験室

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

CでLチカ

TMS9995をCでプログラムできる環境ができたので
まずはいつものLEDチカチカです。
$F100番地にメモリマップされたラッチにインクリメントデータを書き込んでいます

イメージ 1

アセンブラでのテスト結果と同様に16ビットカウンタの上位5ビットが出力され、見てわかる速度のチカチカに
なるはずだったのですが、いざ実行させると猛烈な速度で点滅してしまいます。

コンパイル結果を見てみると、実際に74VHC574ラッチに出力しているのは21行目の
   MOV R8、*R9
の部分です

イメージ 2

あ。これって16ビット転送でした。
8ビット幅データバスにあるメモリに16ビット値を書くのですからバスを上位、下位の2回アクセスする訳で
オシロで当たってみると確かに2回書いています
   Ch1:74VHC574のCLK端子
   Ch2:最下位アドレスA15

イメージ 3

これでは上位下位を連続して出力され、LEDが全体的にボーッと光ってしまうのは当然です