ラベル ファイル転送 の投稿を表示しています。 すべての投稿を表示
ラベル ファイル転送 の投稿を表示しています。 すべての投稿を表示

2024年1月27日土曜日

FT245高速通信カードを用いるファイル転送ソフトのCP/M版とOS-9版をアセンブラで書き直しました

 Cで書いたCP/M版とOS-9版が満足できなかったのでアセンブラで書き直しました

先に作成したC版はサイズが12KB程度と大きく、そのために起動時や動作にやや時間がかかっていました。

その点が不満でしたのでアセンブラで書き直すことにしました。プログラム全体の構造はC版と同じで良いので、Cの命令をひとつひとつアセンブラの命令に置き換えていきました。CP/Mでのアセンブラ開発も初めてでしたので、命令表と首っ引きでしたが勘違いも多く、変なところで手間を食ったりしました。

結果、CP/M版もOS-9版もC版では12KBほどだったサイズが2KB程度と小さくなり、起動はもちろんですが動作も多少ですが速くなりました。


OS-9メニュー画面


CP/Mメニュー画面


メニュー3,4のディレクトリ表示のために、CP/M版ではディレクトリ表示ルーチンを作成してサブルーチンとして組み込みましたが、残念ながらOS-9版では今のところ、コンパクトなディレクトリ表示ルーチンをアセンブラで作成できていませんので、メニュー3,4は動作しません。メニュー3,4が必要な場合はC版を使用することになります。(以前、仮想ドライブ構築ソフトOs9DrvWin.exeをCで作成したときに、ディレクトリ表示部にはかなり複雑な処理が必要でしたので、これをアセンブラで作成できるかどうかは分かりません。)

これでF-BASIC版、FLEX9版、CP/M版、OS-9版の全てがアセンブラで作成できましたので、ファイル転送ソフトslwinftの制作はこれで一区切りをつけようと思います。あとはこれらをツールとしてプログラム開発に生かしていくつもりです。

参考までに、私のプログラム開発の手順を図で示します。


プログラム開発の手順

これで一区切りとしますので、今までに制作したFM側のF-BASIC版、FLEX9版、CP/M版、OS-9版のslwinftとWindows側のslwinft245.exeをOneDriveに上げておきます。ディスクイメージ転送ソフトft245も同梱してあり、簡単な使い方の説明も付けてあります。


2024年1月13日土曜日

FT245高速通信カードを用いるファイル転送ソフトのCP/M版ができました

 これでようやく、F-BASIC版、FLEX9版、OS-9版、CP/M版の4種が揃いました。

最後のCP/M版ができたので、FM-7で動作する全てのDOS(?)用の版(F-BASIC版、FLEX9版、OS-9版、CP/M版)が揃ったことになります。


CP/M版の動作画面です。FM-7上の富士通版CP/M-80上で動作しています。


CP/M版slwinft

しかし残念ながら、メニュー3,4のディレクトリ表示は未実装です。BDS-Cで書いたのですが、標準関数のexec()などではビルトインコマンドのdirは動作しないのです。ということで、dirコマンドに相当するものを作成する必要がありますが、それには時間がかかりそうです。

また、現在のところ、FM77AV2に装着してあるZ80Hカード(IDATEN)上のCP/Mでは何故か正常に動作していません。(ソフトは正常に動作しているように見えるのですが、実際にはファイルが転送されないのです...)AV2でもF-BASIC版など他の版では正常に転送できていますので、ハードには問題はないと思うのですが、原因はまだ分かっていません。


蛇足ですが、純正のCP/M-80カードは大切に保管してあるので、普段は自作のカードを使用しています。


自作CP/M-80カード


完成度については、F-BASIC版>FLEX9版>OS-9版>CP/M版という感じで、特にCP/M版についてはBDS-Cを使うのは初めてということもあり、試行錯誤の連続でした。現在のところ、メニューの3,4は実行できませんし、動作速度もアセンブラで書いたF-BASIC版やFLEX9版より遅いようです。

しかし、今まではディスクイメージ全体を転送するソフトしかなく、2Dディスク一枚の転送に1分ほどの時間がかかっていたので、Windows上のエディタでプログラムソースを作成し、それを各DOSに転送してアセンブルやコンパイルするという手順の繰り返しが面倒でしたが、これらのファイル転送ソフトのおかげで大幅に時間が短縮できるようになりました。これらのソフトの開発中も、Windowsー>FM-7方向の転送部分をまず作成し、それを繰り返し使いながらソフト全体を仕上げていくことができました。(CP/Mに標準添付のエディタEDを流石に使う気にはなれないので、制作途中の手直しは全てWindows上のエディタで行うという開発スタイルです。)

完成度の低いOS-9版とCP/M版についてはこれからも改善していくことになると思いますが、とりあえず一段落したということにして作成した4種の版をまとめてOneDriveに上げておきます。CP/M版以外の版も細かい修正を重ねていますので、ここに上げたものが最新版となります。また、ディスクイメージ転送ソフトも含まれています。


2023年12月15日金曜日

FT245高速通信カードを用いるファイル転送ソフト(FLEX9版とOS-9版改)

 

F-BASIC版、OS-9版に続いてFLEX9版を作成すると共にOS-9版を微修正しました


【2024年1月13日追記】F-BASIC版、OS-9版、FLEX9版、CP/M版の最新版を1月13日のブログ「FT245高速通信カードを用いるファイル転送ソフトのCP/M版ができました」にアップしましたので、このブログのOneDriveを削除しました。

【12月17日追記】OneDriveに上げたファイルの中のOS-9版が古いものでしたので、最新版に差し替えました。

ようやくFLEX9版ができあがり、これでCP/Mを除いて3つの環境でファイルをFMとWindowsPC間でファイルを自由に転送することができるようになりましたので、Windows上の慣れたエディタで作成したプログラムをFMに転送して最後の仕上げ作業をするという一連の流れがよりスムーズに進められるようになりました。(以前はRS232を使用したものを使っていたのですが、転送時間が格段に短くなりました。)

CP/M版の作成は80系の知識がない自分にとっては敷居が高く、時間がかかりそうですので、とりあえず、これまでのまとめとして3種の版をまとめて紹介しておきます。

まずはWindows側のslwinft245.exeです。



slwinft245.exe


F-BASIC版、OS-9版、FLEX9版に共通して使用できます。
COMポートはbaud:115200以上, 8bit, non-parity, 1stop bit に設定します。
また、FT245通信カードのTXE機能はOFFのままで構いません。

FM側のドライブソフトです。


(1)F-BASIC版です


F-BASIC版のSLWINFT


(2)OS-9版です


OS-9版のslwinft


前回のブログのものではディレクトリを表示するメニュー項目がありませんでしたが、追加することができました。また、FM-7用のOS-9LevelIで動作することも確認しました。

(3)FLEX9版です


FLEX9版のSLWINFT


見てわかりますようにメニューはほとんど同じにしてあり、操作性もほとんど同じですが、処理対象のドライブ指定だけは、OS-9やFLEX9ではOSであらかじめ指定できるのに対して、F-BASICではできないのでメニューでドライブ変更できるようにしてあります。ただし、メニューからディレクトリ表示できるのはドライブ0と1だけです。(メニューソフトはF-BASICで書いてありますので、簡単に書き換えることができますが。)

以上の3つのOS(F-BASIC版、OS-9版、FLEX9版)に対応したソフトをOneDriveに上げておきますので、FT245高速通信カード(RAMディスク付きも)をお持ちの方は自由にご使用ください。

12月17日追記】差し替えたのはOS-9版のみで、他は変更していません。

【2024年1月4日追記】最新版をOneDriveに上げました。


2023年12月7日木曜日

FT245高速通信カードを用いるファイル転送ソフト(F-BASIC版とOS-9版)

 FT245高速通信カードを用いるファイル転送ソフトのF-BASIC版とOS-9版を作成しました


【追記】Windows側のslwinft245.exeの機能拡張やOS-9版の修正をしましたので、次のブログ「FT245高速通信カードを用いるファイル転送ソフト(FLEX9版とOS-9版改)」の方にソフトの公開を移動しました。

今までFT245高速通信カードを用いる場合には、2D(2DD)ディスクを丸ごと転送するディスク転送ソフト(FDDIMG_RW77.exeやFT245DRV.exe)を使用していました。

しかし、いくら高速とはいえ2Dディスクで約1分、2DDディスクで約2分かかりますので、ファイルを一つだけコピーしたい場合には時間がかかりすぎです。
特に、Windows上の慣れたエディタで作成したプログラム等をF-BASICやOS-9等に転送して使用するという、私のプログラム開発の手順の中では転送時間が長いのは致命的です。
ということで、ディスク転送ソフトではなくファイル転送ソフトが必要と感じていました。

ディスク転送ソフトの場合にはOSの種類によらず、40(80)トラック、16x2セクタ/トラック
のディスクであればF-BASIC上のドライブソフトで転送できましたが(ただし、FLEX9だけは32セクタ/トラックなので転送できない)、ファイル転送の場合にはOSの機能を用いてファイルを読み書きしますので、当然OSに依存することになります。

ということで、まずは使用頻度の高いF-BASIC版を作成し、続いてOS-9版も作成しました。

Windows側のslwinft245.exeはもちろん、全OS共通です。
起動後にCOMポートとOSの選択をしたのちに使用可能状態になります。



Windows側のslwinft245




FM-7/77側のドライブソフトはOSに依存しますので、それぞれのOS用に作成しました。


【1】F-BASIC用のSLWINFT


まずF-BASIC用のSLWINFTを紹介します。
対象ドライブはデフォルトで1ですが、もちろん変更できます。
TXE機能のON,OFFはFT245通信カードの設定と一致させます。
(TXE機能がないカードの場合はOFFに設定します。)


FM-7/77側のSLWINFTメニュー



使用するソフト
〇FM-7/77側   メニュープログラムSLWINFT(F-BASIC)を実行する。
         起動時に機械語サブプログラムSLWINFToが読み込まれる。
         (SLWINFToは&H6000~&H61E7に配置される)
〇WindowsPC側 SLWINFT245.exeを実行する。

動作環境
〇FM-7     F-BASIC V3.0
〇FM77AV2   F-BASIC V3.0、V3.3
〇FM77AV40SX F-BASIC V3.0、V3.4
以上の環境で動作することを確認してあります。

使い方
◎WindowsPC -> FM-7/77 への転送
  FM-7/77側でメニュー2を選択する。
  Windows側で転送するファイルを選択(ドラッグ&ドロップまたは直接書き込み)して「FMへの書き込み」ボタンを押す。

  FM-7/77側に既に同名のファイルが存在する場合には、重ね書きをするかどうかを選択できます。

  ファイル種別は自動的に判別しますが、通常のバイナリファイルの場合は先頭に5バイトのヘッダー、末尾に5バイトのフッターが必要ですので、そのための情報として保存アドレスと実行アドレスをセットします。(既にヘッダー、フッターがついているファイルの場合はそのまま転送されます。)

◎FM-7/77 -> WindowsPC への転送
  Windows側で読み込んだファイルを保存するファイル名をセットして、「FMから読み込み」ボタンを押す。
  FM-7/77側のファイル名と異なるファイル名でも構いません。
  FM-7/77側でメニュー1を選択し、転送するファイル名を入力してEnterキーを押す。
  存在しないファイル名を入力した場合にはエラーメッセージが出て、再入力を促されます。
  機械語ファイルの場合にはヘッダーとフッターが削除された通常のバイナリファイルとして保存されます。(読み取った保存アドレスと実行アドレスは画面上に表示されます。)

その他
  FM-7/77側ではドライブ番号をメニュー3で変更できます。
  また、メニュー4でTXE機能を使用するかしないかを選択できます。通常は機能OFFで問題はありません。


【2】OS-9用のslwinftos9



OS-9側のslwinftos9のメニュー


使用するソフト
〇FM側      ドライブプログラムslwinftos9を実行する。
〇WindowsPC側 SLWINFT245.exe(F-BASIC版と同じ)を実行する。

 (FM側のslwinftos9をどうやってOS-9に読み込むかですが、OS-9のディスクもF-BASIC
上のディスク転送ソフトft245drvで転送できますので、これを利用してOS-9のディスクに
読み込みます。)

動作環境
〇FM77AV40SX OS-9Level2
 Level1では動作確認をしていません
 【12月15日追記】動作することを確認しました。

使い方
◎WindowsPC -> FM への転送


メニュー2の実行例

  FM側でメニュー2を選択する。
  「Send file from Windows...」が出て受信モードに入る。
  Windows側で転送するファイルを選択(ドラッグ&ドロップまたは直接書き込み)して「FMへの書き込み」ボタンを押す。このファイル名でFMに保存される。

  FM側に既に同名のファイルが存在する場合には上書きされる。

  ファイル種別は自動的に判別するので、実行モジュールファイルとテキストファイルのどちらであっても構わない。

◎FM -> WindowsPC への転送


メニュー1の実行例

  FM側でメニュー1を選択する。  
  Windows側で読み込んだファイルを保存するファイル名をセットして、「FMから読み込み」ボタンを押す。
  FM側のファイル名と異なるファイル名でも構いません。
  FM側でメニュー1を選択し、表示「Input file name:」に続いて転送するファイル名を入力してEnterキーを押す。
  存在しないファイル名を入力した場合にはメニューに戻ってしまうので、最初からやり直す。

その他
  メニュー3でTXE機能を使用するかしないかを選択できます。通常は機能OFFで構いません。

現在のところはF-BASIC版とOS-9版のみですが、順次CP/M版、FLEX9版を作成する予定です。

現在のF-BASIC版とOS-9版をOneDriveに上げておきますので、FT245高速通信カード(RAMディスク付きも)をお持ちの方は自由にご使用ください。
【12月15日追記】ソフトの公開は12月15日のブログに移動しました。