質問

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

私はむしろ、このアプリを書き換えるのではなく、最新のOS(Vista / XP)でこのアプリをサポートする環境と設定を試みます。

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

役に立ちましたか?

解決

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

  

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

Wiki から)

私は数年使っています。優れた安定性と堅牢性を備えています。ライブを簡単にするためのサードパーティGUIもいくつかあります

他のヒント

すでに提案されているように、仮想化環境でアプリを存続させる以外に、最初に行うべきことは、コードにFAT-16が必要と思われるなぜを把握することです。

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

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

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

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

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

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

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

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

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

しかし、前述のとおり:理由を見つけるのが最善です。何らかのWTF-Copy-Protectionのように聞こえます。

2番目の@ eugensk00の提案では、NTFSハードディスクには保存せずに小さなメモリスティック(1GB)に保存する、ちょっと変わった楽器ソフトウェアがあります...

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

また、一部の旧式のプログラムは、ファイルを書き込む前に十分なディスク容量があるかどうかを最初に確認するため、ドライブが非常に大きく、明らかに使用している16ビットカウンターがオーバーフローすると、奇抜な問題が発生することに注意してください。 (その場合、オーバーフローの性質に応じて、動作するか動作しないかのいずれかです。)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top