復活!CP/M ワンボードマイコンでCP/Mを!
CP/MがTK−80互換のワンボードマイコンの上で復活します
ND80ZVとMYCPU80の上でCP/Mが走ります!
[第279回]
●アドレスインクリメント回路の動作波形
前回は当初の予定を変更して遅延回路についての説明をしましたのでアドレスインクリメント回路のロジアナ波形についての説明をすることができませんでした。
今回はそのアドレスインクリメント回路の動作を記録したロジアナ波形をお見せしながら説明をすることにいたします。
[第276回]でも書きましたが、ここで使いましたロジアナにつきましては「TTLだけでCPUをつくろう[第374回]」で紹介しておりますのでご参照ください。
超ローコストですぐれもののロジアナ(カメレオンUSB+ロジアナキット)です。
まずはじめに、ロジアナのプローブを接続したラインを、[第277回]でお見せしたアドレスインクリメント回路図にプロットして示します。
今回は00〜23を使いました。
回路図上の信号としては00〜06です。
回路図にはありませんがデータバスD0〜D7に08〜15を、またアドレスバスの下位A0〜A7には16〜23を接続しました。
回路の動作が確認できればよいので、A8〜A15にはプローブは接続しませんでした。
プローブ7および24〜は使っていません。
そのようにして測定したロジアナ波形です。
アドレスインクリメント+メモリリードの操作はREAD NEXTスイッチをONにすることで行われます。
READ NEXTは他方がREADになっている中点復帰式(momentaly。押している間だけ接点が閉じ、離すと元に戻る)のスイッチです。
スイッチレバーを上側に上げるとREADになり、下側に下げるとREAD NEXTになります。
そのスイッチ信号の入力によって74HC123から出力されたワンショットパルスによって回路動作がスタートします。
74HC123のQ出力にロジアナのプローブ00を接続し、その立ち上がりを測定開始トリガとしました。
READ NEXTはその前に、STOPスイッチをONにしてCPUをM1のタイミング(命令OPコード読み込み)でウェイトさせ、さらにREADスイッチの入力によってパネルスイッチのアドレス設定がアドレスLEDの表示に反映されたあとでの使用が前提になっています。
STOP直後にREAD NEXTが使えないわけではありませんが、そのようにする意味はないのでは、と思います。
最初にREADスイッチによってスイッチで指定したアドレスをアドレスLEDに表示したあとでREAD NEXTスイッチを使ったあとは、READ NEXTスイッチを続いて使っていくことができます(READ NEXTスイッチを押すたびにアドレスLEDの表示が+1されていきます)。
ロジアナ波形の説明に戻ります。
READ NEXTスイッチを押す前は、[第276回]でREADスイッチを入力してアドレスバスに89ABHが表示された状態になっています。
そこからのスタートです。
上のロジアナの波形ではアドレスバスの下位8ビットA0〜A7はABHで、データバスD0〜D7にはそのアドレスのメモリ内容2DHが出力されています。
READ NEXTスイッチをONにすると74HC123のpin5からHパルスが出力されます。
これがプローブ(00)の信号です。
この信号(正確にはpin12からの出力信号)はメインボードに送られて、メモリアクセスの禁止信号になります。
そうしてメモリからの出力を禁止するとともに、同時に(04)をアクティブにすることによってデータバスにコード00Hを出力します。
データバスの信号がメモリの値から00に変わる様子がはっきりとわかります。
前回にも説明しましたようにデータバスラインがHからLに変わるときは、LからHへの遷移のような顕著な信号遅延は発生せずほとんど瞬時にHからLに変化します。
しかし(01)のWAIT信号の出力回路にはコードC3H出力のための遅延回路が働いていてそれが今回のコード00Hの挿入時にも働いてしまいますから、WAIT信号がHになるのは(00)の立ち上がりから約8μs後です。
WAIT信号(01)がHになるとCPUが動き出し、データバスのコード00Hを読み取ってOPコード読み取りサイクルM1が終了します。
それはMREQとRDがHになるとHになる(02)の立ち上がりのところです(WAIT信号01がHになったすぐ後で02がHになっています)。
CPUはコード00Hを解読すると、アドレスの出力を+1して、次の命令読み込みサイクルに入り、MREQとM1がLになります。
以上はCPUの動きですが、このとき回路ではMREQとRDがLになることでLになる(02)の立ち下がり信号によって、74HC73の出力(03)がHからLになります。
それと同時にWAIT(01)がアクティブ(L)になって再びCPUが停止します。
これらの動作はロジアナ波形からも理解できますようにほぼ同時に完了します。
しかしメモリからの出力禁止が解除されてデータバスにそのときのメモリデータが出力されるのは、74HC123からの出力パルス(00)がLになる、約3.6ms後です。
このように長い時間の出力パルスになっているのはスイッチのチャタリングによる誤動作を回避するためです。
LED表示の様子です。
アドレスLEDはスイッチの設定値(89ABH)から+1進んだ89ACHを表示しています。
ワンボードマイコンでCP/Mを![第279回]
2012.12.30upload
前へ
次へ
ホームページトップへ戻る