GOTEK FDDエミュレータを頂いたのでFM77で動作確認^^

スポンサーリンク

FM7で使用できるようにファームウェアを書き換えたGOTEKのFDDエミュレータを頂きました。

ファームは既に書き換えられているので、早速愛用のFM77に取り付けて弄ってみます^^

将来的には外部ドライブで使用予定なのでNECの5インチ用の変換金具に取り付けました^^

ドライブ0で使用する場合は特段外部に部品も必要なくそのままFDケーブルを接続するだけで動作OKのようです。 続きを読む GOTEK FDDエミュレータを頂いたのでFM77で動作確認^^

スポンサーリンク

S1-CP/M80にCPMDrvWinのI/Oを移植 その4(移植完了)

S1-CP/M80への仮想ドライブ移植ですが 色々見落として混乱しておりますが、
結局はドライブへのRead,Writeルーチンの差替えのみでOKという当初の目論見に戻りました^^;;;

仮想ドライブのread, writeルーチン移植の際にFDCパラメータのポインタを戻していないことを
old68funさんに指摘して頂き問題解決しました。ありがとうございます

注意しながら影響のありそうな部分を移植しましたが、かなり致命的な抜けという凡ミスでした・・・

ReadとWriteの最後でXレジにパラメータのポインタを入れるように修正^^;;
続きを読む S1-CP/M80にCPMDrvWinのI/Oを移植 その4(移植完了)

S1-CP/M80にCPMDrvWinのI/Oを移植 その3

仮想ドライブ用のドライバ移植で怪しそうなデブロッキング処理とバッファの転送部分を調べてみました。

BDOSのセクタ番号を倍密度のセクタ番号に変換する処理は大丈夫そうでした。

そうなると怪しいのはCPMの128バイトDMAバッファにデータを転送する部分・・・

FromとToのポインタを表示できるように改造してFDDと仮想ドライブで違いを見てみると
仮想ドライブ時のみFromのポインタがおかしくなっているのを確認

MSX風の青背景白文字は写真が撮りにくいので、黒背景白文字に変えました^^;;

FDDの場合DIR A: 及び 仮想ドライブ DIR C: を実行したときの様子

(6ページ目はMMUで$89に割り当てておりBIOS09の割り付けです)
FDDアクセス時は赤、仮想ドライブ時は黄色で囲った部分です
FDDでDIR A:すると $6D12~の128バイトと$6D92の128バイトを順序良く$6F00~の128バイトに転送しています
仮想ドライブで DIR C: してみると
$030Fの後$6D92 その後$270F~を転送し$6D92~を転送しています。
$6D92には後半部分の128バイトが正しく入っているようなので、DIRした際は後半部分のファイル名は正しく
表示されます
続きを読む S1-CP/M80にCPMDrvWinのI/Oを移植 その3

S1-CP/M80にCPMDrvWinのI/Oを移植 その2

TeraTermを相手に動作確認してもうまくいかないのでS1実機で動作確認することにしました。

シリアルポートはS1内蔵のACIAで$FFC4, $FFC5です。
FM7のシリアルカードは最大で19200bpsが設定できるのですがS1では9600bpsが最高速度でした。


S1の通信速度設定ディップスイッチSW1,SW2をオンでSlow=2400bps, Fast=9600bps設定になるそうです

Windows側でCPMDrvWinをスタンバイさせてから、
仮想ドライブのI/Oを一通り実装したBIOS09に交換してCP/M80を起動してみます 続きを読む S1-CP/M80にCPMDrvWinのI/Oを移植 その2

S1-CP/M80にCPMDrvWinのI/Oを移植 その1

S1-CP/M80のディスクドライブにold68funさんのCPMDrvWinの8251版ドライバを移植しています。

Windows側のソフト内部の動作は不明ですが、BIOS09側はold68funさんのOneDriveにコードがアップされている
ので、仮想ドライブとのやり取りはそのまま使わせて頂きます

コードを見た感じではドライブ名、トラック、BDOSセクタ÷2を渡して256バイトのデータをやり取りする仕組みの
ようです。

こんな感じでしょうか


セクタ÷2で受け取った256バイトデータのブロッキングとデブロッキングはBIOS09側でやっているので単に
FDDとの256バイトのやり取りを仮想ドライブの256バイトのやり取りに置換えるだけで実装できそうな感じです^^

と、いうわけでFM用に書かれている8251用のドライバを6850用に書き換えました 続きを読む S1-CP/M80にCPMDrvWinのI/Oを移植 その1

趣味の日記