以下是其他人忽略的一些细节:
没有人提到DJGPP。
这是GCC的保护模式DOS端口,可能拥有开源选项中最大的库和指南选择。(包括带有Turbo Vision port和installation HOWTO的安装指南)
无论你想做什么,OpenWatcom(source)都很可能能够满足你的需求。
OpenWatcom仍然包括使用DOS/4GW的免费许可证,这使它在当时非常受欢迎。 (当您看到像DOOM这样的游戏在启动时说“DOS/4GW Protected Mode Runtime”时,这意味着它是使用Watcom C/C++构建的,因为DOS/4GW是DOS/4G的特殊Watcom捆绑版本。)
事实上,DOS/4GW的创建者正在寻找新版本的DOS/4GW源代码以供贡献给Open Watcom时去世。
如果您不想怀旧,OpenWatcom会捆绑比DOS/4GW更好的替代品,例如DOS/32和PMODE/W。
如果您想尝试Windows 3.1编程,请使用OpenWatcom,它包括Win386,这是一个32位扩展程序,用于Window 3.x,Sierra等公司在其Windows 3.1游戏中使用了该程序,然后Microsoft生产了自己的“Win32s” 32位API附加组件。
OpenWatcom可以从单个安装目标所有受支持的平台。(我使用它从Linux构建各种DOS和Windows测试EXE。)
OpenWatcom可以针对很多复古平台进行目标设置:
如果您的项目必须在实模式下运行(即没有DJGPP),并且您想要比Open Watcom C/C++中的现代优化器更好的东西,则可以尝试名为GCC IA16的GCC分支。(虽然我不知道它对16位x86生态系统中使用的各种内存模型和调用约定的支持有多完整。)
如果您想要让IDE和编译器在古老的硬件上运行,Pacific C编译器和IDE将一个286 CPU列为其最低要求,但也可以在DOSEMU中运行,以便轻松集成到基于Linux的构建自动化中。
这里有一些其他免费的DOS C编译器,尽管它们缺乏DJGPP和OpenWatcom拥有的大型生态系统:
您可能还想在构建的EXE文件上运行UPX压缩器,这样您就可以在任何制作的软盘镜像上获得更多的可用空间。(如果目标是低于386的旧设备,请不要忘记使用--8086
运行。)
它 能够 压缩EXE、COM和SYS文件,使用这种可执行文件压缩在那个年代是很普遍的。
(不过,UPX无法压缩两种主要格式的OS/2和Windows 3.1可执行文件。我仍在寻找最佳选项,因为LxLite与OpenWatcom生成的EXEs不兼容。)
适用于DOS的Turbo C编译器非常棒,而且是免费软件。
官方网站链接 http://edn.embarcadero.com//article/20841
还有Microsoft QuickC,但我不知道它有多难找。
或者Watcom C,但我不知道他们的OpenWatcom版本是否适用于DOS。
cd TC
TC
就是这样!你可以编写 C 代码并进行编译。最好的部分是,您可以在没有任何限制的情况下处理寄存器和内存。
这里有许多编译器:
http://www.compilers.net/dir/free/compilers/ccpp.htm
非常具体地说,我已经在几个有趣的项目中使用了"Pacific C",并且我对其易用性和整体兼容性感到满意。http://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/devel/c/pacific/
.com
只是一个原始的机器代码块,要复制到内存中并启动。这就是为什么它有很多限制的原因。) - ssokolow