インクリメントはちょっと置いといて別の方法でLチカを試みてみます。
これも単純なんですがローテーション命令です
初期値0xFEをロード・・・パラレルLEDは'0'になっているビットが点灯するため・・・しておきそれを左ローテーションさせるだけですがこれは難なくうまくいきます。
約55μsで一巡する超高速ナイトライダーで見た目LEDは全ビット点灯しているように見えますがリセットボタンを押すと8個のLEDのどれか1つが点灯したまま止まるので、大げさすぎるハードウェアによる「電子サイコロ」としてお正月に活用できますw
ここで欲を出して目で見てわかるくらいの速度にしようとウェイトルーチンを挿入すると・・・
ACB命令(Add, Compare and Branch)はZ80でいうとDJNZ命令みたいなもので任意のループを作れるはずですが、やはり減算処理がうまくいってないためかwaitから抜け出せなくなってしまいます。
CPUが単に動かないというならハードウェア的な接続が誤っているとか壊れているということになりますがCPU内部機能がおかしい、論理演算はOKだが算術演算だけNGというのは非常に考えにくいです。CPU自体がニセモノとかハードバグがFIXしてないエンジニアリングサンプルってこともないでしょう
やはり自分の使い方がまちがっているはずなのですが、解決できずもやもやしたまま年を越します