TK80/BSの
フロッピ、シンセシステムを復活させたい〜
その6
フロッピを2ドライブに〜
2017年
1月14日
FD−1165S(B)/Aともドライブに載っているVFOでなぜか正常にリードできない(ドライブのVFO部が壊れている、ドライブの設定が合っていないなどの可能性もあります)ので、外部データセパレータを使ってみます。友人SがebayからFDC9516Bを購入するというので、便乗して購入してもらいました。昔、友人SがYD−74CとMB8877の組み合わせで使っていたデータセパレータです。

シンセサイザ(ディレイド・モジュレータ)用の部品が来ました。機構関係はモノタロウから、電気部品は秋月からの購入しました。


こちらはヤフオクのトグルスイッチ。

FD−1165のヘッドロードのロータリソレノイドのダンパが溶けて無くなっていて、ヘッドロード時にうるさいので、スポンジゴムを薄く加工して貼り付けました。戻り側も付けると、もっと静かになると思います。

FDC基板にFDC9516Bを載せます。VFOSYNC信号用に増設した7416の代りに載せて配線を変更します。FDC9516Bは4MHzのクロックとFDDからの生のリードデータを入力すると、SYNC(ウィンド)とそれに同期したリードデータを出力する8ピンのデジタルデータセパレータです。

FD−1165AのジャンパのRDは1側(VFO無し)に設定します。

FDCボードのFD−1165S(B)用の配線を変換アダプタでFD−1165A用のピン配置に変換してFD−1165Aに接続します。現行のFDD−101Aで読めるフロッピは全てFD−1165Aでも正常にリードできるようになりました。良かった〜

正常にリードできるようになったので、早速、2ドライブにしてケースに仮組みしました。ライト動作を確認するとGATEとDATA信号が入れ違っていいて、修正して正常になりました。昔、レベル2BASICで作ったドライブ#0−>#1へのコピープログラムも動きました。これでフロッピのバックアップも簡単に取れます。

1月15日
FD−1165Aはヘッドがロードされるまで、ドライブが選択されているか分からないので、フロントパネルにLEDを追加します。FD−1165S(B)のパネルに2個穴を空けて、以前使って余っていた水性缶スプレーでペイントします。


ドライブにLED駆動基板を追加します。74LS02が1つ載る小型基板を作って、ドライブ内の空きエリアに入れます。ドライブの制御基板から必要な信号と電源を引き出して配線します。


追加した黄色のLEDは照明用の高輝度LEDらしく、えらく明いです。電流制限抵抗は数KΩでも良さそうです。上がドライブセレクトで、下がSIDE信号と両面ディスク検出信号のANDです。両面倍密ディスクを入れてSIDE信号をLOWにすると、LEDが点灯してSIDE1が選択されていることが分かります。FDCボードに仮スイッチを追加して点灯させてみました。両面倍密ディスクのSIDE1を選択してから単密でフォーマットすれば普通に使えます。実際にはGPOをドライブ0/1のSIDE選択信号を2ビットを追加し、ソフトも合わせて追加する必要があります。ただ、FDCボードにはもう部品を追加するエリアがほとんど無いです。

1月21日
FD−1165Aのロータリソレノイドの戻り側にもスポンジゴムを貼り付けました。

ドライブ1にもLED回路を追加します。

LED付きの2ドライブで筐体に組込テストします。

ドライブ0から1へのコピーの動画を撮ってみました。正常動作しています。

新品の2Dのフロッピです。データレングスは256バイトです。


トラック0のセクタ1と2を読んでみます。単密でフォーマットされていて、正常に読めました。2Dの新品のトラック0は単密でフォーマットされていることが分かりました。

近くのホームセンタでワイヤラックを購入して、2ドライブを設置しました。旧ドライブは撤収です。

1月22日
8080の簡易ICEの動作確認です。

ターゲットは去年買ったタイの8080トレーニングキットです。ICEを接続すると、ターゲットが壊れることもあるので、初めにこのボードで動作確認をしてからTK80に接続します。

