3

BASIC で書かれたプロジェクトがあります。正確な理由はわかりませんが、FAT-16 ファイル システムから実行されている場合を除き、アプリは機能しません。

書き直すのではなく、最新の OS (Vista/XP) でこのアプリをサポートするセットアップと環境を試してみたいと思います。

ある種のコード変更 (BASIC コードへの変更) または FAT-16 "エミュレーター" (そのようなものが存在する場合) によって、このようなアプリを XP/Vista で実行する方法を知っている人はいますか?

4

8 に答える 8

7

DOSBOX経由で実行してみてください:

DOSBox は Intel x86 PC をエミュレートし、Microsoft Windows XP、Windows などの最新の PC やオペレーティング システムでは実行できない多くの古い MS-DOS アプリケーションを実行するために必要な、サウンド、グラフィックス、マウス、ジョイスティック、モデムなどを完備しています。 Vista、Linux、および FreeBSD

(彼らのウィキから)

もう数年使っています。それは良好で、安定しており、非常に堅牢です。あなたのライブをより簡単にするために、いくつかのサードパーティのGUIも持っています

于 2008-09-28T12:32:43.290 に答える
5

すでに提案されているように、アプリを仮想化環境で維持するだけでなく、最初にすべきことは、コードが FAT-16 を必要とする理由を突き止めることです。

アプリ (またはそのランタイム) が特に悪質な場合、FAT-16 要件は、オペレーティング システムをバイパスして直接ディスク I/O を実行しようとしていることが原因である可能性があります。BASIC コード自体がその特定のスタントを実行しようとしている場合は、I/O ルーチンで多数の CALL、PEEK、POKE、または時折の IN および OUT ステートメントを確認する必要があります。ランタイムが何に対応しているかを判断するのはより困難です。それが Microsoft、DOS ベースでそれほど古くないもの (GWBASIC や QuickBASIC/PDS など)、または Windows ベースの場合は問題ありません。

いずれにせよ、アプリまたはランタイムのいずれかが直接ディスク I/O を試みている場合は、負けです。大規模な書き換えのようなコード変更を行わずに最新の OS で動作させることはほとんど不可能です。

アプリが入力と出力に通常の BASIC 機能を使用しており (例: OPEN "file" FOR any AS #1)、ランタイムも通常の OS インターフェイスを使用している場合、FAT-16 でのみ動作する最も可能性の高い理由は、長いファイル名によって完全に混乱します。

最初に試すことは、アプリを短い名前のディレクトリ (例: c:\myapp) に配置し、次に何が起こるかを確認することです。それ以外の場合は、BASIC コードをステップ実行することで、何が起こっているかを把握できるはずです (デバッガーがランタイム環境の一部であると仮定して)。

アプリが実行されている正確なインタープリター/コンパイラーに関する詳細情報がなければ、質問に詳細に回答することはできません。これまでの回答が役に立たなかった場合は、質問を編集してこの情報を含めることをお勧めします。

于 2008-09-28T12:35:14.920 に答える
1

フラッシュ、zipドライブ、または入手したリムーバブルメディアから実行します。
Windows XPは、1GBのUSBフラッシュドライブをFATとして問題なくフォーマットしました。追加のツールは必要ありませんでした。
さらに、アプリケーションが本当にである場合は、ドライブの境界によってその悪を制限することができれば幸いです。

于 2008-09-28T14:11:17.453 に答える
1

それ自体が最新の OS で実行されている VMWare 仮想マシンで、古いバージョンの Windows を実行します。

于 2008-09-28T12:17:16.667 に答える
0

環境によっては、最新のOSでFat-16ファイルシステムを作成できるはずですが、LinuxのfdiskバリアントのAcronisDiskDirectorなどの追加ツールが必要になる場合もあります。

FAT-16は2GBのパーティションサイズに制限されていることに注意してください。

しかし、前に述べたように:理由を見つけるのが最善です。ある種のWTF-コピー防止のように聞こえます。

于 2008-09-28T12:43:49.177 に答える
0

私は @eugensk00 の提案に賛成です。NTFS ハードディスクには保存されず、小さなメモリ スティック (1GB) に保存される、少し変わった計測器ソフトウェアがあります...

于 2008-09-28T14:16:33.290 に答える
0

コードを VB.NET に直接インポートできる場合があります (ただし、ほとんどの場合、いくつかの変更が必要になります)。次に、元のアプリのファイル IO 呼び出し (ほぼ間違いなく問題です) を VB.NET 呼び出しに置き換えて、FAT16 の問題から抜け出すことができます。

于 2008-09-28T14:17:47.750 に答える
0

また、古い学校のプログラムの中には、ファイルを書き込む前に十分なディスク容量があるかどうかを最初に確認するものがあることに注意してください。ドライブが大きすぎて、明らかに使用している 16 ビット カウンターをオーバーフローすると、おかしな問題が発生します。(その場合、オーバーフローの性質に応じて、機能するか機能しないかのいずれかになります)。

于 2010-08-30T05:46:38.580 に答える