TK80/BSの
フロッピ、シンセシステムを復活させたい〜
その1
本体の動作確認とフロッピシステムの再起動
SIMHで4.2BSDのローグを動かすというページを作りましたが、SIMHでは8080も走ります。(ALTAIRのCP/Mを走らせてみました)当時の雑誌の広告にIMSAI等がよく載っていました。自分はというと、夏休みにフルでアルバイトをしたお金と足らない分を母に出してもらい、TK80E(定価6万7千円)とBS(定価12万8千円)のセットを友人Sと一緒に秋葉原で買いました。本体以外にも電源も必要で、当時メーカ製の3出力のスイッチング電源は4万円近くしたと思います。シリーズレギュレータで自作しようかとも思ったのですが、上のバイトの会社にTDKの創業者の関係の人がいて”社員価格ってあるんですか?”って聞いたら、中古をタダで持ってきてくれました(笑)。母に出してもらった不足分は半分も返さないうちに免除してもらったと思います(笑)。
最近、友人Sの家に遊びに行き、
SIMHの話が出ました。友人Sは8チャンネルのシンセサイザのシーケンサプログラムや5単位テレタイプ用印刷プログラム、TK80のEEPROMライタ
等、その他、諸々を作った人物で、TK80/BSだって、画面とキー周りを作れば、SIMHで動くんじゃないかと、話が盛り上がりました(笑)。もう一歩進ん
で、フロッピのイメージが有ればオリジナルのμ−DOS(発音:ミュードス)も動くかも〜ということになりました。μ−DOSの名前はCPUの名前がμCOM−80なのと、プログラムサイズと機能が非常に小さいから。
元々のTK80/BSの外部記憶はテープレコーダです。当初は300ボーだったでしょうか?その後、改造して1200ボーまで上がりました。当時は雑誌に載っていたゲームを入れたり、メインはシンセサイザの自動演奏でした。カセットテープにプログラムやデータをセーブ/ロードするのですが、目的のファイルまでの頭出しが面倒なのと、リードエラーで苦労しました。
78〜79年には雑誌にマイコンとフロッピの接続記事が掲載され始めます。ただ、制御プログラムはトラックリードとライトが載っているだけでした。82〜83年くらいには秋葉原で中古のドライブが買えるようになり、自分でも作れそうな雰囲気になってきました。
このフロッピシステムを作製する前に中古のMT−6(TEACのデジタルテープ、MT−2の前身)とCMTCで失敗したこともありました。ハードとソフトを一式作ってテストすると、メカ部の制御はできるのですが、ライトしたデータが正常に読み出せず、ステータスレジスタはずっとエラーのままでした(笑)。CMTCは日立製(NEC製でした)だったか?メーカに電話しても、学生で中古のMT−6を使っていると分ると全然相手にされず、あきらめた経緯もありました。
μ−DOSのサイズは6Kバイトくらいで(NOPも一杯入ってますが)、ハンドアセンブルとASCII誌(ASCII誌のものではなさそう)の1パスアセンブラを(後半では対話型2パスアセンブラも使用)組み合わせて使ったと思います。電車での通学時間が長かったので、ほとんど電車の中でメモ書きでプログラムを作成し、家に帰ってアセンブルという感じです。当時発売されていたMZ−80B?のテープ制御のユーザインタフェース(画面上にファイル名が出てカーソルキーを移動してロードみたいな感じ)を参考にファイルのセーブ、ロード、ドライブのチェンジ、指定したセクタのダンプ、バッチファイルでシンセサイザの連続演奏ができるようにプログラムを作成しました。友人SはYD−74Cドライブを使って同じμ−DOSを動かしています。当時、すでにCP/Mが存在していましが、メモリが連続して大きく取れないTK80/BSでは不利で、何しろ値段が高かったです。
このTK80のフロッピシステム、最後に電源を入れたのは少なくとも、10数年以上前と思われますが、その時はフロッピドライブがヘッドロードしリードエラー表示が出て立ち上がりませんでした。その後、追及しないで放置していました。
フロッピの寿命が5年だとか、いや20年は持つとか、いろいろWEBに載ってます。因みにウイキペディアでは適切な保存状態で100年、JISの規格で1トラックにつき300万回は使用できるとのこと。いずれにしても、時間とともに読みにくくなることは確かです。μ−DOSを再起動させて、最終的には8chデジタル・アナログ混在シンセサイザも復活させたいです。まずは現状確認と本体のTK80/BS単体で正常動作するか確認してみます。
2016年
10月1日
取りあえずドライブのクリーニングから。ドライブは日立のFDD−101Aです。8インチ片面単密です。83年に秋葉原で中古で1.5〜2万くらいで買ったと思います。元々、2台あったのですが、電源の接続ミスで1台壊れました。今思うと、壊れた1台も捨てないで、部品取り用に取っておけば良かったです。オ
プション表を見るとVFO付きとあります。これが無いとデータセパレータ回路が別に必要になります。
当時、メジャーだったYD−74Cも同様に、この頃の片面単密ドライブのスピンドルはベルト駆動です。ベルトがボロボロです。これは早く交換しないと。
FDD−101Aの制御基板です。マイコン類は載っていなくて、デジタル部は74xx/75xxロジックのようです。アナログ部はディスクリート。これなら壊れても直せるかも(笑)。裏側はファンで集められた埃が溜まってます(笑)。
追加配線が途中で切れてますが、これはドライブが選択された時にスピンドルモータを回すために追加したSSRをスキップしているためです。最後に動かした時にSSRが壊れていてメインモータが回らなかったと思われます。
テンショナーに製造日が書かれてます。56年でしょうか?1981年ですね、何処かで使われて、2年くらいして中古が秋葉原に来たということでしょう。
ベルトには型番が〜ネットではヒットしなかったです。モノタロウで合いそうなベルトを注文しておきました。
エアブローして埃を飛ばします。スピンドルモータはシンクロナスなので50/60Hzでプーリを入れ替えて回転速度を選択する必要があります。起動コンデンサは2.5uFです。液漏れなどはなく、見た目は問題なさそうです。
試にAC100を繋ぐとスピンドルモータとファンは回転しました。起動コンデンサも一応、生きているみたいです。
ここから、友人SにLINEで連絡して現状報告。ドライブの状態と見つかった資料の一覧。FDD−101A取説、MB8877A(FDC)取説、トラ技とASCIIのフロッピ関係の記事、FDCボードの回路図、旧バージョンのμ−DOSのコード説明付逆アセンブルリストなど〜
TK80/BSの本体の動作確認。電源を投入すると、BSのモニタが起動します。本来はTK80のキー操作でF000番地へ飛ぶ必要があります。BASIC(レベル1、2)はエンドアドレスを9FFFにして動作することも報告。モニタ出力は白黒NTSCビデオなので、最近の液晶TVでも映ります。
友人Sに確認したかったのはμ−DOSの立ち上げ方法。電源ONでBSのモニタが立ち上がり、GO、xxとするだけでμ−DOSが立ち上がった記憶があります。確認するとどうも、友人Sのシステムとは違って、TK80に乗っているROMが1個のみ(写真左)、友人Sのは4つ載っていると〜(写真右、3個はTK80のモニタプログラム(マスク)、1個は拡張用オプション(EEPROM))。TK80のモニタは使わないので、友人Sに頼んでIPLのROMを書いてもらったというになります。自分でROMライタは持っていなかったです。ん〜完全に起動方法を忘れてしまいました。ただ、ROMは256バイトしかないので、メモリダンプすれば、どこがスタート番地が直ぐ分りますが〜
μ−DOSの逆アセンブルリストを見ていると盛んにFxxx番地を呼んでいます。これはBSのモニタ汎用サブルーチンで資料が公開されています。友人Sに確認すると手元に資料があると〜直ぐ送ってもらいました。
一通り資料があるのことが確認できたので、本体の動作確認を再開。TK80やBSに載っている標準メモリ以外の拡張部で書き込めないエリアがあることが判明。因みに下のA000番地は上位の12Kバイト拡張メモリの先頭です。電源投入時の値を保持ているだけで、全然書けないです。これ以外にμ−DOSがロードされる6116で作った下位の32Kバイト(TK80のROMやBSのVRAMなどがあるため、実際に使える容量は32Kバイトより小さいです)拡張メモリがあります。
10月2日
12Kバイトメモリボードを本体から取り外します。整備性が悪く、ボードを外すのが凄く大変です。
ケースから取り出した12Kバイトメモリボードです。2114(4Kビット)を24個使ってます。黒くなったICのピンをクリーニングしたり、デバイスを一度外して、挿し直したりしているうちに段々症状が良くなってきました(笑)。最終的にA000〜A3FFの上位側だけ書けない現象に変わりました。2114は4ビット幅なのでこんな症状になることがあります。
調子の悪い番地と上位、下位のどちらかが分ればデバイスの位置が特定できます。よく見ると配線が外れてました(笑)。早速、半田付け直し。A000〜CFFFまで大まかにメモリテストして問題なさそうです。
キーボードもエアーブローします。自動リピート回路が追加されています。
これはFDD−101Aが完全に壊れた時のバックアップです。NECの両面倍密のFD1165B/Sです。3台あります。コネクタと一部信号が違いますが、片面単密も読めるはずです。
10月4日
資料をアパートに持ってきました。旧版v1.2の逆アセンブルリスト。最新はv1.8?です。中にはエンピツでコードの説明が書いてあります。これはASR−32(5単位テレタイプ)で印刷されたものです。5単位なので大文字しかないです。8単位(ASR−33)でも大文字しか出ませんでした。ASR−33のマニュアルは本体と一緒に貰いましたが、ASR−32のマニュアルのPDFがここにあります。テレタイプの全体資料はここ。
FDC周辺回路図。珍しく、清書した回路図が残ってました。
日立のFDD−101Aの取扱説明書。日立から出してもらった記憶は無いので、たぶんドライブを買った秋葉原の店で付けていたと思います。
トランジスタ技術の切り抜き。この記事の肝は単純にポーリングすると間に合わないステータスチェックやデータのアクセスをハードウェアでCPUにウエイトをかけて同期しているところ。
YD−74Cに比べてかなりマイナーだったFDD−101Aですが、ネットで検索するとI/O誌が2つしかヒットしません。1980年2月号の6800システムのHD46503との接続、もう一つが1982年8月号のMZのFD−1771Aとの接続です(笑)。きれいにPDF化されているので、出版社のサイトかと思いましたが、どうも違うみたいです。1982年8月号は平安京エイリアンが載っているので、この号は持ってる可能性が高いです。
10月8日
再起動の準備をします。フロッピドライブ用の電源です。内部のクリーニングして電圧のチェックをします。24V、5Vとー5Vを出力します。それぞれ別のトランスを使っています。
−5V電源が故障しています。−2.2Vしか出てません。トランスは個別なので7805でー5を作っています。
ガレージの部品棚にNECの2405(7808と互換品)がありました。早速、部品交換します。正常に−5Vが出力されるようになりました。
ケースの内側にダイモで製造の日付がありました。83年です。
FDC基板です。全てのデバイスは一度、ICソケットから外して、ピンが黒くなっているものはカッタの刃で落とします。50ピンのコネクタが2個あるのはNECのFD1165用のコネクタです。コントローラのMB8877Aは予備が1個あります。
前回、ASR−32でプリントアウトした逆アセンブルリストがあったと書きましたが、2009年に友人Sから貰ったASR−32をガレージの奥から引っぱり出してきました。台が付いていると運びにくいので、取り外して本体を母屋に運びました。貰った時にキャリッジ・リターンとライン・フィードが動かない状態でした。後で現状確認します。
午後になってモノタロウからベルトが来ました。10mm幅、1.5mm厚の600mmの平ベルトと、同じく4mm幅、1.5mm厚の598.5mmのタイミングベルト。
タイミングベルトの方が加工しなくても、裏返すだけで使えそうだったのですが、長さが足りませんでした。
平ベルトを使います。10mmのベルトをハサミで半分に分割して5mm幅にしました。こちらの長さは丁度いいです。オリジナルはのベルトの厚みは約1.0mmですが、1.5mm厚だと少し硬いかもしれません。AC100Vを供給すると、正常にスピンドルが回転しました。
さて、ブート方法を思い出さないといけません。母屋を探しているとTK80の1個目に入っているEEPROMのアセンブルリストが見つかりました。0番地からベクタがあって、40番地からIPLがありました。BSのモニタからGO、40で立ち上がるはずです。だんだん、思い出してきました。
ドライブの接続ケーブルもきれいに埃を落として、エッジコネクタにWD−40を塗りました。
FDC基板を拡張マザーに挿して〜ケーブルでドライブと接続します。
μ−DOSのフロッピを用意します。ラベルにGO、40ってメモ書きがありました(笑)。
準備が整ったので、BSのモニタからGO、40でIPL実行。ヘッドをロードしてエラー表示。ん〜ダメか?一度フロッピを抜いて挿し直し、再度、実行。お〜今度は立ち上がりました!良かった〜もっとエラーが頻発すると思いましたが、意外とあっさり起動しました。古いEEPROMやフロッピも30年くらいならデータを保持できるってことですね。まあ、密度が低いのが幸していると思いますが。
”GAME”と書いてあるフロッピを用意。早速、ドライブに挿して〜
Fコマンドを実行すると、ディスクタイトルが出てきます。矢印キーでページを送るとファイル名と先頭アドレス、フロッピの何処から、どれだけの長さ入っているかリストが出ます。中央の8行が表示領域になっています。”**ailen**”というファイルがあるので、これをロードしてみます。Eコマンドでカーソル移動状態にしてから、カーソル移動キーの1、2、3、4キーでカーソルをロードしたいファイル名に移動して、Lコマンドでロードします。行末が”;”なら”+”になるまで下に向かって、順次ファイルをロードします。右写真では音を出す機械語のプログラム”**〜oto**”もロードします。
ほんの一瞬でロードが終わります。エラーが無ければ一番下の行のステータスがOKになります。BコマンドでBASICに移行し、RUNで実行すると〜これ平安京エイリアンですね(笑)。
10月9日
文章だと流れが分りにくいので、動画を撮りました(笑)。既にμ−DOSがロードされている状態で、BSモニタからμ−DOSを走らせて、平安京エイリアンをロードして実行。そして、μ−DOSに戻り、フロントパネルのスイッチでレベル1BASICに切り替えてから、今度は時計をダウンロードして実行。μ−DOSは非常に単純です。片面単密度のフロッピのトラックは0〜74まであり、1トラックの中に1〜26セクタ(1セクタは128バイト)があります。トラック0の1、2セクタにタイトルとすでに使っているトラックとセクタ情報があり、この2セクタ分の256バイトが画面中央の8行に対応しています。トラック0の残りのセクタ3〜26にファイル名と管理データが入っています。実際のデータはトラック1からです。順次ファイルを書いていくので、途中のファイルにデータを追加することはできません。最後のファイルなら一度消して追加できますが(笑)。この頃のファイルは大きくても4〜8Kバイトくらいなので、これでも十分に実用になっていました。BASICと機械語のルーチンを組み合わせてフォーマットプログラムとドライブ0から1へのディスクコピープログラムも作りました。カセットテープの世界から見れば格段の進歩でした。
ここで裏テク。80年の中頃以降、PC9801で使われていた両面倍密のメディアの方が多く出回りました。ラベルの”2D”というのが両面倍密ということです。両面倍密のフロッピのジャケットにインデックスホールを2つ開けると片面単密度で裏表の両面が使えるようになります(笑)。レーコードやカセットテープと同じ裏表という使い方です(笑)。ただし、フォーマットが異なるので片面単密度で再フォーマットする必要があります。下写真の左から2つが追加したインデックスホール、右の1つが元々の2Dのインデックスホールです。
BSの取説のポケットに領収証が入ってました。9月9日ということは夏休みが終わって直ぐに買いにいった、ということですね(笑)。今でも、最速ノートマシンが買える値段です。
ドライブに付いているSSRですが、壊れているわけではありませんでした。ドライブが1台しかないので、SSRを繋げてもスピンドルは停止しません。試にドライブ1を選択するとスピンドルは停止しました。当時、選択されていなドライブ側も永遠にモータが回って電気がもったいないのと、フロッピとヘッドが痛みそうだったので追加した機能です。
無事、μ−DOSが動いたので、印刷デバイスのテレタイプASR−32の現状確認です。引き取った時はキャリッジ・リターンとライン・フィードが動かない状態でしたが、引き取った時より症状が悪くなっていました。英文字の半分くらいが正常に印字できず、別の文字を印字します。オイル硬化が原因と思われます。ASR−33用のメンテナンスマニュアルを見ながら調整中でが、難しいです。昔の人はよくこんなもの作りましたね〜凄く複雑です。キーボードのデータは直ぐにシリアルに変換され電気的に接続され、印字部でパラレルデータに変換しているんですね。キーボードと印刷部間はメカのパラで接続されていると思ってましたが違いました。