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

スポンサーリンク

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

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

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

ReadとWriteの最後でXレジにパラメータのポインタを入れるように修正^^;;

正常に動作するようになりました^^

FDDでも仮想ドライブでも$6D12と$6D92を順序良くアクセスするようになりました^^

デバッグ用のアドレス表示を消して再起動!
仮想ドライブでのDIRもいい感じで表示されるようになりました


CPMDrvWinPもFM版と同じアクセスになりました

1回目はトラック2のセクタ1~10ともう一回セクタ1~4
2回目はトラック2のセクタ1~4のみ
こちらもいい感じになりました。

書き込みが正常にできているか確認するためにMBASICで簡単なプログラムを作って保存してみました

SAVETESTで保存してFILESで保存確認。
SAVETEST.BASAが保存されていました。続いてLOADでSAVETESTを読みだしてLIST
おお!正常に読めました^^  SAVE→FILES→LOAD の一連の動作OKでした。

MBASICをSYSTEMで抜けてPIPでテキストとしてSAVETEST.BASをコンソールに出力させてみると

正常に表示OKです。
Writeの処理も一通り動作確認できました^^

これでS1-CP/M80実機から直接D88ファイルが扱えるようになりました。
D88ファイルへのインポート、エクスポートはCPMDrvWinへドラッグで簡単に行えるので簡単です。

貴重なMP-3560へのアクセスも大幅に減らすことができて延命効果も抜群です^^

以前、来夢来人用に作ったRS232Cカードはビットジェネレータを別に付けたので9600bps以上も扱えて快適かも・・

しかし、アドレスデコーダを変更できるようにしていなかったので$FFC4,5固定でS1には取付けできません
今後、I/Oアドレスを変えてS1に取り付けれるようにしてみます^^

S1-CP/M80実機で直接D88ファイルが扱えるようになった記録・・・



今後の目標
COM1にACIAを追加して19200bpsに対応させる

 

スポンサーリンク

コメントを残す

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

日本語が含まれない投稿は無視されますのでご注意ください。 本文に全角文字を2文字以上含めて下さい (スパム対策)