当我第一次开始使用 DOS 时,我喜欢 DOS 自带的 BASIC 来编写游戏和其它一些有趣的程序。很长时间后,我才学习 C 编程语言。
我马上爱上了使用 C 语言做开发!它是一种简单易懂的编程语言,在编写有用的程序时,这给予我很大的灵活性。实际上,很多 FreeDOS 的核心实用程序都是使用 C 语言和汇编语言编写的。
因此,FreeDOS 的 1.3 RC4 包含一个 C 语言可能并不出人意料,此外还有其它编程语言的编译器。FreeDOS 的 1.3 RC4 LiveCD 包含两个 C 编译器:Bruce's C 编译器(一个简单的 C 编译器)和 OpenWatcom C 编译器 。在 Bonus CD 上,你也可以找到 DJGPP(一款基于 GNU 的 GCC 的 32 位 C 编译器)和 GCC 的 IA-16 移植(需要 386 或更好的 CPU 来编译,但是,生成的程序可以在低端系统上运行)。
在 FreeDOS 上使用 C 语言编程与在 Linux 上使用 C 语言编程非常类似,但是有两个例外:
你需要知道你使用了多少内存。Linux 允许程序使用很多内存,但是 FreeDOS 有很多限制。DOS 程序只使用四种内存模式(大、中、紧凑和小)中的其中一种,具体取决于它们需要多少内存。你可以直接访问控制台终端。在 Linux 上,你可以创建文本模式的程序,使用一个诸如 ncurses 之类的库来绘制终端屏幕。但是,DOS 允许程序访问控制台终端和视频硬件。这为编写更有趣的程序提供了极大的灵活性。
我喜欢在 GCC 的 IA-16 移植或 OpenWatcom 中编写我的 C 程序,具体取决于我正在编写的是哪种程序。OpenWatcom C 编译器更容易安装,因为它只是个单一的软件包。这就是为什么我们在 FreeDOS 的 LiveCD 中提供 OpenWatcom 的原因, 在你安装 FreeDOS 的 1.3 RC4 时,如果你选择 “完全的安装(包括安装应用程序和游戏)Full installation including applications and games”,那么你也自动地安装 OpenWatcom。如果你选择安装 “纯 DOS 系统Plain DOS system”,那么,你将需要使用 FDIMPLES 软件包管理器来安装 OpenWatcom C 编译器。
在 FreeDOS 1.3 RC4 上安装 OpenWatcom
在 DOS 上使用 C 语言编程
你可以在 OpenWatcom 项目网站找到文档和库指南,以学习 OpenWatcom C 编译器所提供的独特的关于 DOS 的 C 语言编程库。简单描述几个最有用的函数:
来自 conio.h头文件:
int getch(void):从键盘上获取一个按下的单个按键int getche(void):从键盘上获取一个按下的单个按键,并回显该按键
来自 graph.h头文件:
_settextcolor(short color):设置打印文本时的颜色_setbkcolor(short color):设置打印文本时的背景颜色_settextposition(short y, short x):移动光标到行y和 列x_outtext(char _FAR *string):从当前光标位置开始,直接将一串字符打印到屏幕
DOS 只支持 16 种文本颜色和 8 种背景颜色。你可以使用值 0(黑色)到 15(亮白色)来具体指定文本颜色,以及使用值 0(黑色)到 7(白色)来具体指定背景颜色:
在编译 C 源文件文件时,如果你没有看到任何错误信息,那么你现在就可以运行你的 DOS 程序了。这个 “Hello World” 示例的程序名称是 TEST.EXE。在 DOS 命令行中输入TEST来运行新的程序,你应该会看到这个非常漂亮的输出:
C 语言是一种非常高效的编程语言,在像 DOS 之类的资源有限的系统上进行编程也可以很好的工作。在 DOS 上,你可以使用 C 语言来做更多的事。如果你是 C 语言的初学者,那么,你可以跟随我们在 FreeDOS 网站上的 《使用 C 语言编写 FreeDOS 程序》 的自学电子书,以及在FreeDOS YouTube 频道上的配套的 入门指南how-to 系列视频,来自主学习 C 语言。
(题图:MJ:Legacy sci-fi computer programming::1.7 celestial::1 edison bulb::1 satellite imagery::1 wooden::1 in high resolution, very detailed, 8k)