阅读:3390回复:6
关于在DOS下把分辨率设为800*600?
现在遇到一问题,在DOS下用图形方式显示,需要分辨率为:800*600,用的编译器为:TC3.0
看了一些资料,知道通过BIOS的中断10能解决问题: _AX=0x4f02; _BX=0x102; geninterrupt(0x10); 执行完之后AL=0x4f,AH=0,那应该表示设置成功。可是后面应该怎么做呢?这一段程序是否就代替了initgraph()的功能呢?可是如果不调用initgraph()的话,后面的画图以及汉字显示都无法进行,而要是再调用一次initgraph(),那分辨率又变成640*480了,希望各位高手指点一二。 [编辑 - 5/17/05 by rollin7] |
|
沙发#
发布于:2005-05-18 16:56
在DOS显示图形很麻烦。通过BIOS的中断调用可以解决常见的方式。
好象800*600的真彩色显示不支持吧? 所以大都时候要针对显示芯片 来编程,如果实时模块的话,就得利用内存窗口来读写显存。保护模 式就不存在这个问题,但是我没有写过。initgraph()功能很弱,可能也是调用BIOS,比较通用吧。 [编辑 - 5/18/05 by Sunbeam] |
|
|
板凳#
发布于:2005-05-31 14:51
支持VESA的显卡就可以调用SuperVGA模式,设置800x600了,不过操作显存需要用窗口的方式来实现。
具体的信息查看 http://www.qzx.com/pc-gpe/ 提供一些DOS游戏的技术,包括VGA的文档。 |
|
地板#
发布于:2005-06-03 10:05
borland的graphics库不支持VESA,如果你要用VESA,就要自己向显存里面写每一个象素。
DJGPP的graphics库好像支持一些VESA模式(不记得是否支持HiColor,TrueColor),并且基本上跟Borland的函数一致。你可以考虑用它来开发软件。 |
|
地下室#
发布于:2005-06-07 17:33
想不到现在还有这样的项目。我在98年做的类似项目时候已经感到很郁闷了。 汉字通用显示有多种方法。做得好的可参考当年汉卡的方法。如果不要求对所有显卡通用的显示,可以只针对某一显示芯片来做封装,我们当年的项目这是这样来做的。
|
|
|
5楼#
发布于:2005-06-07 18:52
不知各位老大知不知道哪有函数原型可以参照参照?
|
|
6楼#
发布于:2005-07-11 08:31
直接用DJGPP来开发就可以了。直要你的显示器指出1024*768都可以。
|
|