标题: 急求解决方案,谢谢各位DOS环境编程高手
[打印本页]
作者: oldliu
时间: 2004-1-8 00:00
标题: 急求解决方案,谢谢各位DOS环境编程高手
公司做项目,用到一个开发于93年的DOS 程序,有自己的GUI,从程序所带附属几个文件来看,是用BC3.0开发的,图形接口文件是EGAVGA.bgi,也就是说只支持到VGA模式
问题是,在许多集成显卡的机器上,某一个字体的字符全部扭曲,比如在Intel 845GL/815/852G/855G等机器上都是这种毛病,但是在Sis 650主板上却一切ok
另外,如果在win98直接运行该程序,立马提示系统没有安装EMS Driver,应该是说没有挂上emm386,但是直接在dos下运行,不需要运行emm386,如果在win98环境的config.sys上挂emm386的话,凡是intel 852/855GM芯片组的机器都因为集成显卡用到的一部分内存正好和emm386在一个地址范围而导致emm386无法load.......真是tmd的郁闷啊,本来想Intel集成主板的windows显卡驱动提供了更好VBE支持,也许可以在win98模拟dos环境里实现对程序字符的支持,结果却无法运行程序!!
希望各位高手助小弟一把,怎么让这可恶的程序可以在Intel 集成显卡的主板上跑起来,而且还能正常显示字符。。谢谢啦
作者: oldliu
时间: 2004-1-8 00:00
补充,程序GUI界面英文中文均有,不晓得是用字库还是用点阵方式弄出来的
作者: Wengier
时间: 2004-1-12 00:00
在论坛中下载一些MS-DOS 7.10启动盘来试试。
作者: 秋蝉
时间: 2004-1-15 00:00
emm386好像可以设置交换数据区地址以免地址冲突
作者: lyz6118
时间: 2004-1-23 00:00
画图,把字当图贴上去。
作者: Kinglion
时间: 2004-1-25 00:00
能不能将您所用的那个93年的程序上传,也好让大家研究一下!
作者: songjian
时间: 2004-2-4 00:00
没用的,程序用bc3.0开发,为了使用大于640的内存,采用了EMS的页面调用。即在640上开了内存交换区。如果要在共享内存为现存的机器上运行该程序,肯定会冲突。如果我才的没有错的话,那个程序和我写的一样,把点阵字库都放在高端内存中。如果要解决
1,可采用bc4.51该编源程序为16位保护模式
2,采用DJGPP或WC该程序为32位保护模式。
3,最简单,不要把字库放入内存,只在用的时候去读字库文件,程序运行前启用SMARTDRV就可以了。不过不要用于DOS无盘系统。
作者: gmy
时间: 2004-2-4 00:00
他们说得有点乱,听我的:
修改CONFIG.SYS,以下几种情况分别试一试
1,不加载
2,DEVICE=EMM386.EXE NOEMS
3,DEVICE=EMM386.EXE RAM
4,DEVICE=EMM386.EXE
5,DEVICE=UMBPCI.SYS
以上使用各行的前一行都必须加入 DEVICE=HEMEM.SYS