BIOS入门之我见-布局

上一篇已经介绍我们如何利用WatCom建一个DOS下32位目标工程,建完后仅有工程文件,需要我们接下来添砖加瓦。在上一篇“预热”中,我们已经知道目标载体实现上都有哪些功能,本文先对这些功能如何划分文件实现,各功能的布局做以说明。
           BIOS入门之我见-布局_第1张图片

              图 1  程序界面布局                        图 2  程序模块布局                
                
          通过上篇我们已经知道Xu实现最基本的内存,IO,ISA IO,PCI配置空间的访问,修改功能,当然这些都需要通过屏幕告知用户相关数据,同时通过键盘获取用户输入,以便访问指定的寄存器。这需要我们为整个程序准备一个用户界面,暂时分为内存,IO,CMOS,SIO,PCI菜单功能,每个菜单项对应的界面都有数据显示区,数据解释区,数据录入区,帮助提示区。 如图1所示。
        在程序的主体部分负责调用各个功能模块,比如内存,IO等,如图2所示。 我们的主程序文件,即包含main函数程序入口的文件姑且命名为xu.c,其他各子功能,我们用.c来实现,.h文件来提供函数声明供其他模块调用。内存的,我们用mem.c, mem.h; IO的用io.c,io.h以此类推。关于显示部分,我们用display.c和display.h负责,键盘相关操作及数据转换用key.c和key.h来负责。到此各功能的文件分工基本理清,接下来是如何具体实现了。本文先以程序主文件为例,介绍如何往工程中添加文件,编译链接试错等。
       打开上次建立的工程wpj文件,在Source files 空白处点击右键弹出菜单,选择New Source,查找范围默认是之前建立工程的目录下,这里暂时还没有准备好各代码文件,在文件名一栏先为主文件取个名,这里就用xu.c,点击Add,即为添加到工程中。可以继续添加其它需要的文件,方法雷同不再赘述。点击close关闭添加文件向导,可以看到工程如图所示。


         用鼠标双击xu.c会自动关联到Open Watcom Text Editor把该文件打开,当然里面是空白的,剩下的是码农的 工作了 ,先弄个Hello World,确认之前的工程建立及编译正确否。
BIOS入门之我见-布局_第2张图片

在xu.c中添加main函数及打印信息完毕,后面用个getchar()方便看程序运行结果。保存文件,然后到IDE中点击编译按钮Make Target看看是否有错,若无,点击run 运行一下,看看结果。

这里能看到想要打印的Hello World,但是在此之前出现的DOS/4GW Protected Mode 等信息是哪来的?还记得之前在建立工程时我们在 Image Type一栏选择 DOS/4GW Executable[exe]选项吧,这就是它的产物,实际上就是这个dos4gw为我们实现CPU模式的切换,它在我们程序运行开始之前执行,让我们能在纯DOS环境下访问4GB的内存空间。关于CPU工作模式打算后面专门安排一篇文章介绍。至此,我们可以确认目标工程工作OK,可以生成我们预计的程序效果,接下来就是我们如何实现具体功能了,下篇开始关于xu界面实现的介绍,敬请期待。

你可能感兴趣的:(dos,软件,布局,BIOS,pc)