永发信息网

请问在DoS环境下SVGA模式,通过写显存显示64K图像有哪些参考资料

答案:2  悬赏:40  手机版
解决时间 2021-01-25 18:46
  • 提问者网友:斑駁影
  • 2021-01-25 03:09
请问在DoS环境下SVGA模式,通过写显存显示64K图像有哪些参考资料
最佳答案
  • 五星知识达人网友:我住北渡口
  • 2021-01-25 04:04
直接写屏技术在DOS下面很容易实现,调用BIOS的10h中断的00h功能即可进入视频模式,对于VGA、VESA的显示模式,显存的起始地址都是A000:0000H(是一个16位地址的段址+偏移形式)进入视频模式,并且用一个far指针指向视频显存的首地址,然后你就可以在显存里面为所欲为了,比如画点什么的例子:#defineMODE_VGA13H0x13#defineMODE_TEXT0x03voidsetmode(charmode)//设置视频模式的函数{asmmovah,0x00//调用00h功能设置视频模式asmmoval,mode//AL寄存器放欲设置的视频模式号,这里以13h视频模式为例asmint0x10//调用10h中断}charfar*vediobuf=(charfar*)0xa0000000L;//指向显存地址的指针voidputpixel(intx,inty,intc)//画点的函数{*(vediobuf+x+320*y)=c;}intgetpixel(intx,inty)//取点的函数{return*(vediobuf+x+320*y);}voidmain(void){inti;intj;//设置VGA13H视频模式setmode(MODE_VGA13H);//用一个二重循环画满屏幕for(i=0;i<20;i++)for(j=0;j<320;j++)putpixel(j,i,j);getch();//返回DOS文本模式setmode(MODE_TEXT);}以上只是给出了很简单的实现直接写屏的代码,VGA13H视频模式是320*200*256的,即320*200的现实分辨率256色的最大颜色数。这个模式已经很落后了……当然你也可以设置其它的显示模式,在VESA标准中能支持多种高分辨率高色彩的视频模式,编程的原理都差不多,要注意的就是对分页的处理网上有不少相关资料,找找看吧,比如有关中文DOS显示系统都有讲解
全部回答
  • 1楼网友:煞尾
  • 2021-01-25 05:34
我是来看评论的
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