我有一个很好的旧 DOS 应用程序,它仍然需要运行。不幸的是,PC 快要死了,需要更换。PC 运行 Windows 98,软件在 MS Dos 命令行中执行。当我们订购一台新 PC 时,您至少会得到一台具有 Win 2000 (NT) 内核且不基于 DOS 的 Windows XP。现在我需要一种策略,以便能够在新时代的 PC 上运行那个 DOS 应用程序。我在想的是买一个标准的办公室盒子,并有一个运行 MS DOS 和我的 DOS 应用程序的虚拟 PC 或 VMware 设置?这会是一条路吗?有什么顾虑吗?16Bit/32Bit 怎么样……所以任何意见、经验或提示都会很棒……。谢谢
是的,VMWare 或 Virtual PC 可以作为解决方案。但对于一个应用程序来说,它有点“胖”。尝试检查DOSBox Project,也许这是要走的路。
你考虑过使用 FreeDOS 吗?
http://www.freedos.org/
程序需要哪些资源?Windows 2000 和 XP 仍然可以执行 MS-DOS 应用程序,即使(32 位)Vista 和 Win7 仍然可以正常运行 VisiCalc。只要确保不运行任何 64 位版本的 Windows。
但是,如果您的 DOS 应用程序依赖于直接硬件访问或作为 TSR 运行,那么您也可能会遇到 VMWare 问题。
您是否已经在现有的 Windows XP 安装上尝试过?
对于 LTP1 支持,有些设备会将 USB 端口转换为打印机端口。它将允许您将旧矩阵打印机连接到最新硬件。关于 DOS 支持,任何 Windows XP 系统都应该足以支持此应用程序。我已经能够在一台旧的 WinXP 计算机上玩一些非常古老的 DOS 游戏。但是,当 DOS 应用程序基于硬件做一些事情时,事情就会变得很糟糕。即使 Windows 会提供对这些硬件组件的访问,您的 DOS 应用程序也可能无法处理当前硬件的闪电速度。
例如,我曾经用 Turbo/Borland Pascal 编写软件。为了写入控制台,包含了一个特殊的“CRT”单元,它将字符直接写入图形卡的内存中。虽然这在 XP 上仍然是允许的,但代码本身在计算 CRT 速度时有一个讨厌的错误。处理器会如此之快以至于会发生溢出,从而产生一些相当意想不到的结果。
作为替代方案,请查看 e-bay 或其他类似网站,以找到一些更古老的硬件来替换您当前的计算机。虽然 DOS 应用程序可能在 Windows XP 上运行,但不能保证为 33 MHz 英特尔 80486 处理器编写的东西在当前 2.66 GHz 双核奔腾系统上仍然表现良好。或者甚至是一半好……就我个人而言,我认为现代硬件可能太好而不实用。
但是,请考虑重写该应用程序或订购升级。正如我之前提到的,仍然可以通过 USB 设备支持 LTP1,因此仍然可以支持旧的 Matrix 打印机。请记住,这个问题很可能会在几年后再次出现,届时您的新盒子会死掉。
VMWare 是一个答案。其他选项是FreeDOS(我曾多次用于固件刷新)或DOSEmu,这是在 Linux 上运行的 DOS 兼容层。
不用着急,您可以在现有工作站上安装 VirtualPC,创建一个 VM 并在其上安装 win98,然后复制 DOS 应用程序(没有注册表的乐趣)并查看它是否按预期工作。
是的,当这个测试虚拟机运行时,你现有的 worktion 会运行得有点慢,但要测试这个过程,它简单、快速且免费。
听起来供应商对保持该软件的功能不感兴趣。
比较更换成本与支持成本;如果您考虑到您的时间成本,找到替代软件可能比继续支持这个古董更便宜!
[另一种选择可能是从供应商处购买源代码并为更现代的环境重建应用程序]
确保您的新硬件在主板上有 PS/2 端口 - DOS 应用程序可能会被 USB 键盘和鼠标混淆。
出于同样的原因,使用 IDE 硬盘而不是 SATA 和 AGP/PCI 视频卡而不是 PCI-E 可能更好