资源描述:
《可移植的256色图形用户界面的设计论文》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、可移植的256色图形用户界面的设计论文摘要该文从软件可移植性的角度指出设计256色图形用户界面时应当注意的问题,在对SuperVGA产品进行分析的基础上,提出了基于表格驱动的程序设计思想,并给出了范例。随着各种超级VGA的出现,同时具有高分辨率和丰富色彩的图形用户界面已经成为程序员和用户共同追求的目标。然而由于各制造商提供的VGA产品之间的差异,使得高分辨率256色图形界面的兼容性受到影响,常常会出现这样的情况:在一个显示系统下运行良好的程序,在另一种显示系统下变得面目全非.freelp(intx,inty,in
2、tnum,charfar*ptr);参数:;x,y-屏幕坐标;num-本行的像素个数;ptr-指向像素数据的远指针LineDumpprocfarpushbpmovbp,spsubsp,2;odelyequbp+8numequbp+10offsequbp+12psegequbp+14movreserved,dsmovds,psegmovsi,offs;DS:SI图像数据所在源地址movax,0a000h;显存段址moves,ax;ES:DI显存目的地址movax,.freelovds,reservedmulovdi
3、,ax;DI=-vga-ovah,dl;进位部分(DL)=页号calldovcx,num;本行要传送字节数movbx,cxaddbx,di;检测传送是否在一个页内jncDump-In-One-Pagesubcx,bx;CX=本页字节数,BX=下页字节数shrcx,1;CX/2=字数repmovsovsb;处理可能的奇数字节数incah;调整页号calldovcx,bx;新页内要写的字节数jcxzDump-DoneDump-In-One-Page:shrcx,1;CX/2=字数repmovsovsb;处理可能的奇数
4、字节数Dump-Done:popdipopsipopespopdsmovsp,bppopbpretLineDumpendp二、表格驱动的基本思想根据上面的分析,用以驱动显示系统的表格,至少应当包含下列项目:(1)实际显示模式:vga-mode(2)水平分辨率:vga-TVGA-MODETVGA320x200=0,TVGA640x400=1,TVGA640x480=2,TVGA800x600=3,TVGA1024x768=4,;voidTVGA256-driver(void);voidPVGA256-driver(
5、void);voidAVGA256-driver(void);...voidVESA256-driver(void);externintfar-CdeclTVGA256-driver-far;externintfar-CdeclPVGA256-driver-far;externintfar-CdeclAVGA256-driver-far;...externintfar-CdeclVESA256-driver-far;/*支持的VGA集合*/enumVGAs{UnKno1-TridentVGA2-ParadiseV
6、GA...x-不能检测出的VGA,但支持VESA返回值同时写入全局变量vga-type*/externintVesaFound(void);/*功能:检测VESABIOS的存在性返回:0-不支持VESA;其它-VESA版本号(0x0102即1.02版);返回值同时写入全程变量vesa-found.*/externvoidInitVesa(void);/*功能:初始化VESA.根据-vga-mode模式号换算成VESA的标准模式号填写页粒度(ode;unsignedchar*bgiDriver="PVGA256";
7、bgiDriver=DriversDetectVGA();GraphDriver=installuserdriver(bgiDriver,NULL);GraphMode=TVGA800x600;initgraph(GraphDriver,GraphMode,"");...