) 在 FreeDOS 上如何使用 C 语言编程 世界速读_亚洲制鞋网

在 FreeDOS 上如何使用 C 语言编程 世界速读

首页>资讯 > 正文
2023-04-21 03:58:18

来源:Linux中国

当我第一次开始使用 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​​头文件:

​intgetch(void)​​:从键盘上获取一个按下的单个按键​​int getche(void)​​:从键盘上获取一个按下的单个按键,并回显该按键

来自​​graph.h​​头文件:

​_settextcolor(shortcolor)​​:设置打印文本时的颜色​​_setbkcolor(shortcolor)​​:设置打印文本时的背景颜色​​_settextposition(shorty,shortx)​​:移动光标到行​​y​​和 列​​x​​​​_outtext(char_FAR*string)​​:从当前光标位置开始,直接将一串字符打印到屏幕

DOS 只支持​​16 种文本颜色​​和 8 种背景颜色。你可以使用值 0(黑色)到 15(亮白色)来具体指定文本颜色,以及使用值 0(黑色)到 7(白色)来具体指定背景颜色:

​0​​:黑色​​1​​:蓝色​​2​​:绿色​​3​​:品蓝色​​4​​:红色​​5​​:品红色​​6​​:棕色​​7​​:白色​​8​​:亮黑色​​9​​:亮蓝色​​10​​:亮绿色​​11​​:亮品蓝色​​12​​:亮红色​​13​​:亮品红色​​14​​:黄色​​15​​:亮白色一个花哨的 “Hello world” 程序

很多新开发者学习编写的第一个程序是为用户打印 “Hello world” 。我们可以使用 DOS 的​​conio​​和​​graphics​​库来制作一个更有趣的程序,并使用彩虹般的颜色打印 “Hello world” 。

在这个实例中,我们将遍历每种文本颜色,从 0(黑色)到 15(亮白色)。随着我们打印每一行,我们都将为下一行缩进一个空格。在我们完成后,我们将等待用户按下任意按键,然后,我们将重置屏幕并退出。

你可以使用任何文本编辑器来编写你的 C 源文件代码。我喜欢使用一些与众不同的编辑器,如​​FreeDOS Edit​​和​​Freemacs​​,但是,我最近一直在使用​​FED editor​​,因为它提供语法高亮功能,使其很容易在我的程序源文件代码中看到关键字、字符串(LCCT 译注:C 语言中没有字符串)、变量。

使用 C 语言编写一个简单的测试程序

在你使用 OpenWatcom 编译前,你将需要设置 DOS的​​环境变量​​,以便 OpenWatcom 可以找到它的支持文件。OpenWatcom C 编译器软件包中包含了一个为你做这件事的设置​​批处理文件​​:​​\DEVEL\OW\OWSETENV.BAT​​。运行这个批处理文件可以自动为你的 OpenWatcom 设置环境变量。

在你的开发环境准备好后,你可以使用 OpenWatcom 编译器来编译这个 “Hello world” 程序。我已经将我的 C 源文件文件保存为​​TEST.C​​,因此,我可以输入​​WCL TEST.C​​来编译和连接该程序为一个名称为​​TEST.EXE​​的 DOS 可执行文件。在 OpenWatcom 的输出信息中,你将看到​​WCL​​实际上调用 OpenWatcom C 编译器(​​WCC​​)来编译,并调用 OpenWatcom 链接器(​​WLINK​​)来执行对象/目标object

使用 OpenWatcom 编译测试文件

OpenWatcom 会打印一些无关的输出信息,这可能会使发现错误和警告变得困难。为了告诉编译器来抑制这些大量的额外信息,请在编译时使用​​/Q​​(“Quiet”)选项:

使用 OpenWatcom 编译

在编译 C 源文件文件时,如果你没有看到任何错误信息,那么你现在就可以运行你的 DOS 程序了。这个 “Hello World” 示例的程序名称是​​TEST.EXE​​。在 DOS 命令行中输入​​TEST​​来运行新的程序,你应该会看到这个非常漂亮的输出:

运行测试程序

C 语言是一种非常高效的编程语言,在像 DOS 之类的资源有限的系统上进行编程也可以很好的工作。在 DOS 上,你可以使用 C 语言来做更多的事。如果你是 C 语言的初学者,那么,你可以跟随我们在 FreeDOS 网站上的《​​使用 C 语言编写 FreeDOS 程序​​》的自学电子书,以及在​​FreeDOS YouTube 频道​​上的配套的入门指南how-to

(题图:MJ:Legacy sci-fi computer programming::1.7 celestial::1 edison bulb::1 satellite imagery::1 wooden::1 in high resolution, very detailed, 8k)

标签:

