2013.1.22
前へ
次へ
ホームページトップへ戻る

復活!CP/M ワンボードマイコンでCP/Mを!
CP/MがTK−80互換のワンボードマイコンの上で復活します
ND80ZVとMYCPU80の上でCP/Mが走ります

[第298回]


●READ DEC回路の動作波形

週末から週初にかけて3日間もホームページの更新をお休みしてしまいました。
風邪で寝込んでいたわけでも、もちろん遊んでいたわけでもありません。
この3〜4日間は、私にとって初体験、未経験のゾーンで苦闘していたのです。
当初は楽勝かと甘い予想をたてていたのですけれど、なかなかそういうわけにはいかないものなのですねえ。
しっかり泥沼にはまって、もがいておりました。

あ。
「おりました」は過去形でありました。
まだ現在進行形の中休みです。
ちょいと手詰まりでタマ切れです。
今追加のタマを手配中です。
それが届きましたら何かがわかってくると思います。

また何をやっているのだ?
あ。
それはとにかくクリアしましてから、ご報告申し上げます。
とにかくまだテキの正体がはっきり見えないものですから。

ということで。
今回は前回説明をいたしましたREAD DEC回路のロジアナ波形をお見せすることにいたします。
泥沼でもがいておりますと、なかなか落ち着いて図面などを準備するだけのゆとりがありません。
つい遅くなってしまいました。

まずは、ロジアナのプローブを接続したラインを前回お見せした回路図上にプロットして示します。


プローブは00〜25を使いました。
回路図上の信号としては00〜07と24、25の10ラインです。
回路図にはありませんがデータバスD0〜D7に08〜15を、またアドレスバスの下位A0〜A7には16〜23を接続しました。
回路の動作が確認できればよいので、A8〜A15にはプローブは接続しませんでした。

これが測定した結果です。

READ DECの操作はSTOPスイッチを押した状態で、READスイッチをONにすることで行われます。
READスイッチからの入力信号によって74HC123から出力されたワンショットパルスによって回路動作がスタートします。
74HC123のQ出力にロジアナのプローブ00を接続し、その立ち上がりを測定開始トリガとしました。

この操作は、そのほかのREAD、READ NEXTなどと同様に、それ以前にSTOPスイッチをONにしてCPUをM1のタイミング(命令OPコード読み込み)でウェイトさせておいた状態で行ないます。

ですからREADスイッチ入力前、つまり74HC123のQ出力(プローブ00)が立ち上がる前からCPUは停止していて、このロジアナ波形では、そのときのアドレス表示は××BEHで、データバスにはメモリのそのアドレスの値28Hが出力されています。

READスイッチをONにすると74HC123のpin13からHパルスが出力されます。
これがプローブ(00)の信号です。
この信号(正確にはpin4からの出力信号)はメインボードに送られて、メモリアクセスの禁止信号になります。
そうしてメモリからの出力を禁止するとともに、同時に(05)をアクティブにすることによってデータバスにコード18Hを出力します。
データバスの信号がメモリの値から18Hに変わる様子がはっきりとわかります。
この18Hがデータバスに乗るまで十分な時間を稼ぐために遅延回路が使ってあります。
その遅延によって、ゆっくりとWAIT信号(01)がOFFになります(8500nsあたりです)。
するとCPUが動き出し、データバスのコード18Hを読み取ってM1が終了します。
ちょうど8600nsのところです。

CPUはコード18Hを解読して、その結果、次にデータバスからジャンプ先を計算するための値を読み込みます。
メモリアドレスはCPUからの出力によって、1バイト進んで××BFHになりますが、そのときデータバスには74HC32のpin11からの出力信号(プローブ06)によってFDHが出力されます。
この命令(JR FDH マシン語コード18FD)は直ちに実行され、アドレスバスはCPUからの出力によって××BDHになります。

このとき回路では2段のFF(74HC73)がMREQ+RD信号をクロック入力(02)にして、その出力を変化させます。
最初のMREQ+RDによって(03)がHになります。
(03)と(04)の出力によって(05)(06)がコントロールされます。

2段のフリップフロップはふつうのREAD操作(アドレスセット+READ)のときには、さらにカウントアップが進みますが、READ DEC操作のときはSTOPスイッチからの入力信号(プローブ07)がLになるため、プローブ04がHになるタイミングで、WAIT信号がふたたびアクティブになって、CPUはアドレス××BDHから次の命令を読み込もうとするところで停止します。

アドレスが一旦+1進んでから、−1されるあたりがなかなかにおもしろい動作だと思います。
もちろんこれはロジアナだからわかることで、なにしろマイクロ秒の動きですから、人間の目ではまったく見ることはできません。

ワンボードマイコンでCP/Mを![第298回]
2013.1.22upload

前へ
次へ
ホームページトップへ戻る