2014.8.20

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

MYCPU80でCP/Mを!
超巨大基板の8080互換HCMOS・CPUでCP/Mを走らせてしまおうという、なんとも狂気なプロジェクトです!


[第18回]


●カメレオンロジアナを利用する

お客様から修理のためお預かりしたMYCPU80をZB28KのBASICを利用して自動ステップで動かしてそのログを解析したところ誤動作の原因を突き止めることができました。
ところがその原因箇所を修理して、念のために動作テストをしていたところ、まだときどき誤動作をします。
それでふたたびZB28Kを接続して自動STEP動作をさせてみたのですが、いくら長時間実行させてみても誤動作が発生しません。
どうやらSTEP動作では誤動作が発生しないようです。
そうなるとMYCPU80をリアルタイムで実行させておいて、それを横からモニタしてアドレスバス、データバス、システム制御信号を記録することを考えなくてはなりません。
そこで「CPLD+SIMMを使ってUSBプロトコルの解析を」で利用したカメレオンロジアナを利用することにしました。
そのときはもっと大量のデータを高速で記録する必要がありましたから一時的な記録媒体としてSIMMを使いましたが、今回は必要なら途中でMYCPU80を一時停止させることもできますから、カメレオンロジアナに実装されているメモリを使うことにします。
下はカメレオンロジアナの写真です。

カメレオンロジアナはCPLD基板に128K×4バイトの同期SRAM(CY7C1347G)を取り付けて2枚重ねで使います。
上の写真で上側に見えているのがSRAM基板でCPLD基板は下に隠れています。
CY7C1347Gについては「CPLD+SIMMを使ってUSBプロトコルの解析を[第8回]」で簡単に説明をしています。
一度に4バイトのデータを記録できますから、データバス8ビットとアドレスバス16ビットともうあと残りの8ビットにシステム制御信号を記録することができます。
データ記録のためのトリガ信号としてはMEMRD、MEMWR、IORD、IOWRを使うことにしました。

MYCPU80のCPUクロックは2MHzです。
MEMRD、MEMWR、IORD、IOWRごとにデータを記録することにした場合、その間隔は4〜6クロック程度になります。
計算を簡単にするため、仮に5クロックとすればデータの記録は0.5μS×5=2.5μSに1回行なうことになります。
SRAMには128K組のデータを記録できますから2.5μS×128K=320mSでメモリが一杯になってしまいます。
そこでメモリが一杯になったら全データをZB28Kに送って、ZB28KはBASICの自動STEPプログラムと同じ要領で受け取ったデータを画面に表示することで最終的にログファイルの形でWindowsマシンのハードディスクに蓄えます。
その間MYCPU80は一時停止状態にさせておきます。
ちょうどMYCPU80のシステム制御信号としてBUSRQがコネクタに配置されていますから、それを利用して一時停止させることにしました。

下がMYCPU80とカメレオンロジアナとZB28Kの接続を略図で示したものです。

ZB28KはWindowsマシンとの接続にプリンタポート(パラレルポート)かUSBのいずれでも接続できますが、私は今だにこの手の作業ではWindows98SEを使っていますので、使い勝手のよいパラレルポートを使ってWindowsマシンに接続することにします。

説明の途中ですが、本日は時間がなくなってしまいました。
この続きは次回にいたします。

MYCPU80でCP/Mを![第18回]
2014.8.20upload

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