現在地

MC68kボード復活作戦(その2)


テーマ:

カテゴリー:

ROMが用意できたのでいよいよハードウェアを動かしていきます。

まず電源とシリアルの線が失われてしまっているので何とかしなくてはいけません。このボードは思い出も多いのであまり弄くりたくないのと、本数も少ないので基板から直接リード線で引き出してACアダプタ用のDCジャックとD-Sub 9ピンのコネクタをつけました。MAX232付近に必要な信号がそろっているのでそこから引き出します。

電源の極性を十分確認してから電源を投入してみます。

HD468A50Pの送受信クロックは153.6kHzだったのでボーレートは9600bpsと思われます。ターミナルも準備してリセットを何度か押してみますが何も出てきません。

以前書いたと思いますがこのボードのリセット回路は腐っていて、リセット解除直後にDouble Bus Faultを起こして止まってしまうことが多いのです。一旦動き始めれば安定していた(数日間動かしていても問題ない)のでそのまま使っていました。

Double Bus FaultになればHALTがアサート(L)になりっ放しになります。確認してみると数回に1回はHになっていました。これは記憶している当時の状況と一致しています。

MC68000/68010は奇数番地に対してワードやロングワードのアクセスを行なうとアドレスエラー例外が発生します。またメモリが実装されていないアドレスへのアクセスなどでバスエラー例外を発生させることができます。このボードでもアドレスデコードの一部省略によるイメージがあるとはいえ、メモリ空間の80%以上はバスエラーを発生します。

そしてこの例外処理中に再度これらの例外が発生した場合がDouble Bus Faultです。

スタックポインタや例外ベクタに異常なアドレスがあると容易に発生するので、これが発生しない時にはプログラムはそれなりに実行されていることが期待できます。

ROMのH/Lが逆といった根本的な間違いは無いと言えるでしょう。

プログラムが実行できているらしいということはデバッグ用に修正してみたくなるだろうということで、ハードウェアの確認と平行して再アセンブルする準備も始めました。

ハードウェアの方で気になるのはメモリ増設と2枚目基板の追加です。

ROMに書いているモニタなどのソフトウェアはMC68kボード (第2期工事編)くらいまで使用していたものです。その後MC68kボード (第3期工事編)で2枚目基板を追加してRAMが128kBになってからはCP/M-68Kを使っていたはずなのでこのモニタは変更していない可能性が高いのです。

この2枚目を追加した際にアドレスデコーダ系を弄っているのが少し心配です。

また、MC68kボード (第5期工事編)でモニタが使っている0番地付近がDRAMになっていることも気になります。

何はともあれシリアルが動いてくれないといろいろやりづらいので、HD468A50P ACIAの周辺を見ていくことにします。

まずCSをみると0.200MHzで安定していました。40クロック周期ということは送信あるいは受信のステータスチェックのループかもしれません。もっとシンプルなプロセッサならこのクロック数からどこのループか特定できるかもしれませんが、MC68000の命令のクロック数はややこしいのでやりたくありません。

リセット時にはオープニングメッセージを出力するはずなのでTxDataも見てみましたが何も出てきません。

先日別なボードでZ80 SIO/0がいつの間にか死んでいた件もあったので、ACIAを交換してみましたが変化はありませんでした。

(つづく)


コメントを追加

Plain text

  • HTMLタグは利用できません。
  • ウェブページアドレスとメールアドレスは、自動的にハイパーリンクに変換されます。
  • 行と段落は自動的に折り返されます。
※ コメントは原則公開です。個別のご相談などは「ご意見・ご要望」からお願いします。