8080トレーニングキットのCPUを外して、代りにICEを接続します。ICEボードには外したCPUを載せます。

ICEボードのシリアルは19200bpsでノートPCに接続します。CPUが止まると7セグのLEDの表示が止まります。このボードはモニタプログラムで7セグLEDを点灯させているので、CPUが止まるとダイナミック点灯の7セグも止まります。

予めAUTOSTARTモードに設定しておけば、電源の投入でリセット実行されます。STコマンドを実行するとステータスが表示されます。実行中です。TeraTermの画像は75%にしています。クリックすると大きくなります。

Qコマンドを実行すると、CPUが止まり、レジスタと現在のPCのコードが1行逆アセンブルされて表示されます。再実行させるのはGコマンドです。

CPU停止中はメモリアクセスやIOアクセスができます。下は0番地から逆アセンブルしたところ。簡易ICEなので、実行後にCPUを止めるのはQコマンド以外にありません。目的の所で止めるに無限ループやソフトウェア割り込みなど命令の書き換えが必要です。

?コマンドでコマンド一覧が表示されます。

残念ながらアセンブラコマンドは無いのでメモリ変更コマンドを使って機械語でプログラムします。以下はテストプログラムです。

SRコマンドはレジスタを0にクリアします。その後、PCを8200に設定します。

Tコマンドは指定した回数分レジスタを表示しながらシングルステップして停止します。回数に0を指定すると無限回になり、この時はCtrl−Cで停止することができます。

同様にUコマンドはレジスタを表示せずにシングルステップして停止します。CPLD内にFIFOが12個あって分岐箇所を記録できます。Uコマンドはシングルステップを連続的に動作させていて、リアルタイム実行ではありません。また、TコマンドとUコマンド実行時は割込やWAIT信号は無視されます。Uコマンドも0を指定すると無限回になります。ここまで、期待していた動作です。

続いてプリントポイント機能です。プリントポイントを指定すると、Uコマンド中に指定したアドレスと一致すると、レジスタ表示されます。以下は8204番地にプリントポイントを設定したところ。

SRコマンドでレジスタをクリアして、PCを8200番地に設定します。

Uコマンドで連続シングルステップします。8204番地に到達するとレジスタ表示します。しかし、HLとスタックの表示が破壊されて異常です。SRコマンドで0000にしたので、ここは0000でなければいけません。HLとスタックがデクリメントしていきます。停止した時の値も異常です。

試にその後からTコマンドでシングルステップをすると、壊れたPCからステップしていきます。表示が間違えているのではなく、値が壊れています。

8080トレーニングキットの水晶を手持ちの10MHzに交換して、ターゲットのクロックを1.1MHzまで落としてみます。

結果は変わらず。この不具合はターゲットのクロックには依存しないようです。CPLDの速度も10nと15nでは影響なさそうなので、不具合をまとめて、作者のBobさんにメールを出してみます。解決できればいいですが〜

因みにこのICEはCFコマンドでクロック測定ができます。1.111MHzと出てきました。

以前に作っておいた短いケーブルでも接続できます。TK80に接続する場合はこちらを使う予定です。

1月28日
FD−1165は両面ドライブなので、昔のようにインデックスホールを開けて、手動で入れ替えなくてもSIDE信号を出力するだけでSIDE1側に切り替えられます。せっかくなので両面が使えるようにハードウェアの追加を行います。FDCボードは部品を載せる所が少なく、基板の端に74LS74と74LS06の2個を追加しました。S(B)−>Aピン配置変換ボードも両面メディアの検出信号を配線します。サイド選択信号を1ビット追加、両面メディア検出入力も1ビット追加しました。


1月29日
両面アクセスのハードウェアが正常に動作することを確認しました。続いて両面が使えるようにμ−DOSにプログラムを追加します。簡易ICEを使いました。Untraceコマンドを使わなければ不具合は起きず、便利に使えます。ノートPCで作ったプログラムを簡単にダウンロードして動作確認できます。この週はハードとソフトの作成をずっと行っていたので、写真が少ないです(笑)。


