2021年2月23日火曜日

FM-7用 60K CP/M-80 の仮想ドライブ版が完成


 FM-7用 CP/M-80 60K版の仮想ドライブ版(FT-245カード使用)です


先日、FM77用のZ80Hカード(韋駄天)を作った際に、それ用の60K版CP/Mを公開されているCP/Mのソースから構築しましたので、その経験を忘れないうちにと、半完成の状態で止まっていたFM-7用のCP/Mを60K版に変更し、さらにWindows上の仮想ドライブもアクセスできる形で仕上げました。

そしてFM-7とWindowsPCとの通信にも、以前使用していたRS-232Cカードではなく「思い付きハードでソフトに七転八倒」さんが製作されたFT-245モジュールを使用した高速通信カードに変更しました。


CP/Mの起動画面です。起動メッセージにあるように、A:とB:が通常のFD、C:とD:がWindows上の仮想ドライブに設定してあります。

起動ドライブA:のディレクトリを表示後、ドライブD:にチェンジし、そこからドライブC:のディレクトリを表示しています。


CP/M起動画面


使用中の様子です。

右端のカードがCP/M-80カード、中央がWindowsとの通信用のFT-245カード、左端がFDCカードで、いずれも以前本ブログで報告した製作品です。

後方に見えているWindows上に仮想ドライブが構築されています。


動作中の様子


FT-245カードのアップです。以前使用していたRS-232Cカードよりも高速になったのが体感できました。

このカードの仕様上、FM-7 -> WindoowsPC は1バイトを1回で転送しますが、WindowsPC -> FM-7 は1バイトを2回に分けて転送しますので、以前紹介しましたCP/M用仮想ドライブ構築ソフト CpmDrvWin.exe にそれに対応するための変更を加えました。


高速FT-245カード


Windows上の仮想ドライブ画面です。

ドライブ2と3上にFDイメージファイル(D88, D77, DSKファイル)をドラッグ&ドロップすると、それぞれCP/MのC:,D:として読み書きできます。同じドライブ中にいくつでもイメージファイルを置いて、切り替えてアクティブなイメージファイルを選択できます。

アクティブなドライブのディレクトリが表示されているボックスにWindows上のファイルをドラッグ&ドロップすることでイメージファイルにファイルを書き込むことができますので、Windows上でソースを作成してイメージファイルに放り込んで、CP/M上でアセンブルやビルドをするという形でプログラム開発ができます。


仮想ドライブの画面



また、その他の機能として、ファイルの読み出し、ファイル名の変更、ファイルの削除、全ファイルの一括読み出しなどの機能もあります。


2020年5月16日の「FM-7用 58K CP/M-80が一応出来上がりました」で紹介した際には、ブロッキング・デブロッキングが実装されていなかったので同一セクタを2度ずつ読んでいました。相変わらずブロッキング・デブロッキングは実装できていませんが、上記画面の右端のボックスを見ていただくと分かりますように、直前に読んだセクタと同じセクタの場合にはディスクを再度読まないように処理を変更しましたので、その分高速になっています。


最後に


自分で作ったハードとソフトでTurboPascalなどの大昔のソフトを走らせてみたいという願いから始めたものですが、それなりに使える形が出来上がったように思いますので、これを区切りにして、あとはCP/M-80上でのソフトを走らせて楽しもうと思います。
(プログラム作りの楽しさを知ったのは、N88-BASICでの6千行近いプログラムの変数管理でどうにもならなくなってしまった挙句、MS-DOS上のTurboPascalを使い始めてその使い易さに感動してからで、その後Cに移行しましたが、今でも気持ちとしてはPascalが好みですので楽しめそうです。)

制作したBIOS09, BIOS80, FM-7用CP/MシステムイメージCPM60KwVFD.D77と元のCPM60KwVFD.DSK, Windows側のCpmDrvWin.exeをOneDriveに上げておきます。
なお、FT-245カード使用のものとRS-232Cカード使用のものとの両方入っていますが、ファイル名の末尾にFTがついているものがFT-245カード用で、RSがついているものがRS-232Cカード用です。
また、formatコマンドがありませんので、フォーマット済みの空のイメージファイルも入れてあります。newdiskがついているものがそれです。
このような報告の場合、ソースがなければあまり役には立たないと思いますので、BIOS09, BIOS80についてはソースも入れておきましたが、CpmDrvWin.exeについては見苦しい個所も多くまだまだ改良の余地もありますので、とりあえず今はソースは公開しないことにします。

BIOS09は私なりに試行錯誤しながら制作しましたが、80系の知識が全くないので、CP/M本体とBIOS80については以前紹介しました中日電工さんのブログがなければ仕上げることはできませんでした。改めて中日電工の菱田さんに感謝いたします。
また、標準のRS-232Cカードよりもはるかに高速なFT-245カードを開発された「思い付きハードでソフトに七転八倒」さんにも改めて感謝いたします。



0 件のコメント:

コメントを投稿