我有一个用BASIC编写的项目.我不确定确切的原因,但除了从FAT-16文件系统运行之外,应用程序将无法运行.
我宁愿尝试在现代操作系统(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,那么您将失败:如果没有大量的,类似于重写的代码更改,几乎不可能在现代操作系统上工作.
如果应用程序使用普通的BASIC工具进行输入和输出(例如OPEN"file"FOR AS AS#1),并且运行时也使用正常的OS接口,那么它最有可能仅适用于FAT-16的原因是它被长文件名混淆了.
首先要尝试的是将应用程序放在一个名称较短的目录(例如c:\ myapp)中,然后看看接下来会发生什么.可能它只是起作用:否则,您应该能够通过逐步执行BASIC代码来确定发生了什么(慈善假设调试器是其运行时环境的一部分).
如果没有关于您的应用运行的确切解释器/编译器的更多信息,则无法更详细地回答您的问题.如果到目前为止的答案没有帮助,您可能需要编辑您的问题以包含此信息.