DOS下C编程环境搭建与测试
- 2025-06-08 02:46:00
搭建及环境配置
DOS下使用WATCOM工具,下载地址:Index of /ftp/install,下载完成放入DOS盘中,开机进入DOS盘,运行open-Watcom-c-dos-1.9.exe,可以选择安装全部,采用默认配置即可。
安装完成后会有一个WATCOM目录。这里直接安装到DOS系统的U盘
完成安装后,需要配置相关环境变量来保证c代码可以正常执行,可以在AUTOEXEC.BAT中添加永久环境变量,也可以在WATCOM中新建一个批处理脚本来设置编译环境和编译代码,如下图所示,需要注意根据自己代码编写自己的编译选项。WATCOM提供32位和16位的编译程序,分别为WCL386.EXE和WCL.EXE,需要根据需要选择编译程序。
测试程序:
由于需要编写一个获取显示器的EDID程序,根据对EDID读取的基本学习,首先需要拿到显示器的连接设备信息,WATCOM提供了int86函数来执行VEDIO BIOS中断,同时提供了联合体union REGS,也可以达到相同的效果。
程序如下:
#include
#include
#include
union REGS regs;
//get display info
int get_display_info(void) {
regs.w.ax = 0x5f64;
regs.h.bh = 0x02;
regs.h.bl = 0x00;
int86(0x10, ®s, ®s);
if (regs.w.ax != 0x005f) {
printf("Failed to get display information\n");
return -1;
}
printf("cx: %04x\n", regs.w.cx);
return regs.w.ax;
return 1;
}
int main(void) {
int display_info = 1;
display_info = get_display_info();
if (display_info != -1) {
printf("Display information: %04X\n", display_info);
}
return 0;
}
编译运行:
MAKE.BAT GETDISPLAY.C
GETDISPLAY.EXE
根据AX寄存器的值为5F表示程序执行成功,成功获取到了CX中显示器连接信息,测试成功。