哪种编程语言适合此任务?

问题描述 投票:0回答:2

我给出了一个任务,以任何可能的语言编写代码来运行 16 位应用程序(.exe),目前 Windows 不支持 16 位应用程序,因为它太旧了。 我该如何解决这个问题?

  1. 哪种编程语言适合此任务? (根据我的意见 ** 我正在考虑编写一个模拟器来运行该应用程序,但我该如何去做呢?) 我需要所有系统工程师、逆向工程师和软件开发人员的建议 谢谢

我尝试过使用 python,但无法与程序无缝通信 忘记提及 - 这个应用程序无法在 DosBox 中运行

operating-system embedded system software-design
2个回答
1
投票

您可以在 DOSBox 中构建并运行 16 位应用程序:www.dosbox.com。 来自 DOSBox 网站:

DOSBox 是一个 DOS 模拟器,它使用 SDL 库,这使得 DOSBox 很容易移植到不同的平台。 DOSBox 已经被移植到许多不同的平台,例如 Windows、BeOS、Linux、MacOS X...

DOSBox 还模拟 CPU:286/386 实模式/保护模式、目录文件系统/XMS/EMS、Tandy/Hercules/CGA/EGA/VGA/VESA 图形、SoundBlaster/Gravis Ultra 声卡,与旧游戏具有出色的声音兼容性。 .

您可以在 DOSBox 的帮助下“重温”过去的美好时光,它可以运行大量新电脑上无法运行的旧经典!

DOSBox 完全免费且开源。

查看我们的下载页面以获取最新的 DOSBox 版本。

您可以在 DOSBox 上安装 Turbo-C 2.0 来构建您自己的 16 位可执行程序。


0
投票

编写自己的模拟器就像一把大锤来敲开坚果,虽然这可能是一项有趣的学术练习,但它是一项不平凡的任务,而不是实现简单运行 16 位代码的目标的实用方法。模拟器首先必须足够完整才能运行 DOS,更不用说您想要的应用程序了。

也没有必要,已有解决方案。最简单的方法可能是使用 DOSBox - DOSBox is 和模拟器,并且可以跨多个平台使用。它模拟 x86 平台、PC 硬件(包括图形适配器)和 MS-DOS 操作系统。然而,它并不是一个完整的实现,省略了一些功能,例如长文件名,并且专注于运行旧游戏而不是开发。

一个更强大的解决方案是在 VirtualBox 或 VMWare 等虚拟机上安装正版 MS-DOS(如果有的话),或者如果没有则安装 FreeDOS。有关详细信息,请访问 https://www.instructables.com/How-To-Install-DOS-622-Under-VirtualBox/。这将为您提供更好的兼容性,并且可能比 DOSBox 更好的性能。

语言选择非常广泛。 DJGPP 是一个很好的起点,它基于 GCC 9 或 10,因此相对现代,并且支持 C、C++、Objective-C/C++、Ada、Fortran 和 Pascal。严格来说,GJGPP 生成在 DPMI(DOS 保护模式接口)上运行的 32 位代码,因此,如果您严格想要运行 16 位代码,这可能不是一个选项,但这似乎是一个不必要的限制性要求。

如果您安装了正版 MS-DOS 6.22,它当然会附带 QBasic,但它有一定的限制,而且实际上是一种“死语言”。

FreeDOS 网站上列出了许多其他开发工具以及其他技术信息: https://www.freedos.org/about/devel/ OpenWatcom 是他们的首选。所有这些也都可以在 MS-DOS 上运行,也可能在 DOSBox 上运行。

如果你真的想在 DOS 上运行 Python,那么可以通过 https://www.caddit.net/pythond/(显然是使用 DJGPP 构建的)。

© www.soinside.com 2019 - 2024. All rights reserved.