約40年程前になるが、シャープMZ80Bでカセットテープ入手力やキーボードスキャンを含めモニタを完全に作り変えた上で、日本橋で8inch厚型 両面単密度の中古ドライブを購入し、1982年10月トランジスタ技術に相沢 一石さんが連載していた「作りながらマングマイコン設計トレーニング」を参考に、フロッピーディスクコントローラMB8877を使用してフロッピーディスクをつないでいた。さらにその後薄型の両面倍密度の中古ドライブを購入しCP/Mを動かしていた。
今思えばオシロもなしにテスターだけでよく動かしたものだ。若かった。
turbo pascalを動かし、Game80を動かし、micro pascalを動かし、TL/1を動かし遊んでいた。JUG CP/Mにも参加してたし。
その後AT互換機(386 25MHzとか)やMacPlusを使用していたが、当時使用していた5インチや3.5インチの
フロッピーディスクがまだ手元にある。動くかどうかはわからないが放置するのはもったいない。
(内容的には今となっては大したものがあるわけではないが)
そんな折WebでArduinoFDCを見かけた。なんとArduinoでフロッピーディスクを読み書き出来るとのこと。(https://github.com/dhansel/ArduinoFDC)
昔はVFOを利用したデータセパレータとか、FMだのMFMだの大変だったし、速度的にも単純なZ80 4MHzのソフトでは間に合わないので、
Waitを利用して読み書きしていたが、このArduinoFDCは信じられないことに16MHz atmeg328pでソフト的にMFMまで読み取っている。
さらにArduino UNOだけではなく、miniやmicroでも動くらしいので検証を兼ねてpro miniで作成してみた。
とはいえなかなか機器の入手が難しい。
・フロッピードライブやケーブルはオークションで入手
・電源は以前作成していたATX電源を利用したものを使用(これなら5インチで使う12Vも出る)
・Arduinoはpro miniを使用
結果
・3.5インチ
読めるがCRCエラーが結構出る(monitorコマンドでrで全面読み込み時)
ディスクの劣化によるものなのか、中古ドライブの問題なのか、貧弱な配線の問題か、
ArduinoFDCの問題なのか良くわからない(*1)。
・5インチ
黄ばんだFD1155Cを入手したが、フロッピーディスクを入れた際にモーターは回るが、
ヘッドをおろした時にモーターが止まってしまう。ArduinoFDCをつなぐところまで行かない。
(*1)USB接続の3.5インチディスクから読むと普通に読めるのできっと配線だろう。まず動くかの確認のため、
強く推奨されている信号線のプルアップも端折ってるしGNDラインもブレッドボード用の線1本しかつないでないし。
3.5インチのディスクなら今でもUSB接続のドライブがあり、今でもそれほど必要性はないが
5インチはなかなか読む手段がない。将来的には8インチが読めれば良いなあ。