THE END
免责声明:本文系转载,版权归原作者所有;旨在传递信息,不代亚洲制鞋网的观点和立场。

相关热点

根据我国《行政许可法》第四十八条的规定,听证按照下列程序进行:(一)行政机关应当于举行听证的七日前将举行听证的时间、地点通知申请人、
2022-11-29 13:53:51
MAPGIS 是武汉中地数码科技有限公司开发的,新一代面向网络超大型分布式地理信息系统基础软件平台其系统是采用面向服务的设计思想、多层体
2022-11-21 15:27:48
新华社电 上海市文化和旅游局近日发布《上海市密室剧本杀内容备案管理规定(征求意见稿)》,并截至12月8日面向社会公众广泛征求意见。这
2021-11-19 13:46:03
《中国证券报》17日刊发文章《备战2022 基金经理调仓换股布新局》。文章称,距离2021年结束仅剩一个多月,基金业绩分化明显。部分排名靠前
2021-11-19 13:46:03
交通运输部办公厅 中国人民银行办公厅 中国银行保险监督管理委员会办公厅关于进一步做好货车ETC发行服务有关工作的通知各省、自治区、直
2021-11-19 13:45:58
新华社北京11月17日电 题:从10月份市场供需积极变化看中国经济韧性新华社记者魏玉坤、丁乐读懂中国经济,一个直观的视角就是市场供需两端
2021-11-19 13:45:58
全国教育财务工作会议披露的消息称,2020年,中国国家财政性教育经费投入达4 29万亿元,占GDP总量的4 206%,我国国家财政性教育经费支出占G
2021-11-19 13:45:48
如果你也热爱“种草”,前方高能预警!让你心心念念、“浏览”忘返的网络平台,可能早已成为一块块“韭菜地”。近日,据《半月谈》报道,有...
2021-11-19 13:45:48
日前,工业和信息化部印发《“十四五”信息通信行业发展规划》(以下简称《规划》),描绘了未来5年信息通信行业的发展趋势。《规划》指出...
2021-11-19 13:45:40
本报讯(中青报·中青网记者 周围围)2021年快递业务旺季正式拉开帷幕。国家邮政局监测数据显示,仅11月1日当日,全国共揽收快递包裹5 69
2021-11-19 13:45:40
人民网曼谷11月17日电 (记者赵益普)17日上午,中国援柬埔寨第七批200万剂科兴新冠疫苗抵达金边国际机场。当天,柬埔寨政府在机场举行了
2021-11-19 13:45:35
金坛压缩空气储能国家试验示范项目主体工程一角受访者供图依托清华大学非补燃压缩空气储能技术,金坛压缩空气储能项目申请专利百余项,建立
2021-11-19 13:45:35
视觉中国供图42亿立方米据有关部门预计,今年山西煤炭产量有望突破12亿吨,12月份山西外送电能力将超过900万千瓦,今冬明春煤层气产量将达4
2021-11-19 13:44:34
14省份相继发布2021年企业工资指导线——引导企业合理提高职工工资今年以来,天津、新疆、内蒙古、陕西、西藏、山东、江西、山西、福建、四
2021-11-19 13:44:34
中新网客户端北京11月18日电 (记者 谢艺观)“一条路海角天涯,两颗心相依相伴,风吹不走誓言,雨打不湿浪漫,意济苍生苦与痛,情牵天下喜
2021-11-19 13:44:31
近日,交通运输部等三部门发布《关于进一步做好货车ETC发行服务有关工作的通知》。通知提到,对不具备授信条件的用户,商业银行可在依法合
2021-11-19 13:44:31
欧莱雅面膜陷优惠“年度最大”风波 涉及该事件集体投诉超6000人次美妆大牌双十一促销翻车?近日,因预售价格比双十一现货贵出66%,欧莱雅
2021-11-19 13:44:13
43 6%受访者会在工作两三年后考虑跳槽54 3%受访者认为跳槽对个人职业发展有利有弊如今对不少年轻人来说,想对一份工作“从一而终”不太容易
2021-11-19 13:44:13
超八成受访青年表示如有机会愿意开展副业 规划能力最重要64 4%受访青年指出做副业跟风心态最要不得如今,“身兼数职”已成为年轻人当中的
2021-11-19 13:44:01
发展氢能正当其时【科学随笔】氢能是一种二次能源,它通过一定的方法利用其他能源制取,具有清洁无污染、可储存、与多种能源便捷转换等优点
2021-11-19 13:44:01
“千杯不醉”的解酒“神药”能信吗?专家:网红“解酒药” 其实不算药俗话说,“酒逢知己千杯少”,酒一直是国人饭桌上至关重要的存在。尽...
2021-11-19 13:43:57
最新文章

相关推荐