博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

X86架构下WinCE利用MSDOS进行多重启动的配置

Posted on 2010-01-02 16:22  大米猫咪来回变  阅读(1904)  评论(1编辑  收藏  举报

       MSDOS多重启动在10多年前是非常流行的一件事情,因为配置MSDOS玩游戏和运行win31需要基本完全不同的配置.有些游戏对于基本内存要求极为严苛,不少游戏都要求有600k以上的基本内存,这样即使有4M或者8M内存如果不能满足基本内存的要求也是玩不了的。可是说在Dos时代配置Config.sys和Autoexec.bat文件进行多重启动是一个基本功。随着win95的到来,基本就没有类似的要求了,但是对于X86下的WINCE开发来说,多重启动配置还是有很多不错的用途。

下面先来看一个多重启动的例子(ICOP VDX版随版提供,如有异议请联系本人)

Config.SYS

Config.Sys

以上是Config.Sys的内容。在Config.Sys中主要做这样几个工作:

(1)在Menu段中确定有几种启动的情况,并定义Menu的Id和Name,

每一起动项语法为:MenuItem =ID,Name。ID用于唯一标示该启动项,Name用于显示。也即启动时显示在屏幕上的是Name,而不是ID。

(2)针对每一启动项配置DOS环境,相当于CASE语句,在每一个CASE下面写配置。在这里只有[COMMON]里面有配置语句。即所有的启

动项均要执行的配置命令。

        buffer是设置缓存大小。

        files是可同时打开文件的数量。

        break为允许或禁止对扩展键CTRL+C的检查,当break=on时,在执行dos命令时使用ctrl+c可以中断命令,当然需要注意的是不是所有的命令都可以中断,并且该开关打开会稍微降低系统性能,不过可以无视这点点降低吧。

       lastdrive表示最后一个盘符为,这里定义为Z,需要注意的是在dos下面每多一个盘符就会多占一点点内存,包括前面的file,buffer都是如此,当然就是多一点点,对于现在的内存来说就是大海的一滴水。不过原来有些游戏就差那么一点点就玩不了//grin。

       dos=high,umb,这个是必须的,据我所知不loadhigh的话,是不能够使用loadcepc这个命令的。dos的高端内存是指640k-1024k中间这384k内存。并且分为uma和umb两个部分。具体的看另外一篇吧http://www.cnblogs.com/goodleaf/archive/2010/01/02/1637879.html

那是相当的啰嗦。简单的说用dos启动wince这一句是必须的。

       device=himem.sys,介个…上面那个链接的文章里面其实有,简单的说这一句也必须有就是了。testmem:OFF,顾名思义就是是否检查内存。

需要注意的是,DOS下检查内存是有点慢的,嘿嘿。

       好了这个看完了,执行完config.sys以后,会继续执行的AutoExec.bat。下面是与上面config.sys对应的AutoExec.bat。

 

AutoExec.Bat

Autoexce.bat

 


 

    其实这个注释蛮清楚地,一看就能明白亚,不过还是简单介绍一下。

    SET语句是用来设置环境变量。的前面三个是用来设置网卡的,如果要从网络来loader os,(网络loader相关问题可参看http://www.cnblogs.com/goodleaf/archive/2009/12/16/1625848.html)那么最好设置一下,不太推荐使用DHCP。IRQ和IOBASE就设0就可以,IP的话根据自己的环境来吧。

    IF和Goto语句是用来控制跳转,这个好简单,似乎不用介绍。这个Autoexec.bat简单的说就是根据不同的启动项,来执行不同的Loadcepc语句。可以加载不同的参数,也可以load不同的os。举个例子,可以在nand里面放多个os image。比如nk.bin,nk1.bin,nk2.bin。其中nk.bin是800*600的,nk1.bin是640*480,而nk2.bin是thin client。

     总的来说X86架构下WinCE利用MSDOS进行多重启动的配置对于开发人员来说是比较好用的,特别是为了教学,培训之类的时候会比较方便。如果拿去做最终的用户产品,估计会被老总pia飞吧,呵呵。