求助:tc下高分辨率编程
小弟最近在学习C语言图形编程,由于tc下的graphic.h中的最高分辨率只能达到640*480,后来我又去找了一下svga方面的资料,可以实现800*600的分辨率,但我用它说的方法去初始化,asm
{
_AX = 0x4f02;
_BX = 0x103; //800*600
geninterrupt(0x10);
}
但初始化不起来,显示器就是显示“输入信号超出范围”,希望各位大大帮帮忙,这个应该怎样实现?小弟在此感激不尽!!!
----------------解决方案--------------------------------------------------------
当然可以,可以通过BIOS中断调用来实现.这需要很多的时间.
中断号:0x100
输入参数:AH=0
AL=0x00 40X25 黑白文本,16级灰度
AL=0x01 40X25 16色文本
...
...(请参看最新BIOS功能调用表)
用于设置显示方式.
_AX = 0x4f02; /*_AX是一个通用寄存器,我不明白输入参数AH=0x4f是实现什么功能?*/
_BX = 0x103; //800*600
geninterrupt(0x10);/*中断产生*/
[[it] 本帖最后由 neverTheSame 于 2008-4-28 22:31 编辑 [/it]]
----------------解决方案--------------------------------------------------------
AH=0x4f表示用的是vesa的vbe3.0标准,我调用_BX=0x101去初始化没问题,但调用0x105这些分辨率超过640*480的去初始化时就会出现错误,显示“输入信号超过范围”。
----------------解决方案--------------------------------------------------------
你的编译器支持不支持?
----------------解决方案--------------------------------------------------------
我用的是tc2.0,不知道它支持不!
----------------解决方案--------------------------------------------------------