CPU実験室

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

最小ループ再び

パタンの修正ができたので、信号線をプローブして電源ON!

・・とその前に。

今回ROM(U16)へのデータバスの引き込みを修正しました

 修正前:D24 D23 D21 D20 D19 D18 D17 D16

 修正後:D22 D23 D21 D20 D19 D18 D17 D16

つまりD23は元々つながっていましたがD22D23の順番が入違ってしまってます。これも本来の位置に直すとするとパタン修正が倍になるのでこのままで諦め。そのためROM単体でのデータバス配置もD6 D7 D5 D4 D3 D2 D1 D0となるので書込みデータの変換が必要になります。U16に書かれているデータは現状「60」の1byteですがこれのD7/D6を入れ替えて「A0」に焼き直しておきます。プログラムが大きくなったら簡単な変換ツールを通せばよいでしょう。

これがアドレスバスの入れ違いだと連続したコードがぐちゃぐちゃの順番になり面倒なことになるところでした。

で、ROMを交換して改めて電源ON!

 ch1:アドレスラッチ信号ALE(=/S0)

 ch2:ROMの/CS(=/ROMCS)

 ch3:ROMの/OE(=/MemRd)

 

お・・今度はうまくいきました。ROMから連続して読出しが行われています。電源入り切り、リセットボタン押下でも百発百中この波形になるので「j  $」が連続して実行されているとみてよいでしょう。

ただ周期がなにか微妙。約2.8MHzと読み取れます。CPUに与えているクロックは4.9152MHzですがCPU内蔵のPLLで5逓倍されるようなので内部動作クロックは24.6MHzのようです。これから1周期のクロックサイクルを計算すると8~9クロックということになり、きれいに割り切れませんが合ってるかどうかはあとで調べてみます