FUJITSU FM-8のサブシステムでフリーランしない原因を調べる

Last Updated on 2015年6月26日 by kabekin

サブシステムのシグネチャを収集する前にM196(SC28)を取り付けると正常にフリーランしなくなる
現象が気になったので調べてみました。

M196(SC28)はMB7132E SCHOTTKY ROMのようでSL11-11のシールがあります。
DSC01021
こいつを外すと6809MPUのフリーランは正常に行われアドレスラインのシグネチャは正常にデータ取りできます。

しかしM169を取り付けると、こんな感じで出力波形が乱れてHP5006AのUNSTABLEランプが点灯します。DSC01016

アドレスバスはMPUから一方的に出力されるだけだと思いながら、M169がアドレスラインをプルアップしてしまうとも考えにくいのでMPUの各ピンをオシロで調べてみると、
なんとFM-8のサブシステムMPUは周期的(20ms)にNMI割込みが発生しておりました^^;;;
DSC01046
そういえば何かの書籍でFM-8のサブシステムは周期的に割込みがかかっているということは読んだ記憶があります。

と、いうわけで6809の2番ピンをプルアップ
DSC01047
(3ピン,4ピンはリードクリップが足りないので割込みがきていないことを確認してそのまに・・・)
NMI割込みを無効にしてM169を取り付けてみると、
あれっ!改善なし・・・ NGです。

そこでBA,BS出力をオシロで確認したところ、M169なしでは常に0,0ですがM169を付けると1,1にもなります。
DSC01039
1,1はHALTということなので、#HALT入力を当たってみるとHALTが来ています(TP9がサブMPUのHALTのようです)
DSC01043

40番ピンのHALTもプルアップして電源ON!
DSC01049
M169ありでも正常にフリーランしました^^

アプリケーションノートには割込みをプルアップすることとありましたが、ここで外乱があるとHALTもマスクしないとダメですね。

と、いうわけで割込み3種類+HALTをプルアップしたフリーランテスト用6809 Ver.2です。
DSC01053
HALTや割込みピンは直接ハンダ付けしてしまいました。データバスはオペコードが変更できるようにソケットを残しています。

これをサブシステムMPUに取り付けて動作確認してみます。
DSC01048
アドレス発生OK!、BA,BSは0のまま、A1のシグネチャーはFFFFです。

やっと動作OKになりました(^^)

おおちゃくせずに先にプルアップしておけばよかったといった感じでしょうか^^;;;
これならメイン側MPUに挿してもフリーランするのではないか、

というわけで次回メイン側に装着してフリーランテストを行います

4件のコメント

    1. 情報ありがとうございます^^
      Wikipediaのページを確認してみました。
      アドレスバスがカウンタで動作する機能のようでやっていることは同じ感じですね。
      現状の方法ではデータバスを開放しないといけないので不便ですが、データバスを開放せずに
      HCF命令だけでハードを弄らずにアドレスバスがカウントアップしてくれると便利そうです。
      フリーランの資料も少ないようですがHCF命令の資料も少ないですね。
      私の持っている日本語の書籍では発見できませんでした^^;;;
      とりあえず今の仕組みでFM-8のメイン側でフリーランできるように方法を調べ終えたらHCF命令も調べてみたいと思います。

  1. 最初にこのURLも書いておけば良かったですね、すいません。
    HCF命令の存在については、元祖wikiにもはっきり記載されています。
    https://en.wikipedia.org/wiki/Motorola_6809
    あと、下記ページにリンクされてる、
    https://sites.google.com/a/aaronwolfe.com/cococoding/home/docs
    6x09_Instruction_Sets.pdf
    というドキュメントの末尾に 6809 Undefined Opcode Behavior という項で
    HCF命令が解説されています。これによれば、$14, $15 以外に $CD も
    HCF命令のようです。OS-9では$CDがモジュールヘッダに使われてる
    のでちょっと危険に思えてきました。もっと安全な未定義コードを使えば
    いいのに。

    1. 関連情報のリンクどうもありがとうございます^^
      6x09_Instruction_Sets.pdf は資料までたどり着いていたのですが巻末情報があったとは・・・
      気付きませんでした^^
      6809の未定義命令って思ったよりも日本語の情報が少ないようですね。
      I/O誌で6809未定義命令の記事を見かけたことがあったので見なおしてみましたがHALTと書かれているようです。
      実行すると応答が無くなると書かれているので、ロジアナやSAを接続して実行してみたいと思います。
      現状の方法でメイン側も無事フリーランできるように攻略できましたので、
      どこかから足のピンを曲げていない6809を探してきてFM-8を復旧してからHCF命令を試してみます

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください