ようこそゲストさん

80mkII愛友会 別館

2016/05/05(木) サイト更新 - XDISKWIN2

お知らせ
本日の更新は「XDISKWIN2」のバージョンアップです。
@tsutsuii氏より不具合のご報告を頂いたので修正しました。

1つ目は,ファイルを開く場合に保存用のファイル選択ダイアログを使用していたという問題です。
保存ダイアログでもファイル名選択は出来るので特に大きな問題は無いかと思いきや,読み込み専用のファイルを選択することが出来ないのでCD-ROMに保存されている場合などに不都合が発生するとのことなので修正しました。。

2つめは,先日の更新で開発環境をVC2008に変更した影響でWindows NT/95/98/Meに未対応となったのにドキュメントを更新していなかったという問題です。
一応,仮想環境にVC2003も用意はしてあるので対応させることはできるものの,起動やファイルのやりとりが面倒なのでVC2008に変更してしまったのですが,その際にドキュメント修正の方を失念しておりました。
@tsutsuii氏はドキュメント通りにわざわざWindows98環境まで用意してくださったのに,実はそちらの方が未対応だったということで,とんだお手間を取らせてしまいました。

1: @tsutsuii 2016年05月12日(木) 午前1時49分

返信が遅くすいません。ようやくですが 16/05/05 版を試してみました。
が、いろいろやってみたのですが CD-ROM上のディスクイメージ送信の場合はまだ何かしら修正が必要なように見えます。

環境として
・Windows10 Pro 32bit
・c: が HDD
・d: が CD-ROM (DVD-ROMコンボドライブ)
・ディスクイメージが d:\DISK\FC88V40.d88 のCD-ROM上にある状態
という状況で、
・「動作モード」で「ディスクイメージ送信」
・「ファイル名」の右のファイルオープンのボタンを押す
・ダイアログで d:\DISK\FC88V40.d88 を選択
すると
・「出力フォルダ」が「D:\DISK\」
・「ファイル名」が「FC88V40.D88」
の状態になりますが、この状態で「実行」を押すと以下のように失敗します。
---
通信ポート 1, 9600 bps で接続します.
sio::write error
sio::write error
sio::write error
通信デバイスの初期化に失敗しました(-2)
---
通信エラーのようなメッセージですが、ここで
・「出力フォルダ」を空欄
・「ファイル名」を「D:\DISK\FC88V40.D88」と手入力
として「実行」を押すと正常に88と接続できます。
また、D:\DISK のフォルダを C:\DISK の HDDにコピーしてダイアログ選択で
・「出力フォルダ」が「C:\DISK\」
・「ファイル名」が「FC88V40.D88」
の状態で「実行」を押すとこれも正常に88と接続できます。

コード上は「出力フォルダ」にカレントディレクトリを移動して「ファイル名」をオープンする動作をするようですが、「出力フォルダ」が読み取り専用の場合も意図通り動作しないのでしょうか?
(メッセージからの推測として、sio通信の際にカレントディレクトリに何かをオープンしようとしている?)

また、これは別件なのですが、現状 XDISKWIN2 の「88用システム送信」でシステムを送信して88側で
load "COM:N81X"
すると、転送の最後に
Direct statement in file
のエラーが出ます。
プログラムのロード自体はできているのでそういうものなのかと気にしていなかったのですが、 XDISKWIN2 のコードを見ていて
・xdisk2 付属の xdisk2.bas の最後(100行目)には "-" のみの行(マーカー?)が含まれている
・XDISKWIN2 の main2.cpp の 154行目付近に「ファイル末尾の '-' と改行コードを削除するコードがあるが、現状ではコメントアウトされている
のが原因という気がしました。いかがでしょう?

長くなってしまいましたが、内容確認いただければ幸いです。

2: apaslothy 2016年05月13日(金) 午前0時39分

動作のご確認&結果のご報告,ありがとうございます。

CD-ROMだと正常に動作しないのですか。
私の所では,書き込み禁止にしたSDカードで同じようなテストを行って正常に動作しているのですが,CD-ROMでは確認しておりませんでした。
こちらでもCD-RかRWにD88イメージを焼いて,動作を確認してみます。

また,88用システム送信後に"Direct statement in file"が表示されるのは仕様です。
おそらく,ディスプレイを接続しない環境でプログラムが最後まで送信されたか確認できるようにするために,わざとエラー発生させてBEEP音を鳴らしているのではないかと思います。
オリジナルのxdisk2付属ドキュメントには,
 『終了しました』と表示されるのと同時に 88 側で
 「Direct statement in file」というエラーが起きたら転送は終了です.
と記載されているのですが,この情報はXDISKWIN2のドキュメントにも記載しておくべきでしたね。次回アップデート時に追記します。
main2.cppでコメントアウトされているのは,最近サポートしたPC-8001mkII/SR用プログラム転送関連でテスト時に使用したコードの残骸なので,この件とは無関係です。

3: apaslothy 2016年05月13日(金) 午後9時26分

CD-RWにD88イメージを焼いて試してみたのですが,当方の環境ではご報告頂いた現象は再現しませんでした。

ご報告頂いた内容に合わせて
・Windows10 Pro 32bitで実行
・ファイル名を"FC88V40.d88"にして,"DISK"フォルダに格納する
・通信速度を9600bpsにする
といった部分までは環境を合わせてみたのですが,いずれも不再現です。

何か他に確認すべき項目で思い付いたことなどありましたら,教えて頂けないでしょうか。

4: @tsutsuii 2016年05月16日(月) 午前1時15分

確認ありがとうございます。不再現ということなのでこちらでも別マシンを含めて詳細条件を確認してみます。

環境としては
・88側は MA2 8MHz の 9600bps
・PCは DELL Optiplex 760 でシリアルは本体内蔵レガシーポートの COM1
なのですが、
・88MH ではどうか
・USBシリアルではどうか
というあたりを確認してみます。

また、 Direct statement in file" の件はオリジナルの xdisk2 付属ドキュメントに記載がある件、見落としていました。確認不足ですいません。

5: CD-R 2016年05月20日(金) 午前1時47分

ケーブルへのノイズ混入のような気がします。うちのPC-8801mk2がwindowsパソコンとPC-88の位置を変えるとエラー、成功と状況が変化します。シールドされているシリアルケーブルを使用してますか?高品質のものを使い、PCの配置を変えてみることも試されてはいかがでしょうか?

6: @tsutsuii 2016年05月22日(日) 午後4時27分

いろいろと条件を変えて試してみたのですが、結論としては XDISKWIN2 の問題ではなく、当該PCの設定の問題のようです。お手数をお掛けしてしまいすいません。

当該PCで以下を確認:
・シリアルケーブル交換 →「sio::write error」が3回のあと「通信デバイスの初期化に失敗しました(-2)」で変わらず
・シリアルをレガシーポートから USBシリアル (Prolificチップのもの) に交換 →変わらず
・CDについて USB接続の外付け DVD-RAM ドライブ (E:\) に交換してダイアログで e:\DISK\FC88V40.D88 を選択 →変わらず

ここで別のマシンで確認:
・Windows10 Home のネットブックで 前述の USBシリアル + 外付け USB接続DVD-RAMドライブ を接続 →接続OK
・Windows10 Pro 64bit の別のDELLデスクトップで 前述の USBシリアル + 外付け USB接続DVD-RAMドライブ を接続 →接続OK

元のPCで何が悪いのかを調べてみたのですが、ウイルスバスターアンインストール、VMwareのアンインストール等では現象変わらず、すぐにはわかりませんでした。このPCは XP時代から設定を引っ越してきてアップグレードを繰り返しているマシンなので、そもそも何かがおかしい可能性のほうが高そうです。

環境依存の問題に対していろいろと確認いただき、どうもありがとうございました。

7: apaslothy 2016年05月23日(月) 午前0時07分

残念ながら,正確な原因はちょっとわかりそうにありませんね。
とはいえ,HDDにコピーまたはフルパスで直接指定すれば動作するという所まで調査していただけたのはありがたいです。
今後,同じ症状で質問を受けた時には参考とさせていただきたいと思います。

貴重な情報を,ありがとうございました。


名前:  非公開コメント   

  • TB-URL(確認後に公開)  http://www5f.biglobe.ne.jp/~apaslothy/cgi_bin/adiary/adiary.cgi/078/tb/